@charset "UTF-8";
/**
 * Foundation for Sites
 * Version 6.7.4
 * https://get.foundation
 * Licensed under MIT Open Source
 */
@media print, screen and (min-width: 40em) {
  .reveal, .reveal.tiny, .reveal.small, .reveal.large {
    right: auto;
    left: auto;
    margin: 0 auto; } }

.slide-in-down.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: translateY(-100%);
  transform: translateY(-100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.slide-in-down.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
  transform: translateY(0); }

.slide-in-left.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.slide-in-left.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
  transform: translateX(0); }

.slide-in-up.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: translateY(100%);
  transform: translateY(100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.slide-in-up.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
  transform: translateY(0); }

.slide-in-right.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.slide-in-right.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
  transform: translateX(0); }

.slide-out-down.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: translateY(0);
  transform: translateY(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.slide-out-down.mui-leave.mui-leave-active {
  -webkit-transform: translateY(100%);
  transform: translateY(100%); }

.slide-out-right.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: translateX(0);
  transform: translateX(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.slide-out-right.mui-leave.mui-leave-active {
  -webkit-transform: translateX(100%);
  transform: translateX(100%); }

.slide-out-up.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: translateY(0);
  transform: translateY(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.slide-out-up.mui-leave.mui-leave-active {
  -webkit-transform: translateY(-100%);
  transform: translateY(-100%); }

.slide-out-left.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: translateX(0);
  transform: translateX(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

.slide-out-left.mui-leave.mui-leave-active {
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%); }

.fade-in.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  opacity: 0;
  -webkit-transition-property: opacity;
  transition-property: opacity; }

.fade-in.mui-enter.mui-enter-active {
  opacity: 1; }

.fade-out.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  opacity: 1;
  -webkit-transition-property: opacity;
  transition-property: opacity; }

.fade-out.mui-leave.mui-leave-active {
  opacity: 0; }

.hinge-in-from-top.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
  transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: top;
  transform-origin: top;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-top.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-right.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
  transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: right;
  transform-origin: right;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-right.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-bottom.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(90deg);
  transform: perspective(2000px) rotateX(90deg);
  -webkit-transform-origin: bottom;
  transform-origin: bottom;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-bottom.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-left.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(90deg);
  transform: perspective(2000px) rotateY(90deg);
  -webkit-transform-origin: left;
  transform-origin: left;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-left.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-x.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
  transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: center;
  transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-middle-x.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-y.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
  transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: center;
  transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-middle-y.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-out-from-top.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
  transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: top;
  transform-origin: top;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-top.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(90deg);
  transform: perspective(2000px) rotateX(90deg);
  opacity: 0; }

.hinge-out-from-right.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
  transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: right;
  transform-origin: right;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-right.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(90deg);
  transform: perspective(2000px) rotateY(90deg);
  opacity: 0; }

.hinge-out-from-bottom.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
  transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: bottom;
  transform-origin: bottom;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-bottom.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(-90deg);
  transform: perspective(2000px) rotateX(-90deg);
  opacity: 0; }

.hinge-out-from-left.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
  transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: left;
  transform-origin: left;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-left.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(-90deg);
  transform: perspective(2000px) rotateY(-90deg);
  opacity: 0; }

.hinge-out-from-middle-x.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
  transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
  transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-middle-x.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(90deg);
  transform: perspective(2000px) rotateX(90deg);
  opacity: 0; }

.hinge-out-from-middle-y.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
  transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
  transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-middle-y.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(90deg);
  transform: perspective(2000px) rotateY(90deg);
  opacity: 0; }

.scale-in-up.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: scale(0.5);
  transform: scale(0.5);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.scale-in-up.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
  transform: scale(1);
  opacity: 1; }

.scale-in-down.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: scale(1.5);
  transform: scale(1.5);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.scale-in-down.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
  transform: scale(1);
  opacity: 1; }

.scale-out-up.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: scale(1);
  transform: scale(1);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.scale-out-up.mui-leave.mui-leave-active {
  -webkit-transform: scale(1.5);
  transform: scale(1.5);
  opacity: 0; }

.scale-out-down.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: scale(1);
  transform: scale(1);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.scale-out-down.mui-leave.mui-leave-active {
  -webkit-transform: scale(0.5);
  transform: scale(0.5);
  opacity: 0; }

.spin-in.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: rotate(-0.75turn);
  transform: rotate(-0.75turn);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.spin-in.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
  transform: rotate(0);
  opacity: 1; }

.spin-out.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: rotate(0);
  transform: rotate(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.spin-out.mui-leave.mui-leave-active {
  -webkit-transform: rotate(0.75turn);
  transform: rotate(0.75turn);
  opacity: 0; }

.spin-in-ccw.mui-enter {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: rotate(0.75turn);
  transform: rotate(0.75turn);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.spin-in-ccw.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
  transform: rotate(0);
  opacity: 1; }

.spin-out-ccw.mui-leave {
  -webkit-transition-duration: 500ms;
  transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  -webkit-transform: rotate(0);
  transform: rotate(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.spin-out-ccw.mui-leave.mui-leave-active {
  -webkit-transform: rotate(-0.75turn);
  transform: rotate(-0.75turn);
  opacity: 0; }

.slow {
  -webkit-transition-duration: 750ms !important;
  transition-duration: 750ms !important; }

.fast {
  -webkit-transition-duration: 250ms !important;
  transition-duration: 250ms !important; }

.linear {
  -webkit-transition-timing-function: linear !important;
  transition-timing-function: linear !important; }

.ease {
  -webkit-transition-timing-function: ease !important;
  transition-timing-function: ease !important; }

.ease-in {
  -webkit-transition-timing-function: ease-in !important;
  transition-timing-function: ease-in !important; }

.ease-out {
  -webkit-transition-timing-function: ease-out !important;
  transition-timing-function: ease-out !important; }

.ease-in-out {
  -webkit-transition-timing-function: ease-in-out !important;
  transition-timing-function: ease-in-out !important; }

.bounce-in {
  -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
  transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }

.bounce-out {
  -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
  transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }

.bounce-in-out {
  -webkit-transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
  transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }

.short-delay {
  -webkit-transition-delay: 300ms !important;
  transition-delay: 300ms !important; }

.long-delay {
  -webkit-transition-delay: 700ms !important;
  transition-delay: 700ms !important; }

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

@-webkit-keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
    transform: translateX(7%); }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
    transform: translateX(-7%); } }

@keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
    transform: translateX(7%); }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
    transform: translateX(-7%); } }

.spin-cw {
  -webkit-animation-name: spin-cw-1turn;
  animation-name: spin-cw-1turn; }

@-webkit-keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
    transform: rotate(-1turn); }
  100% {
    -webkit-transform: rotate(0);
    transform: rotate(0); } }

@keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
    transform: rotate(-1turn); }
  100% {
    -webkit-transform: rotate(0);
    transform: rotate(0); } }

.spin-ccw {
  -webkit-animation-name: spin-ccw-1turn;
  animation-name: spin-ccw-1turn; }

@-webkit-keyframes spin-ccw-1turn {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-1turn);
    transform: rotate(-1turn); } }

@keyframes spin-ccw-1turn {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-1turn);
    transform: rotate(-1turn); } }

.wiggle {
  -webkit-animation-name: wiggle-7deg;
  animation-name: wiggle-7deg; }

@-webkit-keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
    transform: rotate(7deg); }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
    transform: rotate(-7deg); }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
    transform: rotate(0); } }

@keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
    transform: rotate(7deg); }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
    transform: rotate(-7deg); }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
    transform: rotate(0); } }

.shake,
.spin-cw,
.spin-ccw,
.wiggle {
  -webkit-animation-duration: 500ms;
  animation-duration: 500ms; }

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

.slow {
  -webkit-animation-duration: 750ms !important;
  animation-duration: 750ms !important; }

.fast {
  -webkit-animation-duration: 250ms !important;
  animation-duration: 250ms !important; }

.linear {
  -webkit-animation-timing-function: linear !important;
  animation-timing-function: linear !important; }

.ease {
  -webkit-animation-timing-function: ease !important;
  animation-timing-function: ease !important; }

.ease-in {
  -webkit-animation-timing-function: ease-in !important;
  animation-timing-function: ease-in !important; }

.ease-out {
  -webkit-animation-timing-function: ease-out !important;
  animation-timing-function: ease-out !important; }

.ease-in-out {
  -webkit-animation-timing-function: ease-in-out !important;
  animation-timing-function: ease-in-out !important; }

.bounce-in {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
  animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }

.bounce-out {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
  animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }

.bounce-in-out {
  -webkit-animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
  animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }

.short-delay {
  -webkit-animation-delay: 300ms !important;
  animation-delay: 300ms !important; }

.long-delay {
  -webkit-animation-delay: 700ms !important;
  animation-delay: 700ms !important; }

/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0; }

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

hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0;
  overflow: visible; }

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

a {
  background-color: transparent; }

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

b,
strong {
  font-weight: bolder; }

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

small {
  font-size: 80%; }

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

img {
  border-style: none; }

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

button,
input {
  overflow: visible; }

button,
select {
  text-transform: none; }

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

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

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

fieldset {
  padding: 0.35em 0.75em 0.625em; }

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

progress {
  vertical-align: baseline; }

textarea {
  overflow: auto; }

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

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

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

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

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

details {
  display: block; }

summary {
  display: list-item; }

template {
  display: none; }

[hidden] {
  display: none; }

[data-whatintent="mouse"] *, [data-whatintent="mouse"] *:focus,
[data-whatintent="touch"] *,
[data-whatintent="touch"] *:focus,
[data-whatinput="mouse"] *,
[data-whatinput="mouse"] *:focus,
[data-whatinput="touch"] *,
[data-whatinput="touch"] *:focus {
  outline: none; }

[draggable=false] {
  -webkit-touch-callout: none;
  -webkit-user-select: none; }

.foundation-mq {
  font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"; }

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 100%; }

*,
*::before,
*::after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit; }

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic; }

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0; }

select {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  border-radius: 0; }

.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important; }

button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto; }
  [data-whatinput='mouse'] button {
    outline: 0; }

pre {
  overflow: auto;
  -webkit-overflow-scrolling: touch; }

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; }

.is-visible {
  display: block !important; }

.is-hidden {
  display: none !important; }

.row {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto; }
  .row::before, .row::after {
    display: table;
    content: ' ';
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .row::after {
    clear: both; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .row .row {
    margin-right: -0.625rem;
    margin-left: -0.625rem; }
    @media print, screen and (min-width: 40em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media print, screen and (min-width: 64em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    .row .row.collapse {
      margin-right: 0;
      margin-left: 0; }
  .row.expanded {
    max-width: none; }
    .row.expanded .row {
      margin-right: auto;
      margin-left: auto; }
  .row:not(.expanded) .row {
    max-width: none; }
  .row.gutter-small > .column, .row.gutter-small > .columns {
    padding-right: 0.625rem;
    padding-left: 0.625rem; }
  .row.gutter-medium > .column, .row.gutter-medium > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }

.column, .columns {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  width: 100%;
  float: left; }
  @media print, screen and (min-width: 40em) {
    .column, .columns {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .column, .columns, .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
    float: left;
    clear: none; }
  .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
    float: right; }
  .column.end:last-child:last-child, .end.columns:last-child:last-child {
    float: left; }

.column.row.row, .row.row.columns {
  float: none; }

.row .column.row.row, .row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0; }

.small-1 {
  width: 8.33333%; }

.small-push-1 {
  position: relative;
  left: 8.33333%; }

.small-pull-1 {
  position: relative;
  left: -8.33333%; }

.small-offset-0 {
  margin-left: 0%; }

.small-2 {
  width: 16.66667%; }

.small-push-2 {
  position: relative;
  left: 16.66667%; }

.small-pull-2 {
  position: relative;
  left: -16.66667%; }

.small-offset-1 {
  margin-left: 8.33333%; }

.small-3 {
  width: 25%; }

.small-push-3 {
  position: relative;
  left: 25%; }

.small-pull-3 {
  position: relative;
  left: -25%; }

.small-offset-2 {
  margin-left: 16.66667%; }

.small-4 {
  width: 33.33333%; }

.small-push-4 {
  position: relative;
  left: 33.33333%; }

.small-pull-4 {
  position: relative;
  left: -33.33333%; }

.small-offset-3 {
  margin-left: 25%; }

.small-5 {
  width: 41.66667%; }

.small-push-5 {
  position: relative;
  left: 41.66667%; }

.small-pull-5 {
  position: relative;
  left: -41.66667%; }

.small-offset-4 {
  margin-left: 33.33333%; }

.small-6 {
  width: 50%; }

.small-push-6 {
  position: relative;
  left: 50%; }

.small-pull-6 {
  position: relative;
  left: -50%; }

.small-offset-5 {
  margin-left: 41.66667%; }

.small-7 {
  width: 58.33333%; }

.small-push-7 {
  position: relative;
  left: 58.33333%; }

.small-pull-7 {
  position: relative;
  left: -58.33333%; }

.small-offset-6 {
  margin-left: 50%; }

.small-8 {
  width: 66.66667%; }

.small-push-8 {
  position: relative;
  left: 66.66667%; }

.small-pull-8 {
  position: relative;
  left: -66.66667%; }

.small-offset-7 {
  margin-left: 58.33333%; }

.small-9 {
  width: 75%; }

.small-push-9 {
  position: relative;
  left: 75%; }

.small-pull-9 {
  position: relative;
  left: -75%; }

.small-offset-8 {
  margin-left: 66.66667%; }

.small-10 {
  width: 83.33333%; }

.small-push-10 {
  position: relative;
  left: 83.33333%; }

.small-pull-10 {
  position: relative;
  left: -83.33333%; }

.small-offset-9 {
  margin-left: 75%; }

.small-11 {
  width: 91.66667%; }

.small-push-11 {
  position: relative;
  left: 91.66667%; }

.small-pull-11 {
  position: relative;
  left: -91.66667%; }

.small-offset-10 {
  margin-left: 83.33333%; }

.small-12 {
  width: 100%; }

.small-offset-11 {
  margin-left: 91.66667%; }

.small-up-1 > .column, .small-up-1 > .columns {
  float: left;
  width: 100%; }
  .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {
    clear: both; }
  .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {
    float: left; }

.small-up-2 > .column, .small-up-2 > .columns {
  float: left;
  width: 50%; }
  .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {
    clear: both; }
  .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {
    float: left; }

.small-up-3 > .column, .small-up-3 > .columns {
  float: left;
  width: 33.33333%; }
  .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
    clear: both; }
  .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {
    float: left; }

.small-up-4 > .column, .small-up-4 > .columns {
  float: left;
  width: 25%; }
  .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {
    clear: both; }
  .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {
    float: left; }

.small-up-5 > .column, .small-up-5 > .columns {
  float: left;
  width: 20%; }
  .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {
    clear: both; }
  .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {
    float: left; }

.small-up-6 > .column, .small-up-6 > .columns {
  float: left;
  width: 16.66667%; }
  .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
    clear: both; }
  .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {
    float: left; }

.small-up-7 > .column, .small-up-7 > .columns {
  float: left;
  width: 14.28571%; }
  .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {
    clear: both; }
  .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {
    float: left; }

.small-up-8 > .column, .small-up-8 > .columns {
  float: left;
  width: 12.5%; }
  .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {
    clear: both; }
  .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {
    float: left; }

.small-collapse > .column, .small-collapse > .columns {
  padding-right: 0;
  padding-left: 0; }

.small-collapse .row {
  margin-right: 0;
  margin-left: 0; }

.expanded.row .small-collapse.row {
  margin-right: 0;
  margin-left: 0; }

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-right: 0.625rem;
  padding-left: 0.625rem; }

.small-centered {
  margin-right: auto;
  margin-left: auto; }
  .small-centered, .small-centered:last-child:not(:first-child) {
    float: none;
    clear: both; }

.small-uncentered, .small-push-0, .small-pull-0 {
  position: static;
  margin-right: 0;
  margin-left: 0; }
  .small-uncentered, .small-uncentered:last-child:not(:first-child), .small-push-0, .small-push-0:last-child:not(:first-child), .small-pull-0, .small-pull-0:last-child:not(:first-child) {
    float: left;
    clear: none; }
  .small-uncentered:last-child:not(:first-child), .small-push-0:last-child:not(:first-child), .small-pull-0:last-child:not(:first-child) {
    float: right; }

@media print, screen and (min-width: 40em) {
  .medium-1 {
    width: 8.33333%; }
  .medium-push-1 {
    position: relative;
    left: 8.33333%; }
  .medium-pull-1 {
    position: relative;
    left: -8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    width: 16.66667%; }
  .medium-push-2 {
    position: relative;
    left: 16.66667%; }
  .medium-pull-2 {
    position: relative;
    left: -16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    width: 25%; }
  .medium-push-3 {
    position: relative;
    left: 25%; }
  .medium-pull-3 {
    position: relative;
    left: -25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    width: 33.33333%; }
  .medium-push-4 {
    position: relative;
    left: 33.33333%; }
  .medium-pull-4 {
    position: relative;
    left: -33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    width: 41.66667%; }
  .medium-push-5 {
    position: relative;
    left: 41.66667%; }
  .medium-pull-5 {
    position: relative;
    left: -41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    width: 50%; }
  .medium-push-6 {
    position: relative;
    left: 50%; }
  .medium-pull-6 {
    position: relative;
    left: -50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    width: 58.33333%; }
  .medium-push-7 {
    position: relative;
    left: 58.33333%; }
  .medium-pull-7 {
    position: relative;
    left: -58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    width: 66.66667%; }
  .medium-push-8 {
    position: relative;
    left: 66.66667%; }
  .medium-pull-8 {
    position: relative;
    left: -66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    width: 75%; }
  .medium-push-9 {
    position: relative;
    left: 75%; }
  .medium-pull-9 {
    position: relative;
    left: -75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    width: 83.33333%; }
  .medium-push-10 {
    position: relative;
    left: 83.33333%; }
  .medium-pull-10 {
    position: relative;
    left: -83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    width: 91.66667%; }
  .medium-push-11 {
    position: relative;
    left: 91.66667%; }
  .medium-pull-11 {
    position: relative;
    left: -91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    float: left;
    width: 100%; }
    .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
      float: left; }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    float: left;
    width: 50%; }
    .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
      float: left; }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
      float: left; }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    float: left;
    width: 25%; }
    .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
      float: left; }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    float: left;
    width: 20%; }
    .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
      float: left; }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
      float: left; }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {
      float: left; }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {
      float: left; }
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .medium-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .medium-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .medium-centered {
    margin-right: auto;
    margin-left: auto; }
    .medium-centered, .medium-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .medium-uncentered, .medium-push-0, .medium-pull-0 {
    position: static;
    margin-right: 0;
    margin-left: 0; }
    .medium-uncentered, .medium-uncentered:last-child:not(:first-child), .medium-push-0, .medium-push-0:last-child:not(:first-child), .medium-pull-0, .medium-pull-0:last-child:not(:first-child) {
      float: left;
      clear: none; }
    .medium-uncentered:last-child:not(:first-child), .medium-push-0:last-child:not(:first-child), .medium-pull-0:last-child:not(:first-child) {
      float: right; } }

@media print, screen and (min-width: 64em) {
  .large-1 {
    width: 8.33333%; }
  .large-push-1 {
    position: relative;
    left: 8.33333%; }
  .large-pull-1 {
    position: relative;
    left: -8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    width: 16.66667%; }
  .large-push-2 {
    position: relative;
    left: 16.66667%; }
  .large-pull-2 {
    position: relative;
    left: -16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    width: 25%; }
  .large-push-3 {
    position: relative;
    left: 25%; }
  .large-pull-3 {
    position: relative;
    left: -25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    width: 33.33333%; }
  .large-push-4 {
    position: relative;
    left: 33.33333%; }
  .large-pull-4 {
    position: relative;
    left: -33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    width: 41.66667%; }
  .large-push-5 {
    position: relative;
    left: 41.66667%; }
  .large-pull-5 {
    position: relative;
    left: -41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    width: 50%; }
  .large-push-6 {
    position: relative;
    left: 50%; }
  .large-pull-6 {
    position: relative;
    left: -50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    width: 58.33333%; }
  .large-push-7 {
    position: relative;
    left: 58.33333%; }
  .large-pull-7 {
    position: relative;
    left: -58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    width: 66.66667%; }
  .large-push-8 {
    position: relative;
    left: 66.66667%; }
  .large-pull-8 {
    position: relative;
    left: -66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    width: 75%; }
  .large-push-9 {
    position: relative;
    left: 75%; }
  .large-pull-9 {
    position: relative;
    left: -75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    width: 83.33333%; }
  .large-push-10 {
    position: relative;
    left: 83.33333%; }
  .large-pull-10 {
    position: relative;
    left: -83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    width: 91.66667%; }
  .large-push-11 {
    position: relative;
    left: 91.66667%; }
  .large-pull-11 {
    position: relative;
    left: -91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-up-1 > .column, .large-up-1 > .columns {
    float: left;
    width: 100%; }
    .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
      float: left; }
  .large-up-2 > .column, .large-up-2 > .columns {
    float: left;
    width: 50%; }
    .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
      float: left; }
  .large-up-3 > .column, .large-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
      float: left; }
  .large-up-4 > .column, .large-up-4 > .columns {
    float: left;
    width: 25%; }
    .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
      float: left; }
  .large-up-5 > .column, .large-up-5 > .columns {
    float: left;
    width: 20%; }
    .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
      float: left; }
  .large-up-6 > .column, .large-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
      float: left; }
  .large-up-7 > .column, .large-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {
      float: left; }
  .large-up-8 > .column, .large-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {
      float: left; }
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .large-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .large-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .large-centered {
    margin-right: auto;
    margin-left: auto; }
    .large-centered, .large-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .large-uncentered, .large-push-0, .large-pull-0 {
    position: static;
    margin-right: 0;
    margin-left: 0; }
    .large-uncentered, .large-uncentered:last-child:not(:first-child), .large-push-0, .large-push-0:last-child:not(:first-child), .large-pull-0, .large-pull-0:last-child:not(:first-child) {
      float: left;
      clear: none; }
    .large-uncentered:last-child:not(:first-child), .large-push-0:last-child:not(:first-child), .large-pull-0:last-child:not(:first-child) {
      float: right; } }

.column-block {
  margin-bottom: 1.25rem; }
  .column-block > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .column-block {
      margin-bottom: 1.875rem; }
      .column-block > :last-child {
        margin-bottom: 0; } }

.float-left {
  float: left !important; }

.float-right {
  float: right !important; }

.float-center {
  display: block;
  margin-right: auto;
  margin-left: auto; }

.clearfix::before, .clearfix::after {
  display: table;
  content: ' ';
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1; }

.clearfix::after {
  clear: both; }

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

p {
  margin-bottom: 1rem;
  font-size: inherit;
  line-height: 1.6;
  text-rendering: optimizeLegibility; }

em,
i {
  font-style: italic;
  line-height: inherit; }

strong,
b {
  font-weight: bold;
  line-height: inherit; }

small {
  font-size: 80%;
  line-height: inherit; }

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility; }
  h1 small, .h1 small,
  h2 small, .h2 small,
  h3 small, .h3 small,
  h4 small, .h4 small,
  h5 small, .h5 small,
  h6 small, .h6 small {
    line-height: 0;
    color: #cacaca; }

h1, .h1 {
  font-size: 1.5rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h2, .h2 {
  font-size: 1.25rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h3, .h3 {
  font-size: 1.1875rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h4, .h4 {
  font-size: 1.125rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h5, .h5 {
  font-size: 1.0625rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h6, .h6 {
  font-size: 1rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

@media print, screen and (min-width: 40em) {
  h1, .h1 {
    font-size: 3rem; }
  h2, .h2 {
    font-size: 2.5rem; }
  h3, .h3 {
    font-size: 1.9375rem; }
  h4, .h4 {
    font-size: 1.5625rem; }
  h5, .h5 {
    font-size: 1.25rem; }
  h6, .h6 {
    font-size: 1rem; } }

a {
  line-height: inherit;
  color: #1779ba;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: #1468a0; }
  a img {
    border: 0; }

hr {
  clear: both;
  max-width: 75rem;
  height: 0;
  margin: 1.25rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #cacaca;
  border-left: 0; }

ul,
ol,
dl {
  margin-bottom: 1rem;
  list-style-position: outside;
  line-height: 1.6; }

li {
  font-size: inherit; }

ul {
  margin-left: 1.25rem;
  list-style-type: disc; }

ol {
  margin-left: 1.25rem; }

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

dl {
  margin-bottom: 1rem; }
  dl dt {
    margin-bottom: 0.3rem;
    font-weight: bold; }

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: #8a8a8a; }

abbr, abbr[title] {
  border-bottom: 1px dotted #0a0a0a;
  cursor: help;
  text-decoration: none; }

figure {
  margin: 0; }

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #0a0a0a; }

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #8a8a8a; }

.lead {
  font-size: 125%;
  line-height: 1.6; }

.stat {
  font-size: 2.5rem;
  line-height: 1; }
  p + .stat {
    margin-top: -1rem; }

ul.no-bullet, ol.no-bullet {
  margin-left: 0;
  list-style: none; }

cite, .cite-block {
  display: block;
  color: #8a8a8a;
  font-size: 0.8125rem; }
  cite:before, .cite-block:before {
    content: "— "; }

code, .code-inline {
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a;
  display: inline;
  max-width: 100%;
  word-wrap: break-word;
  padding: 0.125rem 0.3125rem 0.0625rem; }

.code-block {
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a;
  display: block;
  overflow: auto;
  white-space: pre;
  padding: 1rem;
  margin-bottom: 1.5rem; }

.text-left {
  text-align: left; }

.text-right {
  text-align: right; }

.text-center {
  text-align: center; }

.text-justify {
  text-align: justify; }

@media print, screen and (min-width: 40em) {
  .medium-text-left {
    text-align: left; }
  .medium-text-right {
    text-align: right; }
  .medium-text-center {
    text-align: center; }
  .medium-text-justify {
    text-align: justify; } }

@media print, screen and (min-width: 64em) {
  .large-text-left {
    text-align: left; }
  .large-text-right {
    text-align: right; }
  .large-text-center {
    text-align: center; }
  .large-text-justify {
    text-align: justify; } }

.show-for-print {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    color: black !important;
    -webkit-print-color-adjust: economy;
            color-adjust: economy;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  pre,
  blockquote {
    border: 1px solid #8a8a8a;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  .print-break-inside {
    page-break-inside: auto; } }

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  padding: 0.85em 1em;
  border: 1px solid transparent;
  border-radius: 0;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: inherit;
  font-size: 0.9rem;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer; }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button.tiny {
    font-size: 0.6rem; }
  .button.small {
    font-size: 0.75rem; }
  .button.large {
    font-size: 1.25rem; }
  .button.expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {
    background-color: #1779ba;
    color: #fefefe; }
  .button:hover, .button:focus {
    background-color: #14679e;
    color: #fefefe; }
  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {
    background-color: #1779ba;
    color: #fefefe; }
  .button.primary:hover, .button.primary:focus {
    background-color: #126195;
    color: #fefefe; }
  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {
    background-color: #767676;
    color: #fefefe; }
  .button.secondary:hover, .button.secondary:focus {
    background-color: #5e5e5e;
    color: #fefefe; }
  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {
    background-color: #3adb76;
    color: #0a0a0a; }
  .button.success:hover, .button.success:focus {
    background-color: #22bb5b;
    color: #0a0a0a; }
  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {
    background-color: #ffae00;
    color: #0a0a0a; }
  .button.warning:hover, .button.warning:focus {
    background-color: #cc8b00;
    color: #0a0a0a; }
  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {
    background-color: #cc4b37;
    color: #fefefe; }
  .button.alert:hover, .button.alert:focus {
    background-color: #a53b2a;
    color: #fefefe; }
  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {
    background-color: transparent; }
  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {
    border: 1px solid #1779ba;
    color: #1779ba; }
  .button.hollow:hover, .button.hollow:focus {
    border-color: #0c3d5d;
    color: #0c3d5d; }
  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {
    border: 1px solid #1779ba;
    color: #1779ba; }
  .button.hollow.primary:hover, .button.hollow.primary:focus {
    border-color: #0c3d5d;
    color: #0c3d5d; }
  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {
    border: 1px solid #767676;
    color: #767676; }
  .button.hollow.secondary:hover, .button.hollow.secondary:focus {
    border-color: #3b3b3b;
    color: #3b3b3b; }
  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {
    border: 1px solid #3adb76;
    color: #3adb76; }
  .button.hollow.success:hover, .button.hollow.success:focus {
    border-color: #157539;
    color: #157539; }
  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {
    border: 1px solid #ffae00;
    color: #ffae00; }
  .button.hollow.warning:hover, .button.hollow.warning:focus {
    border-color: #805700;
    color: #805700; }
  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {
    border: 1px solid #cc4b37;
    color: #cc4b37; }
  .button.hollow.alert:hover, .button.hollow.alert:focus {
    border-color: #67251a;
    color: #67251a; }
  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {
    border-color: transparent;
    background-color: transparent; }
  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {
    color: #1779ba; }
  .button.clear:hover, .button.clear:focus {
    color: #0c3d5d; }
  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {
    color: #1779ba; }
  .button.clear.primary:hover, .button.clear.primary:focus {
    color: #0c3d5d; }
  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {
    color: #767676; }
  .button.clear.secondary:hover, .button.clear.secondary:focus {
    color: #3b3b3b; }
  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {
    color: #3adb76; }
  .button.clear.success:hover, .button.clear.success:focus {
    color: #157539; }
  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {
    color: #ffae00; }
  .button.clear.warning:hover, .button.clear.warning:focus {
    color: #805700; }
  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {
    color: #cc4b37; }
  .button.clear.alert:hover, .button.clear.alert:focus {
    color: #67251a; }
  .button.disabled, .button[disabled] {
    opacity: 0.25;
    cursor: not-allowed; }
  .button.dropdown::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0.4em;
    content: '';
    border-bottom-width: 0;
    border-color: #fefefe transparent transparent;
    position: relative;
    top: 0.4em;
    display: inline-block;
    float: right;
    margin-left: 1em; }
  .button.dropdown.hollow::after, .button.dropdown.clear::after {
    border-top-color: #1779ba; }
  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {
    border-top-color: #1779ba; }
  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {
    border-top-color: #767676; }
  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {
    border-top-color: #3adb76; }
  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {
    border-top-color: #ffae00; }
  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {
    border-top-color: #cc4b37; }
  .button.arrow-only::after {
    top: -0.1em;
    float: none;
    margin-left: 0; }

a.button:hover, a.button:focus {
  text-decoration: none; }

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  -webkit-box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
          box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    -webkit-box-shadow: 0 0 5px #cacaca;
            box-shadow: 0 0 5px #cacaca;
    -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }

textarea {
  max-width: 100%; }
  textarea[rows] {
    height: auto; }

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #e6e6e6;
  cursor: not-allowed; }

[type='submit'],
[type='button'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 0; }

input[type='search'] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

::-webkit-input-placeholder {
  color: #cacaca; }

::-moz-placeholder {
  color: #cacaca; }

:-ms-input-placeholder {
  color: #cacaca; }

::-ms-input-placeholder {
  color: #cacaca; }

::placeholder {
  color: #cacaca; }

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem; }

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  vertical-align: baseline;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0; }
  [type='checkbox'] + label[for],
  [type='radio'] + label[for] {
    cursor: pointer; }

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.5rem; }

[type='file'] {
  width: 100%; }

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #0a0a0a; }
  label.middle {
    margin: 0 0 1rem;
    line-height: 1.5;
    padding: 0.5625rem 0; }

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #0a0a0a; }

.input-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }
  .input-group > :first-child, .input-group > :first-child.input-group-button > * {
    border-radius: 0 0 0 0; }
  .input-group > :last-child, .input-group > :last-child.input-group-button > * {
    border-radius: 0 0 0 0; }

.input-group-label, .input-group-field, .input-group-button, .input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  margin: 0;
  white-space: nowrap; }

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #cacaca;
  background: #e6e6e6;
  color: #0a0a0a;
  text-align: center;
  white-space: nowrap;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-field {
  border-radius: 0;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  min-width: 0; }

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button,
  .input-group-button label {
    -ms-flex-item-align: stretch;
        align-self: stretch;
    height: auto;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 1rem; }

fieldset {
  margin: 0;
  padding: 0;
  border: 0; }

legend {
  max-width: 100%;
  margin-bottom: 0.5rem; }

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #cacaca; }
  .fieldset legend {
    margin: 0;
    margin-left: -0.1875rem;
    padding: 0 0.1875rem; }

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%28138, 138, 138%29"></polygon></svg>');
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    -webkit-box-shadow: 0 0 5px #cacaca;
            box-shadow: 0 0 5px #cacaca;
    -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }
  select:disabled {
    background-color: #e6e6e6;
    cursor: not-allowed; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto;
    background-image: none; }
  select:not([multiple]) {
    padding-top: 0;
    padding-bottom: 0; }

.is-invalid-input:not(:focus) {
  border-color: #ff0000;
  background-color: #fee5e5; }
  .is-invalid-input:not(:focus)::-webkit-input-placeholder {
    color: #ff0000; }
  .is-invalid-input:not(:focus)::-moz-placeholder {
    color: #ff0000; }
  .is-invalid-input:not(:focus):-ms-input-placeholder {
    color: #ff0000; }
  .is-invalid-input:not(:focus)::-ms-input-placeholder {
    color: #ff0000; }
  .is-invalid-input:not(:focus)::placeholder {
    color: #ff0000; }

.is-invalid-label {
  color: #ff0000; }

.form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #cc4b37; }
  .form-error.is-visible {
    display: block; }

input[type='range'] {
  display: block;
  width: 100%;
  height: auto;
  margin-top: 0.45rem;
  margin-bottom: 0.45rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  line-height: 1;
  cursor: pointer; }
  input[type='range']:focus {
    outline: 0; }
  input[type='range'][disabled] {
    opacity: 0.25; }
  input[type='range']::-webkit-slider-runnable-track {
    height: 0.5rem;
    background: #e6e6e6; }
  input[type='range']::-webkit-slider-thumb {
    width: 1.4rem;
    height: 1.4rem;
    margin-top: -0.45rem;
    -webkit-appearance: none;
    background: #1779ba; }
  input[type='range']::-moz-range-track {
    height: 0.5rem;
    -moz-appearance: none;
    background: #e6e6e6; }
  input[type='range']::-moz-range-thumb {
    width: 1.4rem;
    height: 1.4rem;
    margin-top: -0.45rem;
    -moz-appearance: none;
    background: #1779ba; }
  input[type='range']::-ms-track {
    height: 0.5rem;
    border: 0;
    border-top: 0.45rem solid #fefefe;
    border-bottom: 0.45rem solid #fefefe;
    background: #e6e6e6;
    overflow: visible;
    color: transparent; }
  input[type='range']::-ms-thumb {
    width: 1.4rem;
    height: 1.4rem;
    border: 0;
    background: #1779ba; }
  input[type='range']::-ms-fill-lower {
    background: #cacaca; }
  input[type='range']::-ms-fill-upper {
    background: #e6e6e6; }
  output {
    vertical-align: middle;
    margin-left: 0.5em;
    line-height: 1.4rem; }

.accordion {
  margin-left: 0;
  background: #fefefe;
  list-style-type: none; }
  .accordion[disabled] .accordion-title {
    cursor: not-allowed; }

.accordion-item:first-child > :first-child {
  border-radius: 0 0 0 0; }

.accordion-item:last-child > :last-child {
  border-radius: 0 0 0 0; }

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  font-size: 0.75rem;
  line-height: 1;
  color: #1779ba; }
  :last-child:not(.is-active) > .accordion-title {
    border-bottom: 1px solid #e6e6e6;
    border-radius: 0 0 0 0; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #e6e6e6; }
  .accordion-title::before {
    position: absolute;
    top: 50%;
    right: 1rem;
    margin-top: -0.5rem;
    content: "+"; }
  .is-active > .accordion-title::before {
    content: "–"; }

.accordion-content {
  display: none;
  padding: 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  background-color: #fefefe;
  color: #0a0a0a; }
  :last-child > .accordion-content:last-child {
    border-bottom: 1px solid #e6e6e6; }

.accordion-menu li {
  width: 100%; }

.accordion-menu a {
  padding: 0.7rem 1rem; }

.accordion-menu .is-accordion-submenu a {
  padding: 0.7rem 1rem; }

.accordion-menu .nested.is-accordion-submenu {
  margin-right: 0;
  margin-left: 1rem; }

.accordion-menu.align-right .nested.is-accordion-submenu {
  margin-right: 1rem;
  margin-left: 0; }

.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {
  position: relative; }
  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-bottom-width: 0;
    border-color: #1779ba transparent transparent;
    position: absolute;
    top: 50%;
    margin-top: -3px;
    right: 1rem; }

.accordion-menu.align-left .is-accordion-submenu-parent > a::after {
  right: 1rem;
  left: auto; }

.accordion-menu.align-right .is-accordion-submenu-parent > a::after {
  right: auto;
  left: 1rem; }

.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%; }

.is-accordion-submenu-parent {
  position: relative; }

.has-submenu-toggle > a {
  margin-right: 40px; }

.submenu-toggle {
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  cursor: pointer; }
  .submenu-toggle::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-bottom-width: 0;
    border-color: #1779ba transparent transparent;
    top: 0;
    bottom: 0;
    margin: auto; }

.submenu-toggle[aria-expanded='true']::after {
  -webkit-transform: scaleY(-1);
          transform: scaleY(-1);
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%; }

.submenu-toggle-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important; }

.badge {
  display: inline-block;
  min-width: 2.1em;
  padding: 0.3em;
  border-radius: 50%;
  font-size: 0.6rem;
  text-align: center;
  background: #1779ba;
  color: #fefefe; }
  .badge.primary {
    background: #1779ba;
    color: #fefefe; }
  .badge.secondary {
    background: #767676;
    color: #fefefe; }
  .badge.success {
    background: #3adb76;
    color: #0a0a0a; }
  .badge.warning {
    background: #ffae00;
    color: #0a0a0a; }
  .badge.alert {
    background: #cc4b37;
    color: #fefefe; }

.button-group {
  margin-bottom: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; }
  .button-group::before, .button-group::after {
    display: table;
    content: ' ';
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .button-group::after {
    clear: both; }
  .button-group::before, .button-group::after {
    display: none; }
  .button-group .button {
    margin: 0;
    margin-right: 1px;
    margin-bottom: 1px;
    font-size: 0.9rem;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
    .button-group .button:last-child {
      margin-right: 0; }
  .button-group.tiny .button {
    font-size: 0.6rem; }
  .button-group.small .button {
    font-size: 0.75rem; }
  .button-group.large .button {
    font-size: 1.25rem; }
  .button-group.expanded .button {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {
    background-color: #1779ba;
    color: #fefefe; }
  .button-group.primary .button:hover, .button-group.primary .button:focus {
    background-color: #126195;
    color: #fefefe; }
  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {
    background-color: #767676;
    color: #fefefe; }
  .button-group.secondary .button:hover, .button-group.secondary .button:focus {
    background-color: #5e5e5e;
    color: #fefefe; }
  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {
    background-color: #3adb76;
    color: #0a0a0a; }
  .button-group.success .button:hover, .button-group.success .button:focus {
    background-color: #22bb5b;
    color: #0a0a0a; }
  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {
    background-color: #ffae00;
    color: #0a0a0a; }
  .button-group.warning .button:hover, .button-group.warning .button:focus {
    background-color: #cc8b00;
    color: #0a0a0a; }
  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {
    background-color: #cc4b37;
    color: #fefefe; }
  .button-group.alert .button:hover, .button-group.alert .button:focus {
    background-color: #a53b2a;
    color: #fefefe; }
  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {
    background-color: transparent; }
  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {
    border: 1px solid #1779ba;
    color: #1779ba; }
  .button-group.hollow .button:hover, .button-group.hollow .button:focus {
    border-color: #0c3d5d;
    color: #0c3d5d; }
  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {
    border: 1px solid #1779ba;
    color: #1779ba; }
  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {
    border-color: #0c3d5d;
    color: #0c3d5d; }
  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {
    border: 1px solid #767676;
    color: #767676; }
  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {
    border-color: #3b3b3b;
    color: #3b3b3b; }
  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {
    border: 1px solid #3adb76;
    color: #3adb76; }
  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {
    border-color: #157539;
    color: #157539; }
  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {
    border: 1px solid #ffae00;
    color: #ffae00; }
  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {
    border-color: #805700;
    color: #805700; }
  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {
    border: 1px solid #cc4b37;
    color: #cc4b37; }
  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {
    border-color: #67251a;
    color: #67251a; }
  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {
    border-color: transparent;
    background-color: transparent; }
  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {
    color: #1779ba; }
  .button-group.clear .button:hover, .button-group.clear .button:focus {
    color: #0c3d5d; }
  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {
    color: #1779ba; }
  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {
    color: #0c3d5d; }
  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {
    color: #767676; }
  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {
    color: #3b3b3b; }
  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {
    color: #3adb76; }
  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {
    color: #157539; }
  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {
    color: #ffae00; }
  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {
    color: #805700; }
  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {
    color: #cc4b37; }
  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {
    color: #67251a; }
  .button-group.no-gaps .button {
    margin-right: -0.0625rem; }
    .button-group.no-gaps .button + .button {
      border-left-color: transparent; }
  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%; }
      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {
        margin-bottom: 0; }
    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
  @media print, screen and (min-width: 40em) {
    .button-group.stacked-for-small .button {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      margin-bottom: 0; } }
  @media print, screen and (min-width: 64em) {
    .button-group.stacked-for-medium .button {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      margin-bottom: 0; } }
  @media print, screen and (max-width: 39.99875em) {
    .button-group.stacked-for-small.expanded {
      display: block; }
      .button-group.stacked-for-small.expanded .button {
        display: block;
        margin-right: 0; } }
  @media print, screen and (max-width: 63.99875em) {
    .button-group.stacked-for-medium.expanded {
      display: block; }
      .button-group.stacked-for-medium.expanded .button {
        display: block;
        margin-right: 0; } }

.callout {
  position: relative;
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(10, 10, 10, 0.25);
  border-radius: 0;
  background-color: white;
  color: #0a0a0a; }
  .callout > :first-child {
    margin-top: 0; }
  .callout > :last-child {
    margin-bottom: 0; }
  .callout.primary {
    background-color: #d7ecfa;
    color: #0a0a0a; }
  .callout.secondary {
    background-color: #eaeaea;
    color: #0a0a0a; }
  .callout.success {
    background-color: #e1faea;
    color: #0a0a0a; }
  .callout.warning {
    background-color: #fff3d9;
    color: #0a0a0a; }
  .callout.alert {
    background-color: #f7e4e1;
    color: #0a0a0a; }
  .callout.small {
    padding-top: 0.5rem;
    padding-right: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.5rem; }
  .callout.large {
    padding-top: 3rem;
    padding-right: 3rem;
    padding-bottom: 3rem;
    padding-left: 3rem; }

.card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-bottom: 1rem;
  border: 1px solid #e6e6e6;
  border-radius: 0;
  background: #fefefe;
  -webkit-box-shadow: none;
          box-shadow: none;
  overflow: hidden;
  color: #0a0a0a; }
  .card > :last-child {
    margin-bottom: 0; }

.card-divider {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  padding: 1rem;
  background: #e6e6e6; }
  .card-divider > :last-child {
    margin-bottom: 0; }

.card-section {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  padding: 1rem; }
  .card-section > :last-child {
    margin-bottom: 0; }

.card-image {
  min-height: 1px; }

.close-button {
  position: absolute;
  z-index: 10;
  color: #8a8a8a;
  cursor: pointer; }
  [data-whatinput='mouse'] .close-button {
    outline: 0; }
  .close-button:hover, .close-button:focus {
    color: #0a0a0a; }
  .close-button.small {
    right: 0.66rem;
    top: 0.33em;
    font-size: 1.5em;
    line-height: 1; }
  .close-button, .close-button.medium {
    right: 1rem;
    top: 0.5rem;
    font-size: 2em;
    line-height: 1; }

.menu {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  [data-whatinput='mouse'] .menu li {
    outline: 0; }
  .menu a,
  .menu .button {
    line-height: 1;
    text-decoration: none;
    display: block;
    padding: 0.7rem 1rem; }
  .menu input,
  .menu select,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu input {
    display: inline-block; }
  .menu, .menu.horizontal {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .menu.vertical {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
    .menu.vertical.icon-top li a img,
    .menu.vertical.icon-top li a i,
    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,
    .menu.vertical.icon-bottom li a i,
    .menu.vertical.icon-bottom li a svg {
      text-align: left; }
  .menu.expanded li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .menu.expanded.icon-top li a img,
  .menu.expanded.icon-top li a i,
  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,
  .menu.expanded.icon-bottom li a i,
  .menu.expanded.icon-bottom li a svg {
    text-align: left; }
  .menu.simple {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .menu.simple li + li {
      margin-left: 1rem; }
    .menu.simple a {
      padding: 0; }
  @media print, screen and (min-width: 40em) {
    .menu.medium-horizontal {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.medium-vertical {
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.medium-expanded li {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.medium-simple li {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  @media print, screen and (min-width: 64em) {
    .menu.large-horizontal {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.large-vertical {
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.large-expanded li {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.large-simple li {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  .menu.nested {
    margin-right: 0;
    margin-left: 1rem; }
  .menu.icons a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .menu.icon-left li a, .menu.nested.icon-left li a {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap; }
    .menu.icon-left li a img,
    .menu.icon-left li a i,
    .menu.icon-left li a svg, .menu.nested.icon-left li a img,
    .menu.nested.icon-left li a i,
    .menu.nested.icon-left li a svg {
      margin-right: 0.25rem; }
  .menu.icon-right li a, .menu.nested.icon-right li a {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap; }
    .menu.icon-right li a img,
    .menu.icon-right li a i,
    .menu.icon-right li a svg, .menu.nested.icon-right li a img,
    .menu.nested.icon-right li a i,
    .menu.nested.icon-right li a svg {
      margin-left: 0.25rem; }
  .menu.icon-top li a, .menu.nested.icon-top li a {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-flow: column nowrap;
            flex-flow: column nowrap; }
    .menu.icon-top li a img,
    .menu.icon-top li a i,
    .menu.icon-top li a svg, .menu.nested.icon-top li a img,
    .menu.nested.icon-top li a i,
    .menu.nested.icon-top li a svg {
      -ms-flex-item-align: stretch;
          align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-flow: column nowrap;
            flex-flow: column nowrap; }
    .menu.icon-bottom li a img,
    .menu.icon-bottom li a i,
    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,
    .menu.nested.icon-bottom li a i,
    .menu.nested.icon-bottom li a svg {
      -ms-flex-item-align: stretch;
          align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu .is-active > a {
    background: #ff0000;
    color: #0a0a0a; }
  .menu .active > a {
    background: #ff0000;
    color: #0a0a0a; }
  .menu.align-left {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .menu.align-right li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
    .menu.align-right li .submenu li {
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
  .menu.align-right.vertical li {
    display: block;
    text-align: right; }
    .menu.align-right.vertical li .submenu li {
      text-align: right; }
  .menu.align-right.icon-top li a img,
  .menu.align-right.icon-top li a i,
  .menu.align-right.icon-top li a svg, .menu.align-right.icon-bottom li a img,
  .menu.align-right.icon-bottom li a i,
  .menu.align-right.icon-bottom li a svg {
    text-align: right; }
  .menu.align-right .nested {
    margin-right: 1rem;
    margin-left: 0; }
  .menu.align-center li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .menu.align-center li .submenu li {
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
  .menu .menu-text {
    padding: 0.7rem 1rem;
    font-weight: bold;
    line-height: 1;
    color: inherit; }

.menu-centered > .menu {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .menu-centered > .menu li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .menu-centered > .menu li .submenu li {
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start; }

.no-js [data-responsive-menu] ul {
  display: none; }

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer; }
  .menu-icon::after {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #fefefe;
    -webkit-box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
            box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
    content: ''; }
  .menu-icon:hover::after {
    background: #cacaca;
    -webkit-box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
            box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer; }
  .menu-icon.dark::after {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #0a0a0a;
    -webkit-box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
            box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
    content: ''; }
  .menu-icon.dark:hover::after {
    background: #8a8a8a;
    -webkit-box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
            box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }

.is-drilldown {
  position: relative;
  overflow: hidden; }
  .is-drilldown li {
    display: block; }
  .is-drilldown.animate-height {
    -webkit-transition: height 0.5s;
    transition: height 0.5s; }

.drilldown a {
  padding: 0.7rem 1rem;
  background: #fefefe; }

.drilldown .is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fefefe;
  -webkit-transition: -webkit-transform 0.15s linear;
  transition: -webkit-transform 0.15s linear;
  transition: transform 0.15s linear;
  transition: transform 0.15s linear, -webkit-transform 0.15s linear; }
  .drilldown .is-drilldown-submenu.is-active {
    z-index: 1;
    display: block;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  .drilldown .is-drilldown-submenu.is-closing {
    -webkit-transform: translateX(100%);
            transform: translateX(100%); }
  .drilldown .is-drilldown-submenu a {
    padding: 0.7rem 1rem; }

.drilldown .nested.is-drilldown-submenu {
  margin-right: 0;
  margin-left: 0; }

.drilldown .drilldown-submenu-cover-previous {
  min-height: 100%; }

.drilldown .is-drilldown-submenu-parent > a {
  position: relative; }
  .drilldown .is-drilldown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #1779ba;
    position: absolute;
    top: 50%;
    margin-top: -6px;
    right: 1rem; }

.drilldown.align-left .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: '';
  border-right-width: 0;
  border-color: transparent transparent transparent #1779ba;
  right: 1rem;
  left: auto; }

.drilldown.align-right .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: '';
  border-left-width: 0;
  border-color: transparent #1779ba transparent transparent;
  right: auto;
  left: 1rem; }

.drilldown .js-drilldown-back > a::before {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: '';
  border-left-width: 0;
  border-color: transparent #1779ba transparent transparent;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem; }

.dropdown-pane {
  position: absolute;
  z-index: 10;
  display: none;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-size: 1rem; }
  .dropdown-pane.is-opening {
    display: block; }
  .dropdown-pane.is-open {
    display: block;
    visibility: visible; }

.dropdown-pane.tiny {
  width: 100px; }

.dropdown-pane.small {
  width: 200px; }

.dropdown-pane.large {
  width: 400px; }

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  top: 100%;
  right: 0;
  left: auto; }

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 100%;
  right: auto;
  left: 0; }

.dropdown.menu > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem; }

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: '';
  border-bottom-width: 0;
  border-color: #1779ba transparent transparent;
  right: 5px;
  left: auto;
  margin-top: -3px; }

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0; }

.dropdown.menu > li > a {
  background: #fefefe;
  padding: 0.7rem 1rem; }

.dropdown.menu > li.is-active > a {
  background: transparent;
  color: #ff0000; }

.no-js .dropdown.menu ul {
  display: none; }

.dropdown.menu .nested.is-dropdown-submenu {
  margin-right: 0;
  margin-left: 0; }

.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0; }

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  top: 0;
  right: 100%;
  left: auto; }

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%; }

.dropdown.menu.vertical > li > a::after {
  right: 14px; }

.dropdown.menu.vertical > li.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: '';
  border-left-width: 0;
  border-color: transparent #1779ba transparent transparent;
  right: auto;
  left: 5px; }

.dropdown.menu.vertical > li.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: '';
  border-right-width: 0;
  border-color: transparent transparent transparent #1779ba; }

@media print, screen and (min-width: 40em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-bottom-width: 0;
    border-color: #1779ba transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-left-width: 0;
    border-color: transparent #1779ba transparent transparent;
    right: auto;
    left: 5px; }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #1779ba; } }

@media print, screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-bottom-width: 0;
    border-color: #1779ba transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-left-width: 0;
    border-color: transparent #1779ba transparent transparent;
    right: auto;
    left: 5px; }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #1779ba; } }

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  right: 0;
  left: auto; }

.is-dropdown-menu.vertical {
  width: 100px; }
  .is-dropdown-menu.vertical.align-right {
    float: right; }

.is-dropdown-submenu-parent {
  position: relative; }
  .is-dropdown-submenu-parent a::after {
    position: absolute;
    top: 50%;
    right: 5px;
    left: auto;
    margin-top: -6px; }
  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
    top: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: 1px solid #cacaca;
  background: #fefefe; }
  .dropdown .is-dropdown-submenu a {
    padding: 0.7rem 1rem; }
  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
    right: 14px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-left-width: 0;
    border-color: transparent #1779ba transparent transparent;
    right: auto;
    left: 5px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #1779ba; }
  .is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu.js-dropdown-active {
    display: block; }

.responsive-embed,
.flex-video {
  position: relative;
  height: 0;
  margin-bottom: 1rem;
  padding-bottom: 75%;
  overflow: hidden; }
  .responsive-embed iframe,
  .responsive-embed object,
  .responsive-embed embed,
  .responsive-embed video,
  .flex-video iframe,
  .flex-video object,
  .flex-video embed,
  .flex-video video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  .responsive-embed.widescreen,
  .flex-video.widescreen {
    padding-bottom: 56.25%; }

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 0;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #1779ba;
  color: #fefefe; }
  .label.primary {
    background: #1779ba;
    color: #fefefe; }
  .label.secondary {
    background: #767676;
    color: #fefefe; }
  .label.success {
    background: #3adb76;
    color: #0a0a0a; }
  .label.warning {
    background: #ffae00;
    color: #0a0a0a; }
  .label.alert {
    background: #cc4b37;
    color: #fefefe; }

.media-object {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 1rem;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }
  .media-object img {
    max-width: none; }
  @media print, screen and (max-width: 39.99875em) {
    .media-object.stack-for-small {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; } }

.media-object-section {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto; }
  .media-object-section:first-child {
    padding-right: 1rem; }
  .media-object-section:last-child:not(:nth-child(2)) {
    padding-left: 1rem; }
  .media-object-section > :last-child {
    margin-bottom: 0; }
  @media print, screen and (max-width: 39.99875em) {
    .stack-for-small .media-object-section {
      padding: 0;
      padding-bottom: 1rem;
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%;
      max-width: 100%; }
      .stack-for-small .media-object-section img {
        width: 100%; } }
  .media-object-section.main-section {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }

.is-off-canvas-open {
  overflow: hidden; }

.js-off-canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 11;
  width: 100%;
  height: 100%;
  -webkit-transition: opacity 0.5s ease, visibility 0.5s ease;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  background: rgba(254, 254, 254, 0.25);
  opacity: 0;
  visibility: hidden;
  overflow: hidden; }
  .js-off-canvas-overlay.is-visible {
    opacity: 1;
    visibility: visible; }
  .js-off-canvas-overlay.is-closable {
    cursor: pointer; }
  .js-off-canvas-overlay.is-overlay-absolute {
    position: absolute; }
  .js-off-canvas-overlay.is-overlay-fixed {
    position: fixed; }

.off-canvas-wrapper {
  position: relative;
  overflow: hidden; }

.off-canvas {
  position: fixed;
  z-index: 12;
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6; }
  [data-whatinput='mouse'] .off-canvas {
    outline: 0; }
  .off-canvas.is-transition-push {
    z-index: 12; }
  .off-canvas.is-closed {
    visibility: hidden; }
  .off-canvas.is-transition-overlap {
    z-index: 13; }
    .off-canvas.is-transition-overlap.is-open {
      -webkit-box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
              box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }
  .off-canvas.is-open {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }

.off-canvas-absolute {
  position: absolute;
  z-index: 12;
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6; }
  [data-whatinput='mouse'] .off-canvas-absolute {
    outline: 0; }
  .off-canvas-absolute.is-transition-push {
    z-index: 12; }
  .off-canvas-absolute.is-closed {
    visibility: hidden; }
  .off-canvas-absolute.is-transition-overlap {
    z-index: 13; }
    .off-canvas-absolute.is-transition-overlap.is-open {
      -webkit-box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
              box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }
  .off-canvas-absolute.is-open {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }

.position-left {
  top: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  width: 250px;
  -webkit-transform: translateX(-250px);
          transform: translateX(-250px); }
  .off-canvas-content .off-canvas.position-left {
    -webkit-transform: translateX(-250px);
            transform: translateX(-250px); }
    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-left.has-transition-push {
    -webkit-transform: translateX(250px);
            transform: translateX(250px); }
  .position-left.is-transition-push {
    -webkit-box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25);
            box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }

.position-right {
  top: 0;
  right: 0;
  height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  width: 250px;
  -webkit-transform: translateX(250px);
          transform: translateX(250px); }
  .off-canvas-content .off-canvas.position-right {
    -webkit-transform: translateX(250px);
            transform: translateX(250px); }
    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-right.has-transition-push {
    -webkit-transform: translateX(-250px);
            transform: translateX(-250px); }
  .position-right.is-transition-push {
    -webkit-box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25);
            box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  height: 250px;
  -webkit-transform: translateY(-250px);
          transform: translateY(-250px); }
  .off-canvas-content .off-canvas.position-top {
    -webkit-transform: translateY(-250px);
            transform: translateY(-250px); }
    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-top.has-transition-push {
    -webkit-transform: translateY(250px);
            transform: translateY(250px); }
  .position-top.is-transition-push {
    -webkit-box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25);
            box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  height: 250px;
  -webkit-transform: translateY(250px);
          transform: translateY(250px); }
  .off-canvas-content .off-canvas.position-bottom {
    -webkit-transform: translateY(250px);
            transform: translateY(250px); }
    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-bottom.has-transition-push {
    -webkit-transform: translateY(-250px);
            transform: translateY(-250px); }
  .position-bottom.is-transition-push {
    -webkit-box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25);
            box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }

.off-canvas-content {
  -webkit-transform: none;
          transform: none;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }
  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {
    -webkit-transition: -webkit-transform 0.5s ease;
    transition: -webkit-transform 0.5s ease;
    transition: transform 0.5s ease;
    transition: transform 0.5s ease, -webkit-transform 0.5s ease; }
  .off-canvas-content.has-transition-push {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }
  .off-canvas-content .off-canvas.is-open {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }

@media print, screen and (min-width: 40em) {
  .position-left.reveal-for-medium {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-left.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-left.reveal-for-medium {
      -webkit-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-left {
      margin-left: 250px; }
    .position-left.reveal-for-medium ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-medium {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-right.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-right.reveal-for-medium {
      -webkit-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-right {
      margin-right: 250px; }
    .position-right.reveal-for-medium ~ .off-canvas-content {
      margin-right: 250px; }
  .position-top.reveal-for-medium {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-top.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-top.reveal-for-medium {
      -webkit-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-top {
      margin-top: 250px; }
    .position-top.reveal-for-medium ~ .off-canvas-content {
      margin-top: 250px; }
  .position-bottom.reveal-for-medium {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-bottom.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-bottom.reveal-for-medium {
      -webkit-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-bottom {
      margin-bottom: 250px; }
    .position-bottom.reveal-for-medium ~ .off-canvas-content {
      margin-bottom: 250px; } }

@media print, screen and (min-width: 64em) {
  .position-left.reveal-for-large {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-left.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-left.reveal-for-large {
      -webkit-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-left {
      margin-left: 250px; }
    .position-left.reveal-for-large ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-large {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-right.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-right.reveal-for-large {
      -webkit-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-right {
      margin-right: 250px; }
    .position-right.reveal-for-large ~ .off-canvas-content {
      margin-right: 250px; }
  .position-top.reveal-for-large {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-top.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-top.reveal-for-large {
      -webkit-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-top {
      margin-top: 250px; }
    .position-top.reveal-for-large ~ .off-canvas-content {
      margin-top: 250px; }
  .position-bottom.reveal-for-large {
    -webkit-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-bottom.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-bottom.reveal-for-large {
      -webkit-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-bottom {
      margin-bottom: 250px; }
    .position-bottom.reveal-for-large ~ .off-canvas-content {
      margin-bottom: 250px; } }

@media print, screen and (min-width: 40em) {
  .off-canvas.in-canvas-for-medium {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    -webkit-transition: none;
    transition: none; }
    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {
      -webkit-box-shadow: none;
              box-shadow: none;
      -webkit-transform: none;
              transform: none; }
    .off-canvas.in-canvas-for-medium .close-button {
      display: none; } }

@media print, screen and (min-width: 64em) {
  .off-canvas.in-canvas-for-large {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    -webkit-transition: none;
    transition: none; }
    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {
      -webkit-box-shadow: none;
              box-shadow: none;
      -webkit-transform: none;
              transform: none; }
    .off-canvas.in-canvas-for-large .close-button {
      display: none; } }

.orbit {
  position: relative; }

.orbit-container {
  position: relative;
  height: 0;
  margin: 0;
  list-style: none;
  overflow: hidden; }

.orbit-slide {
  width: 100%;
  position: absolute; }
  .orbit-slide.no-motionui.is-active {
    top: 0;
    left: 0; }

.orbit-figure {
  margin: 0; }

.orbit-image {
  width: 100%;
  max-width: 100%;
  margin: 0; }

.orbit-caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  margin-bottom: 0;
  padding: 1rem;
  background-color: rgba(10, 10, 10, 0.5);
  color: #fefefe; }

.orbit-previous, .orbit-next {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fefefe; }
  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
    outline: 0; }
  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
    background-color: rgba(10, 10, 10, 0.5); }

.orbit-previous {
  left: 0; }

.orbit-next {
  left: auto;
  right: 0; }

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center; }
  [data-whatinput='mouse'] .orbit-bullets {
    outline: 0; }
  .orbit-bullets button {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.1rem;
    border-radius: 50%;
    background-color: #cacaca; }
    .orbit-bullets button:hover {
      background-color: #8a8a8a; }
    .orbit-bullets button.is-active {
      background-color: #8a8a8a; }

.pagination {
  margin-left: 0;
  margin-bottom: 1rem; }
  .pagination::before, .pagination::after {
    display: table;
    content: ' ';
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .pagination::after {
    clear: both; }
  .pagination li {
    margin-right: 0.0625rem;
    border-radius: 0;
    font-size: 0.875rem;
    display: none; }
    .pagination li:last-child, .pagination li:first-child {
      display: inline-block; }
    @media print, screen and (min-width: 40em) {
      .pagination li {
        display: inline-block; } }
  .pagination a,
  .pagination button {
    display: block;
    padding: 0.1875rem 0.625rem;
    border-radius: 0;
    color: #0a0a0a; }
    .pagination a:hover,
    .pagination button:hover {
      background: #e6e6e6; }
  .pagination .current {
    padding: 0.1875rem 0.625rem;
    background: #1779ba;
    color: #fefefe;
    cursor: default; }
  .pagination .disabled {
    padding: 0.1875rem 0.625rem;
    color: #cacaca;
    cursor: not-allowed; }
    .pagination .disabled:hover {
      background: transparent; }
  .pagination .ellipsis::after {
    padding: 0.1875rem 0.625rem;
    content: '\2026';
    color: #0a0a0a; }

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: "«"; }

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: "»"; }

.progress {
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0;
  background-color: #cacaca; }
  .progress.primary .progress-meter {
    background-color: #1779ba; }
  .progress.secondary .progress-meter {
    background-color: #767676; }
  .progress.success .progress-meter {
    background-color: #3adb76; }
  .progress.warning .progress-meter {
    background-color: #ffae00; }
  .progress.alert .progress-meter {
    background-color: #cc4b37; }

.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #1779ba; }

.progress-meter-text {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  margin: 0;
  font-size: 0.75rem;
  font-weight: bold;
  color: #fefefe;
  white-space: nowrap; }

.slider {
  position: relative;
  height: 0.5rem;
  margin-top: 1.25rem;
  margin-bottom: 2.25rem;
  background-color: #e6e6e6;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -ms-touch-action: none;
      touch-action: none; }

.slider-fill {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  max-width: 100%;
  height: 0.5rem;
  background-color: #cacaca;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out; }
  .slider-fill.is-dragging {
    -webkit-transition: all 0s linear;
    transition: all 0s linear; }

.slider-handle {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  left: 0;
  z-index: 1;
  cursor: -webkit-grab;
  cursor: grab;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 0;
  background-color: #1779ba;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  -ms-touch-action: manipulation;
      touch-action: manipulation; }
  [data-whatinput='mouse'] .slider-handle {
    outline: 0; }
  .slider-handle:hover {
    background-color: #14679e; }
  .slider-handle.is-dragging {
    -webkit-transition: all 0s linear;
    transition: all 0s linear;
    cursor: -webkit-grabbing;
    cursor: grabbing; }

.slider.disabled,
.slider[disabled] {
  opacity: 0.25;
  cursor: not-allowed; }

.slider.vertical {
  display: inline-block;
  width: 0.5rem;
  height: 12.5rem;
  margin: 0 1.25rem;
  -webkit-transform: scale(1, -1);
          transform: scale(1, -1); }
  .slider.vertical .slider-fill {
    top: 0;
    width: 0.5rem;
    max-height: 100%; }
  .slider.vertical .slider-handle {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1.4rem;
    height: 1.4rem;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%); }

.sticky-container {
  position: relative; }

.sticky {
  position: relative;
  z-index: 0;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0); }

.sticky.is-stuck {
  position: fixed;
  z-index: 5;
  width: 100%; }
  .sticky.is-stuck.is-at-top {
    top: 0; }
  .sticky.is-stuck.is-at-bottom {
    bottom: 0; }

.sticky.is-anchored {
  position: relative;
  right: auto;
  left: auto; }
  .sticky.is-anchored.is-at-bottom {
    bottom: 0; }

html.is-reveal-open {
  position: fixed;
  width: 100%;
  overflow-y: hidden; }
  html.is-reveal-open.zf-has-scroll {
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch; }
  html.is-reveal-open body {
    overflow-y: hidden; }

.reveal-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1005;
  display: none;
  background-color: rgba(10, 10, 10, 0.45);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

.reveal {
  z-index: 1006;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  position: relative;
  top: 100px;
  margin-right: auto;
  margin-left: auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }
  [data-whatinput='mouse'] .reveal {
    outline: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal {
      min-height: 0; } }
  .reveal .column, .reveal .columns {
    min-width: 0; }
  .reveal > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal {
      width: 600px;
      max-width: 75rem; } }
  .reveal.collapse {
    padding: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal.tiny {
      width: 30%;
      max-width: 75rem; } }
  @media print, screen and (min-width: 40em) {
    .reveal.small {
      width: 50%;
      max-width: 75rem; } }
  @media print, screen and (min-width: 40em) {
    .reveal.large {
      width: 90%;
      max-width: 75rem; } }
  .reveal.full {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 100%;
    margin-left: 0;
    border: 0;
    border-radius: 0; }
  @media print, screen and (max-width: 39.99875em) {
    .reveal {
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      width: 100%;
      max-width: none;
      height: 100%;
      min-height: 100%;
      margin-left: 0;
      border: 0;
      border-radius: 0; } }
  .reveal.without-overlay {
    position: fixed; }

.switch {
  position: relative;
  margin-bottom: 1rem;
  outline: 0;
  font-size: 0.875rem;
  font-weight: bold;
  color: #fefefe;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  height: 2rem; }

.switch-input {
  position: absolute;
  margin-bottom: 0;
  opacity: 0; }

.switch-paddle {
  position: relative;
  display: block;
  width: 4rem;
  height: 2rem;
  border-radius: 0;
  background: #cacaca;
  -webkit-transition: all 0.25s ease-out;
  transition: all 0.25s ease-out;
  font-weight: inherit;
  color: inherit;
  cursor: pointer; }
  input + .switch-paddle {
    margin: 0; }
  .switch-paddle::after {
    position: absolute;
    top: 0.25rem;
    left: 0.25rem;
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    border-radius: 0;
    background: #fefefe;
    -webkit-transition: all 0.25s ease-out;
    transition: all 0.25s ease-out;
    content: ''; }
  input:checked ~ .switch-paddle {
    background: #1779ba; }
    input:checked ~ .switch-paddle::after {
      left: 2.25rem; }
  input:disabled ~ .switch-paddle {
    cursor: not-allowed;
    opacity: 0.5; }
  [data-whatinput='mouse'] input:focus ~ .switch-paddle {
    outline: 0; }

.switch-active, .switch-inactive {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%); }

.switch-active {
  left: 8%;
  display: none; }
  input:checked + label > .switch-active {
    display: block; }

.switch-inactive {
  right: 15%; }
  input:checked + label > .switch-inactive {
    display: none; }

.switch.tiny {
  height: 1.5rem; }
  .switch.tiny .switch-paddle {
    width: 3rem;
    height: 1.5rem;
    font-size: 0.625rem; }
  .switch.tiny .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 1rem;
    height: 1rem; }
  .switch.tiny input:checked ~ .switch-paddle::after {
    left: 1.75rem; }

.switch.small {
  height: 1.75rem; }
  .switch.small .switch-paddle {
    width: 3.5rem;
    height: 1.75rem;
    font-size: 0.75rem; }
  .switch.small .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 1.25rem;
    height: 1.25rem; }
  .switch.small input:checked ~ .switch-paddle::after {
    left: 2rem; }

.switch.large {
  height: 2.5rem; }
  .switch.large .switch-paddle {
    width: 5rem;
    height: 2.5rem;
    font-size: 1rem; }
  .switch.large .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 2rem;
    height: 2rem; }
  .switch.large input:checked ~ .switch-paddle::after {
    left: 2.75rem; }

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0; }
  thead,
  tbody,
  tfoot {
    border: 1px solid #f1f1f1;
    background-color: #fefefe; }
  caption {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold; }
  thead {
    background: #f8f8f8;
    color: #0a0a0a; }
  tfoot {
    background: #f1f1f1;
    color: #0a0a0a; }
  thead tr,
  tfoot tr {
    background: transparent; }
  thead th,
  thead td,
  tfoot th,
  tfoot td {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold;
    text-align: left; }
  th,
  td {
    border-left: 1px solid #C0C0C0;
    padding: 0.5rem 0.625rem 0.625rem; }
  th {
    text-align: left; }
  tbody tr:nth-child(even) {
    border-bottom: 0;
    background-color: #f1f1f1; }
  table.unstriped tbody {
    background-color: #fefefe; }
    table.unstriped tbody tr {
      border-bottom: 0;
      border-bottom: 1px solid #f1f1f1;
      background-color: #fefefe; }

@media print, screen and (max-width: 63.99875em) {
  table.stack thead {
    display: none; }
  table.stack tfoot {
    display: none; }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block; }
  table.stack tbody th {
    text-align: left; }
  table.stack td {
    border-top: 0; } }

table.scroll {
  display: block;
  width: 100%;
  overflow-x: auto; }

table.hover thead tr:hover {
  background-color: #f3f3f3; }

table.hover tfoot tr:hover {
  background-color: #ececec; }

table.hover tbody tr:hover {
  background-color: #f9f9f9; }

table.hover:not(.unstriped) tr:nth-of-type(even):hover {
  background-color: #ececec; }

.table-scroll {
  overflow-x: auto; }

.tabs {
  margin: 0;
  border: 1px solid #e6e6e6;
  background: #fefefe;
  list-style-type: none; }
  .tabs::before, .tabs::after {
    display: table;
    content: ' ';
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .tabs::after {
    clear: both; }

.tabs.vertical > li {
  display: block;
  float: none;
  width: auto; }

.tabs.simple > li > a {
  padding: 0; }
  .tabs.simple > li > a:hover {
    background: transparent; }

.tabs.primary {
  background: #1779ba; }
  .tabs.primary > li > a {
    color: #fefefe; }
    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
      background: #1673b1; }

.tabs-title {
  float: left; }
  .tabs-title > a {
    display: block;
    padding: 1.25rem 1.5rem;
    font-size: 0.75rem;
    line-height: 1;
    color: #1779ba; }
    [data-whatinput='mouse'] .tabs-title > a {
      outline: 0; }
    .tabs-title > a:hover {
      background: #fefefe;
      color: #1468a0; }
    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
      background: #e6e6e6;
      color: #1779ba; }

.tabs-content {
  border: 1px solid #e6e6e6;
  border-top: 0;
  background: #fefefe;
  color: #0a0a0a;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease; }

.tabs-content.vertical {
  border: 1px solid #e6e6e6;
  border-left: 0; }

.tabs-panel {
  display: none;
  padding: 1rem; }
  .tabs-panel.is-active {
    display: block; }

.thumbnail {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 1rem;
  border: solid 4px #fefefe;
  border-radius: 0;
  -webkit-box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
          box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
  line-height: 0; }

a.thumbnail {
  -webkit-transition: -webkit-box-shadow 200ms ease-out;
  transition: -webkit-box-shadow 200ms ease-out;
  transition: box-shadow 200ms ease-out;
  transition: box-shadow 200ms ease-out, -webkit-box-shadow 200ms ease-out; }
  a.thumbnail:hover, a.thumbnail:focus {
    -webkit-box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5);
            box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }
  a.thumbnail image {
    -webkit-box-shadow: none;
            box-shadow: none; }

.title-bar {
  padding: 0.5rem;
  background: #0a0a0a;
  color: #fefefe;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .title-bar .menu-icon {
    margin-left: 0.25rem;
    margin-right: 0.25rem; }

.title-bar-left,
.title-bar-right {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px; }

.title-bar-right {
  text-align: right; }

.title-bar-title {
  display: inline-block;
  vertical-align: middle;
  font-weight: bold; }

.has-tip {
  position: relative;
  display: inline-block;
  border-bottom: dotted 1px #8a8a8a;
  font-weight: bold;
  cursor: help; }

.tooltip {
  position: absolute;
  top: calc(100% + 0.6495rem);
  z-index: 1200;
  max-width: 10rem;
  padding: 0.75rem;
  border-radius: 0;
  background-color: #0a0a0a;
  font-size: 80%;
  color: #fefefe; }
  .tooltip::before {
    position: absolute; }
  .tooltip.bottom::before {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0.75rem;
    content: '';
    border-top-width: 0;
    border-color: transparent transparent #0a0a0a;
    bottom: 100%; }
  .tooltip.bottom.align-center::before {
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%); }
  .tooltip.top::before {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0.75rem;
    content: '';
    border-bottom-width: 0;
    border-color: #0a0a0a transparent transparent;
    top: 100%;
    bottom: auto; }
  .tooltip.top.align-center::before {
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%); }
  .tooltip.left::before {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0.75rem;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #0a0a0a;
    left: 100%; }
  .tooltip.left.align-center::before {
    bottom: auto;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%); }
  .tooltip.right::before {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0.75rem;
    content: '';
    border-left-width: 0;
    border-color: transparent #0a0a0a transparent transparent;
    right: 100%;
    left: auto; }
  .tooltip.right.align-center::before {
    bottom: auto;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%); }
  .tooltip.align-top::before {
    bottom: auto;
    top: 10%; }
  .tooltip.align-bottom::before {
    bottom: 10%;
    top: auto; }
  .tooltip.align-left::before {
    left: 10%;
    right: auto; }
  .tooltip.align-right::before {
    left: auto;
    right: 10%; }

.top-bar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.5rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .top-bar,
  .top-bar ul {
    background-color: #e6e6e6; }
  .top-bar input {
    max-width: 200px;
    margin-right: 1rem; }
  .top-bar .input-group-field {
    width: 100%;
    margin-right: 0; }
  .top-bar input.button {
    width: auto; }
  .top-bar .top-bar-left,
  .top-bar .top-bar-right {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  @media print, screen and (min-width: 40em) {
    .top-bar {
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap; }
      .top-bar .top-bar-left {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 auto;
                flex: 1 1 auto;
        margin-right: auto; }
      .top-bar .top-bar-right {
        -webkit-box-flex: 0;
            -ms-flex: 0 1 auto;
                flex: 0 1 auto;
        margin-left: auto; } }
  @media print, screen and (max-width: 63.99875em) {
    .top-bar.stacked-for-medium {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
      .top-bar.stacked-for-medium .top-bar-left,
      .top-bar.stacked-for-medium .top-bar-right {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%; } }
  @media print, screen and (max-width: 74.99875em) {
    .top-bar.stacked-for-large {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
      .top-bar.stacked-for-large .top-bar-left,
      .top-bar.stacked-for-large .top-bar-right {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%; } }

.top-bar-title {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  margin: 0.5rem 1rem 0.5rem 0; }

.top-bar-left,
.top-bar-right {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

.visible {
  visibility: visible; }

@media print, screen and (max-width: 39.99875em) {
  .hide-for-small-only {
    display: none !important; } }

@media screen and (max-width: 0em), screen and (min-width: 40em) {
  .show-for-small-only {
    display: none !important; } }

@media print, screen and (min-width: 40em) {
  .hide-for-medium {
    display: none !important; } }

@media screen and (max-width: 39.99875em) {
  .show-for-medium {
    display: none !important; } }

@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {
  .hide-for-medium-only {
    display: none !important; } }

@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {
  .show-for-medium-only {
    display: none !important; } }

@media print, screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important; } }

@media screen and (max-width: 63.99875em) {
  .show-for-large {
    display: none !important; } }

@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {
  .hide-for-large-only {
    display: none !important; } }

@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important; } }

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important; }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important; }

.show-for-landscape,
.hide-for-portrait {
  display: block !important; }
  @media screen and (orientation: landscape) {
    .show-for-landscape,
    .hide-for-portrait {
      display: block !important; } }
  @media screen and (orientation: portrait) {
    .show-for-landscape,
    .hide-for-portrait {
      display: none !important; } }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }
  @media screen and (orientation: landscape) {
    .hide-for-landscape,
    .show-for-portrait {
      display: none !important; } }
  @media screen and (orientation: portrait) {
    .hide-for-landscape,
    .show-for-portrait {
      display: block !important; } }

.show-for-dark-mode {
  display: none; }

.hide-for-dark-mode {
  display: block; }

@media screen and (prefers-color-scheme: dark) {
  .show-for-dark-mode {
    display: block !important; }
  .hide-for-dark-mode {
    display: none !important; } }

.show-for-ie {
  display: none; }

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .show-for-ie {
    display: block !important; }
  .hide-for-ie {
    display: none !important; } }

.show-for-sticky {
  display: none; }

.is-stuck .show-for-sticky {
  display: block; }

.is-stuck .hide-for-sticky {
  display: none; }

/*
 * zurb_foundation.scss - Contains all Drupal-specific SASS for this theme.
 *
 * @todo Split this into multiple folders/files.
*/
.region-highlighted:empty {
  display: none; }

.toolbar-tray a {
  font-size: 13px; }

.toolbar .toolbar-toggle-orientation .toolbar-icon {
  margin: 0; }
  .toolbar .toolbar-toggle-orientation .toolbar-icon:before {
    min-height: 0; }

.top-bar-section ul li {
  padding-top: 0; }
  .top-bar-section ul li a.is-active {
    color: #ffffff; }

.no-js .top-bar {
  display: none; }

@media screen and (min-width: 40em) {
  .no-js .top-bar {
    display: block; }
  .no-js .title-bar {
    display: none; } }

body.toolbar-fixed .sticky.is-stuck .top-bar {
  margin-top: 39px; }

body.toolbar-fixed.toolbar-horizontal.toolbar-tray-open .sticky.is-stuck .top-bar {
  margin-top: 78px; }

body.toolbar-fixed .sticky.is-stuck.is-at-top {
  margin-top: 0 !important; }

.top-bar .menu-item--collapsed,
.top-bar .menu-item--expanded {
  list-style: none; }

.top-bar .search-block-form .form-item-keys,
.top-bar .search-block-form .form-actions {
  display: inline-block; }

.dropbutton-wrapper {
  background-color: #008cba;
  margin: 0 0 1.25rem; }
  .dropbutton-wrapper .button {
    margin-bottom: 0;
    width: 100%;
    text-align: left; }

/**
 * Foundation for Sites
 * Version 6.7.4
 * https://get.foundation
 * Licensed under MIT Open Source
 */
@media print, screen and (min-width: 40em) {
  .reveal, .reveal.tiny, .reveal.small, .reveal.large {
    right: auto;
    left: auto;
    margin: 0 auto; } }

/* if it needs to be easy to override, it might be a component instead */
/* normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0; }

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block; }

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */ }

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  /* 2 */ }

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder; }

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none; }

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */ }

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible; }

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none; }

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; }

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0; }

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText; }

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em; }

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */ }

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline; }

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto; }

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */ }

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */ }

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block; }

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item; }

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none; }

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none; }

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 100%; }

*,
*::before,
*::after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit; }

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic; }

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0; }

select {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  border-radius: 0; }

button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto; }
  [data-whatinput='mouse'] button {
    outline: 0; }

pre {
  overflow: auto; }

hr {
  clear: both;
  max-width: 75rem;
  height: 0;
  margin: 1.25rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #cacaca;
  border-left: 0; }

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; }

svg {
  fill: currentColor; }

figure {
  margin: 0; }

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

p,
dl,
ul,
ol {
  margin-bottom: 1.5rem; }

p {
  letter-spacing: -.1px;
  text-rendering: optimizeLegibility; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-style: normal;
  font-weight: normal;
  margin-bottom: 0.5em;
  text-rendering: optimizeLegibility; }

h1 {
  font-size: 1.5rem;
  line-height: 1.4; }

h2 {
  font-size: 1.25rem;
  line-height: 1.4; }

h3 {
  font-size: 1.1875rem;
  line-height: 1.4; }

h4 {
  font-size: 1.125rem;
  line-height: 1.4; }

h5 {
  font-size: 1.0625rem;
  line-height: 1.4; }

h6 {
  font-size: 1rem;
  line-height: 1.4; }

@media print, screen and (min-width: 40em) {
  h1 {
    font-size: 3rem; }
  h2 {
    font-size: 2.5rem; }
  h3 {
    font-size: 1.9375rem; }
  h4 {
    font-size: 1.5625rem; }
  h5 {
    font-size: 1.25rem; }
  h6 {
    font-size: 1rem; } }

a {
  color: inherit;
  cursor: pointer;
  font-weight: 700;
  text-decoration-color: #283FAF;
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease; }
  a:hover, a:focus {
    color: #283FAF; }
  a[class] {
    font-weight: 400;
    text-decoration: none;
    color: inherit; }
    a[class]:hover, a[class]:focus {
      color: inherit; }
  a img {
    border: 0; }

ul,
ol,
dl {
  list-style-position: outside; }

ul,
ol {
  margin-left: 1.25rem; }

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

ol {
  list-style-type: decimal; }
  ol ol {
    list-style-type: lower-alpha; }
    ol ol ol {
      list-style-type: upper-roman; }
      ol ol ol ol {
        list-style-type: lower-roman; }

ul {
  list-style-type: disc; }
  ul ul {
    list-style-type: circle; }
    ul ul ul {
      list-style-type: square; }

dl dt {
  font-weight: bold; }

dd {
  margin-left: 0; }

dd + dt {
  margin-top: 1.125em; }

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  -webkit-box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
          box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    -webkit-box-shadow: 0 0 5px #cacaca;
            box-shadow: 0 0 5px #cacaca;
    -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }

textarea {
  max-width: 100%; }
  textarea[rows] {
    height: auto; }

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #e6e6e6;
  cursor: not-allowed; }

[type='submit'],
[type='button'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 0; }

input[type='search'] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

::-webkit-input-placeholder {
  color: #cacaca; }

::-moz-placeholder {
  color: #cacaca; }

:-ms-input-placeholder {
  color: #cacaca; }

::-ms-input-placeholder {
  color: #cacaca; }

::placeholder {
  color: #cacaca; }

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem; }

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  vertical-align: baseline;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0; }
  [type='checkbox'] + label[for],
  [type='radio'] + label[for] {
    cursor: pointer; }

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.5rem; }

[type='file'] {
  width: 100%; }

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #0a0a0a; }
  label.middle {
    margin: 0 0 1rem;
    line-height: 1.5;
    padding: 0.5625rem 0; }

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #0a0a0a; }

fieldset {
  margin: 0;
  padding: 0;
  border: 0; }

legend {
  max-width: 100%;
  margin-bottom: 0.5rem; }

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #cacaca; }
  .fieldset legend {
    margin: 0;
    margin-left: -0.1875rem;
    padding: 0 0.1875rem; }

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%28138, 138, 138%29"></polygon></svg>');
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    -webkit-box-shadow: 0 0 5px #cacaca;
            box-shadow: 0 0 5px #cacaca;
    -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }
  select:disabled {
    background-color: #e6e6e6;
    cursor: not-allowed; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto;
    background-image: none; }
  select:not([multiple]) {
    padding-top: 0;
    padding-bottom: 0; }

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0; }
  thead,
  tbody,
  tfoot {
    border: 1px solid #f1f1f1;
    background-color: #fefefe; }
  caption {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold; }
  thead {
    background: #f8f8f8;
    color: #0a0a0a; }
  tfoot {
    background: #f1f1f1;
    color: #0a0a0a; }
  thead tr,
  tfoot tr {
    background: transparent; }
  thead th,
  thead td,
  tfoot th,
  tfoot td {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold;
    text-align: left; }
  th,
  td {
    border-left: 1px solid #C0C0C0;
    padding: 0.5rem 0.625rem 0.625rem; }
  th {
    text-align: left; }
  tbody tr:nth-child(even) {
    border-bottom: 0;
    background-color: #f1f1f1; }
  table.unstriped tbody {
    background-color: #fefefe; }
    table.unstriped tbody tr {
      border-bottom: 0;
      border-bottom: 1px solid #f1f1f1;
      background-color: #fefefe; }

.show-for-print {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    color: black !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  pre,
  blockquote {
    border: 1px solid #707070;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  .print-break-inside {
    page-break-inside: auto; } }

.align-left {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.align-right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.align-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.align-justify {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.align-spaced {
  -ms-flex-pack: distribute;
      justify-content: space-around; }

.align-left.vertical.menu > li > a {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.align-right.vertical.menu > li > a {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.align-center.vertical.menu > li > a {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.align-top {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }

.align-self-top {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.align-bottom {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end; }

.align-self-bottom {
  -ms-flex-item-align: end;
      align-self: flex-end; }

.align-middle {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.align-self-middle {
  -ms-flex-item-align: center;
      align-self: center; }

.align-stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }

.align-self-stretch {
  -ms-flex-item-align: stretch;
      align-self: stretch; }

.align-center-middle {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-line-pack: center;
      align-content: center; }

.small-order-1 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1; }

.small-order-2 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2; }

.small-order-3 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3; }

.small-order-4 {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4; }

.small-order-5 {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5; }

.small-order-6 {
  -webkit-box-ordinal-group: 7;
      -ms-flex-order: 6;
          order: 6; }

@media print, screen and (min-width: 40em) {
  .medium-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .medium-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2; }
  .medium-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3; }
  .medium-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4; }
  .medium-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5; }
  .medium-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6; } }

@media print, screen and (min-width: 64em) {
  .large-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .large-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2; }
  .large-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3; }
  .large-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4; }
  .large-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5; }
  .large-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6; } }

.flex-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.flex-child-auto {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto; }

.flex-child-grow {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto; }

.flex-child-shrink {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto; }

.flex-dir-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }

.flex-dir-row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }

.flex-dir-column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

.flex-dir-column-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse; }

@media print, screen and (min-width: 40em) {
  .medium-flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .medium-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .medium-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .medium-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; }
  .medium-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .medium-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .medium-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
  .medium-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

@media print, screen and (min-width: 64em) {
  .large-flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .large-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .large-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .large-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; }
  .large-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .large-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .large-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
  .large-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

.row {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap; }
  .row .row {
    margin-right: -0.625rem;
    margin-left: -0.625rem; }
    @media print, screen and (min-width: 40em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media print, screen and (min-width: 64em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    .row .row.collapse {
      margin-right: 0;
      margin-left: 0; }
  .row.expanded {
    max-width: none; }
    .row.expanded .row {
      margin-right: auto;
      margin-left: auto; }
  .row:not(.expanded) .row {
    max-width: none; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .row.is-collapse-child,
  .row.collapse > .column > .row,
  .row.collapse > .columns > .row {
    margin-right: 0;
    margin-left: 0; }

.column, .columns {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  min-width: 0; }
  @media print, screen and (min-width: 40em) {
    .column, .columns {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.column.row.row, .row.row.columns {
  float: none;
  display: block; }

.row .column.row.row, .row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0; }

.small-1 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 8.33333%;
          flex: 0 0 8.33333%;
  max-width: 8.33333%; }

.small-offset-0 {
  margin-left: 0%; }

.small-2 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 16.66667%;
          flex: 0 0 16.66667%;
  max-width: 16.66667%; }

.small-offset-1 {
  margin-left: 8.33333%; }

.small-3 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%; }

.small-offset-2 {
  margin-left: 16.66667%; }

.small-4 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
  max-width: 33.33333%; }

.small-offset-3 {
  margin-left: 25%; }

.small-5 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 41.66667%;
          flex: 0 0 41.66667%;
  max-width: 41.66667%; }

.small-offset-4 {
  margin-left: 33.33333%; }

.small-6 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%; }

.small-offset-5 {
  margin-left: 41.66667%; }

.small-7 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 58.33333%;
          flex: 0 0 58.33333%;
  max-width: 58.33333%; }

.small-offset-6 {
  margin-left: 50%; }

.small-8 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 66.66667%;
          flex: 0 0 66.66667%;
  max-width: 66.66667%; }

.small-offset-7 {
  margin-left: 58.33333%; }

.small-9 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 75%;
          flex: 0 0 75%;
  max-width: 75%; }

.small-offset-8 {
  margin-left: 66.66667%; }

.small-10 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 83.33333%;
          flex: 0 0 83.33333%;
  max-width: 83.33333%; }

.small-offset-9 {
  margin-left: 75%; }

.small-11 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 91.66667%;
          flex: 0 0 91.66667%;
  max-width: 91.66667%; }

.small-offset-10 {
  margin-left: 83.33333%; }

.small-12 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%; }

.small-offset-11 {
  margin-left: 91.66667%; }

.small-up-1 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-1 > .column, .small-up-1 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }

.small-up-2 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-2 > .column, .small-up-2 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }

.small-up-3 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-3 > .column, .small-up-3 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }

.small-up-4 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-4 > .column, .small-up-4 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }

.small-up-5 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-5 > .column, .small-up-5 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%; }

.small-up-6 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-6 > .column, .small-up-6 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }

.small-up-7 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-7 > .column, .small-up-7 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 14.28571%;
            flex: 0 0 14.28571%;
    max-width: 14.28571%; }

.small-up-8 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-8 > .column, .small-up-8 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12.5%;
            flex: 0 0 12.5%;
    max-width: 12.5%; }

.small-collapse > .column, .small-collapse > .columns {
  padding-right: 0;
  padding-left: 0; }

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-right: 0.625rem;
  padding-left: 0.625rem; }

@media print, screen and (min-width: 40em) {
  .medium-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-1 > .column, .medium-up-1 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }
  .medium-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-2 > .column, .medium-up-2 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%; }
  .medium-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-3 > .column, .medium-up-3 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 33.33333%;
              flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .medium-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-4 > .column, .medium-up-4 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 25%;
              flex: 0 0 25%;
      max-width: 25%; }
  .medium-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-5 > .column, .medium-up-5 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 20%;
              flex: 0 0 20%;
      max-width: 20%; }
  .medium-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-6 > .column, .medium-up-6 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 16.66667%;
              flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .medium-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-7 > .column, .medium-up-7 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 14.28571%;
              flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  .medium-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-8 > .column, .medium-up-8 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 12.5%;
              flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .medium-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; } }

.row.medium-unstack > .column, .row.medium-unstack > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%; }
  @media print, screen and (min-width: 40em) {
    .row.medium-unstack > .column, .row.medium-unstack > .columns {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }

@media print, screen and (min-width: 40em) {
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; } }

@media print, screen and (min-width: 64em) {
  .large-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-1 > .column, .large-up-1 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }
  .large-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-2 > .column, .large-up-2 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%; }
  .large-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-3 > .column, .large-up-3 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 33.33333%;
              flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .large-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-4 > .column, .large-up-4 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 25%;
              flex: 0 0 25%;
      max-width: 25%; }
  .large-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-5 > .column, .large-up-5 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 20%;
              flex: 0 0 20%;
      max-width: 20%; }
  .large-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-6 > .column, .large-up-6 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 16.66667%;
              flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .large-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-7 > .column, .large-up-7 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 14.28571%;
              flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  .large-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-8 > .column, .large-up-8 > .columns {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 12.5%;
              flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media print, screen and (min-width: 64em) and (min-width: 64em) {
  .large-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; } }

.row.large-unstack > .column, .row.large-unstack > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%; }
  @media print, screen and (min-width: 64em) {
    .row.large-unstack > .column, .row.large-unstack > .columns {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }

@media print, screen and (min-width: 64em) {
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; } }

.shrink {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  max-width: 100%; }

.column-block {
  margin-bottom: 1.25rem; }
  .column-block > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .column-block {
      margin-bottom: 1.875rem; }
      .column-block > :last-child {
        margin-bottom: 0; } }

.float-left {
  float: left; }

.float-right {
  float: right; }

.clearfix::before, .clearfix::after {
  display: table;
  content: ' ';
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1; }

.clearfix::after {
  clear: both; }

.header-row {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  min-width: 0;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding-top: 48px;
  padding-bottom: 48px; }
  @media print, screen and (min-width: 40em) {
    .header-row {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .header-row h2, .header-row h3 {
    text-align: center;
    margin-bottom: 48px; }
  @media print, screen and (min-width: 40em) {
    .header-row h2, .header-row h3 {
      margin-bottom: 0;
      margin-right: auto;
      padding-right: 32px;
      text-align: left; } }

.media-object {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 1rem;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }
  .media-object img {
    max-width: none; }
  @media print, screen and (max-width: 39.99875em) {
    .media-object.stack-for-small {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; } }

.media-object-section {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto; }
  .media-object-section:first-child {
    padding-right: 1rem; }
  .media-object-section:last-child:not(:nth-child(2)) {
    padding-left: 1rem; }
  .media-object-section > :last-child {
    margin-bottom: 0; }
  @media print, screen and (max-width: 39.99875em) {
    .stack-for-small .media-object-section {
      padding: 0;
      padding-bottom: 1rem;
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%;
      max-width: 100%; }
      .stack-for-small .media-object-section img {
        width: 100%; } }
  .media-object-section.main-section {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }

.responsive-embed {
  position: relative;
  height: 0;
  margin-bottom: 1rem;
  padding-bottom: 56.25%;
  overflow: hidden; }
  .responsive-embed iframe,
  .responsive-embed object,
  .responsive-embed embed,
  .responsive-embed video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  .responsive-embed.default {
    padding-bottom: 75%; }

.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important; }

.responsive-embed__scrim {
  background-color: rgba(37, 37, 37, 0.7);
  background: -webkit-gradient(linear, left bottom, left top, from(#252525), to(rgba(37, 37, 37, 0)));
  background: linear-gradient(0deg, #252525 0%, rgba(37, 37, 37, 0) 100%);
  color: #FFFFFF;
  bottom: 0;
  left: 0;
  padding: 32px 32px 16px 16px;
  position: absolute;
  width: 100%; }
  @media print, screen and (min-width: 64em) {
    .responsive-embed__scrim {
      padding-left: 48px;
      padding-bottom: 48px; } }

.responsive-embed__play-btn {
  color: inherit;
  font-weight: 600;
  font-size: 1.125rem; }
  .responsive-embed__play-btn i {
    border: 2px solid currentColor;
    border-radius: 50%;
    display: inline-block;
    margin-right: 16px;
    padding: 10px 10px 10px 18px;
    -webkit-transition: background-color 0.3s ease;
    transition: background-color 0.3s ease;
    vertical-align: middle; }
    .responsive-embed__play-btn i:hover {
      background-color: #283FAF;
      border-color: #283FAF; }

.icon-fw {
  display: inline-block;
  width: 24px;
  margin-right: 8px;
  vertical-align: middle; }

.icon-stacked {
  display: block;
  text-align: center; }

.icon-circle {
  border-radius: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 80px;
  text-align: center;
  width: 80px; }
  .icon-circle > svg {
    margin: auto;
    max-width: 55%; }

.layout-header, .layout-sticky-header {
  background-color: #FFFFFF;
  padding: 8px 24px;
  position: relative;
  z-index: 100; }

.layout-sticky-header {
  border-bottom: 1px solid #C0C0C0;
  -webkit-box-shadow: 0 8px 8px rgba(54, 54, 54, 0.1);
          box-shadow: 0 8px 8px rgba(54, 54, 54, 0.1);
  position: sticky;
  top: 0; }

.layout-footer {
  background-color: #252525;
  color: #FFFFFF;
  padding: 48px 0 24px; }

.layout-content {
  padding-left: 24px;
  padding-right: 24px; }

.layout-wrapper {
  max-width: 1250px; }

.layout-wrapper-content {
  max-width: 625px; }

.blockquote {
  border: 1px solid #cacaca;
  color: #00205B;
  font-size: 1.375rem;
  font-weight: 700;
  margin: 0 auto 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem; }
  .blockquote p {
    line-height: 1.5; }
    .blockquote p:before {
      content: "\“";
      font-size: 1.125em;
      position: absolute;
      -webkit-transform: translate(-0.6em, -0.1em);
              transform: translate(-0.6em, -0.1em); }
    .blockquote p:after {
      content: "\”";
      font-size: 1.125em; }
  .blockquote cite {
    color: #8a8a8a;
    display: block;
    font-size: 0.8125rem;
    font-style: normal;
    letter-spacing: 1px;
    text-transform: uppercase; }
  @media print, screen and (min-width: 40em) {
    .blockquote {
      font-size: 2.125rem;
      padding: 3.25rem 6.5rem; }
      .blockquote p {
        line-height: 1.235; } }

.breadcrumbs {
  font-size: 1rem;
  list-style: none;
  margin-left: 0; }
  .breadcrumbs li {
    display: inline-block;
    padding-left: 0; }
    .breadcrumbs li:not(:last-child)::after {
      position: relative;
      margin: 0 0.75rem;
      opacity: 1;
      content: "/"; }
  .breadcrumbs a {
    color: #1779ba;
    font-weight: 400;
    text-decoration: none; }
    .breadcrumbs a:hover {
      text-decoration: underline; }

.button {
  /* ModernTribe flavor */
  /* ================================================== */
  -webkit-appearance: none;
  border: 2px solid;
  border-radius: 0;
  cursor: pointer;
  display: inline-block;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1;
  margin: 0 0 1rem 0;
  padding: 0.85em 1em;
  text-align: center;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  vertical-align: middle;
  /* ================================================== */ }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button, .button.blue {
    background-color: transparent;
    border-color: #283FAF;
    color: #283FAF; }
    .button:hover, .button:focus, .button.blue:hover, .button.blue:focus {
      background-color: #283FAF;
      color: #FFFFFF; }
  .button.yellow {
    border-color: #FFC70A;
    color: #252525; }
    .button.yellow:hover, .button.yellow:focus {
      background-color: #FFC70A; }
  .button.medium-grey {
    border-color: #C0C0C0;
    color: #C0C0C0; }
    .button.medium-grey:hover, .button.medium-grey:focus {
      background-color: #707070;
      border-color: #707070;
      color: #FFFFFF; }
      .button.medium-grey:hover svg, .button.medium-grey:focus svg {
        fill: #FFC70A; }
  .button.white {
    border-color: #FFFFFF;
    color: #FFFFFF; }
    .button.white:hover, .button.white:focus {
      background-color: #FFFFFF;
      border-color: #FFFFFF;
      color: #283FAF; }
  .button.alt {
    border-top: none;
    border-left: none;
    border-right: none;
    padding: 0.25rem 0.5rem; }
    .button.alt svg {
      margin-left: 0.5rem; }
  .button.expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
  .button.disabled, .button[disabled] {
    cursor: not-allowed;
    opacity: 0.25;
    pointer-events: none; }

a.button {
  text-decoration: none; }
  a.button:hover, a.button:focus {
    text-decoration: none; }

.link-1 {
  border-bottom: 2px solid #FFC70A;
  color: #252525;
  display: inline-block;
  font-size: 1.25rem;
  font-weight: 900;
  padding: 5px 0 0;
  position: relative;
  text-align: center;
  text-decoration: none;
  -webkit-transition: padding 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
  transition: padding 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
  will-change: padding;
  z-index: 1; }
  .link-1:hover, .link-1:focus {
    background-color: #FFC70A;
    color: #252525;
    padding: 5px 20px 0; }
  .bg-yellow .link-1 {
    border-bottom-color: #FFFFFF; }
    .bg-yellow .link-1:hover, .bg-yellow .link-1:focus {
      background-color: #FFFFFF; }

.link-2 {
  background-color: rgba(255, 199, 10, 0.7);
  color: #252525;
  display: block;
  font-size: 1.125rem;
  font-weight: 900;
  padding: 15px 10px 12px;
  padding: 15px 16px 12px;
  text-align: center;
  text-decoration-color: transparent;
  -webkit-transition: background-color 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
  transition: background-color 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
  will-change: background-color; }
  .link-2:hover, .link-2:focus {
    background-color: #ffc70a;
    color: #252525;
    text-decoration-color: currentColor; }
  .link-2 > svg {
    margin-left: 8px;
    width: 10px; }
  @media print, screen and (min-width: 40em) {
    .link-2 {
      font-size: 1.25rem;
      padding: 7px 10px 5px; } }

.cta-card {
  background-color: #FFC70A;
  color: #252525;
  display: block;
  font-weight: 400;
  text-decoration: none; }

.cta-card__content {
  font-size: 1.125rem;
  line-height: 1.55;
  overflow: hidden;
  padding: 48px 48px 64px; }
  .cta-card__content h3 {
    font-weight: 900;
    margin-bottom: 32px; }
  .cta-card__content span {
    border-bottom: 2px solid;
    float: right;
    font-size: 1.25rem;
    font-weight: 900;
    margin-top: 32px;
    padding: 4px 0;
    text-align: right;
    -webkit-transition: padding 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35), color 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35), background-color 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
    transition: padding 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35), color 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35), background-color 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35); }
    .cta-card__content span svg {
      margin-left: 8px; }

.cta-card__media {
  overflow: hidden; }
  .cta-card__media img {
    display: block;
    left: -5%;
    max-width: none;
    position: relative;
    -webkit-transition: -webkit-transform 1s cubic-bezier(0.23, 1, 0.32, 1);
    transition: -webkit-transform 1s cubic-bezier(0.23, 1, 0.32, 1);
    transition: transform 1s cubic-bezier(0.23, 1, 0.32, 1);
    transition: transform 1s cubic-bezier(0.23, 1, 0.32, 1), -webkit-transform 1s cubic-bezier(0.23, 1, 0.32, 1);
    width: 110%; }

.cta-card:hover {
  color: inherit; }
  .cta-card:hover img {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); }
  .cta-card:hover span {
    background-color: #252525;
    color: #FFC70A;
    padding: 4px 16px; }

.cta-card--stripe {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.cta-card.bg-darkest-grey span,
.cta-card.bg-white span {
  border-bottom-color: #FFC70A; }

.cta-card.bg-darkest-grey:hover span,
.cta-card.bg-white:hover span {
  background-color: #FFC70A; }

.cta-card.bg-darkest-grey {
  background-color: #363636;
  color: #FFFFFF; }
  .cta-card.bg-darkest-grey:hover span {
    color: #363636; }

.cta-card.bg-white {
  background-color: #FFFFFF; }
  .cta-card.bg-white:hover span {
    color: #252525; }

.column .cta-card, .columns .cta-card {
  min-height: 100%; }

@media print, screen and (min-width: 40em) {
  .cta-card__content h3 {
    font-size: 2.25rem; } }

@media print, screen and (min-width: 64em) {
  .cta-card__content {
    padding: 64px 64px 96px; }
  .cta-card--stripe {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .cta-card--stripe .cta-card__content,
    .cta-card--stripe .cta-card__media {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 50%;
              flex: 1 1 50%; } }

@media screen and (min-width: 75em) {
  .cta-card--stripe .cta-card__content {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 35%;
            flex: 1 1 35%; }
  .cta-card--stripe .cta-card__media {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 65%;
            flex: 1 1 65%; } }

.cta-stripe {
  background-color: #FFC70A; }

.cta-stripe__content {
  font-size: 1.5em;
  padding: 48px 32px; }
  @media print, screen and (min-width: 64em) {
    .cta-stripe__content {
      font-size: 1.8em; } }
  .cta-stripe__content > a {
    border: 2px solid;
    display: inline-block;
    font-size: 1.25rem;
    font-weight: 900;
    padding: 4px 8px;
    text-decoration: none; }

.cta-stripe__media video, .cta-stripe__media img {
  display: block;
  width: 100%; }

@media print, screen and (min-width: 40em) {
  .cta-stripe__content {
    padding: 64px; }
    .cta-stripe__content p:first-of-type {
      margin-top: 48px; }
    .cta-stripe__content p:last-of-type {
      margin-bottom: 48px; }
  .cta-stripe--video .cta-stripe__content {
    padding: 64px 96px; }
  .cta-stripe--image {
    padding-bottom: 64px; }
    .cta-stripe--image .cta-stripe__media {
      margin-left: 16px; }
  .cta-stripe--image-alt {
    padding-top: 32px; }
    .cta-stripe--image-alt .cta-stripe__media {
      margin-right: 16px; } }

@media print, screen and (min-width: 64em) {
  .cta-stripe--image,
  .cta-stripe--image-alt,
  .cta-stripe--video {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .cta-stripe--image {
    padding-bottom: 0; }
    .cta-stripe--image .cta-stripe__content {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 45%;
              flex: 1 1 45%;
      padding-right: 24px; }
    .cta-stripe--image .cta-stripe__media {
      -webkit-box-flex: 2;
          -ms-flex: 2 2 55%;
              flex: 2 2 55%; }
  .cta-stripe--image-alt {
    padding-top: 0; }
    .cta-stripe--image-alt .cta-stripe__media {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 45%;
              flex: 1 1 45%; }
    .cta-stripe--image-alt .cta-stripe__content {
      -webkit-box-flex: 2;
          -ms-flex: 2 2 55%;
              flex: 2 2 55%;
      padding-left: 24px; }
  .cta-stripe--video {
    background-color: transparent; }
    .cta-stripe--video .cta-stripe__media,
    .cta-stripe--video .cta-stripe__content {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 50%;
              flex: 1 1 50%; }
    .cta-stripe--video .cta-stripe__media {
      overflow: hidden; }
      .cta-stripe--video .cta-stripe__media video {
        height: auto;
        max-width: none;
        position: relative;
        width: 150%; }
    .cta-stripe--video .cta-stripe__content {
      background-color: #FFC70A;
      -webkit-box-shadow: -48px 0 0 #FFC70A;
              box-shadow: -48px 0 0 #FFC70A;
      padding: 96px 32px; } }

@media screen and (min-width: 75em) {
  .cta-stripe--image .cta-stripe__media,
  .cta-stripe--image-alt .cta-stripe__media {
    max-width: 852px; }
  .cta-stripe--image .cta-stripe__content {
    padding-right: 32px; }
  .cta-stripe--image-alt .cta-stripe__content {
    padding-left: 32px; }
  .cta-stripe--video .cta-stripe__content {
    padding: 160px 48px 96px; } }

@media screen and (min-width: 90em) {
  .cta-stripe {
    padding: 64px 12vw; }
    .cta-stripe.cta-stripe--video {
      padding: 0; }
  .cta-stripe--video .cta-stripe__media video {
    height: auto;
    width: 100%; }
  .cta-stripe--video .cta-stripe__content {
    font-size: 1.6em;
    padding: 192px 18vw 120px 64px; }
  .cta-stripe--video .f-subheadline {
    font-size: 3.625rem; } }

.data-point {
  font-weight: 700;
  margin-bottom: 48px; }
  .data-point strong {
    display: block;
    font-size: 1.25em;
    font-weight: 900; }
  .data-point .icon-circle {
    margin: 0 auto 16px; }

@media print, screen and (min-width: 64em) {
  .data-point {
    font-size: 1.375rem;
    padding: 0 24px;
    text-align: left; }
    .data-point strong {
      font-size: 1.55em; }
    .data-point .icon-circle {
      float: left;
      margin-right: 24px; } }

@media screen and (min-width: 75em) {
  .data-point .icon-circle {
    margin-right: 32px; } }

.event-card {
  background-color: #FFFFFF;
  display: block;
  font-weight: 400;
  text-decoration: none;
  padding: 48px;
  position: relative; }
  .event-card:hover {
    color: initial; }
    .event-card:hover .event-card__cta {
      color: initial; }
      .event-card:hover .event-card__cta:before {
        -webkit-transform: translateX(0);
                transform: translateX(0); }
      .event-card:hover .event-card__cta span {
        -webkit-transform: translateX(-24px);
                transform: translateX(-24px); }
      .event-card:hover .event-card__cta svg {
        -webkit-transform: translateX(24px);
                transform: translateX(24px); }
  .event-card.bg-yellow .event-card__cta:before {
    background-color: #363636; }
  .event-card.bg-yellow:hover .event-card__cta {
    color: #FFFFFF; }
  .event-card.bg-darkest-grey {
    color: #FFFFFF; }
  .column > .event-card, .columns > .event-card,
  .columns > .event-card {
    height: 100%; }
  @media screen and (min-width: 75em) {
    .event-card {
      padding: 64px 64px 120px; } }

.event-card__date {
  font-size: 1.125rem;
  font-weight: 900;
  border-bottom: 1px solid;
  margin-bottom: 24px; }
  @media print, screen and (min-width: 40em) {
    .event-card__date {
      font-size: 1.25rem; } }
  .event-card__date svg {
    margin-right: 4px; }
  @media print, screen and (min-width: 64em) {
    .event-card__date {
      padding-bottom: 4px; } }

.event-card__tag {
  display: block;
  font-size: 1.1875rem;
  font-weight: 100;
  letter-spacing: 1px;
  text-transform: uppercase; }

.event-card__title {
  font-size: 1.625rem;
  font-weight: 900;
  line-height: 1.077;
  margin-bottom: 32px; }
  @media print, screen and (min-width: 64em) {
    .event-card__title {
      min-height: 3.35em; } }
  @media screen and (min-width: 75em) {
    .event-card__title {
      font-size: 2rem;
      line-height: 1.0625; } }

.event-card__details {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  max-width: 19.375rem; }
  .event-card__details dt {
    -ms-flex-preferred-size: 30px;
        flex-basis: 30px;
    -ms-flex-preferred-size: 24px;
        flex-basis: 24px;
    margin-right: 8px;
    padding-top: 3px;
    text-align: center; }
  .event-card__details dd {
    -ms-flex-preferred-size: 80%;
        flex-basis: 80%; }
  .event-card__details dd + dt {
    margin-top: 0; }
  .event-card__details dt, .event-card__details dd {
    margin-bottom: 8px; }

.event-card__cta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-weight: 900;
  font-size: 1.125rem;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin: 0;
  overflow: hidden;
  padding: 24px 48px;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1; }
  .event-card__cta span,
  .event-card__cta svg {
    display: inline-block;
    -webkit-transition: -webkit-transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
    transition: -webkit-transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
    transition: transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
    transition: transform 0.35s cubic-bezier(0.23, 1, 0.32, 1), -webkit-transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
    will-change: transform; }
  .event-card__cta:before {
    background-color: #FFC70A;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    content: "\0a0";
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    -webkit-transition: -webkit-transform 0.3s;
    transition: -webkit-transform 0.3s;
    transition: transform 0.3s;
    transition: transform 0.3s, -webkit-transform 0.3s;
    -webkit-transform: translateX(-101%);
            transform: translateX(-101%);
    width: 100%;
    z-index: -1; }
  @media print, screen and (min-width: 64em) {
    .event-card__cta {
      padding: 24px 64px; } }

.column .event-card, .columns .event-card {
  height: 100%; }

.event-card-row .column:nth-of-type(1) .event-card, .event-card-row .columns:nth-of-type(1) .event-card {
  background-color: #363636;
  color: #FFFFFF; }

.event-card-row .column:nth-of-type(3) .event-card, .event-card-row .columns:nth-of-type(3) .event-card {
  background-color: #FFC70A; }

.event-card-row .column:nth-of-type(3) .event-card__cta:before, .event-card-row .columns:nth-of-type(3) .event-card__cta:before {
  background-color: #363636; }

.event-card-row .column:nth-of-type(3):hover .event-card__cta, .event-card-row .columns:nth-of-type(3):hover .event-card__cta {
  color: #FFFFFF; }

.explore-block {
  background-color: #FFFFFF;
  display: block;
  font-size: 1.125rem;
  font-weight: 400;
  overflow: hidden;
  text-decoration: none; }
  .explore-block h3 {
    font-size: inherit;
    font-weight: 100;
    letter-spacing: .5px;
    line-height: 1;
    margin: 8px 0;
    text-align: center;
    text-transform: uppercase; }
  .explore-block span {
    background-color: #FFFFFF;
    display: inline-block;
    font-size: 1.1875rem;
    font-weight: 900;
    padding: 4px 16px;
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
    .explore-block span:after {
      background-color: #FFC70A;
      content: "\0a0";
      display: block;
      height: 2px;
      -webkit-transition: -webkit-transform 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
      transition: -webkit-transform 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
      transition: transform 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
      transition: transform 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35), -webkit-transform 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
      -webkit-transform: scaleX(0);
              transform: scaleX(0);
      -webkit-transform-origin: 0 50%;
              transform-origin: 0 50%; }
  .explore-block svg,
  .explore-block i {
    margin-left: 8px;
    vertical-align: middle; }
  .explore-block svg {
    -webkit-transition: fill 0.35s cubic-bezier(0.23, 1, 0.32, 1), margin-left 0.35s cubic-bezier(0.23, 1, 0.32, 1);
    transition: fill 0.35s cubic-bezier(0.23, 1, 0.32, 1), margin-left 0.35s cubic-bezier(0.23, 1, 0.32, 1); }
  .explore-block i {
    -webkit-transition: color 0.35s cubic-bezier(0.23, 1, 0.32, 1), margin-left 0.35s cubic-bezier(0.23, 1, 0.32, 1);
    transition: color 0.35s cubic-bezier(0.23, 1, 0.32, 1), margin-left 0.35s cubic-bezier(0.23, 1, 0.32, 1); }
  .explore-block p {
    padding: 0 16px; }
  .explore-block:hover {
    color: inherit; }
    .explore-block:hover span:after {
      -webkit-transform: scaleX(1);
              transform: scaleX(1); }
    .explore-block:hover svg {
      fill: #FFC70A; }
    .explore-block:hover i {
      color: #FFC70A; }
    .explore-block:hover svg,
    .explore-block:hover i {
      margin-left: 16px; }
    .explore-block:hover img {
      -webkit-transform: scale(1.2);
              transform: scale(1.2); }

.explore-block__img {
  overflow: hidden; }
  .explore-block__img img {
    display: block;
    -webkit-transition: -webkit-transform 1s cubic-bezier(0.23, 1, 0.32, 1);
    transition: -webkit-transform 1s cubic-bezier(0.23, 1, 0.32, 1);
    transition: transform 1s cubic-bezier(0.23, 1, 0.32, 1);
    transition: transform 1s cubic-bezier(0.23, 1, 0.32, 1), -webkit-transform 1s cubic-bezier(0.23, 1, 0.32, 1);
    width: 125%;
    max-width: none;
    position: relative;
    left: -12.5%; }

@media print, screen and (min-width: 64em) {
  .explore-block p:first-of-type {
    margin-top: -24px; } }

.footer-links {
  max-width: 1250px;
  margin: auto; }

.footer-links__block {
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  padding: 32px 24px; }

.footer-links__title {
  font-size: 1.125rem;
  font-weight: 700; }

.footer-links__list {
  list-style: none;
  margin: 0; }
  .footer-links__list li {
    padding-left: 0; }
  .footer-links__list a {
    color: inherit;
    display: inline-block;
    font-weight: 700;
    opacity: .65;
    padding: 4px 0;
    text-decoration-color: transparent;
    -webkit-transition: opacity .2s ease, text-decoration-color .2s ease;
    transition: opacity .2s ease, text-decoration-color .2s ease;
    -webkit-transition-delay: 50ms;
            transition-delay: 50ms; }
    .footer-links__list a:hover {
      opacity: 1;
      text-decoration-color: currentColor; }
  .footer-links__list.footer-links__list--icons:hover a {
    opacity: .65; }
  .footer-links__list.footer-links__list--icons a {
    font-size: 1.125rem;
    opacity: 1; }
  .footer-links__list.footer-links__list--icons a:hover {
    opacity: 1; }

@media print, screen and (min-width: 40em) {
  @supports (display: grid) {
    .footer-links {
      display: grid;
      grid-template-columns: 1fr 1fr; } } }

@media print, screen and (min-width: 64em) {
  .footer-links {
    overflow: hidden; }
  .footer-links__block {
    border-right: 1px solid rgba(255, 255, 255, 0.25);
    float: left;
    min-height: 450px;
    width: 33.3%; }
  @supports (display: grid) {
    .footer-links {
      grid-template-columns: 1fr 1fr 1fr 1fr; }
    .footer-links__block {
      float: none;
      min-height: 0;
      width: auto; }
      .footer-links__block:nth-child(4n) {
        border-right: none; } } }

.header__nav__container,
.header-global-search__container {
  display: none; }
  .header__nav__container.is-active,
  .header-global-search__container.is-active {
    display: block; }

.header {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.header__branding {
  display: inline-block;
  line-height: 1;
  margin-bottom: 0;
  margin-right: auto;
  padding-right: 24px; }
  .header__branding h1 {
    font-size: 1.5rem;
    line-height: 1.15;
    margin-bottom: 0; }
  .header__branding svg, .header__branding img {
    width: 100%;
    max-width: 200px; }
  .header__branding a {
    text-decoration: none; }

.header-hero-image {
  background-color: #FFC70A;
  position: relative; }

.header-hero-image__content {
  padding: 24px 16px 8px;
  padding: 24px 16px 8px; }

.header-hero-image__title {
  font-size: 3.375rem;
  font-weight: 900;
  line-height: 1;
  text-align: center; }

.header-hero-image__link {
  background-color: rgba(255, 199, 10, 0.7);
  color: #252525;
  display: block;
  font-size: 1.125rem;
  font-weight: 900;
  padding: 15px 10px 12px;
  padding: 15px 16px 12px;
  text-align: center;
  text-decoration-color: transparent;
  -webkit-transition: background-color 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
  transition: background-color 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
  will-change: background-color; }
  .header-hero-image__link:hover, .header-hero-image__link:focus {
    background-color: #ffc70a;
    color: #252525;
    text-decoration-color: currentColor; }
  .header-hero-image__link > svg {
    margin-left: 8px;
    width: 10px; }
  @media print, screen and (min-width: 40em) {
    .header-hero-image__link {
      font-size: 1.25rem;
      padding: 7px 10px 5px; } }

@media print, screen and (min-width: 64em) {
  .header-hero-image__content {
    bottom: 10%;
    left: 5%;
    max-width: 800px;
    position: absolute;
    width: 50%; }
  .header-hero-image__title {
    background-color: rgba(255, 199, 10, 0.7);
    display: inline;
    font-size: 5rem;
    line-height: 1.5;
    margin: 0;
    padding: .15em 0; }
    @supports ((-webkit-box-decoration-break: clone) or (box-decoration-break: clone)) {
      .header-hero-image__title {
        -webkit-box-shadow: -16px 0 0 rgba(255, 200, 10, 0.7), 16px 0 0 rgba(255, 200, 10, 0.7);
                box-shadow: -16px 0 0 rgba(255, 200, 10, 0.7), 16px 0 0 rgba(255, 200, 10, 0.7);
        -webkit-box-decoration-break: clone;
                box-decoration-break: clone;
        margin-left: 16px; } }
    @supports (-webkit-box-decoration-break: clone) {
      .header-hero-image__title {
        -webkit-box-shadow: -16px 0 0 rgba(255, 200, 10, 0.7), 16px 0 0 rgba(255, 200, 10, 0.7);
        -webkit-box-decoration-break: clone;
        margin-left: 16px; } }
  .header-hero-image__link {
    margin-top: 24px;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content; } }

@media screen and (min-width: 75em) {
  .header-hero-image__title {
    font-size: 6rem; } }

.hero-header {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #00205B;
  color: #FFFFFF;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  text-align: center; }

.hero-header__title {
  font-weight: 900;
  font-size: 3.125rem;
  left: 0;
  letter-spacing: .01em;
  line-height: .95em;
  margin: 0;
  max-width: 1250px;
  padding: 24px 8px;
  position: absolute;
  text-shadow: 0 5px 20px rgba(37, 37, 37, 0.5);
  width: 100%;
  z-index: 5; }

.hero-header__media {
  overflow: hidden;
  position: relative; }
  .hero-header__media:before {
    background: #252525;
    background: -webkit-gradient(linear, left bottom, left top, from(rgba(37, 37, 37, 0.65)), to(rgba(37, 37, 37, 0)));
    background: linear-gradient(0deg, rgba(37, 37, 37, 0.65) 0%, rgba(37, 37, 37, 0) 100%);
    bottom: 0;
    content: "\0a0";
    display: block;
    height: 50%;
    left: 0;
    position: absolute;
    width: 100%;
    z-index: 1; }
  .hero-header__media video, .hero-header__media img {
    display: block;
    height: auto;
    left: -25%;
    max-width: none;
    position: relative;
    width: 150%; }
  .hero-header__media button {
    bottom: 0;
    opacity: .65;
    padding: 8px 16px 8px;
    position: absolute;
    right: 0;
    -webkit-transition: opacity .3s ease;
    transition: opacity .3s ease;
    z-index: 10; }
    .hero-header__media button:hover {
      opacity: 1; }
  .hero-header--video .hero-header__media:after {
    background-image: url("http://www.wdev.rochester.edu/blue-pages/assets/images/dot.png");
    background-repeat: repeat;
    content: "\0a0";
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100vw; }

@media print, screen and (min-width: 40em) {
  .hero-header__title {
    font-size: 4rem; }
  .hero-header__media button {
    bottom: 16px;
    right: 16px; } }

@media print, screen and (min-width: 64em) {
  .hero-header {
    text-align: left; }
  .hero-header__title {
    font-size: 6.2vw;
    padding: 24px;
    width: 67%; }
  .hero-header__media video, .hero-header__media img {
    left: 0;
    width: 100%; } }

@media screen and (min-width: 90em) {
  .hero-header__title {
    font-size: 4.3vw;
    padding-left: 10vw;
    width: 55%; } }

.image-content-row {
  margin: auto;
  max-width: 1180px;
  padding: 24px 0; }

.image-content-row__image {
  margin-bottom: 24px; }

.image-content-row__content {
  font-size: 1.25rem;
  line-height: 1.6;
  max-width: 32em; }
  .image-content-row__content a {
    color: inherit;
    font-weight: 400;
    text-decoration-color: #283FAF;
    text-decoration-thickness: .075em; }
  .image-content-row__content li {
    padding-left: 8px; }

.field-media--field-media-oembed-video .field-item {
  position: relative;
  padding-bottom: 56.25%; }

.field-media--field-media-oembed-video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

.field-media--field-media-oembed-video.video-default {
  max-width: 500px; }

.field-media--field-media-oembed-video.video-full {
  max-width: 100%; }

.align-center .field-media--field-media-oembed-video {
  margin: 0 auto; }

.paragraph--type--multi-column-row .field-media--field-media-oembed-video.video-default {
  max-width: 100%; }

.cke_editable .field-media--field-media-oembed-video .field-item {
  position: static;
  padding-bottom: 0; }

.cke_editable .field-media--field-media-oembed-video iframe {
  width: auto;
  height: auto;
  position: static; }

@media print, screen and (min-width: 64em) {
  .image-content-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin: 0 auto 32px; }
  .image-content-row__image {
    width: 35%;
    -ms-flex-preferred-size: 35%;
        flex-basis: 35%; }
  .image-content-row__content {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-left: 40px;
    width: 65%;
    -ms-flex-preferred-size: 65%;
        flex-basis: 65%; } }

.intro-lead {
  color: #252525;
  font-size: 1.375rem;
  max-width: 1075px;
  margin: auto;
  padding: 0 24px 8px;
  position: relative;
  text-align: center;
  z-index: 1; }
  .intro-lead strong {
    font-weight: 900; }

.intro-lead__title {
  background-color: #FFC70A;
  font-family: utopia-std, Georgia, serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  margin: 0 -24px 32px;
  padding: 15px 25px; }

.intro-lead__data-points {
  list-style: none;
  margin: 48px 0 24px; }

@media print, screen and (min-width: 40em) {
  .intro-lead {
    padding: 0 64px 8px; }
  .intro-lead__title {
    margin: 8px -48px 32px; }
  .intro-lead__data-points {
    display: grid;
    grid-template-columns: 1fr 1fr;
    text-align: left; } }

@media print, screen and (min-width: 64em) {
  .intro-lead {
    font-size: 2.25rem; }
  .intro-lead__title {
    margin: 0 0 24px;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    z-index: 1; }
  .intro-lead__data-points {
    margin: 64px 0 24px 24px; } }

@media screen and (min-width: 75em) {
  .intro-lead {
    padding: 8px 0; } }

@media screen and (min-width: 90em) {
  .intro-lead__title {
    font-size: 2.75rem;
    line-height: 1.1875; } }

.footer-image-stripe {
  background-color: #00205B;
  color: #FFFFFF;
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center; }

.footer-image-stripe__image-links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .footer-image-stripe__image-links a {
    border-right: 1px solid rgba(255, 255, 255, 0.6);
    display: inline-block;
    width: 33.3%; }
    .footer-image-stripe__image-links a:last-child {
      border-right: none; }
  .footer-image-stripe__image-links img {
    display: block;
    width: 100%; }

.footer-image-stripe__block {
  padding: 48px 24px; }

.footer-image-stripe__social-links {
  list-style: none;
  margin: 0; }
  .footer-image-stripe__social-links svg {
    vertical-align: middle;
    margin: auto; }
  .footer-image-stripe__social-links li {
    display: inline-block;
    margin: 0 4px;
    vertical-align: top; }
  .footer-image-stripe__social-links a {
    border: 3px solid #FFFFFF;
    border-radius: 50%;
    display: inline-block;
    height: 40px;
    padding: 8px;
    width: 40px; }
    @supports (display: inline-flex) {
      .footer-image-stripe__social-links a {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        padding: 0; } }

@media print, screen and (min-width: 64em) {
  .footer-image-stripe__image-links,
  .footer-image-stripe__block {
    display: inline-block;
    vertical-align: middle;
    width: 32%; }
  .footer-image-stripe__image-links:first-child {
    border-right: 1px solid rgba(255, 255, 255, 0.6); }
  .footer-image-stripe__image-links:last-child {
    border-left: 1px solid rgba(255, 255, 255, 0.6); }
  .footer-image-stripe__block {
    padding: 8px 24px; }
  @supports (display: flex) {
    .footer-image-stripe {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; }
    .footer-image-stripe__image-links,
    .footer-image-stripe__block {
      -webkit-box-flex: 33%;
          -ms-flex: 33%;
              flex: 33%;
      width: auto; }
    .footer-image-stripe__image-links {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; } } }

.footer-bottom__links-list, .footer-bottom__bottom-links {
  list-style: none; }
  .footer-bottom__links-list > li, .footer-bottom__bottom-links > li {
    display: inline-block;
    vertical-align: top; }

.footer-bottom {
  max-width: 1250px;
  margin: auto;
  padding: 48px 24px 8px;
  text-align: center; }

.footer-bottom__links-list {
  margin: 32px 0 48px; }

.footer-bottom__link {
  background-color: #283FAF;
  display: inline-block;
  font-weight: 500;
  margin-bottom: 8px;
  padding: 16px 16px 8px;
  text-decoration: none; }
  .footer-bottom__link strong {
    display: block;
    font-size: 0.875rem;
    line-height: 1.25; }
  .footer-bottom__link .icon-fw {
    -webkit-transition: -webkit-transform .2s ease-in;
    transition: -webkit-transform .2s ease-in;
    transition: transform .2s ease-in;
    transition: transform .2s ease-in, -webkit-transform .2s ease-in; }
  .footer-bottom__link:hover, .footer-bottom__link:focus {
    color: inherit; }
    .footer-bottom__link:hover .icon-fw, .footer-bottom__link:focus .icon-fw {
      -webkit-transform: translateY(-4px);
              transform: translateY(-4px); }
  @supports (display: inline-flex) {
    .footer-bottom__link {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      display: -webkit-inline-box;
      display: -ms-inline-flexbox;
      display: inline-flex; } }

.footer-bottom__search-form {
  margin: 0 auto 32px;
  max-width: 384px;
  position: relative;
  width: 100%; }

.footer-bottom__search-input {
  background-color: transparent;
  color: #FFFFFF;
  margin-bottom: 0; }
  .footer-bottom__search-input:focus {
    background-color: transparent; }

.footer-bottom__search-submit {
  bottom: 0;
  height: 100%;
  padding: 8px 16px;
  position: absolute;
  right: 0; }

.footer-bottom__bottom-links {
  font-size: 0.875rem;
  margin: 0 auto 88px; }
  .footer-bottom__bottom-links li:after {
    content: "|";
    display: inline-block;
    margin: 0 16px; }
  .footer-bottom__bottom-links li:last-child:after {
    content: none; }
  .footer-bottom__bottom-links a {
    font-weight: 400;
    text-decoration: none; }

.footer-bottom__copyright {
  font-size: 0.75rem;
  margin-bottom: 0;
  text-align: center; }

@media print, screen and (min-width: 64em) {
  @supports (display: grid) {
    .footer-bottom {
      display: grid;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
      grid-template-areas: "top-left top-right" "middle-left middle-right" "bottom bottom";
      text-align: left; }
    .footer-bottom__links-list {
      grid-area: middle-left;
      margin-top: 16px; }
      .footer-bottom__links-list > li {
        margin-right: 16px; }
    .footer-bottom__search-form {
      grid-area: top-right;
      width: 410px; }
    .footer-bottom__bottom-links {
      grid-area: middle-right;
      text-align: right;
      width: 100%; }
    .footer-bottom__copyright {
      grid-area: bottom; } } }

.menu {
  font-size: 1.0625rem;
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }
  .menu li {
    padding-left: 0; }
    [data-whatinput='mouse'] .menu li {
      outline: 0; }
    .menu li:not(:last-child) {
      margin-right: 1rem; }
  .menu a,
  .menu .button {
    line-height: 1;
    text-decoration: none;
    display: block;
    padding: 0.7rem 1rem; }
  .menu input,
  .menu select,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu input {
    display: inline-block; }
  .menu.vertical {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
  .menu.expanded li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .menu.simple {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .menu.simple li + li {
      margin-left: 1rem; }
    .menu.simple a {
      padding: 0; }
  @media print, screen and (min-width: 40em) {
    .menu.medium-horizontal {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.medium-vertical {
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.medium-expanded li {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.medium-simple li {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  @media print, screen and (min-width: 64em) {
    .menu.large-horizontal {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.large-vertical {
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.large-expanded li {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.large-simple li {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  .menu.nested {
    margin-right: 0;
    margin-left: 1rem; }
  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .menu .is-active > a {
    background: #ff0000;
    color: #fefefe; }
  .menu .active > a {
    background: #ff0000;
    color: #fefefe; }
  .menu.align-left {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .menu.align-right li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
    .menu.align-right li .submenu li {
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
  .menu.align-right.vertical li {
    display: block;
    text-align: right; }
    .menu.align-right.vertical li .submenu li {
      text-align: right; }
  .menu.align-right .nested {
    margin-right: 1rem;
    margin-left: 0; }
  .menu.align-center li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .menu.align-center li .submenu li {
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
  .menu .menu-text {
    padding: 0.7rem 1rem;
    font-weight: bold;
    line-height: 1;
    color: inherit; }

.menu-centered > .menu {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .menu-centered > .menu li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .menu-centered > .menu li .submenu li {
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start; }

.no-js [data-responsive-menu] ul {
  display: none; }

.menu.menu--site {
  font-weight: 700; }
  .menu.menu--site a {
    overflow: hidden;
    position: relative; }
    .menu.menu--site a:after {
      background-color: #283FAF;
      bottom: 8px;
      content: "\0a0";
      display: block;
      height: 2px;
      left: 0;
      position: absolute;
      -webkit-transform: translateX(-100%);
              transform: translateX(-100%);
      -webkit-transition: -webkit-transform 0.2s ease-out;
      transition: -webkit-transform 0.2s ease-out;
      transition: transform 0.2s ease-out;
      transition: transform 0.2s ease-out, -webkit-transform 0.2s ease-out;
      width: 100%; }
    .menu.menu--site a:hover:after {
      -webkit-transform: translateX(0);
              transform: translateX(0); }

.menu.menu--site .ur-here a:after {
  -webkit-transform: translateX(0);
          transform: translateX(0); }

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  top: 100%;
  right: 0;
  left: auto; }

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 100%;
  right: auto;
  left: 0; }

.dropdown.menu > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem; }

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: '';
  border-bottom-width: 0;
  border-color: #1779ba transparent transparent;
  right: 5px;
  left: auto;
  margin-top: -3px; }

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0; }

.dropdown.menu > li > a {
  background: none;
  padding: 0.7rem 1rem; }

.dropdown.menu > li.is-active > a {
  background: transparent;
  color: #ff0000; }

.no-js .dropdown.menu ul {
  display: none; }

.dropdown.menu .nested.is-dropdown-submenu {
  margin-right: 0;
  margin-left: 0; }

.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0; }

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  top: 0;
  right: 100%;
  left: auto; }

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%; }

.dropdown.menu.vertical > li > a::after {
  right: 14px; }

.dropdown.menu.vertical > li.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: '';
  border-left-width: 0;
  border-color: transparent #1779ba transparent transparent;
  right: auto;
  left: 5px; }

.dropdown.menu.vertical > li.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px;
  content: '';
  border-right-width: 0;
  border-color: transparent transparent transparent #1779ba; }

@media print, screen and (min-width: 40em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-bottom-width: 0;
    border-color: #1779ba transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-left-width: 0;
    border-color: transparent #1779ba transparent transparent;
    right: auto;
    left: 5px; }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #1779ba; } }

@media print, screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-bottom-width: 0;
    border-color: #1779ba transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-left-width: 0;
    border-color: transparent #1779ba transparent transparent;
    right: auto;
    left: 5px; }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #1779ba; } }

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  right: 0;
  left: auto; }

.is-dropdown-menu.vertical {
  width: 100px; }
  .is-dropdown-menu.vertical.align-right {
    float: right; }

.is-dropdown-submenu-parent {
  position: relative; }
  .is-dropdown-submenu-parent a::after {
    position: absolute;
    top: 50%;
    right: 5px;
    left: auto;
    margin-top: -6px; }
  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
    top: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: 1px solid #cacaca;
  background: #fefefe; }
  .dropdown .is-dropdown-submenu a {
    padding: 0.7rem 1rem; }
  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
    right: 14px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-left-width: 0;
    border-color: transparent #1779ba transparent transparent;
    right: auto;
    left: 5px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px;
    content: '';
    border-right-width: 0;
    border-color: transparent transparent transparent #1779ba; }
  .is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu.js-dropdown-active {
    display: block; }

.news-block {
  display: block;
  background-color: #FFFFFF;
  font-size: 1.15rem;
  line-height: 1.6;
  overflow: hidden;
  padding: 0 16px 0 8px; }
  .news-block h3 {
    -webkit-transition: color .3s ease;
    transition: color .3s ease; }

.news-block__image {
  margin: 0 -16px 16px -8px;
  overflow: hidden; }
  .news-block__image img {
    display: block;
    left: -12.5%;
    max-width: none;
    position: relative;
    -webkit-transition: -webkit-transform 1s cubic-bezier(0.23, 1, 0.32, 1);
    transition: -webkit-transform 1s cubic-bezier(0.23, 1, 0.32, 1);
    transition: transform 1s cubic-bezier(0.23, 1, 0.32, 1);
    transition: transform 1s cubic-bezier(0.23, 1, 0.32, 1), -webkit-transform 1s cubic-bezier(0.23, 1, 0.32, 1);
    width: 125%; }

.news-block:hover img {
  -webkit-transform: scale(1.2);
          transform: scale(1.2); }

.news-block:hover h3 {
  color: #FFC70A; }

.news-card {
  background-color: #FFFFFF;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  font-size: 1.125rem;
  font-weight: 400;
  margin-bottom: 24px;
  text-decoration: none; }
  .news-card:hover {
    color: initial; }
    .news-card:hover img {
      opacity: .6;
      -webkit-transform: scale(1.3);
              transform: scale(1.3); }
    .news-card:hover .news-card__title {
      color: #FFC70A; }

.news-card__image {
  background-color: #21252a;
  height: 325px;
  min-height: 325px;
  overflow: hidden;
  position: relative; }
  .news-card__image img {
    display: inline-block;
    bottom: 0;
    width: 100%;
    height: auto;
    max-width: initial;
    position: absolute;
    -webkit-transform: scale(1.65);
            transform: scale(1.65);
    -webkit-transform-origin: 50% 100%;
            transform-origin: 50% 100%;
    -webkit-transition: opacity 0.4s cubic-bezier(0.8, -0.08, 0.36, 1.35), -webkit-transform 0.4s cubic-bezier(0.8, -0.08, 0.36, 1.35);
    transition: opacity 0.4s cubic-bezier(0.8, -0.08, 0.36, 1.35), -webkit-transform 0.4s cubic-bezier(0.8, -0.08, 0.36, 1.35);
    transition: opacity 0.4s cubic-bezier(0.8, -0.08, 0.36, 1.35), transform 0.4s cubic-bezier(0.8, -0.08, 0.36, 1.35);
    transition: opacity 0.4s cubic-bezier(0.8, -0.08, 0.36, 1.35), transform 0.4s cubic-bezier(0.8, -0.08, 0.36, 1.35), -webkit-transform 0.4s cubic-bezier(0.8, -0.08, 0.36, 1.35); }

.news-card__tag {
  display: inline-block;
  background: #FFC70A;
  font-size: 1rem;
  font-weight: 100;
  padding: 4px 8px;
  text-transform: uppercase; }

.news-card__title {
  font-size: 1.3125rem;
  font-weight: 900;
  line-height: 1.05;
  margin: 24px 0;
  -webkit-transition: color 0.4s cubic-bezier(0.8, -0.08, 0.36, 1.35);
  transition: color 0.4s cubic-bezier(0.8, -0.08, 0.36, 1.35);
  will-change: color; }
  @media print, screen and (min-width: 64em) {
    .news-card__title {
      font-size: 1.4375rem;
      line-height: 1.2175; } }

.news-card__content {
  padding: 24px 48px 8px 32px; }
  @media print, screen and (min-width: 40em) {
    .news-card__content {
      padding-bottom: 16px; } }

.column .news-card, .columns .news-card {
  height: 100%; }

.person-block {
  overflow: hidden; }
  .person-block h3,
  .person-block p {
    padding: 0 8px; }
  .person-block h3 {
    margin-top: 16px; }
  .person-block p {
    color: #565656;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.25; }

.search-modal {
  background-color: rgba(37, 37, 37, 0.95);
  bottom: 0;
  color: #FFFFFF;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  left: 0;
  opacity: 0;
  padding: 96px 24px 24px;
  position: fixed;
  right: 0;
  top: 0;
  -webkit-transition: opacity .35s .01s, visibility .35s .01s;
  transition: opacity .35s .01s, visibility .35s .01s;
  visibility: hidden;
  z-index: 75; }
  .search-modal.is-active {
    opacity: 1;
    visibility: visible; }

.search-modal__content {
  margin: auto;
  max-height: 100%;
  overflow: scroll;
  padding: 8px; }
  .search-modal__content > :last-child {
    margin-bottom: 0; }
  .search-modal__content h3 {
    font-weight: 900;
    margin-bottom: 8px; }
  .search-modal__content ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    list-style: none;
    margin-left: 0; }
  .search-modal__content a {
    display: inline-block;
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 8px 4px 0;
    opacity: .75;
    padding: 8px 8px 8px 0;
    text-decoration-color: currentColor;
    -webkit-transition: opacity .3s ease 50ms;
    transition: opacity .3s ease 50ms; }
    .search-modal__content a:hover {
      color: inherit;
      opacity: 1; }

.search-modal__form {
  color: #252525;
  margin-bottom: 48px;
  position: relative; }
  .search-modal__form [type="text"],
  .search-modal__form [type="submit"] {
    font-weight: 700; }
  .search-modal__form [type="text"] {
    font-size: 1.3rem;
    margin-bottom: 0;
    padding: 16px; }
  .search-modal__form [type="submit"] {
    background-color: #283FAF;
    bottom: 0;
    color: #FFFFFF;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    font-size: .85rem;
    letter-spacing: .3px;
    padding: 16px;
    position: absolute;
    right: 0;
    text-transform: uppercase;
    top: 0; }
    .search-modal__form [type="submit"] svg {
      margin-right: 8px; }

@media print, screen and (min-width: 64em) {
  .search-modal__form {
    margin-bottom: 96px; }
    .search-modal__form [type="text"] {
      font-size: 1.85rem;
      padding: 8px 16px; }
    .search-modal__form [type="submit"] {
      font-size: 1rem;
      padding: 16px 24px; } }

.search-modal-is-active {
  overflow: hidden; }
  .search-modal-is-active .layout-main {
    -webkit-filter: blur(4px);
            filter: blur(4px); }

.search-modal-toggle {
  min-height: 56px;
  min-width: 56px;
  position: relative; }
  .search-modal-toggle > :first-child {
    left: 0;
    position: absolute;
    top: 0;
    z-index: 1; }
  .search-modal-toggle > :last-child {
    opacity: 0; }
  .search-modal-toggle.is-active > :first-child {
    opacity: 0; }
  .search-modal-toggle.is-active > :last-child {
    opacity: 1; }

.search-toggle {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 2px 8px; }

.search-toggle__icon {
  color: #283FAF;
  border: 2px solid #283FAF;
  border-radius: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 40px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  width: 40px; }

.search-toggle--search .search-toggle__icon:after {
  background-color: #283FAF;
  border-radius: 50%;
  content: "\0a0";
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-transition: -webkit-transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
  transition: -webkit-transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
  transition: transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
  transition: transform 0.35s cubic-bezier(0.23, 1, 0.32, 1), -webkit-transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
  width: 100%;
  z-index: -1; }

.search-toggle--search .search-toggle__icon:hover, .search-toggle--search .search-toggle__icon:focus {
  color: #FFFFFF; }
  .search-toggle--search .search-toggle__icon:hover:after, .search-toggle--search .search-toggle__icon:focus:after {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); }

.search-toggle--close .search-toggle__icon {
  background-color: #283FAF;
  color: #FFFFFF; }

.subheadline-lead-header {
  margin: 0 auto;
  padding: 48px 0;
  text-align: center; }
  .subheadline-lead-header > :last-child {
    margin-bottom: 0; }

@media print, screen and (min-width: 64em) {
  .subheadline-lead-header {
    max-width: 1050px;
    width: 83%; } }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

@media print, screen and (max-width: 39.99875em) {
  .hide-for-small-only {
    display: none !important; } }

@media screen and (max-width: 0em), screen and (min-width: 40em) {
  .show-for-small-only {
    display: none !important; } }

@media print, screen and (min-width: 40em) {
  .hide-for-medium {
    display: none !important; } }

@media screen and (max-width: 39.99875em) {
  .show-for-medium {
    display: none !important; } }

@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {
  .hide-for-medium-only {
    display: none !important; } }

@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {
  .show-for-medium-only {
    display: none !important; } }

@media print, screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important; } }

@media screen and (max-width: 63.99875em) {
  .show-for-large {
    display: none !important; } }

@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {
  .hide-for-large-only {
    display: none !important; } }

@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important; } }

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important; }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important; }

.show-for-landscape,
.hide-for-portrait {
  display: block !important; }
  @media screen and (orientation: landscape) {
    .show-for-landscape,
    .hide-for-portrait {
      display: block !important; } }
  @media screen and (orientation: portrait) {
    .show-for-landscape,
    .hide-for-portrait {
      display: none !important; } }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }
  @media screen and (orientation: landscape) {
    .hide-for-landscape,
    .show-for-portrait {
      display: none !important; } }
  @media screen and (orientation: portrait) {
    .hide-for-landscape,
    .show-for-portrait {
      display: block !important; } }

.headline-1 {
  font-size: 2.125rem;
  font-weight: 700;
  line-height: 1.235;
  letter-spacing: -.5px; }
  @media print, screen and (min-width: 40em) {
    .headline-1 {
      font-size: 3.5rem;
      line-height: 1;
      letter-spacing: -1px; } }

.headline-2 {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.285;
  letter-spacing: -.35px; }
  @media print, screen and (min-width: 40em) {
    .headline-2 {
      font-size: 3rem;
      line-height: 1.083;
      letter-spacing: -.75px; } }

.headline-3 {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.333;
  letter-spacing: -.1px; }
  @media print, screen and (min-width: 40em) {
    .headline-3 {
      font-size: 2.25rem;
      line-height: 1.222;
      letter-spacing: -.5px; } }

.headline-4 {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 1px;
  text-transform: uppercase; }
  @media print, screen and (min-width: 40em) {
    .headline-4 {
      font-size: 1.5rem;
      line-height: 1.5;
      letter-spacing: 1px; } }

.headline-5 {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5; }
  @media print, screen and (min-width: 40em) {
    .headline-5 {
      font-size: 1.5rem; } }

.headline-6 {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.556; }
  @media print, screen and (min-width: 40em) {
    .headline-6 {
      font-size: 1.25rem;
      line-height: 1.6; } }

.body-1 {
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.6; }
  @media print, screen and (min-width: 40em) {
    .body-1 {
      font-size: 1.5rem;
      line-height: 1.416;
      letter-spacing: .15px; } }

.body-2 {
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.667; }
  @media print, screen and (min-width: 40em) {
    .body-2 {
      font-size: 1.25rem;
      line-height: 1.6; } }

.body-3 {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.75; }
  @media print, screen and (min-width: 40em) {
    .body-3 {
      font-size: 1.125rem;
      line-height: 1.667; } }

.overline {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.714;
  letter-spacing: 1.5px;
  text-transform: uppercase; }
  @media print, screen and (min-width: 40em) {
    .overline {
      font-size: 1rem;
      line-height: 1.625;
      letter-spacing: 1.5px; } }

.caption {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.857;
  letter-spacing: .15px; }
  @media print, screen and (min-width: 40em) {
    .caption {
      font-size: 1rem;
      line-height: 1.75;
      letter-spacing: .15px; } }

.proxima,
.sans-serif {
  font-family: proxima-nova, Arial, sans-serif; }

.utopia,
.serif {
  font-family: utopia-std, Georgia, serif; }

.fw-100, .fw-light {
  font-weight: 100; }

.fw-400, .fw-normal {
  font-weight: 400; }

.fw-600, .fw-semibold {
  font-weight: 600; }

.fw-700, .fw-bold, .b {
  font-weight: 700; }

.fw-900, .fw-black {
  font-weight: 900; }

ul.no-bullet, ol.no-bullet {
  margin-left: 0;
  list-style: none; }

ul .no-bullet, ol .no-bullet {
  margin-left: 1.25rem; }

ul.inline-list {
  margin-left: 0;
  list-style-type: none; }
  ul.inline-list > li {
    display: inline-block;
    margin-right: 1rem;
    margin-bottom: 1rem; }

/* Text colors */
.yellow {
  color: #FFC70A; }

.blue {
  color: #283FAF; }

.navy {
  color: #00205B; }

.white {
  color: #FFFFFF; }

.lighter-grey {
  color: #F4F4F4; }

.light-grey {
  color: #E7E7E7; }

.medium-grey {
  color: #C0C0C0; }

.dark-grey {
  color: #707070; }

.darker-grey {
  color: #565656; }

.darkest-grey {
  color: #363636; }

.black {
  color: #252525; }

/* Background colors */
.bg-yellow {
  background-color: #FFC70A; }

.bg-blue {
  background-color: #283FAF; }

.bg-navy {
  background-color: #00205B; }

.bg-white {
  background-color: #FFFFFF; }

.bg-lighter-grey {
  background-color: #F4F4F4; }

.bg-light-grey {
  background-color: #E7E7E7; }

.bg-medium-grey {
  background-color: #C0C0C0; }

.bg-dark-grey {
  background-color: #707070; }

.bg-darker-grey {
  background-color: #565656; }

.bg-darkest-grey {
  background-color: #363636; }

.bg-black {
  background-color: #252525; }

.pa0 {
  padding: 0; }

.pa1 {
  padding: 8px; }

.pa2 {
  padding: 16px; }

.pa3 {
  padding: 24px; }

.pa4 {
  padding: 32px; }

.pa5 {
  padding: 48px; }

.pa6 {
  padding: 64px; }

.pa7 {
  padding: 96px; }

.pa8 {
  padding: 160px; }

.pl0 {
  padding-left: 0; }

.pl1 {
  padding-left: 8px; }

.pl2 {
  padding-left: 16px; }

.pl3 {
  padding-left: 24px; }

.pl4 {
  padding-left: 32px; }

.pl5 {
  padding-left: 48px; }

.pl6 {
  padding-left: 64px; }

.pl7 {
  padding-left: 96px; }

.pl8 {
  padding-left: 160px; }

.pr0 {
  padding-right: 0; }

.pr1 {
  padding-right: 8px; }

.pr2 {
  padding-right: 16px; }

.pr3 {
  padding-right: 24px; }

.pr4 {
  padding-right: 32px; }

.pr5 {
  padding-right: 48px; }

.pr6 {
  padding-right: 64px; }

.pr7 {
  padding-right: 96px; }

.pr8 {
  padding-right: 160px; }

.pb0 {
  padding-bottom: 0; }

.pb1 {
  padding-bottom: 8px; }

.pb2 {
  padding-bottom: 16px; }

.pb3 {
  padding-bottom: 24px; }

.pb4 {
  padding-bottom: 32px; }

.pb5 {
  padding-bottom: 48px; }

.pb6 {
  padding-bottom: 64px; }

.pb7 {
  padding-bottom: 96px; }

.pb8 {
  padding-bottom: 160px; }

.pt0 {
  padding-top: 0; }

.pt1 {
  padding-top: 8px; }

.pt2 {
  padding-top: 16px; }

.pt3 {
  padding-top: 24px; }

.pt4 {
  padding-top: 32px; }

.pt5 {
  padding-top: 48px; }

.pt6 {
  padding-top: 64px; }

.pt7 {
  padding-top: 96px; }

.pt8 {
  padding-top: 160px; }

.pv0 {
  padding-top: 0;
  padding-bottom: 0; }

.pv1 {
  padding-top: 4px;
  padding-bottom: 4px; }

.pv2 {
  padding-top: 8px;
  padding-bottom: 8px; }

.pv3 {
  padding-top: 12px;
  padding-bottom: 12px; }

.pv4 {
  padding-top: 16px;
  padding-bottom: 16px; }

.pv5 {
  padding-top: 24px;
  padding-bottom: 24px; }

.pv6 {
  padding-top: 32px;
  padding-bottom: 32px; }

.pv7 {
  padding-top: 48px;
  padding-bottom: 48px; }

.pv8 {
  padding-top: 80px;
  padding-bottom: 80px; }

.ph0 {
  padding-left: 0;
  padding-right: 0; }

.ph1 {
  padding-left: 8px;
  padding-right: 8px; }

.ph2 {
  padding-left: 16px;
  padding-right: 16px; }

.ph3 {
  padding-left: 24px;
  padding-right: 24px; }

.ph4 {
  padding-left: 32px;
  padding-right: 32px; }

.ph5 {
  padding-left: 48px;
  padding-right: 48px; }

.ph6 {
  padding-left: 64px;
  padding-right: 64px; }

.ph7 {
  padding-left: 96px;
  padding-right: 96px; }

.ph8 {
  padding-left: 160px;
  padding-right: 160px; }

.ma0 {
  margin: 0; }

.ma1 {
  margin: 8px; }

.ma2 {
  margin: 16px; }

.ma3 {
  margin: 24px; }

.ma4 {
  margin: 32px; }

.ma5 {
  margin: 48px; }

.ma6 {
  margin: 64px; }

.ma7 {
  margin: 96px; }

.ma8 {
  margin: 160px; }

.ml0 {
  margin-left: 0; }

.ml1 {
  margin-left: 8px; }

.ml2 {
  margin-left: 16px; }

.ml3 {
  margin-left: 24px; }

.ml4 {
  margin-left: 32px; }

.ml5 {
  margin-left: 48px; }

.ml6 {
  margin-left: 64px; }

.ml7 {
  margin-left: 96px; }

.ml8 {
  margin-left: 160px; }

.mr0 {
  margin-right: 0; }

.mr1 {
  margin-right: 8px; }

.mr2 {
  margin-right: 16px; }

.mr3 {
  margin-right: 24px; }

.mr4 {
  margin-right: 32px; }

.mr5 {
  margin-right: 48px; }

.mr6 {
  margin-right: 64px; }

.mr7 {
  margin-right: 96px; }

.mr8 {
  margin-right: 160px; }

.mb0 {
  margin-bottom: 0; }

.mb1 {
  margin-bottom: 8px; }

.mb2 {
  margin-bottom: 16px; }

.mb3 {
  margin-bottom: 24px; }

.mb4 {
  margin-bottom: 32px; }

.mb5 {
  margin-bottom: 48px; }

.mb6 {
  margin-bottom: 64px; }

.mb7 {
  margin-bottom: 96px; }

.mb8 {
  margin-bottom: 160px; }

.mt0 {
  margin-top: 0; }

.mt1 {
  margin-top: 8px; }

.mt2 {
  margin-top: 16px; }

.mt3 {
  margin-top: 24px; }

.mt4 {
  margin-top: 32px; }

.mt5 {
  margin-top: 48px; }

.mt6 {
  margin-top: 64px; }

.mt7 {
  margin-top: 96px; }

.mt8 {
  margin-top: 160px; }

.mv0 {
  margin-top: 0;
  margin-bottom: 0; }

.mv1 {
  margin-top: 8px;
  margin-bottom: 8px; }

.mv2 {
  margin-top: 16px;
  margin-bottom: 16px; }

.mv3 {
  margin-top: 24px;
  margin-bottom: 24px; }

.mv4 {
  margin-top: 32px;
  margin-bottom: 32px; }

.mv5 {
  margin-top: 48px;
  margin-bottom: 48px; }

.mv6 {
  margin-top: 64px;
  margin-bottom: 64px; }

.mv7 {
  margin-top: 96px;
  margin-bottom: 96px; }

.mv8 {
  margin-top: 160px;
  margin-bottom: 160px; }

.mh0 {
  margin-left: 0;
  margin-right: 0; }

.mh1 {
  margin-left: 8px;
  margin-right: 8px; }

.mh2 {
  margin-left: 16px;
  margin-right: 16px; }

.mh3 {
  margin-left: 24px;
  margin-right: 24px; }

.mh4 {
  margin-left: 32px;
  margin-right: 32px; }

.mh5 {
  margin-left: 48px;
  margin-right: 48px; }

.mh6 {
  margin-left: 64px;
  margin-right: 64px; }

.mh7 {
  margin-left: 96px;
  margin-right: 96px; }

.mh8 {
  margin-left: 160px;
  margin-right: 160px; }

.tl {
  text-align: left; }

.tr {
  text-align: right; }

.tc {
  text-align: center; }

@media print, screen and (min-width: 40em) {
  .tl-m {
    text-align: left; }
  .tr-m {
    text-align: right; }
  .tc-m {
    text-align: center; } }

@media print, screen and (min-width: 64em) {
  .tl-l {
    text-align: left; }
  .tr-l {
    text-align: right; }
  .tc-l {
    text-align: center; } }

.ttc {
  text-transform: capitalize; }

.ttl {
  text-transform: lowercase; }

.ttu {
  text-transform: uppercase; }

.ttn {
  text-transform: none; }

@media print, screen and (min-width: 40em) {
  .ttc-m {
    text-transform: capitalize; }
  .ttl-m {
    text-transform: lowercase; }
  .ttu-m {
    text-transform: uppercase; }
  .ttn-m {
    text-transform: none; } }

@media print, screen and (min-width: 64em) {
  .ttc-l {
    text-transform: capitalize; }
  .ttl-l {
    text-transform: lowercase; }
  .ttu-l {
    text-transform: uppercase; }
  .ttn-l {
    text-transform: none; } }

.f-subheadline {
  font-size: 3rem;
  line-height: 1; }

.f-headline {
  font-size: 3.125rem;
  font-weight: 900;
  line-height: 0.95;
  text-align: center; }

.f1 {
  font-size: 2.25rem; }

.f2 {
  font-size: 1.625rem;
  font-weight: 900;
  line-height: 1.077; }

.f3 {
  font-size: 1.625rem;
  font-weight: 900;
  line-height: 1.077; }

.f4 {
  font-size: 1.125rem;
  font-weight: 900; }

.f5 {
  font-size: 1rem; }

.f6 {
  font-size: 0.875rem; }

@media print, screen and (min-width: 40em) {
  .f-headline {
    font-size: 4rem; }
  .f1 {
    font-size: 3rem; }
  .f2 {
    font-size: 1.6875rem;
    line-height: 1.11; }
  .f3 {
    font-size: 1.5rem; }
  .f4 {
    font-size: 1.25rem; } }

@media print, screen and (min-width: 64em) {
  .f-headline {
    font-size: 4.8125rem;
    text-align: left; } }

/* Book paragraph style - paragraphs are indented with no vertical spacing. */
.indent {
  text-indent: 1em;
  margin-top: 0;
  margin-bottom: 0; }

.small-caps {
  font-variant: small-caps; }

/* Combine this class with a width to truncate text (or just leave as is to truncate at width of containing element. */
.truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.small-caps {
  font-variant: small-caps;
  font-variant-caps: small-caps;
  -webkit-font-feature-settings: "smcp";
          font-feature-settings: "smcp"; }

.tnum {
  font-variant-numeric: tabular-nums;
  -webkit-font-feature-settings: "tnum";
          font-feature-settings: "tnum"; }

.lead {
  font-size: 1.5em; }
  @media print, screen and (min-width: 64em) {
    .lead {
      font-size: 1.8em; } }

.stat {
  font-size: 2.5rem;
  line-height: 1; }
  p + .stat {
    margin-top: -1rem; }

@media print, screen and (min-width: 40em) {
  @supports (display: grid) {
    .footer-links__block {
      border-bottom: none; }
      .footer-links__block:nth-child(3) {
        grid-row: 2 / 4; }
      .footer-links__block:nth-child(3), .footer-links__block:nth-child(4) {
        border-top: 1px solid rgba(255, 255, 255, 0.25); }
      .footer-links__block:nth-child(3), .footer-links__block:nth-child(5) {
        border-bottom: 1px solid rgba(255, 255, 255, 0.25); } } }

@media print, screen and (min-width: 64em) {
  @supports (display: grid) {
    .footer-links__block:nth-child(3), .footer-links__block:nth-child(4), .footer-links__block:nth-child(5), .footer-links__block:nth-child(6) {
      border: none; }
    .footer-links__block:nth-child(3), .footer-links__block:nth-child(6) {
      grid-row: 1/3; }
    .footer-links__block:nth-child(3) {
      border-right: 1px solid rgba(255, 255, 255, 0.25);
      grid-column: 2/3; }
    .footer-links__block:nth-child(6) {
      border-left: 1px solid rgba(255, 255, 255, 0.25);
      grid-column: 4/5; }
    .footer-links__block:nth-child(2) {
      grid-row: 2/3; }
    .footer-links__block:nth-child(2), .footer-links__block:nth-child(5) {
      border-top: 1px solid rgba(255, 255, 255, 0.25); } } }

.line {
  /*
    using the postion:absolute; method allows for for better visual alignment
    there is another method of just using margin and keeping the psuedo element
    in flow. but when you try to align headers with a link to its side, the bar
    causes things to look mis-aligned event if you set align-items:center;
     */
  position: relative;
  padding-top: 15px; }
  .line:before {
    background-color: #FFC70A;
    content: "\0a0";
    display: inline-block;
    height: 8px;
    left: 2px;
    max-width: 120px;
    position: absolute;
    top: 0px;
    width: 20%; }
    @media print, screen and (min-width: 40em) {
      .line:before {
        left: 0; } }

.serif.line {
  text-align: left; }

.bg-darkest-grey a:hover {
  color: #C0C0C0; }

/*$navy: #00205B;
$blue: #283FAF;
$shield-blue: #00457f;
$yellow: #FFC70A;
$lighter-grey: #F4F4F4;
$light-grey: #E7E7E7;
$medium-grey: #C0C0C0; 
$dark-grey: #787878;
$darker-grey:#565656;
$black: #252525;

$sans-serif: proxima nova, "Helvetica Neue", Helvetica, Arial, sans-serif;*/
body,
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  font-family: proxima-nova, Arial, sans-serif !important; }

body {
  color: #363636 !important; }

body h1 {
  font-size: 3.43312rem;
  font-weight: 900;
  color: #363636; }

body h2 {
  font-size: 2.74688rem;
  font-weight: 900;
  color: #363636; }

body h3 {
  font-weight: 900;
  font-size: 1.5rem; }

body h4 {
  font-size: 1.75812rem;
  font-weight: 700;
  color: #363636; }

body h2.serif {
  font-family: utopia-std, Georgia, serif !important; }

body h5 {
  font-weight: 900;
  font-size: 1.40625rem; }

.hero-header .hero-header__title {
  color: white;
  font-weight: 900; }

h1 {
  margin-bottom: 48px; }

h3, .h3 {
  font-size: 1.625rem;
  font-weight: 900;
  line-height: 1.077;
  margin-top: 24px; }
  @media print, screen and (min-width: 40em) {
    h3, .h3 {
      font-size: 1.5rem;
      line-height: 1.11; } }

li p {
  margin-bottom: inherit; }

main a {
  text-decoration: underline;
  text-decoration-color: #283FAF;
  text-decoration-thickness: 0.075em; }

.path-frontpage {
  background: #F4F4F4; }

.yellow-bottom {
  border-bottom: 5px #ffc70a solid;
  margin-bottom: 20px; }

nav a {
  color: #F4F4F4;
  font-size: 16px;
  font-weight: bold; }
  nav a:hover {
    color: #FFFFFF; }
  nav a:focus {
    color: #FFFFFF; }

nav .dropdown.menu {
  font-size: 14px;
  float: left;
  background: none; }
  nav .dropdown.menu a {
    padding: 12px 2px 7px 2px !important;
    position: relative;
    display: inline-block; }
    nav .dropdown.menu a:after {
      position: absolute;
      left: 0;
      bottom: 0;
      width: 0%;
      height: 2px;
      background-color: #FFFFFF;
      content: "";
      -webkit-transition: 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
      transition: 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
      padding: 0;
      margin-left: 0px; }
    nav .dropdown.menu a:hover:after {
      width: 100%; }
  nav .dropdown.menu a:first-of-type {
    padding-left: 0; }

nav .breadcrumbs a:hover, nav .breadcrumbs a:focus {
  color: #00205b; }

nav .breadcrumbs li {
  font-size: inherit;
  cursor: auto;
  color: #565656; }

#announcement {
  background: #FFC70A;
  text-align: center;
  color: #252525; }
  #announcement h3 {
    margin-top: 0px; }
  #announcement a {
    text-decoration: underline; }
    #announcement a:hover, #announcement a:focus {
      color: #252525;
      text-decoration: none; }
  #announcement p {
    margin-bottom: 0px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
  #announcement .pt1 {
    padding-top: 0; }
  #announcement .cell {
    padding: 8px 0; }

.sidebar nav a {
  color: #283FAF; }
  .sidebar nav a:hover {
    color: #00205b; }

div#sidebar-second {
  margin-top: 76px;
  background: #FFFFFF; }

.block-rcl-foundation-main-menu a::after {
  color: #C0C0C0;
  font-size: 9px;
  position: relative;
  bottom: 1px;
  padding: 0 0px 5px 5px;
  margin: 4px 0px 2px 4px; }

#block-secondarynavigation {
  text-transform: uppercase;
  float: right; }
  #block-secondarynavigation a {
    color: #FFFFFF;
    font-size: 12px;
    padding: 15px 0px; }

.branding-header {
  background-color: #FFFFFF;
  padding: 10px 0;
  border-bottom: 1px solid #E7E7E7; }
  .branding-header img {
    max-height: 60px; }
  .branding-header .block-rcl-foundation-sitebranding {
    font-size: 31px; }
    .branding-header .block-rcl-foundation-sitebranding a {
      color: #00457f; }

.block-navigationhours {
  color: #363636;
  font-size: 0.875rem;
  text-align: right;
  position: relative;
  top: 15px; }
  @media print, screen and (min-width: 40em) {
    .block-navigationhours {
      font-size: 1rem; } }
  .block-navigationhours a,
  .block-navigationhours div {
    display: inline;
    color: #707070; }
  .block-navigationhours .button {
    padding: 5px;
    font-size: 13px;
    margin: 0 0 0 3px; }

/* lu's code */
.off-canvas-content .hero-header {
  position: static; }
  .off-canvas-content .hero-header .hero-header__media {
    position: static; }
    .off-canvas-content .hero-header .hero-header__media img {
      position: static; }

.hero-header__media:before {
  content: none; }

#main-nav-menu {
  padding: 0;
  background-color: #00205b;
  -webkit-box-align: flex-start;
  -ms-flex-align: flex-start;
  align-items: flex-start; }

.top-bar #inputBox {
  margin: 0; }
  .top-bar #inputBox::-webkit-input-placeholder {
    color: #fff; }

.views-exposed-form .form-actions.js-form-wrapper.form-wrapper #edit-submit-searchsolr {
  border: 2px solid #283faf; }

.views-exposed-form .form-actions.js-form-wrapper.form-wrapper #edit-reset {
  background-color: transparent;
  border-color: #283faf;
  color: #283faf;
  border-radius: 0;
  -webkit-transition: 0.25s cubic-bezier(0.45, 0.05, 0.55, 0.95);
  transition: 0.25s cubic-bezier(0.45, 0.05, 0.55, 0.95);
  border: 2px solid; }
  .views-exposed-form .form-actions.js-form-wrapper.form-wrapper #edit-reset:hover {
    background-color: #283faf;
    color: #fff; }

.views-row .searchrow a {
  color: #363636;
  font-family: proxima-nova, Arial, sans-serif;
  font-weight: 900; }
  .views-row .searchrow a:hover {
    color: #283faf; }
  .views-row .searchrow a strong {
    font-weight: 900; }

.views-row .searchsolr-user-wrapper .searchsolr-user-info .searchsolr-user-name a {
  color: #363636; }
  .views-row .searchsolr-user-wrapper .searchsolr-user-info .searchsolr-user-name a:hover {
    color: #283faf; }
  .views-row .searchsolr-user-wrapper .searchsolr-user-info .searchsolr-user-name a:focus {
    color: #283faf; }

.views-row .searchsolr-user-wrapper .searchsolr-user-info .searchsolr-email {
  color: #363636; }

.views-row .searchsolr-user-wrapper .searchsolr-user-info .searchsolr-user-phone {
  color: #363636; }

.pager .pagination.pager__items.js-pager__items .pager__item a:hover {
  color: #0a0a0a; }

.block-rcl-foundation-page-title h1 {
  margin-bottom: 48px; }

.block-rcl-foundation-breadcrumbs nav .breadcrumbs {
  margin: 15px 0px 20px 15px; }

.bg-yellow .grid-x .cell a {
  color: #363636; }
  .bg-yellow .grid-x .cell a:hover {
    color: #283faf; }

.advanced_search a {
  color: white; }

.field-block-content--body .field-items .field-item .row a:hover h3 {
  color: white; }

.field-block-content--body .field-items .field-item .row a:hover p {
  color: white; }

.field-block-content--body .field-items .field-item .row a h3 {
  color: #363636; }

.field-block-content--body .field-items .field-item .row a p {
  color: #363636; }

.event-card-row .column a, .event-card-row .columns a {
  font-family: proxima-nova, Arial, sans-serif;
  color: #363636; }

.button.yellow {
  border: 2px solid #ffc70a;
  border-radius: 2px;
  cursor: pointer;
  display: inline-block;
  font-family: proxima-nova, Arial, sans-serif;
  font-size: 1.125rem;
  line-height: 1;
  margin: 0 0 1rem 0;
  padding: 0.5em 0.75em;
  text-align: center;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out, padding 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out, padding 0.25s ease-out;
  vertical-align: middle;
  background-color: transparent; }

.button.yellow:hover {
  background-color: #ffc70a;
  color: #252525;
  padding: 0.5em 1.3125rem; }

.button.blue {
  font-size: 1.125rem;
  color: #283faf; }

.button.blue:hover {
  color: #fff !important; }

.block-rcl-foundation-content article .grid-x .small-9 .mb0 {
  font-weight: 700; }

.block-rcl-foundation-content article .grid-x .small-9 .dark-grey a {
  color: #707070; }

.block-rcl-foundation-content article ul li a {
  color: #707070; }

.button.blue {
  border: 2px solid;
  margin: 23px 0 1rem 0;
  background-color: transparent;
  border-color: #283faf;
  color: #283faf;
  font-family: proxima-nova, Arial, sans-serif;
  padding: 0.5em 0.75em;
  -webkit-transition: 0.25s cubic-bezier(0.45, 0.05, 0.55, 0.95);
  transition: 0.25s cubic-bezier(0.45, 0.05, 0.55, 0.95); }
  .button.blue:hover {
    color: #fff;
    padding: 0.5em 1.3125rem;
    background-color: #283faf; }

.field .field-items .field-item p a {
  color: #363636; }
  .field .field-items .field-item p a:hover {
    color: #283faf; }

.hero-header .hero-header__title {
  z-index: 1; }

.off-canvas-content {
  background: #f4f4f4; }
  .off-canvas-content .grid-x {
    max-width: 78.125rem;
    margin-right: auto;
    margin-left: auto; }
    .off-canvas-content .grid-x .large-6.medium-6.small-12.cell {
      margin-bottom: 0; }
    .off-canvas-content .grid-x #main {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }

.field .field-items .field-item .views-element-container div h3 {
  font-weight: 900;
  font-size: 1.5rem;
  line-height: 1.11;
  font-family: proxima-nova, Arial, sans-serif;
  margin-top: 24px; }

.views-field.views-field-title .field-content a {
  color: #363636; }
  .views-field.views-field-title .field-content a:hover {
    color: #283faf; }

#paragraph-8 .field .field-items .field-item .views-element-container .row .column, #paragraph-8 .field .field-items .field-item .views-element-container .row .columns {
  padding: 5px; }
  #paragraph-8 .field .field-items .field-item .views-element-container .row .column .views-field .field-content .event-card.bg-yellow, #paragraph-8 .field .field-items .field-item .views-element-container .row .columns .views-field .field-content .event-card.bg-yellow {
    color: #363636 !important;
    padding: 30px 38px 15px 38px;
    height: 190px !important; }
    #paragraph-8 .field .field-items .field-item .views-element-container .row .column .views-field .field-content .event-card.bg-yellow .event-card__date, #paragraph-8 .field .field-items .field-item .views-element-container .row .columns .views-field .field-content .event-card.bg-yellow .event-card__date {
      display: block;
      margin-bottom: 10px; }
    #paragraph-8 .field .field-items .field-item .views-element-container .row .column .views-field .field-content .event-card.bg-yellow .event-card__cta, #paragraph-8 .field .field-items .field-item .views-element-container .row .columns .views-field .field-content .event-card.bg-yellow .event-card__cta {
      padding: 0;
      height: 10px; }
      #paragraph-8 .field .field-items .field-item .views-element-container .row .column .views-field .field-content .event-card.bg-yellow .event-card__cta span, #paragraph-8 .field .field-items .field-item .views-element-container .row .columns .views-field .field-content .event-card.bg-yellow .event-card__cta span {
        opacity: 0; }

.off-canvas-wrapper .inner-wrap.off-canvas-wrapper-inner {
  background: #f4f4f4; }
  .off-canvas-wrapper .inner-wrap.off-canvas-wrapper-inner .grid-x {
    max-width: 78.125rem;
    margin-right: auto;
    margin-left: auto; }
    .off-canvas-wrapper .inner-wrap.off-canvas-wrapper-inner .grid-x .large-6.medium-6.small-12.cell {
      margin-bottom: 0; }

.field-paragraph--field-hours,
.field-paragraph--field-exceptions {
  margin-left: 16px; }

body .dialog-off-canvas-main-canvas .off-canvas-wrapper #inner-wrap .grid-x #main {
  width: 100%; }
  body .dialog-off-canvas-main-canvas .off-canvas-wrapper #inner-wrap .grid-x #main section .nodisplay div .block-rcl-foundation-content article .view-mode-full .h3 {
    font-weight: 900;
    font-family: proxima-nova, Arial, sans-serif;
    font-size: 1.5rem; }

.body.field.field-node--body.field-name-body.field-type-text-with-summary.field-label-hidden .field-items .field-item table tbody {
  border: 1px solid silver; }

.field.field-paragraph--field-text-area.field-name-field-text-area.field-type-text-long.field-label-hidden .field-items .field-item table tbody {
  border: 1px solid silver; }

.grid-x .large-4 {
  width: 32%; }
  .grid-x .large-4 .paragraph .field .field-items .field-item h3 {
    font-size: 1.5rem;
    line-height: 1.11; }
    .grid-x .large-4 .paragraph .field .field-items .field-item h3 a {
      color: #363636; }
      .grid-x .large-4 .paragraph .field .field-items .field-item h3 a:hover {
        color: #283faf; }
  .grid-x .large-4 .paragraph .field .field-items .field-item ul li a {
    color: #363636; }
    .grid-x .large-4 .paragraph .field .field-items .field-item ul li a:hover {
      color: #283faf; }

.featured.row .column div span .event-card .collection-content-container .event-card__date, .featured.row .columns div span .event-card .collection-content-container .event-card__date {
  color: #0a0a0a; }

.featured.row .column div span .event-card:hover .collection-content-container .event-card__date, .featured.row .columns div span .event-card:hover .collection-content-container .event-card__date {
  color: #363636; }

.featured.row .column div span .event-card:hover .collection-content-container .description p, .featured.row .columns div span .event-card:hover .collection-content-container .description p {
  color: #363636; }

.submenu .is-submenu-item a {
  color: #363636; }

.row .columns a {
  color: #363636; }
  .row .columns a:hover {
    color: #283faf; }

.off-canvas-content .grid-x #sidebar-second {
  padding-right: 0.9375rem;
  padding-left: 0.9375rem; }

#paragraph-2413 .grid-x .large-3 .paragraph .field .field-items .field-item h3 {
  font-size: 1.5rem;
  line-height: 1.11;
  font-family: proxima-nova, Arial, sans-serif;
  font-weight: 900; }
  #paragraph-2413 .grid-x .large-3 .paragraph .field .field-items .field-item h3 strong {
    font-weight: 900; }

#paragraph-2933 .image-content-row__content h4 {
  font-family: proxima-nova, Arial, sans-serif; }

#paragraph-2933 .image-content-row__content .field .field-items .field-item p strong span {
  font-family: proxima-nova, Arial, sans-serif; }

.field .field-items .field-item p .alt.button.yellow {
  border-top: none;
  border-left: none;
  border-right: none;
  padding: 0.25rem 0.5rem;
  -webkit-transition: 0.25s cubic-bezier(0.45, 0.05, 0.55, 0.95);
  transition: 0.25s cubic-bezier(0.45, 0.05, 0.55, 0.95); }
  .field .field-items .field-item p .alt.button.yellow:hover {
    padding: 0.5em 1.3125rem;
    background-color: #ffc70a;
    color: #252525; }
  .field .field-items .field-item p .alt.button.yellow:focus {
    padding: 0.5em 1.3125rem;
    background-color: #ffc70a;
    color: #252525; }

#block-studioxgetintouch .body .field-items .field-item div .button {
  text-align: left; }

#paragraph-1450 .field .field-items .field-item .views-element-container .featured .column, #paragraph-1450 .field .field-items .field-item .views-element-container .featured .columns {
  padding: 5px; }

#footer-first {
  padding-left: 0.75rem; }

.bottom-bar .grid-x {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

/* making this so that .inline works for displaying inline */
.inline {
  display: inline; }

.center {
  text-align: center; }

/* but....we have to override it for hours in the footer */
#footer-first .inline {
  display: block;
  color: rgba(255, 255, 255, 0.65); }

header {
  background: #00205b; }
  header .dropdown.menu,
  header input[type="text"],
  header button {
    float: left; }
  header [type="text"],
  header [type="password"],
  header [type="date"],
  header [type="datetime"],
  header [type="datetime-local"],
  header [type="month"],
  header [type="week"],
  header [type="email"],
  header [type="number"],
  header [type="search"],
  header [type="tel"],
  header [type="time"],
  header [type="url"],
  header [type="color"],
  header textarea {
    margin: 0;
    background: #283FAF;
    border: none;
    height: 42px !important;
    width: 180px;
    font-size: 15px !important; }
  header input[type='text']:focus,
  header input[type='text']:active,
  header input[type='text'] {
    background: #283FAF !important;
    background-color: #283FAF !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    border: none;
    color: #FFFFFF; }
  header form {
    margin-right: 20px; }
    header form .dropdown.menu {
      background: #283FAF;
      height: 42;
      height: 42px;
      padding: 9px 11px;
      color: #FFFFFF;
      font-weight: 700;
      font-size: 15px;
      border-right: 1px solid #ffffff30; }
      header form .dropdown.menu svg {
        height: 13px;
        position: relative;
        top: 2px;
        margin-left: 2px; }

main header {
  background: inherit; }

.search_bar .search-panel li {
  width: -webkit-max-content !important;
  width: -moz-max-content !important;
  width: max-content !important;
  min-width: 100%;
  cursor: default; }

.search_bar .search_bar input[type="text"] {
  -webkit-box-shadow: none;
          box-shadow: none; }

.cover-section .hero-search-container {
  width: 80%;
  margin: auto;
  max-width: 1090px;
  position: absolute;
  z-index: 1;
  top: 0px;
  left: 0;
  right: 0; }
  .cover-section .hero-search-container .search-panel li {
    width: -webkit-max-content !important;
    width: -moz-max-content !important;
    width: max-content !important;
    min-width: 100%; }

.cover-section .search_bar {
  padding-top: 40px;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  width: 100%;
  margin: auto; }
  .cover-section .search_bar .dropdown.menu,
  .cover-section .search_bar input[type="text"],
  .cover-section .search_bar button {
    float: left; }
  .cover-section .search_bar li {
    font-size: 18px;
    font-weight: bold;
    padding: 20px 23px 14px 18px; }
  .cover-section .search_bar input[type="text"] {
    height: 65px;
    font-size: 22px;
    border: none;
    width: 100%;
    -webkit-box-shadow: none;
            box-shadow: none; }
  .cover-section .search_bar button {
    height: 65px;
    width: 55px;
    padding: 17px;
    color: #252525;
    background: #ffffff; }

.advanced_search {
  color: #FFFFFF;
  text-align: right;
  margin-right: 5px;
  margin-top: -10px; }

.block-searchbox {
  position: relative;
  padding-bottom: 42px; }
  .block-searchbox .search_bar {
    padding-top: 0 !important; }
  .block-searchbox .advanced_search {
    color: #FFFFFF;
    text-align: right;
    margin-right: 5px;
    margin-top: -9px;
    margin-bottom: 20px;
    padding: 1px 6px;
    position: absolute;
    right: 0;
    bottom: 0; }
    .block-searchbox .advanced_search a {
      text-decoration: none; }
    .block-searchbox .advanced_search a:hover {
      color: #F4F4F4; }
    .block-searchbox .advanced_search .advanced_search:hover {
      background-color: #565656;
      -webkit-transition-duration: 0.01ms;
              transition-duration: 0.01ms; }

.advanced_search a:hover {
  color: white !important;
  text-decoration-color: #ffffff !important; }

header .advanced_search {
  display: none; }

.cover-section ul.dropdown.menu {
  background: white;
  width: auto;
  float: left;
  height: 65px;
  min-width: 250px; }
  .cover-section ul.dropdown.menu svg {
    height: 13px;
    position: relative;
    top: 2px;
    margin-left: 2px; }

.service-page-header h1 {
  margin-bottom: 0.25em; }

.service-highlight {
  margin-bottom: 2rem;
  font-size: 20px; }

.nodisplay .highlight-wrap {
  display: none; }

.project-page-right.large-3 {
  padding: 1.2em 0 0; }

.project-highlight-wrapper {
  margin-bottom: 2rem; }

.project-page-header h1 {
  margin-bottom: 0.25em; }

.project-highlight {
  font-size: 20px; }

/* Style for the dot */
.project-status:before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  background-color: #273faf;
  border-radius: 50%;
  margin-right: 8px; }

.project-status {
  padding: 0.75em;
  color: #252525;
  background: #ffc70a;
  margin: 0.5em 0;
  font-weight: bold;
  text-transform: uppercase; }

.project-website {
  background-color: transparent;
  color: #283faf;
  border: 1px solid #283faf;
  padding: 0.9em 0.75em;
  text-transform: uppercase;
  font-size: 16px;
  width: 100%;
  text-align: left; }

.project-website a:hover {
  color: white; }

ul.menu.dropdown-menu.submenu.is-dropdown-submenu.first-sub.vertical.js-dropdown-active {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content; }

.search-container.small button {
  height: 42px;
  width: 32px;
  padding: 8px;
  color: #FFFFFF;
  background: #283FAF; }

.field-name-field-media-gallery .field-item {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex; }

footer {
  background: #252525;
  border-top: 8px solid #FFC70A;
  margin-top: 50px; }
  footer .menu {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
  footer .grid-x {
    padding: 50px 0; }
  footer .block-title {
    font-family: proxima-nova, sans-serif;
    color: #FFFFFF;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 15px; }
  footer ul,
  footer ul.menu,
  footer .block-views {
    margin: 0;
    list-style: none;
    padding-bottom: 50px; }
  footer ul li {
    display: block;
    padding-left: 0;
    font-size: 15px;
    color: rgba(255, 255, 255, 0.65); }
  footer a {
    color: rgba(255, 255, 255, 0.65); }

footer ul.menu li,
footer ul li {
  display: block;
  padding-left: 0;
  font-size: 15px;
  color: rgba(255, 255, 255, 0.65); }

footer ul.menu li a,
footer ul li {
  color: rgba(255, 255, 255, 0.65); }

footer ul.menu li a {
  padding: 5px 0;
  color: rgba(255, 255, 255, 0.65); }

footer ul.menu li a:hover,
footer ul li a:hover,
footer .nav-lib a:hover {
  color: white !important; }

footer .items {
  display: block;
  font-family: proxima-nova, sans-serif;
  color: rgba(255, 255, 255, 0.65);
  font-weight: 700;
  font-size: 15px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 2px 0 2px 0px;
  -webkit-transition: 0.2s;
  transition: 0.2s; }

.bottom-bar.callout.footer-logos {
  background: #252525;
  margin: 0;
  border: 0; }

.bottom-bar.callout.secondary {
  margin: 0;
  border: 0;
  background: #252525;
  color: #FFFFFF;
  padding-bottom: 100px; }
  .bottom-bar.callout.secondary a {
    color: #E7E7E7; }
  .bottom-bar.callout.secondary a:hover {
    color: #FFFFFF; }

.copyright {
  color: rgba(255, 255, 255, 0.65);
  font-size: 12px; }

.footer-logos .logo {
  max-height: 50px; }

.cell > a {
  display: initial; }

.large-6.cell:active,
.grid-x:active {
  background: initial; }

.image-content-row__content h4 {
  margin-bottom: 0px; }

.toolbar-menu-administration ul.menu li.menu-item {
  margin-right: 0; }

nav :active,
.menuitem :active,
.menu :active,
ul :active,
ul.menu :active {
  background: initial; }

.block-rcl-foundation-local-tasks li,
.block-rcl-foundation-local-tasks--2 li {
  display: inline-block; }
  .block-rcl-foundation-local-tasks li a,
  .block-rcl-foundation-local-tasks--2 li a {
    border: 0px; }

.title-wrap {
  margin-top: 0.5em; }

.views-element-container div > h3 span {
  font-size: 0.875rem;
  color: #565656;
  font-weight: 400; }
  @media print, screen and (min-width: 40em) {
    .views-element-container div > h3 span {
      font-size: 1rem; } }

.featured-boxes .cell,
.featured .cell {
  padding: 5px; }
  .featured-boxes .cell > div,
  .featured .cell > div {
    height: 100%; }
  .featured-boxes .cell .event-card.bg-yellow,
  .featured .cell .event-card.bg-yellow {
    background: #FFC70A;
    margin-top: 5px;
    padding: 30px 38px 15px 38px;
    height: 190px; }
    .featured-boxes .cell .event-card.bg-yellow .event-card__date,
    .featured .cell .event-card.bg-yellow .event-card__date {
      display: block;
      margin-bottom: 10px; }
    .featured-boxes .cell .event-card.bg-yellow span.description,
    .featured .cell .event-card.bg-yellow span.description {
      font-size: 17px; }
    .featured-boxes .cell .event-card.bg-yellow .event-card__cta,
    .featured .cell .event-card.bg-yellow .event-card__cta {
      padding: 0;
      font-size: 15px;
      height: 10px; }
      .featured-boxes .cell .event-card.bg-yellow .event-card__cta span,
      .featured .cell .event-card.bg-yellow .event-card__cta span {
        opacity: 0; }
        .featured-boxes .cell .event-card.bg-yellow .event-card__cta span :hover,
        .featured .cell .event-card.bg-yellow .event-card__cta span :hover {
          opacity: 1; }
    .featured-boxes .cell .event-card.bg-yellow a,
    .featured .cell .event-card.bg-yellow a {
      font-weight: 900;
      font-size: 22px; }

.paragraph--type--text-area,
.paragraph--type--image-content-row,
.paragraph--type--multi-column-row {
  clear: both; }

.extra-padding {
  padding: 20px;
  height: 100%; }

.paragraph {
  margin-bottom: 16px; }

a.feature-link {
  background: #FFFFFF;
  padding: 30px 20px 4px 10px;
  margin: 0 10px 10px 10px;
  width: 47%; }

a.feature-link:hover {
  background: #00205b;
  color: #FFFFFF;
  -webkit-transition: 0.4s;
  transition: 0.4s; }

.node--type-special-page .block-rcl-foundation-page-title,
.node--type-space .block-rcl-foundation-page-title,
.node--type-collaborator .block-rcl-foundation-page-title,
.path-user .block-rcl-foundation-page-title {
  display: none; }

.field-name-field-audience > .field-items {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .field-name-field-audience > .field-items > .field-item {
    padding-right: 32px; }

.accordion {
  background: none; }

.accordion-title {
  color: #252525;
  font-size: 1.25rem;
  line-height: 1.6;
  padding: 1rem 0;
  border: none;
  border-bottom: 2px solid #E7E7E7;
  -webkit-transition: border 0.1s ease-in-out;
  transition: border 0.1s ease-in-out; }

.accordion-title.is-active,
a.accordion-title[aria-expanded="true"] {
  border: none; }

a.accordion-title {
  font-weight: 700; }

.accordion-title:hover, .accordion-title:focus {
  background: none; }

.accordion-title:hover {
  border-bottom: 4px solid #00457f; }

.accordion-title::before {
  line-height: 1; }

.accordion-content {
  background: none;
  border: none;
  border-bottom: 2px solid #E7E7E7;
  padding: 0 0 1rem; }

.accordion-item:last-child > .accordion-title,
.accordion-item:last-child > .accordion-content {
  border: none; }

.button-group .button {
  display: inline-block;
  padding: 15px 30px;
  color: #252525;
  background: #E7E7E7;
  font-weight: 400;
  cursor: pointer;
  border-radius: 0;
  font-size: 1.25rem; }
  .button-group .button .secondary:hover {
    border-color: #787878; }

.button.active {
  background: #ffc70a;
  color: #252525;
  font-weight: 400;
  font-weight: 900; }

.staff .views-row {
  background: #FFFFFF;
  margin: 5px;
  padding: 10px 0 10px 0;
  position: relative; }
  .staff .views-row .edit {
    position: absolute;
    top: 8px;
    right: 7px;
    margin: auto; }
  .staff .views-row .job-title {
    font-style: italic; }

.staff .views-exposed-form {
  margin: 50px 0; }
  .staff .views-exposed-form .form-item {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex; }
    .staff .views-exposed-form .form-item label {
      font-weight: 700;
      margin-right: 30px; }
    .staff .views-exposed-form .form-item input {
      width: 50%; }
  .staff .views-exposed-form .form-actions {
    display: inline-block; }
    .staff .views-exposed-form .form-actions .button {
      margin-bottom: 0px; }

header .dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 32px;
  right: auto;
  left: -11px;
  color: black; }

.dropdown.menu {
  z-index: 1; }

li.is-submenu-item.is-dropdown-submenu-item {
  padding: 0; }

ul.menu.dropdown-menu.submenu.is-dropdown-submenu.first-sub.vertical.js-active-dropdown.js-dropdown-active {
  width: 300px; }

.dropdown .is-dropdown-submenu a {
  padding: 0.7rem; }

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 65px;
  right: auto;
  left: -1px;
  color: black; }

.dropdown .is-dropdown-submenu a:hover {
  background: #F4F4F4; }

li.is-submenu-item.is-dropdown-submenu-item a:hover {
  background: #F4F4F4;
  color: #252525; }

a.event-card.bg-white {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 0; }
  a.event-card.bg-white .collection-image-container {
    overflow: hidden;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 35%;
            flex: 0 0 35%; }
    a.event-card.bg-white .collection-image-container .collection-image {
      height: 100%; }
      a.event-card.bg-white .collection-image-container .collection-image img {
        height: 250px;
        -o-object-fit: cover;
           object-fit: cover;
        transition: all ease-in-out 0.3s;
        -webkit-transition: all ease-in-out 0.3s; }
        a.event-card.bg-white .collection-image-container .collection-image img > :nth-child(8) {
          height: 256px !important; }
      @media all and (-ms-high-contrast: none) {
        a.event-card.bg-white .collection-image-container .collection-image {
          /* IE11 */ }
          a.event-card.bg-white .collection-image-container .collection-image *::-ms-backdrop,
          a.event-card.bg-white .collection-image-container .collection-image img {
            height: auto; } }
      a.event-card.bg-white .collection-image-container .collection-image article,
      a.event-card.bg-white .collection-image-container .collection-image div {
        height: 100%; }
  a.event-card.bg-white .collection-content-container {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 65%;
            flex: 0 0 65%;
    padding: 0; }
  a.event-card.bg-white .event-card__date {
    transition: all ease-in-out 0.3s;
    -webkit-transition: all ease-in-out 0.3s;
    margin: 10px 20px 20px 20px;
    color: #363636; }
  a.event-card.bg-white .description p {
    margin-bottom: 0;
    padding: 0 20px 10px;
    color: #363636; }
  a.event-card.bg-white:hover .collection-image img {
    -webkit-transform: scale(1.05);
    transform: scale(1.05); }
  a.event-card.bg-white:hover .event-card__date {
    color: #787878; }

.featured span.event-card__date {
  border-bottom: none;
  font-size: 17px; }

form#views-exposed-form-staff-page-2 {
  margin: 0 !important;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex; }

input#edit-submit-staff {
  background: #FFC70A;
  border: 5px solid #FFC70A;
  height: 40px;
  padding: 10px 23px;
  font-size: 15px; }

form#views-exposed-form-staff-page-2 label {
  margin: 6px 10px 0px 0px; }

.staff .views-exposed-form .form-item input {
  width: 70%; }

.advanced_search a {
  padding: 5px 10px;
  background: rgba(0, 0, 0, 0.5); }

.advanced_search a:hover {
  background: rgba(0, 0, 0, 0.8); }

nav .is-active:hover {
  color: white !important; }

form label {
  font-weight: 900;
  font-size: 18px; }

form [type='text'],
form [type='password'],
form [type='date'],
form [type='datetime'],
form [type='datetime-local'],
form [type='month'],
form [type='week'],
form [type='email'],
form [type='number'],
form [type='tel'],
form [type='time'],
form [type='url'],
form [type='color'],
form textarea {
  font-size: 24px;
  padding: 10px;
  height: 50px; }

form .js-form-item-some-text {
  font-size: 16px;
  color: #252525; }

form hr {
  border-bottom: 1px solid #E7E7E7; }

form .button.success {
  color: #FFFFFF;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  background-color: #283FAF; }

.top-bar {
  background: #00205b;
  padding: 0; }
  .top-bar .large-5,
  .top-bar .large-7 {
    -ms-flex: none !important;
    -webkit-box-flex: 0 !important;
            flex: none !important;
    max-width: -webkit-fill-available !important; }
  .top-bar .large-5 {
    width: 42%; }
  .top-bar .large-7 {
    width: 54%; }

.path-node a:not([href]) {
  display: block;
  position: relative;
  top: -150px;
  visibility: hidden; }

@media print, screen and (min-width: 64em) {
  .hero-header,
  .header-hero-image {
    max-height: 750px;
    overflow: hidden; }
    .hero-header .large-5,
    .header-hero-image .large-5 {
      -webkit-box-flex: 0 !important;
          -ms-flex: none !important;
              flex: none !important;
      max-width: -webkit-max-content !important; }
  .header-hero-image__content {
    width: 60%; } }

@media print, screen and (min-width: 40em) {
  .cell {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; } }

@media print {
  header,
  .breadcrumbs,
  .button-group,
  .chat-container,
  footer,
  .bottom-bar {
    display: none !important; }
  .intro-lead {
    font-size: 18px;
    font-weight: bold; }
  .intro-lead__title {
    font-size: 22px;
    -webkit-transform: none;
            transform: none; }
  section#block-rcl-foundation-sitebranding {
    width: 100% !important;
    font-size: 22px;
    text-decoration: none !important; }
  #block-rcl-foundation-sitebranding .a {
    border-bottom: none !important;
    text-decoration: none !important; }
  .staff .views-exposed-form {
    display: none !important; }
  .staff .f4 {
    font-size: 20px !important; }
  .staff .grid-x.views-row {
    font-size: 80% !important;
    border-bottom: 1px solid black !important; }
  #block-rcl-foundation-page-title h1 {
    font-size: 30px;
    border-bottom: 1px solid black; }
  a[href]:after {
    content: none !important; }
  img[src]:after {
    content: none !important; }
  #block-rcl-foundation-sitebranding {
    text-decoration: none; }
  #block-navigationhours {
    display: none; } }

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  quotes: "“" "”" "‘" "’ "; }
  blockquote:before {
    content: open-quote;
    font-family: sans-serif;
    color: #787878;
    font-size: 4em;
    line-height: 0.1em;
    vertical-align: -0.4em; }
  blockquote:after {
    content: close-quote;
    font-family: sans-serif;
    color: #787878;
    font-size: 4em;
    line-height: 0.1em;
    vertical-align: -0.4em; }
  blockquote p {
    display: inline;
    color: #252525; }

/* news card override */
.news-card__image img {
  position: relative;
  -webkit-transform: none;
          transform: none;
  -webkit-transform-origin: 50% 0%;
          transform-origin: 50% 0%; }

.news-card:hover img {
  opacity: 0.7;
  -webkit-transform: scale(1.1);
          transform: scale(1.1); }

.news-card__image {
  height: auto;
  min-height: initial;
  background-color: inherit; }

/* Specifically for spaces when we have full name vs. normal name */
.hero-header__subtitle {
  font-size: 1.1vw;
  font-weight: 900; }

#paragraph-1999 .field .field-items .field-item .views-element-container .row .column.mb1 .news-card .news-card__content, #paragraph-1999 .field .field-items .field-item .views-element-container .row .mb1.columns .news-card .news-card__content {
  color: #363636; }

#paragraph-2065 .grid-x .large-4 .bg-white .paragraph .field .field-items .field-item blockquote p {
  color: #252525; }

.node--type-space section#block-views-block-hours-block-4 {
  display: none; }

.node--type-space .field-node--field-space {
  display: none; }

.node--type-space .todays_hour_block {
  font-size: 19px;
  background: white;
  font-weight: 100;
  padding: 10px 20px; }
  .node--type-space .todays_hour_block span {
    font-size: 30px;
    display: block;
    font-weight: 600; }

.node--type-space .field-paragraph--field-hours,
.node--type-space .field-paragraph--field-exceptions {
  margin: 0; }

.node--type-space .office-hours__item {
  border-bottom: 1px solid #E7E7E7; }

.node--type-space .field-paragraph--field-title {
  border-top: 5px solid #ffc70a;
  padding: 9px;
  background: #FFFFFF; }

.node--type-space .field-paragraph--field-exceptions .office-hours__item-label,
.node--type-space .field-paragraph--field-exceptions .office-hours__item-comments {
  font-size: 0.875rem; }

.node--type-space .field-paragraph--field-exceptions .paragraph {
  margin-bottom: 2px; }

.node--type-space .field-paragraph--field-hours {
  background: white;
  padding: 5px 10px; }
  .node--type-space .field-paragraph--field-hours .office-hours__item:last-of-type {
    border-bottom: none; }

.node--type-space .field-paragraph--field-date-range {
  background: white;
  padding: 10px;
  font-size: 15px; }

.spaceowner .field-item:not(:first-child) {
  font-size: initial;
  font-weight: 700;
  padding-left: 20px; }

.path-search .views-element-container footer {
  background: transparent;
  border-top: 1px solid lightgray;
  padding-top: 12px; }

.top-bar {
  background: #00205b;
  padding: 0; }

.title-bar {
  background: #00205b; }

.top-bar ul.dropdown.menu.search-panel {
  background: #283FAF; }

header.sticky-container {
  height: 42px !important; }

.top-bar ul.menu.dropdown {
  padding-bottom: 5px; }

.top-bar ul.menu {
  background: none; }

#block-navigationhours {
  position: relative;
  top: 3px; }
  #block-navigationhours a.f5.link-1 {
    font-size: 13px; }

#block-navigationhours .inline {
  display: block; }

/* Extra small devices (phones, 600px and down) */
@media only screen and (max-width: 600px) {
  .block-searchbox .search_bar {
    display: block;
    width: 90%; }
    .block-searchbox .search_bar button {
      position: absolute;
      bottom: 59px;
      right: 11px; }
    .block-searchbox .search_bar ul.dropdown.menu.search-panel {
      width: 100%;
      background: lightgray; }
  .cover-section .header-hero-image .search_bar button {
    position: absolute;
    bottom: 41px;
    right: 0; }
  .cover-section .header-hero-image .search_bar input[type="text"] {
    font-size: 18px;
    padding: 20px 60px 20px 20px; }
  .cover-section .header-hero-image svg {
    float: right; }
  .cover-section .header-hero-image ul.dropdown.menu {
    min-width: 100%;
    background: #F4F4F4; }
  .cover-section .header-hero-image .hero-search-container .search_bar {
    display: block; }
  .cover-section .header-hero-image .hero-search-container ul.dropdown.menu {
    min-width: 100%; }
  .branding-header .block-rcl-foundation-sitebranding {
    text-align: center; }
    .branding-header .block-rcl-foundation-sitebranding a {
      font-size: 22px; }
  .branding-header a.feature-link {
    width: 100%; }
  .header-hero-image {
    background-color: #ffc70aa1;
    min-height: 250px; }
  .header-hero-image__content {
    display: none; }
  a.feature-link {
    margin: 0px 10px 10px 10px;
    width: 100%; } }

.sticky {
  z-index: 5; }

.sticky.is-at-top.is-stuck .top-bar {
  max-width: 100%; }

header ul.menu.dropdown-menu.submenu.is-dropdown-submenu.first-sub.vertical.js-dropdown-active {
  background: #E7E7E7; }

/* login page update */
.shibboleth-login a {
  background-color: rgba(255, 199, 10, 0.7);
  color: #252525;
  display: block;
  font-size: 1.125rem;
  font-weight: 900;
  padding: 15px 10px 12px;
  padding: 15px 16px 12px;
  text-align: center;
  text-decoration-color: transparent;
  -webkit-transition: background-color 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
  transition: background-color 0.25s cubic-bezier(0.66, -0.39, 0.41, 1.35);
  will-change: background-color; }
  .shibboleth-login a:hover, .shibboleth-login a:focus {
    background-color: #ffc70a;
    color: #252525;
    text-decoration-color: currentColor; }
  .shibboleth-login a > svg {
    margin-left: 8px;
    width: 10px; }
  @media print, screen and (min-width: 40em) {
    .shibboleth-login a {
      font-size: 1.25rem;
      padding: 7px 10px 5px; } }

/* smaller devices max with 600px*/
/* smaller devices max width 640px*/
/* Large devices (laptops/desktops, 992px and up) */
@media only screen and (max-width: 1118px) {
  .grid-x.foundation-2col.field-items .medium-9.small-12.cell {
    width: 100%;
    max-width: 100%; }
  .grid-x.foundation-2col.field-items .medium-3.small-12.cell {
    width: 100%;
    max-width: 100%; }
  .branding-header .block-rcl-foundation-sitebranding {
    font-size: 24px; }
  header.announcement {
    padding-top: 40px; }
  header.sticky-container {
    height: 40px !important; }
  .nav-bottom-bar {
    background: #082e77;
    max-width: 100%;
    min-width: 100%; }
  .nav-top-bar {
    min-width: 100%; }
  .block-rcl-foundation-breadcrumbs nav .breadcrumbs {
    margin: 50px 0px 15px 0px; }
  header.sticky-container {
    height: 82px; }
  .field .field-items .field-item .views-element-container .row .column, .field .field-items .field-item .views-element-container .row .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 49%;
            flex: 0 0 49%;
    max-width: 49%; } }

/* Extra large devices (large laptops and desktops, 1200px and up) */
/* Small devices (portrait tablets and large phones, 600px and up) */
@media only screen and (max-width: 600px) {
  header.announcement {
    padding-top: 0px !important; } }

@media only screen and (max-width: 640px) {
  .top-bar ul.dropdown.menu.search-panel {
    width: 100%;
    background: #3046b1; }
  .search_bar .search-panel li {
    text-align: left;
    padding-left: 20px; }
  .search-container.small input#inputBox {
    min-width: 100%; }
  header.announcement {
    padding-top: 0 !important; }
  header.sticky-container {
    height: 40px; }
  .block-navigationhours {
    padding: 15px 20px;
    text-align: center; }
  header .menu li:not(:last-child) {
    margin-right: 9px; }
  header ul.menu.dropdown {
    width: 100%; }
  header .menu li {
    width: 100%;
    text-align: center; }
  header .sticky.is-anchored.is-at-top {
    z-index: 2; }
  header .search_bar {
    float: none;
    display: block;
    margin-top: 20px;
    width: 100%;
    position: relative; }
  header #block-secondarynavigation .menu li {
    display: block; }
  header form {
    margin-right: 0; }
  header form .dropdown.menu {
    padding: 9px 0px; }
  header .search-container.small button {
    width: 40px;
    width: 40px;
    position: absolute;
    top: 42px;
    right: 0px;
    bottom: 2px; }
  header #block-secondarynavigation {
    margin: auto;
    width: 100%;
    margin-top: 20px;
    margin-bottom: 20px; }
  header .dropdown.menu > li.opens-right > .is-dropdown-submenu {
    left: 0 !important; }
  header ul.menu.dropdown-menu.submenu.is-dropdown-submenu.first-sub.vertical.js-dropdown-active {
    background: #E7E7E7; } }

.top-bar {
  -ms-flex-wrap: wrap !important;
  flex-wrap: wrap !important;
  max-width: 1240px;
  margin: auto; }

table thead th {
  padding: 0.9375rem 1.875rem; }

table tbody td {
  padding: 0.9375rem 1.875rem; }

/* Medium devices (landscape tablets, 768px and up) */
@media only screen and (max-width: 768px) {
  header.announcement {
    padding-top: 0px; }
  .grid-x #sidebar-first {
    width: 100%;
    min-width: 100%; }
  .grid-x #main {
    width: 100%;
    min-width: 100%; }
  .off-canvas-wrapper .inner-wrap.off-canvas-wrapper-inner .grid-x .large-6.medium-6.small-12.cell {
    width: 100%;
    max-width: 100%; }
  .field .field-items .field-item .views-element-container .row .column, .field .field-items .field-item .views-element-container .row .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
    height: auto; }
  .top-bar {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap; }
  a.feature-link {
    margin: 0px 10px 10px 9px;
    width: 100%; }
  .off-canvas-wrapper .inner-wrap.off-canvas-wrapper-inner .off-canvas-content .branding-header .grid-x .small-12.medium-7.large-6.columns {
    width: 100%; }
  .off-canvas-wrapper .inner-wrap.off-canvas-wrapper-inner .off-canvas-content .branding-header .grid-x .small-12.medium-5.large-6.columns {
    width: 100%; }
  #footer-first {
    width: 100%;
    padding: 0; }
  #footer-middle {
    width: 100%; }
  #footer-last {
    width: 100%; }
  article .view-mode-full .field.field-node--field-paragraphs.field-name-field-paragraphs.field-type-entity-reference-revisions.field-label-hidden .field-items .field-item .paragraph.paragraph--type--multi-column-row.paragraph--view-mode--default .grid-x .large-4.medium-4.small-12.cell {
    width: 100%; } }

.content-header {
  background-color: #E7E7E7;
  padding-top: 3rem; }

.button {
  border-radius: 0;
  -webkit-transition: 0.25s cubic-bezier(0.45, 0.05, 0.55, 0.95);
  transition: 0.25s cubic-bezier(0.45, 0.05, 0.55, 0.95); }

:not(.button-group) a.button:hover,
:not(.button-group) a.button:focus {
  color: #FFFFFF;
  padding: 0.5em 1.3125rem; }

a.button.yellow,
a.button.yellow:hover,
a.button.yellow:focus {
  color: #252525; }

a.button.black {
  border-color: #252525; }

a.button.black:hover,
a.button.black:focus {
  background-color: #252525; }

.button.arrow::after {
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: auto;
  font-family: "Font Awesome 5 Pro";
  font-weight: 900;
  content: "\f061";
  position: relative;
  top: -1px;
  padding-left: 0.5rem;
  font-size: 0.75rem;
  color: inherit;
  -webkit-transition: 0.35s cubic-bezier(0.23, 1, 0.32, 1);
  transition: 0.35s cubic-bezier(0.23, 1, 0.32, 1); }

.block-socialmediaicons ul {
  list-style-type: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-bottom: 10px; }
  .block-socialmediaicons ul li {
    margin-right: 20px; }
    .block-socialmediaicons ul li:last-of-type {
      margin-right: 0; }

.block-socialmediaicons a:hover, .block-socialmediaicons a:focus, .block-socialmediaicons a:active {
  color: #ffffff; }

.block-socialmediaicons a svg {
  height: 35px; }

.block-socialmediaicons > div a {
  display: block;
  padding: 5px 0;
  line-height: 1; }

.block-socialmediaicons > div:last-of-type {
  margin-bottom: 50px; }

.node--type-space .field-paragraph--field-floor .field-item {
  font-size: 21px;
  font-weight: 700;
  border: 2px solid #E7E7E7;
  width: 37px;
  text-align: center;
  border-radius: 3px;
  background: white; }

.node--type-space .field-name-field-atmosphere {
  display: block;
  width: 34%;
  float: left; }
  .node--type-space .field-name-field-atmosphere .field-item {
    background: white;
    margin: 5px 0;
    padding: 5px 12px; }

.node--type-space .callout {
  border: none;
  padding: 20px 0;
  background: none; }

.node--type-space #space_details {
  border-top: 1px solid lightgray;
  padding-top: 45px; }

.node--type-space .field-node--body p {
  font-size: 20px; }

.covidhide {
  display: none; }

.alert {
  background: #272727;
  padding: 50px 0;
  position: relative; }
  .alert .grid-x {
    max-width: 78.125rem;
    margin-right: auto;
    margin-left: auto; }
  .alert .icon {
    margin: 0 auto;
    text-align: center; }
    .alert .icon i {
      font-size: 4rem;
      color: #ffc70a; }
  .alert .content {
    color: white;
    font-family: proxima-nova, sans-serif;
    text-align: center; }
    .alert .content .alert-title {
      font-size: 30px;
      font-weight: 900;
      line-height: 32px;
      margin: 30px 0 20px; }
    .alert .content .alert-date {
      font-style: italic;
      font-size: 16px;
      margin-bottom: 30px; }
    .alert .content .btn.alert {
      border: 2px solid white;
      color: white;
      font-size: 15px;
      border-radius: 1px;
      padding: 0.2rem 1rem;
      margin-top: 30px; }
      .alert .content .btn.alert:after {
        background: #ffc70a;
        height: 105%; }
      .alert .content .btn.alert:hover {
        color: #212121; }
      .alert .content .btn.alert i {
        margin-left: 5px;
        position: relative;
        top: 0;
        right: 0;
        -webkit-transition: margin-left 0.35s cubic-bezier(0.23, 1, 0.32, 1), right 0.35s cubic-bezier(0.23, 1, 0.32, 1);
        transition: margin-left 0.35s cubic-bezier(0.23, 1, 0.32, 1), right 0.35s cubic-bezier(0.23, 1, 0.32, 1);
        font-size: 0.75rem; }
  .alert .alert-close-button {
    color: white;
    background: transparent;
    border: none;
    cursor: pointer;
    opacity: 0.6;
    -webkit-transition: 0.2s;
    transition: 0.2s;
    position: absolute;
    top: 20px;
    right: 20px; }
    .alert .alert-close-button:hover {
      opacity: 1; }
  .alert a {
    text-decoration: underline;
    -webkit-transition: all cubic-bezier(0.6, 0, 0.4, 1) 0.15s;
    transition: all cubic-bezier(0.6, 0, 0.4, 1) 0.15s;
    color: #FFFFFF; }
    .alert a:hover {
      text-decoration: none;
      color: #FFFFFF; }

@media (min-width: 998px) {
  .alert .icon i {
    font-size: 3rem; }
  .alert .content {
    text-align: left; }
    .alert .content .alert-title {
      margin: 0 0 20px 0; }
  .alert .alert-close-button {
    position: relative;
    top: 0;
    right: 0; } }

#iframe_49937bd743edaefb9389ca0320c1f58f {
  max-height: 380px !important; }

button.s-lch-widget-float-btn,
#iframe_49937bd743edaefb9389ca0320c1f58f {
  -webkit-box-shadow: 0 0.938em 2.188em rgba(50, 50, 93, 0.15), 0 0.313em 0.938em rgba(0, 0, 0, 0.1);
          box-shadow: 0 0.938em 2.188em rgba(50, 50, 93, 0.15), 0 0.313em 0.938em rgba(0, 0, 0, 0.1); }

/* image styling */
figure.align-left,
article.align-left, article.align_left,
.node--type-article .field-name-field-media-item {
  margin-right: 20px;
  margin-bottom: 10px;
  float: left; }

figure.align-right,
article.align-right {
  margin-left: 20px;
  margin-bottom: 10px; }

figcaption {
  font-variant: small-caps;
  color: #787878;
  text-align: center;
  font-size: 0.875rem; }

.align-center img {
  display: block;
  margin: 0 auto; }

article.align-left.default,
.node--type-article .field-name-field-media-item,
article figure.align-right {
  max-width: 50%; }
  @media (max-width: 480px) {
    article.align-left.default,
    .node--type-article .field-name-field-media-item,
    article figure.align-right {
      display: block;
      float: none;
      max-width: 480px;
      margin-right: 0;
      margin-left: 0; } }

.mfp-image-holder .mfp-content {
  max-width: 960px; }

.mfp-field.field-name-field-media-gallery .field-items {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin: 0 -10px; }
  .mfp-field.field-name-field-media-gallery .field-items .field-item {
    padding: 10px;
    width: 20%;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 250px; }
    .mfp-field.field-name-field-media-gallery .field-items .field-item:nth-child(n + 6) {
      display: none; }
    .mfp-field.field-name-field-media-gallery .field-items .field-item a {
      overflow: hidden;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; }
      .mfp-field.field-name-field-media-gallery .field-items .field-item a:hover img {
        -webkit-transform: scale(1.05);
                transform: scale(1.05); }
      .mfp-field.field-name-field-media-gallery .field-items .field-item a img {
        min-width: 100%;
        -ms-flex-item-align: center;
            align-self: center;
        -webkit-transition: all cubic-bezier(0.6, 0, 0.4, 1) 0.15s;
        transition: all cubic-bezier(0.6, 0, 0.4, 1) 0.15s; }
  @media (max-width: 768px) {
    .mfp-field.field-name-field-media-gallery .field-items {
      margin: 0 -5px; }
      .mfp-field.field-name-field-media-gallery .field-items .field-item {
        padding: 5px;
        width: 25%;
        -webkit-box-flex: 0;
            -ms-flex: 0 0 25%;
                flex: 0 0 25%;
        max-width: auto;
        max-height: auto; }
        .mfp-field.field-name-field-media-gallery .field-items .field-item:nth-child(n + 5) {
          display: none; } }
  @media (max-width: 550px) {
    .mfp-field.field-name-field-media-gallery .field-items .field-item {
      width: 33.3333%;
      -webkit-box-flex: 0;
          -ms-flex: 0 0 33.3333%;
              flex: 0 0 33.3333%; }
      .mfp-field.field-name-field-media-gallery .field-items .field-item:nth-child(n) {
        display: block; }
      .mfp-field.field-name-field-media-gallery .field-items .field-item:nth-child(n + 7) {
        display: none; } }
  @media (max-width: 350px) {
    .mfp-field.field-name-field-media-gallery .field-items .field-item {
      width: 50%;
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%; }
      .mfp-field.field-name-field-media-gallery .field-items .field-item:nth-child(n + 5) {
        display: none; } }

.mfp-bottom-bar {
  margin-top: -20px; }
  .mfp-bottom-bar .mfp-title {
    font-size: 16px;
    font-variant: none;
    padding-right: 55px; }
  .mfp-bottom-bar .mfp-counter {
    font-size: 16px; }

.mfp-zoom-in .mfp-with-anim {
  opacity: 0;
  -webkit-transition: all cubic-bezier(0.6, 0, 0.4, 1) 0.2s;
  transition: all cubic-bezier(0.6, 0, 0.4, 1) 0.2s;
  -webkit-transform: scale(0.8);
          transform: scale(0.8); }

.mfp-zoom-in.mfp-bg {
  opacity: 0;
  -webkit-transition: all cubic-bezier(0.6, 0, 0.4, 1) 0.3s;
  transition: all cubic-bezier(0.6, 0, 0.4, 1) 0.3s; }

.mfp-zoom-in.mfp-ready .mfp-with-anim {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1); }

.mfp-zoom-in.mfp-ready.mfp-bg {
  opacity: 0.8; }

.mfp-zoom-in.mfp-ready .mfp-arrow {
  opacity: 1; }

.mfp-zoom-in.mfp-removing .mfp-with-anim {
  -webkit-transform: scale(0.8);
          transform: scale(0.8);
  opacity: 0; }

.mfp-zoom-in.mfp-removing.mfp-bg {
  opacity: 0; }

.mfp-zoom-in.mfp-removing .mfp-arrow {
  opacity: 0; }

.mfp-arrow {
  -webkit-transition: all cubic-bezier(0.6, 0, 0.4, 1) 0.3s;
  transition: all cubic-bezier(0.6, 0, 0.4, 1) 0.3s;
  opacity: 0.75; }
  .mfp-arrow.mfp-arrow-left:before, .mfp-arrow.mfp-arrow-left:after, .mfp-arrow.mfp-arrow-right:before, .mfp-arrow.mfp-arrow-right:after {
    border: none;
    font-family: "Font Awesome 5 Pro"; }
  .mfp-arrow.mfp-arrow-left:before, .mfp-arrow.mfp-arrow-right:before {
    display: block;
    margin: auto;
    top: 0;
    bottom: 0;
    font-size: 30px;
    width: 60px;
    height: 60px;
    background-color: rgba(0, 0, 0, 0.5);
    color: #FFFFFF;
    padding: 15px;
    opacity: 1; }
  .mfp-arrow.mfp-arrow-left:before {
    content: "\f053";
    right: auto;
    left: 0; }
  .mfp-arrow.mfp-arrow-right:before {
    content: "\f054";
    left: auto;
    right: 0; }

/*
	.XXX{
		.mfp-close {}
	}
*/
.mfp-close {
  font-size: 35px; }

.paragraph--type--multi-column-row .grid-x .cell {
  margin-bottom: 20px; }

.sidebar {
  padding-top: 60px; }
  .sidebar h2 {
    color: #565656;
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.046875em;
    text-transform: uppercase;
    margin: 0 0 0.9em; }
  .sidebar nav ul.menu li {
    line-height: 1.4;
    padding: 0;
    margin-right: 1rem; }
    .sidebar nav ul.menu li:last-of-type a {
      border-bottom: 1px solid #d4d4d4; }
    .sidebar nav ul.menu li a {
      position: relative;
      border-top: 1px solid #d4d4d4;
      display: block;
      font-weight: 700;
      padding: 1em 0 1em 0.5em;
      text-decoration: none;
      font-size: 18px;
      line-height: 24px;
      background-color: transparent;
      color: #283FAF;
      cursor: pointer;
      -webkit-transition: background-color cubic-bezier(0.6, 0, 0.4, 1) 0.15s;
      transition: background-color cubic-bezier(0.6, 0, 0.4, 1) 0.15s; }
      .sidebar nav ul.menu li a:hover span:after {
        -webkit-transform: scaleX(1);
                transform: scaleX(1); }
      .sidebar nav ul.menu li a > span {
        display: inline-block;
        position: relative; }
        .sidebar nav ul.menu li a > span:after {
          background: #283faf;
          content: "\0a0";
          display: inline-block;
          height: 2px;
          width: 100%;
          -webkit-transform: scaleX(0);
                  transform: scaleX(0);
          -webkit-transform-origin: left center;
                  transform-origin: left center;
          -webkit-transition: -webkit-transform cubic-bezier(0.66, -0.39, 0.41, 1.35) 0.15s;
          transition: -webkit-transform cubic-bezier(0.66, -0.39, 0.41, 1.35) 0.15s;
          transition: transform cubic-bezier(0.66, -0.39, 0.41, 1.35) 0.15s;
          transition: transform cubic-bezier(0.66, -0.39, 0.41, 1.35) 0.15s, -webkit-transform cubic-bezier(0.66, -0.39, 0.41, 1.35) 0.15s;
          position: absolute;
          left: 0;
          right: 0;
          bottom: -2px; }
    .sidebar nav ul.menu li .submenu-toggle {
      border-top: 1px solid #d4d4d4;
      padding: 30px 0; }
  .sidebar nav ul.menu li.has-submenu-toggle > a {
    border-right: 1px solid #d4d4d4; }

div#sidebar-second {
  margin-top: 76px;
  background: #FFFFFF; }

.sociallinks a svg {
  height: 35px;
  margin: 5px; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImtpdGNoZW5zaW5rLmNzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwibW90aW9uLXVpLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwiX3NldHRpbmdzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jbGFzc2VzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Jvdy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19zaXplLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21hdGguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY29sdW1uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Bvc2l0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2xheW91dC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbG9hdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fY2hlY2tib3guc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2xhYmVsLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19maWVsZHNldC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fcmFuZ2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi1tZW51LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYmFkZ2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhbGxvdXQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2FyZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jbG9zZS1idXR0b24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS1pY29uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Jlc3BvbnNpdmUtZW1iZWQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVkaWEtb2JqZWN0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29mZi1jYW52YXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb3JiaXQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wcm9ncmVzcy1iYXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zd2l0Y2guc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFibGUuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2Jhc2UvX3RhYmxlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL191dGlsL19jb2xvci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aHVtYm5haWwuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Rvb2x0aXAuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCJiYXNlL19kcnVwYWwuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL3RoZW1lL190aGVtZS5zY3NzIiwiLi4vaG9uZXljb21iL3Njc3MvYmFzZS9fbm9ybWFsaXplLnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy9iYXNlL19nbG9iYWwuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL19zZXR0aW5ncy9fc2V0dGluZ3Muc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2Jhc2UvX3R5cG9ncmFwaHkuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL19zZXR0aW5ncy9fZm9udC1mYW1pbGllcy5zY3NzIiwiLi4vaG9uZXljb21iL3Njc3MvX3NldHRpbmdzL19jb2xvcnMuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2Jhc2UvX3ByaW50LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZmxleC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2xheW91dC9fZmxvYXQuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2xheW91dC9faGVhZGVyLXJvdy5zY3NzIiwiLi4vaG9uZXljb21iL3Njc3MvX3NldHRpbmdzL19zcGFjaW5nLnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy9sYXlvdXQvX21lZGlhLW9iamVjdC5zY3NzIiwiLi4vaG9uZXljb21iL3Njc3MvbGF5b3V0L19yZXNwb25zaXZlLWVtYmVkLnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy9sYXlvdXQvX2ljb24uc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2xheW91dC9fbGF5b3V0LWFyZWFzLnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy9jb21wb25lbnRzL19ibG9ja3F1b3Rlcy5zY3NzIiwiLi4vaG9uZXljb21iL3Njc3MvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiLi4vaG9uZXljb21iL3Njc3MvY29tcG9uZW50cy9fY3RhLWNhcmQuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2NvbXBvbmVudHMvX2N0YS1zdHJpcGUuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL3RhY2h5b25zL190eXBvZ3JhcGh5LnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy9jb21wb25lbnRzL19kYXRhLXBvaW50LnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy9jb21wb25lbnRzL19ldmVudC1jYXJkLnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy90YWNoeW9ucy9fdHlwZS1zY2FsZS5zY3NzIiwiLi4vaG9uZXljb21iL3Njc3MvY29tcG9uZW50cy9fZXhwbG9yZS1ibG9jay5zY3NzIiwiLi4vaG9uZXljb21iL3Njc3MvY29tcG9uZW50cy9fZm9vdGVyLWxpbmtzLnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy9jb21wb25lbnRzL19oZWFkZXIuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2NvbXBvbmVudHMvX2hlYWRlci1oZXJvLWltYWdlLnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy9jb21wb25lbnRzL19oZXJvLWhlYWRlci5zY3NzIiwiLi4vaG9uZXljb21iL3Njc3MvY29tcG9uZW50cy9faW1hZ2UtY29udGVudC1yb3cuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2NvbXBvbmVudHMvX2ludHJvLWxlYWQuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2NvbXBvbmVudHMvX2Zvb3Rlci1pbWFnZS1zdHJpcGUuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2NvbXBvbmVudHMvX2Zvb3Rlci1ib3R0b20uc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLW1lbnUuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2NvbXBvbmVudHMvX25ld3MtYmxvY2suc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2NvbXBvbmVudHMvX25ld3MtY2FyZC5zY3NzIiwiLi4vaG9uZXljb21iL3Njc3MvY29tcG9uZW50cy9fcGVyc29uLWJsb2NrLnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy9jb21wb25lbnRzL19zZWFyY2gtbW9kYWwuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2NvbXBvbmVudHMvX3NlYXJjaC1tb2RhbC10b2dnbGUuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL2NvbXBvbmVudHMvX3N1YmhlYWRsaW5lLWxlYWQtaGVhZGVyLnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy9jb21wb25lbnRzL193eXNpd3lnLnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy90YWNoeW9ucy9fZm9udC1mYW1pbHkuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL3RhY2h5b25zL19mb250LXdlaWdodC5zY3NzIiwiLi4vaG9uZXljb21iL3Njc3MvdGFjaHlvbnMvX2xpc3RzLnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy90YWNoeW9ucy9fc2tpbnMuc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL3RhY2h5b25zL19zcGFjaW5nLnNjc3MiLCIuLi9ob25leWNvbWIvc2Nzcy90YWNoeW9ucy9fdGV4dC1hbGlnbi5zY3NzIiwiLi4vaG9uZXljb21iL3Njc3MvdGFjaHlvbnMvX3RleHQtdHJhbnNmb3JtLnNjc3MiLCJjdXN0b20uc2NzcyIsIi4uL2hvbmV5Y29tYi9zY3NzL19zZXR0aW5ncy9fdGFjaHlvbnMuc2NzcyIsImJhc2UvX2VsZW1lbnRzLnNjc3MiLCJsYXlvdXQvX2Zvb3Rlci5zY3NzIiwibGF5b3V0L19zcGFjZXMuc2NzcyIsImNvbXBvbmVudHMvX2FsZXJ0LnNjc3MiLCJjb21wb25lbnRzL19jaGF0LnNjc3MiLCJjb21wb25lbnRzL19tZWRpYS1pbWFnZS5zY3NzIiwiY29tcG9uZW50cy9fbWZwX2dhbGxlcnkuc2NzcyIsImNvbXBvbmVudHMvX211bHRpX2NvbHVtbl9yb3cuc2NzcyIsImNvbXBvbmVudHMvX3NpZGViYXJfbWVudS5zY3NzIiwiY29tcG9uZW50cy9fdXNlcl9wcm9maWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQWhCOzs7OztFRE1FO0FFNktNO0VDdElOO0lBQ0UsV0FBVztJQUNYLFVBQVU7SUFDVixjQUFjLEVBQUEsRUFDZjs7QUNqREg7RUFDRSxrQ0FBa0M7RUFDMUIsMEJBQTBCO0VBQ2xDLDBDQUEwQztFQUNsQyxrQ0FBa0M7RUFDMUMsb0NBQW9DO0VBQzVCLDRCQUE0QjtFQUNwQyx1REFBdUQ7RUFDdkQsK0NBQStDO0VBQy9DLHVDQUF1QztFQUN2QywwREFBMEQ7RUFDMUQsbUNBQW1DO0VBQzNCLDJCQUEyQixFQUFBOztBQUVyQztFQUNFLGdDQUFnQztFQUN4Qix3QkFBd0IsRUFBQTs7QUFFbEM7RUFDRSxrQ0FBa0M7RUFDMUIsMEJBQTBCO0VBQ2xDLDBDQUEwQztFQUNsQyxrQ0FBa0M7RUFDMUMsb0NBQW9DO0VBQzVCLDRCQUE0QjtFQUNwQyx1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LEVBQUE7O0FMM0M5RDtFSXhGSixnQkNtSWtFLEVBQUE7O0FMcEMxRDtFT3pFTixrQkFBa0I7RUFDbEIsZUFIMEQsRUFBQTs7QVBpRnBEO0VPL0VOLGtCQUFrQjtFQUNsQixnQkFIMEQsRUFBQTs7QVAyRnREO0VPM0ROLGdCRitFa0UsRUFBQTs7QUwzQzlEO0VJeEZKLGdCQ21Ja0UsRUFBQTs7QUxwQzFEO0VPekVOLGtCQUFrQjtFQUNsQixlQUgwRCxFQUFBOztBUGlGcEQ7RU8vRU4sa0JBQWtCO0VBQ2xCLGdCQUgwRCxFQUFBOztBUDJGdEQ7RU8zRE4sc0JGK0VrRSxFQUFBOztBTDNDOUQ7RUl4RkosVUNtSWtFLEVBQUE7O0FMcEMxRDtFT3pFTixrQkFBa0I7RUFDbEIsU0FIMEQsRUFBQTs7QVBpRnBEO0VPL0VOLGtCQUFrQjtFQUNsQixVQUgwRCxFQUFBOztBUDJGdEQ7RU8zRE4sc0JGK0VrRSxFQUFBOztBTDNDOUQ7RUl4RkosZ0JDbUlrRSxFQUFBOztBTHBDMUQ7RU96RU4sa0JBQWtCO0VBQ2xCLGVBSDBELEVBQUE7O0FQaUZwRDtFTy9FTixrQkFBa0I7RUFDbEIsZ0JBSDBELEVBQUE7O0FQMkZ0RDtFTzNETixnQkYrRWtFLEVBQUE7O0FMM0M5RDtFSXhGSixnQkNtSWtFLEVBQUE7O0FMcEMxRDtFT3pFTixrQkFBa0I7RUFDbEIsZUFIMEQsRUFBQTs7QVBpRnBEO0VPL0VOLGtCQUFrQjtFQUNsQixnQkFIMEQsRUFBQTs7QVAyRnREO0VPM0ROLHNCRitFa0UsRUFBQTs7QUwzQzlEO0VJeEZKLFVDbUlrRSxFQUFBOztBTHBDMUQ7RU96RU4sa0JBQWtCO0VBQ2xCLFNBSDBELEVBQUE7O0FQaUZwRDtFTy9FTixrQkFBa0I7RUFDbEIsVUFIMEQsRUFBQTs7QVAyRnREO0VPM0ROLHNCRitFa0UsRUFBQTs7QUwzQzlEO0VJeEZKLGdCQ21Ja0UsRUFBQTs7QUxwQzFEO0VPekVOLGtCQUFrQjtFQUNsQixlQUgwRCxFQUFBOztBUGlGcEQ7RU8vRU4sa0JBQWtCO0VBQ2xCLGdCQUgwRCxFQUFBOztBUDJGdEQ7RU8zRE4sZ0JGK0VrRSxFQUFBOztBTDNDOUQ7RUl4RkosZ0JDbUlrRSxFQUFBOztBTHBDMUQ7RU96RU4sa0JBQWtCO0VBQ2xCLGVBSDBELEVBQUE7O0FQaUZwRDtFTy9FTixrQkFBa0I7RUFDbEIsZ0JBSDBELEVBQUE7O0FQMkZ0RDtFTzNETixzQkYrRWtFLEVBQUE7O0FMM0M5RDtFSXhGSixXQ21Ja0UsRUFBQTs7QUxwQjVEO0VPM0ROLHNCRitFa0UsRUFBQTs7QUxaOUQ7RVEvR0YsV1h3R3VEO0VXdkd2RCxXQUFnQyxFQUFBO0VSOEc5QjtJUXZGQSxXQUFXLEVBQUE7RVJ1Rlg7SVFuRkEsV0FBVyxFQUFBO0VSbUZYO0lRL0VBLFdYd0VxRCxFQUFBOztBR09yRDtFUS9HRixXWHdHdUQ7RVd2R3ZELFVBQWdDLEVBQUE7RVI4RzlCO0lRdkZBLFdBQVcsRUFBQTtFUnVGWDtJUW5GQSxXQUFXLEVBQUE7RVJtRlg7SVEvRUEsV1h3RXFELEVBQUE7O0FHT3JEO0VRL0dGLFdYd0d1RDtFV3ZHdkQsZ0JBQWdDLEVBQUE7RVI4RzlCO0lRdkZBLFdBQVcsRUFBQTtFUnVGWDtJUW5GQSxXQUFXLEVBQUE7RVJtRlg7SVEvRUEsV1h3RXFELEVBQUE7O0FHT3JEO0VRL0dGLFdYd0d1RDtFV3ZHdkQsVUFBZ0MsRUFBQTtFUjhHOUI7SVF2RkEsV0FBVyxFQUFBO0VSdUZYO0lRbkZBLFdBQVcsRUFBQTtFUm1GWDtJUS9FQSxXWHdFcUQsRUFBQTs7QUdPckQ7RVEvR0YsV1h3R3VEO0VXdkd2RCxVQUFnQyxFQUFBO0VSOEc5QjtJUXZGQSxXQUFXLEVBQUE7RVJ1Rlg7SVFuRkEsV0FBVyxFQUFBO0VSbUZYO0lRL0VBLFdYd0VxRCxFQUFBOztBR09yRDtFUS9HRixXWHdHdUQ7RVd2R3ZELGdCQUFnQyxFQUFBO0VSOEc5QjtJUXZGQSxXQUFXLEVBQUE7RVJ1Rlg7SVFuRkEsV0FBVyxFQUFBO0VSbUZYO0lRL0VBLFdYd0VxRCxFQUFBOztBR09yRDtFUS9HRixXWHdHdUQ7RVd2R3ZELGdCQUFnQyxFQUFBO0VSOEc5QjtJUXZGQSxXQUFXLEVBQUE7RVJ1Rlg7SVFuRkEsV0FBVyxFQUFBO0VSbUZYO0lRL0VBLFdYd0VxRCxFQUFBOztBR09yRDtFUS9HRixXWHdHdUQ7RVd2R3ZELFlBQWdDLEVBQUE7RVI4RzlCO0lRdkZBLFdBQVcsRUFBQTtFUnVGWDtJUW5GQSxXQUFXLEVBQUE7RVJtRlg7SVEvRUEsV1h3RXFELEVBQUE7O0FHYXZEO0VHckhBLGdCRDZFUztFQzVFVCxlRDRFUyxFQUFBOztBRndDVDtFQUlJLGVBQWU7RUFDZixjQUFjLEVBQUE7O0FBSWxCO0VBQ0UsZUFBZTtFQUNmLGNBQWMsRUFBQTs7QUFHaEI7RUduSUEsdUJBRnVDO0VBR3ZDLHNCQUh1QyxFQUFBOztBSDJJckM7RU9qSEYsa0JBQWtCO0VBQ2xCLGlCQUFpQixFQUFBO0VBTGpCO0lBQ0UsV0FBVztJQUNYLFdBQVcsRUFBQTs7QVArSFg7RU9qSEosZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixjQUFjLEVBQUE7RUF6Q1o7SUFDRSxXVjBHcUQ7SVV6R3JELFdBQVcsRUFBQTtFQUtYO0lBQ0UsWVZvR29ELEVBQUE7O0FKb0RwRDtFTzdFRjtJSXhGSixlQ21Ja0UsRUFBQTtFTHBDMUQ7SU96RU4sa0JBQWtCO0lBQ2xCLGNBSDBELEVBQUE7RVBpRnBEO0lPL0VOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VQMkZ0RDtJTzNETixlRitFa0UsRUFBQTtFTDNDOUQ7SUl4RkosZ0JDbUlrRSxFQUFBO0VMcEMxRDtJT3pFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFUGlGcEQ7SU8vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VQMkZ0RDtJTzNETixxQkYrRWtFLEVBQUE7RUwzQzlEO0lJeEZKLFVDbUlrRSxFQUFBO0VMcEMxRDtJT3pFTixrQkFBa0I7SUFDbEIsU0FIMEQsRUFBQTtFUGlGcEQ7SU8vRU4sa0JBQWtCO0lBQ2xCLFVBSDBELEVBQUE7RVAyRnREO0lPM0ROLHNCRitFa0UsRUFBQTtFTDNDOUQ7SUl4RkosZ0JDbUlrRSxFQUFBO0VMcEMxRDtJT3pFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFUGlGcEQ7SU8vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VQMkZ0RDtJTzNETixnQkYrRWtFLEVBQUE7RUwzQzlEO0lJeEZKLGdCQ21Ja0UsRUFBQTtFTHBDMUQ7SU96RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RVBpRnBEO0lPL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFUDJGdEQ7SU8zRE4sc0JGK0VrRSxFQUFBO0VMM0M5RDtJSXhGSixVQ21Ja0UsRUFBQTtFTHBDMUQ7SU96RU4sa0JBQWtCO0lBQ2xCLFNBSDBELEVBQUE7RVBpRnBEO0lPL0VOLGtCQUFrQjtJQUNsQixVQUgwRCxFQUFBO0VQMkZ0RDtJTzNETixzQkYrRWtFLEVBQUE7RUwzQzlEO0lJeEZKLGdCQ21Ja0UsRUFBQTtFTHBDMUQ7SU96RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RVBpRnBEO0lPL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFUDJGdEQ7SU8zRE4sZ0JGK0VrRSxFQUFBO0VMM0M5RDtJSXhGSixnQkNtSWtFLEVBQUE7RUxwQzFEO0lPekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VQaUZwRDtJTy9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RVAyRnREO0lPM0ROLHNCRitFa0UsRUFBQTtFTDNDOUQ7SUl4RkosVUNtSWtFLEVBQUE7RUxwQzFEO0lPekVOLGtCQUFrQjtJQUNsQixTQUgwRCxFQUFBO0VQaUZwRDtJTy9FTixrQkFBa0I7SUFDbEIsVUFIMEQsRUFBQTtFUDJGdEQ7SU8zRE4sc0JGK0VrRSxFQUFBO0VMM0M5RDtJSXhGSixnQkNtSWtFLEVBQUE7RUxwQzFEO0lPekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VQaUZwRDtJTy9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RVAyRnREO0lPM0ROLGdCRitFa0UsRUFBQTtFTDNDOUQ7SUl4RkosZ0JDbUlrRSxFQUFBO0VMcEMxRDtJT3pFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFUGlGcEQ7SU8vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VQMkZ0RDtJTzNETixzQkYrRWtFLEVBQUE7RUwzQzlEO0lJeEZKLFdDbUlrRSxFQUFBO0VMcEI1RDtJTzNETixzQkYrRWtFLEVBQUE7RUxaOUQ7SVEvR0YsV1h3R3VEO0lXdkd2RCxXQUFnQyxFQUFBO0lSOEc5QjtNUXZGQSxXQUFXLEVBQUE7SVJ1Rlg7TVFuRkEsV0FBVyxFQUFBO0lSbUZYO01RL0VBLFdYd0VxRCxFQUFBO0VHT3JEO0lRL0dGLFdYd0d1RDtJV3ZHdkQsVUFBZ0MsRUFBQTtJUjhHOUI7TVF2RkEsV0FBVyxFQUFBO0lSdUZYO01RbkZBLFdBQVcsRUFBQTtJUm1GWDtNUS9FQSxXWHdFcUQsRUFBQTtFR09yRDtJUS9HRixXWHdHdUQ7SVd2R3ZELGdCQUFnQyxFQUFBO0lSOEc5QjtNUXZGQSxXQUFXLEVBQUE7SVJ1Rlg7TVFuRkEsV0FBVyxFQUFBO0lSbUZYO01RL0VBLFdYd0VxRCxFQUFBO0VHT3JEO0lRL0dGLFdYd0d1RDtJV3ZHdkQsVUFBZ0MsRUFBQTtJUjhHOUI7TVF2RkEsV0FBVyxFQUFBO0lSdUZYO01RbkZBLFdBQVcsRUFBQTtJUm1GWDtNUS9FQSxXWHdFcUQsRUFBQTtFR09yRDtJUS9HRixXWHdHdUQ7SVd2R3ZELFVBQWdDLEVBQUE7SVI4RzlCO01RdkZBLFdBQVcsRUFBQTtJUnVGWDtNUW5GQSxXQUFXLEVBQUE7SVJtRlg7TVEvRUEsV1h3RXFELEVBQUE7RUdPckQ7SVEvR0YsV1h3R3VEO0lXdkd2RCxnQkFBZ0MsRUFBQTtJUjhHOUI7TVF2RkEsV0FBVyxFQUFBO0lSdUZYO01RbkZBLFdBQVcsRUFBQTtJUm1GWDtNUS9FQSxXWHdFcUQsRUFBQTtFR09yRDtJUS9HRixXWHdHdUQ7SVd2R3ZELGdCQUFnQyxFQUFBO0lSOEc5QjtNUXZGQSxXQUFXLEVBQUE7SVJ1Rlg7TVFuRkEsV0FBVyxFQUFBO0lSbUZYO01RL0VBLFdYd0VxRCxFQUFBO0VHT3JEO0lRL0dGLFdYd0d1RDtJV3ZHdkQsWUFBZ0MsRUFBQTtJUjhHOUI7TVF2RkEsV0FBVyxFQUFBO0lSdUZYO01RbkZBLFdBQVcsRUFBQTtJUm1GWDtNUS9FQSxXWHdFcUQsRUFBQTtFR2F2RDtJR3JIQSxnQkQ2RVM7SUM1RVQsZUQ0RVMsRUFBQTtFRndDVDtJQUlJLGVBQWU7SUFDZixjQUFjLEVBQUE7RUFJbEI7SUFDRSxlQUFlO0lBQ2YsY0FBYyxFQUFBO0VBR2hCO0lHbklBLHdCQUZ1QztJQUd2Qyx1QkFIdUMsRUFBQTtFSDJJckM7SU9qSEYsa0JBQWtCO0lBQ2xCLGlCQUFpQixFQUFBO0lBTGpCO01BQ0UsV0FBVztNQUNYLFdBQVcsRUFBQTtFUCtIWDtJT2pISixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGNBQWMsRUFBQTtJQXpDWjtNQUNFLFdWMEdxRDtNVXpHckQsV0FBVyxFQUFBO0lBS1g7TUFDRSxZVm9Hb0QsRUFBQSxFVW5HckQ7O0FkdUpDO0VPN0VGO0lJeEZKLGVDbUlrRSxFQUFBO0VMcEMxRDtJT3pFTixrQkFBa0I7SUFDbEIsY0FIMEQsRUFBQTtFUGlGcEQ7SU8vRU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RVAyRnREO0lPM0ROLGVGK0VrRSxFQUFBO0VMM0M5RDtJSXhGSixnQkNtSWtFLEVBQUE7RUxwQzFEO0lPekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VQaUZwRDtJTy9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RVAyRnREO0lPM0ROLHFCRitFa0UsRUFBQTtFTDNDOUQ7SUl4RkosVUNtSWtFLEVBQUE7RUxwQzFEO0lPekVOLGtCQUFrQjtJQUNsQixTQUgwRCxFQUFBO0VQaUZwRDtJTy9FTixrQkFBa0I7SUFDbEIsVUFIMEQsRUFBQTtFUDJGdEQ7SU8zRE4sc0JGK0VrRSxFQUFBO0VMM0M5RDtJSXhGSixnQkNtSWtFLEVBQUE7RUxwQzFEO0lPekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VQaUZwRDtJTy9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RVAyRnREO0lPM0ROLGdCRitFa0UsRUFBQTtFTDNDOUQ7SUl4RkosZ0JDbUlrRSxFQUFBO0VMcEMxRDtJT3pFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFUGlGcEQ7SU8vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VQMkZ0RDtJTzNETixzQkYrRWtFLEVBQUE7RUwzQzlEO0lJeEZKLFVDbUlrRSxFQUFBO0VMcEMxRDtJT3pFTixrQkFBa0I7SUFDbEIsU0FIMEQsRUFBQTtFUGlGcEQ7SU8vRU4sa0JBQWtCO0lBQ2xCLFVBSDBELEVBQUE7RVAyRnREO0lPM0ROLHNCRitFa0UsRUFBQTtFTDNDOUQ7SUl4RkosZ0JDbUlrRSxFQUFBO0VMcEMxRDtJT3pFTixrQkFBa0I7SUFDbEIsZUFIMEQsRUFBQTtFUGlGcEQ7SU8vRU4sa0JBQWtCO0lBQ2xCLGdCQUgwRCxFQUFBO0VQMkZ0RDtJTzNETixnQkYrRWtFLEVBQUE7RUwzQzlEO0lJeEZKLGdCQ21Ja0UsRUFBQTtFTHBDMUQ7SU96RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RVBpRnBEO0lPL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFUDJGdEQ7SU8zRE4sc0JGK0VrRSxFQUFBO0VMM0M5RDtJSXhGSixVQ21Ja0UsRUFBQTtFTHBDMUQ7SU96RU4sa0JBQWtCO0lBQ2xCLFNBSDBELEVBQUE7RVBpRnBEO0lPL0VOLGtCQUFrQjtJQUNsQixVQUgwRCxFQUFBO0VQMkZ0RDtJTzNETixzQkYrRWtFLEVBQUE7RUwzQzlEO0lJeEZKLGdCQ21Ja0UsRUFBQTtFTHBDMUQ7SU96RU4sa0JBQWtCO0lBQ2xCLGVBSDBELEVBQUE7RVBpRnBEO0lPL0VOLGtCQUFrQjtJQUNsQixnQkFIMEQsRUFBQTtFUDJGdEQ7SU8zRE4sZ0JGK0VrRSxFQUFBO0VMM0M5RDtJSXhGSixnQkNtSWtFLEVBQUE7RUxwQzFEO0lPekVOLGtCQUFrQjtJQUNsQixlQUgwRCxFQUFBO0VQaUZwRDtJTy9FTixrQkFBa0I7SUFDbEIsZ0JBSDBELEVBQUE7RVAyRnREO0lPM0ROLHNCRitFa0UsRUFBQTtFTDNDOUQ7SUl4RkosV0NtSWtFLEVBQUE7RUxwQjVEO0lPM0ROLHNCRitFa0UsRUFBQTtFTFo5RDtJUS9HRixXWHdHdUQ7SVd2R3ZELFdBQWdDLEVBQUE7SVI4RzlCO01RdkZBLFdBQVcsRUFBQTtJUnVGWDtNUW5GQSxXQUFXLEVBQUE7SVJtRlg7TVEvRUEsV1h3RXFELEVBQUE7RUdPckQ7SVEvR0YsV1h3R3VEO0lXdkd2RCxVQUFnQyxFQUFBO0lSOEc5QjtNUXZGQSxXQUFXLEVBQUE7SVJ1Rlg7TVFuRkEsV0FBVyxFQUFBO0lSbUZYO01RL0VBLFdYd0VxRCxFQUFBO0VHT3JEO0lRL0dGLFdYd0d1RDtJV3ZHdkQsZ0JBQWdDLEVBQUE7SVI4RzlCO01RdkZBLFdBQVcsRUFBQTtJUnVGWDtNUW5GQSxXQUFXLEVBQUE7SVJtRlg7TVEvRUEsV1h3RXFELEVBQUE7RUdPckQ7SVEvR0YsV1h3R3VEO0lXdkd2RCxVQUFnQyxFQUFBO0lSOEc5QjtNUXZGQSxXQUFXLEVBQUE7SVJ1Rlg7TVFuRkEsV0FBVyxFQUFBO0lSbUZYO01RL0VBLFdYd0VxRCxFQUFBO0VHT3JEO0lRL0dGLFdYd0d1RDtJV3ZHdkQsVUFBZ0MsRUFBQTtJUjhHOUI7TVF2RkEsV0FBVyxFQUFBO0lSdUZYO01RbkZBLFdBQVcsRUFBQTtJUm1GWDtNUS9FQSxXWHdFcUQsRUFBQTtFR09yRDtJUS9HRixXWHdHdUQ7SVd2R3ZELGdCQUFnQyxFQUFBO0lSOEc5QjtNUXZGQSxXQUFXLEVBQUE7SVJ1Rlg7TVFuRkEsV0FBVyxFQUFBO0lSbUZYO01RL0VBLFdYd0VxRCxFQUFBO0VHT3JEO0lRL0dGLFdYd0d1RDtJV3ZHdkQsZ0JBQWdDLEVBQUE7SVI4RzlCO01RdkZBLFdBQVcsRUFBQTtJUnVGWDtNUW5GQSxXQUFXLEVBQUE7SVJtRlg7TVEvRUEsV1h3RXFELEVBQUE7RUdPckQ7SVEvR0YsV1h3R3VEO0lXdkd2RCxZQUFnQyxFQUFBO0lSOEc5QjtNUXZGQSxXQUFXLEVBQUE7SVJ1Rlg7TVFuRkEsV0FBVyxFQUFBO0lSbUZYO01RL0VBLFdYd0VxRCxFQUFBO0VHYXZEO0lHckhBLGdCRDZFUztJQzVFVCxlRDRFUyxFQUFBO0VGd0NUO0lBSUksZUFBZTtJQUNmLGNBQWMsRUFBQTtFQUlsQjtJQUNFLGVBQWU7SUFDZixjQUFjLEVBQUE7RUFHaEI7SUduSUEsd0JBRnVDO0lBR3ZDLHVCQUh1QyxFQUFBO0VIMklyQztJT2pIRixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUE7SUFMakI7TUFDRSxXQUFXO01BQ1gsV0FBVyxFQUFBO0VQK0hYO0lPakhKLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsY0FBYyxFQUFBO0lBekNaO01BQ0UsV1YwR3FEO01VekdyRCxXQUFXLEVBQUE7SUFLWDtNQUNFLFlWb0dvRCxFQUFBLEVVbkdyRDs7QVBzSkw7RUd0SEUsc0JEa0M0RCxFQUFBO0VDaEM1RDtJQUNFLGdCQUFnQixFQUFBO0VWb0hkO0lPRE47TUd0SEUsdUJEa0M0RCxFQUFBO01DaEM1RDtRQUNFLGdCQUFnQixFQUFBLEVBQ2pCOztBTXZESDtFQUNFLHNCQUFzQixFQUFBOztBQUd4QjtFQUNFLHVCQUF1QixFQUFBOztBQUd6QjtFQUNFLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsaUJBQWlCLEVBQUE7O0FWcUpuQjtFQUVFLGNBQWM7RUFDZCxZQUFZO0VBR1YsMEJBQWE7TUFBYixhQUFhO0VBQ2IsNEJBQVE7TUFBUixpQkFBUTtVQUFSLFFBQVEsRUFBQTs7QUFJWjtFQUNFLFdBQVcsRUFBQTs7QVc4Q2I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtQkUsU0FBUztFQUNULFVBQVUsRUFBQTs7QUFJWjtFQUNFLG1CWm5FMEI7RVlxRTFCLGtCQUFrQjtFQUNsQixnQlp2RXNCO0VZd0V0QixrQ1p0RXlDLEVBQUE7O0FZMEUzQzs7RUFFRSxrQkFBa0I7RUFDbEIsb0JBQW9CLEVBQUE7O0FBSXRCOztFQUVFLGlCWm5McUI7RVlvTHJCLG9CQUFvQixFQUFBOztBZHJMdEI7RWMwTEUsY1o3RmlCO0VZOEZqQixvQkFBb0IsRUFBQTs7QUFJdEI7Ozs7OztFQU1FLG1FWjFNcUU7RVkyTXJFLGtCWnpKc0I7RVkwSnRCLG1CWnZNeUI7RVl3TXpCLGNaekprQjtFWTBKbEIsa0NaN0dzQyxFQUFBO0VZbUd4Qzs7Ozs7O0lBYUksY0FBYztJQUNkLGNaeE5lLEVBQUE7O0FZaU9iO0VBSUksaUJSck5vRDtFUWlPcEQsZ0JadExXO0VZOExYLGFBQWE7RUFPYixxQlpwTWlCLEVBQUE7O0FZcUtyQjtFQUlJLGtCUnJOb0Q7RVFpT3BELGdCWnRMVztFWThMWCxhQUFhO0VBT2IscUJacE1pQixFQUFBOztBWXFLckI7RUFJSSxvQlJyTm9EO0VRaU9wRCxnQlp0TFc7RVk4TFgsYUFBYTtFQU9iLHFCWnBNaUIsRUFBQTs7QVlxS3JCO0VBSUksbUJSck5vRDtFUWlPcEQsZ0JadExXO0VZOExYLGFBQWE7RUFPYixxQlpwTWlCLEVBQUE7O0FZcUtyQjtFQUlJLG9CUnJOb0Q7RVFpT3BELGdCWnRMVztFWThMWCxhQUFhO0VBT2IscUJacE1pQixFQUFBOztBWXFLckI7RUFJSSxlUnJOb0Q7RVFpT3BELGdCWnRMVztFWThMWCxhQUFhO0VBT2IscUJacE1pQixFQUFBOztBTHlDckI7RWlCNEhBO0lBSUksZVJyTm9ELEVBQUE7RVFpTnhEO0lBSUksaUJSck5vRCxFQUFBO0VRaU54RDtJQUlJLG9CUnJOb0QsRUFBQTtFUWlOeEQ7SUFJSSxvQlJyTm9ELEVBQUE7RVFpTnhEO0lBSUksa0JSck5vRCxFQUFBO0VRaU54RDtJQUlJLGVSck5vRCxFQUFBLEVRa1B2RDs7QWR0UlA7RWM2UkUsb0JBQW9CO0VBQ3BCLGNaalJjO0VZa1JkLHFCWnRKeUI7RVl3SnpCLGVBQWUsRUFBQTtFQUxqQjtJQVNJLGNBaE8yRCxFQUFBO0VBdU4vRDtJQWdCSSxTQUFTLEVBQUE7O0FkL1RiO0VjcVVFLFdBQVc7RUFFWCxnQlJoUjREO0VRaVI1RCxTQUFTO0VBQ1Qsb0Jaekt5QjtFWTJLekIsYUFBYTtFQUNiLGVBQWU7RUFDZixnQ1p0U2lCO0VZdVNqQixjQUFjLEVBQUE7O0FBSWhCOzs7RUFHRSxtQlpuTTBCO0VZb00xQiw0QlpsTHlCO0VZbUx6QixnQlp0TXNCLEVBQUE7O0FZME14QjtFQUNFLGtCQUFrQixFQUFBOztBQUlwQjtFQUNFLG9CWjVMc0I7RVk2THRCLHFCWi9Ma0IsRUFBQTs7QVltTXBCO0VBQ0Usb0JabE1zQixFQUFBOztBWXNNeEI7RUFFSSxvQlp2TTJCO0VZd00zQixnQkFBZ0IsRUFBQTs7QUFLcEI7RUFDRSxtQlo3TXlCLEVBQUE7RVk0TTNCO0lBSUkscUJaOU04QjtJWStNOUIsaUJaclVtQixFQUFBOztBWTBVdkI7RUFDRSxnQlo1TzBCO0VZNk8xQixzQ1J4VTREO0VReVU1RCw4Qlp6VmlCLEVBQUE7RVlzVm5CO0lBTUksZ0JabFBvQjtJWW1QcEIsY1o1VmEsRUFBQTs7QVkwV2pCO0VBQ0UsaUNaMVdXO0VZMldYLFlBQVk7RUFDWixxQkFBcUIsRUFBQTs7QUFJdkI7RUFDRSxTQUFTLEVBQUE7O0FBV1g7RUFDRSxTQUFTO0VBQ1QsMkJSM1dTO0VRNldULHlCWm5ZZ0I7RVlxWWhCLDREWjNVbUU7RVk0VW5FLGNabllXLEVBQUE7O0FhcURiO0VBQ0Usa0JiZ0d5QjtFYS9GekIscUJiZ0c0QjtFYTlGNUIsbUJiaER5QjtFYWlEekIsZ0JieUZzQjtFYXhGdEIsY2I1RGUsRUFBQTs7QWFnRWpCO0VBQ0UsZWJpRnFDO0VhaEZyQyxnQmJpRmlCLEVBQUE7O0FhN0VuQjtFQUNFLGlCYmtGbUI7RWFqRm5CLGNBQWMsRUFBQTtFQUVkO0lBQ0UsaUJBQWlCLEVBQUE7O0FBSXJCO0VBR0ksY0FBZ0M7RUFDaEMsZ0JBQWdCLEVBQUE7O0FEK1FsQjtFQzVWRixjQUFjO0VBQ2QsY2JQaUI7RWFRakIsb0JUTzhELEVBQUE7RVFtVjVEO0lDdlZBLGFiNEhrQixFQUFhOztBWWdQL0I7RUNyV0YseUJibkJtQjtFYW9CbkIseUJickJrQjtFYXVCbEIsNERibUNxRTtFYWxDckUsbUJiWjJCO0VhYTNCLGNidEJhO0VhNEJiLGVBQWU7RUFDZixlQUFlO0VBQ2YscUJBQXFCO0VBRXJCLHFDVGxCOEQsRUFBQTs7QVN5RjlEO0VBdEZBLHlCYm5CbUI7RWFvQm5CLHlCYnJCa0I7RWF1QmxCLDREYm1DcUU7RWFs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N1BBLGNBQWM7SUFDZCxRQUFRO0lBQ1IsU0FBUztJQUVULG1CQUFtQjtJQUNuQixtQmVvUFk7SWZsUFosV0FBVztJQUdULHNCQUFzQjtJQUN0Qiw2Q0FBcUQ7SWVvUHJELGtCQUFrQjtJQUNsQixVQUFVO0lBRVYscUJBQXFCO0lBQ3JCLFlBQU87SUFDUCxnQmhCVXVCLEVBQUE7RWdCaUJ6QjtJQW9FUSx5QmhCelVRLEVBQUE7RWdCcVFoQjtJQTBFWSx5QmhCL1VJLEVBQUE7RWdCcVFoQjtJQTBFWSx5QmhCOVVNLEVBQUE7RWdCb1FsQjtJQTBFWSx5QmhCN1VJLEVBQUE7RWdCbVFoQjtJQTBFWSx5QmhCNVVJLEVBQUE7RWdCa1FoQjtJQTBFWSx5QmhCM1VFLEVBQUE7RWdCaVFkO0lBbUZJLFdBQVc7SUFDWCxXQUFXO0lBQ1gsY0FBZ0MsRUFBQTs7QUFJcEM7RUFHSSxxQkFBcUIsRUFBQTs7QXZCazBEM0I7O0V3Qm5wRUUsY0FBYztFQUNkLDhCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsV0FBVztFQUNYLGlCQUxzSjtFQU10SixnQmJHOEQ7RWFGOUQsZWpCb1krQjtFaUJsWS9CLHlCakJoQm1CO0VpQmlCbkIsZ0JqQkplO0VpQktmLHlCakJmYTtFaUJnQmIseURqQmpCYTtVaUJpQmIsaURqQmpCYTtFaUJtQmIsb0JqQm9YeUI7RWlCblh6QixlYk44RDtFYU85RCxtQmpCWjJCO0VpQmEzQixnQmpCakNxQjtFaUJrQ3JCLGNqQnZCYTtFaUIwQlgsMkVqQjRYNEI7RWlCNVg1QixtRWpCNFg0QjtFaUI1WDVCLDJEakI0WDRCO0VpQjVYNUIsb0ZqQjRYNEI7RWlCdlc1Qix3QkFBZ0I7S0FBaEIscUJBQWdCO1VBQWhCLGdCQUFnQixFQUFBO0V4QjhuRWxCOztJd0I5b0VFLGFBQWE7SUFDYix5QmpCakNlO0lpQmtDZix5QmpCaENXO0lpQmlDWCxtQ2pCcENpQjtZaUJvQ2pCLDJCakJwQ2lCO0lpQnVDZiwyRWpCaVgwQjtJaUJqWDFCLG1FakJpWDBCO0lpQmpYMUIsMkRqQmlYMEI7SWlCalgxQixvRmpCaVgwQixF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RGE7RXVCakRiLG9CdkJ1YnlCO0V1QnRiekIsZW5CNkQ4RDtFbUI1RDlELG1CdkJ1RDJCO0V1QnREM0IsZ0J2QmtDcUI7RXVCakNyQixjdkI0Q2E7RUNzRWIsd09BQXlOO0VzQjlHdk4sOEJBQThCO0VBQzlCLHVDQUEwRDtFQUMxRCw0QkFBNEI7RUFDNUIsd0JBQXdCO0VBRXhCLHFCQUF1RDtFQUl2RCwyRXZCcWI0QjtFdUJyYjVCLG1FdkJxYjRCO0V1QnJiNUIsMkR2QnFiNEI7RXVCcmI1QixvRnZCcWI0QixFQUFBO0VDOVU5QjtJRm9EQTtNRWpESSx1V0FBdVcsRUFBQSxFc0JuRTFXO0VBbkNEO0lBQ0UsYUFBYTtJQUNiLHlCdkJ3QmU7SXVCdkJmLHlCdkJ5Qlc7SXVCeEJYLG1DdkJxQmlCO1l1QnJCakIsMkJ2QnFCaUI7SXVCbEJmLDJFdkIwYTBCO0l1QjFhMUIsbUV2QjBhMEI7SXVCMWExQiwyRHZCMGEwQjtJdUIxYTFCLG9GdkIwYTBCLEVBQUE7RXVCcmE5QjtJQUNFLHlCdkJXZ0I7SXVCVmhCLG1CdkJnYStCLEVBQUE7RXVCNVpqQztJQUNFLGFBQWEsRUFBQTtFQUdmO0lBQ0UsWUFBWTtJQUNaLHNCQUFzQixFQUFBO0VBRXhCO0lBQ0UsY0FBYztJQUNkLGlCQUFpQixFQUFBOztBQ3JDbkI7RUFDRSxxQnhCcU04QjtFd0JwTTlCLHlCQUErRCxFQUFBO0VBRS9EO0lBQ0UsY3hCaU00QixFQUFBO0V3QmxNOUI7SUFDRSxjeEJpTTRCLEVBQUE7RXdCbE05QjtJQUNFLGN4QmlNNEIsRUFBQTtFd0JsTTlCO0lBQ0UsY3hCaU00QixFQUFBO0V3QmxNOUI7SUFDRSxjeEJpTTRCLEVBQUE7O0F3QnZLOUI7RUFDRSxjeEI4SzRCLEVBQUE7O0F3QnpLaEM7RUF6QkEsYUFBYTtFQUNiLG1CQUFnQztFQUNoQyxtQnBCb0M4RDtFb0JsQzlELGtCcEJrQzhEO0VvQmpDOUQsaUJ4QjZCdUI7RXdCNUJ2QixjeEJhYyxFQUFBO0V3Qk1kO0lBSUksY0FBYyxFQUFBOztBQzVDbEI7RUFHRSxjQUFjO0VBQ2QsV0FBVztF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LG9CQUFvQixFQUFBOztBQUd0QjtFQUNFLGtCQUFrQixFQUFBOztBakRpTnBCO0VpRDVNRSxTQUFTLEVBQUE7O0FqRGpCWDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFbUQ5TUUsU0FBUztFQUNULFVBQVUsRUFBQTs7QUFHWjs7OztFQUlFLHFCQUF1QyxFQUFBOztBbkQ4TnpDO0VtRHpORSxxQkFBcUI7RUFDckIsa0MvRHVKeUMsRUFBQTs7QStEcEozQzs7Ozs7O0VBTUUsa0IvRDBGc0I7RStEekZ0QixtQi9ENEN5QjtFK0QzQ3pCLG9CQUFvQjtFQUNwQixrQy9Ec0lzQyxFQUFBOztBRnpKeEM7RWlFa0NVLGlCM0RnQ29EO0UyRHBCcEQsZ0IvRCtEVyxFQUFBOztBK0QvRWY7RUFJSSxrQjNEZ0NvRDtFMkRwQnBELGdCL0QrRFcsRUFBQTs7QStEL0VmO0VBSUksb0IzRGdDb0Q7RTJEcEJwRCxnQi9EK0RXLEVBQUE7O0ErRC9FZjtFQUlJLG1CM0RnQ29EO0UyRHBCcEQsZ0IvRCtEVyxFQUFBOztBK0QvRWY7RUFJSSxvQjNEZ0NvRDtFMkRwQnBELGdCL0QrRFcsRUFBQTs7QStEL0VmO0VBSUksZTNEZ0NvRDtFMkRwQnBELGdCL0QrRFcsRUFBQTs7QUwwQ2Y7RUd2Sk47SWlFa0NVLGUzRGdDb0QsRUFBQTtFMkRwQ3hEO0lBSUksaUIzRGdDb0QsRUFBQTtFMkRwQ3hEO0lBSUksb0IzRGdDb0QsRUFBQTtFMkRwQ3hEO0lBSUksb0IzRGdDb0QsRUFBQTtFMkRwQ3hEO0lBSUksa0IzRGdDb0QsRUFBQTtFMkRwQ3hEO0lBSUksZTNEZ0NvRCxFQUFBLEUyREh2RDs7QWpFakNQO0VpRXdDRSxjQUFjO0VBQ2QsZUFBZTtFQUNmLGdCQ3JGTTtFRHNGTiw4QkVsR1U7RUZtR1YsbUNBQTJCO0VBQTNCLDJCQUEyQixFQUFBO0VuRGdQN0I7SW1EN09JLGNFdEdRLEVBQUE7RUY4Rlo7SUFhSSxnQkNsR087SURtR1AscUJBQXFCO0lBQ3JCLGNBQWMsRUFBQTtJQWZsQjtNQWtCTSxjQUFjLEVBQUE7RW5EbU9wQjtJbUQvTkksU0FBUyxFQUFBOztBbkRrUWI7OztFbUR6UEUsNEIvRDJFeUIsRUFBQTs7QStEeEUzQjs7RUFFRSxvQi9EdUVzQixFQUFBOztBWXNNeEI7RW1EdlBJLG9CL0RrRDJCO0UrRGpEM0IsZ0JBQWdCLEVBQUE7O0FuRGlQcEI7RW1EM09FLHdCQUF3QixFQUFBO0VBRDFCO0lBR0ksNEJBQTRCLEVBQUE7SUFIaEM7TUFLTSw0QkFBNEIsRUFBQTtNQUxsQztRQU9RLDRCQUE0QixFQUFBOztBbkQrTnBDO0VtRHhORSxxQkFBcUIsRUFBQTtFQUR2QjtJQUdJLHVCQUF1QixFQUFBO0lBSDNCO01BS00sdUJBQXVCLEVBQUE7O0FuRHVPN0I7RW1EOU5JLGlCL0RsR21CLEVBQUE7O0ErRHNHdkI7RUFDRSxjQUFjLEVBQUE7O0FBR2hCO0VBRUUsbUJBQW1CLEVBQUE7O0F0RW9rS3ZCOztFd0JucktFLGNBQWM7RUFDZCw4QkFBc0I7VUFBdEIsc0JBQXNCO0VBQ3RCLFdBQVc7RUFDWCxpQkFMc0o7RUFNdEosZ0JiRzhEO0VhRjlELGVqQm9ZK0I7RWlCbFkvQix5QmpCaEJtQjtFaUJpQm5CLGdCakJKZTtFaUJLZix5QmpCZmE7RWlCZ0JiLHlEakJqQmE7VWlCaUJiLGlEakJqQmE7RWlCbUJiLG9CakJvWHlCO0VpQm5YekIsZWJOOEQ7RWFPOUQsbUJqQloyQjtFaUJhM0IsZ0JqQmpDcUI7RWlCa0NyQixjakJ2QmE7RWlCMEJYLDJFakI0WDRCO0VpQjVYNUIsbUVqQjRYNEI7RWlCNVg1QiwyRGpCNFg0QjtFaUI1WDVCLG9GakI0WDRCO0VpQnZXNUIsd0JBQWdCO0tBQWhCLHFCQUFnQjtVQUFoQixnQkFBZ0IsRUFBQTtFeEI4cEtsQjs7SXdCOXFLRSxhQUFhO0lBQ2IseUJqQmpDZTtJaUJrQ2YseUJqQmhDVztJaUJpQ1gsbUNqQnBDaUI7WWlCb0NqQiwyQmpCcENpQjtJaUJ1Q2YsMkVqQmlYMEI7SWlCalgxQixtRWpCaVgwQjtJaUJqWDFCLDJEakJpWDBCO0lpQmpYMUIsb0ZqQmlYMEIsRUFBQTs7QUZwUjlCO0VtQjlFRSxlQUFlLEVBQUE7RUFEakI7SUFJSSxZQUFZLEVBQUE7O0FBSWhCOzs7RUFLSSx5QmpCbkVjO0VpQm9FZCxtQmpCa1Y2QixFQUFBOztBUDYwSm5DOztFd0J4cEtJLHdCQUFnQjtLQUFoQixxQkFBZ0I7VUFBaEIsZ0JBQWdCO0VBQ2hCLGdCakI5RGEsRUFBQTs7QWlCa0VmO0VBQ0UsOEJBQXNCO1VBQXRCLHNCQUFzQixFQUFBOztBQWlCeEI7RUFDRSxjakJsR2lCLEVBQUE7O0FpQmlHbkI7RUFDRSxjakJsR2lCLEVBQUE7O0FpQmlHbkI7RUFDRSxjakJsR2lCLEVBQUE7O0FpQmlHbkI7RUFDRSxjakJsR2lCLEVBQUE7O0FpQmlHbkI7RUFDRSxjakJsR2lCLEVBQUE7O0FQNnVLckI7OztFeUIveUtJLGdCZGtGNEQsRUFBQTs7QVhrdUtoRTs7RXlCOXlLSSxxQkFBcUI7RUFDckIsd0JBQXdCO0VBRXhCLG1CQUFrRDtFQUNsRCxrQmR3RTREO0VjdkU1RCxnQkFBZ0IsRUFBQTtFekJnektsQjs7SXlCN3lLSSxlQUFlLEVBQUE7O0FBS25COztFQUVFLG9CQUFtRCxFQUFBOztBekI4eUt2RDtFeUJ6eUtJLFdBQVcsRUFBQTs7QUNLYjtFQWxCQSxjQUFjO0VBQ2QsU0FBUztFQUVULG1CZmtFOEQ7RWVqRTlELG1CbkI0RDJCO0VtQjNEM0IsZ0JuQm1iMEI7RW1CbGIxQixjbkJpRGEsRUFBQTtFbUJyQ2I7SUFOQSxnQmZ5RDhEO0lleEQ5RCxnQjJDNUJxQjtJM0M2QnJCLG9CQUFnRSxFQUFBOztBQ2xCaEU7RUFHRSxtQkFGdUM7RUFHdkMsb0JoQnFFNEQ7RWdCcEU1RCxrQnBCK2F3QjtFb0I5YXhCLGNwQnFEVyxFQUFBOztBRndHYjtFd0JqSkUsU0FBUztFQUNULFVBQVU7RUFDVixTQUFTLEVBQUE7O0F4QndKWDtFd0JwSkUsZUFBZTtFQUNmLHFCQUFrQyxFQUFBOztBQUdwQztFQXhCQSxrQmxCMEVXO0VrQnpFWCxnQmxCb0U4RDtFa0JuRTlELHlCdEJtRG1CLEVBQUE7RXNCakRuQjtJQUVFLFNBQVM7SUFDVCx1QmxCOEQ0RDtJa0I3RDVELG9CbEI2RDRELEVBQUE7O0FMOEc5RDtFd0JyTEEsaUJBRnNKO0VBR3RKLGdCbkJzRThEO0VtQnJFOUQsZXZCdWMrQjtFdUJyYy9CLHdCQUFnQjtLQUFoQixxQkFBZ0I7VUFBaEIsZ0JBQWdCO0VBQ2hCLHlCdkJrRG1CO0V1QmpEbkIsZ0J2QjhEZTtFdUI3RGYseUJ2Qm1EYTtFdUJqRGIsb0J2QnVieUI7RXVCdGJ6QixlbkI2RDhEO0VtQjVEOUQsbUJ2QnVEMkI7RXVCdEQzQixnQnZCa0NxQjtFdUJqQ3JCLGN2QjRDYTtFQ3NFYix3T0FBeU47RXNCOUd2Tiw4QkFBOEI7RUFDOUIsdUNBQTBEO0VBQzFELDRCQUE0QjtFQUM1Qix3QkFBd0I7RUFFeEIscUJBQXVEO0VBSXZELDJFdkJxYjRCO0V1QnJiNUIsbUV2QnFiNEI7RXVCcmI1QiwyRHZCcWI0QjtFdUJyYjVCLG9GdkJxYjRCLEVBQUE7RUM5VTlCO0lGb0RBO01FakRJLHVXQUF1VyxFQUFBLEVzQm5FMVc7RUFuQ0Q7SUFDRSxhQUFhO0lBQ2IseUJ2QndCZTtJdUJ2QmYseUJ2QnlCVztJdUJ4QlgsbUN2QnFCaUI7WXVCckJqQiwyQnZCcUJpQjtJdUJsQmYsMkV2QjBhMEI7SXVCMWExQixtRXZCMGEwQjtJdUIxYTFCLDJEdkIwYTBCO0l1QjFhMUIsb0Z2QjBhMEIsRUFBQTtFdUJyYTlCO0lBQ0UseUJ2QldnQjtJdUJWaEIsbUJ2QmdhK0IsRUFBQTtFdUI1WmpDO0lBQ0UsYUFBYSxFQUFBO0VBR2Y7SUFDRSxZQUFZO0lBQ1osc0JBQXNCLEVBQUE7RUFFeEI7SUFDRSxjQUFjO0lBQ2QsaUJBQWlCLEVBQUE7O0F5QitObkI7RUN4R0EseUJBQXlCO0VBQ3pCLFdBQVc7RUFDWCxtQmpEcEhrQjtFaURxSGxCLGdCakRoSGUsRUFBQTtFaURxQmY7OztJQUdFLHlCQ2Q2QztJRGU3Qyx5QmpEbkNXLEVBQUE7RWlEdUNiO0lBQ0UsaUM3QzNCNEQ7STZDNEI1RCxpQmpEaENxQixFQUFBO0VlcEJyQjtJa0N5REEsbUJDMUI2QztJRDJCN0MsY2pEaERXLEVBQUE7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QW5Ea0I7TUFtRGxCLHFCQW5Ea0I7VUFtRGxCLHVCQW5Ea0I7RUFvRGxCLHlCQXhDZ0I7TUF3Q2hCLHNCQXhDZ0I7VUF3Q2hCLG1CQXhDZ0I7RUR3RmQsMEJBQXFCO01BQXJCLHFCQUFxQixFQUFBOztBQU1uQjtFQ2hDSiw0QkQrQmdCO01DL0JoQixpQkQrQmdCO1VDL0JoQixRRCtCZ0IsRUFBQTs7QUFDWjtFQ2hDSiw0QkQrQmdCO01DL0JoQixpQkQrQmdCO1VDL0JoQixRRCtCZ0IsRUFBQTs7QUFDWjtFQ2hDSiw0QkQrQmdCO01DL0JoQixpQkQrQmdCO1VDL0JoQixRRCtCZ0IsRUFBQTs7QUFDWjtFQ2hDSiw0QkQrQmdCO01DL0JoQixpQkQrQmdCO1VDL0JoQixRRCtCZ0IsRUFBQTs7QUFDWjtFQ2hDSiw0QkQrQmdCO01DL0JoQixpQkQrQmdCO1VDL0JoQixRRCtCZ0IsRUFBQTs7QUFDWjtFQ2hDSiw0QkQrQmdCO01DL0JoQixpQkQrQmdCO1VDL0JoQixRRCtCZ0IsRUFBQTs7QXhFc0VWO0V3RXJFRjtJQ2hDSiw0QkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBO0VBQ1o7SUNoQ0osNEJEK0JnQjtRQy9CaEIsaUJEK0JnQjtZQy9CaEIsUUQrQmdCLEVBQUE7RUFDWjtJQ2hDSiw0QkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBO0VBQ1o7SUNoQ0osNEJEK0JnQjtRQy9CaEIsaUJEK0JnQjtZQy9CaEIsUUQrQmdCLEVBQUEsRUFHWDs7QXhFbUVDO0V3RXJFRjtJQ2hDSiw0QkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBO0VBQ1o7SUNoQ0osNEJE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QSxFa0V3RGhFO0kxRXlDRztNT3hKTjtRQ3lERSx3QkFGaUU7UUFHakUsdUJBSGlFLEVBQUEsRWtFd0RoRTtJbkUvR0g7TW1FNEdNLGVBQWU7TUFDZixjQUFjLEVBQUE7RW5FN0dwQjtJQ3NFQSxlQUhhLEVBQUE7SURuRWI7TW1Fc0hNLGtCQUFrQjtNQUNsQixpQkFBaUIsRUFBQTtFbkV2SHZCO0lDc0VBLGVBSGEsRUFBQTtFRG5FYjtJR0xFLGdCRDZFUztJQzVFVCxlRDRFUyxFQUFBO0VpRTRCWDs7O0lBcUNJLGVBQWU7SUFDZixjQUFjLEVBQUE7O0FuRTFGbEI7RW1FeUNBLG1CQXhEYztNQXdEZCxpQkF4RGM7VUF3RGQsYUF4RGM7RWhFdENaLHVCQUZ1QztFQUd2QyxzQkFIdUM7RWdFcUV2QyxZQUFZLEVBQUE7RTFFMEZSO0lPeEdOO01HckRFLHdCQUZ1QztNQUd2Qyx1QkFIdUMsRUFBQSxFZ0V3SnhDOztBbkVyRkQ7RW1FMEZFLFdBQVc7RUFDWCxjQUFjLEVBQUE7O0FuRXRGaEI7RW1FMkZFLGVBQWU7RUFDZixjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLGVBQWUsRUFBQTs7QW5FcEZiO0VtRTJGRSxtQjlEaEQ0RDtNOERnRDVELHNCOURoRDREO1U4RGdENUQsa0I5RGhENEQ7RThEaUQ1RCxtQjlEakQ0RCxFQUFBOztBTHBCNUQ7RU8zRE4sZUYrRWtFLEVBQUE7O0FMM0M5RDtFbUUyRkUsbUI5RGhENEQ7TThEZ0Q1RCx1QjlEaEQ0RDtVOERnRDVELG1COURoRDREO0U4RGlENUQsb0I5RGpENEQsRUFBQTs7QUxwQjVEO0VPM0ROLHFCRitFa0UsRUFBQTs7QUwzQzlEO0VtRTJGRSxtQjlEaEQ0RDtNOERnRDVELGlCOURoRDREO1U4RGdENUQsYTlEaEQ0RDtFOERpRDVELGM5RGpENEQsRUFBQTs7QUxwQjVEO0VPM0ROLHNCRitFa0UsRUFBQTs7QUwzQzlEO0VtRTJGRSxtQjlEaEQ0RDtNOERnRDVELHVCOURoRDREO1U4RGdENUQsbUI5RGhENEQ7RThEaUQ1RCxvQjlEakQ0RCxFQUFBOztBTHBCNUQ7RU8zRE4sZ0JGK0VrRSxFQUFBOztBTDNDOUQ7RW1FMkZFLG1COURoRDREO004RGdENUQsdUI5RGhENEQ7VThEZ0Q1RCxtQjlEaEQ0RDtFOERpRDVELG9COURqRDRELEVBQUE7O0FMcEI1RDtFTzNETixzQkYrRWtFLEVBQUE7O0FMM0M5RDtFbUUyRkUsbUI5RGhENEQ7TThEZ0Q1RCxpQjlEaEQ0RDtVOERnRDVELGE5RGhENEQ7RThEaUQ1RCxjOURqRDRELEVBQUE7O0FMcEI1RDtFTzNETixzQkYrRWtFLEVBQUE7O0FMM0M5RDtFbUUyRkUsbUI5RGhENEQ7TThEZ0Q1RCx1QjlEaEQ0RDtVOERnRDVELG1COURoRDREO0U4RGlENUQsb0I5RGpENEQsRUFBQTs7QUxwQjVEO0VPM0ROLGdCRitFa0UsRUFBQTs7QUwzQzlEO0VtRTJGRSxtQjlEaEQ0RDtNOERnRDVELHVCOURoRDREO1U4RGdENUQsbUI5RGhENEQ7RThEaUQ1RCxvQjlEakQ0RCxFQUFBOztBTHBCNUQ7RU8zRE4sc0JGK0VrRSxFQUFBOztBTDNDOUQ7RW1FMkZFLG1COURoRDREO004RGdENUQsaUI5RGhENEQ7VThEZ0Q1RCxhOURoRDREO0U4RGlENUQsYzlEakQ0RCxFQUFBOztBTHBCNUQ7RU8zRE4sc0JGK0VrRSxFQUFBOztBTDNDOUQ7RW1FMkZFLG1COURoRDREO004RGdENUQsdUI5RGhENEQ7VThEZ0Q1RCxtQjlEaEQ0RDtFOERpRDVELG9COURqRDRELEVBQUE7O0FMcEI1RDtFTzNETixnQkYrRWtFLEVBQUE7O0FMM0M5RDtFbUUyRkUsbUI5RGhENEQ7TThEZ0Q1RCx1QjlEaEQ0RDtVOERnRDVELG1COURoRDREO0U4RGlENUQsb0I5RGpENEQsRUFBQTs7QUxwQjVEO0VPM0ROLHNCRitFa0UsRUFBQTs7QUwzQzlEO0VtRTJGRSxtQjlEaEQ0RDtNOERnRDVELGtCOURoRDREO1U4RGdENUQsYzlEaEQ0RDtFOERpRDVELGU5RGpENEQsRUFBQTs7QUxwQjVEO0VPM0ROLHNCRitFa0UsRUFBQTs7QThEOEQ5RDtFQTFHSixtQkFBZTtNQUFmLGVBQWUsRUFBQTtFbkVnQ1g7SW1FM0JGLG1CQUYrQjtRQUUvQixrQkFGK0I7WUFFL0IsY0FGK0I7SUFHL0IsZUFIK0IsRUFBQTs7QUF1RzdCO0VBMUdKLG1CQUFlO01BQWYsZUFBZSxFQUFBO0VuRWdDWDtJbUUzQkYsbUJBRitCO1FBRS9CLGlCQUYrQjtZQUUvQixhQUYrQjtJQUcvQixjQUgrQixFQUFBOztBQXVHN0I7RUExR0osbUJBQWU7TUFBZixlQUFlLEVBQUE7RW5FZ0NYO0ltRTNCRixtQkFGK0I7UUFFL0IsdUJBRitCO1lBRS9CLG1CQUYrQjtJQUcvQixvQkFIK0IsRUFBQTs7QUF1RzdCO0VBMUdKLG1CQUFlO01BQWYsZUFBZSxFQUFBO0VuRWdDWDtJbUUzQkYsbUJBRitCO1FBRS9CLGlCQUYrQjtZQUUvQixhQUYrQjtJQUcvQixjQUgrQixFQUFBOztBQXVHN0I7RUExR0osbUJBQWU7TUFBZixlQUFlLEVBQUE7RW5FZ0NYO0ltRTNCRixtQkFGK0I7UUFFL0IsaUJBRitCO1lBRS9CLGFBRitCO0lBRy9CLGNBSCtCLEVBQUE7O0FBdUc3QjtFQTFHSixtQkFBZTtNQUFmLGVBQWUsRUFBQTtFbkVnQ1g7SW1FM0JGLG1CQUYrQjtRQUUvQix1QkFGK0I7WUFFL0IsbUJBRitCO0lBRy9CLG9CQUgrQixFQUFBOztBQXVHN0I7RUExR0osbUJBQWU7TUFBZixlQUFlLEVBQUE7RW5FZ0NYO0ltRTNCRixtQkFGK0I7UUFFL0IsdUJBRitCO1lBRS9CLG1CQUYrQjtJQUcvQixvQkFIK0IsRUFBQTs7QUF1RzdCO0VBMUdKLG1CQUFlO01BQWYsZUFBZSxFQUFBO0VuRWdDWDtJbUUzQkYsbUJBRitCO1FBRS9CLG1CQUYrQjtZQUUvQixlQUYrQjtJQUcvQixnQkFIK0IsRUFBQTs7QW5FbUMvQjtFR3JIQSxnQkQ2RVM7RUM1RVQsZUQ0RVMsRUFBQTs7QUZzRFQ7RUduSUEsdUJBRnVDO0VBR3ZDLHNCQUh1QyxFQUFBOztBVitKbkM7RU83RUY7SW1FMkZFLG1COURoRDREO1E4RGdENUQsc0I5RGhENEQ7WThEZ0Q1RCxrQjlEaEQ0RDtJOERpRDVELG1COURqRDRELEVBQUE7RUxwQjVEO0lPM0ROLGVGK0VrRSxFQUFBO0VMM0M5RDtJbUUyRkUsbUI5RGhENEQ7UThEZ0Q1RCx1QjlEaEQ0RDtZOERnRDVELG1COURoRDREO0k4RGlENUQsb0I5RGpENEQsRUFBQTtFTHBCNUQ7SU8zRE4scUJGK0VrRSxFQUFBO0VMM0M5RDtJbUUyRkUsbUI5RGhENEQ7UThEZ0Q1RCxpQjlEaEQ0RDtZOERnRDVELGE5RGhENEQ7SThEaUQ1RCxjOURqRDRELEVBQUE7RUxwQjVEO0lPM0ROLHNCRitFa0UsRUFBQTtFTDNDOUQ7SW1FMkZFLG1COURoRDREO1E4RGdENUQsdUI5RGhENEQ7WThEZ0Q1RCxtQjlEaEQ0RDtJOERpRDVELG9COURqRDRELEVBQUE7RUxwQjVEO0lPM0ROLGdCRitFa0UsRUFBQTtFTDNDOUQ7SW1FMkZFLG1COURoRDREO1E4RGdENUQsdUI5RGhENEQ7WThEZ0Q1RCxtQjlEaEQ0RDtJOERpRDVELG9COURqRDRELEVBQUE7RUxwQjVEO0lPM0ROLHNCRitFa0UsRUFBQTtFTDNDOUQ7SW1FMkZFLG1COURoRDREO1E4RGdENUQsaUI5RGhENEQ7WThEZ0Q1RCxhOURoRDREO0k4RGlENUQsYzlEakQ0RCxFQUFBO0VMcEI1RDtJTzNETixzQkYrRWtFLEVBQUE7RUwzQzlEO0ltRTJGRSxtQjlEaEQ0RDtROERnRDVELHVCOURoRDREO1k4RGdENUQsbUI5RGhENEQ7SThEaUQ1RCxvQjlEakQ0RCxFQUFBO0VMcEI1RDtJTzNETixnQkYrRWtFLEVBQUE7RUwzQzlEO0ltRTJGRSxtQjlEaEQ0RDtROERnRDVELHVCOURoRDREO1k4RGdENUQsbUI5RGhENEQ7SThEaUQ1RCxvQjlEakQ0RCxFQUFBO0VMcEI1RDtJTzNETixzQkYrRWtFLEVBQUE7RUwzQzlEO0ltRTJGRSxtQjlEaEQ0RDtROERnRDVELGlCOURoRDREO1k4RGdENUQsYTlEaEQ0RDtJOERpRDVELGM5RGpENEQsRUFBQTtFTHBCNUQ7SU8zRE4sc0JGK0VrRSxFQUFBO0VMM0M5RDtJbUUyRkUsbUI5RGhENEQ7UThEZ0Q1RCx1QjlEaEQ0RDtZOERnRDVELG1COURoRDREO0k4RGlENUQsb0I5RGpENEQsRUFBQTtFTHBCNUQ7SU8zRE4sZ0JGK0VrRSxFQUFBO0VMM0M5RDtJbUUyRkUsbUI5RGhENEQ7UThEZ0Q1RCx1QjlEaEQ0RDtZOERnRDVELG1COURoRDREO0k4RGlENUQsb0I5RGpENEQsRUFBQTtFTHBCNUQ7SU8zRE4sc0JGK0VrRSxFQUFBO0VMM0M5RDtJbUUyRkUsbUI5RGhENEQ7UThEZ0Q1RCxrQjlEaEQ0RDtZOERnRDVELGM5RGhENEQ7SThEaUQ1RCxlOURqRDRELEVBQUE7RUxwQjVEO0lPM0ROLHNCRitFa0UsRUFBQTtFOEQ4RDlEO0lBMUdKLG1CQUFlO1FBQWYsZUFBZSxFQUFBO0luRWdDWDtNbUUzQkYsbUJBRitCO1VBRS9CLGtCQUYrQjtjQUUvQixjQUYrQjtNQUcvQixlQUgrQixFQUFBO0VBdUc3QjtJQTFHSixtQkFBZTtRQUFmLGVBQWUsRUFBQTtJbkVnQ1g7TW1FM0JGLG1CQUYrQjtVQUUvQixpQkFGK0I7Y0FFL0IsYUFGK0I7TUFHL0IsY0FIK0IsRUFBQTtFQXVHN0I7SUExR0osbUJBQWU7UUFBZixlQUFlLEVBQUE7SW5FZ0NYO01tRTNCRixtQkFGK0I7VUFFL0IsdUJBRitCO2NBRS9CLG1CQUYrQjtNQUcvQixvQkFIK0IsRUFBQTtFQXVHN0I7SUExR0osbUJBQWU7UUFBZixlQUFlLEVBQUE7SW5FZ0NYO01tRTNCRixtQkFGK0I7VUFFL0IsaUJBRitCO2NBRS9CLGFBRitCO01BRy9CLGNBSCtCLEVBQUE7RUF1RzdCO0lBMUdKLG1CQUFlO1FBQWYsZUFBZSxFQUFBO0luRWdDWDtNbUUzQkYsbUJBRitCO1VBRS9CLGlCQUYrQjtjQUUvQixhQUYrQjtNQUcvQixjQUgrQixFQUFBO0VBdUc3QjtJQTFHSixtQkFBZTtRQUFmLGVBQWUsRUFBQTtJbkVnQ1g7TW1FM0JGLG1CQUYrQjtVQUUvQix1QkFGK0I7Y0FFL0IsbUJBRitCO01BRy9CLG9CQUgrQixFQUFBO0VBdUc3QjtJQTFHSixtQkFBZTtRQUFmLGVBQWUsRUFBQTtJbkVnQ1g7TW1FM0JGLG1CQUYrQjtVQUUvQix1QkFGK0I7Y0FFL0IsbUJBRitCO01BRy9CLG9CQUgrQixFQUFBO0VBdUc3QjtJQTFHSixtQkFBZTtRQUFmLGVBQWUsRUFBQTtJbkVnQ1g7TW1FM0JGLG1CQUYrQjtVQUUvQixtQkFGK0I7Y0FFL0IsZUFGK0I7TUFHL0IsZ0JBSCtCLEVBQUEsRUFJaEM7O0ExRXVFSztFMEVvQ0E7SUFDRSxtQkE1Sk07UUE0Sk4saUJBNUpNO1lBNEpOLGFBNUpNLEVBQUEsRUE2SlA7O0FBS0Q7RUFFSSxtQjlEL0V3RDtNOEQrRXhELGtCOUQvRXdEO1U4RCtFeEQsYzlEL0V3RCxFQUFBO0Vaa0M1RDtJMEUyQ0E7TUFLTSxtQkF2S0U7VUF1S0YsaUJBdktFO2NBdUtGLGFBdktFLEVBQUEsRUF5S0w7O0ExRWxESDtFT3hDSjtJR3JIQSxnQkQ2RVM7SUM1RVQsZUQ0RVMsRUFBQTtFRnNEVDtJR25JQSx3QkFGdUM7SUFHdkMsdUJBSHVDLEVBQUEsRWdFNE5jOztBMUU3RGpEO0VPN0VGO0ltRTJGRSxtQjlEaEQ0RDtROERnRDVELHNCOURoRDREO1k4RGdENUQsa0I5RGhENEQ7SThEaUQ1RCxtQjlEakQ0RCxFQUFBO0VMcEI1RDtJTzNETixlRitFa0UsRUFBQTtFTDNDOUQ7SW1FMkZFLG1COURoRDREO1E4RGdENUQsdUI5RGhENEQ7WThEZ0Q1RCxtQjlEaEQ0RDtJOERpRDVELG9COURqRDRELEVBQUE7RUxwQjVEO0lPM0ROLHFCRitFa0UsRUFBQTtFTDNDOUQ7SW1FMkZFLG1COURoRDREO1E4RGdENUQsaUI5RGhENEQ7WThEZ0Q1RCxhOURoRDREO0k4RGlENUQsYzlEakQ0RCxFQUFBO0VMcEI1RDtJTzNETixzQkYrRWtFLEVBQUE7RUwzQzlEO0ltRTJGRSxtQjlEaEQ0RDtROERnRDVELHVCOURoRDREO1k4RGdENUQsbUI5RGhENEQ7SThEaUQ1RCxvQjlEakQ0RCxFQUFBO0VMcEI1RDtJTzNETixnQkYrRWtFLEVBQUE7RUwzQzlEO0ltRTJGRSxtQjlEaEQ0RDtROERnRDVELHVCOURoRDREO1k4RGdENUQsbUI5RGhENEQ7SThEaUQ1RCxvQjlEakQ0RCxFQUFBO0VMcEI1RDtJTzNETixzQkYrRWtFLEVBQUE7RUwzQzlEO0ltRTJGRSxtQjlEaEQ0RDtROERnRDVELGlCOURoRDREO1k4RGdENUQsYTlEaEQ0RDtJOERpRDVELGM5RGpENEQsRUFBQTtFTHBCNUQ7SU8zRE4sc0JGK0VrRSxFQUFBO0VMM0M5RDtJbUUyRkUsbUI5RGhENEQ7UThEZ0Q1RCx1QjlEaEQ0RDtZOERnRDVELG1COURoRDREO0k4RGlENUQsb0I5RGpENEQsRUFBQTtFTHBCNUQ7SU8zRE4sZ0JGK0VrRSxFQUFBO0VMM0M5RDtJbUUyRkUsbUI5RGhENEQ7UThEZ0Q1RCx1QjlEaEQ0RDtZOERnRDVELG1COURoRDREO0k4RGlENUQsb0I5RGpENEQsRUFBQTtFTHBCNUQ7SU8zRE4sc0JGK0VrRSxFQUFBO0VMM0M5RDtJbUUyRkUsbUI5RGhENEQ7UThEZ0Q1RCxpQjlEaEQ0RDtZOERnRDVELGE5RGhENEQ7SThEaUQ1RCxjOURqRDRELEVBQUE7RUxwQjVEO0lPM0ROLHNCRitFa0UsRUFBQTtFTDNDOUQ7SW1FMkZFLG1COURoRDREO1E4RGdENUQsdUI5RGhENEQ7WThEZ0Q1RCxtQjlEaEQ0RDtJOERpRDVELG9COURqRDRELEVBQUE7RUxwQjVEO0lPM0ROLGdCRitFa0UsRUFBQTtFTDNDOUQ7SW1FMkZFLG1COURoRDREO1E4RGdENUQsdUI5RGhENEQ7WThEZ0Q1RCxtQjlEaEQ0RDtJOERpRDVELG9COURqRDRELEVBQUE7RUxwQjVEO0lPM0ROLHNCRitFa0UsRUFBQTtFTDNDOUQ7SW1FMkZFLG1COURoRDREO1E4RGdENUQsa0I5RGhENEQ7WThEZ0Q1RCxjOURoRDREO0k4RGlENUQsZTlEakQ0RCxFQUFBO0VMcEI1RDtJTzNETixzQkYrRWtFLEVBQUE7RThEOEQ5RDtJQTFHSixtQkFBZTtRQUFmLGVBQWUsRUFBQTtJbkVnQ1g7TW1FM0JGLG1CQUYrQjtVQUUvQixrQkFGK0I7Y0FFL0IsY0FGK0I7TUFHL0IsZUFIK0IsRUFBQTtFQXVHN0I7SUExR0osbUJBQWU7UUFBZixlQUFlLEVBQUE7SW5FZ0NYO01tRTNCRixtQkFGK0I7VUFFL0IsaUJBRitCO2NBRS9CLGFBRitCO01BRy9CLGNBSCtCLEVBQUE7RUF1RzdCO0lBMUdKLG1CQUFlO1FBQWYsZUFBZSxFQUFBO0luRWdDWDtNbUUzQkYsbUJBRitCO1VBRS9CLHVCQUYrQjtjQUUvQixtQkFGK0I7TUFHL0Isb0JBSCtCLEVBQUE7RUF1RzdCO0lBMUdKLG1CQUFlO1FBQWYsZUFBZSxFQUFBO0luRWdDWDtNbUUzQkYsbUJBRitCO1VBRS9CLGlCQUYrQjtjQUUvQixhQUYrQjtNQUcvQixjQUgrQixFQUFBO0VBdUc3QjtJQTFHSixtQkFBZTtRQUFmLGVBQWUsRUFBQTtJbkVnQ1g7TW1FM0JGLG1CQUYrQjtVQUUvQixpQkFGK0I7Y0FFL0IsYUFGK0I7TUFHL0IsY0FIK0IsRUFBQTtFQXVHN0I7SUExR0osbUJBQWU7UUFBZixlQUFlLEVBQUE7SW5FZ0NYO01tRTNCRixtQkFGK0I7VUFFL0IsdUJBRitCO2NBRS9CLG1CQUYrQjtNQUcvQixvQkFIK0IsRUFBQTtFQXVHN0I7SUExR0osbUJBQWU7UUFBZixlQUFlLEVBQUE7SW5FZ0NYO01tRTNCRixtQkFGK0I7VUFFL0IsdUJBRitCO2NBRS9CLG1CQUYrQjtNQUcvQixvQkFIK0IsRUFBQTtFQXVHN0I7SUExR0osbUJBQWU7UUFBZixlQUFlLEVBQUE7SW5FZ0NYO01tRTNCRixtQkFGK0I7VUFFL0IsbUJBRitCO2NBRS9CLGVBRitCO01BRy9CLGdCQUgrQixFQUFBLEVBSWhDOztBMUV1RUs7RTBFb0NBO0lBQ0UsbUJBNUpNO1FBNEpOLGlCQTVKTTtZQTRKTixhQTVKTSxFQUFBLEVBNkpQOztBQUtEO0VBRUksbUI5RC9Fd0Q7TThEK0V4RCxrQjlEL0V3RDtVOEQrRXhELGM5RC9Fd0QsRUFBQTtFWmtDNUQ7STBFMkNBO01BS00sbUJBdktFO1VBdUtGLGlCQXZLRTtjQXVLRixhQXZLRSxFQUFBLEVBeUtMOztBMUVsREg7RU94Q0o7SUdySEEsZ0JENkVTO0lDNUVULGVENEVTLEVBQUE7RUZzRFQ7SUduSUEsd0JBRnVDO0lBR3ZDLHVCQUh1QyxFQUFBLEVnRTROYzs7QUFLdkQ7RUFDRSxtQkF2TGU7TUF1TGYsa0JBdkxlO1VBdUxmLGNBdkxlO0VBd0xmLGVBQWUsRUFBQTs7QW5FckVqQjtFR3RIRSxzQkRrQzRELEVBQUE7RUNoQzVEO0lBQ0UsZ0JBQWdCLEVBQUE7RVZvSGQ7SU9ETjtNR3RIRSx1QkRrQzRELEVBQUE7TUNoQzVEO1FBQ0UsZ0JBQWdCLEVBQUEsRUFDakI7O0FNdkRIO0UyRFBFLFdBQVcsRUFBQTs7QTNEV2I7RTJEUEUsWUFBWSxFQUFBOztBckVtS2Q7RUFFRSxjQUFjO0VBQ2QsWUFBWTtFQUdWLDBCQUFhO01BQWIsYUFBYTtFQUNiLDRCQUFRO01BQVIsaUJBQVE7VUFBUixRQUFRLEVBQUE7O0FBSVo7RUFDRSxXQUFXLEVBQUE7O0FzRXBMYjtFcEVnR0EsZ0JDSDhEO0VpRXhENUQsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUlqQixvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDhCQWxCbUI7RUFrQm5CLDZCQWxCbUI7TUFrQm5CLHVCQWxCbUI7VUFrQm5CLG1CQWxCbUI7RUEwRnJCLG1CQXhEYztNQXdEZCxpQkF4RGM7VUF3RGQsYUF4RGM7RWhFdENaLHVCQUZ1QztFQUd2QyxzQkFIdUM7RWdFcUV2QyxZQUFZO0VFckZaLHlCQUFtQjtNQUFuQixzQkFBbUI7VUFBbkIsbUJBQW1CO0VBQ25CLHdCQUF1QjtNQUF2QixxQkFBdUI7VUFBdkIsdUJBQXVCO0VBQ3ZCLGlCQ0FvQjtFRENwQixvQkNEb0IsRUFBQTtFN0U2S2hCO0k0RWxMTjtNbEVxQkUsd0JBRnVDO01BR3ZDLHVCQUh1QyxFQUFBLEVrRUF4QztFQW5CRDtJQVFJLGtCQUFrQjtJQUNsQixtQkNKa0IsRUFBQTtFN0U2S2hCO0k0RWxMTjtNQWFNLGdCQUFnQjtNQUNoQixrQkFBa0I7TUFDbEIsbUJDWGdCO01EWWhCLGdCQUFnQixFQUFBLEVBQ2pCOztBL0J3Rkw7RWlDcEZBLG9CQUFpQztFQUFqQyxvQkFBaUM7RUFBakMsYUFBaUM7RUFDakMsbUJ6RStEa0I7RXlFNURoQixxQkFBaUI7TUFBakIsaUJBQWlCLEVBQUE7RWpDR25CO0lpQ0NFLGVBQWUsRUFBQTtFOUVxSlg7STZDakpKO01pQ0VJLG1CQUFlO1VBQWYsZUFBZSxFQUFBLEVBRWxCOztBakN3RUg7RWlDaEVFLG1CQUFjO01BQWQsa0JBQWM7VUFBZCxjQUFjLEVBQUE7RWpDT2hCO0lpQ0NFLG1CekVpQ2lCLEVBQUE7RXdDOUJuQjtJaUNDRSxrQnpFNkJpQixFQUFBO0V3QzFCbkI7SWlDQ0UsZ0JBQWdCLEVBQUE7RTlFcUhaO0k2Q2xITjtNaUN3QkEsVUFBVTtNQUNWLG9CekVIbUI7TXlFTWpCLDZCQUFnQjtVQUFoQixnQkFBZ0I7TUFDaEIsZUFBZSxFQUFBO01qQzdCakI7UWlDb0NFLFd6RXNaa0MsRUFBQSxFeUVyWm5DO0VqQzlCQztJaUNDRSxtQkFBYTtRQUFiLGlCQUFhO1lBQWIsYUFBYSxFQUFBOztBQ3pCakI7RUFyQkEsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxtQnRFaUU4RDtFc0VoRTlELHNCbkV3QzZCO0VtRXZDN0IsZ0JBQWdCLEVBQUE7RUFFaEI7Ozs7SUFJRSxrQkFBa0I7SUFDbEIsTUFBTTtJQUNOLE9BQWtCO0lBQ2xCLFdBQVc7SUFDWCxZQUFZLEVBQUE7RUFPZDtJQU9NLG1CbkVldUIsRUFBQTs7QVI4STdCOzs7Ozs7RTJFdklJLDBCQUEwQixFQUFBOztBQUs5QjtFQUNFLHVDVHJFVztFU3NFWCxtR0FBNkU7RUFBN0UsdUVBQTZFO0VBQzdFLGNUOUVXO0VTK0VYLFNBQVM7RUFDVCxPQUFPO0VBQ1AsNEJGckZvQjtFRXNGcEIsa0JBQWtCO0VBQ2xCLFdBQVcsRUFBQTtFL0V5RlA7SStFakdOO01BVUksa0JGdEZrQjtNRXVGbEIsb0JGdkZrQixFQUFBLEVFeUZyQjs7QUFFRDtFQWNFLGNBQWM7RUFDZCxnQlZsR1U7RVVtR1YsbUJ0RW5CNEQsRUFBQTtFc0VHOUQ7SUFFSSw4QkFBOEI7SUFDOUIsa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixrQkZuR2tCO0lFb0dsQiw0QkFBNEI7SUFDNUIsOENBQXNDO0lBQXRDLHNDQUFzQztJQUN0QyxzQkFBc0IsRUFBQTtJQVIxQjtNQVVNLHlCVHhHTTtNU3lHTixxQlR6R00sRUFBQTs7QVVDWjtFQUNFLHFCQUFxQjtFQUNyQixXSEZvQjtFR0dwQixpQkhMbUI7RUdNbkIsc0JBQXNCLEVBQUE7O0FBSXhCO0VBQ0UsY0FBYztFQUNkLGtCQUFrQixFQUFBOztBQUlwQjtFQUNFLGtCQUFrQjtFQUNsQixvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsV0FBVyxFQUFBO0VBTGI7SUFRSSxZQUFZO0lBQ1osY0FBYyxFQUFBOztBQ3ZCbEI7RUFDRSx5QlhFVztFV0RYLGlCSkZvQjtFSUdwQixrQkFBa0I7RUFDbEIsWUFBWSxFQUFBOztBQUdkO0VBRUUsZ0MzQnFFaUI7RTJCcEVqQixtRFhEa0I7VVdDbEIsMkNYRGtCO0VXRWxCLGdCQUFnQjtFQUNoQixNQUFNLEVBQUE7O0FBS1I7RUFDRSx5QlhSVztFV1NYLGNYaEJXO0VXaUJYLG9CSnBCb0IsRUFBQTs7QUl5QnRCO0VBQ0Usa0JKMUJvQjtFSTJCcEIsbUJKM0JvQixFQUFBOztBSTZCdEI7RUFDRSxpQmR6QmMsRUFBQTs7QWM0QmhCO0VBQ0UsZ0JBQXVCLEVBQUE7O0FDckN6QjtFQVNFLHlCN0VvRWlCO0U2RW5FakIsY1pQVTtFWVFWLG1CekVrRjREO0V5RWpGNUQsZ0JiRU07RWFETixtQjdFd0VnQjtFNkV2RWhCLHNDekUrRTRELEVBQUE7RXlFN0Y5RDtJQWdCSSxnQkFBZ0IsRUFBQTtJQWhCcEI7TUFtQk0sYUFBUztNQUNULGtCQUFrQjtNQUNsQixrQkFBa0I7TUFDbEIsNENBQW9DO2NBQXBDLG9DQUFvQyxFQUFBO0lBdEIxQztNQXlCTSxhQUFTO01BQ1Qsa0JBQWtCLEVBQUE7RUExQnhCO0lBbUNJLGM3RTJDYTtJNkUxQ2IsY0FBYztJQUNkLG9CekV3RDBEO0l5RXZEMUQsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQix5QkFBeUIsRUFBQTtFbEYwSXZCO0lrRmxMTjtNQWlESSxtQnpFNEMwRDtNeUUzQzFELHVCQUF1QixFQUFBO01BbEQzQjtRQW9ETSxrQkFBa0IsRUFBQSxFQUNuQjs7QUNtR0w7RUF0Q0EsZTFFckI4RDtFMEVzQjlELGdCQUFnQjtFQUNoQixjQUFjLEVBQUE7RUFDZDtJQUNFLHFCQUFxQjtJQUNyQixlQUFlLEVBQUE7SUFNWDtNQUNFLGtCQUFrQjtNQUNsQixpQjlFZ0x1QjtNOEUvS3ZCLFVBQVU7TUFDVixZOUVpTDJCLEVBQUE7RThFdktuQztJQUNFLGM5RXRFYztJOEV1RWQsZ0JkbElTO0ljbUlULHFCQUFxQixFQUFBO0lBQ3JCO01BQ0UsMEJBQTBCLEVBQUE7O0E5RDJMOUI7RStEcktFLHVCQUFBO0VBQ0EsdURBQUE7RUEvRUYsd0JBQXdCO0VBRXhCLGlCQUFpQjtFQUNqQixnQi9FRGU7RStFRWYsZUFBZTtFQUNmLHFCQUFxQjtFQUNyQixvQi9FMk4wQjtFK0UxTjFCLGlCL0V1T2U7RStFdE9mLGdCZmxGUTtFZW1GUixjQUFjO0VBQ2Qsa0IvRXlOa0M7RStFaE5oQyxtQi9FK011QjtFK0U3TXpCLGtCQUFrQjtFQUNsQix5RS9FaU9vQjtFK0VqT3BCLGlFL0VpT29CO0UrRWhPcEIsc0JBQXNCO0VBK0dwQix1REFBQSxFQUF3RDtFdEY2bk0xRDtJUWxwTUUsVUFBVSxFQUFBO0U4RXRDWjtJQVFJLDZCQUE2QjtJQUM3QixxQmQxS1E7SWMyS1IsY2QzS1EsRUFBQTtJY2lLWjtNQVlNLHlCZDdLTTtNYytLTixjZDNLTyxFQUFBO0VjNkpiO0lBb0JJLHFCZHRMVTtJY3VMVixjZDNLUyxFQUFBO0ljc0piO01BdUJNLHlCZHpMUSxFQUFBO0Vja0tkO0lBNEJJLHFCOUI5R2U7SThCK0dmLGM5Qi9HZSxFQUFBO0k4QmtGbkI7TUErQk0seUJkeExXO01jeUxYLHFCZHpMVztNYzBMWCxjZDlMTyxFQUFBO01jNkpiO1FBbUNRLGFkck1NLEVBQUE7RWNrS2Q7SUF5Q0kscUJkdE1TO0ljdU1ULGNkdk1TLEVBQUE7SWM2SmI7TUE0Q00seUJkek1PO01jME1QLHFCZDFNTztNYzJNUCxjZC9NTSxFQUFBO0VjaUtaO0lBbURJLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLHVCQUF1QixFQUFBO0lBdEQzQjtNQXdETSxtQkFBbUIsRUFBQTtFL0RnSHpCO0krRHJORSxjQUFjO0lBQ2QsV0FBVztJQUNYLGVBQWU7SUFDZixjQUFjLEVBQUE7RS9Ea05oQjtJK0R0R0ksbUJBQW1CO0lBQ25CLGEvRW9Hd0I7SStFbkd4QixvQkFBb0IsRUFBQTs7QUFJeEI7RUFDRSxxQkFBcUIsRUFBQTtFL0R3THZCO0krRHJMSSxxQkFBcUIsRUFBQTs7QUFJekI7RUFDRSxnQ2RuUFk7RWNvUFosY2R4T1c7RWN5T1gscUJBQXFCO0VBQ3JCLGtCM0UxSjREO0UyRTJKNUQsZ0Jmek9jO0VlME9kLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQix1RUFBK0Q7RUFBL0QsK0RBQStEO0VBQy9ELG9CQUFvQjtFQUNwQixVQUFVLEVBQUE7RUFaWjtJQWNJLHlCZGhRVTtJY2lRVixjZHJQUztJY3NQVCxtQkFBbUIsRUFBQTtFQUVyQjtJQUNFLDRCZGhRUyxFQUFBO0ljK1BYO01BR0kseUJkbFFPLEVBQUE7O0FjdVFiO0VBdElBLHlDZHRJYztFY3VJZCxjZDNIYTtFYzRIYixjQUFjO0VBQ2QsbUIzRTdDOEQ7RTJFOEM5RCxnQmY1SGdCO0VlNkhoQix1QkFBdUI7RUFDdkIsdUJBQTBCO0VBQzFCLGtCQUFrQjtFQUNsQixrQ0FBa0M7RUFDbEMsZ0ZBQXVFO0VBQXZFLHdFQUF1RTtFQUN2RSw2QkFBNkIsRUFBQTtFQUM3QjtJQUNFLHlCZGxKWTtJY21KWixjZHZJVztJY3dJWCxtQ0FBbUMsRUFBQTtFQUVyQztJQUNFLGdCUHZKbUI7SU93Sm5CLFdBQVcsRUFBQTtFcEZ5QlA7SW9GMkZOO01BakhFLGtCM0UvRDREO00yRWdFNUQscUJBQXFCLEVBQUEsRUFrSHRCOztBQ3ZRRDtFQUNFLHlCZlJZO0VlU1osY2ZHVztFZUZYLGNBQWM7RUFDZCxnQmhCRFM7RWdCRVQscUJBQXFCLEVBQUE7O0FBR3ZCO0VBQ0UsbUI1RTRFNEQ7RTRFM0U1RCxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLHVCUmRvQixFQUFBO0VRVXRCO0lBT0ksZ0JoQlJZO0lnQlNaLG1CUnBCa0IsRUFBQTtFUVl0QjtJQVdJLHdCQUF3QjtJQUN4QixZQUFZO0lBQ1osa0I1RWdFMEQ7STRFL0QxRCxnQmhCZlk7SWdCZ0JaLGdCUjNCa0I7SVE0QmxCLGNBQXNCO0lBQ3RCLGlCQUFpQjtJQUVqQix3TEFEd0Q7SUFDeEQsZ0xBRHdELEVBQUE7SUFsQjVEO01BcUJNLGdCUnBDZSxFQUFBOztBUXlDckI7RUFDRSxnQkFBZ0IsRUFBQTtFQURsQjtJQUdJLGNBQWM7SUFDZCxTQUFTO0lBQ1QsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQix1RUFBdUQ7SUFBdkQsK0RBQXVEO0lBQXZELHVEQUF1RDtJQUF2RCw0R0FBdUQ7SUFDdkQsV0FBVyxFQUFBOztBQUtmO0VBQ0UsY0FBYyxFQUFBO0VBRGhCO0lBR0ksNkJBQXFCO1lBQXJCLHFCQUFxQixFQUFBO0VBSHpCO0lBTUkseUJmaERTO0llaURULGNmN0RVO0llOERWLGlCUjdEa0IsRUFBQTs7QVFpRXRCO0VBQ0Usb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYixtQkFBZTtNQUFmLGVBQWUsRUFBQTs7QUFNakI7O0VBR0ksNEJmN0VVLEVBQUE7O0FlMEVkOztFQU9NLHlCZmpGUSxFQUFBOztBZXFGZDtFQUNFLHlCZjNFa0I7RWU0RWxCLGNmbEZXLEVBQUE7RWVnRmI7SUFNTSxjZmhGYyxFQUFBOztBZXFGcEI7RUFDRSx5QmY1RlcsRUFBQTtFZTJGYjtJQUtNLGNmekZPLEVBQUE7O0FlaUdiO0VBQ0UsZ0JBQWdCLEVBQUE7O0FyRm1FWjtFcUZsS047SUFvTE0sa0I1RXZHd0QsRUFBQSxFNEV3R3pEOztBckZuQkM7RXFGbEtOO0lBNExJLHVCUnJNa0IsRUFBQTtFUTREdEI7SUE2SUkseUJBQW1CO1FBQW5CLHNCQUFtQjtZQUFuQixtQkFBbUIsRUFBQTtJQURyQjs7TUFLSSxtQkFBYTtVQUFiLGlCQUFhO2NBQWIsYUFBYSxFQUFBLEVBQ2Q7O0FyRjlCQztFcUZxQ0o7SUFFSSxtQkFBYTtRQUFiLGlCQUFhO1lBQWIsYUFBYSxFQUFBO0VBRmpCO0lBS0ksbUJBQWE7UUFBYixpQkFBYTtZQUFiLGFBQWEsRUFBQSxFQUNkOztBQ2xPTDtFQUNFLHlCaEJBWSxFQUFBOztBZ0JHZDtFQ0VBLGdCQUFnQjtFREFkLGtCVEZvQixFQUFBO0U3RThLaEI7SXNGOUtOO01DSUUsZ0JBQWdCLEVBQUEsRURPakI7RUFYRDtJQUlJLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsa0I3RW1GMEQ7STZFbEYxRCxnQmpCSVk7SWlCSFosZ0JUWGlCO0lTWWpCLHFCQUFxQixFQUFBOztBQUl6QjtFQUVJLGNBQWM7RUFDZCxXQUFXLEVBQUE7O0F0RjhKVDtFc0Y5S047SUFzQkksYVRwQmtCLEVBQUE7SVNtQnBCO01BSU0sZ0JUeEJjLEVBQUE7SVNvQnBCO01BT00sbUJUM0JjLEVBQUE7RVNpQ3BCO0lBRUksa0JUakNnQixFQUFBO0VTc0NwQjtJQUNFLG9CVHhDa0IsRUFBQTtJU3VDcEI7TUFHSSxpQlQ5Q2dCLEVBQUE7RVNrRHBCO0lBQ0UsaUJUakRrQixFQUFBO0lTZ0RwQjtNQUdJLGtCVHJEZ0IsRUFBQSxFU3NEakI7O0F0RjBIQztFc0ZwSEo7OztJQUdFLHlCQUFtQjtRQUFuQixzQkFBbUI7WUFBbkIsbUJBQW1CO0lBQ25CLG9CQUFhO0lBQWIsb0JBQWE7SUFBYixhQUFhLEVBQUE7RUFyQmY7SUF5QkUsaUJBQWlCLEVBQUE7SUFEbkI7TUFHSSxtQkFBYTtVQUFiLGlCQUFhO2NBQWIsYUFBYTtNQUNiLG1CVHRFZ0IsRUFBQTtJUzBDcEI7TUErQkksbUJBQWE7VUFBYixpQkFBYTtjQUFiLGFBQWEsRUFBQTtFQXhCakI7SUE2QkUsY0FBYyxFQUFBO0lBN0JoQjtNQStCSSxtQkFBYTtVQUFiLGlCQUFhO2NBQWIsYUFBYSxFQUFBO0lBSGpCO01BTUksbUJBQWE7VUFBYixpQkFBYTtjQUFiLGFBQWE7TUFDYixrQlRwRmdCLEVBQUE7RVN5RnBCO0lBQ0UsNkJBQTZCLEVBQUE7SUFEL0I7O01BSUksbUJBQWE7VUFBYixpQkFBYTtjQUFiLGFBQWEsRUFBQTtJQUpqQjtNQU9JLGdCQUFnQixFQUFBO01BUHBCO1FBU00sWUFBWTtRQUNaLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsV0FBVyxFQUFBO0lBbEVqQjtNQXNFSSx5QmhCM0dRO01nQjRHUixxQ2hCNUdRO2NnQjRHUiw2QmhCNUdRO01nQjZHUixrQlQxR2dCLEVBQUEsRVMyR2pCOztBdEZ3RUM7RXNGbEVKOztJQUdJLGdCQUFnQixFQUFBO0VBbkRwQjtJQXVERSxtQlR4SGtCLEVBQUE7RVM0RXBCO0lBK0NFLGtCVDNIa0IsRUFBQTtFU2tDcEI7SUErRkksd0JUOUhnQixFQUFBLEVTK0hqQjs7QXRGaURDO0VzRnZMTjtJQTRJSSxrQkFBcUIsRUFBQTtJQUR2QjtNQUdJLFVBQVUsRUFBQTtFQWxEZDtJQXlESSxZQUFZO0lBQ1osV0FBVyxFQUFBO0VBaEhmO0lBb0hJLGdCQUFnQjtJQUNoQiw4QlRySmdCLEVBQUE7RVM2SXBCO0lBV0ksbUI3RWpFd0QsRUFBQSxFNkVrRXpEOztBRS9KTDtFQUNFLGdCbkJhTTtFbUJaTixtQlhHb0IsRUFBQTtFV0x0QjtJQUlJLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsZ0JuQlNZLEVBQUE7RW1CZmhCO0lBU0ksbUJYUGtCLEVBQUE7O0E3RWdMaEI7RXdGbExOO0lBY0ksbUIvRStFMEQ7SStFOUUxRCxlWFprQjtJV2FsQixnQkFBZ0IsRUFBQTtJQWhCcEI7TUFrQk0saUJBQWlCLEVBQUE7SUFsQnZCO01BcUJNLFdBQVc7TUFDWCxrQlhuQmdCLEVBQUEsRVdvQmpCOztBeEZnS0M7RXdGdkxOO0lBOEJNLGtCWDFCZ0IsRUFBQSxFVzJCakI7O0FDL0JMO0VBQ0UseUJuQktXO0VtQkpYLGNBQWM7RUFDZCxnQnBCUVM7RW9CUFQscUJBQXFCO0VBQ3JCLGFaQW9CO0VZQ3BCLGtCQUFrQixFQUFBO0VBTnBCO0lBUUksY0FBYyxFQUFBO0lBUmxCO01BVU0sY0FBYyxFQUFBO01BVnBCO1FBYVEsZ0NBQXdCO2dCQUF4Qix3QkFBd0IsRUFBQTtNQWJoQztRQWdCUSxvQ0FBK0I7Z0JBQS9CLDRCQUErQixFQUFBO01BaEJ2QztRQW1CUSxtQ0FBOEI7Z0JBQTlCLDJCQUE4QixFQUFBO0VBbkJ0QztJQTBCUSx5Qm5CZFksRUFBQTtFbUJacEI7SUE4Qk0sY25CeEJPLEVBQUE7RW1CTmI7SUFrQ0ksY25CNUJTLEVBQUE7RW1CK0JYOztJQUVFLFlBQVksRUFBQTtFekZnSlY7SXlGdkxOO01BMENJLHdCQUF3QyxFQUFBLEVBRTNDOztBQUNEO0VDeUNBLG1CakZPOEQ7RWlGTjlELGdCQUFnQjtFRHhDZCx3QkFBd0I7RUFDeEIsbUJaN0NvQixFQUFBO0U3RStLaEI7SXlGcklOO01DNENFLGtCakZJNEQsRUFBQSxFZ0Z0QzdEO0VBVkQ7SUFLSSxpQkFBdUIsRUFBQTtFekZnSXJCO0l5RnJJTjtNQVFJLG1CQUF5QixFQUFBLEVBRTVCOztBQUVEO0VBQ0UsY0FBYztFQUNkLG9CaEZrQzREO0VnRmpDNUQsZ0JwQmxETztFb0JtRFAsbUJBQW1CO0VBQ25CLHlCQUF5QixFQUFBOztBQUczQjtFQUNFLG1CaEYyQjREO0VnRjFCNUQsZ0JwQnBEYztFb0JxRGQsa0JBQWtCO0VBQ2xCLG1CWmpFb0IsRUFBQTtFN0U4S2hCO0l5RmpITjtNQU1JLGtCQUFrQixFQUFBLEVBTXJCO0V6RjBHSztJeUZ0SE47TUFTSSxlaEZtQjBEO01nRmxCMUQsbUJBQW1CLEVBQUEsRUFFdEI7O0FBRUQ7RUFDRSxvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLG1CQUFlO01BQWYsZUFBZTtFQUNmLG9CaEZXNEQsRUFBQTtFZ0ZkOUQ7SUFLSSw2QkFBZ0I7UUFBaEIsZ0JBQWdCO0lBQ2hCLDZCWmxGa0I7UVlrRmxCLGdCWmxGa0I7SVltRmxCLGlCWnJGaUI7SVlzRmpCLGdCQUFnQjtJQUNoQixrQkFBa0IsRUFBQTtFQVR0QjtJQVlJLDRCQUFlO1FBQWYsZUFBZSxFQUFBO0VBWm5CO0lBZUksYUFBYSxFQUFBO0VBZmpCO0lBa0JJLGtCWmhHaUIsRUFBQTs7QVltR3JCO0VBQ0Usb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYixnQnBCdkZjO0VvQndGZCxtQmhGVjREO0VnRlc1RCx5QkFBOEI7TUFBOUIsc0JBQThCO1VBQTlCLDhCQUE4QjtFQUM5QixTQUFTO0VBQ1QsZ0JBQWdCO0VBQ2hCLGtCWnRHb0I7RVl1R3BCLGtCQUFrQjtFQUNsQixPQUFPO0VBQ1AsUUFBUTtFQUNSLFNBQVM7RUFDVCxVQUFVLEVBQUE7RUFaWjs7SUFlSSxxQkFBcUI7SUFDckIsMEVBQTBEO0lBQTFELGtFQUEwRDtJQUExRCwwREFBMEQ7SUFBMUQsa0hBQTBEO0lBQzFELHNCQUFzQixFQUFBO0VBakIxQjtJQW9CSSx5Qm5CdkhVO0ltQndIVixtQ0FBMkI7WUFBM0IsMkJBQTJCO0lBQzNCLGVBQWU7SUFDZixjQUFjO0lBQ2QsWUFBWTtJQUNaLE9BQU87SUFDUCxrQkFBa0I7SUFDbEIsTUFBTTtJQUNOLDBDQUEwQjtJQUExQixrQ0FBMEI7SUFBMUIsMEJBQTBCO0lBQTFCLGtEQUEwQjtJQUMxQixvQ0FBNEI7WUFBNUIsNEJBQTRCO0lBQzVCLFdBQVc7SUFDWCxXQUFXLEVBQUE7RXpGK0NUO0l5RjlFTjtNQWtDSSxrQlpoSWtCLEVBQUEsRVlrSXJCOztBQVFEO0VBQ0UsWUFBWSxFQUFBOztBQUlkO0VBSVEseUJuQjdJWTtFbUI4SVosY25CcEpLLEVBQUE7O0FtQitJYjtFQWdCUSx5Qm5CcEtNLEVBQUE7O0FtQm9KZDtFQW9CVSx5Qm5CN0pVLEVBQUE7O0FtQnlJcEI7RUF3QlEsY25CdktLLEVBQUE7O0FxQk5iO0VBQ0UseUJyQktXO0VxQkpYLGNBQWM7RUFDZCxtQmxGMEY0RDtFa0Z6RjVELGdCdEJPUztFc0JOVCxnQkFBZ0I7RUFDaEIscUJBQXFCLEVBQUE7RUFOdkI7SUFRSSxrQkFBa0I7SUFDbEIsZ0J0QkNLO0lzQkFMLG9CQUFvQjtJQUNwQixjQUFjO0lBQ2QsYUFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLHlCQUF5QixFQUFBO0VBZDdCO0lBaUJJLHlCckJYUztJcUJZVCxxQkFBcUI7SUFDckIsb0JsRjBFMEQ7SWtGekUxRCxnQnRCTFk7SXNCTVosaUJkbkJrQjtJY29CbEIsb0NBQTRCO1lBQTVCLDRCQUE0QixFQUFBO0lBdEJoQztNQXdCTSx5QnJCdkJRO01xQndCUixlQUFlO01BQ2YsY0FBYztNQUNkLFdBQVc7TUFDWCxpRkFBaUU7TUFBakUseUVBQWlFO01BQWpFLGlFQUFpRTtNQUFqRSxnSUFBaUU7TUFDakUsNEJBQW9CO2NBQXBCLG9CQUFvQjtNQUNwQiwrQkFBdUI7Y0FBdkIsdUJBQXVCLEVBQUE7RUE5QjdCOztJQW1DSSxnQmRsQ2lCO0ljbUNqQixzQkFBc0IsRUFBQTtFQXBDMUI7SUF3Q1EsK0dBRGlEO0lBQ2pELHVHQURpRCxFQUFBO0VBdkN6RDtJQXlDTSxnSEFGbUQ7SUFFbkQsd0dBRm1ELEVBQUE7RUF2Q3pEO0lBNENJLGVkMUNrQixFQUFBO0VjRnRCO0lBbURJLGNBQWMsRUFBQTtJQW5EbEI7TUFzRFEsNEJBQW9CO2NBQXBCLG9CQUFvQixFQUFBO0lBdEQ1QjtNQTBETSxhckJ6RFEsRUFBQTtJcUJEZDtNQTZETSxjckI1RFEsRUFBQTtJcUJEZDs7TUFpRU0saUJkL0RnQixFQUFBO0ljRnRCO01Bb0VNLDZCQUFxQjtjQUFyQixxQkFBcUIsRUFBQTs7QUFLM0I7RUFDRSxnQkFBZ0IsRUFBQTtFQURsQjtJQUdJLGNBQWM7SUFDZCx1RUFBdUQ7SUFBdkQsK0RBQXVEO0lBQXZELHVEQUF1RDtJQUF2RCw0R0FBdUQ7SUFDdkQsV0FBVztJQUNYLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsWUFBWSxFQUFBOztBM0ZpR1Y7RTJGM0ZKO0lBRUksaUJkdEZnQixFQUFBLEVjdUZqQjs7QUN2Rkw7RUFDRSxpQnpCSWM7RXlCSGQsWUFBWSxFQUFBOztBQUdkO0VBQ0Usa0R0QkhXO0VzQklYLGtCZlBvQixFQUFBOztBZWN0QjtFQUNFLG1CbkYyRTREO0VtRjFFNUQsZ0J2QkxNLEVBQUE7O0F1QlFSO0VBQ0UsZ0JBQWdCO0VBQ2hCLFNBQVMsRUFBQTtFQUZYO0lBSUksZUFBZSxFQUFBO0VBSm5CO0lBT0ksY0FBYztJQUNkLHFCQUFxQjtJQUNyQixnQnZCakJJO0l1QmtCSixZQUFZO0lBQ1osY0FBc0I7SUFDdEIsa0NBQWtDO0lBQ2xDLG9FQUE0RDtJQUE1RCw0REFBNEQ7SUFDNUQsOEJBQXNCO1lBQXRCLHNCQUFzQixFQUFBO0lBZDFCO01BZ0JNLFVBQVU7TUFDVixtQ0FBbUMsRUFBQTtFQWpCekM7SUFzQk0sWUFBWSxFQUFBO0VBdEJsQjtJQXlCTSxtQm5GOEN3RDtJbUY3Q3hELFVBQVUsRUFBQTtFQTFCaEI7SUE2Qk0sVUFBVSxFQUFBOztBNUYrSFY7RTRGcEhvQjtJQTNEMUI7TUE2RE0sYUFBYTtNQUNiLDhCQUE4QixFQUFBLEVBQy9CLEVBQUE7O0E1RmdIQztFNEYvS047SUF1RUksZ0JBQWdCLEVBQUE7RUFsRXBCO0lBcUVJLGlEdEJ2RVM7SXNCd0VULFdBQVc7SUFDWCxpQkFBaUI7SUFDakIsWUFBWSxFQUFBO0VBS1U7SUFsRjFCO01Bb0ZNLHNDQUFzQyxFQUFBO0lBL0U1QztNQW1GTSxXQUFXO01BQ1gsYUFBYTtNQUNiLFdBQVcsRUFBQTtNQUpiO1FBTUksa0JBQWtCLEVBQUEsRUFDbkIsRUFBQTs7QUMvRlA7O0VBRUUsYUFBYSxFQUFBO0VBRmY7O0lBSUksY0FBYyxFQUFBOztBQUtsQjtFQUNFLHlCQUFtQjtNQUFuQixzQkFBbUI7VUFBbkIsbUJBQW1CO0VBQ25CLG9CQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhLEVBQUE7O0FBR2Y7RUFDRSxxQkFBcUI7RUFDckIsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsbUJoQmpCb0IsRUFBQTtFZ0JZdEI7SUFRSSxpQnBGc0UwRDtJb0ZyRTFELGlCQUFpQjtJQUNqQixnQkFBZ0IsRUFBQTtFQVZwQjtJQWNJLFdBQVc7SUFDWCxnQkFBZ0IsRUFBQTtFQWZwQjtJQW1CSSxxQkFBcUIsRUFBQTs7QUNqQ3pCO0VBQ0UseUJ4QkRZO0V3QkVaLGtCQUFrQixFQUFBOztBQUtwQjtFQUNFLHNCakJSbUI7RWlCU25CLHNCakJUbUIsRUFBQTs7QWlCV3JCO0VBQ0UsbUJyRmdGNEQ7RXFGL0U1RCxnQnpCQ2M7RXlCQWQsY0FBYztFQUNkLGtCQUFrQixFQUFBOztBQUVwQjtFVnFIQSx5Q2R0SWM7RWN1SWQsY2QzSGE7RWM0SGIsY0FBYztFQUNkLG1CM0U3QzhEO0UyRThDOUQsZ0JmNUhnQjtFZTZIaEIsdUJBQXVCO0VBQ3ZCLHVCQUEwQjtFQUMxQixrQkFBa0I7RUFDbEIsa0NBQWtDO0VBQ2xDLGdGQUF1RTtFQUF2RSx3RUFBdUU7RUFDdkUsNkJBQTZCLEVBQUE7RUFDN0I7SUFDRSx5QmRsSlk7SWNtSlosY2R2SVc7SWN3SVgsbUNBQW1DLEVBQUE7RUFFckM7SUFDRSxnQlB2Sm1CO0lPd0puQixXQUFXLEVBQUE7RXBGeUJQO0k4RmhLTjtNVjBJRSxrQjNFL0Q0RDtNMkVnRTVELHFCQUFxQixFQUFBLEVVekl0Qjs7QTlGOEpLO0U4RjFLTjtJQWdCSSxXQUFXO0lBQ1gsUUFBUTtJQUNSLGdCQUFnQjtJQUNoQixrQkFBa0I7SUFDbEIsVUFBVSxFQUFBO0VBaEJkO0lBbUJJLHlDeEI5QlU7SXdCK0JWLGVBQWU7SUFDZixlckY0RDBEO0lxRjNEMUQsZ0JBQWdCO0lBQ2hCLFNBQVM7SUFDVCxnQkFBZ0IsRUFBQTtJQUNzQjtNQXpCMUM7UUEwQk0sdUZBQXVGO2dCQUF2RiwrRUFBdUY7UUFDdkYsbUNBQTJCO2dCQUEzQiwyQkFBMkI7UUFDM0IsaUJqQnRDZ0IsRUFBQSxFaUI4Q25CO0lBTitDO01BOUJsRDtRQStCTSx1RkFBK0Y7UUFDL0YsbUNBQW1DO1FBQ25DLGlCakIzQ2dCLEVBQUEsRWlCOENuQjtFQTlCSDtJQWdDSSxnQmpCL0NrQjtJaUJnRGxCLDBCQUFrQjtJQUFsQix1QkFBa0I7SUFBbEIsa0JBQWtCLEVBQUEsRUFDbkI7O0E5Rm1JRztFOEYzS047SUE0Q0ksZXJGcUMwRCxFQUFBLEVxRnBDM0Q7O0FDekRIO0VBQ0UseUJBQW1CO01BQW5CLHNCQUFtQjtVQUFuQixtQkFBbUI7RUFDbkIseUJ6QkNVO0V5QkFWLGN6QkdXO0V5QkZYLG9CQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLGtCQUFrQixFQUFBOztBQUdwQjtFQUNFLGdCMUJLYztFMEJKZCxtQnRGa0Y0RDtFc0ZqRjVELE9BQU87RUFDUCxxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxpQjVCUmM7RTRCU2QsaUJsQmhCbUI7RWtCaUJuQixrQkFBa0I7RUFDbEIsNkN6Qk5XO0V5Qk9YLFdBQVc7RUFDWCxVQUFVLEVBQUE7O0FBR1o7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCLEVBQUE7RUFGcEI7SUFJSSxtQnpCZlM7SXlCZ0JULGtIQUE4RTtJQUE5RSxzRkFBOEU7SUFDOUUsU0FBUztJQUNULGVBQWU7SUFDZixjQUFjO0lBQ2QsV0FBVztJQUNYLE9BQU87SUFDUCxrQkFBa0I7SUFDbEIsV0FBVztJQUNYLFVBQVUsRUFBQTtFQWJkO0lBZ0JJLGNBQWM7SUFDZCxZQUFZO0lBQ1osVUFBVTtJQUNWLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsV0FBVyxFQUFBO0VBckJmO0lBd0JJLFNBQVM7SUFDVCxZQUFZO0lBQ1oscUJsQmpEaUI7SWtCa0RqQixrQkFBa0I7SUFDbEIsUUFBUTtJQUNSLG9DQUE0QjtJQUE1Qiw0QkFBNEI7SUFDNUIsV0FBVyxFQUFBO0lBOUJmO01BZ0NNLFVBQVUsRUFBQTtFQUdkO0lBQ0UsdUZBQXVGO0lBQ3ZGLHlCQUF5QjtJQUN6QixlQUFlO0lBQ2YsWUFBWTtJQUNaLE9BQU87SUFDUCxrQkFBa0I7SUFDbEIsTUFBTTtJQUNOLFlBQVksRUFBQTs7QS9GK0dWO0UrRnpLTjtJQWdFSSxldEZvQjBELEVBQUE7RXNGckU5RDtJQXFETSxZbEIzRWdCO0lrQjRFaEIsV2xCNUVnQixFQUFBLEVrQjZFakI7O0EvRm1HQztFK0ZsTE47SUFxRkksZ0JBQWdCLEVBQUE7RUE1RXBCO0lBK0VJLGdCQUFnQjtJQUNoQixhbEJ0RmtCO0lrQnVGbEIsVUFBVSxFQUFBO0VBbEVkO0lBc0VNLE9BQU87SUFDUCxXQUFXLEVBQUEsRUFDWjs7QS9GdUZDO0UrRjlLTjtJQTRGSSxnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLFVBQVUsRUFBQSxFQUNYOztBQ3hHSDtFQUNFLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsZUFBa0IsRUFBQTs7QUFHcEI7RUFDRSxtQm5CSm9CLEVBQUE7O0FtQk90QjtFQUNFLGtCdkZrRjREO0V1RmpGNUQsZ0JBQWdCO0VBQ2hCLGVBQWUsRUFBQTtFQUhqQjtJQUtJLGNBQWM7SUFDZCxnQjNCTE87STJCTVAsOEIxQmZRO0kwQmdCUixpQ0FBaUMsRUFBQTtFQVJyQztJQVdJLGlCbkJwQmlCLEVBQUE7O0FtQnlCckI7RUFFSSxrQkFBa0I7RUFDbEIsc0JBQXNCLEVBQUE7O0FBSDFCO0VBTUksa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFlBQVksRUFBQTs7QUFWaEI7RUFhSSxnQkFBZSxFQUFBOztBQWJuQjtFQWdCSSxlQUFjLEVBQUE7O0FBSWxCO0VBRUksY0FBYSxFQUFBOztBQUlqQjtFQUdNLGVBQWMsRUFBQTs7QUFNcEI7RUFHTSxnQkFBZTtFQUNmLGlCQUFnQixFQUFBOztBQUp0QjtFQU9NLFdBQVc7RUFDWCxZQUFZO0VBQ1osZ0JBQWdCLEVBQUE7O0FoRzRHaEI7RWdHbExOO0lBNkVJLG9CQUFhO0lBQWIsb0JBQWE7SUFBYixhQUFhO0lBQ2IsbUJuQjFFa0IsRUFBQTtFbUJFdEI7SUEyRUksVUFBUztJQUNULDRCQUFjO1FBQWQsZUFBYyxFQUFBO0VBeEVsQjtJQTJFSSxtQkFBTztRQUFQLFdBQU87WUFBUCxPQUFPO0lBQ1AsaUJBQWdCO0lBQ2hCLFVBQVM7SUFDVCw0QkFBYztRQUFkLGVBQWMsRUFBQSxFQUNmOztBQ3pGSDtFQUNFLGMzQllXO0UyQlhYLG1CeEYyRjREO0V3RjFGNUQsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixtQnBCSm1CO0VvQktuQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLFVBQVUsRUFBQTtFQVJaO0lBVUksZ0I1QktZLEVBQUE7O0E0QkZoQjtFQUNFLHlCM0JiWTtFMkJjWix1QzVCWG1DO0U0QlluQyxleEY2RTREO0V3RjVFNUQsZ0I1QkhNO0U0QklOLGNBQWM7RUFDZCxvQnBCZm9CO0VvQmdCcEIsa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CcEJ0Qm9CLEVBQUE7O0E3RStLaEI7RWlHbExOO0lBOEJJLG1CcEI3QmlCLEVBQUE7RW9CWXJCO0lBb0JJLHNCcEI3QmtCLEVBQUE7RW9CbUJ0QjtJQWNJLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsZ0JBQWdCLEVBQUEsRUFDakI7O0FqRzBJRztFaUdsTE47SUE2Q0ksa0J4RmdEMEQsRUFBQTtFd0ZoRjlEO0lBbUNJLGdCcEI3Q2tCO0lvQjhDbEIsbUNBQTJCO1lBQTNCLDJCQUEyQjtJQUMzQixVQUFVLEVBQUE7RUEzQmQ7SUErQkksd0JwQm5Ea0IsRUFBQSxFb0JvRG5COztBakdnSUc7RWlHdkxOO0lBNERJLGNBQWtCLEVBQUEsRUFDbkI7O0FqRzBIRztFaUcxS047SUFxREksa0J4RjJCMEQ7SXdGMUIxRCxtQkFBbUIsRUFBQSxFQUNwQjs7QUNwRUg7RUFDRSx5QjVCRVU7RTRCRFYsYzVCSVc7RTRCSFgsaUJ6RjBGNEQ7RXlGekY1RCxnQjdCVU07RTZCVE4sa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0Usb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWEsRUFBQTtFQURmO0lBR0ksZ0Q1QkxTO0k0Qk1ULHFCQUFxQjtJQUNyQixZQUFZLEVBQUE7SUFMaEI7TUFPTSxrQkFBa0IsRUFBQTtFQVB4QjtJQVdJLGNBQWM7SUFDZCxXQUFXLEVBQUE7O0FBSWY7RUFDRSxrQnJCdEJvQixFQUFBOztBcUJ5QnRCO0VBQ0UsZ0JBQWdCO0VBQ2hCLFNBQVMsRUFBQTtFQUZYO0lBSUksc0JBQXNCO0lBQ3RCLFlBQVksRUFBQTtFQUxoQjtJQVFJLHFCQUFxQjtJQUNyQixhQUFtQjtJQUNuQixtQkFBbUIsRUFBQTtFQVZ2QjtJQWFJLHlCNUJuQ1M7STRCb0NULGtCQUFrQjtJQUNsQixxQkFBcUI7SUFDckIsWUFBdUI7SUFDdkIsWXJCNUNpQjtJcUI2Q2pCLFdBQXNCLEVBQUE7SUFDUztNQW5CbkM7UUFvQk0sMkJBQW9CO1FBQXBCLDJCQUFvQjtRQUFwQixvQkFBb0I7UUFDcEIsVUFBVSxFQUFBLEVBRWI7O0FsRytIRztFa0d6SEo7O0lBRUUscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0QixVQUFVLEVBQUE7RUFFWjtJQUVJLGdENUIzRE8sRUFBQTtFNEJ5RFg7SUFLSSwrQzVCOURPLEVBQUE7RTRCa0JiO0lBZ0RJLGlCckJyRWtCLEVBQUE7RXFCd0VJO0lBM0UxQjtNQTZFTSxvQkFBYTtNQUFiLG9CQUFhO01BQWIsYUFBYTtNQUNiLHlCQUFtQjtVQUFuQixzQkFBbUI7Y0FBbkIsbUJBQW1CLEVBQUE7SUFyQnZCOztNQXlCSSxxQkFBUztVQUFULGFBQVM7Y0FBVCxTQUFTO01BQ1QsV0FBVyxFQUFBO0lBM0VqQjtNQThFTSxvQkFBYTtNQUFiLG9CQUFhO01BQWIsYUFBYSxFQUFBLEVBQ2QsRUFBQTs7QUN0Rkw7RUFDRSxnQkFBZ0IsRUFBQTtFQUNoQjtJQUNFLHFCQUFxQjtJQUNyQixtQkFBbUIsRUFBQTs7QUFNdkI7RUFDRSxpQmhDSmM7RWdDS2QsWUFBWTtFQUNaLHNCdEJibUI7RXNCY25CLGtCQUFrQixFQUFBOztBQU1wQjtFQUVFLG1CdEJsQm9CLEVBQUE7O0FzQnFCdEI7RUFDRSx5QjdCekJVO0U2QjBCVixxQkFBcUI7RUFDckIsZ0I5QmpCZTtFOEJrQmYsa0J0QjdCbUI7RXNCOEJuQixzQnRCOUJtQjtFc0IrQm5CLHFCQUFxQixFQUFBO0VBTnZCO0lBUUksY0FBYztJQUNkLG1CMUYwRDBEO0kwRnpEMUQsaUJBQWlCLEVBQUE7RUFWckI7SUFhSSxpREFBaUM7SUFBakMseUNBQWlDO0lBQWpDLGlDQUFpQztJQUFqQyxnRUFBaUMsRUFBQTtFQWJyQztJQWlCSSxjQUFjLEVBQUE7SUFqQmxCO01BbUJNLG1DQUEyQjtjQUEzQiwyQkFBMkIsRUFBQTtFQUdBO0lBdEJqQztNQXVCSSx5QkFBbUI7VUFBbkIsc0JBQW1CO2NBQW5CLG1CQUFtQjtNQUNuQiwyQkFBb0I7TUFBcEIsMkJBQW9CO01BQXBCLG9CQUFvQixFQUFBLEVBRXZCOztBQUtEO0VBQ0UsbUJ0QnREb0I7RXNCdURwQixnQkFBb0I7RUFDcEIsa0JBQWtCO0VBQ2xCLFdBQVcsRUFBQTs7QUFHYjtFQUNFLDZCQUE2QjtFQUM3QixjN0I1RFc7RTZCNkRYLGdCQUFnQixFQUFBO0VBSGxCO0lBS0ksNkJBQTZCLEVBQUE7O0FBSWpDO0VBQ0UsU0FBUztFQUNULFlBQVk7RUFDWixpQnRCMUVvQjtFc0IyRXBCLGtCQUFrQjtFQUNsQixRQUFRLEVBQUE7O0FBS1Y7RUFFRSxtQjFGUTREO0UwRlA1RCxtQkFBOEIsRUFBQTtFQUhoQztJQU1NLFlBQVk7SUFDWixxQkFBcUI7SUFDckIsY3RCekZnQixFQUFBO0VzQmlGdEI7SUFXTSxhQUFhLEVBQUE7RUFYbkI7SUFlSSxnQjlCdkZPO0k4QndGUCxxQkFBcUIsRUFBQTs7QUFPekI7RUFDRSxrQjFGZDREO0UwRmU1RCxnQkFBZ0I7RUFDaEIsa0JBQWtCLEVBQUE7O0FuR3FFZDtFbUdoRW9CO0lBdkcxQjtNQXlHTSxhQUFhO01BQ2IseUJBQThCO1VBQTlCLHNCQUE4QjtjQUE5Qiw4QkFBOEI7TUFDOUIsb0ZBR2lCO01BQ2pCLGdCQUFnQixFQUFBO0lBckd0QjtNQXdHTSxzQkFBc0I7TUFDdEIsZ0J0QjVIZ0IsRUFBQTtNc0IwSGxCO1FBSUksa0J0QjlIYyxFQUFBO0lzQnVEdEI7TUEyRU0sb0JBQW9CO01BQ3BCLFlBQVksRUFBQTtJQWxEbEI7TUFxRE0sdUJBQXVCO01BQ3ZCLGlCQUFpQjtNQUNqQixXQUFXLEVBQUE7SUFoQ2pCO01BbUNNLGlCQUFpQixFQUFBLEVBQ2xCLEVBQUE7O0FsRW9QTDtFbUUzVUEsb0IzRnNDOEQ7RTJGckM5RCxnQkFBZ0I7RUFDaEIsU0FBUztFQUNULFVBQVU7RUFDVixrQkFBa0I7RUFHaEIsb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYixtQkFBZTtNQUFmLGVBQWU7RUF3SGIsZUFBZTtFQUNmLDhCQUFtQjtFQUFuQiw2QkFBbUI7TUFBbkIsdUJBQW1CO1VBQW5CLG1CQUFtQixFQUFBO0VBdEh2QjtJQUVFLGVBQWUsRUFBQTtJdEdzek9mO01RanJPQSxVQUFVLEVBQUE7SThGcElWO01BQ0Usa0IvRmdCZSxFQUFBO0U0QmhCbkI7O0ltRU1FLGNBQWM7SUFDZCxxQkFBcUI7SUFDckIsY0FBYztJQUNkLG9CL0ZZNkIsRUFBQTtFNEJaL0I7Ozs7SW1FUUUsZ0JBQWdCLEVBQUE7RW5FRGxCO0ltRUtFLHFCQUFxQixFQUFBO0VuRXVTdkI7SW1FaE1JLHFCQUFpQjtRQUFqQixpQkFBaUI7SUFDakIsNEJBQXNCO0lBQXRCLDZCQUFzQjtRQUF0QiwwQkFBc0I7WUFBdEIsc0JBQXNCLEVBQUE7RW5Fckd4QjtJbUVLRSxtQkFBYTtRQUFiLGlCQUFhO1lBQWIsYUFBYSxFQUFBO0VuRStSakI7SW1FN0tFLHlCQUFtQjtRQUFuQixzQkFBbUI7WUFBbkIsbUJBQW1CLEVBQUE7SW5FRHJCO01tRUtFLGlCL0Z5U3FCLEVBQUE7STRCMVN2QjtNbUVLRSxVQUFVLEVBQUE7RXBHM0NOO0lpQ2dOTjtNbUUzTUksbUJBQWU7VUFBZixlQUFlO01BQ2YsOEJBQW1CO01BQW5CLDZCQUFtQjtVQUFuQix1QkFBbUI7Y0FBbkIsbUJBQW1CLEVBQUE7SW5FME12QjtNbUVoTUkscUJBQWlCO1VBQWpCLGlCQUFpQjtNQUNqQiw0QkFBc0I7TUFBdEIsNkJBQXNCO1VBQXRCLDBCQUFzQjtjQUF0QixzQkFBc0IsRUFBQTtJbkVyR3hCO01tRUtFLG1CQUFhO1VBQWIsaUJBQWE7Y0FBYixhQUFhLEVBQUE7SW5FTGY7TW1FS0UsbUJBQWE7VUFBYixpQkFBYTtjQUFiLGFBQWEsRUFBQSxFQUNkO0VwRzhFRztJaUNnTk47TW1FM01JLG1CQUFlO1VBQWYsZUFBZTtNQUNmLDhCQUFtQjtNQUFuQiw2QkFBbUI7VUFBbkIsdUJBQW1CO2NBQW5CLG1CQUFtQixFQUFBO0luRTBNdkI7TW1FaE1JLHFCQUFpQjtVQUFqQixpQkFBaUI7TUFDakIsNEJBQXNCO01BQXRCLDZCQUFzQjtVQUF0QiwwQkFBc0I7Y0FBdEIsc0JBQXNCLEVBQUE7SW5Fckd4QjtNbUVLRSxtQkFBYTtVQUFiLGlCQUFhO2NBQWIsYUFBYSxFQUFBO0luRUxmO01tRUtFLG1CQUFhO1VBQWIsaUJBQWE7Y0FBYixhQUFhLEVBQUEsRUFDZDtFbkU4Ukg7SW1FckpFLGVBQWlDO0lBQ2pDLGlCL0ZsSjRCLEVBQUE7RTRCc0o1QjtJbUVLRSxvQkFBYTtJQUFiLG9CQUFhO0lBQWIsYUFBYSxFQUFBO0VuRTJJakI7SW1FNUJBLG1CL0ZpS21DO0krRmhLbkMsYy9GdlJhLEVBQUE7RTRCa1RiO0ltRTVCQSxtQi9GaUttQztJK0ZoS25DLGMvRnZSYSxFQUFBO0U0QmtUYjtJbUU3UUksdUJBQTJCO1FBQTNCLG9CQUEyQjtZQUEzQiwyQkFBMkIsRUFBQTtFbkVJM0I7SW1FS0Usb0JBQWE7SUFBYixvQkFBYTtJQUFiLGFBQWE7SUFDYixxQkFBeUI7UUFBekIsa0JBQXlCO1lBQXpCLHlCQUF5QixFQUFBO0luRUZ6QjtNbUVLRSx1QkFBMkI7VUFBM0Isb0JBQTJCO2NBQTNCLDJCQUEyQixFQUFBO0VuRUEvQjtJbUVLRSxjQUFjO0lBQ2QsaUJsQ1RvRCxFQUFBO0lqQ09wRDtNbUVLRSxpQmxDWmtELEVBQUE7RWpDbVExRDtJbUV6SkUsa0IvRjdJNEI7SStGOEk1QixjQUFnQyxFQUFBO0VuRS9FOUI7SW1FS0Usb0JBQWE7SUFBYixvQkFBYTtJQUFiLGFBQWE7SUFDYix3QkFBdUI7UUFBdkIscUJBQXVCO1lBQXZCLHVCQUF1QixFQUFBO0luRUZ2QjtNbUVLRSx1QkFBMkI7VUFBM0Isb0JBQTJCO2NBQTNCLDJCQUEyQixFQUFBO0VuRThObkM7SW1FcENBLG9CL0ZuUStCO0krRnFRL0IsaUJBQWlCO0lBQ2pCLGNBQWM7SUFDZCxjQUFjLEVBQUE7O0FuRStKWjtFbUUzQk0sd0JBQXVCO01BQXZCLHFCQUF1QjtVQUF2Qix1QkFBdUIsRUFBQTtFbkUzVTNCO0ltRUtFLG9CQUFhO0lBQWIsb0JBQWE7SUFBYixhQUFhO0lBQ2Isd0JBQXVCO1FBQXZCLHFCQUF1QjtZQUF2Qix1QkFBdUIsRUFBQTtJbkVGdkI7TW1FS0UsdUJBQTJCO1VBQTNCLG9CQUEyQjtjQUEzQiwyQkFBMkIsRUFBQTs7QW5FeVduQztFbUU3QkUsYUFBYSxFQUFBOztBQU1mO0VBQ0UsZ0IvQnplTSxFQUFBO0UrQndlUjtJQUdJLGdCQUFnQjtJQUNoQixrQkFBa0IsRUFBQTtJQUp0QjtNQU1NLHlCOUIxZk07TThCMmZOLFdBQVc7TUFDWCxlQUFlO01BQ2YsY0FBYztNQUNkLFdBQVc7TUFDWCxPQUFPO01BQ1Asa0JBQWtCO01BQ2xCLG9DQUE0QjtjQUE1Qiw0QkFBNEI7TUFFNUIsbURBQW1DO01BQW5DLDJDQUFtQztNQUFuQyxtQ0FBbUM7TUFBbkMsb0VBQW1DO01BQ25DLFdBQVcsRUFBQTtJQWhCakI7TUFvQlEsZ0NBQXdCO2NBQXhCLHdCQUF3QixFQUFBOztBQU85QjtFQUVJLGdDQUF3QjtVQUF4Qix3QkFBd0IsRUFBQTs7QTFEaGMxQjtFMkRDRSxTQUFTO0VBQ1QsUUFBUTtFQUNSLFVBQVUsRUFBQTs7QTNES1o7RTJEQ0UsU0FBUztFQUNULFdBQVc7RUFDWCxPQUFPLEVBQUE7O0EzREtUO0UyRENFLGtCQUFrQjtFQUNsQixxQmhHb1UyQixFQUFBOztBcUNqVTdCO0VwQzVESixjQUFjO0VBQ2QsUUFBUTtFQUNSLFNBQVM7RUFFVCxtQkFBbUI7RUFDbkIsaUJEdVgyQjtFQ3JYM0IsV0FBVztFQUdULHNCQUFzQjtFQUN0Qiw2Q0FBcUQ7RStGbURqRCxVQUFxQjtFQUNyQixVQUFxQjtFQUNyQixnQkFBK0MsRUFBQTs7QXZHaTZPdkQ7RVFwME9JLFVBQVUsRUFBQTs7QW9DekRaO0UyRFVJLGdCQUFnQjtFQUNoQixvQmhHaEUyQixFQUFBOztBcUNxRC9CO0UyRGdCSSx1QmhHc1I0QztFZ0dyUjVDLGNoR21SbUMsRUFBQTs7QXFDalJyQztFMkRFRSxhQUFhLEVBQUE7O0EzRHJCakI7RTBENkZFLGVBQWlDO0VBQ2pDLGMvRmdNMEIsRUFBQTs7QXFDNVR4QjtFMkRDRSxNQUFNLEVBQUE7O0EzRElOO0UyRENFLE1BQU07RUFDTixXQUFXO0VBQ1gsVUFBVSxFQUFBOztBM0RLWjtFMkRDRSxXQUFXO0VBQ1gsVUFBVSxFQUFBOztBM0RoRWxCO0UyRENFLFdBQXNCLEVBQUE7O0EzREd4QjtFcEN6QkEsY0FBYztFQUNkLFFBQVE7RUFDUixTQUFTO0VBRVQsbUJBQW1CO0VBQ25CLGlCRHVYMkI7RUNyWDNCLFdBQVc7RUFlVCxvQkFBb0I7RUFDcEIseURBQWlFO0UrRklqRSxXQUFXO0VBQ1gsU0FBUyxFQUFBOztBM0RHWDtFcEMvQkEsY0FBYztFQUNkLFFBQVE7RUFDUixTQUFTO0VBRVQsbUJBQW1CO0VBQ25CLGlCRHVYMkI7RUNyWDNCLFdBQVc7RUFXVCxxQkFBcUI7RUFDckIseURET2MsRUFBQTs7QUw0R1Y7RTBDL0ZGO0kyRENFLFNBQVM7SUFDVCxRQUFRO0lBQ1IsVUFBVSxFQUFBO0UzREtaO0kyRENFLFNBQVM7SUFDVCxXQUFXO0lBQ1gsT0FBTyxFQUFBO0UzREtUO0kyRENFLGtCQUFrQjtJQUNsQixxQmhHb1UyQixFQUFBO0VxQ2pVN0I7SXBDNURKLGNBQWM7SUFDZCxRQUFRO0lBQ1IsU0FBUztJQUVULG1CQUFtQjtJQUNuQixpQkR1WDJCO0lDclgzQixXQUFXO0lBR1Qsc0JBQXNCO0lBQ3RCLDZDQUFxRDtJK0ZtRGpELFVBQXFCO0lBQ3JCLFVBQXFCO0lBQ3JCLGdCQUErQyxFQUFBO0UzRE1qRDtJMkRDRSxNQUFNLEVBQUE7RTNESU47STJEQ0UsTUFBTTtJQUNOLFdBQVc7SUFDWCxVQUFVLEVBQUE7RTNES1o7STJEQ0UsV0FBVztJQUNYLFVBQVUsRUFBQTtFM0RoRWxCO0kyRENFLFdBQXNCLEVBQUE7RTNER3hCO0lwQ3pCQSxjQUFjO0lBQ2QsUUFBUTtJQUNSLFNBQVM7SUFFVCxtQkFBbUI7SUFDbkIsaUJEdVgyQjtJQ3JYM0IsV0FBVztJQWVULG9CQUFvQjtJQUNwQix5REFBaUU7SStGSWpFLFdBQVc7SUFDWCxTQUFTLEVBQUE7RTNER1g7SXBDL0JBLGNBQWM7SUFDZCxRQUFRO0lBQ1IsU0FBUztJQUVULG1CQUFtQjtJQUNuQixpQkR1WDJCO0lDclgzQixXQUFXO0lBV1QscUJBQXFCO0lBQ3JCLHlERE9jLEVBQUEsRWdHT2Y7O0FyR3FHSztFMEMvRkY7STJEQ0UsU0FBUztJQUNULFFBQVE7SUFDUixVQUFVLEVBQUE7RTNES1o7STJEQ0UsU0FBUztJQUNULFdBQVc7SUFDWCxPQUFPLEVBQUE7RTNES1Q7STJEQ0Usa0JBQWtCO0lBQ2xCLHFCaEdvVTJCLEVBQUE7RXFDalU3QjtJcEM1REosY0FBYztJQUNkLFFBQVE7SUFDUixTQUFTO0lBRVQsbUJBQW1CO0lBQ25CLGlCRHVYMkI7SUNyWDNCLFdBQVc7SUFHVCxzQkFBc0I7SUFDdEIsNkNBQXFEO0krRm1EakQsVUFBcUI7SUFDckIsVUFBcUI7SUFDckIsZ0JBQStDLEVBQUE7RTNETWpEO0kyRENFLE1BQU0sRUFBQTtFM0RJTjtJMkRDRSxNQUFNO0lBQ04sV0FBVztJQUNYLFVBQVUsRUFBQTtFM0RLWjtJMkRDRSxXQUFXO0lBQ1gsVUFBVSxFQUFBO0UzRGhFbEI7STJEQ0UsV0FBc0IsRUFBQTtFM0RHeEI7SXBDekJBLGNBQWM7SUFDZCxRQUFRO0lBQ1IsU0FBUztJQUVULG1CQUFtQjtJQUNuQixpQkR1WDJCO0lDclgzQixXQUFXO0lBZVQsb0JBQW9CO0lBQ3BCLHlEQUFpRTtJK0ZJakUsV0FBVztJQUNYLFNBQVMsRUFBQTtFM0RHWDtJcEMvQkEsY0FBYztJQUNkLFFBQVE7SUFDUixTQUFTO0lBRVQsbUJBQW1CO0lBQ25CLGlCRHVYMkI7SUNyWDNCLFdBQVc7SUFXVCxxQkFBcUI7SUFDckIseURET2MsRUFBQSxFZ0dPZjs7QTNEbUVEO0UyRGdETSxTQUFTO0VBQ1QsUUFBUTtFQUNSLFVBQVUsRUFBQTs7QTNESWhCO0UyREVFLFlBQVksRUFBQTtFM0RGZDtJMkRLSSxZQUFZLEVBQUE7O0EzREdoQjtFMkRFRSxrQkFBa0IsRUFBQTtFM0RGcEI7STJES0ksa0JBQWtCO0lBQ2xCLFFBQVE7SUFDUixVQUFxQjtJQUNyQixVQUFxQjtJQUNyQixnQkFBeUMsRUFBQTtFM0RUN0M7STJEY0ksU0FBUztJQUtQLFVBQVUsRUFBQTtFM0RuQmhCO0kyRHdCSSxXQUFXO0lBQ1gsVUFBVSxFQUFBO0UzRHpCZDtJMkQ2QkksV0FBVztJQUNYLFVBQVUsRUFBQTs7QTNER2Q7RTJERUUsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixVQUFxQjtFQUNyQixVQUFVO0VBRVYsYUFBYTtFQUNiLGdCaEdtTDBCO0VnR2pMMUIseUJoRzVLaUI7RWdHNktqQixtQmhHMUtXLEVBQUE7RXFDMktYO0kyREVFLG9CaEdsSzJCLEVBQUE7RXFDMUIvQjtJMkRDRSxXQUFzQixFQUFBO0UzREd4QjtJcEN6QkEsY0FBYztJQUNkLFFBQVE7SUFDUixTQUFTO0lBRVQsbUJBQW1CO0lBQ25CLGlCRHVYMkI7SUNyWDNCLFdBQVc7SUFlVCxvQkFBb0I7SUFDcEIseURBQWlFO0krRklqRSxXQUFXO0lBQ1gsU0FBUyxFQUFBO0UzREdYO0lwQy9CQSxjQUFjO0lBQ2QsUUFBUTtJQUNSLFNBQVM7SUFFVCxtQkFBbUI7SUFDbkIsaUJEdVgyQjtJQ3JYM0IsV0FBVztJQVdULHFCQUFxQjtJQUNyQix5RERPYyxFQUFBO0VxQ3lLaEI7STJEeUJNLGdCaEd3S2lCLEVBQUE7RXFDak12QjtJMkQ4QkksV0FBVyxFQUFBO0UzRDlCZjtJMkRvQ0ksY0FBYyxFQUFBOztBQ2xSbEI7RUFDRSxjQUFjO0VBQ2QseUJoQ0dXO0VnQ0ZYLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLHFCekJObUIsRUFBQTtFeUJBckI7SUFRSSxrQ0FBMEI7SUFBMUIsMEJBQTBCLEVBQUE7O0FBRzlCO0VBQ0UseUJ6QlptQjtFeUJhbkIsZ0JBQWdCLEVBQUE7RUFGbEI7SUFJSSxjQUFjO0lBQ2QsWUFBWTtJQUNaLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsdUVBQXVEO0lBQXZELCtEQUF1RDtJQUF2RCx1REFBdUQ7SUFBdkQsNEdBQXVEO0lBQ3ZELFdBQVcsRUFBQTs7QUFNZjtFQUVJLDZCQUFxQjtVQUFyQixxQkFBcUIsRUFBQTs7QUFGekI7RUFLSSxjaEMvQlUsRUFBQTs7QWlDRGQ7RUFDRSx5QmpDS1c7RWlDSlgsMkJBQW9CO0VBQXBCLDJCQUFvQjtFQUFwQixvQkFBb0I7RUFDcEIsNEJBQXNCO0VBQXRCLDZCQUFzQjtNQUF0QiwwQkFBc0I7VUFBdEIsc0JBQXNCO0VBQ3RCLG1COUZ5RjREO0U4RnhGNUQsZ0JsQ01TO0VrQ0xULG1CMUJIb0I7RTBCSXBCLHFCQUFxQixFQUFBO0VBUHZCO0lBU0ksY0FBYyxFQUFBO0lBVGxCO01BV00sV0FBVztNQUNYLDZCQUFxQjtjQUFyQixxQkFBcUIsRUFBQTtJQVozQjtNQWVNLGNqQ2RRLEVBQUE7O0FpQ21CZDtFQUNFLHlCQUF5QztFQUN6QyxhQUFhO0VBQ2IsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUVoQixrQkFBa0IsRUFBQTtFQU5wQjtJQVFJLHFCQUFxQjtJQUNyQixTQUFTO0lBQ1QsV0FBVztJQUNYLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLDhCQUFzQjtZQUF0QixzQkFBc0I7SUFDdEIsa0NBQTBCO1lBQTFCLDBCQUEwQjtJQUMxQixrSUFDK0Q7SUFEL0QsMEhBQytEO0lBRC9ELGtIQUMrRDtJQUQvRCwrS0FDK0QsRUFBQTs7QUFJbkU7RUFDRSxxQkFBcUI7RUFDckIsbUJqQzFDWTtFaUMyQ1osZTlGaUQ0RDtFOEZoRDVELGdCbENuQ087RWtDb0NQLGdCMUI3Q21CO0UwQjhDbkIseUJBQXlCLEVBQUE7O0FBRzNCO0VBQ0Usb0I5RjBDNEQ7RThGekM1RCxnQmxDckNjO0VrQ3NDZCxpQkFBaUI7RUFDakIsY0FBaUI7RUFDakIsbUVBQTJEO0VBQTNELDJEQUEyRDtFQUMzRCxrQkFBa0IsRUFBQTtFdkcwSGQ7SXVHaElOO01BUUksb0I5Rm1DMEQ7TThGbEMxRCxtQkFBbUIsRUFBQSxFQUV0Qjs7QUFFRDtFQUNFLDJCMUI1RG9CLEVBQUE7RTdFOEtoQjtJdUduSE47TUFHSSxvQjFCaEVrQixFQUFBLEUwQmtFckI7O0FBS0Q7RUFDRSxZQUFZLEVBQUE7O0FDMUVkO0VBQ0UsZ0JBQWdCLEVBQUE7RUFEbEI7O0lBSUksYzNCSGlCLEVBQUE7RTJCRHJCO0lBT0ksZ0IzQkxrQixFQUFBO0UyQkZ0QjtJQVVJLGNsQ0NlO0lrQ0FmLGdCQUFnQjtJQUNoQixnQm5DRUk7SW1DREosaUJBQWlCLEVBQUE7O0FDVnJCO0VBQ0Usd0NuQ1NXO0VtQ1JYLFNBQVM7RUFDVCxjbkNBVztFbUNDWCxvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLE9BQU87RUFDUCxVQUFVO0VBQ1YsdUI1QlBvQjtFNEJRcEIsZUFBZTtFQUNmLFFBQVE7RUFDUixNQUFNO0VBQ04sMkRBQW1EO0VBQW5ELG1EQUFtRDtFQUNuRCxrQkFBa0I7RUFDbEIsV0FBVyxFQUFBO0VBYmI7SUFlSSxVQUFVO0lBQ1YsbUJBQW1CLEVBQUE7O0FBSXZCO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsWTVCMUJtQixFQUFBO0U0QnNCckI7SUFNSSxnQkFBZ0IsRUFBQTtFQU5wQjtJQVNJLGdCcENqQlk7SW9Da0JaLGtCNUJoQ2lCLEVBQUE7RTRCc0JyQjtJQWFJLG9CQUFhO0lBQWIsb0JBQWE7SUFBYixhQUFhO0lBQ2IsbUJBQWU7UUFBZixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGNBQWMsRUFBQTtFQWhCbEI7SUFvQkkscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQixnQnBDL0JJO0lvQ2dDSixtQkFBaUM7SUFDakMsWUFBWTtJQUNaLHNCQUFrQztJQUNsQyxtQ0FBbUM7SUFDbkMseUNBQWlDO0lBQWpDLGlDQUFpQyxFQUFBO0lBM0JyQztNQTZCTSxjQUFjO01BQ2QsVUFBVSxFQUFBOztBQU1oQjtFQUNFLGNuQy9DVztFbUNnRFgsbUI1QnhEb0I7RTRCeURwQixrQkFBa0IsRUFBQTtFQUhwQjs7SUFNSSxnQnBDbkRJLEVBQUE7RW9DNkNSO0lBU0ksaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixhNUJwRWtCLEVBQUE7RTRCeUR0QjtJQWNJLHlCbkN2RVE7SW1Dd0VSLFNBQVM7SUFDVCxjbkNyRVM7SW1Dc0VULDJCQUFvQjtJQUFwQiwyQkFBb0I7SUFBcEIsb0JBQW9CO0lBQ3BCLHlCQUFtQjtRQUFuQixzQkFBbUI7WUFBbkIsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsYTVCOUVrQjtJNEIrRWxCLGtCQUFrQjtJQUNsQixRQUFRO0lBQ1IseUJBQXlCO0lBQ3pCLE1BQU0sRUFBQTtJQXpCVjtNQTJCTSxpQjVCckZlLEVBQUE7O0E3RWlMZjtFeUd2SE47SUFtQ0ksbUI1QnZGa0IsRUFBQTtJNEJvRHRCO01BcUNNLGtCQUFrQjtNQUNsQixpQjVCL0ZnQixFQUFBO0k0QnlEdEI7TUF5Q00sZUFBZTtNQUNmLGtCNUJsR2dCLEVBQUEsRTRCbUdqQjs7QUFRTDtFQUNFLGdCQUFnQixFQUFBO0VBRGxCO0lBR0kseUJBQWlCO1lBQWpCLGlCQUFpQixFQUFBOztBQzdHckI7RUFHRSxnQkFEMEI7RUFFMUIsZUFGMEI7RUFHMUIsa0JBQWtCLEVBQUE7RUFMcEI7SUFPSSxPQUFPO0lBQ1Asa0JBQWtCO0lBQ2xCLE1BQU07SUFDTixVQUFVLEVBQUE7RUFWZDtJQWFJLFVBQVUsRUFBQTtFQWJkO0lBbUJNLFVBQVUsRUFBQTtFQW5CaEI7SUFzQk0sVUFBVSxFQUFBOztBQU9oQjtFQUNFLGNBQWM7RUFDZCxrQmpHMEQ0RDtFaUd6RDVELGdCckN0Qk07RXFDdUJOLGdCN0JwQ21CLEVBQUE7O0E2QndDckI7RUFHRSxjcEMxQ1U7RW9DMkNWLHlCcEMzQ1U7RW9DNENWLGtCQUFrQjtFQUNsQixvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLFlBTjBCO0VBTzFCLHdCQUF1QjtNQUF2QixxQkFBdUI7VUFBdkIsdUJBQXVCO0VBQ3ZCLGtCQUFrQjtFQUNsQixXQVQwQixFQUFBOztBQWE1QjtFQUVJLHlCcEN2RFE7RW9Dd0RSLGtCQUFrQjtFQUNsQixlQUFlO0VBQ2YsY0FBYztFQUNkLFlBQVk7RUFDWixPQUFPO0VBQ1Asa0JBQWtCO0VBQ2xCLE1BQU07RUFDTiwyQkFBbUI7VUFBbkIsbUJBQW1CO0VBQ25CLDBFQUF5RDtFQUF6RCxrRUFBeUQ7RUFBekQsMERBQXlEO0VBQXpELGtIQUF5RDtFQUN6RCxXQUFXO0VBQ1gsV0FBVyxFQUFBOztBQWJmO0VBaUJJLGNwQ2xFUyxFQUFBO0VvQ2lEYjtJQW1CTSw2QkFBcUI7WUFBckIscUJBQXFCLEVBQUE7O0FBTTNCO0VBQ0UseUJwQy9FVTtFb0NnRlYsY3BDNUVXLEVBQUE7O0FxQ05iO0VBQ0UsY0FBYztFQUNkLGVBQWtCO0VBR2xCLGtCQUFrQixFQUFBO0VBTHBCO0lBT0ksZ0JBQWdCLEVBQUE7O0EzRzJLZDtFMkdsTE47SUFpQkksaUJBQWlCO0lBQ2pCLFVBQVUsRUFBQSxFQUNYOztBN0M0Q0g7RThDQ0Usd0JBQXdCLEVBQUE7O0E5Q0cxQjtFOENDRSxrQkFBa0IsRUFBQTs7QTVHOEdkO0U4RDVGSjtJOEM3QkEsd0JBQXdCLEVBQUEsRUE0QnZCOztBQS9DRDtFOUNvREE7SThDbkRFLHdCQUF3QixFQUFBLEVBa0R6Qjs7QTVHeUZHO0U4RHJHRjtJOEM1QkYsd0JBQXdCLEVBQUEsRUEyQnJCOztBNUcyR0M7RThEdEdGO0k4Q3BFRix3QkFBd0IsRUFBQSxFQW1FckI7O0E1R2tHQztFOEQ1Rko7SThDN0JBLHdCQUF3QixFQUFBLEVBNEJ2Qjs7QUEvQ0Q7RTlDb0RBO0k4Q25ERSx3QkFBd0IsRUFBQSxFQWtEekI7O0E1R3lGRztFOERyR0Y7SThDNUJGLHdCQUF3QixFQUFBLEVBMkJyQjs7QTVHMkdDO0U4RHRHRjtJOENwRUYsd0JBQXdCLEVBQUEsRUFtRXJCOztBNUdrR0M7RThENUZKO0k4QzdCQSx3QkFBd0IsRUFBQSxFQTRCdkI7O0FBL0NEO0U5Q29EQTtJOENuREUsd0JBQXdCLEVBQUEsRUFrRHpCOztBOUNRSDs7RXhEc0hBLDZCQUFnQztFQUNoQyxxQkFBd0I7RUFDeEIsc0JBQXlCO0VBQ3pCLHFCQUF3QjtFQUN4QiwyQkFBOEI7RUFDOUIsaUNBQW9DO0VBQ3BDLDhCQUFpQztFQUNqQyxvQkFBdUIsRUFBQTs7QXdEdkh2QjtFeERpSUEsMkJBQThCO0VBQzlCLHNCQUF5QjtFQUN6Qix1QkFBMEI7RUFDMUIsNEJBQStCO0VBQy9CLHFCQUF3QjtFQUN4Qiw4QkFBaUMsRUFBQTs7QXdEOUhqQzs7RThDREUseUJBQXlCLEVBQUE7RTVHeUVyQjtJOER4RU47O004Q0VJLHlCQUF5QixFQUFBLEVBTTVCO0U1R2dFSztJOER4RU47O004Q01JLHdCQUF3QixFQUFBLEVBRTNCOztBOUNLRDs7RThDREUsd0JBQXdCLEVBQUE7RTVHNERwQjtJOEQzRE47O004Q0VJLHdCQUF3QixFQUFBLEVBTTNCO0U1R21ESztJOEQzRE47O004Q01JLHlCQUF5QixFQUFBLEVBRTVCOztBQ3BJRDtFQUNFLG1CcEc0RjREO0VvRzNGNUQsZ0J4Q1lNO0V3Q1hOLGtCQUFrQjtFQUNsQixxQkFBcUIsRUFBQTtFN0c4S2pCO0k2R2xMTjtNQU1JLGlCcEd1RjBEO01vR3RGMUQsY0FBYztNQUNkLG9CQUFvQixFQUFBLEVBRXZCOztBQUNEO0VBQ0Usa0JwR2lGNEQ7RW9HaEY1RCxnQnhDQ007RXdDQU4sa0JBQWtCO0VBQ2xCLHNCQUFzQixFQUFBO0U3R21LbEI7STZHdktOO01BTUksZXBHNEUwRDtNb0czRTFELGtCQUFrQjtNQUNsQixzQkFBc0IsRUFBQSxFQUV6Qjs7QUFDRDtFQUNFLGlCcEdzRTREO0VvR3JFNUQsZ0J4Q1ZNO0V3Q1dOLGtCQUFrQjtFQUNsQixxQkFBcUIsRUFBQTtFN0d3SmpCO0k2RzVKTjtNQU1JLGtCcEdpRTBEO01vR2hFMUQsa0JBQWtCO01BQ2xCLHFCQUFxQixFQUFBLEVBRXhCOztBQUNEO0VBQ0Usa0JwRzJENEQ7RW9HMUQ1RCxnQnhDckJNO0V3Q3NCTixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLHlCQUF5QixFQUFBO0U3RzRJckI7STZHakpOO01BT0ksaUJwR3FEMEQ7TW9HcEQxRCxnQkFBZ0I7TUFDaEIsbUJBQW1CLEVBQUEsRUFFdEI7O0FBQ0Q7RUFDRSxrQnBHK0M0RDtFb0c5QzVELGdCeENqQ007RXdDa0NOLGdCQUFnQixFQUFBO0U3R2tJWjtJNkdySU47TUFLSSxpQnBHMkMwRCxFQUFBLEVvR3pDN0Q7O0FBQ0Q7RUFDRSxtQnBHdUM0RDtFb0d0QzVELGdCeEN6Q007RXdDMENOLGtCQUFrQixFQUFBO0U3RzBIZDtJNkc3SE47TUFLSSxrQnBHbUMwRDtNb0dsQzFELGdCQUFnQixFQUFBLEVBRW5COztBQUNEO0VBQ0Usa0JwRzhCNEQ7RW9HN0I1RCxnQnhDckRTO0V3Q3NEVCxnQkFBZ0IsRUFBQTtFN0dpSFo7STZHcEhOO01BS0ksaUJwRzBCMEQ7TW9HekIxRCxrQkFBa0I7TUFDbEIscUJBQXFCLEVBQUEsRUFFeEI7O0FBQ0Q7RUFDRSxtQnBHb0I0RDtFb0duQjVELGdCeEMvRFM7RXdDZ0VULGtCQUFrQixFQUFBO0U3R3VHZDtJNkcxR047TUFLSSxrQnBHZ0IwRDtNb0dmMUQsZ0JBQWdCLEVBQUEsRUFFbkI7O0FBQ0Q7RUFDRSxlcEdXNEQ7RW9HVjVELGdCeEN4RVM7RXdDeUVULGlCQUFpQixFQUFBO0U3RzhGYjtJNkdqR047TUFLSSxtQnBHTzBEO01vR04xRCxrQkFBa0IsRUFBQSxFQUVyQjs7QUFDRDtFQUNFLGNBQWM7RUFDZCxtQnBHQzREO0VvR0E1RCxnQnhDaEZVO0V3Q2lGVixrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLHlCQUF5QixFQUFBO0U3R2tGckI7STZHeEZOO01BUUksZXBHTDBEO01vR00xRCxrQkFBa0I7TUFDbEIscUJBQXFCLEVBQUEsRUFFeEI7O0FBQ0Q7RUFDRSxtQnBHWDREO0VvR1k1RCxnQnhDOUZTO0V3QytGVCxrQkFBa0I7RUFDbEIscUJBQXFCLEVBQUE7RTdHdUVqQjtJNkczRU47TUFNSSxlcEdoQjBEO01vR2lCMUQsaUJBQWlCO01BQ2pCLHFCQUFxQixFQUFBLEVBRXhCOztBQzVHRDs7RUFDZ0IsNEN6Q0g0QixFQUFBOztBeUNJNUM7O0VBQ2dCLHVDekNKcUIsRUFBQTs7QTBDZXJDO0VBQTBCLGdCMUNUakIsRUFBQTs7QTBDVVQ7RUFBMEIsZ0IxQ1RmLEVBQUE7O0EwQ1VYO0VBQTBCLGdCMUNSZCxFQUFBOztBMENTWjtFQUEwQixnQjFDUmxCLEVBQUE7O0EwQ1NSO0VBQTBCLGdCMUNSVixFQUFBOztBbkQ4SWhCO0U4RnJKSSxjQUFnQztFQUNoQyxnQkFBZ0IsRUFBQTs7QUFHcEI7RUFFSSxvQjNHOEwyQixFQUFBOztBMkcxTC9CO0VBQ0UsY0FBYztFQUNkLHFCQUFxQixFQUFBO0VBRnZCO0lBSUkscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQixtQkFBbUIsRUFBQTs7QUNmdkIsZ0JBQUE7QUFDQTtFQUF1QixjM0NUVCxFQUFBOztBMkNVZDtFQUF1QixjM0NUWCxFQUFBOztBMkNVWjtFQUF1QixjM0NUWCxFQUFBOztBMkNXWjtFQUF1QixjM0NSVixFQUFBOztBMkNTYjtFQUF1QixjM0NSSCxFQUFBOztBMkNTcEI7RUFBdUIsYzNDUkwsRUFBQTs7QTJDU2xCO0VBQXVCLGMzRGdFSixFQUFBOztBMkQvRG5CO0VBQXVCLGMzQ1JOLEVBQUE7O0EyQ1NqQjtFQUF1QixjM0NSSixFQUFBOztBMkNTbkI7RUFBdUIsYzNDUkgsRUFBQTs7QTJDU3BCO0VBQXVCLGMzQ1JWLEVBQUE7O0EyQ1ViLHNCQUFBO0FBQ0E7RUFBdUIseUIzQ3ZCVCxFQUFBOztBMkN3QmQ7RUFBdUIseUIzQ3ZCWCxFQUFBOztBMkN3Qlo7RUFBdUIseUIzQ3ZCWCxFQUFBOztBMkN5Qlo7RUFBdUIseUIzQ3RCVixFQUFBOztBMkN1QmI7RUFBdUIseUIzQ3RCSCxFQUFBOztBMkN1QnBCO0VBQXVCLHlCM0N0QkwsRUFBQTs7QTJDdUJsQjtFQUF1Qix5QjNEa0RKLEVBQUE7O0EyRGpEbkI7RUFBdUIseUIzQ3RCTixFQUFBOztBMkN1QmpCO0VBQXVCLHlCM0N0QkosRUFBQTs7QTJDdUJuQjtFQUF1Qix5QjNDdEJILEVBQUE7O0EyQ3VCcEI7RUFBdUIseUIzQ3RCVixFQUFBOztBNENlYjtFQUFPLFVyQzVCWSxFQUFBOztBcUM2Qm5CO0VBQU8sWXJDNUJjLEVBQUE7O0FxQzZCckI7RUFBTyxhckM1QmUsRUFBQTs7QXFDNkJ0QjtFQUFPLGFyQzVCZSxFQUFBOztBcUM2QnRCO0VBQU8sYXJDNUJlLEVBQUE7O0FxQzZCdEI7RUFBTyxhckM1QmUsRUFBQTs7QXFDNkJ0QjtFQUFPLGFyQzVCZSxFQUFBOztBcUM2QnRCO0VBQU8sYXJDNUJlLEVBQUE7O0FxQzZCdEI7RUFBTyxjckM1QmdCLEVBQUE7O0FxQzhCdkI7RUFBTyxlckN0Q1ksRUFBQTs7QXFDdUNuQjtFQUFPLGlCckN0Q2MsRUFBQTs7QXFDdUNyQjtFQUFPLGtCckN0Q2UsRUFBQTs7QXFDdUN0QjtFQUFPLGtCckN0Q2UsRUFBQTs7QXFDdUN0QjtFQUFPLGtCckN0Q2UsRUFBQTs7QXFDdUN0QjtFQUFPLGtCckN0Q2UsRUFBQTs7QXFDdUN0QjtFQUFPLGtCckN0Q2UsRUFBQTs7QXFDdUN0QjtFQUFPLGtCckN0Q2UsRUFBQTs7QXFDdUN0QjtFQUFPLG1CckN0Q2dCLEVBQUE7O0FxQ3dDdkI7RUFBTyxnQnJDaERZLEVBQUE7O0FxQ2lEbkI7RUFBTyxrQnJDaERjLEVBQUE7O0FxQ2lEckI7RUFBTyxtQnJDaERlLEVBQUE7O0FxQ2lEdEI7RUFBTyxtQnJDaERlLEVBQUE7O0FxQ2lEdEI7RUFBTyxtQnJDaERlLEVBQUE7O0FxQ2lEdEI7RUFBTyxtQnJDaERlLEVBQUE7O0FxQ2lEdEI7RUFBTyxtQnJDaERlLEVBQUE7O0FxQ2lEdEI7RUFBTyxtQnJDaERlLEVBQUE7O0FxQ2lEdEI7RUFBTyxvQnJDaERnQixFQUFBOztBcUNrRHZCO0VBQU8saUJyQzFEWSxFQUFBOztBcUMyRG5CO0VBQU8sbUJyQzFEYyxFQUFBOztBcUMyRHJCO0VBQU8sb0JyQzFEZSxFQUFBOztBcUMyRHRCO0VBQU8sb0JyQzFEZSxFQUFBOztBcUMyRHRCO0VBQU8sb0JyQzFEZSxFQUFBOztBcUMyRHRCO0VBQU8sb0JyQzFEZSxFQUFBOztBcUMyRHRCO0VBQU8sb0JyQzFEZSxFQUFBOztBcUMyRHRCO0VBQU8sb0JyQzFEZSxFQUFBOztBcUMyRHRCO0VBQU8scUJyQzFEZ0IsRUFBQTs7QXFDNER2QjtFQUFPLGNyQ3BFWSxFQUFBOztBcUNxRW5CO0VBQU8sZ0JyQ3BFYyxFQUFBOztBcUNxRXJCO0VBQU8saUJyQ3BFZSxFQUFBOztBcUNxRXRCO0VBQU8saUJyQ3BFZSxFQUFBOztBcUNxRXRCO0VBQU8saUJyQ3BFZSxFQUFBOztBcUNxRXRCO0VBQU8saUJyQ3BFZSxFQUFBOztBcUNxRXRCO0VBQU8saUJyQ3BFZSxFQUFBOztBcUNxRXRCO0VBQU8saUJyQ3BFZSxFQUFBOztBcUNxRXRCO0VBQU8sa0JyQ3BFZ0IsRUFBQTs7QXFDc0V2QjtFQUNFLGNyQy9FaUI7RXFDZ0ZqQixpQnJDaEZpQixFQUFBOztBcUNrRm5CO0VBQ0UsZ0JBQWtDO0VBQ2xDLG1CQUFxQyxFQUFBOztBQUV2QztFQUNFLGdCQUFpQztFQUNqQyxtQkFBb0MsRUFBQTs7QUFFdEM7RUFDRSxpQkFBK0I7RUFDL0Isb0JBQWtDLEVBQUE7O0FBRXBDO0VBQ0UsaUJBQWdDO0VBQ2hDLG9CQUFtQyxFQUFBOztBQUVyQztFQUNFLGlCQUErQjtFQUMvQixvQkFBa0MsRUFBQTs7QUFFcEM7RUFDRSxpQkFBaUM7RUFDakMsb0JBQW9DLEVBQUE7O0FBRXRDO0VBQ0UsaUJBQWtDO0VBQ2xDLG9CQUFxQyxFQUFBOztBQUV2QztFQUNFLGlCQUFtQztFQUNuQyxvQkFBc0MsRUFBQTs7QUFHeEM7RUFDRSxlckNwSGlCO0VxQ3FIakIsZ0JyQ3JIaUIsRUFBQTs7QXFDdUhuQjtFQUNFLGlCckN2SG1CO0VxQ3dIbkIsa0JyQ3hIbUIsRUFBQTs7QXFDMEhyQjtFQUNFLGtCckMxSG9CO0VxQzJIcEIsbUJyQzNIb0IsRUFBQTs7QXFDNkh0QjtFQUNFLGtCckM3SG9CO0VxQzhIcEIsbUJyQzlIb0IsRUFBQTs7QXFDZ0l0QjtFQUNFLGtCckNoSW9CO0VxQ2lJcEIsbUJyQ2pJb0IsRUFBQTs7QXFDbUl0QjtFQUNFLGtCckNuSW9CO0VxQ29JcEIsbUJyQ3BJb0IsRUFBQTs7QXFDc0l0QjtFQUNFLGtCckN0SW9CO0VxQ3VJcEIsbUJyQ3ZJb0IsRUFBQTs7QXFDeUl0QjtFQUNFLGtCckN6SW9CO0VxQzBJcEIsbUJyQzFJb0IsRUFBQTs7QXFDNEl0QjtFQUNFLG1CckM1SXFCO0VxQzZJckIsb0JyQzdJcUIsRUFBQTs7QXFDZ0p2QjtFQUFRLFNyQ3hKVyxFQUFBOztBcUN5Sm5CO0VBQVEsV3JDeEphLEVBQUE7O0FxQ3lKckI7RUFBUSxZckN4SmMsRUFBQTs7QXFDeUp0QjtFQUFRLFlyQ3hKYyxFQUFBOztBcUN5SnRCO0VBQVEsWXJDeEpjLEVBQUE7O0FxQ3lKdEI7RUFBUSxZckN4SmMsRUFBQTs7QXFDeUp0QjtFQUFRLFlyQ3hKYyxFQUFBOztBcUN5SnRCO0VBQVEsWXJDeEpjLEVBQUE7O0FxQ3lKdEI7RUFBTyxhckN4SmdCLEVBQUE7O0FxQzBKdkI7RUFBUSxjckNsS1csRUFBQTs7QXFDbUtuQjtFQUFRLGdCckNsS2EsRUFBQTs7QXFDbUtyQjtFQUFRLGlCckNsS2MsRUFBQTs7QXFDbUt0QjtFQUFRLGlCckNsS2MsRUFBQTs7QXFDbUt0QjtFQUFRLGlCckNsS2MsRUFBQTs7QXFDbUt0QjtFQUFRLGlCckNsS2MsRUFBQTs7QXFDbUt0QjtFQUFRLGlCckNsS2MsRUFBQTs7QXFDbUt0QjtFQUFRLGlCckNsS2MsRUFBQTs7QXFDbUt0QjtFQUFPLGtCckNsS2dCLEVBQUE7O0FxQ29LdkI7RUFBUSxlckM1S1csRUFBQTs7QXFDNktuQjtFQUFRLGlCckM1S2EsRUFBQTs7QXFDNktyQjtFQUFRLGtCckM1S2MsRUFBQTs7QXFDNkt0QjtFQUFRLGtCckM1S2MsRUFBQTs7QXFDNkt0QjtFQUFRLGtCckM1S2MsRUFBQTs7QXFDNkt0QjtFQUFRLGtCckM1S2MsRUFBQTs7QXFDNkt0QjtFQUFRLGtCckM1S2MsRUFBQTs7QXFDNkt0QjtFQUFRLGtCckM1S2MsRUFBQTs7QXFDNkt0QjtFQUFPLG1CckM1S2dCLEVBQUE7O0FxQzhLdkI7RUFBUSxnQnJDdExXLEVBQUE7O0FxQ3VMbkI7RUFBUSxrQnJDdExhLEVBQUE7O0FxQ3VMckI7RUFBUSxtQnJDdExjLEVBQUE7O0FxQ3VMdEI7RUFBUSxtQnJDdExjLEVBQUE7O0FxQ3VMdEI7RUFBUSxtQnJDdExjLEVBQUE7O0FxQ3VMdEI7RUFBUSxtQnJDdExjLEVBQUE7O0FxQ3VMdEI7RUFBUSxtQnJDdExjLEVBQUE7O0FxQ3VMdEI7RUFBUSxtQnJDdExjLEVBQUE7O0FxQ3VMdEI7RUFBTyxvQnJDdExnQixFQUFBOztBcUN3THZCO0VBQVEsYXJDaE1XLEVBQUE7O0FxQ2lNbkI7RUFBUSxlckNoTWEsRUFBQTs7QXFDaU1yQjtFQUFRLGdCckNoTWMsRUFBQTs7QXFDaU10QjtFQUFRLGdCckNoTWMsRUFBQTs7QXFDaU10QjtFQUFRLGdCckNoTWMsRUFBQTs7QXFDaU10QjtFQUFRLGdCckNoTWMsRUFBQTs7QXFDaU10QjtFQUFRLGdCckNoTWMsRUFBQTs7QXFDaU10QjtFQUFRLGdCckNoTWMsRUFBQTs7QXFDaU10QjtFQUFPLGlCckNoTWdCLEVBQUE7O0FxQ2tNdkI7RUFDRSxhckMzTWlCO0VxQzRNakIsZ0JyQzVNaUIsRUFBQTs7QXFDOE1uQjtFQUNFLGVyQzlNbUI7RXFDK01uQixrQnJDL01tQixFQUFBOztBcUNpTnJCO0VBQ0UsZ0JyQ2pOb0I7RXFDa05wQixtQnJDbE5vQixFQUFBOztBcUNvTnRCO0VBQ0UsZ0JyQ3BOb0I7RXFDcU5wQixtQnJDck5vQixFQUFBOztBcUN1TnRCO0VBQ0UsZ0JyQ3ZOb0I7RXFDd05wQixtQnJDeE5vQixFQUFBOztBcUMwTnRCO0VBQ0UsZ0JyQzFOb0I7RXFDMk5wQixtQnJDM05vQixFQUFBOztBcUM2TnRCO0VBQ0UsZ0JyQzdOb0I7RXFDOE5wQixtQnJDOU5vQixFQUFBOztBcUNnT3RCO0VBQ0UsZ0JyQ2hPb0I7RXFDaU9wQixtQnJDak9vQixFQUFBOztBcUNtT3RCO0VBQ0UsaUJyQ25PcUI7RXFDb09yQixvQnJDcE9xQixFQUFBOztBcUN1T3ZCO0VBQ0UsY3JDaFBpQjtFcUNpUGpCLGVyQ2pQaUIsRUFBQTs7QXFDbVBuQjtFQUNFLGdCckNuUG1CO0VxQ29QbkIsaUJyQ3BQbUIsRUFBQTs7QXFDc1ByQjtFQUNFLGlCckN0UG9CO0VxQ3VQcEIsa0JyQ3ZQb0IsRUFBQTs7QXFDeVB0QjtFQUNFLGlCckN6UG9CO0VxQzBQcEIsa0JyQzFQb0IsRUFBQTs7QXFDNFB0QjtFQUNFLGlCckM1UG9CO0VxQzZQcEIsa0JyQzdQb0IsRUFBQTs7QXFDK1B0QjtFQUNFLGlCckMvUG9CO0VxQ2dRcEIsa0JyQ2hRb0IsRUFBQTs7QXFDa1F0QjtFQUNFLGlCckNsUW9CO0VxQ21RcEIsa0JyQ25Rb0IsRUFBQTs7QXFDcVF0QjtFQUNFLGlCckNyUW9CO0VxQ3NRcEIsa0JyQ3RRb0IsRUFBQTs7QXFDd1F0QjtFQUNFLGtCckN4UXFCO0VxQ3lRckIsbUJyQ3pRcUIsRUFBQTs7QXNDcUJqQjtFQUFPLGdCQUFnQixFQUFBOztBQUN2QjtFQUFPLGlCQUFpQixFQUFBOztBQUN4QjtFQUFPLGtCQUFrQixFQUFBOztBbkhtSnpCO0VtSDVKQTtJQUFvQixnQkFBZ0IsRUFBQTtFQUNwQztJQUFvQixpQkFBaUIsRUFBQTtFQUNyQztJQUFvQixrQkFBa0IsRUFBQSxFQUFJOztBbkgwSjFDO0VtSDVKQTtJQUFvQixnQkFBZ0IsRUFBQTtFQUNwQztJQUFvQixpQkFBaUIsRUFBQTtFQUNyQztJQUFvQixrQkFBa0IsRUFBQSxFQUFJOztBQ0sxQztFQUFPLDBCQUEwQixFQUFBOztBQUNqQztFQUFPLHlCQUF5QixFQUFBOztBQUNoQztFQUFPLHlCQUF5QixFQUFBOztBQUNoQztFQUFPLG9CQUFvQixFQUFBOztBcEhrSjNCO0VvSDVKQTtJQUFvQiwwQkFBMEIsRUFBQTtFQUM5QztJQUFvQix5QkFBeUIsRUFBQTtFQUM3QztJQUFvQix5QkFBeUIsRUFBQTtFQUM3QztJQUFvQixvQkFBb0IsRUFBQSxFQUFJOztBcEh5SjVDO0VvSDVKQTtJQUFvQiwwQkFBMEIsRUFBQTtFQUM5QztJQUFvQix5QkFBeUIsRUFBQTtFQUM3QztJQUFvQix5QkFBeUIsRUFBQTtFQUM3QztJQUFvQixvQkFBb0IsRUFBQSxFQUFJOztBMUJxRmxEO0VBakRBLGVqRmdDOEQ7RWlGL0I5RCxjQUFjLEVBQUE7O0FBd0RSO0VBTUksbUJqRi9Cb0Q7RWlGdUNwRCxnQkFsSFk7RUF5SFosaUJBeEhZO0VBNklaLGtCQTVJYyxFQUFBOztBQWtHbEI7RUFNSSxrQmpGL0JvRCxFQUFBOztBaUZ5QnhEO0VBTUksbUJqRi9Cb0Q7RWlGdUNwRCxnQkEzR1k7RUFrSFosa0JBakhjLEVBQUE7O0FBNEZsQjtFQU1JLG1CakYvQm9EO0VpRnVDcEQsZ0JBdEdZO0VBNkdaLGtCQTVHYyxFQUFBOztBQXVGbEI7RUFNSSxtQmpGL0JvRDtFaUZ1Q3BELGdCQWpHWSxFQUFBOztBQW1GaEI7RUFNSSxlakYvQm9ELEVBQUE7O0FpRnlCeEQ7RUFNSSxtQmpGL0JvRCxFQUFBOztBVHFGeEQ7RTBGNURBO0lBTUksZWpGL0JvRCxFQUFBO0VpRnlCeEQ7SUFNSSxlakYvQm9ELEVBQUE7RWlGeUJ4RDtJQU1JLG9CakYvQm9EO0lpRjhDcEQsaUJBNUZhLEVBQUE7RUF1RWpCO0lBTUksaUJqRi9Cb0QsRUFBQTtFaUZ5QnhEO0lBTUksa0JqRi9Cb0QsRUFBQSxFaUZ1RXZEOztBMUZjRDtFMEY1REE7SUFNSSxvQmpGL0JvRDtJaUZtRXBELGdCQXpHWSxFQUFBLEVBNkdmOztBSHRKUCw2RUFBQTtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixnQkFBZ0IsRUFBQTs7QUFHbEI7RUFDRSx3QkFBd0IsRUFBQTs7QUFHMUIsc0hBQUE7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsdUJBQXVCLEVBQUE7O0FBVHpCO0VBZUUsd0JBQXdCO0VBQ3hCLDZCQUE2QjtFQUc3QixxQ0FBNkI7VUFBN0IsNkJBQTZCLEVBQUE7O0FBRy9CO0VBQ0Usa0NBQWtDO0VBR2xDLHFDQUE2QjtVQUE3Qiw2QkFBNkIsRUFBQTs7QXJFK0YvQjtFcUV4SUEsZ0JBQWdCLEVBQUE7RXZGNEtWO0lrQnBDTjtNcUV0SUUsZ0JBQWdCLEVBQUEsRUE4Q2pCOztBckU4RkQ7RXFFMUZFLGlCbEY2S21CO0VrRjVLbkIsY0FBYyxFQUFBO0VyRTZGZDtJcUUxRkUsaUJBQWlCLEVBQUE7O0F2Rm9IZjtFZ0UxS29CO0k0QkExQjtNNUJFTSxtQkFBbUIsRUFBQTtNQURyQjtRQUdJLGVBQWUsRUFBQTtNQUhuQjtRQU9JLCtDTVZLLEVBQUE7TU5HVDtRQVdJLGtETWRLLEVBQUEsRU5lTixFQUFBOztBaEU2SkQ7RWdFdkpvQjtJQUN0QjtNQU1JLFlBQVksRUFBQTtJQU5oQjtNQVdJLGFBQWEsRUFBQTtJQTlCakI7TUFrQ0ksaURNckNLO01Oc0NMLGdCQUFnQixFQUFBO0lBaEJwQjtNQW9CSSxnRE0xQ0s7TU4yQ0wsZ0JBQWdCLEVBQUE7SUFyQnBCO01BeUJJLGFBQWEsRUFBQTtJQXpCakI7TUE4QkksK0NNcERLLEVBQUEsRU5xRE4sRUFBQTs7QUFLUDtFQUNFOzs7OztNbEU2elJFO0VrRXZ6UkYsa0JBQWtCO0VBQ2xCLGlCQUFpQixFQUFBO0VBUm5CO0lBVUkseUJNekVVO0lOMEVWLGVBQWU7SUFDZixxQkFBcUI7SUFDckIsV0FBVztJQUNYLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLFFBQVE7SUFDUixVQUFVLEVBQUE7SWhFZ0dSO01nRWxITjtRQW9CTSxPQUFPLEVBQUEsRUFFVjs7QUFHSDtFQUNFLGdCQUFnQixFQUFBOztBQUdsQjtFQUVJLGNWZGUsRUFBQTs7QStEOURyQjs7Ozs7Ozs7Ozs7MkV2SDY0UjJFO0F1SHgzUjNFOzs7Ozs7Ozs7Ozs7O0VBY0UsdURBQXVELEVBQUE7O0FsSGxDdkQ7RWtIc0NBLHlCQUF5QixFQUFBOztBQUUzQjtFQUNFLHFCQUFxQjtFQUNyQixnQkFBZ0I7RUFDaEIsY0FBYyxFQUFBOztBQUVoQjtFQUNFLHFCQUFxQjtFQUNyQixnQkFBZ0I7RUFDaEIsY0FBYyxFQUFBOztBQUdoQjtFQUNFLGdCQUFnQjtFQUVoQixpQkFBaUIsRUFBQTs7QUFFbkI7RUFDRSxxQkFBcUI7RUFDckIsZ0JBQWdCO0VBQ2hCLGNBQWMsRUFBQTs7QUFFaEI7RUFDRSxrREFBa0QsRUFBQTs7QUFFcEQ7RUFDRSxnQkFBZ0I7RUFFaEIscUJBQXFCLEVBQUE7O0FBRXZCO0VBRUksWUFBWTtFQUNaLGdCQUFnQixFQUFBOztBbEhqRWxCO0VrSHFFQSxtQnhDM0ZzQixFQUFBOztBNUR5U2hCO0V5RWxPTixtQmpGaUI4RDtFaUZoQjlELGdCckI5RGdCO0VxQitEaEIsa0JBQWtCO0UyQndCbEIsZ0J4Q25Hc0IsRUFBQTtFN0UrS2hCO0lpQjRIQTtNeUU5TkosaUJqRmE0RDtNaUZaNUQsaUJBQWlCLEVBQUEsRTJCc0JwQjs7QUFHRDtFQUNFLHNCQUFzQixFQUFBOztBQUl4QjtFQUNFLDBCQUEwQjtFQUMxQiw4Qi9DL0dZO0UrQ2dIWixrQ0FBa0MsRUFBQTs7QUFHcEM7RUFDRSxtQi9DL0dvQixFQUFBOztBK0NrSHRCO0VBQ0UsZ0NBQWdDO0VBQ2hDLG1CQUFtQixFQUFBOztBQUdyQjtFQUVJLGMvQ3pIa0I7RStDMEhsQixlQUFlO0VBQ2YsaUJBQWlCLEVBQUE7RUFKckI7SUFPTSxjL0MvSFMsRUFBQTtFK0N3SGY7SUFXTSxjL0NuSVMsRUFBQTs7QStDd0hmO0VBZ0JJLGVBQWU7RUFDZixXQUFXO0VBQ1gsZ0JBQWdCLEVBQUE7RUFsQnBCO0lBcUJNLG9DQUFvQztJQUNwQyxrQkFBa0I7SUFDbEIscUJBQXFCLEVBQUE7SUF2QjNCO01BMEJRLGtCQUFrQjtNQUNsQixPQUFPO01BQ1AsU0FBUztNQUNULFNBQVM7TUFDVCxXQUFXO01BQ1gseUIvQ3ZKTztNK0N3SlAsV0FBVztNQUNYLCtEQUF1RDtNQUF2RCx1REFBdUQ7TUFDdkQsVUFBVTtNQUNWLGdCQUFnQixFQUFBO0lBbkN4QjtNQXVDUSxXQUFXLEVBQUE7RUF2Q25CO0lBNENNLGVBQWUsRUFBQTs7QUE1Q3JCO0VBb0RRLGNBaEpNLEVBQUE7O0FBNEZkO0VBd0RNLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osYy9DN0tlLEVBQUE7O0ErQ2tMckI7RUFDRSxtQi9DN0xjO0UrQzhMZCxrQkFBa0I7RUFDbEIsYy9DbkxhLEVBQUE7RStDZ0xmO0lBTUksZUFBZSxFQUFBO0VBTm5CO0lBVUksMEJBQTBCLEVBQUE7SUFWOUI7TUFjTSxjL0M5TFM7TStDK0xULHFCQUFxQixFQUFBO0VBZjNCO0lBb0JJLGtCQUFrQjtJQUNsQixvQkFBYTtJQUFiLG9CQUFhO0lBQWIsYUFBYTtJQUNiLHdCQUF1QjtRQUF2QixxQkFBdUI7WUFBdkIsdUJBQXVCO0lBQ3ZCLHlCQUFtQjtRQUFuQixzQkFBbUI7WUFBbkIsbUJBQW1CLEVBQUE7RUF2QnZCO0lBMkJJLGNBQWMsRUFBQTtFQTNCbEI7SUErQkksY0FBYyxFQUFBOztBQUtsQjtFQUNFLGMvQ2hPWSxFQUFBO0UrQytOZDtJQUlJLGNBbk1VLEVBQUE7O0FBdU1kO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CL0NyT2EsRUFBQTs7QStDd09mO0VBSUksYy9EaktpQjtFK0RtS2pCLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsV0FBVztFQUVYLHNCQUFzQjtFQUN0Qix1QkFBdUIsRUFBQTs7QUFJM0I7RUFDRSx5QkFBeUI7RUFDekIsWUFBWSxFQUFBO0VBRmQ7SUFLSSxjL0M1UFc7SStDNlBYLGVBQWU7SUFDZixpQkFBaUIsRUFBQTs7QUFJckI7RUFDRSx5Qi9DblFhO0UrQ29RYixlQUFlO0VBQ2YsZ0MvQ25Ra0IsRUFBQTtFK0NnUXBCO0lBTUksZ0JBQWdCLEVBQUE7RUFOcEI7SUFVSSxlQUFlLEVBQUE7SUFWbkI7TUFhTSxjQWxQZSxFQUFBOztBQXVQckI7RUFDRSxjQUFjO0UzQnRMZCxtQmpGUjhEO0U0R2dNOUQsaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQixTQUFTLEVBQUE7RXJIN0dIO0lxSHdHUjtNM0JuTEksZWpGVjRELEVBQUEsRTRHK00vRDtFQWxCRDs7SUFTSSxlQUFlO0lBQ2YsY0FBYyxFQUFBO0VBVmxCO0lBY0ksWUFBWTtJQUNaLGVBQWU7SUFDZixpQkFBaUIsRUFBQTs7QUFJckIsY0FBQTtBQUdBO0VBRUksZ0JBQWdCLEVBQUE7RUFGcEI7SUFJTSxnQkFBZ0IsRUFBQTtJQUp0QjtNQU1RLGdCQUFnQixFQUFBOztBdEIvUnRCO0VzQnNTQSxhQUFhLEVBQUE7O0FBR2Y7RUFDRSxVQUFVO0VBQ1YseUJBQXlCO0VBQ3pCLDZCQUE2QjtFQUU3QiwwQkFBMEI7RUFDMUIsdUJBQXVCLEVBQUE7O0FBSXpCO0VBRUksU0FBUyxFQUFBO0VBRmI7SUFJTSxXQUFXLEVBQUE7O0FBS2pCO0VBR00seUJBQXlCLEVBQUE7O0FBSC9CO0VBTU0sNkJBQTZCO0VBQzdCLHFCQUFxQjtFQUNyQixjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLDhEQUFzRDtFQUF0RCxzREFBc0Q7RUFDdEQsaUJBQWlCLEVBQUE7RUFYdkI7SUFhUSx5QkFBeUI7SUFDekIsV0FBVyxFQUFBOztBQU1uQjtFQUdNLGNBQWM7RUFDZCw0Q0FBNEM7RUFDNUMsZ0JBQWdCLEVBQUE7RUFMdEI7SUFPUSxjQUFjLEVBQUE7RUFQdEI7SUFVUSxnQkFBZ0IsRUFBQTs7QUFWeEI7RUFrQlUsY0FBYyxFQUFBO0VBbEJ4QjtJQW9CWSxjQUFjLEVBQUE7RUFwQjFCO0lBdUJZLGNBQWMsRUFBQTs7QUF2QjFCO0VBNEJRLGNBQWMsRUFBQTs7QUE1QnRCO0VBK0JRLGNBQWMsRUFBQTs7QUFNdEI7RUFLVSxjQUFjLEVBQUE7O0FBT3hCO0VBRUksbUJBQW1CLEVBQUE7O0FBS3ZCO0VBR00sMEJBQTBCLEVBQUE7O0FBS2hDO0VBSVEsY0FBYyxFQUFBO0VBSnRCO0lBTVUsY0FBYyxFQUFBOztBQVF4QjtFQUVJLFlBQVksRUFBQTs7QUFNaEI7RUFPYyxZQUFZLEVBQUE7O0FBUDFCO0VBVWMsWUFBWSxFQUFBOztBQVYxQjtFQWNZLGNBQWMsRUFBQTs7QUFkMUI7RUFpQlksY0FBYyxFQUFBOztBQVMxQjtFQUdNLDRDQUE0QztFQUM1QyxjQUFjLEVBQUE7O0FqQ3pUbEI7RWlDZ1VBLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLHFCQUFxQjtFQUNyQiw0Q0FBNEM7RUFDNUMsbUJBQW1CO0VBQ25CLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixpR0FHd0I7RUFIeEIseUZBR3dCO0VBQ3hCLHNCQUFzQjtFQUN0Qiw2QkFBNkIsRUFBQTs7QUFHL0I7RUFDRSx5QkFBeUI7RUFDekIsY0FBYztFQUNkLHdCQUF3QixFQUFBOztBQUcxQjtFQUNFLG1CQUFtQjtFQUNuQixjQUFjLEVBQUE7O0FBR2hCO0VBQ0Usc0JBQXNCLEVBQUE7O0FBR3hCO0VBS1UsZ0JBQWdCLEVBQUE7O0FBTDFCO0VBU1ksY0FBYyxFQUFBOztBQVQxQjtFQWlCVSxjQUFjLEVBQUE7O0FBMUJ4QjtFQWtDRSxpQkFBaUI7RUFDakIscUJBQXFCO0VBQ3JCLDZCQUE2QjtFQUM3QixxQkFBcUI7RUFDckIsY0FBYztFQUNkLDRDQUE0QztFQUM1QyxxQkFBcUI7RUFDckIsOERBQXNEO0VBQXRELHNEQUFzRCxFQUFBO0VBcEN4RDtJQXNDSSxXQUFXO0lBQ1gsd0JBQXdCO0lBQ3hCLHlCQUF5QixFQUFBOztBQUs3QjtFQUtVLGNBQWMsRUFBQTtFQUx4QjtJQU9ZLGNBQWMsRUFBQTs7QUEzZDFCO0VBc2VJLFVBQVUsRUFBQTs7QXZFcEdaO0V1RXdHQSxtQkFBbUIsRUFBQTtFQURyQjtJQUdJLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUE7SUFMckI7TUFPTSxnQkFBZ0IsRUFBQTtJQVB0QjtNQVVNLG1CQUFhO1VBQWIsaUJBQWE7Y0FBYixhQUFhLEVBQUE7O0FBT25CO0VBTVksZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsNENBQTRDO0VBQzVDLGdCQUFnQixFQUFBOztBQU81QjtFQUdNLGNBQWMsRUFBQTtFQUhwQjtJQUtRLGNBQWMsRUFBQTs7QUFNdEI7RUFPYyxZQUFZLEVBQUE7RUFQMUI7SUFXb0IseUJBQXlCO0lBQ3pCLDRCQUE0QjtJQUM1Qix3QkFBd0IsRUFBQTtJQWI1QztNQWVzQixjQUFjO01BQ2QsbUJBQW1CLEVBQUE7SUFoQnpDO01BbUJzQixVQUFVO01BQ1YsWUFBWSxFQUFBO01BcEJsQztRQXNCd0IsVUFBVSxFQUFBOztBQWdCbEM7RUFFSSxtQkFBbUIsRUFBQTtFQUZ2QjtJQUlNLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUE7SUFOdkI7TUFVUSxnQkFBZ0IsRUFBQTs7QUFLeEI7O0VBRUUsaUJ4Q3BxQnNCLEVBQUE7O0F3Q3VxQnhCO0VBTVksV0FBVyxFQUFBO0VBTnZCO0lBYzBCLGdCQUFnQjtJQUNoQiw0Q0FBNEM7SUFDNUMsaUJBQWlCLEVBQUE7O0FBZ0IzQztFQUtVLHdCQUF3QixFQUFBOztBQVFsQztFQUtVLHdCQUF3QixFQUFBOztBQVFsQztFQUVJLFVBQVUsRUFBQTtFQUZkO0lBUWMsaUJBQWlCO0lBQ2pCLGlCQUFpQixFQUFBO0lBVC9CO01BV2dCLGNBQWMsRUFBQTtNQVg5QjtRQWFrQixjQUFjLEVBQUE7RUFiaEM7SUFvQmtCLGNBQWMsRUFBQTtJQXBCaEM7TUFzQm9CLGNBQWMsRUFBQTs7QUFjbEM7RUFPYyxjQUFjLEVBQUE7O0FBUDVCO0VBY2dCLGNBQWMsRUFBQTs7QUFkOUI7RUFrQmtCLGNBQWMsRUFBQTs7QUFXaEM7RUFHTSxjQUFjLEVBQUE7O0FBS3BCO0VBR00sY0FBYyxFQUFBO0VBSHBCO0lBS1EsY0FBYyxFQUFBOztBQU90QjtFQUdNLHdCQUF3QjtFQUN4Qix1QkFBdUIsRUFBQTs7QUFNN0I7RUFRZ0IsaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQiw0Q0FBNEM7RUFDNUMsZ0JBQWdCLEVBQUE7RUFYaEM7SUFha0IsZ0JBQWdCLEVBQUE7O0FBV2xDO0VBR00sNENBQTRDLEVBQUE7O0FBSGxEO0VBV2dCLDRDQUE0QyxFQUFBOztBQVM1RDtFQUtVLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLHVCQUF1QjtFQUN2Qiw4REFBc0Q7RUFBdEQsc0RBQXNELEVBQUE7RUFUaEU7SUFXWSx3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLGNBQWMsRUFBQTtFQWIxQjtJQWdCWSx3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLGNBQWMsRUFBQTs7QUFTMUI7RUFNWSxnQkFBZ0IsRUFBQTs7QUFTNUI7RUFPYyxZQUFZLEVBQUE7O0FBVTFCO0VBQ0UscUJBQXFCLEVBQUE7O0FBR3ZCO0VBRUkseUJBQThCO01BQTlCLHNCQUE4QjtVQUE5Qiw4QkFBOEIsRUFBQTs7QUFJbEMsNERBQUE7QUFDQTtFQUNFLGVBQWUsRUFBQTs7QUFHakI7RUFDRSxrQkFBa0IsRUFBQTs7QUFHcEIsMERBQUE7QUFDQTtFQUNFLGNBQWM7RUFDZCxnQ0EzNUJxQyxFQUFBOztBQTg1QnZDO0VBQ0UsbUJBajZCWSxFQUFBO0VBZzZCZDs7O0lBTUksV0FBVyxFQUFBO0VBTmY7Ozs7Ozs7Ozs7Ozs7OztJQTRCSSxTQUFTO0lBQ1QsbUIvQzc5QlU7SStDODlCVixZQUFZO0lBQ1osdUJBQXVCO0lBQ3ZCLFlBQVk7SUFDWiwwQkFBMEIsRUFBQTtFQWpDOUI7OztJQTJESSw4QkFBNEI7SUFDNUIsb0NBQWtDO0lBQ2xDLG1DQUEyQjtZQUEzQiwyQkFBMkI7SUFDM0IsWUFBWTtJQUNaLGMvQzMvQlcsRUFBQTtFK0M0N0JmO0lBdUVJLGtCQUFrQixFQUFBO0lBdkV0QjtNQTBFTSxtQi9DMWdDUTtNK0MyZ0NSLFVBQVU7TUFDVixZQUFZO01BQ1osaUJBQWlCO01BQ2pCLGMvQzFnQ1M7TStDMmdDVCxnQkFBZ0I7TUFDaEIsZUFBZTtNQUNmLGlDQUFpQyxFQUFBO01BakZ2QztRQXVGUSxZQUFZO1FBQ1osa0JBQWtCO1FBQ2xCLFFBQVE7UUFDUixnQkFBZ0IsRUFBQTs7QUFPeEI7RUFDRSxtQkFBbUIsRUFBQTs7QUFRckI7RUFHTSxxQ0FBNkI7RUFBN0Isa0NBQTZCO0VBQTdCLDZCQUE2QjtFQUM3QixlQUFlO0VBQ2YsZUFBZSxFQUFBOztBQUxyQjtFQVVJLHdCQUFnQjtVQUFoQixnQkFBZ0IsRUFBQTs7QUFJcEI7RUFFSSxVQUFVO0VBQ1YsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFFBQVE7RUFDUixPQUFPO0VBQ1AsUUFBUSxFQUFBO0VBVFo7SUFhUSxxQ0FBNkI7SUFBN0Isa0NBQTZCO0lBQTdCLDZCQUE2QjtJQUM3QixlQUFlLEVBQUE7O0FBZHZCO0VBb0JJLGlCQUFpQjtFQUNqQiwyQkFBb0I7RUFBcEIsMkJBQW9CO0VBQXBCLG9CQUFvQjtFQUNwQixXQUFXO0VBVVgsWUFBWSxFQUFBO0VBaENoQjs7O0lBMkJNLFdBQVcsRUFBQTtFQTNCakI7SUFtQ00sZUFBZTtJQUNmLGlCQUFpQjtJQUNqQiw0QkFBNEIsRUFBQTtFQXJDbEM7SUF5Q00sWUFBWTtJQUNaLGVBQWU7SUFDZixZQUFZO0lBQ1osV0FBVztJQUNYLHdCQUFnQjtZQUFoQixnQkFBZ0IsRUFBQTtFQTdDdEI7SUFrRE0sWUFBWTtJQUNaLFdBQVc7SUFDWCxhQUFhO0lBQ2IsYy9DbG1DUztJK0NtbUNULG1CQUFtQixFQUFBOztBQUt6QjtFQUNFLGMvQ2huQ2E7RStDaW5DYixpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLGlCQUFpQixFQUFBOztBQUduQjtFQUNFLGtCQUFrQjtFQUNsQixvQkFBb0IsRUFBQTtFQUZ0QjtJQUtJLHlCQUF5QixFQUFBO0VBTDdCO0lBU0ksYy9DL25DVztJK0Nnb0NYLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLFFBQVE7SUFDUixTQUFTLEVBQUE7SUFqQmI7TUFvQk0scUJBQXFCLEVBQUE7SUFwQjNCO01Bd0JNLGMvQzdvQ2dCLEVBQUE7SStDcW5DdEI7TUE0Qk0seUIvQzdvQ2U7TStDOG9DZixtQ0FBMkI7Y0FBM0IsMkJBQTJCLEVBQUE7O0FBS2pDO0VBQ0UsdUJBQXVCO0VBQ3ZCLHlDQUF5QyxFQUFBOztBQUczQztFQUNFLGFBQWEsRUFBQTs7QUFHZjtFQUNFLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsV0FBVztFQUNYLFlBQVk7RUFDWixnQkFBZ0IsRUFBQTtFQUxsQjtJQVFJLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsUUFBUTtJQUNSLGdCQUFnQixFQUFBOztBQU1wQjtFQUNFLHFCQUFxQixFQUFBOztBQUd2QjtFQUNFLG1CQUFtQjtFQUNuQixlQUFlLEVBQUE7O0FBR2pCO0VBQ0UsYUFBYSxFQUFBOztBQUtmO0VBQ0Usa0JBQWtCLEVBQUE7O0FBR3BCO0VBQ0UsbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0UscUJBQXFCLEVBQUE7O0FBR3ZCO0VBQ0UsZUFBZSxFQUFBOztBQUdqQixzQkFBQTtBQUNBO0VBQ0UsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixXQUFXO0VBQ1gsWUFBWTtFQUNaLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsZUFBZTtFQUNmLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQix5QkFBeUIsRUFBQTs7QUFHM0I7RUFDRSw2QkFBNkI7RUFDN0IsY0FBYztFQUNkLHlCQUF5QjtFQUN6QixxQkFBcUI7RUFDckIseUJBQXlCO0VBQ3pCLGVBQWU7RUFDZixXQUFXO0VBQ1gsZ0JBQWdCLEVBQUE7O0FBR2xCO0VBQ0UsWUFBWSxFQUFBOztBQU1kO0VBQ0UsMEJBQWtCO0VBQWxCLHVCQUFrQjtFQUFsQixrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSxZQUFZO0VBQ1osV0FBVztFQUNYLFlBQVk7RUFDWixjL0MvdkNhO0UrQ2d3Q2IsbUIvQ3B3Q1ksRUFBQTs7QStDdXdDZDtFQUNFLDJCQUFvQjtFQUFwQiwyQkFBb0I7RUFBcEIsb0JBQW9CLEVBQUE7O0FBR3RCO0VBQ0UsbUIvQ2p3Q2E7RStDa3dDYiw2Qi9DOXdDYztFK0Mrd0NkLGdCQUFnQixFQUFBO0VBSGxCO0lBTUksNEJBQXNCO0lBQXRCLDZCQUFzQjtRQUF0QiwwQkFBc0I7WUFBdEIsc0JBQXNCLEVBQUE7RUFOMUI7SUFVSSxlQUFlLEVBQUE7RUFWbkI7SUFjSSxxQ0FBcUM7SUFDckMsYy9DdHhDVztJK0N1eENYLGVBQWU7SUFDZixnQmhEaHhDTTtJZ0RpeENOLG1CQUFtQixFQUFBO0VBbEJ2Qjs7O0lBd0JJLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsb0JBQW9CLEVBQUE7RUExQnhCO0lBOEJJLGNBQWM7SUFDZCxlQUFlO0lBQ2YsZUFBZTtJQUNmLGdDQTF3Q21DLEVBQUE7RUF5dUN2QztJQXFDSSxnQ0E5d0NtQyxFQUFBOztBQWt4Q3ZDOztFQUVFLGNBQWM7RUFDZCxlQUFlO0VBQ2YsZUFBZTtFQUNmLGdDQXZ4Q3FDLEVBQUE7O0FBMHhDdkM7O0VBRUUsZ0NBNXhDcUMsRUFBQTs7QUEreEN2QztFQUNFLGNBQWM7RUFDZCxnQ0FqeUNxQyxFQUFBOztBQW95Q3ZDOzs7RUFHRSx1QkFBd0MsRUFBQTs7QUFHMUM7RUFDRSxjQUFjO0VBQ2QscUNBQXFDO0VBQ3JDLGdDQTd5Q3FDO0VBOHlDckMsZ0JoRHAwQ1E7RWdEcTBDUixlQUFlO0VBQ2YsMEJBQWtCO0VBQWxCLHVCQUFrQjtFQUFsQixrQkFBa0I7RUFDbEIsc0JBQXNCO0VBQ3RCLHdCQUFnQjtFQUFoQixnQkFBZ0IsRUFBQTs7QUFHbEI7RUFDRSxtQi9DNzBDYTtFK0M4MENiLFNBQVM7RUFDVCxTQUFTLEVBQUE7O0FBR1g7RUFDRSxTQUFTO0VBQ1QsU0FBUztFQUNULG1CL0NyMUNhO0UrQ3MxQ2IsYy9DNzFDYTtFK0M4MUNiLHFCQUFxQixFQUFBO0VBTHZCO0lBUUksYy9DLzFDZ0IsRUFBQTtFK0N1MUNwQjtJQVlJLGMvQ3IyQ1csRUFBQTs7QStDeTJDZjtFQUNFLGdDQTUwQ3FDO0VBNjBDckMsZUFBZSxFQUFBOztBQUdqQjtFQUNFLGdCQUFnQixFQUFBOztBQUlsQjtFQUNFLGdCQUFnQixFQUFBOztBQUdsQjs7RUFFRSxtQkFBbUIsRUFBQTs7QUFHckI7RUFDRSxrQkFBa0IsRUFBQTs7QUFHcEI7RUFDRSxlQUFlLEVBQUE7O0FBR2pCOzs7OztFQU1JLG1CQUFtQixFQUFBOztBQUt2Qjs7RUFFRSxxQkFBcUIsRUFBQTtFQUZ2Qjs7SUFLSSxXQUFXLEVBQUE7O0FBS2Y7RUFDRSxpQkFBaUIsRUFBQTs7QUFNbkI7RTNCajBDRSxtQmpGUjhEO0U0RzYwQzVELGMvQy81Q2lCO0UrQ2c2Q2pCLGdCaERoNkNTLEVBQUE7RXJFdUtMO0lxSG92Q1I7TTNCL3pDSSxlakZWNEQsRUFBQSxFNEcrMEM3RDs7QUFHSDs7RUFHSSxZQUFZLEVBQUE7RUFIaEI7O0lBTU0sWUFBWSxFQUFBO0VBTmxCOztJQVVNLG1CL0N4N0NVO0krQ3k3Q1YsZUFBZTtJQUNmLDRCQUE0QjtJQUM1QixhQUFhLEVBQUE7SUFibkI7O01BZ0JRLGNBQWM7TUFDZCxtQkFBbUIsRUFBQTtJQWpCM0I7O01BcUJRLGVBQWUsRUFBQTtJQXJCdkI7O01BeUJRLFVBQVU7TUFDVixlQUFlO01BQ2YsWUFBWSxFQUFBO01BM0JwQjs7UUE4QlUsVUFBVSxFQUFBO1FBOUJwQjs7VUFpQ1ksVUFBVSxFQUFBO0lBakN0Qjs7TUF1Q1EsZ0JoRHY4Q1U7TWdEdzhDVixlQUFlLEVBQUE7O0FBT3ZCOzs7RUFHRSxXQUFXLEVBQUE7O0FBSWI7RUFDRSxhQUFhO0VBQ2IsWUFBWSxFQUFBOztBQUdkO0VBQ0UsbUJ4Q3orQ3NCLEVBQUE7O0F3QzQrQ3hCO0VBQ0UsbUIvQ3orQ2E7RStDMCtDYiwyQkFBMkI7RUFDM0Isd0JBQXdCO0VBQ3hCLFVBQVUsRUFBQTs7QUFRWjtFQUNFLG1CQXo5Q1k7RUEwOUNaLGMvQ3QvQ2E7RStDdS9DYix3QkFBZ0I7RUFBaEIsZ0JBQWdCLEVBQUE7O0FBeUNsQjs7OztFQUlFLGFBQWEsRUFBQTs7QUFJZjtFQUVJLG9CQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhLEVBQUE7RUFGakI7SUFLTSxtQnhDL2lEa0IsRUFBQTs7QTlDK0l0QjtFc0Z3NkNBLGdCQUFnQixFQUFBOztBdEZoNkNoQjtFc0ZvNkNBLGMvQ2xqRGE7RStDbWpEYixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixZQUFZO0VBQ1osZ0MvQzVqRGtCO0UrQzZqRGxCLDJDQUFtQztFQUFuQyxtQ0FBbUMsRUFBQTs7QUFHckM7O0VBRUUsWUFBWSxFQUFBOztBQUdkO0VBQ0UsZ0JBQWdCLEVBQUE7O0F0RnIrQ2hCO0VzRjArQ0EsZ0JBQWdCLEVBQUE7O0FBR2xCO0VBQ0UsZ0NBcGpEbUIsRUFBQTs7QXRGNEVqQjtFc0Y0K0NGLGNBQWMsRUFBQTs7QXRGNTdDZDtFc0ZnOENBLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osZ0MvQ3psRGtCO0UrQzBsRGxCLGlCQUFpQixFQUFBOztBQUduQjs7RUFFRSxZQUFZLEVBQUE7O0FsRm5qRFo7RWtGMGpERSxxQkFBcUI7RUFDckIsa0JBQWtCO0VBRWxCLGMvQ3BtRFc7RStDcW1EWCxtQi9DMW1EZ0I7RStDMm1EaEIsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsa0JBQWtCLEVBQUE7RUFWdEI7SUFhTSxxQkF4bERhLEVBQUE7O0FBNmxEbkI7RUFDRSxtQkFBbUI7RUFDbkIsYy9Dbm5EYTtFK0NvbkRiLGdCQUFnQjtFQUNoQixnQkFBZ0IsRUFBQTs7QUFJbEI7RUFFSSxtQi9DbG9EVztFK0Ntb0RYLFdBQVc7RUFDWCxzQkFBc0I7RUFDdEIsa0JBQWtCLEVBQUE7RUFMdEI7SUFXTSxrQkFBa0I7SUFDbEIsUUFBUTtJQUNSLFVBQVU7SUFDVixZQUFZLEVBQUE7RUFkbEI7SUFrQk0sa0JBQWtCLEVBQUE7O0FBbEJ4QjtFQXVCSSxjQUFjLEVBQUE7RUF2QmxCO0lBMEJNLDJCQUFvQjtJQUFwQiwyQkFBb0I7SUFBcEIsb0JBQW9CLEVBQUE7SUExQjFCO01BOEJRLGdCQUFnQjtNQUNoQixrQkFBa0IsRUFBQTtJQS9CMUI7TUFtQ1EsVUFBVSxFQUFBO0VBbkNsQjtJQXdDTSxxQkFBcUIsRUFBQTtJQXhDM0I7TUEyQ1Esa0JBQWtCLEVBQUE7O0FBTzFCO0VBRUksU0FBUztFQUNULFdBQVc7RUFDWCxXQUFXO0VBQ1gsWUFBWSxFQUFBOztBQUloQjtFQUNFLFVBQVUsRUFBQTs7QUFPWjtFQUNFLFVBQVUsRUFBQTs7QUFHWjtFQUNFLFlBQVksRUFBQTs7QTNFbjlDVjtFMkV1OUNGLGVBQWUsRUFBQTs7QTNFdm5EWDtFMkUybkRKLFNBQVM7RUFDVCxXQUFXO0VBQ1gsVUFBVTtFQUNWLFlBQVksRUFBQTs7QUFHZDtFQUNFLG1CL0N0dERvQixFQUFBOztBK0N5dER0QjtFQUNFLG1CL0MxdERvQjtFK0MydERwQixjL0NydERhLEVBQUE7O0ErQ3d0RGY7RUFDRSxvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLFVBQVUsRUFBQTtFQUZaO0lBS0ksZ0JBQWdCO0lBQ2hCLG1CQUFhO1FBQWIsaUJBQWE7WUFBYixhQUFhLEVBQUE7SUFOakI7TUFTTSxZQUFZLEVBQUE7TUFUbEI7UUFZUSxhQUFhO1FBQ2Isb0JBQWlCO1dBQWpCLGlCQUFpQjtRQUNqQixnQ0FBZ0M7UUFDaEMsd0NBQXdDLEVBQUE7UUFmaEQ7VUFpQlUsd0JBQXdCLEVBQUE7TUFJNUI7UUFyQk47VUEyQlEsU0FBQSxFQUFVO1VBM0JsQjs7WUF3QlUsWUFBWSxFQUFBLEVBQ2I7TUF6QlQ7O1FBZ0NRLFlBQVksRUFBQTtFQWhDcEI7SUFzQ0ksbUJBQWE7UUFBYixpQkFBYTtZQUFiLGFBQWE7SUFDYixVQUFVLEVBQUE7RUF2Q2Q7SUEyQ0ksZ0NBQWdDO0lBQ2hDLHdDQUF3QztJQUN4QywyQkFBMkI7SUFFM0IsY0FBYyxFQUFBO0VBL0NsQjtJQW9ETSxnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBRXBCLGNBQWMsRUFBQTtFQXZEcEI7SUE2RE0sOEJBQThCO0lBRzlCLHNCQUFzQixFQUFBO0VBaEU1QjtJQW9FTSxjQXh3RGEsRUFBQTs7QUE2d0RuQjtFQUNFLG1CQUFtQjtFQUNuQixlQUFlLEVBQUE7O0FBR2pCO0VBQ0Usb0JBQW9CO0VBR3BCLDJCQUFvQjtFQUFwQiwyQkFBb0I7RUFBcEIsb0JBQW9CLEVBQUE7O0FBR3RCO0VBQ0UsbUIvQzF6RGM7RStDMnpEZCx5Qi9DM3pEYztFK0M0ekRkLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZUFBZSxFQUFBOztBQUdqQjtFQUNFLHdCQUF3QixFQUFBOztBQTdMMUI7RUFpTUUsVUFBVSxFQUFBOztBQWo1Q1o7RUFxNUNFLGlCQUFpQjtFQUNqQiw4QkFBc0IsRUFBQTs7QUE5cUJ4QjtFQWtyQkUsOEJBQXNCLEVBQUE7O0FBR3hCO0VBRUksdUJBQXVCLEVBQUE7O0FBTzNCO0VBRUksZ0JBQWdCO0VBQ2hCLGVBQWUsRUFBQTs7QUFIbkI7Ozs7Ozs7Ozs7Ozs7O0VBcUJJLGVBQWU7RUFDZixhQUFhO0VBQ2IsWUFBWSxFQUFBOztBQXZCaEI7RUEyQkksZUFBZTtFQUNmLGMvQzMyRFcsRUFBQTs7QStDKzBEZjtFQWdDSSxnQy9DcDNEZ0IsRUFBQTs7QStDbzFEcEI7RUFvQ0ksYy9DMTNEVztFK0MyM0RYLHlFQUVzQjtFQUZ0QixpRUFFc0I7RUFDdEIseUIvQ2w0RFUsRUFBQTs7QVRzSFo7RXdEa3hEQSxtQkFBbUI7RUFDbkIsVUFBVSxFQUFBO0VBRlo7O0lBS0kseUJBQXlCO0lBQ3pCLDhCQUFxQjtZQUFyQixxQkFBcUI7SUFDckIsNENBQTRDLEVBQUE7RUFQaEQ7SUFXSSxVQUFVLEVBQUE7RUFYZDtJQWVJLFVBQVUsRUFBQTs7QUFLZDtFQUNFLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLGtCQUFrQixFQUFBOztBQUlwQjtFQUNFOztJQUdFLGlCQUFpQjtJQUVqQixnQkFBZ0IsRUFBQTtJQUxsQjs7TUFRSSw4QkFBcUI7VUFBckIseUJBQXFCO2NBQXJCLHFCQUFxQjtNQUNyQix5Q0FBeUMsRUFBQTtFdkJ2NkQ3QztJdUI0NkRFLFVBQVUsRUFBQSxFQUNYOztBQUlIO0VBQ0U7SUFDRSx3QkFBd0I7SUFDeEIsdUJBQXVCLEVBQUEsRUFDeEI7O0FBR0g7RUFDRTs7Ozs7O0lBTUUsd0JBQXdCLEVBQUE7RXBCdjhEMUI7SW9CMjhERSxlQUFlO0lBQ2YsaUJBQWlCLEVBQUE7RXBCLzdEbkI7SW9CbThERSxlQUFlO0lBQ2YsdUJBQWU7WUFBZixlQUFlLEVBQUE7RUFHakI7SUFDRSxzQkFBc0I7SUFDdEIsZUFBZTtJQUNmLGdDQUFnQyxFQUFBO0VBR2xDO0lBQ0UsOEJBQThCO0lBQzlCLGdDQUFnQyxFQUFBO0VBdFZwQztJQTJWTSx3QkFBd0IsRUFBQTtFQUY1QjtJQU1JLDBCQUEwQixFQUFBO0VBTjlCO0lBVUkseUJBQXlCO0lBQ3pCLHlDQUF5QyxFQUFBO0VBSTdDO0lBRUksZUFBZTtJQUNmLDhCQUE4QixFQUFBO0VqRy83RDlCO0lpRys4REYsd0JBQXdCLEVBQUE7RUFHMUI7SUFDRSx3QkFBd0IsRUFBQTtFQUcxQjtJQUNFLHFCQUFxQixFQUFBO0VBR3ZCO0lBQ0UsYUFBYSxFQUFBLEVBQ2Q7O0FwRzNtREQ7RW9HK21EQSxnQmhIMTFENEI7RWdIMjFENUIsc0M1R3Q3RDhEO0U0R3U3RDlELHdCQUFRLEVBQUE7RUFIVjtJQU1JLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsY0F4L0RlO0lBeS9EZixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLHNCQUFzQixFQUFBO0VBWDFCO0lBZUksb0JBQW9CO0lBQ3BCLHVCQUF1QjtJQUN2QixjQWpnRWU7SUFrZ0VmLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsc0JBQXNCLEVBQUE7RUFwQjFCO0lBd0JJLGVBQWU7SUFDZixjL0M3aEVXLEVBQUE7O0ErQ2lpRWYsdUJBQUE7QWQxaEVFO0VjNGhFQSxrQkFBa0I7RUFDbEIsdUJBQWU7VUFBZixlQUFlO0VBQ2YsZ0NBQXdCO1VBQXhCLHdCQUF3QixFQUFBOztBZGxqRXhCO0Vjc2pFQSxZQUFZO0VBRVosNkJBQXFCO1VBQXJCLHFCQUFxQixFQUFBOztBZHBpRXJCO0Vjd2lFQSxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLHlCQUF5QixFQUFBOztBQUczQixtRUFBQTtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGdCaERyakVnQixFQUFBOztBZ0R3akVsQjtFQVNrQixjQUFjLEVBQUE7O0FBWWhDO0VBVW9CLGNBQWMsRUFBQTs7QUFhbEM7RUFFSSxhQUFhLEVBQUE7O0FBRmpCO0VBTUksYUFBYSxFQUFBOztBQU5qQjtFQVVJLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGtCQUFrQixFQUFBO0VBYnRCO0lBZ0JNLGVBQWU7SUFDZixjQUFjO0lBQ2QsZ0JBQWdCLEVBQUE7O0FBbEJ0Qjs7RUF3QkksU0FBUyxFQUFBOztBQXhCYjtFQTRCSSxnQy9Ddm9FZ0IsRUFBQTs7QStDMm1FcEI7RUFrQ0ksNkJBQTZCO0VBQzdCLFlBQVk7RUFDWixtQi9DanBFVyxFQUFBOztBK0M2bUVmOztFQTBDTSxtQkNucEVxQyxFQUFBOztBRHltRTNDO0VBOENNLGtCQUFrQixFQUFBOztBQTlDeEI7RUFtREksaUJBQWlCO0VBQ2pCLGlCQUFpQixFQUFBO0VBcERyQjtJQXVETSxtQkFBbUIsRUFBQTs7QUF2RHpCO0VBNERJLGlCQUFpQjtFQUNqQixhQUFhO0VBQ2IsZUFBZSxFQUFBOztBQUluQjtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsa0JBQWtCLEVBQUE7O0FBT3BCO0VBQ0UsdUJBQXVCO0VBQ3ZCLCtCQUErQjtFQUMvQixpQkFBaUIsRUFBQTs7QXhEMWtFakI7RXdEa2xFQSxtQkF4cUVZO0VBeXFFWixVQUFVLEVBQUE7O0ExRHZxRVY7RTBEK3FFQSxtQkFqckVZLEVBQUE7O0FBb3JFZDtFQUNFLG1CL0NydEVZLEVBQUE7O0ErQ3d0RWQ7RUFDRSx1QkFBdUIsRUFBQTs7QUFHekI7RUFFSSxtQkFBbUIsRUFBQTs7QUFGdkI7RUFNSSxnQkFBZ0IsRUFBQTs7QUF4TmxCO0VBNk5BLGtCQUFrQjtFQUNsQixRQUFRLEVBQUE7RUFGVjtJQUtJLGVBQWUsRUFBQTs7QUFJbkI7RUFDRSxjQUFjLEVBQUE7O0FBS2hCLGlEQUFBO0FBQ0E7RUE1bkNBO0lBaW9DTSxjQUFjO0lBQ2QsVUFBVSxFQUFBO0lBSGQ7TUFNTSxrQkFBa0I7TUFDbEIsWUFBWTtNQUNaLFdBQVcsRUFBQTtJQVJqQjtNQVlNLFdBQVc7TUFDWCxxQkFBcUIsRUFBQTtFQUszQjtJQUdNLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osUUFBUSxFQUFBO0VBTGQ7SUFTTSxlQUFlO0lBQ2YsNEJBQTRCLEVBQUE7RUFWbEM7SUFjTSxZQUFZLEVBQUE7RUFkbEI7SUFrQk0sZUFBZTtJQUNmLG1CL0N6eEVjLEVBQUE7RStDc3dFcEI7SUF3QlEsY0FBYyxFQUFBO0VBeEJ0QjtJQTRCUSxlQUFlLEVBQUE7RUFqaUV6QjtJQXlpRU0sa0JBQWtCLEVBQUE7SUF6aUV4QjtNQTRpRVEsZUFBZSxFQUFBO0VBTHJCO0lBVUksV0FBVyxFQUFBO0V2Qnh6RWY7SXVCNnpFRSwyQkFBMkI7SUFDM0IsaUJBQWlCLEVBQUE7RXZCdnpFbkI7SXVCMnpFRSxhQUFhLEVBQUE7RUFyMUJqQjtJQXkxQkksMEJBQTBCO0lBQzFCLFdBQVcsRUFBQSxFQUNaOztBbEVqMEVEO0VrRXEwRUEsVUFBVSxFQUFBOztBQUdaO0VBQ0UsZUFBZSxFQUFBOztBQUdqQjtFQUNFLG1CL0M3MEVrQixFQUFBOztBK0NnMUVwQixzQkFBQTtBQUNBO0VqQ2x0RUUseUNkdEljO0VjdUlkLGNkM0hhO0VjNEhiLGNBQWM7RUFDZCxtQjNFN0M4RDtFMkU4QzlELGdCZjVIZ0I7RWU2SGhCLHVCQUF1QjtFQUN2Qix1QkFBMEI7RUFDMUIsa0JBQWtCO0VBQ2xCLGtDQUFrQztFQUNsQyxnRkFBdUU7RUFBdkUsd0VBQXVFO0VBQ3ZFLDZCQUE2QixFQUFBO0VpQ3dzRS9CO0lqQ3RzRUkseUJkbEpZO0ljbUpaLGNkdklXO0ljd0lYLG1DQUFtQyxFQUFBO0VpQ29zRXZDO0lqQ2pzRUksZ0JQdkptQjtJT3dKbkIsV0FBVyxFQUFBO0VwRnlCUDtJcUh1cUVSO01qQzdyRUksa0IzRS9ENEQ7TTJFZ0U1RCxxQkFBcUIsRUFBQSxFaUM4ckV4Qjs7QUFFRCxrQ0FBQTtBQUVBLG1DQUFBO0FBRUEsbURBQUE7QUFDQTtFQUNFO0lBRUksV0FBVztJQUNYLGVBQWUsRUFBQTtFQUhuQjtJQU1JLFdBQVc7SUFDWCxlQUFlLEVBQUE7RUFsbUVyQjtJQXVtRUksZUFBZSxFQUFBO0VBR2pCO0lBQ0UsaUJBQWlCLEVBQUE7RUF6SnJCO0lBNkpJLHVCQUF1QixFQUFBO0VBR3pCO0lBQ0UsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixlQUFlLEVBQUE7RUFHakI7SUFDRSxlQUFlLEVBQUE7RUFqK0RuQjtJQXUrRFEseUJBQXlCLEVBQUE7RUE3S2pDO0lBa0xJLFlBQVksRUFBQTtFQUdkO0lBTVksbUJBQWE7UUFBYixpQkFBYTtZQUFiLGFBQWE7SUFDYixjQUFjLEVBQUEsRUFDZjs7QUFRYixvRUFBQTtBQWlCQSxvRUFBQTtBQUNBO0VBL0RFO0lBaUVFLDJCQUEyQixFQUFBLEVBQzVCOztBQU9IO0VBck9BO0lBdU9JLFdBQVc7SUFDWCxtQkFBbUIsRUFBQTtFQWw1Q3ZCO0lBczVDSSxnQkFBZ0I7SUFDaEIsa0JBQWtCLEVBQUE7RUFHcEI7SUFDRSxlQUFlLEVBQUE7RUFyRmpCO0lBeUZFLHlCQUF5QixFQUFBO0VBalA3QjtJQXFQSSxZQUFZLEVBQUE7RUFyckVoQjtJQXlyRUksa0JBQWtCO0lBQ2xCLGtCQUFrQixFQUFBO0VBR3BCO0lBRUksaUJBQWlCLEVBQUE7RUFGckI7SUFNSSxXQUFXLEVBQUE7RUFOZjtJQVVJLFdBQVc7SUFDWCxrQkFBa0IsRUFBQTtFQVh0QjtJQWVJLFVBQVUsRUFBQTtFQWZkO0lBbUJJLFdBQVc7SUFDWCxjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLFdBQVc7SUFDWCxrQkFBa0IsRUFBQTtFQXZCdEI7SUE0QkksY0FBYyxFQUFBO0VBampEcEI7SUFxakRNLGVBQWUsRUFBQTtFQXJqRHJCO0lBeWpETSxnQkFBZ0IsRUFBQTtFQXBDcEI7SUF3Q0ksV0FBVztJQUNYLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsU0FBUztJQUNULFVBQVU7SUFDVixXQUFXLEVBQUE7RUE3Q2Y7SUFpREksWUFBWTtJQUNaLFdBQVc7SUFDWCxnQkFBZ0I7SUFDaEIsbUJBQW1CLEVBQUE7RUFuMUJ6QjtJQXUxQk0sa0JBQWtCLEVBQUE7RUEzTHhCO0lBK0xNLG1CL0MzZ0ZjLEVBQUEsRStDNGdGZjs7QXhENTVFSDtFd0RpNkVBLDhCQUE4QjtFQUM5QiwwQkFBMEI7RUFDMUIsaUJBQWlCO0VBQ2pCLFlBQVksRUFBQTs7QUFJZDtFQUdNLDJCNUd0OEUwRCxFQUFBOztBNEdtOEVoRTtFQVNNLDJCNUc1OEUwRCxFQUFBOztBNEdpOUVoRSxxREFBQTtBQUNBO0VBN0xFO0lBK0xFLGdCQUFnQixFQUFBO0VBR2xCO0lBRUksV0FBVztJQUNYLGVBQWUsRUFBQTtFQUhuQjtJQU1JLFdBQVc7SUFDWCxlQUFlLEVBQUE7RUF0NkRyQjtJQTY2RFUsV0FBVztJQUNYLGVBQWUsRUFBQTtFQXBMdkI7SUErTFksbUJBQWM7UUFBZCxrQkFBYztZQUFkLGNBQWM7SUFDZCxlQUFlO0lBQ2YsWUFBWSxFQUFBO0V4RHg5RXhCO0l3RG8rRUUsbUJBQW1CO0lBQ25CLGVBQWUsRUFBQTtFQS9tQ25CO0lBbW5DSSx5QkFBeUI7SUFDekIsV0FBVyxFQUFBO0VBRWI7SUFNWSxXQUFXLEVBQUE7RUFOdkI7SUFTWSxXQUFXLEVBQUE7RUFwc0R6QjtJQTRzREksV0FBVztJQUNYLFVBQVUsRUFBQTtFQUdaO0lBQ0UsV0FBVyxFQUFBO0VBR2I7SUFDRSxXQUFXLEVBQUE7RUFJYjtJQVFnQixXQUFXLEVBQUEsRUFDWjs7QUVobEZqQjtFQUNFLHlCakRwRGtCO0VpRHFEbEIsaUJBQWlCLEVBQUE7O0FsRzhRakI7RWtHeFFBLGdCQUFnQjtFQUNoQiw4REFBc0Q7RUFBdEQsc0RBQXNELEVBQUE7O0FBR3hEOztFQUVFLGNqRG5FYTtFaURvRWIsd0JBQXdCLEVBQUE7O0FBRzFCOzs7RUFHRSxjakRuRWEsRUFBQTs7QWlEc0VmO0VBQ0UscUJqRHZFYSxFQUFBOztBaUQwRWY7O0VBRUUseUJqRDVFYSxFQUFBOztBaUQrRWY7RUFDRSxrQkFBa0I7RUFDbEIsb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixjQUFjO0VBQ2QsbUNBQW1DO0VBQ25DLGtDQUFrQztFQUNsQyxvQkFBb0I7RUFDcEIsaUNBQWlDO0VBQ2pDLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxvQkFBb0I7RUFDcEIsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCx3REFBZ0Q7RUFBaEQsZ0RBQWdELEVBQUE7O0FDMUdsRDtFQUVRLHFCQUFxQjtFQUNyQixvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLHlCQUFtQjtNQUFuQixzQkFBbUI7VUFBbkIsbUJBQW1CO0VBQ25CLG9CQUFvQixFQUFBO0VBTDVCO0lBUVksa0JBQWtCLEVBQUE7SUFSOUI7TUFXZ0IsZUFBZSxFQUFBOztBQVgvQjtFQW9CWSxjQUFjLEVBQUE7O0FBcEIxQjtFQXlCWSxZQUFZLEVBQUE7O0FBekJ4QjtFQWdDWSxjQUFjO0VBQ2QsY0FBYztFQUNkLGNBQWMsRUFBQTs7QUFsQzFCO0VBc0NZLG1CQUFtQixFQUFBOztBQ3pDL0I7RUFFSSxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLHlCbkRLZ0I7RW1ESmhCLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQixFQUFBOztBQVJyQjtFQVlJLGNBQWM7RUFDZCxVQUFVO0VBQ1YsV0FBVyxFQUFBO0VBZGY7SUFpQk0saUJBQWlCO0lBQ2pCLGFBQWE7SUFDYixpQkFBaUIsRUFBQTs7QUFuQnZCO0VBMkJJLFlBQVk7RUFDWixlQUFlO0VBQ2YsZ0JBQWdCLEVBQUE7O0FBN0JwQjtFQWlDSSwrQkFBK0I7RUFDL0IsaUJBQWlCLEVBQUE7O0FBbENyQjtFQXVDTSxlQUFlLEVBQUE7O0FDdENyQjtFQUNJLGFBQWEsRUFBQTs7QUFHakI7RUFDSSxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLGtCQUFrQixFQUFBO0VBSHRCO0lBTVEsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixpQkFBaUIsRUFBQTtFQVJ6QjtJQVlRLGNBQWM7SUFDZCxrQkFBa0IsRUFBQTtJQWIxQjtNQWdCWSxlQUFlO01BQ2YsY0FBYyxFQUFBO0VBakIxQjtJQXNCUSxZQUFZO0lBQ1oscUNBQXFDO0lBQ3JDLGtCQUFrQixFQUFBO0lBeEIxQjtNQTJCWSxlQUFlO01BQ2YsZ0JBQWdCO01BQ2hCLGlCQUFpQjtNQUNqQixtQkFBbUIsRUFBQTtJQTlCL0I7TUFrQ1ksa0JBQWtCO01BQ2xCLGVBQWU7TUFDZixtQkFBbUIsRUFBQTtJQXBDL0I7TUF3Q1ksdUJBQXVCO01BQ3ZCLFlBQVk7TUFDWixlQUFlO01BQ2Ysa0JBQWtCO01BQ2xCLG9CQUFvQjtNQUNwQixnQkFBZ0IsRUFBQTtNQTdDNUI7UUFnRGdCLG1CQUFtQjtRQUNuQixZQUFZLEVBQUE7TUFqRDVCO1FBcURnQixjQUFjLEVBQUE7TUFyRDlCO1FBeURnQixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLE1BQU07UUFDTixRQUFRO1FBQ1IsZ0hBQXdHO1FBQXhHLHdHQUF3RztRQUN4RyxrQkFBa0IsRUFBQTtFQTlEbEM7SUFvRVEsWUFBWTtJQUNaLHVCQUF1QjtJQUN2QixZQUFZO0lBQ1osZUFBZTtJQUNmLFlBQVk7SUFDWix3QkFBZ0I7SUFBaEIsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixTQUFTO0lBQ1QsV0FBVyxFQUFBO0lBNUVuQjtNQStFWSxVQUFVLEVBQUE7RUEvRXRCO0lBb0ZRLDBCQUEwQjtJQUMxQiwwREFBeUI7SUFBekIsa0RBQXlCO0lBQ3pCLGNwRHBGTyxFQUFBO0lvREZmO01BeUZZLHFCQUFxQjtNQUNyQixjcER4RkcsRUFBQTs7QW9ENkZmO0VBL0ZBO0lBa0dZLGVBQWUsRUFBQTtFQWxHM0I7SUFzR1ksZ0JBQWdCLEVBQUE7SUF0RzVCO01BeUdnQixrQkFBa0IsRUFBQTtFQXpHbEM7SUE4R1ksa0JBQWtCO0lBQ2xCLE1BQU07SUFDTixRQUFRLEVBQUEsRUFDWDs7QUN0SFQ7RUFDRSw0QkFBNEIsRUFBQTs7QUFFOUI7O0VBRUUsa0dBQTBGO1VBQTFGLDBGQUEwRixFQUFBOztBQ0w1RixrQkFBQTtBQUNBOzs7RUFHSSxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLFdBQVcsRUFBQTs7QUFHZjs7RUFFSSxpQkFBaUI7RUFDakIsbUJBQW1CLEVBQUE7O0FBR3ZCO0VBQ0ksd0JBQXdCO0VBQ3hCLGNQaUJlO0VPaEJmLGtCQUFrQjtFQUNsQixtQk5SdUMsRUFBQTs7QU1ZM0M7RUFFUSxjQUFjO0VBQ2QsY0FBYyxFQUFBOztBQUl0Qjs7O0VBR0ksY0FBYyxFQUFBO0VBRWQ7SUFMSjs7O01BTVEsY0FBYztNQUNkLFdBQVc7TUFDWCxnQkFBZ0I7TUFDaEIsZUFBZTtNQUNmLGNBQWMsRUFBQSxFQUVyQjs7QUN6Q0Q7RUFFRSxnQkFBZ0IsRUFBQTs7QUFLbEI7RUFJRSxvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLG1CQUFlO01BQWYsZUFBZTtFQUNmLGVBQWUsRUFBQTtFQU5qQjtJQVVHLGFBQWE7SUFDYixVQUFVO0lBQ1YsbUJBQWE7UUFBYixpQkFBYTtZQUFiLGFBQWE7SUFDYixnQkFBZ0IsRUFBQTtJQWJuQjtNQWtCSSxhQUFhLEVBQUE7SUFsQmpCO01Bc0JJLGdCQUFnQjtNQUNoQixvQkFBYTtNQUFiLG9CQUFhO01BQWIsYUFBYTtNQUNiLHdCQUF1QjtVQUF2QixxQkFBdUI7Y0FBdkIsdUJBQXVCLEVBQUE7TUF4QjNCO1FBMkJLLDhCQUFzQjtnQkFBdEIsc0JBQXNCLEVBQUE7TUEzQjNCO1FBK0JLLGVBQWU7UUFDZiwyQkFBa0I7WUFBbEIsa0JBQWtCO1FBQ2xCLDBEQUF5QjtRQUF6QixrREFBeUIsRUFBQTtFQU01QjtJQXZDRjtNQXdDRyxjQUFjLEVBQUE7TUF4Q2pCO1FBMkNJLFlBQVk7UUFDWixVQUFVO1FBQ1YsbUJBQWE7WUFBYixpQkFBYTtnQkFBYixhQUFhO1FBQ2IsZUFBZTtRQUNmLGdCQUFnQixFQUFBO1FBL0NwQjtVQW1ESyxhQUFhLEVBQUEsRUFDYjtFQUtIO0lBekRGO01BMkRJLGVBQWU7TUFDZixtQkFBa0I7VUFBbEIsc0JBQWtCO2NBQWxCLGtCQUFrQixFQUFBO01BNUR0QjtRQWdFSyxjQUFjLEVBQUE7TUFoRW5CO1FBb0VLLGFBQWEsRUFBQSxFQUNiO0VBS0g7SUExRUY7TUE0RUksVUFBVTtNQUNWLG1CQUFhO1VBQWIsaUJBQWE7Y0FBYixhQUFhLEVBQUE7TUE3RWpCO1FBaUZLLGFBQWEsRUFBQSxFQUNiOztBQU1MO0VBQ0MsaUJBQWlCLEVBQUE7RUFEbEI7SUFJRSxlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLG1CQUFtQixFQUFBO0VBTnJCO0lBVUUsZUFBZSxFQUFBOztBQUtqQjtFQUlFLFVBQVU7RUFDVix5REFBd0I7RUFBeEIsaURBQXdCO0VBQ3hCLDZCQUFxQjtVQUFyQixxQkFBcUIsRUFBQTs7QUFOdkI7RUFVRSxVQUFVO0VBQ1YseURBQXdCO0VBQXhCLGlEQUF3QixFQUFBOztBQVgxQjtFQWlCRyxVQUFVO0VBQ1YsMkJBQW1CO1VBQW5CLG1CQUFtQixFQUFBOztBQWxCdEI7RUFzQkcsWUFBWSxFQUFBOztBQXRCZjtFQTBCRyxVQUFVLEVBQUE7O0FBMUJiO0VBaUNHLDZCQUFxQjtVQUFyQixxQkFBcUI7RUFDckIsVUFBVSxFQUFBOztBQWxDYjtFQXNDRyxVQUFVLEVBQUE7O0FBdENiO0VBMENHLFVBQVUsRUFBQTs7QUFNYjtFQUNDLHlEQUF3QjtFQUF4QixpREFBd0I7RUFDeEIsYUFBYSxFQUFBO0VBRmQ7SUFTRyxZQUFZO0lBQ1osaUNBQWlDLEVBQUE7RUFWcEM7SUFjRyxjQUFjO0lBQ2QsWUFBWTtJQUNaLE1BQU07SUFDTixTQUFTO0lBQ1QsZUFBZTtJQUdmLFdBQVc7SUFDWCxZQUFZO0lBRVosb0NBQW9DO0lBQ3BDLGN2RGpMWTtJdURrTFosYUFBYTtJQUNiLFVBQVUsRUFBQTtFQTNCYjtJQWlDRyxnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLE9BQU8sRUFBQTtFQW5DVjtJQXlDRyxnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLFFBQVEsRUFBQTs7QUFPWDs7OztDL0hpalZDO0ErSDVpVkQ7RUFDQyxlQUFlLEVBQUE7O0FDdk5oQjtFQUdZLG1CQUFtQixFQUFBOztBQ0MvQjtFQUNFLGlCQUFpQixFQUFBO0VBRG5CO0lBSUksY0FBYztJQUNkLGNBQWM7SUFDZCxtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLDBCQUEwQjtJQUMxQix5QkFBeUI7SUFDekIsaUJBQWlCLEVBQUE7RUFWckI7SUFnQlEsZ0JBQWdCO0lBQ2hCLFVBQVU7SUFDVixrQkFBa0IsRUFBQTtJQWxCMUI7TUFzQlksZ0NBeEJtQixFQUFBO0lBRS9CO01BMkJVLGtCQUFrQjtNQUNsQiw2QkE5QnFCO01BK0JyQixjQUFjO01BQ2QsZ0JBQWdCO01BQ2hCLHdCQUF3QjtNQUN4QixxQkFBcUI7TUFDckIsZUFBZTtNQUNmLGlCQUFpQjtNQUNqQiw2QkFBNkI7TUFDN0IsY3pEckNJO015RHNDSixlQUFlO01BQ2YsdUVBQXNDO01BQXRDLCtEQUFzQyxFQUFBO01BdENoRDtRQTRDYyw0QkFBb0I7Z0JBQXBCLG9CQUFvQixFQUFBO01BNUNsQztRQWlEWSxxQkFBcUI7UUFDckIsa0JBQWtCLEVBQUE7UUFsRDlCO1VBcURjLG1CQUFtQjtVQUNuQixlQUFlO1VBQ2YscUJBQXFCO1VBQ3JCLFdBQVc7VUFDWCxXQUFXO1VBQ1gsNEJBQW9CO2tCQUFwQixvQkFBb0I7VUFDcEIscUNBQTZCO2tCQUE3Qiw2QkFBNkI7VUFDN0IsaUZBQWlFO1VBQWpFLHlFQUFpRTtVQUFqRSxpRUFBaUU7VUFBakUsZ0lBQWlFO1VBQ2pFLGtCQUFrQjtVQUNsQixPQUFPO1VBQ1AsUUFBUTtVQUNSLFlBQVksRUFBQTtJQWhFMUI7TUFzRVUsNkJBQTZCO01BQzdCLGVBQWUsRUFBQTtFQXZFekI7SUEyRVEsK0JBQStCLEVBQUE7O0FWMkp2QztFVXBKRSxnQkFBZ0I7RUFDaEIsbUJ6RGhGYSxFQUFBOztBMERQZjtFQUNFLFlBQVk7RUFDWixXQUFXLEVBQUEiLCJmaWxlIjoia2l0Y2hlbnNpbmsuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlc1xuICogVmVyc2lvbiA2LjcuNFxuICogaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZXZlYWwsIC5yZXZlYWwudGlueSwgLnJldmVhbC5zbWFsbCwgLnJldmVhbC5sYXJnZSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG5cbi5zbGlkZS1pbi1kb3duLm11aS1lbnRlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tZG93bi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLnNsaWRlLWluLWxlZnQubXVpLWVudGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cblxuLnNsaWRlLW91dC11cC5tdWktbGVhdmUge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtdXAubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7IH1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG5cbi5mYWRlLWluLm11aS1lbnRlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmZhZGUtb3V0Lm11aS1sZWF2ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIG9wYWNpdHk6IDE7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsgfVxuXG4uZmFkZS1vdXQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXRvcC5tdWktZW50ZXIge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tdG9wLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tYm90dG9tLm11aS1lbnRlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tYm90dG9tLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWxlZnQubXVpLWVudGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWxlZnQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXgubXVpLWVudGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS14Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tdG9wLm11aS1sZWF2ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tdG9wLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tcmlnaHQubXVpLWxlYXZlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tcmlnaHQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1ib3R0b20ubXVpLWxlYXZlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1ib3R0b20ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLWxlZnQubXVpLWxlYXZlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLWxlZnQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14Lm11aS1sZWF2ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXgubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLWluLWRvd24ubXVpLWVudGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tZG93bi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtb3V0LWRvd24ubXVpLWxlYXZlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1vdXQtZG93bi5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4ubXVpLWVudGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0Lm11aS1sZWF2ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjc1dHVybik7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjc1dHVybik7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0LWNjdy5tdWktbGVhdmUge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQtY2N3Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zbG93IHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50OyB9XG5cbi5mYXN0IHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhaW1wb3J0YW50OyB9XG5cbi5lYXNlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLW91dCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluLW91dCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dCAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4ge1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4tb3V0IHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uc2hvcnQtZGVsYXkge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7IH1cblxuLmxvbmctZGVsYXkge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDcwMG1zICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDcwMG1zICFpbXBvcnRhbnQ7IH1cblxuLnNoYWtlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2hha2UtNztcbiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlLTc7IH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNoYWtlLTcge1xuICAwJSwgMTAlLCAyMCUsIDMwJSwgNDAlLCA1MCUsIDYwJSwgNzAlLCA4MCUsIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNyUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3JSk7IH1cbiAgNSUsIDE1JSwgMjUlLCAzNSUsIDQ1JSwgNTUlLCA2NSUsIDc1JSwgODUlLCA5NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03JSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03JSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHNoYWtlLTcge1xuICAwJSwgMTAlLCAyMCUsIDMwJSwgNDAlLCA1MCUsIDYwJSwgNzAlLCA4MCUsIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNyUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3JSk7IH1cbiAgNSUsIDE1JSwgMjUlLCAzNSUsIDQ1JSwgNTUlLCA2NSUsIDc1JSwgODUlLCA5NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03JSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03JSk7IH0gfVxuXG4uc3Bpbi1jdyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNwaW4tY3ctMXR1cm47XG4gIGFuaW1hdGlvbi1uYW1lOiBzcGluLWN3LTF0dXJuOyB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzcGluLWN3LTF0dXJuIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTF0dXJuKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMXR1cm4pOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHNwaW4tY3ctMXR1cm4ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMXR1cm4pO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSB9XG5cbi5zcGluLWNjdyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNwaW4tY2N3LTF0dXJuO1xuICBhbmltYXRpb24tbmFtZTogc3Bpbi1jY3ctMXR1cm47IH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4tY2N3LTF0dXJuIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMXR1cm4pO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7IH0gfVxuXG5Aa2V5ZnJhbWVzIHNwaW4tY2N3LTF0dXJuIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMXR1cm4pO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7IH0gfVxuXG4ud2lnZ2xlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogd2lnZ2xlLTdkZWc7XG4gIGFuaW1hdGlvbi1uYW1lOiB3aWdnbGUtN2RlZzsgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgd2lnZ2xlLTdkZWcge1xuICA0MCUsIDUwJSwgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDdkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDdkZWcpOyB9XG4gIDM1JSwgNDUlLCA1NSUsIDY1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtN2RlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpOyB9XG4gIDAlLCAzMCUsIDcwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSB9XG5cbkBrZXlmcmFtZXMgd2lnZ2xlLTdkZWcge1xuICA0MCUsIDUwJSwgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDdkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDdkZWcpOyB9XG4gIDM1JSwgNDUlLCA1NSUsIDY1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtN2RlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpOyB9XG4gIDAlLCAzMCUsIDcwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSB9XG5cbi5zaGFrZSxcbi5zcGluLWN3LFxuLnNwaW4tY2N3LFxuLndpZ2dsZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtczsgfVxuXG4uaW5maW5pdGUge1xuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG4uc2xvdyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmZhc3Qge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMjUwbXMgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDsgfVxuXG4uZWFzZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLW91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbi1vdXQge1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluLW91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5zaG9ydC1kZWxheSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7IH1cblxuLmxvbmctZGVsYXkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogNzAwbXMgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50OyB9XG5cbi8qISBub3JtYWxpemUuY3NzIHY4LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyB9XG5cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyB9XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgbWFyZ2luOiAwOyB9XG5cbmJ1dHRvbixcbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgfVxuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDsgfVxuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDsgfVxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTsgfVxuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZGlzcGxheTogdGFibGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDsgfVxuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyB9XG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDsgfVxuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbltkYXRhLXdoYXRpbnRlbnQ9XCJtb3VzZVwiXSAqLCBbZGF0YS13aGF0aW50ZW50PVwibW91c2VcIl0gKjpmb2N1cyxcbltkYXRhLXdoYXRpbnRlbnQ9XCJ0b3VjaFwiXSAqLFxuW2RhdGEtd2hhdGludGVudD1cInRvdWNoXCJdICo6Zm9jdXMsXG5bZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAqLFxuW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gKjpmb2N1cyxcbltkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdICosXG5bZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSAqOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG5bZHJhZ2dhYmxlPWZhbHNlXSB7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4uZm91bmRhdGlvbi1tcSB7XG4gIGZvbnQtZmFtaWx5OiBcInNtYWxsPTBlbSZtZWRpdW09NDBlbSZsYXJnZT02NGVtJnhsYXJnZT03NWVtJnh4bGFyZ2U9OTBlbVwiOyB9XG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IDEwMCU7IH1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG5pbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljOyB9XG5cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbnNlbGVjdCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi5tYXBfY2FudmFzIGltZyxcbi5tYXBfY2FudmFzIGVtYmVkLFxuLm1hcF9jYW52YXMgb2JqZWN0LFxuLm1xYS1kaXNwbGF5IGltZyxcbi5tcWEtZGlzcGxheSBlbWJlZCxcbi5tcWEtZGlzcGxheSBvYmplY3Qge1xuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5idXR0b24ge1xuICBwYWRkaW5nOiAwO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBhdXRvOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBidXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ucm93IHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAucm93OjpiZWZvcmUsIC5yb3c6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAucm93OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW4sIC5yb3cuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLnJvdyAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTAuNjI1cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtOyB9IH1cbiAgICAucm93IC5yb3cuY29sbGFwc2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnJvdy5leHBhbmRlZCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gICAgLnJvdy5leHBhbmRlZCAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC5yb3c6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5yb3cuZ3V0dGVyLXNtYWxsID4gLmNvbHVtbiwgLnJvdy5ndXR0ZXItc21hbGwgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTsgfVxuICAucm93Lmd1dHRlci1tZWRpdW0gPiAuY29sdW1uLCAucm93Lmd1dHRlci1tZWRpdW0gPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9XG5cbi5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmNvbHVtbiwgLmNvbHVtbnMsIC5jb2x1bW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLmNvbHVtbnM6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLmNvbHVtbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAuY29sdW1uczpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLmNvbHVtbi5lbmQ6bGFzdC1jaGlsZDpsYXN0LWNoaWxkLCAuZW5kLmNvbHVtbnM6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uY29sdW1uLnJvdy5yb3csIC5yb3cucm93LmNvbHVtbnMge1xuICBmbG9hdDogbm9uZTsgfVxuXG4ucm93IC5jb2x1bW4ucm93LnJvdywgLnJvdyAucm93LnJvdy5jb2x1bW5zIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi5zbWFsbC0xIHtcbiAgd2lkdGg6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC1wdWxsLTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC04LjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTAge1xuICBtYXJnaW4tbGVmdDogMCU7IH1cblxuLnNtYWxsLTIge1xuICB3aWR0aDogMTYuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC0yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMTYuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtMyB7XG4gIHdpZHRoOiAyNSU7IH1cblxuLnNtYWxsLXB1c2gtMyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMjUlOyB9XG5cbi5zbWFsbC1wdWxsLTMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC0yNSU7IH1cblxuLnNtYWxsLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtNCB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLXB1c2gtNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdWxsLTQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC0zMy4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC0zIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuXG4uc21hbGwtNSB7XG4gIHdpZHRoOiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLXB1c2gtNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNDEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdWxsLTUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC00MS42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtNiB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLnNtYWxsLXB1c2gtNiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNTAlOyB9XG5cbi5zbWFsbC1wdWxsLTYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC01MCU7IH1cblxuLnNtYWxsLW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtNyB7XG4gIHdpZHRoOiA1OC4zMzMzMyU7IH1cblxuLnNtYWxsLXB1c2gtNyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1wdWxsLTcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC01OC4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuXG4uc21hbGwtOCB7XG4gIHdpZHRoOiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLXB1c2gtOCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNjYuNjY2NjclOyB9XG5cbi5zbWFsbC1wdWxsLTgge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC02Ni42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtOSB7XG4gIHdpZHRoOiA3NSU7IH1cblxuLnNtYWxsLXB1c2gtOSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNzUlOyB9XG5cbi5zbWFsbC1wdWxsLTkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC03NSU7IH1cblxuLnNtYWxsLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtMTAge1xuICB3aWR0aDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTEwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA4My4zMzMzMyU7IH1cblxuLnNtYWxsLXB1bGwtMTAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC04My4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuXG4uc21hbGwtMTEge1xuICB3aWR0aDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTExIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA5MS42NjY2NyU7IH1cblxuLnNtYWxsLXB1bGwtMTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC05MS42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cblxuLnNtYWxsLTEyIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnNtYWxsLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLnNtYWxsLXVwLTEgPiAuY29sdW1uLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSksIC5zbWFsbC11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC0yID4gLmNvbHVtbiwgLnNtYWxsLXVwLTIgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNTAlOyB9XG4gIC5zbWFsbC11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5zbWFsbC11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC0zID4gLmNvbHVtbiwgLnNtYWxsLXVwLTMgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5zbWFsbC11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC00ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTQgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMjUlOyB9XG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC01ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTUgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMjAlOyB9XG4gIC5zbWFsbC11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5zbWFsbC11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC02ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTYgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5zbWFsbC11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC03ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTcgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTQuMjg1NzElOyB9XG4gIC5zbWFsbC11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSksIC5zbWFsbC11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC04ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTggPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTIuNSU7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLnNtYWxsLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbiwgLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLnNtYWxsLWNvbGxhcHNlIC5yb3cge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5leHBhbmRlZC5yb3cgLnNtYWxsLWNvbGxhcHNlLnJvdyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLnNtYWxsLXVuY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07IH1cblxuLnNtYWxsLWNlbnRlcmVkIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAuc21hbGwtY2VudGVyZWQsIC5zbWFsbC1jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4uc21hbGwtdW5jZW50ZXJlZCwgLnNtYWxsLXB1c2gtMCwgLnNtYWxsLXB1bGwtMCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnNtYWxsLXVuY2VudGVyZWQsIC5zbWFsbC11bmNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC5zbWFsbC1wdXNoLTAsIC5zbWFsbC1wdXNoLTA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLnNtYWxsLXB1bGwtMCwgLnNtYWxsLXB1bGwtMDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdW5jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAuc21hbGwtcHVzaC0wOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC5zbWFsbC1wdWxsLTA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5tZWRpdW0tMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0xNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubWVkaXVtLXB1c2gtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDI1JTsgfVxuICAubWVkaXVtLXB1bGwtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0yNSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdXNoLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLm1lZGl1bS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVzaC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTQxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubWVkaXVtLXB1c2gtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDUwJTsgfVxuICAubWVkaXVtLXB1bGwtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01MCU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdXNoLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLm1lZGl1bS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVzaC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTY2LjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubWVkaXVtLXB1c2gtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDc1JTsgfVxuICAubWVkaXVtLXB1bGwtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC03NSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLXB1bGwtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLm1lZGl1bS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdWxsLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTkxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubWVkaXVtLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLXVwLTEgPiAuY29sdW1uLCAubWVkaXVtLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC0yID4gLmNvbHVtbiwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC0zID4gLmNvbHVtbiwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC00ID4gLmNvbHVtbiwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC01ID4gLmNvbHVtbiwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC02ID4gLmNvbHVtbiwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC03ID4gLmNvbHVtbiwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC04ID4gLmNvbHVtbiwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMi41JTsgfVxuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbiwgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAubWVkaXVtLWNvbGxhcHNlIC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuZXhwYW5kZWQucm93IC5tZWRpdW0tY29sbGFwc2Uucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLm1lZGl1bS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLm1lZGl1bS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAubWVkaXVtLWNlbnRlcmVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAubWVkaXVtLWNlbnRlcmVkLCAubWVkaXVtLWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAubWVkaXVtLXVuY2VudGVyZWQsIC5tZWRpdW0tcHVzaC0wLCAubWVkaXVtLXB1bGwtMCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAubWVkaXVtLXVuY2VudGVyZWQsIC5tZWRpdW0tdW5jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAubWVkaXVtLXB1c2gtMCwgLm1lZGl1bS1wdXNoLTA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLm1lZGl1bS1wdWxsLTAsIC5tZWRpdW0tcHVsbC0wOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdW5jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAubWVkaXVtLXB1c2gtMDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAubWVkaXVtLXB1bGwtMDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiByaWdodDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOC4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLmxhcmdlLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTE2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubGFyZ2UtcHVzaC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMjUlOyB9XG4gIC5sYXJnZS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubGFyZ2UtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubGFyZ2UtcHVzaC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTAlOyB9XG4gIC5sYXJnZS1wdWxsLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTAlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubGFyZ2UtcHVzaC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNzUlOyB9XG4gIC5sYXJnZS1wdWxsLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNzUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1bGwtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubGFyZ2UtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1bGwtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS11cC0xID4gLmNvbHVtbiwgLmxhcmdlLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLmxhcmdlLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTIgPiAuY29sdW1uLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlOyB9XG4gICAgLmxhcmdlLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5sYXJnZS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC0zID4gLmNvbHVtbiwgLmxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNCA+IC5jb2x1bW4sIC5sYXJnZS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLmxhcmdlLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTUgPiAuY29sdW1uLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjAlOyB9XG4gICAgLmxhcmdlLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5sYXJnZS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC02ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNyA+IC5jb2x1bW4sIC5sYXJnZS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgICAubGFyZ2UtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLmxhcmdlLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSg3bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTggPiAuY29sdW1uLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTIuNSU7IH1cbiAgICAubGFyZ2UtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLmxhcmdlLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5sYXJnZS1jb2xsYXBzZSAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmV4cGFuZGVkLnJvdyAubGFyZ2UtY29sbGFwc2Uucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAubGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgLmxhcmdlLWNlbnRlcmVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAubGFyZ2UtY2VudGVyZWQsIC5sYXJnZS1jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLmxhcmdlLXVuY2VudGVyZWQsIC5sYXJnZS1wdXNoLTAsIC5sYXJnZS1wdWxsLTAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLmxhcmdlLXVuY2VudGVyZWQsIC5sYXJnZS11bmNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC5sYXJnZS1wdXNoLTAsIC5sYXJnZS1wdXNoLTA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLmxhcmdlLXB1bGwtMCwgLmxhcmdlLXB1bGwtMDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdW5jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAubGFyZ2UtcHVzaC0wOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC5sYXJnZS1wdWxsLTA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuXG4uY29sdW1uLWJsb2NrIHtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuICAuY29sdW1uLWJsb2NrID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY29sdW1uLWJsb2NrIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuODc1cmVtOyB9XG4gICAgICAuY29sdW1uLWJsb2NrID4gOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cblxuLmZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuXG4uY2xlYXJmaXg6OmJlZm9yZSwgLmNsZWFyZml4OjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxOyB9XG5cbi5jbGVhcmZpeDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbnAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cblxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbmgxLCAuaDEsXG5oMiwgLmgyLFxuaDMsIC5oMyxcbmg0LCAuaDQsXG5oNSwgLmg1LFxuaDYsIC5oNiB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgfVxuICBoMSBzbWFsbCwgLmgxIHNtYWxsLFxuICBoMiBzbWFsbCwgLmgyIHNtYWxsLFxuICBoMyBzbWFsbCwgLmgzIHNtYWxsLFxuICBoNCBzbWFsbCwgLmg0IHNtYWxsLFxuICBoNSBzbWFsbCwgLmg1IHNtYWxsLFxuICBoNiBzbWFsbCwgLmg2IHNtYWxsIHtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBjb2xvcjogI2NhY2FjYTsgfVxuXG5oMSwgLmgxIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMiwgLmgyIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDMsIC5oMyB7XG4gIGZvbnQtc2l6ZTogMS4xODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDQsIC5oNCB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNSwgLmg1IHtcbiAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNiwgLmg2IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgaDEsIC5oMSB7XG4gICAgZm9udC1zaXplOiAzcmVtOyB9XG4gIGgyLCAuaDIge1xuICAgIGZvbnQtc2l6ZTogMi41cmVtOyB9XG4gIGgzLCAuaDMge1xuICAgIGZvbnQtc2l6ZTogMS45Mzc1cmVtOyB9XG4gIGg0LCAuaDQge1xuICAgIGZvbnQtc2l6ZTogMS41NjI1cmVtOyB9XG4gIGg1LCAuaDUge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICBoNiwgLmg2IHtcbiAgICBmb250LXNpemU6IDFyZW07IH0gfVxuXG5hIHtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiAjMTc3OWJhO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzE0NjhhMDsgfVxuICBhIGltZyB7XG4gICAgYm9yZGVyOiAwOyB9XG5cbmhyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxLjI1cmVtIGF1dG87XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbnVsLFxub2wsXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxubGkge1xuICBmb250LXNpemU6IGluaGVyaXQ7IH1cblxudWwge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cbm9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cblxudWwgdWwsIG9sIHVsLCB1bCBvbCwgb2wgb2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgZGwgZHQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDEuMjVyZW0gMCAxLjE4NzVyZW07XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NhY2FjYTsgfVxuICBibG9ja3F1b3RlLCBibG9ja3F1b3RlIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgY29sb3I6ICM4YThhOGE7IH1cblxuYWJiciwgYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwYTBhMGE7XG4gIGN1cnNvcjogaGVscDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG5rYmQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMjVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM4YThhOGE7IH1cblxuLmxlYWQge1xuICBmb250LXNpemU6IDEyNSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxuLnN0YXQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgcCArIC5zdGF0IHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuXG51bC5uby1idWxsZXQsIG9sLm5vLWJ1bGxldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbmNpdGUsIC5jaXRlLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAjOGE4YThhO1xuICBmb250LXNpemU6IDAuODEyNXJlbTsgfVxuICBjaXRlOmJlZm9yZSwgLmNpdGUtYmxvY2s6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKAlCBcIjsgfVxuXG5jb2RlLCAuY29kZS1pbmxpbmUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMzEyNXJlbSAwLjA2MjVyZW07IH1cblxuLmNvZGUtYmxvY2sge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG5cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZWRpdW0tdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lZGl1bS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZWRpdW0tdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIGNvbG9yLWFkanVzdDogZWNvbm9teTtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgdGFibGUuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdGhlYWQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRib2R5LnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0ci5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB0aC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gIGFbaHJlZl49JyMnXTphZnRlciB7XG4gICAgY29udGVudDogJyc7IH1cbiAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207IH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMzsgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG4gIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvOyB9IH1cblxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBwYWRkaW5nOiAwLjg1ZW0gMWVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5idXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmJ1dHRvbi50aW55IHtcbiAgICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuYnV0dG9uLnNtYWxsIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmJ1dHRvbi5sYXJnZSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIC5idXR0b24uZXhwYW5kZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuYnV0dG9uLCAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b246aG92ZXIsIC5idXR0b246Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNDY3OWU7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5wcmltYXJ5LCAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQsIC5idXR0b24ucHJpbWFyeVtkaXNhYmxlZF0sIC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5wcmltYXJ5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5wcmltYXJ5OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTI2MTk1O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uc2Vjb25kYXJ5LCAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdLCAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLnNlY29uZGFyeTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzVlNWU1ZTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLnN1Y2Nlc3MsIC5idXR0b24uc3VjY2Vzcy5kaXNhYmxlZCwgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLnN1Y2Nlc3NbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLnN1Y2Nlc3M6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMmJiNWI7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi53YXJuaW5nLCAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQsIC5idXR0b24ud2FybmluZ1tkaXNhYmxlZF0sIC5idXR0b24ud2FybmluZy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLndhcm5pbmdbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5idXR0b24ud2FybmluZzpob3ZlciwgLmJ1dHRvbi53YXJuaW5nOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5idXR0b24uYWxlcnQsIC5idXR0b24uYWxlcnQuZGlzYWJsZWQsIC5idXR0b24uYWxlcnRbZGlzYWJsZWRdLCAuYnV0dG9uLmFsZXJ0LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5hbGVydDpob3ZlciwgLmJ1dHRvbi5hbGVydDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2E1M2IyYTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLmhvbGxvdywgLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5idXR0b24uaG9sbG93OmZvY3VzLCAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuYnV0dG9uLmhvbGxvdywgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzE3NzliYTtcbiAgICBjb2xvcjogIzE3NzliYTsgfVxuICAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzBjM2Q1ZDtcbiAgICBjb2xvcjogIzBjM2Q1ZDsgfVxuICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5LCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5LmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93LnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93LnByaW1hcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMTc3OWJhO1xuICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gIC5idXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzBjM2Q1ZDtcbiAgICBjb2xvcjogIzBjM2Q1ZDsgfVxuICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnksIC5idXR0b24uaG9sbG93LnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM3Njc2NzY7XG4gICAgY29sb3I6ICM3Njc2NzY7IH1cbiAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzNiM2IzYjtcbiAgICBjb2xvcjogIzNiM2IzYjsgfVxuICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzcy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3NbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzE1NzUzOTtcbiAgICBjb2xvcjogIzE1NzUzOTsgfVxuICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cud2FybmluZy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cud2FybmluZ1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uaG9sbG93Lndhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93Lndhcm5pbmdbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAuYnV0dG9uLmhvbGxvdy5hbGVydCwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LmFsZXJ0W2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uaG9sbG93LmFsZXJ0W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjNGIzNztcbiAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzY3MjUxYTtcbiAgICBjb2xvcjogIzY3MjUxYTsgfVxuICAuYnV0dG9uLmNsZWFyLCAuYnV0dG9uLmNsZWFyOmhvdmVyLCAuYnV0dG9uLmNsZWFyOmZvY3VzLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idXR0b24uY2xlYXIsIC5idXR0b24uY2xlYXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5jbGVhci5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gIC5idXR0b24uY2xlYXI6aG92ZXIsIC5idXR0b24uY2xlYXI6Zm9jdXMge1xuICAgIGNvbG9yOiAjMGMzZDVkOyB9XG4gIC5idXR0b24uY2xlYXIucHJpbWFyeSwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5LmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnByaW1hcnlbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXIucHJpbWFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICMxNzc5YmE7IH1cbiAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMge1xuICAgIGNvbG9yOiAjMGMzZDVkOyB9XG4gIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5LCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBjb2xvcjogIzc2NzY3NjsgfVxuICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXMge1xuICAgIGNvbG9yOiAjM2IzYjNiOyB9XG4gIC5idXR0b24uY2xlYXIuc3VjY2VzcywgLmJ1dHRvbi5jbGVhci5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3NbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIuc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXIuc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMge1xuICAgIGNvbG9yOiAjMTU3NTM5OyB9XG4gIC5idXR0b24uY2xlYXIud2FybmluZywgLmJ1dHRvbi5jbGVhci53YXJuaW5nLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLndhcm5pbmdbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIud2FybmluZ1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24uY2xlYXIud2FybmluZy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXMge1xuICAgIGNvbG9yOiAjODA1NzAwOyB9XG4gIC5idXR0b24uY2xlYXIuYWxlcnQsIC5idXR0b24uY2xlYXIuYWxlcnQuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnRbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmFsZXJ0LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmNsZWFyLmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5jbGVhci5hbGVydC5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi5jbGVhci5hbGVydFtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gIC5idXR0b24uY2xlYXIuYWxlcnQ6aG92ZXIsIC5idXR0b24uY2xlYXIuYWxlcnQ6Zm9jdXMge1xuICAgIGNvbG9yOiAjNjcyNTFhOyB9XG4gIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjI1O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMC40ZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMWVtOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93OjphZnRlciwgLmJ1dHRvbi5kcm9wZG93bi5jbGVhcjo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMxNzc5YmE7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cucHJpbWFyeTo6YWZ0ZXIsIC5idXR0b24uZHJvcGRvd24uY2xlYXIucHJpbWFyeTo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMxNzc5YmE7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuc2Vjb25kYXJ5OjphZnRlciwgLmJ1dHRvbi5kcm9wZG93bi5jbGVhci5zZWNvbmRhcnk6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzY3Njc2OyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LnN1Y2Nlc3M6OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyLnN1Y2Nlc3M6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjM2FkYjc2OyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93Lndhcm5pbmc6OmFmdGVyLCAuYnV0dG9uLmRyb3Bkb3duLmNsZWFyLndhcm5pbmc6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZmZhZTAwOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LmFsZXJ0OjphZnRlciwgLmJ1dHRvbi5kcm9wZG93bi5jbGVhci5hbGVydDo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNjYzRiMzc7IH1cbiAgLmJ1dHRvbi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgdG9wOiAtMC4xZW07XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuYS5idXR0b246aG92ZXIsIGEuYnV0dG9uOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cblt0eXBlPSd0ZXh0J10sIFt0eXBlPSdwYXNzd29yZCddLCBbdHlwZT0nZGF0ZSddLCBbdHlwZT0nZGF0ZXRpbWUnXSwgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sIFt0eXBlPSdtb250aCddLCBbdHlwZT0nd2VlayddLCBbdHlwZT0nZW1haWwnXSwgW3R5cGU9J251bWJlciddLCBbdHlwZT0nc2VhcmNoJ10sIFt0eXBlPSd0ZWwnXSwgW3R5cGU9J3RpbWUnXSwgW3R5cGU9J3VybCddLCBbdHlwZT0nY29sb3InXSxcbnRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIuNDM3NXJlbTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgxMCwgMTAsIDEwLCAwLjEpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzBhMGEwYTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIGFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgW3R5cGU9J3RleHQnXTpmb2N1cywgW3R5cGU9J3Bhc3N3b3JkJ106Zm9jdXMsIFt0eXBlPSdkYXRlJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZSddOmZvY3VzLCBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXTpmb2N1cywgW3R5cGU9J21vbnRoJ106Zm9jdXMsIFt0eXBlPSd3ZWVrJ106Zm9jdXMsIFt0eXBlPSdlbWFpbCddOmZvY3VzLCBbdHlwZT0nbnVtYmVyJ106Zm9jdXMsIFt0eXBlPSdzZWFyY2gnXTpmb2N1cywgW3R5cGU9J3RlbCddOmZvY3VzLCBbdHlwZT0ndGltZSddOmZvY3VzLCBbdHlwZT0ndXJsJ106Zm9jdXMsIFt0eXBlPSdjb2xvciddOmZvY3VzLFxuICB0ZXh0YXJlYTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAjY2FjYWNhO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG5cbnRleHRhcmVhIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIHRleHRhcmVhW3Jvd3NdIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cblxuaW5wdXQ6ZGlzYWJsZWQsIGlucHV0W3JlYWRvbmx5XSxcbnRleHRhcmVhOmRpc2FibGVkLFxudGV4dGFyZWFbcmVhZG9ubHldIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG5bdHlwZT0nc3VibWl0J10sXG5bdHlwZT0nYnV0dG9uJ10ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG46OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNjYWNhY2E7IH1cblxuW3R5cGU9J2ZpbGUnXSxcblt0eXBlPSdjaGVja2JveCddLFxuW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW46IDAgMCAxcmVtOyB9XG5cblt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG5bdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsW2Zvcl0sXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWxbZm9yXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG5sYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuW3R5cGU9J2ZpbGUnXSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbiAgY29sb3I6ICMwYTBhMGE7IH1cbiAgbGFiZWwubWlkZGxlIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgcGFkZGluZzogMC41NjI1cmVtIDA7IH1cblxuLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuaW5wdXQtZ3JvdXAgPiA6Zmlyc3QtY2hpbGQsIC5pbnB1dC1ncm91cCA+IDpmaXJzdC1jaGlsZC5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkLCAuaW5wdXQtZ3JvdXAgPiA6bGFzdC1jaGlsZC5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCwgLmlucHV0LWdyb3VwLWZpZWxkLCAuaW5wdXQtZ3JvdXAtYnV0dG9uLCAuaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsIHtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYmFja2dyb3VuZDogI2U2ZTZlNjtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi5pbnB1dC1ncm91cC1maWVsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZsZXg6IDEgMSAwcHg7XG4gIG1pbi13aWR0aDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvOyB9XG4gIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4gIC5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwge1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG5maWVsZHNldCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbmxlZ2VuZCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbi5maWVsZHNldCB7XG4gIG1hcmdpbjogMS4xMjVyZW0gMDtcbiAgcGFkZGluZzogMS4yNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTsgfVxuICAuZmllbGRzZXQgbGVnZW5kIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjE4NzVyZW07XG4gICAgcGFkZGluZzogMCAwLjE4NzVyZW07IH1cblxuc2VsZWN0IHtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogcmdiJTI4MTM4LCAxMzgsIDEzOCUyOVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcbiAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAtMXJlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gICAgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT1cIik7IH0gfVxuICBzZWxlY3Q6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggI2NhY2FjYTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuICBzZWxlY3Q6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICBzZWxlY3Q6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgc2VsZWN0W211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cbiAgc2VsZWN0Om5vdChbbXVsdGlwbGVdKSB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cblxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cykge1xuICBib3JkZXItY29sb3I6ICNmZjAwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWU1ZTU7IH1cbiAgLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cyk6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2ZmMDAwMDsgfVxuXG4uaXMtaW52YWxpZC1sYWJlbCB7XG4gIGNvbG9yOiAjZmYwMDAwOyB9XG5cbi5mb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNjYzRiMzc7IH1cbiAgLmZvcm0tZXJyb3IuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuaW5wdXRbdHlwZT0ncmFuZ2UnXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwLjQ1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjQ1cmVtO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgaW5wdXRbdHlwZT0ncmFuZ2UnXTpmb2N1cyB7XG4gICAgb3V0bGluZTogMDsgfVxuICBpbnB1dFt0eXBlPSdyYW5nZSddW2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC4yNTsgfVxuICBpbnB1dFt0eXBlPSdyYW5nZSddOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgYmFja2dyb3VuZDogI2U2ZTZlNjsgfVxuICBpbnB1dFt0eXBlPSdyYW5nZSddOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgd2lkdGg6IDEuNHJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICBtYXJnaW4tdG9wOiAtMC40NXJlbTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogIzE3NzliYTsgfVxuICBpbnB1dFt0eXBlPSdyYW5nZSddOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogI2U2ZTZlNjsgfVxuICBpbnB1dFt0eXBlPSdyYW5nZSddOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICB3aWR0aDogMS40cmVtO1xuICAgIGhlaWdodDogMS40cmVtO1xuICAgIG1hcmdpbi10b3A6IC0wLjQ1cmVtO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAjMTc3OWJhOyB9XG4gIGlucHV0W3R5cGU9J3JhbmdlJ106Oi1tcy10cmFjayB7XG4gICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci10b3A6IDAuNDVyZW0gc29saWQgI2ZlZmVmZTtcbiAgICBib3JkZXItYm90dG9tOiAwLjQ1cmVtIHNvbGlkICNmZWZlZmU7XG4gICAgYmFja2dyb3VuZDogI2U2ZTZlNjtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgaW5wdXRbdHlwZT0ncmFuZ2UnXTo6LW1zLXRodW1iIHtcbiAgICB3aWR0aDogMS40cmVtO1xuICAgIGhlaWdodDogMS40cmVtO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiAjMTc3OWJhOyB9XG4gIGlucHV0W3R5cGU9J3JhbmdlJ106Oi1tcy1maWxsLWxvd2VyIHtcbiAgICBiYWNrZ3JvdW5kOiAjY2FjYWNhOyB9XG4gIGlucHV0W3R5cGU9J3JhbmdlJ106Oi1tcy1maWxsLXVwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZTZlNmU2OyB9XG4gIG91dHB1dCB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tbGVmdDogMC41ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNHJlbTsgfVxuXG4uYWNjb3JkaW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuICAuYWNjb3JkaW9uW2Rpc2FibGVkXSAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5hY2NvcmRpb24taXRlbTpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmFjY29yZGlvbi1pdGVtOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmFjY29yZGlvbi10aXRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMxNzc5YmE7IH1cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuICAuYWNjb3JkaW9uLXRpdGxlOmhvdmVyLCAuYWNjb3JkaW9uLXRpdGxlOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgY29udGVudDogXCIrXCI7IH1cbiAgLmlzLWFjdGl2ZSA+IC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCLigJNcIjsgfVxuXG4uYWNjb3JkaW9uLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuICA6bGFzdC1jaGlsZCA+IC5hY2NvcmRpb24tY29udGVudDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgbGkge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgYSB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUuYWxpZ24tcmlnaHQgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmFjY29yZGlvbi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQ6bm90KC5oYXMtc3VibWVudS10b2dnbGUpID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgcmlnaHQ6IDFyZW07IH1cblxuLmFjY29yZGlvbi1tZW51LmFsaWduLWxlZnQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgcmlnaHQ6IDFyZW07XG4gIGxlZnQ6IGF1dG87IH1cblxuLmFjY29yZGlvbi1tZW51LmFsaWduLXJpZ2h0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsgfVxuXG4uaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5oYXMtc3VibWVudS10b2dnbGUgPiBhIHtcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4OyB9XG5cbi5zdWJtZW51LXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5zdWJtZW51LXRvZ2dsZTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbWFyZ2luOiBhdXRvOyB9XG5cbi5zdWJtZW51LXRvZ2dsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlOyB9XG5cbi5zdWJtZW51LXRvZ2dsZS10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDsgfVxuXG4uYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMi4xZW07XG4gIHBhZGRpbmc6IDAuM2VtO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICMxNzc5YmE7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5iYWRnZS5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjMTc3OWJhO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5iYWRnZS5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICM3Njc2NzY7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJhZGdlLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJhZGdlLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJhZGdlLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiAjY2M0YjM3O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG5cbi5idXR0b24tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBmbGV4LWdyb3c6IDE7IH1cbiAgLmJ1dHRvbi1ncm91cDo6YmVmb3JlLCAuYnV0dG9uLWdyb3VwOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5idXR0b24tZ3JvdXA6OmJlZm9yZSwgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmJ1dHRvbi1ncm91cCAuYnV0dG9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGZsZXg6IDAgMCBhdXRvOyB9XG4gICAgLmJ1dHRvbi1ncm91cCAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5idXR0b24tZ3JvdXAudGlueSAuYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLnNtYWxsIC5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLmxhcmdlIC5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b24ge1xuICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTI2MTk1O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzVlNWU1ZTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b246Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMmJiNWI7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24sIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2E1M2IyYTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMTc3OWJhO1xuICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b246Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzBjM2Q1ZDtcbiAgICBjb2xvcjogIzBjM2Q1ZDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cucHJpbWFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5LmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnByaW1hcnlbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ucHJpbWFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzE3NzliYTtcbiAgICBjb2xvcjogIzE3NzliYTsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5wcmltYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnByaW1hcnkgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnByaW1hcnk6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzBjM2Q1ZDtcbiAgICBjb2xvcjogIzBjM2Q1ZDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zZWNvbmRhcnkgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnksIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM3Njc2NzY7XG4gICAgY29sb3I6ICM3Njc2NzY7IH1cbiAgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc2Vjb25kYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnNlY29uZGFyeSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzNiM2IzYjtcbiAgICBjb2xvcjogIzNiM2IzYjsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuc3VjY2VzcyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc3VjY2VzcywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3NbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzNhZGI3NjtcbiAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5zdWNjZXNzIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LnN1Y2Nlc3MgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLnN1Y2Nlc3M6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzE1NzUzOTtcbiAgICBjb2xvcjogIzE1NzUzOTsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b24sIC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cud2FybmluZyAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2FybmluZywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndhcm5pbmdbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2FybmluZ1tkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24ud2FybmluZy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy53YXJuaW5nIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93Lndhcm5pbmcgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdy5hbGVydCAuYnV0dG9uW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0LCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0LmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmhvbGxvdyAuYnV0dG9uLmFsZXJ0W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5ob2xsb3cgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnQuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnRbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2M0YjM3O1xuICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93LmFsZXJ0IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuaG9sbG93IC5idXR0b24uYWxlcnQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzY3MjUxYTtcbiAgICBjb2xvcjogIzY3MjUxYTsgfVxuICAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICMxNzc5YmE7IH1cbiAgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b246Zm9jdXMge1xuICAgIGNvbG9yOiAjMGMzZDVkOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnByaW1hcnkgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ucHJpbWFyeSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICMxNzc5YmE7IH1cbiAgLmJ1dHRvbi1ncm91cC5jbGVhci5wcmltYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIucHJpbWFyeSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnByaW1hcnk6Zm9jdXMge1xuICAgIGNvbG9yOiAjMGMzZDVkOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnNlY29uZGFyeSAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5zZWNvbmRhcnkgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnksIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnkuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnlbZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc2Vjb25kYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeS5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnNlY29uZGFyeVtkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAjNzY3Njc2OyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuc2Vjb25kYXJ5IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMge1xuICAgIGNvbG9yOiAjM2IzYjNiOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLnN1Y2Nlc3MgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc3VjY2VzcywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgLmJ1dHRvbi1ncm91cC5jbGVhci5zdWNjZXNzIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuc3VjY2VzcyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLnN1Y2Nlc3M6Zm9jdXMge1xuICAgIGNvbG9yOiAjMTU3NTM5OyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyLndhcm5pbmcgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2FybmluZywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXSwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi53YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5jbGVhci53YXJuaW5nIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIud2FybmluZyAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24ud2FybmluZzpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICAgIGNvbG9yOiAjODA1NzAwOyB9XG4gIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbltkaXNhYmxlZF06aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhci5hbGVydCAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0LCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uYWxlcnQuZGlzYWJsZWQsIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydFtkaXNhYmxlZF0sIC5idXR0b24tZ3JvdXAuY2xlYXIgLmJ1dHRvbi5hbGVydC5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uYWxlcnRbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLWdyb3VwLmNsZWFyLmFsZXJ0IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuY2xlYXIuYWxlcnQgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5jbGVhciAuYnV0dG9uLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmNsZWFyIC5idXR0b24uYWxlcnQ6Zm9jdXMge1xuICAgIGNvbG9yOiAjNjcyNTFhOyB9XG4gIC5idXR0b24tZ3JvdXAubm8tZ2FwcyAuYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjA2MjVyZW07IH1cbiAgICAuYnV0dG9uLWdyb3VwLm5vLWdhcHMgLmJ1dHRvbiArIC5idXR0b24ge1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idXR0b24tZ3JvdXAuc3RhY2tlZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b24ge1xuICAgICAgZmxleDogMCAwIDEwMCU7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLmV4cGFuZGVkIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0uZXhwYW5kZWQgLmJ1dHRvbiB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbiB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgLmJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtLmV4cGFuZGVkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCAuYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5jYWxsb3V0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAuY2FsbG91dCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jYWxsb3V0LnByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkN2VjZmE7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmNhbGxvdXQuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlYWVhO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYWxsb3V0LnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlMWZhZWE7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmNhbGxvdXQud2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjNkOTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dC5hbGVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZTRlMTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dC5zbWFsbCB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTsgfVxuICAuY2FsbG91dC5sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgcGFkZGluZy1yaWdodDogM3JlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cblxuLmNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYXJkID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmNhcmQtZGl2aWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBwYWRkaW5nOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiAjZTZlNmU2OyB9XG4gIC5jYXJkLWRpdmlkZXIgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uY2FyZC1zZWN0aW9uIHtcbiAgZmxleDogMSAwIGF1dG87XG4gIHBhZGRpbmc6IDFyZW07IH1cbiAgLmNhcmQtc2VjdGlvbiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5jYXJkLWltYWdlIHtcbiAgbWluLWhlaWdodDogMXB4OyB9XG5cbi5jbG9zZS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICBjb2xvcjogIzhhOGE4YTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuY2xvc2UtYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5jbG9zZS1idXR0b246aG92ZXIsIC5jbG9zZS1idXR0b246Zm9jdXMge1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jbG9zZS1idXR0b24uc21hbGwge1xuICAgIHJpZ2h0OiAwLjY2cmVtO1xuICAgIHRvcDogMC4zM2VtO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLmNsb3NlLWJ1dHRvbiwgLmNsb3NlLWJ1dHRvbi5tZWRpdW0ge1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIHRvcDogMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi5tZW51IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm1lbnUgbGkge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm1lbnUgYSxcbiAgLm1lbnUgLmJ1dHRvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG4gIC5tZW51IGlucHV0LFxuICAubWVudSBzZWxlY3QsXG4gIC5tZW51IGEsXG4gIC5tZW51IGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWVudSBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5tZW51LCAubWVudS5ob3Jpem9udGFsIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAubWVudS52ZXJ0aWNhbCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5tZW51LnZlcnRpY2FsLmljb24tdG9wIGxpIGEgaW1nLFxuICAgIC5tZW51LnZlcnRpY2FsLmljb24tdG9wIGxpIGEgaSxcbiAgICAubWVudS52ZXJ0aWNhbC5pY29uLXRvcCBsaSBhIHN2ZywgLm1lbnUudmVydGljYWwuaWNvbi1ib3R0b20gbGkgYSBpbWcsXG4gICAgLm1lbnUudmVydGljYWwuaWNvbi1ib3R0b20gbGkgYSBpLFxuICAgIC5tZW51LnZlcnRpY2FsLmljb24tYm90dG9tIGxpIGEgc3ZnIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1lbnUuZXhwYW5kZWQgbGkge1xuICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgLm1lbnUuZXhwYW5kZWQuaWNvbi10b3AgbGkgYSBpbWcsXG4gIC5tZW51LmV4cGFuZGVkLmljb24tdG9wIGxpIGEgaSxcbiAgLm1lbnUuZXhwYW5kZWQuaWNvbi10b3AgbGkgYSBzdmcsIC5tZW51LmV4cGFuZGVkLmljb24tYm90dG9tIGxpIGEgaW1nLFxuICAubWVudS5leHBhbmRlZC5pY29uLWJvdHRvbSBsaSBhIGksXG4gIC5tZW51LmV4cGFuZGVkLmljb24tYm90dG9tIGxpIGEgc3ZnIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZW51LnNpbXBsZSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5tZW51LnNpbXBsZSBsaSArIGxpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gICAgLm1lbnUuc2ltcGxlIGEge1xuICAgICAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5tZW51Lm1lZGl1bS1ob3Jpem9udGFsIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAubWVudS5tZWRpdW0tdmVydGljYWwge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLm1lbnUubWVkaXVtLWV4cGFuZGVkIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgICAubWVudS5tZWRpdW0tc2ltcGxlIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5tZW51LmxhcmdlLWhvcml6b250YWwge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5tZW51LmxhcmdlLXZlcnRpY2FsIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5tZW51LmxhcmdlLWV4cGFuZGVkIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgICAubWVudS5sYXJnZS1zaW1wbGUgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG4gIC5tZW51Lm5lc3RlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gIC5tZW51Lmljb25zIGEge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLm1lbnUuaWNvbi10b3AgYSwgLm1lbnUuaWNvbi1yaWdodCBhLCAubWVudS5pY29uLWJvdHRvbSBhLCAubWVudS5pY29uLWxlZnQgYSB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAubWVudS5pY29uLWxlZnQgbGkgYSwgLm1lbnUubmVzdGVkLmljb24tbGVmdCBsaSBhIHtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7IH1cbiAgICAubWVudS5pY29uLWxlZnQgbGkgYSBpbWcsXG4gICAgLm1lbnUuaWNvbi1sZWZ0IGxpIGEgaSxcbiAgICAubWVudS5pY29uLWxlZnQgbGkgYSBzdmcsIC5tZW51Lm5lc3RlZC5pY29uLWxlZnQgbGkgYSBpbWcsXG4gICAgLm1lbnUubmVzdGVkLmljb24tbGVmdCBsaSBhIGksXG4gICAgLm1lbnUubmVzdGVkLmljb24tbGVmdCBsaSBhIHN2ZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07IH1cbiAgLm1lbnUuaWNvbi1yaWdodCBsaSBhLCAubWVudS5uZXN0ZWQuaWNvbi1yaWdodCBsaSBhIHtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7IH1cbiAgICAubWVudS5pY29uLXJpZ2h0IGxpIGEgaW1nLFxuICAgIC5tZW51Lmljb24tcmlnaHQgbGkgYSBpLFxuICAgIC5tZW51Lmljb24tcmlnaHQgbGkgYSBzdmcsIC5tZW51Lm5lc3RlZC5pY29uLXJpZ2h0IGxpIGEgaW1nLFxuICAgIC5tZW51Lm5lc3RlZC5pY29uLXJpZ2h0IGxpIGEgaSxcbiAgICAubWVudS5uZXN0ZWQuaWNvbi1yaWdodCBsaSBhIHN2ZyB7XG4gICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTsgfVxuICAubWVudS5pY29uLXRvcCBsaSBhLCAubWVudS5uZXN0ZWQuaWNvbi10b3AgbGkgYSB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gICAgLm1lbnUuaWNvbi10b3AgbGkgYSBpbWcsXG4gICAgLm1lbnUuaWNvbi10b3AgbGkgYSBpLFxuICAgIC5tZW51Lmljb24tdG9wIGxpIGEgc3ZnLCAubWVudS5uZXN0ZWQuaWNvbi10b3AgbGkgYSBpbWcsXG4gICAgLm1lbnUubmVzdGVkLmljb24tdG9wIGxpIGEgaSxcbiAgICAubWVudS5uZXN0ZWQuaWNvbi10b3AgbGkgYSBzdmcge1xuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lbnUuaWNvbi1ib3R0b20gbGkgYSwgLm1lbnUubmVzdGVkLmljb24tYm90dG9tIGxpIGEge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tYm90dG9tIGxpIGEgaW1nLFxuICAgIC5tZW51Lmljb24tYm90dG9tIGxpIGEgaSxcbiAgICAubWVudS5pY29uLWJvdHRvbSBsaSBhIHN2ZywgLm1lbnUubmVzdGVkLmljb24tYm90dG9tIGxpIGEgaW1nLFxuICAgIC5tZW51Lm5lc3RlZC5pY29uLWJvdHRvbSBsaSBhIGksXG4gICAgLm1lbnUubmVzdGVkLmljb24tYm90dG9tIGxpIGEgc3ZnIHtcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZW51IC5pcy1hY3RpdmUgPiBhIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmYwMDAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5tZW51IC5hY3RpdmUgPiBhIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmYwMDAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5tZW51LmFsaWduLWxlZnQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAubWVudS5hbGlnbi1yaWdodCBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLm1lbnUuYWxpZ24tcmlnaHQgbGkgLnN1Ym1lbnUgbGkge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0LnZlcnRpY2FsIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgIC5tZW51LmFsaWduLXJpZ2h0LnZlcnRpY2FsIGxpIC5zdWJtZW51IGxpIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0Lmljb24tdG9wIGxpIGEgaW1nLFxuICAubWVudS5hbGlnbi1yaWdodC5pY29uLXRvcCBsaSBhIGksXG4gIC5tZW51LmFsaWduLXJpZ2h0Lmljb24tdG9wIGxpIGEgc3ZnLCAubWVudS5hbGlnbi1yaWdodC5pY29uLWJvdHRvbSBsaSBhIGltZyxcbiAgLm1lbnUuYWxpZ24tcmlnaHQuaWNvbi1ib3R0b20gbGkgYSBpLFxuICAubWVudS5hbGlnbi1yaWdodC5pY29uLWJvdHRvbSBsaSBhIHN2ZyB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQgLm5lc3RlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5tZW51LmFsaWduLWNlbnRlciBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5tZW51LmFsaWduLWNlbnRlciBsaSAuc3VibWVudSBsaSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLm1lbnUgLm1lbnUtdGV4dCB7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cblxuLm1lbnUtY2VudGVyZWQgPiAubWVudSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5tZW51LWNlbnRlcmVkID4gLm1lbnUgbGkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAubWVudS1jZW50ZXJlZCA+IC5tZW51IGxpIC5zdWJtZW51IGxpIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4ubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1lbnUtaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1lbnUtaWNvbjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgI2ZlZmVmZSwgMCAxNHB4IDAgI2ZlZmVmZTtcbiAgICBjb250ZW50OiAnJzsgfVxuICAubWVudS1pY29uOmhvdmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogI2NhY2FjYTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICNjYWNhY2EsIDAgMTRweCAwICNjYWNhY2E7IH1cblxuLm1lbnUtaWNvbi5kYXJrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubWVudS1pY29uLmRhcms6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogIzBhMGEwYTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICMwYTBhMGEsIDAgMTRweCAwICMwYTBhMGE7XG4gICAgY29udGVudDogJyc7IH1cbiAgLm1lbnUtaWNvbi5kYXJrOmhvdmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogIzhhOGE4YTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICM4YThhOGEsIDAgMTRweCAwICM4YThhOGE7IH1cblxuLmlzLWRyaWxsZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuaXMtZHJpbGxkb3duIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuaXMtZHJpbGxkb3duLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC41czsgfVxuXG4uZHJpbGxkb3duIGEge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTsgfVxuXG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUuaXMtYWN0aXZlIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUuaXMtY2xvc2luZyB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51IGEge1xuICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5kcmlsbGRvd24gLm5lc3RlZC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmRyaWxsZG93biAuZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICBtaW4taGVpZ2h0OiAxMDAlOyB9XG5cbi5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMxNzc5YmE7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgcmlnaHQ6IDFyZW07IH1cblxuLmRyaWxsZG93bi5hbGlnbi1sZWZ0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhO1xuICByaWdodDogMXJlbTtcbiAgbGVmdDogYXV0bzsgfVxuXG4uZHJpbGxkb3duLmFsaWduLXJpZ2h0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxcmVtOyB9XG5cbi5kcmlsbGRvd24gLmpzLWRyaWxsZG93bi1iYWNrID4gYTo6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07IH1cblxuLmRyb3Bkb3duLXBhbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMzAwcHg7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5kcm9wZG93bi1wYW5lLmlzLW9wZW5pbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5kcm9wZG93bi1wYW5lLmlzLW9wZW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLmRyb3Bkb3duLXBhbmUudGlueSB7XG4gIHdpZHRoOiAxMDBweDsgfVxuXG4uZHJvcGRvd24tcGFuZS5zbWFsbCB7XG4gIHdpZHRoOiAyMDBweDsgfVxuXG4uZHJvcGRvd24tcGFuZS5sYXJnZSB7XG4gIHdpZHRoOiA0MDBweDsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgcmlnaHQ6IDVweDtcbiAgbGVmdDogYXV0bztcbiAgbWFyZ2luLXRvcDogLTNweDsgfVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmRyb3Bkb3duLm1lbnUgYSB7XG4gIG91dGxpbmU6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaSA+IGEge1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmZjAwMDA7IH1cblxuLm5vLWpzIC5kcm9wZG93bi5tZW51IHVsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZHJvcGRvd24ubWVudSAubmVzdGVkLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAxMDAlO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxMDAlOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiAxNHB4OyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDVweDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzE3NzliYTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhOyB9IH1cblxuLmRyb3Bkb3duLm1lbnUuYWxpZ24tcmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bzsgfVxuXG4uaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gIHdpZHRoOiAxMDBweDsgfVxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbC5hbGlnbi1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgYTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNXB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTZweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBub25lO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlOyB9XG4gIC5kcm9wZG93biAuaXMtZHJvcGRvd24tc3VibWVudSBhIHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzE3NzliYTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgbWFyZ2luLXRvcDogLTFweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSA+IGxpIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5yZXNwb25zaXZlLWVtYmVkLFxuLmZsZXgtdmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDc1JTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAucmVzcG9uc2l2ZS1lbWJlZCBpZnJhbWUsXG4gIC5yZXNwb25zaXZlLWVtYmVkIG9iamVjdCxcbiAgLnJlc3BvbnNpdmUtZW1iZWQgZW1iZWQsXG4gIC5yZXNwb25zaXZlLWVtYmVkIHZpZGVvLFxuICAuZmxleC12aWRlbyBpZnJhbWUsXG4gIC5mbGV4LXZpZGVvIG9iamVjdCxcbiAgLmZsZXgtdmlkZW8gZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5yZXNwb25zaXZlLWVtYmVkLndpZGVzY3JlZW4sXG4gIC5mbGV4LXZpZGVvLndpZGVzY3JlZW4ge1xuICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IH1cblxuLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJhY2tncm91bmQ6ICMxNzc5YmE7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5sYWJlbC5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjMTc3OWJhO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5sYWJlbC5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICM3Njc2NzY7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmxhYmVsLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmxhYmVsLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmxhYmVsLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiAjY2M0YjM3O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG5cbi5tZWRpYS1vYmplY3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAubWVkaWEtb2JqZWN0IGltZyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgLm1lZGlhLW9iamVjdC5zdGFjay1mb3Itc21hbGwge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9IH1cblxuLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgZmxleDogMCAxIGF1dG87IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgLnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgLnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24gaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ubWFpbi1zZWN0aW9uIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9XG5cbi5pcy1vZmYtY2FudmFzLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTE7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLCB2aXNpYmlsaXR5IDAuNXMgZWFzZTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTQsIDI1NCwgMjU0LCAwLjI1KTtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtdmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtY2xvc2FibGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLW92ZXJsYXktYWJzb2x1dGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5LmlzLW92ZXJsYXktZml4ZWQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgfVxuXG4ub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5vZmYtY2FudmFzIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjZTZlNmU2OyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub2ZmLWNhbnZhcyB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub2ZmLWNhbnZhcy5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHotaW5kZXg6IDEyOyB9XG4gIC5vZmYtY2FudmFzLmlzLWNsb3NlZCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogMTM7IH1cbiAgICAub2ZmLWNhbnZhcy5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDEwLCAxMCwgMTAsIDAuNyk7IH1cbiAgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vZmYtY2FudmFzLWFic29sdXRlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogMTI7IH1cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgICB6LWluZGV4OiAxMzsgfVxuICAgIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMTAsIDEwLCAxMCwgMC43KTsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4ucG9zaXRpb24tbGVmdCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIHdpZHRoOiAyNTBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNTBweCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1sZWZ0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tbGVmdC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tbGVmdC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1sZWZ0LmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgLTEzcHggMCAyMHB4IC0xM3B4IHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLXJpZ2h0IHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIHdpZHRoOiAyNTBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI1MHB4KTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjUwcHgpOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tcmlnaHQuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNTBweCk7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMTNweCAwIDIwcHggLTEzcHggcmdiYSgxMCwgMTAsIDEwLCAwLjI1KTsgfVxuXG4ucG9zaXRpb24tdG9wIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBoZWlnaHQ6IDI1MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MHB4KTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXRvcCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNTBweCk7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLXRvcC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tdG9wLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgLnBvc2l0aW9uLXRvcC5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTEzcHggMjBweCAtMTNweCByZ2JhKDEwLCAxMCwgMTAsIDAuMjUpOyB9XG5cbi5wb3NpdGlvbi1ib3R0b20ge1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1ib3R0b20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLWJvdHRvbS5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tYm90dG9tLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20uaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDEzcHggMjBweCAtMTNweCByZ2JhKDEwLCAxMCwgMTAsIDAuMjUpOyB9XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy10cmFuc2l0aW9uLW92ZXJsYXAsIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1sZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNTBweDsgfVxuICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtdG9wIHtcbiAgICAgIG1hcmdpbi10b3A6IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXRvcDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1ib3R0b20ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjUwcHg7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNTBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC10b3Age1xuICAgICAgbWFyZ2luLXRvcDogMjUwcHg7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNTBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLWxlZnQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLXJpZ2h0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLWxlZnQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tcmlnaHQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tdG9wLCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4ub3JiaXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLm9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm9yYml0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAub3JiaXQtc2xpZGUubm8tbW90aW9udWkuaXMtYWN0aXZlIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDsgfVxuXG4ub3JiaXQtZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5vcmJpdC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDsgfVxuXG4ub3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjUpO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4ub3JiaXQtcHJldmlvdXMsIC5vcmJpdC1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1wcmV2aW91cywgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1uZXh0IHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vcmJpdC1wcmV2aW91czpob3ZlciwgLm9yYml0LW5leHQ6aG92ZXIsIC5vcmJpdC1wcmV2aW91czphY3RpdmUsIC5vcmJpdC1uZXh0OmFjdGl2ZSwgLm9yYml0LXByZXZpb3VzOmZvY3VzLCAub3JiaXQtbmV4dDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjUpOyB9XG5cbi5vcmJpdC1wcmV2aW91cyB7XG4gIGxlZnQ6IDA7IH1cblxuLm9yYml0LW5leHQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDsgfVxuXG4ub3JiaXQtYnVsbGV0cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMC44cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9yYml0LWJ1bGxldHMge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9yYml0LWJ1bGxldHMgYnV0dG9uIHtcbiAgICB3aWR0aDogMS4ycmVtO1xuICAgIGhlaWdodDogMS4ycmVtO1xuICAgIG1hcmdpbjogMC4xcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2FjYWNhOyB9XG4gICAgLm9yYml0LWJ1bGxldHMgYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YThhOGE7IH1cbiAgICAub3JiaXQtYnVsbGV0cyBidXR0b24uaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YThhOGE7IH1cblxuLnBhZ2luYXRpb24ge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAucGFnaW5hdGlvbjo6YmVmb3JlLCAucGFnaW5hdGlvbjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5wYWdpbmF0aW9uOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnBhZ2luYXRpb24gbGkge1xuICAgIG1hcmdpbi1yaWdodDogMC4wNjI1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLnBhZ2luYXRpb24gbGk6bGFzdC1jaGlsZCwgLnBhZ2luYXRpb24gbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5wYWdpbmF0aW9uIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiAgLnBhZ2luYXRpb24gYSxcbiAgLnBhZ2luYXRpb24gYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5wYWdpbmF0aW9uIGE6aG92ZXIsXG4gICAgLnBhZ2luYXRpb24gYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7IH1cbiAgLnBhZ2luYXRpb24gLmN1cnJlbnQge1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjMTc3OWJhO1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAucGFnaW5hdGlvbiAuZGlzYWJsZWQge1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBjb2xvcjogI2NhY2FjYTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgLnBhZ2luYXRpb24gLmRpc2FibGVkOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC5wYWdpbmF0aW9uIC5lbGxpcHNpczo6YWZ0ZXIge1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBjb250ZW50OiAnXFwyMDI2JztcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuXG4ucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4ucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgY29udGVudDogXCLCq1wiOyB9XG5cbi5wYWdpbmF0aW9uLW5leHQgYTo6YWZ0ZXIsXG4ucGFnaW5hdGlvbi1uZXh0LmRpc2FibGVkOjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgY29udGVudDogXCLCu1wiOyB9XG5cbi5wcm9ncmVzcyB7XG4gIGhlaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTsgfVxuICAucHJvZ3Jlc3MucHJpbWFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7IH1cbiAgLnByb2dyZXNzLnNlY29uZGFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7IH1cbiAgLnByb2dyZXNzLnN1Y2Nlc3MgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2OyB9XG4gIC5wcm9ncmVzcy53YXJuaW5nIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDsgfVxuICAucHJvZ3Jlc3MuYWxlcnQgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3OyB9XG5cbi5wcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhOyB9XG5cbi5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDAuNXJlbTtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lOyB9XG5cbi5zbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYWNhY2E7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0OyB9XG4gIC5zbGlkZXItZmlsbC5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjsgfVxuXG4uc2xpZGVyLWhhbmRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbiAgY3Vyc29yOiBncmFiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxLjRyZW07XG4gIGhlaWdodDogMS40cmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5zbGlkZXItaGFuZGxlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5zbGlkZXItaGFuZGxlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ2NzllOyB9XG4gIC5zbGlkZXItaGFuZGxlLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICAgIGN1cnNvcjogZ3JhYmJpbmc7IH1cblxuLnNsaWRlci5kaXNhYmxlZCxcbi5zbGlkZXJbZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4uc2xpZGVyLnZlcnRpY2FsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMC41cmVtO1xuICBoZWlnaHQ6IDEyLjVyZW07XG4gIG1hcmdpbjogMCAxLjI1cmVtO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTsgfVxuICAuc2xpZGVyLnZlcnRpY2FsIC5zbGlkZXItZmlsbCB7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAwLjVyZW07XG4gICAgbWF4LWhlaWdodDogMTAwJTsgfVxuICAuc2xpZGVyLnZlcnRpY2FsIC5zbGlkZXItaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogMS40cmVtO1xuICAgIGhlaWdodDogMS40cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuXG4uc3RpY2t5LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG5cbi5zdGlja3kuaXMtc3R1Y2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5zdGlja3kuaXMtc3R1Y2suaXMtYXQtdG9wIHtcbiAgICB0b3A6IDA7IH1cbiAgLnN0aWNreS5pcy1zdHVjay5pcy1hdC1ib3R0b20ge1xuICAgIGJvdHRvbTogMDsgfVxuXG4uc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogYXV0bzsgfVxuICAuc3RpY2t5LmlzLWFuY2hvcmVkLmlzLWF0LWJvdHRvbSB7XG4gICAgYm90dG9tOiAwOyB9XG5cbmh0bWwuaXMtcmV2ZWFsLW9wZW4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBoaWRkZW47IH1cbiAgaHRtbC5pcy1yZXZlYWwtb3Blbi56Zi1oYXMtc2Nyb2xsIHtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuOyB9XG5cbi5yZXZlYWwtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDA1O1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNDUpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cblxuLnJldmVhbCB7XG4gIHotaW5kZXg6IDEwMDY7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5yZXZlYWwge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7IH0gfVxuICAucmV2ZWFsIC5jb2x1bW4sIC5yZXZlYWwgLmNvbHVtbnMge1xuICAgIG1pbi13aWR0aDogMDsgfVxuICAucmV2ZWFsID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIHdpZHRoOiA2MDBweDtcbiAgICAgIG1heC13aWR0aDogNzVyZW07IH0gfVxuICAucmV2ZWFsLmNvbGxhcHNlIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbC50aW55IHtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLnNtYWxsIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLmxhcmdlIHtcbiAgICAgIHdpZHRoOiA5MCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgLnJldmVhbC5mdWxsIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgLnJldmVhbCB7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7IH0gfVxuICAucmV2ZWFsLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG5cbi5zd2l0Y2gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIG91dGxpbmU6IDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGhlaWdodDogMnJlbTsgfVxuXG4uc3dpdGNoLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zd2l0Y2gtcGFkZGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDRyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogI2NhY2FjYTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBpbnB1dCArIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG4gICAgY29udGVudDogJyc7IH1cbiAgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMTc3OWJhOyB9XG4gICAgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgICBsZWZ0OiAyLjI1cmVtOyB9XG4gIGlucHV0OmRpc2FibGVkIH4gLnN3aXRjaC1wYWRkbGUge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41OyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBpbnB1dDpmb2N1cyB+IC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG5cbi5zd2l0Y2gtYWN0aXZlLCAuc3dpdGNoLWluYWN0aXZlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG5cbi5zd2l0Y2gtYWN0aXZlIHtcbiAgbGVmdDogOCU7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gLnN3aXRjaC1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zd2l0Y2gtaW5hY3RpdmUge1xuICByaWdodDogMTUlOyB9XG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+IC5zd2l0Y2gtaW5hY3RpdmUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnN3aXRjaC50aW55IHtcbiAgaGVpZ2h0OiAxLjVyZW07IH1cbiAgLnN3aXRjaC50aW55IC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogM3JlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBmb250LXNpemU6IDAuNjI1cmVtOyB9XG4gIC5zd2l0Y2gudGlueSAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICBsZWZ0OiAwLjI1cmVtO1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTsgfVxuICAuc3dpdGNoLnRpbnkgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgbGVmdDogMS43NXJlbTsgfVxuXG4uc3dpdGNoLnNtYWxsIHtcbiAgaGVpZ2h0OiAxLjc1cmVtOyB9XG4gIC5zd2l0Y2guc21hbGwgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiAzLjVyZW07XG4gICAgaGVpZ2h0OiAxLjc1cmVtO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAuc3dpdGNoLnNtYWxsIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgd2lkdGg6IDEuMjVyZW07XG4gICAgaGVpZ2h0OiAxLjI1cmVtOyB9XG4gIC5zd2l0Y2guc21hbGwgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgbGVmdDogMnJlbTsgfVxuXG4uc3dpdGNoLmxhcmdlIHtcbiAgaGVpZ2h0OiAyLjVyZW07IH1cbiAgLnN3aXRjaC5sYXJnZSAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6IDVyZW07XG4gICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5zd2l0Y2gubGFyZ2UgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMC4yNXJlbTtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDJyZW07IH1cbiAgLnN3aXRjaC5sYXJnZSBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBsZWZ0OiAyLjc1cmVtOyB9XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YxZjFmMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogI2YxZjFmMTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICB0aGVhZCB0cixcbiAgdGZvb3QgdHIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIHRoZWFkIHRoLFxuICB0aGVhZCB0ZCxcbiAgdGZvb3QgdGgsXG4gIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICB0aCxcbiAgdGQge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0MwQzBDMDtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07IH1cbiAgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7IH1cbiAgdGFibGUudW5zdHJpcGVkIHRib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG4gICAgdGFibGUudW5zdHJpcGVkIHRib2R5IHRyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YxZjFmMTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjk5ODc1ZW0pIHtcbiAgdGFibGUuc3RhY2sgdGhlYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdHIsXG4gIHRhYmxlLnN0YWNrIHRoLFxuICB0YWJsZS5zdGFjayB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgdGFibGUuc3RhY2sgdGJvZHkgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGJvcmRlci10b3A6IDA7IH0gfVxuXG50YWJsZS5zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cblxudGFibGUuaG92ZXIgdGhlYWQgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzOyB9XG5cbnRhYmxlLmhvdmVyIHRmb290IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYzsgfVxuXG50YWJsZS5ob3ZlciB0Ym9keSB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IH1cblxudGFibGUuaG92ZXI6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYzsgfVxuXG4udGFibGUtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteDogYXV0bzsgfVxuXG4udGFicyB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4gIC50YWJzOjpiZWZvcmUsIC50YWJzOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnRhYnM6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4udGFicy52ZXJ0aWNhbCA+IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogYXV0bzsgfVxuXG4udGFicy5zaW1wbGUgPiBsaSA+IGEge1xuICBwYWRkaW5nOiAwOyB9XG4gIC50YWJzLnNpbXBsZSA+IGxpID4gYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLnRhYnMucHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMxNzc5YmE7IH1cbiAgLnRhYnMucHJpbWFyeSA+IGxpID4gYSB7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAudGFicy5wcmltYXJ5ID4gbGkgPiBhOmhvdmVyLCAudGFicy5wcmltYXJ5ID4gbGkgPiBhOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6ICMxNjczYjE7IH1cblxuLnRhYnMtdGl0bGUge1xuICBmbG9hdDogbGVmdDsgfVxuICAudGFicy10aXRsZSA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogIzE3NzliYTsgfVxuICAgIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAudGFicy10aXRsZSA+IGEge1xuICAgICAgb3V0bGluZTogMDsgfVxuICAgIC50YWJzLXRpdGxlID4gYTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICAgICAgY29sb3I6ICMxNDY4YTA7IH1cbiAgICAudGFicy10aXRsZSA+IGE6Zm9jdXMsIC50YWJzLXRpdGxlID4gYVthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogI2U2ZTZlNjtcbiAgICAgIGNvbG9yOiAjMTc3OWJhOyB9XG5cbi50YWJzLWNvbnRlbnQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBjb2xvcjogIzBhMGEwYTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTsgfVxuXG4udGFicy1jb250ZW50LnZlcnRpY2FsIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cblxuLnRhYnMtcGFuZWwge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtOyB9XG4gIC50YWJzLXBhbmVsLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXI6IHNvbGlkIDRweCAjZmVmZWZlO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgxMCwgMTAsIDEwLCAwLjIpO1xuICBsaW5lLWhlaWdodDogMDsgfVxuXG5hLnRodW1ibmFpbCB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7IH1cbiAgYS50aHVtYm5haWw6aG92ZXIsIGEudGh1bWJuYWlsOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIDAgNnB4IDFweCByZ2JhKDIzLCAxMjEsIDE4NiwgMC41KTsgfVxuICBhLnRodW1ibmFpbCBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4udGl0bGUtYmFyIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC50aXRsZS1iYXIgLm1lbnUtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOyB9XG5cbi50aXRsZS1iYXItbGVmdCxcbi50aXRsZS1iYXItcmlnaHQge1xuICBmbGV4OiAxIDEgMHB4OyB9XG5cbi50aXRsZS1iYXItcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGl0bGUtYmFyLXRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uaGFzLXRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICM4YThhOGE7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjdXJzb3I6IGhlbHA7IH1cblxuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgMC42NDk1cmVtKTtcbiAgei1pbmRleDogMTIwMDtcbiAgbWF4LXdpZHRoOiAxMHJlbTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGEwYTtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC50b29sdGlwOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAudG9vbHRpcC5ib3R0b206OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMGEwYTBhO1xuICAgIGJvdHRvbTogMTAwJTsgfVxuICAudG9vbHRpcC5ib3R0b20uYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cbiAgLnRvb2x0aXAudG9wOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMC43NXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogIzBhMGEwYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICB0b3A6IDEwMCU7XG4gICAgYm90dG9tOiBhdXRvOyB9XG4gIC50b29sdGlwLnRvcC5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuICAudG9vbHRpcC5sZWZ0OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMC43NXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMGEwYTBhO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLnRvb2x0aXAubGVmdC5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAudG9vbHRpcC5yaWdodDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAuNzVyZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMGEwYTBhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLnRvb2x0aXAucmlnaHQuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnRvb2x0aXAuYWxpZ24tdG9wOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDEwJTsgfVxuICAudG9vbHRpcC5hbGlnbi1ib3R0b206OmJlZm9yZSB7XG4gICAgYm90dG9tOiAxMCU7XG4gICAgdG9wOiBhdXRvOyB9XG4gIC50b29sdGlwLmFsaWduLWxlZnQ6OmJlZm9yZSB7XG4gICAgbGVmdDogMTAlO1xuICAgIHJpZ2h0OiBhdXRvOyB9XG4gIC50b29sdGlwLmFsaWduLXJpZ2h0OjpiZWZvcmUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwJTsgfVxuXG4udG9wLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC50b3AtYmFyLFxuICAudG9wLWJhciB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsgfVxuICAudG9wLWJhciBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLnRvcC1iYXIgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnRvcC1iYXIgaW5wdXQuYnV0dG9uIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAudG9wLWJhciAudG9wLWJhci1sZWZ0LFxuICAudG9wLWJhciAudG9wLWJhci1yaWdodCB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnRvcC1iYXIge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICAgIC50b3AtYmFyIC50b3AtYmFyLWxlZnQge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gICAgICAudG9wLWJhciAudG9wLWJhci1yaWdodCB7XG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbWVkaXVtIC50b3AtYmFyLWxlZnQsXG4gICAgICAudG9wLWJhci5zdGFja2VkLWZvci1tZWRpdW0gLnRvcC1iYXItcmlnaHQge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgICAudG9wLWJhci5zdGFja2VkLWZvci1sYXJnZSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLWxhcmdlIC50b3AtYmFyLWxlZnQsXG4gICAgICAudG9wLWJhci5zdGFja2VkLWZvci1sYXJnZSAudG9wLWJhci1yaWdodCB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuXG4udG9wLWJhci10aXRsZSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXJnaW46IDAuNXJlbSAxcmVtIDAuNXJlbSAwOyB9XG5cbi50b3AtYmFyLWxlZnQsXG4udG9wLWJhci1yaWdodCB7XG4gIGZsZXg6IDAgMCBhdXRvOyB9XG5cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnZpc2libGUge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAwZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnNob3ctZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLnNob3ctZm9yLXNyLFxuLnNob3ctb24tZm9jdXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKSAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50OyB9XG5cbi5zaG93LW9uLWZvY3VzOmFjdGl2ZSwgLnNob3ctb24tZm9jdXM6Zm9jdXMge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDsgfVxuXG4uc2hvdy1mb3ItbGFuZHNjYXBlLFxuLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLmhpZGUtZm9yLWxhbmRzY2FwZSxcbi5zaG93LWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuLnNob3ctZm9yLWRhcmstbW9kZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmhpZGUtZm9yLWRhcmstbW9kZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAuc2hvdy1mb3ItZGFyay1tb2RlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5oaWRlLWZvci1kYXJrLW1vZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5zaG93LWZvci1pZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLnNob3ctZm9yLWllIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5oaWRlLWZvci1pZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLnNob3ctZm9yLXN0aWNreSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmlzLXN0dWNrIC5zaG93LWZvci1zdGlja3kge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uaXMtc3R1Y2sgLmhpZGUtZm9yLXN0aWNreSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLypcbiAqIHp1cmJfZm91bmRhdGlvbi5zY3NzIC0gQ29udGFpbnMgYWxsIERydXBhbC1zcGVjaWZpYyBTQVNTIGZvciB0aGlzIHRoZW1lLlxuICpcbiAqIEB0b2RvIFNwbGl0IHRoaXMgaW50byBtdWx0aXBsZSBmb2xkZXJzL2ZpbGVzLlxuKi9cbi5yZWdpb24taGlnaGxpZ2h0ZWQ6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi50b29sYmFyLXRyYXkgYSB7XG4gIGZvbnQtc2l6ZTogMTNweDsgfVxuXG4udG9vbGJhciAudG9vbGJhci10b2dnbGUtb3JpZW50YXRpb24gLnRvb2xiYXItaWNvbiB7XG4gIG1hcmdpbjogMDsgfVxuICAudG9vbGJhciAudG9vbGJhci10b2dnbGUtb3JpZW50YXRpb24gLnRvb2xiYXItaWNvbjpiZWZvcmUge1xuICAgIG1pbi1oZWlnaHQ6IDA7IH1cblxuLnRvcC1iYXItc2VjdGlvbiB1bCBsaSB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG4gIC50b3AtYmFyLXNlY3Rpb24gdWwgbGkgYS5pcy1hY3RpdmUge1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG5cbi5uby1qcyAudG9wLWJhciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubm8tanMgLnRvcC1iYXIge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5uby1qcyAudGl0bGUtYmFyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuYm9keS50b29sYmFyLWZpeGVkIC5zdGlja3kuaXMtc3R1Y2sgLnRvcC1iYXIge1xuICBtYXJnaW4tdG9wOiAzOXB4OyB9XG5cbmJvZHkudG9vbGJhci1maXhlZC50b29sYmFyLWhvcml6b250YWwudG9vbGJhci10cmF5LW9wZW4gLnN0aWNreS5pcy1zdHVjayAudG9wLWJhciB7XG4gIG1hcmdpbi10b3A6IDc4cHg7IH1cblxuYm9keS50b29sYmFyLWZpeGVkIC5zdGlja3kuaXMtc3R1Y2suaXMtYXQtdG9wIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XG5cbi50b3AtYmFyIC5tZW51LWl0ZW0tLWNvbGxhcHNlZCxcbi50b3AtYmFyIC5tZW51LWl0ZW0tLWV4cGFuZGVkIHtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4udG9wLWJhciAuc2VhcmNoLWJsb2NrLWZvcm0gLmZvcm0taXRlbS1rZXlzLFxuLnRvcC1iYXIgLnNlYXJjaC1ibG9jay1mb3JtIC5mb3JtLWFjdGlvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLmRyb3BidXR0b24td3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDhjYmE7XG4gIG1hcmdpbjogMCAwIDEuMjVyZW07IH1cbiAgLmRyb3BidXR0b24td3JhcHBlciAuYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlc1xuICogVmVyc2lvbiA2LjcuNFxuICogaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZXZlYWwsIC5yZXZlYWwudGlueSwgLnJldmVhbC5zbWFsbCwgLnJldmVhbC5sYXJnZSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG5cbi8qIGlmIGl0IG5lZWRzIHRvIGJlIGVhc3kgdG8gb3ZlcnJpZGUsIGl0IG1pZ2h0IGJlIGEgY29tcG9uZW50IGluc3RlYWQgKi9cbi8qIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7IH1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDsgfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqLyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovIH1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07IH1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IDEwMCU7IH1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG5pbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljOyB9XG5cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbnNlbGVjdCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IGF1dG87IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG5ociB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMS4yNXJlbSBhdXRvO1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItbGVmdDogMDsgfVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG5zdmcge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbmRpdixcbmRsLFxuZHQsXG5kZCxcbnVsLFxub2wsXG5saSxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnByZSxcbmZvcm0sXG5wLFxuYmxvY2txdW90ZSxcbnRoLFxudGQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxucCxcbmRsLFxudWwsXG5vbCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuXG5wIHtcbiAgbGV0dGVyLXNwYWNpbmc6IC0uMXB4O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cblxuaDEge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMS4xODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDNyZW07IH1cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMi41cmVtOyB9XG4gIGgzIHtcbiAgICBmb250LXNpemU6IDEuOTM3NXJlbTsgfVxuICBoNCB7XG4gICAgZm9udC1zaXplOiAxLjU2MjVyZW07IH1cbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICBoNiB7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9IH1cblxuYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogIzI4M0ZBRjtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlOyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjMjgzRkFGOyB9XG4gIGFbY2xhc3NdIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuICAgIGFbY2xhc3NdOmhvdmVyLCBhW2NsYXNzXTpmb2N1cyB7XG4gICAgICBjb2xvcjogaW5oZXJpdDsgfVxuICBhIGltZyB7XG4gICAgYm9yZGVyOiAwOyB9XG5cbnVsLFxub2wsXG5kbCB7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7IH1cblxudWwsXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtOyB9XG5cbnVsIHVsLCBvbCB1bCwgdWwgb2wsIG9sIG9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxub2wge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7IH1cbiAgb2wgb2wge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItYWxwaGE7IH1cbiAgICBvbCBvbCBvbCB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLXJvbWFuOyB9XG4gICAgICBvbCBvbCBvbCBvbCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47IH1cblxudWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH1cbiAgdWwgdWwge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlOyB9XG4gICAgdWwgdWwgdWwge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7IH1cblxuZGwgZHQge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5kZCB7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbmRkICsgZHQge1xuICBtYXJnaW4tdG9wOiAxLjEyNWVtOyB9XG5cblt0eXBlPSd0ZXh0J10sIFt0eXBlPSdwYXNzd29yZCddLCBbdHlwZT0nZGF0ZSddLCBbdHlwZT0nZGF0ZXRpbWUnXSwgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sIFt0eXBlPSdtb250aCddLCBbdHlwZT0nd2VlayddLCBbdHlwZT0nZW1haWwnXSwgW3R5cGU9J251bWJlciddLCBbdHlwZT0nc2VhcmNoJ10sIFt0eXBlPSd0ZWwnXSwgW3R5cGU9J3RpbWUnXSwgW3R5cGU9J3VybCddLCBbdHlwZT0nY29sb3InXSxcbnRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIuNDM3NXJlbTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgxMCwgMTAsIDEwLCAwLjEpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzBhMGEwYTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4gIGFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgW3R5cGU9J3RleHQnXTpmb2N1cywgW3R5cGU9J3Bhc3N3b3JkJ106Zm9jdXMsIFt0eXBlPSdkYXRlJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZSddOmZvY3VzLCBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXTpmb2N1cywgW3R5cGU9J21vbnRoJ106Zm9jdXMsIFt0eXBlPSd3ZWVrJ106Zm9jdXMsIFt0eXBlPSdlbWFpbCddOmZvY3VzLCBbdHlwZT0nbnVtYmVyJ106Zm9jdXMsIFt0eXBlPSdzZWFyY2gnXTpmb2N1cywgW3R5cGU9J3RlbCddOmZvY3VzLCBbdHlwZT0ndGltZSddOmZvY3VzLCBbdHlwZT0ndXJsJ106Zm9jdXMsIFt0eXBlPSdjb2xvciddOmZvY3VzLFxuICB0ZXh0YXJlYTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAjY2FjYWNhO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG5cbnRleHRhcmVhIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIHRleHRhcmVhW3Jvd3NdIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cblxuaW5wdXQ6ZGlzYWJsZWQsIGlucHV0W3JlYWRvbmx5XSxcbnRleHRhcmVhOmRpc2FibGVkLFxudGV4dGFyZWFbcmVhZG9ubHldIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG5bdHlwZT0nc3VibWl0J10sXG5bdHlwZT0nYnV0dG9uJ10ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG46OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNjYWNhY2E7IH1cblxuW3R5cGU9J2ZpbGUnXSxcblt0eXBlPSdjaGVja2JveCddLFxuW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW46IDAgMCAxcmVtOyB9XG5cblt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG5bdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsW2Zvcl0sXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWxbZm9yXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG5sYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuW3R5cGU9J2ZpbGUnXSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbiAgY29sb3I6ICMwYTBhMGE7IH1cbiAgbGFiZWwubWlkZGxlIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgcGFkZGluZzogMC41NjI1cmVtIDA7IH1cblxuLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxubGVnZW5kIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuLmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAxLjEyNXJlbSAwO1xuICBwYWRkaW5nOiAxLjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhOyB9XG4gIC5maWVsZHNldCBsZWdlbmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tbGVmdDogLTAuMTg3NXJlbTtcbiAgICBwYWRkaW5nOiAwIDAuMTg3NXJlbTsgfVxuXG5zZWxlY3Qge1xuICBoZWlnaHQ6IDIuNDM3NXJlbTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzBhMGEwYTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2ZXJzaW9uPVwiMS4xXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAzMiAyNFwiPjxwb2x5Z29uIHBvaW50cz1cIjAsMCAzMiwwIDE2LDI0XCIgc3R5bGU9XCJmaWxsOiByZ2IlMjgxMzgsIDEzOCwgMTM4JTI5XCI+PC9wb2x5Z29uPjwvc3ZnPicpO1xuICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC0xcmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIHtcbiAgICBzZWxlY3Qge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PVwiKTsgfSB9XG4gIHNlbGVjdDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAjY2FjYWNhO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIHNlbGVjdDpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gIHNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBzZWxlY3RbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuICBzZWxlY3Q6bm90KFttdWx0aXBsZV0pIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIHRoZWFkLFxuICB0Ym9keSxcbiAgdGZvb3Qge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMWYxZjE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICNmMWYxZjE7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgdGhlYWQgdHIsXG4gIHRmb290IHRyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICB0aGVhZCB0aCxcbiAgdGhlYWQgdGQsXG4gIHRmb290IHRoLFxuICB0Zm9vdCB0ZCB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgdGgsXG4gIHRkIHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNDMEMwQzA7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtOyB9XG4gIHRoIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxOyB9XG4gIHRhYmxlLnVuc3RyaXBlZCB0Ym9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuICAgIHRhYmxlLnVuc3RyaXBlZCB0Ym9keSB0ciB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMWYxZjE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICB0YWJsZS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0aGVhZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdGJvZHkuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRyLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0ZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIHRoLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICAuaXIgYTphZnRlcixcbiAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgYVtocmVmXj0nIyddOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJzsgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzcwNzA3MDtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAwLjVjbTsgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzOyB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cbiAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87IH0gfVxuXG4uYWxpZ24tbGVmdCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4uYWxpZ24tcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5hbGlnbi1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uYWxpZ24tanVzdGlmeSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4uYWxpZ24tc3BhY2VkIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLmFsaWduLWxlZnQudmVydGljYWwubWVudSA+IGxpID4gYSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4uYWxpZ24tcmlnaHQudmVydGljYWwubWVudSA+IGxpID4gYSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmFsaWduLWNlbnRlci52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLmFsaWduLXRvcCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5hbGlnbi1zZWxmLXRvcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLmFsaWduLWJvdHRvbSB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tc2VsZi1ib3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tbWlkZGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uYWxpZ24tc2VsZi1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuLmFsaWduLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4uYWxpZ24tc2VsZi1zdHJldGNoIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDsgfVxuXG4uYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7IH1cblxuLnNtYWxsLW9yZGVyLTEge1xuICBvcmRlcjogMTsgfVxuXG4uc21hbGwtb3JkZXItMiB7XG4gIG9yZGVyOiAyOyB9XG5cbi5zbWFsbC1vcmRlci0zIHtcbiAgb3JkZXI6IDM7IH1cblxuLnNtYWxsLW9yZGVyLTQge1xuICBvcmRlcjogNDsgfVxuXG4uc21hbGwtb3JkZXItNSB7XG4gIG9yZGVyOiA1OyB9XG5cbi5zbWFsbC1vcmRlci02IHtcbiAgb3JkZXI6IDY7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAubWVkaXVtLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC5tZWRpdW0tb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLm1lZGl1bS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAubWVkaXVtLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC5tZWRpdW0tb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2Utb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC5sYXJnZS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAubGFyZ2Utb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLmxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC5sYXJnZS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfSB9XG5cbi5mbGV4LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLmZsZXgtY2hpbGQtYXV0byB7XG4gIGZsZXg6IDEgMSBhdXRvOyB9XG5cbi5mbGV4LWNoaWxkLWdyb3cge1xuICBmbGV4OiAxIDAgYXV0bzsgfVxuXG4uZmxleC1jaGlsZC1zaHJpbmsge1xuICBmbGV4OiAwIDEgYXV0bzsgfVxuXG4uZmxleC1kaXItcm93IHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuXG4uZmxleC1kaXItcm93LXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cblxuLmZsZXgtZGlyLWNvbHVtbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLmZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tZmxleC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLm1lZGl1bS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvOyB9XG4gIC5tZWRpdW0tZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAubWVkaXVtLWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bzsgfVxuICAubWVkaXVtLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAubWVkaXVtLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLWZsZXgtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvOyB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87IH1cbiAgLmxhcmdlLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAubGFyZ2UtZmxleC1kaXItcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAubGFyZ2UtZmxleC1kaXItY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5sYXJnZS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9IH1cblxuLnJvdyB7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7IH1cbiAgLnJvdyAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTAuNjI1cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtOyB9IH1cbiAgICAucm93IC5yb3cuY29sbGFwc2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnJvdy5leHBhbmRlZCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gICAgLnJvdy5leHBhbmRlZCAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC5yb3c6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uLCAucm93LmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5yb3cuaXMtY29sbGFwc2UtY2hpbGQsXG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uID4gLnJvdyxcbiAgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW5zID4gLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgZmxleDogMSAxIDBweDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1pbi13aWR0aDogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuLmNvbHVtbi5yb3cucm93LCAucm93LnJvdy5jb2x1bW5zIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5yb3cgLmNvbHVtbi5yb3cucm93LCAucm93IC5yb3cucm93LmNvbHVtbnMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLnNtYWxsLTEge1xuICBmbGV4OiAwIDAgOC4zMzMzMyU7XG4gIG1heC13aWR0aDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlOyB9XG5cbi5zbWFsbC0yIHtcbiAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC0zIHtcbiAgZmxleDogMCAwIDI1JTtcbiAgbWF4LXdpZHRoOiAyNSU7IH1cblxuLnNtYWxsLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtNCB7XG4gIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cblxuLnNtYWxsLTUge1xuICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC02IHtcbiAgZmxleDogMCAwIDUwJTtcbiAgbWF4LXdpZHRoOiA1MCU7IH1cblxuLnNtYWxsLW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtNyB7XG4gIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gIG1heC13aWR0aDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cblxuLnNtYWxsLTgge1xuICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC05IHtcbiAgZmxleDogMCAwIDc1JTtcbiAgbWF4LXdpZHRoOiA3NSU7IH1cblxuLnNtYWxsLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtMTAge1xuICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICBtYXgtd2lkdGg6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi5zbWFsbC0xMSB7XG4gIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gIG1heC13aWR0aDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC0xMiB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLnNtYWxsLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLnNtYWxsLXVwLTEge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLnNtYWxsLXVwLTIge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG5cbi5zbWFsbC11cC0zIHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbiwgLnNtYWxsLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtdXAtNCB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW4sIC5zbWFsbC11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cblxuLnNtYWxsLXVwLTUge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMjAlO1xuICAgIG1heC13aWR0aDogMjAlOyB9XG5cbi5zbWFsbC11cC02IHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtdXAtNyB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW4sIC5zbWFsbC11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNC4yODU3MSU7XG4gICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7IH1cblxuLnNtYWxsLXVwLTgge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgbWF4LXdpZHRoOiAxMi41JTsgfVxuXG4uc21hbGwtY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4uc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLTEge1xuICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubWVkaXVtLTIge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAubWVkaXVtLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tNCB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5tZWRpdW0tNSB7XG4gICAgZmxleDogMCAwIDQxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAubWVkaXVtLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tNyB7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5tZWRpdW0tOCB7XG4gICAgZmxleDogMCAwIDY2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAubWVkaXVtLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubWVkaXVtLTExIHtcbiAgICBmbGV4OiAwIDAgOTEuNjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAubWVkaXVtLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLXVwLTEge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5tZWRpdW0tdXAtMiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbiwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC5tZWRpdW0tdXAtMyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbiwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tdXAtNCB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbiwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5tZWRpdW0tdXAtNSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbiwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDIwJTtcbiAgICAgIG1heC13aWR0aDogMjAlOyB9XG4gIC5tZWRpdW0tdXAtNiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbiwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tdXAtNyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbiwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE0LjI4NTcxJTtcbiAgICAgIG1heC13aWR0aDogMTQuMjg1NzElOyB9XG4gIC5tZWRpdW0tdXAtOCB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC04ID4gLmNvbHVtbiwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDEyLjUlO1xuICAgICAgbWF4LXdpZHRoOiAxMi41JTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLWV4cGFuZCB7XG4gICAgZmxleDogMSAxIDBweDsgfSB9XG5cbi5yb3cubWVkaXVtLXVuc3RhY2sgPiAuY29sdW1uLCAucm93Lm1lZGl1bS11bnN0YWNrID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yb3cubWVkaXVtLXVuc3RhY2sgPiAuY29sdW1uLCAucm93Lm1lZGl1bS11bnN0YWNrID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1uLCAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtMSB7XG4gICAgZmxleDogMCAwIDguMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLmxhcmdlLTIge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLTMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS00IHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubGFyZ2UtNSB7XG4gICAgZmxleDogMCAwIDQxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLTYge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS03IHtcbiAgICBmbGV4OiAwIDAgNTguMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubGFyZ2UtOCB7XG4gICAgZmxleDogMCAwIDY2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLTkge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7IH1cbiAgLmxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS0xMCB7XG4gICAgZmxleDogMCAwIDgzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLmxhcmdlLTExIHtcbiAgICBmbGV4OiAwIDAgOTEuNjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLTEyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLmxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtdXAtMSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5sYXJnZS11cC0yIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW4sIC5sYXJnZS11cC0yID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC5sYXJnZS11cC0zIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW4sIC5sYXJnZS11cC0zID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS11cC00IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW4sIC5sYXJnZS11cC00ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5sYXJnZS11cC01IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW4sIC5sYXJnZS11cC01ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDIwJTtcbiAgICAgIG1heC13aWR0aDogMjAlOyB9XG4gIC5sYXJnZS11cC02IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW4sIC5sYXJnZS11cC02ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS11cC03IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtNyA+IC5jb2x1bW4sIC5sYXJnZS11cC03ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE0LjI4NTcxJTtcbiAgICAgIG1heC13aWR0aDogMTQuMjg1NzElOyB9XG4gIC5sYXJnZS11cC04IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtOCA+IC5jb2x1bW4sIC5sYXJnZS11cC04ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDEyLjUlO1xuICAgICAgbWF4LXdpZHRoOiAxMi41JTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtZXhwYW5kIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuLnJvdy5sYXJnZS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy5sYXJnZS11bnN0YWNrID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5yb3cubGFyZ2UtdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cubGFyZ2UtdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtY29sbGFwc2UgPiAuY29sdW1uLCAubGFyZ2UtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAubGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4uc2hyaW5rIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4uY29sdW1uLWJsb2NrIHtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuICAuY29sdW1uLWJsb2NrID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuY29sdW1uLWJsb2NrIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuODc1cmVtOyB9XG4gICAgICAuY29sdW1uLWJsb2NrID4gOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cblxuLmZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdDsgfVxuXG4uZmxvYXQtcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLmNsZWFyZml4OjpiZWZvcmUsIC5jbGVhcmZpeDo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xuICBmbGV4LWJhc2lzOiAwO1xuICBvcmRlcjogMTsgfVxuXG4uY2xlYXJmaXg6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLmhlYWRlci1yb3cge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBmbGV4OiAxIDEgMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWluLXdpZHRoOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDQ4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA0OHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmhlYWRlci1yb3cge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuaGVhZGVyLXJvdyBoMiwgLmhlYWRlci1yb3cgaDMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiA0OHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmhlYWRlci1yb3cgaDIsIC5oZWFkZXItcm93IGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG5cbi5tZWRpYS1vYmplY3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAubWVkaWEtb2JqZWN0IGltZyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgLm1lZGlhLW9iamVjdC5zdGFjay1mb3Itc21hbGwge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9IH1cblxuLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgZmxleDogMCAxIGF1dG87IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gICAgLnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgLnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24gaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ubWFpbi1zZWN0aW9uIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9XG5cbi5yZXNwb25zaXZlLWVtYmVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnJlc3BvbnNpdmUtZW1iZWQgaWZyYW1lLFxuICAucmVzcG9uc2l2ZS1lbWJlZCBvYmplY3QsXG4gIC5yZXNwb25zaXZlLWVtYmVkIGVtYmVkLFxuICAucmVzcG9uc2l2ZS1lbWJlZCB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAucmVzcG9uc2l2ZS1lbWJlZC5kZWZhdWx0IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNzUlOyB9XG5cbi5tYXBfY2FudmFzIGltZyxcbi5tYXBfY2FudmFzIGVtYmVkLFxuLm1hcF9jYW52YXMgb2JqZWN0LFxuLm1xYS1kaXNwbGF5IGltZyxcbi5tcWEtZGlzcGxheSBlbWJlZCxcbi5tcWEtZGlzcGxheSBvYmplY3Qge1xuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ucmVzcG9uc2l2ZS1lbWJlZF9fc2NyaW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM3LCAzNywgMzcsIDAuNyk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjMjUyNTI1IDAlLCByZ2JhKDM3LCAzNywgMzcsIDApIDEwMCUpO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBwYWRkaW5nOiAzMnB4IDMycHggMTZweCAxNnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnJlc3BvbnNpdmUtZW1iZWRfX3NjcmltIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNDhweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0OHB4OyB9IH1cblxuLnJlc3BvbnNpdmUtZW1iZWRfX3BsYXktYnRuIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07IH1cbiAgLnJlc3BvbnNpdmUtZW1iZWRfX3BsYXktYnRuIGkge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweCAxOHB4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgICAucmVzcG9uc2l2ZS1lbWJlZF9fcGxheS1idG4gaTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjgzRkFGO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMjgzRkFGOyB9XG5cbi5pY29uLWZ3IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMjRweDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLmljb24tc3RhY2tlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmljb24tY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDgwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDgwcHg7IH1cbiAgLmljb24tY2lyY2xlID4gc3ZnIHtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgbWF4LXdpZHRoOiA1NSU7IH1cblxuLmxheW91dC1oZWFkZXIsIC5sYXlvdXQtc3RpY2t5LWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIHBhZGRpbmc6IDhweCAyNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwMDsgfVxuXG4ubGF5b3V0LXN0aWNreS1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0MwQzBDMDtcbiAgYm94LXNoYWRvdzogMCA4cHggOHB4IHJnYmEoNTQsIDU0LCA1NCwgMC4xKTtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwOyB9XG5cbi5sYXlvdXQtZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI1MjUyNTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHBhZGRpbmc6IDQ4cHggMCAyNHB4OyB9XG5cbi5sYXlvdXQtY29udGVudCB7XG4gIHBhZGRpbmctbGVmdDogMjRweDtcbiAgcGFkZGluZy1yaWdodDogMjRweDsgfVxuXG4ubGF5b3V0LXdyYXBwZXIge1xuICBtYXgtd2lkdGg6IDEyNTBweDsgfVxuXG4ubGF5b3V0LXdyYXBwZXItY29udGVudCB7XG4gIG1heC13aWR0aDogNjI1cHg7IH1cblxuLmJsb2NrcXVvdGUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBjb2xvcjogIzAwMjA1QjtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luOiAwIGF1dG8gMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDEuMjVyZW0gMCAxLjE4NzVyZW07IH1cbiAgLmJsb2NrcXVvdGUgcCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuICAgIC5ibG9ja3F1b3RlIHA6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFzigJxcIjtcbiAgICAgIGZvbnQtc2l6ZTogMS4xMjVlbTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0wLjZlbSwgLTAuMWVtKTsgfVxuICAgIC5ibG9ja3F1b3RlIHA6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcXOKAnVwiO1xuICAgICAgZm9udC1zaXplOiAxLjEyNWVtOyB9XG4gIC5ibG9ja3F1b3RlIGNpdGUge1xuICAgIGNvbG9yOiAjOGE4YThhO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYmxvY2txdW90ZSB7XG4gICAgICBmb250LXNpemU6IDIuMTI1cmVtO1xuICAgICAgcGFkZGluZzogMy4yNXJlbSA2LjVyZW07IH1cbiAgICAgIC5ibG9ja3F1b3RlIHAge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yMzU7IH0gfVxuXG4uYnJlYWRjcnVtYnMge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5icmVhZGNydW1icyBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAgIC5icmVhZGNydW1icyBsaTpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW46IDAgMC43NXJlbTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBjb250ZW50OiBcIi9cIjsgfVxuICAuYnJlYWRjcnVtYnMgYSB7XG4gICAgY29sb3I6ICMxNzc5YmE7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuYnJlYWRjcnVtYnMgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4uYnV0dG9uIHtcbiAgLyogTW9kZXJuVHJpYmUgZmxhdm9yICovXG4gIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAycHggc29saWQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIHBhZGRpbmc6IDAuODVlbSAxZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovIH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5idXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmJ1dHRvbiwgLmJ1dHRvbi5ibHVlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sb3I6ICMyODNGQUY7XG4gICAgY29sb3I6ICMyODNGQUY7IH1cbiAgICAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLmJsdWU6aG92ZXIsIC5idXR0b24uYmx1ZTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjgzRkFGO1xuICAgICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLmJ1dHRvbi55ZWxsb3cge1xuICAgIGJvcmRlci1jb2xvcjogI0ZGQzcwQTtcbiAgICBjb2xvcjogIzI1MjUyNTsgfVxuICAgIC5idXR0b24ueWVsbG93OmhvdmVyLCAuYnV0dG9uLnllbGxvdzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDNzBBOyB9XG4gIC5idXR0b24ubWVkaXVtLWdyZXkge1xuICAgIGJvcmRlci1jb2xvcjogI0MwQzBDMDtcbiAgICBjb2xvcjogI0MwQzBDMDsgfVxuICAgIC5idXR0b24ubWVkaXVtLWdyZXk6aG92ZXIsIC5idXR0b24ubWVkaXVtLWdyZXk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzcwNzA3MDtcbiAgICAgIGJvcmRlci1jb2xvcjogIzcwNzA3MDtcbiAgICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gICAgICAuYnV0dG9uLm1lZGl1bS1ncmV5OmhvdmVyIHN2ZywgLmJ1dHRvbi5tZWRpdW0tZ3JleTpmb2N1cyBzdmcge1xuICAgICAgICBmaWxsOiAjRkZDNzBBOyB9XG4gIC5idXR0b24ud2hpdGUge1xuICAgIGJvcmRlci1jb2xvcjogI0ZGRkZGRjtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAgIC5idXR0b24ud2hpdGU6aG92ZXIsIC5idXR0b24ud2hpdGU6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICAgIGJvcmRlci1jb2xvcjogI0ZGRkZGRjtcbiAgICAgIGNvbG9yOiAjMjgzRkFGOyB9XG4gIC5idXR0b24uYWx0IHtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTsgfVxuICAgIC5idXR0b24uYWx0IHN2ZyB7XG4gICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gIC5idXR0b24uZXhwYW5kZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjI1O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbmEuYnV0dG9uIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIGEuYnV0dG9uOmhvdmVyLCBhLmJ1dHRvbjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5saW5rLTEge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0ZGQzcwQTtcbiAgY29sb3I6ICMyNTI1MjU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogOTAwO1xuICBwYWRkaW5nOiA1cHggMCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuMjVzIGN1YmljLWJlemllcigwLjY2LCAtMC4zOSwgMC40MSwgMS4zNSk7XG4gIHdpbGwtY2hhbmdlOiBwYWRkaW5nO1xuICB6LWluZGV4OiAxOyB9XG4gIC5saW5rLTE6aG92ZXIsIC5saW5rLTE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkM3MEE7XG4gICAgY29sb3I6ICMyNTI1MjU7XG4gICAgcGFkZGluZzogNXB4IDIwcHggMDsgfVxuICAuYmcteWVsbG93IC5saW5rLTEge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNGRkZGRkY7IH1cbiAgICAuYmcteWVsbG93IC5saW5rLTE6aG92ZXIsIC5iZy15ZWxsb3cgLmxpbmstMTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGOyB9XG5cbi5saW5rLTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTk5LCAxMCwgMC43KTtcbiAgY29sb3I6ICMyNTI1MjU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogOTAwO1xuICBwYWRkaW5nOiAxNXB4IDEwcHggMTJweDtcbiAgcGFkZGluZzogMTVweCAxNnB4IDEycHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBjdWJpYy1iZXppZXIoMC42NiwgLTAuMzksIDAuNDEsIDEuMzUpO1xuICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZC1jb2xvcjsgfVxuICAubGluay0yOmhvdmVyLCAubGluay0yOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjNzBhO1xuICAgIGNvbG9yOiAjMjUyNTI1O1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogY3VycmVudENvbG9yOyB9XG4gIC5saW5rLTIgPiBzdmcge1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgd2lkdGg6IDEwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAubGluay0yIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgIHBhZGRpbmc6IDdweCAxMHB4IDVweDsgfSB9XG5cbi5jdGEtY2FyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkM3MEE7XG4gIGNvbG9yOiAjMjUyNTI1O1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5jdGEtY2FyZF9fY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU1O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiA0OHB4IDQ4cHggNjRweDsgfVxuICAuY3RhLWNhcmRfX2NvbnRlbnQgaDMge1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweDsgfVxuICAuY3RhLWNhcmRfX2NvbnRlbnQgc3BhbiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBtYXJnaW4tdG9wOiAzMnB4O1xuICAgIHBhZGRpbmc6IDRweCAwO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHRyYW5zaXRpb246IHBhZGRpbmcgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNjYsIC0wLjM5LCAwLjQxLCAxLjM1KSwgY29sb3IgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNjYsIC0wLjM5LCAwLjQxLCAxLjM1KSwgYmFja2dyb3VuZC1jb2xvciAwLjI1cyBjdWJpYy1iZXppZXIoMC42NiwgLTAuMzksIDAuNDEsIDEuMzUpOyB9XG4gICAgLmN0YS1jYXJkX19jb250ZW50IHNwYW4gc3ZnIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cblxuLmN0YS1jYXJkX19tZWRpYSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmN0YS1jYXJkX19tZWRpYSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxlZnQ6IC01JTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XG4gICAgd2lkdGg6IDExMCU7IH1cblxuLmN0YS1jYXJkOmhvdmVyIHtcbiAgY29sb3I6IGluaGVyaXQ7IH1cbiAgLmN0YS1jYXJkOmhvdmVyIGltZyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9XG4gIC5jdGEtY2FyZDpob3ZlciBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjUyNTI1O1xuICAgIGNvbG9yOiAjRkZDNzBBO1xuICAgIHBhZGRpbmc6IDRweCAxNnB4OyB9XG5cbi5jdGEtY2FyZC0tc3RyaXBlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG5cbi5jdGEtY2FyZC5iZy1kYXJrZXN0LWdyZXkgc3Bhbixcbi5jdGEtY2FyZC5iZy13aGl0ZSBzcGFuIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI0ZGQzcwQTsgfVxuXG4uY3RhLWNhcmQuYmctZGFya2VzdC1ncmV5OmhvdmVyIHNwYW4sXG4uY3RhLWNhcmQuYmctd2hpdGU6aG92ZXIgc3BhbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkM3MEE7IH1cblxuLmN0YS1jYXJkLmJnLWRhcmtlc3QtZ3JleSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjM2MzY7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG4gIC5jdGEtY2FyZC5iZy1kYXJrZXN0LWdyZXk6aG92ZXIgc3BhbiB7XG4gICAgY29sb3I6ICMzNjM2MzY7IH1cblxuLmN0YS1jYXJkLmJnLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsgfVxuICAuY3RhLWNhcmQuYmctd2hpdGU6aG92ZXIgc3BhbiB7XG4gICAgY29sb3I6ICMyNTI1MjU7IH1cblxuLmNvbHVtbiAuY3RhLWNhcmQsIC5jb2x1bW5zIC5jdGEtY2FyZCB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmN0YS1jYXJkX19jb250ZW50IGgzIHtcbiAgICBmb250LXNpemU6IDIuMjVyZW07IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY3RhLWNhcmRfX2NvbnRlbnQge1xuICAgIHBhZGRpbmc6IDY0cHggNjRweCA5NnB4OyB9XG4gIC5jdGEtY2FyZC0tc3RyaXBlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmN0YS1jYXJkLS1zdHJpcGUgLmN0YS1jYXJkX19jb250ZW50LFxuICAgIC5jdGEtY2FyZC0tc3RyaXBlIC5jdGEtY2FyZF9fbWVkaWEge1xuICAgICAgZmxleDogMSAxIDUwJTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLmN0YS1jYXJkLS1zdHJpcGUgLmN0YS1jYXJkX19jb250ZW50IHtcbiAgICBmbGV4OiAxIDEgMzUlOyB9XG4gIC5jdGEtY2FyZC0tc3RyaXBlIC5jdGEtY2FyZF9fbWVkaWEge1xuICAgIGZsZXg6IDEgMSA2NSU7IH0gfVxuXG4uY3RhLXN0cmlwZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkM3MEE7IH1cblxuLmN0YS1zdHJpcGVfX2NvbnRlbnQge1xuICBmb250LXNpemU6IDEuNWVtO1xuICBwYWRkaW5nOiA0OHB4IDMycHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3RhLXN0cmlwZV9fY29udGVudCB7XG4gICAgICBmb250LXNpemU6IDEuOGVtOyB9IH1cbiAgLmN0YS1zdHJpcGVfX2NvbnRlbnQgPiBhIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgcGFkZGluZzogNHB4IDhweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmN0YS1zdHJpcGVfX21lZGlhIHZpZGVvLCAuY3RhLXN0cmlwZV9fbWVkaWEgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5jdGEtc3RyaXBlX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiA2NHB4OyB9XG4gICAgLmN0YS1zdHJpcGVfX2NvbnRlbnQgcDpmaXJzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi10b3A6IDQ4cHg7IH1cbiAgICAuY3RhLXN0cmlwZV9fY29udGVudCBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0OHB4OyB9XG4gIC5jdGEtc3RyaXBlLS12aWRlbyAuY3RhLXN0cmlwZV9fY29udGVudCB7XG4gICAgcGFkZGluZzogNjRweCA5NnB4OyB9XG4gIC5jdGEtc3RyaXBlLS1pbWFnZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDY0cHg7IH1cbiAgICAuY3RhLXN0cmlwZS0taW1hZ2UgLmN0YS1zdHJpcGVfX21lZGlhIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4OyB9XG4gIC5jdGEtc3RyaXBlLS1pbWFnZS1hbHQge1xuICAgIHBhZGRpbmctdG9wOiAzMnB4OyB9XG4gICAgLmN0YS1zdHJpcGUtLWltYWdlLWFsdCAuY3RhLXN0cmlwZV9fbWVkaWEge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmN0YS1zdHJpcGUtLWltYWdlLFxuICAuY3RhLXN0cmlwZS0taW1hZ2UtYWx0LFxuICAuY3RhLXN0cmlwZS0tdmlkZW8ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAuY3RhLXN0cmlwZS0taW1hZ2Uge1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gICAgLmN0YS1zdHJpcGUtLWltYWdlIC5jdGEtc3RyaXBlX19jb250ZW50IHtcbiAgICAgIGZsZXg6IDEgMSA0NSU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4OyB9XG4gICAgLmN0YS1zdHJpcGUtLWltYWdlIC5jdGEtc3RyaXBlX19tZWRpYSB7XG4gICAgICBmbGV4OiAyIDIgNTUlOyB9XG4gIC5jdGEtc3RyaXBlLS1pbWFnZS1hbHQge1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gICAgLmN0YS1zdHJpcGUtLWltYWdlLWFsdCAuY3RhLXN0cmlwZV9fbWVkaWEge1xuICAgICAgZmxleDogMSAxIDQ1JTsgfVxuICAgIC5jdGEtc3RyaXBlLS1pbWFnZS1hbHQgLmN0YS1zdHJpcGVfX2NvbnRlbnQge1xuICAgICAgZmxleDogMiAyIDU1JTtcbiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsgfVxuICAuY3RhLXN0cmlwZS0tdmlkZW8ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmN0YS1zdHJpcGUtLXZpZGVvIC5jdGEtc3RyaXBlX19tZWRpYSxcbiAgICAuY3RhLXN0cmlwZS0tdmlkZW8gLmN0YS1zdHJpcGVfX2NvbnRlbnQge1xuICAgICAgZmxleDogMSAxIDUwJTsgfVxuICAgIC5jdGEtc3RyaXBlLS12aWRlbyAuY3RhLXN0cmlwZV9fbWVkaWEge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgICAgLmN0YS1zdHJpcGUtLXZpZGVvIC5jdGEtc3RyaXBlX19tZWRpYSB2aWRlbyB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxNTAlOyB9XG4gICAgLmN0YS1zdHJpcGUtLXZpZGVvIC5jdGEtc3RyaXBlX19jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkM3MEE7XG4gICAgICBib3gtc2hhZG93OiAtNDhweCAwIDAgI0ZGQzcwQTtcbiAgICAgIHBhZGRpbmc6IDk2cHggMzJweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLmN0YS1zdHJpcGUtLWltYWdlIC5jdGEtc3RyaXBlX19tZWRpYSxcbiAgLmN0YS1zdHJpcGUtLWltYWdlLWFsdCAuY3RhLXN0cmlwZV9fbWVkaWEge1xuICAgIG1heC13aWR0aDogODUycHg7IH1cbiAgLmN0YS1zdHJpcGUtLWltYWdlIC5jdGEtc3RyaXBlX19jb250ZW50IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4OyB9XG4gIC5jdGEtc3RyaXBlLS1pbWFnZS1hbHQgLmN0YS1zdHJpcGVfX2NvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMzJweDsgfVxuICAuY3RhLXN0cmlwZS0tdmlkZW8gLmN0YS1zdHJpcGVfX2NvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE2MHB4IDQ4cHggOTZweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLmN0YS1zdHJpcGUge1xuICAgIHBhZGRpbmc6IDY0cHggMTJ2dzsgfVxuICAgIC5jdGEtc3RyaXBlLmN0YS1zdHJpcGUtLXZpZGVvIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgLmN0YS1zdHJpcGUtLXZpZGVvIC5jdGEtc3RyaXBlX19tZWRpYSB2aWRlbyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jdGEtc3RyaXBlLS12aWRlbyAuY3RhLXN0cmlwZV9fY29udGVudCB7XG4gICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICBwYWRkaW5nOiAxOTJweCAxOHZ3IDEyMHB4IDY0cHg7IH1cbiAgLmN0YS1zdHJpcGUtLXZpZGVvIC5mLXN1YmhlYWRsaW5lIHtcbiAgICBmb250LXNpemU6IDMuNjI1cmVtOyB9IH1cblxuLmRhdGEtcG9pbnQge1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW4tYm90dG9tOiA0OHB4OyB9XG4gIC5kYXRhLXBvaW50IHN0cm9uZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjI1ZW07XG4gICAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuICAuZGF0YS1wb2ludCAuaWNvbi1jaXJjbGUge1xuICAgIG1hcmdpbjogMCBhdXRvIDE2cHg7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmRhdGEtcG9pbnQge1xuICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgcGFkZGluZzogMCAyNHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAuZGF0YS1wb2ludCBzdHJvbmcge1xuICAgICAgZm9udC1zaXplOiAxLjU1ZW07IH1cbiAgICAuZGF0YS1wb2ludCAuaWNvbi1jaXJjbGUge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5kYXRhLXBvaW50IC5pY29uLWNpcmNsZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMnB4OyB9IH1cblxuLmV2ZW50LWNhcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiA0OHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmV2ZW50LWNhcmQ6aG92ZXIge1xuICAgIGNvbG9yOiBpbml0aWFsOyB9XG4gICAgLmV2ZW50LWNhcmQ6aG92ZXIgLmV2ZW50LWNhcmRfX2N0YSB7XG4gICAgICBjb2xvcjogaW5pdGlhbDsgfVxuICAgICAgLmV2ZW50LWNhcmQ6aG92ZXIgLmV2ZW50LWNhcmRfX2N0YTpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgICAgIC5ldmVudC1jYXJkOmhvdmVyIC5ldmVudC1jYXJkX19jdGEgc3BhbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjRweCk7IH1cbiAgICAgIC5ldmVudC1jYXJkOmhvdmVyIC5ldmVudC1jYXJkX19jdGEgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI0cHgpOyB9XG4gIC5ldmVudC1jYXJkLmJnLXllbGxvdyAuZXZlbnQtY2FyZF9fY3RhOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM2MzYzNjsgfVxuICAuZXZlbnQtY2FyZC5iZy15ZWxsb3c6aG92ZXIgLmV2ZW50LWNhcmRfX2N0YSB7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLmV2ZW50LWNhcmQuYmctZGFya2VzdC1ncmV5IHtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAuY29sdW1uID4gLmV2ZW50LWNhcmQsIC5jb2x1bW5zID4gLmV2ZW50LWNhcmQsXG4gIC5jb2x1bW5zID4gLmV2ZW50LWNhcmQge1xuICAgIGhlaWdodDogMTAwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLmV2ZW50LWNhcmQge1xuICAgICAgcGFkZGluZzogNjRweCA2NHB4IDEyMHB4OyB9IH1cblxuLmV2ZW50LWNhcmRfX2RhdGUge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogOTAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZXZlbnQtY2FyZF9fZGF0ZSB7XG4gICAgICBmb250LXNpemU6IDEuMjVyZW07IH0gfVxuICAuZXZlbnQtY2FyZF9fZGF0ZSBzdmcge1xuICAgIG1hcmdpbi1yaWdodDogNHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmV2ZW50LWNhcmRfX2RhdGUge1xuICAgICAgcGFkZGluZy1ib3R0b206IDRweDsgfSB9XG5cbi5ldmVudC1jYXJkX190YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjE4NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLmV2ZW50LWNhcmRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMDc3O1xuICBtYXJnaW4tYm90dG9tOiAzMnB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmV2ZW50LWNhcmRfX3RpdGxlIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDMuMzVlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAuZXZlbnQtY2FyZF9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMDYyNTsgfSB9XG5cbi5ldmVudC1jYXJkX19kZXRhaWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXgtd2lkdGg6IDE5LjM3NXJlbTsgfVxuICAuZXZlbnQtY2FyZF9fZGV0YWlscyBkdCB7XG4gICAgZmxleC1iYXNpczogMzBweDtcbiAgICBmbGV4LWJhc2lzOiAyNHB4O1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5ldmVudC1jYXJkX19kZXRhaWxzIGRkIHtcbiAgICBmbGV4LWJhc2lzOiA4MCU7IH1cbiAgLmV2ZW50LWNhcmRfX2RldGFpbHMgZGQgKyBkdCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAuZXZlbnQtY2FyZF9fZGV0YWlscyBkdCwgLmV2ZW50LWNhcmRfX2RldGFpbHMgZGQge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDsgfVxuXG4uZXZlbnQtY2FyZF9fY3RhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDI0cHggNDhweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAxOyB9XG4gIC5ldmVudC1jYXJkX19jdGEgc3BhbixcbiAgLmV2ZW50LWNhcmRfX2N0YSBzdmcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IH1cbiAgLmV2ZW50LWNhcmRfX2N0YTpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkM3MEE7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGNvbnRlbnQ6IFwiXFwwYTBcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAxJSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogLTE7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZXZlbnQtY2FyZF9fY3RhIHtcbiAgICAgIHBhZGRpbmc6IDI0cHggNjRweDsgfSB9XG5cbi5jb2x1bW4gLmV2ZW50LWNhcmQsIC5jb2x1bW5zIC5ldmVudC1jYXJkIHtcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbi5ldmVudC1jYXJkLXJvdyAuY29sdW1uOm50aC1vZi10eXBlKDEpIC5ldmVudC1jYXJkLCAuZXZlbnQtY2FyZC1yb3cgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMSkgLmV2ZW50LWNhcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzYzNjM2O1xuICBjb2xvcjogI0ZGRkZGRjsgfVxuXG4uZXZlbnQtY2FyZC1yb3cgLmNvbHVtbjpudGgtb2YtdHlwZSgzKSAuZXZlbnQtY2FyZCwgLmV2ZW50LWNhcmQtcm93IC5jb2x1bW5zOm50aC1vZi10eXBlKDMpIC5ldmVudC1jYXJkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQzcwQTsgfVxuXG4uZXZlbnQtY2FyZC1yb3cgLmNvbHVtbjpudGgtb2YtdHlwZSgzKSAuZXZlbnQtY2FyZF9fY3RhOmJlZm9yZSwgLmV2ZW50LWNhcmQtcm93IC5jb2x1bW5zOm50aC1vZi10eXBlKDMpIC5ldmVudC1jYXJkX19jdGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM2MzYzNjsgfVxuXG4uZXZlbnQtY2FyZC1yb3cgLmNvbHVtbjpudGgtb2YtdHlwZSgzKTpob3ZlciAuZXZlbnQtY2FyZF9fY3RhLCAuZXZlbnQtY2FyZC1yb3cgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMyk6aG92ZXIgLmV2ZW50LWNhcmRfX2N0YSB7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG5cbi5leHBsb3JlLWJsb2NrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuZXhwbG9yZS1ibG9jayBoMyB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luOiA4cHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuZXhwbG9yZS1ibG9jayBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuMTg3NXJlbTtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIHBhZGRpbmc6IDRweCAxNnB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7IH1cbiAgICAuZXhwbG9yZS1ibG9jayBzcGFuOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkM3MEE7XG4gICAgICBjb250ZW50OiBcIlxcMGEwXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGN1YmljLWJlemllcigwLjY2LCAtMC4zOSwgMC40MSwgMS4zNSk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgNTAlOyB9XG4gIC5leHBsb3JlLWJsb2NrIHN2ZyxcbiAgLmV4cGxvcmUtYmxvY2sgaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5leHBsb3JlLWJsb2NrIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogZmlsbCAwLjM1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIG1hcmdpbi1sZWZ0IDAuMzVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTsgfVxuICAuZXhwbG9yZS1ibG9jayBpIHtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjM1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIG1hcmdpbi1sZWZ0IDAuMzVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTsgfVxuICAuZXhwbG9yZS1ibG9jayBwIHtcbiAgICBwYWRkaW5nOiAwIDE2cHg7IH1cbiAgLmV4cGxvcmUtYmxvY2s6aG92ZXIge1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG4gICAgLmV4cGxvcmUtYmxvY2s6aG92ZXIgc3BhbjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTsgfVxuICAgIC5leHBsb3JlLWJsb2NrOmhvdmVyIHN2ZyB7XG4gICAgICBmaWxsOiAjRkZDNzBBOyB9XG4gICAgLmV4cGxvcmUtYmxvY2s6aG92ZXIgaSB7XG4gICAgICBjb2xvcjogI0ZGQzcwQTsgfVxuICAgIC5leHBsb3JlLWJsb2NrOmhvdmVyIHN2ZyxcbiAgICAuZXhwbG9yZS1ibG9jazpob3ZlciBpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4OyB9XG4gICAgLmV4cGxvcmUtYmxvY2s6aG92ZXIgaW1nIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTsgfVxuXG4uZXhwbG9yZS1ibG9ja19faW1nIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuZXhwbG9yZS1ibG9ja19faW1nIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcbiAgICB3aWR0aDogMTI1JTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0xMi41JTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZXhwbG9yZS1ibG9jayBwOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IC0yNHB4OyB9IH1cblxuLmZvb3Rlci1saW5rcyB7XG4gIG1heC13aWR0aDogMTI1MHB4O1xuICBtYXJnaW46IGF1dG87IH1cblxuLmZvb3Rlci1saW5rc19fYmxvY2sge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgcGFkZGluZzogMzJweCAyNHB4OyB9XG5cbi5mb290ZXItbGlua3NfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4uZm9vdGVyLWxpbmtzX19saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwOyB9XG4gIC5mb290ZXItbGlua3NfX2xpc3QgbGkge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAuZm9vdGVyLWxpbmtzX19saXN0IGEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG9wYWNpdHk6IC42NTtcbiAgICBwYWRkaW5nOiA0cHggMDtcbiAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzIGVhc2UsIHRleHQtZGVjb3JhdGlvbi1jb2xvciAuMnMgZWFzZTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiA1MG1zOyB9XG4gICAgLmZvb3Rlci1saW5rc19fbGlzdCBhOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGN1cnJlbnRDb2xvcjsgfVxuICAuZm9vdGVyLWxpbmtzX19saXN0LmZvb3Rlci1saW5rc19fbGlzdC0taWNvbnM6aG92ZXIgYSB7XG4gICAgb3BhY2l0eTogLjY1OyB9XG4gIC5mb290ZXItbGlua3NfX2xpc3QuZm9vdGVyLWxpbmtzX19saXN0LS1pY29ucyBhIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLmZvb3Rlci1saW5rc19fbGlzdC5mb290ZXItbGlua3NfX2xpc3QtLWljb25zIGE6aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmZvb3Rlci1saW5rcyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyB9IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZm9vdGVyLWxpbmtzIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5mb290ZXItbGlua3NfX2Jsb2NrIHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1pbi1oZWlnaHQ6IDQ1MHB4O1xuICAgIHdpZHRoOiAzMy4zJTsgfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuZm9vdGVyLWxpbmtzIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyOyB9XG4gICAgLmZvb3Rlci1saW5rc19fYmxvY2sge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAgIC5mb290ZXItbGlua3NfX2Jsb2NrOm50aC1jaGlsZCg0bikge1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7IH0gfSB9XG5cbi5oZWFkZXJfX25hdl9fY29udGFpbmVyLFxuLmhlYWRlci1nbG9iYWwtc2VhcmNoX19jb250YWluZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIC5oZWFkZXJfX25hdl9fY29udGFpbmVyLmlzLWFjdGl2ZSxcbiAgLmhlYWRlci1nbG9iYWwtc2VhcmNoX19jb250YWluZXIuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uaGVhZGVyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uaGVhZGVyX19icmFuZGluZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgcGFkZGluZy1yaWdodDogMjRweDsgfVxuICAuaGVhZGVyX19icmFuZGluZyBoMSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuaGVhZGVyX19icmFuZGluZyBzdmcsIC5oZWFkZXJfX2JyYW5kaW5nIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyMDBweDsgfVxuICAuaGVhZGVyX19icmFuZGluZyBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmhlYWRlci1oZXJvLWltYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQzcwQTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5oZWFkZXItaGVyby1pbWFnZV9fY29udGVudCB7XG4gIHBhZGRpbmc6IDI0cHggMTZweCA4cHg7XG4gIHBhZGRpbmc6IDI0cHggMTZweCA4cHg7IH1cblxuLmhlYWRlci1oZXJvLWltYWdlX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMy4zNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmhlYWRlci1oZXJvLWltYWdlX19saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE5OSwgMTAsIDAuNyk7XG4gIGNvbG9yOiAjMjUyNTI1O1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgcGFkZGluZzogMTVweCAxMHB4IDEycHg7XG4gIHBhZGRpbmc6IDE1cHggMTZweCAxMnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNjYsIC0wLjM5LCAwLjQxLCAxLjM1KTtcbiAgd2lsbC1jaGFuZ2U6IGJhY2tncm91bmQtY29sb3I7IH1cbiAgLmhlYWRlci1oZXJvLWltYWdlX19saW5rOmhvdmVyLCAuaGVhZGVyLWhlcm8taW1hZ2VfX2xpbms6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmM3MGE7XG4gICAgY29sb3I6ICMyNTI1MjU7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBjdXJyZW50Q29sb3I7IH1cbiAgLmhlYWRlci1oZXJvLWltYWdlX19saW5rID4gc3ZnIHtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIHdpZHRoOiAxMHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmhlYWRlci1oZXJvLWltYWdlX19saW5rIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgIHBhZGRpbmc6IDdweCAxMHB4IDVweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oZWFkZXItaGVyby1pbWFnZV9fY29udGVudCB7XG4gICAgYm90dG9tOiAxMCU7XG4gICAgbGVmdDogNSU7XG4gICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuaGVhZGVyLWhlcm8taW1hZ2VfX3RpdGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTk5LCAxMCwgMC43KTtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgZm9udC1zaXplOiA1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IC4xNWVtIDA7IH1cbiAgICBAc3VwcG9ydHMgKGJveC1kZWNvcmF0aW9uLWJyZWFrOiBjbG9uZSkge1xuICAgICAgLmhlYWRlci1oZXJvLWltYWdlX190aXRsZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IC0xNnB4IDAgMCByZ2JhKDI1NSwgMjAwLCAxMCwgMC43KSwgMTZweCAwIDAgcmdiYSgyNTUsIDIwMCwgMTAsIDAuNyk7XG4gICAgICAgIGJveC1kZWNvcmF0aW9uLWJyZWFrOiBjbG9uZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7IH0gfVxuICAgIEBzdXBwb3J0cyAoLXdlYmtpdC1ib3gtZGVjb3JhdGlvbi1icmVhazogY2xvbmUpIHtcbiAgICAgIC5oZWFkZXItaGVyby1pbWFnZV9fdGl0bGUge1xuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IC0xNnB4IDAgMCByZ2JhKDI1NSwgMjAwLCAxMCwgMC43KSwgMTZweCAwIDAgcmdiYSgyNTUsIDIwMCwgMTAsIDAuNyk7XG4gICAgICAgIC13ZWJraXQtYm94LWRlY29yYXRpb24tYnJlYWs6IGNsb25lO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTZweDsgfSB9XG4gIC5oZWFkZXItaGVyby1pbWFnZV9fbGluayB7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5oZWFkZXItaGVyby1pbWFnZV9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogNnJlbTsgfSB9XG5cbi5oZXJvLWhlYWRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDIwNUI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uaGVyby1oZWFkZXJfX3RpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAzLjEyNXJlbTtcbiAgbGVmdDogMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC4wMWVtO1xuICBsaW5lLWhlaWdodDogLjk1ZW07XG4gIG1hcmdpbjogMDtcbiAgbWF4LXdpZHRoOiAxMjUwcHg7XG4gIHBhZGRpbmc6IDI0cHggOHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoMzcsIDM3LCAzNywgMC41KTtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDU7IH1cblxuLmhlcm8taGVhZGVyX19tZWRpYSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaGVyby1oZWFkZXJfX21lZGlhOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogIzI1MjUyNTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgzNywgMzcsIDM3LCAwLjY1KSAwJSwgcmdiYSgzNywgMzcsIDM3LCAwKSAxMDAlKTtcbiAgICBib3R0b206IDA7XG4gICAgY29udGVudDogXCJcXDBhMFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogNTAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLmhlcm8taGVhZGVyX19tZWRpYSB2aWRlbywgLmhlcm8taGVhZGVyX19tZWRpYSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBsZWZ0OiAtMjUlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDE1MCU7IH1cbiAgLmhlcm8taGVhZGVyX19tZWRpYSBidXR0b24ge1xuICAgIGJvdHRvbTogMDtcbiAgICBvcGFjaXR5OiAuNjU7XG4gICAgcGFkZGluZzogOHB4IDE2cHggOHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlO1xuICAgIHotaW5kZXg6IDEwOyB9XG4gICAgLmhlcm8taGVhZGVyX19tZWRpYSBidXR0b246aG92ZXIge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuaGVyby1oZWFkZXItLXZpZGVvIC5oZXJvLWhlYWRlcl9fbWVkaWE6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImh0dHA6Ly93d3cud2Rldi5yb2NoZXN0ZXIuZWR1L2JsdWUtcGFnZXMvYXNzZXRzL2ltYWdlcy9kb3QucG5nXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XG4gICAgY29udGVudDogXCJcXDBhMFwiO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMHZ3OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5oZXJvLWhlYWRlcl9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogNHJlbTsgfVxuICAuaGVyby1oZWFkZXJfX21lZGlhIGJ1dHRvbiB7XG4gICAgYm90dG9tOiAxNnB4O1xuICAgIHJpZ2h0OiAxNnB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmhlcm8taGVhZGVyIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5oZXJvLWhlYWRlcl9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogNi4ydnc7XG4gICAgcGFkZGluZzogMjRweDtcbiAgICB3aWR0aDogNjclOyB9XG4gIC5oZXJvLWhlYWRlcl9fbWVkaWEgdmlkZW8sIC5oZXJvLWhlYWRlcl9fbWVkaWEgaW1nIHtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAuaGVyby1oZWFkZXJfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDQuM3Z3O1xuICAgIHBhZGRpbmctbGVmdDogMTB2dztcbiAgICB3aWR0aDogNTUlOyB9IH1cblxuLmltYWdlLWNvbnRlbnQtcm93IHtcbiAgbWFyZ2luOiBhdXRvO1xuICBtYXgtd2lkdGg6IDExODBweDtcbiAgcGFkZGluZzogMjRweCAwOyB9XG5cbi5pbWFnZS1jb250ZW50LXJvd19faW1hZ2Uge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG5cbi5pbWFnZS1jb250ZW50LXJvd19fY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbWF4LXdpZHRoOiAzMmVtOyB9XG4gIC5pbWFnZS1jb250ZW50LXJvd19fY29udGVudCBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogIzI4M0ZBRjtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAuMDc1ZW07IH1cbiAgLmltYWdlLWNvbnRlbnQtcm93X19jb250ZW50IGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDsgfVxuXG4uZmllbGQtbWVkaWEtLWZpZWxkLW1lZGlhLW9lbWJlZC12aWRlbyAuZmllbGQtaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgfVxuXG4uZmllbGQtbWVkaWEtLWZpZWxkLW1lZGlhLW9lbWJlZC12aWRlbyBpZnJhbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4uZmllbGQtbWVkaWEtLWZpZWxkLW1lZGlhLW9lbWJlZC12aWRlby52aWRlby1kZWZhdWx0IHtcbiAgbWF4LXdpZHRoOiA1MDBweDsgfVxuXG4uZmllbGQtbWVkaWEtLWZpZWxkLW1lZGlhLW9lbWJlZC12aWRlby52aWRlby1mdWxsIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5hbGlnbi1jZW50ZXIgLmZpZWxkLW1lZGlhLS1maWVsZC1tZWRpYS1vZW1iZWQtdmlkZW8ge1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4ucGFyYWdyYXBoLS10eXBlLS1tdWx0aS1jb2x1bW4tcm93IC5maWVsZC1tZWRpYS0tZmllbGQtbWVkaWEtb2VtYmVkLXZpZGVvLnZpZGVvLWRlZmF1bHQge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmNrZV9lZGl0YWJsZSAuZmllbGQtbWVkaWEtLWZpZWxkLW1lZGlhLW9lbWJlZC12aWRlbyAuZmllbGQtaXRlbSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHBhZGRpbmctYm90dG9tOiAwOyB9XG5cbi5ja2VfZWRpdGFibGUgLmZpZWxkLW1lZGlhLS1maWVsZC1tZWRpYS1vZW1iZWQtdmlkZW8gaWZyYW1lIHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgcG9zaXRpb246IHN0YXRpYzsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuaW1hZ2UtY29udGVudC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMzJweDsgfVxuICAuaW1hZ2UtY29udGVudC1yb3dfX2ltYWdlIHtcbiAgICB3aWR0aDogMzUlO1xuICAgIGZsZXgtYmFzaXM6IDM1JTsgfVxuICAuaW1hZ2UtY29udGVudC1yb3dfX2NvbnRlbnQge1xuICAgIGZsZXg6IDE7XG4gICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgd2lkdGg6IDY1JTtcbiAgICBmbGV4LWJhc2lzOiA2NSU7IH0gfVxuXG4uaW50cm8tbGVhZCB7XG4gIGNvbG9yOiAjMjUyNTI1O1xuICBmb250LXNpemU6IDEuMzc1cmVtO1xuICBtYXgtd2lkdGg6IDEwNzVweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nOiAwIDI0cHggOHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgei1pbmRleDogMTsgfVxuICAuaW50cm8tbGVhZCBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuLmludHJvLWxlYWRfX3RpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQzcwQTtcbiAgZm9udC1mYW1pbHk6IHV0b3BpYS1zdGQsIEdlb3JnaWEsIHNlcmlmO1xuICBmb250LXNpemU6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW46IDAgLTI0cHggMzJweDtcbiAgcGFkZGluZzogMTVweCAyNXB4OyB9XG5cbi5pbnRyby1sZWFkX19kYXRhLXBvaW50cyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogNDhweCAwIDI0cHg7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmludHJvLWxlYWQge1xuICAgIHBhZGRpbmc6IDAgNjRweCA4cHg7IH1cbiAgLmludHJvLWxlYWRfX3RpdGxlIHtcbiAgICBtYXJnaW46IDhweCAtNDhweCAzMnB4OyB9XG4gIC5pbnRyby1sZWFkX19kYXRhLXBvaW50cyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5pbnRyby1sZWFkIHtcbiAgICBmb250LXNpemU6IDIuMjVyZW07IH1cbiAgLmludHJvLWxlYWRfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAyNHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5pbnRyby1sZWFkX19kYXRhLXBvaW50cyB7XG4gICAgbWFyZ2luOiA2NHB4IDAgMjRweCAyNHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuaW50cm8tbGVhZCB7XG4gICAgcGFkZGluZzogOHB4IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5pbnRyby1sZWFkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAyLjc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE4NzU7IH0gfVxuXG4uZm9vdGVyLWltYWdlLXN0cmlwZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDIwNUI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5mb290ZXItaW1hZ2Utc3RyaXBlX19pbWFnZS1saW5rcyB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmZvb3Rlci1pbWFnZS1zdHJpcGVfX2ltYWdlLWxpbmtzIGEge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDMzLjMlOyB9XG4gICAgLmZvb3Rlci1pbWFnZS1zdHJpcGVfX2ltYWdlLWxpbmtzIGE6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7IH1cbiAgLmZvb3Rlci1pbWFnZS1zdHJpcGVfX2ltYWdlLWxpbmtzIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLmZvb3Rlci1pbWFnZS1zdHJpcGVfX2Jsb2NrIHtcbiAgcGFkZGluZzogNDhweCAyNHB4OyB9XG5cbi5mb290ZXItaW1hZ2Utc3RyaXBlX19zb2NpYWwtbGlua3Mge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7IH1cbiAgLmZvb3Rlci1pbWFnZS1zdHJpcGVfX3NvY2lhbC1saW5rcyBzdmcge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luOiBhdXRvOyB9XG4gIC5mb290ZXItaW1hZ2Utc3RyaXBlX19zb2NpYWwtbGlua3MgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgNHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLmZvb3Rlci1pbWFnZS1zdHJpcGVfX3NvY2lhbC1saW5rcyBhIHtcbiAgICBib3JkZXI6IDNweCBzb2xpZCAjRkZGRkZGO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB3aWR0aDogNDBweDsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogaW5saW5lLWZsZXgpIHtcbiAgICAgIC5mb290ZXItaW1hZ2Utc3RyaXBlX19zb2NpYWwtbGlua3MgYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmZvb3Rlci1pbWFnZS1zdHJpcGVfX2ltYWdlLWxpbmtzLFxuICAuZm9vdGVyLWltYWdlLXN0cmlwZV9fYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdpZHRoOiAzMiU7IH1cbiAgLmZvb3Rlci1pbWFnZS1zdHJpcGVfX2ltYWdlLWxpbmtzOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7IH1cbiAgLmZvb3Rlci1pbWFnZS1zdHJpcGVfX2ltYWdlLWxpbmtzOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpOyB9XG4gIC5mb290ZXItaW1hZ2Utc3RyaXBlX19ibG9jayB7XG4gICAgcGFkZGluZzogOHB4IDI0cHg7IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBmbGV4KSB7XG4gICAgLmZvb3Rlci1pbWFnZS1zdHJpcGUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuZm9vdGVyLWltYWdlLXN0cmlwZV9faW1hZ2UtbGlua3MsXG4gICAgLmZvb3Rlci1pbWFnZS1zdHJpcGVfX2Jsb2NrIHtcbiAgICAgIGZsZXg6IDMzJTtcbiAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmZvb3Rlci1pbWFnZS1zdHJpcGVfX2ltYWdlLWxpbmtzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfSB9XG5cbi5mb290ZXItYm90dG9tX19saW5rcy1saXN0LCAuZm9vdGVyLWJvdHRvbV9fYm90dG9tLWxpbmtzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuZm9vdGVyLWJvdHRvbV9fbGlua3MtbGlzdCA+IGxpLCAuZm9vdGVyLWJvdHRvbV9fYm90dG9tLWxpbmtzID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi5mb290ZXItYm90dG9tIHtcbiAgbWF4LXdpZHRoOiAxMjUwcHg7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZzogNDhweCAyNHB4IDhweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5mb290ZXItYm90dG9tX19saW5rcy1saXN0IHtcbiAgbWFyZ2luOiAzMnB4IDAgNDhweDsgfVxuXG4uZm9vdGVyLWJvdHRvbV9fbGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyODNGQUY7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBwYWRkaW5nOiAxNnB4IDE2cHggOHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmZvb3Rlci1ib3R0b21fX2xpbmsgc3Ryb25nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1OyB9XG4gIC5mb290ZXItYm90dG9tX19saW5rIC5pY29uLWZ3IHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2UtaW47IH1cbiAgLmZvb3Rlci1ib3R0b21fX2xpbms6aG92ZXIsIC5mb290ZXItYm90dG9tX19saW5rOmZvY3VzIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuICAgIC5mb290ZXItYm90dG9tX19saW5rOmhvdmVyIC5pY29uLWZ3LCAuZm9vdGVyLWJvdHRvbV9fbGluazpmb2N1cyAuaWNvbi1mdyB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBpbmxpbmUtZmxleCkge1xuICAgIC5mb290ZXItYm90dG9tX19saW5rIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfSB9XG5cbi5mb290ZXItYm90dG9tX19zZWFyY2gtZm9ybSB7XG4gIG1hcmdpbjogMCBhdXRvIDMycHg7XG4gIG1heC13aWR0aDogMzg0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmZvb3Rlci1ib3R0b21fX3NlYXJjaC1pbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuZm9vdGVyLWJvdHRvbV9fc2VhcmNoLWlucHV0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4uZm9vdGVyLWJvdHRvbV9fc2VhcmNoLXN1Ym1pdCB7XG4gIGJvdHRvbTogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDsgfVxuXG4uZm9vdGVyLWJvdHRvbV9fYm90dG9tLWxpbmtzIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbWFyZ2luOiAwIGF1dG8gODhweDsgfVxuICAuZm9vdGVyLWJvdHRvbV9fYm90dG9tLWxpbmtzIGxpOmFmdGVyIHtcbiAgICBjb250ZW50OiBcInxcIjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIDE2cHg7IH1cbiAgLmZvb3Rlci1ib3R0b21fX2JvdHRvbS1saW5rcyBsaTpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lOyB9XG4gIC5mb290ZXItYm90dG9tX19ib3R0b20tbGlua3MgYSB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmZvb3Rlci1ib3R0b21fX2NvcHlyaWdodCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5mb290ZXItYm90dG9tIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcInRvcC1sZWZ0IHRvcC1yaWdodFwiIFwibWlkZGxlLWxlZnQgbWlkZGxlLXJpZ2h0XCIgXCJib3R0b20gYm90dG9tXCI7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLmZvb3Rlci1ib3R0b21fX2xpbmtzLWxpc3Qge1xuICAgICAgZ3JpZC1hcmVhOiBtaWRkbGUtbGVmdDtcbiAgICAgIG1hcmdpbi10b3A6IDE2cHg7IH1cbiAgICAgIC5mb290ZXItYm90dG9tX19saW5rcy1saXN0ID4gbGkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7IH1cbiAgICAuZm9vdGVyLWJvdHRvbV9fc2VhcmNoLWZvcm0ge1xuICAgICAgZ3JpZC1hcmVhOiB0b3AtcmlnaHQ7XG4gICAgICB3aWR0aDogNDEwcHg7IH1cbiAgICAuZm9vdGVyLWJvdHRvbV9fYm90dG9tLWxpbmtzIHtcbiAgICAgIGdyaWQtYXJlYTogbWlkZGxlLXJpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5mb290ZXItYm90dG9tX19jb3B5cmlnaHQge1xuICAgICAgZ3JpZC1hcmVhOiBib3R0b207IH0gfSB9XG5cbi5tZW51IHtcbiAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAubWVudSBsaSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5tZW51IGxpIHtcbiAgICAgIG91dGxpbmU6IDA7IH1cbiAgICAubWVudSBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAubWVudSBhLFxuICAubWVudSAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07IH1cbiAgLm1lbnUgaW5wdXQsXG4gIC5tZW51IHNlbGVjdCxcbiAgLm1lbnUgYSxcbiAgLm1lbnUgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5tZW51IGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLm1lbnUudmVydGljYWwge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLm1lbnUuZXhwYW5kZWQgbGkge1xuICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgLm1lbnUuc2ltcGxlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLm1lbnUuc2ltcGxlIGxpICsgbGkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgICAubWVudS5zaW1wbGUgYSB7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1lbnUubWVkaXVtLWhvcml6b250YWwge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAubWVudS5tZWRpdW0tZXhwYW5kZWQgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51Lm1lZGl1bS1zaW1wbGUgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgLm1lbnUubGFyZ2UtdmVydGljYWwge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLm1lbnUubGFyZ2UtZXhwYW5kZWQgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51LmxhcmdlLXNpbXBsZSBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cbiAgLm1lbnUubmVzdGVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLm1lbnUuaWNvbi10b3AgYSwgLm1lbnUuaWNvbi1yaWdodCBhLCAubWVudS5pY29uLWJvdHRvbSBhLCAubWVudS5pY29uLWxlZnQgYSB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAubWVudSAuaXMtYWN0aXZlID4gYSB7XG4gICAgYmFja2dyb3VuZDogI2ZmMDAwMDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubWVudSAuYWN0aXZlID4gYSB7XG4gICAgYmFja2dyb3VuZDogI2ZmMDAwMDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubWVudS5hbGlnbi1sZWZ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQgbGkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgIC5tZW51LmFsaWduLXJpZ2h0IGxpIC5zdWJtZW51IGxpIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAubWVudS5hbGlnbi1yaWdodC52ZXJ0aWNhbCBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAubWVudS5hbGlnbi1yaWdodC52ZXJ0aWNhbCBsaSAuc3VibWVudSBsaSB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubWVudS5hbGlnbi1yaWdodCAubmVzdGVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLm1lbnUuYWxpZ24tY2VudGVyIGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLm1lbnUuYWxpZ24tY2VudGVyIGxpIC5zdWJtZW51IGxpIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAubWVudSAubWVudS10ZXh0IHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuXG4ubWVudS1jZW50ZXJlZCA+IC5tZW51IHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLm1lbnUtY2VudGVyZWQgPiAubWVudSBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5tZW51LWNlbnRlcmVkID4gLm1lbnUgbGkgLnN1Ym1lbnUgbGkge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG5cbi5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubWVudS5tZW51LS1zaXRlIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAubWVudS5tZW51LS1zaXRlIGEge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLm1lbnUubWVudS0tc2l0ZSBhOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyODNGQUY7XG4gICAgICBib3R0b206IDhweDtcbiAgICAgIGNvbnRlbnQ6IFwiXFwwYTBcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2Utb3V0O1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubWVudS5tZW51LS1zaXRlIGE6aG92ZXI6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cbi5tZW51Lm1lbnUtLXNpdGUgLnVyLWhlcmUgYTphZnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgcmlnaHQ6IDVweDtcbiAgbGVmdDogYXV0bztcbiAgbWFyZ2luLXRvcDogLTNweDsgfVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmRyb3Bkb3duLm1lbnUgYSB7XG4gIG91dGxpbmU6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaSA+IGEge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmZjAwMDA7IH1cblxuLm5vLWpzIC5kcm9wZG93bi5tZW51IHVsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZHJvcGRvd24ubWVudSAubmVzdGVkLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAxMDAlO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxMDAlOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiAxNHB4OyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDVweDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzE3NzliYTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhOyB9IH1cblxuLmRyb3Bkb3duLm1lbnUuYWxpZ24tcmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bzsgfVxuXG4uaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gIHdpZHRoOiAxMDBweDsgfVxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbC5hbGlnbi1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgYTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNXB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTZweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBub25lO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlOyB9XG4gIC5kcm9wZG93biAuaXMtZHJvcGRvd24tc3VibWVudSBhIHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzE3NzliYTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgbWFyZ2luLXRvcDogLTFweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSA+IGxpIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5uZXdzLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMCAxNnB4IDAgOHB4OyB9XG4gIC5uZXdzLWJsb2NrIGgzIHtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuM3MgZWFzZTsgfVxuXG4ubmV3cy1ibG9ja19faW1hZ2Uge1xuICBtYXJnaW46IDAgLTE2cHggMTZweCAtOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5uZXdzLWJsb2NrX19pbWFnZSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxlZnQ6IC0xMi41JTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XG4gICAgd2lkdGg6IDEyNSU7IH1cblxuLm5ld3MtYmxvY2s6aG92ZXIgaW1nIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOyB9XG5cbi5uZXdzLWJsb2NrOmhvdmVyIGgzIHtcbiAgY29sb3I6ICNGRkM3MEE7IH1cblxuLm5ld3MtY2FyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLm5ld3MtY2FyZDpob3ZlciB7XG4gICAgY29sb3I6IGluaXRpYWw7IH1cbiAgICAubmV3cy1jYXJkOmhvdmVyIGltZyB7XG4gICAgICBvcGFjaXR5OiAuNjtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTsgfVxuICAgIC5uZXdzLWNhcmQ6aG92ZXIgLm5ld3MtY2FyZF9fdGl0bGUge1xuICAgICAgY29sb3I6ICNGRkM3MEE7IH1cblxuLm5ld3MtY2FyZF9faW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyNTJhO1xuICBoZWlnaHQ6IDMyNXB4O1xuICBtaW4taGVpZ2h0OiAzMjVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5uZXdzLWNhcmRfX2ltYWdlIGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNjUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMDAlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBjdWJpYy1iZXppZXIoMC44LCAtMC4wOCwgMC4zNiwgMS4zNSksIHRyYW5zZm9ybSAwLjRzIGN1YmljLWJlemllcigwLjgsIC0wLjA4LCAwLjM2LCAxLjM1KTsgfVxuXG4ubmV3cy1jYXJkX190YWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQ6ICNGRkM3MEE7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ubmV3cy1jYXJkX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS4zMTI1cmVtO1xuICBmb250LXdlaWdodDogOTAwO1xuICBsaW5lLWhlaWdodDogMS4wNTtcbiAgbWFyZ2luOiAyNHB4IDA7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuNHMgY3ViaWMtYmV6aWVyKDAuOCwgLTAuMDgsIDAuMzYsIDEuMzUpO1xuICB3aWxsLWNoYW5nZTogY29sb3I7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubmV3cy1jYXJkX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjIxNzU7IH0gfVxuXG4ubmV3cy1jYXJkX19jb250ZW50IHtcbiAgcGFkZGluZzogMjRweCA0OHB4IDhweCAzMnB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm5ld3MtY2FyZF9fY29udGVudCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDsgfSB9XG5cbi5jb2x1bW4gLm5ld3MtY2FyZCwgLmNvbHVtbnMgLm5ld3MtY2FyZCB7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4ucGVyc29uLWJsb2NrIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAucGVyc29uLWJsb2NrIGgzLFxuICAucGVyc29uLWJsb2NrIHAge1xuICAgIHBhZGRpbmc6IDAgOHB4OyB9XG4gIC5wZXJzb24tYmxvY2sgaDMge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7IH1cbiAgLnBlcnNvbi1ibG9jayBwIHtcbiAgICBjb2xvcjogIzU2NTY1NjtcbiAgICBmb250LXNpemU6IC45cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7IH1cblxuLnNlYXJjaC1tb2RhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzcsIDM3LCAzNywgMC45NSk7XG4gIGJvdHRvbTogMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHBhZGRpbmc6IDk2cHggMjRweCAyNHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjM1cyAuMDFzLCB2aXNpYmlsaXR5IC4zNXMgLjAxcztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiA3NTsgfVxuICAuc2VhcmNoLW1vZGFsLmlzLWFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5zZWFyY2gtbW9kYWxfX2NvbnRlbnQge1xuICBtYXJnaW46IGF1dG87XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG4gIHBhZGRpbmc6IDhweDsgfVxuICAuc2VhcmNoLW1vZGFsX19jb250ZW50ID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnNlYXJjaC1tb2RhbF9fY29udGVudCBoMyB7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7IH1cbiAgLnNlYXJjaC1tb2RhbF9fY29udGVudCB1bCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuc2VhcmNoLW1vZGFsX19jb250ZW50IGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDAgOHB4IDRweCAwO1xuICAgIG9wYWNpdHk6IC43NTtcbiAgICBwYWRkaW5nOiA4cHggOHB4IDhweCAwO1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogY3VycmVudENvbG9yO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2UgNTBtczsgfVxuICAgIC5zZWFyY2gtbW9kYWxfX2NvbnRlbnQgYTpob3ZlciB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIG9wYWNpdHk6IDE7IH1cblxuLnNlYXJjaC1tb2RhbF9fZm9ybSB7XG4gIGNvbG9yOiAjMjUyNTI1O1xuICBtYXJnaW4tYm90dG9tOiA0OHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnNlYXJjaC1tb2RhbF9fZm9ybSBbdHlwZT1cInRleHRcIl0sXG4gIC5zZWFyY2gtbW9kYWxfX2Zvcm0gW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLnNlYXJjaC1tb2RhbF9fZm9ybSBbdHlwZT1cInRleHRcIl0ge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZzogMTZweDsgfVxuICAuc2VhcmNoLW1vZGFsX19mb3JtIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjgzRkFGO1xuICAgIGJvdHRvbTogMDtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogLjg1cmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAuM3B4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdG9wOiAwOyB9XG4gICAgLnNlYXJjaC1tb2RhbF9fZm9ybSBbdHlwZT1cInN1Ym1pdFwiXSBzdmcge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnNlYXJjaC1tb2RhbF9fZm9ybSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOTZweDsgfVxuICAgIC5zZWFyY2gtbW9kYWxfX2Zvcm0gW3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgIGZvbnQtc2l6ZTogMS44NXJlbTtcbiAgICAgIHBhZGRpbmc6IDhweCAxNnB4OyB9XG4gICAgLnNlYXJjaC1tb2RhbF9fZm9ybSBbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBwYWRkaW5nOiAxNnB4IDI0cHg7IH0gfVxuXG4uc2VhcmNoLW1vZGFsLWlzLWFjdGl2ZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnNlYXJjaC1tb2RhbC1pcy1hY3RpdmUgLmxheW91dC1tYWluIHtcbiAgICBmaWx0ZXI6IGJsdXIoNHB4KTsgfVxuXG4uc2VhcmNoLW1vZGFsLXRvZ2dsZSB7XG4gIG1pbi1oZWlnaHQ6IDU2cHg7XG4gIG1pbi13aWR0aDogNTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5zZWFyY2gtbW9kYWwtdG9nZ2xlID4gOmZpcnN0LWNoaWxkIHtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMTsgfVxuICAuc2VhcmNoLW1vZGFsLXRvZ2dsZSA+IDpsYXN0LWNoaWxkIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5zZWFyY2gtbW9kYWwtdG9nZ2xlLmlzLWFjdGl2ZSA+IDpmaXJzdC1jaGlsZCB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuc2VhcmNoLW1vZGFsLXRvZ2dsZS5pcy1hY3RpdmUgPiA6bGFzdC1jaGlsZCB7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4uc2VhcmNoLXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmc6IDJweCA4cHg7IH1cblxuLnNlYXJjaC10b2dnbGVfX2ljb24ge1xuICBjb2xvcjogIzI4M0ZBRjtcbiAgYm9yZGVyOiAycHggc29saWQgIzI4M0ZBRjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA0MHB4OyB9XG5cbi5zZWFyY2gtdG9nZ2xlLS1zZWFyY2ggLnNlYXJjaC10b2dnbGVfX2ljb246YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjgzRkFGO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGNvbnRlbnQ6IFwiXFwwYTBcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjM1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAtMTsgfVxuXG4uc2VhcmNoLXRvZ2dsZS0tc2VhcmNoIC5zZWFyY2gtdG9nZ2xlX19pY29uOmhvdmVyLCAuc2VhcmNoLXRvZ2dsZS0tc2VhcmNoIC5zZWFyY2gtdG9nZ2xlX19pY29uOmZvY3VzIHtcbiAgY29sb3I6ICNGRkZGRkY7IH1cbiAgLnNlYXJjaC10b2dnbGUtLXNlYXJjaCAuc2VhcmNoLXRvZ2dsZV9faWNvbjpob3ZlcjphZnRlciwgLnNlYXJjaC10b2dnbGUtLXNlYXJjaCAuc2VhcmNoLXRvZ2dsZV9faWNvbjpmb2N1czphZnRlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9XG5cbi5zZWFyY2gtdG9nZ2xlLS1jbG9zZSAuc2VhcmNoLXRvZ2dsZV9faWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyODNGQUY7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG5cbi5zdWJoZWFkbGluZS1sZWFkLWhlYWRlciB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiA0OHB4IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuc3ViaGVhZGxpbmUtbGVhZC1oZWFkZXIgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc3ViaGVhZGxpbmUtbGVhZC1oZWFkZXIge1xuICAgIG1heC13aWR0aDogMTA1MHB4O1xuICAgIHdpZHRoOiA4MyU7IH0gfVxuXG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAwZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnNob3ctZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLnNob3ctZm9yLXNyLFxuLnNob3ctb24tZm9jdXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKSAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50OyB9XG5cbi5zaG93LW9uLWZvY3VzOmFjdGl2ZSwgLnNob3ctb24tZm9jdXM6Zm9jdXMge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDsgfVxuXG4uc2hvdy1mb3ItbGFuZHNjYXBlLFxuLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLmhpZGUtZm9yLWxhbmRzY2FwZSxcbi5zaG93LWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuLmhlYWRsaW5lLTEge1xuICBmb250LXNpemU6IDIuMTI1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4yMzU7XG4gIGxldHRlci1zcGFjaW5nOiAtLjVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5oZWFkbGluZS0xIHtcbiAgICAgIGZvbnQtc2l6ZTogMy41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLTFweDsgfSB9XG5cbi5oZWFkbGluZS0yIHtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4yODU7XG4gIGxldHRlci1zcGFjaW5nOiAtLjM1cHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuaGVhZGxpbmUtMiB7XG4gICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4wODM7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLS43NXB4OyB9IH1cblxuLmhlYWRsaW5lLTMge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzO1xuICBsZXR0ZXItc3BhY2luZzogLS4xcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuaGVhZGxpbmUtMyB7XG4gICAgICBmb250LXNpemU6IDIuMjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4yMjI7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLS41cHg7IH0gfVxuXG4uaGVhZGxpbmUtNCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5oZWFkbGluZS00IHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7IH0gfVxuXG4uaGVhZGxpbmUtNSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5oZWFkbGluZS01IHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtOyB9IH1cblxuLmhlYWRsaW5lLTYge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS41NTY7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuaGVhZGxpbmUtNiB7XG4gICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS42OyB9IH1cblxuLmJvZHktMSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5ib2R5LTEge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS40MTY7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLjE1cHg7IH0gfVxuXG4uYm9keS0yIHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNjY3OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmJvZHktMiB7XG4gICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS42OyB9IH1cblxuLmJvZHktMyB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNzU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuYm9keS0zIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS42Njc7IH0gfVxuXG4ub3ZlcmxpbmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNzE0O1xuICBsZXR0ZXItc3BhY2luZzogMS41cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAub3ZlcmxpbmUge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjI1O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDEuNXB4OyB9IH1cblxuLmNhcHRpb24ge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS44NTc7XG4gIGxldHRlci1zcGFjaW5nOiAuMTVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jYXB0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC4xNXB4OyB9IH1cblxuLnByb3hpbWEsXG4uc2Fucy1zZXJpZiB7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbi51dG9waWEsXG4uc2VyaWYge1xuICBmb250LWZhbWlseTogdXRvcGlhLXN0ZCwgR2VvcmdpYSwgc2VyaWY7IH1cblxuLmZ3LTEwMCwgLmZ3LWxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDEwMDsgfVxuXG4uZnctNDAwLCAuZnctbm9ybWFsIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG4uZnctNjAwLCAuZnctc2VtaWJvbGQge1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbi5mdy03MDAsIC5mdy1ib2xkLCAuYiB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLmZ3LTkwMCwgLmZ3LWJsYWNrIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuXG51bC5uby1idWxsZXQsIG9sLm5vLWJ1bGxldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbnVsIC5uby1idWxsZXQsIG9sIC5uby1idWxsZXQge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTsgfVxuXG51bC5pbmxpbmUtbGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgdWwuaW5saW5lLWxpc3QgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG5cbi8qIFRleHQgY29sb3JzICovXG4ueWVsbG93IHtcbiAgY29sb3I6ICNGRkM3MEE7IH1cblxuLmJsdWUge1xuICBjb2xvcjogIzI4M0ZBRjsgfVxuXG4ubmF2eSB7XG4gIGNvbG9yOiAjMDAyMDVCOyB9XG5cbi53aGl0ZSB7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG5cbi5saWdodGVyLWdyZXkge1xuICBjb2xvcjogI0Y0RjRGNDsgfVxuXG4ubGlnaHQtZ3JleSB7XG4gIGNvbG9yOiAjRTdFN0U3OyB9XG5cbi5tZWRpdW0tZ3JleSB7XG4gIGNvbG9yOiAjQzBDMEMwOyB9XG5cbi5kYXJrLWdyZXkge1xuICBjb2xvcjogIzcwNzA3MDsgfVxuXG4uZGFya2VyLWdyZXkge1xuICBjb2xvcjogIzU2NTY1NjsgfVxuXG4uZGFya2VzdC1ncmV5IHtcbiAgY29sb3I6ICMzNjM2MzY7IH1cblxuLmJsYWNrIHtcbiAgY29sb3I6ICMyNTI1MjU7IH1cblxuLyogQmFja2dyb3VuZCBjb2xvcnMgKi9cbi5iZy15ZWxsb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDNzBBOyB9XG5cbi5iZy1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4M0ZBRjsgfVxuXG4uYmctbmF2eSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDIwNUI7IH1cblxuLmJnLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsgfVxuXG4uYmctbGlnaHRlci1ncmV5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y0RjRGNDsgfVxuXG4uYmctbGlnaHQtZ3JleSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFN0U3RTc7IH1cblxuLmJnLW1lZGl1bS1ncmV5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0MwQzBDMDsgfVxuXG4uYmctZGFyay1ncmV5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzcwNzA3MDsgfVxuXG4uYmctZGFya2VyLWdyZXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTY1NjU2OyB9XG5cbi5iZy1kYXJrZXN0LWdyZXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzYzNjM2OyB9XG5cbi5iZy1ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNTI1MjU7IH1cblxuLnBhMCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLnBhMSB7XG4gIHBhZGRpbmc6IDhweDsgfVxuXG4ucGEyIHtcbiAgcGFkZGluZzogMTZweDsgfVxuXG4ucGEzIHtcbiAgcGFkZGluZzogMjRweDsgfVxuXG4ucGE0IHtcbiAgcGFkZGluZzogMzJweDsgfVxuXG4ucGE1IHtcbiAgcGFkZGluZzogNDhweDsgfVxuXG4ucGE2IHtcbiAgcGFkZGluZzogNjRweDsgfVxuXG4ucGE3IHtcbiAgcGFkZGluZzogOTZweDsgfVxuXG4ucGE4IHtcbiAgcGFkZGluZzogMTYwcHg7IH1cblxuLnBsMCB7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4ucGwxIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7IH1cblxuLnBsMiB7XG4gIHBhZGRpbmctbGVmdDogMTZweDsgfVxuXG4ucGwzIHtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4OyB9XG5cbi5wbDQge1xuICBwYWRkaW5nLWxlZnQ6IDMycHg7IH1cblxuLnBsNSB7XG4gIHBhZGRpbmctbGVmdDogNDhweDsgfVxuXG4ucGw2IHtcbiAgcGFkZGluZy1sZWZ0OiA2NHB4OyB9XG5cbi5wbDcge1xuICBwYWRkaW5nLWxlZnQ6IDk2cHg7IH1cblxuLnBsOCB7XG4gIHBhZGRpbmctbGVmdDogMTYwcHg7IH1cblxuLnByMCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLnByMSB7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDsgfVxuXG4ucHIyIHtcbiAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuXG4ucHIzIHtcbiAgcGFkZGluZy1yaWdodDogMjRweDsgfVxuXG4ucHI0IHtcbiAgcGFkZGluZy1yaWdodDogMzJweDsgfVxuXG4ucHI1IHtcbiAgcGFkZGluZy1yaWdodDogNDhweDsgfVxuXG4ucHI2IHtcbiAgcGFkZGluZy1yaWdodDogNjRweDsgfVxuXG4ucHI3IHtcbiAgcGFkZGluZy1yaWdodDogOTZweDsgfVxuXG4ucHI4IHtcbiAgcGFkZGluZy1yaWdodDogMTYwcHg7IH1cblxuLnBiMCB7XG4gIHBhZGRpbmctYm90dG9tOiAwOyB9XG5cbi5wYjEge1xuICBwYWRkaW5nLWJvdHRvbTogOHB4OyB9XG5cbi5wYjIge1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDsgfVxuXG4ucGIzIHtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7IH1cblxuLnBiNCB7XG4gIHBhZGRpbmctYm90dG9tOiAzMnB4OyB9XG5cbi5wYjUge1xuICBwYWRkaW5nLWJvdHRvbTogNDhweDsgfVxuXG4ucGI2IHtcbiAgcGFkZGluZy1ib3R0b206IDY0cHg7IH1cblxuLnBiNyB7XG4gIHBhZGRpbmctYm90dG9tOiA5NnB4OyB9XG5cbi5wYjgge1xuICBwYWRkaW5nLWJvdHRvbTogMTYwcHg7IH1cblxuLnB0MCB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5wdDEge1xuICBwYWRkaW5nLXRvcDogOHB4OyB9XG5cbi5wdDIge1xuICBwYWRkaW5nLXRvcDogMTZweDsgfVxuXG4ucHQzIHtcbiAgcGFkZGluZy10b3A6IDI0cHg7IH1cblxuLnB0NCB7XG4gIHBhZGRpbmctdG9wOiAzMnB4OyB9XG5cbi5wdDUge1xuICBwYWRkaW5nLXRvcDogNDhweDsgfVxuXG4ucHQ2IHtcbiAgcGFkZGluZy10b3A6IDY0cHg7IH1cblxuLnB0NyB7XG4gIHBhZGRpbmctdG9wOiA5NnB4OyB9XG5cbi5wdDgge1xuICBwYWRkaW5nLXRvcDogMTYwcHg7IH1cblxuLnB2MCB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuXG4ucHYxIHtcbiAgcGFkZGluZy10b3A6IDRweDtcbiAgcGFkZGluZy1ib3R0b206IDRweDsgfVxuXG4ucHYyIHtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDsgfVxuXG4ucHYzIHtcbiAgcGFkZGluZy10b3A6IDEycHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4OyB9XG5cbi5wdjQge1xuICBwYWRkaW5nLXRvcDogMTZweDtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7IH1cblxuLnB2NSB7XG4gIHBhZGRpbmctdG9wOiAyNHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjRweDsgfVxuXG4ucHY2IHtcbiAgcGFkZGluZy10b3A6IDMycHg7XG4gIHBhZGRpbmctYm90dG9tOiAzMnB4OyB9XG5cbi5wdjcge1xuICBwYWRkaW5nLXRvcDogNDhweDtcbiAgcGFkZGluZy1ib3R0b206IDQ4cHg7IH1cblxuLnB2OCB7XG4gIHBhZGRpbmctdG9wOiA4MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogODBweDsgfVxuXG4ucGgwIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5waDEge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgcGFkZGluZy1yaWdodDogOHB4OyB9XG5cbi5waDIge1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cblxuLnBoMyB7XG4gIHBhZGRpbmctbGVmdDogMjRweDtcbiAgcGFkZGluZy1yaWdodDogMjRweDsgfVxuXG4ucGg0IHtcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAzMnB4OyB9XG5cbi5waDUge1xuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDQ4cHg7IH1cblxuLnBoNiB7XG4gIHBhZGRpbmctbGVmdDogNjRweDtcbiAgcGFkZGluZy1yaWdodDogNjRweDsgfVxuXG4ucGg3IHtcbiAgcGFkZGluZy1sZWZ0OiA5NnB4O1xuICBwYWRkaW5nLXJpZ2h0OiA5NnB4OyB9XG5cbi5waDgge1xuICBwYWRkaW5nLWxlZnQ6IDE2MHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNjBweDsgfVxuXG4ubWEwIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5tYTEge1xuICBtYXJnaW46IDhweDsgfVxuXG4ubWEyIHtcbiAgbWFyZ2luOiAxNnB4OyB9XG5cbi5tYTMge1xuICBtYXJnaW46IDI0cHg7IH1cblxuLm1hNCB7XG4gIG1hcmdpbjogMzJweDsgfVxuXG4ubWE1IHtcbiAgbWFyZ2luOiA0OHB4OyB9XG5cbi5tYTYge1xuICBtYXJnaW46IDY0cHg7IH1cblxuLm1hNyB7XG4gIG1hcmdpbjogOTZweDsgfVxuXG4ubWE4IHtcbiAgbWFyZ2luOiAxNjBweDsgfVxuXG4ubWwwIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLm1sMSB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7IH1cblxuLm1sMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4OyB9XG5cbi5tbDMge1xuICBtYXJnaW4tbGVmdDogMjRweDsgfVxuXG4ubWw0IHtcbiAgbWFyZ2luLWxlZnQ6IDMycHg7IH1cblxuLm1sNSB7XG4gIG1hcmdpbi1sZWZ0OiA0OHB4OyB9XG5cbi5tbDYge1xuICBtYXJnaW4tbGVmdDogNjRweDsgfVxuXG4ubWw3IHtcbiAgbWFyZ2luLWxlZnQ6IDk2cHg7IH1cblxuLm1sOCB7XG4gIG1hcmdpbi1sZWZ0OiAxNjBweDsgfVxuXG4ubXIwIHtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5tcjEge1xuICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuXG4ubXIyIHtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4OyB9XG5cbi5tcjMge1xuICBtYXJnaW4tcmlnaHQ6IDI0cHg7IH1cblxuLm1yNCB7XG4gIG1hcmdpbi1yaWdodDogMzJweDsgfVxuXG4ubXI1IHtcbiAgbWFyZ2luLXJpZ2h0OiA0OHB4OyB9XG5cbi5tcjYge1xuICBtYXJnaW4tcmlnaHQ6IDY0cHg7IH1cblxuLm1yNyB7XG4gIG1hcmdpbi1yaWdodDogOTZweDsgfVxuXG4ubXI4IHtcbiAgbWFyZ2luLXJpZ2h0OiAxNjBweDsgfVxuXG4ubWIwIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ubWIxIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG5cbi5tYjIge1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbi5tYjMge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG5cbi5tYjQge1xuICBtYXJnaW4tYm90dG9tOiAzMnB4OyB9XG5cbi5tYjUge1xuICBtYXJnaW4tYm90dG9tOiA0OHB4OyB9XG5cbi5tYjYge1xuICBtYXJnaW4tYm90dG9tOiA2NHB4OyB9XG5cbi5tYjcge1xuICBtYXJnaW4tYm90dG9tOiA5NnB4OyB9XG5cbi5tYjgge1xuICBtYXJnaW4tYm90dG9tOiAxNjBweDsgfVxuXG4ubXQwIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4ubXQxIHtcbiAgbWFyZ2luLXRvcDogOHB4OyB9XG5cbi5tdDIge1xuICBtYXJnaW4tdG9wOiAxNnB4OyB9XG5cbi5tdDMge1xuICBtYXJnaW4tdG9wOiAyNHB4OyB9XG5cbi5tdDQge1xuICBtYXJnaW4tdG9wOiAzMnB4OyB9XG5cbi5tdDUge1xuICBtYXJnaW4tdG9wOiA0OHB4OyB9XG5cbi5tdDYge1xuICBtYXJnaW4tdG9wOiA2NHB4OyB9XG5cbi5tdDcge1xuICBtYXJnaW4tdG9wOiA5NnB4OyB9XG5cbi5tdDgge1xuICBtYXJnaW4tdG9wOiAxNjBweDsgfVxuXG4ubXYwIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ubXYxIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7IH1cblxuLm12MiB7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxuLm12MyB7XG4gIG1hcmdpbi10b3A6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IH1cblxuLm12NCB7XG4gIG1hcmdpbi10b3A6IDMycHg7XG4gIG1hcmdpbi1ib3R0b206IDMycHg7IH1cblxuLm12NSB7XG4gIG1hcmdpbi10b3A6IDQ4cHg7XG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7IH1cblxuLm12NiB7XG4gIG1hcmdpbi10b3A6IDY0cHg7XG4gIG1hcmdpbi1ib3R0b206IDY0cHg7IH1cblxuLm12NyB7XG4gIG1hcmdpbi10b3A6IDk2cHg7XG4gIG1hcmdpbi1ib3R0b206IDk2cHg7IH1cblxuLm12OCB7XG4gIG1hcmdpbi10b3A6IDE2MHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNjBweDsgfVxuXG4ubWgwIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDsgfVxuXG4ubWgxIHtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cblxuLm1oMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7IH1cblxuLm1oMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xuICBtYXJnaW4tcmlnaHQ6IDI0cHg7IH1cblxuLm1oNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMnB4O1xuICBtYXJnaW4tcmlnaHQ6IDMycHg7IH1cblxuLm1oNSB7XG4gIG1hcmdpbi1sZWZ0OiA0OHB4O1xuICBtYXJnaW4tcmlnaHQ6IDQ4cHg7IH1cblxuLm1oNiB7XG4gIG1hcmdpbi1sZWZ0OiA2NHB4O1xuICBtYXJnaW4tcmlnaHQ6IDY0cHg7IH1cblxuLm1oNyB7XG4gIG1hcmdpbi1sZWZ0OiA5NnB4O1xuICBtYXJnaW4tcmlnaHQ6IDk2cHg7IH1cblxuLm1oOCB7XG4gIG1hcmdpbi1sZWZ0OiAxNjBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxNjBweDsgfVxuXG4udGwge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50ciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50YyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAudGwtbSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAudHItbSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLnRjLW0ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC50bC1sIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC50ci1sIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAudGMtbCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuLnR0YyB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG5cbi50dGwge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG5cbi50dHUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi50dG4ge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAudHRjLW0ge1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG4gIC50dGwtbSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsgfVxuICAudHR1LW0ge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnR0bi1tIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC50dGMtbCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cbiAgLnR0bC1sIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG4gIC50dHUtbCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAudHRuLWwge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9IH1cblxuLmYtc3ViaGVhZGxpbmUge1xuICBmb250LXNpemU6IDNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi5mLWhlYWRsaW5lIHtcbiAgZm9udC1zaXplOiAzLjEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGluZS1oZWlnaHQ6IDAuOTU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uZjEge1xuICBmb250LXNpemU6IDIuMjVyZW07IH1cblxuLmYyIHtcbiAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMDc3OyB9XG5cbi5mMyB7XG4gIGZvbnQtc2l6ZTogMS42MjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjA3NzsgfVxuXG4uZjQge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogOTAwOyB9XG5cbi5mNSB7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4uZjYge1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5mLWhlYWRsaW5lIHtcbiAgICBmb250LXNpemU6IDRyZW07IH1cbiAgLmYxIHtcbiAgICBmb250LXNpemU6IDNyZW07IH1cbiAgLmYyIHtcbiAgICBmb250LXNpemU6IDEuNjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xMTsgfVxuICAuZjMge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtOyB9XG4gIC5mNCB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmYtaGVhZGxpbmUge1xuICAgIGZvbnQtc2l6ZTogNC44MTI1cmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuXG4vKiBCb29rIHBhcmFncmFwaCBzdHlsZSAtIHBhcmFncmFwaHMgYXJlIGluZGVudGVkIHdpdGggbm8gdmVydGljYWwgc3BhY2luZy4gKi9cbi5pbmRlbnQge1xuICB0ZXh0LWluZGVudDogMWVtO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5zbWFsbC1jYXBzIHtcbiAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzOyB9XG5cbi8qIENvbWJpbmUgdGhpcyBjbGFzcyB3aXRoIGEgd2lkdGggdG8gdHJ1bmNhdGUgdGV4dCAob3IganVzdCBsZWF2ZSBhcyBpcyB0byB0cnVuY2F0ZSBhdCB3aWR0aCBvZiBjb250YWluaW5nIGVsZW1lbnQuICovXG4udHJ1bmNhdGUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfVxuXG4uc21hbGwtY2FwcyB7XG4gIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgZm9udC12YXJpYW50LWNhcHM6IHNtYWxsLWNhcHM7XG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJzbWNwXCI7IH1cblxuLnRudW0ge1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwidG51bVwiOyB9XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxLjVlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5sZWFkIHtcbiAgICAgIGZvbnQtc2l6ZTogMS44ZW07IH0gfVxuXG4uc3RhdCB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuICBwICsgLnN0YXQge1xuICAgIG1hcmdpbi10b3A6IC0xcmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5mb290ZXItbGlua3NfX2Jsb2NrIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgICAgIC5mb290ZXItbGlua3NfX2Jsb2NrOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIGdyaWQtcm93OiAyIC8gNDsgfVxuICAgICAgLmZvb3Rlci1saW5rc19fYmxvY2s6bnRoLWNoaWxkKDMpLCAuZm9vdGVyLWxpbmtzX19ibG9jazpudGgtY2hpbGQoNCkge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTsgfVxuICAgICAgLmZvb3Rlci1saW5rc19fYmxvY2s6bnRoLWNoaWxkKDMpLCAuZm9vdGVyLWxpbmtzX19ibG9jazpudGgtY2hpbGQoNSkge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTsgfSB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmZvb3Rlci1saW5rc19fYmxvY2s6bnRoLWNoaWxkKDMpLCAuZm9vdGVyLWxpbmtzX19ibG9jazpudGgtY2hpbGQoNCksIC5mb290ZXItbGlua3NfX2Jsb2NrOm50aC1jaGlsZCg1KSwgLmZvb3Rlci1saW5rc19fYmxvY2s6bnRoLWNoaWxkKDYpIHtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC5mb290ZXItbGlua3NfX2Jsb2NrOm50aC1jaGlsZCgzKSwgLmZvb3Rlci1saW5rc19fYmxvY2s6bnRoLWNoaWxkKDYpIHtcbiAgICAgIGdyaWQtcm93OiAxLzM7IH1cbiAgICAuZm9vdGVyLWxpbmtzX19ibG9jazpudGgtY2hpbGQoMykge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICAgIGdyaWQtY29sdW1uOiAyLzM7IH1cbiAgICAuZm9vdGVyLWxpbmtzX19ibG9jazpudGgtY2hpbGQoNikge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAgICAgZ3JpZC1jb2x1bW46IDQvNTsgfVxuICAgIC5mb290ZXItbGlua3NfX2Jsb2NrOm50aC1jaGlsZCgyKSB7XG4gICAgICBncmlkLXJvdzogMi8zOyB9XG4gICAgLmZvb3Rlci1saW5rc19fYmxvY2s6bnRoLWNoaWxkKDIpLCAuZm9vdGVyLWxpbmtzX19ibG9jazpudGgtY2hpbGQoNSkge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7IH0gfSB9XG5cbi5saW5lIHtcbiAgLypcbiAgICB1c2luZyB0aGUgcG9zdGlvbjphYnNvbHV0ZTsgbWV0aG9kIGFsbG93cyBmb3IgZm9yIGJldHRlciB2aXN1YWwgYWxpZ25tZW50XG4gICAgdGhlcmUgaXMgYW5vdGhlciBtZXRob2Qgb2YganVzdCB1c2luZyBtYXJnaW4gYW5kIGtlZXBpbmcgdGhlIHBzdWVkbyBlbGVtZW50XG4gICAgaW4gZmxvdy4gYnV0IHdoZW4geW91IHRyeSB0byBhbGlnbiBoZWFkZXJzIHdpdGggYSBsaW5rIHRvIGl0cyBzaWRlLCB0aGUgYmFyXG4gICAgY2F1c2VzIHRoaW5ncyB0byBsb29rIG1pcy1hbGlnbmVkIGV2ZW50IGlmIHlvdSBzZXQgYWxpZ24taXRlbXM6Y2VudGVyO1xuICAgICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAxNXB4OyB9XG4gIC5saW5lOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQzcwQTtcbiAgICBjb250ZW50OiBcIlxcMGEwXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogOHB4O1xuICAgIGxlZnQ6IDJweDtcbiAgICBtYXgtd2lkdGg6IDEyMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDBweDtcbiAgICB3aWR0aDogMjAlOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5saW5lOmJlZm9yZSB7XG4gICAgICAgIGxlZnQ6IDA7IH0gfVxuXG4uc2VyaWYubGluZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLmJnLWRhcmtlc3QtZ3JleSBhOmhvdmVyIHtcbiAgY29sb3I6ICNDMEMwQzA7IH1cblxuLyokbmF2eTogIzAwMjA1QjtcbiRibHVlOiAjMjgzRkFGO1xuJHNoaWVsZC1ibHVlOiAjMDA0NTdmO1xuJHllbGxvdzogI0ZGQzcwQTtcbiRsaWdodGVyLWdyZXk6ICNGNEY0RjQ7XG4kbGlnaHQtZ3JleTogI0U3RTdFNztcbiRtZWRpdW0tZ3JleTogI0MwQzBDMDsgXG4kZGFyay1ncmV5OiAjNzg3ODc4O1xuJGRhcmtlci1ncmV5OiM1NjU2NTY7XG4kYmxhY2s6ICMyNTI1MjU7XG5cbiRzYW5zLXNlcmlmOiBwcm94aW1hIG5vdmEsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsqL1xuYm9keSxcbmgxLFxuLmgxLFxuaDIsXG4uaDIsXG5oMyxcbi5oMyxcbmg0LFxuLmg0LFxuaDUsXG4uaDUsXG5oNixcbi5oNiB7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7IH1cblxuYm9keSB7XG4gIGNvbG9yOiAjMzYzNjM2ICFpbXBvcnRhbnQ7IH1cblxuYm9keSBoMSB7XG4gIGZvbnQtc2l6ZTogMy40MzMxMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgY29sb3I6ICMzNjM2MzY7IH1cblxuYm9keSBoMiB7XG4gIGZvbnQtc2l6ZTogMi43NDY4OHJlbTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgY29sb3I6ICMzNjM2MzY7IH1cblxuYm9keSBoMyB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMS41cmVtOyB9XG5cbmJvZHkgaDQge1xuICBmb250LXNpemU6IDEuNzU4MTJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjMzYzNjM2OyB9XG5cbmJvZHkgaDIuc2VyaWYge1xuICBmb250LWZhbWlseTogdXRvcGlhLXN0ZCwgR2VvcmdpYSwgc2VyaWYgIWltcG9ydGFudDsgfVxuXG5ib2R5IGg1IHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAxLjQwNjI1cmVtOyB9XG5cbi5oZXJvLWhlYWRlciAuaGVyby1oZWFkZXJfX3RpdGxlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXdlaWdodDogOTAwOyB9XG5cbmgxIHtcbiAgbWFyZ2luLWJvdHRvbTogNDhweDsgfVxuXG5oMywgLmgzIHtcbiAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMDc3O1xuICBtYXJnaW4tdG9wOiAyNHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgaDMsIC5oMyB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjExOyB9IH1cblxubGkgcCB7XG4gIG1hcmdpbi1ib3R0b206IGluaGVyaXQ7IH1cblxubWFpbiBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogIzI4M0ZBRjtcbiAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMC4wNzVlbTsgfVxuXG4ucGF0aC1mcm9udHBhZ2Uge1xuICBiYWNrZ3JvdW5kOiAjRjRGNEY0OyB9XG5cbi55ZWxsb3ctYm90dG9tIHtcbiAgYm9yZGVyLWJvdHRvbTogNXB4ICNmZmM3MGEgc29saWQ7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxubmF2IGEge1xuICBjb2xvcjogI0Y0RjRGNDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuICBuYXYgYTpob3ZlciB7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgbmF2IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG5cbm5hdiAuZHJvcGRvd24ubWVudSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgbmF2IC5kcm9wZG93bi5tZW51IGEge1xuICAgIHBhZGRpbmc6IDEycHggMnB4IDdweCAycHggIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgbmF2IC5kcm9wZG93bi5tZW51IGE6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHdpZHRoOiAwJTtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB0cmFuc2l0aW9uOiAwLjI1cyBjdWJpYy1iZXppZXIoMC42NiwgLTAuMzksIDAuNDEsIDEuMzUpO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7IH1cbiAgICBuYXYgLmRyb3Bkb3duLm1lbnUgYTpob3ZlcjphZnRlciB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICBuYXYgLmRyb3Bkb3duLm1lbnUgYTpmaXJzdC1vZi10eXBlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxubmF2IC5icmVhZGNydW1icyBhOmhvdmVyLCBuYXYgLmJyZWFkY3J1bWJzIGE6Zm9jdXMge1xuICBjb2xvcjogIzAwMjA1YjsgfVxuXG5uYXYgLmJyZWFkY3J1bWJzIGxpIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBjdXJzb3I6IGF1dG87XG4gIGNvbG9yOiAjNTY1NjU2OyB9XG5cbiNhbm5vdW5jZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjRkZDNzBBO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjMjUyNTI1OyB9XG4gICNhbm5vdW5jZW1lbnQgaDMge1xuICAgIG1hcmdpbi10b3A6IDBweDsgfVxuICAjYW5ub3VuY2VtZW50IGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgI2Fubm91bmNlbWVudCBhOmhvdmVyLCAjYW5ub3VuY2VtZW50IGE6Zm9jdXMge1xuICAgICAgY29sb3I6ICMyNTI1MjU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgI2Fubm91bmNlbWVudCBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICNhbm5vdW5jZW1lbnQgLnB0MSB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cbiAgI2Fubm91bmNlbWVudCAuY2VsbCB7XG4gICAgcGFkZGluZzogOHB4IDA7IH1cblxuLnNpZGViYXIgbmF2IGEge1xuICBjb2xvcjogIzI4M0ZBRjsgfVxuICAuc2lkZWJhciBuYXYgYTpob3ZlciB7XG4gICAgY29sb3I6ICMwMDIwNWI7IH1cblxuZGl2I3NpZGViYXItc2Vjb25kIHtcbiAgbWFyZ2luLXRvcDogNzZweDtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjsgfVxuXG4uYmxvY2stcmNsLWZvdW5kYXRpb24tbWFpbi1tZW51IGE6OmFmdGVyIHtcbiAgY29sb3I6ICNDMEMwQzA7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvdHRvbTogMXB4O1xuICBwYWRkaW5nOiAwIDBweCA1cHggNXB4O1xuICBtYXJnaW46IDRweCAwcHggMnB4IDRweDsgfVxuXG4jYmxvY2stc2Vjb25kYXJ5bmF2aWdhdGlvbiB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZsb2F0OiByaWdodDsgfVxuICAjYmxvY2stc2Vjb25kYXJ5bmF2aWdhdGlvbiBhIHtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogMTVweCAwcHg7IH1cblxuLmJyYW5kaW5nLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFN0U3RTc7IH1cbiAgLmJyYW5kaW5nLWhlYWRlciBpbWcge1xuICAgIG1heC1oZWlnaHQ6IDYwcHg7IH1cbiAgLmJyYW5kaW5nLWhlYWRlciAuYmxvY2stcmNsLWZvdW5kYXRpb24tc2l0ZWJyYW5kaW5nIHtcbiAgICBmb250LXNpemU6IDMxcHg7IH1cbiAgICAuYnJhbmRpbmctaGVhZGVyIC5ibG9jay1yY2wtZm91bmRhdGlvbi1zaXRlYnJhbmRpbmcgYSB7XG4gICAgICBjb2xvcjogIzAwNDU3ZjsgfVxuXG4uYmxvY2stbmF2aWdhdGlvbmhvdXJzIHtcbiAgY29sb3I6ICMzNjM2MzY7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMTVweDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5ibG9jay1uYXZpZ2F0aW9uaG91cnMge1xuICAgICAgZm9udC1zaXplOiAxcmVtOyB9IH1cbiAgLmJsb2NrLW5hdmlnYXRpb25ob3VycyBhLFxuICAuYmxvY2stbmF2aWdhdGlvbmhvdXJzIGRpdiB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGNvbG9yOiAjNzA3MDcwOyB9XG4gIC5ibG9jay1uYXZpZ2F0aW9uaG91cnMgLmJ1dHRvbiB7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBtYXJnaW46IDAgMCAwIDNweDsgfVxuXG4vKiBsdSdzIGNvZGUgKi9cbi5vZmYtY2FudmFzLWNvbnRlbnQgLmhlcm8taGVhZGVyIHtcbiAgcG9zaXRpb246IHN0YXRpYzsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50IC5oZXJvLWhlYWRlciAuaGVyby1oZWFkZXJfX21lZGlhIHtcbiAgICBwb3NpdGlvbjogc3RhdGljOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAuaGVyby1oZWFkZXIgLmhlcm8taGVhZGVyX19tZWRpYSBpbWcge1xuICAgICAgcG9zaXRpb246IHN0YXRpYzsgfVxuXG4uaGVyby1oZWFkZXJfX21lZGlhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IG5vbmU7IH1cblxuI21haW4tbmF2LW1lbnUge1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAyMDViO1xuICAtd2Via2l0LWJveC1hbGlnbjogZmxleC1zdGFydDtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgLW1zLWZsZXgtYWxpZ246IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi50b3AtYmFyICNpbnB1dEJveCB7XG4gIG1hcmdpbjogMDsgfVxuICAudG9wLWJhciAjaW5wdXRCb3g6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjZmZmOyB9XG5cbi52aWV3cy1leHBvc2VkLWZvcm0gLmZvcm0tYWN0aW9ucy5qcy1mb3JtLXdyYXBwZXIuZm9ybS13cmFwcGVyICNlZGl0LXN1Ym1pdC1zZWFyY2hzb2xyIHtcbiAgYm9yZGVyOiAycHggc29saWQgIzI4M2ZhZjsgfVxuXG4udmlld3MtZXhwb3NlZC1mb3JtIC5mb3JtLWFjdGlvbnMuanMtZm9ybS13cmFwcGVyLmZvcm0td3JhcHBlciAjZWRpdC1yZXNldCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6ICMyODNmYWY7XG4gIGNvbG9yOiAjMjgzZmFmO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB0cmFuc2l0aW9uOiAwLjI1cyBjdWJpYy1iZXppZXIoMC40NSwgMC4wNSwgMC41NSwgMC45NSk7XG4gIGJvcmRlcjogMnB4IHNvbGlkOyB9XG4gIC52aWV3cy1leHBvc2VkLWZvcm0gLmZvcm0tYWN0aW9ucy5qcy1mb3JtLXdyYXBwZXIuZm9ybS13cmFwcGVyICNlZGl0LXJlc2V0OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjgzZmFmO1xuICAgIGNvbG9yOiAjZmZmOyB9XG5cbi52aWV3cy1yb3cgLnNlYXJjaHJvdyBhIHtcbiAgY29sb3I6ICMzNjM2MzY7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogOTAwOyB9XG4gIC52aWV3cy1yb3cgLnNlYXJjaHJvdyBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzI4M2ZhZjsgfVxuICAudmlld3Mtcm93IC5zZWFyY2hyb3cgYSBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuLnZpZXdzLXJvdyAuc2VhcmNoc29sci11c2VyLXdyYXBwZXIgLnNlYXJjaHNvbHItdXNlci1pbmZvIC5zZWFyY2hzb2xyLXVzZXItbmFtZSBhIHtcbiAgY29sb3I6ICMzNjM2MzY7IH1cbiAgLnZpZXdzLXJvdyAuc2VhcmNoc29sci11c2VyLXdyYXBwZXIgLnNlYXJjaHNvbHItdXNlci1pbmZvIC5zZWFyY2hzb2xyLXVzZXItbmFtZSBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzI4M2ZhZjsgfVxuICAudmlld3Mtcm93IC5zZWFyY2hzb2xyLXVzZXItd3JhcHBlciAuc2VhcmNoc29sci11c2VyLWluZm8gLnNlYXJjaHNvbHItdXNlci1uYW1lIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjMjgzZmFmOyB9XG5cbi52aWV3cy1yb3cgLnNlYXJjaHNvbHItdXNlci13cmFwcGVyIC5zZWFyY2hzb2xyLXVzZXItaW5mbyAuc2VhcmNoc29sci1lbWFpbCB7XG4gIGNvbG9yOiAjMzYzNjM2OyB9XG5cbi52aWV3cy1yb3cgLnNlYXJjaHNvbHItdXNlci13cmFwcGVyIC5zZWFyY2hzb2xyLXVzZXItaW5mbyAuc2VhcmNoc29sci11c2VyLXBob25lIHtcbiAgY29sb3I6ICMzNjM2MzY7IH1cblxuLnBhZ2VyIC5wYWdpbmF0aW9uLnBhZ2VyX19pdGVtcy5qcy1wYWdlcl9faXRlbXMgLnBhZ2VyX19pdGVtIGE6aG92ZXIge1xuICBjb2xvcjogIzBhMGEwYTsgfVxuXG4uYmxvY2stcmNsLWZvdW5kYXRpb24tcGFnZS10aXRsZSBoMSB7XG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7IH1cblxuLmJsb2NrLXJjbC1mb3VuZGF0aW9uLWJyZWFkY3J1bWJzIG5hdiAuYnJlYWRjcnVtYnMge1xuICBtYXJnaW46IDE1cHggMHB4IDIwcHggMTVweDsgfVxuXG4uYmcteWVsbG93IC5ncmlkLXggLmNlbGwgYSB7XG4gIGNvbG9yOiAjMzYzNjM2OyB9XG4gIC5iZy15ZWxsb3cgLmdyaWQteCAuY2VsbCBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzI4M2ZhZjsgfVxuXG4uYWR2YW5jZWRfc2VhcmNoIGEge1xuICBjb2xvcjogd2hpdGU7IH1cblxuLmZpZWxkLWJsb2NrLWNvbnRlbnQtLWJvZHkgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIC5yb3cgYTpob3ZlciBoMyB7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4uZmllbGQtYmxvY2stY29udGVudC0tYm9keSAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gLnJvdyBhOmhvdmVyIHAge1xuICBjb2xvcjogd2hpdGU7IH1cblxuLmZpZWxkLWJsb2NrLWNvbnRlbnQtLWJvZHkgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIC5yb3cgYSBoMyB7XG4gIGNvbG9yOiAjMzYzNjM2OyB9XG5cbi5maWVsZC1ibG9jay1jb250ZW50LS1ib2R5IC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSAucm93IGEgcCB7XG4gIGNvbG9yOiAjMzYzNjM2OyB9XG5cbi5ldmVudC1jYXJkLXJvdyAuY29sdW1uIGEsIC5ldmVudC1jYXJkLXJvdyAuY29sdW1ucyBhIHtcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjMzYzNjM2OyB9XG5cbi5idXR0b24ueWVsbG93IHtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmYzcwYTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIHBhZGRpbmc6IDAuNWVtIDAuNzVlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCwgcGFkZGluZyAwLjI1cyBlYXNlLW91dDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLmJ1dHRvbi55ZWxsb3c6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjNzBhO1xuICBjb2xvcjogIzI1MjUyNTtcbiAgcGFkZGluZzogMC41ZW0gMS4zMTI1cmVtOyB9XG5cbi5idXR0b24uYmx1ZSB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGNvbG9yOiAjMjgzZmFmOyB9XG5cbi5idXR0b24uYmx1ZTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7IH1cblxuLmJsb2NrLXJjbC1mb3VuZGF0aW9uLWNvbnRlbnQgYXJ0aWNsZSAuZ3JpZC14IC5zbWFsbC05IC5tYjAge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi5ibG9jay1yY2wtZm91bmRhdGlvbi1jb250ZW50IGFydGljbGUgLmdyaWQteCAuc21hbGwtOSAuZGFyay1ncmV5IGEge1xuICBjb2xvcjogIzcwNzA3MDsgfVxuXG4uYmxvY2stcmNsLWZvdW5kYXRpb24tY29udGVudCBhcnRpY2xlIHVsIGxpIGEge1xuICBjb2xvcjogIzcwNzA3MDsgfVxuXG4uYnV0dG9uLmJsdWUge1xuICBib3JkZXI6IDJweCBzb2xpZDtcbiAgbWFyZ2luOiAyM3B4IDAgMXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiAjMjgzZmFmO1xuICBjb2xvcjogIzI4M2ZhZjtcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHBhZGRpbmc6IDAuNWVtIDAuNzVlbTtcbiAgdHJhbnNpdGlvbjogMC4yNXMgY3ViaWMtYmV6aWVyKDAuNDUsIDAuMDUsIDAuNTUsIDAuOTUpOyB9XG4gIC5idXR0b24uYmx1ZTpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMC41ZW0gMS4zMTI1cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyODNmYWY7IH1cblxuLmZpZWxkIC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSBwIGEge1xuICBjb2xvcjogIzM2MzYzNjsgfVxuICAuZmllbGQgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIHAgYTpob3ZlciB7XG4gICAgY29sb3I6ICMyODNmYWY7IH1cblxuLmhlcm8taGVhZGVyIC5oZXJvLWhlYWRlcl9fdGl0bGUge1xuICB6LWluZGV4OiAxOyB9XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjZjRmNGY0OyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLmdyaWQteCB7XG4gICAgbWF4LXdpZHRoOiA3OC4xMjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAuZ3JpZC14IC5sYXJnZS02Lm1lZGl1bS02LnNtYWxsLTEyLmNlbGwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLmdyaWQteCAjbWFpbiB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9XG5cbi5maWVsZCAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIGRpdiBoMyB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4xMTtcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbi10b3A6IDI0cHg7IH1cblxuLnZpZXdzLWZpZWxkLnZpZXdzLWZpZWxkLXRpdGxlIC5maWVsZC1jb250ZW50IGEge1xuICBjb2xvcjogIzM2MzYzNjsgfVxuICAudmlld3MtZmllbGQudmlld3MtZmllbGQtdGl0bGUgLmZpZWxkLWNvbnRlbnQgYTpob3ZlciB7XG4gICAgY29sb3I6ICMyODNmYWY7IH1cblxuI3BhcmFncmFwaC04IC5maWVsZCAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIC5yb3cgLmNvbHVtbiwgI3BhcmFncmFwaC04IC5maWVsZCAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIC5yb3cgLmNvbHVtbnMge1xuICBwYWRkaW5nOiA1cHg7IH1cbiAgI3BhcmFncmFwaC04IC5maWVsZCAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIC5yb3cgLmNvbHVtbiAudmlld3MtZmllbGQgLmZpZWxkLWNvbnRlbnQgLmV2ZW50LWNhcmQuYmcteWVsbG93LCAjcGFyYWdyYXBoLTggLmZpZWxkIC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSAudmlld3MtZWxlbWVudC1jb250YWluZXIgLnJvdyAuY29sdW1ucyAudmlld3MtZmllbGQgLmZpZWxkLWNvbnRlbnQgLmV2ZW50LWNhcmQuYmcteWVsbG93IHtcbiAgICBjb2xvcjogIzM2MzYzNiAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDMwcHggMzhweCAxNXB4IDM4cHg7XG4gICAgaGVpZ2h0OiAxOTBweCAhaW1wb3J0YW50OyB9XG4gICAgI3BhcmFncmFwaC04IC5maWVsZCAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIC5yb3cgLmNvbHVtbiAudmlld3MtZmllbGQgLmZpZWxkLWNvbnRlbnQgLmV2ZW50LWNhcmQuYmcteWVsbG93IC5ldmVudC1jYXJkX19kYXRlLCAjcGFyYWdyYXBoLTggLmZpZWxkIC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSAudmlld3MtZWxlbWVudC1jb250YWluZXIgLnJvdyAuY29sdW1ucyAudmlld3MtZmllbGQgLmZpZWxkLWNvbnRlbnQgLmV2ZW50LWNhcmQuYmcteWVsbG93IC5ldmVudC1jYXJkX19kYXRlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAgICNwYXJhZ3JhcGgtOCAuZmllbGQgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIC52aWV3cy1lbGVtZW50LWNvbnRhaW5lciAucm93IC5jb2x1bW4gLnZpZXdzLWZpZWxkIC5maWVsZC1jb250ZW50IC5ldmVudC1jYXJkLmJnLXllbGxvdyAuZXZlbnQtY2FyZF9fY3RhLCAjcGFyYWdyYXBoLTggLmZpZWxkIC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSAudmlld3MtZWxlbWVudC1jb250YWluZXIgLnJvdyAuY29sdW1ucyAudmlld3MtZmllbGQgLmZpZWxkLWNvbnRlbnQgLmV2ZW50LWNhcmQuYmcteWVsbG93IC5ldmVudC1jYXJkX19jdGEge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGhlaWdodDogMTBweDsgfVxuICAgICAgI3BhcmFncmFwaC04IC5maWVsZCAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIC5yb3cgLmNvbHVtbiAudmlld3MtZmllbGQgLmZpZWxkLWNvbnRlbnQgLmV2ZW50LWNhcmQuYmcteWVsbG93IC5ldmVudC1jYXJkX19jdGEgc3BhbiwgI3BhcmFncmFwaC04IC5maWVsZCAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIC5yb3cgLmNvbHVtbnMgLnZpZXdzLWZpZWxkIC5maWVsZC1jb250ZW50IC5ldmVudC1jYXJkLmJnLXllbGxvdyAuZXZlbnQtY2FyZF9fY3RhIHNwYW4ge1xuICAgICAgICBvcGFjaXR5OiAwOyB9XG5cbi5vZmYtY2FudmFzLXdyYXBwZXIgLmlubmVyLXdyYXAub2ZmLWNhbnZhcy13cmFwcGVyLWlubmVyIHtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDsgfVxuICAub2ZmLWNhbnZhcy13cmFwcGVyIC5pbm5lci13cmFwLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lciAuZ3JpZC14IHtcbiAgICBtYXgtd2lkdGg6IDc4LjEyNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAub2ZmLWNhbnZhcy13cmFwcGVyIC5pbm5lci13cmFwLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lciAuZ3JpZC14IC5sYXJnZS02Lm1lZGl1bS02LnNtYWxsLTEyLmNlbGwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZmllbGQtcGFyYWdyYXBoLS1maWVsZC1ob3Vycyxcbi5maWVsZC1wYXJhZ3JhcGgtLWZpZWxkLWV4Y2VwdGlvbnMge1xuICBtYXJnaW4tbGVmdDogMTZweDsgfVxuXG5ib2R5IC5kaWFsb2ctb2ZmLWNhbnZhcy1tYWluLWNhbnZhcyAub2ZmLWNhbnZhcy13cmFwcGVyICNpbm5lci13cmFwIC5ncmlkLXggI21haW4ge1xuICB3aWR0aDogMTAwJTsgfVxuICBib2R5IC5kaWFsb2ctb2ZmLWNhbnZhcy1tYWluLWNhbnZhcyAub2ZmLWNhbnZhcy13cmFwcGVyICNpbm5lci13cmFwIC5ncmlkLXggI21haW4gc2VjdGlvbiAubm9kaXNwbGF5IGRpdiAuYmxvY2stcmNsLWZvdW5kYXRpb24tY29udGVudCBhcnRpY2xlIC52aWV3LW1vZGUtZnVsbCAuaDMge1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxLjVyZW07IH1cblxuLmJvZHkuZmllbGQuZmllbGQtbm9kZS0tYm9keS5maWVsZC1uYW1lLWJvZHkuZmllbGQtdHlwZS10ZXh0LXdpdGgtc3VtbWFyeS5maWVsZC1sYWJlbC1oaWRkZW4gLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIHRhYmxlIHRib2R5IHtcbiAgYm9yZGVyOiAxcHggc29saWQgc2lsdmVyOyB9XG5cbi5maWVsZC5maWVsZC1wYXJhZ3JhcGgtLWZpZWxkLXRleHQtYXJlYS5maWVsZC1uYW1lLWZpZWxkLXRleHQtYXJlYS5maWVsZC10eXBlLXRleHQtbG9uZy5maWVsZC1sYWJlbC1oaWRkZW4gLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIHRhYmxlIHRib2R5IHtcbiAgYm9yZGVyOiAxcHggc29saWQgc2lsdmVyOyB9XG5cbi5ncmlkLXggLmxhcmdlLTQge1xuICB3aWR0aDogMzIlOyB9XG4gIC5ncmlkLXggLmxhcmdlLTQgLnBhcmFncmFwaCAuZmllbGQgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIGgzIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xMTsgfVxuICAgIC5ncmlkLXggLmxhcmdlLTQgLnBhcmFncmFwaCAuZmllbGQgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIGgzIGEge1xuICAgICAgY29sb3I6ICMzNjM2MzY7IH1cbiAgICAgIC5ncmlkLXggLmxhcmdlLTQgLnBhcmFncmFwaCAuZmllbGQgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIGgzIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzI4M2ZhZjsgfVxuICAuZ3JpZC14IC5sYXJnZS00IC5wYXJhZ3JhcGggLmZpZWxkIC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSB1bCBsaSBhIHtcbiAgICBjb2xvcjogIzM2MzYzNjsgfVxuICAgIC5ncmlkLXggLmxhcmdlLTQgLnBhcmFncmFwaCAuZmllbGQgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIHVsIGxpIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICMyODNmYWY7IH1cblxuLmZlYXR1cmVkLnJvdyAuY29sdW1uIGRpdiBzcGFuIC5ldmVudC1jYXJkIC5jb2xsZWN0aW9uLWNvbnRlbnQtY29udGFpbmVyIC5ldmVudC1jYXJkX19kYXRlLCAuZmVhdHVyZWQucm93IC5jb2x1bW5zIGRpdiBzcGFuIC5ldmVudC1jYXJkIC5jb2xsZWN0aW9uLWNvbnRlbnQtY29udGFpbmVyIC5ldmVudC1jYXJkX19kYXRlIHtcbiAgY29sb3I6ICMwYTBhMGE7IH1cblxuLmZlYXR1cmVkLnJvdyAuY29sdW1uIGRpdiBzcGFuIC5ldmVudC1jYXJkOmhvdmVyIC5jb2xsZWN0aW9uLWNvbnRlbnQtY29udGFpbmVyIC5ldmVudC1jYXJkX19kYXRlLCAuZmVhdHVyZWQucm93IC5jb2x1bW5zIGRpdiBzcGFuIC5ldmVudC1jYXJkOmhvdmVyIC5jb2xsZWN0aW9uLWNvbnRlbnQtY29udGFpbmVyIC5ldmVudC1jYXJkX19kYXRlIHtcbiAgY29sb3I6ICMzNjM2MzY7IH1cblxuLmZlYXR1cmVkLnJvdyAuY29sdW1uIGRpdiBzcGFuIC5ldmVudC1jYXJkOmhvdmVyIC5jb2xsZWN0aW9uLWNvbnRlbnQtY29udGFpbmVyIC5kZXNjcmlwdGlvbiBwLCAuZmVhdHVyZWQucm93IC5jb2x1bW5zIGRpdiBzcGFuIC5ldmVudC1jYXJkOmhvdmVyIC5jb2xsZWN0aW9uLWNvbnRlbnQtY29udGFpbmVyIC5kZXNjcmlwdGlvbiBwIHtcbiAgY29sb3I6ICMzNjM2MzY7IH1cblxuLnN1Ym1lbnUgLmlzLXN1Ym1lbnUtaXRlbSBhIHtcbiAgY29sb3I6ICMzNjM2MzY7IH1cblxuLnJvdyAuY29sdW1ucyBhIHtcbiAgY29sb3I6ICMzNjM2MzY7IH1cbiAgLnJvdyAuY29sdW1ucyBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzI4M2ZhZjsgfVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IC5ncmlkLXggI3NpZGViYXItc2Vjb25kIHtcbiAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfVxuXG4jcGFyYWdyYXBoLTI0MTMgLmdyaWQteCAubGFyZ2UtMyAucGFyYWdyYXBoIC5maWVsZCAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gaDMge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTE7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogOTAwOyB9XG4gICNwYXJhZ3JhcGgtMjQxMyAuZ3JpZC14IC5sYXJnZS0zIC5wYXJhZ3JhcGggLmZpZWxkIC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSBoMyBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuI3BhcmFncmFwaC0yOTMzIC5pbWFnZS1jb250ZW50LXJvd19fY29udGVudCBoNCB7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbiNwYXJhZ3JhcGgtMjkzMyAuaW1hZ2UtY29udGVudC1yb3dfX2NvbnRlbnQgLmZpZWxkIC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSBwIHN0cm9uZyBzcGFuIHtcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cblxuLmZpZWxkIC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSBwIC5hbHQuYnV0dG9uLnllbGxvdyB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICB0cmFuc2l0aW9uOiAwLjI1cyBjdWJpYy1iZXppZXIoMC40NSwgMC4wNSwgMC41NSwgMC45NSk7IH1cbiAgLmZpZWxkIC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSBwIC5hbHQuYnV0dG9uLnllbGxvdzpob3ZlciB7XG4gICAgcGFkZGluZzogMC41ZW0gMS4zMTI1cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmM3MGE7XG4gICAgY29sb3I6ICMyNTI1MjU7IH1cbiAgLmZpZWxkIC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSBwIC5hbHQuYnV0dG9uLnllbGxvdzpmb2N1cyB7XG4gICAgcGFkZGluZzogMC41ZW0gMS4zMTI1cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmM3MGE7XG4gICAgY29sb3I6ICMyNTI1MjU7IH1cblxuI2Jsb2NrLXN0dWRpb3hnZXRpbnRvdWNoIC5ib2R5IC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSBkaXYgLmJ1dHRvbiB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuI3BhcmFncmFwaC0xNDUwIC5maWVsZCAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIC5mZWF0dXJlZCAuY29sdW1uLCAjcGFyYWdyYXBoLTE0NTAgLmZpZWxkIC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSAudmlld3MtZWxlbWVudC1jb250YWluZXIgLmZlYXR1cmVkIC5jb2x1bW5zIHtcbiAgcGFkZGluZzogNXB4OyB9XG5cbiNmb290ZXItZmlyc3Qge1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07IH1cblxuLmJvdHRvbS1iYXIgLmdyaWQteCB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4vKiBtYWtpbmcgdGhpcyBzbyB0aGF0IC5pbmxpbmUgd29ya3MgZm9yIGRpc3BsYXlpbmcgaW5saW5lICovXG4uaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lOyB9XG5cbi5jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLyogYnV0Li4uLndlIGhhdmUgdG8gb3ZlcnJpZGUgaXQgZm9yIGhvdXJzIGluIHRoZSBmb290ZXIgKi9cbiNmb290ZXItZmlyc3QgLmlubGluZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KTsgfVxuXG5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjMDAyMDViOyB9XG4gIGhlYWRlciAuZHJvcGRvd24ubWVudSxcbiAgaGVhZGVyIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICBoZWFkZXIgYnV0dG9uIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuICBoZWFkZXIgW3R5cGU9XCJ0ZXh0XCJdLFxuICBoZWFkZXIgW3R5cGU9XCJwYXNzd29yZFwiXSxcbiAgaGVhZGVyIFt0eXBlPVwiZGF0ZVwiXSxcbiAgaGVhZGVyIFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG4gIGhlYWRlciBbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICBoZWFkZXIgW3R5cGU9XCJtb250aFwiXSxcbiAgaGVhZGVyIFt0eXBlPVwid2Vla1wiXSxcbiAgaGVhZGVyIFt0eXBlPVwiZW1haWxcIl0sXG4gIGhlYWRlciBbdHlwZT1cIm51bWJlclwiXSxcbiAgaGVhZGVyIFt0eXBlPVwic2VhcmNoXCJdLFxuICBoZWFkZXIgW3R5cGU9XCJ0ZWxcIl0sXG4gIGhlYWRlciBbdHlwZT1cInRpbWVcIl0sXG4gIGhlYWRlciBbdHlwZT1cInVybFwiXSxcbiAgaGVhZGVyIFt0eXBlPVwiY29sb3JcIl0sXG4gIGhlYWRlciB0ZXh0YXJlYSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQ6ICMyODNGQUY7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGhlaWdodDogNDJweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBmb250LXNpemU6IDE1cHggIWltcG9ydGFudDsgfVxuICBoZWFkZXIgaW5wdXRbdHlwZT0ndGV4dCddOmZvY3VzLFxuICBoZWFkZXIgaW5wdXRbdHlwZT0ndGV4dCddOmFjdGl2ZSxcbiAgaGVhZGVyIGlucHV0W3R5cGU9J3RleHQnXSB7XG4gICAgYmFja2dyb3VuZDogIzI4M0ZBRiAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyODNGQUYgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gIGhlYWRlciBmb3JtIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IH1cbiAgICBoZWFkZXIgZm9ybSAuZHJvcGRvd24ubWVudSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMjgzRkFGO1xuICAgICAgaGVpZ2h0OiA0MjtcbiAgICAgIGhlaWdodDogNDJweDtcbiAgICAgIHBhZGRpbmc6IDlweCAxMXB4O1xuICAgICAgY29sb3I6ICNGRkZGRkY7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2ZmZmZmZjMwOyB9XG4gICAgICBoZWFkZXIgZm9ybSAuZHJvcGRvd24ubWVudSBzdmcge1xuICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAycHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7IH1cblxubWFpbiBoZWFkZXIge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0OyB9XG5cbi5zZWFyY2hfYmFyIC5zZWFyY2gtcGFuZWwgbGkge1xuICB3aWR0aDogbWF4LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLnNlYXJjaF9iYXIgLnNlYXJjaF9iYXIgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5jb3Zlci1zZWN0aW9uIC5oZXJvLXNlYXJjaC1jb250YWluZXIge1xuICB3aWR0aDogODAlO1xuICBtYXJnaW46IGF1dG87XG4gIG1heC13aWR0aDogMTA5MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDsgfVxuICAuY292ZXItc2VjdGlvbiAuaGVyby1zZWFyY2gtY29udGFpbmVyIC5zZWFyY2gtcGFuZWwgbGkge1xuICAgIHdpZHRoOiBtYXgtY29udGVudCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMTAwJTsgfVxuXG4uY292ZXItc2VjdGlvbiAuc2VhcmNoX2JhciB7XG4gIHBhZGRpbmctdG9wOiA0MHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogYXV0bzsgfVxuICAuY292ZXItc2VjdGlvbiAuc2VhcmNoX2JhciAuZHJvcGRvd24ubWVudSxcbiAgLmNvdmVyLXNlY3Rpb24gLnNlYXJjaF9iYXIgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gIC5jb3Zlci1zZWN0aW9uIC5zZWFyY2hfYmFyIGJ1dHRvbiB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmNvdmVyLXNlY3Rpb24gLnNlYXJjaF9iYXIgbGkge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nOiAyMHB4IDIzcHggMTRweCAxOHB4OyB9XG4gIC5jb3Zlci1zZWN0aW9uIC5zZWFyY2hfYmFyIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICBoZWlnaHQ6IDY1cHg7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG4gIC5jb3Zlci1zZWN0aW9uIC5zZWFyY2hfYmFyIGJ1dHRvbiB7XG4gICAgaGVpZ2h0OiA2NXB4O1xuICAgIHdpZHRoOiA1NXB4O1xuICAgIHBhZGRpbmc6IDE3cHg7XG4gICAgY29sb3I6ICMyNTI1MjU7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjsgfVxuXG4uYWR2YW5jZWRfc2VhcmNoIHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7IH1cblxuLmJsb2NrLXNlYXJjaGJveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDQycHg7IH1cbiAgLmJsb2NrLXNlYXJjaGJveCAuc2VhcmNoX2JhciB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsgfVxuICAuYmxvY2stc2VhcmNoYm94IC5hZHZhbmNlZF9zZWFyY2gge1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIG1hcmdpbi10b3A6IC05cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBwYWRkaW5nOiAxcHggNnB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7IH1cbiAgICAuYmxvY2stc2VhcmNoYm94IC5hZHZhbmNlZF9zZWFyY2ggYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuYmxvY2stc2VhcmNoYm94IC5hZHZhbmNlZF9zZWFyY2ggYTpob3ZlciB7XG4gICAgICBjb2xvcjogI0Y0RjRGNDsgfVxuICAgIC5ibG9jay1zZWFyY2hib3ggLmFkdmFuY2VkX3NlYXJjaCAuYWR2YW5jZWRfc2VhcmNoOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NjU2NTY7XG4gICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjAxbXM7IH1cblxuLmFkdmFuY2VkX3NlYXJjaCBhOmhvdmVyIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50OyB9XG5cbmhlYWRlciAuYWR2YW5jZWRfc2VhcmNoIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uY292ZXItc2VjdGlvbiB1bC5kcm9wZG93bi5tZW51IHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHdpZHRoOiBhdXRvO1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiA2NXB4O1xuICBtaW4td2lkdGg6IDI1MHB4OyB9XG4gIC5jb3Zlci1zZWN0aW9uIHVsLmRyb3Bkb3duLm1lbnUgc3ZnIHtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAycHg7IH1cblxuLnNlcnZpY2UtcGFnZS1oZWFkZXIgaDEge1xuICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07IH1cblxuLnNlcnZpY2UtaGlnaGxpZ2h0IHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgZm9udC1zaXplOiAyMHB4OyB9XG5cbi5ub2Rpc3BsYXkgLmhpZ2hsaWdodC13cmFwIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucHJvamVjdC1wYWdlLXJpZ2h0LmxhcmdlLTMge1xuICBwYWRkaW5nOiAxLjJlbSAwIDA7IH1cblxuLnByb2plY3QtaGlnaGxpZ2h0LXdyYXBwZXIge1xuICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG5cbi5wcm9qZWN0LXBhZ2UtaGVhZGVyIGgxIHtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNWVtOyB9XG5cbi5wcm9qZWN0LWhpZ2hsaWdodCB7XG4gIGZvbnQtc2l6ZTogMjBweDsgfVxuXG4vKiBTdHlsZSBmb3IgdGhlIGRvdCAqL1xuLnByb2plY3Qtc3RhdHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI3M2ZhZjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuXG4ucHJvamVjdC1zdGF0dXMge1xuICBwYWRkaW5nOiAwLjc1ZW07XG4gIGNvbG9yOiAjMjUyNTI1O1xuICBiYWNrZ3JvdW5kOiAjZmZjNzBhO1xuICBtYXJnaW46IDAuNWVtIDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5wcm9qZWN0LXdlYnNpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMyODNmYWY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyODNmYWY7XG4gIHBhZGRpbmc6IDAuOWVtIDAuNzVlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4ucHJvamVjdC13ZWJzaXRlIGE6aG92ZXIge1xuICBjb2xvcjogd2hpdGU7IH1cblxudWwubWVudS5kcm9wZG93bi1tZW51LnN1Ym1lbnUuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIudmVydGljYWwuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgd2lkdGg6IG1heC1jb250ZW50OyB9XG5cbi5zZWFyY2gtY29udGFpbmVyLnNtYWxsIGJ1dHRvbiB7XG4gIGhlaWdodDogNDJweDtcbiAgd2lkdGg6IDMycHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGJhY2tncm91bmQ6ICMyODNGQUY7IH1cblxuLmZpZWxkLW5hbWUtZmllbGQtbWVkaWEtZ2FsbGVyeSAuZmllbGQtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4OyB9XG5cbmZvb3RlciB7XG4gIGJhY2tncm91bmQ6ICMyNTI1MjU7XG4gIGJvcmRlci10b3A6IDhweCBzb2xpZCAjRkZDNzBBO1xuICBtYXJnaW4tdG9wOiA1MHB4OyB9XG4gIGZvb3RlciAubWVudSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICBmb290ZXIgLmdyaWQteCB7XG4gICAgcGFkZGluZzogNTBweCAwOyB9XG4gIGZvb3RlciAuYmxvY2stdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIHNhbnMtc2VyaWY7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuICBmb290ZXIgdWwsXG4gIGZvb3RlciB1bC5tZW51LFxuICBmb290ZXIgLmJsb2NrLXZpZXdzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTBweDsgfVxuICBmb290ZXIgdWwgbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSk7IH1cbiAgZm9vdGVyIGEge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjUpOyB9XG5cbmZvb3RlciB1bC5tZW51IGxpLFxuZm9vdGVyIHVsIGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KTsgfVxuXG5mb290ZXIgdWwubWVudSBsaSBhLFxuZm9vdGVyIHVsIGxpIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSk7IH1cblxuZm9vdGVyIHVsLm1lbnUgbGkgYSB7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KTsgfVxuXG5mb290ZXIgdWwubWVudSBsaSBhOmhvdmVyLFxuZm9vdGVyIHVsIGxpIGE6aG92ZXIsXG5mb290ZXIgLm5hdi1saWIgYTpob3ZlciB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50OyB9XG5cbmZvb3RlciAuaXRlbXMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgc2Fucy1zZXJpZjtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBwYWRkaW5nOiAycHggMCAycHggMHB4O1xuICB0cmFuc2l0aW9uOiAwLjJzOyB9XG5cbi5ib3R0b20tYmFyLmNhbGxvdXQuZm9vdGVyLWxvZ29zIHtcbiAgYmFja2dyb3VuZDogIzI1MjUyNTtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7IH1cblxuLmJvdHRvbS1iYXIuY2FsbG91dC5zZWNvbmRhcnkge1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogIzI1MjUyNTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHBhZGRpbmctYm90dG9tOiAxMDBweDsgfVxuICAuYm90dG9tLWJhci5jYWxsb3V0LnNlY29uZGFyeSBhIHtcbiAgICBjb2xvcjogI0U3RTdFNzsgfVxuICAuYm90dG9tLWJhci5jYWxsb3V0LnNlY29uZGFyeSBhOmhvdmVyIHtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuXG4uY29weXJpZ2h0IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSk7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG4uZm9vdGVyLWxvZ29zIC5sb2dvIHtcbiAgbWF4LWhlaWdodDogNTBweDsgfVxuXG4uY2VsbCA+IGEge1xuICBkaXNwbGF5OiBpbml0aWFsOyB9XG5cbi5sYXJnZS02LmNlbGw6YWN0aXZlLFxuLmdyaWQteDphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBpbml0aWFsOyB9XG5cbi5pbWFnZS1jb250ZW50LXJvd19fY29udGVudCBoNCB7XG4gIG1hcmdpbi1ib3R0b206IDBweDsgfVxuXG4udG9vbGJhci1tZW51LWFkbWluaXN0cmF0aW9uIHVsLm1lbnUgbGkubWVudS1pdGVtIHtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbm5hdiA6YWN0aXZlLFxuLm1lbnVpdGVtIDphY3RpdmUsXG4ubWVudSA6YWN0aXZlLFxudWwgOmFjdGl2ZSxcbnVsLm1lbnUgOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGluaXRpYWw7IH1cblxuLmJsb2NrLXJjbC1mb3VuZGF0aW9uLWxvY2FsLXRhc2tzIGxpLFxuLmJsb2NrLXJjbC1mb3VuZGF0aW9uLWxvY2FsLXRhc2tzLS0yIGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5ibG9jay1yY2wtZm91bmRhdGlvbi1sb2NhbC10YXNrcyBsaSBhLFxuICAuYmxvY2stcmNsLWZvdW5kYXRpb24tbG9jYWwtdGFza3MtLTIgbGkgYSB7XG4gICAgYm9yZGVyOiAwcHg7IH1cblxuLnRpdGxlLXdyYXAge1xuICBtYXJnaW4tdG9wOiAwLjVlbTsgfVxuXG4udmlld3MtZWxlbWVudC1jb250YWluZXIgZGl2ID4gaDMgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjNTY1NjU2O1xuICBmb250LXdlaWdodDogNDAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIGRpdiA+IGgzIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxcmVtOyB9IH1cblxuLmZlYXR1cmVkLWJveGVzIC5jZWxsLFxuLmZlYXR1cmVkIC5jZWxsIHtcbiAgcGFkZGluZzogNXB4OyB9XG4gIC5mZWF0dXJlZC1ib3hlcyAuY2VsbCA+IGRpdixcbiAgLmZlYXR1cmVkIC5jZWxsID4gZGl2IHtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmZlYXR1cmVkLWJveGVzIC5jZWxsIC5ldmVudC1jYXJkLmJnLXllbGxvdyxcbiAgLmZlYXR1cmVkIC5jZWxsIC5ldmVudC1jYXJkLmJnLXllbGxvdyB7XG4gICAgYmFja2dyb3VuZDogI0ZGQzcwQTtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgcGFkZGluZzogMzBweCAzOHB4IDE1cHggMzhweDtcbiAgICBoZWlnaHQ6IDE5MHB4OyB9XG4gICAgLmZlYXR1cmVkLWJveGVzIC5jZWxsIC5ldmVudC1jYXJkLmJnLXllbGxvdyAuZXZlbnQtY2FyZF9fZGF0ZSxcbiAgICAuZmVhdHVyZWQgLmNlbGwgLmV2ZW50LWNhcmQuYmcteWVsbG93IC5ldmVudC1jYXJkX19kYXRlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAgIC5mZWF0dXJlZC1ib3hlcyAuY2VsbCAuZXZlbnQtY2FyZC5iZy15ZWxsb3cgc3Bhbi5kZXNjcmlwdGlvbixcbiAgICAuZmVhdHVyZWQgLmNlbGwgLmV2ZW50LWNhcmQuYmcteWVsbG93IHNwYW4uZGVzY3JpcHRpb24ge1xuICAgICAgZm9udC1zaXplOiAxN3B4OyB9XG4gICAgLmZlYXR1cmVkLWJveGVzIC5jZWxsIC5ldmVudC1jYXJkLmJnLXllbGxvdyAuZXZlbnQtY2FyZF9fY3RhLFxuICAgIC5mZWF0dXJlZCAuY2VsbCAuZXZlbnQtY2FyZC5iZy15ZWxsb3cgLmV2ZW50LWNhcmRfX2N0YSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgaGVpZ2h0OiAxMHB4OyB9XG4gICAgICAuZmVhdHVyZWQtYm94ZXMgLmNlbGwgLmV2ZW50LWNhcmQuYmcteWVsbG93IC5ldmVudC1jYXJkX19jdGEgc3BhbixcbiAgICAgIC5mZWF0dXJlZCAuY2VsbCAuZXZlbnQtY2FyZC5iZy15ZWxsb3cgLmV2ZW50LWNhcmRfX2N0YSBzcGFuIHtcbiAgICAgICAgb3BhY2l0eTogMDsgfVxuICAgICAgICAuZmVhdHVyZWQtYm94ZXMgLmNlbGwgLmV2ZW50LWNhcmQuYmcteWVsbG93IC5ldmVudC1jYXJkX19jdGEgc3BhbiA6aG92ZXIsXG4gICAgICAgIC5mZWF0dXJlZCAuY2VsbCAuZXZlbnQtY2FyZC5iZy15ZWxsb3cgLmV2ZW50LWNhcmRfX2N0YSBzcGFuIDpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5mZWF0dXJlZC1ib3hlcyAuY2VsbCAuZXZlbnQtY2FyZC5iZy15ZWxsb3cgYSxcbiAgICAuZmVhdHVyZWQgLmNlbGwgLmV2ZW50LWNhcmQuYmcteWVsbG93IGEge1xuICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIGZvbnQtc2l6ZTogMjJweDsgfVxuXG4ucGFyYWdyYXBoLS10eXBlLS10ZXh0LWFyZWEsXG4ucGFyYWdyYXBoLS10eXBlLS1pbWFnZS1jb250ZW50LXJvdyxcbi5wYXJhZ3JhcGgtLXR5cGUtLW11bHRpLWNvbHVtbi1yb3cge1xuICBjbGVhcjogYm90aDsgfVxuXG4uZXh0cmEtcGFkZGluZyB7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4ucGFyYWdyYXBoIHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG5hLmZlYXR1cmUtbGluayB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIHBhZGRpbmc6IDMwcHggMjBweCA0cHggMTBweDtcbiAgbWFyZ2luOiAwIDEwcHggMTBweCAxMHB4O1xuICB3aWR0aDogNDclOyB9XG5cbmEuZmVhdHVyZS1saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzAwMjA1YjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRyYW5zaXRpb246IDAuNHM7IH1cblxuLm5vZGUtLXR5cGUtc3BlY2lhbC1wYWdlIC5ibG9jay1yY2wtZm91bmRhdGlvbi1wYWdlLXRpdGxlLFxuLm5vZGUtLXR5cGUtc3BhY2UgLmJsb2NrLXJjbC1mb3VuZGF0aW9uLXBhZ2UtdGl0bGUsXG4ubm9kZS0tdHlwZS1jb2xsYWJvcmF0b3IgLmJsb2NrLXJjbC1mb3VuZGF0aW9uLXBhZ2UtdGl0bGUsXG4ucGF0aC11c2VyIC5ibG9jay1yY2wtZm91bmRhdGlvbi1wYWdlLXRpdGxlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZmllbGQtbmFtZS1maWVsZC1hdWRpZW5jZSA+IC5maWVsZC1pdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmZpZWxkLW5hbWUtZmllbGQtYXVkaWVuY2UgPiAuZmllbGQtaXRlbXMgPiAuZmllbGQtaXRlbSB7XG4gICAgcGFkZGluZy1yaWdodDogMzJweDsgfVxuXG4uYWNjb3JkaW9uIHtcbiAgYmFja2dyb3VuZDogbm9uZTsgfVxuXG4uYWNjb3JkaW9uLXRpdGxlIHtcbiAgY29sb3I6ICMyNTI1MjU7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgcGFkZGluZzogMXJlbSAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjRTdFN0U3O1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMC4xcyBlYXNlLWluLW91dDsgfVxuXG4uYWNjb3JkaW9uLXRpdGxlLmlzLWFjdGl2ZSxcbmEuYWNjb3JkaW9uLXRpdGxlW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgYm9yZGVyOiBub25lOyB9XG5cbmEuYWNjb3JkaW9uLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4uYWNjb3JkaW9uLXRpdGxlOmhvdmVyLCAuYWNjb3JkaW9uLXRpdGxlOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogbm9uZTsgfVxuXG4uYWNjb3JkaW9uLXRpdGxlOmhvdmVyIHtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICMwMDQ1N2Y7IH1cblxuLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cblxuLmFjY29yZGlvbi1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0U3RTdFNztcbiAgcGFkZGluZzogMCAwIDFyZW07IH1cblxuLmFjY29yZGlvbi1pdGVtOmxhc3QtY2hpbGQgPiAuYWNjb3JkaW9uLXRpdGxlLFxuLmFjY29yZGlvbi1pdGVtOmxhc3QtY2hpbGQgPiAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICBib3JkZXI6IG5vbmU7IH1cblxuLmJ1dHRvbi1ncm91cCAuYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxNXB4IDMwcHg7XG4gIGNvbG9yOiAjMjUyNTI1O1xuICBiYWNrZ3JvdW5kOiAjRTdFN0U3O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuYnV0dG9uLWdyb3VwIC5idXR0b24gLnNlY29uZGFyeTpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNzg3ODc4OyB9XG5cbi5idXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2ZmYzcwYTtcbiAgY29sb3I6ICMyNTI1MjU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuLnN0YWZmIC52aWV3cy1yb3cge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBtYXJnaW46IDVweDtcbiAgcGFkZGluZzogMTBweCAwIDEwcHggMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5zdGFmZiAudmlld3Mtcm93IC5lZGl0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA4cHg7XG4gICAgcmlnaHQ6IDdweDtcbiAgICBtYXJnaW46IGF1dG87IH1cbiAgLnN0YWZmIC52aWV3cy1yb3cgLmpvYi10aXRsZSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi5zdGFmZiAudmlld3MtZXhwb3NlZC1mb3JtIHtcbiAgbWFyZ2luOiA1MHB4IDA7IH1cbiAgLnN0YWZmIC52aWV3cy1leHBvc2VkLWZvcm0gLmZvcm0taXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cbiAgICAuc3RhZmYgLnZpZXdzLWV4cG9zZWQtZm9ybSAuZm9ybS1pdGVtIGxhYmVsIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7IH1cbiAgICAuc3RhZmYgLnZpZXdzLWV4cG9zZWQtZm9ybSAuZm9ybS1pdGVtIGlucHV0IHtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgLnN0YWZmIC52aWV3cy1leHBvc2VkLWZvcm0gLmZvcm0tYWN0aW9ucyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLnN0YWZmIC52aWV3cy1leHBvc2VkLWZvcm0gLmZvcm0tYWN0aW9ucyAuYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDBweDsgfVxuXG5oZWFkZXIgLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAzMnB4O1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTExcHg7XG4gIGNvbG9yOiBibGFjazsgfVxuXG4uZHJvcGRvd24ubWVudSB7XG4gIHotaW5kZXg6IDE7IH1cblxubGkuaXMtc3VibWVudS1pdGVtLmlzLWRyb3Bkb3duLXN1Ym1lbnUtaXRlbSB7XG4gIHBhZGRpbmc6IDA7IH1cblxudWwubWVudS5kcm9wZG93bi1tZW51LnN1Ym1lbnUuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIudmVydGljYWwuanMtYWN0aXZlLWRyb3Bkb3duLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gIHdpZHRoOiAzMDBweDsgfVxuXG4uZHJvcGRvd24gLmlzLWRyb3Bkb3duLXN1Ym1lbnUgYSB7XG4gIHBhZGRpbmc6IDAuN3JlbTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDY1cHg7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMXB4O1xuICBjb2xvcjogYmxhY2s7IH1cblxuLmRyb3Bkb3duIC5pcy1kcm9wZG93bi1zdWJtZW51IGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjRjRGNEY0OyB9XG5cbmxpLmlzLXN1Ym1lbnUtaXRlbS5pcy1kcm9wZG93bi1zdWJtZW51LWl0ZW0gYTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNGNEY0RjQ7XG4gIGNvbG9yOiAjMjUyNTI1OyB9XG5cbmEuZXZlbnQtY2FyZC5iZy13aGl0ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDA7IH1cbiAgYS5ldmVudC1jYXJkLmJnLXdoaXRlIC5jb2xsZWN0aW9uLWltYWdlLWNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbGV4OiAwIDAgMzUlOyB9XG4gICAgYS5ldmVudC1jYXJkLmJnLXdoaXRlIC5jb2xsZWN0aW9uLWltYWdlLWNvbnRhaW5lciAuY29sbGVjdGlvbi1pbWFnZSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgIGEuZXZlbnQtY2FyZC5iZy13aGl0ZSAuY29sbGVjdGlvbi1pbWFnZS1jb250YWluZXIgLmNvbGxlY3Rpb24taW1hZ2UgaW1nIHtcbiAgICAgICAgaGVpZ2h0OiAyNTBweDtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCBlYXNlLWluLW91dCAwLjNzO1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCBlYXNlLWluLW91dCAwLjNzOyB9XG4gICAgICAgIGEuZXZlbnQtY2FyZC5iZy13aGl0ZSAuY29sbGVjdGlvbi1pbWFnZS1jb250YWluZXIgLmNvbGxlY3Rpb24taW1hZ2UgaW1nID4gOm50aC1jaGlsZCg4KSB7XG4gICAgICAgICAgaGVpZ2h0OiAyNTZweCAhaW1wb3J0YW50OyB9XG4gICAgICBAbWVkaWEgYWxsIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgICAgICAgYS5ldmVudC1jYXJkLmJnLXdoaXRlIC5jb2xsZWN0aW9uLWltYWdlLWNvbnRhaW5lciAuY29sbGVjdGlvbi1pbWFnZSB7XG4gICAgICAgICAgLyogSUUxMSAqLyB9XG4gICAgICAgICAgYS5ldmVudC1jYXJkLmJnLXdoaXRlIC5jb2xsZWN0aW9uLWltYWdlLWNvbnRhaW5lciAuY29sbGVjdGlvbi1pbWFnZSAqOjotbXMtYmFja2Ryb3AsXG4gICAgICAgICAgYS5ldmVudC1jYXJkLmJnLXdoaXRlIC5jb2xsZWN0aW9uLWltYWdlLWNvbnRhaW5lciAuY29sbGVjdGlvbi1pbWFnZSBpbWcge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOyB9IH1cbiAgICAgIGEuZXZlbnQtY2FyZC5iZy13aGl0ZSAuY29sbGVjdGlvbi1pbWFnZS1jb250YWluZXIgLmNvbGxlY3Rpb24taW1hZ2UgYXJ0aWNsZSxcbiAgICAgIGEuZXZlbnQtY2FyZC5iZy13aGl0ZSAuY29sbGVjdGlvbi1pbWFnZS1jb250YWluZXIgLmNvbGxlY3Rpb24taW1hZ2UgZGl2IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gIGEuZXZlbnQtY2FyZC5iZy13aGl0ZSAuY29sbGVjdGlvbi1jb250ZW50LWNvbnRhaW5lciB7XG4gICAgZmxleDogMCAwIDY1JTtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIGEuZXZlbnQtY2FyZC5iZy13aGl0ZSAuZXZlbnQtY2FyZF9fZGF0ZSB7XG4gICAgdHJhbnNpdGlvbjogYWxsIGVhc2UtaW4tb3V0IDAuM3M7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgZWFzZS1pbi1vdXQgMC4zcztcbiAgICBtYXJnaW46IDEwcHggMjBweCAyMHB4IDIwcHg7XG4gICAgY29sb3I6ICMzNjM2MzY7IH1cbiAgYS5ldmVudC1jYXJkLmJnLXdoaXRlIC5kZXNjcmlwdGlvbiBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmc6IDAgMjBweCAxMHB4O1xuICAgIGNvbG9yOiAjMzYzNjM2OyB9XG4gIGEuZXZlbnQtY2FyZC5iZy13aGl0ZTpob3ZlciAuY29sbGVjdGlvbi1pbWFnZSBpbWcge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpOyB9XG4gIGEuZXZlbnQtY2FyZC5iZy13aGl0ZTpob3ZlciAuZXZlbnQtY2FyZF9fZGF0ZSB7XG4gICAgY29sb3I6ICM3ODc4Nzg7IH1cblxuLmZlYXR1cmVkIHNwYW4uZXZlbnQtY2FyZF9fZGF0ZSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTdweDsgfVxuXG5mb3JtI3ZpZXdzLWV4cG9zZWQtZm9ybS1zdGFmZi1wYWdlLTIge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cblxuaW5wdXQjZWRpdC1zdWJtaXQtc3RhZmYge1xuICBiYWNrZ3JvdW5kOiAjRkZDNzBBO1xuICBib3JkZXI6IDVweCBzb2xpZCAjRkZDNzBBO1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDEwcHggMjNweDtcbiAgZm9udC1zaXplOiAxNXB4OyB9XG5cbmZvcm0jdmlld3MtZXhwb3NlZC1mb3JtLXN0YWZmLXBhZ2UtMiBsYWJlbCB7XG4gIG1hcmdpbjogNnB4IDEwcHggMHB4IDBweDsgfVxuXG4uc3RhZmYgLnZpZXdzLWV4cG9zZWQtZm9ybSAuZm9ybS1pdGVtIGlucHV0IHtcbiAgd2lkdGg6IDcwJTsgfVxuXG4uYWR2YW5jZWRfc2VhcmNoIGEge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpOyB9XG5cbi5hZHZhbmNlZF9zZWFyY2ggYTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTsgfVxuXG5uYXYgLmlzLWFjdGl2ZTpob3ZlciB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50OyB9XG5cbmZvcm0gbGFiZWwge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDE4cHg7IH1cblxuZm9ybSBbdHlwZT0ndGV4dCddLFxuZm9ybSBbdHlwZT0ncGFzc3dvcmQnXSxcbmZvcm0gW3R5cGU9J2RhdGUnXSxcbmZvcm0gW3R5cGU9J2RhdGV0aW1lJ10sXG5mb3JtIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLFxuZm9ybSBbdHlwZT0nbW9udGgnXSxcbmZvcm0gW3R5cGU9J3dlZWsnXSxcbmZvcm0gW3R5cGU9J2VtYWlsJ10sXG5mb3JtIFt0eXBlPSdudW1iZXInXSxcbmZvcm0gW3R5cGU9J3RlbCddLFxuZm9ybSBbdHlwZT0ndGltZSddLFxuZm9ybSBbdHlwZT0ndXJsJ10sXG5mb3JtIFt0eXBlPSdjb2xvciddLFxuZm9ybSB0ZXh0YXJlYSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgcGFkZGluZzogMTBweDtcbiAgaGVpZ2h0OiA1MHB4OyB9XG5cbmZvcm0gLmpzLWZvcm0taXRlbS1zb21lLXRleHQge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjMjUyNTI1OyB9XG5cbmZvcm0gaHIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0U3RTdFNzsgfVxuXG5mb3JtIC5idXR0b24uc3VjY2VzcyB7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4M0ZBRjsgfVxuXG4udG9wLWJhciB7XG4gIGJhY2tncm91bmQ6ICMwMDIwNWI7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnRvcC1iYXIgLmxhcmdlLTUsXG4gIC50b3AtYmFyIC5sYXJnZS03IHtcbiAgICAtbXMtZmxleDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IG5vbmUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGUgIWltcG9ydGFudDsgfVxuICAudG9wLWJhciAubGFyZ2UtNSB7XG4gICAgd2lkdGg6IDQyJTsgfVxuICAudG9wLWJhciAubGFyZ2UtNyB7XG4gICAgd2lkdGg6IDU0JTsgfVxuXG4ucGF0aC1ub2RlIGE6bm90KFtocmVmXSkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xNTBweDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oZXJvLWhlYWRlcixcbiAgLmhlYWRlci1oZXJvLWltYWdlIHtcbiAgICBtYXgtaGVpZ2h0OiA3NTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLmhlcm8taGVhZGVyIC5sYXJnZS01LFxuICAgIC5oZWFkZXItaGVyby1pbWFnZSAubGFyZ2UtNSB7XG4gICAgICBmbGV4OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IC13ZWJraXQtbWF4LWNvbnRlbnQgIWltcG9ydGFudDsgfVxuICAuaGVhZGVyLWhlcm8taW1hZ2VfX2NvbnRlbnQge1xuICAgIHdpZHRoOiA2MCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY2VsbCB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuQG1lZGlhIHByaW50IHtcbiAgaGVhZGVyLFxuICAuYnJlYWRjcnVtYnMsXG4gIC5idXR0b24tZ3JvdXAsXG4gIC5jaGF0LWNvbnRhaW5lcixcbiAgZm9vdGVyLFxuICAuYm90dG9tLWJhciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5pbnRyby1sZWFkIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmludHJvLWxlYWRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgdHJhbnNmb3JtOiBub25lOyB9XG4gIHNlY3Rpb24jYmxvY2stcmNsLWZvdW5kYXRpb24tc2l0ZWJyYW5kaW5nIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxuICAjYmxvY2stcmNsLWZvdW5kYXRpb24tc2l0ZWJyYW5kaW5nIC5hIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLnN0YWZmIC52aWV3cy1leHBvc2VkLWZvcm0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuc3RhZmYgLmY0IHtcbiAgICBmb250LXNpemU6IDIwcHggIWltcG9ydGFudDsgfVxuICAuc3RhZmYgLmdyaWQteC52aWV3cy1yb3cge1xuICAgIGZvbnQtc2l6ZTogODAlICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrICFpbXBvcnRhbnQ7IH1cbiAgI2Jsb2NrLXJjbC1mb3VuZGF0aW9uLXBhZ2UtdGl0bGUgaDEge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7IH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50OyB9XG4gIGltZ1tzcmNdOmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgI2Jsb2NrLXJjbC1mb3VuZGF0aW9uLXNpdGVicmFuZGluZyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICNibG9jay1uYXZpZ2F0aW9uaG91cnMge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDEuMjVyZW0gMCAxLjE4NzVyZW07XG4gIHF1b3RlczogXCLigJxcIiBcIuKAnVwiIFwi4oCYXCIgXCLigJkgXCI7IH1cbiAgYmxvY2txdW90ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gICAgY29sb3I6ICM3ODc4Nzg7XG4gICAgZm9udC1zaXplOiA0ZW07XG4gICAgbGluZS1oZWlnaHQ6IDAuMWVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiAtMC40ZW07IH1cbiAgYmxvY2txdW90ZTphZnRlciB7XG4gICAgY29udGVudDogY2xvc2UtcXVvdGU7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gICAgY29sb3I6ICM3ODc4Nzg7XG4gICAgZm9udC1zaXplOiA0ZW07XG4gICAgbGluZS1oZWlnaHQ6IDAuMWVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiAtMC40ZW07IH1cbiAgYmxvY2txdW90ZSBwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgY29sb3I6ICMyNTI1MjU7IH1cblxuLyogbmV3cyBjYXJkIG92ZXJyaWRlICovXG4ubmV3cy1jYXJkX19pbWFnZSBpbWcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlOyB9XG5cbi5uZXdzLWNhcmQ6aG92ZXIgaW1nIHtcbiAgb3BhY2l0eTogMC43O1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cblxuLm5ld3MtY2FyZF9faW1hZ2Uge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IGluaXRpYWw7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7IH1cblxuLyogU3BlY2lmaWNhbGx5IGZvciBzcGFjZXMgd2hlbiB3ZSBoYXZlIGZ1bGwgbmFtZSB2cy4gbm9ybWFsIG5hbWUgKi9cbi5oZXJvLWhlYWRlcl9fc3VidGl0bGUge1xuICBmb250LXNpemU6IDEuMXZ3O1xuICBmb250LXdlaWdodDogOTAwOyB9XG5cbiNwYXJhZ3JhcGgtMTk5OSAuZmllbGQgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIC52aWV3cy1lbGVtZW50LWNvbnRhaW5lciAucm93IC5jb2x1bW4ubWIxIC5uZXdzLWNhcmQgLm5ld3MtY2FyZF9fY29udGVudCwgI3BhcmFncmFwaC0xOTk5IC5maWVsZCAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIC5yb3cgLm1iMS5jb2x1bW5zIC5uZXdzLWNhcmQgLm5ld3MtY2FyZF9fY29udGVudCB7XG4gIGNvbG9yOiAjMzYzNjM2OyB9XG5cbiNwYXJhZ3JhcGgtMjA2NSAuZ3JpZC14IC5sYXJnZS00IC5iZy13aGl0ZSAucGFyYWdyYXBoIC5maWVsZCAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gYmxvY2txdW90ZSBwIHtcbiAgY29sb3I6ICMyNTI1MjU7IH1cblxuLm5vZGUtLXR5cGUtc3BhY2Ugc2VjdGlvbiNibG9jay12aWV3cy1ibG9jay1ob3Vycy1ibG9jay00IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubm9kZS0tdHlwZS1zcGFjZSAuZmllbGQtbm9kZS0tZmllbGQtc3BhY2Uge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5ub2RlLS10eXBlLXNwYWNlIC50b2RheXNfaG91cl9ibG9jayB7XG4gIGZvbnQtc2l6ZTogMTlweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG4gIHBhZGRpbmc6IDEwcHggMjBweDsgfVxuICAubm9kZS0tdHlwZS1zcGFjZSAudG9kYXlzX2hvdXJfYmxvY2sgc3BhbiB7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLm5vZGUtLXR5cGUtc3BhY2UgLmZpZWxkLXBhcmFncmFwaC0tZmllbGQtaG91cnMsXG4ubm9kZS0tdHlwZS1zcGFjZSAuZmllbGQtcGFyYWdyYXBoLS1maWVsZC1leGNlcHRpb25zIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5ub2RlLS10eXBlLXNwYWNlIC5vZmZpY2UtaG91cnNfX2l0ZW0ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0U3RTdFNzsgfVxuXG4ubm9kZS0tdHlwZS1zcGFjZSAuZmllbGQtcGFyYWdyYXBoLS1maWVsZC10aXRsZSB7XG4gIGJvcmRlci10b3A6IDVweCBzb2xpZCAjZmZjNzBhO1xuICBwYWRkaW5nOiA5cHg7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7IH1cblxuLm5vZGUtLXR5cGUtc3BhY2UgLmZpZWxkLXBhcmFncmFwaC0tZmllbGQtZXhjZXB0aW9ucyAub2ZmaWNlLWhvdXJzX19pdGVtLWxhYmVsLFxuLm5vZGUtLXR5cGUtc3BhY2UgLmZpZWxkLXBhcmFncmFwaC0tZmllbGQtZXhjZXB0aW9ucyAub2ZmaWNlLWhvdXJzX19pdGVtLWNvbW1lbnRzIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuXG4ubm9kZS0tdHlwZS1zcGFjZSAuZmllbGQtcGFyYWdyYXBoLS1maWVsZC1leGNlcHRpb25zIC5wYXJhZ3JhcGgge1xuICBtYXJnaW4tYm90dG9tOiAycHg7IH1cblxuLm5vZGUtLXR5cGUtc3BhY2UgLmZpZWxkLXBhcmFncmFwaC0tZmllbGQtaG91cnMge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogNXB4IDEwcHg7IH1cbiAgLm5vZGUtLXR5cGUtc3BhY2UgLmZpZWxkLXBhcmFncmFwaC0tZmllbGQtaG91cnMgLm9mZmljZS1ob3Vyc19faXRlbTpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLm5vZGUtLXR5cGUtc3BhY2UgLmZpZWxkLXBhcmFncmFwaC0tZmllbGQtZGF0ZS1yYW5nZSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4O1xuICBmb250LXNpemU6IDE1cHg7IH1cblxuLnNwYWNlb3duZXIgLmZpZWxkLWl0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICBmb250LXNpemU6IGluaXRpYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmctbGVmdDogMjBweDsgfVxuXG4ucGF0aC1zZWFyY2ggLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIGZvb3RlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBwYWRkaW5nLXRvcDogMTJweDsgfVxuXG4udG9wLWJhciB7XG4gIGJhY2tncm91bmQ6ICMwMDIwNWI7XG4gIHBhZGRpbmc6IDA7IH1cblxuLnRpdGxlLWJhciB7XG4gIGJhY2tncm91bmQ6ICMwMDIwNWI7IH1cblxuLnRvcC1iYXIgdWwuZHJvcGRvd24ubWVudS5zZWFyY2gtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjMjgzRkFGOyB9XG5cbmhlYWRlci5zdGlja3ktY29udGFpbmVyIHtcbiAgaGVpZ2h0OiA0MnB4ICFpbXBvcnRhbnQ7IH1cblxuLnRvcC1iYXIgdWwubWVudS5kcm9wZG93biB7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7IH1cblxuLnRvcC1iYXIgdWwubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7IH1cblxuI2Jsb2NrLW5hdmlnYXRpb25ob3VycyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAzcHg7IH1cbiAgI2Jsb2NrLW5hdmlnYXRpb25ob3VycyBhLmY1LmxpbmstMSB7XG4gICAgZm9udC1zaXplOiAxM3B4OyB9XG5cbiNibG9jay1uYXZpZ2F0aW9uaG91cnMgLmlubGluZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIEV4dHJhIHNtYWxsIGRldmljZXMgKHBob25lcywgNjAwcHggYW5kIGRvd24pICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5ibG9jay1zZWFyY2hib3ggLnNlYXJjaF9iYXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA5MCU7IH1cbiAgICAuYmxvY2stc2VhcmNoYm94IC5zZWFyY2hfYmFyIGJ1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDU5cHg7XG4gICAgICByaWdodDogMTFweDsgfVxuICAgIC5ibG9jay1zZWFyY2hib3ggLnNlYXJjaF9iYXIgdWwuZHJvcGRvd24ubWVudS5zZWFyY2gtcGFuZWwge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiBsaWdodGdyYXk7IH1cbiAgLmNvdmVyLXNlY3Rpb24gLmhlYWRlci1oZXJvLWltYWdlIC5zZWFyY2hfYmFyIGJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogNDFweDtcbiAgICByaWdodDogMDsgfVxuICAuY292ZXItc2VjdGlvbiAuaGVhZGVyLWhlcm8taW1hZ2UgLnNlYXJjaF9iYXIgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBwYWRkaW5nOiAyMHB4IDYwcHggMjBweCAyMHB4OyB9XG4gIC5jb3Zlci1zZWN0aW9uIC5oZWFkZXItaGVyby1pbWFnZSBzdmcge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAuY292ZXItc2VjdGlvbiAuaGVhZGVyLWhlcm8taW1hZ2UgdWwuZHJvcGRvd24ubWVudSB7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICNGNEY0RjQ7IH1cbiAgLmNvdmVyLXNlY3Rpb24gLmhlYWRlci1oZXJvLWltYWdlIC5oZXJvLXNlYXJjaC1jb250YWluZXIgLnNlYXJjaF9iYXIge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5jb3Zlci1zZWN0aW9uIC5oZWFkZXItaGVyby1pbWFnZSAuaGVyby1zZWFyY2gtY29udGFpbmVyIHVsLmRyb3Bkb3duLm1lbnUge1xuICAgIG1pbi13aWR0aDogMTAwJTsgfVxuICAuYnJhbmRpbmctaGVhZGVyIC5ibG9jay1yY2wtZm91bmRhdGlvbi1zaXRlYnJhbmRpbmcge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5icmFuZGluZy1oZWFkZXIgLmJsb2NrLXJjbC1mb3VuZGF0aW9uLXNpdGVicmFuZGluZyBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMjJweDsgfVxuICAuYnJhbmRpbmctaGVhZGVyIGEuZmVhdHVyZS1saW5rIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuaGVhZGVyLWhlcm8taW1hZ2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmM3MGFhMTtcbiAgICBtaW4taGVpZ2h0OiAyNTBweDsgfVxuICAuaGVhZGVyLWhlcm8taW1hZ2VfX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgYS5mZWF0dXJlLWxpbmsge1xuICAgIG1hcmdpbjogMHB4IDEwcHggMTBweCAxMHB4O1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLnN0aWNreSB7XG4gIHotaW5kZXg6IDU7IH1cblxuLnN0aWNreS5pcy1hdC10b3AuaXMtc3R1Y2sgLnRvcC1iYXIge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuaGVhZGVyIHVsLm1lbnUuZHJvcGRvd24tbWVudS5zdWJtZW51LmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViLnZlcnRpY2FsLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNFN0U3RTc7IH1cblxuLyogbG9naW4gcGFnZSB1cGRhdGUgKi9cbi5zaGliYm9sZXRoLWxvZ2luIGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTk5LCAxMCwgMC43KTtcbiAgY29sb3I6ICMyNTI1MjU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogOTAwO1xuICBwYWRkaW5nOiAxNXB4IDEwcHggMTJweDtcbiAgcGFkZGluZzogMTVweCAxNnB4IDEycHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBjdWJpYy1iZXppZXIoMC42NiwgLTAuMzksIDAuNDEsIDEuMzUpO1xuICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZC1jb2xvcjsgfVxuICAuc2hpYmJvbGV0aC1sb2dpbiBhOmhvdmVyLCAuc2hpYmJvbGV0aC1sb2dpbiBhOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjNzBhO1xuICAgIGNvbG9yOiAjMjUyNTI1O1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogY3VycmVudENvbG9yOyB9XG4gIC5zaGliYm9sZXRoLWxvZ2luIGEgPiBzdmcge1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgd2lkdGg6IDEwcHg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuc2hpYmJvbGV0aC1sb2dpbiBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgIHBhZGRpbmc6IDdweCAxMHB4IDVweDsgfSB9XG5cbi8qIHNtYWxsZXIgZGV2aWNlcyBtYXggd2l0aCA2MDBweCovXG4vKiBzbWFsbGVyIGRldmljZXMgbWF4IHdpZHRoIDY0MHB4Ki9cbi8qIExhcmdlIGRldmljZXMgKGxhcHRvcHMvZGVza3RvcHMsIDk5MnB4IGFuZCB1cCkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTExOHB4KSB7XG4gIC5ncmlkLXguZm91bmRhdGlvbi0yY29sLmZpZWxkLWl0ZW1zIC5tZWRpdW0tOS5zbWFsbC0xMi5jZWxsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLmdyaWQteC5mb3VuZGF0aW9uLTJjb2wuZmllbGQtaXRlbXMgLm1lZGl1bS0zLnNtYWxsLTEyLmNlbGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAuYnJhbmRpbmctaGVhZGVyIC5ibG9jay1yY2wtZm91bmRhdGlvbi1zaXRlYnJhbmRpbmcge1xuICAgIGZvbnQtc2l6ZTogMjRweDsgfVxuICBoZWFkZXIuYW5ub3VuY2VtZW50IHtcbiAgICBwYWRkaW5nLXRvcDogNDBweDsgfVxuICBoZWFkZXIuc3RpY2t5LWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7IH1cbiAgLm5hdi1ib3R0b20tYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDgyZTc3O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDEwMCU7IH1cbiAgLm5hdi10b3AtYmFyIHtcbiAgICBtaW4td2lkdGg6IDEwMCU7IH1cbiAgLmJsb2NrLXJjbC1mb3VuZGF0aW9uLWJyZWFkY3J1bWJzIG5hdiAuYnJlYWRjcnVtYnMge1xuICAgIG1hcmdpbjogNTBweCAwcHggMTVweCAwcHg7IH1cbiAgaGVhZGVyLnN0aWNreS1jb250YWluZXIge1xuICAgIGhlaWdodDogODJweDsgfVxuICAuZmllbGQgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIC52aWV3cy1lbGVtZW50LWNvbnRhaW5lciAucm93IC5jb2x1bW4sIC5maWVsZCAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIC5yb3cgLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCA0OSU7XG4gICAgbWF4LXdpZHRoOiA0OSU7IH0gfVxuXG4vKiBFeHRyYSBsYXJnZSBkZXZpY2VzIChsYXJnZSBsYXB0b3BzIGFuZCBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cbi8qIFNtYWxsIGRldmljZXMgKHBvcnRyYWl0IHRhYmxldHMgYW5kIGxhcmdlIHBob25lcywgNjAwcHggYW5kIHVwKSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICBoZWFkZXIuYW5ub3VuY2VtZW50IHtcbiAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC50b3AtYmFyIHVsLmRyb3Bkb3duLm1lbnUuc2VhcmNoLXBhbmVsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjMzA0NmIxOyB9XG4gIC5zZWFyY2hfYmFyIC5zZWFyY2gtcGFuZWwgbGkge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XG4gIC5zZWFyY2gtY29udGFpbmVyLnNtYWxsIGlucHV0I2lucHV0Qm94IHtcbiAgICBtaW4td2lkdGg6IDEwMCU7IH1cbiAgaGVhZGVyLmFubm91bmNlbWVudCB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsgfVxuICBoZWFkZXIuc3RpY2t5LWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiA0MHB4OyB9XG4gIC5ibG9jay1uYXZpZ2F0aW9uaG91cnMge1xuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgaGVhZGVyIC5tZW51IGxpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1yaWdodDogOXB4OyB9XG4gIGhlYWRlciB1bC5tZW51LmRyb3Bkb3duIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBoZWFkZXIgLm1lbnUgbGkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBoZWFkZXIgLnN0aWNreS5pcy1hbmNob3JlZC5pcy1hdC10b3Age1xuICAgIHotaW5kZXg6IDI7IH1cbiAgaGVhZGVyIC5zZWFyY2hfYmFyIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBoZWFkZXIgI2Jsb2NrLXNlY29uZGFyeW5hdmlnYXRpb24gLm1lbnUgbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIGhlYWRlciBmb3JtIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgaGVhZGVyIGZvcm0gLmRyb3Bkb3duLm1lbnUge1xuICAgIHBhZGRpbmc6IDlweCAwcHg7IH1cbiAgaGVhZGVyIC5zZWFyY2gtY29udGFpbmVyLnNtYWxsIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNDJweDtcbiAgICByaWdodDogMHB4O1xuICAgIGJvdHRvbTogMnB4OyB9XG4gIGhlYWRlciAjYmxvY2stc2Vjb25kYXJ5bmF2aWdhdGlvbiB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICBoZWFkZXIgLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbiAgaGVhZGVyIHVsLm1lbnUuZHJvcGRvd24tbWVudS5zdWJtZW51LmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViLnZlcnRpY2FsLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogI0U3RTdFNzsgfSB9XG5cbi50b3AtYmFyIHtcbiAgLW1zLWZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xuICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMjQwcHg7XG4gIG1hcmdpbjogYXV0bzsgfVxuXG50YWJsZSB0aGVhZCB0aCB7XG4gIHBhZGRpbmc6IDAuOTM3NXJlbSAxLjg3NXJlbTsgfVxuXG50YWJsZSB0Ym9keSB0ZCB7XG4gIHBhZGRpbmc6IDAuOTM3NXJlbSAxLjg3NXJlbTsgfVxuXG4vKiBNZWRpdW0gZGV2aWNlcyAobGFuZHNjYXBlIHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgaGVhZGVyLmFubm91bmNlbWVudCB7XG4gICAgcGFkZGluZy10b3A6IDBweDsgfVxuICAuZ3JpZC14ICNzaWRlYmFyLWZpcnN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDEwMCU7IH1cbiAgLmdyaWQteCAjbWFpbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAxMDAlOyB9XG4gIC5vZmYtY2FudmFzLXdyYXBwZXIgLmlubmVyLXdyYXAub2ZmLWNhbnZhcy13cmFwcGVyLWlubmVyIC5ncmlkLXggLmxhcmdlLTYubWVkaXVtLTYuc21hbGwtMTIuY2VsbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5maWVsZCAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0gLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIC5yb3cgLmNvbHVtbiwgLmZpZWxkIC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSAudmlld3MtZWxlbWVudC1jb250YWluZXIgLnJvdyAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAudG9wLWJhciB7XG4gICAgLW1zLWZsZXgtd3JhcDogd3JhcDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgYS5mZWF0dXJlLWxpbmsge1xuICAgIG1hcmdpbjogMHB4IDEwcHggMTBweCA5cHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm9mZi1jYW52YXMtd3JhcHBlciAuaW5uZXItd3JhcC5vZmYtY2FudmFzLXdyYXBwZXItaW5uZXIgLm9mZi1jYW52YXMtY29udGVudCAuYnJhbmRpbmctaGVhZGVyIC5ncmlkLXggLnNtYWxsLTEyLm1lZGl1bS03LmxhcmdlLTYuY29sdW1ucyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm9mZi1jYW52YXMtd3JhcHBlciAuaW5uZXItd3JhcC5vZmYtY2FudmFzLXdyYXBwZXItaW5uZXIgLm9mZi1jYW52YXMtY29udGVudCAuYnJhbmRpbmctaGVhZGVyIC5ncmlkLXggLnNtYWxsLTEyLm1lZGl1bS01LmxhcmdlLTYuY29sdW1ucyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgI2Zvb3Rlci1maXJzdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDsgfVxuICAjZm9vdGVyLW1pZGRsZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgI2Zvb3Rlci1sYXN0IHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBhcnRpY2xlIC52aWV3LW1vZGUtZnVsbCAuZmllbGQuZmllbGQtbm9kZS0tZmllbGQtcGFyYWdyYXBocy5maWVsZC1uYW1lLWZpZWxkLXBhcmFncmFwaHMuZmllbGQtdHlwZS1lbnRpdHktcmVmZXJlbmNlLXJldmlzaW9ucy5maWVsZC1sYWJlbC1oaWRkZW4gLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIC5wYXJhZ3JhcGgucGFyYWdyYXBoLS10eXBlLS1tdWx0aS1jb2x1bW4tcm93LnBhcmFncmFwaC0tdmlldy1tb2RlLS1kZWZhdWx0IC5ncmlkLXggLmxhcmdlLTQubWVkaXVtLTQuc21hbGwtMTIuY2VsbCB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uY29udGVudC1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTdFN0U3O1xuICBwYWRkaW5nLXRvcDogM3JlbTsgfVxuXG4uYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgdHJhbnNpdGlvbjogMC4yNXMgY3ViaWMtYmV6aWVyKDAuNDUsIDAuMDUsIDAuNTUsIDAuOTUpOyB9XG5cbjpub3QoLmJ1dHRvbi1ncm91cCkgYS5idXR0b246aG92ZXIsXG46bm90KC5idXR0b24tZ3JvdXApIGEuYnV0dG9uOmZvY3VzIHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHBhZGRpbmc6IDAuNWVtIDEuMzEyNXJlbTsgfVxuXG5hLmJ1dHRvbi55ZWxsb3csXG5hLmJ1dHRvbi55ZWxsb3c6aG92ZXIsXG5hLmJ1dHRvbi55ZWxsb3c6Zm9jdXMge1xuICBjb2xvcjogIzI1MjUyNTsgfVxuXG5hLmJ1dHRvbi5ibGFjayB7XG4gIGJvcmRlci1jb2xvcjogIzI1MjUyNTsgfVxuXG5hLmJ1dHRvbi5ibGFjazpob3ZlcixcbmEuYnV0dG9uLmJsYWNrOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI1MjUyNTsgfVxuXG4uYnV0dG9uLmFycm93OjphZnRlciB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgY29udGVudDogXCJcXGYwNjFcIjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xcHg7XG4gIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0cmFuc2l0aW9uOiAwLjM1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7IH1cblxuLmJsb2NrLXNvY2lhbG1lZGlhaWNvbnMgdWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4OyB9XG4gIC5ibG9jay1zb2NpYWxtZWRpYWljb25zIHVsIGxpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IH1cbiAgICAuYmxvY2stc29jaWFsbWVkaWFpY29ucyB1bCBsaTpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5ibG9jay1zb2NpYWxtZWRpYWljb25zIGE6aG92ZXIsIC5ibG9jay1zb2NpYWxtZWRpYWljb25zIGE6Zm9jdXMsIC5ibG9jay1zb2NpYWxtZWRpYWljb25zIGE6YWN0aXZlIHtcbiAgY29sb3I6ICNmZmZmZmY7IH1cblxuLmJsb2NrLXNvY2lhbG1lZGlhaWNvbnMgYSBzdmcge1xuICBoZWlnaHQ6IDM1cHg7IH1cblxuLmJsb2NrLXNvY2lhbG1lZGlhaWNvbnMgPiBkaXYgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA1cHggMDtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cblxuLmJsb2NrLXNvY2lhbG1lZGlhaWNvbnMgPiBkaXY6bGFzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDsgfVxuXG4ubm9kZS0tdHlwZS1zcGFjZSAuZmllbGQtcGFyYWdyYXBoLS1maWVsZC1mbG9vciAuZmllbGQtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgYm9yZGVyOiAycHggc29saWQgI0U3RTdFNztcbiAgd2lkdGg6IDM3cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTsgfVxuXG4ubm9kZS0tdHlwZS1zcGFjZSAuZmllbGQtbmFtZS1maWVsZC1hdG1vc3BoZXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAzNCU7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5ub2RlLS10eXBlLXNwYWNlIC5maWVsZC1uYW1lLWZpZWxkLWF0bW9zcGhlcmUgLmZpZWxkLWl0ZW0ge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIG1hcmdpbjogNXB4IDA7XG4gICAgcGFkZGluZzogNXB4IDEycHg7IH1cblxuLm5vZGUtLXR5cGUtc3BhY2UgLmNhbGxvdXQge1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgYmFja2dyb3VuZDogbm9uZTsgfVxuXG4ubm9kZS0tdHlwZS1zcGFjZSAjc3BhY2VfZGV0YWlscyB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIHBhZGRpbmctdG9wOiA0NXB4OyB9XG5cbi5ub2RlLS10eXBlLXNwYWNlIC5maWVsZC1ub2RlLS1ib2R5IHAge1xuICBmb250LXNpemU6IDIwcHg7IH1cblxuLmNvdmlkaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmFsZXJ0IHtcbiAgYmFja2dyb3VuZDogIzI3MjcyNztcbiAgcGFkZGluZzogNTBweCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmFsZXJ0IC5ncmlkLXgge1xuICAgIG1heC13aWR0aDogNzguMTI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAuYWxlcnQgLmljb24ge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5hbGVydCAuaWNvbiBpIHtcbiAgICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgICAgIGNvbG9yOiAjZmZjNzBhOyB9XG4gIC5hbGVydCAuY29udGVudCB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIHNhbnMtc2VyaWY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmFsZXJ0IC5jb250ZW50IC5hbGVydC10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgICBtYXJnaW46IDMwcHggMCAyMHB4OyB9XG4gICAgLmFsZXJ0IC5jb250ZW50IC5hbGVydC1kYXRlIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cbiAgICAuYWxlcnQgLmNvbnRlbnQgLmJ0bi5hbGVydCB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgICAgIHBhZGRpbmc6IDAuMnJlbSAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogMzBweDsgfVxuICAgICAgLmFsZXJ0IC5jb250ZW50IC5idG4uYWxlcnQ6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZjNzBhO1xuICAgICAgICBoZWlnaHQ6IDEwNSU7IH1cbiAgICAgIC5hbGVydCAuY29udGVudCAuYnRuLmFsZXJ0OmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgICAgIC5hbGVydCAuY29udGVudCAuYnRuLmFsZXJ0IGkge1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG1hcmdpbi1sZWZ0IDAuMzVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgcmlnaHQgMC4zNXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmFsZXJ0IC5hbGVydC1jbG9zZS1idXR0b24ge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0cmFuc2l0aW9uOiAwLjJzO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDIwcHg7XG4gICAgcmlnaHQ6IDIwcHg7IH1cbiAgICAuYWxlcnQgLmFsZXJ0LWNsb3NlLWJ1dHRvbjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5hbGVydCBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC40LCAxKSAwLjE1cztcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAgIC5hbGVydCBhOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAjRkZGRkZGOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OThweCkge1xuICAuYWxlcnQgLmljb24gaSB7XG4gICAgZm9udC1zaXplOiAzcmVtOyB9XG4gIC5hbGVydCAuY29udGVudCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5hbGVydCAuY29udGVudCAuYWxlcnQtdGl0bGUge1xuICAgICAgbWFyZ2luOiAwIDAgMjBweCAwOyB9XG4gIC5hbGVydCAuYWxlcnQtY2xvc2UtYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwOyB9IH1cblxuI2lmcmFtZV80OTkzN2JkNzQzZWRhZWZiOTM4OWNhMDMyMGMxZjU4ZiB7XG4gIG1heC1oZWlnaHQ6IDM4MHB4ICFpbXBvcnRhbnQ7IH1cblxuYnV0dG9uLnMtbGNoLXdpZGdldC1mbG9hdC1idG4sXG4jaWZyYW1lXzQ5OTM3YmQ3NDNlZGFlZmI5Mzg5Y2EwMzIwYzFmNThmIHtcbiAgYm94LXNoYWRvdzogMCAwLjkzOGVtIDIuMTg4ZW0gcmdiYSg1MCwgNTAsIDkzLCAwLjE1KSwgMCAwLjMxM2VtIDAuOTM4ZW0gcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi8qIGltYWdlIHN0eWxpbmcgKi9cbmZpZ3VyZS5hbGlnbi1sZWZ0LFxuYXJ0aWNsZS5hbGlnbi1sZWZ0LCBhcnRpY2xlLmFsaWduX2xlZnQsXG4ubm9kZS0tdHlwZS1hcnRpY2xlIC5maWVsZC1uYW1lLWZpZWxkLW1lZGlhLWl0ZW0ge1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbmZpZ3VyZS5hbGlnbi1yaWdodCxcbmFydGljbGUuYWxpZ24tcmlnaHQge1xuICBtYXJnaW4tbGVmdDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG5maWdjYXB0aW9uIHtcbiAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICBjb2xvcjogIzc4Nzg3ODtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi5hbGlnbi1jZW50ZXIgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbmFydGljbGUuYWxpZ24tbGVmdC5kZWZhdWx0LFxuLm5vZGUtLXR5cGUtYXJ0aWNsZSAuZmllbGQtbmFtZS1maWVsZC1tZWRpYS1pdGVtLFxuYXJ0aWNsZSBmaWd1cmUuYWxpZ24tcmlnaHQge1xuICBtYXgtd2lkdGg6IDUwJTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICBhcnRpY2xlLmFsaWduLWxlZnQuZGVmYXVsdCxcbiAgICAubm9kZS0tdHlwZS1hcnRpY2xlIC5maWVsZC1uYW1lLWZpZWxkLW1lZGlhLWl0ZW0sXG4gICAgYXJ0aWNsZSBmaWd1cmUuYWxpZ24tcmlnaHQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1heC13aWR0aDogNDgwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbi5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY29udGVudCB7XG4gIG1heC13aWR0aDogOTYwcHg7IH1cblxuLm1mcC1maWVsZC5maWVsZC1uYW1lLWZpZWxkLW1lZGlhLWdhbGxlcnkgLmZpZWxkLWl0ZW1zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IDAgLTEwcHg7IH1cbiAgLm1mcC1maWVsZC5maWVsZC1uYW1lLWZpZWxkLW1lZGlhLWdhbGxlcnkgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIHdpZHRoOiAyMCU7XG4gICAgZmxleDogMCAwIDIwJTtcbiAgICBtYXgtd2lkdGg6IDI1MHB4OyB9XG4gICAgLm1mcC1maWVsZC5maWVsZC1uYW1lLWZpZWxkLW1lZGlhLWdhbGxlcnkgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtOm50aC1jaGlsZChuICsgNikge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5tZnAtZmllbGQuZmllbGQtbmFtZS1maWVsZC1tZWRpYS1nYWxsZXJ5IC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSBhIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAgIC5tZnAtZmllbGQuZmllbGQtbmFtZS1maWVsZC1tZWRpYS1nYWxsZXJ5IC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSBhOmhvdmVyIGltZyB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7IH1cbiAgICAgIC5tZnAtZmllbGQuZmllbGQtbmFtZS1maWVsZC1tZWRpYS1nYWxsZXJ5IC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSBhIGltZyB7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC40LCAxKSAwLjE1czsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAubWZwLWZpZWxkLmZpZWxkLW5hbWUtZmllbGQtbWVkaWEtZ2FsbGVyeSAuZmllbGQtaXRlbXMge1xuICAgICAgbWFyZ2luOiAwIC01cHg7IH1cbiAgICAgIC5tZnAtZmllbGQuZmllbGQtbmFtZS1maWVsZC1tZWRpYS1nYWxsZXJ5IC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbSB7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgICAgbWF4LXdpZHRoOiBhdXRvO1xuICAgICAgICBtYXgtaGVpZ2h0OiBhdXRvOyB9XG4gICAgICAgIC5tZnAtZmllbGQuZmllbGQtbmFtZS1maWVsZC1tZWRpYS1nYWxsZXJ5IC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbTpudGgtY2hpbGQobiArIDUpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDU1MHB4KSB7XG4gICAgLm1mcC1maWVsZC5maWVsZC1uYW1lLWZpZWxkLW1lZGlhLWdhbGxlcnkgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtIHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzJTtcbiAgICAgIGZsZXg6IDAgMCAzMy4zMzMzJTsgfVxuICAgICAgLm1mcC1maWVsZC5maWVsZC1uYW1lLWZpZWxkLW1lZGlhLWdhbGxlcnkgLmZpZWxkLWl0ZW1zIC5maWVsZC1pdGVtOm50aC1jaGlsZChuKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAubWZwLWZpZWxkLmZpZWxkLW5hbWUtZmllbGQtbWVkaWEtZ2FsbGVyeSAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW06bnRoLWNoaWxkKG4gKyA3KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogMzUwcHgpIHtcbiAgICAubWZwLWZpZWxkLmZpZWxkLW5hbWUtZmllbGQtbWVkaWEtZ2FsbGVyeSAuZmllbGQtaXRlbXMgLmZpZWxkLWl0ZW0ge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIGZsZXg6IDAgMCA1MCU7IH1cbiAgICAgIC5tZnAtZmllbGQuZmllbGQtbmFtZS1maWVsZC1tZWRpYS1nYWxsZXJ5IC5maWVsZC1pdGVtcyAuZmllbGQtaXRlbTpudGgtY2hpbGQobiArIDUpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5tZnAtYm90dG9tLWJhciB7XG4gIG1hcmdpbi10b3A6IC0yMHB4OyB9XG4gIC5tZnAtYm90dG9tLWJhciAubWZwLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC12YXJpYW50OiBub25lO1xuICAgIHBhZGRpbmctcmlnaHQ6IDU1cHg7IH1cbiAgLm1mcC1ib3R0b20tYmFyIC5tZnAtY291bnRlciB7XG4gICAgZm9udC1zaXplOiAxNnB4OyB9XG5cbi5tZnAtem9vbS1pbiAubWZwLXdpdGgtYW5pbSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IGFsbCBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjQsIDEpIDAuMnM7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC44KTsgfVxuXG4ubWZwLXpvb20taW4ubWZwLWJnIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIGN1YmljLWJlemllcigwLjYsIDAsIDAuNCwgMSkgMC4zczsgfVxuXG4ubWZwLXpvb20taW4ubWZwLXJlYWR5IC5tZnAtd2l0aC1hbmltIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuXG4ubWZwLXpvb20taW4ubWZwLXJlYWR5Lm1mcC1iZyB7XG4gIG9wYWNpdHk6IDAuODsgfVxuXG4ubWZwLXpvb20taW4ubWZwLXJlYWR5IC5tZnAtYXJyb3cge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZnAtem9vbS1pbi5tZnAtcmVtb3ZpbmcgLm1mcC13aXRoLWFuaW0ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLm1mcC16b29tLWluLm1mcC1yZW1vdmluZy5tZnAtYmcge1xuICBvcGFjaXR5OiAwOyB9XG5cbi5tZnAtem9vbS1pbi5tZnAtcmVtb3ZpbmcgLm1mcC1hcnJvdyB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLm1mcC1hcnJvdyB7XG4gIHRyYW5zaXRpb246IGFsbCBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjQsIDEpIDAuM3M7XG4gIG9wYWNpdHk6IDAuNzU7IH1cbiAgLm1mcC1hcnJvdy5tZnAtYXJyb3ctbGVmdDpiZWZvcmUsIC5tZnAtYXJyb3cubWZwLWFycm93LWxlZnQ6YWZ0ZXIsIC5tZnAtYXJyb3cubWZwLWFycm93LXJpZ2h0OmJlZm9yZSwgLm1mcC1hcnJvdy5tZnAtYXJyb3ctcmlnaHQ6YWZ0ZXIge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjsgfVxuICAubWZwLWFycm93Lm1mcC1hcnJvdy1sZWZ0OmJlZm9yZSwgLm1mcC1hcnJvdy5tZnAtYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLm1mcC1hcnJvdy5tZnAtYXJyb3ctbGVmdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDUzXCI7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDsgfVxuICAubWZwLWFycm93Lm1mcC1hcnJvdy1yaWdodDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDU0XCI7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDsgfVxuXG4vKlxuXHQuWFhYe1xuXHRcdC5tZnAtY2xvc2Uge31cblx0fVxuKi9cbi5tZnAtY2xvc2Uge1xuICBmb250LXNpemU6IDM1cHg7IH1cblxuLnBhcmFncmFwaC0tdHlwZS0tbXVsdGktY29sdW1uLXJvdyAuZ3JpZC14IC5jZWxsIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4uc2lkZWJhciB7XG4gIHBhZGRpbmctdG9wOiA2MHB4OyB9XG4gIC5zaWRlYmFyIGgyIHtcbiAgICBjb2xvcjogIzU2NTY1NjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDQ2ODc1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW46IDAgMCAwLjllbTsgfVxuICAuc2lkZWJhciBuYXYgdWwubWVudSBsaSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgIC5zaWRlYmFyIG5hdiB1bC5tZW51IGxpOmxhc3Qtb2YtdHlwZSBhIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDRkNGQ0OyB9XG4gICAgLnNpZGViYXIgbmF2IHVsLm1lbnUgbGkgYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q0ZDRkNDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHBhZGRpbmc6IDFlbSAwIDFlbSAwLjVlbTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogIzI4M0ZBRjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC40LCAxKSAwLjE1czsgfVxuICAgICAgLnNpZGViYXIgbmF2IHVsLm1lbnUgbGkgYTpob3ZlciBzcGFuOmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7IH1cbiAgICAgIC5zaWRlYmFyIG5hdiB1bC5tZW51IGxpIGEgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgLnNpZGViYXIgbmF2IHVsLm1lbnUgbGkgYSA+IHNwYW46YWZ0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICMyODNmYWY7XG4gICAgICAgICAgY29udGVudDogXCJcXDBhMFwiO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuNjYsIC0wLjM5LCAwLjQxLCAxLjM1KSAwLjE1cztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3R0b206IC0ycHg7IH1cbiAgICAuc2lkZWJhciBuYXYgdWwubWVudSBsaSAuc3VibWVudS10b2dnbGUge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkNGQ0ZDQ7XG4gICAgICBwYWRkaW5nOiAzMHB4IDA7IH1cbiAgLnNpZGViYXIgbmF2IHVsLm1lbnUgbGkuaGFzLXN1Ym1lbnUtdG9nZ2xlID4gYSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2Q0ZDRkNDsgfVxuXG5kaXYjc2lkZWJhci1zZWNvbmQge1xuICBtYXJnaW4tdG9wOiA3NnB4O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGOyB9XG5cbi5zb2NpYWxsaW5rcyBhIHN2ZyB7XG4gIGhlaWdodDogMzVweDtcbiAgbWFyZ2luOiA1cHg7IH1cbiIsIi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXNcbiAqIFZlcnNpb24gNi43LjRcbiAqIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5cbi8vIC0tLSBEZXBlbmRlbmNpZXMgLS0tXG5AaW1wb3J0ICd2ZW5kb3Ivbm9ybWFsaXplJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9taXNzaW5nLWRlcGVuZGVuY2llcyc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvdHJ1ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9jb250YWluJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyAtLS0gU2V0dGluZ3MgLS0tXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG4vLyBAaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncyc7XG5cbi8vIC0tLSBDb21wb25lbnRzIC0tLVxuLy8gVXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuLy8gR2xvYmFsIHN0eWxlc1xuQGltcG9ydCAnZ2xvYmFsJztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5cbi8vIEdyaWRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAneHktZ3JpZC94eS1ncmlkJztcbi8vIEdlbmVyaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbi8vIEJhc2ljIGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5cbi8vIENvbnRhaW5lcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG4vLyBNZW51LWJhc2VkIGNvbnRhaW5lcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5cbi8vIExheW91dCBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcblxuLy8gSGVscGVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ3Byb3RvdHlwZS9wcm90b3R5cGUnO1xuXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoXG4gICRmbGV4OiB0cnVlLFxuICAkcHJvdG90eXBlOiBmYWxzZSxcbiAgJHh5LWdyaWQ6ICR4eS1ncmlkXG4pIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIEBpZiAkeHktZ3JpZCB7XG4gICAgJHh5LWdyaWQ6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIC8vIEdsb2JhbCBzdHlsZXNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG5cbiAgLy8gR3JpZHNcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHh5LWdyaWQge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdlbmVyaWMgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICAvLyBCYXNpYyBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcblxuICAvLyBDb250YWluZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICAvLyBNZW51LWJhc2VkIGNvbnRhaW5lcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuXG4gIC8vIExheW91dCBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuXG4gIC8vIEhlbHBlcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuICBAaWYgJGZsZXggeyBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlczsgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGlmICRwcm90b3R5cGUgeyBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzOyB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcbi8vLy9cblxuLy8vIFBhdGNoIHRvIGZpeCBpc3N1ZSAjMTIwODBcbiQtemYtc2l6ZTogbnVsbDtcblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgSGlEUEkgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMgZm9yIHJlc29sdXRpb25zLlxuLy8vIFZhbHVlcyBtdXN0IHJlcHJlc2VudCB0aGUgZGV2aWNlIHBpeGVscyAvIHdlYiBwaXhlbHMgcmF0aW9uIGFuZCBiZSB1bml0bGVzcyBvciBpbiBEUFBYLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzLWhpZHBpOiAoXG4gIGhpZHBpLTE6IDEsXG4gIGhpZHBpLTEtNTogMS41LFxuICBoaWRwaS0yOiAyLFxuICByZXRpbmE6IDIsXG4gIGhpZHBpLTM6IDNcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGFyZ2VzdCBuYW1lZCBicmVha3BvaW50IGluIHdoaWNoIHRvIGluY2x1ZGUgcHJpbnQgYXMgYSBtZWRpYSB0eXBlXG4vLy8gQHR5cGUgS2V5d29yZFxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbiQtemYtYnJlYWtwb2ludHMta2V5czogbWFwLXRvLWxpc3QoJGJyZWFrcG9pbnRzLCAna2V5cycpO1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnVGhlIGZpcnN0IGtleSBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCBtdXN0IGhhdmUgYSB2YWx1ZSBvZiBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gV2ViIHN0YW5kYXJkIFBpeGVscyBwZXIgaW5jaC4gKDFkZHB4IC8gJHN0ZC13ZWItZHBpKSA9IDFkcGlcbiAgLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdmFsdWVzLTMvI2Fic29sdXRlLWxlbmd0aHNcbiAgJHN0ZC13ZWItZHBpOiA5NjtcblxuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIG9mIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludFxuICAkYnAtbmV4dDogbnVsbDtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1taW46IG51bGw7XG4gIC8vIFZhbHVlIGZvciBtaW4td2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiBudWxsO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gSWYgbmFtZWQsIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnRcbiAgJG5hbWU6IG51bGw7XG4gIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgSGlEUEkgYnJlYWtwb2ludFxuICAkaGlkcGk6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuXG4gIC8vIElmIGEgYnJlYWtwb2ludCBuYW1lIGlzIGdpdmVuLCBnZXQgaXRzIHZhbHVlIGZyb20gdGhlICRicmVha3BvaW50cy8kYnJlYWtwb2ludHMtaGlkcGkgbWFwLlxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgICRuYW1lOiAkYnA7XG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgICAkYnAtbmV4dDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgIH1cbiAgICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMtaGlkcGksICRicCkge1xuICAgICAgJG5hbWU6ICRicDtcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMtaGlkcGksICRuYW1lKTtcbiAgICAgICRicC1uZXh0OiAtemYtbWFwLW5leHQtbnVtYmVyKCRicmVha3BvaW50cy1oaWRwaSwgJGJwKTtcbiAgICAgICRoaWRwaTogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciBgJGJyZWFrcG9pbnRzYCBvciBgJGJyZWFrcG9pbnRzLWhpZHBpYCBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkbmFtZSBhbmQgJGRpciA9PSAnb25seScge1xuICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBPbmx5ICdvbmx5JyBhbmQgJ3VwJyBoYXZlIGEgbWluIGxpbWl0LlxuICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAndXAnIHtcbiAgICAkYnAtbWluOiBpZigkaGlkcGksIHN0cmlwLXVuaXQoJGJwKSwgLXpmLWJwLXRvLWVtKCRicCkpO1xuICB9XG4gIC8vIE9ubHkgJ29ubHknIGFuZCAnZG93bicgaGF2ZSBhIG1heCBsaW1pdC5cbiAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIHZhbHVlLCB1c2UgaXQgYXMgbWF4IGxpbWl0LlxuICAgIEBpZiBub3QgJG5hbWUge1xuICAgICAgJGJwLW1heDogaWYoJGhpZHBpLCBzdHJpcC11bml0KCRicCksIC16Zi1icC10by1lbSgkYnApKTtcbiAgICB9XG4gICAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgbmFtZWQsIHRoZSBtYXggbGltaXQgaXMgdGhlIGZvbGxvd2luZyBicmVha3BvaW50IC0gMXB4LlxuICAgIEBlbHNlIGlmICRicC1uZXh0IHtcbiAgICAgIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgICAgIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gICAgICAkYnAtbWF4OiBpZigkaGlkcGksICRicC1uZXh0IC0gZGl2aWRlKDEsICRzdGQtd2ViLWRwaSksIC16Zi1icC10by1lbSgkYnAtbmV4dCkgLSAwLjAwMTI1KTtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmF0ZSB0aGUgbWVkaWEgcXVlcnkgc3RyaW5nIGZyb20gbWluIGFuZCBtYXggbGltaXRzLlxuICBAaWYgJGhpZHBpIHtcbiAgICAvLyBHZW5lcmF0ZSB2YWx1ZXMgaW4gRFBJIGluc3RlYWQgb2YgRFBQWCBmb3IgYW4gSUU5LTExL09wZXJhIG1pbmkgY29tcGF0aWJpbGl0eS5cbiAgICAvLyBTZWUgaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtbWVkaWEtcmVzb2x1dGlvblxuICAgICRicC1taW4tZHBpOiBpZigkYnAtbWluLCAkYnAtbWluICogJHN0ZC13ZWItZHBpICogMWRwaSwgJGJwLW1pbik7XG4gICAgJGJwLW1heC1kcGk6IGlmKCRicC1tYXgsICRicC1tYXggKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWF4KTtcbiAgICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbiwgJGJwLW1heCwgJy13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbycsICctd2Via2l0LW1heC1kZXZpY2UtcGl4ZWwtcmF0aW8nKSxcbiAgICAgIC16Zi1icC1qb2luKCRicC1taW4tZHBpLCAkYnAtbWF4LWRwaSwgJ21pbi1yZXNvbHV0aW9uJywgJ21heC1yZXNvbHV0aW9uJyksXG4gICAgICAnLCAnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4KTtcbiAgfVxufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIGFuZCBgJGJyZWFrcG9pbnRzLWhpZHBpYCBtYXBzLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gSWYgbXVsdGlwbGUgdmFsdWVzIGFyZSBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGdlbmVyYXRlIGEgbWVkaWEgcXVlcnkgZm9yIGVhY2ggb2YgdGhlbSBhcyBkZXNjcmliZWQgYWJvdmUuXG4vLy8gU2luY2UgdGhlIGNvbnRlbnQgaXMgZHVwbGljYXRlZCBmb3IgZWFjaCBicmVha3BvaW50LCB0aGlzIG1peGluIHNob3VsZCBvbmx5IGJlIHVzZWQgd2l0aCBwcm9wZXJ0aWVzIHRoYXRcbi8vLyBjaGFuZ2UgYWNyb3NzIGJyZWFrcG9pbnRzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlcy4uLiAtIEJyZWFrcG9pbnQgbmFtZSBvciBweC9yZW0vZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlcy4uLikge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkdmFsdWVzKSB7XG4gICAgJHZhbHVlOiBudGgoJHZhbHVlcywgJGkpO1xuICAgICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgbnRoKCR2YWx1ZSwgMSkpO1xuICAgICRwYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHByaW50LWJyZWFrcG9pbnQpO1xuICAgIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICAgJGRpcjogaWYobGVuZ3RoKCR2YWx1ZSkgPiAxLCBudGgoJHZhbHVlLCAyKSwgdXApO1xuXG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuXG4gICAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogbnRoKCR2YWx1ZSwgMSkgIWdsb2JhbDsgLy8gZ2V0IHRoZSBmaXJzdCB2YWx1ZSB0byBhY2NvdW50IGZvciBgb25seWAgYW5kIGBkb3duYCBrZXl3b3Jkc1xuXG4gICAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICAgIEBpZiAkc3RyID09ICcnIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gICAgQGVsc2Uge1xuICAgICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgICAgLy8gZ2VuZXJhdGUgcHJpbnQgaWYgdGhlIGJyZWFrcG9pbnQgYWZmZWN0cyB0aGUgcHJpbnQtYnJlYWtwb2ludCAob3Igc21hbGxlcikuXG4gICAgICAvLyBUaGlzIG1lYW5zIHRoZSBjdXJyZW50IGNvbmRpdGlvbiBvbmx5IG5lZWRzIHRvIGJlIGV4dGVuZGVkIHNvICdkb3duJyBhbHdheXMgZ2VuZXJhdGVzIHByaW50LlxuICAgICAgQGlmICRicCAhPSBudWxsIGFuZCAoJGJwIDw9ICRwYnAgb3IgJGRpciA9PSBkb3duKSB7XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIENvbnZlcnRzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IG51bWJlciBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRudW1iZXIgLSBOdW1iZXIgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSBudW1iZXIgZm9sbG93aW5nIGAkbnVtYmVyYCwgaWYgYCRudW1iZXJgIHdhcyBmb3VuZC4gSWYgYCRudW1iZXJgIHdhcyBub3QgZm91bmQsIG9yIGAkbnVtYmVyYCB3YXMgdGhlIGJpZ2dlc3QgbnVtYmVyIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dC1udW1iZXIoJG1hcCwgJG51bWJlcikge1xuXG4gICRuZXh0LW51bWJlcjogbnVsbDtcblxuICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgQGlmIHR5cGUtb2YoJHYpID09ICdudW1iZXInIGFuZCAkdiA+ICRudW1iZXIgYW5kICgkbmV4dC1udW1iZXIgPT0gbnVsbCBvciAkdiA8ICRuZXh0LW51bWJlcikge1xuICAgICAgJG5leHQtbnVtYmVyOiAkdjtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuZXh0LW51bWJlcjtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIEtleSB0byB1c2UgYXMgbGFzdCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJGtleSkge1xuICAkbGlzdDogKCk7XG4gICRmb3VuZC1rZXk6IGZhbHNlO1xuXG4gIEBlYWNoICRuYW1lIGluICQtemYtYnJlYWtwb2ludHMta2V5cyB7XG4gICAgQGlmICgkbmFtZSA9PSAka2V5KSB7XG4gICAgICAkZm91bmQta2V5OiB0cnVlO1xuICAgIH1cbiAgICBAaWYgbm90ICRmb3VuZC1rZXkge1xuICAgICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJG5hbWUpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRsaXN0O1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIGEgbmFtZWQgb3Igbm9uLW5hbWVkIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAkbGFzdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICRmb3VuZDogZmFsc2U7XG5cbiAgJHZhbHVlOiB1bml0bGVzcy1jYWxjKCRicmVha3BvaW50LCAxcHgpO1xuICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgQGlmIHVuaXRsZXNzLWNhbGMoJHZhbCkgPiAkdmFsdWUge1xuICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGxhc3Q6ICRrZXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbGFzdDtcbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcbiAgfVxuICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXG4gIEBlbHNlIHtcbiAgICAkYW5jaG9yOiBudWxsO1xuICAgICRmb3VuZDogZmFsc2U7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGtleSA9PSAkdmFsdWUge1xuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIHRoZSBiZXN0IGJyZWFrcG9pbnQgdG8gdXNlIGFjY29yZGluZyB0byB0aGUgY2FsbGluZyBjb250ZXh0LiBJdCByZXR1cm5zIGluIG9yZGVyOlxuLy8vIDEuIHRoZSBnaXZlbiBgJHZhbHVlYCBhcmd1bWVudCBpZiBpdCBpcyBub3QgbnVsbC5cbi8vLyAyLiB0aGUgZ2xvYmFsIGJyZWFrcG9pbnQgY29udGV4dCBgJC16Zi1zaXplYCBpZiBpdCBpcyBub3QgbnVsbCAobGlrZSBpZiBjYWxsZWQgaW5zaWRlIHRoZW4gYGJyZWFrcG9pbnQoKWAgbWl4aW4pXG4vLy8gMy4gdGhlIGdpdmVuIGAkZGVmYXVsdGAgYXJndW1lbnQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBpbiBwcmlvcml0eSBpZiBub24tbnVsbC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkZWZhdWx0IFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGJ5IGRlZmF1bHQgaWYgbm8gb3RoZXIgdmFsdWUgY2FuIGJlIHVzZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtLZXl3b3JkfSBUaGUgcmVzb2x2ZWQgYnJlYWtwb2ludC5cbkBmdW5jdGlvbiAtemYtY3VycmVudC1icmVha3BvaW50KCR2YWx1ZTogbnVsbCwgJGRlZmF1bHQ6IG51bGwpIHtcbiAgQGlmICgkdmFsdWUgIT0gbnVsbCkge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIEBlbHNlIGlmICh2YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIGFuZCB0eXBlLW9mKCQtemYtc2l6ZSkgIT0gJ251bWJlcicpIGFuZCAkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgQHJldHVybiAkLXpmLXNpemU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJGRlZmF1bHQ7XG4gIH1cbn1cblxuLy8vIFJldHVybiBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSB0aGUgZ2l2ZW4gbWluIGFuZC9vciBtYXggbGltaXRzLlxuLy8vIElmIGEgbGltaXQgaXMgZXF1YWwgdG8gYG51bGxgIG9yIGAwYCwgaXQgaXMgaWdub3JlZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWluIFswXSAtIE1pbiBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCBbMF0gLSBNYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtaW4tbmFtZSBbJ21pbi13aWR0aCddIC0gTmFtZSBvZiB0aGUgbWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVsaW1pdGVyIFsnbWF4LXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBNZWRpYSBRdWVyeSBzdHJpbmcuXG5AZnVuY3Rpb24gLXpmLWJwLWpvaW4oXG4gICRtaW46IDAsXG4gICRtYXg6IDAsXG4gICRtaW4tbmFtZTogJ21pbi13aWR0aCcsXG4gICRtYXgtbmFtZTogJ21heC13aWR0aCdcbikge1xuICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgIGlmKCRtaW4gYW5kICRtaW4gPiAwLCAnKCN7JG1pbi1uYW1lfTogI3skbWlufSknLCBudWxsKSxcbiAgICBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJygjeyRtYXgtbmFtZX06ICN7JG1heH0pJywgbnVsbCksXG4gICAgJyBhbmQgJyk7XG59XG5cbiRzbWFsbC11cDogJyc7XG4kc21hbGwtb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbiRtZWRpdW0tdXA6ICcnO1xuJG1lZGl1bS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG4kbGFyZ2UtdXA6ICcnO1xuJGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG4keGxhcmdlLXVwOiAnJztcbiR4bGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHh4bGFyZ2UtdXA6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXZlYWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2lkdGggb2YgYSBtb2RhbCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC13aWR0aDogNjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heGltdW0gd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gei1pbmRleCBmb3IgbW9kYWxzLiBUaGUgb3ZlcmxheSB1c2VzIHRoaXMgdmFsdWUsIHdoaWxlIHRoZSBtb2RhbCBpdHNlbGYgdXNlcyB0aGlzIHZhbHVlIHBsdXMgb25lLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC16aW5kZXg6IDEwMDUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIG1vZGFsIG92ZXJsYXlzLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpICFkZWZhdWx0O1xuXG5cbi8vIFBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciBtZWRpdW0tYW5kLXVwIG1vZGFsc1xuLy8gUHJldmVudHMgZHVwbGljYXRlIENTUyB3aGVuIGRlZmluaW5nIG11bHRpcGxlIFJldmVhbCBzaXplc1xuLy8gVGhpcyBzaG91bGQgYmUgaW4gdGhlIHNhbWUgYnJlYWtwb2ludCB0aGVuIGBAbWl4aW4gcmV2ZWFsLW1vZGFsLXdpZHRoYFxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgJXJldmVhbC1jZW50ZXJlZCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtb2RhbCBvdmVybGF5LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVybGF5LlxuQG1peGluIHJldmVhbC1vdmVybGF5KCRiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZCkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXg7XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGEgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4ICsgMTtcbiAgLy8gV29ya2Fyb3VuZCBhbmRyb2lkIGJyb3dzZXIgei1pbmRleCBidWdcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRyZXZlYWwtcGFkZGluZztcblxuICBib3JkZXI6ICRyZXZlYWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkcmV2ZWFsLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJldmVhbC1iYWNrZ3JvdW5kO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSByb3dzIGRvbid0IGhhdmUgYSBtaW4td2lkdGggb24gdGhlbVxuICAuY29sdW1uIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBTdHJpcCBtYXJnaW5zIGZyb20gdGhlIGxhc3QgaXRlbSBpbiB0aGUgbW9kYWxcbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRqdXN0cyB0aGUgd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIG1vZGFsLiBHZW5lcmFsbHkgYSBwZXJjZW50YWdlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4LXdpZHRoIFskcmV2ZWFsLW1heC13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGgoXG4gICR3aWR0aDogJHJldmVhbC13aWR0aCxcbiAgJG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGhcbikge1xuICAvLyBFeHRlbmRzIG11c3QgYmUgbWFkZSBvdXRzaWRlIG9mIGJyZWFrcG9pbnRzIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbmV3ZXIgU2FzcyB2ZXJzaW9ucyAobGlic2FzcyB2My41KVxuICBAZXh0ZW5kICVyZXZlYWwtY2VudGVyZWQ7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXNjcmVlbiBtb2RhbCwgd2hpY2ggc3RyZXRjaGVzIHRoZSBmdWxsIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cbkBtaXhpbiByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbiB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcblxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcblxuICAvLy8gRGlzYWJsZXMgdGhlIHNjcm9sbCB3aGVuIFJldmVhbCBpcyBzaG93biB0byBwcmV2ZW50IHRoZSBiYWNrZ3JvdW5kIGZyb20gc2hpZnRpbmdcbiAgaHRtbC5pcy1yZXZlYWwtb3BlbiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICYuemYtaGFzLXNjcm9sbCB7XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgfVxuXG4gICAgYm9keSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIC8vIE92ZXJsYXlcbiAgLnJldmVhbC1vdmVybGF5IHtcbiAgICBAaW5jbHVkZSByZXZlYWwtb3ZlcmxheTtcbiAgfVxuXG4gIC8vIE1vZGFsIGNvbnRhaW5lclxuICAucmV2ZWFsIHtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZTtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoJHJldmVhbC13aWR0aCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gICAgLy8gUmVtb3ZlIHBhZGRpbmdcbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLy8gU2l6aW5nIGNsYXNzZXNcbiAgICAmLnRpbnkgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDMwJSk7IH1cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDUwJSk7IH1cbiAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDkwJSk7IH1cblxuICAgIC8vIEZ1bGwtc2NyZWVuIG1vZGVcbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICAmLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIuc2xpZGUtaW4tZG93bi5tdWktZW50ZXIge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tZG93bi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4uc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi11cC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4uc2xpZGUtaW4tcmlnaHQubXVpLWVudGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtb3V0LWRvd24ubXVpLWxlYXZlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtZG93bi5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG5cbi5zbGlkZS1vdXQtdXAubXVpLWxlYXZlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtdXAubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxuXG4uc2xpZGUtb3V0LWxlZnQubXVpLWxlYXZlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtbGVmdC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG5cbi5mYWRlLWluLm11aS1lbnRlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7IH1cblxuLmZhZGUtaW4ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5mYWRlLW91dC5tdWktbGVhdmUge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgb3BhY2l0eTogMTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OyB9XG5cbi5mYWRlLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tdG9wLm11aS1lbnRlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXRvcC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1yaWdodC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWJvdHRvbS5tdWktZW50ZXIge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbTtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tYm90dG9tLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tbGVmdC5tdWktZW50ZXIge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXgubXVpLWVudGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXgubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteS5tdWktZW50ZXIge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS10b3AubXVpLWxlYXZlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tcmlnaHQubXVpLWxlYXZlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tYm90dG9tLm11aS1sZWF2ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1ib3R0b20ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbGVmdC5tdWktbGVhdmUge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14Lm11aS1sZWF2ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkubXVpLWxlYXZlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi11cC5tdWktZW50ZXIge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi11cC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLWluLWRvd24ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1vdXQtZG93bi5tdWktbGVhdmUge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLm11aS1lbnRlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0wLjc1dHVybik7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0Lm11aS1sZWF2ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDAuNzV0dXJuKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi1jY3cubXVpLWVudGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDAuNzV0dXJuKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi1jY3cubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC1jY3cubXVpLWxlYXZlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0LWNjdy5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zbG93IHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50O1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmZhc3Qge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXMgIWltcG9ydGFudDsgfVxuXG4ubGluZWFyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhaW1wb3J0YW50OyB9XG5cbi5lYXNlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50O1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4ge1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50O1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluLW91dCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbiB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50O1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLW91dCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSkgIWltcG9ydGFudDtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4tb3V0IHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5zaG9ydC1kZWxheSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogMzAwbXMgIWltcG9ydGFudDtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50O1xuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDcwMG1zICFpbXBvcnRhbnQ7IH1cblxuLnNoYWtlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2hha2UtNztcbiAgICAgICAgICBhbmltYXRpb24tbmFtZTogc2hha2UtNzsgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2hha2UtNyB7XG4gIDAlLCAxMCUsIDIwJSwgMzAlLCA0MCUsIDUwJSwgNjAlLCA3MCUsIDgwJSwgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg3JSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNyUpOyB9XG4gIDUlLCAxNSUsIDI1JSwgMzUlLCA0NSUsIDU1JSwgNjUlLCA3NSUsIDg1JSwgOTUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNyUpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03JSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHNoYWtlLTcge1xuICAwJSwgMTAlLCAyMCUsIDMwJSwgNDAlLCA1MCUsIDYwJSwgNzAlLCA4MCUsIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNyUpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDclKTsgfVxuICA1JSwgMTUlLCAyNSUsIDM1JSwgNDUlLCA1NSUsIDY1JSwgNzUlLCA4NSUsIDk1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTclKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNyUpOyB9IH1cblxuLnNwaW4tY3cge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzcGluLWN3LTF0dXJuO1xuICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLWN3LTF0dXJuOyB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzcGluLWN3LTF0dXJuIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTF0dXJuKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuQGtleWZyYW1lcyBzcGluLWN3LTF0dXJuIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTF0dXJuKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuLnNwaW4tY2N3IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc3Bpbi1jY3ctMXR1cm47XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tY2N3LTF0dXJuOyB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzcGluLWNjdy0xdHVybiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMXR1cm4pO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTF0dXJuKTsgfSB9XG5cbkBrZXlmcmFtZXMgc3Bpbi1jY3ctMXR1cm4ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTF0dXJuKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7IH0gfVxuXG4ud2lnZ2xlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogd2lnZ2xlLTdkZWc7XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHdpZ2dsZS03ZGVnOyB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyB3aWdnbGUtN2RlZyB7XG4gIDQwJSwgNTAlLCA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoN2RlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg3ZGVnKTsgfVxuICAzNSUsIDQ1JSwgNTUlLCA2NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpOyB9XG4gIDAlLCAzMCUsIDcwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuQGtleWZyYW1lcyB3aWdnbGUtN2RlZyB7XG4gIDQwJSwgNTAlLCA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoN2RlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg3ZGVnKTsgfVxuICAzNSUsIDQ1JSwgNTUlLCA2NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpOyB9XG4gIDAlLCAzMCUsIDcwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuLnNoYWtlLFxuLnNwaW4tY3csXG4uc3Bpbi1jY3csXG4ud2lnZ2xlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDUwMG1zO1xuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7IH1cblxuLmluZmluaXRlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG4uc2xvdyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50O1xuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXMgIWltcG9ydGFudDsgfVxuXG4uZmFzdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50O1xuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMjUwbXMgIWltcG9ydGFudDsgfVxuXG4ubGluZWFyIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDtcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDsgfVxuXG4uZWFzZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50O1xuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50O1xuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbi1vdXQge1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDtcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLW91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50O1xuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluLW91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLnNob3J0LWRlbGF5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDcwMG1zICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50OyB9XG4iLCIvLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby12ZW5kb3ItcHJlZml4ZXNcblxuQG1peGluIGZvdW5kYXRpb24tbm9ybWFsaXplKCkge1xuICAvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbiAgLy8gRG9jdW1lbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuXG4gIGh0bWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIH1cblxuICAvLyBTZWN0aW9uc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cblxuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gIC8vIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICAvLyBHcm91cGluZyBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgLy8gMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvLyAxXG4gICAgaGVpZ2h0OiAwOyAvLyAxXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIDJcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cblxuICBwcmUge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMWVtOyAvLyAyXG4gIH1cblxuICAvLyBUZXh0LWxldmVsIHNlbWFudGljc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cblxuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gIC8vIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IDA7IC8vIDFcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG5cbiAgYixcbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGNvZGUsXG4gIGtiZCxcbiAgc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAvLyBhbGwgYnJvd3NlcnMuXG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgfVxuXG4gIHN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG4gIH1cblxuICAvLyBFbWJlZGRlZCBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cblxuICBpbWcge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIC8vIEZvcm1zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cblxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8vIDFcbiAgICBmb250LXNpemU6IDEwMCU7IC8vIDFcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLy8gMVxuICAgIG1hcmdpbjogMDsgLy8gMlxuICB9XG5cbiAgLy8gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gIC8vIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG5cbiAgYnV0dG9uLFxuICBpbnB1dCB7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAvLyAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uLFxuICBzZWxlY3QgeyAvLyAxXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgW3R5cGU9XCJidXR0b25cIl0sXG4gIFt0eXBlPVwicmVzZXRcIl0sXG4gIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuXG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgZmllbGRzZXQge1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gIC8vIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgLy8gMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAvLyAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cblxuICBsZWdlbmQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgICBjb2xvcjogaW5oZXJpdDsgLy8gMlxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAxXG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gM1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDFcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG5cbiAgcHJvZ3Jlc3Mge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICAvLyAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG5cbiAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIHBhZGRpbmc6IDA7IC8vIDJcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cblxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cblxuICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLy8gMlxuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAvLyAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG5cbiAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDFcbiAgICBmb250OiBpbmhlcml0OyAvLyAyXG4gIH1cblxuICAvLyBJbnRlcmFjdGl2ZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG5cbiAgZGV0YWlscyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICB9XG5cbiAgLy8gTWlzY1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cblxuICB0ZW1wbGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuXG4gIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gRGlzYWJsZSBvdXRsaW5lIHdoZW4gaW50ZW50IGlzIGNsZWFybHkgbW91c2UgYW5kIHRvdWNoXG4gIFtkYXRhLXdoYXRpbnRlbnQ9XCJtb3VzZVwiXSxcbiAgW2RhdGEtd2hhdGludGVudD1cInRvdWNoXCJdLFxuICBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSxcbiAgW2RhdGEtd2hhdGlucHV0PVwidG91Y2hcIl0ge1xuICAgICosICo6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlIGlPUyBjYWxsb3V0cyB3aGVuIGRyYWdnYWJsZSBpcyBmYWxzZVxuICBbZHJhZ2dhYmxlPWZhbHNlXSB7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBzYWZlIHBhZGRpbmcgb24gdGhlIGJvZHkgZm9yIG5vbi1yZWN0YW5ndWxhciBkZXZpY2VzIChpLmUuIHBob25lcyB3aXRoIG5vdGNoZXMpXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktc2FmZS1wYWRkaW5nOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcG9zaXRpb25pbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcG9zaXRpb246IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIENhbiBiZSBvdmVyd3JpdHRlbiBhdCBpbmRpdmlkdWFsIG1lbnUgY29tcG9uZW50IGxldmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gTmVzdGVkIG1hcmdpbiBmb3Igc3VibWVudS5cbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnV0dG9uIGN1cnNvcidzIHZhbHVlLCBgYXV0b2AgYnkgZGVmYXVsdFxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0byAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGUgdGhhdCBjb250YWlucyB0aGUgZmxleCBqdXN0aWZ5aW5nIG9wdGlvbnNcbiQtemYtZmxleC1qdXN0aWZ5OiAtemYtZmxleC1qdXN0aWZ5KCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24pO1xuXG4vLy8gR2xvYmFsIHRvbGVyYW5jZSBmb3IgY29sb3IgcGljayBjb250cmFzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDAgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBAaWYgKCRib2R5LXNhZmUtcGFkZGluZykge1xuICAgICAgLy8gdXNpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGFjY291bnQgZm9yIG5vbi1yZWN0YW5ndWxhciBkaXNwbGF5cyBlLmcuIHBob25lcyB3aXRoIG5vdGNoZXNcbiAgICAgIHBhZGRpbmctdG9wOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XG4gICAgICBwYWRkaW5nLWxlZnQ6IGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG5cbiAgICBAaWYgKCRib2R5LWFudGlhbGlhc2VkKSB7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICAvLyBHZXQgcmlkIG9mIGdhcCB1bmRlciBpbWFnZXMgYnkgbWFraW5nIHRoZW0gZGlzcGxheTogaW5saW5lLWJsb2NrOyBieSBkZWZhdWx0XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAvLyBHcmlkIGRlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XG4gIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIGFyZSAxMDAlIHdpZHRoIGJ5IGRlZmF1bHRcbiAgc2VsZWN0IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gU3R5bGVzIEdvb2dsZSBNYXBzIGFuZCBNYXBRdWVzdCBlbWJlZHMgcHJvcGVybHlcbiAgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1pZHNcbiAgLm1hcF9jYW52YXMsXG4gIC5tcWEtZGlzcGxheSB7XG4gICAgaW1nLFxuICAgIGVtYmVkLFxuICAgIG9iamVjdCB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCA8YnV0dG9uPiBzdHlsZXMgY3JlYXRlZCBieSBtb3N0IGJyb3dzZXJzXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiAkZ2xvYmFsLWJ1dHRvbi1jdXJzb3I7XG4gIH1cblxuICAvLyBQcmV2ZW50IHRleHQgb3ZlcmZsb3cgb24gcHJlXG4gIHByZSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICB9XG5cbiAgLy8gTWFrZSByZXNldCBpbmhlcml0IGZvbnQtZmFtaWx5IGluc3RlYWQgb2Ygc2V0dGluZ3Mgc2Fucy1zZXJpZlxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBJbnRlcm5hbCBjbGFzc2VzIHRvIHNob3cvaGlkZSBlbGVtZW50cyBpbiBKYXZhU2NyaXB0XG4gIC5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLyAgRm91bmRhdGlvbiBmb3IgU2l0ZXMgU2V0dGluZ3Ncbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vICBUYWJsZSBvZiBDb250ZW50czpcbi8vXG4vLyAgIDEuIEdsb2JhbFxuLy8gICAyLiBCcmVha3BvaW50c1xuLy8gICAzLiBUaGUgR3JpZFxuLy8gICA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vICAgNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAgIDYuIEFiaWRlXG4vLyAgIDcuIEFjY29yZGlvblxuLy8gICA4LiBBY2NvcmRpb24gTWVudVxuLy8gICA5LiBCYWRnZVxuLy8gIDEwLiBCcmVhZGNydW1ic1xuLy8gIDExLiBCdXR0b25cbi8vICAxMi4gQnV0dG9uIEdyb3VwXG4vLyAgMTMuIENhbGxvdXRcbi8vICAxNC4gQ2FyZFxuLy8gIDE1LiBDbG9zZSBCdXR0b25cbi8vICAxNi4gRHJpbGxkb3duXG4vLyAgMTcuIERyb3Bkb3duXG4vLyAgMTguIERyb3Bkb3duIE1lbnVcbi8vICAxOS4gRmxleGJveCBVdGlsaXRpZXNcbi8vICAyMC4gRm9ybXNcbi8vICAyMS4gTGFiZWxcbi8vICAyMi4gTWVkaWEgT2JqZWN0XG4vLyAgMjMuIE1lbnVcbi8vICAyNC4gTWV0ZXJcbi8vICAyNS4gT2ZmLWNhbnZhc1xuLy8gIDI2LiBPcmJpdFxuLy8gIDI3LiBQYWdpbmF0aW9uXG4vLyAgMjguIFByb2dyZXNzIEJhclxuLy8gIDI5LiBQcm90b3R5cGUgQXJyb3dcbi8vICAzMC4gUHJvdG90eXBlIEJvcmRlci1Cb3hcbi8vICAzMS4gUHJvdG90eXBlIEJvcmRlci1Ob25lXG4vLyAgMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gIDMzLiBQcm90b3R5cGUgRGlzcGxheVxuLy8gIDM0LiBQcm90b3R5cGUgRm9udC1TdHlsaW5nXG4vLyAgMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vICAzNi4gUHJvdG90eXBlIE92ZXJmbG93XG4vLyAgMzcuIFByb3RvdHlwZSBQb3NpdGlvblxuLy8gIDM4LiBQcm90b3R5cGUgUm91bmRlZFxuLy8gIDM5LiBQcm90b3R5cGUgU2VwYXJhdG9yXG4vLyAgNDAuIFByb3RvdHlwZSBTaGFkb3dcbi8vICA0MS4gUHJvdG90eXBlIFNpemluZ1xuLy8gIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xuLy8gIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXG4vLyAgNDQuIFByb3RvdHlwZSBUZXh0LVRyYW5zZm9ybWF0aW9uXG4vLyAgNDUuIFByb3RvdHlwZSBUZXh0LVV0aWxpdGllc1xuLy8gIDQ2LiBSZXNwb25zaXZlIEVtYmVkXG4vLyAgNDcuIFJldmVhbFxuLy8gIDQ4LiBTbGlkZXJcbi8vICA0OS4gU3dpdGNoXG4vLyAgNTAuIFRhYmxlXG4vLyAgNTEuIFRhYnNcbi8vICA1Mi4gVGh1bWJuYWlsXG4vLyAgNTMuIFRpdGxlIEJhclxuLy8gIDU0LiBUb29sdGlwXG4vLyAgNTUuIFRvcCBCYXJcbi8vICA1Ni4gWHkgR3JpZFxuXG5AaW1wb3J0IFwidXRpbC91dGlsXCI7XG5cbi8vIDEuIEdsb2JhbFxuLy8gLS0tLS0tLS0tXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlO1xuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCk7XG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNTtcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzN1xuKTtcbiRsaWdodC1ncmF5OiAjZTZlNmU2O1xuJG1lZGl1bS1ncmF5OiAjY2FjYWNhO1xuJGRhcmstZ3JheTogIzhhOGE4YTtcbiRibGFjazogIzBhMGEwYTtcbiR3aGl0ZTogI2ZlZmVmZTtcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcbiRib2R5LWZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuJGdsb2JhbC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW07XG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtO1xuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWw7XG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkO1xuJGdsb2JhbC1yYWRpdXM6IDA7XG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW07XG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0cjtcbiRnbG9iYWwtZmxleGJveDogdHJ1ZTtcbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZTtcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0bztcbiRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDA7XG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWU7XG5cbi8vIEBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcblxuLy8gMi4gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweFxuKTtcbiRwcmludC1icmVha3BvaW50OiBsYXJnZTtcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpO1xuXG4vLyAzLiBUaGUgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGdyaWQtY29sdW1uLWNvdW50OiAxMjtcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweFxuKTtcbiRncmlkLWNvbHVtbi1hbGlnbi1lZGdlOiB0cnVlO1xuJGdyaWQtY29sdW1uLWFsaWFzOiBcImNvbHVtbnNcIjtcbiRibG9jay1ncmlkLW1heDogODtcblxuLy8gNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cblxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbDtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0O1xuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgXCJoMVwiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAyNFxuICAgICksXG4gICAgXCJoMlwiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAyMFxuICAgICksXG4gICAgXCJoM1wiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAxOVxuICAgICksXG4gICAgXCJoNFwiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAxOFxuICAgICksXG4gICAgXCJoNVwiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAxN1xuICAgICksXG4gICAgXCJoNlwiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAxNlxuICAgIClcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgXCJoMVwiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiA0OFxuICAgICksXG4gICAgXCJoMlwiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiA0MFxuICAgICksXG4gICAgXCJoM1wiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAzMVxuICAgICksXG4gICAgXCJoNFwiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAyNVxuICAgICksXG4gICAgXCJoNVwiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAyMFxuICAgICksXG4gICAgXCJoNlwiOiAoXG4gICAgICBcImZvbnQtc2l6ZVwiOiAxNlxuICAgIClcbiAgKVxuKTtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjY7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kY29kZS1jb2xvcjogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XG4vLyAkYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbi8vICRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6IFwiXFwyMDE0IFxcMDAyMFwiO1xuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrO1xuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApO1xuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcblxuLy8gNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjU7XG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXk7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbTtcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XG5cbi8vIDYuIEFiaWRlXG4vLyAtLS0tLS0tLVxuXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xuJGFiaWRlLWxhYmVsczogdHJ1ZTtcblxuLy8gUkNMLTM1OCAtPiBBZGRpbmcgY29sb3IgdmFsdWUgdG8gY2xlYXIgZXJyb3IgaW4gZnVuY3Rpb25cbi8vICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiAjZmYwMDAwOyAvLyBSZWQgY29sb3JcblxuLy8gUkNMLTM1OCAtPiBBZGRpbmcgY29sb3IgdmFsdWUgdG8gY2xlYXIgZXJyb3IgaW4gZnVuY3Rpb25cbi8vICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiAjZmYwMDAwOyAvLyBSZWQgY29sb3JcblxuLy8gUkNMLTM1OCAtPiBBZGRpbmcgY29sb3IgdmFsdWUgdG8gY2xlYXIgZXJyb3IgaW4gZnVuY3Rpb25cbi8vICRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6ICNmZjAwMDA7IC8vIFJlZCBjb2xvclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG5cbi8vIDcuIEFjY29yZGlvblxuLy8gLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWU7XG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuLy8gICRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyA4LiBBY2NvcmRpb24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcbi8vICAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGw7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kOiBudWxsO1xuJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4O1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweDtcblxuLy8gOS4gQmFkZ2Vcbi8vIC0tLS0tLS0tXG5cbi8vICAkYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYmFkZ2UtY29sb3I6ICR3aGl0ZTtcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjaztcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGJhZGdlLXBhZGRpbmc6IDAuM2VtO1xuJGJhZGdlLW1pbndpZHRoOiAyLjFlbTtcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbTtcblxuLy8gMTAuIEJyZWFkY3J1bWJzXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKTtcbi8vICAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2s7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtO1xuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW06IFwiL1wiO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsOiBcIlxcXFxcIjtcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuXG4vLyAxMS4gQnV0dG9uXG4vLyAtLS0tLS0tLS0tXG5cbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW07XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnV0dG9uLWZpbGw6IHNvbGlkO1xuLy8gJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbi8vICRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiRidXR0b24tY29sb3I6ICR3aGl0ZTtcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2s7XG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweDtcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbVxuKTtcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCU7XG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCU7XG4kYnV0dG9uLXRyYW5zaXRpb246XG4gIGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsXG4gIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuXG4vLyAxMi4gQnV0dG9uIEdyb3VwXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW07XG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4O1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiBcIi5idXR0b25cIjtcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2O1xuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlO1xuXG4vLyAxMy4gQ2FsbG91dFxuLy8gLS0tLS0tLS0tLS1cblxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSU7XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSk7XG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDA7XG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtO1xuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kO1xuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRjYWxsb3V0LWxpbmstdGludDogMzAlO1xuXG4vLyAxNC4gQ2FyZFxuLy8gLS0tLS0tLS1cblxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYXJkLWRpdmlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY2FyZC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRjYXJkLXNoYWRvdzogbm9uZTtcbiRjYXJkLWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhcmQtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJGNhcmQtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG5cbi8vIDE1LiBDbG9zZSBCdXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3A7XG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbVxuKTtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW1cbik7XG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtXG4pO1xuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDE7XG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXk7XG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjaztcblxuLy8gMTYuIERyaWxsZG93blxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7XG4kZHJpbGxkb3duLWFycm93czogdHJ1ZTtcbiRkcmlsbGRvd24tcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kZHJpbGxkb3duLW5lc3RlZC1tYXJnaW46IDA7XG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmc7XG4kZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuLy8gJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweDtcblxuLy8gMTcuIERyb3Bkb3duXG4vLyAtLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW07XG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtO1xuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweFxuKTtcblxuLy8gMTguIERyb3Bkb3duIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlO1xuLy8gJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvcjtcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW07XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuXG4vLyBSQ0wtMzU4IC0+IEFkZGluZyBjb2xvciB2YWx1ZSB0byBjbGVhciBlcnJvciBpbiBmdW5jdGlvblxuLy8gJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAjZmYwMDAwOyAvLyBSZWQgY29sb3JcblxuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQ7XG5cbi8vIDE5LiBGbGV4Ym94IFV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNjtcbiRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHM6IHRydWU7XG5cbi8vIDIwLiBGb3Jtc1xuLy8gLS0tLS0tLS0tXG5cbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNik7XG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSk7XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkO1xuJGlucHV0LXRyYW5zaXRpb246XG4gIGJveC1zaGFkb3cgMC41cyxcbiAgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBMYWJlbFxuLy8gLS0tLS0tLS0tXG5cbi8vICRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRsYWJlbC1jb2xvcjogJHdoaXRlO1xuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrO1xuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW07XG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjIuIE1lZGlhIE9iamVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJTtcblxuLy8gMjMuIE1lbnVcbi8vIC0tLS0tLS0tXG5cbiRtZW51LW1hcmdpbjogMDtcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtO1xuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZTtcblxuLy8gUkNMLTM1OCAtPiBBZGRpbmcgY29sb3IgdmFsdWUgdG8gY2xlYXIgZXJyb3IgaW4gZnVuY3Rpb25cbi8vICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6ICNmZjAwMDA7IC8vIFJlZCBjb2xvclxuXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWU7XG4kbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdDogdHJ1ZTtcbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlO1xuXG4vLyAyNC4gTWV0ZXJcbi8vIC0tLS0tLS0tLVxuXG4kbWV0ZXItaGVpZ2h0OiAxcmVtO1xuJG1ldGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuLy8gJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3I7XG4vLyAkbWV0ZXItZmlsbC1tZWRpdW06ICR3YXJuaW5nLWNvbG9yO1xuLy8gJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3I7XG5cbi8vIDI1LiBPZmYtY2FudmFzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweFxuKTtcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4XG4pO1xuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KTtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHg7XG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpO1xuJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleDogMTE7XG4kb2ZmY2FudmFzLXB1c2gtemluZGV4OiAxMjtcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6IDEzO1xuJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAxMjtcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWU7XG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpO1xuJG1haW5jb250ZW50LWNsYXNzOiBcIm9mZi1jYW52YXMtY29udGVudFwiO1xuXG4vLyAyNi4gT3JiaXRcbi8vIC0tLS0tLS0tLVxuXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTA7XG5cbi8vIDI3LiBQYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSk7XG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbi8vICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvcjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZTtcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcblxuLy8gMjguIFByb2dyZXNzIEJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbi8vICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uczogKGRvd24sIHVwLCByaWdodCwgbGVmdCk7XG4kcHJvdG90eXBlLWFycm93LXNpemU6IDAuNDM3NXJlbTtcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcblxuLy8gMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm9yZGVyLXdpZHRoOiByZW0tY2FsYygxKTtcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkO1xuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuLy8gMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtZGlzcGxheTogKGlubGluZSwgaW5saW5lLWJsb2NrLCBibG9jaywgdGFibGUsIHRhYmxlLWNlbGwpO1xuXG4vLyAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCk7XG4kcHJvdG90eXBlLWZvbnQtbm9ybWFsOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kcHJvdG90eXBlLWZvbnQtYm9sZDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkOiAoZGlzYywgY2lyY2xlLCBzcXVhcmUpO1xuJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQ6IChkZWNpbWFsLCBsb3dlci1hbHBoYSwgbG93ZXItbGF0aW4sIGxvd2VyLXJvbWFuLCB1cHBlci1hbHBoYSwgdXBwZXItbGF0aW4sIHVwcGVyLXJvbWFuKTtcblxuLy8gMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLW92ZXJmbG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtb3ZlcmZsb3c6ICh2aXNpYmxlLCBoaWRkZW4sIHNjcm9sbCk7XG5cbi8vIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXBvc2l0aW9uOiAoc3RhdGljLCByZWxhdGl2ZSwgYWJzb2x1dGUsIGZpeGVkKTtcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1O1xuXG4vLyAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzOiByZW0tY2FsYygzKTtcblxuLy8gMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduOiBjZW50ZXI7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQ6IHJlbS1jYWxjKDIpO1xuJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGg6IDNyZW07XG4vLyAkcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3gtc2hhZG93OlxuICAwIDJweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpLFxuICAwIDJweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcblxuLy8gNDEuIFByb3RvdHlwZSBTaXppbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2l6aW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2l6aW5nOiAod2lkdGgsIGhlaWdodCk7XG4kcHJvdG90eXBlLXNpemVzOiAoXG4gIDI1OiAyNSUsXG4gIDUwOiA1MCUsXG4gIDc1OiA3NSUsXG4gIDEwMDogMTAwJVxuKTtcblxuLy8gNDIuIFByb3RvdHlwZSBTcGFjaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zcGFjaW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc3BhY2Vycy1jb3VudDogMztcblxuLy8gNDMuIFByb3RvdHlwZSBUZXh0LURlY29yYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZGVjb3JhdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjogKG92ZXJsaW5lLCB1bmRlcmxpbmUsIGxpbmUtdGhyb3VnaCk7XG5cbi8vIDQ0LiBQcm90b3R5cGUgVGV4dC1UcmFuc2Zvcm1hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtdHJhbnNmb3JtYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uOiAobG93ZXJjYXNlLCB1cHBlcmNhc2UsIGNhcGl0YWxpemUpO1xuXG4vLyA0NS4gUHJvdG90eXBlIFRleHQtVXRpbGl0aWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbi8vIDQ2LiBSZXNwb25zaXZlIEVtYmVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5XG4pO1xuXG4vLyA0Ny4gUmV2ZWFsXG4vLyAtLS0tLS0tLS0tXG5cbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlO1xuJHJldmVhbC13aWR0aDogNjAwcHg7XG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcmV2ZWFsLXppbmRleDogMTAwNTtcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XG5cbi8vIDQ4LiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtO1xuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcbi8vICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA0OS4gU3dpdGNoXG4vLyAtLS0tLS0tLS0tXG5cbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuLy8gJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodDogMnJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDUwLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbi8vICR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbi8vICR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1MS4gVGFic1xuLy8gLS0tLS0tLS1cblxuJHRhYi1tYXJnaW46IDA7XG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZTtcbi8vICR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXk7XG4vLyAkdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuJHRhYi1leHBhbmQtbWF4OiA2O1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDUyLiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbi8vICR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1My4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2s7XG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZDtcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gNTQuIFRvb2x0aXBcbi8vIC0tLS0tLS0tLS0tXG5cbiRoYXMtdGlwLWN1cnNvcjogaGVscDtcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1NS4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDA7XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbi8vIDU2LiBYeSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4keHktZ3JpZDogdHJ1ZTtcbiRncmlkLWNvbnRhaW5lcjogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbnM6IDEyO1xuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweFxuKTtcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzO1xuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aDtcbiR4eS1ibG9jay1ncmlkLW1heDogODtcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8gUGF0Y2ggdG8gZml4IGlzc3VlICMxMjA4MFxuJC16Zi1wYi12YWx1ZTogbnVsbDtcblxuLy8vIENyZWF0ZXMgYW4gaW5uZXIgYm94LXNoYWRvdyBmb3Igb25seSBvbmUgc2lkZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6IGRpdmlkZSgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycyksICRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogI3skcmdifVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoZGl2aWRlKDEsICRpKSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlKFxuICAkZW5mb3JjZTogdHJ1ZVxuKSB7XG4gICRpbXBvcnRhbnQ6IGlmKCRlbmZvcmNlLCAnIWltcG9ydGFudCcsIG51bGwpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogMXB4ICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogMXB4ICN7JGltcG9ydGFudH07XG4gIHBhZGRpbmc6IDAgI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgI3skaW1wb3J0YW50fTtcbiAgYm9yZGVyOiAwICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZW5mb3JjZSAtIElmIGB0cnVlYCwgdXNlIGAhaW1wb3J0YW50YCBvbiBhcHBsaWVkIHByb3BlcnRpZXNcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IHN0YXRpYyAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBoZWlnaHQ6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IHZpc2libGUgI3skaW1wb3J0YW50fTtcbiAgY2xpcDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoXG4gICRzbWFsbDogdHJ1ZSxcbiAgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludC1pbihhdXRvLCAtemYtYm9vbCgkc21hbGwpLCAtemYtYm9vbCgkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMpKSB7XG4gICAgQGNvbnRlbnRcbiAgfTtcbn1cblxuLy8vIEl0ZXJhdGVzIHdpdGggYEBjb250ZW50YCB0aHJvdWdoIHRoZSBnaXZlbiBsaXN0IG9mIGJyZWFrcG9pbnRzIGAkYnJlYWtwb2ludHNgLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TGlzdH0gJGJyZWFrcG9pbnRzIFthdXRvXSAtIEJyZWFrcG9pbnRzIHRvIGl0ZXJhdGVzIG9uLiBJdCBjYW4gYmUgYSBicmVha3BvaW50IG5hbWUsIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgYGF1dG9gIGZvciBhbGwgYnJlYWtwb2ludHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufE51bGx9ICR6ZXJvLWJyZWFrcG9pbnQgW251bGxdIC0gV2hldGhlciB0aGUgemVyby1icmVha3BvaW50IChvZnRlbiBgc21hbGxgKSBtdXN0IGJlIGluY2x1ZGVkLiBJZiBgdHJ1ZWAsIGl0IHdpbGwgYWx3YXlzIGJlIGFkZGVkIHRvIHRoZSBsaXN0IGlmIG5vdCBhbHJlYWR5IHRoZXJlLiBJZiBgZmFsc2VgLCBpdCB3aWxsIGFsd2F5cyBiZSByZW1vdmVkLiBEb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58S2V5d29yZH0gJG1lZGlhLXF1ZXJpZXMgW3RydWVdIC0gV2hldGhlciBtZWRpYS1xdWVyaWVzIG11c3QgYmUgZ2VuZXJhdGVkLiBJZiBgZm9yLWxpc3RzYCwgb25seSBnZW5lcmF0ZSBtZWRpYS1xdWVyaWVzIHdoZW4gYCRicmVha3BvaW50c2AgaXMgYSBsaXN0LlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oXG4gICRicmVha3BvaW50czogYXV0byxcbiAgJHplcm8tYnJlYWtwb2ludDogbnVsbCxcbiAgJG1lZGlhLXF1ZXJpZXM6IHRydWVcbikge1xuICAkLWxpc3Q6ICgpO1xuICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogdHJ1ZTtcblxuICAvLyBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBicmVha3BvaW50KHMpIHRvIGl0ZXJhdGUgb24uXG4gIEBpZiAkYnJlYWtwb2ludHMgPT0gYXV0byB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnbGlzdCcge1xuICAgICQtbGlzdDogJGJyZWFrcG9pbnRzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnc3RyaW5nJyB7XG4gICAgJC1saXN0OiAoJGJyZWFrcG9pbnRzKTtcbiAgICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogZmFsc2U7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBcIiRicmVha3BvaW50c1wiIGluIFwiLXpmLWVhY2gtYnJlYWtwb2ludC1pbigpXCIuIEdvdCBcIiN7JGJyZWFrcG9pbnRzfVwiICgje3R5cGUtb2YoJGJyZWFrcG9pbnRzKX0pLiBFeHBlY3RlZCBhIGJyZWFrcG9pbnQgbmFtZSwgYSBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIFwiYXV0b1wiJztcbiAgfVxuXG4gIC8vIEFkZCBvciByZW1vdmUgdGhlIHplcm8gYnJlYWtwb2ludCBhY2NvcmRpbmcgdG8gYCR6ZXJvLWJyZWFrcG9pbnRgXG4gIEBpZiAkemVyby1icmVha3BvaW50ID09IHRydWUge1xuICAgICQtbGlzdDogam9pbigoJC16Zi16ZXJvLWJyZWFrcG9pbnQpLCBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCkpO1xuICB9XG4gIEBlbHNlIGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gZmFsc2Uge1xuICAgICQtbGlzdDogc2wtcmVtb3ZlKCQtbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgLy8gSXRlcmF0ZSBvbiBicmVha3BvaW50KHMpXG4gIEBlYWNoICRicCBpbiAkLWxpc3Qge1xuICAgICRvbGQtemYtc2l6ZTogbnVsbDtcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogJGJwICFnbG9iYWw7XG5cbiAgICBAaWYgKCRtZWRpYS1xdWVyaWVzID09IHRydWUgb3IgKCRtZWRpYS1xdWVyaWVzID09ICdmb3ItbGlzdHMnIGFuZCAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdCkpIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRicC12YWx1ZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgICAgQGlmICRicC12YWx1ZSAhPSBudWxsIHtcbiAgICAgICAgJG5hbWU6ICRicC12YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIE91dHB1dHMgQ1NTIGNsYXNzZXMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIGZvdW5kYXRpb24tZ3JpZChcbiAgJHJvdzogJ3JvdycsXG4gICRjb2x1bW46ICdjb2x1bW4nLFxuICAkY29sdW1uLXJvdzogJ2NvbHVtbi1yb3cnLFxuICAkZ3V0dGVyOiAnZ3V0dGVyJyxcbiAgJHB1c2g6ICdwdXNoJyxcbiAgJHB1bGw6ICdwdWxsJyxcbiAgJGNlbnRlcjogJ2NlbnRlcmVkJyxcbiAgJHVuY2VudGVyOiAndW5jZW50ZXJlZCcsXG4gICRjb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgJHVuY29sbGFwc2U6ICd1bmNvbGxhcHNlJyxcbiAgJG9mZnNldDogJ29mZnNldCcsXG4gICRlbmQ6ICdlbmQnLFxuICAkZXhwYW5kZWQ6ICdleHBhbmRlZCcsXG4gICRibG9jazogJ2Jsb2NrJ1xuKSB7XG4gIC8vIFJvd1xuICAuI3skcm93fSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAvLyBDb2xsYXBzaW5nXG4gICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmIC4jeyRyb3d9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGdyaWQtY29sdW1uLWd1dHRlcik7XG5cbiAgICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHBhbmRlZCAoZnVsbC13aWR0aCkgcm93XG4gICAgJi4jeyRleHBhbmRlZH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLiN7JGV4cGFuZGVkfSkgLiN7JHJvd30ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgIEBpZiB0eXBlLW9mKCRncmlkLWNvbHVtbi1ndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgIC8vIFN0YXRpYyAodW5yZXNwb25zaXZlKSByb3cgZ3V0dGVyc1xuICAgICAgLy9cbiAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGdyaWQtY29sdW1uLWd1dHRlciB7XG4gICAgICAgICYuI3skZ3V0dGVyfS0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLiN7JGNvbHVtbn0ge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sO1xuXG4gICAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAgICYuI3skZW5kfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWVuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLiN7JGNvbHVtbn0uI3skcm93fS4jeyRyb3d9IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAuI3skcm93fSAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIENvbHVtbiB3aWR0aFxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXNpemUoJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICAgIEBpZiAkaSA8ICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAgIEBpZiAkcHVzaCB7XG4gICAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRwdXNofS0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoJGkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkcHVsbCB7XG4gICAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRwdWxsfS0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoLSRpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT2Zmc2V0c1xuICAgICAgJG86ICRpIC0gMTtcblxuICAgICAgQGlmICRvZmZzZXQge1xuICAgICAgICAuI3skLXpmLXNpemV9LSN7JG9mZnNldH0tI3skb30ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLW9mZigkbyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtbGF5b3V0KCRpLCAnLiN7JGNvbHVtbn0nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIGNvbGxhcHNpbmdcbiAgICAuI3skLXpmLXNpemV9LSN7JGNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cblxuICAgICAgLiN7JHJvd30ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC4jeyRleHBhbmRlZH0uI3skcm93fSAuI3skLXpmLXNpemV9LSN7JGNvbGxhcHNlfS4jeyRyb3d9IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tI3skdW5jb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7IEBpbmNsdWRlIGdyaWQtY29sLWd1dHRlcigkLXpmLXNpemUpOyB9XG4gICAgfVxuXG4gICAgLy8gUG9zaXRpb25pbmdcbiAgICBAaWYgJGNlbnRlciB7XG4gICAgICAuI3skLXpmLXNpemV9LSN7JGNlbnRlcn0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoY2VudGVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHdXR0ZXIgYWRqdXN0bWVudFxuICAgICQtZ3V0dGVyLXVucG9zLXNlbGVjdG9yOiAoXG4gICAgICBpZigkdW5jZW50ZXIsICcuI3skLXpmLXNpemV9LSN7JHVuY2VudGVyfScsIG51bGwpLFxuICAgICAgaWYoJHB1c2gsICcuI3skLXpmLXNpemV9LSN7JHB1c2h9LTAnLCBudWxsKSxcbiAgICAgIGlmKCRwdWxsLCAnLiN7JC16Zi1zaXplfS0jeyRwdWxsfS0wJywgbnVsbCksXG4gICAgKTtcbiAgICBAaWYgKCR1bmNlbnRlciBvciAkcHVzaCBvciAkcHVsbCkge1xuICAgICAgI3skLWd1dHRlci11bnBvcy1zZWxlY3Rvcn0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC11bnBvcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBCbG9jayBncmlkIGNvbHVtbnNcbiAgLiN7JGNvbHVtbn0tI3skYmxvY2t9IHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XG4gIH1cblxuICBAaWYgJGNvbHVtbiA9PSAnY29sdW1uJyBhbmQgaGFzLXZhbHVlKCRncmlkLWNvbHVtbi1hbGlhcykge1xuICAgIC4jeyRncmlkLWNvbHVtbi1hbGlhc30ge1xuICAgICAgLy8gc2Fzcy1saW50OmRpc2FibGUtYmxvY2sgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG4gICAgICBAZXh0ZW5kIC5jb2x1bW47XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2hhbmdlIHRoZSBiZWhhdmlvciBvZiBjb2x1bW5zIGRlZmluZWQgaW5zaWRlIHRoaXMgbWl4aW4gdG8gdXNlIGEgZGlmZmVyZW50IGNvbHVtbiBjb3VudC5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJvb3QgW2ZhbHNlXVxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cbi8vLyAgIElmIGB0cnVlYCwgc2VsZWN0b3JzIHdpbGwgbm90IG5lc3QuXG5AbWl4aW4gZ3JpZC1jb250ZXh0KFxuICAkY29sdW1ucyxcbiAgJHJvb3Q6IGZhbHNlXG4pIHtcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcbiAgJG9sZC1ncmlkLWNvbHVtbi1jb3VudDogJGdyaWQtY29sdW1uLWNvdW50O1xuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zICFnbG9iYWw7XG5cbiAgQGlmICRyb290IHtcbiAgICBAYXQtcm9vdCB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGNvbHVtbiBjb3VudFxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQgIWdsb2JhbDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNmIFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBjbGVhcmZpeC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRjZiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEludmVydHMgdGhlIG1hcmdpbnMgb2YgYSByb3cgdG8gbmVzdCBpdCBpbnNpZGUgb2YgYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93LW5lc3QoJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgJG1hcmdpbjogcmVtLWNhbGMoLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtc2l6ZSkpICogMC41ICogLTE7XG5cbiAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldCBhIGdyaWQgcm93IHNpemVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbkBtaXhpbiBncmlkLXJvdy1zaXplKCRzaXplOiAkZ3JpZC1yb3ctd2lkdGgpIHtcbiAgQGlmICRzaXplID09IGV4cGFuZCB7XG4gICAgJHNpemU6IG5vbmU7XG4gIH1cblxuICBtYXgtd2lkdGg6ICRzaXplO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcblxuJHVuaXQtd2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gZGl2aWRlKCRudW0sICRudW0gKiAwICsgMSk7XG59XG5cbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBgbnVsbGAsIHRoZSBmdW5jdGlvbiB3aWxsIHJlZmVyZW5jZSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiBkaXZpZGUoJGJhc2UsIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIC8vIFVzaW5nIHJlbSBhcyBiYXNlIGFsbG93cyBjb3JyZWN0IHNjYWxpbmdcbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmICRjb3VudCA9PSAxIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuXG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnbnVtYmVyJyB7XG4gICAgQGlmICR1bml0LXdhcm5pbmdzIHtcbiAgICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICB9XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gZW0gaW50byByZW0gaWYgc29tZW9uZSBoYW5kcyBvdmVyICdlbSdzXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW0gb3IgZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XG4gICAgJHZhbHVlOiBkaXZpZGUoc3RyaXAtdW5pdCgkdmFsdWUpLCBzdHJpcC11bml0KCRiYXNlKSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlID09IDByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCwgcGVyY2VudGFnZSwgcmVtIG9yIGVtIHZhbHVlIHRvIGEgdW5pdGxlc3MgdmFsdWUgYmFzZWQgb24gYSBnaXZlbiBmb250IHNpemUuIElkZWFsIGZvciB3b3JraW5nIG91dCB1bml0bGVzcyBsaW5lIGhlaWdodHMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gY29udmVydCB0byBhIHVuaXRsZXNzIGxpbmUgaGVpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGZvbnQgc2l6ZSB0byB1c2UgdG8gd29yayBvdXQgdGhlIGxpbmUgaGVpZ2h0IC0gZGVmYXVsdHMgdG8gJGdsb2JhbC1mb250LXNpemVcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBVbml0bGVzcyBudW1iZXJcbkBmdW5jdGlvbiB1bml0bGVzcy1jYWxjKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBGaXJzdCwgbGV0cyBjb252ZXJ0IG91ciAkYmFzZSB0byBwaXhlbHNcblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6IGRpdmlkZSgkYmFzZSwgMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBOb3cgbGV0J3MgY29udmVydCBvdXIgdmFsdWUgdG8gcGl4ZWxzIHRvb1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICclJyB7XG4gICAgJHZhbHVlOiBkaXZpZGUoJHZhbHVlLCAxMDAlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIC8vICdweCdcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIHtcbiAgICBAcmV0dXJuIGRpdmlkZShzdHJpcC11bml0KCR2YWx1ZSksIHN0cmlwLXVuaXQoJGJhc2UpKTtcbiAgfVxuXG4gIC8vIGFzc3VtZSB0aGF0IGxpbmUtaGVpZ2h0cyBncmVhdGVyIHRoYW4gMTAgYXJlIG1lYW50IHRvIGJlIGFic29sdXRlIGluICdweCdcbiAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICgkdmFsdWUgPiAxMCkge1xuICAgIEByZXR1cm4gZGl2aWRlKCR2YWx1ZSwgc3RyaXAtdW5pdCgkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJGd1dHRlciBbYXV0b11cbi8vLyAgIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkZ3V0dGVycyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkZ3V0dGVycyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkZ3V0dGVyLCAkZ3V0dGVycykge1xuICAgICRwYWRkaW5nOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAqIDAuNTtcblxuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gIH1cbn1cblxuLy8vIENvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nLiAqKk5vdGU6Kiogb25seSB1c2UgdGhpcyBtaXhpbiB3aXRoaW4gYSBicmVha3BvaW50LiBUbyBjb2xsYXBzZSBhIGNvbHVtbidzIGd1dHRlcnMgb24gYWxsIHNjcmVlbiBzaXplcywgdXNlIHRoZSBgJGd1dHRlcmAgcGFyYW1ldGVyIG9mIHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4gaW5zdGVhZC5cbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigwKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWd1dHRlcigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZ3V0dGVyXG5AbWl4aW4gZ3JpZC1jb2wtZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2V0cyBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucyB0byBtYXRjaCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG1hcmdpbiBbYXV0b11cbi8vLyAgIFRoZSBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJG1hcmdpbnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIG1hcmdpbiByZXNwb25zaXZlLCB1c2luZyB0aGUgJG1hcmdpbnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXJnaW5zIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLW1hcmdpbiAoXG4gICRtYXJnaW46IGF1dG8sXG4gICRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJG1hcmdpbiwgJG1hcmdpbnMpIHtcbiAgICAkbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSB3aWR0aCBvZiBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHdpZHRoIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggdG8gbWFrZSB0aGUgY29sdW1uLiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIHdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1zaXplKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1zaXplXG5AbWl4aW4gZ3JpZC1jb2wtc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gRmluZHMgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIHR3byBpbnRlZ2Vycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYSAtIEZpcnN0IG51bWJlciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYiAtIFNlY29uZCBudW1iZXIgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvci5cbkBmdW5jdGlvbiBnY2QoJGEsICRiKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9HcmVhdGVzdF9jb21tb25fZGl2aXNvciNKYXZhU2NyaXB0XG4gIEBpZiAoJGIgIT0gMCkge1xuICAgIEByZXR1cm4gZ2NkKCRiLCAkYSAlICRiKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBhYnMoJGEpO1xuICB9XG59XG5cbi8vLyBIYW5kbGVzIGRlY2ltYWwgZXhwb25lbnRzIGJ5IHRyeWluZyB0byBjb252ZXJ0IHRoZW0gaW50byBhIGZyYWN0aW9uIGFuZCB0aGVuIHVzZSBhIG50aC1yb290LWFsZ29yaXRobSBmb3IgcGFydHMgb2YgdGhlIGNhbGN1bGF0aW9uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgYmFzZSBudW1iZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBvbmVudCAtIFRoZSBleHBvbmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBwcm9kdWN0IG9mIHRoZSBleHBvbmVudGlhdGlvbi5cbkBmdW5jdGlvbiBwb3coJGJhc2UsICRleHBvbmVudCwgJHByZWM6IDE2KSB7XG4gIEBpZiAoZmxvb3IoJGV4cG9uZW50KSAhPSAkZXhwb25lbnQpIHtcbiAgICAkcHJlYzI6IHBvdygxMCwgJHByZWMpO1xuICAgICRleHBvbmVudDogcm91bmQoJGV4cG9uZW50ICogJHByZWMyKTtcbiAgICAkZGVub21pbmF0b3I6IGdjZCgkZXhwb25lbnQsICRwcmVjMik7XG4gICAgQHJldHVybiBudGgtcm9vdChwb3coJGJhc2UsIGRpdmlkZSgkZXhwb25lbnQsICRkZW5vbWluYXRvcikpLCBkaXZpZGUoJHByZWMyLCAkZGVub21pbmF0b3IpLCAkcHJlYyk7XG4gIH1cblxuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cG9uZW50ID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkYmFzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cG9uZW50IDwgMSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogZGl2aWRlKCR2YWx1ZSwgJGJhc2UpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bSwgJG46IDIsICRwcmVjOiAxMikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvTnRoX3Jvb3QjSmF2YVNjcmlwdFxuICAkeDogMTtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRwcmVjIHtcbiAgICAkeDogZGl2aWRlKDEsICRuKSAqICgoJG4gLSAxKSAqICR4ICsgZGl2aWRlKCRudW0sIHBvdygkeCwgJG4gLSAxKSkpO1xuICB9XG5cbiAgQHJldHVybiAkeDtcbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHdpZHRoIGZvciBhIGdpdmVuIHJhdGlvLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG4vLy8gQHJldHVybiB7TnVtYmVyfSBBIHBlcmNlbnRhZ2UgdmFsdWUgZm9yIHRoZSBoZWlnaHQgcmVsYXRpdmUgdG8gdGhlIHdpZHRoIG9mIGEgcmVzcG9uc2l2ZSBjb250YWluZXIuXG5AZnVuY3Rpb24gcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gZGl2aWRlKCRoLCAkdykgKiAxMDAlO1xufVxuXG4vLy8gUGFyc2UgdGhlIGdpdmVuIGAkZnJhY3Rpb25gIHRvIG51bWVyYXRvcnMgYW5kIGRlbnVtZXJhdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJGZyYWN0aW9uIC0gVmFsdWUgcmVwcmVzZW50aW5nIGEgZnJhY3Rpb24gdG8gcGFyc2UuIEl0IGNhbiBiZSBmb3JtYXR0ZWQgYXMgYDUwJWAsIGAxIG9mIDJgLCBgMS8yYCBvciBgNTBgIChubyBkZW5vbWluYXRvciB3b3VsZCBiZSByZXR1cm5lZCkuXG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBMaXN0IG9mIHBhcnNlZCB2YWx1ZXMgd2l0aCBudW1lcmF0b3IgYXQgZmlyc3QgcG9zaXRpb24gYW5kIGRlbnVtZXJhdG9yIGFzIHNlY29uZC4gVGhlc2UgdmFsdWVzIG1heSBiZSBudWxsLlxuQGZ1bmN0aW9uIHpmLXBhcnNlLWZyYWN0aW9uKCRmcmFjdGlvbikge1xuXG4gIEBpZiB0eXBlLW9mKCRmcmFjdGlvbikgPT0gJ251bWJlcicge1xuICAgIC8vIFwiNTAlXCJcbiAgICBAaWYgdW5pdCgkZnJhY3Rpb24pID09ICclJyB7XG4gICAgICBAcmV0dXJuIChzdHJpcC11bml0KCRmcmFjdGlvbiksIDEwMCk7XG4gICAgfVxuICAgIEBlbHNlIGlmICh1bml0KCRmcmFjdGlvbikgPT0gJycpIHtcbiAgICAgIC8vIFwiMC41XCJcbiAgICAgIEBpZiAkZnJhY3Rpb24gPCAxIHtcbiAgICAgICAgQHJldHVybiAoJGZyYWN0aW9uICogMTAwLCAxMDApO1xuICAgICAgfVxuICAgICAgLy8gXCI1MFwiXG4gICAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gKCRmcmFjdGlvbiwgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgdHlwZS1vZigkZnJhY3Rpb24pID09ICdsaXN0JyB7XG4gICAgLy8gXCI1MCBvZiAxMDBcIiwgXCI1MC8xMDBcIi4uLlxuICAgIEBpZiBsZW5ndGgoJGZyYWN0aW9uKSA9PSAzXG4gICAgYW5kIHR5cGUtb2YobnRoKCRmcmFjdGlvbiwgMSkgPT0gJ251bWJlcicpXG4gICAgYW5kIHR5cGUtb2YobnRoKCRmcmFjdGlvbiwgMykgPT0gJ251bWJlcicpIHtcbiAgICAgIEByZXR1cm4gKG50aCgkZnJhY3Rpb24sIDEpLCBudGgoJGZyYWN0aW9uLCAzKSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAobnVsbCwgbnVsbCk7XG59XG5cbi8vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIGAkdmFsdWVgIHJlcHJlc2VudHMgYSBmcmFjdGlvbi4gU3VwcG9ydHMgZm9ybWF0cyBsaWtlIGA1MCVgLCBgMSBvZiAyYCwgYDEgcGVyIDJgIG9yIGAxLzJgLlxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWUgLSBWYWx1ZSB0byB0ZXN0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGFsbG93LW5vLWRlbm9taW5hdG9yIFtmYWxzZV0gLSBJZiBgdHJ1ZWAsIHNpbXBsZSBudW1iZXJzIHdpdGhvdXQgZGVub21pbmF0b3JzIGxpa2UgYDUwYCBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gYHRydWVgIGlmIGAkdmFsdWVgIHJlcHJlc2VudHMgYSBmcmFjdGlvbiwgYGZhbHNlYCBvdGhlcndpc2UuXG5AZnVuY3Rpb24gemYtaXMtZnJhY3Rpb24oJHZhbHVlLCAkYWxsb3ctbm8tZGVub21pbmF0b3I6IGZhbHNlKSB7XG4gICRwYXJzZWQ6IHpmLXBhcnNlLWZyYWN0aW9uKCR2YWx1ZSk7XG4gIEByZXR1cm4gbm90KG50aCgkcGFyc2VkLCAxKSA9PSBudWxsXG4gICAgb3IgKG50aCgkcGFyc2VkLCAyKSA9PSBudWxsIGFuZCAkYWxsb3ctbm8tZGVub21pbmF0b3IgPT0gZmFsc2UpKTtcbn1cblxuLy8vIENhbGN1bGF0ZSBhIHBlcmNlbnRhZ2UgZnJvbSBhIGdpdmVuIGZyYWN0aW9uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGZyYWN0aW9uIC0gVmFsdWUgcmVwcmVzZW50aW5nIGEgZnJhY3Rpb24gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgcGVyY2VudGFnZSwgZm9ybWF0dGVkIGFzIGA1MGAgKHJlbGF0aXZlIHRvIGAkZGVub21pbmF0b3JgKSwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRkZW5vbWluYXRvciAtIERlZmF1bHQgdmFsdWUgdG8gdXNlIGFzIGRlbm9taW5hdG9yIHdoZW4gYCRmcmFjdGlvbmAgcmVwcmVzZW50cyBhbiBhYnNvbHV0ZSB2YWx1ZS5cbkBmdW5jdGlvbiBmcmFjdGlvbi10by1wZXJjZW50YWdlKFxuICAkZnJhY3Rpb24sXG4gICRkZW5vbWluYXRvcjogbnVsbFxuKSB7XG4gICRwYXJzZWQ6IHpmLXBhcnNlLWZyYWN0aW9uKCRmcmFjdGlvbik7XG4gICRwYXJzZWQtbm9taW5hdG9yOiBudGgoJHBhcnNlZCwgMSk7XG4gICRwYXJzZWQtZGVub21pbmF0b3I6IG50aCgkcGFyc2VkLCAyKTtcblxuICBAaWYgJHBhcnNlZC1ub21pbmF0b3IgPT0gbnVsbCB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIFwiZnJhY3Rpb24tdG8tcGVyY2VudGFnZSgpXCIuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIiAvIFwibi9uXCIuJztcbiAgfVxuICBAaWYgJHBhcnNlZC1kZW5vbWluYXRvciA9PSBudWxsIHtcbiAgICBAaWYgdHlwZS1vZigkZGVub21pbmF0b3IpID09ICdudW1iZXInIHtcbiAgICAgICRwYXJzZWQtZGVub21pbmF0b3I6ICRkZW5vbWluYXRvcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGVycm9yICdFcnJvciB3aXRoIFwiZnJhY3Rpb24tdG8tcGVyY2VudGFnZSgpXCIuIEEgZGVmYXVsdCBcIiRkZW5vbWluYXRvclwiIGlzIHJlcXVpcmVkIHRvIHN1cHBvcnQgYWJzb2x1dGUgdmFsdWVzJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHBlcmNlbnRhZ2UoZGl2aWRlKCRwYXJzZWQtbm9taW5hdG9yLCAkcGFyc2VkLWRlbm9taW5hdG9yKSk7XG59XG5cbi8vLyBEaXZpZGUgdGhlIGdpdmVuIGAkZGl2aWRlbnRgIGJ5IHRoZSBnaXZlbiBgJGRpdmlzb3JgLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRkaXZpZGVudCAtIFRoZSBkaXZpZGVudC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGRpdmlzb3IgLSBUaGUgZGl2aXNvci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHByZWNpc2lvbiAtIFRoZSBwcmVjaXNpb24gZGVjaW1hbHMgZm9yIHRoZSBkaXZpc2lvbi5cbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIHByb2R1Y3Qgb2YgdGhlIGRpdmlzaW9uLlxuQGZ1bmN0aW9uIGRpdmlkZSgkZGl2aWRlbmQsICRkaXZpc29yLCAkcHJlY2lzaW9uOiAxMikge1xuICAkc2lnbjogaWYoJGRpdmlkZW5kID4gMCBhbmQgJGRpdmlzb3IgPiAwIG9yICRkaXZpZGVuZCA8IDAgYW5kICRkaXZpc29yIDwgMCwgMSwgLTEpO1xuICAkZGl2aWRlbmQ6IGFicygkZGl2aWRlbmQpO1xuICAkZGl2aXNvcjogYWJzKCRkaXZpc29yKTtcbiAgQGlmICRkaXZpZGVuZCA9PSAwIHtcbiAgICBAcmV0dXJuIDA7XG4gIH1cbiAgQGlmICRkaXZpc29yID09IDAge1xuICAgIEBlcnJvciAnQ2Fubm90IGRpdmlkZSBieSAwJztcbiAgfVxuICAkcmVtYWluZGVyOiAkZGl2aWRlbmQ7XG4gICRyZXN1bHQ6IDA7XG4gICRmYWN0b3I6IDEwO1xuICBAd2hpbGUgKCRyZW1haW5kZXIgPiAwIGFuZCAkcHJlY2lzaW9uID49IDApIHtcbiAgICAkcXVvdGllbnQ6IDA7XG4gICAgQHdoaWxlICgkcmVtYWluZGVyID49ICRkaXZpc29yKSB7XG4gICAgICAkcmVtYWluZGVyOiAkcmVtYWluZGVyIC0gJGRpdmlzb3I7XG4gICAgICAkcXVvdGllbnQ6ICRxdW90aWVudCArIDE7XG4gICAgfVxuICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArICRxdW90aWVudDtcbiAgICAkZmFjdG9yOiAkZmFjdG9yICogMC4xO1xuICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgKiAxMDtcbiAgICAkcHJlY2lzaW9uOiAkcHJlY2lzaW9uIC0gMTtcbiAgICBAaWYgKCRwcmVjaXNpb24gPCAwIGFuZCAkcmVtYWluZGVyID49ICRkaXZpc29yICogNSkge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIDE7XG4gICAgfVxuICB9XG4gICRyZXN1bHQ6ICRyZXN1bHQgKiAkZmFjdG9yICogJHNpZ247XG4gICRkaXZpZGVuZC11bml0OiB1bml0KCRkaXZpZGVuZCk7XG4gICRkaXZpc29yLXVuaXQ6IHVuaXQoJGRpdmlzb3IpO1xuICAkdW5pdC1tYXA6IChcbiAgICAncHgnOiAxcHgsXG4gICAgJ3JlbSc6IDFyZW0sXG4gICAgJ2VtJzogMWVtLFxuICAgICclJzogMSVcbiAgKTtcbiAgQGlmICgkZGl2aWRlbmQtdW5pdCAhPSAkZGl2aXNvci11bml0IGFuZCBtYXAtaGFzLWtleSgkdW5pdC1tYXAsICRkaXZpZGVuZC11bml0KSkge1xuICAgICRyZXN1bHQ6ICRyZXN1bHQgKiBtYXAtZ2V0KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIGEgY29sdW1uIGJhc2VkIG9uIGEgbnVtYmVyIG9mIGZhY3RvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkY29sdW1uc1xuLy8vICAgV2lkdGggb2YgdGhlIGNvbHVtbi4gQWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgcGVyY2VudGFnZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGNvbHVtbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgc2luZ2xlIGRpZ2l0IHdpbGwgbWFrZSB0aGUgY29sdW1uIHNwYW4gdGhhdCBudW1iZXIgb2YgY29sdW1ucyB3aWRlLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBjb2x1bW4gY291bnQgb2YgdGhlIHBhcmVudCByb3cuXG4vLy8gICAtIEEgbGlzdCBvZiB0aGUgZm9ybWF0IFwieCBvZiB5XCIgKHdpdGhvdXQgcXVvdGVzKSB3aWxsIG1ha2UgYSBjb2x1bW4gdGhhdCBpcyAqeCogY29sdW1ucyB3aWRlLCBhc3N1bWluZyAqeSogdG90YWwgY29sdW1ucyBmb3IgdGhlIHBhcmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgY2FsY3VsYXRlZCBwZXJjZW50YWdlIHZhbHVlLlxuQGZ1bmN0aW9uIGdyaWQtY29sdW1uKCRjb2x1bW5zKSB7XG4gIEByZXR1cm4gZnJhY3Rpb24tdG8tcGVyY2VudGFnZSgkY29sdW1ucywgJGRlbm9taW5hdG9yOiAkZ3JpZC1jb2x1bW4tY291bnQpO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcbiAgLy8gUG9zaXRpb25cbiAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKGF1dG8pO1xuXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xuICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uIHJvdy4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBhZGRpbmcgYC5yb3dgIGFuZCBgLmNvbHVtbmAgdG8gdGhlIHNhbWUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFdpZHRoIG9mIHRoZSBndXR0ZXJzIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBjb2x1bW4gcm93LiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGdyaWQtY29sdW1uLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLXJvdztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAmLFxuICAmOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBmdW5jdGlvbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEByZXR1cm4gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AbWl4aW4gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXJvdygpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcm93XG5AbWl4aW4gZ3JpZC1jb2wtcm93KFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXJvdygkZ3V0dGVycyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRwb3NpdGlvbiAtIEl0IGNhbiBiZTpcbi8vLyAgICogQSBudW1iZXI6IFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50XG4vLy8gICAgIHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZVxuLy8vICAgICBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuXG4vLy8gICAqIGBjZW50ZXJgOiBDb2x1bW4gd2lsbCBiZSBjZW50ZXJlZFxuLy8vICAgKiBgYXV0b2A6IENvbHVtbiB3aWxsIGJlIHB1c2hlZCB0byB0aGUgbGVmdCAob3IgdG8gdGhlIHJpZ2h0IGZvciB0aGUgbGFzdCBjb2x1bW4pLlxuQG1peGluIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbikge1xuICAvLyBBdXRvIHBvc2l0aW9uaW5nXG4gIEBpZiAkcG9zaXRpb24gPT0gYXV0byB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBMYXN0IGNvbHVtbiBhbGlnbm1lbnRcbiAgICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHVzaC9wdWxsXG4gIEBlbHNlIGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgJG9mZnNldDogcGVyY2VudGFnZShkaXZpZGUoJHBvc2l0aW9uLCAkZ3JpZC1jb2x1bW4tY291bnQpKTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cblxuICAvLyBDZW50ZXIgcG9zaXRpb25pbmdcbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGNlbnRlciB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBAd2FybiAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbi1wb3NpdGlvbigpLiBFbnRlciBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciwgXCJjZW50ZXJcIiBvciBcImF1dG9cIi4nO1xuICB9XG59XG5cbi8vLyBSZXNldCBhIHBvc2l0aW9uIGRlZmluaXRpb24uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbiB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKGF1dG8pO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQgYnkgYCRuYCBjb2x1bW5zLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gV2lkdGggdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdyaWQtY29sdW1uKCRuKTtcbn1cblxuLy8vIERpc2FibGUgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIGxhc3QgY29sdW1uIGluIGEgcm93IGFsaWduaW5nIHRvIHRoZSBvcHBvc2l0ZSBlZGdlLlxuQG1peGluIGdyaWQtY29sdW1uLWVuZCB7XG4gIC8vIFRoaXMgZXh0cmEgc3BlY2lmaWNpdHkgaXMgcmVxdWlyZWQgZm9yIHRoZSBwcm9wZXJ0eSB0byBiZSBhcHBsaWVkXG4gICY6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC1wb3MoJHBvc2l0aW9uKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bnBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bnBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtdW5wb3Mge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bnBvc2l0aW9uO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tb2Zmc2V0KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1vZmZzZXRcbkBtaXhpbiBncmlkLWNvbC1vZmYoJG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWVuZCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZW5kXG5AbWl4aW4gZ3JpZC1jb2wtZW5kIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZW5kO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNvbHVtbiddIC0gU2VsZWN0b3IocykgdG8gdXNlIGZvciBjaGlsZCBlbGVtZW50cy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkZ3V0dGVyXG4vLy8gICBUaGUgZ3V0dGVyIHRvIGFwcGx5IHRvIGNoaWxkIGVsZW1lbnRzLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gJGdyaWQtY29sdW1uLWd1dHRlciB3aWxsIHVzZSB0aGUgdmFsdWVzIGluIHRoZSAkZ3JpZC1jb2x1bW4tZ3V0dGVyIG1hcCwgaW5jbHVkaW5nIGJyZWFrcG9pbnQgc2l6ZXMuXG4vLy8gICAtIEEgZml4ZWQgbnVtZXJpYyB2YWx1ZSB3aWxsIGFwcGx5IHRoaXMgZ3V0dGVyIHRvIGFsbCBicmVha3BvaW50cy5cbkBtaXhpbiBncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nLFxuICAkZ3V0dGVyOiBudWxsXG4pIHtcbiAgJiA+ICN7JHNlbGVjdG9yfSB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZShkaXZpZGUoMSwgJG4pKTtcblxuICAgIC8vIElmIGEgJGd1dHRlciB2YWx1ZSBpcyBwYXNzZWRcbiAgICBAaWYoJGd1dHRlcikge1xuICAgICAgLy8gR3V0dGVyc1xuICAgICAgQGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ21hcCcge1xuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xuICAgICAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkdmFsdWUpICogMC41O1xuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkZ3V0dGVyKSA+IDAge1xuICAgICAgICAkcGFkZGluZzogcmVtLWNhbGMoJGd1dHRlcikgKiAwLjU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoI3skbn1uKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBleHRyYSBDU1MgdG8gYmxvY2sgZ3JpZCBjaGlsZHJlbiBzbyB0aGUgbGFzdCBpdGVtcyBpbiB0aGUgcm93IGNlbnRlciBhdXRvbWF0aWNhbGx5LiBBcHBseSB0aGlzIHRvIHRoZSBjb2x1bW5zLCBub3QgdGhlIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBpdGVtcyB0aGF0IGFwcGVhciBpbiBlYWNoIHJvdy5cbkBtaXhpbiBncmlkLWxheW91dC1jZW50ZXItbGFzdCgkbikge1xuICBAZm9yICRpIGZyb20gMSB0byAkbiB7XG4gICAgQGlmICRpID09IDEge1xuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIGRpdmlkZSgxMDAsICRuKSAqICRpKSAqIDAuNSAqIDElO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmOm50aC1jaGlsZCgjeyRufW4rMSk6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAgLSBkaXZpZGUoMTAwLCAkbikgKiAkaSkgKiAwLjUgKiAxJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbG9hdFxuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzIHtcbiAgLmZsb2F0LWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LWNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgLmNsZWFyZml4IHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPi08aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgZm9yIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc3R5bGVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pICFkZWZhdWx0O1xuXG4vLyAkaGVhZGVyLXN0eWxlcyBtYXAgaXMgYnVpbHQgZnJvbSAkaGVhZGVyLXNpemVzIGluIG9yZGVyIHRvIGVuc3VyZSBkb3dud2FyZCBjb21wYXRpYmlsaXR5XG4vLyB3aGVuICRoZWFkZXItc2l6ZXMgaXMgZGVwcmVjaWF0ZWQsICRoZWFkZXItc3R5bGVzIG5lZWRzIHRvIGdldCAhZGVmYXVsdCB2YWx1ZXMgbGlrZSBzZXR0aW5ncy5zY3NzXG5AZnVuY3Rpb24gYnVpbGQtZnJvbS1oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcykge1xuICBAd2FybiAnTm90ZSwgdGhhdCAkaGVhZGVyLXNpemVzIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJGhlYWRlci1zdHlsZXMuICRoZWFkZXItc2l6ZXMgc3RpbGwgd29ya3MsIGJ1dCBpdCBpcyBnb2luZyB0byBiZSBkZXByZWNpYXRlZC4nO1xuICAkaGVhZGVyLXN0eWxlczogKCk7XG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcbiAgICAkaGVhZGVyLW1hcDogKCk7XG4gICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XG4gICAgICAkaGVhZGVyLW1hcDogbWFwLW1lcmdlKCRoZWFkZXItbWFwLCAoJGhlYWRlcjogKCdmb250LXNpemUnOiAkZm9udC1zaXplKSkpO1xuICAgIH1cbiAgICAkaGVhZGVyLXN0eWxlczogbWFwLW1lcmdlKCRoZWFkZXItc3R5bGVzLCAoJHNpemU6ICRoZWFkZXItbWFwKSk7XG4gIH1cbiAgQHJldHVybiAkaGVhZGVyLXN0eWxlcztcbn1cblxuLy8gSWYgaXQgZXhpc3RzICRoZWFkZXJzLXNpemVzIGlzIHVzZWQgdG8gYnVpbGQgJGhlYWRlci1zdHlsZXMuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoaGVhZGVyLXNpemVzKSB7XG4gICRoZWFkZXItc3R5bGVzOiBidWlsZC1mcm9tLWhlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKTtcbn1cblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFVzZSB0aGUgYC5jb2RlLWlubGluZWAgY29tcG9uZW50IGFzIGRlZmF1bHQgZm9yIGA8Y29kZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRlbmFibGUtY29kZS1pbmxpbmU6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3MuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIExpc3RcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcblxuLy8vIEJ1bGxldCB0eXBlIHRvIHVzZSBmb3IgdW5vcmRlcmVkIGxpc3RzIChlLmcuLCBgc3F1YXJlYCwgYGNpcmNsZWAsIGBkaXNjYCkuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBhIGxpc3QgaW5zaWRlIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBgPGR0PmAgYW5kIGA8ZGQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG5cbi8vLyBTaWRlIGJvcmRlciBmb3IgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gVXNlIHRoZSBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudCBhcyBkZWZhdWx0IGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZW5hYmxlLWNpdGUtYmxvY2s6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsIC5oMSxcbiAgaDIsIC5oMixcbiAgaDMsIC5oMyxcbiAgaDQsIC5oNCxcbiAgaDUsIC5oNSxcbiAgaDYsIC5oNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgc21hbGwge1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAjeyRoZWFkZXJ9LCAuI3skaGVhZGVyfSB7XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXNpemUpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZzKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmcykpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxoKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGgpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMoJGhlYWRlci1saW5laGVpZ2h0LCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG10KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbXQpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1iKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWIpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRoZWFkZXItbWFyZ2luLWJvdHRvbSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgbWF4LXdpZHRoOiAkaHItd2lkdGg7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcblxuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIElubGluZSBDaXRhdGlvbnNcbiAgQGlmICgkZW5hYmxlLWNpdGUtYmxvY2sgPT0gdHJ1ZSkge1xuICAgIGNpdGUge1xuICAgICAgLy8gRXh0ZW5kaW5nIGEgY2xhc3MgaXMgbm90IHJlY29tbWVuZGVkLlxuICAgICAgLy8gVE9ETzogQnJlYWsgdGhlIHR5cG9ncmFwaHktYmFzZS90eXBvZ3JhcGh5LWhlbHBlcnMgc2VwYXJhdGlvblxuICAgICAgQGV4dGVuZCAlY2l0ZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIGFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAkYWJici11bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ3VyZXNcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBDb2RlXG4gIEBpZiAoJGVuYWJsZS1jb2RlLWlubGluZSA9PSB0cnVlKSB7XG4gICAgY29kZSB7XG4gICAgICBAZXh0ZW5kICVjb2RlLWlubGluZTtcbiAgICB9XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRrZXlzdHJva2UtcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAka2V5c3Ryb2tlLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWhlbHBlcnNcbi8vLy9cblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRvcCBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBQc2V1ZG8gY29udGVudCBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgdGhlIGAuY29kZS1pbmxpbmVgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIHRoZSBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1ibG9jay1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIHVuZGVyIHRoZSBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjb2RlLWJsb2NrLW1hcmdpbi1ib3R0b206IDEuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGNpdGUtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICRjaXRlLWNvbG9yO1xuICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJGNpdGUtcHNldWRvLWNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIEFkZCBiYXNpYyBzdHlsZXMgZm9yIGEgY29kZSBoZWxwZXIuXG4vLy8gU2VlIGBjb2RlLWlubGluZWAgYW5kIGBjb2RlLWJsb2NrYCBtaXhpbnMuXG5AbWl4aW4gY29kZS1zdHlsZSB7XG4gIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGNvZGUtY29sb3I7XG59XG5cbi8vLyBNYWtlIGNvZGUgaGVscGVyIGZyb20gdGhlIGBjb2RlLXN0eWxlYCBtaXhpbiBpbmxpbmUuXG4vLy8gVXNlZCB0byBnZW5lcmF0ZSBgLmNvZGUtaW5saW5lYFxuQG1peGluIGNvZGUtaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcblxuICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xufVxuXG4vLy8gTWFrZSBjb2RlIGhlbHBlciBmcm9tIHRoZSBgY29kZS1zdHlsZWAgbWl4aW4gYSBibG9jay5cbi8vLyBVc2VkIHRvIGdlbmVyYXRlIGAuY29kZS1ibG9ja2BcbkBtaXhpbiBjb2RlLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuXG4gIHBhZGRpbmc6ICRjb2RlLWJsb2NrLXBhZGRpbmc7XG4gIG1hcmdpbi1ib3R0b206ICRjb2RlLWJsb2NrLW1hcmdpbi1ib3R0b207XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICB1bCwgb2wge1xuICAgIC8vIFVzZSB0byByZW1vdmUgbnVtYmVycyBmcm9tIG9yZGVyZWQgbGlzdCAmIGJ1bGxldHMgZnJvbSB1bm9yZGVyZWQgbGlzdFxuICAgICYubm8tYnVsbGV0IHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICVjaXRlLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBjaXRlLWJsb2NrO1xuICB9XG5cbiAgLmNpdGUtYmxvY2sge1xuICAgIEBleHRlbmQgJWNpdGUtYmxvY2s7XG4gIH1cblxuICAlY29kZS1pbmxpbmUge1xuICAgIEBpbmNsdWRlIGNvZGUtc3R5bGU7XG4gICAgQGluY2x1ZGUgY29kZS1pbmxpbmU7XG4gIH1cblxuICAuY29kZS1pbmxpbmUge1xuICAgIEBleHRlbmQgJWNvZGUtaW5saW5lO1xuICB9XG5cbiAgLmNvZGUtYmxvY2sge1xuICAgIEBpbmNsdWRlIGNvZGUtc3R5bGU7XG4gICAgQGluY2x1ZGUgY29kZS1ibG9jaztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudCB7XG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRhbGlnbiBpbiAobGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAudGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgZGlzcGxheXMgbmV4dCB0byBhbGwgbGlua3MgdGhlaXIgXCJocmVmXCIgd2hlbiBwcmludGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtaHJlZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNhc3MtbGludDpkaXNhYmxlLWFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgLy8gRW5zdXJlIGEgXCJibGFjay1vbi13aGl0ZVwiIHByaW50IGJ5IHJlbW92aW5nIGJhY2tncm91bmRzLFxuICAgICAgLy8gdXNpbmcgYmxhY2sgdGV4dCBldmVyeXdoZXJlIGFuZCBmb3JjaW5nIHRoZSBicm93c2VyIHRvIGVjb25vbWl6ZSBpbmsuXG4gICAgICBAaWYgJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgICAgICAgY29sb3ItYWRqdXN0OiBlY29ub215O1xuICAgICAgfVxuICAgICAgLy8gT3RoZXJ3aXNlLCBwcmV2ZW50IGFueSBlY29ub215IGJ5IHRoZSBicm93c2VyLlxuICAgICAgQGVsc2Uge1xuICAgICAgICBjb2xvci1hZGp1c3Q6IGV4YWN0O1xuICAgICAgfVxuXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBAaWYgJHByaW50LWhyZWZzIHtcbiAgICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIoaHJlZikgJyknOyB9XG4gICAgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICAgLy8gSGVscGVyIHRvIHJlLWFsbG93IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgY2VydGFpbiBlbGVtZW50cyAoZS5nLiBwcmUsIGJsb2NrcXVvdGUsIHRyKVxuICAgIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBGb250IGZhbWlseSBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEZvbnRcbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIElnbm9yZWQgaWYgbnVsbCAoZGVmYXVsdClcbi8vLyBAdHlwZSBGb250LVdlaWdodFxuJGJ1dHRvbi1mb250LXdlaWdodDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIGZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBidXR0b25zLCB0cmFuc3BhcmVudCBieSBkZWZhdWx0XG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciB3aWR0aCBmb3IgaG9sbG93IG91dGxpbmUgYnV0dG9uc1xuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLy8gdHJhbnNpdGlvbnMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIEFkZGl0aW9uYWwgcmVzcG9uc2l2ZSBjbGFzc2VzIGZvciAuZXhwYW5kZWRcbi8vLyBAdHlwZSBCb29sZWFuXG4kYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcblxuICBAaWYgKHR5cGUtb2YoJGJ1dHRvbi1wYWRkaW5nKSA9PSAnbWFwJykge1xuICAgIEBlYWNoICRzaXplLCAkcGFkZGluZyBpbiAkYnV0dG9uLXBhZGRpbmcge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgfVxuXG4gIGJvcmRlcjogJGJ1dHRvbi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICB0cmFuc2l0aW9uOiAkYnV0dG9uLXRyYW5zaXRpb247XG4gIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG4gIGZvbnQtd2VpZ2h0OiAkYnV0dG9uLWZvbnQtd2VpZ2h0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBiYXNlIHN0eWxlcyBvZiBhIGhvbGxvdyBvciBjbGVhciBidXR0b24gZmlsbGluZyBhY2NvcmRpbmcgdG8gYCRmaWxsYC5cbi8vLyBTZWUgbWl4aW4gYGJ1dHRvbi1maWxsLXN0eWxlYCBmb3IgdGhlIGZpbGxpbmcgc3R5bGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZpbGwgWyRidXR0b24tZmlsbF0gLSBUeXBlIG9mIGZpbGxpbmcgYmV0d2VlbiBgaG9sbG93YCBhbmQgYGNsZWFyYC4gYHNvbGlkYCBoYXMgbm8gZWZmZWN0cy5cbkBtaXhpbiBidXR0b24tZmlsbChcbiAgJGZpbGw6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpZiAkZmlsbCA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gIH1cbiAgQGVsc2UgaWYgJGZpbGwgPT0gY2xlYXIge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1jbGVhcjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlcyBvZiBhIHNvbGlkL2hvbGxvdy9jbGVhciBidXR0b24gZmlsbGluZyBhY2NvcmRpbmcgdG8gYCRmaWxsYC5cbi8vLyBTZWUgbWl4aW5zIGBidXR0b24tc3R5bGVgLCBgYnV0dG9uLWhvbGxvdy1zdHlsZWAgYW5kIGBidXR0b24tY2xlYXItc3R5bGVgIGZvciBlZmZlY3RzIG9mIHZpc3VhbCBzdHlsaW5nIHBhcmFtZXRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZmlsbCBbJGJ1dHRvbi1maWxsXSAtIFR5cGUgb2YgZmlsbGluZyBiZXR3ZWVuIGBob2xsb3dgIGFuZCBgY2xlYXJgLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gLVxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gLVxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSAtXG5AbWl4aW4gYnV0dG9uLWZpbGwtc3R5bGUoXG4gICRmaWxsOiAkYnV0dG9uLWZpbGwsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkZmlsbCA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkZmlsbCA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG4gIEBlbHNlIGlmICRmaWxsID09IGNsZWFyIHtcbiAgICBAaW5jbHVkZSBidXR0b24tY2xlYXItc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6ICRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3Ncbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MpO1xuICB9XG5cbiAgLy8gRGVmYXVsdCBhbmQgZGlzYWJsZWQgc3RhdGVzXG4gICYsXG4gICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdLFxuICAmLmRpc2FibGVkOmhvdmVyLCAmW2Rpc2FibGVkXTpob3ZlcixcbiAgJi5kaXNhYmxlZDpmb2N1cywgJltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBiYXNlIHN0eWxlcyBvZiBhIGhvbGxvdyBidXR0b24uXG4vLy8gU2VlIG1peGluIGBidXR0b24taG9sbG93LXN0eWxlYCBmb3IgdGhlIGZpbGxpbmcgc3R5bGVzLlxuQG1peGluIGJ1dHRvbi1ob2xsb3cge1xuICAmLCAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGhvbGxvdyBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWJhY2tncm91bmRdIC0gVGV4dCBhbmQgYm9yZGVyIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGhvdmVyLWxpZ2h0bmVzcyBbJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzXSAtIENvbG9yIGxpZ2h0bmVzcyBvbiBob3Zlci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYm9yZGVyLXdpZHRoIFskYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhdIC0gQm9yZGVyIHdpZHRoIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uLWhvbGxvdy1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzcyxcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIC8vIERlZmF1bHQgYW5kIGRpc2FibGVkIHN0YXRlc1xuICAmLFxuICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSxcbiAgJi5kaXNhYmxlZDpob3ZlciwgJltkaXNhYmxlZF06aG92ZXIsXG4gICYuZGlzYWJsZWQ6Zm9jdXMsICZbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGNvbG9yO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBiYXNlIHN0eWxlcyBvZiBhIGNsZWFyIGJ1dHRvbi5cbi8vLyBTZWUgbWl4aW4gYGJ1dHRvbi1jbGVhci1zdHlsZWAgZm9yIHRoZSBmaWxsaW5nIHN0eWxlcy5cbkBtaXhpbiBidXR0b24tY2xlYXIge1xuICAmLCAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBjbGVhciBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWJhY2tncm91bmRdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRob3Zlci1saWdodG5lc3MgWyRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc10gLSBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIuXG5AbWl4aW4gYnV0dG9uLWNsZWFyLXN0eWxlKFxuICAkY29sb3I6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIC8vIERlZmF1bHQgYW5kIGRpc2FibGVkIHN0YXRlc1xuICAmLFxuICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSxcbiAgJi5kaXNhYmxlZDpob3ZlciwgJltkaXNhYmxlZF06aG92ZXIsXG4gICYuZGlzYWJsZWQ6Zm9jdXMsICZbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50IGFuZCByZXNldGluZyB0aGUgY3Vyc29yLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3BhY2l0eSBbJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkXSAtIE9wYWNpdHkgb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24tZGlzYWJsZWQoXG4gICRvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWRcbikge1xuICBvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgYWxsIHN0eWxlcyBmb3IgYSBidXR0b24uIEZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciBzdHlsZXMsIHVzZSB0aGUgaW5kaXZpZHVhbCBidXR0b24gbWl4aW5zLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBtYWtlIHRoZSBidXR0b24gZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbihcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcbiAgQGluY2x1ZGUgYnV0dG9uLWZpbGwoJHN0eWxlKTtcbiAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJHN0eWxlLCAkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKCRzdHlsZTogbm9uZSk7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cblxuICAgIEBpZiAkYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQge1xuICAgICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0gb25seSkge1xuICAgICAgICAgICYuI3skc2l6ZX0tb25seS1leHBhbmRlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0gZG93bikge1xuICAgICAgICAgICAgJi4jeyRzaXplfS1kb3duLWV4cGFuZGVkIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9KSB7XG4gICAgICAgICAgICAmLiN7JHNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTb2xpZCwgaG9sbG93ICYgY2xlYXIgc3R5bGVzXG4gICAgQGVhY2ggJGZpbGxpbmcgaW4gKHNvbGlkIGhvbGxvdyBjbGVhcikge1xuICAgICAgJHNlbGVjdG9yOiBpZigkYnV0dG9uLWZpbGwgPT0gJGZpbGxpbmcsIG51bGwsICcuI3skZmlsbGluZ30nKTtcblxuICAgICAgJiN7JHNlbGVjdG9yfSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsKCRmaWxsaW5nKTtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcpO1xuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRmaWxsaW5nLCAkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0YXRlXG4gICAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC8vIERyb3Bkb3duIGFycm93XG4gICAgJi5kcm9wZG93biB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZHJvcGRvd247XG5cbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgPT0gaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmhvbGxvdywgJi5jbGVhciB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB9XG4gIH1cblxuICBhLmJ1dHRvbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEZvbnQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiBwbGFjZWhvbGRlciB0ZXh0IHdpdGhpbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBGb250XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZm9jdXNlZCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBmb2N1c2VkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wYWRkaW5nOiAkZm9ybS1zcGFjaW5nICogMC41ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLy8gUHJvcGVydGllcyB0byB0cmFuc2l0aW9uIG9uIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGZvcm0gYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXRleHQge1xuICAvLyBUZXh0IGlucHV0c1xuICAje3RleHQtaW5wdXRzKCl9LFxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBUZXh0IGFyZWFzXG4gIHRleHRhcmVhIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPSdzdWJtaXQnXSxcbiAgW3R5cGU9J2J1dHRvbiddIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWJ1dHRvbi1yYWRpdXM7XG4gIH1cblxuICAvLyBSZXNldCBOb3JtYWxpemUgc2V0dGluZyBjb250ZW50LWJveCB0byBzZWFyY2ggZWxlbWVudHNcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQbGFjZWhvbGRlciB0ZXh0XG4gIDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcblxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG5cbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgKiAwLjUgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiAkaW5wdXQtbGluZS1oZWlnaHQpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgJiwgJi5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDAsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgJiwgJi5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG5cbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAuaW5wdXQtZ3JvdXAge1xuICAgICAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZHNldCB7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcblxuICBsZWdlbmQge1xuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZmllbGRzZXQge1xuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgbGVnZW5kIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC5maWVsZHNldCB7XG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG4gICY6bm90KFttdWx0aXBsZV0pIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhYmlkZVxuLy8vL1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGlucHV0cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtaW5wdXRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGxhYmVscy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtbGFiZWxzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciB0byB1c2UgZm9yIGludmFsaWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG9mIGFuIGlucHV0IGZpZWxkIHRvIGhhdmUgYW4gZXJyb3Igc3RhdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGFsZXJ0LWNvbG9yXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhY2tncm91bmQtbGlnaHRlbiBbMTAlXSAtIExpZ2h0bmVzcyBsZXZlbCBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBmb3JtLWlucHV0LWVycm9yKFxuICAkYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtaW52YWxpZCxcbiAgJGJhY2tncm91bmQtbGlnaHRlbjogMTAlXG4pIHtcbiAgJjpub3QoOmZvY3VzKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoJGJhY2tncm91bmQsICR3aGl0ZSwgJGJhY2tncm91bmQtbGlnaHRlbik7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBoZWlnaHQgb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHNsaWRlcidzIHRyYWNrLlxuLy8vIEB0eXBlIENvbG9yXG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgYWN0aXZlIGZpbGwgY29sb3Igb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgaGVpZ2h0IG9mIHRoZSBoYW5kbGUgb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiB0aGUgaGFuZGxlIG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgaGFuZGxlIGZvciB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmFkZSBhbW91bnQgb2YgYSBkaXNhYmxlZCBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1yYW5nZS1pbnB1dCB7XG4gIGlucHV0W3R5cGU9J3JhbmdlJ10geyAgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgJG1hcmdpbjogKCRzbGlkZXItaGFuZGxlLWhlaWdodCAtICRzbGlkZXItaGVpZ2h0KSAqIDAuNTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luO1xuICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW47XG5cbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkO1xuICAgIH1cblxuICAgIC8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXZlbmRvci1wcmVmaXhcblxuICAgIC8vIENocm9tZS9TYWZhcmlcbiAgICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgICAgbWFyZ2luLXRvcDogLSRtYXJnaW47XG5cbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJHNsaWRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmlyZWZveFxuICAgICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgICAgbWFyZ2luLXRvcDogLSRtYXJnaW47XG5cbiAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJHNsaWRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW50ZXJuZXQgRXhwbG9yZXJcbiAgICAmOjotbXMtdHJhY2sge1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcblxuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXRvcDogJG1hcmdpbiBzb2xpZCAkYm9keS1iYWNrZ3JvdW5kO1xuICAgICAgYm9yZGVyLWJvdHRvbTogJG1hcmdpbiBzb2xpZCAkYm9keS1iYWNrZ3JvdW5kO1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xuXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotbXMtdGh1bWIge1xuICAgICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi1tcy1maWxsLWxvd2VyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICY6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBAYXQtcm9vdCB7XG4gICAgICBvdXRwdXQge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYW4gYWNjb3JkaW9uIGdyb3VwLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBwbHVzIGFuZCBtaW51cyBpY29ucyB0byB0aGUgc2lkZSBvZiBlYWNoIGFjY29yZGlvbiB0aXRsZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIENvbnRlbnQgZm9yIHRoZSBwbHVzIGljb24gd2hlbiBgJGFjY29yZGlvbi1wbHVzbWludXNgIGlzIGB0cnVlYFxuLy8vIEB0eXBlIFN0cmluZ1xuJGFjY29yZGlvbi1wbHVzLWNvbnRlbnQ6ICdcXDAwMkInICFkZWZhdWx0O1xuXG4vLy8gQ29udGVudCBmb3IgdGhlIG1pbnVzIGljb24gd2hlbiBgJGFjY29yZGlvbi1wbHVzbWludXNgIGlzIGB0cnVlYFxuLy8vIEB0eXBlIFN0cmluZ1xuJGFjY29yZGlvbi1taW51cy1jb250ZW50OiAnXFwyMDEzJyAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBhY2NvcmRpb24gdGl0bGVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBhY2NvcmRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBzYW1lIGVsZW1lbnQgdGhhdCBnZXRzIGBkYXRhLWFjY29yZGlvbmAuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRhaW5lciAoXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWJhY2tncm91bmRcbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICZbZGlzYWJsZWRdIHtcbiAgICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaXN0IGl0ZW0gd2l0aGluIGFuIGFjY29yZGlvbiB1bC5cbkBtaXhpbiBhY2NvcmRpb24taXRlbSB7XG4gICY6Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAgMDtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxuQG1peGluIGFjY29yZGlvbi10aXRsZSAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJGFjY29yZGlvbi10aXRsZS1mb250LXNpemUsXG4gICRjb2xvcjogJGFjY29yZGlvbi1pdGVtLWNvbG9yLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAmIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG5cbiAgQGlmICRhY2NvcmRpb24tcGx1c21pbnVzIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICRhY2NvcmRpb24tcGx1cy1jb250ZW50O1xuICAgIH1cblxuICAgIC5pcy1hY3RpdmUgPiAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJGFjY29yZGlvbi1taW51cy1jb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFjY29yZGlvbiBjb250ZW50LiBBcHBseSB0aGlzIHRvIHRoZSBjb250ZW50IHBhbmUgYmVsb3cgYW4gYWNjb3JkaW9uIGl0ZW0ncyB0aXRsZS5cbkBtaXhpbiBhY2NvcmRpb24tY29udGVudCAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyxcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRhY2NvcmRpb24tY29udGVudC1jb2xvclxuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZCA+ICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGFpbmVyO1xuICB9XG5cbiAgLmFjY29yZGlvbi1pdGVtIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24taXRlbTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi10aXRsZTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uLW1lbnVcbi8vLy9cblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBhY2NvcmRpb24gbWVudXMgaGF2ZSB0aGUgZGVmYXVsdCBhcnJvdyBzdHlsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIGJvcmRlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYm9yZGVyOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBMaXN0XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgaGVpZ2h0LlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtYWNjb3JkaW9uLW1lbnUtbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplLCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUgKiAwLjUpO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMXJlbTtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDFyZW07XG4gIH1cbn1cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51IHtcblxuICAuYWNjb3JkaW9uLW1lbnUge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgICBib3JkZXItdG9wOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yaWdodDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgfVxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgICAgcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gICAgICBwYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW4sIHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWFjY29yZGlvbi1tZW51LWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgbGkge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLmhhcy1zdWJtZW51LXRvZ2dsZSA+IGEge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgfVxuXG4gIC8vIFN1Ym1lbnUgdG9nZ2xlXG4gIC5zdWJtZW51LXRvZ2dsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xuXG4gICAgd2lkdGg6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuICAgIGhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0O1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI7XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFkZCB0aGUgYXJyb3cgdG8gdGhlIHRvZ2dsZVxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplLCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG5cbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gIH1cblxuICAvLyBSb3RhdGUgdGhlIGFycm93IHdoZW4gbWVudSBpcyBvcGVuXG4gIC5zdWJtZW51LXRvZ2dsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgfVxuXG4gIC5zdWJtZW51LXRvZ2dsZS10ZXh0IHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgcGlsbCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgc2ltcGxlIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRpdmUgdGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLi5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hbHQtYWN0aXZlOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBzdGF0ZS4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYGFjdGl2ZWAgd2l0aCBgaXMtYWN0aXZlYC5cbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgYWN0aXZlYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IGNlbnRlcmVkLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgLm1lbnUtY2VudGVyZWQgPiAubWVudWAgd2l0aCBgLm1lbnUuYWxpZ24tY2VudGVyYC5cbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgbWVudS1jZW50ZXJlZGAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgdXNpbmcgYGljb24tKmAgY2xhc3NlcyB3aXRob3V0IGAuaWNvbnNgIGNsYXNzZXNcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCB0aGlzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cblxuICBhLFxuICAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbXMtcGFkZGluZztcbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvZiBpbm5lciBlbGVtZW50c1xuICBpbnB1dCxcbiAgc2VsZWN0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBbGlnbiBtZW51IGl0ZW1zLlxuQG1peGluIG1lbnUtYWxpZ24oJGFsaWdubWVudCkge1xuICBAaWYgJGFsaWdubWVudCA9PSBsZWZ0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gY2VudGVyIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIGEgTWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgW2hvcml6b250YWxdIC0gRGlyZWN0aW9uIG9mIHRoZSBNZW51LiBDYW4gYmUgYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGAuXG5AbWl4aW4gbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFskZ2xvYmFsLWxlZnRdIC0gRGlyZWN0aW9uIG9mIHRoZSBtZW51LiBUaGlzIGVmZmVjdHMgdGhlIHNpZGUgb2YgdGhlIGA8bGk+YCB0aGF0IHJlY2VpdmVzIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LXNpbXBsZS1tYXJnaW5dIC0gVGhlIG1hcmdpbiB0byBhcHBseSB0byBlYWNoIGA8bGk+YC5cbkBtaXhpbiBtZW51LXNpbXBsZSgkZGlyOiAkZ2xvYmFsLWxlZnQsICRtYXJnaW46ICRtZW51LXNpbXBsZS1tYXJnaW4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIGxpICsgbGkge1xuICAgIG1hcmdpbi0jeyRkaXJ9OiAkbWFyZ2luO1xuICB9XG5cbiAgYSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LW5lc3RlZC1tYXJnaW5dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbmVzdGVkLWFsaWdubWVudCBbbGVmdF0gLSBBbGlnbm1lbnQgb2YgdGhlIG5lc3RlZCBjbGFzc1xuQG1peGluIG1lbnUtbmVzdGVkKFxuICAkbWFyZ2luOiAkbWVudS1uZXN0ZWQtbWFyZ2luLFxuICAkbmVzdGVkLWFsaWdubWVudDogbGVmdFxuKSB7XG4gIEBpZiAkbmVzdGVkLWFsaWdubWVudCA9PSByaWdodCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtYXJnaW47XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbiAgfVxuXG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgaWNvbnMgaW4gbWVudXMuXG5AbWl4aW4gbWVudS1pY29ucygpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgaW1nLFxuICAgIGksXG4gICAgc3ZnIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICsgc3BhbiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBbGlnbiB0b3AvYm90dG9tIGljb25zIHdpdGhpbiBhIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYWxpZ25tZW50IFtjZW50ZXJdIC0gQWxpZ25tZW50IG9mIHRoZSBpY29uXG5AbWl4aW4gbWVudS1pY29uLWFsaWdubWVudCgkYWxpZ25tZW50OiBjZW50ZXIpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgJi5pY29uLXRvcCxcbiAgICAmLmljb24tYm90dG9tIHtcbiAgICAgIGxpIGEge1xuICAgICAgICBpbWcsXG4gICAgICAgIGksXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgQGlmICRhbGlnbm1lbnQgPT0gbGVmdCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBwb3NpdGlvbiBjbGFzc2VzIGZvciBpY29ucyB3aXRoaW4gYSBtZW51LlxuQG1peGluIG1lbnUtaWNvbi1wb3NpdGlvbigkcG9zaXRpb246IGxlZnQsICRzcGFjaW5nOiAkbWVudS1pY29uLXNwYWNpbmcpIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJHNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogJHNwYWNpbmcgYXV0byAwO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS10ZXh0IHtcbiAgcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG5cbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIG1lbnUtc3RhdGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZSwgKCRtZW51LWl0ZW0tY29sb3ItYWN0aXZlLCAkbWVudS1pdGVtLWNvbG9yLWFsdC1hY3RpdmUpKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG5cbiAgICAvLyBEZWZhdWx0IG9yaWVudGF0aW9uOiBob3Jpem9udGFsXG4gICAgJiwgJi5ob3Jpem9udGFsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIG9yaWVudGF0aW9uIG1vZGlmaWVyXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tYWxpZ25tZW50KGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggbW9kaWZpZXIgZm9yIGhvcml6b250YWwgb3JpZW50YXRpb25cbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLWFsaWdubWVudChsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcbiAgICB9XG5cbiAgICAvLyBCcmVha3BvaW50IHNwZWNpZmljIHZlcnNpb25zXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IGZhbHNlKSB7XG4gICAgICAmLiN7JC16Zi1zaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1zaW1wbGUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCYXNlIFN0eWxlc1xuICAgICYuaWNvbnMge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICB9XG5cbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtaWNvbnMtYmFjay1jb21wYXQge1xuICAgICAgJi5pY29uLXRvcCxcbiAgICAgICYuaWNvbi1yaWdodCxcbiAgICAgICYuaWNvbi1ib3R0b20sXG4gICAgICAmLmljb24tbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWVudSBpY29uIHBvc2l0aW9uXG4gICAgLy8gSW5jbHVkZXMgc3BlY2lmaWNpdHkgdG8gbmVzdGVkIGljb25zIHdpdGggYSBkaWZmZXJlbnQgcG9zaXRpb25cbiAgICAmLFxuICAgICYubmVzdGVkIHtcbiAgICAgIC8vIEljb24gTGVmdFxuICAgICAgJi5pY29uLWxlZnQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24obGVmdCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEljb24gUmlnaHRcbiAgICAgICYuaWNvbi1yaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihyaWdodCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEljb24gVG9wXG4gICAgICAmLmljb24tdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEljb24gQm90dG9tXG4gICAgICAmLmljb24tYm90dG9tIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGJvdHRvbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgfVxuXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LXN0YXRlLWJhY2stY29tcGF0IHtcbiAgICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gbGVmdFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLWxlZnR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihyaWdodCk7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tYWxpZ25tZW50KHJpZ2h0KTtcblxuICAgICAgLm5lc3RlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRuZXN0ZWQtYWxpZ25tZW50OiByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gY2VudGVyXG4gICAgJi5hbGlnbi1jZW50ZXIge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgIH1cblxuICAgIC5tZW51LXRleHQge1xuICAgICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdCB7XG4gICAgLm1lbnUtY2VudGVyZWQge1xuICAgICAgPiAubWVudSB7XG4gICAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYmFkZ2Vcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBiYWRnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtcGFkZGluZzogMC4zZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGEgYmFkZ2UuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgYmFkZ2UuXG5AbWl4aW4gYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogJGJhZGdlLW1pbndpZHRoO1xuICBwYWRkaW5nOiAkYmFkZ2UtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgZm9udC1zaXplOiAkYmFkZ2UtZm9udC1zaXplO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJhZGdlIHtcbiAgLmJhZGdlIHtcbiAgICBAaW5jbHVkZSBiYWRnZTtcblxuICAgIGJhY2tncm91bmQ6ICRiYWRnZS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYmFkZ2UtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRiYWRnZS1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRiYWRnZS1jb2xvciwgJGJhZGdlLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvbi1ncm91cFxuLy8vL1xuXG4vLy8gTWFyZ2luIGZvciBidXR0b24gZ3JvdXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYnV0dG9ucyB0aGF0IGNhbiBiZSBpbiBhbiBldmVuLXdpZHRoIGJ1dHRvbiBncm91cC4gKE9ubHkgbmVlZGVkIHdoZW4gJGdsb2JhbC1mbGV4Ym94OiBmYWxzZTspXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERldGVybWluZXMgaWYgJGJ1dHRvbi1yYWRpdXMgaXMgYXBwbGllZCB0byBlYWNoIGJ1dHRvbiBvciB0aGUgYnV0dG9uIGdyb3VwIGFzIGEgd2hvbGUuIFVzZSAkZ2xvYmFsLXJhZGl1cyBpbiBfc2V0dGluZ3Muc2NzcyB0byBjaGFuZ2UgcmFkaXVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZCBzdHlsZXMgZm9yIGEgYnV0dG9uIGdyb3VwIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNoaWxkLXNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cChcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZ1xuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyAvLyBEaXNhYmxlIGNsZWFyZml4XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBmb250LXNpemU6IDA7XG4gIH1cblxuICAjeyRjaGlsZC1zZWxlY3Rvcn0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgfVxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIE1ha2UgYnV0dG9ucyBib25kZWQgd2l0aG91dCBnYXAgYmV0d2VlbiB0aGVtLiBCb3JkZXJzIGJldHdlZW4gYnV0dG9ucyBhcmUgbWVyZ2VkXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLW5vLWdhcHMoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiByZW0tY2FsYygtJGJvcmRlci13aWR0aCk7XG5cbiAgICArICN7JHNlbGVjdG9yfSB7XG4gICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXdpZHRoIGJ1dHRvbiBncm91cCwgbWFraW5nIGVhY2ggYnV0dG9uIGVxdWFsIHdpZHRoLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWV4cGFuZChcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZyxcbiAgJGNvdW50OiBudWxsXG4pIHtcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAtJHNwYWNpbmc7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgLy8gRGlzYWJsZSBjbGVhcmZpeFxuICAgIH1cbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBPbmUgY2hpbGRcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzcGFjaW5nfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVHdvIG9yIG1vcmUgY2hpbGRyZWVuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZShkaXZpZGUoMSwgJGkpKX0gLSAjeyRzcGFjaW5nfSk7XG4gICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZyAqIC0kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbi1zdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtdW5zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cCB7XG4gIC5idXR0b24tZ3JvdXAge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cDtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBHcm91cFxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBTb2xpZCwgaG9sbG93ICYgY2xlYXIgc3R5bGVzXG4gICAgQGVhY2ggJGZpbGxpbmcgaW4gKHNvbGlkIGhvbGxvdyBjbGVhcikge1xuICAgICAgJGJhc2Utc2VsZWN0b3I6IGlmKCRidXR0b24tZmlsbCA9PSAkZmlsbGluZywgbnVsbCwgJy4jeyRmaWxsaW5nfScpO1xuXG4gICAgICAmI3skYmFzZS1zZWxlY3Rvcn0ge1xuICAgICAgICAvLyBEbyBub3QgZ2VuZXJhdGUgYnV0dG9uIGJhc2Ugc3R5bGVzIGZvciB0aGUgZGVmYXVsdCBmaWxsaW5nXG4gICAgICAgIEBpZigkYnV0dG9uLWZpbGwgIT0gJGZpbGxpbmcpIHtcbiAgICAgICAgICAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwoJGZpbGxpbmcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAkaW5kaXZpZHVhbC1zZWxlY3RvcjogaWYoJGJ1dHRvbi1maWxsID09ICRmaWxsaW5nLCBudWxsLCAnICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfS4jeyRuYW1lfScpO1xuXG4gICAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0sICN7JGluZGl2aWR1YWwtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRmaWxsaW5nLCAkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi5uby1nYXBzIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1uby1nYXBzO1xuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcblxuICAgICAgJi5leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjYWxsb3V0XG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmFkZSB2YWx1ZSBmb3IgY2FsbG91dCBiYWNrZ3JvdW5kcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgc3R5bGUgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIExpc3RcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgQ2FsbG91dCBwYWRkaW5ncy5cbi8vLyBAdHlwZSBNYXBcbiRjYWxsb3V0LXNpemVzOiAoXG4gIHNtYWxsOiAwLjVyZW0sXG4gIGRlZmF1bHQ6IDFyZW0sXG4gIGxhcmdlOiAzcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLCBpZiB0aGUgY2FsbG91dCBoYXMgYSBkYXJrIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgcmFkaXVzIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFtb3VudCB0byB0aW50IGxpbmtzIHVzZWQgd2l0aGluIGNvbG9yZWQgcGFuZWxzLiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBCb29sZWFuXG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhIGNhbGxvdXQsIGluY2x1ZGluZyBwYWRkaW5nIGFuZCBtYXJnaW4uXG5AbWl4aW4gY2FsbG91dC1iYXNlKCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogJGNhbGxvdXQtbWFyZ2luO1xuICBwYWRkaW5nOiBtYXAtZ2V0KCRjYWxsb3V0LXNpemVzLCBkZWZhdWx0KTtcblxuICBib3JkZXI6ICRjYWxsb3V0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGNhbGxvdXQtcmFkaXVzO1xuXG4gIC8vIFJlc3BlY3QgdGhlIHBhZGRpbmcsIGZvb2wuXG4gID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgcXVpY2sgc3R5bGVzIGZvciBhIGNhbGxvdXQgdXNpbmcgYSBzaW5nbGUgY29sb3IgYXMgYSBiYXNlbGluZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQtc3R5bGUoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gICRiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRjYWxsb3V0LWJhY2tncm91bmQtZmFkZSk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGNhbGxvdXQtZm9udC1jb2xvciwgJGNhbGxvdXQtZm9udC1jb2xvci1hbHQpKTtcbn1cblxuQG1peGluIGNhbGxvdXQtc2l6ZSgkcGFkZGluZykge1xuICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmc7XG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhbGxvdXQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0KCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICBAaW5jbHVkZSBjYWxsb3V0LWJhc2U7XG4gIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FsbG91dCB7XG4gIC5jYWxsb3V0IHtcbiAgICBAaW5jbHVkZSBjYWxsb3V0O1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUsICRwYWRkaW5nIGluIG1hcC1yZW1vdmUoJGNhbGxvdXQtc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoJHBhZGRpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhcmRcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYXJkcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjYXJkIHNoYWRvdy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4uXG4vLy8gQHR5cGUgbnVtYmVyXG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBmb250IGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIC0gQm90dG9tIG1hcmdpbiBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRib3JkZXIgLSBCb3JkZXIgYXJvdW5kIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhZGl1cyAtIGJvcmRlciByYWRpdXMgb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hhZG93IC0gYm94IHNoYWRvdyBvZiB0aGUgY2FyZC5cbkBtaXhpbiBjYXJkLWNvbnRhaW5lcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGNhcmQtZm9udC1jb2xvcixcbiAgJG1hcmdpbjogJGNhcmQtbWFyZ2luLWJvdHRvbSxcbiAgJGJvcmRlcjogJGNhcmQtYm9yZGVyLFxuICAkcmFkaXVzOiAkY2FyZC1ib3JkZXItcmFkaXVzLFxuICAkc2hhZG93OiAkY2FyZC1zaGFkb3dcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgZGl2aWRlci5cbkBtaXhpbiBjYXJkLWRpdmlkZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1kaXZpZGVyLWJhY2tncm91bmQsXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgc2VjdGlvbi5cbkBtaXhpbiBjYXJkLXNlY3Rpb24oXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FyZCB7XG4gIC5jYXJkIHtcbiAgICBAaW5jbHVkZSBjYXJkLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5jYXJkLWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIGNhcmQtZGl2aWRlcjtcbiAgfVxuXG4gIC5jYXJkLXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIGNhcmQtc2VjdGlvbjtcbiAgfVxuXG4gIC8vIEZvciBJRSAxMSAtIEZsZXhidWdcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncy9pc3N1ZXMvNzVcbiAgLmNhcmQtaW1hZ2Uge1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNsb3NlLWJ1dHRvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGByaWdodGAgb3IgYGxlZnRgLCBhbmQgdGhlIHNlY29uZCB2YWx1ZSBzaG91bGQgYmUgYHRvcGAgb3IgYGJvdHRvbWAuXG4vLy8gQHR5cGUgTGlzdFxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLXotaW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQnV0dG9uIHNpemUgdG8gdXNlIGFzIGRlZmF1bHRcbi8vLyBAdHlwZSBTdHJpbmdcbi8vLyBAc2VlICRjbG9zZWJ1dHRvbi1zaXplXG4vLy8gQHNlZSAkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWxcbi8vLyBAc2VlICRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWxcbiRjbG9zZWJ1dHRvbi1kZWZhdWx0LXNpemU6IG1lZGl1bSAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IChvciBsZWZ0KSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gU2l6ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLiBVc2VkIHRvIGdlbmVyYXRlIHNpemluZyBtb2RpZmllcnMuXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24gd2hlbiBiZWluZyBob3ZlcmVkIG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcblxuXG4vLy8gR2V0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBmb3IgYSBjbG9zZSBidXR0b24uIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIG51bWJlciwgdGhlIG51bWJlciBpcyByZXR1cm5lZC4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgY29uZmlnIG1hcCBhbmQgdGhlIG1hcCBoYXMgdGhlIGtleSBgJHNpemVgLCB0aGUgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICR2YWx1ZSAtIEEgbnVtYmVyIG9yIG1hcCB0aGF0IHJlcHJlc2VudHMgdGhlIHNpemUgb3IgcG9zaXRpb24gdmFsdWUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gVGhlIHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbiB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBnaXZlbiBudW1iZXIgb3IgdGhlIHZhbHVlIGZvdW5kIGluIHRoZSBtYXAuXG5AZnVuY3Rpb24gLXpmLWdldC1zaXplLXZhbCgkdmFsdWUsICRzaXplKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAvLyBJZiBpdCBpcywganVzdCByZXR1cm4gdGhlIG51bWJlclxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHNpemUgbmFtZSBleGlzdHMgaW4gdGhlIHZhbHVlIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkdmFsdWUsICRzaXplKSB7XG4gICAgLy8gSWYgaXQgZG9lcywgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkdmFsdWUsICRzaXplKTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgYSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbbWVkaXVtXSAtIFRoZSBzaXplIHRvIHVzZS4gU2V0IHRvIGBzbWFsbGAgdG8gY3JlYXRlIGEgc21hbGwgY2xvc2UgYnV0dG9uLiBUaGUgJ21lZGl1bScgdmFsdWVzIGRlZmluZWQgaW4gYCRjbG9zZWJ1dHRvbi0qYCB2YXJpYWJsZXMgd2lsbCBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uXG5AbWl4aW4gY2xvc2UtYnV0dG9uLXNpemUoJHNpemUpIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgI3skeH06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsLCAkc2l6ZSk7XG4gICN7JHl9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWwsICRzaXplKTtcbiAgZm9udC1zaXplOiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1zaXplLCAkc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0LCAkc2l6ZSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjbG9zZSBidXR0b24sIHVzaW5nIHRoZSBzdHlsZXMgaW4gdGhlIHNldHRpbmdzIHZhcmlhYmxlcy5cbkBtaXhpbiBjbG9zZS1idXR0b24ge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogJGNsb3NlYnV0dG9uLXotaW5kZXg7XG4gIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbiB7XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIC8vIFVzZSBieSBkZWZhdWx0IHRoZSBwbGFjZWhvbGRlciBvZiB0aGUgZGVmYXVsdCBzaXplXG4gICAgQGV4dGVuZCAlemYtY2xvc2UtYnV0dG9uLS0jeyRjbG9zZWJ1dHRvbi1kZWZhdWx0LXNpemV9O1xuXG4gICAgQGluY2x1ZGUgY2xvc2UtYnV0dG9uO1xuXG4gICAgLy8gR2VuZXJhdGUgYSBwbGFjZWhvbGRlciBhbmQgYSBjbGFzcyBmb3IgZWFjaCBzaXplXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRjbG9zZWJ1dHRvbi1zaXplIHtcbiAgICAgIEBhdC1yb290IHtcbiAgICAgICAgJXpmLWNsb3NlLWJ1dHRvbi0tI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKCRuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgQGV4dGVuZCAlemYtY2xvc2UtYnV0dG9uLS0jeyRuYW1lfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUtaWNvbiB7XG4gIC5tZW51LWljb24ge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkY29sb3I6ICR0aXRsZWJhci1pY29uLWNvbG9yLCAkY29sb3ItaG92ZXI6ICR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyKTtcbiAgfVxuXG4gIC5tZW51LWljb24uZGFyayB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJpbGxkb3duXG4vLy8vXG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnR5IHRvIHVzZSBmb3IgYW5pbWF0aW5nIG1lbnVzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYXJyb3dzIHRvIGRyaWxsZG93biBpdGVtcyB3aXRoIHN1Ym1lbnVzLCBhcyB3ZWxsIGFzIHRoZSBiYWNrIGJ1dHRvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IGl0ZW0gcGFkZGluZyBpbiB0aGUgc3VibWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gc3VibWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtcmlnaHQpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcmlsbGRvd24tYXJyb3ctc2l6ZTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1sZWZ0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cblxuICAmLmFsaWduLXJpZ2h0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMXJlbTtcbiAgfVxuXG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcbiAgLy8gQXBwbGllZCB0byB0aGUgTWVudSBjb250YWluZXJcbiAgLmlzLWRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSB0b3AgbGV2ZWwgPHVsPlxuICAuZHJpbGxkb3duIHtcbiAgICBhIHtcbiAgICAgIHBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiAgICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBBcHBsaWVkIHRvIHN1Ym1lbnUgPHVsPnNcbiAgICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgICAgei1pbmRleDogLTE7XG5cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgICB0cmFuc2l0aW9uOiAkZHJpbGxkb3duLXRyYW5zaXRpb247XG5cbiAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgLTEwMCUsIDEwMCUpKTtcbiAgICAgIH1cblxuICAgICAgJi5pcy1jbG9zaW5nIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAxMDAlLCAtMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTdWJtZW51IGl0ZW0gcGFkZGluZ1xuICAgICAgYSB7XG4gICAgICAgIHBhZGRpbmc6ICRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAuZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgJGRyaWxsZG93bi1hcnJvd3Mge1xuICAgICAgQGluY2x1ZGUgemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLWxlZnQpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjc1cmVtOyAvLyBDcmVhdGVzIHNwYWNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgZHJvcGRvd24gcGFuZXMuIEVhY2ggc2l6ZSBpcyBhIENTUyBjbGFzcyB5b3UgY2FuIGFwcGx5LlxuLy8vIEB0eXBlIE1hcFxuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgd2lkdGg6ICRkcm9wZG93bi13aWR0aDtcbiAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmc7XG5cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRkcm9wZG93bi1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtc2l6ZTogJGRyb3Bkb3duLWZvbnQtc2l6ZTtcblxuXG4gIC8vIEFsbG93IGFuIGludGVybWl0dGVudCBzdGF0ZSB0byBkbyBwb3NpdGlvbmluZyBiZWZvcmUgbWFraW5nIHZpc2libGUuXG4gICYuaXMtb3BlbmluZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLmlzLW9wZW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24ge1xuICAuZHJvcGRvd24tcGFuZSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tY29udGFpbmVyO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUsICRzaXplIGluICRkcm9wZG93bi1zaXplcyB7XG4gICAgLmRyb3Bkb3duLXBhbmUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93bi1tZW51XG4vLy8vXG5cbi8vLyBFbmFibGVzIGFycm93cyBmb3IgaXRlbXMgd2l0aCBkcm9wZG93biBtZW51cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IHBhZGRpbmcgZm9yIGFsaWduaW5nIHRoZSBhcnJvdyBjb3JyZWN0bHkuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc6IDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIHN1Yi1tZW51IGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLyBCb3JkZXIgd2lkdGggZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vIFVzZWQgdG8gYWRqdXN0IHRvcCBtYXJnaW4gb2YgYSBzdWItbWVudSBpZiBhIGJvcmRlciBpcyB1c2VkLlxuLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aDogbnRoKCRkcm9wZG93bm1lbnUtYm9yZGVyLCAxKTtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbS4gRXhwbGljaXQgb3ZlcnJpZGUgZm9yIG1lbnUgZGVmYXVsdHNcbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbS4gRXhwbGljaXQgb3ZlcnJpZGUgZm9yIG1lbnUgZGVmYXVsdHNcbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gID4gYTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1yaWdodH06IDE0cHg7XG4gIH1cblxuICAmLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICB9XG5cbiAgJi5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gIH1cbn1cblxuQG1peGluIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgPiBsaS5vcGVucy1sZWZ0IHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpLm9wZW5zLXJpZ2h0IHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZztcbiAgICAgIH1cblxuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAgICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplICogMC41KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgPiBsaSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1sZWZ0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1yaWdodCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICB9XG5cbiAgICAvLyBUb3AtbGV2ZWwgaXRlbVxuICAgID4gbGkgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDtcbiAgICAgIHBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAvLyBUb3AtbGV2ZWwgaXRlbSBhY3RpdmUgc3RhdGVcbiAgICA+IGxpLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAubm8tanMgJiB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTtcbiAgICB9XG5cbiAgICAmLm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuXG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICYub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuXG4gICAgYm9yZGVyOiAkZHJvcGRvd25tZW51LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDtcblxuICAgIC5kcm9wZG93biAmIGEge1xuICAgICAgcGFkZGluZzogJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAodHlwZS1vZigkZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCkgPT0gJ251bWJlcicpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcbiAgICAvLyY6bm90KC5qcy1kcm9wZG93bi1ub2hvdmVyKSA+IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+ICYsIC8vIHdoeSBpcyB0aGlzIGxpbmUgbmVlZGVkPyBPcGVuaW5nIGlzIGhhbmRsZWQgYnkgSlMgYW5kIHRoaXMgY2F1c2VzIHNvbWUgdWdseSBmbGlja2VyaW5nIHdoZW4gdGhlIHN1YiBpcyByZS1wb3NpdGlvbmVkIGF1dG9tYXRpY2FsbHkuLi5cbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXNwb25zaXZlLWVtYmVkXG4vLy8vXG5cbi8vLyBNYXJnaW4gYmVsb3cgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEFzcGVjdCByYXRpb3MgdXNlZCB0byBkZXRlcm1pbmUgcGFkZGluZy1ib3R0b20gb2YgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXJzLlxuLy8vIEB0eXBlIE1hcFxuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd8TGlzdH0gJHJhdGlvIFtkZWZhdWx0XSAtIFJhdGlvIG9mIHRoZSBjb250YWluZXIuIENhbiBiZSBhIGtleSBmcm9tIHRoZSBgJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zYCBtYXAgb3IgYSBsaXN0IGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbkBtaXhpbiByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCkge1xuICBAaWYgdHlwZS1vZigkcmF0aW8pID09ICdzdHJpbmcnIHtcbiAgICAkcmF0aW86IG1hcC1nZXQoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLCAkcmF0aW8pO1xuICB9XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tO1xuICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGlmcmFtZSxcbiAgb2JqZWN0LFxuICBlbWJlZCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkIHtcbiAgLnJlc3BvbnNpdmUtZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCk7XG5cbiAgICAkcmF0aW9zOiBtYXAtcmVtb3ZlKCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcywgZGVmYXVsdCk7XG5cbiAgICBAZWFjaCAkbmFtZSwgJHJhdGlvIGluICRyYXRpb3Mge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbGFiZWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgb2YgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYmFzZSBzdHlsZXMgZm9yIGEgbGFiZWwuXG5AbWl4aW4gbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRsYWJlbC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICRsYWJlbC1yYWRpdXM7XG5cbiAgZm9udC1zaXplOiAkbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1sYWJlbCB7XG4gIC5sYWJlbCB7XG4gICAgQGluY2x1ZGUgbGFiZWw7XG5cbiAgICBiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkbGFiZWwtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkbGFiZWwtY29sb3IsICRsYWJlbC1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZWRpYS1vYmplY3Rcbi8vLy9cblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9uIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGltYWdlcyB3aXRoaW4gYSBtZWRpYSBvYmplY3QsIHdoZW4gdGhlIG9iamVjdCBpcyBzdGFja2VkIHZlcnRpY2FsbHkuIFNldCB0byAnYXV0bycgdG8gdXNlIHRoZSBpbWFnZSdzIG5hdHVyYWwgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1lZGlhIG9iamVjdCBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgYmxvY2spO1xuICBtYXJnaW4tYm90dG9tOiAkbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuXG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIFskbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nXSAtIFBhZGRpbmcgYmV0d2VlbiBzZWN0aW9ucy5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc2VjdGlvbigkcGFkZGluZzogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZykge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkcGFkZGluZztcbiAgfVxuXG4gICY6bGFzdC1jaGlsZDpub3QoOm50aC1jaGlsZCgyKSkge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGluZztcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9ICYge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXN0YWNrO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICYubWFpbi1zZWN0aW9uIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAmLm1pZGRsZSB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgICYuYm90dG9tIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0byBzdGFjayBzZWN0aW9ucyBvZiBhIG1lZGlhIG9iamVjdC4gQXBwbHkgdGhpcyB0byB0aGUgc2VjdGlvbiBlbGVtZW50cywgbm90IHRoZSBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXN0YWNrIHtcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy1ib3R0b206ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0IHtcbiAgLm1lZGlhLW9iamVjdCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXNlY3Rpb247XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBtYXAgb2YgYSBsZWZ0L3JpZ2h0IG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTWFwXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgbWFwIG9mIGEgdG9wL2JvdHRvbSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBmb3IgdGhlIG9mZi1jYW52YXMgb3ZlcmxhcCBwYW5lbC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KSAhZGVmYXVsdDtcblxuLy8vIElubmVyIGJveCBzaGFkb3cgc2l6ZSBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IGNvbG9yIGZvciB0aGUgb2ZmLWNhbnZhcyBwdXNoIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIGNvbnRlbnQgb3ZlcmxheS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBwdXNoYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYG92ZXJsYXBgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMyAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB1c2luZyB0aGUgYHJldmVhbC1mb3ItKmAgY2xhc3NlcyBvciBtaXhpbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cyAhZGVmYXVsdDtcblxuLy8vIFRpbWluZyBmdW5jdGlvbiBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuLy8vIEB0eXBlIEJvb2xcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG92ZXJsYXkgdGhhdCBhcHBlYXJzIHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBjb250ZW50LlxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG5cbiAgLy8vIFRyYW5zZm9ybSBkZXByZWNhdGVkIHNpemUgc2V0dGluZ3MgaW50byBtYXAgJiBzaG93IHdhcm5pbmdcbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy1zaXplcyBpbnN0ZWFkJztcbiAgfVxuICBAaWYgdmFyaWFibGUtZXhpc3RzKG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSB7XG4gICAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKHNtYWxsOiAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUsIG1lZGl1bTogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSAhZ2xvYmFsO1xuICAgIEB3YXJuICckb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHVzZWQgYW55bW9yZSEgUGxlYXNlIHVwZGF0ZSB5b3VyIHNldHRpbmdzIGFuZCB1c2UgdGhlIG1hcCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzIGluc3RlYWQnO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHRoZSB6LWluZGV4ZXMgYW5kIGluY3JlYXNlIHRoZW0gZHVlIHRvIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBvdmVybGF5J3Mgei1pbmRleCBpcyBuZXcgc2luY2UgdjYuNCBhbmQgbWF5IGJlIGlkZW50aWNhbCB0byB0aGUgdXNlciBjdXN0b20gc2V0dGluZ3Mgb2YgdGhlIHB1c2ggei1pbmRleC5cbiAgQGlmICRvZmZjYW52YXMtcHVzaC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcHVzaC16aW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXggPD0gJG9mZmNhbnZhcy1wdXNoLXppbmRleCB7ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCA8PSAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4IHsgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG5cbiAgLy8gSGlkZXMgb3ZlcmZsb3cgb24gYm9keSB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbiAgLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsIHZpc2liaWxpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAmLmlzLW92ZXJsYXktZml4ZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyB3cmFwcGVyLlxuQG1peGluIG9mZi1jYW52YXMtd3JhcHBlcigpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNlKFxuICAkYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kLFxuICAkdHJhbnNpdGlvbjogJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLFxuICAkZml4ZWQ6IHRydWVcbikge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgQGlmICRmaXhlZCA9PSB0cnVlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC8vIFNldCB0aGUgb2ZmLWNhbnZhcyB6LWluZGV4LlxuICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcbiAgfVxuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIC8vIEhpZGUgaW5hY3RpdmUgb2ZmLWNhbnZhcyB3aXRoaW4gdGhlIGNvbnRlbnQgdGhhdCBoYXZlIHRoZSBzYW1lIHBvc2l0aW9uXG4gICYuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBPdmVybGFwIG9ubHkgc3R5bGVzLlxuICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDtcblxuICAgICYuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBTZXRzIHRyYW5zZm9ybSB0byAwIHRvIHNob3cgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbiAgJi5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gcG9zaXRpb24gYW4gb2ZmLWNhbnZhcyBwYW5lbCB0byB0aGUgbGVmdC9yaWdodC90b3AvYm90dG9tLlxuQG1peGluIG9mZi1jYW52YXMtcG9zaXRpb24oXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJG9yaWVudGF0aW9uOiBob3Jpem9udGFsLFxuICAkc2l6ZXM6IGlmKCRvcmllbnRhdGlvbiA9PSBob3Jpem9udGFsLCAkb2ZmY2FudmFzLXNpemVzLCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzKVxuKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcblxuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIGlzIHNldCwgYWRkIGlubmVyIGJveC1zaGFkb3cuXG4gIC8vIFRoaXMgbWltaWNzIHRoZSBvZmYtY2FudmFzIHBhbmVsIGhhdmluZyBhIGxvd2VyIHotaW5kZXgsIHdpdGhvdXQgaGF2aW5nIHRvIGhhdmUgb25lLlxuICBAaWYgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSB7XG4gICAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cocmlnaHQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGxlZnQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhib3R0b20sICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyh0b3AsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4vLy8gU2V0cyB0aGUgc3R5bGVzIGZvciB0aGUgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy1jb250ZW50KCkge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAvLyBCaW5kIHRvIGhhcy10cmFuc2l0aW9uLVggY2xhc3MgdG8gcHJldmVudCB0cmFuc2l0aW9uIGZvciB0cmFuc2Zvcm06bm9uZVxuICAmLmhhcy10cmFuc2l0aW9uLW92ZXJsYXAsXG4gICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBzY29wZSB1bnRpbCB0aGUgZWxlbWVudCBpcyBjbG9zZWQgKG1ha2VzIHN1cmUgdHJhbnNpdGlvbmVuZCBnZXRzIHRyaWdnZXJlZClcbiAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIGVsZW1lbnQgJiBjb250ZW50LCBuZXN0ZWQgaW4gYW5vdGhlciBjb250ZW50XG4gIC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0aGF0IHJldmVhbCBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxuICAkcG9zaXRpb246IGxlZnQsXG4gICR6aW5kZXg6ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCxcbiAgJGNvbnRlbnQ6ICRtYWluY29udGVudC1jbGFzcyxcbiAgJGJyZWFrcG9pbnQ6IHNtYWxsXG4pIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICB6LWluZGV4OiAkemluZGV4O1xuICB0cmFuc2l0aW9uOiBub25lO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXG4gIEBpZiBub3QgJG9mZmNhbnZhcy1maXhlZC1yZXZlYWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBDb25zaWRlciByZXZlYWxlZCBlbGVtZW50IGlzIG5lc3RlZCBpbiBjb250ZW50XG4gIC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgQGF0LXJvb3QgLiN7JGNvbnRlbnR9Lmhhcy1yZXZlYWwtI3skcG9zaXRpb259IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAtemYtZ2V0LWJwLXZhbCgkb2ZmY2FudmFzLXNpemVzLCAkYnJlYWtwb2ludCk7XG4gIH1cblxuICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAocHJpb3IgdG8gdjYuNClcbiAgJiB+IC4jeyRjb250ZW50fSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogLXpmLWdldC1icC12YWwoJG9mZmNhbnZhcy1zaXplcywgJGJyZWFrcG9pbnQpO1xuICB9XG59XG5cbi8vLyBPdmVycmlkZXMgdGhlIG9mZi1jYW52YXMgc3R5bGVzXG5AbWl4aW4gaW4tY2FudmFzKCkge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5wb3NpdGlvbi1sZWZ0LFxuICAmLnBvc2l0aW9uLXJpZ2h0LFxuICAmLnBvc2l0aW9uLXRvcCxcbiAgJi5wb3NpdGlvbi1ib3R0b20ge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vZmYtY2FudmFzIHtcbiAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNpY3M7XG5cbiAgLy8gT2ZmLWNhbnZhcyB3cmFwcGVyXG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtd3JhcHBlcjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyXG4gIC5vZmYtY2FudmFzIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2U7XG5cbiAgICAvLyBGb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSBmb3IgbmVzdGVkIG9mZi1jYW52YXMgYmVjYXVzZSBmaXhlZCBkb2Vzbid0IHdvcmsgZm9yIHB1c2ggdHJhbnNpdGlvbiB3aXRoaW4gdGhlIHRyYW5zZm9ybSBzY29wZS5cbiAgICAvLyBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9ICYge1xuICAgIC8vICAgLy8gTk9URTogc2luY2Ugb3ZlcmxhcCB0cmFuc2l0aW9uIGlzIGN1cnJlbnRseSBmb3JjZWQgaWYgbmVzdGVkLCB0aGVyZSdzIG5vIG5lZWQgdG8gZm9yY2UgcG9zaXRpb24gYWJzb2x1dGUgdW50aWwgbmVzdGVkIHB1c2ggdHJhbnNpdGlvbiBpcyBzdXBwb3J0ZWQuXG4gICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gfVxuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXIgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvblxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlKCRmaXhlZDogZmFsc2UpO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBwb3NpdGlvbiBjbGFzc2VzXG4gIC5wb3NpdGlvbi1sZWZ0ICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihsZWZ0LCAgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi1yaWdodCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihyaWdodCwgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi10b3AgICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbih0b3AsICAgIHZlcnRpY2FsKTsgfVxuICAucG9zaXRpb24tYm90dG9tICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24oYm90dG9tLCB2ZXJ0aWNhbCk7IH1cblxuICAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXZlYWwgb2ZmLWNhbnZhcyBwYW5lbCBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwocmlnaHQsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHRvcCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwoYm90dG9tLCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTW92ZSBpbi1jYW52YXMgZm9yIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgaW4tY2FudmFzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvcmJpdFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWN0aXZlIGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpYW1ldGVyIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBiZXR3ZWVuIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpc3RhbmNlIGZyb20gc2xpZGUgcmVnaW9uIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmcm9tIE9yYml0J3MgYnVsbGV0cyB0byB3aGF0ZXZlciBjb250ZW50IG1heSBsdXJrIGJlbG93IGl0LlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY29udHJvbHMgd2hlbiBob3ZlcmVkLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBvdXRlciBPcmJpdCB3cmFwcGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXRgIGNsYXNzLlxuQG1peGluIG9yYml0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIE9yYml0IHNsaWRlIGNvbnRhaW5lci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNvbnRhaW5lcmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7IC8vIFByZXZlbnQgRk9VQyBieSBub3Qgc2hvd2luZyB1bnRpbCBKUyBzZXRzIGhlaWdodFxuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluZGl2aWR1YWwgc2xpZGVzIG9mIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXNsaWRlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgJi5uby1tb3Rpb251aSB7XG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHNsaWRlIGNvbnRhaW5pbmcgYW4gaW1hZ2UuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1pbWFnZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gb3JiaXQgc2xpZGUgY2FwdGlvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNhcHRpb25gIGNsYXNzLlxuQG1peGluIG9yYml0LWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6ICRvcmJpdC1jYXB0aW9uLXBhZGRpbmc7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZCk7XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciB0aGUgbmV4dC9wcmV2aW91cyBidXR0b25zIGluIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSBzaGFyZWQgYmV0d2VlbiB0aGUgYC5vcmJpdC1uZXh0YCBhbmQgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3NlcyBpbiB0aGUgZGVmYXVsdCBDU1MuXG5AbWl4aW4gb3JiaXQtY29udHJvbCB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyO1xuICB6LWluZGV4OiAkb3JiaXQtY29udHJvbC16aW5kZXg7XG4gIHBhZGRpbmc6ICRvcmJpdC1jb250cm9sLXBhZGRpbmc7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzLlxuQG1peGluIG9yYml0LXByZXZpb3VzIHtcbiAgI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBuZXh0IGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LW5leHRgIGNsYXNzLlxuQG1peGluIG9yYml0LW5leHQge1xuICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICN7JGdsb2JhbC1yaWdodH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjb250YWluZXIgb2YgT3JiaXQgYnVsbGV0cy4gLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtYnVsbGV0c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtYnVsbGV0cyB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A7XG4gIG1hcmdpbi1ib3R0b206ICRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGJ1dHRvbiB7XG4gICAgd2lkdGg6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgaGVpZ2h0OiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIG1hcmdpbjogJG9yYml0LWJ1bGxldC1tYXJnaW47XG5cbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9yYml0IHtcbiAgLm9yYml0IHtcbiAgICBAaW5jbHVkZSBvcmJpdC13cmFwcGVyO1xuICB9XG5cbiAgLm9yYml0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udGFpbmVyO1xuICB9XG5cbiAgLm9yYml0LXNsaWRlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1zbGlkZTtcbiAgfVxuXG4gIC5vcmJpdC1maWd1cmUge1xuICAgIEBpbmNsdWRlIG9yYml0LWZpZ3VyZTtcbiAgfVxuXG4gIC5vcmJpdC1pbWFnZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtaW1hZ2U7XG4gIH1cblxuICAub3JiaXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY2FwdGlvbjtcbiAgfVxuXG4gICVvcmJpdC1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250cm9sO1xuICB9XG5cbiAgLm9yYml0LXByZXZpb3VzIHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LXByZXZpb3VzO1xuICB9XG5cbiAgLm9yYml0LW5leHQge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtbmV4dDtcbiAgfVxuXG4gIC5vcmJpdC1idWxsZXRzIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1idWxsZXRzO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcGFnaW5hdGlvblxuLy8vL1xuXG4vLy8gRm9udCBzaXplIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBvZiB0aGUgcGFnaW5hdGlvbiBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCBtYXJnaW4gdG8gc2VwYXJhdGUgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBlbGxpcHNpcyBpbiBhIHBhZ2luYXRpb24gbWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIElmIGBmYWxzZWAsIGRvbid0IGRpc3BsYXkgcGFnZSBudW1iZXIgbGlua3Mgb24gbW9iaWxlLCBvbmx5IG5leHQvcHJldmlvdXMgbGlua3Ncbi8vLyBhbmQgb3B0aW9uYWxseSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXkgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgb24gbW9iaWxlIGV2ZW4gaWYgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGBmYWxzZWAuXG4vLy8gVGhpcyBwYXJhbWV0ZXIgd2lsbCBvbmx5IG92ZXJyaWRlIHRoZSB2aXNpYmlsaXR5IHNldHRpbmcgb2YgdGhlIGN1cnJlbnQgaXRlbSBmb3IgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7YCxcbi8vLyBpdCB3aWxsIG5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgdmlzaWJpbGl0eSB3aGVuIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgdHJ1ZWAuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFycm93cyBhcmUgYWRkZWQgdG8gdGhlIG5leHQgYW5kIHByZXZpb3VzIGxpbmtzIG9mIHBhZ2luYXRpb24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ29udGVudCBmb3IgdGhlIHByZXZpb3VzIGFycm93IHdoZW4gYCRwYWdpbmF0aW9uLWFycm93c2AgaXMgYHRydWVgXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFnaW5hdGlvbi1hcnJvdy1wcmV2aW91czogJ1xcMDBBQicgIWRlZmF1bHQ7XG5cbi8vLyBDb250ZW50IGZvciB0aGUgbmV4dCBhcnJvdyB3aGVuIGAkcGFnaW5hdGlvbi1hcnJvd3NgIGlzIGB0cnVlYFxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhZ2luYXRpb24tYXJyb3ctbmV4dDogJ1xcMDBCQicgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwYWdpbmF0aW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWNvbnRhaW5lciAoXG4gICRtYXJnaW4tYm90dG9tOiAkcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tLFxuICAkZm9udC1zaXplOiAkcGFnaW5hdGlvbi1mb250LXNpemUsXG4gICRzcGFjaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcsXG4gICRyYWRpdXM6ICRwYWdpbmF0aW9uLXJhZGl1cyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gIC8vIExpc3QgaXRlbVxuICBsaSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuXG4gICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtIHtcbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBjdXJyZW50IHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50LFxuICAkY29sb3ItY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50XG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWN1cnJlbnQ7XG4gIGNvbG9yOiAkY29sb3ItY3VycmVudDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb2xvcjogJGNvbG9yO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gZWxsaXBzaXMgZm9yIHVzZSBpbiBhIHBhZ2luYXRpb24gbGlzdC5cbkBtaXhpbiBwYWdpbmF0aW9uLWVsbGlwc2lzIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvclxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb250ZW50OiAnXFwyMDI2JztcbiAgY29sb3I6ICRjb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcGFnaW5hdGlvbiB7XG4gIC5wYWdpbmF0aW9uIHtcbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWNvbnRhaW5lcjtcblxuICAgIC5jdXJyZW50IHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1jdXJyZW50O1xuICAgIH1cblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLmVsbGlwc2lzOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWVsbGlwc2lzO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFnaW5hdGlvbi1hcnJvd3Mge1xuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAkcGFnaW5hdGlvbi1hcnJvdy1wcmV2aW91cztcbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuICAgIC5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICRwYWdpbmF0aW9uLWFycm93LW5leHQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwcm9ncmVzcyBiYXIgY29udGFpbmVyLlxuQG1peGluIHByb2dyZXNzLWNvbnRhaW5lciB7XG4gIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBtZXRlciBvZiBhIHByb2dyZXNzIGJhci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRleHQgaW4gdGhlIHByb2dyZXNzIG1ldGVyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyLXRleHQge1xuICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb2dyZXNzLWJhciB7XG4gIC8vIFByb2dyZXNzIGJhclxuICAucHJvZ3Jlc3Mge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLWNvbnRhaW5lcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJbm5lciBtZXRlclxuICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyO1xuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXIgdGV4dFxuICAucHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXItdGV4dDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBbVE9ET10gQ2hlY2sgaG93IHBsdWdpbiBjb25maXJtcyBkaXNhYmxlZCBvciB2ZXJ0aWNhbCBzdGF0dXNcbi8vIFtUT0RPXSBDaGVjayBpZiB0cmFuc2l0aW9uOiBhbGw7IGlzIG5lY2Vzc2FyeVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBzbGlkZXIgd2lkdGggb2YgYSB2ZXJ0aWNhbCBzbGlkZXIuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydGllcyB0byBhcHBseSB0byB0aGUgc2xpZGVyIGhhbmRsZSBhbmQgZmlsbC4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIGFjdGl2ZSBmaWxsIGZvciBzbGlkZXJzLlxuQG1peGluIHNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1maWxsLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGhlIHNsaWRlciBoYW5kbGVzLlxuQG1peGluIHNsaWRlci1oYW5kbGUge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbiAgY3Vyc29yOiBncmFiO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcblxuICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHNsaWRlci10cmFuc2l0aW9uO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgfVxuXG4gICYuaXMtZHJhZ2dpbmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG4gICAgY3Vyc29yOiBncmFiYmluZztcbiAgfVxufVxuXG5AbWl4aW4gc2xpZGVyLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5AbWl4aW4gc2xpZGVyLXZlcnRpY2FsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG5cbiAgLnNsaWRlci1maWxsIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXNsaWRlciB7XG4gIC8vIENvbnRhaW5lclxuICAuc2xpZGVyIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItY29udGFpbmVyO1xuICB9XG5cbiAgLy8gRmlsbCBhcmVhXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWZpbGw7XG4gIH1cblxuICAvLyBEcmFnZ2FibGUgaGFuZGxlXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItaGFuZGxlO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLnNsaWRlci5kaXNhYmxlZCxcbiAgLnNsaWRlcltkaXNhYmxlZF0ge1xuICAgIEBpbmNsdWRlIHNsaWRlci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIHNsaWRlclxuICAuc2xpZGVyLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBSVEwgc3VwcG9ydFxuICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgIC5zbGlkZXI6bm90KC52ZXJ0aWNhbCkge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN0aWNreSB7XG4gIC5zdGlja3ktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuc3RpY2t5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgLnN0aWNreS5pcy1zdHVjayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLmlzLWF0LXRvcCB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5zdGlja3kuaXMtYW5jaG9yZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHN3aXRjaFxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGFjdGl2ZSBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2gsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnRpbnkgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAuc21hbGwgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5sYXJnZSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2hcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzd2l0Y2ggY29udGFpbmVyIGFuZCBwYWRkbGUuXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoIHBhZGRsZVxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHN3aXRjaCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gT3BhY2l0eSBvZiBhIGRpc2FibGVkIHN3aXRjaC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtb3BhY2l0eS1kaXNhYmxlZDogMC41ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIGZvciBhIGRpc2FibGVkIHN3aXRjaC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRzd2l0Y2gtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuLy8gbWFrZSB0aGVtIHZhcmlhYmxlc1xuLy8gYXNrIGFib3V0IGFjY2Vzc2liaWxpdHkgb24gbGFiZWxcbi8vIGNoYW5nZSBjbGFzcyBuYW1lIGZvciB0ZXh0XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgY29udGFpbmVyIGNsYXNzLlxuQG1peGluIHN3aXRjaC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206ICRzd2l0Y2gtbWFyZ2luO1xuICBvdXRsaW5lOiAwO1xuXG4gIC8vIFRoZXNlIHByb3BlcnRpZXMgY2FzY2FkZSBkb3duIHRvIHRoZSBzd2l0Y2ggdGV4dFxuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggaW5wdXQuIEFwcGx5IHRoaXMgdG8gYW4gYDxpbnB1dD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGJhY2tncm91bmQgYW5kIHBhZGRsZSBvZiBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byBhIGA8bGFiZWw+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXBhZGRsZSB7XG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAtICgkc3dpdGNoLXBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1hY3RpdmUtb2ZmZXN0OiAkc3dpdGNoLXdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcblxuICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXJhZGl1cztcbiAgYmFja2dyb3VuZDogJHN3aXRjaC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xuXG4gIC8vIFJlc2V0dGluZyB0aGVzZSA8bGFiZWw+IHByZXNldHMgc28gdHlwZSBzdHlsZXMgY2FzY2FkZSBkb3duXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gTmVlZGVkIHRvIG92ZXJyaWRlIHNwZWNpZmljaXR5XG4gIGlucHV0ICsgJiB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gVGhlIHBhZGRsZSBpdHNlbGZcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcGFkZGxlLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBDaGFuZ2UgdGhlIHZpc3VhbCBzdHlsZSB3aGVuIHRoZSBzd2l0Y2ggaXMgYWN0aXZlXG4gIGlucHV0OmNoZWNrZWQgfiAmIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q7XG4gICAgfVxuICB9XG5cbiAgLy8gaW5kaWNhdGUgYSBkaXNhYmxlZCBzd2l0Y2hcbiAgaW5wdXQ6ZGlzYWJsZWQgfiAmIHtcbiAgICBjdXJzb3I6ICRzd2l0Y2gtY3Vyc29yLWRpc2FibGVkO1xuICAgIG9wYWNpdHk6ICRzd2l0Y2gtb3BhY2l0eS1kaXNhYmxlZDtcbiAgfVxuXG4gIGlucHV0OmZvY3VzIH4gJiB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB9XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhY3RpdmUvaW5hY3RpdmUgdGV4dCBpbnNpZGUgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gdGV4dCBlbGVtZW50cyBpbnNpZGUgdGhlIHN3aXRjaCBgPGxhYmVsPmAuXG5AbWl4aW4gc3dpdGNoLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjdGl2ZSBzdGF0ZSB0ZXh0IHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtdGV4dC1hY3RpdmUge1xuICAjeyRnbG9iYWwtbGVmdH06IDglO1xuICBkaXNwbGF5OiBub25lO1xuXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWluYWN0aXZlIHtcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMTUlO1xuXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHNpemUgb2YgYSBzd2l0Y2ggYnkgbW9kaWZ5aW5nIHRoZSBzaXplIG9mIHRoZSBib2R5IGFuZCBwYWRkbGUuIEFwcGx5IHRoaXMgdG8gYSBzd2l0Y2ggY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZm9udC1zaXplIFsxcmVtXSAtIEZvbnQgc2l6ZSBvZiBsYWJlbCB0ZXh0IHdpdGhpbiB0aGUgc3dpdGNoLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3dpdGNoLWhlaWdodCBbMnJlbV0gLSBIZWlnaHQgb2YgdGhlIHN3aXRjaCBib2R5LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGxlLW9mZnNldCBbMC4yNXJlbV0gLSBTcGFjaW5nIGJldHdlZW4gdGhlIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBzd2l0Y2ggYm9keS5cbkBtaXhpbiBzd2l0Y2gtc2l6ZShcbiAgJGZvbnQtc2l6ZTogMXJlbSxcbiAgJHN3aXRjaC1oZWlnaHQ6IDJyZW0sXG4gICRwYWRkbGUtb2Zmc2V0OiAwLjI1cmVtXG4pIHtcblxuICAkc3dpdGNoLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAqIDI7XG4gICRwYWRkbGUtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtaGVpZ2h0OiAkc3dpdGNoLWhlaWdodCAtICgkcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q6ICRzd2l0Y2gtd2lkdGggLSAkcGFkZGxlLXdpZHRoIC0gJHBhZGRsZS1vZmZzZXQ7XG5cbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcblxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6ICRzd2l0Y2gtd2lkdGg7XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIH1cblxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogJHBhZGRsZS1vZmZzZXQ7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLW9mZnNldDtcbiAgICB3aWR0aDogJHBhZGRsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRwYWRkbGUtaGVpZ2h0O1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tc3dpdGNoIHtcbiAgLy8gQ29udGFpbmVyIGNsYXNzXG4gIC5zd2l0Y2gge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1jb250YWluZXI7XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgfVxuXG4gIC8vIDxpbnB1dD4gZWxlbWVudFxuICAuc3dpdGNoLWlucHV0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtaW5wdXQ7XG4gIH1cblxuICAvLyA8bGFiZWw+IGVsZW1lbnRcbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1wYWRkbGU7XG4gIH1cblxuICAvLyBCYXNlIGxhYmVsIHRleHQgc3R5bGVzXG4gICVzd2l0Y2gtdGV4dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQ7XG4gIH1cblxuICAvLyBBY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWFjdGl2ZTtcbiAgfVxuXG4gIC8vIEluYWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtaW5hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWluYWN0aXZlO1xuICB9XG5cbiAgLy8gU3dpdGNoIHNpemVzXG4gIC5zd2l0Y2gudGlueSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTApLCAkc3dpdGNoLWhlaWdodC10aW55LCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5zbWFsbCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTIpLCAkc3dpdGNoLWhlaWdodC1zbWFsbCwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxuXG4gIC5zd2l0Y2gubGFyZ2Uge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDE2KSwgJHN3aXRjaC1oZWlnaHQtbGFyZ2UsICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYmxlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciB0YWJsZSBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlICAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3R5bGUgZm9yIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYmxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RhbmRhcmQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0cmlwZWQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCB0YWJsZXMgYXJlIHN0cmlwZWQgYnkgZGVmYXVsdCBhbmQgYW4gLnVuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLiBJZiBgZmFsc2VgLCBhIC5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHRhYmxlLWlzLXN0cmlwZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIHN0cmlwZWQgcm93cy5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBzdHJpcGUgb24gcm93cyBvZiB0aGUgdGFibGVzLCBleGNsdWRpbmcgdGhlIGhlYWRlciBhbmQgZm9vdGVyLiBJZiBldmVuLCB0aGUgZXZlbiByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIG9kZCwgdGhlIG9kZCByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIGVtcHR5LCBvciBhbnkgb3RoZXIgdmFsdWUsIHRoZSB0YWJsZSByb3dzIHdpbGwgaGF2ZSBubyBzdHJpcGluZy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kdGFibGUtc3RyaXBlOiBldmVuICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVhZGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKiAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBoZWFkZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtaGVhZC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgZm9vdGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBmb290ZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtZm9vdC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtZm9vdC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBoZWFkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvb3Rlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIGhlYWRlciB3aGVuIHVzaW5nIHN0YWNrZWQgdGFibGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHN0YWNrZWQgdGFibGUgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0YWJsZS1zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUpIHtcbiAgdHIge1xuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gZXZlbiwgZGFya2VuIHRoZSBldmVuIHJvd3MuXG4gICAgQGlmICRzdHJpcGUgPT0gZXZlbiB7XG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBvZGQsIGRhcmtlbiB0aGUgb2RkIHJvd3MuXG4gICAgQGVsc2UgaWYgJHN0cmlwZSA9PSBvZGQge1xuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtdW5zdHJpcGUoKSB7XG4gIHRyIHtcbiAgICBib3JkZXItYm90dG9tOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsICRpcy1zdHJpcGVkOiAkdGFibGUtaXMtc3RyaXBlZCkge1xuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDYXB0aW9uXG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZFxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGZvb3RcbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1mb290LWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkIGFuZCBmb290XG4gIHRoZWFkLFxuICB0Zm9vdCB7XG4gICAgLy8gUm93cyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgIHRleHQtYWxpZ246ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICB9XG4gIH1cblxuICAvLyBUYWJsZSByb3dzXG4gIHRib2R5IHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIHN0cmlwZWRcbiAgQGlmICRpcy1zdHJpcGVkID09IHRydWUge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgfVxuXG4gICAgJi51bnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBub3Qgc3RyaXBlZFxuICBAZWxzZSBpZiAkaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgfVxuXG4gICAgJi5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RyaXBlIFskdGFibGUtc3RyaXBlXSAtIFVzZXMga2V5d29yZHMgZXZlbiwgb2RkLCBvciBub25lIHRvIGRhcmtlbiByb3dzIG9mIHRoZSB0YWJsZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZXZlbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRuZXN0IFtmYWxzZV0gLSBOZWVkZWQgaWYgeW91IG9ubHkgd2FudCB0byBhcHBseSB0aGlzIHRvIGEgc3BlY2lmaWMgdGFibGUuXG5AbWl4aW4gdGFibGUoXG4gICRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsXG4gICRuZXN0OiBmYWxzZVxuKSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgQGlmICRuZXN0IHtcbiAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXG5AbWl4aW4gdGFibGUtc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4vLy8gU2xpZ2h0bHkgZGFya2VucyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbkBtaXhpbiB0YWJsZS1ob3ZlciB7XG4gIHRoZWFkIHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWhlYWQtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWZvb3Qtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIG5vbi1zdHJpcGVkIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2UgaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZSBpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGUtc3RhY2stYnJlYWtwb2ludCBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCB0YWJsZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZSAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHN0eWxlIGZvciB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0YW5kYXJkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgdGFibGVzIGFyZSBzdHJpcGVkIGJ5IGRlZmF1bHQgYW5kIGFuIC51bnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC4gSWYgYGZhbHNlYCwgYSAuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXG4vLy8gQHR5cGUgS2V5d29yZFxuJHRhYmxlLXN0cmlwZTogZXZlbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlYWRlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGhlYWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9vdGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggc3RhY2tlZCB0YWJsZSBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuJG1lZGl1bS1ncmV5OiAjQzBDMEMwO1xuXG5AbWl4aW4gLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlOiAkdGFibGUtc3RyaXBlKSB7XG4gIHRyIHtcbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIGV2ZW4sIGRhcmtlbiB0aGUgZXZlbiByb3dzLlxuICAgIEBpZiAkc3RyaXBlID09IGV2ZW4ge1xuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gb2RkLCBkYXJrZW4gdGhlIG9kZCByb3dzLlxuICAgIEBlbHNlIGlmICRzdHJpcGUgPT0gb2RkIHtcbiAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLXVuc3RyaXBlKCkge1xuICB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBib3JkZXItYm90dG9tOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsICRpcy1zdHJpcGVkOiAkdGFibGUtaXMtc3RyaXBlZCkge1xuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDYXB0aW9uXG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZFxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGZvb3RcbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1mb290LWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkIGFuZCBmb290XG4gIHRoZWFkLFxuICB0Zm9vdCB7XG4gICAgLy8gUm93cyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgIHRleHQtYWxpZ246ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICB9XG4gIH1cblxuICAvLyBUYWJsZSByb3dzXG4gIHRoLFxuICB0ZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkbWVkaXVtLWdyZXk7XG4gICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gIH1cblxuICB0aCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG5cbiAgLy8gSWYgdGFibGVzIGFyZSBzdHJpcGVkXG4gIEBpZiAkaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgIH1cblxuICAgICYudW5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgbm90IHN0cmlwZWRcbiAgQGVsc2UgaWYgJGlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgIH1cblxuICAgICYuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGFibGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXG5AbWl4aW4gdGFibGUoXG4gICRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsXG4gICRuZXN0OiBmYWxzZVxuKSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgQGlmICRuZXN0IHtcbiAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXG5AbWl4aW4gdGFibGUtc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4vLy8gU2xpZ2h0bHkgZGFya2VucyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbkBtaXhpbiB0YWJsZS1ob3ZlciB7XG4gIHRoZWFkIHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWhlYWQtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWZvb3Qtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIG5vbi1zdHJpcGVkIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2UgaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZSBpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgdGJvZHkgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbn1cblxuQG1peGluIGhvbmV5Y29tYi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICAvLyB0YWJsZS5zdGFjayB7XG4gIC8vICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGUtc3RhY2stYnJlYWtwb2ludCBkb3duKSB7XG4gIC8vICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgLy8gICB9XG4gIC8vIH1cblxuICAvLyB0YWJsZS5zY3JvbGwge1xuICAvLyAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgLy8gfVxuXG4gIC8vIHRhYmxlLmhvdmVyIHtcbiAgLy8gICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgLy8gfVxuXG4gIC8vIC50YWJsZS1zY3JvbGwge1xuICAvLyAgIG92ZXJmbG93LXg6IGF1dG87XG4gIC8vIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5cbiRjb250cmFzdC13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFBhdGNoIHRvIGZpeCBpc3N1ZSAjMTIwODBcbiRwcmltYXJ5LWNvbG9yOiBudWxsICFkZWZhdWx0O1xuJHNlY29uZGFyeS1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiR3YXJuaW5nLWNvbG9yOiBudWxsICFkZWZhdWx0O1xuJGFsZXJ0LWNvbG9yOiBudWxsICFkZWZhdWx0O1xuJHN1Y2Nlc3MtY29sb3I6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsdW1pbmFuY2Ugb2YuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuQGZ1bmN0aW9uIGNvbG9yLWx1bWluYW5jZSgkY29sb3IpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNlZGVmXG4gICRyZ2JhOiByZWQoJGNvbG9yKSwgZ3JlZW4oJGNvbG9yKSwgYmx1ZSgkY29sb3IpO1xuICAkcmdiYTI6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgJHJnYjogbnRoKCRyZ2JhLCAkaSk7XG4gICAgJHJnYjogZGl2aWRlKCRyZ2IsIDI1NSk7XG5cbiAgICAkcmdiOiBpZigkcmdiIDwgMC4wMzkyOCwgZGl2aWRlKCRyZ2IsIDEyLjkyKSwgcG93KGRpdmlkZSgkcmdiICsgMC4wNTUsIDEuMDU1KSwgMi40KSk7XG5cbiAgICAkcmdiYTI6IGFwcGVuZCgkcmdiYTIsICRyZ2IpO1xuICB9XG5cbiAgQHJldHVybiAwLjIxMjYgKiBudGgoJHJnYmEyLCAxKSArIDAuNzE1MiAqIG50aCgkcmdiYTIsIDIpICsgMC4wNzIyICogbnRoKCRyZ2JhMiwgMyk7XG59XG5cbi8vLyBDaGVja3MgdGhlIGNvbnRyYXN0IHJhdGlvIG9mIHR3byBjb2xvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IxIC0gRmlyc3QgY29sb3IgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IyIC0gU2Vjb25kIGNvbG9yIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgY29udHJhc3QgcmF0aW8gb2YgdGhlIGNvbXBhcmVkIGNvbG9ycy5cbkBmdW5jdGlvbiBjb2xvci1jb250cmFzdCgkY29sb3IxLCAkY29sb3IyKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNjb250cmFzdC1yYXRpb2RlZlxuICAkbHVtaW5hbmNlMTogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjEpICsgMC4wNTtcbiAgJGx1bWluYW5jZTI6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IyKSArIDAuMDU7XG4gICRyYXRpbzogZGl2aWRlKCRsdW1pbmFuY2UxLCAkbHVtaW5hbmNlMik7XG5cbiAgQGlmICRsdW1pbmFuY2UyID4gJGx1bWluYW5jZTEge1xuICAgICRyYXRpbzogZGl2aWRlKDEsICRyYXRpbyk7XG4gIH1cblxuICAkcmF0aW86IHJvdW5kKCRyYXRpbyAqIDEwKSAqIDAuMTtcblxuICBAcmV0dXJuICRyYXRpbztcbn1cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkYmFzZWAsIGFuZCByZXR1cm5zIHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhc2UgLSBDb2xvciB0byBjaGVjayBsdW1pbmFuY2UuXG4vLy8gQHBhcmFtIHtMaXN0fSAkY29sb3JzIFsoJHdoaXRlLCAkYmxhY2spXSAtIENvbG9ycyB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9sZXJhbmNlIFskZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlXSAtIENvbnRyYXN0IHRvbGVyYW5jZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG5AZnVuY3Rpb24gY29sb3ItcGljay1jb250cmFzdCgkYmFzZSwgJGNvbG9yczogKCR3aGl0ZSwgJGJsYWNrKSwgJHRvbGVyYW5jZTogJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZSkge1xuICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgMSkpO1xuICAkYmVzdDogbnRoKCRjb2xvcnMsIDEpO1xuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggbGVuZ3RoKCRjb2xvcnMpIHtcbiAgICAkY3VycmVudC1jb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgIEBpZiAoJGN1cnJlbnQtY29udHJhc3QgLSAkY29udHJhc3QgPiAkdG9sZXJhbmNlKSB7XG4gICAgICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICAgICRiZXN0OiBudGgoJGNvbG9ycywgJGkpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGNvbnRyYXN0LXdhcm5pbmdzIGFuZCAkY29udHJhc3QgPCAzKSB7XG4gICAgQHdhcm4gJ0NvbnRyYXN0IHJhdGlvIG9mICN7JGJlc3R9IG9uICN7JGJhc2V9IGlzIHByZXR0eSBiYWQsIGp1c3QgI3skY29udHJhc3R9JztcbiAgfVxuXG4gIEByZXR1cm4gJGJlc3Q7XG59XG5cbi8vLyBTY2FsZXMgYSBjb2xvciB0byBiZSBkYXJrZXIgaWYgaXQncyBsaWdodCwgb3IgbGlnaHRlciBpZiBpdCdzIGRhcmsuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRpbnQgYSBjb2xvciBhcHByb3ByaWF0ZSB0byBpdHMgbGlnaHRuZXNzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gc2NhbGUuXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkc2NhbGUgWzUlXSAtIEFtb3VudCB0byBzY2FsZSB1cCBvciBkb3duLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNDAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gQSBzY2FsZWQgY29sb3IuXG5AZnVuY3Rpb24gc21hcnQtc2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA0MCUpIHtcbiAgQGlmIGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCB7XG4gICAgJHNjYWxlOiAtJHNjYWxlO1xuICB9XG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkc2NhbGUpO1xufVxuXG4vLy8gR2V0IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcGFyYW0ge2tleX0gY29sb3Iga2V5IGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG5AZnVuY3Rpb24gZ2V0LWNvbG9yKCRrZXkpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnZ2l2ZW4gJGtleSBpcyBub3QgYXZhaWxhYmxlIGluICRmb3VuZGF0aW9uLXBhbGV0dGUnO1xuICB9XG59XG5cbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgIG1hcCBpbnRvIHZhcmlhYmxlcywgc3VjaCBhcyBgJHByaW1hcnktY29sb3JgIGFuZCBgJHNlY29uZGFyeS1jb2xvcmAuIENhbGwgdGhpcyBtaXhpbiBiZWxvdyB0aGUgR2xvYmFsIHNlY3Rpb24gb2YgeW91ciBzZXR0aW5ncyBmaWxlIHRvIHByb3Blcmx5IG1pZ3JhdGUgeW91ciBjb2RlYmFzZS5cbkBtaXhpbiBhZGQtZm91bmRhdGlvbi1jb2xvcnMoKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gICAgJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHByaW1hcnktY29sb3I6ICMxNzc5YmEgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSB7XG4gICAgJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRzZWNvbmRhcnktY29sb3I6ICM3Njc2NzYgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcykge1xuICAgICRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRzdWNjZXNzLWNvbG9yOiAjM2FkYjc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpIHtcbiAgICAkd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkd2FybmluZy1jb2xvcjogI2ZmYWUwMCAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkge1xuICAgICRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJGFsZXJ0LWNvbG9yOiAjY2M0YjM3ICFnbG9iYWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0YWJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBvZiB0aGUgdGFiIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBBY3RpdmUgZm9udCBjb2xvciBvZiB0YWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRhYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhIHRhYiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXG4gICRtYXJnaW46ICR0YWItbWFyZ2luLFxuICAkYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJG1hcmdpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSAoXG4gICRwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxuICAkY29sb3ItYWN0aXZlOiAkdGFiLWFjdGl2ZS1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICR0YWItYmFja2dyb3VuZC1hY3RpdmVcbikge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRjb2xvci1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgdGhhdCBzdXJyb3VuZHMgYSB0YWIgZ3JvdXAncyBjb250ZW50IHBhbmVzLlxuQG1peGluIHRhYnMtY29udGVudCAoXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkdGFiLWNvbnRlbnQtY29sb3IsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRlbnQgY29udGFpbmVyIHRvIGhhdmUgYSB2ZXJ0aWNhbCBzdHlsZSwgYnkgc2hpZnRpbmcgdGhlIGJvcmRlciBhcm91bmQuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGVudCgpYC5cbkBtaXhpbiB0YWJzLWNvbnRlbnQtdmVydGljYWwgKFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBpbmRpdmlkdWFsIHRhYiBjb250ZW50IHBhbmVsIHdpdGhpbiB0aGUgdGFiIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIHRhYnMtcGFuZWwgKFxuICAkcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmdcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFicyB7XG4gIC50YWJzIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsXG4gIC50YWJzLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFNpbXBsZVxuICAudGFicy5zaW1wbGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmltYXJ5IGNvbG9yXG4gIC50YWJzLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJHByaW1hcnktY29sb3IpO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCRwcmltYXJ5LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFicy10aXRsZSB7XG4gICAgQGluY2x1ZGUgdGFicy10aXRsZTtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudDtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudC12ZXJ0aWNhbDtcbiAgfVxuXG4gIC50YWJzLXBhbmVsIHtcbiAgICBAaW5jbHVkZSB0YWJzLXBhbmVsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gQGltcG9ydCAnbWF0aCc7XG4vLyBSQ0wtMzU4IC0+IENvbW1lbnRpbmcgb3V0IEhvbmV5Y29tYiBGb3VuZGF0aW9uIGltcG9ydCBhbmQgYWRkaW5nIHVwZGF0ZWQgdmVyc2lvbiBcbkBpbXBvcnQgJy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9tYXRoJztcblxuJGNvbnRyYXN0LXdhcm5pbmdzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbHVtaW5hbmNlIG9mLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbkBmdW5jdGlvbiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAkcmdiYTogcmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKTtcbiAgJHJnYmEyOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDMge1xuICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICRyZ2I6ICRyZ2IgLyAyNTU7XG5cbiAgICAkcmdiOiBpZigkcmdiIDwgMC4wMzkyOCwgJHJnYiAvIDEyLjkyLCBwb3coKCRyZ2IgKyAwLjA1NSkgLyAxLjA1NSwgMi40KSk7XG5cbiAgICAkcmdiYTI6IGFwcGVuZCgkcmdiYTIsICRyZ2IpO1xuICB9XG5cbiAgQHJldHVybiAwLjIxMjYgKiBudGgoJHJnYmEyLCAxKSArIDAuNzE1MiAqIG50aCgkcmdiYTIsIDIpICsgMC4wNzIyICogbnRoKCRyZ2JhMiwgMyk7XG59XG5cbi8vLyBDaGVja3MgdGhlIGNvbnRyYXN0IHJhdGlvIG9mIHR3byBjb2xvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IxIC0gRmlyc3QgY29sb3IgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IyIC0gU2Vjb25kIGNvbG9yIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgY29udHJhc3QgcmF0aW8gb2YgdGhlIGNvbXBhcmVkIGNvbG9ycy5cbkBmdW5jdGlvbiBjb2xvci1jb250cmFzdCgkY29sb3IxLCAkY29sb3IyKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNjb250cmFzdC1yYXRpb2RlZlxuICAkbHVtaW5hbmNlMTogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjEpICsgMC4wNTtcbiAgJGx1bWluYW5jZTI6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IyKSArIDAuMDU7XG4gICRyYXRpbzogJGx1bWluYW5jZTEgLyAkbHVtaW5hbmNlMjtcblxuICBAaWYgJGx1bWluYW5jZTIgPiAkbHVtaW5hbmNlMSB7XG4gICAgJHJhdGlvOiAxIC8gJHJhdGlvO1xuICB9XG5cbiAgJHJhdGlvOiByb3VuZCgkcmF0aW8gKiAxMCkgLyAxMDtcblxuICBAcmV0dXJuICRyYXRpbztcbn1cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkYmFzZWAsIGFuZCByZXR1cm5zIHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhc2UgLSBDb2xvciB0byBjaGVjayBsdW1pbmFuY2UuXG4vLy8gQHBhcmFtIHtMaXN0fSAkY29sb3JzIFsoJHdoaXRlLCAkYmxhY2spXSAtIENvbG9ycyB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9sZXJhbmNlIFskZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlXSAtIENvbnRyYXN0IHRvbGVyYW5jZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG5AZnVuY3Rpb24gY29sb3ItcGljay1jb250cmFzdCgkYmFzZSwgJGNvbG9yczogKCR3aGl0ZSwgJGJsYWNrKSwgJHRvbGVyYW5jZTogJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZSkge1xuICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgMSkpO1xuICAkYmVzdDogbnRoKCRjb2xvcnMsIDEpO1xuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggbGVuZ3RoKCRjb2xvcnMpIHtcbiAgICAkY3VycmVudC1jb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgIEBpZiAoJGN1cnJlbnQtY29udHJhc3QgLSAkY29udHJhc3QgPiAkdG9sZXJhbmNlKSB7XG4gICAgICAkY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICAgICRiZXN0OiBudGgoJGNvbG9ycywgJGkpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGNvbnRyYXN0LXdhcm5pbmdzIGFuZCAkY29udHJhc3QgPCAzKSB7XG4gICAgQHdhcm4gXCJDb250cmFzdCByYXRpbyBvZiAjeyRiZXN0fSBvbiAjeyRiYXNlfSBpcyBwcmV0dHkgYmFkLCBqdXN0ICN7JGNvbnRyYXN0fVwiO1xuICB9XG5cbiAgQHJldHVybiAkYmVzdDtcbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGRhcmtlciBpZiBpdCdzIGxpZ2h0LCBvciBsaWdodGVyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbi8vIEBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuLy8gICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbi8vICAgICAkc2NhbGU6IC0kc2NhbGU7XG4vLyAgIH1cbi8vICAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG4vLyB9XG5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICAvLyBDaGVjayBpZiAkY29sb3IgaXMgaW5kZWVkIGEgY29sb3JcbiAgQGlmIHR5cGUtb2YoJGNvbG9yKSAhPSAnY29sb3InIHtcbiAgICBAZXJyb3IgXCJFeHBlY3RlZCBhIGNvbG9yIHZhbHVlLCBidXQgZ290ICN7JGNvbG9yfS5cIjtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICRzY2FsZSBhbmQgJHRocmVzaG9sZCBhcmUgbnVtYmVycyB3aXRoIHBlcmNlbnRhZ2UgdW5pdHNcbiAgQGlmIHR5cGUtb2YoJHNjYWxlKSAhPSAnbnVtYmVyJyBvciB1bml0KCRzY2FsZSkgIT0gJyUnIHtcbiAgICBAZXJyb3IgXCJFeHBlY3RlZCBhIHBlcmNlbnRhZ2UgZm9yIHNjYWxlLCBidXQgZ290ICN7JHNjYWxlfS5cIjtcbiAgfVxuICBAaWYgdHlwZS1vZigkdGhyZXNob2xkKSAhPSAnbnVtYmVyJyBvciB1bml0KCR0aHJlc2hvbGQpICE9ICclJyB7XG4gICAgQGVycm9yIFwiRXhwZWN0ZWQgYSBwZXJjZW50YWdlIGZvciB0aHJlc2hvbGQsIGJ1dCBnb3QgI3skdGhyZXNob2xkfS5cIjtcbiAgfVxuXG4gIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQge1xuICAgICRzY2FsZTogLSRzY2FsZTtcbiAgfVxuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHNjYWxlKTtcbn1cblxuXG4vLy8gR2V0IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcGFyYW0ge2tleX0gY29sb3Iga2V5IGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG5AZnVuY3Rpb24gZ2V0LWNvbG9yKCRrZXkpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnZ2l2ZW4gJGtleSBpcyBub3QgYXZhaWxhYmxlIGluICRmb3VuZGF0aW9uLXBhbGV0dGUnO1xuICB9XG59XG5cbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgIG1hcCBpbnRvIHZhcmlhYmxlcywgc3VjaCBhcyBgJHByaW1hcnktY29sb3JgIGFuZCBgJHNlY29uZGFyeS1jb2xvcmAuIENhbGwgdGhpcyBtaXhpbiBiZWxvdyB0aGUgR2xvYmFsIHNlY3Rpb24gb2YgeW91ciBzZXR0aW5ncyBmaWxlIHRvIHByb3Blcmx5IG1pZ3JhdGUgeW91ciBjb2RlYmFzZS5cbkBtaXhpbiBhZGQtZm91bmRhdGlvbi1jb2xvcnMoKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gICAgJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHByaW1hcnktY29sb3I6ICMxNzc5YmEgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSB7XG4gICAgJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRzZWNvbmRhcnktY29sb3I6ICM3Njc2NzYgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcykge1xuICAgICRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRzdWNjZXNzLWNvbG9yOiAjM2FkYjc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpIHtcbiAgICAkd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkd2FybmluZy1jb2xvcjogI2ZmYWUwMCAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkge1xuICAgICRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJGFsZXJ0LWNvbG9yOiAjY2M0YjM3ICFnbG9iYWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aHVtYm5haWxcbi8vLy9cblxuLy8vIEJvcmRlciBhcm91bmQgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBCb3JkZXJcbiR0aHVtYm5haWwtYm9yZGVyOiA0cHggc29saWQgJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BydGllcyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGh1bWJuYWlsIHN0eWxlcyB0byBhbiBlbGVtZW50LlxuQG1peGluIHRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkdGh1bWJuYWlsLW1hcmdpbi1ib3R0b207XG5cbiAgYm9yZGVyOiAkdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHRodW1ibmFpbC1yYWRpdXM7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xuXG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG5AbWl4aW4gdGh1bWJuYWlsLWxpbmsge1xuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10aHVtYm5haWwge1xuICAudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWw7XG4gIH1cblxuICBhLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsLWxpbms7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aXRsZS1iYXJcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBXZWlnaHRcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhciBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiB0aGUgbWVudSBpY29uIGFuZCB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRpdGxlLWJhciB7XG4gIC50aXRsZS1iYXIge1xuICAgIHBhZGRpbmc6ICR0aXRsZWJhci1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6ICR0aXRsZWJhci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGl0bGViYXItY29sb3I7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG5cbiAgICAubWVudS1pY29uIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcbiAgICB9XG4gIH1cblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAudGl0bGUtYmFyLWxlZnQsXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudGl0bGUtYmFyLWxlZnQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAudGl0bGUtYmFyLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXdlaWdodDogJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b29sdGlwXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGN1cnNvciBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoYXMtdGlwLWN1cnNvcjogaGVscCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGJvdHRvbSBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIExpc3RcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBmb250LlxuLy8vIEB0eXBlIENvbG9yXG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1wYWRkaW5nOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXggd2lkdGggZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtbWF4LXdpZHRoOiAxMHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSB0b29sdGlwIHRleHQuIEJ5IGRlZmF1bHQsIHdlIHJlY29tbWVuZCBhIHNtYWxsZXIgZm9udCBzaXplIHRoYW4gdGhlIGJvZHkgY29weS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIGhlaWdodCBmb3IgdG9vbHRpcHMuIFRoaXMgaXMgaGVscGZ1bCBmb3IgY2FsY3VsYXRpbmcgdGhlIGRpc3RhbmNlIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvb2x0aXAgd29yZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGhhcy10aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBib3JkZXItYm90dG9tOiAkaGFzLXRpcC1ib3JkZXItYm90dG9tO1xuICBmb250LXdlaWdodDogJGhhcy10aXAtZm9udC13ZWlnaHQ7XG4gIGN1cnNvcjogJGhhcy10aXAtY3Vyc29yO1xufVxuXG5AbWl4aW4gdG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyAjeyR0b29sdGlwLXBpcC1oZWlnaHR9KTtcbiAgei1pbmRleDogMTIwMDtcblxuICBtYXgtd2lkdGg6ICR0b29sdGlwLW1heC13aWR0aDtcbiAgcGFkZGluZzogJHRvb2x0aXAtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiAkdG9vbHRpcC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0b29sdGlwLWJhY2tncm91bmQtY29sb3I7XG4gIGZvbnQtc2l6ZTogJHRvb2x0aXAtZm9udC1zaXplO1xuICBjb2xvcjogJHRvb2x0aXAtY29sb3I7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAmLmJvdHRvbSB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIHVwKTtcbiAgICAgIGJvdHRvbTogMTAwJTtcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLnRvcCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGRvd24pO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYubGVmdCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIHJpZ2h0KTtcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLnJpZ2h0IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgbGVmdCk7XG4gICAgICByaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLXRvcDo6YmVmb3JlIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgdG9wOiAxMCU7XG4gIH1cblxuICAmLmFsaWduLWJvdHRvbTo6YmVmb3JlIHtcbiAgICBib3R0b206IDEwJTtcbiAgICB0b3A6IGF1dG87XG4gIH1cblxuICAmLmFsaWduLWxlZnQ6OmJlZm9yZSB7XG4gICAgbGVmdDogMTAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodDo6YmVmb3JlIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9vbHRpcCB7XG4gIC5oYXMtdGlwIHtcbiAgICBAaW5jbHVkZSBoYXMtdGlwO1xuICB9XG5cbiAgLnRvb2x0aXAge1xuICAgIEBpbmNsdWRlIHRvb2x0aXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b3AtYmFyXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRvcCBiYXIuIFRoaXMgY29sb3IgYWxzbyBjYXNjYWRlcyB0byBtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHN1Ym1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci4gVXNlZnVsbCBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgdHJhbnNwYXJlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGZvciB0aGUgdG9wIGJhciB0aXRsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGA8aW5wdXQ+YCBlbGVtZW50cyBpbnNpZGUgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggdG9wIGJhciBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRvcCBiYXIgY29udGFpbmVyLlxuQG1peGluIHRvcC1iYXItY29udGFpbmVyIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmc7XG5cbiAgJixcbiAgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyBkaWZmZXJudCBmcm9tICR0b3BiYXItYmFja2dyb3VuZC1zdWJtZW51XG4gIEBpZiAoJHRvcGJhci1iYWNrZ3JvdW5kICE9ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kKSB7XG4gICAgdWwgdWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzdHJhaW4gd2lkdGggb2YgaW5wdXRzIGJ5IGRlZmF1bHQgdG8gbWFrZSB0aGVtIGVhc2llciB0byBhcnJhbmdlXG4gIGlucHV0IHtcbiAgICBtYXgtd2lkdGg6ICR0b3BiYXItaW5wdXQtd2lkdGg7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gIH1cblxuICAvLyBUaGUgYWJvdmUgc3R5bGVzIHNob3VsZG4ndCBhcHBseSB0byBpbnB1dCBncm91cCBmaWVsZHNcbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgfVxuXG4gIGlucHV0LmJ1dHRvbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi8vLyBNYWtlcyBzZWN0aW9ucyBvZiBhIHRvcCBiYXIgc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG5AbWl4aW4gdG9wLWJhci1zdGFja2VkIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbmRvZXMgdGhlIENTUyBhcHBsaWVkIGJ5IHRoZSBgdG9wLWJhci1zdGFja2VkKClgIG1peGluLlxuQG1peGluIHRvcC1iYXItdW5zdGFjayB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XG4gIC8vIFRvcCBiYXIgY29udGFpbmVyXG4gIC50b3AtYmFyIHtcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcblxuICAgIC8vIFN0YWNrIG9uIHNtYWxsIHNjcmVlbnMgYnkgZGVmYXVsdFxuICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBpbmNsdWRlIHRvcC1iYXItdW5zdGFjaztcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGZvciBzdGFja2luZyBvbiBlYWNoIHNjcmVlbiBzaXplIChkZWZpbmVkIGluICRicmVha3BvaW50LWNsYXNzZXMpXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAmLnN0YWNrZWQtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdWItc2VjdGlvbnNcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBtYXJnaW46ICR0b3BiYXItdGl0bGUtc3BhY2luZztcbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG5cbiAgICAgIC5tZW51LWljb24ge1xuICAgICAgICBib3R0b206IDJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcbiAgJHNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMTMxM1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtIDAuMDAxMjU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAwLjAwMTI1O1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuICAudmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIERhcmsgTW9kZSBWaXNpYmlsaXR5XG4gIC5zaG93LWZvci1kYXJrLW1vZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmhpZGUtZm9yLWRhcmstbW9kZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgLnNob3ctZm9yLWRhcmstbW9kZSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuaGlkZS1mb3ItZGFyay1tb2RlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBJRTEwKyBWaXNpYmlsaXR5XG4gIC5zaG93LWZvci1pZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBAbWVkaWEgYWxsIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAgIC5zaG93LWZvci1pZSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuaGlkZS1mb3ItaWUge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0aWNreSBWaXNpYmlsaXR5XG4gIC5zaG93LWZvci1zdGlja3kge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmlzLXN0dWNrIC5zaG93LWZvci1zdGlja3kge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5pcy1zdHVjayAuaGlkZS1mb3Itc3RpY2t5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvLyBQbGFjZSBhbnkgRHJ1cGFsLXJlbGF0ZWQgcXVpcmtzIGhlcmUuXG4vKlxuICogenVyYl9mb3VuZGF0aW9uLnNjc3MgLSBDb250YWlucyBhbGwgRHJ1cGFsLXNwZWNpZmljIFNBU1MgZm9yIHRoaXMgdGhlbWUuXG4gKlxuICogQHRvZG8gU3BsaXQgdGhpcyBpbnRvIG11bHRpcGxlIGZvbGRlcnMvZmlsZXMuXG4qL1xuXG4vLyBBIGZpeCBmb3IgaHR0cHM6Ly93d3cuZHJ1cGFsLm9yZy9ub2RlLzk1MzAzNCAtIFRoZW1lcyBjdXJyZW50bHkgY2Fubm90XG4vLyBkZXRlcm1pbmUgaWYgYSByZWdpb24gaXMgZW1wdHlcblxuLnJlZ2lvbi1oaWdobGlnaHRlZDplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gVGhpcyBoYXMgYmVlbiBhbiBpc3N1ZSBzaW5jZSA3LngsIEZvdW5kYXRpb24gcnVsZXMgYWJvdXQgbGlzdCBlbGVtZW50c1xuLy8gYWZmZWN0IE5hdmJhciBzaXppbmcuXG5cbi50b29sYmFyLXRyYXkgYSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4vLyBSZW1vdmUgRm91bmRhdGlvbidzIHRvcCBtYXJnaW4gZnJvbSB0aGUgdG9nZ2xlIG9yaWVudGF0aW9uIGJ1dHRvbi5cblxuLnRvb2xiYXIgLnRvb2xiYXItdG9nZ2xlLW9yaWVudGF0aW9uIC50b29sYmFyLWljb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICAvLyBGaXggb2Zmc2V0IHByb2JsZW0gd2hlcmUgaGFsZiBvZiBvcmllbnRhdGlvbiBidXR0b24gaXMgbm90IHZpc2libGUuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cbn1cblxuLy8gT3ZlcnJpZGUgc3R5bGVzIGZyb20gL2NvcmUvbW9kdWxlcy9zeXN0ZW0vY3NzL2NvbXBvbmVudHMvbWVudS50aGVtZS5jc3NcblxuLnRvcC1iYXItc2VjdGlvbiB1bCBsaSB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgYS5pcy1hY3RpdmUge1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG59XG5cbi8vIFByZXZlbnRpbmcgVG9wIEJhciBGT1VDXG4vLyBodHRwOi8vZm91bmRhdGlvbi56dXJiLmNvbS9zaXRlcy9kb2NzL3Jlc3BvbnNpdmUtbmF2aWdhdGlvbi5odG1sI3ByZXZlbnRpbmctZm91Y1xuLy8gTW9yZSBpbmZvOiBodHRwczovL3d3dy5kcnVwYWwub3JnL25vZGUvMjc4MzU3M1xuLm5vLWpzIC50b3AtYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm5vLWpzIC50b3AtYmFyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIC5uby1qcyAudGl0bGUtYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8vIE9mZnNldCB0aGUgdG9wIGJhciBpZiB0aGUgTmF2YmFyICh0b29sYmFyKSBpcyBwcmVzZW50LlxuXG5ib2R5LnRvb2xiYXItZml4ZWQgLnN0aWNreS5pcy1zdHVjayAudG9wLWJhciB7XG4gICAgbWFyZ2luLXRvcDogMzlweDtcbn1cblxuYm9keS50b29sYmFyLWZpeGVkLnRvb2xiYXItaG9yaXpvbnRhbC50b29sYmFyLXRyYXktb3BlbiAuc3RpY2t5LmlzLXN0dWNrIC50b3AtYmFyIHtcbiAgICBtYXJnaW4tdG9wOiA3OHB4O1xufVxuXG5ib2R5LnRvb2xiYXItZml4ZWQgLnN0aWNreS5pcy1zdHVjay5pcy1hdC10b3Age1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLy8gUmVtb3ZlcyBjb3JlIGFycm93IGltYWdlIGZyb20gbWVudSBpdGVtcy5cblxuLnRvcC1iYXIge1xuICAgIC5tZW51LWl0ZW0tLWNvbGxhcHNlZCxcbiAgICAubWVudS1pdGVtLS1leHBhbmRlZCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxufVxuXG4vLyBTdHlsZSB0aGUgc2VhcmNoIGZvcm0sIGlmIGVtYmVkZGVkIGluIHRoZSBUb3AgQmFyLlxuXG4udG9wLWJhciAuc2VhcmNoLWJsb2NrLWZvcm0ge1xuICAgIC5mb3JtLWl0ZW0ta2V5cyxcbiAgICAuZm9ybS1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbn1cblxuLy8gRHJvcGRvd24gYnV0dG9uIHN0eWxpbmcuXG5cbi5kcm9wYnV0dG9uLXdyYXBwZXIge1xuICAgIC8vIFN1Yi10aGVtZXMgd2lsbCBoYXZlIHRvIG92ZXJyaWRlIHRoaXMgY29sb3IsIHVuZm9ydHVuYXRlbHkuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOGNiYTtcbiAgICBtYXJnaW46IDAgMCAxLjI1cmVtO1xuICAgIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG59XG4iLCIvKiBpZiBpdCBuZWVkcyB0byBiZSBlYXN5IHRvIG92ZXJyaWRlLCBpdCBtaWdodCBiZSBhIGNvbXBvbmVudCBpbnN0ZWFkICovXG5cbkBtaXhpbiBob25leWNvbWItdGhlbWUge1xuXG5cbiAgLy8gYmx1ZS1wYWdlcyBzcGVjZmljIGZvb3RlclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICRmb290ZXItYm9yZGVyOiAxcHggc29saWQgcmdiYSgkd2hpdGUsIC4yNSk7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgQHN1cHBvcnRzKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5mb290ZXItbGlua3NfX2Jsb2NrIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgIGdyaWQtcm93OiAyIC8gNDtcbiAgICAgICAgfVxuICAgICAgICAmOm50aC1jaGlsZCgzKSxcbiAgICAgICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgICAgIGJvcmRlci10b3A6ICRmb290ZXItYm9yZGVyO1xuICAgICAgICB9XG4gICAgICAgICY6bnRoLWNoaWxkKDMpLFxuICAgICAgICAmOm50aC1jaGlsZCg1KSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGZvb3Rlci1ib3JkZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgQHN1cHBvcnRzKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5mb290ZXItbGlua3NfX2Jsb2NrIHtcbiAgICAgICAgLy8gcmVtb3ZlIHRoZSBib3JkZXJzIHNvIHdlIGNhbiBhcHBseSBkaWZmZXJlbnQgb25lcyBsYXRlclxuICAgICAgICAmOm50aC1jaGlsZCgzKSxcbiAgICAgICAgJjpudGgtY2hpbGQoNCksXG4gICAgICAgICY6bnRoLWNoaWxkKDUpLFxuICAgICAgICAmOm50aC1jaGlsZCg2KSB7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC8vIG1ha2UgdGhlIDIgbGFyZ2UgY29sdW1ucyBzcGFuIDIgcm93c1xuICAgICAgICAmOm50aC1jaGlsZCgzKSxcbiAgICAgICAgJjpudGgtY2hpbGQoNikge1xuICAgICAgICAgIGdyaWQtcm93OiAxLzM7XG4gICAgICAgIH1cbiAgICAgICAgLy8gXCJIZWxwZnVsIExpbmtzXCJcbiAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgIGJvcmRlci1yaWdodDogJGZvb3Rlci1ib3JkZXI7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDIvMztcbiAgICAgICAgfVxuICAgICAgICAvLyBcIlNjaG9vbHMgJiBkaXZpc2lvbnNcIlxuICAgICAgICAmOm50aC1jaGlsZCg2KSB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6ICRmb290ZXItYm9yZGVyO1xuICAgICAgICAgIGdyaWQtY29sdW1uOiA0LzU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXhwbGljaXRseSBtb3ZlIFwiUmVzb3VyY2VzIGZvclwiIGJlbG93IHRoZSBmaXJzdCBjZWxsXG4gICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICBncmlkLXJvdzogMi8zO1xuICAgICAgICB9XG4gICAgICAgIC8vIGFkZCB0aGUgZmluYWwgYm9yZGVycyB0byBjb21wbGV0ZSB0aGUgZWZmZWN0XG4gICAgICAgICY6bnRoLWNoaWxkKDIpLFxuICAgICAgICAmOm50aC1jaGlsZCg1KSB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogJGZvb3Rlci1ib3JkZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubGluZSB7XG4gICAgLypcbiAgICB1c2luZyB0aGUgcG9zdGlvbjphYnNvbHV0ZTsgbWV0aG9kIGFsbG93cyBmb3IgZm9yIGJldHRlciB2aXN1YWwgYWxpZ25tZW50XG4gICAgdGhlcmUgaXMgYW5vdGhlciBtZXRob2Qgb2YganVzdCB1c2luZyBtYXJnaW4gYW5kIGtlZXBpbmcgdGhlIHBzdWVkbyBlbGVtZW50XG4gICAgaW4gZmxvdy4gYnV0IHdoZW4geW91IHRyeSB0byBhbGlnbiBoZWFkZXJzIHdpdGggYSBsaW5rIHRvIGl0cyBzaWRlLCB0aGUgYmFyXG4gICAgY2F1c2VzIHRoaW5ncyB0byBsb29rIG1pcy1hbGlnbmVkIGV2ZW50IGlmIHlvdSBzZXQgYWxpZ24taXRlbXM6Y2VudGVyO1xuICAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuICAgICAgY29udGVudDogXCJcXDBhMFwiO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICBsZWZ0OiAycHg7XG4gICAgICBtYXgtd2lkdGg6IDEyMHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwcHg7XG4gICAgICB3aWR0aDogMjAlO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc2VyaWYubGluZSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gIC5iZy1kYXJrZXN0LWdyZXkge1xuICAgIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICRtZWRpdW0tZ3JleTtcbiAgICB9XG4gIH1cblxufVxuIiwiQG1peGluIGhvbmV5Y29tYi1ub3JtYWxpemUge1xuLyogbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cblxubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG59XG4iLCIvLyAvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyAvLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyAvLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gLypcbi8vIE1vZGlmaWNhdGlvbnM6XG4vLyAtIHJlbW92ZSB0aGUgaW50ZXJuYWwgY2xhc3NlcyB0aGF0IGFyZSB1c2VkIGJ5IHRoZSBGb3VuZGF0aW9uIEpTXG4vLyAqL1xuXG4vLyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLyAvLy8vXG4vLyAvLy8gQGdyb3VwIGdsb2JhbFxuLy8gLy8vL1xuXG4vLyBAaW1wb3J0ICcuLi91dGlsL3V0aWwnO1xuXG4vLyAvLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8gLy8vIEB0eXBlIE51bWJlclxuLy8gJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vIC8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLyAvLy8gQHR5cGUgTnVtYmVyXG4vLyAkZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8gLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8gLy8vIEB0eXBlIE51bWJlclxuLy8gJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vIC8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vIC8vLyBAdHlwZSBNYXBcbi8vICRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbi8vICAgcHJpbWFyeTogIzE3NzliYSxcbi8vICAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuLy8gICBzdWNjZXNzOiAjM2FkYjc2LFxuLy8gICB3YXJuaW5nOiAjZmZhZTAwLFxuLy8gICBhbGVydDogI2NjNGIzNyxcbi8vICkgIWRlZmF1bHQ7XG5cbi8vIC8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8gLy8vIEB0eXBlIENvbG9yXG4vLyAkbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8gLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8gLy8vIEB0eXBlIENvbG9yXG4vLyAkbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vIC8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLyAvLy8gQHR5cGUgQ29sb3Jcbi8vICRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vIC8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vIC8vLyBAdHlwZSBDb2xvclxuLy8gJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLyAvLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLyAvLy8gQHR5cGUgQ29sb3Jcbi8vICR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8gLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLyAvLy8gQHR5cGUgQ29sb3Jcbi8vICRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8gLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLyAvLy8gQHR5cGUgQ29sb3Jcbi8vICRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8gLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLyAvLy8gQHR5cGUgTGlzdFxuLy8gJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8gLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLyAvLy8gQHR5cGUgQm9vbGVhblxuLy8gJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIC8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLyAvLy8gQHR5cGUgTnVtYmVyXG4vLyAkZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8gLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLyAvLy8gQHR5cGUgTnVtYmVyXG4vLyAkZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vIC8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcG9zaXRpb25pbmcgb24gY29tcG9uZW50cy5cbi8vIC8vLyBAdHlwZSBOdW1iZXJcbi8vICRnbG9iYWwtcG9zaXRpb246IDFyZW0gIWRlZmF1bHQ7XG5cbi8vIC8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLyAvLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuLy8gJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vIC8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8gLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbi8vICRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vIC8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLyAvLy8gQHR5cGUgTnVtYmVyXG4vLyAkZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8gLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIENhbiBiZSBvdmVyd3JpdHRlbiBhdCBpbmRpdmlkdWFsIG1lbnUgY29tcG9uZW50IGxldmVsLlxuLy8gLy8vIEB0eXBlIE51bWJlclxuLy8gJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xuXG4vLyAvLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gTmVzdGVkIG1hcmdpbiBmb3Igc3VibWVudS5cbi8vICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLyAvLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vIC8vLyBAdHlwZSBLZXl3b3JkXG4vLyAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vIC8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8gLy8vIEB0eXBlIEJvb2xlYW5cbi8vICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXG4vLyAvLy8gQHR5cGUgQm9vbGVhblxuLy8gJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyAvLy8gQnV0dG9uIGN1cnNvcidzIHZhbHVlLCBgYXV0b2AgYnkgZGVmYXVsdFxuLy8gLy8vIEB0eXBlIEtleXdvcmRcbi8vICRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0byAhZGVmYXVsdDtcblxuLy8gQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4vLyAgIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG4vLyB9XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGUgdGhhdCBjb250YWlucyB0aGUgZmxleCBqdXN0aWZ5aW5nIG9wdGlvbnNcbiQtemYtZmxleC1qdXN0aWZ5OiAtemYtZmxleC1qdXN0aWZ5KCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24pO1xuXG4vLyAvLy8gR2xvYmFsIHRvbGVyYW5jZSBmb3IgY29sb3IgcGljayBjb250cmFzdC5cbi8vIC8vLyBAdHlwZSBOdW1iZXJcbi8vICRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2U6IDAgIWRlZmF1bHQ7XG5cbi8vIC8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcbi8vIEBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcblxuQG1peGluIGhvbmV5Y29tYi1nbG9iYWwtc3R5bGVzIHtcblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogJGdsb2JhbC1idXR0b24tY3Vyc29yO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG5cbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSByZXNldCBpbmhlcml0IGZvbnQtZmFtaWx5IGluc3RlYWQgb2Ygc2V0dGluZ3Mgc2Fucy1zZXJpZlxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIH1cblxuICBzdmcge1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgfVxuXG4gIC8vIEZpZ3VyZXNcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJicmVha3BvaW50c1wiO1xuQGltcG9ydCBcImNvbG9yc1wiO1xuQGltcG9ydCBcImZvbnQtZmFtaWxpZXNcIjtcbi8vIEBpbXBvcnQgXCJmb3VuZGF0aW9uXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3VuZGF0aW9uLnNjc3NcIjtcbi8vQGltcG9ydCBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3Mvc2V0dGluZ3MvaG9uZXljb21iLW1peGlucy5zY3NzXCI7XG5AaW1wb3J0IFwidGFjaHlvbnNcIjtcbkBpbXBvcnQgXCJzcGFjaW5nXCI7XG5cbiRtYXgtd2lkdGg6IDEyNTBweDtcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xuIiwiQG1peGluIGhvbmV5Y29tYi10eXBvZ3JhcGh5IHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBwLFxuICBkbCxcbiAgdWwsXG4gIG9sIHtcbiAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1saW5laGVpZ2h0K3JlbSk7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIGxldHRlci1zcGFjaW5nOiAtLjFweDtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAvLyBvcmlnaW5hbCB2ZXJzaW9uLCBvdXRwdXQgYSBjbGFzcyBmb3IgZWFjaCBoZWFkZXIgZWxlbWVudFxuICAgICAgICAvLyB0aGlzIGlzIGFscmVhZHkgcHJvdmlkZWQgYnkgVGFjaHlvbnNcbiAgICAgICAgLy8gI3skaGVhZGVyfSwgLiN7JGhlYWRlcn0ge1xuICAgICAgICAjeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgIC8vICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICAvLyB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAvLyAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIC8vIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC8vICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAvLyB9XG4gICAgICAgICAgLy8gQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgIC8vICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICAvLyB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAvLyAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIC8vIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC8vICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICAvLyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogJGJsdWU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGJsdWU7XG4gICAgfVxuICAgIC8vIGlmIGFuIGFuY2hvciB0YWcgaGFzIGEgY2xhc3MgYXR0cmlidXRlIHdlIGF1dG9tYXRpY2FsbHkgdHVybiBvZmZcbiAgICAvLyB0ZXh0LWRlY29yYXRpb25cbiAgICAmW2NsYXNzXSB7XG4gICAgICBmb250LXdlaWdodDogJHJlZ3VsYXI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgfVxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgfVxuXG4gIHVsLFxuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIC8vIGxpIHtcbiAgLy8gICBwYWRkaW5nLWxlZnQ6IDAuNzVlbTtcbiAgLy8gfVxuXG4gIC8vIC8vIFVub3JkZXJlZCBsaXN0c1xuICAvLyB1bCB7XG4gIC8vICAgLy8gbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICAvLyAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAvLyB9XG5cbiAgLy8gLy8gT3JkZXJlZCBsaXN0c1xuICAvLyBvbCB7XG4gIC8vICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIC8vIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZSBuZXN0ZWQgbGlzdHNcbiAgb2wge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgICBvbCB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWFscGhhO1xuICAgICAgb2wge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLXJvbWFuO1xuICAgICAgICBvbCB7XG4gICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1yb21hbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gICAgdWwge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7XG4gICAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgZHQge1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICBkZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICBkZCArIGR0IHtcbiAgICAvLyBtYXJnaW4tdG9wOiAwLjc1ZW07XG4gICAgbWFyZ2luLXRvcDogMS4xMjVlbTtcbiAgfVxuXG59XG4iLCIvLyAtPiByZW5hbWUgdG8gdHlwb2dyYXBoeVxuLy9cbi8vIEZvbnQgRmFtaWxpZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4kcHJveGltYS1ub3ZhOiBwcm94aW1hLW5vdmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHV0b3BpYS1zdGQ6IHV0b3BpYS1zdGQsIEdlb3JnaWEsIHNlcmlmO1xuXG5cbiRwcm94aW1hOiAkcHJveGltYS1ub3ZhO1xuJHV0b3BpYTogJHV0b3BpYS1zdGQ7XG5cbiRsaWdodDogMTAwO1xuJHJlZ3VsYXI6IDQwMDtcbiRtZWRpdW0td2VpZ2h0OiA1MDA7XG4kc2VtaWJvbGQ6IDYwMDtcbiRib2xkOiA3MDA7XG4kYmxhY2std2VpZ2h0OiA5MDA7XG5cbi8vIGluY2x1ZGUgaDEtNiB0eXBlc2NhbGVcbi8vIGluY2x1ZGUgdGFjaHlvbiBkZWZpbml0aW9uc1xuIiwiLy8gQ29sb3JzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuJHllbGxvdzogI0ZGQzcwQTtcbiRibHVlOiAjMjgzRkFGO1xuJG5hdnk6ICMwMDIwNUI7XG5cblxuJHdoaXRlOiAjRkZGRkZGO1xuJGxpZ2h0ZXItZ3JleTogI0Y0RjRGNDtcbiRsaWdodC1ncmV5OiAjRTdFN0U3O1xuJG1lZGl1bS1ncmV5OiAjQzBDMEMwO1xuJGRhcmstZ3JleTogIzcwNzA3MDtcbiRkYXJrZXItZ3JleTogIzU2NTY1NjtcbiRkYXJrZXN0LWdyZXk6ICMzNjM2MzY7XG4kYmxhY2s6ICMyNTI1MjU7XG5cblxuXG5cbi8vIC8vIEdyZXlzY2FsZSBbM11cbi8vIC8vIE5hbWVzIGFyZSBmcm9tIEZvdWRuYXRpb24gdjUsIGhleCB2YWx1ZXMgaGF2ZSBiZWVuIHVwZGF0ZWQgd2l0aCBodHRwczovL3BhbGV0dHRlLmFwcC9cbi8vIC8vIEZvdW5kYXRpb24gY29sb3JzICg1LjUuMykgfCBodHRwOi8vZm91bmRhdGlvbi56dXJiLmNvbS9zaXRlcy9kb2NzL3YvNS41LjMvY29tcG9uZW50cy9nbG9iYWwuaHRtbFxuLy8gJHdoaXRlICAgICAgICAgOiAjRkVGRUZFO1xuLy8gJGdob3N0ICAgICAgICAgOiAjRjBGMEYwO1xuLy8gJHNub3cgICAgICAgICAgOiAjRTNFM0UzO1xuLy8gJHZhcG9yICAgICAgICAgOiAjRDVENUQ1O1xuLy8gJHdoaXRlLXNtb2tlICAgOiAjQzhDOEM4O1xuLy8gJHNpbHZlciAgICAgICAgOiAjQkFCQUJBO1xuLy8gJHNtb2tlICAgICAgICAgOiAjQURBREFEO1xuLy8gJGdhaW5zYm9ybyAgICAgOiAjOUY5RjlGO1xuLy8gJGlyb24gICAgICAgICAgOiAjOTI5MjkyO1xuLy8gJGJhc2UgICAgICAgICAgOiAjODQ4NDg0O1xuLy8gJGFsdW1pbnVtICAgICAgOiAjNzY3Njc2O1xuLy8gJGp1bWJvICAgICAgICAgOiAjNjk2OTY5O1xuLy8gJG1vbnNvb24gICAgICAgOiAjNUI1QjVCO1xuLy8gJHN0ZWVsICAgICAgICAgOiAjNEU0RTRFO1xuLy8gJGNoYXJjb2FsICAgICAgOiAjNDA0MDQwO1xuLy8gJHR1YXRhcmEgICAgICAgOiAjMzMzMzMzO1xuLy8gJG9pbCAgICAgICAgICAgOiAjMjUyNTI1O1xuLy8gJGpldCAgICAgICAgICAgOiAjMTgxODE4O1xuLy8gJGJsYWNrICAgICAgICAgOiAjMEEwQTBBO1xuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBJZiBgdHJ1ZWAsIGFsbCBlbGVtZW50cyB3aWxsIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgd2hlbiBwcmludGVkLCB0byBzYXZlIG9uIGluay5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5cyBuZXh0IHRvIGFsbCBsaW5rcyB0aGVpciBcImhyZWZcIiB3aGVuIHByaW50ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBob25leWNvbWItcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBAaWYgJHByaW50LWhyZWZzIHtcbiAgICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIoaHJlZikgJyknOyB9XG4gICAgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmV5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICAgLy8gSGVscGVyIHRvIHJlLWFsbG93IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgY2VydGFpbiBlbGVtZW50cyAoZS5nLiBwcmUsIGJsb2NrcXVvdGUsIHRyKVxuICAgIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgRmxleGJveCBVdGlsaXRpZXNcbi8vLy9cbi8vXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvdW50IG9mIHNvdXJjZSBvcmRlcmluZ2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNiAhZGVmYXVsdDtcblxuLy8vIFF1aWNrbHkgZGlzYWJsZS9lbmFibGUgUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgVmFuaWxsYSBGbGV4IEhlbHBlcnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZSAhZGVmYXVsdDtcblxuQG1peGluIGZsZXgtaGVscGVycyB7XG4gIC5mbGV4LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleDtcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgLmZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtYXV0byB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1ncm93IHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWNsYXNzZXMge1xuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluICQtemYtZmxleC1qdXN0aWZ5IHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgU3BlY2lmaWNhbGx5IGZvciBWZXJ0aWNhbCBNZW51XG4gIEBlYWNoICRoZGlyLCAkcHJvcCBpbiBtYXAtcmVtb3ZlKCQtemYtZmxleC1qdXN0aWZ5LCAnanVzdGlmeScsICdzcGFjZWQnKSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgICYudmVydGljYWwge1xuICAgICAgICAmLm1lbnUgPiBsaSA+IGEge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuYWxpZ24tI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogJHZkaXIpO1xuICAgIH1cblxuICAgIC5hbGlnbi1zZWxmLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeTogJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENlbnRyYWwgYWxpZ25tZW50IG9mIGNvbnRlbnRcbiAgLmFsaWduLWNlbnRlci1taWRkbGUge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGNlbnRlciwgJHk6IG1pZGRsZSk7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWYW5pbGxhIEZsZXhib3ggSGVscGVyc1xuICBAaW5jbHVkZSBmbGV4LWhlbHBlcnM7XG59XG4iLCJAZnVuY3Rpb24gLXpmLWZsZXgtanVzdGlmeSgkdGV4dC1kaXJlY3Rpb24pIHtcbiAgJC16Zi1mbGV4LWp1c3RpZnk6IChcbiAgICAnbGVmdCc6IGlmKCR0ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGZsZXgtZW5kLCBmbGV4LXN0YXJ0KSxcbiAgICAncmlnaHQnOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBmbGV4LXN0YXJ0LCBmbGV4LWVuZCksXG4gICAgJ2NlbnRlcic6IGNlbnRlcixcbiAgICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICAgJ3NwYWNlZCc6IHNwYWNlLWFyb3VuZCxcbiAgKTtcblxuICBAcmV0dXJuICQtemYtZmxleC1qdXN0aWZ5O1xufVxuXG5cbiQtemYtZmxleC1hbGlnbjogKFxuICAndG9wJzogZmxleC1zdGFydCxcbiAgJ2JvdHRvbSc6IGZsZXgtZW5kLFxuICAnbWlkZGxlJzogY2VudGVyLFxuICAnc3RyZXRjaCc6IHN0cmV0Y2gsXG4pO1xuXG4kLXpmLWZsZXgtZGlyZWN0aW9uOiAoXG4gICdyb3cnOiByb3csXG4gICdyb3ctcmV2ZXJzZSc6IHJvdy1yZXZlcnNlLFxuICAnY29sdW1uJzogY29sdW1uLFxuICAnY29sdW1uLXJldmVyc2UnOiBjb2x1bW4tcmV2ZXJzZSxcbik7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggYnkgYWRkaW5nIGBkaXNwbGF5OiBmbGV4YCB0byB0aGUgZWxlbWVudC5cbkBtaXhpbiBmbGV4IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLy8vIEhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGFsaWducyB0aGUgaXRlbXMgd2l0aGluIGEgZmxleCBjb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR4IFtudWxsXSAtIEhvcml6b250YWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGBsZWZ0YCwgYHJpZ2h0YCwgYGNlbnRlcmAsIGBqdXN0aWZ5YCwgb3IgYHNwYWNlZGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCBob3Jpem9udGFsIGFsaWdubWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbigkeDogbnVsbCwgJHk6IG51bGwpIHtcbiAgQGlmICR4IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWp1c3RpZnksICR4KSB7XG4gICAgICAkeDogbWFwLWdldCgkLXpmLWZsZXgtanVzdGlmeSwgJHgpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR4fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgaG9yaXpvbnRhbCBhbGlnbm1lbnQuIFVzZSBsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5LCBvciBzcGFjZWQuJztcbiAgICB9XG4gIH1cblxuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHZlcnRpY2FsIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJztcbiAgICB9XG4gIH1cblxuICBqdXN0aWZ5LWNvbnRlbnQ6ICR4O1xuICBhbGlnbi1pdGVtczogJHk7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGFsaWduIGEgc2luZ2xlIGNvbHVtbiB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkeTogbnVsbCkge1xuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJztcbiAgICB9XG4gIH1cblxuICBhbGlnbi1zZWxmOiAkeTtcbn1cblxuLy8vIENoYW5nZXMgdGhlIHNvdXJjZSBvcmRlciBvZiBhIGZsZXggY2hpbGQuIENoaWxkcmVuIHdpdGggbG93ZXIgbnVtYmVycyBhcHBlYXIgZmlyc3QgaW4gdGhlIGxheW91dC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9yZGVyIFswXSAtIE9yZGVyIG51bWJlciB0byBhcHBseS5cbkBtaXhpbiBmbGV4LW9yZGVyKCRvcmRlcjogMCkge1xuICBvcmRlcjogJG9yZGVyO1xufVxuXG4vLy8gQ2hhbmdlIGZsZXgtZGlyZWN0aW9uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtyb3ddIC0gRmxleCBkaXJlY3Rpb24gdG8gdXNlLiBDYW4gYmVcbi8vLyAgIC0gcm93IChkZWZhdWx0KTogc2FtZSBhcyB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSByb3ctcmV2ZXJzZTogb3Bwb3NpdGUgdG8gdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gY29sdW1uOiBzYW1lIGFzIHJvdyBidXQgdG9wIHRvIGJvdHRvbVxuLy8vICAgLSBjb2x1bW4tcmV2ZXJzZTogc2FtZSBhcyByb3ctcmV2ZXJzZSB0b3AgdG8gYm90dG9tXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogcm93KSB7XG4gIGZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgYSBmbGV4IGdyaWQgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfExpc3R9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGZvciB0aGlzIHJvdy4gSWYgc2V0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpLCB0aGUgZ2xvYmFsIGNvbHVtbiBjb3VudCB3aWxsIGJlIHVzZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IGJhc2ljIHN0eWxlcyBmcm9tIGJlaW5nIG91dHB1dC4gVXNlZnVsIGlmIHlvdSdyZSBjYWxsaW5nIHRoaXMgbWl4aW4gb24gdGhlIHNhbWUgZWxlbWVudCB0d2ljZSwgYXMgaXQgcHJldmVudHMgZHVwbGljYXRlIENTUyBvdXRwdXQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkd3JhcCBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBoYXZlIHJvdyB3cmFwcGluZyBiZWhhdmlvciBzZXQgdG8gbm93cmFwXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucywgaW4gY2FzZSB0aGUgcm93IGlzIG5lc3RlZC4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBmbGV4LWdyaWQtcm93KFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmFzZTogdHJ1ZSxcbiAgJHdyYXA6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGJhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgJHdyYXA7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcbi8vLyAgIC0gYGV4cGFuZGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uXG5AZnVuY3Rpb24gZmxleC1ncmlkLWNvbHVtbigkY29sdW1uczogZXhwYW5kKSB7XG4gICRmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xuICAgICRmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBleHBhbmQge1xuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkZmxleDtcbn1cblxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycyB3aWR0aC4gU2VlIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyYCBtaXhpbi5cbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxuICAkY29sdW1uczogZXhwYW5kLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIC8vIEJhc2UgcHJvcGVydGllc1xuICBAaW5jbHVkZSBmbGV4LWdyaWQtc2l6ZSgkY29sdW1ucyk7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBmaXhlcyByZWNlbnQgQ2hyb21lIHZlcnNpb24gbm90IGxpbWl0aW5nIGNoaWxkIHdpZHRoXG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0OTM0NTg2L3doaXRlLXNwYWNlLW5vd3JhcC1hbmQtZmxleGJveC1kaWQtbm90LXdvcmstaW4tY2hyb21lXG4gIEBpZiAkY29sdW1ucyA9PSBleHBhbmQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cbkBtaXhpbiBmbGV4LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoZGl2aWRlKDEsICRuKSk7XG5cbiAgICBmbGV4OiAwIDAgJHBjdDtcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHdpZHRoIGZsZXggZ3JpZCBjb2x1bW4uXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBmbGV4LWdyaWQtc2l6ZSgkY29sdW1uczogbnVsbCkge1xuICAkY29sdW1uczogJGNvbHVtbnMgb3IgZXhwYW5kO1xuXG4gIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuXG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxuICBAaWYgJGNvbHVtbnMgIT0gZXhwYW5kIGFuZCAkY29sdW1ucyAhPSBzaHJpbmsge1xuICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG59XG5cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1ncmlkIHtcbiAgLy8gUm93XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XG5cbiAgICAvLyBOZXN0aW5nIGJlaGF2aW9yXG4gICAgJiAucm93IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdCwgJGJhc2U6IGZhbHNlKTtcblxuICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgcm93XG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG5cbiAgICAgIC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG4gICAgfVxuXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVbmRvIG5lZ2F0aXZlIG1hcmdpbnNcbiAgICAvLyBGcm9tIGNvbGxhcHNlZCBjaGlsZFxuICAgICYuaXMtY29sbGFwc2UtY2hpbGQsXG4gICAgJi5jb2xsYXBzZSA+IC5jb2x1bW4gPiAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAuY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uO1xuICB9XG5cbiAgLy8gQ29sdW1uIHJvd1xuICAvLyBUaGUgZG91YmxlIC5yb3cgY2xhc3MgaXMgbmVlZGVkIHRvIGJ1bXAgdXAgdGhlIHNwZWNpZmljaXR5XG4gIC5jb2x1bW4ucm93LnJvdyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcbiAgLnJvdyAuY29sdW1uLnJvdy5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRpKTtcbiAgICAgICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLy8gU2l6aW5nIChleHBhbmQpXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAuI3skLXpmLXNpemV9LWV4cGFuZCB7XG4gICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xuICAgICAgQGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG4gICAgICAgIC5yb3cuI3skLXpmLXNpemV9LXVuc3RhY2sge1xuICAgICAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKDEwMCUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tdW5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNpemluZyAoc2hyaW5rKVxuICAuc2hyaW5rIHtcbiAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC5jb2x1bW4tYmxvY2sge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW1hcmdpbjtcbiAgfVxuXG4gIC5jb2x1bW5zIHtcbiAgICBAZXh0ZW5kIC5jb2x1bW47IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG5cbiAgfVxufVxuIiwiQG1peGluIGhvbmV5Y29tYi1mbG9hdHMge1xuICAuZmxvYXQtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cblxuICAuZmxvYXQtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuXG4gIC5jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cbn1cbiIsIkBtaXhpbiBob25leWNvbWItaGVhZGVyLXJvdyB7XG4gIC5oZWFkZXItcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93O1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nLXRvcDogJHNpemUtNTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNpemUtNTtcbiAgICBoMiwgaDMge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHNpemUtNTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGgyLCBoMyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHNpemUtNDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFNwYWNpbmdcbiRzcGFjaW5nLW5vbmU6ICAgICAgMCAhZGVmYXVsdDtcbiRzcGFjaW5nLXh4LXNtYWxsOiAgOHB4ICFkZWZhdWx0O1xuJHNwYWNpbmcteC1zbWFsbDogICAxNnB4ICFkZWZhdWx0O1xuJHNwYWNpbmctc21hbGw6ICAgICAyNHB4ICFkZWZhdWx0O1xuJHNwYWNpbmctbWVkaXVtOiAgICAzMnB4ICFkZWZhdWx0O1xuJHNwYWNpbmctbGFyZ2U6ICAgICA0OHB4ICFkZWZhdWx0O1xuJHNwYWNpbmcteC1sYXJnZTogICA2NHB4ICFkZWZhdWx0O1xuJHNwYWNpbmcteHgtbGFyZ2U6ICA5NnB4ICFkZWZhdWx0O1xuJHNwYWNpbmcteHh4LWxhcmdlOiAxNjBweCAhZGVmYXVsdDtcblxuJHNpemUtMTogJHNwYWNpbmcteHgtc21hbGw7XG4kc2l6ZS0yOiAkc3BhY2luZy14LXNtYWxsO1xuJHNpemUtMzogJHNwYWNpbmctc21hbGw7XG4kc2l6ZS00OiAkc3BhY2luZy1tZWRpdW07XG4kc2l6ZS01OiAkc3BhY2luZy1sYXJnZTtcbiRzaXplLTY6ICRzcGFjaW5nLXgtbGFyZ2U7XG4kc2l6ZS03OiAkc3BhY2luZy14eC1sYXJnZTtcbiRzaXplLTg6ICRzcGFjaW5nLXh4eC1sYXJnZTtcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lZGlhLW9iamVjdFxuLy8vL1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIExlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb24gc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgaW1hZ2VzIHdpdGhpbiBhIG1lZGlhIG9iamVjdCwgd2hlbiB0aGUgb2JqZWN0IGlzIHN0YWNrZWQgdmVydGljYWxseS4gU2V0IHRvICdhdXRvJyB0byB1c2UgdGhlIGltYWdlJ3MgbmF0dXJhbCB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbWVkaWEgb2JqZWN0IGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3QtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCBibG9jayk7XG4gIG1hcmdpbi1ib3R0b206ICRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG5cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgWyRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmddIC0gUGFkZGluZyBiZXR3ZWVuIHNlY3Rpb25zLlxuQG1peGluIG1lZGlhLW9iamVjdC1zZWN0aW9uKCRwYWRkaW5nOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRwYWRkaW5nO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtbGVmdH06ICRwYWRkaW5nO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0gJiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc3RhY2s7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgJi5tYWluLXNlY3Rpb24ge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICYubWlkZGxlIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgJi5ib3R0b20ge1xuICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHN0YWNrIHNlY3Rpb25zIG9mIGEgbWVkaWEgb2JqZWN0LiBBcHBseSB0aGlzIHRvIHRoZSBzZWN0aW9uIGVsZW1lbnRzLCBub3QgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc3RhY2sge1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZztcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAkbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDtcbiAgfVxufVxuXG5AbWl4aW4gaG9uZXljb21iLW1lZGlhLW9iamVjdCB7XG4gIC5tZWRpYS1vYmplY3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1jb250YWluZXI7XG4gIH1cblxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xuICB9XG59XG4iLCIvLyBjb250YWlucyBtb3JlIHRoYW4ganVzdCBGb3VuZGF0aW9uJ3Mgc3R1ZmZcblxuLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmVzcG9uc2l2ZS1lbWJlZFxuLy8vL1xuXG4vLy8gTWFyZ2luIGJlbG93IGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBBc3BlY3QgcmF0aW9zIHVzZWQgdG8gZGV0ZXJtaW5lIHBhZGRpbmctYm90dG9tIG9mIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVycy5cbi8vLyBAdHlwZSBNYXBcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfExpc3R9ICRyYXRpbyBbZGVmYXVsdF0gLSBSYXRpbyBvZiB0aGUgY29udGFpbmVyLiBDYW4gYmUgYSBrZXkgZnJvbSB0aGUgYCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvc2AgbWFwIG9yIGEgbGlzdCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG5AbWl4aW4gcmVzcG9uc2l2ZS1lbWJlZCgkcmF0aW86IGRlZmF1bHQpIHtcbiAgQGlmIHR5cGUtb2YoJHJhdGlvKSA9PSAnc3RyaW5nJyB7XG4gICAgJHJhdGlvOiBtYXAtZ2V0KCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcywgJHJhdGlvKTtcbiAgfVxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTtcbiAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZCB7XG4gIC8vIC5yZXNwb25zaXZlLWVtYmVkLFxuICAvLyAuZmxleC12aWRlbyB7XG4gIC5yZXNwb25zaXZlLWVtYmVkIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogd2lkZXNjcmVlbik7XG5cbiAgICAkcmF0aW9zOiBtYXAtcmVtb3ZlKCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcyx3aWRlc2NyZWVuKTtcblxuICAgIEBlYWNoICRuYW1lLCAkcmF0aW8gaW4gJHJhdGlvcyB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFVPRlJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5AbWl4aW4gaG9uZXljb21iLXJlc3BvbnNpdmUtZW1iZWQge1xuXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcblxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cblxuICAucmVzcG9uc2l2ZS1lbWJlZF9fc2NyaW0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsYWNrLCAwLjcpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDM3LDM3LDM3LDEpIDAlLCByZ2JhKDM3LDM3LDM3LDApIDEwMCUpO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcGFkZGluZzogJHNwYWNpbmctbWVkaXVtICRzcGFjaW5nLW1lZGl1bSAkc3BhY2luZy14LXNtYWxsICRzcGFjaW5nLXgtc21hbGw7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctbGFyZ2U7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctbGFyZ2U7XG4gICAgfVxuICB9XG5cbiAgLnJlc3BvbnNpdmUtZW1iZWRfX3BsYXktYnRuIHtcbiAgICBpIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogJHNwYWNpbmcteC1zbWFsbDtcbiAgICAgIHBhZGRpbmc6IDEwcHggMTBweCAxMHB4IDE4cHg7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiAkc2VtaWJvbGQ7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gIH1cbn1cbiIsIi8vIGljb24gd3JhcHBlcnNcbi8vIHJlY29tbWVuZGVkOiB1c2UgdGggPGk+PC9pPlxuQG1peGluIGhvbmV5Y29tYi1pY29uLXdyYXBwZXJzIHtcbiAgLy8gZml4ZWQgd2lkdGggaWNvbiBjb250YWluZXJcbiAgLmljb24tZncge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogJHNpemUtMztcbiAgICBtYXJnaW4tcmlnaHQ6ICRzaXplLTE7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIC8vIGdvb2QgZm9yIG1lbnUgdG9nZ2xlcy4gdXNlZCBpbiBibHVlIHBhZ2VzIG5hdlxuICAuaWNvbi1zdGFja2VkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAvLyB1c2VkIGluIGRhdGEgcG9pbnRzXG4gIC5pY29uLWNpcmNsZSB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogODBweDtcbiAgICA+IHN2ZyB7XG4gICAgICAvLyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDU1JTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHBhZ2UgYXJlYXNcbi8vIHByZS1kZWZpbmVkIGFyZWFzIHRoYXQgd2lsbCBob2xkIG1vZHVsZXMgYW5kIG90aGVyIGNvbnRlbnRcbkBtaXhpbiBob25leWNvbWItbGF5b3V0LWFyZWFzIHtcblxuICAubGF5b3V0LWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIHBhZGRpbmc6ICRzaXplLTEgJHNpemUtMztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTAwO1xuICB9XG5cbiAgLmxheW91dC1zdGlja3ktaGVhZGVyIHtcbiAgICBAZXh0ZW5kIC5sYXlvdXQtaGVhZGVyO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbWVkaXVtLWdyZXk7XG4gICAgYm94LXNoYWRvdzogMCA4cHggOHB4IHJnYmEoJGRhcmtlc3QtZ3JleSwgLjEpO1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgLy8gLmxheW91dC1tYWluIHt9XG5cbiAgLmxheW91dC1mb290ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHBhZGRpbmc6ICRzaXplLTUgMCAkc2l6ZS0zO1xuICB9XG5cblxuICAvLyBnZW5lcmljIGNvbnRlbnQgd3JhcHBlcnNcbiAgLmxheW91dC1jb250ZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzaXplLTM7XG4gICAgcGFkZGluZy1yaWdodDogJHNpemUtMztcbiAgfVxuICAubGF5b3V0LXdyYXBwZXIge1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgfVxuXG4gIC5sYXlvdXQtd3JhcHBlci1jb250ZW50IHtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGgvMjtcbiAgfVxuXG59XG4iLCJAbWl4aW4gaG9uZXljb21iLWJsb2NrcXVvdGVzIHtcbiAgLmJsb2NrcXVvdGUge1xuICAgIC8vIGZvbnQtc2l6ZTogMC44ODlyZW07XG4gICAgLy8gbGluZS1oZWlnaHQ6IDEuMzEyNTtcbiAgICAvLyB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLy8gbWF4LXdpZHRoOiAzNXJlbTtcblxuICAgIC8vIG1hcmdpbjogJGdsb2JhbC1tYXJnaW4gYXV0bztcbiAgICAvLyBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIC8vIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcbiAgICBib3JkZXI6ICRibG9ja3F1b3RlLWJvcmRlcjtcbiAgICBjb2xvcjogJG5hdnk7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMik7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIG1hcmdpbjogMCBhdXRvICRnbG9iYWwtbWFyZ2luO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgLy8gbWFyZ2luLWJvdHRvbTogMC42NjdyZW07XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFzigJxcIjtcbiAgICAgICAgZm9udC1zaXplOiAxLjEyNWVtO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0wLjZlbSwgLTAuMWVtKTtcbiAgICAgIH1cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlxc4oCdXCI7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMjVlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gJiwgcCB7XG4gICAgLy8gICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIC8vICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIC8vIH1cbiAgICAvLyBDaXRhdGlvbnNcbiAgICBjaXRlIHtcbiAgICAgIGNvbG9yOiAkY2l0ZS1jb2xvcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIC8vIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgICAgIC8vIGxldHRlci1zcGFjaW5nOiAwLjA1cmVtO1xuXG4gICAgICAvLyAmOmJlZm9yZSB7XG4gICAgICAvLyAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICAgICAgLy8gfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzNCk7XG4gICAgICBwYWRkaW5nOiAzLjI1cmVtIDYuNXJlbTtcbiAgICAgIHAge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yMzU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2VwZXJhdG9yIGJldHdlZW4gYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2g7XG59XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLycgIWRlZmF1bHQ7XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yIGluIHJ0bCBtb2RlLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gSWYgaXQgZXhpc3RzICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yIGlzIHVzZWQgdG8gYnVpbGQgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3IpIHtcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcjtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXG5AbWl4aW4gYnJlYWRjcnVtYnMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAvLyBJdGVtIHdyYXBwZXJcbiAgbGkge1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvciB7XG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXG4gICAgICAkc2VwYXJhdG9yOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdsdHInLCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbSwgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsKTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgY29udGVudDogJHNlcGFyYXRvcjtcbiAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhIHtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFVvZlJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5AbWl4aW4gX2JyZWFkY3J1bWJzIHtcbiAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yIHtcbiAgICAgIC8vIE5lZWQgdG8gZXNjYXBlIHRoZSBiYWNrc2xhc2hcbiAgICAgICRzZXBhcmF0b3I6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ2x0cicsICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGwpO1xuXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIG1hcmdpbjogMCAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICBjb250ZW50OiAkc2VwYXJhdG9yO1xuICAgICAgICAgIC8vIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICB9XG4gIH1cbiAgLy8gUGFnZSBsaW5rc1xuICBhIHtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6ICRyZWd1bGFyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG5AbWl4aW4gaG9uZXljb21iLWJyZWFkY3J1bWJzIHtcbiAgLmJyZWFkY3J1bWJzIHtcbiAgICBAaW5jbHVkZSBfYnJlYWRjcnVtYnM7XG4gICAgLy8gQGluY2x1ZGUgYnJlYWRjcnVtYnMtY29udGFpbmVyO1xuICAgIC8vIC5kaXNhYmxlZCB7XG4gICAgLy8gICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgLy8gICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIC8vIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBGb250IGZhbWlseSBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEZvbnRcbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSBmb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciB3aWR0aCBmb3IgaG9sbG93IG91dGxpbmUgYnV0dG9uc1xuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLy8gdHJhbnNpdGlvbnMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIEFkZGl0aW9uYWwgcmVzcG9uc2l2ZSBjbGFzc2VzIGZvciAuZXhwYW5kZWRcbi8vLyBAdHlwZSBCb29sZWFuXG4kYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgLy8gYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICBib3JkZXI6IDJweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuICBmb250LXdlaWdodDogJGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICBAaWYgKHR5cGUtb2YoJGJ1dHRvbi1wYWRkaW5nKSA9PSAnbWFwJykge1xuICAgIEBlYWNoICRzaXplLCAkcGFkZGluZyBpbiAkYnV0dG9uLXBhZGRpbmcge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgfVxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246ICRidXR0b24tdHJhbnNpdGlvbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cblxuXG4vLyBIb25leWNvbWJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5AbWl4aW4gbGluay1zdHlsZS0yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkeWVsbG93LCAuNyk7XG4gIGNvbG9yOiAkYmxhY2s7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgZm9udC13ZWlnaHQ6ICRibGFjay13ZWlnaHQ7XG4gIHBhZGRpbmc6IDE1cHggMTBweCAxMnB4O1xuICBwYWRkaW5nOiAxNXB4ICRzaXplLTIgMTJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4yNXMgY3ViaWMtYmV6aWVyKDAuNjYsIC0wLjM5LCAwLjQxLCAxLjM1KTtcbiAgd2lsbC1jaGFuZ2U6IGJhY2tncm91bmQtY29sb3I7XG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHllbGxvdywgMSk7XG4gICAgY29sb3I6ICRibGFjaztcbiAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxuICA+IHN2ZyB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzaXplLTE7XG4gICAgd2lkdGg6IDEwcHg7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICBwYWRkaW5nOiA3cHggMTBweCA1cHg7XG4gIH1cbn1cblxuXG5AbWl4aW4gaG9uZXljb21iLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIC8vIEBpbmNsdWRlIGJ1dHRvbjtcblxuICAgIC8qIE1vZGVyblRyaWJlIGZsYXZvciAqL1xuICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4gICAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG4gICAgLy8gU3RhbmRhcmQsIEJsdWVcbiAgICAmLCAmLmJsdWUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItY29sb3I6ICRibHVlO1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgICAvLyBib3JkZXItY29sb3I6ICRibHVlO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQ6IHRyYW5zcGFyZW50LCAkYmFja2dyb3VuZC1ob3ZlcjogJGJsdWUsICRjb2xvcjogJGJsdWUsICRjb2xvci1ob3ZlcjogJHdoaXRlKTtcbiAgICAvLyBTdGFuZGFyZCwgWWVsbG93XG4gICAgJi55ZWxsb3cge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeWVsbG93O1xuICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBTdGFuZGFyZCwgTWVkaXVtIEdyZXlcbiAgICAmLm1lZGl1bS1ncmV5IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJG1lZGl1bS1ncmV5O1xuICAgICAgY29sb3I6ICRtZWRpdW0tZ3JleTtcbiAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmV5O1xuICAgICAgICBib3JkZXItY29sb3I6ICRkYXJrLWdyZXk7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgZmlsbDogJHllbGxvdztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBTdGFuZGFyZCwgV2hpdGVcbiAgICAmLndoaXRlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHdoaXRlO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHdoaXRlO1xuICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbHQge1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgfVxuICAgIH1cbiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cblxuICAgIC8vIERpc2FibGVkIHN0eWxlXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgYS5idXR0b24geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubGluay0xIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHllbGxvdztcbiAgICBjb2xvcjogJGJsYWNrO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICBmb250LXdlaWdodDogJGJsYWNrLXdlaWdodDtcbiAgICBwYWRkaW5nOiA1cHggMCAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IHBhZGRpbmcgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNjYsIC0wLjM5LCAwLjQxLCAxLjM1KTtcbiAgICB3aWxsLWNoYW5nZTogcGFkZGluZztcbiAgICB6LWluZGV4OiAxO1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHllbGxvdztcbiAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICBwYWRkaW5nOiA1cHggMjBweCAwO1xuICAgIH1cbiAgICAuYmcteWVsbG93ICYge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHdoaXRlO1xuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubGluay0yIHtcbiAgICBAaW5jbHVkZSBsaW5rLXN0eWxlLTI7XG4gIH1cbn1cbiIsIkBtaXhpbiBob25leWNvbWItY3RhLWNhcmRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiByZW0tY2FsYygyNik7XG4gIGZvbnQtd2VpZ2h0OiAkYmxhY2std2VpZ2h0O1xuICBsaW5lLWhlaWdodDogMS4wNzc7XG4gIG1hcmdpbi1ib3R0b206ICRzaXplLTM7XG59XG5cbkBtaXhpbiBob25leWNvbWItY3RhLWNhcmQge1xuXG4gIC5jdGEtY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHllbGxvdztcbiAgICBjb2xvcjogJGJsYWNrO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiAkcmVndWxhcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAuY3RhLWNhcmRfX2NvbnRlbnQge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU1O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogJHNpemUtNSAkc2l6ZS01ICRzaXplLTY7XG4gICAgaDMge1xuICAgICAgLy8gQGluY2x1ZGUgaG9uZXljb21iLWN0YS1jYXJkX190aXRsZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYmxhY2std2VpZ2h0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHNpemUtNDtcbiAgICB9XG4gICAgc3BhbiB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQ7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYmxhY2std2VpZ2h0O1xuICAgICAgbWFyZ2luLXRvcDogJHNpemUtNDtcbiAgICAgIHBhZGRpbmc6ICgkc2l6ZS0xLzIpIDA7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICR0cmFuc2l0aW9uOiAwLjI1cyBjdWJpYy1iZXppZXIoMC42NiwgLTAuMzksIDAuNDEsIDEuMzUpO1xuICAgICAgdHJhbnNpdGlvbjogcGFkZGluZyAkdHJhbnNpdGlvbiwgY29sb3IgJHRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb247XG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tbGVmdDogJHNpemUtMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY3RhLWNhcmRfX21lZGlhIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGxlZnQ6IC01JTtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XG4gICAgICB3aWR0aDogMTEwJTtcbiAgICB9XG4gIH1cblxuXG4gIC5jdGEtY2FyZDpob3ZlciB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgaW1nIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICB9XG4gICAgc3BhbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgICBjb2xvcjogJHllbGxvdztcbiAgICAgIHBhZGRpbmc6ICgkc2l6ZS0xLzIpICRzaXplLTI7XG4gICAgfVxuICB9XG5cbiAgLmN0YS1jYXJkLS1zdHJpcGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cblxuICAvLyBjb2xvciB2YXJpYXRpb25zXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLmN0YS1jYXJkLmJnLWRhcmtlc3QtZ3JleSxcbiAgLmN0YS1jYXJkLmJnLXdoaXRlIHtcbiAgICBzcGFuIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR5ZWxsb3c7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgc3BhbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR5ZWxsb3c7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5jdGEtY2FyZC5iZy1kYXJrZXN0LWdyZXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrZXN0LWdyZXk7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIHNwYW4ge1xuICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuICAgICAgICBjb2xvcjogJGRhcmtlc3QtZ3JleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY3RhLWNhcmQuYmctd2hpdGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIHNwYW4ge1xuICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgLy8gbGF5b3V0XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLmNvbHVtbiAuY3RhLWNhcmQge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIH1cbiAgLy8geW91IGNhbiBzZXQgY29sb3JzIGJ5IHBvc2l0aW9uIGluIGEgLnJvdyBidXQgaXQgZ2V0cyBidWxreVxuICAvLyAuY3RhLWNhcmQtLXN0cmlwZS1yb3cge1xuICAvLyAgIC5jb2x1bW4ge1xuICAvLyAgICAgJjpudGgtb2YtdHlwZSgybikge1xuICAvLyAgICAgICAuY3RhLWNhcmRfX21lZGlhIHtcbiAgLy8gICAgICAgICBvcmRlcjogLTE7XG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH1cbiAgLy8gICAgICY6bnRoLW9mLXR5cGUoMikge1xuICAvLyAgICAgICAuY3RhLWNhcmQge1xuICAvLyAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgLy8gICAgICAgICAmOmhvdmVyIHtcbiAgLy8gICAgICAgICAgIHNwYW4ge1xuICAvLyAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuICAvLyAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAvLyAgICAgICAgICAgfVxuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgfVxuICAvLyAgICAgfVxuICAvLyAgICAgJjpudGgtb2YtdHlwZSgzKSB7XG4gIC8vICAgICAgIC5jdGEtY2FyZCB7XG4gIC8vICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlc3QtZ3JleTtcbiAgLy8gICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAvLyAgICAgICAgICY6aG92ZXIge1xuICAvLyAgICAgICAgICAgc3BhbiB7XG4gIC8vICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR5ZWxsb3c7XG4gIC8vICAgICAgICAgICAgIGNvbG9yOiAkZGFya2VzdC1ncmV5O1xuICAvLyAgICAgICAgICAgfVxuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgfVxuICAvLyAgICAgfVxuICAvLyAgICAgJjpudGgtb2YtdHlwZSgyKSxcbiAgLy8gICAgICY6bnRoLW9mLXR5cGUoMykge1xuICAvLyAgICAgICBzcGFuIHtcbiAgLy8gICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkeWVsbG93O1xuICAvLyAgICAgICB9XG4gIC8vICAgICAgIC8vIC5jdGEtY2FyZF9fY29udGVudCB7XG4gIC8vICAgICAgIC8vICAgc3BhbiB7XG4gIC8vICAgICAgIC8vICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkeWVsbG93O1xuICAvLyAgICAgICAvLyAgIH1cbiAgLy8gICAgICAgLy8gfVxuICAvLyAgICAgfVxuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8vIC5jdGEtY2FyZC1yb3cge1xuICAvLyAgIC5jb2x1bW4ge1xuICAvLyAgICAgJjpudGgtb2YtdHlwZSgxKSB7XG4gIC8vICAgICAgIC5jdGEtY2FyZCB7XG4gIC8vICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlc3QtZ3JleTtcbiAgLy8gICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAvLyAgICAgICAgICY6aG92ZXIge1xuICAvLyAgICAgICAgICAgc3BhbiB7XG4gIC8vICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR5ZWxsb3c7XG4gIC8vICAgICAgICAgICAgIGNvbG9yOiAkZGFya2VzdC1ncmV5O1xuICAvLyAgICAgICAgICAgfVxuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgfVxuICAvLyAgICAgfVxuICAvLyAgICAgJjpudGgtb2YtdHlwZSg0KSB7XG4gIC8vICAgICAgIC5jdGEtY2FyZCB7XG4gIC8vICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAvLyAgICAgICAgICY6aG92ZXIge1xuICAvLyAgICAgICAgICAgc3BhbiB7XG4gIC8vICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR5ZWxsb3c7XG4gIC8vICAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gIC8vICAgICAgICAgICB9XG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9XG4gIC8vICAgICB9XG4gIC8vICAgICAmOm50aC1vZi10eXBlKDEpLFxuICAvLyAgICAgJjpudGgtb2YtdHlwZSg0KSB7XG4gIC8vICAgICAgIHNwYW4ge1xuICAvLyAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR5ZWxsb3c7XG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vIH1cblxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgLmN0YS1jYXJkX19jb250ZW50IHtcbiAgICAgIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzNik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXG4gICAgLmN0YS1jYXJkX19jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6ICRzaXplLTYgJHNpemUtNiAkc2l6ZS03O1xuICAgIH1cblxuICAgIC5jdGEtY2FyZC0tc3RyaXBlIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAvLyBkaXNwbGF5OiBmbGV4O1xuICAgICAgLmN0YS1jYXJkX19jb250ZW50LFxuICAgICAgLmN0YS1jYXJkX19tZWRpYSB7XG4gICAgICAgIGZsZXg6IDEgMSA1MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgLmN0YS1jYXJkLS1zdHJpcGUge1xuICAgICAgLmN0YS1jYXJkX19jb250ZW50IHtcbiAgICAgICAgZmxleDogMSAxIDM1JTtcbiAgICAgIH1cbiAgICAgIC5jdGEtY2FyZF9fbWVkaWEge1xuICAgICAgICBmbGV4OiAxIDEgNjUlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCJAbWl4aW4gaG9uZXljb21iLWN0YS1zdHJpcGUge1xuICAuY3RhLXN0cmlwZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHllbGxvdztcbiAgfVxuXG4gIC5jdGEtc3RyaXBlX19jb250ZW50IHtcbiAgICBAaW5jbHVkZSBob25leWNvbWItbGVhZDtcbiAgICBwYWRkaW5nOiAkc2l6ZS01ICRzaXplLTQ7XG4gICAgPiBhIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgICBmb250LXdlaWdodDogJGJsYWNrLXdlaWdodDtcbiAgICAgIHBhZGRpbmc6ICgkc2l6ZS0xLzIpICRzaXplLTE7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmN0YS1zdHJpcGVfX21lZGlhIHtcbiAgICB2aWRlbywgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAuY3RhLXN0cmlwZV9fY29udGVudCB7XG4gICAgICBwYWRkaW5nOiAkc2l6ZS02O1xuICAgICAgcCB7XG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJHNpemUtNTtcbiAgICAgICAgfVxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNpemUtNTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHZpZGVvXG4gICAgLmN0YS1zdHJpcGUtLXZpZGVvIHtcbiAgICAgIC5jdGEtc3RyaXBlX19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogJHNpemUtNiAkc2l6ZS03O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGltYWdlXG4gICAgLmN0YS1zdHJpcGUtLWltYWdlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkc2l6ZS02O1xuICAgICAgLmN0YS1zdHJpcGVfX21lZGlhIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaXplLTI7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGltYWdlIGFsdFxuICAgIC5jdGEtc3RyaXBlLS1pbWFnZS1hbHQge1xuICAgICAgcGFkZGluZy10b3A6ICRzaXplLTQ7XG4gICAgICAuY3RhLXN0cmlwZV9fbWVkaWEge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRzaXplLTI7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgLmN0YS1zdHJpcGUtLWltYWdlLFxuICAgIC5jdGEtc3RyaXBlLS1pbWFnZS1hbHQsXG4gICAgLmN0YS1zdHJpcGUtLXZpZGVvIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgICAvLyBpbWFnZVxuICAgIC5jdGEtc3RyaXBlLS1pbWFnZSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIC5jdGEtc3RyaXBlX19jb250ZW50IHtcbiAgICAgICAgZmxleDogMSAxIDQ1JTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHNpemUtMztcbiAgICAgIH1cbiAgICAgIC5jdGEtc3RyaXBlX19tZWRpYSB7XG4gICAgICAgIGZsZXg6IDIgMiA1NSU7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGltYWdlIGFsdFxuICAgIC5jdGEtc3RyaXBlLS1pbWFnZS1hbHQge1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAuY3RhLXN0cmlwZV9fbWVkaWEge1xuICAgICAgICBmbGV4OiAxIDEgNDUlO1xuICAgICAgfVxuICAgICAgLmN0YS1zdHJpcGVfX2NvbnRlbnQge1xuICAgICAgICBmbGV4OiAyIDIgNTUlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaXplLTM7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLy8gdmlkZW9cbiAgICAuY3RhLXN0cmlwZS0tdmlkZW8ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAuY3RhLXN0cmlwZV9fbWVkaWEsXG4gICAgICAuY3RhLXN0cmlwZV9fY29udGVudCB7XG4gICAgICAgIGZsZXg6IDEgMSA1MCU7XG4gICAgICB9XG4gICAgICAuY3RhLXN0cmlwZV9fbWVkaWEge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB2aWRlbyB7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgd2lkdGg6IDE1MCU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5jdGEtc3RyaXBlX19jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHllbGxvdztcbiAgICAgICAgYm94LXNoYWRvdzogKC0kc2l6ZS01KSAwIDAgJHllbGxvdztcbiAgICAgICAgcGFkZGluZzogJHNpemUtNyAkc2l6ZS00O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgLy8gaW1hZ2UgdmVyc2lvbnNcbiAgICAuY3RhLXN0cmlwZS0taW1hZ2UsXG4gICAgLmN0YS1zdHJpcGUtLWltYWdlLWFsdCB7XG4gICAgICAuY3RhLXN0cmlwZV9fbWVkaWEge1xuICAgICAgICBtYXgtd2lkdGg6IDg1MnB4O1xuICAgICAgfVxuICAgIH1cbiAgICAuY3RhLXN0cmlwZS0taW1hZ2UgLmN0YS1zdHJpcGVfX2NvbnRlbnQge1xuICAgICAgcGFkZGluZy1yaWdodDogJHNpemUtNDtcbiAgICB9XG4gICAgLmN0YS1zdHJpcGUtLWltYWdlLWFsdCAuY3RhLXN0cmlwZV9fY29udGVudCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRzaXplLTQ7XG4gICAgfVxuXG4gICAgLy8gdmlkZW9cbiAgICAuY3RhLXN0cmlwZS0tdmlkZW8ge1xuICAgICAgLmN0YS1zdHJpcGVfX2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAkc2l6ZS04ICRzaXplLTUgJHNpemUtNztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UpIHtcbiAgICAuY3RhLXN0cmlwZSB7XG4gICAgICBwYWRkaW5nOiAkc2l6ZS02IDEydnc7XG4gICAgICAmLmN0YS1zdHJpcGUtLXZpZGVvIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB2aWRlb1xuICAgIC5jdGEtc3RyaXBlLS12aWRlbyB7XG4gICAgICAuY3RhLXN0cmlwZV9fbWVkaWEgdmlkZW8ge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgICAgLy8gYWRqdXN0IHRoZSBmb250LXNpemUgYW5kIHNpemVcbiAgICAgIC5jdGEtc3RyaXBlX19jb250ZW50IHtcbiAgICAgICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICAgICAgcGFkZGluZzogKCRzaXplLTgrJHNpemUtNCkgMTh2dyAoJHNpemUtNyskc2l6ZS0zKSAkc2l6ZS02O1xuICAgICAgfVxuICAgICAgLmYtc3ViaGVhZGxpbmUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDU4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFRZUE9HUkFQSFlcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBzdGF0aXN0aWMgbnVtYmVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gaG9uZXljb21iLWxlYWQge1xuICBmb250LXNpemU6IDEuNWVtO1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZm9udC1zaXplOiAxLjhlbTtcbiAgfVxufVxuXG5AbWl4aW4gaG9uZXljb21iLXR5cG9ncmFwaHktY2xhc3NlcyB7XG5cbiAgLyogQm9vayBwYXJhZ3JhcGggc3R5bGUgLSBwYXJhZ3JhcGhzIGFyZSBpbmRlbnRlZCB3aXRoIG5vIHZlcnRpY2FsIHNwYWNpbmcuICovXG4gIC5pbmRlbnQge1xuICAgIHRleHQtaW5kZW50OiAxZW07XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLnNtYWxsLWNhcHMge1xuICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgfVxuXG4gIC8qIENvbWJpbmUgdGhpcyBjbGFzcyB3aXRoIGEgd2lkdGggdG8gdHJ1bmNhdGUgdGV4dCAob3IganVzdCBsZWF2ZSBhcyBpcyB0byB0cnVuY2F0ZSBhdCB3aWR0aCBvZiBjb250YWluaW5nIGVsZW1lbnQuICovXG5cbiAgLnRydW5jYXRlIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cblxuXG4gIC8vIGh0dHBzOi8vaGVscHguYWRvYmUuY29tL2ZvbnRzL3VzaW5nL29wZW4tdHlwZS1zeW50YXguaHRtbFxuICAuc21hbGwtY2FwcyB7XG4gICAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICAgIGZvbnQtdmFyaWFudC1jYXBzOiBzbWFsbC1jYXBzO1xuICAgIC8vIC1tb3otZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInNtY3BcIjtcbiAgICAvLyAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJzbWNwXCI7XG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInNtY3BcIjtcbiAgfVxuXG4gIC50bnVtIHtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgIC8vIC1tb3otZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInRudW1cIjtcbiAgICAvLyAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCI7XG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInRudW1cIjtcbiAgfVxuXG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgQGluY2x1ZGUgaG9uZXljb21iLWxlYWQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICAvLyAudGl0bGUge1xuICAvLyAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIC8vICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgLy8gICBwLCB1bCArICYge1xuICAvLyAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAvLyAgIH1cbiAgLy8gfVxuXG5cbiAgLy8gLy8gZm9yIGVhY2ggYnJlYWtwb2ludFxuICAvLyBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgLy8gICAvLyB3cml0ZSBhIG1lZGlhcXVlcnlcbiAgLy8gICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gIC8vICAgICAvLyBtZWRpYXF1ZXJ5IHNwZWNpZmljXG4gIC8vICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAvLyAgICAgICAkYnBMZXR0ZXI6IHN0ci1zbGljZSgkc2l6ZSwgMSwgMSk7XG5cbiAgLy8gICAgICAgLm1lYXN1cmUtI3skYnBMZXR0ZXJ9ICAgICAgICAgIHsgbWF4LXdpZHRoOiAkbWVhc3VyZTsgfVxuICAvLyAgICAgICAubWVhc3VyZS13aWRlLSN7JGJwTGV0dGVyfSAgICAgeyBtYXgtd2lkdGg6ICRtZWFzdXJlLXdpZGU7IH1cbiAgLy8gICAgICAgLm1lYXN1cmUtbmFycm93LSN7JGJwTGV0dGVyfSAgIHsgbWF4LXdpZHRoOiAkbWVhc3VyZS1uYXJyb3c7IH1cbiAgLy8gICAgIH1cbiAgLy8gICAgIC8vIGRlZmF1bHQsIG1vYmlsZSBzdHlsZXNcbiAgLy8gICAgIEBlbHNlIHtcbiAgLy8gICAgICAgLyogTWVhc3VyZSBpcyBsaW1pdGVkIHRvIH42NiBjaGFyYWN0ZXJzICovXG4gIC8vICAgICAgIC5tZWFzdXJlICAgICAgICAgIHsgbWF4LXdpZHRoOiAkbWVhc3VyZTsgfVxuICAvLyAgICAgICAvKiBNZWFzdXJlIGlzIGxpbWl0ZWQgdG8gfjgwIGNoYXJhY3RlcnMgKi9cbiAgLy8gICAgICAgLm1lYXN1cmUtd2lkZSAgICAgeyBtYXgtd2lkdGg6ICRtZWFzdXJlLXdpZGU7IH1cbiAgLy8gICAgICAgLyogTWVhc3VyZSBpcyBsaW1pdGVkIHRvIH40NSBjaGFyYWN0ZXJzICovXG4gIC8vICAgICAgIC5tZWFzdXJlLW5hcnJvdyAgIHsgbWF4LXdpZHRoOiAkbWVhc3VyZS1uYXJyb3c7IH1cbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vIH1cbn1cbiIsIkBtaXhpbiBob25leWNvbWItZGF0YS1wb2ludCB7XG4gIC5kYXRhLXBvaW50IHtcbiAgICBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNpemUtNTtcbiAgICBzdHJvbmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuMjVlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYmxhY2std2VpZ2h0O1xuICAgIH1cbiAgICAuaWNvbi1jaXJjbGUge1xuICAgICAgbWFyZ2luOiAwIGF1dG8gJHNpemUtMjtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIC5kYXRhLXBvaW50IHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xuICAgICAgcGFkZGluZzogMCAkc2l6ZS0zO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41NWVtO1xuICAgICAgfVxuICAgICAgLmljb24tY2lyY2xlIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHNpemUtMztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgIC5kYXRhLXBvaW50IHtcbiAgICAgIC5pY29uLWNpcmNsZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHNpemUtNDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBob25leWNvbWItZXZlbnQtY2FyZCB7XG4gIC5ldmVudC1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6ICRyZWd1bGFyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBwYWRkaW5nOiAkc2l6ZS01O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBpbml0aWFsO1xuICAgICAgLmV2ZW50LWNhcmRfX2N0YSB7XG4gICAgICAgIGNvbG9yOiBpbml0aWFsO1xuICAgICAgICAvLyBjb2xvcjogJGJsYWNrO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICB9XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUtMyk7XG4gICAgICAgIH1cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUtMyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5iZy15ZWxsb3cge1xuICAgICAgLmV2ZW50LWNhcmRfX2N0YSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VzdC1ncmV5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOmhvdmVyIC5ldmVudC1jYXJkX19jdGEge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgICAmLmJnLWRhcmtlc3QtZ3JleSB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgIC5jb2x1bW4gPiAmLFxuICAgIC5jb2x1bW5zID4gJiB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgICBwYWRkaW5nOiAkc2l6ZS02ICRzaXplLTYgJHNpemUtNyskc2l6ZS0zO1xuICAgIH1cbiAgfVxuICAuZXZlbnQtY2FyZF9fZGF0ZSB7XG4gICAgQGluY2x1ZGUgaG9uZXljb21iLWY0O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc2l6ZS0zO1xuICAgIHN2ZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRzaXplLTEvMjtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgcGFkZGluZy1ib3R0b206ICRzaXplLTEvMjtcbiAgICB9XG4gIH1cblxuICAuZXZlbnQtY2FyZF9fdGFnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE5KTtcbiAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIC5ldmVudC1jYXJkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyNik7XG4gICAgZm9udC13ZWlnaHQ6ICRibGFjay13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMDc3O1xuICAgIG1hcmdpbi1ib3R0b206ICRzaXplLTQ7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgbWluLWhlaWdodDogMy4zNWVtO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzMik7XG4gICAgICBsaW5lLWhlaWdodDogMS4wNjI1O1xuICAgIH1cbiAgfVxuXG4gIC5ldmVudC1jYXJkX19kZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDMxMCk7XG4gICAgZHQge1xuICAgICAgZmxleC1iYXNpczogMzBweDtcbiAgICAgIGZsZXgtYmFzaXM6ICRzaXplLTM7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRzaXplLTE7XG4gICAgICBwYWRkaW5nLXRvcDogM3B4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICBkZCB7XG4gICAgICBmbGV4LWJhc2lzOiA4MCU7XG4gICAgfVxuICAgIGRkICsgZHQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gICAgZHQsIGRkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRzaXplLTE7XG4gICAgfVxuICB9XG4gIC5ldmVudC1jYXJkX19jdGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZm9udC13ZWlnaHQ6ICRibGFjay13ZWlnaHQ7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6ICRzaXplLTMgJHNpemUtNTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBzcGFuLFxuICAgIHN2ZyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xuICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHllbGxvdztcbiAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIGNvbnRlbnQ6IFwiXFwwYTBcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDElKTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIHBhZGRpbmc6ICRzaXplLTMgJHNpemUtNjtcbiAgICB9XG4gIH1cblxuXG5cblxuICAvLyBsYXlvdXRcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC5jb2x1bW4gLmV2ZW50LWNhcmQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC8vIGxheW91dCBoZWxwZXJcbiAgLmV2ZW50LWNhcmQtcm93IHtcbiAgICAuY29sdW1uIHtcbiAgICAgICY6bnRoLW9mLXR5cGUoMSkge1xuICAgICAgICAuZXZlbnQtY2FyZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlc3QtZ3JleTtcbiAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyAuZXZlbnQtY2FyZCBpcyBhbHJlYWR5IHdoaXRlXG4gICAgICAvLyAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgIC8vICAgLmV2ZW50LWNhcmQge1xuICAgICAgLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuICAgICAgJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAgIC5ldmVudC1jYXJkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuICAgICAgICB9XG4gICAgICAgIC5ldmVudC1jYXJkX19jdGEge1xuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrZXN0LWdyZXk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIgLmV2ZW50LWNhcmRfX2N0YSB7XG4gICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gVFlQRSBTQ0FMRVxuLy8gRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvdHlwb2dyYXBoeS9zY2FsZS9cblxuLy8gQmFzZTpcbi8vICAgZiA9IGZvbnQtc2l6ZVxuXG4vLyBNb2RpZmllcnNcbi8vICAgMSA9IDFzdCBzdGVwIGluIHNpemUgc2NhbGVcbi8vICAgMiA9IDJuZCBzdGVwIGluIHNpemUgc2NhbGVcbi8vICAgMyA9IDNyZCBzdGVwIGluIHNpemUgc2NhbGVcbi8vICAgNCA9IDR0aCBzdGVwIGluIHNpemUgc2NhbGVcbi8vICAgNSA9IDV0aCBzdGVwIGluIHNpemUgc2NhbGVcbi8vICAgNiA9IDZ0aCBzdGVwIGluIHNpemUgc2NhbGVcblxuXG4kdHlwZS1zY2FsZTogKFxuICBzbWFsbDogKFxuICAgICdmLWhlYWRsaW5lJzogKFxuICAgICAgJ2ZvbnQtc2l6ZSc6IDUwLFxuICAgICAgJ2ZvbnQtd2VpZ2h0JzogOTAwLFxuICAgICAgJ2xpbmUtaGVpZ2h0JzogLjk1LFxuICAgICAgJ3RleHQtYWxpZ24nOiBjZW50ZXJcbiAgICApLFxuICAgICdmMSc6ICgnZm9udC1zaXplJzogMzYpLFxuICAgICdmMic6IChcbiAgICAgICdmb250LXNpemUnOiAyNixcbiAgICAgICdmb250LXdlaWdodCc6IDkwMCxcbiAgICAgICdsaW5lLWhlaWdodCc6IDEuMDc3XG4gICAgKSxcbiAgICAnZjMnOiAoXG4gICAgICAnZm9udC1zaXplJzogMjYsXG4gICAgICAnZm9udC13ZWlnaHQnOiA5MDAsXG4gICAgICAnbGluZS1oZWlnaHQnOiAxLjA3N1xuICAgICksXG4gICAgJ2Y0JzogKFxuICAgICAgJ2ZvbnQtc2l6ZSc6IDE4LFxuICAgICAgJ2ZvbnQtd2VpZ2h0JzogOTAwXG4gICAgKSxcbiAgICAnZjUnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgICAnZjYnOiAoJ2ZvbnQtc2l6ZSc6IDE0KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2YtaGVhZGxpbmUnOiAoXG4gICAgICAnZm9udC1zaXplJzogNjRcbiAgICApLFxuICAgICdmMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdmMic6IChcbiAgICAgICdmb250LXNpemUnOiAyNyxcbiAgICAgICdsaW5lLWhlaWdodCc6IDEuMTFcbiAgICApLFxuICAgICdmMyc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdmNCc6ICgnZm9udC1zaXplJzogMjApLFxuICApLFxuICBsYXJnZTogKFxuICAgICdmLWhlYWRsaW5lJzogKFxuICAgICAgJ2ZvbnQtc2l6ZSc6IDc3LFxuICAgICAgJ3RleHQtYWxpZ24nOiBsZWZ0XG4gICAgKSxcbiAgKVxuKTtcblxuQG1peGluIGhvbmV5Y29tYi1zdWJoZWFkbGluZSB7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoNDgpO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuQG1peGluIGhvbmV5Y29tYi1mMiB7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjYpO1xuICBmb250LXdlaWdodDogJGJsYWNrLXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IDEuMDc3O1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjcpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjExO1xuICB9XG59XG5cbkBtaXhpbiBob25leWNvbWItZjMge1xuICBmb250LXNpemU6IHJlbS1jYWxjKDI2KTtcbiAgZm9udC13ZWlnaHQ6ICRibGFjay13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjA3NztcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbiAgICBsaW5lLWhlaWdodDogMS4xMTtcbiAgfVxufVxuXG5AbWl4aW4gaG9uZXljb21iLWY0IHtcbiAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gIH1cbn1cblxuQG1peGluIGhvbmV5Y29tYi1mNSB7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICB9XG59XG5cbkBtaXhpbiBob25leWNvbWItZjYge1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgfVxufVxuXG5cbkBtaXhpbiBob25leWNvbWItdHlwZS1zY2FsZSB7XG5cbiAgLmYtc3ViaGVhZGxpbmUge1xuICAgIEBpbmNsdWRlIGhvbmV5Y29tYi1zdWJoZWFkbGluZTtcbiAgfVxuXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkdHlwZS1zY2FsZSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAuI3skaGVhZGVyfSB7XG5cbiAgICAgICAgICAvLyBzZXQgZm9udC1zaXplXG4gICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gc2V0IGZvbnQtd2VpZ2h0XG4gICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtd2VpZ2h0KSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbWFwLXNhZmUtZ2V0KCRoZWFkZXItZGVmcywgZm9udC13ZWlnaHQpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmdykge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG1hcC1zYWZlLWdldCgkaGVhZGVyLWRlZnMsIGZ3KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gc2V0IGxpbmUtaGVpZ2h0XG4gICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxoKSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gbWFyZ2luLXRvcFxuICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtdCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG10KSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIG1hcmdpbi1ib3R0b21cbiAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBzZXQgdGV4dC1hbGlnblxuICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCB0ZXh0LWFsaWduKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBtYXAtc2FmZS1nZXQoJGhlYWRlci1kZWZzLCB0ZXh0LWFsaWduKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgdGEpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IG1hcC1zYWZlLWdldCgkaGVhZGVyLWRlZnMsIHRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBob25leWNvbWItZXhwbG9yZS1ibG9jayB7XG4gIC5leHBsb3JlLWJsb2NrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgZm9udC13ZWlnaHQ6ICRyZWd1bGFyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLjVweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgbWFyZ2luOiAkc2l6ZS0xIDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgICBzcGFuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTkpO1xuICAgICAgZm9udC13ZWlnaHQ6ICRibGFjay13ZWlnaHQ7XG4gICAgICBwYWRkaW5nOiAkc2l6ZS0xLzIgJHNpemUtMjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHllbGxvdztcbiAgICAgICAgY29udGVudDogXCJcXDBhMFwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMC42NiwgLTAuMzksIDAuNDEsIDEuMzUpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCA1MCU7XG4gICAgICB9XG4gICAgfVxuICAgIHN2ZyxcbiAgICBpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkc2l6ZS0xO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAkaG92ZXItdHJhbnNpdGlvbjogMC4zNXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xuICAgIHN2ZyB7IHRyYW5zaXRpb246IGZpbGwgJGhvdmVyLXRyYW5zaXRpb24sIG1hcmdpbi1sZWZ0ICRob3Zlci10cmFuc2l0aW9uOyB9XG4gICAgaSB7IHRyYW5zaXRpb246IGNvbG9yICRob3Zlci10cmFuc2l0aW9uLCBtYXJnaW4tbGVmdCAkaG92ZXItdHJhbnNpdGlvbjsgfVxuXG4gICAgcCB7XG4gICAgICBwYWRkaW5nOiAwICRzaXplLTI7XG4gICAgfVxuXG5cbiAgICAvLyBob3ZlclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgc3BhbiB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzdmcge1xuICAgICAgICBmaWxsOiAkeWVsbG93O1xuICAgICAgfVxuICAgICAgaSB7XG4gICAgICAgIGNvbG9yOiAkeWVsbG93O1xuICAgICAgfVxuICAgICAgc3ZnLFxuICAgICAgaSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkc2l6ZS0yO1xuICAgICAgfVxuICAgICAgaW1nIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5leHBsb3JlLWJsb2NrX19pbWcge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcbiAgICAgIHdpZHRoOiAxMjUlO1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGVmdDogLTEyLjUlO1xuICAgIH1cbiAgfVxuXG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIC5leHBsb3JlLWJsb2NrIHtcbiAgICAgIHA6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0oJHNpemUtMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiIsIkBtaXhpbiBob25leWNvbWItZm9vdGVyLWxpbmtzIHtcblxuICAkZm9vdGVyLWxpbmstYm9yZGVyLXN0eWxlOiAxcHggc29saWQgcmdiYSgkd2hpdGUsIC4yNSk7XG5cbiAgLmZvb3Rlci1saW5rcyB7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxuXG4gIC5mb290ZXItbGlua3NfX2Jsb2NrIHtcbiAgICBib3JkZXItYm90dG9tOiAkZm9vdGVyLWxpbmstYm9yZGVyLXN0eWxlO1xuICAgIHBhZGRpbmc6ICRzaXplLTQgJHNpemUtMztcbiAgICAvLyB3ZSBrZWVwIHRoZSBib3JkZXIgb24gZXZlcnkgY2hpbGQgYmVjYXVzZSBpdCdzIHZlcnkgZGlmZmljdWx0IHRvIGFjY291bnRcbiAgICAvLyBmb3IgdGhlIG51bWJlciBvZiBpdGVtcyBhbmQgd2hlbiB0aGUgYm9yZGVyIHNob3VsZCBiZSBoaWRkZW4gb3Igbm90LlxuICAgIC8vIDFweCBpcyBuZWdsaWdpYmxlIGhlcmUgY29tcGFyZWQgdG8gZmlndXJpbmcgb3V0IGEgc2VsZWN0b3IgZm9yIGVkZ2UgY2FzZXNcbiAgICAvLyAmOmxhc3QtY2hpbGQgeyBib3JkZXItYm90dG9tOiBub25lOyB9XG4gIH1cblxuICAuZm9vdGVyLWxpbmtzX190aXRsZSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICB9XG5cbiAgLmZvb3Rlci1saW5rc19fbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgbGkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgICBhIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgICAgb3BhY2l0eTogLjY1O1xuICAgICAgcGFkZGluZzogKCRzaXplLTEvMikgMDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycyBlYXNlLCB0ZXh0LWRlY29yYXRpb24tY29sb3IgLjJzIGVhc2U7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiA1MG1zO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgICAmLmZvb3Rlci1saW5rc19fbGlzdC0taWNvbnMge1xuICAgICAgJjpob3ZlciBhIHtcbiAgICAgICAgb3BhY2l0eTogLjY1O1xuICAgICAgfVxuICAgICAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgICAgYTpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblxuICAgIC8vIGlmIHRoZSBicm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCBncmlkIGp1c3Qga2VlcCB0aGUgbW9iaWxlIHN0YWNrIHZpZXcuXG4gICAgLy8gYmV0dGVyIHRoYW4gdHJ5aW5nIHRvIGNvbWUgdXAgd2l0aCBzb21lIHN0eWxlIHRoYXQgd29ya3Mgd2l0aCBmbG9hdHMgb3JcbiAgICAvLyBpbmxpbmUtYmxvY2tzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEBzdXBwb3J0cyhkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuZm9vdGVyLWxpbmtzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAvLyBubyBncmlkIHN0eWxlc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuZm9vdGVyLWxpbmtzIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICAgIC5mb290ZXItbGlua3NfX2Jsb2NrIHtcbiAgICAgIGJvcmRlci1yaWdodDogJGZvb3Rlci1saW5rLWJvcmRlci1zdHlsZTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWluLWhlaWdodDogNDUwcHg7XG4gICAgICB3aWR0aDogMzMuMyU7XG4gICAgfVxuXG4gICAgLy8gc3VwcG9ydHMgZ3JpZFxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBAc3VwcG9ydHMoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLmZvb3Rlci1saW5rcyB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyO1xuICAgICAgfVxuICAgICAgLmZvb3Rlci1saW5rc19fYmxvY2sge1xuICAgICAgICAvLyByZXNldCB0aGUgbm8tZ3JpZCBzdHlsZXNcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAmOm50aC1jaGlsZCg0bikge1xuICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCJAbWl4aW4gaG9uZXljb21iLWhlYWRlciB7XG5cbiAgLmhlYWRlcl9fbmF2X19jb250YWluZXIsXG4gIC5oZWFkZXItZ2xvYmFsLXNlYXJjaF9fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG5cbiAgLmhlYWRlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgLmhlYWRlcl9fYnJhbmRpbmcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc2l6ZS0zO1xuICAgIC8vIHdpZHRoOiBhdXRvO1xuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgLy8gbWFyZ2luLXRvcDogJHNpemUtMS8yO1xuICAgIH1cbiAgICBzdmcsIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgfVxuICAgIGEge1xuICAgICAgLy8gY29sb3I6ICRuYXZ5O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gbWVkaXVtXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gIC8vICAgLmhlYWRlcl9fdG9nZ2xlcyB7XG4gIC8vICAgICAvLyBidXR0b24gKyBidXR0b24ge1xuICAvLyAgICAgLy8gICBtYXJnaW4tbGVmdDogJHNpemUtMjtcbiAgLy8gICAgIC8vIH1cbiAgLy8gICB9XG4gIC8vIH1cblxuICAvLyBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gIC8vICAgLy8gLmhlYWRlcl9fdG9nZ2xlcyB7XG4gIC8vICAgLy8gICBkaXNwbGF5OiBub25lO1xuICAvLyAgIC8vIH1cbiAgLy8gICAvLyAuaGVhZGVyX19uYXYge1xuICAvLyAgIC8vICAgZmxleDogMSAxIDgwJTtcbiAgLy8gICAvLyAgIHBhZGRpbmc6IDAgMCAwICRzaXplLTU7XG4gIC8vICAgLy8gfVxuICAvLyAgIC8vIC5oZWFkZXJfX25hdl9fY29udGFpbmVyIHtcbiAgLy8gICAvLyAgIGRpc3BsYXk6IGZsZXg7XG4gIC8vICAgLy8gICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgLy8gICAvLyB9XG4gIC8vIH1cbn1cbiIsIkBtaXhpbiBob25leWNvbWItaGVhZGVyLWhlcm8taW1hZ2Uge1xuXG4gIC5oZWFkZXItaGVyby1pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHllbGxvdztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgLmhlYWRlci1oZXJvLWltYWdlX19waWN0dXJlIHtcblxuICB9XG4gIC5oZWFkZXItaGVyby1pbWFnZV9fY29udGVudCB7XG4gICAgcGFkZGluZzogKCRzaXplLTIrJHNpemUtMSkgJHNpemUtMiAkc2l6ZS0xO1xuICAgIHBhZGRpbmc6ICRzaXplLTMgJHNpemUtMiAkc2l6ZS0xO1xuICB9XG4gIC5oZWFkZXItaGVyby1pbWFnZV9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNTQpO1xuICAgIGZvbnQtd2VpZ2h0OiAkYmxhY2std2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuaGVhZGVyLWhlcm8taW1hZ2VfX2xpbmsge1xuICAgIEBpbmNsdWRlIGxpbmstc3R5bGUtMjtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAuaGVhZGVyLWhlcm8taW1hZ2VfX2NvbnRlbnQge1xuICAgICAgYm90dG9tOiAxMCU7XG4gICAgICBsZWZ0OiA1JTtcbiAgICAgIG1heC13aWR0aDogODAwcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cbiAgICAuaGVhZGVyLWhlcm8taW1hZ2VfX3RpdGxlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHllbGxvdywgLjcpO1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg4MCk7XG4gICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogLjE1ZW0gMDtcbiAgICAgIEBzdXBwb3J0cyhib3gtZGVjb3JhdGlvbi1icmVhazogY2xvbmUpIHtcbiAgICAgICAgYm94LXNoYWRvdzogKC0kc2l6ZS0yKSAwIDAgcmdiYSgyNTUsIDIwMCwgMTAsIDAuNyksICRzaXplLTIgMCAwIHJnYmEoMjU1LCAyMDAsIDEwLCAwLjcpO1xuICAgICAgICBib3gtZGVjb3JhdGlvbi1icmVhazogY2xvbmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkc2l6ZS0yO1xuICAgICAgfVxuICAgICAgQHN1cHBvcnRzKC13ZWJraXQtYm94LWRlY29yYXRpb24tYnJlYWs6IGNsb25lKSB7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogKC0kc2l6ZS0yKSAwIDAgcmdiYSgyNTUsIDIwMCwgMTAsIDAuNyksICRzaXplLTIgMCAwIHJnYmEoMjU1LCAyMDAsIDEwLCAwLjcpO1xuICAgICAgICAtd2Via2l0LWJveC1kZWNvcmF0aW9uLWJyZWFrOiBjbG9uZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaXplLTI7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLmhlYWRlci1oZXJvLWltYWdlX19saW5rIHtcbiAgICAgIG1hcmdpbi10b3A6ICRzaXplLTM7XG4gICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgLmhlYWRlci1oZXJvLWltYWdlX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDk2KTtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBob25leWNvbWItaGVyby1oZWFkZXIge1xuICAuaGVyby1oZWFkZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuaGVyby1oZWFkZXJfX3RpdGxlIHtcbiAgICBmb250LXdlaWdodDogJGJsYWNrLXdlaWdodDtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDUwKTtcbiAgICBsZWZ0OiAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDFlbTtcbiAgICBsaW5lLWhlaWdodDogLjk1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICBwYWRkaW5nOiAkc2l6ZS0zICRzaXplLTE7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoJGJsYWNrLCAwLjUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDU7XG4gIH1cblxuICAuaGVyby1oZWFkZXJfX21lZGlhIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgkYmxhY2ssIDAuNjUpIDAlLCByZ2JhKCRibGFjaywgMCkgMTAwJSk7XG4gICAgICBib3R0b206IDA7XG4gICAgICBjb250ZW50OiBcIlxcMGEwXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogNTAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gICAgdmlkZW8sIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IC0yNSU7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogMTUwJTtcbiAgICB9XG4gICAgYnV0dG9uIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIG9wYWNpdHk6IC42NTtcbiAgICAgIHBhZGRpbmc6ICRzaXplLTEgJHNpemUtMiAkc2l6ZS0xO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlO1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmhlcm8taGVhZGVyLS12aWRlbyAmOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImh0dHA6Ly93d3cud2Rldi5yb2NoZXN0ZXIuZWR1L2JsdWUtcGFnZXMvYXNzZXRzL2ltYWdlcy9kb3QucG5nXCIpO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgICAgIGNvbnRlbnQ6IFwiXFwwYTBcIjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMTAwdnc7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAuaGVyby1oZWFkZXJfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNjQpO1xuICAgIH1cbiAgICAuaGVyby1oZWFkZXJfX21lZGlhIHtcbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIGJvdHRvbTogJHNpemUtMjtcbiAgICAgICAgcmlnaHQ6ICRzaXplLTI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIC5oZXJvLWhlYWRlciB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgICAuaGVyby1oZWFkZXJfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogNi4ydnc7XG4gICAgICBwYWRkaW5nOiAkc2l6ZS0zO1xuICAgICAgd2lkdGg6IDY3JTtcbiAgICB9XG4gICAgLmhlcm8taGVhZGVyX19tZWRpYSB7XG4gICAgICB2aWRlbywgaW1nIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuICAgIC5oZXJvLWhlYWRlcl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiA0LjN2dztcbiAgICAgIHBhZGRpbmctbGVmdDogMTB2dztcbiAgICAgIHdpZHRoOiA1NSU7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gaG9uZXljb21iLWltYWdlLWNvbnRlbnQtcm93IHtcbiAgLmltYWdlLWNvbnRlbnQtcm93IHtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMTgwcHg7XG4gICAgcGFkZGluZzogJHNpemUtMyAwO1xuICB9XG5cbiAgLmltYWdlLWNvbnRlbnQtcm93X19pbWFnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNpemUtMztcbiAgfVxuXG4gIC5pbWFnZS1jb250ZW50LXJvd19fY29udGVudCB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBtYXgtd2lkdGg6IDMyZW07XG4gICAgYSB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkcmVndWxhcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogJGJsdWU7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAuMDc1ZW07XG4gICAgfVxuICAgIGxpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJHNpemUtMTtcbiAgICB9XG4gIH1cblxuICAvLyBNYWludGFpbnMgYXNwZWN0IHJhdGlvIG9mIGlmcmFtZSBjb250ZW50LlxuICAuZmllbGQtbWVkaWEtLWZpZWxkLW1lZGlhLW9lbWJlZC12aWRlb3tcbiAgICAuZmllbGQtaXRlbXtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gICAgfVxuICAgIGlmcmFtZXtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gICAgJi52aWRlby1kZWZhdWx0e1xuICAgICAgbWF4LXdpZHRoOjUwMHB4O1xuICAgIH1cbiAgICAmLnZpZGVvLWZ1bGx7XG4gICAgICBtYXgtd2lkdGg6MTAwJTtcbiAgICB9XG4gIH1cblxuICAuYWxpZ24tY2VudGVye1xuICAgIC5maWVsZC1tZWRpYS0tZmllbGQtbWVkaWEtb2VtYmVkLXZpZGVve1xuICAgICAgbWFyZ2luOjAgYXV0bztcbiAgICB9XG4gIH1cblxuICAucGFyYWdyYXBoLS10eXBlLS1tdWx0aS1jb2x1bW4tcm93e1xuICAgIC5maWVsZC1tZWRpYS0tZmllbGQtbWVkaWEtb2VtYmVkLXZpZGVve1xuICAgICAgJi52aWRlby1kZWZhdWx0e1xuICAgICAgICBtYXgtd2lkdGg6MTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTZXRzIHN0eWxlcyBiYWNrIHRvIG5vcm1hbCB3aGVuIGVkaXRpbmcgdmlhIERydXBhbC5cbiAgLmNrZV9lZGl0YWJsZXtcbiAgICAuZmllbGQtbWVkaWEtLWZpZWxkLW1lZGlhLW9lbWJlZC12aWRlb3tcbiAgICAgIC5maWVsZC1pdGVte1xuICAgICAgICBwb3NpdGlvbjpzdGF0aWM7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOjA7XG4gICAgICB9XG4gICAgICBpZnJhbWV7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIC5pbWFnZS1jb250ZW50LXJvdyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgbWFyZ2luOiAwIGF1dG8gJHNpemUtNDtcbiAgICB9XG4gICAgLmltYWdlLWNvbnRlbnQtcm93X19pbWFnZSB7XG4gICAgICB3aWR0aDozNSU7XG4gICAgICBmbGV4LWJhc2lzOjM1JTtcbiAgICB9XG4gICAgLmltYWdlLWNvbnRlbnQtcm93X19jb250ZW50IHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBtYXJnaW4tbGVmdDo0MHB4O1xuICAgICAgd2lkdGg6NjUlO1xuICAgICAgZmxleC1iYXNpczo2NSU7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gaG9uZXljb21iLWludHJvLWxlYWQge1xuICAuaW50cm8tbGVhZCB7XG4gICAgY29sb3I6ICRibGFjaztcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcbiAgICBtYXgtd2lkdGg6IDEwNzVweDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcGFkZGluZzogMCAkc2l6ZS0zICRzaXplLTE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB6LWluZGV4OiAxO1xuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogJGJsYWNrLXdlaWdodDtcbiAgICB9XG4gIH1cbiAgLmludHJvLWxlYWRfX3RpdGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuICAgIGZvbnQtZmFtaWx5OiAkdXRvcGlhO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzIpO1xuICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW46IDAgKC0kc2l6ZS0zKSAkc2l6ZS00O1xuICAgIHBhZGRpbmc6IDE1cHggMjVweDtcbiAgfVxuXG4gIC5pbnRyby1sZWFkX19kYXRhLXBvaW50cyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46ICRzaXplLTUgMCAkc2l6ZS0zO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAuaW50cm8tbGVhZCB7XG4gICAgICBwYWRkaW5nOiAwICRzaXplLTYgJHNpemUtMTtcbiAgICB9XG4gICAgLmludHJvLWxlYWRfX3RpdGxlIHtcbiAgICAgIG1hcmdpbjogJHNpemUtMSAoLSRzaXplLTUpICRzaXplLTQ7XG4gICAgfVxuXG4gICAgLmludHJvLWxlYWRfX2RhdGEtcG9pbnRzIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAuaW50cm8tbGVhZCB7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDM2KTtcbiAgICB9XG4gICAgLmludHJvLWxlYWRfX3RpdGxlIHtcbiAgICAgIG1hcmdpbjogMCAwICRzaXplLTM7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgIC5pbnRyby1sZWFkX19kYXRhLXBvaW50cyB7XG4gICAgICBtYXJnaW46ICRzaXplLTYgMCAkc2l6ZS0zICRzaXplLTM7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICAuaW50cm8tbGVhZCB7XG4gICAgICBwYWRkaW5nOiAkc2l6ZS0xIDA7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlKSB7XG4gICAgLmludHJvLWxlYWRfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNDQpO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMTg3NTtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBob25leWNvbWItZm9vdGVyLWltYWdlLXN0cmlwZSB7XG4gIC5mb290ZXItaW1hZ2Utc3RyaXBlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xuICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuZm9vdGVyLWltYWdlLXN0cmlwZV9faW1hZ2UtbGlua3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYSB7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKCR3aGl0ZSwgMC42KTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAzMy4zJTtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmZvb3Rlci1pbWFnZS1zdHJpcGVfX2Jsb2NrIHtcbiAgICBwYWRkaW5nOiAkc2l6ZS01ICRzaXplLTM7XG4gIH1cblxuICAuZm9vdGVyLWltYWdlLXN0cmlwZV9fc29jaWFsLWxpbmtzIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBzdmcge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gICAgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAwICRzaXplLTEvMjtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxuICAgIGEge1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgJHdoaXRlO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgaGVpZ2h0OiAkc2l6ZS00KyRzaXplLTE7XG4gICAgICBwYWRkaW5nOiAkc2l6ZS0xO1xuICAgICAgd2lkdGg6ICRzaXplLTQrJHNpemUtMTtcbiAgICAgIEBzdXBwb3J0cyhkaXNwbGF5OiBpbmxpbmUtZmxleCkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIC8vIE1lZGl1bVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgLmZvb3Rlci1pbWFnZS1zdHJpcGVfX2ltYWdlLWxpbmtzLFxuICAgIC5mb290ZXItaW1hZ2Utc3RyaXBlX19ibG9jayB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgd2lkdGg6IDMyJTtcbiAgICB9XG4gICAgLmZvb3Rlci1pbWFnZS1zdHJpcGVfX2ltYWdlLWxpbmtzIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKCR3aGl0ZSwgMC42KTtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgkd2hpdGUsIDAuNik7XG4gICAgICB9XG4gICAgfVxuICAgIC5mb290ZXItaW1hZ2Utc3RyaXBlX19ibG9jayB7XG4gICAgICBwYWRkaW5nOiAkc2l6ZS0xICRzaXplLTM7XG4gICAgfVxuXG4gICAgQHN1cHBvcnRzKGRpc3BsYXk6IGZsZXgpIHtcbiAgICAgIC5mb290ZXItaW1hZ2Utc3RyaXBlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIC5mb290ZXItaW1hZ2Utc3RyaXBlX19pbWFnZS1saW5rcyxcbiAgICAgIC5mb290ZXItaW1hZ2Utc3RyaXBlX19ibG9jayB7XG4gICAgICAgIGZsZXg6IDMzJTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgICAuZm9vdGVyLWltYWdlLXN0cmlwZV9faW1hZ2UtbGlua3Mge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGhvbmV5Y29tYi1mb290ZXItYm90dG9tIHtcblxuICAlbGlua3MtcmVzZXQge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cbiAgfVxuXG4gIC8vIGNvbnRhaW5lclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC5mb290ZXItYm90dG9tIHtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBhZGRpbmc6ICRzaXplLTUgJHNpemUtMyAkc2l6ZS0xO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG5cbiAgLy8gYmx1ZSBpY29uIGxpbmtzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLmZvb3Rlci1ib3R0b21fX2xpbmtzLWxpc3Qge1xuICAgIEBleHRlbmQgJWxpbmtzLXJlc2V0O1xuICAgIG1hcmdpbjogJHNpemUtNCAwICRzaXplLTU7XG4gIH1cblxuICAuZm9vdGVyLWJvdHRvbV9fbGluayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtLXdlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc2l6ZS0xO1xuICAgIHBhZGRpbmc6ICRzaXplLTIgJHNpemUtMiAkc2l6ZS0xO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBzdHJvbmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIH1cbiAgICAuaWNvbi1mdyB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2UtaW47XG4gICAgfVxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIC5pY29uLWZ3IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICAgICAgfVxuICAgIH1cbiAgICBAc3VwcG9ydHMoZGlzcGxheTogaW5saW5lLWZsZXgpIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB9XG4gIH1cblxuXG4gIC8vIHNlYXJjaCBmb3JtXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLmZvb3Rlci1ib3R0b21fX3NlYXJjaC1mb3JtIHtcbiAgICBtYXJnaW46IDAgYXV0byAkc2l6ZS00O1xuICAgIG1heC13aWR0aDogJHNpemUtNyo0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5mb290ZXItYm90dG9tX19zZWFyY2gtaW5wdXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG4gIC5mb290ZXItYm90dG9tX19zZWFyY2gtc3VibWl0IHtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6ICRzaXplLTEgJHNpemUtMjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gIH1cblxuICAvLyBib3R0b20gbGlua3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAuZm9vdGVyLWJvdHRvbV9fYm90dG9tLWxpbmtzIHtcbiAgICBAZXh0ZW5kICVsaW5rcy1yZXNldDtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBtYXJnaW46IDAgYXV0byAkc2l6ZS02KyRzaXplLTM7XG4gICAgbGkge1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwifFwiO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCAkc2l6ZS0yO1xuICAgICAgfVxuICAgICAgJjpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gICAgYSB7XG4gICAgICBmb250LXdlaWdodDogJHJlZ3VsYXI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cblxuICAvLyBjb3B5cmlnaHRcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAuZm9vdGVyLWJvdHRvbV9fY29weXJpZ2h0IHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIEBzdXBwb3J0cyhkaXNwbGF5OiBncmlkKSB7XG4gICAgICAuZm9vdGVyLWJvdHRvbSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgICAgICBcInRvcC1sZWZ0IHRvcC1yaWdodFwiXG4gICAgICAgICAgXCJtaWRkbGUtbGVmdCBtaWRkbGUtcmlnaHRcIlxuICAgICAgICAgIFwiYm90dG9tIGJvdHRvbVwiO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgICAgLmZvb3Rlci1ib3R0b21fX2xpbmtzLWxpc3Qge1xuICAgICAgICBncmlkLWFyZWE6IG1pZGRsZS1sZWZ0O1xuICAgICAgICBtYXJnaW4tdG9wOiAkc2l6ZS0yO1xuICAgICAgICA+IGxpIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRzaXplLTI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5mb290ZXItYm90dG9tX19zZWFyY2gtZm9ybSB7XG4gICAgICAgIGdyaWQtYXJlYTogdG9wLXJpZ2h0O1xuICAgICAgICB3aWR0aDogNDEwcHg7XG4gICAgICB9XG4gICAgICAuZm9vdGVyLWJvdHRvbV9fYm90dG9tLWxpbmtzIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBtaWRkbGUtcmlnaHQ7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICAgIC5mb290ZXItYm90dG9tX19jb3B5cmlnaHQge1xuICAgICAgICBncmlkLWFyZWE6IGJvdHRvbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIENoYW5nZXNcbi8vIC1cblxuLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVudVxuLy8vL1xuXG4vLy8gTWFyZ2luIG9mIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIExlZnQtaGFuZCBtYXJnaW4gb2YgYSBuZXN0ZWQgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBwaWxsIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pdGVtcy1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBzaW1wbGUgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LXNpbXBsZS1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBzdGF0ZS4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYGFjdGl2ZWAgd2l0aCBgaXMtYWN0aXZlYC5cbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgYWN0aXZlYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IGNlbnRlcmVkLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgLm1lbnUtY2VudGVyZWQgPiAubWVudWAgd2l0aCBgLm1lbnUuYWxpZ24tY2VudGVyYC5cbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgbWVudS1jZW50ZXJlZGAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgdXNpbmcgYGljb24tKmAgY2xhc3NlcyB3aXRob3V0IGAuaWNvbnNgIGNsYXNzZXNcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCB0aGlzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE3KTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICBsaSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2xvYmFsLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgYSxcbiAgLmJ1dHRvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRtZW51LWl0ZW1zLXBhZGRpbmc7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4vLy8gRXhwYW5kcyB0aGUgaXRlbXMgb2YgYSBNZW51LCBzbyBlYWNoIGl0ZW0gaXMgdGhlIHNhbWUgd2lkdGguXG5AbWl4aW4gbWVudS1leHBhbmQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWxpZ24gbWVudSBpdGVtcy5cbkBtaXhpbiBtZW51LWFsaWduKCRhbGlnbm1lbnQpIHtcbiAgQGlmICRhbGlnbm1lbnQgPT0gbGVmdCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwge1xuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IGNlbnRlciB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGRpcmVjdGlvbiBvZiBhIE1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFtob3Jpem9udGFsXSAtIERpcmVjdGlvbiBvZiB0aGUgTWVudS4gQ2FuIGJlIGBob3Jpem9udGFsYCBvciBgdmVydGljYWxgLlxuQG1peGluIG1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBtZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2ltcGxlIE1lbnUsIHdoaWNoIGhhcyBubyBwYWRkaW5nIG9yIGhvdmVyIHN0YXRlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbJGdsb2JhbC1sZWZ0XSAtIERpcmVjdGlvbiBvZiB0aGUgbWVudS4gVGhpcyBlZmZlY3RzIHRoZSBzaWRlIG9mIHRoZSBgPGxpPmAgdGhhdCByZWNlaXZlcyB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIFskbWVudS1zaW1wbGUtbWFyZ2luXSAtIFRoZSBtYXJnaW4gdG8gYXBwbHkgdG8gZWFjaCBgPGxpPmAuXG5AbWl4aW4gbWVudS1zaW1wbGUoJGRpcjogJGdsb2JhbC1sZWZ0LCAkbWFyZ2luOiAkbWVudS1zaW1wbGUtbWFyZ2luKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICBsaSArIGxpIHtcbiAgICBtYXJnaW4tI3skZGlyfTogJG1hcmdpbjtcbiAgfVxuXG4gIGEge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG5lc3RlZCBNZW51LCBieSBhZGRpbmcgYG1hcmdpbi1sZWZ0YCB0byB0aGUgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkbWFyZ2luIFskbWVudS1uZXN0ZWQtbWFyZ2luXSAtIExlbmd0aCBvZiB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG5lc3RlZC1hbGlnbm1lbnQgW2xlZnRdIC0gQWxpZ25tZW50IG9mIHRoZSBuZXN0ZWQgY2xhc3NcbkBtaXhpbiBtZW51LW5lc3RlZChcbiAgJG1hcmdpbjogJG1lbnUtbmVzdGVkLW1hcmdpbixcbiAgJG5lc3RlZC1hbGlnbm1lbnQ6IGxlZnRcbikge1xuICBAaWYgJG5lc3RlZC1hbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkbWFyZ2luO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRtYXJnaW47XG4gIH1cblxufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGljb25zIGluIG1lbnVzLlxuQG1peGluIG1lbnUtaWNvbnMoKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGEge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGltZyxcbiAgICBpLFxuICAgIHN2ZyB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICArIHNwYW4ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBwb3NpdGlvbiBjbGFzc2VzIGZvciBpY29ucyB3aXRoaW4gYSBtZW51LlxuQG1peGluIG1lbnUtaWNvbi1wb3NpdGlvbigkcG9zaXRpb246IGxlZnQsICRzcGFjaW5nOiAkbWVudS1pY29uLXNwYWNpbmcpIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJHNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogJHNwYWNpbmcgYXV0byAwO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS10ZXh0IHtcbiAgcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG5cbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIG1lbnUtc3RhdGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgY29sb3I6ICRtZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xufVxuXG5AbWl4aW4gaG9uZXljb21iLW1lbnUge1xuICAubWVudSB7XG4gICAgQGluY2x1ZGUgbWVudS1iYXNlO1xuXG4gICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgLy8gLy8gRGVmYXVsdCBvcmllbnRhdGlvbjogaG9yaXpvbnRhbFxuICAgIC8vICYsICYuaG9yaXpvbnRhbCB7XG4gICAgLy8gICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAvLyB9XG5cbiAgICAvLyBWZXJ0aWNhbCBvcmllbnRhdGlvbiBtb2RpZmllclxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggbW9kaWZpZXIgZm9yIGhvcml6b250YWwgb3JpZW50YXRpb25cbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgIH1cblxuICAgIC8vIFNpbXBsZVxuICAgICYuc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xuICAgIH1cblxuICAgIC8vIEJyZWFrcG9pbnQgc3BlY2lmaWMgdmVyc2lvbnNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogZmFsc2UpIHtcbiAgICAgICYuI3skLXpmLXNpemV9LWhvcml6b250YWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXNpbXBsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmLm5lc3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcbiAgICB9XG5cbiAgICAvLyAvLyBJY29uIEJhc2UgU3R5bGVzXG4gICAgLy8gJi5pY29ucyB7XG4gICAgLy8gICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgIC8vIH1cblxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1pY29ucy1iYWNrLWNvbXBhdCB7XG4gICAgICAmLmljb24tdG9wLFxuICAgICAgJi5pY29uLXJpZ2h0LFxuICAgICAgJi5pY29uLWJvdHRvbSxcbiAgICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAvLyBJY29uIExlZnRcbiAgICAvLyAmLmljb24tbGVmdCB7XG4gICAgLy8gICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24obGVmdCk7XG4gICAgLy8gfVxuXG4gICAgLy8gLy8gSWNvbiBSaWdodFxuICAgIC8vICYuaWNvbi1yaWdodCB7XG4gICAgLy8gICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24ocmlnaHQpO1xuICAgIC8vIH1cblxuICAgIC8vIC8vIEljb24gVG9wXG4gICAgLy8gJi5pY29uLXRvcCB7XG4gICAgLy8gICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24odG9wKTtcbiAgICAvLyB9XG5cbiAgICAvLyAvLyBJY29uIEJvdHRvbVxuICAgIC8vICYuaWNvbi1ib3R0b20ge1xuICAgIC8vICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGJvdHRvbSk7XG4gICAgLy8gfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgfVxuXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LXN0YXRlLWJhY2stY29tcGF0IHtcbiAgICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gbGVmdFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLWxlZnR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihyaWdodCk7XG5cbiAgICAgIC5uZXN0ZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkbmVzdGVkLWFsaWdubWVudDogcmlnaHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGNlbnRlclxuICAgICYuYWxpZ24tY2VudGVyIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICB9XG5cbiAgICAubWVudS10ZXh0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtdGV4dDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQge1xuICAgIC5tZW51LWNlbnRlcmVkIHtcbiAgICAgID4gLm1lbnUge1xuICAgICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IEZPVUMgd2hlbiB1c2luZyB0aGUgUmVzcG9uc2l2ZSBNZW51IHBsdWdpblxuICAubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIEN1c3RvbVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBOYXYgaGlnaGxpZ2h0XG4gIC5tZW51Lm1lbnUtLXNpdGUge1xuICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICBhIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIGJvdHRvbTogOHB4O1xuICAgICAgICBjb250ZW50OiBcIlxcMGEwXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgICAgICAvLyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgY3ViaWMtYmV6aWVyKDAuNjYsIC0wLjM5LCAwLjQxLCAxLjM1KTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZS1vdXQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC51ci1oZXJlIHtcbiAgICAubWVudS5tZW51LS1zaXRlICYge1xuICAgICAgYTphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgLy8gQHN1cHBvcnRzKHdpZHRoOiBjYWxjKDEwMCUgLSA5cHgpKSB7XG4gICAgICAgIC8vICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE4cHgpO1xuICAgICAgICAvLyAgIGxlZnQ6IDlweDtcbiAgICAgICAgLy8gICAvLyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtMTAwJSAtIDE4cHgpKTtcbiAgICAgICAgLy8gfVxuICAgICAgfVxuICAgIH1cblxuICB9XG5cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgcGFkZGluZyBmb3IgYWxpZ25pbmcgdGhlIGFycm93IGNvcnJlY3RseS5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZzogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyb3Bkb3ducy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3Igc3ViLW1lbnUgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlciB3aWR0aCBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8gVXNlZCB0byBhZGp1c3QgdG9wIG1hcmdpbiBvZiBhIHN1Yi1tZW51IGlmIGEgYm9yZGVyIGlzIHVzZWQuXG4vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoOiBudGgoJGRyb3Bkb3dubWVudS1ib3JkZXIsIDEpO1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtLiBFeHBsaWNpdCBvdmVycmlkZSBmb3IgbWVudSBkZWZhdWx0c1xuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtLiBFeHBsaWNpdCBvdmVycmlkZSBmb3IgbWVudSBkZWZhdWx0c1xuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgPiBhOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMTRweDtcbiAgfVxuXG4gICYub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gIH1cblxuICAmLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgfVxufVxuXG5AbWl4aW4gZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICA+IGxpLm9wZW5zLWxlZnQgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkub3BlbnMtcmlnaHQgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nO1xuICAgICAgfVxuXG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICgkZHJvcGRvd25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgPiBsaSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1sZWZ0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1yaWdodCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICB9XG5cbiAgICAvLyBUb3AtbGV2ZWwgaXRlbVxuICAgID4gbGkgPiBhIHtcbiAgICAgIC8vIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLy8gVG9wLWxldmVsIGl0ZW0gYWN0aXZlIHN0YXRlXG4gICAgPiBsaS5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XG4gICAgfVxuXG4gICAgLm5vLWpzICYgdWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgICB3aWR0aDogMTAwcHg7XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGE6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJvcGRvd25tZW51LWFycm93LXNpemU7XG4gICAgfVxuXG4gICAgJi5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcblxuICAgICAgdG9wOiAxMDAlO1xuICAgICAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogMTtcblxuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAkZHJvcGRvd25tZW51LW1pbi13aWR0aDtcblxuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ7XG5cbiAgICAuZHJvcGRvd24gJiBhIHtcbiAgICAgIHBhZGRpbmc6ICRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKHR5cGUtb2YoJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpID09ICdudW1iZXInKSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gW1RPRE9dIEN1dCBiYWNrIHNwZWNpZmljaXR5XG4gICAgLy8mOm5vdCguanMtZHJvcGRvd24tbm9ob3ZlcikgPiAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQ6aG92ZXIgPiAmLCAvLyB3aHkgaXMgdGhpcyBsaW5lIG5lZWRlZD8gT3BlbmluZyBpcyBoYW5kbGVkIGJ5IEpTIGFuZCB0aGlzIGNhdXNlcyBzb21lIHVnbHkgZmxpY2tlcmluZyB3aGVuIHRoZSBzdWIgaXMgcmUtcG9zaXRpb25lZCBhdXRvbWF0aWNhbGx5Li4uXG4gICAgJi5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gaG9uZXljb21iLW5ld3MtYmxvY2sge1xuXG4gIC5uZXdzLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgZm9udC1zaXplOiAxLjE1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwICRzaXplLTIgMCAkc2l6ZS0xO1xuICAgIGgzIHtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIC4zcyBlYXNlO1xuICAgIH1cbiAgfVxuICAubmV3cy1ibG9ja19faW1hZ2Uge1xuICAgIG1hcmdpbjogMCAoLSRzaXplLTIpICRzaXplLTIgKC0kc2l6ZS0xKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGxlZnQ6IC0xMi41JTtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XG4gICAgICB3aWR0aDogMTI1JTtcbiAgICB9XG4gIH1cblxuXG4gIC8vIHN0YXRlXG4gIC5uZXdzLWJsb2NrOmhvdmVyIHtcbiAgICBpbWcge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xuICAgIH1cbiAgICBoMyB7XG4gICAgICBjb2xvcjogJHllbGxvdztcbiAgICB9XG4gIH1cblxufVxuIiwiQG1peGluIGhvbmV5Y29tYi1uZXdzLWNhcmQge1xuICAubmV3cy1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgICBmb250LXdlaWdodDogJHJlZ3VsYXI7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNpemUtMztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgIGltZyB7XG4gICAgICAgIG9wYWNpdHk6IC42O1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7XG4gICAgICB9XG4gICAgICAubmV3cy1jYXJkX190aXRsZSB7XG4gICAgICAgIGNvbG9yOiAkeWVsbG93O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uZXdzLWNhcmRfX2ltYWdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoJGJsYWNrLCAkbmF2eSwgOTAlKTtcbiAgICBoZWlnaHQ6IDMyNXB4O1xuICAgIG1pbi1oZWlnaHQ6IDMyNXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLy8gcGFkZGluZy1ib3R0b206IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBib3R0b206IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS42NSk7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTAwJTtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBjdWJpYy1iZXppZXIoMC44LCAtMC4wOCwgMC4zNiwgMS4zNSksXG4gICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC44LCAtMC4wOCwgMC4zNiwgMS4zNSk7XG4gICAgfVxuICB9XG5cbiAgLm5ld3MtY2FyZF9fdGFnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZDogJHllbGxvdztcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICBmb250LXdlaWdodDogJGxpZ2h0O1xuICAgIHBhZGRpbmc6ICRzaXplLTEvMiAkc2l6ZS0xO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAubmV3cy1jYXJkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMSk7XG4gICAgZm9udC13ZWlnaHQ6ICRibGFjay13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgbWFyZ2luOiAkc2l6ZS0zIDA7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC40cyBjdWJpYy1iZXppZXIoMC44LCAtMC4wOCwgMC4zNiwgMS4zNSk7XG4gICAgd2lsbC1jaGFuZ2U6IGNvbG9yO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjMpO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjE3NTtcbiAgICB9XG4gIH1cblxuICAubmV3cy1jYXJkX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiAkc2l6ZS0zICRzaXplLTUgJHNpemUtMSAkc2l6ZS00O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHNpemUtMjtcbiAgICB9XG4gIH1cblxuXG4gIC8vIGxheW91dFxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC5jb2x1bW4gLm5ld3MtY2FyZCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbn1cblxuIiwiQG1peGluIGhvbmV5Y29tYi1wZXJzb24tYmxvY2sge1xuICAucGVyc29uLWJsb2NrIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGgzLFxuICAgIHAge1xuICAgICAgcGFkZGluZzogMCAkc2l6ZS0xO1xuICAgIH1cbiAgICBoMyB7XG4gICAgICBtYXJnaW4tdG9wOiAkc2l6ZS0yO1xuICAgIH1cbiAgICBwIHtcbiAgICAgIGNvbG9yOiAkZGFya2VyLWdyZXk7XG4gICAgICBmb250LXNpemU6IC45cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gaG9uZXljb21iLXNlYXJjaC1tb2RhbCB7XG5cbiAgLy8gU2NyaW0gYW5kIGZvcm1cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLnNlYXJjaC1tb2RhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmxhY2ssIDAuOTUpO1xuICAgIGJvdHRvbTogMDtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbGVmdDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBhZGRpbmc6ICRzaXplLTcgJHNpemUtMyAkc2l6ZS0zO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMzVzIC4wMXMsIHZpc2liaWxpdHkgLjM1cyAuMDFzO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB6LWluZGV4OiA3NTtcbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG4gIH1cblxuICAuc2VhcmNoLW1vZGFsX19jb250ZW50IHtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogc2Nyb2xsO1xuICAgIHBhZGRpbmc6ICRzaXplLTE7XG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICBoMyB7XG4gICAgICBmb250LXdlaWdodDogJGJsYWNrLXdlaWdodDtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRzaXplLTE7XG4gICAgfVxuICAgIHVsIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgICBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgICBtYXJnaW46IDAgJHNpemUtMSAoJHNpemUtMSAvIDIpIDA7XG4gICAgICBvcGFjaXR5OiAuNzU7XG4gICAgICBwYWRkaW5nOiAkc2l6ZS0xICRzaXplLTEgJHNpemUtMSAwO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlIDUwbXM7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAuc2VhcmNoLW1vZGFsX19mb3JtIHtcbiAgICBjb2xvcjogJGJsYWNrO1xuICAgIG1hcmdpbi1ib3R0b206ICRzaXplLTU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIFt0eXBlPVwidGV4dFwiXSxcbiAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICBmb250LXdlaWdodDogJGJvbGQ7XG4gICAgfVxuICAgIFt0eXBlPVwidGV4dFwiXSB7XG4gICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nOiAkc2l6ZS0yO1xuICAgIH1cbiAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IC44NXJlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAuM3B4O1xuICAgICAgcGFkZGluZzogJHNpemUtMjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHNpemUtMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAuc2VhcmNoLW1vZGFsX19mb3JtIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRzaXplLTc7XG4gICAgICBbdHlwZT1cInRleHRcIl0ge1xuICAgICAgICBmb250LXNpemU6IDEuODVyZW07XG4gICAgICAgIHBhZGRpbmc6ICRzaXplLTEgJHNpemUtMjtcbiAgICAgIH1cbiAgICAgIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAkc2l6ZS0yICRzaXplLTM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGF5b3V0XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gbmVlZHMgdG8gYmUgYXBwbGllZCB0byB0aGUgYm9keSBvciBzb21lIG90aGVyIHJvb3QgLmNvbnRhaW5lclxuICAvLyB0aGUgSlMgY3VycmVudGx5IGFwcGxpZXMgaXQgZXhwbGljaXRseSB0byB0aGUgPGJvZHk+XG4gIC5zZWFyY2gtbW9kYWwtaXMtYWN0aXZlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC5sYXlvdXQtbWFpbiB7XG4gICAgICBmaWx0ZXI6IGJsdXIoNHB4KTtcbiAgICB9XG4gIH1cblxufVxuIiwiQG1peGluIGhvbmV5Y29tYi1zZWFyY2gtbW9kYWwtdG9nZ2xlIHtcblxuICAvLyBTZWFyY2ggdG9nZ2xlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLnNlYXJjaC1tb2RhbC10b2dnbGUge1xuICAgIC8vIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAkYnRuLXNpemU6ICRzaXplLTUrJHNpemUtMTtcbiAgICBtaW4taGVpZ2h0OiAkYnRuLXNpemU7XG4gICAgbWluLXdpZHRoOiAkYnRuLXNpemU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgLy8gYWN0aXZlIGNsYXNzXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAvLyBjaGlsZCBzcGFuIGVsZW1lbnRzIHRoYXQgaG9sZCB0aGUgaWNvbiBhbmQgdGV4dFxuICAuc2VhcmNoLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIHBhZGRpbmc6ICRzaXplLTEvNCAkc2l6ZS0xO1xuICB9XG5cbiAgLy8gaWNvbiBsYXlvdXQgY2xhc3NcbiAgLnNlYXJjaC10b2dnbGVfX2ljb24ge1xuICAgICRidG4tc2l6ZTogJHNpemUtNCskc2l6ZS0xOyAgLy8gNDBcblxuICAgIGNvbG9yOiAkYmx1ZTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkYmx1ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBoZWlnaHQ6ICRidG4tc2l6ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6ICRidG4tc2l6ZTtcbiAgfVxuXG4gIC8vIHRoZSBzZWFyY2ggaWNvbiBoYXMgYSBob3ZlciBlZmZlY3RcbiAgLnNlYXJjaC10b2dnbGUtLXNlYXJjaCAuc2VhcmNoLXRvZ2dsZV9faWNvbiB7XG4gICAgJjphZnRlcntcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgY29udGVudDogXCJcXDBhMFwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMzVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyB0aGUgY2xvc2UgYnV0dG9uIGhhcyBhbiBpbnZlcnRlZCBjb2xvciBzY2hlbWVcbiAgLnNlYXJjaC10b2dnbGUtLWNsb3NlIC5zZWFyY2gtdG9nZ2xlX19pY29uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG5cbn1cbiIsIkBtaXhpbiBob25leWNvbWItc3ViaGVhZGxpbmUtbGVhZC1oZWFkZXIge1xuICAuc3ViaGVhZGxpbmUtbGVhZC1oZWFkZXIge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6ICRzaXplLTUgMDtcbiAgICAvLyBtYXJnaW46IDAgYXV0byAkc2l6ZS0yO1xuICAgIC8vIHBhZGRpbmc6ICRzaXplLTUgMCAkc2l6ZS00O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIC8vIC5sZWFkIHtcbiAgICAvLyAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgLy8gfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIC5zdWJoZWFkbGluZS1sZWFkLWhlYWRlciB7XG4gICAgICAvLyBtYXJnaW4tYm90dG9tOiAkc2l6ZS00O1xuICAgICAgbWF4LXdpZHRoOiAxMDUwcHg7XG4gICAgICB3aWR0aDogODMlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAvLyBNYXggdmFsdWUgaXMgMC4ycHggdW5kZXIgdGhlIG5leHQgYnJlYWtwb2ludCAoMC4wMiAvIDE2ID0gMC4wMDEyNSkuXG4gIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAuMDAxMjU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAuMDAxMjU7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gaG9uZXljb21iLXZpc2liaWxpdHkge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gaG9uZXljb21iLXd5c2l3eWcge1xuICAuaGVhZGxpbmUtMSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygzNCk7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjIzNTtcbiAgICBsZXR0ZXItc3BhY2luZzogLS41cHg7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNTYpO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLTFweDtcbiAgICB9XG4gIH1cbiAgLmhlYWRsaW5lLTIge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjgpO1xuICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMS4yODU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0uMzVweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg0OCk7XG4gICAgICBsaW5lLWhlaWdodDogMS4wODM7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLS43NXB4O1xuICAgIH1cbiAgfVxuICAuaGVhZGxpbmUtMyB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMzMztcbiAgICBsZXR0ZXItc3BhY2luZzogLS4xcHg7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzYpO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjIyO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0uNXB4O1xuICAgIH1cbiAgfVxuICAuaGVhZGxpbmUtNCB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgIH1cbiAgfVxuICAuaGVhZGxpbmUtNSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xuICAgIH1cbiAgfVxuICAuaGVhZGxpbmUtNiB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU1NjtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIH1cbiAgfVxuICAuYm9keS0xIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICBmb250LXdlaWdodDogJHJlZ3VsYXI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XG4gICAgICBsaW5lLWhlaWdodDogMS40MTY7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLjE1cHg7XG4gICAgfVxuICB9XG4gIC5ib2R5LTIge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgIGZvbnQtd2VpZ2h0OiAkcmVndWxhcjtcbiAgICBsaW5lLWhlaWdodDogMS42Njc7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICB9XG4gIH1cbiAgLmJvZHktMyB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgZm9udC13ZWlnaHQ6ICRyZWd1bGFyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc1O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY2NztcbiAgICB9XG4gIH1cbiAgLm92ZXJsaW5lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBmb250LXdlaWdodDogJHNlbWlib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjcxNDtcbiAgICBsZXR0ZXItc3BhY2luZzogMS41cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICBsaW5lLWhlaWdodDogMS42MjU7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMS41cHg7XG4gICAgfVxuICB9XG4gIC5jYXB0aW9uIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBmb250LXdlaWdodDogJHJlZ3VsYXI7XG4gICAgbGluZS1oZWlnaHQ6IDEuODU3O1xuICAgIGxldHRlci1zcGFjaW5nOiAuMTVweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICBsaW5lLWhlaWdodDogMS43NTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAuMTVweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZPTlQgRkFNSUxZIEdST1VQU1xuLy8gRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvdHlwb2dyYXBoeS9mb250LWZhbWlseS9cblxuXG5cbkBtaXhpbiBob25leWNvbWItZm9udC1mYW1pbHkge1xuICAucHJveGltYSxcbiAgLnNhbnMtc2VyaWYgICB7IGZvbnQtZmFtaWx5OiAkcHJveGltYS1ub3ZhOyB9XG4gIC51dG9waWEsXG4gIC5zZXJpZiAgICAgICAgeyBmb250LWZhbWlseTogJHV0b3BpYS1zdGQ7IH1cbn1cbiIsIi8vIEZPTlQgV0VJR0hUXG4vLyBEb2NzOiBodHRwOi8vdGFjaHlvbnMuaW8vZG9jcy90eXBvZ3JhcGh5L2ZvbnQtd2VpZ2h0L1xuXG4vLyBCYXNlXG4vLyAgIGZ3ID0gZm9udC13ZWlnaHRcblxuLy8gTW9kaWZpZXJzOlxuLy8gICAxID0gbGl0ZXJhbCB2YWx1ZSAxMDBcbi8vICAgMiA9IGxpdGVyYWwgdmFsdWUgMjAwXG4vLyAgIDMgPSBsaXRlcmFsIHZhbHVlIDMwMFxuLy8gICA0ID0gbGl0ZXJhbCB2YWx1ZSA0MDBcbi8vICAgNSA9IGxpdGVyYWwgdmFsdWUgNTAwXG4vLyAgIDYgPSBsaXRlcmFsIHZhbHVlIDYwMFxuLy8gICA3ID0gbGl0ZXJhbCB2YWx1ZSA3MDBcbi8vICAgOCA9IGxpdGVyYWwgdmFsdWUgODAwXG4vLyAgIDkgPSBsaXRlcmFsIHZhbHVlIDkwMFxuXG5cblxuQG1peGluIGhvbmV5Y29tYi1mb250LXdlaWdodCB7XG4gIC5mdy0xMDAsIC5mdy1saWdodCAgICAgIHsgZm9udC13ZWlnaHQ6ICRsaWdodDsgfVxuICAuZnctNDAwLCAuZnctbm9ybWFsICAgICB7IGZvbnQtd2VpZ2h0OiAkcmVndWxhcjsgfVxuICAuZnctNjAwLCAuZnctc2VtaWJvbGQgICB7IGZvbnQtd2VpZ2h0OiAkc2VtaWJvbGQ7IH1cbiAgLmZ3LTcwMCwgLmZ3LWJvbGQsIC5iICAgeyBmb250LXdlaWdodDogJGJvbGQ7IH1cbiAgLmZ3LTkwMCwgLmZ3LWJsYWNrICAgICAgeyBmb250LXdlaWdodDogJGJsYWNrLXdlaWdodDsgfVxuXG4gIC8vIC8vIGZvciBlYWNoIGJyZWFrcG9pbnRcbiAgLy8gQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gIC8vICAgLy8gLy8gd3JpdGUgYSBtZWRpYXF1ZXJ5XG4gIC8vICAgLy8gQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAvLyAgIC8vICAgLy8gbWVkaWFxdWVyeSBzcGVjaWZpY1xuICAvLyAgIC8vICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgLy8gICAvLyAgICAgJGJwTGV0dGVyOiBzdHItc2xpY2UoJHNpemUsIDEsIDEpO1xuXG4gIC8vICAgLy8gICAgIC5ub3JtYWwjeyRicExldHRlcn0geyBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gIC8vICAgLy8gICAgIC5iI3skYnBMZXR0ZXJ9ICAgICAgeyBmb250LXdlaWdodDogYm9sZDsgfVxuICAvLyAgIC8vICAgICAuZncxI3skYnBMZXR0ZXJ9ICAgIHsgZm9udC13ZWlnaHQ6IDEwMDsgfVxuICAvLyAgIC8vICAgICAuZncyI3skYnBMZXR0ZXJ9ICAgIHsgZm9udC13ZWlnaHQ6IDIwMDsgfVxuICAvLyAgIC8vICAgICAuZnczI3skYnBMZXR0ZXJ9ICAgIHsgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAvLyAgIC8vICAgICAuZnc0I3skYnBMZXR0ZXJ9ICAgIHsgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAvLyAgIC8vICAgICAuZnc1I3skYnBMZXR0ZXJ9ICAgIHsgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAvLyAgIC8vICAgICAuZnc2I3skYnBMZXR0ZXJ9ICAgIHsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAvLyAgIC8vICAgICAuZnc3I3skYnBMZXR0ZXJ9ICAgIHsgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAvLyAgIC8vICAgICAuZnc4I3skYnBMZXR0ZXJ9ICAgIHsgZm9udC13ZWlnaHQ6IDgwMDsgfVxuICAvLyAgIC8vICAgICAuZnc5I3skYnBMZXR0ZXJ9ICAgIHsgZm9udC13ZWlnaHQ6IDkwMDsgfVxuICAvLyAgIC8vICAgfVxuICAvLyAgIC8vICAgLy8gZGVmYXVsdCwgbW9iaWxlIHN0eWxlc1xuICAvLyAgIC8vICAgQGVsc2Uge1xuICAvLyAgICAgICAvLyAubm9ybWFsIHsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAvLyAgICAgICAvLyAuYiAgICAgIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLy8gICAgICAgLy8gLy8gLmZ3MSAgICB7IGZvbnQtd2VpZ2h0OiAxMDA7IH1cbiAgLy8gICAgICAgLy8gLy8gLmZ3MiAgICB7IGZvbnQtd2VpZ2h0OiAyMDA7IH1cbiAgLy8gICAgICAgLy8gLy8gLmZ3MyAgICB7IGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgLy8gICAgICAgLy8gLmZ3NCAgICB7IGZvbnQtd2VpZ2h0OiAkcmVndWxhcjsgfVxuICAvLyAgICAgICAvLyAuZnc1ICAgIHsgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAvLyAgICAgICAvLyAuZnc2ICAgIHsgZm9udC13ZWlnaHQ6ICRzZW1pYm9sZDsgfVxuICAvLyAgICAgICAvLyAuZnc3ICAgIHsgZm9udC13ZWlnaHQ6ICRib2xkOyB9XG4gIC8vICAgICAgIC8vIC5mdzggICAgeyBmb250LXdlaWdodDogODAwOyB9XG4gIC8vICAgICAgIC8vIC5mdzkgICAgeyBmb250LXdlaWdodDogJGJsYWNrOyB9XG4gIC8vICAgICAvLyB9XG4gIC8vICAgfVxuICAvLyB9XG59XG4iLCIvLyBMaXN0c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG5AbWl4aW4gaG9uZXljb21iLWxpc3RzIHtcbiAgLy8gZnJvbSBGb3VuZGF0aW9uXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG4gIHVsLCBvbCB7XG4gICAgLm5vLWJ1bGxldCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgfVxuICB9XG5cbiAgdWwuaW5saW5lLWxpc3Qge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuICB9XG59XG4iLCIvLyBTS0lOU1xuLy8gRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvdGhlbWVzL3NraW5zL1xuXG4vLyBDbGFzc2VzIGZvciBzZXR0aW5nIGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgY29sb3JzIG9uIGVsZW1lbnRzLlxuLy8gSWYgeW91IGhhdmVuJ3QgZGVjbGFyZWQgYSBib3JkZXIgY29sb3IsIGJ1dCBzZXQgYm9yZGVyIG9uIGFuIGVsZW1lbnQsIGl0IHdpbGxcbi8vIGJlIHNldCB0byB0aGUgY3VycmVudCB0ZXh0IGNvbG9yLlxuXG5cbkBtaXhpbiBob25leWNvbWItc2tpbnMge1xuXG4gIC8qIFRleHQgY29sb3JzICovXG4gIC55ZWxsb3cgICAgICAgICAgICAgIHsgY29sb3I6ICR5ZWxsb3c7IH1cbiAgLmJsdWUgICAgICAgICAgICAgICAgeyBjb2xvcjogJGJsdWU7IH1cbiAgLm5hdnkgICAgICAgICAgICAgICAgeyBjb2xvcjogJG5hdnk7IH1cbiAgLy9cbiAgLndoaXRlICAgICAgICAgICAgICAgeyBjb2xvcjogJHdoaXRlOyB9XG4gIC5saWdodGVyLWdyZXkgICAgICAgIHsgY29sb3I6ICRsaWdodGVyLWdyZXk7IH1cbiAgLmxpZ2h0LWdyZXkgICAgICAgICAgeyBjb2xvcjogJGxpZ2h0LWdyZXk7IH1cbiAgLm1lZGl1bS1ncmV5ICAgICAgICAgeyBjb2xvcjogJG1lZGl1bS1ncmV5OyB9XG4gIC5kYXJrLWdyZXkgICAgICAgICAgIHsgY29sb3I6ICRkYXJrLWdyZXk7IH1cbiAgLmRhcmtlci1ncmV5ICAgICAgICAgeyBjb2xvcjogJGRhcmtlci1ncmV5OyB9XG4gIC5kYXJrZXN0LWdyZXkgICAgICAgIHsgY29sb3I6ICRkYXJrZXN0LWdyZXk7IH1cbiAgLmJsYWNrICAgICAgICAgICAgICAgeyBjb2xvcjogJGJsYWNrOyB9XG5cbiAgLyogQmFja2dyb3VuZCBjb2xvcnMgKi9cbiAgLmJnLXllbGxvdyAgICAgICAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93OyB9XG4gIC5iZy1ibHVlICAgICAgICAgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7IH1cbiAgLmJnLW5hdnkgICAgICAgICAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTsgfVxuICAvL1xuICAuYmctd2hpdGUgICAgICAgICAgICB7IGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTsgfVxuICAuYmctbGlnaHRlci1ncmV5ICAgICB7IGJhY2tncm91bmQtY29sb3I6ICRsaWdodGVyLWdyZXk7IH1cbiAgLmJnLWxpZ2h0LWdyZXkgICAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTsgfVxuICAuYmctbWVkaXVtLWdyZXkgICAgICB7IGJhY2tncm91bmQtY29sb3I6ICRtZWRpdW0tZ3JleTsgfVxuICAuYmctZGFyay1ncmV5ICAgICAgICB7IGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyZXk7IH1cbiAgLmJnLWRhcmtlci1ncmV5ICAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyLWdyZXk7IH1cbiAgLmJnLWRhcmtlc3QtZ3JleSAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VzdC1ncmV5OyB9XG4gIC5iZy1ibGFjayAgICAgICAgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrOyB9XG59XG4iLCIvLyBTUEFDSU5HXG4vLyBEb2NzOiBodHRwOi8vdGFjaHlvbnMuaW8vZG9jcy9sYXlvdXQvc3BhY2luZy9cblxuLy8gQmFzZTpcbi8vICAgcCA9IHBhZGRpbmdcbi8vICAgbSA9IG1hcmdpblxuXG4vLyBNb2RpZmllcnM6XG4vLyAgIGEgPSBhbGxcbi8vICAgaCA9IGhvcml6b250YWxcbi8vICAgdiA9IHZlcnRpY2FsXG4vLyAgIHQgPSB0b3Bcbi8vICAgciA9IHJpZ2h0XG4vLyAgIGIgPSBib3R0b21cbi8vICAgbCA9IGxlZnRcblxuLy8gICAwID0gbm9uZVxuLy8gICAxID0gMXN0IHN0ZXAgaW4gc3BhY2luZyBzY2FsZVxuLy8gICAyID0gMm5kIHN0ZXAgaW4gc3BhY2luZyBzY2FsZVxuLy8gICAzID0gM3JkIHN0ZXAgaW4gc3BhY2luZyBzY2FsZVxuLy8gICA0ID0gNHRoIHN0ZXAgaW4gc3BhY2luZyBzY2FsZVxuLy8gICA1ID0gNXRoIHN0ZXAgaW4gc3BhY2luZyBzY2FsZVxuLy8gICA2ID0gNnRoIHN0ZXAgaW4gc3BhY2luZyBzY2FsZVxuLy8gICA3ID0gN3RoIHN0ZXAgaW4gc3BhY2luZyBzY2FsZVxuXG5cblxuQG1peGluIGhvbmV5Y29tYi1zcGFjaW5nIHtcblxuICAucGEwIHsgcGFkZGluZzogJHNwYWNpbmctbm9uZTsgfVxuICAucGExIHsgcGFkZGluZzogJHNwYWNpbmcteHgtc21hbGw7IH1cbiAgLnBhMiB7IHBhZGRpbmc6ICRzcGFjaW5nLXgtc21hbGw7IH1cbiAgLnBhMyB7IHBhZGRpbmc6ICRzcGFjaW5nLXNtYWxsOyB9XG4gIC5wYTQgeyBwYWRkaW5nOiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLnBhNSB7IHBhZGRpbmc6ICRzcGFjaW5nLWxhcmdlOyB9XG4gIC5wYTYgeyBwYWRkaW5nOiAkc3BhY2luZy14LWxhcmdlOyB9XG4gIC5wYTcgeyBwYWRkaW5nOiAkc3BhY2luZy14eC1sYXJnZTsgfVxuICAucGE4IHsgcGFkZGluZzogJHNwYWNpbmcteHh4LWxhcmdlOyB9XG5cbiAgLnBsMCB7IHBhZGRpbmctbGVmdDogJHNwYWNpbmctbm9uZTsgfVxuICAucGwxIHsgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy14eC1zbWFsbDsgfVxuICAucGwyIHsgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy14LXNtYWxsOyB9XG4gIC5wbDMgeyBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLXNtYWxsOyB9XG4gIC5wbDQgeyBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAucGw1IHsgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1sYXJnZTsgfVxuICAucGw2IHsgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy14LWxhcmdlOyB9XG4gIC5wbDcgeyBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLXh4LWxhcmdlOyB9XG4gIC5wbDggeyBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLXh4eC1sYXJnZTsgfVxuXG4gIC5wcjAgeyBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1ub25lOyB9XG4gIC5wcjEgeyBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy14eC1zbWFsbDsgfVxuICAucHIyIHsgcGFkZGluZy1yaWdodDogJHNwYWNpbmcteC1zbWFsbDsgfVxuICAucHIzIHsgcGFkZGluZy1yaWdodDogJHNwYWNpbmctc21hbGw7IH1cbiAgLnByNCB7IHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAucHI1IHsgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbGFyZ2U7IH1cbiAgLnByNiB7IHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLXgtbGFyZ2U7IH1cbiAgLnByNyB7IHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLXh4LWxhcmdlOyB9XG4gIC5wcjggeyBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy14eHgtbGFyZ2U7IH1cblxuICAucGIwIHsgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLW5vbmU7IH1cbiAgLnBiMSB7IHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy14eC1zbWFsbDsgfVxuICAucGIyIHsgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLXgtc21hbGw7IH1cbiAgLnBiMyB7IHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1zbWFsbDsgfVxuICAucGI0IHsgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAucGI1IHsgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLWxhcmdlOyB9XG4gIC5wYjYgeyBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmcteC1sYXJnZTsgfVxuICAucGI3IHsgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLXh4LWxhcmdlOyB9XG4gIC5wYjggeyBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmcteHh4LWxhcmdlOyB9XG5cbiAgLnB0MCB7IHBhZGRpbmctdG9wOiAkc3BhY2luZy1ub25lOyB9XG4gIC5wdDEgeyBwYWRkaW5nLXRvcDogJHNwYWNpbmcteHgtc21hbGw7IH1cbiAgLnB0MiB7IHBhZGRpbmctdG9wOiAkc3BhY2luZy14LXNtYWxsOyB9XG4gIC5wdDMgeyBwYWRkaW5nLXRvcDogJHNwYWNpbmctc21hbGw7IH1cbiAgLnB0NCB7IHBhZGRpbmctdG9wOiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLnB0NSB7IHBhZGRpbmctdG9wOiAkc3BhY2luZy1sYXJnZTsgfVxuICAucHQ2IHsgcGFkZGluZy10b3A6ICRzcGFjaW5nLXgtbGFyZ2U7IH1cbiAgLnB0NyB7IHBhZGRpbmctdG9wOiAkc3BhY2luZy14eC1sYXJnZTsgfVxuICAucHQ4IHsgcGFkZGluZy10b3A6ICRzcGFjaW5nLXh4eC1sYXJnZTsgfVxuXG4gIC5wdjAge1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1ub25lO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1ub25lO1xuICB9XG4gIC5wdjEge1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy14eC1zbWFsbCAvIDI7XG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLXh4LXNtYWxsIC8gMjtcbiAgfVxuICAucHYyIHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmcteC1zbWFsbCAvIDI7XG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLXgtc21hbGwgLyAyO1xuICB9XG4gIC5wdjMge1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy1zbWFsbCAvIDI7XG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLXNtYWxsIC8gMjtcbiAgfVxuICAucHY0IHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbWVkaXVtIC8gMjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctbWVkaXVtIC8gMjtcbiAgfVxuICAucHY1IHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbGFyZ2UgLyAyO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1sYXJnZSAvIDI7XG4gIH1cbiAgLnB2NiB7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLXgtbGFyZ2UgLyAyO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy14LWxhcmdlIC8gMjtcbiAgfVxuICAucHY3IHtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmcteHgtbGFyZ2UgLyAyO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy14eC1sYXJnZSAvIDI7XG4gIH1cbiAgLnB2OCB7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLXh4eC1sYXJnZSAvIDI7XG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLXh4eC1sYXJnZSAvIDI7XG4gIH1cblxuICAucGgwIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLW5vbmU7XG4gICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbm9uZTtcbiAgfVxuICAucGgxIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLXh4LXNtYWxsO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLXh4LXNtYWxsO1xuICB9XG4gIC5waDIge1xuICAgIHBhZGRpbmctbGVmdDogJHNwYWNpbmcteC1zbWFsbDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy14LXNtYWxsO1xuICB9XG4gIC5waDMge1xuICAgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctc21hbGw7XG4gICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctc21hbGw7XG4gIH1cbiAgLnBoNCB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy1tZWRpdW07XG4gICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbWVkaXVtO1xuICB9XG4gIC5waDUge1xuICAgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctbGFyZ2U7XG4gICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctbGFyZ2U7XG4gIH1cbiAgLnBoNiB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy14LWxhcmdlO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLXgtbGFyZ2U7XG4gIH1cbiAgLnBoNyB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc3BhY2luZy14eC1sYXJnZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy14eC1sYXJnZTtcbiAgfVxuICAucGg4IHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLXh4eC1sYXJnZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy14eHgtbGFyZ2U7XG4gIH1cblxuICAubWEwIHsgIG1hcmdpbjogJHNwYWNpbmctbm9uZTsgfVxuICAubWExIHsgIG1hcmdpbjogJHNwYWNpbmcteHgtc21hbGw7IH1cbiAgLm1hMiB7ICBtYXJnaW46ICRzcGFjaW5nLXgtc21hbGw7IH1cbiAgLm1hMyB7ICBtYXJnaW46ICRzcGFjaW5nLXNtYWxsOyB9XG4gIC5tYTQgeyAgbWFyZ2luOiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLm1hNSB7ICBtYXJnaW46ICRzcGFjaW5nLWxhcmdlOyB9XG4gIC5tYTYgeyAgbWFyZ2luOiAkc3BhY2luZy14LWxhcmdlOyB9XG4gIC5tYTcgeyAgbWFyZ2luOiAkc3BhY2luZy14eC1sYXJnZTsgfVxuICAubWE4IHsgbWFyZ2luOiAkc3BhY2luZy14eHgtbGFyZ2U7IH1cblxuICAubWwwIHsgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1ub25lOyB9XG4gIC5tbDEgeyAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLXh4LXNtYWxsOyB9XG4gIC5tbDIgeyAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLXgtc21hbGw7IH1cbiAgLm1sMyB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctc21hbGw7IH1cbiAgLm1sNCB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmctbWVkaXVtOyB9XG4gIC5tbDUgeyAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLWxhcmdlOyB9XG4gIC5tbDYgeyAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLXgtbGFyZ2U7IH1cbiAgLm1sNyB7ICBtYXJnaW4tbGVmdDogJHNwYWNpbmcteHgtbGFyZ2U7IH1cbiAgLm1sOCB7IG1hcmdpbi1sZWZ0OiAkc3BhY2luZy14eHgtbGFyZ2U7IH1cblxuICAubXIwIHsgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctbm9uZTsgfVxuICAubXIxIHsgIG1hcmdpbi1yaWdodDogJHNwYWNpbmcteHgtc21hbGw7IH1cbiAgLm1yMiB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLXgtc21hbGw7IH1cbiAgLm1yMyB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLXNtYWxsOyB9XG4gIC5tcjQgeyAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1tZWRpdW07IH1cbiAgLm1yNSB7ICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLWxhcmdlOyB9XG4gIC5tcjYgeyAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy14LWxhcmdlOyB9XG4gIC5tcjcgeyAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy14eC1sYXJnZTsgfVxuICAubXI4IHsgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy14eHgtbGFyZ2U7IH1cblxuICAubWIwIHsgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLW5vbmU7IH1cbiAgLm1iMSB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy14eC1zbWFsbDsgfVxuICAubWIyIHsgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLXgtc21hbGw7IH1cbiAgLm1iMyB7ICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1zbWFsbDsgfVxuICAubWI0IHsgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAubWI1IHsgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLWxhcmdlOyB9XG4gIC5tYjYgeyAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmcteC1sYXJnZTsgfVxuICAubWI3IHsgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLXh4LWxhcmdlOyB9XG4gIC5tYjggeyBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy14eHgtbGFyZ2U7IH1cblxuICAubXQwIHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLW5vbmU7IH1cbiAgLm10MSB7ICBtYXJnaW4tdG9wOiAkc3BhY2luZy14eC1zbWFsbDsgfVxuICAubXQyIHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLXgtc21hbGw7IH1cbiAgLm10MyB7ICBtYXJnaW4tdG9wOiAkc3BhY2luZy1zbWFsbDsgfVxuICAubXQ0IHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLW1lZGl1bTsgfVxuICAubXQ1IHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLWxhcmdlOyB9XG4gIC5tdDYgeyAgbWFyZ2luLXRvcDogJHNwYWNpbmcteC1sYXJnZTsgfVxuICAubXQ3IHsgIG1hcmdpbi10b3A6ICRzcGFjaW5nLXh4LWxhcmdlOyB9XG4gIC5tdDggeyBtYXJnaW4tdG9wOiAkc3BhY2luZy14eHgtbGFyZ2U7IH1cblxuICAubXYwIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1ub25lO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLW5vbmU7XG4gIH1cbiAgLm12MSB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmcteHgtc21hbGw7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmcteHgtc21hbGw7XG4gIH1cbiAgLm12MiB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmcteC1zbWFsbDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy14LXNtYWxsO1xuICB9XG4gIC5tdjMge1xuICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLXNtYWxsO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLXNtYWxsO1xuICB9XG4gIC5tdjQge1xuICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLW1lZGl1bTtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1tZWRpdW07XG4gIH1cbiAgLm12NSB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmctbGFyZ2U7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctbGFyZ2U7XG4gIH1cbiAgLm12NiB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmcteC1sYXJnZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy14LWxhcmdlO1xuICB9XG4gIC5tdjcge1xuICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLXh4LWxhcmdlO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLXh4LWxhcmdlO1xuICB9XG4gIC5tdjgge1xuICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLXh4eC1sYXJnZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy14eHgtbGFyZ2U7XG4gIH1cblxuICAubWgwIHtcbiAgICBtYXJnaW4tbGVmdDogJHNwYWNpbmctbm9uZTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLW5vbmU7XG4gIH1cbiAgLm1oMSB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLXh4LXNtYWxsO1xuICAgIG1hcmdpbi1yaWdodDogJHNwYWNpbmcteHgtc21hbGw7XG4gIH1cbiAgLm1oMiB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLXgtc21hbGw7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy14LXNtYWxsO1xuICB9XG4gIC5taDMge1xuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1zbWFsbDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLXNtYWxsO1xuICB9XG4gIC5taDQge1xuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1tZWRpdW07XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1tZWRpdW07XG4gIH1cbiAgLm1oNSB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLWxhcmdlO1xuICAgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctbGFyZ2U7XG4gIH1cbiAgLm1oNiB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLXgtbGFyZ2U7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy14LWxhcmdlO1xuICB9XG4gIC5taDcge1xuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy14eC1sYXJnZTtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLXh4LWxhcmdlO1xuICB9XG4gIC5taDgge1xuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy14eHgtbGFyZ2U7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy14eHgtbGFyZ2U7XG4gIH1cblxufVxuIiwiLy8gVEVYVCBBTElHTlxuLy8gRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvdHlwb2dyYXBoeS90ZXh0LWFsaWduL1xuXG4vLyBCYXNlXG4vLyAgIHQgPSB0ZXh0LWFsaWduXG5cbi8vIE1vZGlmaWVyc1xuLy8gICBsID0gbGVmdFxuLy8gICByID0gcmlnaHRcbi8vICAgYyA9IGNlbnRlclxuLy8gICBqID0ganVzdGlmeVxuXG5cblxuQG1peGluIGhvbmV5Y29tYi10ZXh0LWFsaWduIHtcbiAgLy8gZm9yIGVhY2ggYnJlYWtwb2ludFxuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAvLyB3cml0ZSBhIG1lZGlhcXVlcnlcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAvLyBtZWRpYXF1ZXJ5IHNwZWNpZmljXG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAkYnBMZXR0ZXI6IHN0ci1zbGljZSgkc2l6ZSwgMSwgMSk7XG5cbiAgICAgICAgLnRsLSN7JGJwTGV0dGVyfSAgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgICAgIC50ci0jeyRicExldHRlcn0gIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAgICAgLnRjLSN7JGJwTGV0dGVyfSAgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgICAgLy8gLnRqLSN7JGJwTGV0dGVyfSAgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG4gICAgICB9XG4gICAgICAvLyBkZWZhdWx0LCBtb2JpbGUgc3R5bGVzXG4gICAgICBAZWxzZSB7XG4gICAgICAgIC50bCAgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgICAgIC50ciAgeyB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgICAgICAudGMgIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAgIC8vIC50aiAgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBURVhUIFRSQU5TRk9STVxuLy8gRG9jczogaHR0cDovL3RhY2h5b25zLmlvL2RvY3MvdHlwb2dyYXBoeS90ZXh0LXRyYW5zZm9ybS9cblxuLy8gQmFzZTpcbi8vICAgdHQgPSB0ZXh0LXRyYW5zZm9ybVxuXG4vLyBNb2RpZmllcnNcbi8vICAgYyA9IGNhcGl0YWxpemVcbi8vICAgbCA9IGxvd2VyY2FzZVxuLy8gICB1ID0gdXBwZXJjYXNlXG4vLyAgIG4gPSBub25lXG5cblxuXG5AbWl4aW4gaG9uZXljb21iLXRleHQtdHJhbnNmb3JtIHtcbiAgLy8gZm9yIGVhY2ggYnJlYWtwb2ludFxuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAvLyB3cml0ZSBhIG1lZGlhcXVlcnlcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAvLyBtZWRpYXF1ZXJ5IHNwZWNpZmljXG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAkYnBMZXR0ZXI6IHN0ci1zbGljZSgkc2l6ZSwgMSwgMSk7XG5cbiAgICAgICAgLnR0Yy0jeyRicExldHRlcn0geyB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuICAgICAgICAudHRsLSN7JGJwTGV0dGVyfSB7IHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cbiAgICAgICAgLnR0dS0jeyRicExldHRlcn0geyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgICAgIC50dG4tI3skYnBMZXR0ZXJ9IHsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAgIH1cbiAgICAgIC8vIGRlZmF1bHQsIG1vYmlsZSBzdHlsZXNcbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLnR0YyB7IHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG4gICAgICAgIC50dGwgeyB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG4gICAgICAgIC50dHUgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgICAgIC50dG4geyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gTGV0J3MgaW1wb3J0IGhvbmV5Y29tYiBzbyB5b3UgZG9uJ3QgaGF2ZSB0byByZWRlZmluZSBhbnl0aGluZy5cbi8vIEB1c2UgXCIuLi9ob25leWNvbWIvc2Nzcy9fc2V0dGluZ3Mvc2V0dGluZ3NcIiBhcyAqO1xuXG4vLyAvLyBTTUFDU1Ncbi8vIEB1c2UgXCIuLi9ob25leWNvbWIvc2Nzcy9iYXNlL2Jhc2VcIiBhcyAqOyAvLyBOb3JtYWxpemUsIEhUTUwgZWxlbWVudHMsIFByaW50IHN0eWxlc1xuLy8gQHVzZSBcIi4uL2hvbmV5Y29tYi9zY3NzL2xheW91dC9sYXlvdXRcIiBhcyAqOyAvLyBHcmlkIHN5c3RlbSwgUGFnZSByZWdpb25zLCBmbG9hdHMsIG1lZGlhLW9iamVjdCwgcmVzcG9uc2l2ZSBlbWJlZFxuLy8gQHVzZSBcIi4uL2hvbmV5Y29tYi9zY3NzL2NvbXBvbmVudHMvY29tcG9uZW50c1wiIGFzICo7IC8vIGJ1dHRvbnMsIGFjY29yZGlvbnNcbi8vIEB1c2UgXCIuLi9ob25leWNvbWIvc2Nzcy90YWNoeW9ucy90YWNoeW9uc1wiIGFzICo7IC8vIGhlbHBlciBjbGFzc2VzXG4vLyBAdXNlIFwiLi4vaG9uZXljb21iL3Njc3MvdGhlbWUvdGhlbWVcIiBhcyAqOyAvLyBjb2xvcnNcblxuLy8gQG1peGluIGhvbmV5Y29tYi1ldmVyeXRoaW5nIHtcbi8vICAgQGluY2x1ZGUgaG9uZXljb21iLWJhc2U7XG4vLyAgIEBpbmNsdWRlIGhvbmV5Y29tYi1sYXlvdXQ7XG4vLyAgIEBpbmNsdWRlIGhvbmV5Y29tYi1jb21wb25lbnRzO1xuLy8gICBAaW5jbHVkZSBob25leWNvbWItdGFjaHlvbnM7XG4vLyAgIEBpbmNsdWRlIGhvbmV5Y29tYi10aGVtZTtcbi8vIH1cbkBpbXBvcnQgXCIuLi9ob25leWNvbWIvc2Nzcy9ob25leWNvbWJcIjtcbkBpbmNsdWRlIGhvbmV5Y29tYi1ldmVyeXRoaW5nO1xuXG4vKiRuYXZ5OiAjMDAyMDVCO1xuJGJsdWU6ICMyODNGQUY7XG4kc2hpZWxkLWJsdWU6ICMwMDQ1N2Y7XG4keWVsbG93OiAjRkZDNzBBO1xuJGxpZ2h0ZXItZ3JleTogI0Y0RjRGNDtcbiRsaWdodC1ncmV5OiAjRTdFN0U3O1xuJG1lZGl1bS1ncmV5OiAjQzBDMEMwOyBcbiRkYXJrLWdyZXk6ICM3ODc4Nzg7XG4kZGFya2VyLWdyZXk6IzU2NTY1NjtcbiRibGFjazogIzI1MjUyNTtcblxuJHNhbnMtc2VyaWY6IHByb3hpbWEgbm92YSwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyovXG5cbi8vdGhpcyBvbmUgaXMgbm90IGluIGhvbmV5Y29tYiB5ZXRcbiRkYXJrLWdyZXk6ICM3ODc4Nzg7XG4kbmF2eTogIzAwMjA1YjtcbiRzaGllbGQtYmx1ZTogIzAwNDU3ZjtcbiRjdXN0b20tZ3JleTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KTtcbiRoZWFkc2hvdC1zbWFsbDogNTBweDtcbiRoZWFkc2hvdC10aW55OiAyMHB4O1xuXG5ib2R5LFxuaDEsXG4uaDEsXG5oMixcbi5oMixcbmgzLFxuLmgzLFxuaDQsXG4uaDQsXG5oNSxcbi5oNSxcbmg2LFxuLmg2IHtcbiAgLy8gZm9udC1mYW1pbHk6ICRwcm94aW1hLW5vdmE7XG4gIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkge1xuICBjb2xvcjogIzM2MzYzNiAhaW1wb3J0YW50O1xufVxuYm9keSBoMSB7XG4gIGZvbnQtc2l6ZTogMy40MzMxMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgY29sb3I6ICMzNjM2MzY7XG59XG5ib2R5IGgyIHtcbiAgZm9udC1zaXplOiAyLjc0Njg4cmVtO1xuICBmb250LXdlaWdodDogOTAwO1xuICBjb2xvcjogIzM2MzYzNjtcbn1cblxuYm9keSBoMyB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIC8vIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuNXJlbTtcbn1cbmJvZHkgaDQge1xuICBmb250LXNpemU6IDEuNzU4MTJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjMzYzNjM2O1xufVxuYm9keSBoMi5zZXJpZiB7XG4gIGZvbnQtZmFtaWx5OiB1dG9waWEtc3RkLCBHZW9yZ2lhLCBzZXJpZiAhaW1wb3J0YW50O1xufVxuYm9keSBoNSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIC8vIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuNDA2MjVyZW07XG59XG4uaGVyby1oZWFkZXIge1xuICAuaGVyby1oZWFkZXJfX3RpdGxlIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgfVxufVxuaDEge1xuICBtYXJnaW4tYm90dG9tOiAkc2l6ZS01O1xufVxuXG5oMyxcbi5oMyB7XG4gIEBpbmNsdWRlIGhvbmV5Y29tYi1mMztcbiAgbWFyZ2luLXRvcDogJHNwYWNpbmctc21hbGw7XG59XG5cbi8vb3ZlcnJpZGluZyBkcnVwYWw6IGNrZWRpdG9yIHB1dHMgaW4gYSBwIHRhZyBmb3IgRVZFUllUSElORyBldmVuIExJLiBXZSBuZWVkIHRvIGNoYW5nZSB0aGUgc3BhY2luZ1xubGkgcCB7XG4gIG1hcmdpbi1ib3R0b206IGluaGVyaXQ7XG59XG5cbi8vIGZvdW5kYXRpb24gcmVtb3ZlcyB0aGUgdW5kZXJsaW5lLCB5ZXQgd2UnZCBsaWtlIHRoZW0gaW4gKHRvIGNvbmZvcm0gd2l0aCBibHVlIHBhZ2VzKVxubWFpbiBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogJGJsdWU7XG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDAuMDc1ZW07XG59XG5cbi5wYXRoLWZyb250cGFnZSB7XG4gIGJhY2tncm91bmQ6ICRsaWdodGVyLWdyZXk7XG59XG5cbi55ZWxsb3ctYm90dG9tIHtcbiAgYm9yZGVyLWJvdHRvbTogNXB4ICNmZmM3MGEgc29saWQ7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbm5hdiB7XG4gIGEge1xuICAgIGNvbG9yOiAkbGlnaHRlci1ncmV5O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICB9XG5cbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgYSB7XG4gICAgICBwYWRkaW5nOiAxMnB4IDJweCA3cHggMnB4ICFpbXBvcnRhbnQ7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDAlO1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjI1cyBjdWJpYy1iZXppZXIoMC42NiwgLTAuMzksIDAuNDEsIDEuMzUpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyOmFmdGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYTpmaXJzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAuYnJlYWRjcnVtYnMge1xuICAgIGEge1xuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG5hdnk7XG4gICAgICB9XG4gICAgfVxuICAgIGxpIHtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIGNvbG9yOiAkZGFya2VyLWdyZXk7XG4gICAgfVxuICB9XG59XG5cbiNhbm5vdW5jZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAkeWVsbG93OyAvLyRibHVlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAkYmxhY2s7IC8vJHdoaXRlO1xuXG4gIGgzIHtcbiAgICBtYXJnaW4tdG9wOiAwcHg7XG4gIH1cblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAucHQxIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxuXG4gIC5jZWxsIHtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgfVxufVxuXG4vLyBzaWRlYmFyIHN0eWxpbmdcbi5zaWRlYmFyIG5hdiBhIHtcbiAgY29sb3I6ICRibHVlO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkbmF2eTtcbiAgfVxufVxuXG5kaXYjc2lkZWJhci1zZWNvbmQge1xuICBtYXJnaW4tdG9wOiA3NnB4O1xuICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG59XG5cbi5ibG9jay1yY2wtZm91bmRhdGlvbi1tYWluLW1lbnUge1xuICBhOjphZnRlciB7XG4gICAgLy8gY29udGVudDogXCJcXGYwNzhcIjtcbiAgICAvLyBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgRm9udEF3ZXNvbWU7XG4gICAgY29sb3I6ICRtZWRpdW0tZ3JleTtcbiAgICAvLyBwYWRkaW5nOiAwIDBweCA0cHggNHB4O1xuICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3R0b206IDFweDtcbiAgICAvLyBRdWljayBmaXhcbiAgICBwYWRkaW5nOiAwIDBweCA1cHggNXB4O1xuICAgIG1hcmdpbjogNHB4IDBweCAycHggNHB4O1xuICB9XG59XG5cbiNibG9jay1zZWNvbmRhcnluYXZpZ2F0aW9uIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZmxvYXQ6IHJpZ2h0O1xuXG4gIGEge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE1cHggMHB4O1xuICB9XG59XG5cbi5icmFuZGluZy1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuXG4gIGltZyB7XG4gICAgbWF4LWhlaWdodDogNjBweDtcbiAgfVxuXG4gIC5ibG9jay1yY2wtZm91bmRhdGlvbi1zaXRlYnJhbmRpbmcge1xuICAgIGZvbnQtc2l6ZTogMzFweDtcblxuICAgIGEge1xuICAgICAgY29sb3I6ICRzaGllbGQtYmx1ZTtcbiAgICB9XG4gIH1cbn1cblxuLmJsb2NrLW5hdmlnYXRpb25ob3VycyB7XG4gIGNvbG9yOiAjMzYzNjM2O1xuICBAaW5jbHVkZSBob25leWNvbWItZjY7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMTVweDtcblxuICBhLFxuICBkaXYge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBjb2xvcjogIzcwNzA3MDtcbiAgfVxuXG4gIC5idXR0b24ge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbWFyZ2luOiAwIDAgMCAzcHg7XG4gIH1cbn1cblxuLyogbHUncyBjb2RlICovXG5cbi8vIGRyb3Bkb3duIG1lbnUgaXNzdWVcbi5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAuaGVyby1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgLmhlcm8taGVhZGVyX19tZWRpYSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgaW1nIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmhlcm8taGVhZGVyX19tZWRpYTpiZWZvcmUge1xuICBjb250ZW50OiBub25lO1xufVxuLy8gbWFpbiBuYXYgYmFyXG4jbWFpbi1uYXYtbWVudSB7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDIwNWI7XG4gIC13ZWJraXQtYm94LWFsaWduOiBmbGV4LXN0YXJ0O1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAtbXMtZmxleC1hbGlnbjogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi8vc2VhcmNoIGJhclxuLnRvcC1iYXIge1xuICAjaW5wdXRCb3gge1xuICAgIG1hcmdpbjogMDtcbiAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxufVxuXG4udmlld3MtZXhwb3NlZC1mb3JtIHtcbiAgLmZvcm0tYWN0aW9ucy5qcy1mb3JtLXdyYXBwZXIuZm9ybS13cmFwcGVyIHtcbiAgICAjZWRpdC1zdWJtaXQtc2VhcmNoc29sciB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjMjgzZmFmO1xuICAgIH1cbiAgICAjZWRpdC1yZXNldCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1jb2xvcjogIzI4M2ZhZjtcbiAgICAgIGNvbG9yOiAjMjgzZmFmO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIHRyYW5zaXRpb246IDAuMjVzIGN1YmljLWJlemllcigwLjQ1LCAwLjA1LCAwLjU1LCAwLjk1KTtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyODNmYWY7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udmlld3Mtcm93IHtcbiAgLnNlYXJjaHJvdyB7XG4gICAgYSB7XG4gICAgICBjb2xvcjogIzM2MzYzNjtcbiAgICAgIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzI4M2ZhZjtcbiAgICAgIH1cbiAgICAgIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5zZWFyY2hzb2xyLXVzZXItd3JhcHBlciB7XG4gICAgLnNlYXJjaHNvbHItdXNlci1pbmZvIHtcbiAgICAgIC5zZWFyY2hzb2xyLXVzZXItbmFtZSB7XG4gICAgICAgIGEge1xuICAgICAgICAgIGNvbG9yOiAjMzYzNjM2O1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICMyODNmYWY7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICMyODNmYWY7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuc2VhcmNoc29sci1lbWFpbCB7XG4gICAgICAgIGNvbG9yOiAjMzYzNjM2O1xuICAgICAgfVxuICAgICAgLnNlYXJjaHNvbHItdXNlci1waG9uZSB7XG4gICAgICAgIGNvbG9yOiAjMzYzNjM2O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ucGFnZXIge1xuICAucGFnaW5hdGlvbi5wYWdlcl9faXRlbXMuanMtcGFnZXJfX2l0ZW1zIHtcbiAgICAucGFnZXJfX2l0ZW0ge1xuICAgICAgYSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjMGEwYTBhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vLyBoZWFkZXJzIHRpdGxlIHBhZ2Vcbi5ibG9jay1yY2wtZm91bmRhdGlvbi1wYWdlLXRpdGxlIHtcbiAgaDEge1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7XG4gIH1cbn1cblxuLy8gYnJlYWRjcnVtYnMgbmF2XG4uYmxvY2stcmNsLWZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICBuYXYge1xuICAgIC5icmVhZGNydW1icyB7XG4gICAgICBtYXJnaW46IDE1cHggMHB4IDIwcHggMTVweDtcbiAgICB9XG4gIH1cbn1cbi8vIGJsb2NrIGhvdXJzIG9uIGhvbWUgcGFnZVxuLmJnLXllbGxvdyB7XG4gIC5ncmlkLXgge1xuICAgIC5jZWxsIHtcbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogIzM2MzYzNjtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICMyODNmYWY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gYWR2YW5jZWQgc2VhcmNoIGJ1dHRvblxuLmFkdmFuY2VkX3NlYXJjaCB7XG4gIGEge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuXG4vLyBibG9jayBmZWF0dXJlIHJlc291cmNlc1xuLy8gI2Jsb2NrLWZlYXR1cmVkcmVzb3VyY2VzXG4uZmllbGQtYmxvY2stY29udGVudC0tYm9keSB7XG4gIC5maWVsZC1pdGVtcyB7XG4gICAgLmZpZWxkLWl0ZW0ge1xuICAgICAgLnJvdyB7XG4gICAgICAgIGEge1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBoMyB7XG4gICAgICAgICAgICBjb2xvcjogIzM2MzYzNjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcCB7XG4gICAgICAgICAgICBjb2xvcjogIzM2MzYzNjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gYmxvY2sgdXBjb21pbmcgZXZlbnRzXG4uZXZlbnQtY2FyZC1yb3cge1xuICAuY29sdW1uIHtcbiAgICBhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgY29sb3I6ICMzNjM2MzY7XG4gICAgfVxuICB9XG59XG5cbi8vIGJ1dHRvblxuLmJ1dHRvbi55ZWxsb3cge1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmZjNzBhO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgcGFkZGluZzogMC41ZW0gMC43NWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246XG4gICAgYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCxcbiAgICBjb2xvciAwLjI1cyBlYXNlLW91dCxcbiAgICBwYWRkaW5nIDAuMjVzIGVhc2Utb3V0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmJ1dHRvbi55ZWxsb3c6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjNzBhO1xuICBjb2xvcjogIzI1MjUyNTtcbiAgcGFkZGluZzogMC41ZW0gMS4zMTI1cmVtO1xufVxuXG4uYnV0dG9uLmJsdWUge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBjb2xvcjogIzI4M2ZhZjtcbn1cblxuLmJ1dHRvbi5ibHVlOmhvdmVyIHtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cbi8vIHN0YWZmIHByb2ZpbGVcbi5ibG9jay1yY2wtZm91bmRhdGlvbi1jb250ZW50IHtcbiAgYXJ0aWNsZSB7XG4gICAgLmdyaWQteCB7XG4gICAgICAuc21hbGwtOSB7XG4gICAgICAgIC5tYjAge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIH1cbiAgICAgICAgLmRhcmstZ3JleSB7XG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogIzcwNzA3MDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdWwge1xuICAgICAgbGkge1xuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogIzcwNzA3MDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYnV0dG9uLmJsdWUge1xuICBib3JkZXI6IDJweCBzb2xpZDtcbiAgbWFyZ2luOiAyM3B4IDAgMXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiAjMjgzZmFmO1xuICBjb2xvcjogIzI4M2ZhZjtcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHBhZGRpbmc6IDAuNWVtIDAuNzVlbTtcbiAgdHJhbnNpdGlvbjogMC4yNXMgY3ViaWMtYmV6aWVyKDAuNDUsIDAuMDUsIDAuNTUsIDAuOTUpO1xuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiAwLjVlbSAxLjMxMjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI4M2ZhZjtcbiAgfVxufVxuXG4vLyBnZXQgaGVscCBwYWdlXG4uZmllbGQge1xuICAuZmllbGQtaXRlbXMge1xuICAgIC5maWVsZC1pdGVtIHtcbiAgICAgIHAge1xuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogIzM2MzYzNjtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMjgzZmFmO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLy8gYWJvdXQgcGFnZSBhbmQgL2Fib3V0L2Fkdmlzb3J5LWNvbW1pdHRlZVxuXG4uaGVyby1oZWFkZXIge1xuICAuaGVyby1oZWFkZXJfX3RpdGxlIHtcbiAgICB6LWluZGV4OiAxO1xuICB9XG59XG4ub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbiAgLmdyaWQteCB7XG4gICAgbWF4LXdpZHRoOiA3OC4xMjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIC5sYXJnZS02Lm1lZGl1bS02LnNtYWxsLTEyLmNlbGwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgI21haW4ge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICB9XG4gIH1cbn1cblxuLy8gc2VydmljZXMgcGFnZVxuXG4uZmllbGQge1xuICAuZmllbGQtaXRlbXMge1xuICAgIC5maWVsZC1pdGVtIHtcbiAgICAgIC52aWV3cy1lbGVtZW50LWNvbnRhaW5lciB7XG4gICAgICAgIGRpdiB7XG4gICAgICAgICAgaDMge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTE7XG4gICAgICAgICAgICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4udmlld3MtZmllbGQudmlld3MtZmllbGQtdGl0bGUge1xuICAuZmllbGQtY29udGVudCB7XG4gICAgYSB7XG4gICAgICBjb2xvcjogIzM2MzYzNjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzI4M2ZhZjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuI3BhcmFncmFwaC04IHtcbiAgLmZpZWxkIHtcbiAgICAuZmllbGQtaXRlbXMge1xuICAgICAgLmZpZWxkLWl0ZW0ge1xuICAgICAgICAudmlld3MtZWxlbWVudC1jb250YWluZXIge1xuICAgICAgICAgIC5yb3cge1xuICAgICAgICAgICAgLmNvbHVtbiB7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgICAgLnZpZXdzLWZpZWxkIHtcbiAgICAgICAgICAgICAgICAuZmllbGQtY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAuZXZlbnQtY2FyZC5iZy15ZWxsb3cge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzM2MzYzNiAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDM4cHggMTVweCAzOHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE5MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIC5ldmVudC1jYXJkX19kYXRlIHtcbiAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5ldmVudC1jYXJkX19jdGEge1xuICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gc2VydmljZXMvcmVzZXJ2ZS1wYWdlXG5cbi5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAuaW5uZXItd3JhcC5vZmYtY2FudmFzLXdyYXBwZXItaW5uZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNGY0ZjQ7XG4gICAgLmdyaWQteCB7XG4gICAgICBtYXgtd2lkdGg6IDc4LjEyNXJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgLy8gcGFkZGluZy1yaWdodDogLjkzNzVyZW07XG4gICAgICAvLyBwYWRkaW5nLWxlZnQ6IC45Mzc1cmVtO1xuICAgICAgLmxhcmdlLTYubWVkaXVtLTYuc21hbGwtMTIuY2VsbCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4uZmllbGQtcGFyYWdyYXBoLS1maWVsZC1ob3Vycyxcbi5maWVsZC1wYXJhZ3JhcGgtLWZpZWxkLWV4Y2VwdGlvbnMge1xuICBtYXJnaW4tbGVmdDogJHNwYWNpbmcteC1zbWFsbDtcbn1cblxuYm9keSB7XG4gIC5kaWFsb2ctb2ZmLWNhbnZhcy1tYWluLWNhbnZhcyB7XG4gICAgLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gICAgICAjaW5uZXItd3JhcCB7XG4gICAgICAgIC5ncmlkLXgge1xuICAgICAgICAgICNtYWluIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgc2VjdGlvbiB7XG4gICAgICAgICAgICAgIC5ub2Rpc3BsYXkge1xuICAgICAgICAgICAgICAgIGRpdiB7XG4gICAgICAgICAgICAgICAgICAuYmxvY2stcmNsLWZvdW5kYXRpb24tY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIGFydGljbGUge1xuICAgICAgICAgICAgICAgICAgICAgIC52aWV3LW1vZGUtZnVsbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuaDMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIGFib3V0L3BvbGljaWVzL3FpLXBvbGljaWVzXG4uYm9keS5maWVsZC5maWVsZC1ub2RlLS1ib2R5LmZpZWxkLW5hbWUtYm9keS5maWVsZC10eXBlLXRleHQtd2l0aC1zdW1tYXJ5LmZpZWxkLWxhYmVsLWhpZGRlbiB7XG4gIC5maWVsZC1pdGVtcyB7XG4gICAgLmZpZWxkLWl0ZW0ge1xuICAgICAgdGFibGUge1xuICAgICAgICB0Ym9keSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgc2lsdmVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIHJlc2VhcmNoL2JyYWluc3RvbXJpbmctcGxhbm5pbmcgcGFnZVxuLmZpZWxkLmZpZWxkLXBhcmFncmFwaC0tZmllbGQtdGV4dC1hcmVhLmZpZWxkLW5hbWUtZmllbGQtdGV4dC1hcmVhLmZpZWxkLXR5cGUtdGV4dC1sb25nLmZpZWxkLWxhYmVsLWhpZGRlbiB7XG4gIC5maWVsZC1pdGVtcyB7XG4gICAgLmZpZWxkLWl0ZW0ge1xuICAgICAgdGFibGUge1xuICAgICAgICB0Ym9keSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgc2lsdmVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vLyAvcmVzZWFyY2ggcGFnZVxuXG4uZ3JpZC14IHtcbiAgLmxhcmdlLTQge1xuICAgIHdpZHRoOiAzMiU7XG4gICAgLnBhcmFncmFwaCB7XG4gICAgICAuZmllbGQge1xuICAgICAgICAuZmllbGQtaXRlbXMge1xuICAgICAgICAgIC5maWVsZC1pdGVtIHtcbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjExO1xuICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzM2MzYzNjtcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMjgzZmFmO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogIzM2MzYzNjtcbiAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzI4M2ZhZjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gL2ZpbmQgcGFnZVxuXG4uZmVhdHVyZWQucm93IHtcbiAgLmNvbHVtbiB7XG4gICAgZGl2IHtcbiAgICAgIHNwYW4ge1xuICAgICAgICAuZXZlbnQtY2FyZCB7XG4gICAgICAgICAgLmNvbGxlY3Rpb24tY29udGVudC1jb250YWluZXIge1xuICAgICAgICAgICAgLmV2ZW50LWNhcmRfX2RhdGUge1xuICAgICAgICAgICAgICBjb2xvcjogIzBhMGEwYTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC5jb2xsZWN0aW9uLWNvbnRlbnQtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgLmV2ZW50LWNhcmRfX2RhdGUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMzYzNjM2O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogIzM2MzYzNjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnN1Ym1lbnUge1xuICAuaXMtc3VibWVudS1pdGVtIHtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiAjMzYzNjM2O1xuICAgIH1cbiAgfVxufVxuXG4ucm93IHtcbiAgLmNvbHVtbnMge1xuICAgIGEge1xuICAgICAgY29sb3I6ICMzNjM2MzY7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICMyODNmYWY7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIC9hYm91dC9jb250YWN0XG4ub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgLmdyaWQteCB7XG4gICAgI3NpZGViYXItc2Vjb25kIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICAgIH1cbiAgfVxufVxuLy9zcGFjZVxuXG4jcGFyYWdyYXBoLTI0MTMge1xuICAuZ3JpZC14IHtcbiAgICAubGFyZ2UtMyB7XG4gICAgICAucGFyYWdyYXBoIHtcbiAgICAgICAgLmZpZWxkIHtcbiAgICAgICAgICAuZmllbGQtaXRlbXMge1xuICAgICAgICAgICAgLmZpZWxkLWl0ZW0ge1xuICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTE7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuI3BhcmFncmFwaC0yOTMzIHtcbiAgLmltYWdlLWNvbnRlbnQtcm93X19jb250ZW50IHtcbiAgICBoNCB7XG4gICAgICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICB9XG4gICAgLmZpZWxkIHtcbiAgICAgIC5maWVsZC1pdGVtcyB7XG4gICAgICAgIC5maWVsZC1pdGVtIHtcbiAgICAgICAgICBwIHtcbiAgICAgICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4uZmllbGQge1xuICAuZmllbGQtaXRlbXMge1xuICAgIC5maWVsZC1pdGVtIHtcbiAgICAgIHAge1xuICAgICAgICAuYWx0LmJ1dHRvbi55ZWxsb3cge1xuICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgIHRyYW5zaXRpb246IDAuMjVzIGN1YmljLWJlemllcigwLjQ1LCAwLjA1LCAwLjU1LCAwLjk1KTtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNWVtIDEuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmM3MGE7XG4gICAgICAgICAgICBjb2xvcjogIzI1MjUyNTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVlbSAxLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjNzBhO1xuICAgICAgICAgICAgY29sb3I6ICMyNTI1MjU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIHllbGxvdyBidXR0b24gaW4gc3R1ZGlveCBwcm9qZWN0XG4jYmxvY2stc3R1ZGlveGdldGludG91Y2gge1xuICAuYm9keSB7XG4gICAgLmZpZWxkLWl0ZW1zIHtcbiAgICAgIC5maWVsZC1pdGVtIHtcbiAgICAgICAgZGl2IHtcbiAgICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIC9yYnNjcC9jb2xsZWN0aW9uc1xuI3BhcmFncmFwaC0xNDUwIHtcbiAgLmZpZWxkIHtcbiAgICAuZmllbGQtaXRlbXMge1xuICAgICAgLmZpZWxkLWl0ZW0ge1xuICAgICAgICAudmlld3MtZWxlbWVudC1jb250YWluZXIge1xuICAgICAgICAgIC5mZWF0dXJlZCB7XG4gICAgICAgICAgICAuY29sdW1uIHtcbiAgICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBmb290ZXJcbiNmb290ZXItZmlyc3Qge1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG59XG5cbi5ib3R0b20tYmFyIHtcbiAgLmdyaWQteCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG5cbi8qIG1ha2luZyB0aGlzIHNvIHRoYXQgLmlubGluZSB3b3JrcyBmb3IgZGlzcGxheWluZyBpbmxpbmUgKi9cbi5pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIGJ1dC4uLi53ZSBoYXZlIHRvIG92ZXJyaWRlIGl0IGZvciBob3VycyBpbiB0aGUgZm9vdGVyICovXG4jZm9vdGVyLWZpcnN0IC5pbmxpbmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICRjdXN0b20tZ3JleTtcbn1cblxuaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogJG5hdnk7XG5cbiAgLmRyb3Bkb3duLm1lbnUsXG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICBidXR0b24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG5cbiAgLnNlYXJjaF9iYXIge1xuICAgIC8vIGZsb2F0OiByaWdodDtcbiAgfVxuXG4gIFt0eXBlPVwidGV4dFwiXSxcbiAgW3R5cGU9XCJwYXNzd29yZFwiXSxcbiAgW3R5cGU9XCJkYXRlXCJdLFxuICBbdHlwZT1cImRhdGV0aW1lXCJdLFxuICBbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICBbdHlwZT1cIm1vbnRoXCJdLFxuICBbdHlwZT1cIndlZWtcIl0sXG4gIFt0eXBlPVwiZW1haWxcIl0sXG4gIFt0eXBlPVwibnVtYmVyXCJdLFxuICBbdHlwZT1cInNlYXJjaFwiXSxcbiAgW3R5cGU9XCJ0ZWxcIl0sXG4gIFt0eXBlPVwidGltZVwiXSxcbiAgW3R5cGU9XCJ1cmxcIl0sXG4gIFt0eXBlPVwiY29sb3JcIl0sXG4gIHRleHRhcmVhIHtcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZDogJGJsdWU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGhlaWdodDogNDJweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBmb250LXNpemU6IDE1cHggIWltcG9ydGFudDtcbiAgICAvLyBjb2xvcjogJGxpZ2h0LWdyZXk7XG4gIH1cblxuICAvLyBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbiAgLy8gaW5wdXRbdHlwZT1cInRleHRcIl06YWN0aXZlXG4gIC8vIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4gIC8vIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxuICAvLyB0ZXh0YXJlYVxuICBpbnB1dFt0eXBlPSd0ZXh0J106Zm9jdXMsXG4gIGlucHV0W3R5cGU9J3RleHQnXTphY3RpdmUsXG4gIGlucHV0W3R5cGU9J3RleHQnXSAvLyBbdHlwZT0ncGFzc3dvcmQnXSwgXG5cbiAgLy8gW3R5cGU9J2RhdGUnXSwgXG4gIC8vIFt0eXBlPSdkYXRldGltZSddLCBcbiAgLy8gW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sIFxuICAvLyBbdHlwZT0nbW9udGgnXSwgXG4gIC8vIFt0eXBlPSd3ZWVrJ10sIFxuICAvLyBbdHlwZT0nZW1haWwnXSwgXG4gIC8vIFt0eXBlPSdudW1iZXInXSwgXG4gIC8vIFt0eXBlPSdzZWFyY2gnXSwgXG4gIC8vIFt0eXBlPSd0ZWwnXSwgXG4gIC8vIFt0eXBlPSd0aW1lJ10sIFxuICAvLyBbdHlwZT0ndXJsJ10sIFxuICAvLyBbdHlwZT0nY29sb3InXSxcbiAge1xuICAgIGJhY2tncm91bmQ6ICRibHVlICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAvLyBpbnB1dDotaW50ZXJuYWwtYXV0b2ZpbGwtc2VsZWN0ZWQge1xuICAvLyAgIGJhY2tncm91bmQtY29sb3I6ICNmZmM3MGE7XG4gIC8vIH1cblxuICBmb3JtIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cbiAgICAuZHJvcGRvd24ubWVudSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgICAgIGhlaWdodDogNDI7XG4gICAgICBoZWlnaHQ6IDQycHg7XG4gICAgICBwYWRkaW5nOiA5cHggMTFweDtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2ZmZmZmZjMwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgIH1cblxuICAgICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMnB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyB3ZSBkb24ndCB3YW50IGFueSBvdGhlciBoZWFkZXJzIHRvIGJlIGJsdWVcbm1haW4gaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbn1cblxuLy8gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQge1xuLy8gICAvKiBkaXNwbGF5OiBpbmxpbmU7ICovXG4vLyAgIHdpZHRoOiBtYXgtY29udGVudDtcbi8vIH1cblxuLnNlYXJjaF9iYXIge1xuICAuc2VhcmNoLXBhbmVsIHtcbiAgICBsaSB7XG4gICAgICB3aWR0aDogbWF4LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG4gIH1cblxuICAuc2VhcmNoX2JhciBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4uY292ZXItc2VjdGlvbiB7XG4gIC5oZXJvLXNlYXJjaC1jb250YWluZXIge1xuICAgIHdpZHRoOiA4MCU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIG1heC13aWR0aDogMTA5MHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRvcDogMHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG5cbiAgICAuc2VhcmNoLXBhbmVsIHtcbiAgICAgIGxpIHtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc2VhcmNoX2JhciB7XG4gICAgcGFkZGluZy10b3A6IDQwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuZHJvcGRvd24ubWVudSxcbiAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICBidXR0b24ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAvLyBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuXG4gICAgLy8gd2lkdGg6IDcwJTtcbiAgICBtYXJnaW46IGF1dG87XG5cbiAgICBsaSB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHBhZGRpbmc6IDIwcHggMjNweCAxNHB4IDE4cHg7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgICAgaGVpZ2h0OiA2NXB4O1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgLy8gY29sb3I6JGxpZ2h0LWdyZXk7XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgIGhlaWdodDogNjVweDtcbiAgICAgIHdpZHRoOiA1NXB4O1xuICAgICAgcGFkZGluZzogMTdweDtcbiAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIH1cbiAgfVxufVxuXG4uYWR2YW5jZWRfc2VhcmNoIHtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbn1cblxuLmJsb2NrLXNlYXJjaGJveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDQycHg7XG5cbiAgLnNlYXJjaF9iYXIge1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuYWR2YW5jZWRfc2VhcmNoIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIG1hcmdpbi10b3A6IC05cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBwYWRkaW5nOiAxcHggNnB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG5cbiAgICBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkbGlnaHRlci1ncmV5O1xuICAgIH1cblxuICAgIC5hZHZhbmNlZF9zZWFyY2g6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlci1ncmV5O1xuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zO1xuICAgIH1cbiAgfVxufVxuXG4uYWR2YW5jZWRfc2VhcmNoIGE6aG92ZXIge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbmhlYWRlciAuYWR2YW5jZWRfc2VhcmNoIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNvdmVyLXNlY3Rpb24gdWwuZHJvcGRvd24ubWVudSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICB3aWR0aDogYXV0bztcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogNjVweDtcbiAgbWluLXdpZHRoOiAyNTBweDtcblxuICBzdmcge1xuICAgIGhlaWdodDogMTNweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgfVxufVxuXG4vLyBSQ0wtMzkxIC0+IFNlcnZpY2VzIEdyYXkgQmFyIHN0eWxlc1xuXG4uc2VydmljZS1wYWdlLWhlYWRlciBoMSB7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVlbTtcbn1cblxuLnNlcnZpY2UtaGlnaGxpZ2h0IHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4ubm9kaXNwbGF5IC5oaWdobGlnaHQtd3JhcCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIFJDTC0zNzEgLT4gR3JheSBiYXIgc3R5bGVzIGZvciBQcm9qZWN0c1xuXG4ucHJvamVjdC1wYWdlLXJpZ2h0LmxhcmdlLTMge1xuICBwYWRkaW5nOiAxLjJlbSAwIDA7XG59XG5cbi5wcm9qZWN0LWhpZ2hsaWdodC13cmFwcGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuLnByb2plY3QtcGFnZS1oZWFkZXIgaDEge1xuICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07XG59XG5cbi5wcm9qZWN0LWhpZ2hsaWdodCB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLyogU3R5bGUgZm9yIHRoZSBkb3QgKi9cbi5wcm9qZWN0LXN0YXR1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNzNmYWY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbi5wcm9qZWN0LXN0YXR1cyB7XG4gIHBhZGRpbmc6IDAuNzVlbTtcbiAgY29sb3I6ICMyNTI1MjU7XG4gIGJhY2tncm91bmQ6ICNmZmM3MGE7XG4gIG1hcmdpbjogMC41ZW0gMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5wcm9qZWN0LXdlYnNpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMyODNmYWY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyODNmYWY7XG4gIHBhZGRpbmc6IDAuOWVtIDAuNzVlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnByb2plY3Qtd2Vic2l0ZSBhOmhvdmVyIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4vLyBFbmQgLT4gUkNMLTM3MVxuXG4vLyBUdXJuIGludG8gU0FTU1xudWwubWVudS5kcm9wZG93bi1tZW51LnN1Ym1lbnUuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIudmVydGljYWwuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xufVxuXG4uc2VhcmNoLWNvbnRhaW5lci5zbWFsbCBidXR0b24ge1xuICBoZWlnaHQ6IDQycHg7XG4gIHdpZHRoOiAzMnB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIGJhY2tncm91bmQ6ICRibHVlO1xufVxuXG4uZmllbGQtbmFtZS1maWVsZC1tZWRpYS1nYWxsZXJ5IC5maWVsZC1pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbmZvb3RlciB7XG4gIGJhY2tncm91bmQ6ICRibGFjaztcbiAgYm9yZGVyLXRvcDogOHB4IHNvbGlkICR5ZWxsb3c7XG4gIG1hcmdpbi10b3A6IDUwcHg7XG5cbiAgLm1lbnUge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAuZ3JpZC14IHtcbiAgICBwYWRkaW5nOiA1MHB4IDA7XG4gIH1cblxuICAuYmxvY2stdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBwcm94aW1hLW5vdmEsIHNhbnMtc2VyaWY7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIH1cblxuICB1bCxcbiAgdWwubWVudSxcbiAgLmJsb2NrLXZpZXdzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTBweDtcbiAgfVxuXG4gIHVsIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGNvbG9yOiAkY3VzdG9tLWdyZXk7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogJGN1c3RvbS1ncmV5O1xuICB9XG59XG5cbmZvb3RlciB1bC5tZW51IGxpLFxuZm9vdGVyIHVsIGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBjb2xvcjogJGN1c3RvbS1ncmV5O1xufVxuXG5mb290ZXIgdWwubWVudSBsaSBhLFxuZm9vdGVyIHVsIGxpIHtcbiAgY29sb3I6ICRjdXN0b20tZ3JleTtcbn1cblxuZm9vdGVyIHVsLm1lbnUgbGkgYSB7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBjb2xvcjogJGN1c3RvbS1ncmV5O1xufVxuXG5mb290ZXIgdWwubWVudSBsaSBhOmhvdmVyLFxuZm9vdGVyIHVsIGxpIGE6aG92ZXIsXG5mb290ZXIgLm5hdi1saWIgYTpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpICFpbXBvcnRhbnQ7XG59XG5cbmZvb3RlciAuaXRlbXMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IHByb3hpbWEtbm92YSwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICRjdXN0b20tZ3JleTtcbiAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICBmb250LXNpemU6IDE1cHg7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgcGFkZGluZzogMnB4IDAgMnB4IDBweDtcbiAgdHJhbnNpdGlvbjogMC4ycztcbn1cblxuLmJvdHRvbS1iYXIuY2FsbG91dC5mb290ZXItbG9nb3Mge1xuICBiYWNrZ3JvdW5kOiAkYmxhY2s7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xufVxuXG4uYm90dG9tLWJhci5jYWxsb3V0LnNlY29uZGFyeSB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiAkYmxhY2s7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIHBhZGRpbmctYm90dG9tOiAxMDBweDtcblxuICBhIHtcbiAgICBjb2xvcjogJGxpZ2h0LWdyZXk7XG4gIH1cblxuICBhOmhvdmVyIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG59XG5cbi5jb3B5cmlnaHQge1xuICBjb2xvcjogJGN1c3RvbS1ncmV5O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5mb290ZXItbG9nb3MgLmxvZ28ge1xuICBtYXgtaGVpZ2h0OiA1MHB4O1xufVxuXG4vLyBGaXhpbmcgYSBob25leWNvbWIgZWxlbWVudCB0aGF0IHdhcyBicmVha2luZyB0aGUgcGFnZVxuLmNlbGwgPiBhIHtcbiAgZGlzcGxheTogaW5pdGlhbDtcbn1cblxuLmxhcmdlLTYuY2VsbDphY3RpdmUsXG4uZ3JpZC14OmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGluaXRpYWw7XG59XG5cbi5pbWFnZS1jb250ZW50LXJvd19fY29udGVudCBoNCB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cblxuLnRvb2xiYXItbWVudS1hZG1pbmlzdHJhdGlvbiB1bC5tZW51IGxpLm1lbnUtaXRlbSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxubmF2LFxuLm1lbnVpdGVtLFxuLm1lbnUsXG51bCxcbnVsLm1lbnUge1xuICA6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiBpbml0aWFsO1xuICB9XG59XG5cbi8vIEZpeGluZyBsb2NhbCB0YXNrIG1lbnUgKGVkaXQvdmlldy9ldGMpXG4uYmxvY2stcmNsLWZvdW5kYXRpb24tbG9jYWwtdGFza3MgbGksXG4uYmxvY2stcmNsLWZvdW5kYXRpb24tbG9jYWwtdGFza3MtLTIgbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYSB7XG4gICAgYm9yZGVyOiAwcHg7XG4gIH1cbn1cblxuLy8gUkNMLTIxNyAtPiBTdHlsaW5nIHR3ZWFrIHRvIHN0YWZmIGxpc3RpbmcgYWZ0ZXIgcmVtb3ZpbmcgZHVwbGljYXRlcyB3aXRoIEpTXG4udGl0bGUtd3JhcCB7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xufVxuXG4vLyBWaWV3cyB1cGRhdGVzXG5cbi8vIEkgYmVsaWV2ZSB0aGlzIGlzIGZvciBncm91cGluZyBvbmx5XG4udmlld3MtZWxlbWVudC1jb250YWluZXIgZGl2ID4gaDMge1xuICAvL21hcmdpbi10b3A6ICRzcGFjaW5nLXgtc21hbGw7XG4gIHNwYW4ge1xuICAgIEBpbmNsdWRlIGhvbmV5Y29tYi1mNjtcbiAgICBjb2xvcjogJGRhcmtlci1ncmV5O1xuICAgIGZvbnQtd2VpZ2h0OiAkcmVndWxhcjtcbiAgfVxufVxuXG4uZmVhdHVyZWQtYm94ZXMsXG4uZmVhdHVyZWQge1xuICAuY2VsbCB7XG4gICAgcGFkZGluZzogNXB4O1xuXG4gICAgJiA+IGRpdiB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLmV2ZW50LWNhcmQuYmcteWVsbG93IHtcbiAgICAgIGJhY2tncm91bmQ6ICR5ZWxsb3c7XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICBwYWRkaW5nOiAzMHB4IDM4cHggMTVweCAzOHB4O1xuICAgICAgaGVpZ2h0OiAxOTBweDtcblxuICAgICAgLmV2ZW50LWNhcmRfX2RhdGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIH1cblxuICAgICAgc3Bhbi5kZXNjcmlwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgIH1cblxuICAgICAgLmV2ZW50LWNhcmRfX2N0YSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgICA6aG92ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkYmxhY2std2VpZ2h0O1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIHBhcmFncmFwaCBmaXhlcyBvciBhZGRpdGlvbnNcbi5wYXJhZ3JhcGgtLXR5cGUtLXRleHQtYXJlYSxcbi5wYXJhZ3JhcGgtLXR5cGUtLWltYWdlLWNvbnRlbnQtcm93LFxuLnBhcmFncmFwaC0tdHlwZS0tbXVsdGktY29sdW1uLXJvdyB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4vLyB0aGlzIGlzIHVzZWQgdG8gZ2l2ZSBhIGNvbHVtbiBzb21lIGV4dHJhIHBhZGRpbmdcbi5leHRyYS1wYWRkaW5nIHtcbiAgcGFkZGluZzogMjBweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ucGFyYWdyYXBoIHtcbiAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmcteC1zbWFsbDtcbn1cblxuYS5mZWF0dXJlLWxpbmsge1xuICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gIHBhZGRpbmc6IDMwcHggMjBweCA0cHggMTBweDtcbiAgbWFyZ2luOiAwIDEwcHggMTBweCAxMHB4O1xuICB3aWR0aDogNDclO1xuXG4gIC8vIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB3aGl0ZTtcbiAgOmhvdmVyIHtcbiAgICAvLyBib3JkZXItYm90dG9tOiAycHggc29saWQgJGxpZ2h0LWdyZXk7XG4gIH1cbn1cblxuYS5mZWF0dXJlLWxpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAkbmF2eTtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgdHJhbnNpdGlvbjogMC40cztcbn1cblxuLy8gaDMuZnctOTAwLnR0dSxcbi8vIHAuYm9keS0yIHtcbi8vICAgOmhvdmVyXG4vLyAgIGNvbG9yOiB3aGl0ZTtcbi8vIH1cblxuLy8gTWVudSBEcm9wZG93bnMgLS0tLS0tXG4vLyAtLSBDb21tZW50aW5nIHRoZW0gb3V0IHVudGlsIHdlIGRlY2lkZSBvbiBtZWdhIG5hdiBsYXRlclxuLy8gLmNoZXZyb246OmFmdGVyIHtcbi8vIFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vIFx0Ym9yZGVyLXdpZHRoOiAwLjI1ZW0gMC4yNWVtIDAgMDtcbi8vIFx0Y29udGVudDogJyc7XG4vLyBcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vIFx0aGVpZ2h0OiAwLjQ1ZW07XG4vLyBcdGxlZnQ6IDAuMTVlbTtcbi8vIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuLy8gXHR0b3A6IDAuMTVlbTtcbi8vIFx0dHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbi8vIFx0dmVydGljYWwtYWxpZ246IHRvcDtcbi8vIFx0d2lkdGg6IDAuNDVlbTtcbi8vIH1cblxuLy8gLmNoZXZyb24ucmlnaHQ6YWZ0ZXIge1xuLy8gXHRsZWZ0OiAwO1xuLy8gXHR0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4vLyB9XG5cbi8vIC5jaGV2cm9uLmRvd246YWZ0ZXIge1xuLy8gXHR0b3A6IDA7XG4vLyBcdHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG4vLyB9XG5cbi8vIC5jaGV2cm9uLmxlZnQ6YWZ0ZXIge1xuLy8gXHRsZWZ0OiAwLjI1ZW07XG4vLyBcdHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuLy8gfVxuXG4vLyBpdCB3YXMgaW1wb3NzaWJsZSBob3cgdG8gdHVybiBvZmYgdGl0bGVzIGZvciBzcGVjaWFsIHBhZ2VzLiBUaGlzIHdvcmtzIHRob3VnaFxuLm5vZGUtLXR5cGUtc3BlY2lhbC1wYWdlIC5ibG9jay1yY2wtZm91bmRhdGlvbi1wYWdlLXRpdGxlLFxuLm5vZGUtLXR5cGUtc3BhY2UgLmJsb2NrLXJjbC1mb3VuZGF0aW9uLXBhZ2UtdGl0bGUsXG4ubm9kZS0tdHlwZS1jb2xsYWJvcmF0b3IgLmJsb2NrLXJjbC1mb3VuZGF0aW9uLXBhZ2UtdGl0bGUsXG4ucGF0aC11c2VyIC5ibG9jay1yY2wtZm91bmRhdGlvbi1wYWdlLXRpdGxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy9zdHlsaW5nIGZpZWxkIGNvbXBvbmVudDogQXVkaWVuY2UgZmllbGRcbi5maWVsZC1uYW1lLWZpZWxkLWF1ZGllbmNlIHtcbiAgPiAuZmllbGQtaXRlbXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICA+IC5maWVsZC1pdGVtIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLW1lZGl1bTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWNjb3JkaW9uIFN0eWxpbmdcblxuLmFjY29yZGlvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi5hY2NvcmRpb24tdGl0bGUge1xuICBjb2xvcjogJGJsYWNrO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIHBhZGRpbmc6IDFyZW0gMDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGxpZ2h0LWdyZXk7XG4gIHRyYW5zaXRpb246IGJvcmRlciAwLjFzIGVhc2UtaW4tb3V0O1xufVxuXG4uYWNjb3JkaW9uLXRpdGxlLmlzLWFjdGl2ZSxcbmEuYWNjb3JkaW9uLXRpdGxlW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgYm9yZGVyOiBub25lO1xufVxuXG5hLmFjY29yZGlvbi10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5hY2NvcmRpb24tdGl0bGU6aG92ZXIsXG4uYWNjb3JkaW9uLXRpdGxlOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cblxuLmFjY29yZGlvbi10aXRsZTpob3ZlciB7XG4gIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAkc2hpZWxkLWJsdWU7XG59XG5cbi5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uYWNjb3JkaW9uLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgcGFkZGluZzogMCAwIDFyZW07XG59XG5cbi5hY2NvcmRpb24taXRlbTpsYXN0LWNoaWxkID4gLmFjY29yZGlvbi10aXRsZSxcbi5hY2NvcmRpb24taXRlbTpsYXN0LWNoaWxkID4gLmFjY29yZGlvbi1jb250ZW50IHtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4vLyBCdXR0b24gR3JvdXBzXG5cbi5idXR0b24tZ3JvdXAge1xuICAuYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMTVweCAzMHB4O1xuICAgIC8vIGJvcmRlcjogM3B4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgYmFja2dyb3VuZDogJGxpZ2h0LWdyZXk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG5cbiAgICAuc2Vjb25kYXJ5OmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGRhcmstZ3JleTtcbiAgICB9XG4gIH1cbn1cblxuLmJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjZmZjNzBhO1xuICBjb2xvcjogJGJsYWNrO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXdlaWdodDogOTAwO1xufVxuXG4vLyBTdGFmZiBwYWdlIHN0eWxlc1xuLnN0YWZmIHtcbiAgLnZpZXdzLXJvdyB7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIG1hcmdpbjogNXB4O1xuICAgIHBhZGRpbmc6IDEwcHggMCAxMHB4IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLnZpZXdzLWZpZWxkLW1haWwge1xuICAgIH1cblxuICAgIC5lZGl0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogOHB4O1xuICAgICAgcmlnaHQ6IDdweDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG5cbiAgICAuam9iLXRpdGxlIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG4gIH1cblxuICAudmlld3MtZXhwb3NlZC1mb3JtIHtcbiAgICBtYXJnaW46IDUwcHggMDtcblxuICAgIC5mb3JtLWl0ZW0ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgICAgIGxhYmVsIHtcbiAgICAgICAgLy9mb250LXNpemU6ICRmb250LXNpemUtNjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAgICAgfVxuXG4gICAgICBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0tYWN0aW9ucyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIERyb3Bkb3duc1xuaGVhZGVyIHtcbiAgLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDMycHg7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogLTExcHg7XG4gICAgY29sb3I6IGJsYWNrO1xuICB9XG59XG5cbi5kcm9wZG93bi5tZW51IHtcbiAgei1pbmRleDogMTtcbn1cblxuLmhlcm8tc2VhcmNoLWNvbnRhaW5lciB1bCB7XG4gIC8vIHdpZHRoOiAzMDBweDtcbn1cblxubGkuaXMtc3VibWVudS1pdGVtLmlzLWRyb3Bkb3duLXN1Ym1lbnUtaXRlbSB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnVsLm1lbnUuZHJvcGRvd24tbWVudS5zdWJtZW51LmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViLnZlcnRpY2FsLmpzLWFjdGl2ZS1kcm9wZG93bi5qcy1kcm9wZG93bi1hY3RpdmUge1xuICB3aWR0aDogMzAwcHg7XG59XG5cbi5kcm9wZG93biAuaXMtZHJvcGRvd24tc3VibWVudSBhIHtcbiAgcGFkZGluZzogMC43cmVtO1xufVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDY1cHg7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMXB4O1xuICBjb2xvcjogYmxhY2s7XG59XG5cbi5kcm9wZG93biAuaXMtZHJvcGRvd24tc3VibWVudSBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogJGxpZ2h0ZXItZ3JleTtcbn1cblxubGkuaXMtc3VibWVudS1pdGVtLmlzLWRyb3Bkb3duLXN1Ym1lbnUtaXRlbSBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogJGxpZ2h0ZXItZ3JleTtcbiAgY29sb3I6ICRibGFjaztcbn1cblxuYS5ldmVudC1jYXJkLmJnLXdoaXRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMDtcblxuICAuY29sbGVjdGlvbi1pbWFnZS1jb250YWluZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZmxleDogMCAwIDM1JTtcblxuICAgIC5jb2xsZWN0aW9uLWltYWdlIHtcbiAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgaGVpZ2h0OiAyNTBweDtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCBlYXNlLWluLW91dCAwLjNzO1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCBlYXNlLWluLW91dCAwLjNzO1xuICAgICAgICA+IDpudGgtY2hpbGQoOCkge1xuICAgICAgICAgIGhlaWdodDogMjU2cHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgYWxsIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcbiAgICAgICAgKjo6LW1zLWJhY2tkcm9wLFxuICAgICAgICBpbWcge1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIElFMTEgKi9cbiAgICAgIH1cblxuICAgICAgYXJ0aWNsZSxcbiAgICAgIGRpdiB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY29sbGVjdGlvbi1jb250ZW50LWNvbnRhaW5lciB7XG4gICAgZmxleDogMCAwIDY1JTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLmV2ZW50LWNhcmRfX2RhdGUge1xuICAgIHRyYW5zaXRpb246IGFsbCBlYXNlLWluLW91dCAwLjNzO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIGVhc2UtaW4tb3V0IDAuM3M7XG4gICAgbWFyZ2luOiAxMHB4IDIwcHggMjBweCAyMHB4O1xuICAgIC8vIGx1J3MgY29kZVxuICAgIGNvbG9yOiAjMzYzNjM2O1xuICB9XG5cbiAgLmRlc2NyaXB0aW9uIHtcbiAgICBwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nOiAwIDIwcHggMTBweDtcbiAgICAgIC8vIGx1J3MgY29kZVxuICAgICAgY29sb3I6ICMzNjM2MzY7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgLmNvbGxlY3Rpb24taW1hZ2UgaW1nIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgIH1cblxuICAgIC5ldmVudC1jYXJkX19kYXRlIHtcbiAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgIH1cbiAgfVxufVxuXG4uZmVhdHVyZWQgc3Bhbi5ldmVudC1jYXJkX19kYXRlIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgZm9udC1zaXplOiAxN3B4O1xufVxuXG5mb3JtI3ZpZXdzLWV4cG9zZWQtZm9ybS1zdGFmZi1wYWdlLTIge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgLy8gaGVpZ2h0OiA0MXB4O1xuICAvLyByZW1vdmluZyB0aGlzIGJlY2F1c2UgaXRzIHB1bGxpbmcgdGhlIHJvd3MgYmVsb3cgdXAgdG9vIG11Y2guXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG5pbnB1dCNlZGl0LXN1Ym1pdC1zdGFmZiB7XG4gIGJhY2tncm91bmQ6ICR5ZWxsb3c7XG4gIGJvcmRlcjogNXB4IHNvbGlkICR5ZWxsb3c7XG4gIGhlaWdodDogNDBweDtcbiAgcGFkZGluZzogMTBweCAyM3B4O1xuICBmb250LXNpemU6IDE1cHg7XG59XG5cbmZvcm0jdmlld3MtZXhwb3NlZC1mb3JtLXN0YWZmLXBhZ2UtMiBsYWJlbCB7XG4gIG1hcmdpbjogNnB4IDEwcHggMHB4IDBweDtcbn1cblxuLnN0YWZmIC52aWV3cy1leHBvc2VkLWZvcm0gLmZvcm0taXRlbSBpbnB1dCB7XG4gIHdpZHRoOiA3MCU7XG59XG5cbi5hZHZhbmNlZF9zZWFyY2ggYSB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKGJsYWNrLCAwLjUpO1xufVxuXG4uYWR2YW5jZWRfc2VhcmNoIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKGJsYWNrLCAwLjgpO1xufVxuXG5uYXYge1xuICAuaXMtYWN0aXZlOmhvdmVyIHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLyBGT1JNUyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJZiB0aGlzIGlzIHRvbyBnZW5lcmFsIHdlIGNhbiB1c2UgXCIubm9kZS0tdHlwZS13ZWJmb3JtXCJcblxuZm9ybSB7XG4gIGxhYmVsIHtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxuXG4gIFt0eXBlPSd0ZXh0J10sXG4gIFt0eXBlPSdwYXNzd29yZCddLFxuICBbdHlwZT0nZGF0ZSddLFxuICBbdHlwZT0nZGF0ZXRpbWUnXSxcbiAgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sXG4gIFt0eXBlPSdtb250aCddLFxuICBbdHlwZT0nd2VlayddLFxuICBbdHlwZT0nZW1haWwnXSxcbiAgW3R5cGU9J251bWJlciddLFxuICAvLyBbdHlwZT0nc2VhcmNoJ10sIFxuICBbdHlwZT0ndGVsJ10sXG4gIFt0eXBlPSd0aW1lJ10sXG4gIFt0eXBlPSd1cmwnXSxcbiAgW3R5cGU9J2NvbG9yJ10sXG4gIHRleHRhcmVhIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gIH1cblxuICAuanMtZm9ybS1pdGVtLXNvbWUtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGNvbG9yOiAkYmxhY2s7XG4gIH1cblxuICBociB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICB9XG5cbiAgLmJ1dHRvbi5zdWNjZXNzIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHRyYW5zaXRpb246XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LFxuICAgICAgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gIH1cbn1cblxuLy8gU2VhbiB3cm90ZSB0aGlzIHRvIGZpeCB0aGUgbmF2IG9uIHNhZmFyaS4gVGhpcyBpcyBhIGJsdWVwYWdlcyBpc3N1ZS5cbi50b3AtYmFyIHtcbiAgYmFja2dyb3VuZDogIzAwMjA1YjtcbiAgcGFkZGluZzogMDtcbiAgLmxhcmdlLTUsXG4gIC5sYXJnZS03IHtcbiAgICAtbXMtZmxleDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IG5vbmUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5sYXJnZS01IHtcbiAgICB3aWR0aDogNDIlO1xuICB9XG5cbiAgLmxhcmdlLTcge1xuICAgIHdpZHRoOiA1NCU7XG4gIH1cbn1cblxuLy8gQ2hhbmdpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSBhbmNob3IgbGlua3MgdG8gYWNjb3VudCBmb3IgZml4ZWQgaGVhZGVyXG4ucGF0aC1ub2RlIGE6bm90KFtocmVmXSkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xNTBweDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vL292ZXJyaWRlOiB0aGlzIGlzIHVzaW5nIHdoYXQgYmx1ZSBwYWdlcyB1c2VzIGZvciB0aGVpclxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmhlcm8taGVhZGVyLFxuICAuaGVhZGVyLWhlcm8taW1hZ2Uge1xuICAgIC8vIGhlaWdodDogOTB2aDtcbiAgICBtYXgtaGVpZ2h0OiA3NTBweDtcbiAgICAvL21pbi1oZWlnaHQ6IDY1MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAubGFyZ2UtNSB7XG4gICAgICBmbGV4OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IC13ZWJraXQtbWF4LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgLy8gaGVybyBzZWN0aW9uXG4gIC5oZWFkZXItaGVyby1pbWFnZV9fY29udGVudCB7XG4gICAgd2lkdGg6IDYwJTtcbiAgfVxufVxuXG4vLyBzdHVkaW8gcHJvamVjdHMgY29sdW1uc1xuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNlbGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuLy8gUHJpbnQgc3R5bGVzXG5AbWVkaWEgcHJpbnQge1xuICBoZWFkZXIsXG4gIC5icmVhZGNydW1icyxcbiAgLmJ1dHRvbi1ncm91cCxcbiAgLmNoYXQtY29udGFpbmVyLFxuICBmb290ZXIsXG4gIC5ib3R0b20tYmFyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW50cm8tbGVhZCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgLmludHJvLWxlYWRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgc2VjdGlvbiNibG9jay1yY2wtZm91bmRhdGlvbi1zaXRlYnJhbmRpbmcge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2Jsb2NrLXJjbC1mb3VuZGF0aW9uLXNpdGVicmFuZGluZyAuYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnN0YWZmIHtcbiAgICAudmlld3MtZXhwb3NlZC1mb3JtIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuZjQge1xuICAgICAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmdyaWQteC52aWV3cy1yb3cge1xuICAgICAgZm9udC1zaXplOiA4MCUgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICNibG9jay1yY2wtZm91bmRhdGlvbi1wYWdlLXRpdGxlIHtcbiAgICBoMSB7XG4gICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7XG4gICAgfVxuICB9XG5cbiAgLy8gLnByaW50LXJlbW92ZXtcbiAgLy8gICBkaXNwbGF5OiBub25lIWltcG9ydGFudDtcbiAgLy8gfVxuICAucHJpbnQtbG9nbyB7XG4gIH1cblxuICAuYnJhbmRpbmctaGVhZGVyIHtcbiAgICAubGFyZ2UtNiB7XG4gICAgfVxuICB9XG5cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgaW1nW3NyY106YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gICNibG9jay1yY2wtZm91bmRhdGlvbi1zaXRlYnJhbmRpbmcge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICNibG9jay1uYXZpZ2F0aW9uaG91cnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgcXVvdGVzOiBcIuKAnFwiIFwi4oCdXCIgXCLigJhcIiBcIuKAmSBcIjtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogb3Blbi1xdW90ZTtcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICBmb250LXNpemU6IDRlbTtcbiAgICBsaW5lLWhlaWdodDogMC4xZW07XG4gICAgdmVydGljYWwtYWxpZ246IC0wLjRlbTtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IGNsb3NlLXF1b3RlO1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAgIGNvbG9yOiAkZGFyay1ncmV5O1xuICAgIGZvbnQtc2l6ZTogNGVtO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjFlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLTAuNGVtO1xuICB9XG5cbiAgcCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGNvbG9yOiAkYmxhY2s7XG4gIH1cbn1cblxuLyogbmV3cyBjYXJkIG92ZXJyaWRlICovXG4ubmV3cy1jYXJkX19pbWFnZSBpbWcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xufVxuXG4ubmV3cy1jYXJkOmhvdmVyIGltZyB7XG4gIG9wYWNpdHk6IDAuNztcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xufVxuXG4ubmV3cy1jYXJkX19pbWFnZSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogaW5pdGlhbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cblxuLyogU3BlY2lmaWNhbGx5IGZvciBzcGFjZXMgd2hlbiB3ZSBoYXZlIGZ1bGwgbmFtZSB2cy4gbm9ybWFsIG5hbWUgKi9cbi5oZXJvLWhlYWRlcl9fc3VidGl0bGUge1xuICBmb250LXNpemU6IDEuMXZ3O1xuICBmb250LXdlaWdodDogJGJsYWNrLXdlaWdodDtcbn1cbi8vIGl6b25lIG5ld3NcbiNwYXJhZ3JhcGgtMTk5OSB7XG4gIC5maWVsZCB7XG4gICAgLmZpZWxkLWl0ZW1zIHtcbiAgICAgIC5maWVsZC1pdGVtIHtcbiAgICAgICAgLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIHtcbiAgICAgICAgICAucm93IHtcbiAgICAgICAgICAgIC5jb2x1bW4ubWIxIHtcbiAgICAgICAgICAgICAgLm5ld3MtY2FyZCB7XG4gICAgICAgICAgICAgICAgLm5ld3MtY2FyZF9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogIzM2MzYzNjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8vIHNwYWNlcy9pem9uZS9jb25zdWx0aW5nIHBhZ2VcblxuI3BhcmFncmFwaC0yMDY1IHtcbiAgLmdyaWQteCB7XG4gICAgLmxhcmdlLTQge1xuICAgICAgLmJnLXdoaXRlIHtcbiAgICAgICAgLnBhcmFncmFwaCB7XG4gICAgICAgICAgLmZpZWxkIHtcbiAgICAgICAgICAgIC5maWVsZC1pdGVtcyB7XG4gICAgICAgICAgICAgIC5maWVsZC1pdGVtIHtcbiAgICAgICAgICAgICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzI1MjUyNTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8vIFNwYWNlcyBwYWdlIGhvdXJzXG5cbi5ub2RlLS10eXBlLXNwYWNlIHtcbiAgc2VjdGlvbiNibG9jay12aWV3cy1ibG9jay1ob3Vycy1ibG9jay00IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmZpZWxkLW5vZGUtLWZpZWxkLXNwYWNlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnRvZGF5c19ob3VyX2Jsb2NrIHtcbiAgICBmb250LXNpemU6IDE5cHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gIH1cblxuICAuZmllbGQtcGFyYWdyYXBoLS1maWVsZC1ob3VycyxcbiAgLmZpZWxkLXBhcmFncmFwaC0tZmllbGQtZXhjZXB0aW9ucyB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLm9mZmljZS1ob3Vyc19faXRlbSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuICAgIC8vIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIC8vIHBhZGRpbmctdG9wOiA1cHg7XG4gIH1cblxuICAuZmllbGQtcGFyYWdyYXBoLS1maWVsZC10aXRsZSB7XG4gICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICNmZmM3MGE7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgfVxuXG4gIC5maWVsZC1wYXJhZ3JhcGgtLWZpZWxkLWV4Y2VwdGlvbnMge1xuICAgIC5vZmZpY2UtaG91cnNfX2l0ZW0tbGFiZWwsXG4gICAgLm9mZmljZS1ob3Vyc19faXRlbS1jb21tZW50cyB7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtNjsgLy8xNXB4O1xuICAgIH1cblxuICAgIC5wYXJhZ3JhcGgge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5maWVsZC1wYXJhZ3JhcGgtLWZpZWxkLWhvdXJzIHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcblxuICAgIC5vZmZpY2UtaG91cnNfX2l0ZW06bGFzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmZpZWxkLXBhcmFncmFwaC0tZmllbGQtZGF0ZS1yYW5nZSB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cbn1cblxuLnNwYWNlb3duZXIgLmZpZWxkLWl0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICBmb250LXNpemU6IGluaXRpYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbn1cblxuLy8gZW5kIHNwYWNlIHBhZ2VzXG5cbi8vIEZpeGluZyB0aGUgZm9vdGVyIG9uIHNlYXJjaFxuXG4ucGF0aC1zZWFyY2ggLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIGZvb3RlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBwYWRkaW5nLXRvcDogMTJweDtcbn1cblxuLy8gRW5kIGZvb3RlciBmaXhcblxuLy8gU3BlY2lmaWNhbGx5IGZvciBuZXcgcGVyc2l0ZW50IG5hdlxuXG4udG9wLWJhciB7XG4gIGJhY2tncm91bmQ6ICRuYXZ5O1xuICBwYWRkaW5nOiAwO1xufVxuXG4udG9wLWJhciB1bCB7XG4gIC8vIGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi50aXRsZS1iYXIge1xuICBiYWNrZ3JvdW5kOiAkbmF2eTtcbn1cblxuLnRvcC1iYXIgdWwuZHJvcGRvd24ubWVudS5zZWFyY2gtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbn1cblxuaGVhZGVyLnN0aWNreS1jb250YWluZXIge1xuICBoZWlnaHQ6IDQycHggIWltcG9ydGFudDtcbn1cblxuLnRvcC1iYXIge1xuICB1bC5tZW51LmRyb3Bkb3duIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICB9XG5cbiAgdWwubWVudSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuXG4jYmxvY2stbmF2aWdhdGlvbmhvdXJzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDNweDtcblxuICBhLmY1LmxpbmstMSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICB9XG59XG5cbiNibG9jay1uYXZpZ2F0aW9uaG91cnMgLmlubGluZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBlbmQgcGVyc2l0ZW50IG5hdlxuXG4vKiBFeHRyYSBzbWFsbCBkZXZpY2VzIChwaG9uZXMsIDYwMHB4IGFuZCBkb3duKSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAvLyBGaW5kIHBhZ2VcblxuICAuYmxvY2stc2VhcmNoYm94IHtcbiAgICAuc2VhcmNoX2JhciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiA5MCU7XG5cbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiA1OXB4O1xuICAgICAgICByaWdodDogMTFweDtcbiAgICAgIH1cblxuICAgICAgdWwuZHJvcGRvd24ubWVudS5zZWFyY2gtcGFuZWwge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogbGlnaHRncmF5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jb3Zlci1zZWN0aW9uIHtcbiAgICAuaGVhZGVyLWhlcm8taW1hZ2Uge1xuICAgICAgLnNlYXJjaF9iYXIgYnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDQxcHg7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICAuc2VhcmNoX2JhciBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgcGFkZGluZzogMjBweCA2MHB4IDIwcHggMjBweDtcbiAgICAgIH1cblxuICAgICAgc3ZnIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgfVxuXG4gICAgICB1bC5kcm9wZG93bi5tZW51IHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbGlnaHRlci1ncmV5O1xuICAgICAgfVxuXG4gICAgICAuaGVyby1zZWFyY2gtY29udGFpbmVyIHtcbiAgICAgICAgLnNlYXJjaF9iYXIge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgdWwuZHJvcGRvd24ubWVudSB7XG4gICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmJyYW5kaW5nLWhlYWRlciB7XG4gICAgLmJsb2NrLXJjbC1mb3VuZGF0aW9uLXNpdGVicmFuZGluZyB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIGEge1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYS5mZWF0dXJlLWxpbmsge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci1oZXJvLWltYWdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjNzBhYTE7XG4gICAgbWluLWhlaWdodDogMjUwcHg7XG4gIH1cblxuICAuaGVhZGVyLWhlcm8taW1hZ2VfX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBhLmZlYXR1cmUtbGluayB7XG4gICAgbWFyZ2luOiAwcHggMTBweCAxMHB4IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLnN0aWNreSB7XG4gIHotaW5kZXg6IDU7XG59XG5cbi5zdGlja3kuaXMtYXQtdG9wLmlzLXN0dWNrIC50b3AtYmFyIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5oZWFkZXIgdWwubWVudS5kcm9wZG93bi1tZW51LnN1Ym1lbnUuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIudmVydGljYWwuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogJGxpZ2h0LWdyZXk7XG59XG5cbi8qIGxvZ2luIHBhZ2UgdXBkYXRlICovXG4uc2hpYmJvbGV0aC1sb2dpbiBhIHtcbiAgQGluY2x1ZGUgbGluay1zdHlsZS0yO1xufVxuXG4vKiBzbWFsbGVyIGRldmljZXMgbWF4IHdpdGggNjAwcHgqL1xuXG4vKiBzbWFsbGVyIGRldmljZXMgbWF4IHdpZHRoIDY0MHB4Ki9cblxuLyogTGFyZ2UgZGV2aWNlcyAobGFwdG9wcy9kZXNrdG9wcywgOTkycHggYW5kIHVwKSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTE4cHgpIHtcbiAgLmdyaWQteC5mb3VuZGF0aW9uLTJjb2wuZmllbGQtaXRlbXMge1xuICAgIC5tZWRpdW0tOS5zbWFsbC0xMi5jZWxsIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAubWVkaXVtLTMuc21hbGwtMTIuY2VsbCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuYnJhbmRpbmctaGVhZGVyIC5ibG9jay1yY2wtZm91bmRhdGlvbi1zaXRlYnJhbmRpbmcge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgfVxuXG4gIGhlYWRlci5hbm5vdW5jZW1lbnQge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICB9XG5cbiAgaGVhZGVyLnN0aWNreS1jb250YWluZXIge1xuICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm5hdi1ib3R0b20tYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDgyZTc3O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gIH1cblxuICAubmF2LXRvcC1iYXIge1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5ibG9jay1yY2wtZm91bmRhdGlvbi1icmVhZGNydW1icyB7XG4gICAgbmF2IHtcbiAgICAgIC5icmVhZGNydW1icyB7XG4gICAgICAgIG1hcmdpbjogNTBweCAwcHggMTVweCAwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGhlYWRlci5zdGlja3ktY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDgycHg7XG4gIH1cblxuICAuZmllbGQge1xuICAgIC5maWVsZC1pdGVtcyB7XG4gICAgICAuZmllbGQtaXRlbSB7XG4gICAgICAgIC52aWV3cy1lbGVtZW50LWNvbnRhaW5lciB7XG4gICAgICAgICAgLnJvdyB7XG4gICAgICAgICAgICAuY29sdW1uIHtcbiAgICAgICAgICAgICAgZmxleDogMCAwIDQ5JTtcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiA0OSU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIEV4dHJhIGxhcmdlIGRldmljZXMgKGxhcmdlIGxhcHRvcHMgYW5kIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbn1cblxuLy8vIEhvbmV5Y29tYiBCcmVha3BvaW50cyAvLy8vLy8vLy8vLy8vL1xuQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCkge1xufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG59XG5cbi8qIFNtYWxsIGRldmljZXMgKHBvcnRyYWl0IHRhYmxldHMgYW5kIGxhcmdlIHBob25lcywgNjAwcHggYW5kIHVwKSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICBoZWFkZXIuYW5ub3VuY2VtZW50IHtcbiAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLy8gYS5mZWF0dXJlLWxpbmsge1xuICAvLyAgIG1hcmdpbjogMHB4IDEwcHggMTBweCAxMHB4O1xuICAvLyAgIHdpZHRoOiAxMDAlO1xuICAvLyB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLnRvcC1iYXIgdWwuZHJvcGRvd24ubWVudS5zZWFyY2gtcGFuZWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICMzMDQ2YjE7XG4gIH1cblxuICAuc2VhcmNoX2JhciAuc2VhcmNoLXBhbmVsIGxpIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgfVxuXG4gIC5zZWFyY2gtY29udGFpbmVyLnNtYWxsIGlucHV0I2lucHV0Qm94IHtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gIH1cblxuICBoZWFkZXIuYW5ub3VuY2VtZW50IHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgaGVhZGVyLnN0aWNreS1jb250YWluZXIge1xuICAgIGhlaWdodDogNDBweDtcbiAgfVxuXG4gIC5ibG9jay1uYXZpZ2F0aW9uaG91cnMge1xuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICBoZWFkZXIge1xuICAgIC5tZW51IGxpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA5cHg7XG4gICAgfVxuXG4gICAgdWwubWVudS5kcm9wZG93biB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAubWVudSBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuc3RpY2t5LmlzLWFuY2hvcmVkLmlzLWF0LXRvcCB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cblxuICAgIC5zZWFyY2hfYmFyIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgI2Jsb2NrLXNlY29uZGFyeW5hdmlnYXRpb24gLm1lbnUgbGkge1xuICAgICAgLy8gd2lkdGg6IGF1dG8haW1wb3J0YW50O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgZm9ybSAuZHJvcGRvd24ubWVudSB7XG4gICAgICBwYWRkaW5nOiA5cHggMHB4O1xuICAgIH1cblxuICAgIC5zZWFyY2gtY29udGFpbmVyLnNtYWxsIGJ1dHRvbiB7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA0MnB4O1xuICAgICAgcmlnaHQ6IDBweDtcbiAgICAgIGJvdHRvbTogMnB4O1xuICAgIH1cblxuICAgICNibG9jay1zZWNvbmRhcnluYXZpZ2F0aW9uIHtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICB1bC5tZW51LmRyb3Bkb3duLW1lbnUuc3VibWVudS5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1Yi52ZXJ0aWNhbC5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogJGxpZ2h0LWdyZXk7XG4gICAgfVxuICB9XG59XG5cbi50b3AtYmFyIHtcbiAgLW1zLWZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xuICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMjQwcHg7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLy8gTWF0Y2hpbmcgdGggYW5kIHRkIHBhZGRpbmcuXG50YWJsZSB7XG4gIHRoZWFkIHtcbiAgICB0aCB7XG4gICAgICBwYWRkaW5nOiByZW0tY2FsYygxNSAzMCk7XG4gICAgfVxuICB9XG5cbiAgdGJvZHkge1xuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDE1IDMwKTtcbiAgICB9XG4gIH1cbn1cblxuLyogTWVkaXVtIGRldmljZXMgKGxhbmRzY2FwZSB0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIGhlYWRlci5hbm5vdW5jZW1lbnQge1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gIH1cblxuICAuZ3JpZC14IHtcbiAgICAjc2lkZWJhci1maXJzdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICB9XG4gICAgI21haW4ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIC5pbm5lci13cmFwLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lciB7XG4gICAgICAuZ3JpZC14IHtcbiAgICAgICAgLmxhcmdlLTYubWVkaXVtLTYuc21hbGwtMTIuY2VsbCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5maWVsZCB7XG4gICAgLmZpZWxkLWl0ZW1zIHtcbiAgICAgIC5maWVsZC1pdGVtIHtcbiAgICAgICAgLnZpZXdzLWVsZW1lbnQtY29udGFpbmVyIHtcbiAgICAgICAgICAucm93IHtcbiAgICAgICAgICAgIC5jb2x1bW4ge1xuICAgICAgICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgIC8vIC52aWV3cy1maWVsZCB7XG4gICAgICAgICAgICAgIC8vICAgaGVpZ2h0OiAxNTBweDtcbiAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50b3AtYmFyIHtcbiAgICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIGEuZmVhdHVyZS1saW5rIHtcbiAgICBtYXJnaW46IDBweCAxMHB4IDEwcHggOXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIC5pbm5lci13cmFwLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lciB7XG4gICAgICAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgICAgLmJyYW5kaW5nLWhlYWRlciB7XG4gICAgICAgICAgLmdyaWQteCB7XG4gICAgICAgICAgICAuc21hbGwtMTIubWVkaXVtLTcubGFyZ2UtNi5jb2x1bW5zIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc21hbGwtMTIubWVkaXVtLTUubGFyZ2UtNi5jb2x1bW5zIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICNmb290ZXItZmlyc3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAjZm9vdGVyLW1pZGRsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAjZm9vdGVyLWxhc3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gI2Jsb2NrLXJjbC1mb3VuZGF0aW9uLWNvbnRlbnQge1xuICBhcnRpY2xlIHtcbiAgICAudmlldy1tb2RlLWZ1bGwge1xuICAgICAgLmZpZWxkLmZpZWxkLW5vZGUtLWZpZWxkLXBhcmFncmFwaHMuZmllbGQtbmFtZS1maWVsZC1wYXJhZ3JhcGhzLmZpZWxkLXR5cGUtZW50aXR5LXJlZmVyZW5jZS1yZXZpc2lvbnMuZmllbGQtbGFiZWwtaGlkZGVuIHtcbiAgICAgICAgLmZpZWxkLWl0ZW1zIHtcbiAgICAgICAgICAuZmllbGQtaXRlbSB7XG4gICAgICAgICAgICAucGFyYWdyYXBoLnBhcmFncmFwaC0tdHlwZS0tbXVsdGktY29sdW1uLXJvdy5wYXJhZ3JhcGgtLXZpZXctbW9kZS0tZGVmYXVsdCB7XG4gICAgICAgICAgICAgIC5ncmlkLXgge1xuICAgICAgICAgICAgICAgIC5sYXJnZS00Lm1lZGl1bS00LnNtYWxsLTEyLmNlbGwge1xuICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIENvbnZlcnRlZCBWYXJpYWJsZXNcbi8vICRzYW5zLXNlcmlmOiAgICAgICAgICAgICAgICAgICAgICAgICRwcm94aW1hLW5vdmEgIWRlZmF1bHQ7XG4vLyAkc2VyaWY6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdXRvcGlhLXN0ZCAhZGVmYXVsdDtcbi8vICRjb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGFzLCBtb25hY28sIG1vbm9zcGFjZSAhZGVmYXVsdDtcbiRmb250LXNpemUtaGVhZGxpbmU6ICAgICAgICAgICAgICAgIDZyZW0gIWRlZmF1bHQ7XG4kZm9udC1zaXplLXN1YmhlYWRsaW5lOiAgICAgICAgICAgICA1cmVtICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS0xOiAgICAgICAgICAgICAgICAgICAgICAgM3JlbSAhZGVmYXVsdDtcbiRmb250LXNpemUtMjogICAgICAgICAgICAgICAgICAgICAgIDIuMjVyZW0gIWRlZmF1bHQ7XG4kZm9udC1zaXplLTM6ICAgICAgICAgICAgICAgICAgICAgICAxLjVyZW0gIWRlZmF1bHQ7XG4kZm9udC1zaXplLTQ6ICAgICAgICAgICAgICAgICAgICAgICAxLjI1cmVtICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS01OiAgICAgICAgICAgICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRmb250LXNpemUtNjogICAgICAgICAgICAgICAgICAgICAgIC44NzVyZW0gIWRlZmF1bHQ7XG4kZm9udC1zaXplLTc6ICAgICAgICAgICAgICAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kbGV0dGVyLXNwYWNpbmctdGlnaHQ6ICAgICAgICAgICAgICAtLjA1ZW0gIWRlZmF1bHQ7XG4kbGV0dGVyLXNwYWNpbmctMTogICAgICAgICAgICAgICAgICAuMWVtICFkZWZhdWx0O1xuJGxldHRlci1zcGFjaW5nLTI6ICAgICAgICAgICAgICAgICAgLjI1ZW0gIWRlZmF1bHQ7XG4kbGluZS1oZWlnaHQtc29saWQ6ICAgICAgICAgICAgICAgICAxICFkZWZhdWx0O1xuJGxpbmUtaGVpZ2h0LXRpdGxlOiAgICAgICAgICAgICAgICAgMS4yNSAhZGVmYXVsdDtcbiRsaW5lLWhlaWdodC1jb3B5OiAgICAgICAgICAgICAgICAgIDEuNSAhZGVmYXVsdDtcbiRtZWFzdXJlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLjVlbSAhZGVmYXVsdDtcbiRtZWFzdXJlLXdpZGU6ICAgICAgICAgICAgICAgICAgICAgIDM0LjVlbSAhZGVmYXVsdDtcbiRtZWFzdXJlLW5hcnJvdzogICAgICAgICAgICAgICAgICAgIDEyLjVlbSAhZGVmYXVsdDtcblxuXG4kc3BhY2luZy1jb3B5LXNlcGFyYXRvcjogICAgICAgICAgICAxLjVlbSAhZGVmYXVsdDtcbiRoZWlnaHQtMTogICAgICAgICAgICAgICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kaGVpZ2h0LTI6ICAgICAgICAgICAgICAgICAgICAgICAgICAycmVtICFkZWZhdWx0O1xuJGhlaWdodC0zOiAgICAgICAgICAgICAgICAgICAgICAgICAgNHJlbSAhZGVmYXVsdDtcbiRoZWlnaHQtNDogICAgICAgICAgICAgICAgICAgICAgICAgIDhyZW0gIWRlZmF1bHQ7XG4kaGVpZ2h0LTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAxNnJlbSAhZGVmYXVsdDtcbiR3aWR0aC0xOiAgICAgICAgICAgICAgICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kd2lkdGgtMjogICAgICAgICAgICAgICAgICAgICAgICAgICAycmVtICFkZWZhdWx0O1xuJHdpZHRoLTM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgNHJlbSAhZGVmYXVsdDtcbiR3aWR0aC00OiAgICAgICAgICAgICAgICAgICAgICAgICAgIDhyZW0gIWRlZmF1bHQ7XG4kd2lkdGgtNTogICAgICAgICAgICAgICAgICAgICAgICAgICAxNnJlbSAhZGVmYXVsdDtcbiRtYXgtd2lkdGgtMTogICAgICAgICAgICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kbWF4LXdpZHRoLTI6ICAgICAgICAgICAgICAgICAgICAgICAycmVtICFkZWZhdWx0O1xuJG1heC13aWR0aC0zOiAgICAgICAgICAgICAgICAgICAgICAgNHJlbSAhZGVmYXVsdDtcbiRtYXgtd2lkdGgtNDogICAgICAgICAgICAgICAgICAgICAgIDhyZW0gIWRlZmF1bHQ7XG4kbWF4LXdpZHRoLTU6ICAgICAgICAgICAgICAgICAgICAgICAxNnJlbSAhZGVmYXVsdDtcbiRtYXgtd2lkdGgtNjogICAgICAgICAgICAgICAgICAgICAgIDMycmVtICFkZWZhdWx0O1xuJG1heC13aWR0aC03OiAgICAgICAgICAgICAgICAgICAgICAgNDhyZW0gIWRlZmF1bHQ7XG4kbWF4LXdpZHRoLTg6ICAgICAgICAgICAgICAgICAgICAgICA2NHJlbSAhZGVmYXVsdDtcbiRtYXgtd2lkdGgtOTogICAgICAgICAgICAgICAgICAgICAgIDk2cmVtICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtbm9uZTogICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzLTE6ICAgICAgICAgICAgICAgICAgIC4xMjVyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy0yOiAgICAgICAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy0zOiAgICAgICAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzLTQ6ICAgICAgICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy1jaXJjbGU6ICAgICAgICAgICAgICAxMDAlICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtcGlsbDogICAgICAgICAgICAgICAgOTk5OXB4ICFkZWZhdWx0O1xuJGJvcmRlci13aWR0aC1ub25lOiAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcbiRib3JkZXItd2lkdGgtMTogICAgICAgICAgICAgICAgICAgIC4xMjVyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXdpZHRoLTI6ICAgICAgICAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXdpZHRoLTM6ICAgICAgICAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRib3JkZXItd2lkdGgtNDogICAgICAgICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXdpZHRoLTU6ICAgICAgICAgICAgICAgICAgICAycmVtICFkZWZhdWx0O1xuJGJveC1zaGFkb3ctMTogICAgICAgICAgICAgICAgICAgICAgMHB4IDBweCA0cHggMnB4IHJnYmEoIDAsIDAsIDAsIDAuMiApICFkZWZhdWx0O1xuJGJveC1zaGFkb3ctMjogICAgICAgICAgICAgICAgICAgICAgMHB4IDBweCA4cHggMnB4IHJnYmEoIDAsIDAsIDAsIDAuMiApICFkZWZhdWx0O1xuJGJveC1zaGFkb3ctMzogICAgICAgICAgICAgICAgICAgICAgMnB4IDJweCA0cHggMnB4IHJnYmEoIDAsIDAsIDAsIDAuMiApICFkZWZhdWx0O1xuJGJveC1zaGFkb3ctNDogICAgICAgICAgICAgICAgICAgICAgMnB4IDJweCA4cHggMHB4IHJnYmEoIDAsIDAsIDAsIDAuMiApICFkZWZhdWx0O1xuJGJveC1zaGFkb3ctNTogICAgICAgICAgICAgICAgICAgICAgNHB4IDRweCA4cHggMHB4IHJnYmEoIDAsIDAsIDAsIDAuMiApICFkZWZhdWx0O1xuIiwiLy8gRWxlbWVudHNcbi8vXG4vLyBUaGluZ3MgdG8gcmV2aWV3IGJlZm9yZSB5b3Ugd3JpdGUgY29kZSBoZXJlOlxuLy8gLSBCZSBzdXJlIHRvIGxvYWQgYWZ0ZXIgXCJmb3VuZGF0aW9uXCIgaW1wb3J0LlxuLy8gLSBBbHNvLCBiZWZvcmUgYWRkaW5nIHN0eWxlcyBiZSBzdXJlIHRvIG1vZGlmeSB2YXJpYWJsZXMgaW4gdGhlXG4vLyAgIFwiYmFzZS9fY29tbW9uLnNjc3NcIiBmaWxlLiBZb3UgbWF5IG5vdCBuZWVkIHRvIHdyaXRlIGFueSBjb2RlLlxuXG4vLyBIZWFkaW5nc1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGgxLCBoMiwgaDMsXG4vLyBoNCwgaDUsIGg2IHt9XG5cbi8vIEFuY2hvcnNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGEge31cblxuLy8gYTpmb2N1cyB7fVxuXG4vLyBhLmFjdGl2ZSxcbi8vIGE6YWN0aXZlLFxuLy8gYTpob3ZlciB7fVxuXG4vLyBGb3JtIElucHV0XG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi8vIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi8vIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLy8gaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuLy8gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLy8gaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuLy8gaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4vLyBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4vLyBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLy8gaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi8vIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4vLyBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi8vIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4vLyB0ZXh0YXJlYSB7XG4vLyB9XG5cbi8vIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLy8gaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4vLyBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG4vLyBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4vLyBpbnB1dFt0eXBlPVwibW9udGhcIl0sXG4vLyBpbnB1dFt0eXBlPVwid2Vla1wiXSxcbi8vIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLyBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLy8gaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLy8gaW5wdXRbdHlwZT1cInVybFwiXSxcbi8vIHRleHRhcmVhIHtcblxuLy8gfVxuXG4vLyBzZWxlY3Qge31cblxuLy9wYWdlIGhlYWRlclxuLmNvbnRlbnQtaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG4gIHBhZGRpbmctdG9wOiAzcmVtO1xufVxuXG4vL0J1dHRvbiBTdHlsZXNcblxuLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHRyYW5zaXRpb246IDAuMjVzIGN1YmljLWJlemllcigwLjQ1LCAwLjA1LCAwLjU1LCAwLjk1KTtcbn1cblxuOm5vdCguYnV0dG9uLWdyb3VwKSBhLmJ1dHRvbjpob3Zlcixcbjpub3QoLmJ1dHRvbi1ncm91cCkgYS5idXR0b246Zm9jdXMge1xuICBjb2xvcjogJHdoaXRlO1xuICBwYWRkaW5nOiAwLjVlbSAxLjMxMjVyZW07XG59XG5cbmEuYnV0dG9uLnllbGxvdyxcbmEuYnV0dG9uLnllbGxvdzpob3ZlcixcbmEuYnV0dG9uLnllbGxvdzpmb2N1cyB7XG4gIGNvbG9yOiAkYmxhY2s7XG59XG5cbmEuYnV0dG9uLmJsYWNrIHtcbiAgYm9yZGVyLWNvbG9yOiAkYmxhY2s7XG59XG5cbmEuYnV0dG9uLmJsYWNrOmhvdmVyLFxuYS5idXR0b24uYmxhY2s6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG59XG5cbi5idXR0b24uYXJyb3c6OmFmdGVyIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuICBmb250LXdlaWdodDogOTAwO1xuICBjb250ZW50OiBcIlxcZjA2MVwiO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTFweDtcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRyYW5zaXRpb246IDAuMzVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcbn1cblxuLy8gRW5kIEJ1dHRvbiBTdHlsZXNcbiIsIi8vIE5vbi1tb2R1bGFyIG9yIGNsaWVudCBzdHlsZXMgZm9yIC5sLWZvb3RlciByZWdpb24uXG5cbi8vIFNvY2lhbCBtZWRpYSBpY29ucyBhbmQgY29udGFjdCBsaW5rcy5cbi5ibG9jay1zb2NpYWxtZWRpYWljb25zIHtcbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIC8vIE1ha2VzIHN1cmUgaGVpZ2h0IGxvb2tzIGNvcnJlY3QgaW4gSUUuXG4gICAgICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gZGl2IHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICAvLyBNYXRjaCB0aGUgc3R5bGVzIG9mIHRoZSBvdGhlciBsaXN0cyBpbiBmb290ZXIuXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLm5vZGUtLXR5cGUtc3BhY2Uge1xuICAuZmllbGQtcGFyYWdyYXBoLS1maWVsZC1mbG9vciAuZmllbGQtaXRlbSB7XG4gICAgZm9udC1zaXplOiAyMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYm9yZGVyOiAycHggc29saWQgJGxpZ2h0LWdyZXk7XG4gICAgd2lkdGg6IDM3cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgfVxuXG4gIC5maWVsZC1uYW1lLWZpZWxkLWF0bW9zcGhlcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAzNCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAuZmllbGQtaXRlbSB7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgIG1hcmdpbjogNXB4IDA7XG4gICAgICBwYWRkaW5nOiA1cHggMTJweDtcbiAgICB9XG4gIH1cblxuICAuY2FsbG91dCB7XG4gICAgLy8gZm9udC1zaXplOiAyNXB4O1xuICAgIC8vIGJvcmRlcjogbm9uZTtcbiAgICAvLyBwYWRkaW5nOiAzNHB4IDMwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG5cbiAgI3NwYWNlX2RldGFpbHMge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgcGFkZGluZy10b3A6IDQ1cHg7XG4gIH1cblxuICAuZmllbGQtbm9kZS0tYm9keSB7XG4gICAgcCB7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBDT1ZJRCBTRUNUSU9OXG4uY292aWRoaWRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uYWxlcnQge1xuICAgIGJhY2tncm91bmQ6ICMyNzI3Mjc7XG4gICAgcGFkZGluZzogNTBweCAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5ncmlkLXgge1xuICAgICAgICBtYXgtd2lkdGg6IDc4LjEyNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgaSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgICAgICAgICBjb2xvcjogI2ZmYzcwYTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb250ZW50IHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LWZhbWlseTogcHJveGltYS1ub3ZhLCBzYW5zLXNlcmlmO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgLmFsZXJ0LXRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgICAgIG1hcmdpbjogMzBweCAwIDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuYWxlcnQtZGF0ZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ0bi5hbGVydCB7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMnJlbSAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmYzcwYTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwNSU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogbWFyZ2luLWxlZnQgMC4zNXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCByaWdodCAwLjM1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFsZXJ0LWNsb3NlLWJ1dHRvbiB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIHRyYW5zaXRpb246IDAuMnM7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICByaWdodDogMjBweDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAkY2IgMC4xNXM7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTk4cHgpIHtcbiAgICAuYWxlcnQge1xuICAgICAgICAuaWNvbiBpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgIC5hbGVydC10aXRsZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFsZXJ0LWNsb3NlLWJ1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIiNpZnJhbWVfNDk5MzdiZDc0M2VkYWVmYjkzODljYTAzMjBjMWY1OGYge1xuICBtYXgtaGVpZ2h0OiAzODBweCAhaW1wb3J0YW50O1xufVxuYnV0dG9uLnMtbGNoLXdpZGdldC1mbG9hdC1idG4sXG4jaWZyYW1lXzQ5OTM3YmQ3NDNlZGFlZmI5Mzg5Y2EwMzIwYzFmNThmIHtcbiAgYm94LXNoYWRvdzogMCAwLjkzOGVtIDIuMTg4ZW0gcmdiYSg1MCwgNTAsIDkzLCAwLjE1KSwgMCAwLjMxM2VtIDAuOTM4ZW0gcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuIiwiLyogaW1hZ2Ugc3R5bGluZyAqL1xuZmlndXJlLmFsaWduLWxlZnQsXG5hcnRpY2xlLmFsaWduLWxlZnQsIGFydGljbGUuYWxpZ25fbGVmdCxcbi5ub2RlLS10eXBlLWFydGljbGUgLmZpZWxkLW5hbWUtZmllbGQtbWVkaWEtaXRlbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbmZpZ3VyZS5hbGlnbi1yaWdodCxcbmFydGljbGUuYWxpZ24tcmlnaHQge1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbmZpZ2NhcHRpb24ge1xuICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgICBjb2xvcjogJGRhcmstZ3JleTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLTY7XG59XG5cbi8vIEZpeGluZyBEcnVwYWwgQ1NTIGNlbnRlciBhbGlnbm1lbnQgaXNzdWUgb24gaW1hZ2VzLlxuLmFsaWduLWNlbnRlciB7XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbn1cblxuYXJ0aWNsZS5hbGlnbi1sZWZ0LmRlZmF1bHQsXG4ubm9kZS0tdHlwZS1hcnRpY2xlIC5maWVsZC1uYW1lLWZpZWxkLW1lZGlhLWl0ZW0sXG5hcnRpY2xlIGZpZ3VyZS5hbGlnbi1yaWdodCB7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBtYXgtd2lkdGg6IDQ4MHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbn1cbiIsIi8vIFNldCBtYXggd2lkdGggb24gZ2FsbGVyeSBjb250YWluZXIuXG4ubWZwLWltYWdlLWhvbGRlciB7XG5cdC5tZnAtY29udGVudCB7XG5cdFx0bWF4LXdpZHRoOiA5NjBweDtcblx0fVxufVxuXG4vLyBHYWxsZXJ5IC8gZmllbGQgY29udGFpbmVyLlxuLm1mcC1maWVsZC5maWVsZC1uYW1lLWZpZWxkLW1lZGlhLWdhbGxlcnkge1xuXG5cdC8vIEZsZXggY29udGFpbmVyIGZvciBnYWxsZXJ5IGl0ZW1zLlxuXHQuZmllbGQtaXRlbXMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdG1hcmdpbjogMCAtMTBweDtcblxuXHRcdC8vIEdhbGxlcnkgaXRlbSA+IGEgPiBpbWdcblx0XHQuZmllbGQtaXRlbSB7XG5cdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdFx0d2lkdGg6IDIwJTtcblx0XHRcdGZsZXg6IDAgMCAyMCU7XG5cdFx0XHRtYXgtd2lkdGg6IDI1MHB4O1xuXHRcdFx0Ly9tYXgtaGVpZ2h0OiAxNzBweDsgLy9yZW1vdmluZyB0aGlzIGJlY2F1c2UgaXQgbWFrZXMgcG9ydHJhaXQgaW1hZ2VzIGN1dCBvZmZcblxuXHRcdFx0Ly8gTGltaXQgdG8gZml2ZSBpbWFnZXMuXG5cdFx0XHQmOm50aC1jaGlsZChuICsgNikge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHRhIHtcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cblx0XHRcdFx0Jjpob3ZlciBpbWcge1xuXHRcdFx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdG1pbi13aWR0aDogMTAwJTtcblx0XHRcdFx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0XHRcdFx0dHJhbnNpdGlvbjogYWxsICRjYiAwLjE1cztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFRhYmxldCBicmVha3BvaW50LlxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuXHRcdFx0bWFyZ2luOiAwIC01cHg7XG5cblx0XHRcdC5maWVsZC1pdGVtIHtcblx0XHRcdFx0cGFkZGluZzogNXB4O1xuXHRcdFx0XHR3aWR0aDogMjUlO1xuXHRcdFx0XHRmbGV4OiAwIDAgMjUlO1xuXHRcdFx0XHRtYXgtd2lkdGg6IGF1dG87XG5cdFx0XHRcdG1heC1oZWlnaHQ6IGF1dG87XG5cblx0XHRcdFx0Ly8gTGltaXQgdG8gZm91ciBpbWFnZXMuXG5cdFx0XHRcdCY6bnRoLWNoaWxkKG4gKyA1KSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIE1vYmlsZSBicmVha3BvaW50LlxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA1NTBweCkge1xuXHRcdFx0LmZpZWxkLWl0ZW0ge1xuXHRcdFx0XHR3aWR0aDogMzMuMzMzMyU7XG5cdFx0XHRcdGZsZXg6IDAgMCAzMy4zMzMzJTtcblxuXHRcdFx0XHQvLyBMaW1pdCB0byBzaXggaW1hZ2VzLlxuXHRcdFx0XHQmOm50aC1jaGlsZChuKSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOm50aC1jaGlsZChuICsgNykge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBYUyBicmVha3BvaW50LlxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiAzNTBweCkge1xuXHRcdFx0LmZpZWxkLWl0ZW0ge1xuXHRcdFx0XHR3aWR0aDogNTAlO1xuXHRcdFx0XHRmbGV4OiAwIDAgNTAlO1xuXG5cdFx0XHRcdC8vIExpbWl0IHRvIGZvdXIgaW1hZ2VzLlxuXHRcdFx0XHQmOm50aC1jaGlsZChuICsgNSkge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLm1mcC1ib3R0b20tYmFyIHtcblx0bWFyZ2luLXRvcDogLTIwcHg7XG5cblx0Lm1mcC10aXRsZSB7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdGZvbnQtdmFyaWFudDogbm9uZTtcblx0XHRwYWRkaW5nLXJpZ2h0OiA1NXB4O1xuXHR9XG5cblx0Lm1mcC1jb3VudGVyIHtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdH1cbn1cblxuLy8gQW5pbWF0aW9ucy5cbi5tZnAtem9vbS1pbiB7XG5cblx0Ly8gU3RhcnQgc3RhdGUuXG5cdC5tZnAtd2l0aC1hbmltIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHRyYW5zaXRpb246IGFsbCAkY2IgMC4ycztcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG5cdH1cblxuXHQmLm1mcC1iZyB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHR0cmFuc2l0aW9uOiBhbGwgJGNiIDAuM3M7XG5cdH1cblxuXHQvLyBBbmltYXRlIGluLlxuXHQmLm1mcC1yZWFkeSB7XG5cdFx0Lm1mcC13aXRoLWFuaW0ge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMSk7XG5cdFx0fVxuXG5cdFx0Ji5tZnAtYmcge1xuXHRcdFx0b3BhY2l0eTogMC44O1xuXHRcdH1cblxuXHRcdC5tZnAtYXJyb3cge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cblxuXHQvLyBBbmltYXRlIG91dC5cblx0Ji5tZnAtcmVtb3Zpbmcge1xuXHRcdC5tZnAtd2l0aC1hbmltIHtcblx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMC44KTtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0fVxuXG5cdFx0Ji5tZnAtYmcge1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHR9XG5cblx0XHQubWZwLWFycm93IHtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0fVxuXHR9XG59XG5cbi8vIE92ZXJyaWRpbmcgZGVmYXVsdCBzdHlsZXMgZm9yIG5hdiBhcnJvd3MuXG4ubWZwLWFycm93IHtcblx0dHJhbnNpdGlvbjogYWxsICRjYiAwLjNzO1xuXHRvcGFjaXR5OiAwLjc1O1xuXG5cdCYubWZwLWFycm93LWxlZnQsXG5cdCYubWZwLWFycm93LXJpZ2h0IHtcblxuXHRcdCY6YmVmb3JlLFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0Zm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG5cdFx0fVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW46IGF1dG87XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRmb250LXNpemU6IDMwcHg7XG5cblx0XHRcdC8vIFNlZW1zIGZpbmUgZm9yIGFsbCBzaXplcyBidXQgY2hhbmdlIGlmIHRoZXJlJ3MgaXNzdWVzLlxuXHRcdFx0d2lkdGg6IDYwcHg7XG5cdFx0XHRoZWlnaHQ6IDYwcHg7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRwYWRkaW5nOiAxNXB4O1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cblxuXHQmLm1mcC1hcnJvdy1sZWZ0IHtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiBcIlxcZjA1M1wiO1xuXHRcdFx0cmlnaHQ6IGF1dG87XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdH1cblx0fVxuXG5cdCYubWZwLWFycm93LXJpZ2h0IHtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiBcIlxcZjA1NFwiO1xuXHRcdFx0bGVmdDogYXV0bztcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdH1cblx0fVxufVxuXG4vLyBbU3BhY2VzIHBhZ2VzXSBJbmNyZWFzZSBzaXplIG9mIGNsb3NlIGJ1dHRvbiBzbGlnaHRseSAoMjhweCAtIDM1cHgpLlxuLy8gQmUgbW9yZSBzcGVjaWZpYyBpZiB5b3UgbmVlZCB0byBjaGFuZ2UuXG4vKlxuXHQuWFhYe1xuXHRcdC5tZnAtY2xvc2Uge31cblx0fVxuKi9cbi5tZnAtY2xvc2Uge1xuXHRmb250LXNpemU6IDM1cHg7XG59IiwiLnBhcmFncmFwaC0tdHlwZS0tbXVsdGktY29sdW1uLXJvdyB7XG4gICAgLmdyaWQteCB7XG4gICAgICAgIC5jZWxsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLy8gLy8gc2lkZWJhciBzdHlsaW5nXG5cbiRib3JkZXJTdHlsZTogMXB4IHNvbGlkICNkNGQ0ZDQ7XG5cbi5zaWRlYmFyIHtcbiAgcGFkZGluZy10b3A6IDYwcHg7XG5cbiAgaDIge1xuICAgIGNvbG9yOiAjNTY1NjU2O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNDY4NzVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbjogMCAwIDAuOWVtO1xuICB9XG5cbiAgbmF2IHtcbiAgICB1bC5tZW51IHtcbiAgICAgIGxpIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRib3JkZXJTdHlsZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgYm9yZGVyLXRvcDogJGJvcmRlclN0eWxlO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgcGFkZGluZzogMWVtIDAgMWVtIDAuNWVtO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRjYiAwLjE1cztcblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibGFjaywgMC4wNSk7XG4gICAgICAgICAgICAvLyBVbmNvbW1lbnQgdGhpcyBmb3IgdW5kZXJsaW5lIGFuaW1hdGlvblxuICAgICAgICAgICAgc3BhbjphZnRlciB7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyODNmYWY7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwwYTBcIjtcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjY2LCAtMC4zOSwgMC40MSwgMS4zNSkgMC4xNXM7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgIGJvdHRvbTogLTJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3VibWVudS10b2dnbGUge1xuICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDRkNGQ0O1xuICAgICAgICAgIHBhZGRpbmc6IDMwcHggMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGkuaGFzLXN1Ym1lbnUtdG9nZ2xlID4gYSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkNGQ0ZDQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmRpdiNzaWRlYmFyLXNlY29uZCB7XG4gIG1hcmdpbi10b3A6IDc2cHg7XG4gIGJhY2tncm91bmQ6ICR3aGl0ZTtcbn1cbiIsIi5zb2NpYWxsaW5rcyBhIHN2ZyB7XG4gIGhlaWdodDogMzVweDtcbiAgbWFyZ2luOiA1cHg7XG59XG4iXX0= */
