@charset "UTF-8";

@-webkit-keyframes scaleInAbsCenter {
  from {
    -webkit-transform: translate(-50%, -50%) scale(0.4);
            transform: translate(-50%, -50%) scale(0.4);
  }

  to {
    -webkit-transform: translate(-50%, -50%) scale(1);
            transform: translate(-50%, -50%) scale(1);
  }
}

@keyframes scaleInAbsCenter {
  from {
    -webkit-transform: translate(-50%, -50%) scale(0.4);
            transform: translate(-50%, -50%) scale(0.4);
  }

  to {
    -webkit-transform: translate(-50%, -50%) scale(1);
            transform: translate(-50%, -50%) scale(1);
  }
}

@-webkit-keyframes rotate {
  from {
    -webkit-transform: rotateY(0deg);
  }

  to {
    -webkit-transform: rotateY(360deg);
  }
}

@keyframes rotate {
  from {
    -webkit-transform: rotateY(0deg);
  }

  to {
    -webkit-transform: rotateY(360deg);
  }
}

@-webkit-keyframes moveinLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-10rem);
            transform: translateX(-10rem);
  }

  80% {
    -webkit-transform: translateX(1rem);
            transform: translateX(1rem);
  }

  100% {
    opacity: 1;
    -webkit-transform: translate(0);
            transform: translate(0);
  }
}

@keyframes moveinLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-10rem);
            transform: translateX(-10rem);
  }

  80% {
    -webkit-transform: translateX(1rem);
            transform: translateX(1rem);
  }

  100% {
    opacity: 1;
    -webkit-transform: translate(0);
            transform: translate(0);
  }
}

@-webkit-keyframes moveinRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(10rem);
            transform: translateX(10rem);
  }

  80% {
    -webkit-transform: translateX(-1rem);
            transform: translateX(-1rem);
  }

  100% {
    opacity: 1;
    -webkit-transform: translate(0);
            transform: translate(0);
  }
}

@keyframes moveinRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(10rem);
            transform: translateX(10rem);
  }

  80% {
    -webkit-transform: translateX(-1rem);
            transform: translateX(-1rem);
  }

  100% {
    opacity: 1;
    -webkit-transform: translate(0);
            transform: translate(0);
  }
}

@-webkit-keyframes moveinBottom {
  0% {
    opacity: 0;
    -webkit-transform: translateY(10rem);
            transform: translateY(10rem);
  }

  80% {
    -webkit-transform: translateY(-1rem);
            transform: translateY(-1rem);
  }

  100% {
    opacity: 1;
    -webkit-transform: translate(0);
            transform: translate(0);
  }
}

@keyframes moveinBottom {
  0% {
    opacity: 0;
    -webkit-transform: translateY(10rem);
            transform: translateY(10rem);
  }

  80% {
    -webkit-transform: translateY(-1rem);
            transform: translateY(-1rem);
  }

  100% {
    opacity: 1;
    -webkit-transform: translate(0);
            transform: translate(0);
  }
}

.u-m-none {
  margin: 0;
}

.u-m-small {
  margin: 1rem;
}

.u-m-medium {
  margin: 2rem;
}

.u-m-large {
  margin: 3rem;
}

.u-m-xlarge {
  margin: 4rem;
}

.u-m-xxlarge {
  margin: 5rem;
}

.u-m-xxxlarge {
  margin: 6rem;
}

.u-m-r-none {
  margin-right: 0;
}

.u-m-r-small {
  margin-right: 1rem;
}

.u-m-r-medium {
  margin-right: 2rem;
}

.u-m-r-large {
  margin-right: 3rem;
}

.u-m-r-xlarge {
  margin-right: 4rem;
}

.u-m-r-xxlarge {
  margin-right: 5rem;
}

.u-m-r-xxxlarge {
  margin-right: 6rem;
}

.u-m-l-none {
  margin-left: 0;
}

.u-m-l-small {
  margin-left: 1rem;
}

.u-m-l-medium {
  margin-left: 2rem;
}

.u-m-l-large {
  margin-left: 3rem;
}

.u-m-l-xlarge {
  margin-left: 4rem;
}

.u-m-l-xxlarge {
  margin-left: 5rem;
}

.u-m-l-xxxlarge {
  margin-left: 6rem;
}

.u-m-t-none {
  margin-top: 0;
}

.u-m-t-small {
  margin-top: 1rem;
}

.u-m-t-medium {
  margin-top: 2rem;
}

.u-m-t-large {
  margin-top: 3rem;
}

.u-m-t-xlarge {
  margin-top: 4rem;
}

.u-m-t-xxlarge {
  margin-top: 5rem;
}

.u-m-t-xxxlarge {
  margin-top: 6rem;
}

.u-m-b-none {
  margin-bottom: 0;
}

.u-m-b-small {
  margin-bottom: 1rem;
}

.u-m-b-medium {
  margin-bottom: 2rem;
}

.u-m-b-large {
  margin-bottom: 3rem;
}

.u-m-b-xlarge {
  margin-bottom: 4rem;
}

.u-m-b-xxlarge {
  margin-bottom: 5rem;
}

.u-m-b-xxxlarge {
  margin-bottom: 6rem;
}

.u-p-none {
  padding: 0;
}

.u-p-small {
  padding: 1rem;
}

.u-p-medium {
  padding: 2rem;
}

.u-p-large {
  padding: 3rem;
}

.u-p-xlarge {
  padding: 4rem;
}

.u-p-xxlarge {
  padding: 5rem;
}

.u-p-xxxlarge {
  padding: 6rem;
}

.u-p-r-none {
  padding-right: 0;
}

.u-p-r-small {
  padding-right: 1rem;
}

.u-p-r-medium {
  padding-right: 2rem;
}

.u-p-r-large {
  padding-right: 3rem;
}

.u-p-r-xlarge {
  padding-right: 4rem;
}

.u-p-r-xxlarge {
  padding-right: 5rem;
}

.u-p-r-xxxlarge {
  padding-right: 6rem;
}

.u-p-l-none {
  padding-left: 0;
}

.u-p-l-small {
  padding-left: 1rem;
}

.u-p-l-medium {
  padding-left: 2rem;
}

.u-p-l-large {
  padding-left: 3rem;
}

.u-p-l-xlarge {
  padding-left: 4rem;
}

.u-p-l-xxlarge {
  padding-left: 5rem;
}

.u-p-l-xxxlarge {
  padding-left: 6rem;
}

.u-p-t-none {
  padding-top: 0;
}

.u-p-t-small {
  padding-top: 1rem;
}

.u-p-t-medium {
  padding-top: 2rem;
}

.u-p-t-large {
  padding-top: 3rem;
}

.u-p-t-xlarge {
  padding-top: 4rem;
}

.u-p-t-xxlarge {
  padding-top: 5rem;
}

.u-p-t-xxxlarge {
  padding-top: 6rem;
}

.u-p-b-none {
  padding-bottom: 0;
}

.u-p-b-small {
  padding-bottom: 1rem;
}

.u-p-b-medium {
  padding-bottom: 2rem;
}

.u-p-b-large {
  padding-bottom: 3rem;
}

.u-p-b-xlarge {
  padding-bottom: 4rem;
}

.u-p-b-xxlarge {
  padding-bottom: 5rem;
}

.u-p-b-xxxlarge {
  padding-bottom: 6rem;
}

@media (max-width: 84.375em) {
  .u-m-tablet-none {
    margin: 0!important;
  }

  .u-m-tablet-small {
    margin: 1rem!important;
  }

  .u-m-tablet-medium {
    margin: 2rem!important;
  }

  .u-m-tablet-large {
    margin: 3rem!important;
  }

  .u-m-tablet-xlarge {
    margin: 4rem!important;
  }

  .u-m-tablet-xxlarge {
    margin: 5rem!important;
  }

  .u-m-tablet-xxxlarge {
    margin: 6rem!important;
  }

  .u-m-tablet-r-none {
    margin-right: 0!important;
  }

  .u-m-tablet-r-small {
    margin-right: 1rem!important;
  }

  .u-m-tablet-r-medium {
    margin-right: 2rem!important;
  }

  .u-m-tablet-r-large {
    margin-right: 3rem!important;
  }

  .u-m-tablet-r-xlarge {
    margin-right: 4rem!important;
  }

  .u-m-tablet-r-xxlarge {
    margin-right: 5rem!important;
  }

  .u-m-tablet-r-xxxlarge {
    margin-right: 6rem!important;
  }

  .u-m-tablet-l-none {
    margin-left: 0!important;
  }

  .u-m-tablet-l-small {
    margin-left: 1rem!important;
  }

  .u-m-tablet-l-medium {
    margin-left: 2rem!important;
  }

  .u-m-tablet-l-large {
    margin-left: 3rem!important;
  }

  .u-m-tablet-l-xlarge {
    margin-left: 4rem!important;
  }

  .u-m-tablet-l-xxlarge {
    margin-left: 5rem!important;
  }

  .u-m-tablet-l-xxxlarge {
    margin-left: 6rem!important;
  }

  .u-m-tablet-t-none {
    margin-top: 0!important;
  }

  .u-m-tablet-t-small {
    margin-top: 1rem!important;
  }

  .u-m-tablet-t-medium {
    margin-top: 2rem!important;
  }

  .u-m-tablet-t-large {
    margin-top: 3rem!important;
  }

  .u-m-tablet-t-xlarge {
    margin-top: 4rem!important;
  }

  .u-m-tablet-t-xxlarge {
    margin-top: 5rem!important;
  }

  .u-m-tablet-t-xxxlarge {
    margin-top: 6rem!important;
  }

  .u-m-tablet-b-none {
    margin-bottom: 0!important;
  }

  .u-m-tablet-b-small {
    margin-bottom: 1rem!important;
  }

  .u-m-tablet-b-medium {
    margin-bottom: 2rem!important;
  }

  .u-m-tablet-b-large {
    margin-bottom: 3rem!important;
  }

  .u-m-tablet-b-xlarge {
    margin-bottom: 4rem!important;
  }

  .u-m-tablet-b-xxlarge {
    margin-bottom: 5rem!important;
  }

  .u-m-tablet-b-xxxlarge {
    margin-bottom: 6rem!important;
  }

  .u-p-tablet-none {
    padding: 0!important;
  }

  .u-p-tablet-small {
    padding: 1rem!important;
  }

  .u-p-tablet-medium {
    padding: 2rem!important;
  }

  .u-p-tablet-large {
    padding: 3rem!important;
  }

  .u-p-tablet-xlarge {
    padding: 4rem!important;
  }

  .u-p-tablet-xxlarge {
    padding: 5rem!important;
  }

  .u-p-tablet-xxxlarge {
    padding: 6rem!important;
  }

  .u-p-tablet-r-none {
    padding-right: 0!important;
  }

  .u-p-tablet-r-small {
    padding-right: 1rem!important;
  }

  .u-p-tablet-r-medium {
    padding-right: 2rem!important;
  }

  .u-p-tablet-r-large {
    padding-right: 3rem!important;
  }

  .u-p-tablet-r-xlarge {
    padding-right: 4rem!important;
  }

  .u-p-tablet-r-xxlarge {
    padding-right: 5rem!important;
  }

  .u-p-tablet-r-xxxlarge {
    padding-right: 6rem!important;
  }

  .u-p-tablet-l-none {
    padding-left: 0!important;
  }

  .u-p-tablet-l-small {
    padding-left: 1rem!important;
  }

  .u-p-tablet-l-medium {
    padding-left: 2rem!important;
  }

  .u-p-tablet-l-large {
    padding-left: 3rem!important;
  }

  .u-p-tablet-l-xlarge {
    padding-left: 4rem!important;
  }

  .u-p-tablet-l-xxlarge {
    padding-left: 5rem!important;
  }

  .u-p-tablet-l-xxxlarge {
    padding-left: 6rem!important;
  }

  .u-p-tablet-t-none {
    padding-top: 0!important;
  }

  .u-p-tablet-t-small {
    padding-top: 1rem!important;
  }

  .u-p-tablet-t-medium {
    padding-top: 2rem!important;
  }

  .u-p-tablet-t-large {
    padding-top: 3rem!important;
  }

  .u-p-tablet-t-xlarge {
    padding-top: 4rem!important;
  }

  .u-p-tablet-t-xxlarge {
    padding-top: 5rem!important;
  }

  .u-p-tablet-t-xxxlarge {
    padding-top: 6rem!important;
  }

  .u-p-tablet-b-none {
    padding-bottom: 0!important;
  }

  .u-p-tablet-b-small {
    padding-bottom: 1rem!important;
  }

  .u-p-tablet-b-medium {
    padding-bottom: 2rem!important;
  }

  .u-p-tablet-b-large {
    padding-bottom: 3rem!important;
  }

  .u-p-tablet-b-xlarge {
    padding-bottom: 4rem!important;
  }

  .u-p-tablet-b-xxlarge {
    padding-bottom: 5rem!important;
  }

  .u-p-tablet-b-xxxlarge {
    padding-bottom: 6rem!important;
  }
}

/*!
 * Hover.css (http://ianlunn.github.io/Hover/)
 * Version: 2.2.0
 * Author: Ian Lunn @IanLunn
 * Author URL: http://ianlunn.co.uk/
 * Github: https://github.com/IanLunn/Hover

 * Hover.css Copyright Ian Lunn 2017. Generated with Sass.
 */

/* 2D TRANSITIONS */

/* Grow */

.hvr-grow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-grow:hover,
.hvr-grow:focus,
.hvr-grow:active {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

/* Shrink */

.hvr-shrink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-shrink:hover,
.hvr-shrink:focus,
.hvr-shrink:active {
  -webkit-transform: scale(0.9);
          transform: scale(0.9);
}

/* Pulse */

@-webkit-keyframes hvr-pulse {
  25% {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }

  75% {
    -webkit-transform: scale(0.9);
            transform: scale(0.9);
  }
}

@keyframes hvr-pulse {
  25% {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }

  75% {
    -webkit-transform: scale(0.9);
            transform: scale(0.9);
  }
}

.hvr-pulse {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-pulse:hover,
.hvr-pulse:focus,
.hvr-pulse:active {
  -webkit-animation-name: hvr-pulse;
          animation-name: hvr-pulse;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
}

/* Pulse Grow */

@-webkit-keyframes hvr-pulse-grow {
  to {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
}

@keyframes hvr-pulse-grow {
  to {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
}

.hvr-pulse-grow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-pulse-grow:hover,
.hvr-pulse-grow:focus,
.hvr-pulse-grow:active {
  -webkit-animation-name: hvr-pulse-grow;
          animation-name: hvr-pulse-grow;
  -webkit-animation-duration: 0.3s;
          animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-direction: alternate;
          animation-direction: alternate;
}

/* Pulse Shrink */

@-webkit-keyframes hvr-pulse-shrink {
  to {
    -webkit-transform: scale(0.9);
            transform: scale(0.9);
  }
}

@keyframes hvr-pulse-shrink {
  to {
    -webkit-transform: scale(0.9);
            transform: scale(0.9);
  }
}

.hvr-pulse-shrink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-pulse-shrink:hover,
.hvr-pulse-shrink:focus,
.hvr-pulse-shrink:active {
  -webkit-animation-name: hvr-pulse-shrink;
          animation-name: hvr-pulse-shrink;
  -webkit-animation-duration: 0.3s;
          animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-direction: alternate;
          animation-direction: alternate;
}

/* Push */

@-webkit-keyframes hvr-push {
  50% {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }

  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

@keyframes hvr-push {
  50% {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }

  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

.hvr-push {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-push:hover,
.hvr-push:focus,
.hvr-push:active {
  -webkit-animation-name: hvr-push;
          animation-name: hvr-push;
  -webkit-animation-duration: 0.3s;
          animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Pop */

@-webkit-keyframes hvr-pop {
  50% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
  }
}

@keyframes hvr-pop {
  50% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
  }
}

.hvr-pop {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-pop:hover,
.hvr-pop:focus,
.hvr-pop:active {
  -webkit-animation-name: hvr-pop;
          animation-name: hvr-pop;
  -webkit-animation-duration: 0.3s;
          animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Bounce In */

.hvr-bounce-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.5s;
}

.hvr-bounce-in:hover,
.hvr-bounce-in:focus,
.hvr-bounce-in:active {
  -webkit-transform: scale(1.2);
          transform: scale(1.2);
  transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36);
}

/* Bounce Out */

.hvr-bounce-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.5s;
}

.hvr-bounce-out:hover,
.hvr-bounce-out:focus,
.hvr-bounce-out:active {
  -webkit-transform: scale(0.8);
          transform: scale(0.8);
  transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36);
}

/* Rotate */

.hvr-rotate {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-rotate:hover,
.hvr-rotate:focus,
.hvr-rotate:active {
  -webkit-transform: rotate(4deg);
          transform: rotate(4deg);
}

/* Grow Rotate */

.hvr-grow-rotate {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-grow-rotate:hover,
.hvr-grow-rotate:focus,
.hvr-grow-rotate:active {
  -webkit-transform: scale(1.1) rotate(4deg);
          transform: scale(1.1) rotate(4deg);
}

/* Float */

.hvr-float {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out;
}

.hvr-float:hover,
.hvr-float:focus,
.hvr-float:active {
  -webkit-transform: translateY(-8px);
          transform: translateY(-8px);
}

/* Sink */

.hvr-sink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out;
}

.hvr-sink:hover,
.hvr-sink:focus,
.hvr-sink:active {
  -webkit-transform: translateY(8px);
          transform: translateY(8px);
}

/* Bob */

@-webkit-keyframes hvr-bob {
  0% {
    -webkit-transform: translateY(-8px);
            transform: translateY(-8px);
  }

  50% {
    -webkit-transform: translateY(-4px);
            transform: translateY(-4px);
  }

  100% {
    -webkit-transform: translateY(-8px);
            transform: translateY(-8px);
  }
}

@keyframes hvr-bob {
  0% {
    -webkit-transform: translateY(-8px);
            transform: translateY(-8px);
  }

  50% {
    -webkit-transform: translateY(-4px);
            transform: translateY(-4px);
  }

  100% {
    -webkit-transform: translateY(-8px);
            transform: translateY(-8px);
  }
}

@-webkit-keyframes hvr-bob-float {
  100% {
    -webkit-transform: translateY(-8px);
            transform: translateY(-8px);
  }
}

@keyframes hvr-bob-float {
  100% {
    -webkit-transform: translateY(-8px);
            transform: translateY(-8px);
  }
}

.hvr-bob {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-bob:hover,
.hvr-bob:focus,
.hvr-bob:active {
  -webkit-animation-name: hvr-bob-float, hvr-bob;
          animation-name: hvr-bob-float, hvr-bob;
  -webkit-animation-duration: .3s, 1.5s;
          animation-duration: .3s, 1.5s;
  -webkit-animation-delay: 0s, .3s;
          animation-delay: 0s, .3s;
  -webkit-animation-timing-function: ease-out, ease-in-out;
          animation-timing-function: ease-out, ease-in-out;
  -webkit-animation-iteration-count: 1, infinite;
          animation-iteration-count: 1, infinite;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-animation-direction: normal, alternate;
          animation-direction: normal, alternate;
}

/* Hang */

@-webkit-keyframes hvr-hang {
  0% {
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }

  50% {
    -webkit-transform: translateY(4px);
            transform: translateY(4px);
  }

  100% {
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }
}

@keyframes hvr-hang {
  0% {
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }

  50% {
    -webkit-transform: translateY(4px);
            transform: translateY(4px);
  }

  100% {
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }
}

@-webkit-keyframes hvr-hang-sink {
  100% {
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }
}

@keyframes hvr-hang-sink {
  100% {
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }
}

.hvr-hang {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-hang:hover,
.hvr-hang:focus,
.hvr-hang:active {
  -webkit-animation-name: hvr-hang-sink, hvr-hang;
          animation-name: hvr-hang-sink, hvr-hang;
  -webkit-animation-duration: .3s, 1.5s;
          animation-duration: .3s, 1.5s;
  -webkit-animation-delay: 0s, .3s;
          animation-delay: 0s, .3s;
  -webkit-animation-timing-function: ease-out, ease-in-out;
          animation-timing-function: ease-out, ease-in-out;
  -webkit-animation-iteration-count: 1, infinite;
          animation-iteration-count: 1, infinite;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-animation-direction: normal, alternate;
          animation-direction: normal, alternate;
}

/* Skew */

.hvr-skew {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-skew:hover,
.hvr-skew:focus,
.hvr-skew:active {
  -webkit-transform: skew(-10deg);
          transform: skew(-10deg);
}

/* Skew Forward */

.hvr-skew-forward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-transform-origin: 0 100%;
          transform-origin: 0 100%;
}

.hvr-skew-forward:hover,
.hvr-skew-forward:focus,
.hvr-skew-forward:active {
  -webkit-transform: skew(-10deg);
          transform: skew(-10deg);
}

/* Skew Backward */

.hvr-skew-backward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-transform-origin: 0 100%;
          transform-origin: 0 100%;
}

.hvr-skew-backward:hover,
.hvr-skew-backward:focus,
.hvr-skew-backward:active {
  -webkit-transform: skew(10deg);
          transform: skew(10deg);
}

/* Wobble Vertical */

@-webkit-keyframes hvr-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }

  33.3% {
    -webkit-transform: translateY(-6px);
            transform: translateY(-6px);
  }

  49.95% {
    -webkit-transform: translateY(4px);
            transform: translateY(4px);
  }

  66.6% {
    -webkit-transform: translateY(-2px);
            transform: translateY(-2px);
  }

  83.25% {
    -webkit-transform: translateY(1px);
            transform: translateY(1px);
  }

  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes hvr-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }

  33.3% {
    -webkit-transform: translateY(-6px);
            transform: translateY(-6px);
  }

  49.95% {
    -webkit-transform: translateY(4px);
            transform: translateY(4px);
  }

  66.6% {
    -webkit-transform: translateY(-2px);
            transform: translateY(-2px);
  }

  83.25% {
    -webkit-transform: translateY(1px);
            transform: translateY(1px);
  }

  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

.hvr-wobble-vertical {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-wobble-vertical:hover,
.hvr-wobble-vertical:focus,
.hvr-wobble-vertical:active {
  -webkit-animation-name: hvr-wobble-vertical;
          animation-name: hvr-wobble-vertical;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Wobble Horizontal */

@-webkit-keyframes hvr-wobble-horizontal {
  16.65% {
    -webkit-transform: translateX(8px);
            transform: translateX(8px);
  }

  33.3% {
    -webkit-transform: translateX(-6px);
            transform: translateX(-6px);
  }

  49.95% {
    -webkit-transform: translateX(4px);
            transform: translateX(4px);
  }

  66.6% {
    -webkit-transform: translateX(-2px);
            transform: translateX(-2px);
  }

  83.25% {
    -webkit-transform: translateX(1px);
            transform: translateX(1px);
  }

  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}

@keyframes hvr-wobble-horizontal {
  16.65% {
    -webkit-transform: translateX(8px);
            transform: translateX(8px);
  }

  33.3% {
    -webkit-transform: translateX(-6px);
            transform: translateX(-6px);
  }

  49.95% {
    -webkit-transform: translateX(4px);
            transform: translateX(4px);
  }

  66.6% {
    -webkit-transform: translateX(-2px);
            transform: translateX(-2px);
  }

  83.25% {
    -webkit-transform: translateX(1px);
            transform: translateX(1px);
  }

  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}

.hvr-wobble-horizontal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-wobble-horizontal:hover,
.hvr-wobble-horizontal:focus,
.hvr-wobble-horizontal:active {
  -webkit-animation-name: hvr-wobble-horizontal;
          animation-name: hvr-wobble-horizontal;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Wobble To Bottom Right */

@-webkit-keyframes hvr-wobble-to-bottom-right {
  16.65% {
    -webkit-transform: translate(8px, 8px);
            transform: translate(8px, 8px);
  }

  33.3% {
    -webkit-transform: translate(-6px, -6px);
            transform: translate(-6px, -6px);
  }

  49.95% {
    -webkit-transform: translate(4px, 4px);
            transform: translate(4px, 4px);
  }

  66.6% {
    -webkit-transform: translate(-2px, -2px);
            transform: translate(-2px, -2px);
  }

  83.25% {
    -webkit-transform: translate(1px, 1px);
            transform: translate(1px, 1px);
  }

  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
}

@keyframes hvr-wobble-to-bottom-right {
  16.65% {
    -webkit-transform: translate(8px, 8px);
            transform: translate(8px, 8px);
  }

  33.3% {
    -webkit-transform: translate(-6px, -6px);
            transform: translate(-6px, -6px);
  }

  49.95% {
    -webkit-transform: translate(4px, 4px);
            transform: translate(4px, 4px);
  }

  66.6% {
    -webkit-transform: translate(-2px, -2px);
            transform: translate(-2px, -2px);
  }

  83.25% {
    -webkit-transform: translate(1px, 1px);
            transform: translate(1px, 1px);
  }

  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
}

.hvr-wobble-to-bottom-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-wobble-to-bottom-right:hover,
.hvr-wobble-to-bottom-right:focus,
.hvr-wobble-to-bottom-right:active {
  -webkit-animation-name: hvr-wobble-to-bottom-right;
          animation-name: hvr-wobble-to-bottom-right;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Wobble To Top Right */

@-webkit-keyframes hvr-wobble-to-top-right {
  16.65% {
    -webkit-transform: translate(8px, -8px);
            transform: translate(8px, -8px);
  }

  33.3% {
    -webkit-transform: translate(-6px, 6px);
            transform: translate(-6px, 6px);
  }

  49.95% {
    -webkit-transform: translate(4px, -4px);
            transform: translate(4px, -4px);
  }

  66.6% {
    -webkit-transform: translate(-2px, 2px);
            transform: translate(-2px, 2px);
  }

  83.25% {
    -webkit-transform: translate(1px, -1px);
            transform: translate(1px, -1px);
  }

  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
}

@keyframes hvr-wobble-to-top-right {
  16.65% {
    -webkit-transform: translate(8px, -8px);
            transform: translate(8px, -8px);
  }

  33.3% {
    -webkit-transform: translate(-6px, 6px);
            transform: translate(-6px, 6px);
  }

  49.95% {
    -webkit-transform: translate(4px, -4px);
            transform: translate(4px, -4px);
  }

  66.6% {
    -webkit-transform: translate(-2px, 2px);
            transform: translate(-2px, 2px);
  }

  83.25% {
    -webkit-transform: translate(1px, -1px);
            transform: translate(1px, -1px);
  }

  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
}

.hvr-wobble-to-top-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-wobble-to-top-right:hover,
.hvr-wobble-to-top-right:focus,
.hvr-wobble-to-top-right:active {
  -webkit-animation-name: hvr-wobble-to-top-right;
          animation-name: hvr-wobble-to-top-right;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Wobble Top */

@-webkit-keyframes hvr-wobble-top {
  16.65% {
    -webkit-transform: skew(-12deg);
            transform: skew(-12deg);
  }

  33.3% {
    -webkit-transform: skew(10deg);
            transform: skew(10deg);
  }

  49.95% {
    -webkit-transform: skew(-6deg);
            transform: skew(-6deg);
  }

  66.6% {
    -webkit-transform: skew(4deg);
            transform: skew(4deg);
  }

  83.25% {
    -webkit-transform: skew(-2deg);
            transform: skew(-2deg);
  }

  100% {
    -webkit-transform: skew(0);
            transform: skew(0);
  }
}

@keyframes hvr-wobble-top {
  16.65% {
    -webkit-transform: skew(-12deg);
            transform: skew(-12deg);
  }

  33.3% {
    -webkit-transform: skew(10deg);
            transform: skew(10deg);
  }

  49.95% {
    -webkit-transform: skew(-6deg);
            transform: skew(-6deg);
  }

  66.6% {
    -webkit-transform: skew(4deg);
            transform: skew(4deg);
  }

  83.25% {
    -webkit-transform: skew(-2deg);
            transform: skew(-2deg);
  }

  100% {
    -webkit-transform: skew(0);
            transform: skew(0);
  }
}

.hvr-wobble-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  -webkit-transform-origin: 0 100%;
          transform-origin: 0 100%;
}

.hvr-wobble-top:hover,
.hvr-wobble-top:focus,
.hvr-wobble-top:active {
  -webkit-animation-name: hvr-wobble-top;
          animation-name: hvr-wobble-top;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Wobble Bottom */

@-webkit-keyframes hvr-wobble-bottom {
  16.65% {
    -webkit-transform: skew(-12deg);
            transform: skew(-12deg);
  }

  33.3% {
    -webkit-transform: skew(10deg);
            transform: skew(10deg);
  }

  49.95% {
    -webkit-transform: skew(-6deg);
            transform: skew(-6deg);
  }

  66.6% {
    -webkit-transform: skew(4deg);
            transform: skew(4deg);
  }

  83.25% {
    -webkit-transform: skew(-2deg);
            transform: skew(-2deg);
  }

  100% {
    -webkit-transform: skew(0);
            transform: skew(0);
  }
}

@keyframes hvr-wobble-bottom {
  16.65% {
    -webkit-transform: skew(-12deg);
            transform: skew(-12deg);
  }

  33.3% {
    -webkit-transform: skew(10deg);
            transform: skew(10deg);
  }

  49.95% {
    -webkit-transform: skew(-6deg);
            transform: skew(-6deg);
  }

  66.6% {
    -webkit-transform: skew(4deg);
            transform: skew(4deg);
  }

  83.25% {
    -webkit-transform: skew(-2deg);
            transform: skew(-2deg);
  }

  100% {
    -webkit-transform: skew(0);
            transform: skew(0);
  }
}

.hvr-wobble-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  -webkit-transform-origin: 100% 0;
          transform-origin: 100% 0;
}

.hvr-wobble-bottom:hover,
.hvr-wobble-bottom:focus,
.hvr-wobble-bottom:active {
  -webkit-animation-name: hvr-wobble-bottom;
          animation-name: hvr-wobble-bottom;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Wobble Skew */

@-webkit-keyframes hvr-wobble-skew {
  16.65% {
    -webkit-transform: skew(-12deg);
            transform: skew(-12deg);
  }

  33.3% {
    -webkit-transform: skew(10deg);
            transform: skew(10deg);
  }

  49.95% {
    -webkit-transform: skew(-6deg);
            transform: skew(-6deg);
  }

  66.6% {
    -webkit-transform: skew(4deg);
            transform: skew(4deg);
  }

  83.25% {
    -webkit-transform: skew(-2deg);
            transform: skew(-2deg);
  }

  100% {
    -webkit-transform: skew(0);
            transform: skew(0);
  }
}

@keyframes hvr-wobble-skew {
  16.65% {
    -webkit-transform: skew(-12deg);
            transform: skew(-12deg);
  }

  33.3% {
    -webkit-transform: skew(10deg);
            transform: skew(10deg);
  }

  49.95% {
    -webkit-transform: skew(-6deg);
            transform: skew(-6deg);
  }

  66.6% {
    -webkit-transform: skew(4deg);
            transform: skew(4deg);
  }

  83.25% {
    -webkit-transform: skew(-2deg);
            transform: skew(-2deg);
  }

  100% {
    -webkit-transform: skew(0);
            transform: skew(0);
  }
}

.hvr-wobble-skew {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-wobble-skew:hover,
.hvr-wobble-skew:focus,
.hvr-wobble-skew:active {
  -webkit-animation-name: hvr-wobble-skew;
          animation-name: hvr-wobble-skew;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Buzz */

@-webkit-keyframes hvr-buzz {
  50% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }

  100% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }
}

@keyframes hvr-buzz {
  50% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }

  100% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }
}

.hvr-buzz {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-buzz:hover,
.hvr-buzz:focus,
.hvr-buzz:active {
  -webkit-animation-name: hvr-buzz;
          animation-name: hvr-buzz;
  -webkit-animation-duration: 0.15s;
          animation-duration: 0.15s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
}

/* Buzz Out */

@-webkit-keyframes hvr-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }

  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }

  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }

  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }

  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
            transform: translateX(2px) rotate(1deg);
  }

  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
            transform: translateX(-2px) rotate(-1deg);
  }

  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
            transform: translateX(2px) rotate(1deg);
  }

  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
            transform: translateX(-2px) rotate(-1deg);
  }

  90% {
    -webkit-transform: translateX(1px) rotate(0);
            transform: translateX(1px) rotate(0);
  }

  100% {
    -webkit-transform: translateX(-1px) rotate(0);
            transform: translateX(-1px) rotate(0);
  }
}

@keyframes hvr-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }

  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }

  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }

  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }

  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
            transform: translateX(2px) rotate(1deg);
  }

  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
            transform: translateX(-2px) rotate(-1deg);
  }

  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
            transform: translateX(2px) rotate(1deg);
  }

  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
            transform: translateX(-2px) rotate(-1deg);
  }

  90% {
    -webkit-transform: translateX(1px) rotate(0);
            transform: translateX(1px) rotate(0);
  }

  100% {
    -webkit-transform: translateX(-1px) rotate(0);
            transform: translateX(-1px) rotate(0);
  }
}

.hvr-buzz-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}

.hvr-buzz-out:hover,
.hvr-buzz-out:focus,
.hvr-buzz-out:active {
  -webkit-animation-name: hvr-buzz-out;
          animation-name: hvr-buzz-out;
  -webkit-animation-duration: 0.75s;
          animation-duration: 0.75s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Forward */

.hvr-forward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-forward:hover,
.hvr-forward:focus,
.hvr-forward:active {
  -webkit-transform: translateX(8px);
          transform: translateX(8px);
}

/* Backward */

.hvr-backward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-backward:hover,
.hvr-backward:focus,
.hvr-backward:active {
  -webkit-transform: translateX(-8px);
          transform: translateX(-8px);
}

/* BACKGROUND TRANSITIONS */

/* Fade */

.hvr-fade {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  overflow: hidden;
  transition-duration: 0.3s;
  transition-property: color, background-color;
}

.hvr-fade:hover,
.hvr-fade:focus,
.hvr-fade:active {
  background-color: #2098D1;
  color: white;
}

/* Back Pulse */

@-webkit-keyframes hvr-back-pulse {
  50% {
    background-color: rgba(32, 152, 209, 0.75);
  }
}

@keyframes hvr-back-pulse {
  50% {
    background-color: rgba(32, 152, 209, 0.75);
  }
}

.hvr-back-pulse {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  overflow: hidden;
  transition-duration: 0.5s;
  transition-property: color, background-color;
}

.hvr-back-pulse:hover,
.hvr-back-pulse:focus,
.hvr-back-pulse:active {
  -webkit-animation-name: hvr-back-pulse;
          animation-name: hvr-back-pulse;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-delay: 0.5s;
          animation-delay: 0.5s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  background-color: #2098D1;
  background-color: #2098d1;
  color: white;
}

/* Sweep To Right */

.hvr-sweep-to-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  transition-property: color;
  transition-duration: 0.3s;
}

.hvr-sweep-to-right:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2098D1;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-sweep-to-right:hover,
.hvr-sweep-to-right:focus,
.hvr-sweep-to-right:active {
  color: white;
}

.hvr-sweep-to-right:hover:before,
.hvr-sweep-to-right:focus:before,
.hvr-sweep-to-right:active:before {
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
}

/* Sweep To Left */

.hvr-sweep-to-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  transition-property: color;
  transition-duration: 0.3s;
}

.hvr-sweep-to-left:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2098D1;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: 100% 50%;
          transform-origin: 100% 50%;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-sweep-to-left:hover,
.hvr-sweep-to-left:focus,
.hvr-sweep-to-left:active {
  color: white;
}

.hvr-sweep-to-left:hover:before,
.hvr-sweep-to-left:focus:before,
.hvr-sweep-to-left:active:before {
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
}

/* Sweep To Bottom */

.hvr-sweep-to-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  transition-property: color;
  transition-duration: 0.3s;
}

.hvr-sweep-to-bottom:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2098D1;
  -webkit-transform: scaleY(0);
          transform: scaleY(0);
  -webkit-transform-origin: 50% 0;
          transform-origin: 50% 0;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-sweep-to-bottom:hover,
.hvr-sweep-to-bottom:focus,
.hvr-sweep-to-bottom:active {
  color: white;
}

.hvr-sweep-to-bottom:hover:before,
.hvr-sweep-to-bottom:focus:before,
.hvr-sweep-to-bottom:active:before {
  -webkit-transform: scaleY(1);
          transform: scaleY(1);
}

/* Sweep To Top */

.hvr-sweep-to-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  transition-property: color;
  transition-duration: 0.3s;
}

.hvr-sweep-to-top:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2098D1;
  -webkit-transform: scaleY(0);
          transform: scaleY(0);
  -webkit-transform-origin: 50% 100%;
          transform-origin: 50% 100%;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-sweep-to-top:hover,
.hvr-sweep-to-top:focus,
.hvr-sweep-to-top:active {
  color: white;
}

.hvr-sweep-to-top:hover:before,
.hvr-sweep-to-top:focus:before,
.hvr-sweep-to-top:active:before {
  -webkit-transform: scaleY(1);
          transform: scaleY(1);
}

/* Bounce To Right */

.hvr-bounce-to-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  transition-property: color;
  transition-duration: 0.5s;
}

.hvr-bounce-to-right:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2098D1;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.5s;
  transition-timing-function: ease-out;
}

.hvr-bounce-to-right:hover,
.hvr-bounce-to-right:focus,
.hvr-bounce-to-right:active {
  color: white;
}

.hvr-bounce-to-right:hover:before,
.hvr-bounce-to-right:focus:before,
.hvr-bounce-to-right:active:before {
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
  transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
}

/* Bounce To Left */

.hvr-bounce-to-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  transition-property: color;
  transition-duration: 0.5s;
}

.hvr-bounce-to-left:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2098D1;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: 100% 50%;
          transform-origin: 100% 50%;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.5s;
  transition-timing-function: ease-out;
}

.hvr-bounce-to-left:hover,
.hvr-bounce-to-left:focus,
.hvr-bounce-to-left:active {
  color: white;
}

.hvr-bounce-to-left:hover:before,
.hvr-bounce-to-left:focus:before,
.hvr-bounce-to-left:active:before {
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
  transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
}

/* Bounce To Bottom */

.hvr-bounce-to-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  transition-property: color;
  transition-duration: 0.5s;
}

.hvr-bounce-to-bottom:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2098D1;
  -webkit-transform: scaleY(0);
          transform: scaleY(0);
  -webkit-transform-origin: 50% 0;
          transform-origin: 50% 0;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.5s;
  transition-timing-function: ease-out;
}

.hvr-bounce-to-bottom:hover,
.hvr-bounce-to-bottom:focus,
.hvr-bounce-to-bottom:active {
  color: white;
}

.hvr-bounce-to-bottom:hover:before,
.hvr-bounce-to-bottom:focus:before,
.hvr-bounce-to-bottom:active:before {
  -webkit-transform: scaleY(1);
          transform: scaleY(1);
  transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
}

/* Bounce To Top */

.hvr-bounce-to-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  transition-property: color;
  transition-duration: 0.5s;
}

.hvr-bounce-to-top:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2098D1;
  -webkit-transform: scaleY(0);
          transform: scaleY(0);
  -webkit-transform-origin: 50% 100%;
          transform-origin: 50% 100%;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.5s;
  transition-timing-function: ease-out;
}

.hvr-bounce-to-top:hover,
.hvr-bounce-to-top:focus,
.hvr-bounce-to-top:active {
  color: white;
}

.hvr-bounce-to-top:hover:before,
.hvr-bounce-to-top:focus:before,
.hvr-bounce-to-top:active:before {
  -webkit-transform: scaleY(1);
          transform: scaleY(1);
  transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
}

/* Radial Out */

.hvr-radial-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  overflow: hidden;
  background: #e1e1e1;
  transition-property: color;
  transition-duration: 0.3s;
}

.hvr-radial-out:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2098D1;
  border-radius: 100%;
  -webkit-transform: scale(0);
          transform: scale(0);
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-radial-out:hover,
.hvr-radial-out:focus,
.hvr-radial-out:active {
  color: white;
}

.hvr-radial-out:hover:before,
.hvr-radial-out:focus:before,
.hvr-radial-out:active:before {
  -webkit-transform: scale(2);
          transform: scale(2);
}

/* Radial In */

.hvr-radial-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  overflow: hidden;
  background: #2098D1;
  transition-property: color;
  transition-duration: 0.3s;
}

.hvr-radial-in:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #e1e1e1;
  border-radius: 100%;
  -webkit-transform: scale(2);
          transform: scale(2);
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-radial-in:hover,
.hvr-radial-in:focus,
.hvr-radial-in:active {
  color: white;
}

.hvr-radial-in:hover:before,
.hvr-radial-in:focus:before,
.hvr-radial-in:active:before {
  -webkit-transform: scale(0);
          transform: scale(0);
}

/* Rectangle In */

.hvr-rectangle-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  background: #2098D1;
  transition-property: color;
  transition-duration: 0.3s;
}

.hvr-rectangle-in:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #e1e1e1;
  -webkit-transform: scale(1);
          transform: scale(1);
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-rectangle-in:hover,
.hvr-rectangle-in:focus,
.hvr-rectangle-in:active {
  color: white;
}

.hvr-rectangle-in:hover:before,
.hvr-rectangle-in:focus:before,
.hvr-rectangle-in:active:before {
  -webkit-transform: scale(0);
          transform: scale(0);
}

/* Rectangle Out */

.hvr-rectangle-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  background: #e1e1e1;
  transition-property: color;
  transition-duration: 0.3s;
}

.hvr-rectangle-out:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2098D1;
  -webkit-transform: scale(0);
          transform: scale(0);
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-rectangle-out:hover,
.hvr-rectangle-out:focus,
.hvr-rectangle-out:active {
  color: white;
}

.hvr-rectangle-out:hover:before,
.hvr-rectangle-out:focus:before,
.hvr-rectangle-out:active:before {
  -webkit-transform: scale(1);
          transform: scale(1);
}

/* Shutter In Horizontal */

.hvr-shutter-in-horizontal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  background: #2098D1;
  transition-property: color;
  transition-duration: 0.3s;
}

.hvr-shutter-in-horizontal:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #e1e1e1;
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
  -webkit-transform-origin: 50%;
          transform-origin: 50%;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-shutter-in-horizontal:hover,
.hvr-shutter-in-horizontal:focus,
.hvr-shutter-in-horizontal:active {
  color: white;
}

.hvr-shutter-in-horizontal:hover:before,
.hvr-shutter-in-horizontal:focus:before,
.hvr-shutter-in-horizontal:active:before {
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
}

/* Shutter Out Horizontal */

.hvr-shutter-out-horizontal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  background: #e1e1e1;
  transition-property: color;
  transition-duration: 0.3s;
}

.hvr-shutter-out-horizontal:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #2098D1;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: 50%;
          transform-origin: 50%;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-shutter-out-horizontal:hover,
.hvr-shutter-out-horizontal:focus,
.hvr-shutter-out-horizontal:active {
  color: white;
}

.hvr-shutter-out-horizontal:hover:before,
.hvr-shutter-out-horizontal:focus:before,
.hvr-shutter-out-horizontal:active:before {
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
}

/* Shutter In Vertical */

.hvr-shutter-in-vertical {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  background: #2098D1;
  transition-property: color;
  transition-duration: 0.3s;
}

.hvr-shutter-in-vertical:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #e1e1e1;
  -webkit-transform: scaleY(1);
          transform: scaleY(1);
  -webkit-transform-origin: 50%;
          transform-origin: 50%;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-shutter-in-vertical:hover,
.hvr-shutter-in-vertical:focus,
.hvr-shutter-in-vertical:active {
  color: white;
}

.hvr-shutter-in-vertical:hover:before,
.hvr-shutter-in-vertical:focus:before,
.hvr-shutter-in-vertical:active:before {
  -webkit-transform: scaleY(0);
          transform: scaleY(0);
}

/* Shutter Out Vertical */

.hvr-shutter-out-vertical {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  background: #e1e1e1;
  transition-property: color;
  transition-duration: 0.3s;
}

.hvr-shutter-out-vertical:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #2098D1;
  -webkit-transform: scaleY(0);
          transform: scaleY(0);
  -webkit-transform-origin: 50%;
          transform-origin: 50%;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-shutter-out-vertical:hover,
.hvr-shutter-out-vertical:focus,
.hvr-shutter-out-vertical:active {
  color: white;
}

.hvr-shutter-out-vertical:hover:before,
.hvr-shutter-out-vertical:focus:before,
.hvr-shutter-out-vertical:active:before {
  -webkit-transform: scaleY(1);
          transform: scaleY(1);
}

/* BORDER TRANSITIONS */

/* Border Fade */

.hvr-border-fade {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: box-shadow;
  box-shadow: inset 0 0 0 4px #e1e1e1, 0 0 1px rgba(0, 0, 0, 0);
  /* Hack to improve aliasing on mobile/tablet devices */
}

.hvr-border-fade:hover,
.hvr-border-fade:focus,
.hvr-border-fade:active {
  box-shadow: inset 0 0 0 4px #2098D1, 0 0 1px rgba(0, 0, 0, 0);
  /* Hack to improve aliasing on mobile/tablet devices */
}

/* Hollow */

.hvr-hollow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: background;
  box-shadow: inset 0 0 0 4px #e1e1e1, 0 0 1px rgba(0, 0, 0, 0);
  /* Hack to improve aliasing on mobile/tablet devices */
}

.hvr-hollow:hover,
.hvr-hollow:focus,
.hvr-hollow:active {
  background: none;
}

/* Trim */

.hvr-trim {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-trim:before {
  content: '';
  position: absolute;
  border: white solid 4px;
  top: 4px;
  left: 4px;
  right: 4px;
  bottom: 4px;
  opacity: 0;
  transition-duration: 0.3s;
  transition-property: opacity;
}

.hvr-trim:hover:before,
.hvr-trim:focus:before,
.hvr-trim:active:before {
  opacity: 1;
}

/* Ripple Out */

@-webkit-keyframes hvr-ripple-out {
  100% {
    top: -12px;
    right: -12px;
    bottom: -12px;
    left: -12px;
    opacity: 0;
  }
}

@keyframes hvr-ripple-out {
  100% {
    top: -12px;
    right: -12px;
    bottom: -12px;
    left: -12px;
    opacity: 0;
  }
}

.hvr-ripple-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-ripple-out:before {
  content: '';
  position: absolute;
  border: #e1e1e1 solid 6px;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
}

.hvr-ripple-out:hover:before,
.hvr-ripple-out:focus:before,
.hvr-ripple-out:active:before {
  -webkit-animation-name: hvr-ripple-out;
          animation-name: hvr-ripple-out;
}

/* Ripple In */

@-webkit-keyframes hvr-ripple-in {
  100% {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 1;
  }
}

@keyframes hvr-ripple-in {
  100% {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 1;
  }
}

.hvr-ripple-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-ripple-in:before {
  content: '';
  position: absolute;
  border: #e1e1e1 solid 4px;
  top: -12px;
  right: -12px;
  bottom: -12px;
  left: -12px;
  opacity: 0;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
}

.hvr-ripple-in:hover:before,
.hvr-ripple-in:focus:before,
.hvr-ripple-in:active:before {
  -webkit-animation-name: hvr-ripple-in;
          animation-name: hvr-ripple-in;
}

/* Outline Out */

.hvr-outline-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-outline-out:before {
  content: '';
  position: absolute;
  border: #e1e1e1 solid 4px;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  transition-duration: 0.3s;
  transition-property: top, right, bottom, left;
}

.hvr-outline-out:hover:before,
.hvr-outline-out:focus:before,
.hvr-outline-out:active:before {
  top: -8px;
  right: -8px;
  bottom: -8px;
  left: -8px;
}

/* Outline In */

.hvr-outline-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-outline-in:before {
  pointer-events: none;
  content: '';
  position: absolute;
  border: #e1e1e1 solid 4px;
  top: -16px;
  right: -16px;
  bottom: -16px;
  left: -16px;
  opacity: 0;
  transition-duration: 0.3s;
  transition-property: top, right, bottom, left;
}

.hvr-outline-in:hover:before,
.hvr-outline-in:focus:before,
.hvr-outline-in:active:before {
  top: -8px;
  right: -8px;
  bottom: -8px;
  left: -8px;
  opacity: 1;
}

/* Round Corners */

.hvr-round-corners {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: border-radius;
}

.hvr-round-corners:hover,
.hvr-round-corners:focus,
.hvr-round-corners:active {
  border-radius: 1em;
}

/* Underline From Left */

.hvr-underline-from-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  overflow: hidden;
}

.hvr-underline-from-left:before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  right: 100%;
  bottom: 0;
  background: #2098D1;
  height: 4px;
  transition-property: right;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-underline-from-left:hover:before,
.hvr-underline-from-left:focus:before,
.hvr-underline-from-left:active:before {
  right: 0;
}

/* Underline From Center */

.hvr-underline-from-center {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  overflow: hidden;
}

.hvr-underline-from-center:before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  right: 50%;
  bottom: 0;
  background: #2098D1;
  height: 4px;
  transition-property: left, right;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-underline-from-center:hover:before,
.hvr-underline-from-center:focus:before,
.hvr-underline-from-center:active:before {
  left: 0;
  right: 0;
}

/* Underline From Right */

.hvr-underline-from-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  overflow: hidden;
}

.hvr-underline-from-right:before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 100%;
  right: 0;
  bottom: 0;
  background: #2098D1;
  height: 4px;
  transition-property: left;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-underline-from-right:hover:before,
.hvr-underline-from-right:focus:before,
.hvr-underline-from-right:active:before {
  left: 0;
}

/* Overline From Left */

.hvr-overline-from-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  overflow: hidden;
}

.hvr-overline-from-left:before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  right: 100%;
  top: 0;
  background: #2098D1;
  height: 4px;
  transition-property: right;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-overline-from-left:hover:before,
.hvr-overline-from-left:focus:before,
.hvr-overline-from-left:active:before {
  right: 0;
}

/* Overline From Center */

.hvr-overline-from-center {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  overflow: hidden;
}

.hvr-overline-from-center:before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  right: 50%;
  top: 0;
  background: #2098D1;
  height: 4px;
  transition-property: left, right;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-overline-from-center:hover:before,
.hvr-overline-from-center:focus:before,
.hvr-overline-from-center:active:before {
  left: 0;
  right: 0;
}

/* Overline From Right */

.hvr-overline-from-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  overflow: hidden;
}

.hvr-overline-from-right:before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 100%;
  right: 0;
  top: 0;
  background: #2098D1;
  height: 4px;
  transition-property: left;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-overline-from-right:hover:before,
.hvr-overline-from-right:focus:before,
.hvr-overline-from-right:active:before {
  left: 0;
}

/* Reveal */

.hvr-reveal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  overflow: hidden;
}

.hvr-reveal:before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  border-color: #2098D1;
  border-style: solid;
  border-width: 0;
  transition-property: border-width;
  transition-duration: 0.1s;
  transition-timing-function: ease-out;
}

.hvr-reveal:hover:before,
.hvr-reveal:focus:before,
.hvr-reveal:active:before {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  border-width: 4px;
}

/* Underline Reveal */

.hvr-underline-reveal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  overflow: hidden;
}

.hvr-underline-reveal:before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2098D1;
  height: 4px;
  -webkit-transform: translateY(4px);
          transform: translateY(4px);
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-underline-reveal:hover:before,
.hvr-underline-reveal:focus:before,
.hvr-underline-reveal:active:before {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/* Overline Reveal */

.hvr-overline-reveal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  overflow: hidden;
}

.hvr-overline-reveal:before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  right: 0;
  top: 0;
  background: #2098D1;
  height: 4px;
  -webkit-transform: translateY(-4px);
          transform: translateY(-4px);
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

.hvr-overline-reveal:hover:before,
.hvr-overline-reveal:focus:before,
.hvr-overline-reveal:active:before {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

/* SHADOW/GLOW TRANSITIONS */

/* Glow */

.hvr-glow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: box-shadow;
}

.hvr-glow:hover,
.hvr-glow:focus,
.hvr-glow:active {
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
}

/* Shadow */

.hvr-shadow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: box-shadow;
}

.hvr-shadow:hover,
.hvr-shadow:focus,
.hvr-shadow:active {
  box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.5);
}

/* Grow Shadow */

.hvr-grow-shadow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: box-shadow, -webkit-transform;
  transition-property: box-shadow, transform;
  transition-property: box-shadow, transform, -webkit-transform;
}

.hvr-grow-shadow:hover,
.hvr-grow-shadow:focus,
.hvr-grow-shadow:active {
  box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.5);
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

/* Box Shadow Outset */

.hvr-box-shadow-outset {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: box-shadow;
}

.hvr-box-shadow-outset:hover,
.hvr-box-shadow-outset:focus,
.hvr-box-shadow-outset:active {
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.6);
}

/* Box Shadow Inset */

.hvr-box-shadow-inset {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  transition-property: box-shadow;
  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0.6), 0 0 1px rgba(0, 0, 0, 0);
  /* Hack to improve aliasing on mobile/tablet devices */
}

.hvr-box-shadow-inset:hover,
.hvr-box-shadow-inset:focus,
.hvr-box-shadow-inset:active {
  box-shadow: inset 2px 2px 2px rgba(0, 0, 0, 0.6), 0 0 1px rgba(0, 0, 0, 0);
  /* Hack to improve aliasing on mobile/tablet devices */
}

/* Float Shadow */

.hvr-float-shadow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-float-shadow:before {
  pointer-events: none;
  position: absolute;
  z-index: -1;
  content: '';
  top: 100%;
  left: 5%;
  height: 10px;
  width: 90%;
  opacity: 0;
  background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 80%);
  /* W3C */
  transition-duration: 0.3s;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
}

.hvr-float-shadow:hover,
.hvr-float-shadow:focus,
.hvr-float-shadow:active {
  -webkit-transform: translateY(-5px);
          transform: translateY(-5px);
  /* move the element up by 5px */
}

.hvr-float-shadow:hover:before,
.hvr-float-shadow:focus:before,
.hvr-float-shadow:active:before {
  opacity: 1;
  -webkit-transform: translateY(5px);
          transform: translateY(5px);
  /* move the element down by 5px (it will stay in place because it's attached to the element that also moves up 5px) */
}

/* Shadow Radial */

.hvr-shadow-radial {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-shadow-radial:before,
.hvr-shadow-radial:after {
  pointer-events: none;
  position: absolute;
  content: '';
  left: 0;
  width: 100%;
  box-sizing: border-box;
  background-repeat: no-repeat;
  height: 5px;
  opacity: 0;
  transition-duration: 0.3s;
  transition-property: opacity;
}

.hvr-shadow-radial:before {
  bottom: 100%;
  background: radial-gradient(ellipse at 50% 150%, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 80%);
}

.hvr-shadow-radial:after {
  top: 100%;
  background: radial-gradient(ellipse at 50% -50%, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 80%);
}

.hvr-shadow-radial:hover:before,
.hvr-shadow-radial:focus:before,
.hvr-shadow-radial:active:before,
.hvr-shadow-radial:hover:after,
.hvr-shadow-radial:focus:after,
.hvr-shadow-radial:active:after {
  opacity: 1;
}

/* SPEECH BUBBLES */

/* Bubble Top */

.hvr-bubble-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-bubble-top:before {
  pointer-events: none;
  position: absolute;
  z-index: -1;
  content: '';
  border-style: solid;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  left: calc(50% - 10px);
  top: 0;
  border-width: 0 10px 10px 10px;
  border-color: transparent transparent #e1e1e1 transparent;
}

.hvr-bubble-top:hover:before,
.hvr-bubble-top:focus:before,
.hvr-bubble-top:active:before {
  -webkit-transform: translateY(-10px);
          transform: translateY(-10px);
}

/* Bubble Right */

.hvr-bubble-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-bubble-right:before {
  pointer-events: none;
  position: absolute;
  z-index: -1;
  content: '';
  border-style: solid;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  top: calc(50% - 10px);
  right: 0;
  border-width: 10px 0 10px 10px;
  border-color: transparent transparent transparent #e1e1e1;
}

.hvr-bubble-right:hover:before,
.hvr-bubble-right:focus:before,
.hvr-bubble-right:active:before {
  -webkit-transform: translateX(10px);
          transform: translateX(10px);
}

/* Bubble Bottom */

.hvr-bubble-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-bubble-bottom:before {
  pointer-events: none;
  position: absolute;
  z-index: -1;
  content: '';
  border-style: solid;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  left: calc(50% - 10px);
  bottom: 0;
  border-width: 10px 10px 0 10px;
  border-color: #e1e1e1 transparent transparent transparent;
}

.hvr-bubble-bottom:hover:before,
.hvr-bubble-bottom:focus:before,
.hvr-bubble-bottom:active:before {
  -webkit-transform: translateY(10px);
          transform: translateY(10px);
}

/* Bubble Left */

.hvr-bubble-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-bubble-left:before {
  pointer-events: none;
  position: absolute;
  z-index: -1;
  content: '';
  border-style: solid;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  top: calc(50% - 10px);
  left: 0;
  border-width: 10px 10px 10px 0;
  border-color: transparent #e1e1e1 transparent transparent;
}

.hvr-bubble-left:hover:before,
.hvr-bubble-left:focus:before,
.hvr-bubble-left:active:before {
  -webkit-transform: translateX(-10px);
          transform: translateX(-10px);
}

/* Bubble Float Top */

.hvr-bubble-float-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-bubble-float-top:before {
  position: absolute;
  z-index: -1;
  content: '';
  left: calc(50% - 10px);
  top: 0;
  border-style: solid;
  border-width: 0 10px 10px 10px;
  border-color: transparent transparent #e1e1e1 transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-bubble-float-top:hover,
.hvr-bubble-float-top:focus,
.hvr-bubble-float-top:active {
  -webkit-transform: translateY(10px);
          transform: translateY(10px);
}

.hvr-bubble-float-top:hover:before,
.hvr-bubble-float-top:focus:before,
.hvr-bubble-float-top:active:before {
  -webkit-transform: translateY(-10px);
          transform: translateY(-10px);
}

/* Bubble Float Right */

.hvr-bubble-float-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-bubble-float-right:before {
  position: absolute;
  z-index: -1;
  top: calc(50% - 10px);
  right: 0;
  content: '';
  border-style: solid;
  border-width: 10px 0 10px 10px;
  border-color: transparent transparent transparent #e1e1e1;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-bubble-float-right:hover,
.hvr-bubble-float-right:focus,
.hvr-bubble-float-right:active {
  -webkit-transform: translateX(-10px);
          transform: translateX(-10px);
}

.hvr-bubble-float-right:hover:before,
.hvr-bubble-float-right:focus:before,
.hvr-bubble-float-right:active:before {
  -webkit-transform: translateX(10px);
          transform: translateX(10px);
}

/* Bubble Float Bottom */

.hvr-bubble-float-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-bubble-float-bottom:before {
  position: absolute;
  z-index: -1;
  content: '';
  left: calc(50% - 10px);
  bottom: 0;
  border-style: solid;
  border-width: 10px 10px 0 10px;
  border-color: #e1e1e1 transparent transparent transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-bubble-float-bottom:hover,
.hvr-bubble-float-bottom:focus,
.hvr-bubble-float-bottom:active {
  -webkit-transform: translateY(-10px);
          transform: translateY(-10px);
}

.hvr-bubble-float-bottom:hover:before,
.hvr-bubble-float-bottom:focus:before,
.hvr-bubble-float-bottom:active:before {
  -webkit-transform: translateY(10px);
          transform: translateY(10px);
}

/* Bubble Float Left */

.hvr-bubble-float-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-bubble-float-left:before {
  position: absolute;
  z-index: -1;
  content: '';
  top: calc(50% - 10px);
  left: 0;
  border-style: solid;
  border-width: 10px 10px 10px 0;
  border-color: transparent #e1e1e1 transparent transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.hvr-bubble-float-left:hover,
.hvr-bubble-float-left:focus,
.hvr-bubble-float-left:active {
  -webkit-transform: translateX(10px);
          transform: translateX(10px);
}

.hvr-bubble-float-left:hover:before,
.hvr-bubble-float-left:focus:before,
.hvr-bubble-float-left:active:before {
  -webkit-transform: translateX(-10px);
          transform: translateX(-10px);
}

/* ICONS */

/* Icon Back */

.hvr-icon-back {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-left: 2.2em;
  transition-duration: 0.1s;
}

.hvr-icon-back:before {
  content: "\f137";
  position: absolute;
  left: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-duration: 0.1s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out;
}

.hvr-icon-back:hover:before,
.hvr-icon-back:focus:before,
.hvr-icon-back:active:before {
  -webkit-transform: translateX(-4px);
          transform: translateX(-4px);
}

/* Icon Forward */

.hvr-icon-forward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.1s;
}

.hvr-icon-forward:before {
  content: "\f138";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-duration: 0.1s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out;
}

.hvr-icon-forward:hover:before,
.hvr-icon-forward:focus:before,
.hvr-icon-forward:active:before {
  -webkit-transform: translateX(4px);
          transform: translateX(4px);
}

/* Icon Down */

@-webkit-keyframes hvr-icon-down {
  0%, 50%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }

  25%, 75% {
    -webkit-transform: translateY(6px);
            transform: translateY(6px);
  }
}

@keyframes hvr-icon-down {
  0%, 50%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }

  25%, 75% {
    -webkit-transform: translateY(6px);
            transform: translateY(6px);
  }
}

/* Icon Down */

.hvr-icon-down {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
}

.hvr-icon-down:before {
  content: "\f01a";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}

.hvr-icon-down:hover:before,
.hvr-icon-down:focus:before,
.hvr-icon-down:active:before {
  -webkit-animation-name: hvr-icon-down;
          animation-name: hvr-icon-down;
  -webkit-animation-duration: 0.75s;
          animation-duration: 0.75s;
  -webkit-animation-timing-function: ease-out;
          animation-timing-function: ease-out;
}

/* Icon Up */

@-webkit-keyframes hvr-icon-up {
  0%, 50%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }

  25%, 75% {
    -webkit-transform: translateY(-6px);
            transform: translateY(-6px);
  }
}

@keyframes hvr-icon-up {
  0%, 50%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }

  25%, 75% {
    -webkit-transform: translateY(-6px);
            transform: translateY(-6px);
  }
}

/* Icon Up */

.hvr-icon-up {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
}

.hvr-icon-up:before {
  content: "\f01b";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}

.hvr-icon-up:hover:before,
.hvr-icon-up:focus:before,
.hvr-icon-up:active:before {
  -webkit-animation-name: hvr-icon-up;
          animation-name: hvr-icon-up;
  -webkit-animation-duration: 0.75s;
          animation-duration: 0.75s;
  -webkit-animation-timing-function: ease-out;
          animation-timing-function: ease-out;
}

/* Icon Spin */

.hvr-icon-spin {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
}

.hvr-icon-spin:before {
  content: "\f021";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  transition-duration: 1s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-in-out;
}

.hvr-icon-spin:hover:before,
.hvr-icon-spin:focus:before,
.hvr-icon-spin:active:before {
  -webkit-transform: rotate(360deg);
          transform: rotate(360deg);
}

/* Icon Drop */

@-webkit-keyframes hvr-icon-drop {
  0% {
    opacity: 0;
  }

  50% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }

  51%, 100% {
    opacity: 1;
  }
}

@keyframes hvr-icon-drop {
  0% {
    opacity: 0;
  }

  50% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }

  51%, 100% {
    opacity: 1;
  }
}

/* Icon Drop */

.hvr-icon-drop {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
}

.hvr-icon-drop:before {
  content: "\f041";
  position: absolute;
  right: 1em;
  opacity: 1;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}

.hvr-icon-drop:hover:before,
.hvr-icon-drop:focus:before,
.hvr-icon-drop:active:before {
  opacity: 0;
  transition-duration: 0.3s;
  -webkit-animation-name: hvr-icon-drop;
          animation-name: hvr-icon-drop;
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
          animation-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
}

/* Icon Fade */

.hvr-icon-fade {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
}

.hvr-icon-fade:before {
  content: "\f00c";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-duration: 0.5s;
  transition-property: color;
}

.hvr-icon-fade:hover:before,
.hvr-icon-fade:focus:before,
.hvr-icon-fade:active:before {
  color: #0F9E5E;
}

/* Icon Float Away */

@-webkit-keyframes hvr-icon-float-away {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    -webkit-transform: translateY(-1em);
            transform: translateY(-1em);
  }
}

@keyframes hvr-icon-float-away {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    -webkit-transform: translateY(-1em);
            transform: translateY(-1em);
  }
}

/* Icon Float Away */

.hvr-icon-float-away {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
}

.hvr-icon-float-away:before,
.hvr-icon-float-away:after {
  content: "\f055";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
}

.hvr-icon-float-away:after {
  opacity: 0;
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

.hvr-icon-float-away:hover:after,
.hvr-icon-float-away:focus:after,
.hvr-icon-float-away:active:after {
  -webkit-animation-name: hvr-icon-float-away;
          animation-name: hvr-icon-float-away;
  -webkit-animation-timing-function: ease-out;
          animation-timing-function: ease-out;
}

/* Icon Sink Away */

@-webkit-keyframes hvr-icon-sink-away {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    -webkit-transform: translateY(1em);
            transform: translateY(1em);
  }
}

@keyframes hvr-icon-sink-away {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    -webkit-transform: translateY(1em);
            transform: translateY(1em);
  }
}

/* Icon Sink Away */

.hvr-icon-sink-away {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
}

.hvr-icon-sink-away:before,
.hvr-icon-sink-away:after {
  content: "\f056";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}

.hvr-icon-sink-away:after {
  opacity: 0;
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

.hvr-icon-sink-away:hover:after,
.hvr-icon-sink-away:focus:after,
.hvr-icon-sink-away:active:after {
  -webkit-animation-name: hvr-icon-sink-away;
          animation-name: hvr-icon-sink-away;
  -webkit-animation-timing-function: ease-out;
          animation-timing-function: ease-out;
}

/* Icon Grow */

.hvr-icon-grow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-grow:before {
  content: "\f118";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out;
}

.hvr-icon-grow:hover:before,
.hvr-icon-grow:focus:before,
.hvr-icon-grow:active:before {
  -webkit-transform: scale(1.3) translateZ(0);
          transform: scale(1.3) translateZ(0);
}

/* Icon Shrink */

.hvr-icon-shrink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-shrink:before {
  content: "\f119";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out;
}

.hvr-icon-shrink:hover:before,
.hvr-icon-shrink:focus:before,
.hvr-icon-shrink:active:before {
  -webkit-transform: scale(0.8);
          transform: scale(0.8);
}

/* Icon Pulse */

@-webkit-keyframes hvr-icon-pulse {
  25% {
    -webkit-transform: scale(1.3);
            transform: scale(1.3);
  }

  75% {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }
}

@keyframes hvr-icon-pulse {
  25% {
    -webkit-transform: scale(1.3);
            transform: scale(1.3);
  }

  75% {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }
}

.hvr-icon-pulse {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
}

.hvr-icon-pulse:before {
  content: "\f015";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-timing-function: ease-out;
}

.hvr-icon-pulse:hover:before,
.hvr-icon-pulse:focus:before,
.hvr-icon-pulse:active:before {
  -webkit-animation-name: hvr-icon-pulse;
          animation-name: hvr-icon-pulse;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
}

/* Icon Pulse Grow */

@-webkit-keyframes hvr-icon-pulse-grow {
  to {
    -webkit-transform: scale(1.3);
            transform: scale(1.3);
  }
}

@keyframes hvr-icon-pulse-grow {
  to {
    -webkit-transform: scale(1.3);
            transform: scale(1.3);
  }
}

.hvr-icon-pulse-grow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
}

.hvr-icon-pulse-grow:before {
  content: "\f015";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-timing-function: ease-out;
}

.hvr-icon-pulse-grow:hover:before,
.hvr-icon-pulse-grow:focus:before,
.hvr-icon-pulse-grow:active:before {
  -webkit-animation-name: hvr-icon-pulse-grow;
          animation-name: hvr-icon-pulse-grow;
  -webkit-animation-duration: 0.3s;
          animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-direction: alternate;
          animation-direction: alternate;
}

/* Icon Pulse Shrink */

@-webkit-keyframes hvr-icon-pulse-shrink {
  to {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }
}

@keyframes hvr-icon-pulse-shrink {
  to {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }
}

.hvr-icon-pulse-shrink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
}

.hvr-icon-pulse-shrink:before {
  content: "\f015";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-timing-function: ease-out;
}

.hvr-icon-pulse-shrink:hover:before,
.hvr-icon-pulse-shrink:focus:before,
.hvr-icon-pulse-shrink:active:before {
  -webkit-animation-name: hvr-icon-pulse-shrink;
          animation-name: hvr-icon-pulse-shrink;
  -webkit-animation-duration: 0.3s;
          animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-direction: alternate;
          animation-direction: alternate;
}

/* Icon Push */

@-webkit-keyframes hvr-icon-push {
  50% {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
  }
}

@keyframes hvr-icon-push {
  50% {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
  }
}

.hvr-icon-push {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-push:before {
  content: "\f006";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out;
}

.hvr-icon-push:hover:before,
.hvr-icon-push:focus:before,
.hvr-icon-push:active:before {
  -webkit-animation-name: hvr-icon-push;
          animation-name: hvr-icon-push;
  -webkit-animation-duration: 0.3s;
          animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Icon Pop */

@-webkit-keyframes hvr-icon-pop {
  50% {
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
  }
}

@keyframes hvr-icon-pop {
  50% {
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
  }
}

.hvr-icon-pop {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-pop:before {
  content: "\f005";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out;
}

.hvr-icon-pop:hover:before,
.hvr-icon-pop:focus:before,
.hvr-icon-pop:active:before {
  -webkit-animation-name: hvr-icon-pop;
          animation-name: hvr-icon-pop;
  -webkit-animation-duration: 0.3s;
          animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Icon Bounce */

.hvr-icon-bounce {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-bounce:before {
  content: "\f087";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out;
}

.hvr-icon-bounce:hover:before,
.hvr-icon-bounce:focus:before,
.hvr-icon-bounce:active:before {
  -webkit-transform: scale(1.5);
          transform: scale(1.5);
  transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36);
}

/* Icon Rotate */

.hvr-icon-rotate {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-rotate:before {
  content: "\f0c6";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out;
}

.hvr-icon-rotate:hover:before,
.hvr-icon-rotate:focus:before,
.hvr-icon-rotate:active:before {
  -webkit-transform: rotate(20deg);
          transform: rotate(20deg);
}

/* Icon Grow Rotate */

.hvr-icon-grow-rotate {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-grow-rotate:before {
  content: "\f095";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out;
}

.hvr-icon-grow-rotate:hover:before,
.hvr-icon-grow-rotate:focus:before,
.hvr-icon-grow-rotate:active:before {
  -webkit-transform: scale(1.5) rotate(12deg);
          transform: scale(1.5) rotate(12deg);
}

/* Icon Float */

.hvr-icon-float {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-float:before {
  content: "\f01b";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out;
}

.hvr-icon-float:hover:before,
.hvr-icon-float:focus:before,
.hvr-icon-float:active:before {
  -webkit-transform: translateY(-4px);
          transform: translateY(-4px);
}

/* Icon Sink */

.hvr-icon-sink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-sink:before {
  content: "\f01a";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out;
}

.hvr-icon-sink:hover:before,
.hvr-icon-sink:focus:before,
.hvr-icon-sink:active:before {
  -webkit-transform: translateY(4px);
          transform: translateY(4px);
}

/* Icon Bob */

@-webkit-keyframes hvr-icon-bob {
  0% {
    -webkit-transform: translateY(-6px);
            transform: translateY(-6px);
  }

  50% {
    -webkit-transform: translateY(-2px);
            transform: translateY(-2px);
  }

  100% {
    -webkit-transform: translateY(-6px);
            transform: translateY(-6px);
  }
}

@keyframes hvr-icon-bob {
  0% {
    -webkit-transform: translateY(-6px);
            transform: translateY(-6px);
  }

  50% {
    -webkit-transform: translateY(-2px);
            transform: translateY(-2px);
  }

  100% {
    -webkit-transform: translateY(-6px);
            transform: translateY(-6px);
  }
}

@-webkit-keyframes hvr-icon-bob-float {
  100% {
    -webkit-transform: translateY(-6px);
            transform: translateY(-6px);
  }
}

@keyframes hvr-icon-bob-float {
  100% {
    -webkit-transform: translateY(-6px);
            transform: translateY(-6px);
  }
}

.hvr-icon-bob {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-bob:before {
  content: "\f077";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}

.hvr-icon-bob:hover:before,
.hvr-icon-bob:focus:before,
.hvr-icon-bob:active:before {
  -webkit-animation-name: hvr-icon-bob-float, hvr-icon-bob;
          animation-name: hvr-icon-bob-float, hvr-icon-bob;
  -webkit-animation-duration: .3s, 1.5s;
          animation-duration: .3s, 1.5s;
  -webkit-animation-delay: 0s, .3s;
          animation-delay: 0s, .3s;
  -webkit-animation-timing-function: ease-out, ease-in-out;
          animation-timing-function: ease-out, ease-in-out;
  -webkit-animation-iteration-count: 1, infinite;
          animation-iteration-count: 1, infinite;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-animation-direction: normal, alternate;
          animation-direction: normal, alternate;
}

/* Icon Hang */

@-webkit-keyframes hvr-icon-hang {
  0% {
    -webkit-transform: translateY(6px);
            transform: translateY(6px);
  }

  50% {
    -webkit-transform: translateY(2px);
            transform: translateY(2px);
  }

  100% {
    -webkit-transform: translateY(6px);
            transform: translateY(6px);
  }
}

@keyframes hvr-icon-hang {
  0% {
    -webkit-transform: translateY(6px);
            transform: translateY(6px);
  }

  50% {
    -webkit-transform: translateY(2px);
            transform: translateY(2px);
  }

  100% {
    -webkit-transform: translateY(6px);
            transform: translateY(6px);
  }
}

@-webkit-keyframes hvr-icon-hang-sink {
  100% {
    -webkit-transform: translateY(6px);
            transform: translateY(6px);
  }
}

@keyframes hvr-icon-hang-sink {
  100% {
    -webkit-transform: translateY(6px);
            transform: translateY(6px);
  }
}

.hvr-icon-hang {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-hang:before {
  content: "\f078";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}

.hvr-icon-hang:hover:before,
.hvr-icon-hang:focus:before,
.hvr-icon-hang:active:before {
  -webkit-animation-name: hvr-icon-hang-sink, hvr-icon-hang;
          animation-name: hvr-icon-hang-sink, hvr-icon-hang;
  -webkit-animation-duration: .3s, 1.5s;
          animation-duration: .3s, 1.5s;
  -webkit-animation-delay: 0s, .3s;
          animation-delay: 0s, .3s;
  -webkit-animation-timing-function: ease-out, ease-in-out;
          animation-timing-function: ease-out, ease-in-out;
  -webkit-animation-iteration-count: 1, infinite;
          animation-iteration-count: 1, infinite;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-animation-direction: normal, alternate;
          animation-direction: normal, alternate;
}

/* Icon Wobble Horizontal */

@-webkit-keyframes hvr-icon-wobble-horizontal {
  16.65% {
    -webkit-transform: translateX(6px);
            transform: translateX(6px);
  }

  33.3% {
    -webkit-transform: translateX(-5px);
            transform: translateX(-5px);
  }

  49.95% {
    -webkit-transform: translateX(4px);
            transform: translateX(4px);
  }

  66.6% {
    -webkit-transform: translateX(-2px);
            transform: translateX(-2px);
  }

  83.25% {
    -webkit-transform: translateX(1px);
            transform: translateX(1px);
  }

  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}

@keyframes hvr-icon-wobble-horizontal {
  16.65% {
    -webkit-transform: translateX(6px);
            transform: translateX(6px);
  }

  33.3% {
    -webkit-transform: translateX(-5px);
            transform: translateX(-5px);
  }

  49.95% {
    -webkit-transform: translateX(4px);
            transform: translateX(4px);
  }

  66.6% {
    -webkit-transform: translateX(-2px);
            transform: translateX(-2px);
  }

  83.25% {
    -webkit-transform: translateX(1px);
            transform: translateX(1px);
  }

  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}

.hvr-icon-wobble-horizontal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-wobble-horizontal:before {
  content: "\f061";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}

.hvr-icon-wobble-horizontal:hover:before,
.hvr-icon-wobble-horizontal:focus:before,
.hvr-icon-wobble-horizontal:active:before {
  -webkit-animation-name: hvr-icon-wobble-horizontal;
          animation-name: hvr-icon-wobble-horizontal;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Icon Wobble Vertical */

@-webkit-keyframes hvr-icon-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(6px);
            transform: translateY(6px);
  }

  33.3% {
    -webkit-transform: translateY(-5px);
            transform: translateY(-5px);
  }

  49.95% {
    -webkit-transform: translateY(4px);
            transform: translateY(4px);
  }

  66.6% {
    -webkit-transform: translateY(-2px);
            transform: translateY(-2px);
  }

  83.25% {
    -webkit-transform: translateY(1px);
            transform: translateY(1px);
  }

  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes hvr-icon-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(6px);
            transform: translateY(6px);
  }

  33.3% {
    -webkit-transform: translateY(-5px);
            transform: translateY(-5px);
  }

  49.95% {
    -webkit-transform: translateY(4px);
            transform: translateY(4px);
  }

  66.6% {
    -webkit-transform: translateY(-2px);
            transform: translateY(-2px);
  }

  83.25% {
    -webkit-transform: translateY(1px);
            transform: translateY(1px);
  }

  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

.hvr-icon-wobble-vertical {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-wobble-vertical:before {
  content: "\f062";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}

.hvr-icon-wobble-vertical:hover:before,
.hvr-icon-wobble-vertical:focus:before,
.hvr-icon-wobble-vertical:active:before {
  -webkit-animation-name: hvr-icon-wobble-vertical;
          animation-name: hvr-icon-wobble-vertical;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* Icon Buzz */

@-webkit-keyframes hvr-icon-buzz {
  50% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }

  100% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }
}

@keyframes hvr-icon-buzz {
  50% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }

  100% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }
}

.hvr-icon-buzz {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-buzz:before {
  content: "\f017";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}

.hvr-icon-buzz:hover:before,
.hvr-icon-buzz:focus:before,
.hvr-icon-buzz:active:before {
  -webkit-animation-name: hvr-icon-buzz;
          animation-name: hvr-icon-buzz;
  -webkit-animation-duration: 0.15s;
          animation-duration: 0.15s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
}

/* Icon Buzz Out */

@-webkit-keyframes hvr-icon-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }

  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }

  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }

  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }

  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
            transform: translateX(2px) rotate(1deg);
  }

  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
            transform: translateX(-2px) rotate(-1deg);
  }

  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
            transform: translateX(2px) rotate(1deg);
  }

  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
            transform: translateX(-2px) rotate(-1deg);
  }

  90% {
    -webkit-transform: translateX(1px) rotate(0);
            transform: translateX(1px) rotate(0);
  }

  100% {
    -webkit-transform: translateX(-1px) rotate(0);
            transform: translateX(-1px) rotate(0);
  }
}

@keyframes hvr-icon-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }

  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }

  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }

  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }

  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
            transform: translateX(2px) rotate(1deg);
  }

  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
            transform: translateX(-2px) rotate(-1deg);
  }

  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
            transform: translateX(2px) rotate(1deg);
  }

  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
            transform: translateX(-2px) rotate(-1deg);
  }

  90% {
    -webkit-transform: translateX(1px) rotate(0);
            transform: translateX(1px) rotate(0);
  }

  100% {
    -webkit-transform: translateX(-1px) rotate(0);
            transform: translateX(-1px) rotate(0);
  }
}

.hvr-icon-buzz-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
  padding-right: 2.2em;
  transition-duration: 0.3s;
}

.hvr-icon-buzz-out:before {
  content: "\f023";
  position: absolute;
  right: 1em;
  padding: 0 1px;
  font-family: FontAwesome;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}

.hvr-icon-buzz-out:hover:before,
.hvr-icon-buzz-out:focus:before,
.hvr-icon-buzz-out:active:before {
  -webkit-animation-name: hvr-icon-buzz-out;
          animation-name: hvr-icon-buzz-out;
  -webkit-animation-duration: 0.75s;
          animation-duration: 0.75s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

/* CURLS */

/* Curl Top Left */

.hvr-curl-top-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-curl-top-left:before {
  pointer-events: none;
  position: absolute;
  content: '';
  height: 0;
  width: 0;
  top: 0;
  left: 0;
  background: white;
  /* IE9 */
  background: linear-gradient(135deg, white 45%, #aaa 50%, #ccc 56%, white 80%);
  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#ffffff', endColorstr='#000000');
  /*For IE7-8-9*/
  z-index: 1000;
  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.4);
  transition-duration: 0.3s;
  transition-property: width, height;
}

.hvr-curl-top-left:hover:before,
.hvr-curl-top-left:focus:before,
.hvr-curl-top-left:active:before {
  width: 25px;
  height: 25px;
}

/* Curl Top Right */

.hvr-curl-top-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-curl-top-right:before {
  pointer-events: none;
  position: absolute;
  content: '';
  height: 0;
  width: 0;
  top: 0;
  right: 0;
  background: white;
  /* IE9 */
  background: linear-gradient(225deg, white 45%, #aaa 50%, #ccc 56%, white 80%);
  box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.4);
  transition-duration: 0.3s;
  transition-property: width, height;
}

.hvr-curl-top-right:hover:before,
.hvr-curl-top-right:focus:before,
.hvr-curl-top-right:active:before {
  width: 25px;
  height: 25px;
}

/* Curl Bottom Right */

.hvr-curl-bottom-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-curl-bottom-right:before {
  pointer-events: none;
  position: absolute;
  content: '';
  height: 0;
  width: 0;
  bottom: 0;
  right: 0;
  background: white;
  /* IE9 */
  background: linear-gradient(315deg, white 45%, #aaa 50%, #ccc 56%, white 80%);
  box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.4);
  transition-duration: 0.3s;
  transition-property: width, height;
}

.hvr-curl-bottom-right:hover:before,
.hvr-curl-bottom-right:focus:before,
.hvr-curl-bottom-right:active:before {
  width: 25px;
  height: 25px;
}

/* Curl Bottom Left */

.hvr-curl-bottom-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  position: relative;
}

.hvr-curl-bottom-left:before {
  pointer-events: none;
  position: absolute;
  content: '';
  height: 0;
  width: 0;
  bottom: 0;
  left: 0;
  background: white;
  /* IE9 */
  background: linear-gradient(45deg, white 45%, #aaa 50%, #ccc 56%, white 80%);
  box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.4);
  transition-duration: 0.3s;
  transition-property: width, height;
}

.hvr-curl-bottom-left:hover:before,
.hvr-curl-bottom-left:focus:before,
.hvr-curl-bottom-left:active:before {
  width: 25px;
  height: 25px;
}

/*! normalize.scss v0.1.0 | MIT License | based on git.io/normalize */

/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */

html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/**
 * Remove default margin.
 */

body {
  margin: 0;
}

/* HTML5 display definitions
   ========================================================================== */

/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */

audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */

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

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
 */

[hidden],
template {
  display: none;
}

/* Links
   ========================================================================== */

/**
 * Remove the gray background color from active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */

a:active,
a:hover {
  outline: 0;
}

/* Text-level semantics
   ========================================================================== */

/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */

abbr[title] {
  border-bottom: 1px dotted;
}

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */

b,
strong {
  font-weight: bold;
}

/**
 * Address styling not present in Safari and Chrome.
 */

dfn {
  font-style: italic;
}

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */

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

/**
 * Address styling not present in IE 8/9.
 */

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

/**
 * Address inconsistent and variable font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */

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

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove border when inside `a` element in IE 8/9/10.
 */

img {
  border: 0;
}

/**
 * Correct overflow not hidden in IE 9/10/11.
 */

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

/* Grouping content
   ========================================================================== */

/**
 * Address margin not present in IE 8/9 and Safari.
 */

figure {
  margin: 1em 40px;
}

/**
 * Address differences between Firefox and other browsers.
 */

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

/**
 * Contain overflow in all browsers.
 */

pre {
  overflow: auto;
}

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */

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

/* Forms
   ========================================================================== */

/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */

/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */

button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */
}

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */

button {
  overflow: visible;
}

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */

button,
select {
  text-transform: none;
}

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */
}

/**
 * Re-set default cursor for disabled elements.
 */

button[disabled],
html input[disabled] {
  cursor: default;
}

/**
 * Remove inner padding and border in Firefox 4+.
 */

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */

input {
  line-height: normal;
}

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */

input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */

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

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
 *    (include `-moz` to future-proof).
 */

input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  /* 2 */
  box-sizing: content-box;
}

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */

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

/**
 * Define consistent border, margin, and padding.
 */

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */

legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */

textarea {
  overflow: auto;
}

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */

optgroup {
  font-weight: bold;
}

/* Tables
   ========================================================================== */

/**
 * Remove most spacing between table cells.
 */

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
}

* {
  box-sizing: border-box;
}

*:focus {
  outline: none;
}

body {
  background: #f7f7f7;
  font-family: "Cera GR Medium";
  font-size: 1.1rem;
}

body::-webkit-scrollbar {
  width: 1em;
}

body::-webkit-scrollbar-track {
  box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
}

body::-webkit-scrollbar-thumb {
  border-radius: 0px;
  background-color: #fec524;
  outline: 1px solid slategrey;
}

em {
  color: #672d8c;
  font-family: "Cera GR Light";
}

section > h2 {
  font-family: "Cera GR Black";
}

.cke_bottom,
a[href="/filter/tips"] {
  display: none !important;
}

::selection {
  background-color: #fec524;
  color: white;
}

.div--hidden {
  display: none;
}

.links--no-underline {
  text-decoration: none;
}

.list--no-bullets {
  list-style: none;
}

.list--inline {
  display: -ms-inline-flexbox;
  display: -webkit-inline-flex;
  display: inline-flex;
}

.list--clear-defaults,
.forum-table-row .topic-title div p {
  margin: 0;
  padding: 0;
}

.site__content-custom {
  padding-bottom: 2rem;
}

.responsive-font-fix {
  word-spacing: 5%;
  line-height: 90%;
}

.border-bot-md-solid {
  border-bottom: 2px solid;
}

.svg--white {
  fill: white;
}

.svg--yellow {
  fill: #fec524;
}

.svg--blue {
  fill: blue;
}

.svg--brown {
  fill: #845e1f;
}

.svg--black {
  fill: black;
}

.svg--grey {
  fill: grey;
}

.responsive-image--white {
  -webkit-filter: invert(0);
}

.responsive-image--black {
  -webkit-filter: invert(100%);
}

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

.flex-col {
  -ms-flex-direction: column;
          -webkit-flex-direction: column;
      flex-direction: column;
}

.flex-row {
  -ms-flex-direction: row;
          -webkit-flex-direction: row;
      flex-direction: row;
}

.flex-spacearound {
  -ms-flex-pack: distribute;
          -webkit-justify-content: space-around;
      justify-content: space-around;
}

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

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

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

.general-content,
.webform-submission,
.test-form,
.courses__header-wrapper,
.path__contested-region,
.header,
.leaderboard {
  padding: 0 7%;
}

.floating-container .el--left-50,
.news-blogs .el--left-50,
.leaderboard__top-baristas .el--left-50 {
  float: left;
  width: 50%;
}

.floating-container .el--left-20,
.news-blogs .el--left-20,
.leaderboard__top-baristas .el--left-20 {
  float: left;
  width: 20%;
}

.floating-container .el--left-30,
.news-blogs .el--left-30,
.leaderboard__top-baristas .el--left-30 {
  float: left;
  width: 30%;
}

.floating-container .el--left-40,
.news-blogs .el--left-40,
.leaderboard__top-baristas .el--left-40 {
  float: left;
  width: 40%;
}

.floating-container .el--left-70,
.news-blogs .el--left-70,
.leaderboard__top-baristas .el--left-70 {
  float: left;
  width: 70%;
}

.floating-container .el--right-70,
.news-blogs .el--right-70,
.leaderboard__top-baristas .el--right-70 {
  float: right;
  width: 69%;
}

.floating-container .el--right-30,
.news-blogs .el--right-30,
.leaderboard__top-baristas .el--right-30 {
  float: right;
  width: 30%;
}

.floating-container .el--right-80,
.news-blogs .el--right-80,
.leaderboard__top-baristas .el--right-80 {
  float: right;
  width: 80%;
}

.floating-container .el--right-60,
.news-blogs .el--right-60,
.leaderboard__top-baristas .el--right-60 {
  float: right;
  width: 60%;
}

.floating-container::after,
.news-blogs::after,
.leaderboard__top-baristas::after {
  content: "";
  display: block;
  clear: both;
}

@media (max-width: 95rem) {
  .general-content,
  .webform-submission,
  .test-form,
  .courses__header-wrapper,
  .path__contested-region,
  .header,
  .leaderboard {
    padding: 0 1%;
  }
}

@media (max-width: 45rem) {
  .general-content,
  .webform-submission,
  .test-form,
  .courses__header-wrapper,
  .path__contested-region,
  .header,
  .leaderboard {
    padding: 0 0.5rem;
  }

  .text--small {
    font-size: 0.7rem;
  }

  .text--xsmall {
    font-size: 0.6rem;
  }

  .text--medium,
  .blog__tags .cfield > div a,
  .forum-table-row .forum__title > div:first-child a {
    font-size: 1rem;
  }

  .text--mlarge {
    font-size: 1.1rem;
  }

  .text--large {
    font-size: 1.2rem;
  }

  .text--xlarge {
    font-size: 1.5rem;
  }

  .text--responsive-large {
    font-size: 1.5rem;
  }

  .icon--xsmall {
    width: 5px;
    height: 5px;
  }

  .icon--small {
    width: 10px;
    height: 10px;
  }

  .icon--msmall {
    width: 15px;
    height: 15px;
  }

  .icon--medium {
    width: 20px;
    height: 20px;
  }

  .icon--mlarge {
    width: 25px;
    height: 25px;
  }

  .icon--large {
    width: 35px;
    height: 35px;
  }

  .delimeter--small {
    height: 12px;
  }

  .delimeter--medium {
    height: 32px;
  }

  .floating-container .el--left-50,
  .news-blogs .el--left-50,
  .leaderboard__top-baristas .el--left-50 {
    float: none;
    width: 100%;
  }

  .floating-container .el--left-20,
  .news-blogs .el--left-20,
  .leaderboard__top-baristas .el--left-20 {
    float: none;
    width: 100%;
  }

  .floating-container .el--left-30,
  .news-blogs .el--left-30,
  .leaderboard__top-baristas .el--left-30 {
    float: none;
    width: 100%;
  }

  .floating-container .el--left-40,
  .news-blogs .el--left-40,
  .leaderboard__top-baristas .el--left-40 {
    float: none;
    width: 100%;
  }

  .floating-container .el--left-70,
  .news-blogs .el--left-70,
  .leaderboard__top-baristas .el--left-70 {
    float: none;
    width: 100%;
  }

  .floating-container .el--right-80,
  .news-blogs .el--right-80,
  .leaderboard__top-baristas .el--right-80 {
    float: none;
    width: 100%;
  }

  .floating-container .el--right-30,
  .news-blogs .el--right-30,
  .leaderboard__top-baristas .el--right-30 {
    float: none;
    width: 100%;
  }

  .floating-container .el--right-60,
  .news-blogs .el--right-60,
  .leaderboard__top-baristas .el--right-60 {
    float: none;
    width: 100%;
  }

  .floating-container .el--right-70,
  .news-blogs .el--right-70,
  .leaderboard__top-baristas .el--right-70 {
    float: none;
    width: 100%;
  }
}

@media (min-width: 56.25em) {
  .container,
  .container-fluid {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .container .row,
  .container-fluid .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

.u-no-pad--all {
  padding-right: 0 !important;
  padding-left: 0 !important;
}

.u-no-pad--left {
  padding-left: 0 !important;
}

.u-no-pad--right {
  padding-right: 0 !important;
}

@media (max-width: 37.5em) {
  .webform-title {
    font-size: 1rem;
  }
}

.webform-title--active {
  position: fixed;
  bottom: 0;
  right: 0;
  left: 0;
  background: white;
  z-index: 1;
  margin: 0;
}

.table.bt tfoot th:before,
table.bt tfoot td:before,
table.bt tbody td:before {
  background: #2a343d;
  color: white;
  margin-right: 10px;
  text-align: left;
  padding: 4px 16px;
  box-sizing: content-box;
}

table.bt tbody td {
  font-size: .8125rem;
  padding: 0;
}

table.bt tr td {
  background: #f7f7f7;
  color: #999999;
}

table.bt tr:nth-of-type(2n+2) td {
  background: #ffffff;
}

/*
 * Main Icon mixin
 *
 * Can be called like @include icon($vars) { background: something; } using the
 * power of @content.
 */

.icon:before {
  display: inline-block;
  vertical-align: middle;
  line-height: 1;
  font-style: normal;
  speak: none;
  text-decoration: inherit;
  text-transform: none;
  text-rendering: optimizeLegibility;
}

.local-base {
  font-size: 1rem;
}

/**
 * Breakpoint Configuration
 * @see https://github.com/Team-Sass/breakpoint/wiki
 *
 * Usage:
 * display: none; // hidden for mobile
 * @include breakpoint($bp--mobile) {
 *   display: block; // shown above 480
 * }
 */

.views-view-grid .views-row:not(:last-child) {
  border-bottom: 1px dashed lightgray;
}

.views-view-grid .views-col {
  max-width: initial !important;
  margin: 1rem 0;
}

@font-face {
  font-family: 'Cera GR Medium';
  src: url("/themes/custom/coffeetheme2017/assets/Fonts/CF_Dromon/CF Dromon_Md.otf");
}

@font-face {
  font-family: 'Cera GR Black';
  src: url("/themes/custom/coffeetheme2017/assets/Fonts/CF_Dromon/CF Dromon_Bk.otf");
}

@font-face {
  font-family: 'Cera GR Light';
  src: url("/themes/custom/coffeetheme2017/assets/Fonts/CF_Dromon/CF Dromon_LgIt.otf");
}

@font-face {
  font-family: 'Cera GR Regular Italic';
  src: url("/themes/custom/coffeetheme2017/assets/Fonts/CF_Dromon/CF Dromon_RgIt.otf");
}

@font-face {
  font-family: 'Cera GR Regular Bold';
  src: url("/themes/custom/coffeetheme2017/assets/Fonts/CF_Dromon/CF Dromon_Bd.otf");
}

@font-face {
  font-family: 'Cera GR Regular';
  src: url("/themes/custom/coffeetheme2017/assets/Fonts/CF_Dromon/CF Dromon_Rg.otf");
}

.font--black {
  font-family: "Cera GR Black";
}

.font--light,
.forum-table-subheader th {
  font-family: "Cera GR Light";
}

.font--regular {
  font-family: "Cera GR Regular";
}

.font--regular-bold {
  font-family: "Cera GR Regular Bold";
}

.font--thin-italic {
  font-family: 'Cera GR Regular Italic';
}

.text--success {
  color: #468847;
}

.text--white {
  color: white;
}

.text--yellow {
  color: #fec524;
}

.text--blue {
  color: #535e67;
}

.text--dark-blue {
  color: #2a343d;
}

.text--brown {
  color: #845e1f;
}

.text--black,
.paragraph__link--type-1 a,
.course-link__title a,
.blog__tags .cfield > div a,
.forum-table-row .forum__title > div:first-child a,
.forum-table-row .forum__title > div:last-child a {
  color: #1a1a1a;
}

.text--grey,
.forum-table-subheader th a {
  color: grey;
}

.text--barista {
  color: #fec524;
}

.text--grindery {
  color: #672d8c;
}

.text--quality {
  color: #696300;
}

.text--roasting {
  color: #bc3019;
}

.text--bold,
.forum-table-row .forum__title > div:first-child a {
  font-weight: bold;
}

.text--uppercase {
  text-transform: uppercase;
}

.text--no-underline {
  text-decoration: none;
}

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

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

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

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

.text--xsmall {
  font-size: 0.7rem;
}

.text--small {
  font-size: 0.9rem;
}

.text--medium,
.blog__tags .cfield > div a,
.forum-table-row .forum__title > div:first-child a {
  font-size: 1.1rem;
}

.text--mlarge {
  font-size: 1.5rem;
}

.text--large {
  font-size: 2rem;
  line-height: 1;
}

.text--xlarge {
  font-size: 3rem;
  line-height: 1;
}

.login_form__button input[type=submit] {
  color: #fec524;
  font-size: 0.9rem;
  font-family: "Cera GR Regular Bold";
  text-transform: uppercase;
}

.password-space {
  letter-spacing: 3px;
}

.user-pass-reset {
  color: white;
  text-align: center;
  padding: 2rem;
}

.user-pass-reset em {
  color: #fec524;
}

.user-login-form input,
.user-pass input {
  curet-color: white;
}

.user-login-form input:-webkit-autofill,
.user-login-form input:-webkit-autofill:hover,
.user-login-form input:-webkit-autofill:focus,
.user-login-form input:-webkit-autofill:active,
.user-pass input:-webkit-autofill,
.user-pass input:-webkit-autofill:hover,
.user-pass input:-webkit-autofill:focus,
.user-pass input:-webkit-autofill:active {
  transition: background-color 5000s ease-in-out 0s !important;
  -webkit-text-fill-color: white !important;
}

div[data-drupal-selector="edit-field-re-diathesimo-eos-wrapper"],
div[data-drupal-selector="edit-field-re-diathesimo-apo-wrapper"],
div[data-drupal-selector="edit-field-diathesimo-eos-wrapper"],
div[data-drupal-selector="edit-field-diathesimo-apo-wrapper"] {
  width: 50%;
  float: left;
  margin-bottom: 25px;
  display: inline-block;
}

.node-training-edit-form .field--widget-webform-entity-reference-select details:nth-of-type(1),
.node-training-form .field--widget-webform-entity-reference-select details:nth-of-type(1) {
  display: none;
}

.node-training-edit-form > div,
.node-training-form > div {
  border-bottom: 1px solid #fec524 !important;
}

.node-training-edit-form label,
.node-training-form label {
  font-size: 1.4rem !important;
}

.user_edit_form__container,
.user_register_form__container {
  background-color: white;
  box-shadow: 0px 2px 16px rgba(0, 0, 0, 0.1);
  border-radius: 3px;
  margin: 2rem 0;
  padding: 1rem 15px;
}

@media (min-width: 56.25em) {
  .user_edit_form__container,
  .user_register_form__container {
    padding: 2rem 2rem;
  }
}

.user_edit_form__container_title,
.user_register_form__container_title {
  color: #fec524;
  font-size: 1.5rem;
  font-family: "Cera GR Black";
  text-align: center;
  text-shadow: 0 2px 3px rgba(103, 45, 140, 0.1);
  margin-bottom: .5rem;
}

.user_edit_form__container_title--dotted,
.user_register_form__container_title--dotted {
  border-bottom: 2px dotted;
  padding-bottom: 1rem;
  text-align: left;
}

.user_edit_form__el label,
.user_edit_form__el legend,
.user_edit_form__el h4,
.user_register_form__el label,
.user_register_form__el legend,
.user_register_form__el h4 {
  font-size: 1.1rem;
  font-family: "Cera GR Regular Bold";
  display: block;
  padding: 0.5rem 0;
  letter-spacing: 1px;
  text-transform: capitalize;
  color: black;
  margin: 0;
  font-weight: initial;
}

.user_edit_form__el input:not([type="radio"]):not([type="checkbox"]),
.user_register_form__el input:not([type="radio"]):not([type="checkbox"]) {
  font-family: "Cera GR Light";
  font-size: 1.1rem;
  width: 100%;
  display: block;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.8);
  transition: all .5s ease;
  color: #1a1a1a !important;
  padding: 0.5rem 0.75rem;
  box-shadow: 0px 1px 1rem rgba(103, 45, 140, 0.1);
  border: 1px solid lightgrey;
}

.user_edit_form__el input:not([type="radio"]):not([type="checkbox"]):active,
.user_edit_form__el input:not([type="radio"]):not([type="checkbox"]):focus,
.user_register_form__el input:not([type="radio"]):not([type="checkbox"]):active,
.user_register_form__el input:not([type="radio"]):not([type="checkbox"]):focus {
  box-shadow: 0px 1px 1rem rgba(254, 197, 36, 0.2);
  border: 1px solid #fec524;
}

.user_edit_form__el:not(:last-child),
.user_register_form__el:not(:last-child) {
  margin-bottom: 1rem;
}

.user_edit_form__el--button input[type="submit"],
.user_register_form__el--button input[type="submit"] {
  color: black;
  font-size: 1rem;
  font-family: "Cera GR Medium" !important;
  border: 1px solid black !important;
  border-radius: 1px !important;
  transition: all .3s;
}

.user_edit_form__el--button input[type="submit"]:hover,
.user_register_form__el--button input[type="submit"]:hover {
  border: 1px solid #fec524 !important;
  box-shadow: 0 2rem 5rem rgba(0, 0, 0, 0.06);
  -webkit-transform: translateY(-1px);
          transform: translateY(-1px);
}

.user_edit_form__el--button input[type="submit"]:active,
.user_register_form__el--button input[type="submit"]:active {
  -webkit-transform: translateY(1px);
          transform: translateY(1px);
}

.user_edit_form__el--no-desc .description,
.user_register_form__el--no-desc .description {
  display: none;
}

.user_edit_form__el--checkbox .exp + label,
.user_register_form__el--checkbox .exp + label {
  font-family: "Cera GR Light";
  font-size: 1.1rem;
}

.user_edit_form__el--checkbox .form-item,
.user_register_form__el--checkbox .form-item {
  margin: 0;
}

.user_edit_form__el--checkbox-sharp .exp label span,
.user_register_form__el--checkbox-sharp .exp label span {
  border-radius: 0 !important;
}

.user_edit_form__el--pass input,
.user_register_form__el--pass input {
  font-size: 1.5rem;
  letter-spacing: 3px;
}

.user_edit_form__el--pass .password-strength,
.user_register_form__el--pass .password-strength {
  width: 50%;
  margin-bottom: 2rem;
}

.user_edit_form__el--pass .password-strength__meter,
.user_register_form__el--pass .password-strength__meter {
  border-radius: 100px;
}

.user_edit_form__el--pass .password-confirm .error,
.user_register_form__el--pass .password-confirm .error {
  color: #bc3019;
  font-size: 1.1rem;
}

.user_edit_form__el--pass .password-confirm .ok,
.user_register_form__el--pass .password-confirm .ok {
  color: #468847;
  font-size: 1.1rem;
}

.user_edit_form__el .js-form-type-checkbox label,
.user_edit_form__el .js-form-type-radio label,
.user_register_form__el .js-form-type-checkbox label,
.user_register_form__el .js-form-type-radio label {
  display: inline-block;
  vertical-align: middle;
}

.user_edit_form__profile-pic,
.user_register_form__profile-pic {
  display: block;
}

.user_edit_form__profile-pic label,
.user_register_form__profile-pic label {
  font-size: 1.1rem;
  font-family: "Cera GR Regular Bold";
  display: block;
  padding: 0.5rem 0;
  letter-spacing: 1px;
  text-transform: capitalize;
  color: black;
  margin: 0;
  font-weight: initial;
}

.user_edit_form__profile-pic .file,
.user_register_form__profile-pic .file {
  display: none;
}

.user_edit_form__profile-pic .description,
.user_register_form__profile-pic .description {
  display: none;
}

.user_register_form__wrapper > .user_register_form__container {
  width: 100%;
  max-width: 50rem;
}

.gap-small {
  margin-left: 10px;
}

input,
textarea {
  padding: 0.5rem 0.75rem;
}

.submission-average {
  display: inline-block;
  color: #2a343d;
  padding: 5px 10px;
  border: 1px dashed #2a343d;
  margin-bottom: -1px;
  margin-top: 20px;
}

.submission-average:empty {
  visibility: hidden;
}

.submission-average + * {
  border: 1px dashed lightgray;
  padding: 10px;
  margin-bottom: 10px;
}

.submission-average span:nth-child(1) {
  padding-right: 15px;
  border-right: 1px dashed #2a343d;
}

.submission-average span:nth-child(2) {
  margin-left: 15px;
}

.form-element {
  display: inline-block;
  padding: 2rem 0;
  margin-right: 3rem;
  margin-left: 3rem;
}

.form-element__label label {
  color: inherit;
  font-size: inherit;
}

.form-element__input-field {
  border-bottom: 1px solid white;
}

.submission {
  position: relative;
  border-bottom: 1px dashed lightgray;
  padding-bottom: 1rem;
}

.submission .messages {
  padding: 0;
  margin-top: -1rem;
}

.node-preview-form-select {
  padding: 2rem;
  font-size: 20px;
  background: #2a343d;
}

.node-preview-form-select .js-form-item-view-mode {
  padding: 0 2rem;
  display: inline-block;
}

.node-preview-form-select .js-form-item-view-mode label {
  display: block;
  color: white;
}

@media (max-width: 42rem) {
  .form-element {
    display: block;
  }

  .user-login-form .form-element {
    margin: 0;
    padding: 0.5rem 0;
  }

  .user-login-form #edit-submit {
    max-width: 17rem;
  }
}

.webform-mapping-table {
  width: 100%;
  margin: 0;
}

.webform-mapping-table thead th {
  padding: .8rem;
}

.webform-mapping-table thead th:first-child {
  text-align: left;
}

.webform-mapping-table td {
  padding-top: .25rem;
  padding-bottom: .25rem;
  text-align: center;
}

.webform-mapping-table tr td:first-child {
  padding-left: 1rem;
  text-align: initial;
}

.webform-submission-form-table {
  display: table;
}

.webform-submission-form-table tbody {
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.02);
  background: white;
  border-radius: 0.25rem;
  border: 1px solid lightgray;
}

.webform-submission-form-table tr {
  border-bottom: 1px solid rgba(83, 94, 103, 0.2);
}

.webform-submission-form-table tr td {
  padding: 1rem;
}

.webform-submission-form-table tr td:nth-child(1) {
  color: #1a1a1a;
  padding-right: .5rem;
}

.webform-submission-form-table tr td:nth-child(2) {
  border-left: 1px dashed rgba(83, 94, 103, 0.2);
  text-align: center;
  font-family: "Cera GR Black";
  padding-left: .5rem;
}

.webform-submission-form-table tr:last-child {
  border-top: 2px solid #1a1a1a;
  border-bottom: none;
}

.webform-submission-form-table tr:last-child td:nth-child(1) {
  font-size: 1.6rem;
  padding-right: 2rem;
}

.webform-submission-form {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-direction: column;
          -webkit-flex-direction: column;
      flex-direction: column;
  counter-reset: section;
  padding: 1rem 0;
}

.webform-submission-form .form-actions {
  margin-top: 2rem;
  text-align: center;
}

.webform-submission-form .messages {
  padding: 0;
  border-radius: 0;
  border: none;
  background: none;
}

.webform-submission-form .no-subCount::before,
.webform-submission-form .webform-flexbox:not(.add-count) .webform-element-description::before,
.webform-submission-form #edit-training-daterange .webform-element-description::before,
.webform-submission-form #edit-paraggelia #edit-flexbox::before,
.webform-submission-form .js-form-type-webform-mapping-radios::before {
  display: none;
}

.webform-submission-form .js-form-type-webform-mapping-radios {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.webform-submission-form .webform-mapping-radios tbody tr {
  border-bottom: 1px dashed lightgray;
}

.webform-submission-form .webform-mapping-radios tbody tr td {
  padding: 1rem 0;
}

.webform-submission-form .webform-mapping-radios tbody tr td:first-child {
  width: 40%;
  border-right: 1px dashed lightgray;
}

.webform-submission-form .webform-mapping-radios tbody tr td:nth-child(3) {
  width: 1%;
  white-space: nowrap;
}

.webform-submission-form .webform-mapping-radios .js-form-type-textarea {
  width: 225px;
}

.webform-submission-form .webform-mapping-radios .js-form-type-textarea textarea {
  height: 80px;
}

.webform-submission-form .webform-mapping-radios .form-wrapper .fieldset-wrapper > div {
  -ms-flex-pack: justify;
          -webkit-justify-content: space-between;
      justify-content: space-between;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
}

.webform-submission-form .webform-mapping-radios .form-wrapper .fieldset-wrapper > div > * {
  -ms-flex: 1 1 100%;
          -webkit-flex: 1 1 100%;
      flex: 1 1 100%;
  margin: 0;
}

.webform-submission-form .webform-mapping-radios .js-form-type-radio td {
  padding: 0;
}

.webform-submission-form .webform-mapping-radios .js-form-type-radio .exp {
  display: block;
}

.webform-submission-form .webform-mapping-radios .js-form-type-radio::before {
  display: none;
}

.webform-submission-form fieldset {
  border: none;
  padding: 0;
}

.webform-submission-form .webform-type-fieldset {
  position: relative;
  counter-reset: fieldset;
}

.webform-submission-form .webform-type-fieldset .js-form-type-webform-mapping-radios:not(:last-child) {
  margin-bottom: 0;
}

.webform-submission-form .webform-type-fieldset .js-form-type-date::before,
.webform-submission-form .webform-type-fieldset .js-webform-radios::before {
  display: none;
}

.webform-submission-form .webform-type-fieldset > .fieldset-wrapper > .form-item {
  padding: 0 1rem;
}

.webform-submission-form .webform-type-fieldset > .fieldset-wrapper > .form-item .webform-section-wrapper > .description .webform-element-description,
.webform-submission-form .webform-type-fieldset > .fieldset-wrapper > .form-item .webform-element-description {
  color: #1a1a1a;
  border-bottom: none;
}

.webform-submission-form .webform-type-fieldset > .fieldset-wrapper > .form-item .webform-section-wrapper > .description .webform-element-description::before,
.webform-submission-form .webform-type-fieldset > .fieldset-wrapper > .form-item .webform-element-description::before {
  counter-increment: fieldset;
  content: counter(section) "." counter(fieldset);
  color: #1a1a1a;
  font-size: 1.1rem;
  font-family: "Cera GR Regular Bold";
}

.webform-submission-form .webform-type-fieldset > .fieldset-wrapper > .form-item .webform-section-wrapper .webform-element-description::before {
  content: "";
  counter-increment: none;
}

.webform-submission-form .webform-section-wrapper > .description .webform-element-description::before {
  content: "";
  counter-increment: none;
}

.webform-submission-form .webform-section-wrapper > .description .webform-element-description {
  border-bottom: none;
  color: #1a1a1a;
  font-family: "Cera GR Regular Bold";
}

.webform-submission-form .webform-section-wrapper > .description .webform-element-description * {
  font-weight: initial !important;
}

.webform-submission-form .select2,
.webform-submission-form .js-form-type-select select {
  margin-top: 1rem;
}

.webform-submission-form .js-form-type-date,
.webform-submission-form .js-form-item-store {
  margin-bottom: 1rem;
}

.webform-submission-form .js-form-type-date label,
.webform-submission-form .js-form-item-store label {
  margin-bottom: 1rem;
}

.webform-submission-form .checkboxes--wrapper .field-prefix > .description,
.webform-submission-form .radios--wrapper .field-prefix > .description,
.webform-submission-form .webform-element-description {
  display: block;
  color: #845e1f;
  border-bottom: 1px solid #845e1f;
  padding: 0.75rem 0;
  margin-bottom: .5rem;
}

.webform-submission-form .checkboxes--wrapper .field-prefix > .description::before,
.webform-submission-form .radios--wrapper .field-prefix > .description::before,
.webform-submission-form .webform-element-description::before {
  counter-increment: section;
  content: counter(section);
  color: #fec524;
  font-size: 2rem;
  font-family: "Cera GR Regular Bold";
  padding: 0 0.5rem;
  float: left;
}

.webform-submission-form .js-form-type-checkbox,
.webform-submission-form .js-form-type-radio {
  margin-right: 0.5rem;
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.webform-submission-form .intl-tel-input,
.webform-submission-form input {
  max-width: 100%;
}

.exp .checkbox label span {
  border-radius: 2px;
}

.chosen-container {
  font-size: 1rem;
}

.chosen-container .chosen-results li em {
  background: #ffdb7a;
  color: inherit;
  text-decoration: none;
}

.chosen-container .chosen-results li {
  padding: 8px 6px;
}

.chosen-container .chosen-results li.highlighted {
  background-color: #2a343d;
  background-image: linear-gradient(#2a343d 20%, #2a343d 90%);
  color: white;
}

.webform-element-more,
details.details {
  margin-top: 1em;
  margin-bottom: 1em;
  border: 1px solid #bfbfbf;
  border-radius: 3px;
  background-color: #fcfcfa;
}

.webform-element-more .webform-element-more--link,
.webform-element-more .details__summary,
details.details .webform-element-more--link,
details.details .details__summary {
  font-family: "Cera GR Black";
  cursor: pointer;
  color: #2a343d;
  text-shadow: 0 1px 0 white;
  padding: 0.95em 1.45em;
}

.webform-element-more .webform-element-more--link,
details.details .webform-element-more--link {
  padding: 0 !important;
  display: -ms-flexbox !important;
  display: -webkit-flex !important;
  display: flex !important;
}

.webform-element-more .webform-element-more--link::before,
details.details .webform-element-more--link::before {
  padding: 0.95em 0 0.95em 1.45em;
  margin-right: 8px;
}

.webform-element-more .webform-element-more--link a,
details.details .webform-element-more--link a {
  margin-left: -36px;
  padding: 0.95em 0 0.95em 36px;
  color: #2a343d;
  display: block;
  -ms-flex: 1;
          -webkit-flex: 1;
      flex: 1;
}

.webform-element-more .webform-element-more--content,
.webform-element-more .details__wrapper,
details.details .webform-element-more--content,
details.details .details__wrapper {
  padding: 0 1.5em 1em 1.5em;
}

fieldset:not(.fieldgroup) > legend {
  font-family: "Cera GR Black";
}

div[class*="js-form-item-upload-file"] {
  margin: 1rem 0;
}

input[type="file"] {
  border: 1px solid lightgray;
}

.file::before {
  content: "";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  margin-right: 4px;
  vertical-align: middle;
  padding: 4px;
}

.form-managed-file {
  padding: 1rem;
}

.form-managed-file input[type="submit"]:not(.js-hide) {
  display: inline-block;
  width: initial !important;
}

.entity-browser-form {
  min-height: 100vh;
}

.entity-browser-form div[data-drupal-selector="edit-actions"] {
  text-align: center;
}

.entity-browser-modal-iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.views-field-entity-browser-select {
  display: inline-block;
}

.exp {
  display: inline-block;
}

.exp + label {
  cursor: pointer;
}

.exp label {
  color: black;
  cursor: pointer;
  position: relative;
}

.exp label span {
  vertical-align: middle;
  display: inline-block;
  position: relative;
  background-color: transparent;
  width: 25px;
  height: 25px;
  -webkit-transform-origin: center;
          transform-origin: center;
  border: 1px solid #535e67;
  border-radius: 50%;
  margin: 0 0.5rem;
}

.exp label span:before {
  content: "";
  width: 0px;
  height: 2px;
  border-radius: 2px;
  background: #fff;
  position: absolute;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  top: 12px;
  left: 9px;
  transition: width 50ms ease 50ms;
  -webkit-transform-origin: 0% 0%;
          transform-origin: 0% 0%;
}

.exp label span:after {
  content: "";
  width: 0;
  height: 2px;
  border-radius: 2px;
  background: #fff;
  position: absolute;
  -webkit-transform: rotate(305deg);
          transform: rotate(305deg);
  top: 15px;
  left: 11px;
  transition: width 50ms ease;
  -webkit-transform-origin: 0% 0%;
          transform-origin: 0% 0%;
}

.exp input[type="checkbox"],
.exp input[type="radio"] {
  display: none;
}

.exp input[type="checkbox"]:checked + label span,
.exp input[type="radio"]:checked + label span {
  border: none;
  background-color: #fec524;
}

.exp input[type="checkbox"]:checked + label span:after,
.exp input[type="radio"]:checked + label span:after {
  width: 10px;
  background: white;
}

.exp input[type="checkbox"]:checked + label span:before,
.exp input[type="radio"]:checked + label span:before {
  width: 5px;
  background: white;
}

select {
  padding: 10px;
  text-transform: none;
  font-size: 1.1rem;
  font-family: "Cera GR Regular";
  background-image: linear-gradient(to bottom, white, rgba(211, 211, 211, 0.04));
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.02);
  border: 1px solid lightgrey;
  transition: all .3s;
  max-width: 100%;
}

@media (max-width: 37.5em) {
  select {
    font-size: 0.9rem;
  }
}

textarea {
  border-radius: 6px;
  box-shadow: 0 2px 6px -2px;
  border: none;
  width: 100%;
}

.textfield {
  padding: 0;
}

.textfield--small {
  width: 10rem;
}

.textfield--medium {
  width: 18rem;
}

.textfield--no-back {
  border: none;
  background: transparent;
}

.ui-dialog {
  z-index: 1002 !important;
}

.ui-widget-overlay {
  z-index: 1001 !important;
}

.toolbar-oriented .toolbar-bar {
  z-index: 1000 !important;
}

.ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active,
a.ui-button:active,
.ui-button:active,
.ui-button.ui-state-active:hover {
  background-color: #fec524;
}

.ui-dialog {
  z-index: 1001;
  border: none;
  padding: 0;
}

.ui-dialog .ui-dialog-titlebar {
  background: #2a343d;
  color: white;
  font-family: "Cera GR Black";
  font-weight: initial;
  padding: 1rem;
}

.ui-dialog .ui-dialog-content {
  padding: 8px;
  border: none;
}

.ui-dialog .ui-dialog-content label {
  font-family: "Cera GR Regular Bold";
}

.ui-widget-content a.button,
.ui-widget-content .node-preview-form-select a#edit-backlink,
.node-preview-form-select .ui-widget-content a#edit-backlink,
.ui-widget-content .paragraph__link--type-1 a,
.paragraph__link--type-1 .ui-widget-content a,
.ui-widget-content a.login-page__action-button {
  color: white;
}

.ui-dialog .webform-ui-element-form input.form-autocomplete,
.ui-dialog .webform-ui-element-form input.form-text,
.ui-dialog .webform-ui-element-form input.form-tel,
.ui-dialog .webform-ui-element-form input.form-email,
.ui-dialog .webform-ui-element-form input.form-url,
.ui-dialog .webform-ui-element-form input.form-search,
.ui-dialog .webform-ui-element-form input.form-number,
.ui-dialog .webform-ui-element-form input.form-color,
.ui-dialog .webform-ui-element-form input.form-file,
.ui-dialog .webform-ui-element-form input.form-date,
.ui-dialog .webform-ui-element-form input.form-time,
.ui-dialog .webform-ui-element-form textarea.form-textarea,
.ui-dialog .webform-ui-element-type-select-form input.form-autocomplete,
.ui-dialog .webform-ui-element-type-select-form input.form-text,
.ui-dialog .webform-ui-element-type-select-form input.form-tel,
.ui-dialog .webform-ui-element-type-select-form input.form-email,
.ui-dialog .webform-ui-element-type-select-form input.form-url,
.ui-dialog .webform-ui-element-type-select-form input.form-search,
.ui-dialog .webform-ui-element-type-select-form input.form-number,
.ui-dialog .webform-ui-element-type-select-form input.form-color,
.ui-dialog .webform-ui-element-type-select-form input.form-file,
.ui-dialog .webform-ui-element-type-select-form input.form-date,
.ui-dialog .webform-ui-element-type-select-form input.form-time,
.ui-dialog .webform-ui-element-type-select-form textarea.form-textarea {
  box-sizing: border-box;
  padding: .3em .4em .3em .5em;
  /* LTR */
  width: 100%;
  max-width: 100%;
  border: 1px solid #b8b8b8;
  border-top-color: #999;
  border-radius: 2px;
  background: #fcfcfa;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.125);
  font-size: 1em;
  color: #595959;
  transition: border linear 0.2s, box-shadow linear 0.2s;
}

.ui-tabs .ui-tabs-panel {
  display: block;
  border-width: 0;
  padding: 0;
  background: none;
  border: none;
}

.eb-tabs ul {
  border-bottom: 1px solid #fec524;
}

.eb-tabs ul li {
  margin-bottom: -1px;
}

.eb-tabs ul li a {
  color: #535e67;
}

.eb-tabs ul li.active {
  border-bottom: 3px solid #fec524;
}

.eb-tabs ul li.active a {
  color: #fec524;
}

.image--responsive-default img {
  width: 100%;
  height: auto;
}

@supports not (object-fit: contain) {
  .image--contain {
    height: auto !important;
  }
}

@supports (object-fit: contain) {
  .image--contain {
    object-fit: contain;
  }
}

.image--cover-full img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.image--yellow {
  background: rgba(254, 197, 36, 0.7);
  z-index: 2;
  object-fit: contain;
}

.image--yellow img {
  z-index: -1;
}

.image--reduced-brightness img {
  -webkit-filter: brightness(0.3);
          filter: brightness(0.3);
  transition: all 0.3s;
}

.icon--xsmall {
  width: 15px;
  height: 15px;
}

.icon--small {
  width: 25px;
  height: 25px;
}

.icon--msmall {
  width: 38px;
  height: 38px;
}

.icon--medium {
  width: 50px;
  height: 50px;
}

.icon--mlarge {
  width: 75px;
  height: 75px;
}

.icon--large {
  width: 100px;
  height: 100px;
}

.logo {
  height: auto;
}

.logo--xsmall {
  width: 70px;
}

.logo--small {
  width: 150px;
}

.logo--msmall {
  width: 200px;
}

.logo--medium {
  width: 250px;
}

.logo--mlarge {
  width: 265px;
}

.logo--large {
  width: 300px;
}

.logo--xlarge {
  width: 350px;
}

.delimeter--white {
  border-left: 2px solid white;
}

.delimeter--yellow {
  border-left: 2px solid #fec524;
}

.delimeter--blue {
  border-left: 2px solid blue;
}

.delimeter--dark-blue {
  border-left: 2px solid #2a343d;
}

.delimeter--brown {
  border-left: 2px solid #845e1f;
}

.delimeter--black {
  border-left: 2px solid black;
}

.delimeter--grey {
  border-left: 2px solid grey;
}

.delimeter--small {
  height: 30px;
}

.delimeter--medium {
  height: 60px;
}

@media (max-width: 42rem) {
  .logo {
    height: auto;
  }

  .logo--small {
    width: 35px;
  }

  .logo--msmall {
    width: 50px;
  }

  .logo--medium {
    width: 75px;
  }

  .logo--mlarge {
    width: 190px;
  }

  .logo--large {
    width: 100px;
  }

  .logo--xlarge {
    width: 150px;
  }
}

table {
  margin: 2rem 0;
  width: 100%;
}

table caption {
  font-weight: initial;
  padding: 2rem;
  font-family: "Cera GR Black";
  font-size: 1.5rem;
}

table.sticky-header {
  margin-top: 15px;
}

thead {
  display: table-header-group;
  vertical-align: middle;
  border-color: inherit;
}

thead tr {
  background: #2a343d;
  color: white;
}

thead tr h1,
thead tr h2,
thead tr h3,
thead tr h4 {
  color: white;
}

thead tr a {
  cursor: pointer;
  text-decoration: none;
}

thead tr a:link,
thead tr a:visited {
  color: #fec524;
}

thead tr a:hover {
  color: #fec524;
}

thead tr th {
  padding: 1rem .75rem;
  font-family: "Cera GR Regular Bold";
  font-weight: normal;
}

tbody tr {
  border-bottom: 1px solid lightgrey;
}

tbody td {
  padding: 10px 12px;
  font-family: "Cera GR Regular";
}

tbody a {
  cursor: pointer;
  text-decoration: none;
}

tbody a:link,
tbody a:visited {
  color: #2a343d;
}

tbody a:hover {
  color: #fec524;
  text-decoration: underline;
}

tbody ul {
  margin: 0;
  padding: 0;
}

.tabledrag-toggle-weight-wrapper {
  display: none;
}

.draggable a.tabledrag-handle {
  cursor: move;
  float: left;
  height: 1.7em;
  margin-left: -1em;
  overflow: hidden;
  text-decoration: none;
}

a.tabledrag-handle .handle {
  background: url("/themes/custom/coffeetheme2017/assets/images/svg/move.svg") no-repeat 6px 7px;
  height: 25px;
  margin: -0.4em 0.5em 0;
  padding: 0.42em 0.5em;
  width: 25px;
}

@media print {
@page {
    size: auto;
    margin: 16mm 12mm 16mm 12mm;
}

  html {
    font-size: .8rem !important;
    margin: 0px;
  }

  input[type="number"],
  input[type="email"],
  input[type="tel"],
  input[type="text"] {
    outline: none;
    border: none;
  }

  body {
    margin: 0;
  }

  .webform-flexbox {
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
  }

  .webform-flex {
    min-width: 0;
  }

  .webform-flex--1 {
    -ms-flex: 1;
            -webkit-flex: 1;
        flex: 1;
  }

  .webform-flex--2 {
    -ms-flex: 2;
            -webkit-flex: 2;
        flex: 2;
  }

  .submission-average:empty {
    display: none;
  }

  .webform-submission-form-table {
    page-break-after: always;
  }

  .webform-submission-form .intl-tel-input,
  .webform-submission-form input[type="submit"] {
    display: none;
  }

  .webform-submission-form .js-form-type-checkbox,
  .webform-submission-form .js-form-type-radio {
    margin-top: .4cm;
    margin-bottom: .4cm;
  }

  .webform-submission-form .checkboxes--wrapper .field-prefix > .description::before,
  .webform-submission-form .radios--wrapper .field-prefix > .description::before,
  .webform-submission-form .webform-element-description::before {
    font-size: 1.5rem;
    color: #fec524 !important;
  }

  .webform-submission-form .webform-mapping-radios tbody tr td {
    padding: .2cm;
  }

  .logo--msmall {
    width: 150px;
  }

  tr {
    page-break-inside: avoid;
  }

  .site__footer,
  .header {
    display: none;
  }

  .progress-step.is-active .progress-marker {
    background-color: #fec524 !important;
    color: white !important;
  }

  .progress-marker {
    color: white !important;
    background-color: #b6b6b6 !important;
  }

  .exp label span {
    width: 20px;
    height: 20px;
  }

  .exp label span::before {
    top: 10px;
    left: 6px;
  }

  .exp label span::after {
    top: 13px;
    left: 8px;
  }

  .exp input[type="checkbox"]:checked + label span,
  .exp input[type="radio"]:checked + label span {
    background-color: #fec524 !important;
  }

  .exp input[type="checkbox"]:checked + label span:after,
  .exp input[type="checkbox"]:checked + label span:before,
  .exp input[type="radio"]:checked + label span:after,
  .exp input[type="radio"]:checked + label span:before {
    background: white !important;
  }
}

.button,
.login_form__button input[type=submit],
.user-pass-reset input[type="submit"],
.node-preview-form-select #edit-backlink,
.paragraph__link--type-1 a,
.login-page__action-button {
  border-radius: 4px;
  width: 21rem;
  text-align: center;
  display: inline-block;
  padding-bottom: .8rem;
  padding-top: .8rem;
  cursor: pointer;
  border: none;
  background: #535e67;
  color: white;
}

.button:hover,
.login_form__button input:hover[type=submit],
.user-pass-reset input:hover[type="submit"],
.node-preview-form-select #edit-backlink:hover,
.paragraph__link--type-1 a:hover,
.login-page__action-button:hover {
  text-decoration: none;
}

.button--icon img {
  vertical-align: bottom;
}

.button--icon-middle img {
  vertical-align: middle;
}

.button--primary,
.user-pass-reset input[type="submit"],
.button--yellow,
.paragraph__link--type-1 a {
  background-color: #fec524;
  color: black;
  cursor: pointer;
  text-decoration: none;
}

.button--primary:hover,
.user-pass-reset input:hover[type="submit"],
.button--yellow:hover,
.paragraph__link--type-1 a:hover {
  color: white;
}

.button--primary:link,
.user-pass-reset input:link[type="submit"],
.button--primary:visited,
.user-pass-reset input:visited[type="submit"],
.button--yellow:link,
.paragraph__link--type-1 a:link,
.button--yellow:visited,
.paragraph__link--type-1 a:visited {
  color: black;
}

.button--primary:hover,
.user-pass-reset input:hover[type="submit"],
.button--yellow:hover,
.paragraph__link--type-1 a:hover {
  color: white;
}

.button--full-width {
  margin: 0;
  width: 100%;
  display: block;
}

.button--light-box-shadow {
  box-shadow: 0px 1px 6px -3px rgba(0, 0, 0, 0.5);
}

.button--small {
  width: 12rem;
}

.button--large {
  width: 23rem;
}

.button--xsmall {
  padding: 0.5rem;
  width: 5rem;
}

.button--blue {
  background-color: midnightblue;
}

.button--white {
  background-color: white;
}

.button--transparent,
.login_form__button input[type=submit],
.login-page__action-button {
  background: transparent;
}

.button--border-yellow,
.login_form__button input[type=submit],
.login-page__action-button {
  border: 2px solid #fec524;
}

.button--border-yellow-small {
  border: 1px solid #fec524;
}

.button--border-black {
  border: 1px solid black;
}

.button--round {
  border-radius: 50px;
}

.button--hvr-glow,
.login_form__button input[type=submit],
.login-page__action-button {
  transition: background-color 300ms ease;
}

.button--hvr-glow--yellow:hover,
.login_form__button input:hover[type=submit],
.login-page__action-button:hover {
  background-color: rgba(255, 198, 93, 0.3);
}

.button--hvr-glow--black:hover {
  background-color: rgba(0, 0, 0, 0.3);
}

.button--hover-brown-yellow:hover,
.paragraph__link--type-1 a:hover {
  color: #fec524;
  background-color: #845e1f;
}

.button--danger {
  color: white;
  background-color: #bc3019;
  cursor: pointer;
  text-decoration: none;
}

.button--danger:link,
.button--danger:visited {
  color: white;
}

.button--danger:hover {
  color: white;
}

.button--info,
.node-preview-form-select #edit-backlink {
  background: #535e67 !important;
  color: white !important;
  position: relative;
  z-index: 1;
}

@media (max-width: 42rem) {
  .button,
  .login_form__button input[type=submit],
  .user-pass-reset input[type="submit"],
  .node-preview-form-select #edit-backlink,
  .paragraph__link--type-1 a,
  .login-page__action-button {
    width: 100%;
  }
}

/**
 * @file
 * Styling dropbuttons.
 */

/**
 * Reset styling for all elements.
 */

.js .dropbutton .dropbutton-action > input,
.js .dropbutton .dropbutton-action > a,
.js .dropbutton .dropbutton-action > button {
  color: #333333;
  text-decoration: none;
  padding: 0;
  margin: 0;
  font-weight: 600;
  line-height: normal;
  -webkit-font-smoothing: antialiased;
  text-align: left;
  /* LTR */
}

[dir="rtl"].js .dropbutton .dropbutton-action > input,
[dir="rtl"].js .dropbutton .dropbutton-action > a,
[dir="rtl"].js .dropbutton .dropbutton-action > button {
  text-align: right;
  margin-left: 0;
  /* This is required to win over specificity of [dir="rtl"] .dropbutton-multiple .dropbutton .dropbutton-action > * */
}

.js .dropbutton-action.last {
  border-radius: 0 0 0 1em;
  /* LTR */
}

[dir="rtl"] .js .dropbutton-action.last {
  border-radius: 0 0 1em 0;
}

/**
 * Overwrite Sevens button styling.
 */

.js .dropbutton-widget .button,
.js .dropbutton-widget .login_form__button input[type=submit],
.login_form__button .js .dropbutton-widget input[type=submit],
.js .dropbutton-widget .user-pass-reset input[type="submit"],
.user-pass-reset .js .dropbutton-widget input[type="submit"],
.js .dropbutton-widget .node-preview-form-select #edit-backlink,
.node-preview-form-select .js .dropbutton-widget #edit-backlink,
.js .dropbutton-widget .paragraph__link--type-1 a,
.paragraph__link--type-1 .js .dropbutton-widget a,
.js .dropbutton-widget .login-page__action-button {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.js .dropbutton-multiple .dropbutton {
  border-right: 0;
  /* LTR */
}

[dir="rtl"].js .dropbutton-multiple .dropbutton {
  border-left: 0;
}

/**
 * dropdown button styles.
 */

.js .dropbutton-multiple .dropbutton-widget {
  border: 1px solid #a6a6a6;
  border-radius: 20em;
  background-color: #f2f1eb;
  background-image: linear-gradient(to bottom, #f6f6f3, #e7e7df);
  text-shadow: 0 1px rgba(255, 255, 255, 0.6);
}

.dropbutton-multiple.open .dropbutton-widget {
  border-radius: 1em;
}

.js .dropbutton-widget .dropbutton-action a,
.js .dropbutton-widget .dropbutton-action input,
.js .dropbutton-widget .dropbutton-action button {
  border-radius: 20em 0 0 20em;
  /* LTR */
  padding: 4px 1.5em;
  display: block;
  width: 100%;
}

[dir="rtl"].js .dropbutton-widget .dropbutton-action a,
[dir="rtl"].js .dropbutton-widget .dropbutton-action input,
[dir="rtl"].js .dropbutton-widget .dropbutton-action button {
  border-radius: 0 20em 20em 0;
}

.js .dropbutton-widget .dropbutton-action a:focus,
.js .dropbutton-widget .dropbutton-action input:focus,
.js .dropbutton-widget .dropbutton-action button:focus {
  text-decoration: underline;
}

.js .dropbutton-multiple.open .dropbutton-action a,
.js .dropbutton-multiple.open .dropbutton-action .button,
.js .dropbutton-multiple.open .dropbutton-action .login_form__button input[type=submit],
.login_form__button .js .dropbutton-multiple.open .dropbutton-action input[type=submit],
.js .dropbutton-multiple.open .dropbutton-action .user-pass-reset input[type="submit"],
.user-pass-reset .js .dropbutton-multiple.open .dropbutton-action input[type="submit"],
.js .dropbutton-multiple.open .dropbutton-action .node-preview-form-select #edit-backlink,
.node-preview-form-select .js .dropbutton-multiple.open .dropbutton-action #edit-backlink,
.js .dropbutton-multiple.open .dropbutton-action .paragraph__link--type-1 a,
.paragraph__link--type-1 .js .dropbutton-multiple.open .dropbutton-action a,
.js .dropbutton-multiple.open .dropbutton-action .login-page__action-button {
  border-radius: 0;
}

.js .dropbutton-multiple.open .dropbutton-action:first-child a,
.js .dropbutton-multiple.open .dropbutton-action:first-child .button,
.js .dropbutton-multiple.open .dropbutton-action:first-child .login_form__button input[type=submit],
.login_form__button .js .dropbutton-multiple.open .dropbutton-action:first-child input[type=submit],
.js .dropbutton-multiple.open .dropbutton-action:first-child .user-pass-reset input[type="submit"],
.user-pass-reset .js .dropbutton-multiple.open .dropbutton-action:first-child input[type="submit"],
.js .dropbutton-multiple.open .dropbutton-action:first-child .node-preview-form-select #edit-backlink,
.node-preview-form-select .js .dropbutton-multiple.open .dropbutton-action:first-child #edit-backlink,
.js .dropbutton-multiple.open .dropbutton-action:first-child .paragraph__link--type-1 a,
.paragraph__link--type-1 .js .dropbutton-multiple.open .dropbutton-action:first-child a,
.js .dropbutton-multiple.open .dropbutton-action:first-child .login-page__action-button {
  border-radius: 0.9em 0 0 0;
  /* LTR */
}

[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child a,
[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child .button,
[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child .login_form__button input[type=submit],
.login_form__button [dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child input[type=submit],
[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child .user-pass-reset input[type="submit"],
.user-pass-reset [dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child input[type="submit"],
[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child .node-preview-form-select #edit-backlink,
.node-preview-form-select [dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child #edit-backlink,
[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child .paragraph__link--type-1 a,
.paragraph__link--type-1 [dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child a,
[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:first-child .login-page__action-button {
  border-radius: 0 0.9em 0 0;
}

.js .dropbutton-multiple.open .dropbutton-action:last-child a,
.js .dropbutton-multiple.open .dropbutton-action:last-child .button,
.js .dropbutton-multiple.open .dropbutton-action:last-child .login_form__button input[type=submit],
.login_form__button .js .dropbutton-multiple.open .dropbutton-action:last-child input[type=submit],
.js .dropbutton-multiple.open .dropbutton-action:last-child .user-pass-reset input[type="submit"],
.user-pass-reset .js .dropbutton-multiple.open .dropbutton-action:last-child input[type="submit"],
.js .dropbutton-multiple.open .dropbutton-action:last-child .node-preview-form-select #edit-backlink,
.node-preview-form-select .js .dropbutton-multiple.open .dropbutton-action:last-child #edit-backlink,
.js .dropbutton-multiple.open .dropbutton-action:last-child .paragraph__link--type-1 a,
.paragraph__link--type-1 .js .dropbutton-multiple.open .dropbutton-action:last-child a,
.js .dropbutton-multiple.open .dropbutton-action:last-child .login-page__action-button {
  border-radius: 0 0 0 0.9em;
  /* LTR */
}

[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child a,
[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child .button,
[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child .login_form__button input[type=submit],
.login_form__button [dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child input[type=submit],
[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child .user-pass-reset input[type="submit"],
.user-pass-reset [dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child input[type="submit"],
[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child .node-preview-form-select #edit-backlink,
.node-preview-form-select [dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child #edit-backlink,
[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child .paragraph__link--type-1 a,
.paragraph__link--type-1 [dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child a,
[dir="rtl"].js .dropbutton-multiple.open .dropbutton-action:last-child .login-page__action-button {
  border-radius: 0 0 0.9em 0;
}

.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action a:hover,
.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action button:hover,
.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action input:hover,
.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action a:focus,
.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action button:focus,
.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action input:focus {
  background-color: #f9f8f6;
  background-image: linear-gradient(to bottom, #fcfcfa, #e9e9dd);
  color: #1a1a1a;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.125);
  z-index: 3;
}

.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action a:active,
.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action input:active,
.js .dropbutton-wrapper .dropbutton-widget .dropbutton-action button:active {
  text-decoration: none;
  background-color: #dfdfd9;
  background-image: linear-gradient(to bottom, #f6f6f3, #e7e7df);
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
}

.dropbutton .secondary-action {
  border-top: 1px solid #bfbfba;
}

/**
 * Rare instances when a dropbutton is actually just a button.
 * Copied from Seven's buttons.css.
 */

.dropbutton-single .dropbutton-widget {
  border: 0;
  position: static;
  display: inline-block;
}

.dropbutton-single .dropbutton-action a {
  padding: 4px 1.5em;
  border: 1px solid #a6a6a6;
  border-radius: 20em !important;
  background-color: #f2f1eb;
  background-image: linear-gradient(to bottom, #f6f6f3, #e7e7df);
  color: #333333;
  text-decoration: none;
  text-shadow: 0 1px rgba(255, 255, 255, 0.6);
  font-weight: 600;
  transition: all 0.1s;
  -webkit-font-smoothing: antialiased;
  width: auto !important;
}

.dropbutton-single .dropbutton-action a:hover,
.dropbutton-single .dropbutton-action a:focus {
  background-color: #f9f8f6;
  background-image: linear-gradient(to bottom, #fcfcfa, #e9e9dd);
  color: #1a1a1a;
  text-decoration: none;
  outline: none;
}

.dropbutton-single .dropbutton-action a:hover,
.dropbutton-single .dropbutton-action a:focus {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.125);
}

.dropbutton-single .dropbutton-action a:active {
  background-color: #dfdfd9;
  background-image: linear-gradient(to bottom, #f6f6f3, #e7e7df);
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
  transition: none;
}

/**
 * The dropdown trigger.
 */

.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button {
  border-left: 1px solid #a6a6a6;
  /* LTR */
  outline: none;
}

[dir="rtl"].js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button {
  border-right: 1px solid #a6a6a6;
  border-left: 0;
}

.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button {
  border-radius: 0 20em 20em 0;
  /* LTR */
}

[dir="rtl"].js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button {
  border-radius: 20em 0 0 20em;
}

.dropbutton-multiple.open .dropbutton-widget .dropbutton-toggle button {
  border-radius: 0 1em 1em 0;
  /* LTR */
}

[dir="rtl"] .dropbutton-multiple.open .dropbutton-widget .dropbutton-toggle button {
  border-radius: 1em 0 0 1em;
}

.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:hover,
.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:focus {
  background-color: #f9f8f6;
  background-image: linear-gradient(to bottom, #fcfcfa, #e9e9dd);
  color: #1a1a1a;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.125);
  z-index: 3;
}

.js .dropbutton-wrapper .dropbutton-widget .dropbutton-toggle button:active {
  background-color: #dfdfd9;
  background-image: linear-gradient(to bottom, #f6f6f3, #e7e7df);
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
}

.dropbutton-arrow {
  border-top-color: #333;
  right: 35%;
  /* LTR */
  top: 54%;
}

[dir="rtl"] .dropbutton-arrow {
  left: 35%;
  right: auto;
}

.dropbutton-multiple.open .dropbutton-arrow {
  border-bottom: 0.3333em solid #333;
  border-top-color: transparent;
  top: 0.6667em;
}

.js td .dropbutton-multiple {
  padding-right: 10em;
  margin-right: 0 !important;
  max-width: 100%;
}

.link--hover-yellow:hover,
.course-link__title a:hover,
.blog__tags .cfield > div a:hover,
.forum-table-subheader th a:hover,
.forum-table-row .forum__title > div:first-child a:hover,
.forum-table-row .forum__title > div:last-child a:hover {
  color: #fec524;
}

.link--hover-brown:hover {
  color: #845e1f;
}

.link--hover-blue:hover {
  color: #2a343d;
}

.link--hover-none:hover {
  color: initial;
}

.link--cursor-none {
  cursor: initial !important;
}

.link--active {
  border-bottom: 2px solid #fec524;
  padding: 5px 0;
}

a {
  color: #07D;
}

a:hover {
  text-decoration: none;
  color: #fec524;
}

.account-menu-link {
  height: 2.5rem;
}

.account-menu-link span {
  margin-left: 1rem;
}

.account-menu-link img {
  margin-right: 1rem;
}

.account-menu-link:hover {
  background: white;
}

.link-list {
  margin-bottom: 1rem;
}

.link-list__title {
  color: black;
  font-family: "Cera GR Black";
}

.link-list__links > a {
  display: block;
  color: #2a343d;
  margin-bottom: 8px;
}

.link-list__links > a:hover {
  color: #fec524;
  text-decoration: underline;
}

ul.connected-list,
ul.connected-list ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

ul.connected-list ul {
  position: relative;
  margin-left: 10px;
}

ul.connected-list ul::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 0;
  border-left: 1px solid #ccc;
}

ul.connected-list li {
  position: relative;
  margin: 0;
  padding: 3px 12px;
  color: #ccc;
  text-decoration: none;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: normal;
  line-height: 20px;
}

ul.connected-list li::before {
  content: "";
  display: block;
  position: absolute;
  top: 10px;
  left: 0;
  width: 8px;
  height: 0;
  border-top: 1px solid #ccc;
}

ul.connected-list li:last-child::before {
  top: 10px;
  bottom: 0;
  height: auto;
  background: #f7f7f7;
}

ul.connected-list li a {
  position: relative;
  color: #ccc;
  text-decoration: none;
  text-transform: uppercase;
  font-size: 14px;
  font-weight: bold;
  line-height: 20px;
}

ul.connected-list li a:hover,
ul.connected-list li a:hover + ul li a {
  color: RGBA(213, 235, 227, 1);
}

.text-listing {
  display: inline-block;
  margin-right: 8px;
}

ul.result-list {
  list-style-type: none;
  margin: 2rem 0;
  padding: 0;
  max-height: 400px;
  overflow-y: auto;
}

ul.result-list li {
  border-radius: 3px;
  background: #F6F5F5;
  padding: .4rem .6rem;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.12);
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
}

ul.result-list li:nth-child(even) {
  background: #E6E6E6;
}

ul.result-list li div {
  -ms-flex: 0 0 58px;
          -webkit-flex: 0 0 58px;
      flex: 0 0 58px;
}

ul.result-list li div:nth-child(1) {
  margin-right: 8px;
}

ul.result-list li div:nth-child(1) img {
  width: 50px;
  height: 50px;
  object-fit: cover;
  overflow: hidden;
  margin-bottom: .4rem;
}

ul.result-list li div:nth-child(2) {
  -ms-flex: 1;
          -webkit-flex: 1;
      flex: 1;
  margin-right: 1rem;
}

ul.result-list li div:nth-child(3) {
  margin-left: auto;
  -ms-flex: 0;
          -webkit-flex: 0;
      flex: 0;
}

ul.result-list li div:nth-child(3) a {
  cursor: pointer;
  text-decoration: none;
}

ul.result-list li div:nth-child(3) a:link,
ul.result-list li div:nth-child(3) a:visited {
  color: #939393;
}

ul.result-list li div:nth-child(3) a:hover {
  color: #fec524;
}

a[href="/node/add/note"] {
  display: none;
}

.node-list-add {
  list-style-image: url("/themes/custom/coffeetheme2017/assets/images/symbols yellow/chevron-sign.png");
}

.node-list-add li {
  padding: 1.5rem 0;
  border-bottom: 1px solid lightgrey;
}

.node-list-add a {
  cursor: pointer;
  text-decoration: none;
}

.node-list-add a:link,
.node-list-add a:visited {
  color: black;
}

.node-list-add a:hover {
  color: #fec524;
}

.node-list-add a:hover {
  text-decoration: underline;
}

.node-form > div {
  padding: 2rem 0;
  border-bottom: 3px solid #fec524;
}

.node-form label {
  display: block;
  font-family: "Cera GR Regular Bold";
  font-size: 2rem;
  padding: 1rem 0;
}

.node-form .description {
  padding: 0.5rem 0;
}

.node-form .draggable label {
  display: inline-block;
  padding: 0;
  font-style: normal;
  font-size: 1rem;
}

.node-form .draggable td:nth-child(2) .paragraphs-dropbutton-wrapper {
  display: inline-block;
  vertical-align: middle;
}

.node-form .draggable td:nth-child(2) .form-item {
  margin: 0;
  border-bottom: 1px solid lightgrey;
  padding: 0.3rem 0;
}

.node-form .draggable td:nth-child(2) .form-item:first-child {
  border-top: 2px solid black;
}

.node-form .draggable td:nth-child(2) .form-item:last-child {
  border-bottom: none;
}

.node-form .draggable td:last-child {
  text-align: center;
}

.node-form .js-form-type-vertical-tabs,
.node-form .form-item-field-blog-body-0-format,
.node-form .form-item-field-course-description-0-format,
.node-form .form-item-field-article-description-0-format,
.node-form .form-item-field-video-description-0-format,
.node-form .form-item-field-course-articles-and-videos-form-inline-entity-form-field-video-description-0-format,
.node-form .form-item-field-course-articles-and-videos-form-inline-entity-form-field-article-content-formated-0-format {
  display: none;
}

.node-form .js-form-type-textarea label span {
  display: none;
}

.node-form .field-body-add-more-wrapper:first-child {
  display: block;
  padding: 0.5rem 0;
}

.node-form > .dropbutton-wrapper .dropbutton-widget {
  width: 23rem;
  background: #5cb85c !important;
}

.node-form > .dropbutton-wrapper .dropbutton-widget input[type="submit"] {
  color: #fff !important;
  text-align: center !important;
  padding: 1rem 0 !important;
}

.node-form > .dropbutton-wrapper .dropbutton-widget input[type="submit"]:hover {
  color: black !important;
}

.node-form > .dropbutton-wrapper.dropbutton-single input[type="submit"]:hover,
.node-form > .dropbutton-wrapper.dropbutton-single input[type="submit"]:active,
.node-form > .dropbutton-wrapper.dropbutton-single input[type="submit"]:focus {
  border-radius: 0 !important;
}

.notepad-mini {
  height: 18.4rem;
  overflow-y: auto;
  color: #535e67;
  background: #535e67;
  border-bottom: none;
}

.notepad-mini::-webkit-scrollbar-track {
  -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
  background-color: #F5F5F5;
}

.notepad-mini::-webkit-scrollbar {
  width: 12px;
  background-color: #F5F5F5;
}

.notepad-mini::-webkit-scrollbar-thumb {
  border-radius: 10px;
  -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
  background-color: #fec524;
}

.notepad-mini__add_note_form input[type=text] {
  outline: 0;
  border: 1px solid;
  padding: 1rem 0.5rem;
  color: #535e67;
}

.notepad-mini__add_note_form button {
  border: 0;
  outline: 0;
  background: #535e67;
  padding: 4px 7px;
  color: white;
}

.notepad-mini .note {
  display: table;
  width: 100%;
  height: 3rem;
  border-bottom: 1px solid lightgrey;
  padding: 0.5rem;
}

.notepad-mini .note:nth-child(odd) {
  background-color: #E1E2E1;
}

.notepad-mini .note:nth-child(even) {
  background-color: #E1E2E1;
}

.notepad-mini .note button {
  display: inline-block;
  width: 100%;
  padding: 5px;
  color: white;
  background: #535e67;
  border: 0;
  outline: 0;
}

.notepad-mini .note__body {
  width: 60%;
  display: table-cell;
  vertical-align: middle;
  padding: 0 0.5rem;
}

.notepad-mini .note__created,
.notepad-mini .note__controls {
  display: table-cell;
  width: 20%;
  vertical-align: middle;
}

.notepad-mini .note__created {
  text-align: center;
}

.notepad-mini .note__controls > button {
  border: 1px solid white;
}

.notepad-mini .note__controls > button:first-child {
  border-bottom: none;
}

.notepad-mini .note__edit-form {
  width: 100%;
  display: table;
}

.notepad-mini .note__edit-form input[type=text] {
  width: 80%;
  display: table-cell;
  color: #535e67;
  outline: 0;
  border: 0;
  vertical-align: bottom;
  height: 2.035rem;
}

.notepad-mini .note__edit-form > button {
  display: table-cell;
  width: 10%;
  vertical-align: middle;
  border: 1px solid white;
}

.notepad-mini .note__edit-form > button:first-child {
  border-right: none;
}

#notes-taken-region .notepad-mini {
  max-height: 20rem;
  height: auto;
  margin-bottom: 4rem;
}

.pager {
  margin: 1rem 0;
  padding: 2rem;
}

.pager__items {
  margin: 0;
  padding: 0;
  list-style-type: none;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-pack: center;
          -webkit-justify-content: center;
      justify-content: center;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
}

.pager__item,
.pager__items > li {
  margin-left: .5rem;
}

.pager__item:hover,
.pager__items > li:hover {
  -webkit-transform: translateY(-2px);
          transform: translateY(-2px);
}

.pager__item a,
.pager__items > li a {
  cursor: pointer;
  text-decoration: none;
  padding: 1rem;
  border-radius: 3px;
  font-family: "Cera GR Light";
  background-color: #2a343d;
}

.pager__item a:link,
.pager__item a:visited,
.pager__items > li a:link,
.pager__items > li a:visited {
  color: white;
}

.pager__item a:hover,
.pager__items > li a:hover {
  text-decoration: none;
  color: #fec524;
}

.pager__item.is-active a,
.pager__items > li.is-active a {
  box-shadow: 0 2rem 5rem rgba(0, 0, 0, 0.06);
  background-color: #fec524;
  cursor: pointer;
  text-decoration: none;
}

.pager__item.is-active a:link,
.pager__item.is-active a:visited,
.pager__items > li.is-active a:link,
.pager__items > li.is-active a:visited {
  color: #535e67;
}

.pager__item.is-active a:hover,
.pager__items > li.is-active a:hover {
  color: white;
}

@media (max-width: 37.5em) {
  .pager__item {
    font-size: 0.9rem;
  }

  .pager__item:not(.is-active):not(.pager__item--next):not(.pager__item--previous) {
    display: none;
  }
}

.paragraph-wrapper {
  padding-top: 1rem;
  padding-bottom: 1rem;
  margin-right: 1rem;
}

.paragraph-wrapper > * {
  margin-right: 1rem;
}

.paragraph-wrapper--border-top-1 {
  border-top: 1px solid;
}

.paragraph-wrapper--border-bottom-1 {
  border-bottom: 1px solid;
}

.paragraph-wrapper--border-color-yellow {
  border-color: #fec524;
}

.paragraph-wrapper--border-color-dark-blue {
  border-color: #2a343d;
}

.paragraph-wrapper--border-color-brown {
  border-color: #845e1f;
}

.paragraph-wrapper--border-color-black {
  border-color: black;
}

.paragraph-wrapper--border-color-grey {
  border-color: lightgrey;
}

.paragraph-wrapper:after {
  content: "";
  display: block;
  clear: both;
}

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

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

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

.paragraph__gallery {
  margin: 0;
  padding: 0;
  position: relative;
  height: 100%;
}

.paragraph__gallery-inline {
  width: 100%;
  display: table;
  table-layout: fixed;
}

.paragraph__gallery-inline .gallery-slide--inline {
  display: table-cell;
}

.paragraph__gallery-inline .gallery-slide--inline > img {
  padding: 0.5rem;
  width: 100%;
  height: auto;
}

.paragraph__text table {
  margin: 0 auto !important;
  float: none !important;
  width: 95% !important;
}

.paragraph__text table ul {
  list-style: none;
}

.paragraph__text--first-letter-big-1 p:first-child:first-letter {
  color: #fec524;
  float: left;
  font-family: Georgia;
  font-size: 75px;
  line-height: 60px;
  padding-top: 4px;
  padding-right: 8px;
  padding-left: 3px;
}

.paragraph__video {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 30px;
  height: 0;
  overflow: hidden;
}

.paragraph__video iframe,
.paragraph__video object,
.paragraph__video embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.paragraph .tables-size--small table {
  width: 70% !important;
}

.paragraph .tables-size--medium table {
  width: 45% !important;
}

.paragraph__image img {
  width: 100%;
  height: auto;
}

.paragraph__image--bottom-middle {
  margin: auto;
}

.paragraph__image--top-middle {
  margin: auto;
}

.paragraph__image--center {
  margin: auto;
}

.paragraph__image--left {
  float: left;
}

.paragraph__image--right {
  float: right;
  padding-left: 0.5rem;
}

.paragraph__image--small {
  width: 25%;
}

.paragraph__image--medium {
  width: 50%;
}

.paragraph__image--large {
  width: 75%;
}

.paragraph__image--xlarge {
  width: 100%;
}

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

@media (max-width: 42rem) {
  .paragraph-wrapper {
    margin-right: 0;
  }

  .paragraph-wrapper > * {
    margin-right: 0;
  }

  .paragraph-wrapper .paragraph__image--left {
    margin-right: 1rem;
  }

  .paragraph-wrapper .paragraph__image--right {
    padding-left: 0rem;
  }

  .paragraph-wrapper .paragraph__image--center {
    margin: auto;
  }
}

.notification-icon {
  position: fixed;
  z-index: 100;
  right: 0;
  bottom: 0;
  padding: 1rem 3rem;
  cursor: pointer;
}

@media (max-width: 37.5em) {
  .notification-icon img {
    width: 40px;
    height: auto;
  }
}

.notification-icon--hidden {
  display: none;
}

.overlay {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.7);
  transition: opacity 500ms;
  visibility: hidden;
  opacity: 0;
  z-index: 999;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
}

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

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

.popup {
  padding: 1rem;
  background: #fff;
  border-radius: 5px;
  width: 30%;
  height: 25rem;
  position: relative;
  margin: auto;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-direction: column;
          -webkit-flex-direction: column;
      flex-direction: column;
}

.popup h2 {
  border-bottom: 2px solid #fec524;
  padding: 0.5rem;
}

.popup ul {
  list-style-image: url("/themes/custom/coffeetheme2017/assets/images/stars/star_yellow.png");
}

.popup .content {
  overflow-y: auto;
}

.popup .close {
  cursor: pointer;
  position: absolute;
  top: 20px;
  right: 30px;
  font-size: 30px;
  font-weight: bold;
  text-decoration: none;
  color: #333;
}

.popup .close:hover {
  color: #fec524;
}

@media screen and (max-width: 700px) {
  .box {
    width: 70%;
  }

  .popup {
    width: 70%;
  }
}

.comment-table-item {
  background: ghostwhite;
  padding: 8px 16px;
  border: 1px solid black;
}

@media (max-width: 37.5em) {
  .comment-table-item {
    border: none;
    padding: 8px 0;
  }
}

#webform_submission_training_user_comment_add_form-ajax .webform-submission-information.details,
#webform_submission_training_user_comment_add_form-ajax .webform-submission-pager,
#webform_submission_training_user_comment_add_form-ajax .courses__header,
#webform_submission_training_user_comment_edit_form-ajax .webform-submission-information.details,
#webform_submission_training_user_comment_edit_form-ajax .webform-submission-pager,
#webform_submission_training_user_comment_edit_form-ajax .courses__header {
  display: none;
}

.portrait--rotating {
  -webkit-perspective: 150rem;
          perspective: 150rem;
  position: relative;
  display: inline-block;
}

.portrait--rotating .portrait__caption {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg);
  border-radius: 50%;
  box-shadow: 0 1.5rem 2rem rgba(0, 0, 0, 0.05);
}

.portrait--rotating .portrait__photo,
.portrait--rotating .portrait__caption {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  transition: all .8s ease;
}

.portrait--rotating:hover .portrait__photo {
  -webkit-transform: rotateY(-180deg);
          transform: rotateY(-180deg);
}

.portrait--rotating:hover .portrait__caption {
  -webkit-transform: rotateY(0);
          transform: rotateY(0);
}

.portrait--circle .portrait__photo {
  width: 10rem;
  height: 10rem;
  border-radius: 50%;
}

@media (max-width: 56.25em) {
  .portrait--circle .portrait__photo__photo {
    width: 8rem;
    height: 8rem;
  }
}

.portrait--outline-yellow .portrait__photo {
  border: 2px solid #fec524;
}

.portrait--outline-yellow .portrait__caption {
  background: #fec524;
}

.portrait__caption span {
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  font-size: 1.1rem;
  font-family: "Cera GR Light";
  color: #1a1a1a;
  text-decoration: none;
}

.portrait__photo {
  display: block;
  object-fit: cover;
  margin: 10px;
  box-shadow: 0 3px 4px rgba(0, 0, 0, 0.03);
}

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

.portrait-collection .ajax-progress-throbber {
  display: none;
}

.arrow_composition__arrows {
  width: 100%;
  display: table;
  table-layout: fixed;
  width: 75%;
  margin: auto;
  -webkit-transform: translateX(4px);
          transform: translateX(4px);
}

.arrow_composition__arrows > span {
  display: table-cell;
  height: 5rem;
  border-right: 8px solid #fec524;
  border-top: 8px solid #fec524;
}

.arrow_composition__arrows > span:first-child {
  border-left: 8px solid #fec524;
  border-top-left-radius: 10px;
}

.arrow_composition__arrows > span:last-child {
  border-top-right-radius: 10px;
}

.arrow_composition__photos {
  width: 100%;
  display: table;
  table-layout: fixed;
}

.arrow_composition__photos > div {
  display: table-cell;
}

.arrow_composition__photos img {
  max-width: 100%;
  height: auto;
}

.arrow_composition__captions {
  width: 100%;
  display: table;
  table-layout: fixed;
}

.arrow_composition__captions > div {
  display: table-cell;
  text-align: center;
  font-family: "Cera GR Light";
  font-size: 1.1rem;
}

.arrow_composition__captions strong {
  font-size: 1.5rem;
  font-family: "Cera GR Regular Bold";
}

.arrow_composition__top {
  max-width: 30rem;
  width: 100%;
  margin: auto;
  position: relative;
  margin-bottom: 2rem;
}

.arrow_composition__top::after {
  content: '';
  display: block;
  border-left: 4px solid #fec524;
  border-right: 4px solid #fec524;
  position: absolute;
  left: 50%;
  bottom: 0;
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
  height: 2rem;
}

@media (max-width: 56.25em) {
  .arrow_composition__arrows > span {
    height: 2.5rem;
  }

  .arrow_composition__captions {
    width: 100%;
    display: table;
    table-layout: fixed;
  }

  .arrow_composition__captions > div {
    font-size: 0.9rem;
  }

  .arrow_composition__captions strong {
    font-size: 1.1rem;
  }
}

.author-info > div {
  margin: 0 0.5rem;
}

.profile-image {
  display: inline-block;
  border-radius: 50%;
  -webkit-clip-path: circle(50% at 50% 50%);
  clip-path: circle(50% at 50% 50%);
}

.profile-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background-size: 100%;
  webkit-border-radius: 50%;
  border-radius: 50%;
}

.phone-popup .phone {
  margin-top: 3rem !important;
  margin-bottom: 1rem !important;
}

.phone-popup .user_edit_form__el {
  margin: 0;
}

.phone-popup a {
  color: #672d8c;
}

.phone-popup a:hover {
  color: #fec524;
}

.phone-popup small {
  font-size: .7rem;
  display: block;
  margin-bottom: 1rem;
}

.phone-popup .exp + label {
  display: inline-block;
  vertical-align: middle;
}

.phone-popup .exp label span {
  margin-left: 0;
}

.phone-popup input[type="submit"] {
  width: 100%;
  background: #2a343d;
  color: white;
  transition: all .2s ease-out;
}

.phone-popup input[type="submit"]:hover {
  background: #fec524;
  box-shadow: 0px 1px 6px -3px rgba(0, 0, 0, 0.5);
}

.phone-popup #popup_message_box,
.phone-popup .notification-icon {
  display: none;
}

.bio_popup {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.8);
  transition: opacity .5s;
}

.bio_popup__close {
  cursor: pointer;
  color: #2a343d;
  position: absolute;
  top: 1rem;
  right: 1rem;
  font-size: 2rem;
  display: inline-block;
}

.bio_popup__close:hover {
  color: #fec524;
}

.bio_popup__content {
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-animation: scaleInAbsCenter .4s;
          animation: scaleInAbsCenter .4s;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  transition: all .5s .2s;
  background-color: white;
  box-shadow: 0 2rem 4rem rgba(0, 0, 0, 0.2);
  border-radius: 5px;
  border: 2px solid #fec524;
  max-width: 50rem;
  width: 100%;
  padding: 1rem;
}

.bio_popup__img {
  width: 15rem;
  height: 15rem;
  float: right;
  -webkit-shape-outside: circle();
          shape-outside: circle();
  padding: 0.5rem;
}

.bio_popup__img img {
  box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.04);
  border-radius: 50%;
  object-fit: cover;
  height: 200px;
  width: 2000px;
}

.bio_popup__text {
  font-size: 1.1rem;
  line-height: 1.4;
}

.bio_popup__title {
  font-size: 2rem;
  font-family: "Cera GR Black";
  color: #535e67;
  letter-spacing: 3px;
  line-height: 1;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
}

.bio_popup__subtitle {
  font-style: italic;
  font-family: "Cera GR Light";
  font-size: 1.5rem;
  color: #fec524;
}

@media (max-width: 56.25em) {
  .bio_popup__close {
    cursor: pointer;
    color: #2a343d;
    position: absolute;
    top: 1rem;
    right: 1rem;
    font-size: 2rem;
    display: inline-block;
  }

  .bio_popup__close:hover {
    color: #fec524;
  }

  .bio_popup__content {
    border-radius: 0;
    border: none;
    width: 100%;
    overflow: auto;
  }

  .bio_popup--fullscreen .bio_popup__content {
    height: 100%;
  }

  .bio_popup__img {
    width: 8rem;
    height: 8rem;
    float: right;
    -webkit-shape-outside: circle();
            shape-outside: circle();
  }

  .bio_popup__text {
    font-size: 1.1rem;
    line-height: 1.4;
    margin-top: 15px;
  }

  .bio_popup__text p {
    text-indent: 25px;
  }

  .bio_popup__title {
    font-size: 1.5rem;
    letter-spacing: 3px;
  }

  .bio_popup__subtitle {
    font-style: italic;
    font-family: "Cera GR Light";
    font-size: 1.1rem;
    color: #fec524;
  }
}

.custom-breadcrumb {
  padding: 1rem 0;
}

.course-header {
  position: relative;
}

.course-header--small .course-header__background-image {
  max-height: 18rem;
}

.course-header__background-image {
  max-height: 25rem;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
}

.course-header__background-image div {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  width: 100%;
}

.course-header__background-image img {
  width: 100%;
  object-fit: cover;
  height: auto;
}

.course-header__background-image-shaped {
  position: relative;
  height: 25rem;
  overflow: hidden;
}

.course-header__background-image-shaped .shape {
  -webkit-clip-path: polygon(0 0, 65% 0, 70% 100%, 0% 100%);
          clip-path: polygon(0 0, 65% 0, 70% 100%, 0% 100%);
  background: #1a1a1a;
  width: 100%;
  position: absolute;
  height: 100%;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: 1;
}

.course-header__background-image-shaped .head-image {
  text-align: right;
  height: 100%;
}

.course-header__background-image-shaped .head-image img {
  width: 40%;
  height: 100%;
  object-fit: cover;
}

.course-header__container {
  z-index: 10;
  position: absolute;
  bottom: 10%;
  margin-left: 7%;
  width: 40rem;
}

.course-header__container--up {
  bottom: initial;
  top: 15%;
}

@media (max-width: 95rem) {
  .course-header__container {
    margin-left: 1%;
  }
}

@media (max-width: 42rem) {
  .course-header__container {
    padding: 0 0.5rem;
  }
}

@media (max-width: 75rem) {
  .course-header--small .course-header__background-image {
    max-height: 7rem;
  }

  .course-header__background-image {
    max-height: 14rem;
  }

  .course-header__background-image-shaped {
    height: 14rem;
  }

  .course-header__container {
    text-align: left;
    width: 50%;
  }

  .course-header__container .text--xlarge {
    font-size: 2.2rem;
  }

  .course-header__course-description {
    display: none;
  }
}

@media (max-width: 42rem) {
  .course-header__background-image {
    max-height: 10rem;
  }

  .course-header__background-image-shaped {
    height: 10rem;
  }
}

.course-link {
  background: white;
  width: 100%;
  box-shadow: 0px 2px 7px -3px rgba(0, 0, 0, 0.5);
}

.course-link--light-grey {
  background-color: #f7f7f7;
}

.course-link--dark-blue {
  height: 4rem;
  background-color: #2a343d;
}

.course-link--dark-blue .course-link__link a {
  color: grey;
}

.course-link--dark-blue .course-link__link a:hover {
  color: white;
}

.course-link--dark-blue-title {
  background-color: #2a343d;
}

.course-link-wrapper {
  position: relative;
  padding: 1rem 0;
}

.course-link--dropdown {
  margin: 1rem 0;
  position: relative;
}

.course-link--progress {
  cursor: pointer;
  z-index: 1;
}

.course-link--progress::after {
  bottom: -2px;
  left: 0;
  position: absolute;
  content: '';
  background: #fec524;
  height: 8px;
}

.course-link--progress-1:after {
  width: 1%;
}

.course-link--progress-2:after {
  width: 2%;
}

.course-link--progress-3:after {
  width: 3%;
}

.course-link--progress-4:after {
  width: 4%;
}

.course-link--progress-5:after {
  width: 5%;
}

.course-link--progress-6:after {
  width: 6%;
}

.course-link--progress-7:after {
  width: 7%;
}

.course-link--progress-8:after {
  width: 8%;
}

.course-link--progress-9:after {
  width: 9%;
}

.course-link--progress-10:after {
  width: 10%;
}

.course-link--progress-11:after {
  width: 11%;
}

.course-link--progress-12:after {
  width: 12%;
}

.course-link--progress-13:after {
  width: 13%;
}

.course-link--progress-14:after {
  width: 14%;
}

.course-link--progress-15:after {
  width: 15%;
}

.course-link--progress-16:after {
  width: 16%;
}

.course-link--progress-17:after {
  width: 17%;
}

.course-link--progress-18:after {
  width: 18%;
}

.course-link--progress-19:after {
  width: 19%;
}

.course-link--progress-20:after {
  width: 20%;
}

.course-link--progress-21:after {
  width: 21%;
}

.course-link--progress-22:after {
  width: 22%;
}

.course-link--progress-23:after {
  width: 23%;
}

.course-link--progress-24:after {
  width: 24%;
}

.course-link--progress-25:after {
  width: 25%;
}

.course-link--progress-26:after {
  width: 26%;
}

.course-link--progress-27:after {
  width: 27%;
}

.course-link--progress-28:after {
  width: 28%;
}

.course-link--progress-29:after {
  width: 29%;
}

.course-link--progress-30:after {
  width: 30%;
}

.course-link--progress-31:after {
  width: 31%;
}

.course-link--progress-32:after {
  width: 32%;
}

.course-link--progress-33:after {
  width: 33%;
}

.course-link--progress-34:after {
  width: 34%;
}

.course-link--progress-35:after {
  width: 35%;
}

.course-link--progress-36:after {
  width: 36%;
}

.course-link--progress-37:after {
  width: 37%;
}

.course-link--progress-38:after {
  width: 38%;
}

.course-link--progress-39:after {
  width: 39%;
}

.course-link--progress-40:after {
  width: 40%;
}

.course-link--progress-41:after {
  width: 41%;
}

.course-link--progress-42:after {
  width: 42%;
}

.course-link--progress-43:after {
  width: 43%;
}

.course-link--progress-44:after {
  width: 44%;
}

.course-link--progress-45:after {
  width: 45%;
}

.course-link--progress-46:after {
  width: 46%;
}

.course-link--progress-47:after {
  width: 47%;
}

.course-link--progress-48:after {
  width: 48%;
}

.course-link--progress-49:after {
  width: 49%;
}

.course-link--progress-50:after {
  width: 50%;
}

.course-link--progress-51:after {
  width: 51%;
}

.course-link--progress-52:after {
  width: 52%;
}

.course-link--progress-53:after {
  width: 53%;
}

.course-link--progress-54:after {
  width: 54%;
}

.course-link--progress-55:after {
  width: 55%;
}

.course-link--progress-56:after {
  width: 56%;
}

.course-link--progress-57:after {
  width: 57%;
}

.course-link--progress-58:after {
  width: 58%;
}

.course-link--progress-59:after {
  width: 59%;
}

.course-link--progress-60:after {
  width: 60%;
}

.course-link--progress-61:after {
  width: 61%;
}

.course-link--progress-62:after {
  width: 62%;
}

.course-link--progress-63:after {
  width: 63%;
}

.course-link--progress-64:after {
  width: 64%;
}

.course-link--progress-65:after {
  width: 65%;
}

.course-link--progress-66:after {
  width: 66%;
}

.course-link--progress-67:after {
  width: 67%;
}

.course-link--progress-68:after {
  width: 68%;
}

.course-link--progress-69:after {
  width: 69%;
}

.course-link--progress-70:after {
  width: 70%;
}

.course-link--progress-71:after {
  width: 71%;
}

.course-link--progress-72:after {
  width: 72%;
}

.course-link--progress-73:after {
  width: 73%;
}

.course-link--progress-74:after {
  width: 74%;
}

.course-link--progress-75:after {
  width: 75%;
}

.course-link--progress-76:after {
  width: 76%;
}

.course-link--progress-77:after {
  width: 77%;
}

.course-link--progress-78:after {
  width: 78%;
}

.course-link--progress-79:after {
  width: 79%;
}

.course-link--progress-80:after {
  width: 80%;
}

.course-link--progress-81:after {
  width: 81%;
}

.course-link--progress-82:after {
  width: 82%;
}

.course-link--progress-83:after {
  width: 83%;
}

.course-link--progress-84:after {
  width: 84%;
}

.course-link--progress-85:after {
  width: 85%;
}

.course-link--progress-86:after {
  width: 86%;
}

.course-link--progress-87:after {
  width: 87%;
}

.course-link--progress-88:after {
  width: 88%;
}

.course-link--progress-89:after {
  width: 89%;
}

.course-link--progress-90:after {
  width: 90%;
}

.course-link--progress-91:after {
  width: 91%;
}

.course-link--progress-92:after {
  width: 92%;
}

.course-link--progress-93:after {
  width: 93%;
}

.course-link--progress-94:after {
  width: 94%;
}

.course-link--progress-95:after {
  width: 95%;
}

.course-link--progress-96:after {
  width: 96%;
}

.course-link--progress-97:after {
  width: 97%;
}

.course-link--progress-98:after {
  width: 98%;
}

.course-link--progress-99:after {
  width: 99%;
}

.course-link--progress-100:after {
  width: 100%;
}

.course-link__open-el {
  max-height: 36px;
  overflow: hidden;
  transition: all .5s ease-out;
  position: relative;
}

.course-link__open-el::after {
  content: "...";
  position: absolute;
  top: 18px;
  right: 8px;
}

.course-link__open-el:hover {
  max-height: 500px;
  overflow: auto;
}

.course-link__open-el:hover::after {
  opacity: 0;
}

@media (min-width: 37.5em) {
  .course-link__open-el {
    max-height: initial;
    overflow: auto;
  }

  .course-link__open-el::after {
    display: none;
  }
}

.course-link__user-image {
  width: 300px;
  height: 240px;
}

.course-link__user-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.course-link__number-box {
  width: 100px;
  font-size: 50px;
}

.course-link__number-box--leads {
  font-size: 50px;
  width: 400px;
  -ms-flex-align: baseline;
          -webkit-align-items: baseline;
      align-items: baseline;
}

.course-link__bullet {
  margin-right: 0.5rem;
}

.course-link__bullet--semivisible {
  opacity: 0.5;
}

.course-link__bullet .horizontal-rule-bullet {
  height: 11rem;
  top: -20%;
  width: 2px;
  position: absolute;
  left: 50px;
  border-left: 2px solid lightgrey;
  right: 0;
  z-index: 0;
}

.course-link__bullet .horizontal-rule-bullet--first {
  top: 50%;
  height: 5rem;
}

.course-link__bullet .horizontal-rule-bullet--last {
  top: initial;
  bottom: 50%;
  height: 5rem;
}

.course-link__bullet .horizontal-rule-bullet--none {
  display: none;
}

.course-link__icon-box {
  width: 100px;
  height: 100px;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
  -ms-flex-pack: center;
          -webkit-justify-content: center;
      justify-content: center;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-direction: column;
          -webkit-flex-direction: column;
      flex-direction: column;
}

.course-link__icon-box img {
  z-index: 2;
}

.course-link__icon-box .tick {
  font-size: 50px;
}

.course-link__left {
  z-index: 10;
}

.course-link__left svg {
  width: 50px;
  display: block;
  height: 50px;
  margin: auto;
}

.course-link__left--locked .course-link__icon-box {
  background-color: darkgrey;
}

.course-link__left--unlocked .course-link__icon-box {
  background: #fef9f6;
}

.course-link__right {
  z-index: 10;
}

.course-link__right > div {
  margin-right: 0.5rem;
}

.course-link__right > div:last-child {
  margin-right: 0;
}

.course-link--active a {
  color: white !important;
}

.course-link__link {
  margin: 0 1rem;
}

.course-link__completed {
  margin-left: 1rem;
}

.course-link__completed img {
  width: 2rem;
  height: 2rem;
}

@media (max-width: 70rem) {
  .course-link {
    position: relative;
    min-height: 5rem;
  }

  .course-link--light-grey {
    background-color: #f7f7f7;
  }

  .course-link--dropdown {
    margin: 1rem 0;
  }

  .course-link-wrapper {
    position: relative;
    padding: 0.5rem 0;
  }

  .course-link--dark-blue-title {
    background-color: #2a343d;
  }

  .course-link--dark-blue-title .course-link__left .course-link__icon-box {
    display: none;
  }

  .course-link__user-image {
    width: 150px;
    height: 150px;
  }

  .course-link__number-box {
    width: auto;
  }

  .course-link__number-box--leads {
    font-size: 40px;
    width: 300px;
  }

  .course-link__bullet {
    display: none;
  }

  .course-link__bullet .horizontal-rule-bullet {
    height: 5rem;
    left: 17px;
  }

  .course-link__bullet .horizontal-rule-bullet--last,
  .course-link__bullet .horizontal-rule-bullet--first {
    height: 2.5rem !important;
  }

  .course-link__icon-box {
    width: 50px;
    height: auto;
    -ms-flex-align: center;
            -webkit-align-items: center;
        align-items: center;
    -ms-flex-pack: center;
            -webkit-justify-content: center;
        justify-content: center;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-direction: column;
            -webkit-flex-direction: column;
        flex-direction: column;
  }

  .course-link__icon-box img {
    z-index: 2;
    width: 30px;
    height: auto;
  }

  .course-link__icon-box .tick {
    font-size: 25px;
  }

  .course-link__left svg {
    width: 35px;
    height: auto;
  }

  .course-link__left .course-link__icon-box {
    position: absolute;
    top: 0;
    bottom: 50%;
    right: 0;
  }

  .course-link__left--locked .course-link__icon-box {
    background-color: darkgrey;
  }

  .course-link__left--unlocked .course-link__icon-box {
    background: #fef9f6;
  }

  .course-link .link-status > div:nth-last-child(2) {
    margin-right: 60px;
  }

  .course-link .link-status > div:last-child {
    margin-right: 0;
    position: absolute;
    top: 50%;
    right: 0;
    bottom: 0;
  }

  .course-link .quest-points .text--mlarge,
  .course-link .quest-points .text--large {
    font-size: 1rem;
  }

  .course-link__link {
    margin: 0 0.5rem;
  }

  .course-link__link .text--large {
    font-size: 1.3rem;
  }
}

@media (max-width: 42rem) {
  .course-link {
    position: relative;
    min-height: 5rem;
  }

  .course-link--light-grey {
    background-color: #f7f7f7;
  }

  .course-link--dropdown {
    margin: 1rem 0;
  }

  .course-link-wrapper {
    position: relative;
    padding: 0.5rem 0;
  }

  .course-link--dark-blue-title {
    background-color: #2a343d;
  }

  .course-link--dark-blue-title .course-link__left .course-link__icon-box {
    display: none;
  }

  .course-link__user-image {
    width: 150px;
    height: 150px;
  }

  .course-link__number-box {
    width: auto;
  }

  .course-link__number-box--leads {
    font-size: 25px;
    width: auto;
  }

  .course-link__bullet {
    display: none;
  }

  .course-link__bullet .horizontal-rule-bullet {
    height: 5rem;
    left: 17px;
  }

  .course-link__bullet .horizontal-rule-bullet--last,
  .course-link__bullet .horizontal-rule-bullet--first {
    height: 2.5rem !important;
  }

  .course-link__icon-box {
    width: 50px;
    height: auto;
    -ms-flex-align: center;
            -webkit-align-items: center;
        align-items: center;
    -ms-flex-pack: center;
            -webkit-justify-content: center;
        justify-content: center;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-direction: column;
            -webkit-flex-direction: column;
        flex-direction: column;
  }

  .course-link__icon-box img {
    z-index: 2;
    width: 30px;
    height: auto;
  }

  .course-link__icon-box .tick {
    font-size: 25px;
  }

  .course-link__left svg {
    width: 35px;
    height: auto;
  }

  .course-link__left .course-link__icon-box {
    position: absolute;
    top: 0;
    bottom: 50%;
    right: 0;
  }

  .course-link__left--leaderboards {
    -ms-flex-direction: column !important;
            -webkit-flex-direction: column !important;
        flex-direction: column !important;
    width: 50%;
  }

  .course-link__left--leaderboards .text--large {
    font-size: 1rem !important;
  }

  .course-link__left--locked .course-link__icon-box {
    background-color: darkgrey;
  }

  .course-link__left--unlocked .course-link__icon-box {
    background: #fef9f6;
  }

  .course-link .link-status > div:nth-last-child(2) {
    margin-right: 60px;
  }

  .course-link .link-status > div:last-child {
    margin-right: 0;
    position: absolute;
    top: 50%;
    right: 0;
    bottom: 0;
  }

  .course-link .quest-points .text--mlarge,
  .course-link .quest-points .text--large {
    font-size: 1rem;
  }

  .course-link__link {
    margin: 0 0.5rem;
  }

  .course-link__link .text--large {
    font-size: 1.3rem;
  }
}

.coffeebox {
  background-color: white;
  margin-bottom: 1.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
}

.coffeebox--vertical {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-pack: justify;
          -webkit-justify-content: space-between;
      justify-content: space-between;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
}

@media (max-width: 56.25em) {
  .coffeebox--vertical {
    -ms-flex-wrap: wrap;
            -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .coffeebox--vertical > *:nth-child(1) {
    text-align: center;
    -ms-flex: 1 1 100%;
            -webkit-flex: 1 1 100%;
        flex: 1 1 100%;
  }

  .coffeebox--vertical > *:nth-child(2) {
    text-align: left;
    margin: initial !important;
    -ms-flex-preferred-size: 50%;
            -webkit-flex-basis: 50%;
        flex-basis: 50%;
  }

  .coffeebox--vertical > *:nth-child(3) {
    margin: initial !important;
    -ms-flex-preferred-size: 40%;
            -webkit-flex-basis: 40%;
        flex-basis: 40%;
  }
}

.coffeebox--vertical .coffeebox__body {
  margin-left: auto;
  text-align: right;
}

.coffeebox--vertical .coffeebox__footer {
  padding-left: 2.8rem;
  border-left: 1px solid #fec524;
  margin: 1.8rem 2.5rem;
  min-width: 72px;
}

.coffeebox:hover .coffeebox__image img {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.coffeebox__image {
  border-radius: 50%;
  overflow: hidden;
  width: 72px;
  height: 72px;
}

@media (max-width: 56.25em) {
  .coffeebox__image {
    width: 48px;
    height: 48px;
  }
}

.coffeebox__image img {
  width: 100%;
  height: 100%;
  transition: all .4s ease-out;
  object-fit: cover;
}

.coffeebox__body {
  padding: 2rem 1rem;
}

.coffeebox__title {
  font-size: 1.5rem;
  color: #535e67;
  font-family: "Cera GR Black";
}

.coffeebox__subtitle {
  color: lightgrey;
}

.coffeebox__header {
  padding: 1rem 2rem;
  text-align: center;
}

@media (max-width: 56.25em) {
  .coffeebox--vertical .coffeebox__header {
    padding-bottom: 0;
  }
}

@media (max-width: 56.25em) {
  .coffeebox__body > .coffeebox__title {
    font-size: 1rem;
  }

  .coffeebox__body > .coffeebox__subtitle {
    margin-top: 0.5rem;
  }
}

.coffeebox__header .coffeebox__title {
  font-size: 3rem;
  color: #fec524;
}

@media (max-width: 56.25em) {
  .coffeebox__header .coffeebox__title {
    font-size: 2rem;
  }
}

.coffeebox__header .coffeebox__subtitle {
  font-family: "Cera GR Light";
  font-size: 1.5rem;
  color: #535e67;
}

.duration-date > div {
  margin-left: 0.5rem;
}

.duration-date > div span {
  margin-left: 0.5rem;
}

.reference {
  float: left;
  padding-right: 3rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.reference__reference__info {
  margin: 0;
  padding: 0;
}

.front-page-teaser {
  vertical-align: middle;
  display: table-cell;
  width: 100%;
  height: 100%;
}

.front-page-teaser__contents {
  padding: 0 3rem;
}

.front-page-teaser__contents h2 {
  margin: 0;
  padding: 0.3em 0;
}

.front-page-teaser--white {
  background-color: white;
}

.front-page-teaser--dark {
  background-color: #2a343d;
}

@media (max-width: 45rem) {
  .front-page-teaser {
    display: block;
  }
}

.leaderboard-top-barista {
  width: 40%;
}

.leaderboard-top-barista-left {
  float: left;
}

.leaderboard-top-barista-right {
  float: right;
}

.leaderboard-top-barista__pos {
  background: white;
  padding: 6rem;
}

.leaderboard-top-barista__pos > div:first-child {
  font-size: 50px;
  padding: 2rem;
}

.leaderboard-top-barista__pos > div:last-child {
  margin-top: 0.5rem;
}

.leaderboard-top-barista__img {
  width: 100%;
  height: 24rem;
}

.leaderboard-top-barista__img a img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 65rem) {
  .leaderboard-top-barista__pos {
    padding: 3rem;
  }

  .leaderboard-top-barista__img {
    height: 14rem;
  }
}

@media (max-width: 42rem) {
  .leaderboard-top-barista {
    padding-bottom: 2rem;
    width: 15rem;
    margin: auto;
  }

  .leaderboard-top-barista-left {
    float: none;
  }

  .leaderboard-top-barista-right {
    float: none;
  }

  .leaderboard-top-barista__pos {
    padding: 2rem;
  }

  .leaderboard-top-barista__pos > div:first-child {
    padding: 0rem;
  }

  .leaderboard-top-barista__img {
    height: 10rem;
  }
}

.menu-local-tasks-primary,
.menu-local-tasks-sec {
  list-style-type: none;
}

.menu-local-tasks-primary li,
.menu-local-tasks-sec li {
  float: left;
}

.menu-local-tasks-primary li a,
.menu-local-tasks-sec li a {
  display: block;
  padding: 14px 16px;
  text-align: center;
  text-decoration: none;
  color: #535e67;
}

@media (max-width: 37.5em) {
  .menu-local-tasks-primary li a,
  .menu-local-tasks-sec li a {
    font-size: .8rem;
    padding: 8px 12px;
  }
}

.menu-local-tasks-primary {
  background: #fec524;
}

.menu-local-tasks-primary li .is-active,
.menu-local-tasks-primary li:hover {
  background: white;
}

.menu-local-tasks-sec li .is-active {
  border-bottom: 2px solid #fec524;
}

.local-actions {
  list-style-type: none;
}

@media (max-width: 37.5em) {
  .local-actions {
    font-size: .8rem;
  }
}

.local-actions::after {
  content: "";
  display: table;
  clear: both;
  margin-bottom: 1rem;
}

.local-actions li a {
  box-shadow: 0px 1px 6px -3px rgba(0, 0, 0, 0.5);
  background: #2a343d;
  cursor: pointer;
  float: left;
  margin-right: 1rem;
  text-decoration: none;
}

@media (max-width: 37.5em) {
  .local-actions li a {
    font-size: .8rem;
  }
}

.local-actions li a:link,
.local-actions li a:visited {
  color: white;
}

.local-actions li a:hover {
  color: #fec524;
}

.logo img {
  max-width: 242px;
}

.menu {
  position: relative;
}

.menu .mobile-data {
  display: none !important;
}

.menu--static {
  position: static !important;
}

.menu--user-account {
  position: relative;
  background: #ececec;
}

.menu--user-account:after {
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  right: 20px;
  bottom: 100%;
  margin-left: -11px;
  pointer-events: none;
  border: 11px solid transparent;
  border-bottom-color: #ececec;
}

.menu--user-account ul {
  padding-top: 1rem;
  border-bottom: 2px solid white;
}

.menu--user-account .account-menu-logo {
  padding: 1rem;
}

.menu--user-account .links-left {
  padding: 2rem;
  background-color: white;
  -ms-flex-wrap: wrap;
          -webkit-flex-wrap: wrap;
      flex-wrap: wrap;
}

.menu--user-account .links-left > .button,
.menu--user-account .login_form__button .links-left > input[type=submit],
.login_form__button .menu--user-account .links-left > input[type=submit],
.menu--user-account .user-pass-reset .links-left > input[type="submit"],
.user-pass-reset .menu--user-account .links-left > input[type="submit"],
.menu--user-account .node-preview-form-select .links-left > #edit-backlink,
.node-preview-form-select .menu--user-account .links-left > #edit-backlink,
.menu--user-account .paragraph__link--type-1 .links-left > a,
.paragraph__link--type-1 .menu--user-account .links-left > a,
.menu--user-account .links-left > .login-page__action-button {
  width: 100%;
}

.menu__profile {
  cursor: pointer;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
  -ms-flex-pack: end;
          -webkit-justify-content: flex-end;
      justify-content: flex-end;
}

.menu__profile-icon {
  margin-right: 0.5rem;
}

.menu__profile-user-name {
  display: none;
}

.menu__notificaion-count {
  margin-left: .5rem;
  vertical-align: middle;
  color: #bc3019;
}

.menu__notificaion-count::before {
  content: "(";
}

.menu__notificaion-count::after {
  content: ")";
}

.menu__links {
  position: absolute;
  top: 100%;
  min-width: 15rem;
  z-index: 1;
}

.menu__links .items-parent .items-below {
  display: none;
}

.menu__links .items-parent .items-below li {
  margin-right: 0 !important;
}

@media (min-width: 84.375em) {
  .menu__links .items-parent:hover .items-below {
    display: block;
  }
}

.menu__links ul {
  margin: 0;
  padding: 0;
}

.menu__links ul .items-below {
  padding: 1rem 0;
  position: absolute;
  -webkit-transform: translateX(-30%);
          transform: translateX(-30%);
}

.menu__links ul .items-below li {
  margin: 0;
  background: white;
}

.menu__links ul .items-below li a {
  border-radius: 0px;
  border: 1px solid #fec524;
  color: black;
  width: 16rem;
  height: 70px;
  margin-bottom: -1px;
  display: -ms-inline-flexbox;
  display: -webkit-inline-flex;
  display: inline-flex;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
  padding-left: 72px;
  background-repeat: no-repeat;
  background-position: 12px center;
  text-align: center;
}

.menu__links ul .items-below li a img {
  margin-left: 32px;
}

.menu__links ul li {
  position: relative;
}

.menu__links ul li a:hover {
  color: #fec524;
}

.menu--hidden {
  display: none;
}

.menu--visible {
  display: block;
}

.menu2 {
  position: relative;
}

.menu2__links {
  position: absolute;
  top: 0;
  left: 0;
  display: none;
}

.menu2__icon {
  cursor: pointer;
}

.menu2:hover .menu__links {
  display: block;
}

@media (max-width: 84.375em) {
  body {
    position: relative;
    overflow-x: hidden;
  }

  .header__right {
    display: none !important;
  }

  .menu__close {
    position: fixed;
    top: 0;
    right: 0;
    padding: 1rem;
    z-index: 9999;
    width: 50px;
  }

  .menu--visible {
    display: block;
    position: fixed;
    top: 0;
    left: -100%;
    right: 0;
    width: 100vw;
    overflow-x: hidden;
    height: 100%;
    transition: 0.5s;
    /* 0.5 second transition effect to slide in the sidenav */
    background: url("/themes/custom/coffeetheme2017/assets/images/front3/1-min.jpg");
    background-size: cover;
    background-position: 50%;
    z-index: 999;
  }

  .menu--visible .mobile-data {
    display: block !important;
  }

  .menu--visible ul {
    padding: 2rem;
  }

  .menu--visible ul li {
    padding: 0.7rem 0;
  }

  .menu--visible ul li .link--active {
    padding: 5px 10px;
  }

  .menu--visible ul li a {
    color: white !important;
  }
}

.messages--error,
.messages--warning,
.messages--status {
  color: rgba(190, 47, 25, 0.55);
  padding: 0.75rem;
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid;
  overflow: hidden;
}

.messages--error ul,
.messages--warning ul,
.messages--status ul,
.messages--error li,
.messages--warning li,
.messages--status li {
  list-style-type: none;
  list-style-position: inside;
  margin: 0 0 2rem;
  padding: 0;
}

.messages--error a,
.messages--warning a,
.messages--status a {
  text-decoration: underline;
}

.messages--error {
  color: rgba(188, 48, 25, 0.55);
  background: rgba(243, 175, 164, 0.55);
  border-color: rgba(232, 104, 83, 0.55);
}

.messages--warning {
  color: #ff9933;
  background: #fffaf5;
  border-color: #ffcc99;
}

.messages--status {
  color: #468847;
  background: #b6dab7;
  border-color: #7aba7b;
}

.book-opening {
  /* basic grid, only for this demo */
}

.book-opening ul,
.book-opening li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.book-opening .btn {
  cursor: pointer;
  display: inline-block;
  text-transform: uppercase;
  padding: 0.1em 0.4em;
  margin-top: 100px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  font-size: 0.9rem;
  border: 2px solid #fec524;
  text-align: center;
  transition: all .4s;
  color: #fec524;
}

.book-opening .btn:hover {
  background: rgba(254, 197, 36, 0.2);
}

.book-opening .align {
  clear: both;
  width: 100%;
  max-width: 1170px;
  text-align: center;
}

.book-opening .align > li {
  width: 500px;
  min-height: 300px;
  display: inline-block;
  margin: 30px 20px 30px 30px;
  padding: 0 0 0 60px;
  vertical-align: top;
}

/* ///////////////////////////////////////////////////

HARDCOVER
Table of Contents

1. container
2. background & color
3. opening cover, back cover and pages
4. position, transform y transition
5. events
6. Bonus
	- Cover design
	- Ribbon
	- Figcaption
7. mini-reset

/////////////////////////////////////////////////////*/

/*
	1. container
*/

.book {
  position: relative;
  width: 160px;
  height: 200px;
  -webkit-perspective: 1000px;
          perspective: 1000px;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  transition: all .8s;
}

.book:hover {
  -webkit-transform: translateX(50%);
          transform: translateX(50%);
}

/*
	2. background & color
*/

.hardcover_front li {
  /* HARDCOVER FRONT */
  /* reverse */
}

.hardcover_front li:first-child {
  background-color: #eee;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.hardcover_front li:last-child {
  background: #fffbec;
}

.hardcover_back li {
  /* HARDCOVER BACK */
  /* reverse */
}

.hardcover_back li:first-child {
  background: #fffbec;
}

.hardcover_back li:last-child {
  background: #fffbec;
}

.book_spine li:first-child {
  background: #eee;
}

.book_spine li:last-child {
  background: #333;
}

/* thickness of cover */

.hardcover_front li:first-child:after,
.hardcover_front li:first-child:before,
.hardcover_front li:last-child:after,
.hardcover_front li:last-child:before,
.hardcover_back li:first-child:after,
.hardcover_back li:first-child:before,
.hardcover_back li:last-child:after,
.hardcover_back li:last-child:before,
.book_spine li:first-child:after,
.book_spine li:first-child:before,
.book_spine li:last-child:after,
.book_spine li:last-child:before {
  background: #999;
}

/*
	3. opening cover, back cover and pages
*/

.hardcover_front {
  -webkit-transform: rotateY(-34deg) translateZ(8px);
          transform: rotateY(-34deg) translateZ(8px);
  z-index: 100;
}

.hardcover_back {
  -webkit-transform: rotateY(-15deg) translateZ(-8px);
          transform: rotateY(-15deg) translateZ(-8px);
}

/* page */

.page {
  position: absolute;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  width: 100%;
  height: 98%;
  top: 1%;
  left: 3%;
  z-index: 10;
}

.page > li {
  background: white !important;
  border: 1px solid lightgrey;
  box-shadow: inset 0px -1px 2px rgba(50, 50, 50, 0.1), inset -1px 0px 1px rgba(150, 150, 150, 0.2);
  border-radius: 0px 5px 5px 0px;
  position: absolute;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transform-origin: left center;
          transform-origin: left center;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease;
}

.page > li:nth-child(1) {
  transition-duration: 0.6s;
}

.page > li:nth-child(2) {
  transition-duration: 0.6s;
}

.page > li:nth-child(3) {
  transition-duration: 0.4s;
}

.page > li:nth-child(4) {
  transition-duration: 0.5s;
}

.page > li:nth-child(5) {
  transition-duration: 0.6s;
}

.page li:nth-child(1) {
  -webkit-transform: rotateY(-28deg);
          transform: rotateY(-28deg);
}

.page li:nth-child(2) {
  -webkit-transform: rotateY(-30deg);
          transform: rotateY(-30deg);
}

.page li:nth-child(3) {
  -webkit-transform: rotateY(-32deg);
          transform: rotateY(-32deg);
}

.page li:nth-child(4) {
  -webkit-transform: rotateY(-34deg);
          transform: rotateY(-34deg);
}

.page li:nth-child(5) {
  -webkit-transform: rotateY(-36deg);
          transform: rotateY(-36deg);
}

/*
	4. position, transform & transition
*/

.hardcover_front,
.hardcover_back,
.book_spine,
.hardcover_front li,
.hardcover_back li,
.book_spine li {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
}

.hardcover_front,
.hardcover_back {
  -webkit-transform-origin: 0% 100%;
          transform-origin: 0% 100%;
}

.hardcover_front {
  transition: all 0.8s ease, z-index 0.6s;
}

/* HARDCOVER front */

.hardcover_front li:first-child {
  cursor: default;
  -webkit-user-select: none;
  -ms-user-select: none;
      user-select: none;
  -webkit-transform: translateZ(2px);
          transform: translateZ(2px);
}

.hardcover_front li:last-child {
  -webkit-transform: rotateY(180deg) translateZ(2px);
          transform: rotateY(180deg) translateZ(2px);
}

/* HARDCOVER back */

.hardcover_back li:first-child {
  -webkit-transform: translateZ(2px);
          transform: translateZ(2px);
}

.hardcover_back li:last-child {
  -webkit-transform: translateZ(-2px);
          transform: translateZ(-2px);
}

/* thickness of cover */

.hardcover_front li:first-child:after,
.hardcover_front li:first-child:before,
.hardcover_front li:last-child:after,
.hardcover_front li:last-child:before,
.hardcover_back li:first-child:after,
.hardcover_back li:first-child:before,
.hardcover_back li:last-child:after,
.hardcover_back li:last-child:before,
.book_spine li:first-child:after,
.book_spine li:first-child:before,
.book_spine li:last-child:after,
.book_spine li:last-child:before {
  position: absolute;
  top: 0;
  left: 0;
}

/* HARDCOVER front */

.hardcover_front li:first-child:after,
.hardcover_front li:first-child:before {
  width: 4px;
  height: 100%;
}

.hardcover_front li:first-child:after {
  -webkit-transform: rotateY(90deg) translateZ(-2px) translateX(2px);
          transform: rotateY(90deg) translateZ(-2px) translateX(2px);
}

.hardcover_front li:first-child:before {
  -webkit-transform: rotateY(90deg) translateZ(158px) translateX(2px);
          transform: rotateY(90deg) translateZ(158px) translateX(2px);
}

.hardcover_front li:last-child:after,
.hardcover_front li:last-child:before {
  width: 4px;
  height: 160px;
}

.hardcover_front li:last-child:after {
  -webkit-transform: rotateX(90deg) rotateZ(90deg) translateZ(80px) translateX(-2px) translateY(-78px);
          transform: rotateX(90deg) rotateZ(90deg) translateZ(80px) translateX(-2px) translateY(-78px);
}

.hardcover_front li:last-child:before {
  box-shadow: 0px 0px 30px 5px #333;
  -webkit-transform: rotateX(90deg) rotateZ(90deg) translateZ(-140px) translateX(-2px) translateY(-78px);
          transform: rotateX(90deg) rotateZ(90deg) translateZ(-140px) translateX(-2px) translateY(-78px);
}

/* thickness of cover */

.hardcover_back li:first-child:after,
.hardcover_back li:first-child:before {
  width: 4px;
  height: 100%;
}

.hardcover_back li:first-child:after {
  -webkit-transform: rotateY(90deg) translateZ(-2px) translateX(2px);
          transform: rotateY(90deg) translateZ(-2px) translateX(2px);
}

.hardcover_back li:first-child:before {
  -webkit-transform: rotateY(90deg) translateZ(158px) translateX(2px);
          transform: rotateY(90deg) translateZ(158px) translateX(2px);
}

.hardcover_back li:last-child:after,
.hardcover_back li:last-child:before {
  width: 4px;
  height: 160px;
}

.hardcover_back li:last-child:after {
  -webkit-transform: rotateX(90deg) rotateZ(90deg) translateZ(80px) translateX(2px) translateY(-78px);
          transform: rotateX(90deg) rotateZ(90deg) translateZ(80px) translateX(2px) translateY(-78px);
}

.hardcover_back li:last-child:before {
  box-shadow: 10px -1px 80px 20px #666;
  -webkit-transform: rotateX(90deg) rotateZ(90deg) translateZ(-140px) translateX(2px) translateY(-78px);
          transform: rotateX(90deg) rotateZ(90deg) translateZ(-140px) translateX(2px) translateY(-78px);
}

/* BOOK SPINE */

.book_spine {
  -webkit-transform: rotateY(60deg) translateX(-5px) translateZ(-12px);
          transform: rotateY(60deg) translateX(-5px) translateZ(-12px);
  width: 16px;
  z-index: 0;
}

.book_spine li:first-child {
  -webkit-transform: translateZ(2px);
          transform: translateZ(2px);
}

.book_spine li:last-child {
  -webkit-transform: translateZ(-2px);
          transform: translateZ(-2px);
}

/* thickness of book spine */

.book_spine li:first-child:after,
.book_spine li:first-child:before {
  width: 4px;
  height: 100%;
}

.book_spine li:first-child:after {
  -webkit-transform: rotateY(90deg) translateZ(-2px) translateX(2px);
          transform: rotateY(90deg) translateZ(-2px) translateX(2px);
}

.book_spine li:first-child:before {
  -webkit-transform: rotateY(-90deg) translateZ(-12px);
          transform: rotateY(-90deg) translateZ(-12px);
}

.book_spine li:last-child:after,
.book_spine li:last-child:before {
  width: 4px;
  height: 16px;
}

.book_spine li:last-child:after {
  -webkit-transform: rotateX(90deg) rotateZ(90deg) translateZ(8px) translateX(2px) translateY(-6px);
          transform: rotateX(90deg) rotateZ(90deg) translateZ(8px) translateX(2px) translateY(-6px);
}

.book_spine li:last-child:before {
  box-shadow: 5px -1px 100px 40px rgba(0, 0, 0, 0.2);
  -webkit-transform: rotateX(90deg) rotateZ(90deg) translateZ(-210px) translateX(2px) translateY(-6px);
          transform: rotateX(90deg) rotateZ(90deg) translateZ(-210px) translateX(2px) translateY(-6px);
}

/*
	5. events
*/

.book:hover > .hardcover_front {
  -webkit-transform: rotateY(-145deg) translateZ(0);
          transform: rotateY(-145deg) translateZ(0);
  z-index: 0;
}

.book:hover > .page li:nth-child(1) {
  -webkit-transform: rotateY(-30deg);
          transform: rotateY(-30deg);
  transition-duration: 1.5s;
}

.book:hover > .page li:nth-child(2) {
  -webkit-transform: rotateY(-35deg);
          transform: rotateY(-35deg);
  transition-duration: 1.8s;
}

.book:hover > .page li:nth-child(3) {
  -webkit-transform: rotateY(-118deg);
          transform: rotateY(-118deg);
  transition-duration: 1.6s;
}

.book:hover > .page li:nth-child(4) {
  -webkit-transform: rotateY(-130deg);
          transform: rotateY(-130deg);
  transition-duration: 1.4s;
}

.book:hover > .page li:nth-child(5) {
  -webkit-transform: rotateY(-140deg);
          transform: rotateY(-140deg);
  transition-duration: 1.2s;
}

/*
	6. Bonus
*/

/* cover CSS */

.coverDesign {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  overflow: hidden;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.coverDesign::after {
  background-image: linear-gradient(-135deg, rgba(255, 255, 255, 0.45) 0%, transparent 100%);
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}

.coverDesign h1 {
  color: #fff;
  font-size: 2.2em;
  letter-spacing: 0.05em;
  text-align: center;
  margin: 54% 0 0 0;
  text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.1);
}

.coverDesign p {
  color: #f8f8f8;
  font-size: 1em;
  text-align: center;
  text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.1);
}

/* Basic ribbon */

.ribbon {
  background: #fec524;
  color: #fff;
  display: block;
  font-size: 0.7em;
  position: absolute;
  top: 11px;
  right: 1px;
  width: 40px;
  height: 20px;
  line-height: 20px;
  letter-spacing: 0.15em;
  text-align: center;
  -webkit-transform: rotateZ(45deg) translateZ(1px);
          transform: rotateZ(45deg) translateZ(1px);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  z-index: 10;
}

.ribbon::before,
.ribbon::after {
  position: absolute;
  top: -20px;
  width: 0;
  height: 0;
  border-bottom: 20px solid #fec524;
  border-top: 20px solid transparent;
  content: '';
}

.ribbon::before {
  left: -20px;
  border-left: 20px solid transparent;
}

.ribbon::after {
  right: -20px;
  border-right: 20px solid transparent;
}

/* figcaption */

figcaption {
  padding-left: 40px;
  text-align: left;
  position: absolute;
  top: 0%;
  left: 160px;
  width: 310px;
}

figcaption h1 {
  margin: 0;
}

figcaption span {
  color: #16a085;
  padding: 0.6em 0 1em 0;
  display: block;
}

figcaption p {
  color: #63707d;
  line-height: 1.3;
}

/* Media Queries */

@media screen and (max-width: 1400px) {
  .book-opening:hover {
    position: relative;
  }

  .book-opening .align > li {
    width: 100%;
    min-height: initial;
    height: auto;
    padding: 50px 0px;
    margin: 0;
  }

  .align > li {
    width: 100%;
    min-height: 440px;
    height: auto;
    padding: 0;
  }

  .book {
    margin: 0 auto;
  }

  figcaption {
    text-align: center;
    width: 320px;
    top: 250px;
    padding-left: 0;
    left: -80px;
    font-size: 90%;
  }
}

.progress-comp {
  width: 500px;
  background-color: white;
  box-shadow: 0 2rem 4rem rgba(0, 0, 0, 0.25);
  border-radius: 8px;
  margin: 2rem 0 5rem 0;
  padding: 25px;
}

.progress-comp__title {
  font-family: "Cera GR Black";
  font-size: 1.5rem;
}

.progress-comp__label {
  font-size: 1.1rem;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-pack: justify;
          -webkit-justify-content: space-between;
      justify-content: space-between;
  padding: 2rem 0 .4rem 0;
}

.progress-bar__slider {
  height: 5px;
  background-color: #E2E2E2;
  margin-top: 8px;
  position: relative;
  border-radius: 1000px;
  overflow: hidden;
}

.progress-bar__progress {
  height: 100%;
  top: 0;
  left: 0;
  position: absolute;
  display: inline-block;
  background-color: #672d8c;
  -webkit-animation: slide 1.5s ease-in-out;
          animation: slide 1.5s ease-in-out;
  -webkit-transform-origin: left top;
          transform-origin: left top;
}

.progress-bar--1 .progress-bar__progress {
  width: 1%;
}

.progress-bar--2 .progress-bar__progress {
  width: 2%;
}

.progress-bar--3 .progress-bar__progress {
  width: 3%;
}

.progress-bar--4 .progress-bar__progress {
  width: 4%;
}

.progress-bar--5 .progress-bar__progress {
  width: 5%;
}

.progress-bar--6 .progress-bar__progress {
  width: 6%;
}

.progress-bar--7 .progress-bar__progress {
  width: 7%;
}

.progress-bar--8 .progress-bar__progress {
  width: 8%;
}

.progress-bar--9 .progress-bar__progress {
  width: 9%;
}

.progress-bar--10 .progress-bar__progress {
  width: 10%;
}

.progress-bar--11 .progress-bar__progress {
  width: 11%;
}

.progress-bar--12 .progress-bar__progress {
  width: 12%;
}

.progress-bar--13 .progress-bar__progress {
  width: 13%;
}

.progress-bar--14 .progress-bar__progress {
  width: 14%;
}

.progress-bar--15 .progress-bar__progress {
  width: 15%;
}

.progress-bar--16 .progress-bar__progress {
  width: 16%;
}

.progress-bar--17 .progress-bar__progress {
  width: 17%;
}

.progress-bar--18 .progress-bar__progress {
  width: 18%;
}

.progress-bar--19 .progress-bar__progress {
  width: 19%;
}

.progress-bar--20 .progress-bar__progress {
  width: 20%;
}

.progress-bar--21 .progress-bar__progress {
  width: 21%;
}

.progress-bar--22 .progress-bar__progress {
  width: 22%;
}

.progress-bar--23 .progress-bar__progress {
  width: 23%;
}

.progress-bar--24 .progress-bar__progress {
  width: 24%;
}

.progress-bar--25 .progress-bar__progress {
  width: 25%;
}

.progress-bar--26 .progress-bar__progress {
  width: 26%;
}

.progress-bar--27 .progress-bar__progress {
  width: 27%;
}

.progress-bar--28 .progress-bar__progress {
  width: 28%;
}

.progress-bar--29 .progress-bar__progress {
  width: 29%;
}

.progress-bar--30 .progress-bar__progress {
  width: 30%;
}

.progress-bar--31 .progress-bar__progress {
  width: 31%;
}

.progress-bar--32 .progress-bar__progress {
  width: 32%;
}

.progress-bar--33 .progress-bar__progress {
  width: 33%;
}

.progress-bar--34 .progress-bar__progress {
  width: 34%;
}

.progress-bar--35 .progress-bar__progress {
  width: 35%;
}

.progress-bar--36 .progress-bar__progress {
  width: 36%;
}

.progress-bar--37 .progress-bar__progress {
  width: 37%;
}

.progress-bar--38 .progress-bar__progress {
  width: 38%;
}

.progress-bar--39 .progress-bar__progress {
  width: 39%;
}

.progress-bar--40 .progress-bar__progress {
  width: 40%;
}

.progress-bar--41 .progress-bar__progress {
  width: 41%;
}

.progress-bar--42 .progress-bar__progress {
  width: 42%;
}

.progress-bar--43 .progress-bar__progress {
  width: 43%;
}

.progress-bar--44 .progress-bar__progress {
  width: 44%;
}

.progress-bar--45 .progress-bar__progress {
  width: 45%;
}

.progress-bar--46 .progress-bar__progress {
  width: 46%;
}

.progress-bar--47 .progress-bar__progress {
  width: 47%;
}

.progress-bar--48 .progress-bar__progress {
  width: 48%;
}

.progress-bar--49 .progress-bar__progress {
  width: 49%;
}

.progress-bar--50 .progress-bar__progress {
  width: 50%;
}

.progress-bar--51 .progress-bar__progress {
  width: 51%;
}

.progress-bar--52 .progress-bar__progress {
  width: 52%;
}

.progress-bar--53 .progress-bar__progress {
  width: 53%;
}

.progress-bar--54 .progress-bar__progress {
  width: 54%;
}

.progress-bar--55 .progress-bar__progress {
  width: 55%;
}

.progress-bar--56 .progress-bar__progress {
  width: 56%;
}

.progress-bar--57 .progress-bar__progress {
  width: 57%;
}

.progress-bar--58 .progress-bar__progress {
  width: 58%;
}

.progress-bar--59 .progress-bar__progress {
  width: 59%;
}

.progress-bar--60 .progress-bar__progress {
  width: 60%;
}

.progress-bar--61 .progress-bar__progress {
  width: 61%;
}

.progress-bar--62 .progress-bar__progress {
  width: 62%;
}

.progress-bar--63 .progress-bar__progress {
  width: 63%;
}

.progress-bar--64 .progress-bar__progress {
  width: 64%;
}

.progress-bar--65 .progress-bar__progress {
  width: 65%;
}

.progress-bar--66 .progress-bar__progress {
  width: 66%;
}

.progress-bar--67 .progress-bar__progress {
  width: 67%;
}

.progress-bar--68 .progress-bar__progress {
  width: 68%;
}

.progress-bar--69 .progress-bar__progress {
  width: 69%;
}

.progress-bar--70 .progress-bar__progress {
  width: 70%;
}

.progress-bar--71 .progress-bar__progress {
  width: 71%;
}

.progress-bar--72 .progress-bar__progress {
  width: 72%;
}

.progress-bar--73 .progress-bar__progress {
  width: 73%;
}

.progress-bar--74 .progress-bar__progress {
  width: 74%;
}

.progress-bar--75 .progress-bar__progress {
  width: 75%;
}

.progress-bar--76 .progress-bar__progress {
  width: 76%;
}

.progress-bar--77 .progress-bar__progress {
  width: 77%;
}

.progress-bar--78 .progress-bar__progress {
  width: 78%;
}

.progress-bar--79 .progress-bar__progress {
  width: 79%;
}

.progress-bar--80 .progress-bar__progress {
  width: 80%;
}

.progress-bar--81 .progress-bar__progress {
  width: 81%;
}

.progress-bar--82 .progress-bar__progress {
  width: 82%;
}

.progress-bar--83 .progress-bar__progress {
  width: 83%;
}

.progress-bar--84 .progress-bar__progress {
  width: 84%;
}

.progress-bar--85 .progress-bar__progress {
  width: 85%;
}

.progress-bar--86 .progress-bar__progress {
  width: 86%;
}

.progress-bar--87 .progress-bar__progress {
  width: 87%;
}

.progress-bar--88 .progress-bar__progress {
  width: 88%;
}

.progress-bar--89 .progress-bar__progress {
  width: 89%;
}

.progress-bar--90 .progress-bar__progress {
  width: 90%;
}

.progress-bar--91 .progress-bar__progress {
  width: 91%;
}

.progress-bar--92 .progress-bar__progress {
  width: 92%;
}

.progress-bar--93 .progress-bar__progress {
  width: 93%;
}

.progress-bar--94 .progress-bar__progress {
  width: 94%;
}

.progress-bar--95 .progress-bar__progress {
  width: 95%;
}

.progress-bar--96 .progress-bar__progress {
  width: 96%;
}

.progress-bar--97 .progress-bar__progress {
  width: 97%;
}

.progress-bar--98 .progress-bar__progress {
  width: 98%;
}

.progress-bar--99 .progress-bar__progress {
  width: 99%;
}

.progress-bar--100 .progress-bar__progress {
  width: 100%;
}

@-webkit-keyframes slide {
  from {
    -webkit-transform: scale(0, 1);
            transform: scale(0, 1);
  }

  to {
    -webkit-transform: scale(1, 1);
            transform: scale(1, 1);
  }
}

@keyframes slide {
  from {
    -webkit-transform: scale(0, 1);
            transform: scale(0, 1);
  }

  to {
    -webkit-transform: scale(1, 1);
            transform: scale(1, 1);
  }
}

@media (max-width: 37.5em) {
  .hide--sm {
    display: none;
  }
}

.tag {
  color: #1a1a1a;
  background: #fec524;
  font-family: "Cera GR Black";
  display: inline-block;
  background: #fec524;
  padding: 4px 8px;
  font-size: 1rem;
  margin-right: 1rem;
  border-radius: 30px;
}

.image-text-link-block {
  height: 100%;
}

.image-text-link-block--large {
  position: relative;
}

.image-text-link-block--large .image-text-link-block__text {
  position: absolute;
  bottom: 0;
  right: 0;
  background-color: white;
  width: 20rem;
}

.image-text-link-block--small {
  height: auto;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
}

.image-text-link-block--small .image-text-link-block__text {
  height: initial;
}

.image-text-link-block--reversed {
  -ms-flex-direction: row-reverse;
          -webkit-flex-direction: row-reverse;
      flex-direction: row-reverse;
}

.image-text-link-block--vertical {
  position: relative;
  margin-top: 100%;
  -ms-flex-direction: column;
          -webkit-flex-direction: column;
      flex-direction: column;
}

.image-text-link-block--vertical .image-text-link-block__text {
  height: 100%;
  position: absolute;
  top: -100%;
  left: 0;
  right: 0;
}

.image-text-link-block__text {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  min-width: 50%;
  height: 100%;
}

.image-text-link-block__text:hover {
  cursor: pointer;
}

.image-text-link-block__image {
  min-width: 50%;
  height: auto;
}

.image-text-link-block__image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.text-block {
  height: 100%;
  -ms-flex: 1 1 auto;
          -webkit-flex: 1 1 auto;
      flex: 1 1 auto;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-direction: column;
          -webkit-flex-direction: column;
      flex-direction: column;
  -ms-flex-pack: center;
          -webkit-justify-content: center;
      justify-content: center;
  text-align: center;
}

.text-block__header {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.text-block__content {
  margin-bottom: 1rem;
}

.text-block__delimeter {
  margin-bottom: 1rem;
  max-width: 100%;
  min-width: 100%;
}

.tt-component--text-medium .tt-component__title,
.tt-component--text-medium .tt-component__title-icon,
.tt-component--text-medium .tt-component__text {
  font-size: 1.1rem;
}

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

.tt-component--right .tt-component__title {
  -ms-flex-direction: row-reverse;
          -webkit-flex-direction: row-reverse;
      flex-direction: row-reverse;
}

.tt-component--right .tt-component__title-icon {
  margin-right: 0rem;
  margin-left: 1rem;
}

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

.tt-component--center .tt-component__title {
  -ms-flex-pack: center;
          -webkit-justify-content: center;
      justify-content: center;
}

.tt-component--box {
  padding: 5%;
  text-align: center;
  box-shadow: 0 1.5rem 2rem rgba(0, 0, 0, 0.08);
}

@media (max-width: 84.375em) {
  .tt-component--box {
    padding: 3%;
  }
}

.tt-component--box .tt-component__title {
  display: block;
}

.tt-component--box .tt-component__title-text {
  font-size: 2rem;
  font-family: "Cera GR Black";
  letter-spacing: 2px;
}

.tt-component--theme-yellow {
  border: 2px solid #fec524;
  background: white;
}

.tt-component--theme-yellow strong {
  color: #fec524;
}

.tt-component--theme-yellow .tt-component__title-text,
.tt-component--theme-yellow .tt-component__text {
  color: #1a1a1a;
}

.tt-component__title {
  margin-bottom: .4rem;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
}

.tt-component__title-icon {
  -ms-flex: 0 0 auto;
          -webkit-flex: 0 0 auto;
      flex: 0 0 auto;
  margin-right: .5rem;
  font-size: 1.5rem;
  border-radius: 50%;
  width: 2.5rem;
  height: 2.5rem;
  box-shadow: 0 2rem 5rem rgba(0, 0, 0, 0.06);
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
  -ms-flex-pack: center;
          -webkit-justify-content: center;
      justify-content: center;
  transition: all .3s ease-in-out;
}

.tt-component__title-text,
.tt-component__title-text a:link,
.tt-component__title-text a:visited {
  font-size: 1.5rem;
  color: #fec524;
  text-transform: capitalize;
  line-height: 1;
  letter-spacing: 1px;
}

.tt-component__text {
  font-size: 1.1rem;
  color: lightgrey;
}

.til-component__title {
  font-size: 1.5rem;
  color: #fec524;
  margin-bottom: .4rem;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: 1px;
}

.site__main,
.site__content-bottom {
  width: 100%;
  float: right;
  margin-left: 0;
  margin-right: 0;
  clear: none;
}

@media (min-width: 534px) {
  .site__main,
  .site__content-bottom {
    width: 100%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none;
  }
}

@media (min-width: 1021px) {
  .site__main,
  .site__content-bottom {
    width: 100%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none;
    float: none;
    min-width: 320px;
    max-width: 1000px;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .site__main::after,
  .site__content-bottom::after {
    clear: both;
    content: "";
    display: table;
  }
}

.site__content,
.site__sidebar,
.site__content-top,
.site__content-bottom {
  margin-bottom: 6.25%;
}

@media (min-width: 534px) {
  .site__content,
  .site__sidebar,
  .site__content-top,
  .site__content-bottom {
    margin-bottom: 3.03030303%;
  }
}

@media (min-width: 1021px) {
  .site__content,
  .site__sidebar,
  .site__content-top,
  .site__content-bottom {
    margin-bottom: 2%;
  }
}

.site__main,
.site__content-top,
.site__content-bottom {
  clear: both;
}

.site__main .site__content-top,
.site__main .site__sidebar {
  width: 100%;
  float: right;
  margin-left: 0;
  margin-right: 0;
  clear: none;
}

@media (min-width: 534px) {
  .site__main .site__content-top,
  .site__main .site__sidebar {
    width: 100%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none;
  }
}

@media (min-width: 1021px) {
  .site__main .site__content-top,
  .site__main .site__sidebar {
    width: 100%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none;
    float: none;
    min-width: 320px;
    max-width: 1000px;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .site__main .site__content-top::after,
  .site__main .site__sidebar::after {
    clear: both;
    content: "";
    display: table;
  }
}

@media (min-width: 534px) {
  .site__main--sidebar .site__content-top {
    width: 48.48484848%;
    float: left;
    margin-right: -100%;
    margin-left: 0;
    clear: none;
  }

  .site__main--sidebar .site__content {
    width: 48.48484848%;
    float: left;
    margin-right: -100%;
    margin-left: 0;
    clear: none;
    clear: left;
  }

  .site__main--sidebar .site__sidebar {
    width: 48.48484848%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none;
  }

  .site__main--sidebar.site__main--top-wide .site__content-top {
    width: 100%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none;
  }

  .site__main--sidebar.site__main--top-wide .site__content {
    clear: none;
  }
}

@media (min-width: 1021px) {
  .site__main--sidebar .site__content-top {
    width: 66%;
    float: left;
    margin-right: -100%;
    margin-left: 0;
    clear: none;
  }

  .site__main--sidebar .site__content {
    width: 66%;
    float: left;
    margin-right: -100%;
    margin-left: 0;
    clear: none;
    clear: left;
  }

  .site__main--sidebar .site__sidebar {
    width: 32%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none;
  }

  .site__main--sidebar.site__main--top-wide .site__content-top {
    width: 100%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none;
  }

  .site__main--sidebar.site__main--top-wide .site__content {
    clear: none;
  }
}

.news-blogs .views-row {
  width: 50%;
  float: left;
}

.news-blogs .views-row:nth-child(even) {
  padding-left: 2rem;
}

.news-blogs .views-row:nth-child(odd) {
  padding-right: 2rem;
}

.teaser {
  padding-top: 4rem;
  padding-bottom: 4rem;
  height: 48rem;
  margin: auto;
}

.teaser__top {
  margin: 1.5rem 0;
  border-bottom: 1px solid lightgrey;
}

.teaser__top > div {
  margin: 1rem 0;
}

.teaser__image {
  display: block;
  position: relative;
  overflow: hidden;
  transition: -webkit-transform .25s ease;
  transition: transform .25s ease;
  transition: transform .25s ease, -webkit-transform .25s ease;
}

.teaser__image img {
  transition: -webkit-transform .25s ease;
  transition: transform .25s ease;
  transition: transform .25s ease, -webkit-transform .25s ease;
  width: 100%;
  height: auto;
}

.teaser__image:hover img {
  transition: -webkit-transform .25s ease;
  transition: transform .25s ease;
  transition: transform .25s ease, -webkit-transform .25s ease;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

.teaser__image .teaser__image-tag {
  position: absolute;
  top: .5rem;
  right: .5rem;
  color: #672d8c;
  background-color: #ebddf4;
  padding: .1rem .5rem;
  border-radius: 9px;
}

.teaser__image:hover .teaser__image-tag {
  color: #fec524;
  background-color: white;
}

.teaser__bottom {
  text-align: center;
  padding-bottom: 2rem;
  border-bottom: 1px solid grey;
}

.blog__tags {
  margin-top: 2rem;
  padding: 2rem 1rem;
  border-top: 2px solid;
  border-bottom: 2px solid;
  border-color: #fec524;
}

.blog__tags > span {
  background: #fec524;
}

.blog__tags .cfield {
  display: inline;
}

.blog__tags .cfield > div {
  display: inline-block;
}

.blog__tags .cfield > div a {
  padding: 0.5rem 1rem;
}

.blog__tags .cfield > div a:before {
  content: "#";
}

@media (max-width: 42rem) {
  .news-blogs .views-row {
    width: 100%;
    float: none;
  }

  .news-blogs .views-row:nth-child(even) {
    padding-left: 0rem;
  }

  .news-blogs .views-row:nth-child(odd) {
    padding-right: 0rem;
  }

  .teaser {
    padding: 1rem 0.5rem;
    height: initial;
  }

  .teaser__top {
    margin: 0.5rem 0;
  }

  .blog__tags {
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-positive: 1;
            -webkit-flex-grow: 1;
        flex-grow: 1;
    -ms-flex-wrap: wrap;
            -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
  }
}

.feed-icon {
  background: url("/themes/custom/coffeetheme2017/assets/images/svg/feed.svg") no-repeat;
  overflow: hidden;
  text-indent: -9999px;
  display: inline-block;
  width: 16px;
  height: 16px;
}

.courses__header-wrapper {
  border-bottom: 2px solid lightgrey;
}

.courses__header {
  margin-bottom: 1rem;
}

.path-course-li:after {
  content: '';
  border-bottom: 4px solid #fec524;
}

.path__header {
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
  cursor: pointer;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-direction: row;
          -webkit-flex-direction: row;
      flex-direction: row;
  margin-bottom: -2px;
}

.path__header--active {
  color: black;
}

.path__header--active.barista-school {
  border-bottom: 2px solid #fec524;
}

.path__header--active.grindery-school {
  border-bottom: 2px solid #672d8c;
}

.path__header--active.roasting-school {
  border-bottom: 2px solid #bc3019;
}

.path__header--active.quality-school {
  border-bottom: 2px solid #696300;
}

.path__header--active.food-project {
  border-bottom: 2px solid black;
}

.path__header--grey {
  opacity: 0.5;
}

.path__icon {
  margin-right: 1rem;
}

.path__title {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
          -webkit-align-self: center;
      align-self: center;
  line-height: 1.1;
}

.path__contested-region {
  margin-top: 3rem;
}

#courses-completed {
  margin: 1rem 0;
  padding-bottom: 1rem;
  border-bottom: 1px solid grey;
}

#courses-completed-count span:first-child:after {
  content: "/";
}

#courses-completed #progress-circle {
  margin: 0 1rem;
}

.course-view-full {
  padding: 0 10%;
}

.course-flag {
  display: none;
}

.course-contents {
  display: none;
}

.course-dropdown-button {
  cursor: pointer;
}

@media (max-width: 56.25em) {
  .course-dropdown-button img {
    width: 16px;
  }
}

.course-entity::after {
  clear: both;
  content: "";
  display: table;
}

.course-entity__title > div {
  padding: 0.2rem 0;
}

.course-entity__title > div:last-child {
  max-width: 15rem;
  padding: 1rem 0;
}

.course-entity__article {
  width: 66%;
  padding-right: 1.5rem;
  float: left;
  text-align: justify;
}

.course-entity__related-courses {
  width: 33%;
  float: left;
}

.course-entity__related-courses input {
  width: 100%;
}

.course-entity__related-courses--fixed {
  position: fixed;
  left: 0;
  right: 100%;
  width: 100vw;
  top: 0;
  bottom: 0;
  background: white;
}

.course-entity__video {
  width: 66%;
  float: left;
}

.course-entity__video .video__player {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 30px;
  height: 0;
  overflow: hidden;
}

.course-entity__video .video__player iframe,
.course-entity__video .video__player object,
.course-entity__video .video__player embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.course-entity__video .video__description {
  padding: 1rem;
}

.course-entity--related-content-fixed .course-entity__related-courses {
  position: fixed;
  top: 0;
  right: 0;
  width: 33%;
}

.test-link {
  display: none;
  padding: 1rem;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
  z-index: 9999;
  height: 6rem;
  width: 33rem;
  background-color: #2a343d;
  position: fixed;
  right: 0;
  top: 25%;
  color: white;
}

.test-link a {
  color: yellow;
  cursor: pointer;
}

.test-link--state-1 .message-2 {
  display: none;
}

.test-link--state-2 {
  width: 9%;
}

.test-link--state-2 .message-1 {
  display: none;
}

.test-link--state-2 .message-2 {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-pack: center;
          -webkit-justify-content: center;
      justify-content: center;
}

.test-link--state-2 .message-2-label {
  padding: 10px;
  font-size: 22px;
}

.test-link--state-2 .message-2-after {
  display: none;
}

.test-link--state-2:hover {
  width: 20rem;
}

.test-link--state-2:hover .message-2-label {
  display: none;
}

.test-link--state-2:hover .message-2-after {
  display: block;
}

@media (max-width: 70rem) {
  .course-entity__video {
    width: 100%;
    float: none;
  }

  .course-entity__article {
    width: 100%;
    padding: 0;
    float: none;
  }

  .course-entity__related-courses {
    width: 100%;
    float: none;
  }

  .course-entity__related-courses::after {
    clear: both;
    content: "";
    display: table;
  }

  .course-entity__related-courses > div {
    width: 50%;
    float: left;
  }

  .course-entity__related-courses > div:nth-child(1) {
    padding-right: .5rem;
  }

  .course-entity__related-courses > div:nth-child(2) {
    padding-left: .5rem;
  }

  .course-entity__related-courses #root {
    margin-top: 50px;
  }

  .courses__path-navigation .path__title {
    font-size: 0.9rem;
    display: none;
  }

  .path__icon {
    margin-right: 3px;
  }
}

@media (max-width: 50rem) {
  #courses-completed #courses-completed-count span {
    font-size: 2rem;
  }

  #courses-completed #progress-circle {
    margin: 0 0 0 10px;
  }

  .course-entity__video {
    width: 100%;
    float: none;
  }

  .course-entity__article {
    width: 100%;
    padding: 0;
    float: none;
  }

  .course-entity__related-courses {
    width: 100%;
    float: none;
  }

  .course-entity__related-courses::after {
    clear: both;
    content: "";
    display: table;
  }

  .course-entity__related-courses > div {
    padding: 0;
    width: 100%;
    float: none;
  }

  .course-entity__related-courses > div:nth-child(1) {
    padding-right: 0;
  }

  .course-entity__related-courses > div:nth-child(2) {
    padding-left: 0;
  }

  .course-entity__related-courses #root {
    margin-top: 0px;
  }

  .courses__path-navigation .path__title {
    font-size: 0.9rem;
    display: none;
  }

  .path__icon {
    margin-right: 3px;
  }
}

.footer {
  background-color: #2a343d;
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.footer__main {
  display: inline-block;
}

.footer__logo {
  text-align: right;
}

.footer__blocks {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: wrap;
          -webkit-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: justify;
          -webkit-justify-content: space-between;
      justify-content: space-between;
}

.footer__block {
  margin-bottom: 2rem;
}

.footer__block .til-component__title {
  color: white;
  font-size: 1.1rem;
  font-family: "Cera GR Regular Bold";
}

.footer__block .til-component__list .tt-component__title-text,
.footer__block .til-component__list .tt-component__title-text a:link,
.footer__block .til-component__list .tt-component__title-text a:visited {
  color: white;
  font-size: 0.9rem;
  text-transform: uppercase;
}

.footer__block .til-component__list .tt-component__title-text:hover,
.footer__block .til-component__list .tt-component__title-text a:link:hover,
.footer__block .til-component__list .tt-component__title-text a:visited:hover {
  color: #fec524;
}

.footer__block .til-component__list .tt-component__title-icon {
  color: white;
  font-size: 1.1rem;
  border-radius: 50%;
  width: 2rem;
  height: 2rem;
}

.footer__bottom {
  display: inline-block;
  margin-top: 5rem;
  border-top: 2px solid #fec524;
}

.front-links-blocks {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-direction: column;
          -webkit-flex-direction: column;
      flex-direction: column;
}

.front-links-blocks .front-page-teaser {
  display: block;
  padding-top: 2rem;
  padding-bottom: 2rem;
}

@media (min-width: 56.25em) {
  .front-links-blocks {
    -ms-flex-direction: row;
            -webkit-flex-direction: row;
        flex-direction: row;
    -ms-flex-line-pack: stretch;
            -webkit-align-content: stretch;
        align-content: stretch;
  }
}

@media (min-width: 56.25em) {
  .front-links-blocks__block {
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-pack: center;
            -webkit-justify-content: center;
        justify-content: center;
    -ms-flex-direction: column;
            -webkit-flex-direction: column;
        flex-direction: column;
    width: 33.3333%;
  }
}

.front-links-blocks__block--1 {
  background-color: white;
  -ms-flex-order: 1;
          -webkit-order: 1;
      order: 1;
}

.front-links-blocks__block--2 {
  background-color: white;
  -ms-flex-order: 3;
          -webkit-order: 3;
      order: 3;
}

.front-links-blocks__block--3 {
  border-top: 2px solid white;
  border-bottom: 2px solid white;
  -ms-flex-order: 2;
          -webkit-order: 2;
      order: 2;
}

.header {
  padding-top: 1rem;
  padding-bottom: 1rem;
  z-index: 999;
  position: relative;
}

@media (min-width: 84.375em) {
  .header__back-link {
    display: none;
  }
}

.header__back-link img {
  max-width: 20px;
  height: auto;
}

.header--fixed {
  position: fixed;
  left: 0;
  right: 0;
}

.header--fixed2 {
  position: fixed;
  left: 0;
  right: 0;
}

.header--white {
  background-color: white;
  border-bottom: 2px solid #fec524;
}

.header--black-transparent {
  background: rgba(0, 0, 0, 0.5);
}

.header--black-transparent .menu__notificaion-count {
  color: #fec524;
}

.header__left .menu__icon {
  display: block;
}

.header__left .menu__links {
  font-size: 1rem;
}

.header__right .header-delimeter {
  display: none;
}

.header__right > .logo {
  display: none;
}

@media (min-width: 84.375em) {
  .header__left {
    -ms-flex: 0 0 auto;
            -webkit-flex: 0 0 auto;
        flex: 0 0 auto;
  }

  .header__left .menu__icon {
    display: none;
  }

  .header__left .menu__links {
    position: initial;
    display: block;
    font-size: 14px;
  }

  .header__left .menu__links ul li {
    display: inline-block;
    margin-right: 1rem;
  }

  .header__left .menu__links ul li a .active {
    border-bottom: 2px solid #fec524;
  }

  .header__right .header-delimeter {
    display: block;
    margin: 0 .5rem;
  }

  .header__right > .logo {
    display: block;
  }
}

.leaderboard {
  padding-top: 5rem;
  padding-bottom: 5rem;
  background-color: #2a343d;
}

.leaderboard__title {
  padding: 3rem;
}

.leaderboard__description {
  padding: 2rem;
}

@media (max-width: 40rem) {
  .leaderboard {
    padding: 0;
  }

  .leaderboard__title {
    padding: 3rem 1rem !important;
    font-size: 2rem !important;
  }

  .leaderboard .top-baristas__col {
    margin-left: 0;
    margin-right: 0;
  }
}

.notepad {
  margin: 2rem 0;
}

.notepad-title .course-link__left {
  height: 50px;
}

.notepad-title .course-link__right {
  display: none;
}

.notepad-wrapper form {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-direction: column;
          -webkit-flex-direction: column;
      flex-direction: column;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
}

.notepad #cke_1_bottom,
.notepad #edit-user-notepad-format-help-about,
.notepad .js-form-item-user-notepad-format {
  display: none !important;
}

.related-list {
  background-color: #2a343d;
  height: 21.5rem;
  overflow-y: auto;
}

.related-list__title {
  font-size: 1.1rem;
  font-family: "Cera GR Regular Bold";
  padding: 1rem;
  margin: 0;
}

.related-list__completed-icon {
  margin-right: 1rem;
}

.related-list__completed-icon img {
  width: 1.5rem;
  height: 1.5rem;
}

.related-list__item {
  padding: 1rem;
  color: grey;
  font-family: "Cera GR Medium";
  font-size: 0.9rem;
  border-bottom: 2px solid grey;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-pack: justify;
          -webkit-justify-content: space-between;
      justify-content: space-between;
}

.related-list__item--active {
  color: white;
  border-bottom: 2px solid white;
}

.related-list__item > div {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: nowrap;
          -webkit-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
}

.related-list__item > div:last-child {
  -ms-flex-preferred-size: 6rem;
          -webkit-flex-basis: 6rem;
      flex-basis: 6rem;
}

.related-list__link a {
  color: grey;
}

.related-list__item--active .related-list__link a,
.related-list__link:hover a {
  color: white;
}

.related-list::-webkit-scrollbar {
  width: 0.5rem;
}

.related-list::-webkit-scrollbar-track {
  box-shadow: inset 0 0 6px rgba(83, 94, 103, 0.3);
}

.related-list::-webkit-scrollbar-thumb {
  border-radius: 0px;
  background-color: white;
  outline: 1px solid slategrey;
}

.mySlides {
  display: none;
}

.slideshow {
  position: relative;
}

.slideshow__image img {
  height: 100vh;
  width: 100%;
  object-fit: cover;
}

.slideshow__logo {
  position: absolute;
  top: 25%;
  right: 0;
  left: 0;
  text-align: center;
}

.slideshow__text {
  position: absolute;
  bottom: 6%;
  margin: 0 7%;
  word-spacing: 5%;
  line-height: .9;
  font-size: 4vw;
}

@media (max-width: 42rem) {
  .slideshow__text {
    margin: 0.5rem;
    font-size: 1.5rem;
  }
}

.cfield__label {
  margin-bottom: .5rem;
  font-family: "Cera GR Black";
}

.twitter-blocks {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-direction: row;
          -webkit-flex-direction: row;
      flex-direction: row;
}

.twitter-blocks__row {
  font-size: 20rem;
  width: 100%;
}

@media (max-width: 45rem) {
  .twitter-blocks {
    -ms-flex-direction: column;
            -webkit-flex-direction: column;
        flex-direction: column;
  }
}

.user_page__container--left {
  float: left;
  width: 33.333%;
}

.user_page__container--right {
  padding-left: 4rem;
  float: left;
  width: 66.666%;
}

@media (max-width: 70rem) {
  .user_page__container--left,
  .user_page__container--right {
    float: left;
    width: 100%;
  }

  .user_page__container--right {
    padding-left: 0;
  }
}

.user-profile-info {
  background-color: #f7f7f7;
}

.user-profile-info__button {
  padding: 0.5rem;
}

.user-profile-info__element {
  border-bottom: 1px solid lightgrey;
  min-height: 4rem;
  padding: 0.5rem 2rem;
}

.user-profile-info__element:last-child {
  border-bottom: none;
}

.user-profile-info__points {
  background-color: #fec524;
  padding: 0.5rem 0;
}

.user-profile-info__edit {
  height: 7rem;
}

.user_scores {
  position: relative;
  background: #fec524;
  padding: 2rem;
  color: #845e1f;
  margin: auto;
}

.user_scores::after {
  clear: both;
  content: "";
  display: table;
}

.user_scores__checkbox {
  display: none;
}

.user_scores__total {
  padding: 0 1rem;
}

.user_scores__list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.user_scores__list_item {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
  -ms-flex-pack: justify;
          -webkit-justify-content: space-between;
      justify-content: space-between;
  border: 1px solid white;
  border-radius: 100px;
  margin: 0.5rem 0;
  padding: 0.3rem 1rem;
}

.user_scores__heading {
  font-size: 0.9rem;
}

.user_scores__marks {
  font-size: 2rem;
  padding: 0.5rem 0;
}

.user_scores__marks--white {
  color: white;
  font-size: 3rem;
}

.user_scores__marks--right {
  color: #2a343d;
}

.composition {
  position: relative;
  margin-top: 15rem;
  height: 15rem;
}

.composition .ajax-progress-throbber {
  display: none;
}

.composition__logo {
  width: 30%;
  display: block;
  margin: auto;
  max-width: 15rem;
}

.composition__slide-label {
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  top: -50px;
  white-space: nowrap;
  text-align: center;
  font-family: "Cera GR Light";
  font-size: 1.1rem;
}

.composition__slide {
  -webkit-perspective: 150rem;
          perspective: 150rem;
  height: 13rem;
  max-width: 15rem;
  width: 30%;
  position: absolute;
}

.composition__slide--p1 {
  left: 0;
  top: 0;
}

.composition__slide--p2 {
  right: 0;
  top: 0;
}

.composition__slide--p3 {
  left: 50%;
  top: 0rem;
  -webkit-transform: translateX(-50%) translateY(-100%);
          transform: translateX(-50%) translateY(-100%);
}

@media (max-width: 56.25em) {
  .composition {
    margin: 0;
    height: initial;
    text-align: center;
  }

  .composition__logo {
    display: none;
  }

  .composition__slide {
    width: 13rem;
    height: 13rem;
    margin-top: 4rem;
    margin-left: .5rem;
    margin-right: .5rem;
    display: inline-block;
    position: initial;
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
}

.composition__slide-caption {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg);
  background: #fec524;
  box-shadow: 0 1.5rem 2rem rgba(0, 0, 0, 0.05);
}

.composition__slide-caption span {
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  font-size: 1.1rem;
  font-family: "Cera GR Light";
}

.composition__slide-caption span:hover,
.composition__slide-caption span {
  color: #1a1a1a;
}

.composition__photo {
  box-shadow: 0 1.5rem 2rem rgba(0, 0, 0, 0.08);
  border-radius: 5px;
  border: 2px solid #fec524;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.composition__photo,
.composition__slide-caption {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  transition: all .8s ease;
}

.composition__slide:hover .composition__photo {
  -webkit-transform: rotateY(-180deg);
          transform: rotateY(-180deg);
}

.composition__slide:hover .composition__slide-caption {
  -webkit-transform: rotateY(0);
          transform: rotateY(0);
}

.campus-meet {
  background: #2a343d;
  padding: 2rem 3rem 5% 5%;
}

.campus-meet__upper {
  margin-bottom: 2rem;
}

.campus-meet__upper_title {
  padding: 3rem;
}

.campus-meet__upper_text {
  color: white;
}

.campus-meet__upper_text > div {
  padding-left: 130px;
}

.campus-meet--left,
.campus-meet--right {
  width: 50%;
  float: left;
}

.campus-meet__container {
  margin-bottom: 1rem;
  position: relative;
}

.campus-meet__container::after {
  clear: both;
  content: "";
  display: table;
}

.campus-meet__container .campus-meet-back-image {
  float: left;
  right: -25px;
  position: relative;
  width: 130px;
  height: auto;
  z-index: 100;
  background: white;
  border-radius: 50%;
  transition: border .4s ease;
}

.campus-meet__container .campus-meet-back-image:hover {
  -webkit-animation: rotate 1s ease-in;
          animation: rotate 1s ease-in;
}

.campus-meet__container .campus-meet-box {
  border-radius: 6px;
  min-height: 36rem;
  padding: 5rem;
  background: rgba(255, 255, 255, 0.9);
  transition: all .5s ease;
}

.campus-meet__container .campus-meet-box .text--bold,
.campus-meet__container .campus-meet-box .forum-table-row .forum__title > div:first-child a,
.forum-table-row .forum__title > div:first-child .campus-meet__container .campus-meet-box a {
  font-weight: normal;
  font-family: "Cera GR Black";
}

.campus-meet__container .campus-meet-box--barista .text--bold,
.campus-meet__container .campus-meet-box--barista .forum-table-row .forum__title > div:first-child a,
.forum-table-row .forum__title > div:first-child .campus-meet__container .campus-meet-box--barista a {
  color: #fec524;
}

.campus-meet__container .campus-meet-box--grindery .text--bold,
.campus-meet__container .campus-meet-box--grindery .forum-table-row .forum__title > div:first-child a,
.forum-table-row .forum__title > div:first-child .campus-meet__container .campus-meet-box--grindery a {
  color: #672d8c;
}

.campus-meet__container .campus-meet-box--quality .text--bold,
.campus-meet__container .campus-meet-box--quality .forum-table-row .forum__title > div:first-child a,
.forum-table-row .forum__title > div:first-child .campus-meet__container .campus-meet-box--quality a {
  color: #696300;
}

.campus-meet__container .campus-meet-box--roasting .text--bold,
.campus-meet__container .campus-meet-box--roasting .forum-table-row .forum__title > div:first-child a,
.forum-table-row .forum__title > div:first-child .campus-meet__container .campus-meet-box--roasting a {
  color: #bc3019;
}

.campus-meet__container:hover .campus-meet-box:hover {
  background: white;
  -webkit-transform: translateY(-5px);
          transform: translateY(-5px);
}

.campus-meet__container:hover .campus-meet-back-image--barista {
  border: 3px solid #fec524;
}

.campus-meet__container:hover .campus-meet-back-image--grindery {
  border: 3px solid #672d8c;
}

.campus-meet__container:hover .campus-meet-back-image--quality {
  border: 3px solid #696300;
}

.campus-meet__container:hover .campus-meet-back-image--roasting {
  border: 3px solid #bc3019;
}

.campus-meet__title {
  font-family: "Cera GR Black";
}

.campus-meet__title--barista {
  color: #fec524;
}

.campus-meet__title--grindery {
  color: #672d8c;
}

.campus-meet__title--quality {
  color: #696300;
}

.campus-meet__title--roasting {
  color: #bc3019;
}

@supports (-webkit-text-stroke-color: #fec524) {
  .campus-meet__title {
    -webkit-text-stroke-width: 1px;
    color: transparent;
    -webkit-transform: skewX(-10deg);
            transform: skewX(-10deg);
  }

  .campus-meet__title--barista {
    -webkit-text-stroke-color: #fec524;
  }

  .campus-meet__title--grindery {
    -webkit-text-stroke-color: #672d8c;
  }

  .campus-meet__title--quality {
    -webkit-text-stroke-color: #696300;
  }

  .campus-meet__title--roasting {
    -webkit-text-stroke-color: #bc3019;
  }
}

.about_new__header {
  font-size: 2rem;
  font-family: "Cera GR Black";
  letter-spacing: 2px;
  color: #1a1a1a;
}

.about_new__image-box {
  position: relative;
  width: 100%;
  display: block;
  max-width: 85rem;
}

.about_new__image-box-image {
  width: 60%;
}

.about_new__image-box-image img {
  width: 100%;
  height: auto;
}

.about_new__image-box .about_new__text-box {
  position: absolute;
  top: 50%;
  right: 0;
  width: 55%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

@media (max-width: 84.375em) {
  .about_new__image-box-image {
    width: 75%;
  }

  .about_new__image-box .about_new__text-box {
    width: 60%;
  }
}

@media (max-width: 56.25em) {
  .about_new__image-box-image {
    display: none;
  }

  .about_new__image-box .about_new__text-box {
    position: initial;
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
    width: 100%;
  }
}

.about_new__composition-box::after {
  clear: both;
  content: "";
  display: table;
}

.about_new__composition-box .about_new__text-box {
  float: left;
  width: 40%;
  position: relative;
  top: 15rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.about_new__composition-box .composition {
  width: 55%;
  float: right;
}

@media (max-width: 84.375em) {
  .about_new__composition-box .about_new__text-box {
    width: 32%;
  }

  .about_new__composition-box .composition {
    width: 65%;
  }
}

@media (max-width: 56.25em) {
  .about_new__composition-box .about_new__text-box {
    width: 100%;
    top: 0;
    -webkit-transform: translateY(0);
            transform: translateY(0);
    float: none;
  }

  .about_new__composition-box .composition {
    width: 100%;
    float: none;
  }
}

@media (max-width: 90rem) {
  .campus-meet--left,
  .campus-meet--right {
    width: 100%;
    float: none;
  }
}

@media (max-width: 50rem) {
  .about__container .about-back-image {
    width: 100%;
    min-height: initial;
  }

  .about__container .about-box {
    width: 100%;
    padding: 0;
    position: initial;
    margin: auto;
  }

  .campus-meet {
    padding: 2rem .5rem 3rem .5rem;
  }

  .campus-meet__upper {
    margin-bottom: .5rem;
  }

  .campus-meet__upper_title {
    padding: 3rem 1rem !important;
    font-size: 2rem !important;
  }

  .campus-meet__upper_text > div {
    padding-left: 0;
  }

  .campus-meet--left,
  .campus-meet--right {
    width: 100%;
    float: none;
  }

  .campus-meet__container .campus-meet-back-image {
    width: auto;
    height: 100px;
    min-height: initial;
    right: 0;
    top: 50px;
  }

  .campus-meet__container .campus-meet-box {
    width: 100%;
    padding: 1rem;
    position: initial;
    margin: auto;
    min-height: initial;
  }

  .campus-meet__title {
    padding: 50px 0 0 0;
  }

  .swiper-button-prev,
  .swiper-button-next {
    display: none;
  }
}

.progress {
  position: relative;
  padding: 2rem 0;
}

.progress__track {
  background-color: #fff;
  border: 1px solid;
  margin-top: 5px;
  max-width: 100%;
  min-width: 100px;
  height: 16px;
  border-radius: 1000px;
  overflow: hidden;
}

.progress__bar {
  background-color: #2a343d;
  height: 100%;
  width: 3%;
  min-width: 3%;
  max-width: 100%;
}

.progress__description,
.progress__percentage {
  color: #555;
  overflow: hidden;
  font-size: 0.875em;
  margin-top: 0.2em;
}

.progress__description {
  float: left;
}

.contact-page .til-component {
  background: white;
  box-shadow: 0px 2px 16px rgba(0, 0, 0, 0.1);
  margin: 2rem 0;
  padding: 1.5rem;
  border-radius: 3px;
}

.contact-page .til-component__title {
  color: #1a1a1a !important;
  font-size: 1.1rem !important;
  font-family: "Cera GR Black";
  margin-bottom: 1rem;
  padding-bottom: .5rem;
  border-bottom: 2px dotted;
}

.contact-page .til-component__list .tt-component__title-text {
  color: #535e67 !important;
  font-size: 0.9rem !important;
  font-family: "Cera GR Light";
}

.forum__header {
  font-family: "Cera GR Regular Bold";
  font-size: 1.5rem;
  background-color: #fec524;
  color: #535e67;
  padding: 1rem 15px;
}

.forum__subheader {
  font-family: "Cera GR Regular Bold";
  font-size: 1.5rem;
}

.forum__subheader,
.forum__subheader a {
  color: #fec524;
}

.forum__sec-el {
  overflow: hidden;
  width: 100%;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  padding-left: 2rem;
  border: 1px solid lightgrey;
  border-top: none;
}

.forum__sec-el li {
  margin-right: 0.5rem;
}

.forum-table-wrapper {
  background-color: #f7f7f7;
  margin: 1rem 0;
}

.forum-table {
  margin-top: 0;
  width: 100%;
}

.forum-table-header {
  padding: 1rem 2rem;
  background-color: #fec524;
}

.forum-table-subheader--black {
  background: #2a343d;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  padding-left: 2rem;
}

.forum-table-subheader th {
  border-right: 1px solid  lightgrey;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}

.forum-table-subheader th:first-child {
  padding-left: 2rem;
}

.forum-table-subheader th:last-child {
  border-right: none;
}

.forum-table-row {
  border-bottom: 1px solid lightgrey;
  background-color: #fff3d1;
}

.forum-table-row .forum__title {
  text-align: left;
}

.forum-table-row:last-child {
  border-bottom: none;
}

.forum-table-row .indent > img {
  float: left;
  margin-right: 1rem;
}

.forum-table-row td {
  padding: 2rem;
  border-right: 1px solid lightgrey;
}

.forum-table-row td:last-child {
  border-right: none;
}

.forum-table-row .table-col-small {
  width: 10%;
}

.forum-table-row .table-col-medium {
  width: 20%;
}

.forum-table-row .table-col-large {
  width: 60%;
}

.icon-float-left {
  float: left;
  margin-right: 0.5rem;
}

@media (max-width: 70rem) {
  .forum-table-subheader {
    display: none;
  }

  .forum-table-subheader--black {
    display: block;
  }

  .forum-table-row td {
    padding: 1rem 2rem;
  }

  .forum-table-row .table-col-small {
    display: none;
  }

  .forum-table-row .table-col-medium {
    display: none;
  }

  .forum-table-row .table-col-large {
    width: 100%;
  }

  .forum__replies {
    display: none;
  }

  .forum__last-reply {
    display: none;
  }
}

.forum-topic {
  margin-top: 2.5rem;
  margin-bottom: 1rem;
  position: relative;
  background-color: #fff3d1;
  box-shadow: 0px 2px 7px -3px rgba(0, 0, 0, 0.5);
}

.forum-topic .forum-table-header {
  margin-bottom: -2rem;
}

.forum-topic input:not(input[type="submit"]) {
  width: 100%;
}

.forum-topic .links {
  list-style: none;
  padding: 0;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-pack: end;
          -webkit-justify-content: flex-end;
      justify-content: flex-end;
}

@media (min-width: 56.25em) {
  .forum-topic .links {
    position: absolute;
    bottom: 0;
    right: 15px;
    left: 15px;
  }
}

.forum-topic .links a {
  margin-left: 1.5rem;
}

.forum-topic .links a::before {
  margin-right: .5rem;
}

.forum-topic .links .comment-delete a::before {
  content: "";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
}

.forum-topic .links .comment-edit a::before {
  content: "";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
}

.forum-topic .links .comment-reply a::before {
  content: "";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
}

.forum-topic__info {
  display: block;
  padding: 1rem 0;
  border-bottom: 1px solid lightgrey;
}

@media (min-width: 56.25em) {
  .forum-topic__info {
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-pack: justify;
            -webkit-justify-content: space-between;
        justify-content: space-between;
    -ms-flex-align: center;
            -webkit-align-items: center;
        align-items: center;
  }
}

.forum-topic__body {
  padding: 1rem 0 1rem 0;
}

@media (min-width: 56.25em) {
  .forum-topic__body {
    padding: 1rem 0 4rem 0;
  }
}

.forum-topic__image {
  padding-bottom: .5rem;
}

.forum-topic__image .js-form-item {
  display: none;
}

.forum-topic__image img {
  width: 85px;
  margin-right: 5px;
}

@media (min-width: 56.25em) {
  .forum-topic__image {
    text-align: center;
  }

  .forum-topic__image .js-form-item {
    display: block;
  }

  .forum-topic__image img {
    width: 100%;
    height: auto;
    margin-bottom: .5rem;
  }

  .forum-topic__image h4 {
    margin-bottom: 0;
  }
}

.forum-topic__new-indicator:not(.hidden) {
  position: absolute;
  padding: 1rem;
  z-index: 2;
  width: 3rem;
  height: 3rem;
  top: 0;
  right: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  font-size: 0.9rem;
  border-radius: 50%;
  background-color: #fec524;
  color: white;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
  -ms-flex-pack: center;
          -webkit-justify-content: center;
      justify-content: center;
}

@media (min-width: 56.25em) {
  .forum-topic__new-indicator:not(.hidden) {
    left: 0;
    right: initial;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
  }
}

.indented {
  margin-left: auto;
  width: 100%;
}

@media (min-width: 56.25em) {
  .indented {
    width: 96%;
  }
}

.comment-form {
  padding: 2rem 2rem 0rem;
  background: white;
  box-shadow: 0px 2px 16px rgba(0, 0, 0, 0.1);
  border-radius: 6px;
}

.comment-form label {
  display: block;
  font-family: "Cera GR Black";
  margin-bottom: .4rem;
}

.comment-form input {
  margin-bottom: .4rem;
  max-width: 100%;
}

.comment-form input[type="submit"] {
  margin: 2rem 0;
}

@media (max-width: 56.25em) {
  .comment-form input[type="submit"] {
    margin: 1rem 0;
  }
}

.leaderboards-page {
  padding-top: 2rem;
}

.login-page {
  min-height: 100vh;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-pack: center;
          -webkit-justify-content: center;
      justify-content: center;
  -ms-flex-align: center;
          -webkit-align-items: center;
      align-items: center;
  position: relative;
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("/themes/custom/coffeetheme2017/assets/images/plain_images/coffee_barista_alone.jpg");
  background-size: 100% 100%, cover;
  background-repeat: no-repeat, no-repeat;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.login-page .notification-icon {
  padding: 1rem;
  top: 0;
  bottom: initial;
  z-index: 1000;
}

.login-page__form_container {
  color: white;
  margin: .5rem 0;
}

.login-page__logo {
  margin: auto;
  max-width: 20rem;
  margin-bottom: 2rem;
}

.login-page__logo img {
  width: 100%;
  height: auto;
}

.login-page__welcome_message {
  font-size: 2rem;
  color: #fec524;
  text-transform: uppercase;
  text-align: center;
}

.login-page__action-button {
  color: #fec524;
  margin: 1rem auto;
  font-size: 0.9rem;
  font-family: "Cera GR Regular Bold";
  text-transform: uppercase;
  display: block;
}

@media (max-width: 42rem) {
  .login-page__action-button {
    max-width: 17rem;
  }
}

.login-page__action-button--secondary {
  color: #f7f7f7;
  border: 1px solid #f7f7f7;
  white-space: nowrap;
}

@media (max-width: 56.25em) {
  .login-page__action-button--secondary {
    padding: 3px 10px;
    font-size: .7rem;
    max-width: initial;
    display: block;
    width: 100%;
    border-radius: 1px;
  }
}

.login-page__action-button--secondary:hover {
  border-color: #fec524;
}

@media (max-width: 56.25em) {
  .login-page__actions {
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-align: center;
            -webkit-align-items: center;
        align-items: center;
    -ms-flex-line-pack: center;
            -webkit-align-content: center;
        align-content: center;
    -ms-flex-pack: justify;
            -webkit-justify-content: space-between;
        justify-content: space-between;
  }

  .login-page__actions .login-page__action-button:not(:last-child) {
    margin-right: 10px;
  }
}

@media (max-width: 50rem) {
  .login-page {
    background-position: center;
  }

  .login-page__logo {
    max-width: 10rem;
  }

  .login-page .user-login-form .form-element,
  .login-page .user-pass .form-element {
    margin: 0;
    padding: 0.5rem 0;
  }

  .login-page .user-login-form .form-element:last-child,
  .login-page .user-pass .form-element:last-child {
    margin-bottom: .5rem;
  }

  .login-page .user-login-form #edit-submit,
  .login-page .user-pass #edit-submit {
    max-width: 17rem;
  }
}

.notepad_listing {
  width: 100%;
}

.notepad_listing__title {
  text-transform: capitalize;
  padding: 3.5rem 0 0.5rem 5.5rem;
  color: #2a343d;
  font-family: "Cera GR Black";
  font-size: 1.5rem;
  border-bottom: 1px solid #535e67;
}

.notepad_listing__note {
  border-bottom: 1px solid #535e67;
  padding: 0.5rem 0 0.5rem 5.5rem;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-pack: justify;
          -webkit-justify-content: space-between;
      justify-content: space-between;
  font-family: "Cera GR Medium";
  font-size: 1rem;
  color: #2a343d;
}

.notepad_listing__note_container {
  position: relative;
}

.notepad_listing__note_container:before {
  content: '';
  height: 105%;
  left: 4rem;
  border-right: 1px solid #fec524;
  top: 0;
  bottom: 0;
  width: 10px;
  position: absolute;
  display: block;
}

.notepad_listing__note_body p {
  padding: 0;
  margin: 0;
}

.notepad_listing__note_date {
  min-width: 9rem;
  text-align: center;
}

@media (max-width: 768px) {
  .notepad_listing {
    width: 100%;
  }

  .notepad_listing__title {
    text-transform: capitalize;
    padding: 3.5rem 0 0.5rem 2.5rem;
  }

  .notepad_listing__note {
    padding: 0.5rem 0 0.5rem 2.5rem;
  }

  .notepad_listing__note_container:before {
    left: 1rem;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9tYWluLnNjc3MiLCJzb3VyY2VzIjpbIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvbWFpbi5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9fdmFyaWFibGVzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2hvdmVyLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL19vcHRpb25zLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL19taXhpbnMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvX2hhY2tzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX2dyb3cuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fc2hyaW5rLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3B1bHNlLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3B1bHNlLWdyb3cuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fcHVsc2Utc2hyaW5rLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3B1c2guc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fcG9wLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX2JvdW5jZS1pbi5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzLzJkLXRyYW5zaXRpb25zL19ib3VuY2Utb3V0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3JvdGF0ZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzLzJkLXRyYW5zaXRpb25zL19ncm93LXJvdGF0ZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzLzJkLXRyYW5zaXRpb25zL19mbG9hdC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzLzJkLXRyYW5zaXRpb25zL19zaW5rLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX2JvYi5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzLzJkLXRyYW5zaXRpb25zL19oYW5nLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3NrZXcuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fc2tldy1mb3J3YXJkLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3NrZXctYmFja3dhcmQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fd29iYmxlLXZlcnRpY2FsLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3dvYmJsZS1ob3Jpem9udGFsLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3dvYmJsZS10by1ib3R0b20tcmlnaHQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fd29iYmxlLXRvLXRvcC1yaWdodC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzLzJkLXRyYW5zaXRpb25zL193b2JibGUtdG9wLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3dvYmJsZS1ib3R0b20uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fd29iYmxlLXNrZXcuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fYnV6ei5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzLzJkLXRyYW5zaXRpb25zL19idXp6LW91dC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzLzJkLXRyYW5zaXRpb25zL19mb3J3YXJkLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX2JhY2t3YXJkLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9fZmFkZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvX2JhY2stcHVsc2Uuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL19zd2VlcC10by1yaWdodC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvX3N3ZWVwLXRvLWxlZnQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL19zd2VlcC10by1ib3R0b20uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL19zd2VlcC10by10b3Auc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL19ib3VuY2UtdG8tcmlnaHQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL19ib3VuY2UtdG8tbGVmdC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvX2JvdW5jZS10by1ib3R0b20uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL19ib3VuY2UtdG8tdG9wLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9fcmFkaWFsLW91dC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvX3JhZGlhbC1pbi5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvX3JlY3RhbmdsZS1pbi5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvX3JlY3RhbmdsZS1vdXQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL19zaHV0dGVyLWluLWhvcml6b250YWwuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL19zaHV0dGVyLW91dC1ob3Jpem9udGFsLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9fc2h1dHRlci1pbi12ZXJ0aWNhbC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvX3NodXR0ZXItb3V0LXZlcnRpY2FsLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL19ib3JkZXItZmFkZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9faG9sbG93LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL190cmltLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL19yaXBwbGUtb3V0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL19yaXBwbGUtaW4uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvX291dGxpbmUtb3V0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL19vdXRsaW5lLWluLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL19yb3VuZC1jb3JuZXJzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL191bmRlcmxpbmUtZnJvbS1sZWZ0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL191bmRlcmxpbmUtZnJvbS1jZW50ZXIuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvX3VuZGVybGluZS1mcm9tLXJpZ2h0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL19vdmVybGluZS1mcm9tLWxlZnQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvX292ZXJsaW5lLWZyb20tY2VudGVyLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL19vdmVybGluZS1mcm9tLXJpZ2h0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL19yZXZlYWwuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvX3VuZGVybGluZS1yZXZlYWwuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvX292ZXJsaW5lLXJldmVhbC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL3NoYWRvdy1hbmQtZ2xvdy10cmFuc2l0aW9ucy9fZ2xvdy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL3NoYWRvdy1hbmQtZ2xvdy10cmFuc2l0aW9ucy9fc2hhZG93LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvc2hhZG93LWFuZC1nbG93LXRyYW5zaXRpb25zL19ncm93LXNoYWRvdy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL3NoYWRvdy1hbmQtZ2xvdy10cmFuc2l0aW9ucy9fYm94LXNoYWRvdy1vdXRzZXQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9zaGFkb3ctYW5kLWdsb3ctdHJhbnNpdGlvbnMvX2JveC1zaGFkb3ctaW5zZXQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9zaGFkb3ctYW5kLWdsb3ctdHJhbnNpdGlvbnMvX2Zsb2F0LXNoYWRvdy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL3NoYWRvdy1hbmQtZ2xvdy10cmFuc2l0aW9ucy9fc2hhZG93LXJhZGlhbC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL3NwZWVjaC1idWJibGVzL19idWJibGUtdG9wLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvc3BlZWNoLWJ1YmJsZXMvX2J1YmJsZS1yaWdodC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL3NwZWVjaC1idWJibGVzL19idWJibGUtYm90dG9tLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvc3BlZWNoLWJ1YmJsZXMvX2J1YmJsZS1sZWZ0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvc3BlZWNoLWJ1YmJsZXMvX2J1YmJsZS1mbG9hdC10b3Auc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9zcGVlY2gtYnViYmxlcy9fYnViYmxlLWZsb2F0LXJpZ2h0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvc3BlZWNoLWJ1YmJsZXMvX2J1YmJsZS1mbG9hdC1ib3R0b20uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9zcGVlY2gtYnViYmxlcy9fYnViYmxlLWZsb2F0LWxlZnQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9pY29ucy9faWNvbi1iYWNrLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvaWNvbnMvX2ljb24tZm9yd2FyZC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2ljb25zL19pY29uLWRvd24uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9pY29ucy9faWNvbi11cC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2ljb25zL19pY29uLXNwaW4uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9pY29ucy9faWNvbi1kcm9wLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvaWNvbnMvX2ljb24tZmFkZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2ljb25zL19pY29uLWZsb2F0LWF3YXkuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9pY29ucy9faWNvbi1zaW5rLWF3YXkuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9pY29ucy9faWNvbi1ncm93LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvaWNvbnMvX2ljb24tc2hyaW5rLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvaWNvbnMvX2ljb24tcHVsc2Uuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9pY29ucy9faWNvbi1wdWxzZS1ncm93LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvaWNvbnMvX2ljb24tcHVsc2Utc2hyaW5rLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvaWNvbnMvX2ljb24tcHVzaC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2ljb25zL19pY29uLXBvcC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2ljb25zL19pY29uLWJvdW5jZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2ljb25zL19pY29uLXJvdGF0ZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2ljb25zL19pY29uLWdyb3ctcm90YXRlLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvaWNvbnMvX2ljb24tZmxvYXQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9pY29ucy9faWNvbi1zaW5rLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvaWNvbnMvX2ljb24tYm9iLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvaWNvbnMvX2ljb24taGFuZy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2ljb25zL19pY29uLXdvYmJsZS1ob3Jpem9udGFsLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvaWNvbnMvX2ljb24td29iYmxlLXZlcnRpY2FsLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvaWNvbnMvX2ljb24tYnV6ei5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9ob3Zlci9lZmZlY3RzL2ljb25zL19pY29uLWJ1enotb3V0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL2hvdmVyL2VmZmVjdHMvY3VybHMvX2N1cmwtdG9wLWxlZnQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9jdXJscy9fY3VybC10b3AtcmlnaHQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9jdXJscy9fY3VybC1ib3R0b20tcmlnaHQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvaG92ZXIvZWZmZWN0cy9jdXJscy9fY3VybC1ib3R0b20tbGVmdC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9fZGVmYXVsdHMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ub3JtYWxpemUuc2Nzcy9ub3JtYWxpemUuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvX2xpYnMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL19zaW5ndWxhcml0eWdzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19oZWxwZXJzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2hlbHBlcnMvX3NldHRpbmdzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2hlbHBlcnMvX2ZpbmQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fc2Fzcy1saXN0cy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL3Npbmd1bGFyaXR5Z3Mvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9oZWxwZXJzL19jb2x1bW5zLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2hlbHBlcnMvX3NwYW4tc2hhcmVkLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2hlbHBlcnMvX2RpcmVjdGlvbnMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fc29ydC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL3Npbmd1bGFyaXR5Z3Mvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9oZWxwZXJzL19iYWNrZ3JvdW5kLWdyaWQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fbGF5b3V0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19sYW5ndWFnZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL3Npbmd1bGFyaXR5Z3Mvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9sYW5ndWFnZS9fcGFyc2UtbGlzdC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL3Npbmd1bGFyaXR5Z3Mvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9sYW5ndWFnZS9fcGFyc2UtYWRkLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2xhbmd1YWdlL19zcGFuLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL19tYXRoLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL21hdGgvX2NvbHVtbnMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvbWF0aC9fZ3V0dGVycy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL3Npbmd1bGFyaXR5Z3Mvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9tYXRoL19jb250ZXh0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL21hdGgvX2dyaWQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvX2dyaWRzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2dyaWRzL19hZGQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvZ3JpZHMvX2ZpbmQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvX2d1dHRlcnMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvZ3V0dGVycy9fYWRkLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2d1dHRlcnMvX2ZpbmQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvX2d1dHRlci1zdHlsZXMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvZ3V0dGVyLXN0eWxlcy9fYWRkLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2d1dHRlci1zdHlsZXMvX2ZpbmQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvZ3V0dGVyLXN0eWxlcy9faGVscGVycy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL3Npbmd1bGFyaXR5Z3Mvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlncy9fYXBpLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvc2luZ3VsYXJpdHlncy9zdHlsZXNoZWV0cy9zaW5ndWxhcml0eWdzL2FwaS9fZmxvYXQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvYXBpL19pc29sYXRpb24uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9zaW5ndWxhcml0eWdzL3N0eWxlc2hlZXRzL3Npbmd1bGFyaXR5Z3MvYXBpL19jYWxjLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL19icmVha3BvaW50LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3NldHRpbmdzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2NvbnRleHQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9faGVscGVycy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19wYXJzZXJzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fcXVlcnkuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19zaW5nbGUuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3NpbmdsZS9fZGVmYXVsdC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX2RvdWJsZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kZWZhdWx0LXBhaXIuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZG91YmxlLXN0cmluZy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kZWZhdWx0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fdHJpcGxlLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy90cmlwbGUvX2RlZmF1bHQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19yZXNvbHV0aW9uLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9yZXNvbHV0aW9uL19yZXNvbHV0aW9uLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX25vLXF1ZXJ5LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3Jlc3BvbmQtdG8uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fbGVnYWN5LXNldHRpbmdzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19kZXByZWNhdGlvbi13YXJuaW5ncy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19hc3NldC1waXBlbGluZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi1kZXByZWNhdGUuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19hc3NpZ24taW5wdXRzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWlucy1mYWxzeS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLWxlbmd0aC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLWxpZ2h0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbnVtYmVyLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtc2l6ZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc2hhZGUuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RpbnQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL191bnBhY2suc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZGlyZWN0aW9uYWwtdmFsdWVzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWFuZ2xlLXBhcnNlci5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fc3RyLXRvLW51bS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hbmltYXRpb24uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY2FsYy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jb2x1bW5zLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZpbHRlci5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mbGV4LWJveC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZhY2Uuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mZWF0dXJlLXNldHRpbmdzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2h5cGhlbnMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2tleWZyYW1lcy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3NlbGVjdGlvbi5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190ZXh0LWRlY29yYXRpb24uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItY29sb3Iuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItcmFkaXVzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXN0eWxlLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXdpZHRoLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYnV0dG9ucy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19mb250LXN0YWNrcy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX21hcmdpbi5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3BhZGRpbmcuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wb3NpdGlvbi5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fc2l6ZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RleHQtaW5wdXRzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvbWl4aW5zL19jZW50ZXIuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvbWl4aW5zL19lbGxpcHNpcy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9taXhpbnMvX2ZhLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL21peGlucy9fZmx1aWQtdHlwZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2Nzcy9taXhpbnMvX2ljb24uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvbWl4aW5zL19sb2NhbC1iYXNlLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL21peGlucy9fbWFyZ2luLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL21peGlucy9fbWVzc2FnZXMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvbWl4aW5zL19wYWRkaW5nLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL21peGlucy9fcGxhY2Vob2xkZXIuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jc3MvbWl4aW5zL19zdHJpcC11bml0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL21peGlucy9fd29yZC13cmFwLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY3NzL21peGlucy9fei1pbmRleC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDAtYmFzZS8wMS1jb2xvcnMvX2NvbG9ycy5jb25maWcuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAwLWJhc2UvMDItYnJlYWtwb2ludHMvX2JyZWFrcG9pbnRzLmNvbmZpZy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDAtYmFzZS8wMy1ncmlkL19ncmlkLmNvbmZpZy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDAtYmFzZS8wMy1ncmlkL19ncmlkLm1peGlucy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDAtYmFzZS8wNC1zcGFjaW5nL19zcGFjaW5nLmNvbmZpZy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDAtYmFzZS8wNS10eXBvZ3JhcGh5L19mb250cy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDAtYmFzZS8wNi1mb3JtL19mb3JtLS1sb2dpbi5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDAtYmFzZS8wNi1mb3JtL19mb3JtLS10cmFpbmluZy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDAtYmFzZS8wNi1mb3JtL19mb3JtLS11c2VyLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMC1iYXNlLzA2LWZvcm0vX2Zvcm0uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAwLWJhc2UvMDYtZm9ybS9fd2ViZm9ybV9fbWFwcGluZy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDAtYmFzZS8wNi1mb3JtL193ZWJmb3JtX190YWJsZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDAtYmFzZS8wNi1mb3JtL193ZWJmb3JtLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMC1iYXNlLzA2LWZvcm0vZm9ybS1lbGVtZW50cy9fY2hlY2tib3guc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAwLWJhc2UvMDYtZm9ybS9mb3JtLWVsZW1lbnRzL19jaG9zZW4uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAwLWJhc2UvMDYtZm9ybS9mb3JtLWVsZW1lbnRzL19kZXRhaWxzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMC1iYXNlLzA2LWZvcm0vZm9ybS1lbGVtZW50cy9fZmllbGRzZXQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAwLWJhc2UvMDYtZm9ybS9mb3JtLWVsZW1lbnRzL19maWxlLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMC1iYXNlLzA2LWZvcm0vZm9ybS1lbGVtZW50cy9fcmFkaW8uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAwLWJhc2UvMDYtZm9ybS9mb3JtLWVsZW1lbnRzL19zZWxlY3Quc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAwLWJhc2UvMDYtZm9ybS9mb3JtLWVsZW1lbnRzL190YWJsZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDAtYmFzZS8wNi1mb3JtL2Zvcm0tZWxlbWVudHMvX3RleHRhcmVhLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMC1iYXNlLzA2LWZvcm0vZm9ybS1lbGVtZW50cy9fdGV4dGZpZWxkLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMC1iYXNlLzA2LWZvcm0vZm9ybS1lbGVtZW50cy9fdWktZGlhbG9nLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMC1iYXNlLzA3LWltYWdlcy9faW1hZ2VzLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMC1iYXNlLzA4LXRhYmxlL190YWJsZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDAtYmFzZS8wOS1wcmludC9fcHJpbnQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAxLWF0b21zL2J1dHRvbi9fYnV0dG9uLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMS1hdG9tcy9kcm9wYnV0dG9uL19kcm9wYnV0dG9uLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMS1hdG9tcy9saW5rL19saW5rLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMS1hdG9tcy9saXN0L19saXN0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMS1hdG9tcy9ub2RlQWRkL19ub2RlQWRkLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMS1hdG9tcy9ub3RlcGFkL19ub3RlcGFkLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMS1hdG9tcy9wYWdlci9fcGFnZXIuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAxLWF0b21zL3BhcmFncmFwaHMvX3BhcmFncmFwaHMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAxLWF0b21zL3BvcHVwL19wb3B1cC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDEtYXRvbXMvcG9ydHJhaXQvX3BvcnRyYWl0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMS1hdG9tcy91aS1kaWFsb2cvX2RpYWxvZy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDItc2l0ZS1lbGVtZW50cy9hcnJvdy1jb21wL19hcnJvdy1jb21wLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL2F1dGhvci1pbmZvL2F1dGhvci1pbmZvLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL2Jpby1wb3B1cC9fcG9wdXAuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvYnJlYWRjcnVtYi9fYnJlYWRjcnVtYi5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDItc2l0ZS1lbGVtZW50cy9jb3Vyc2UtaGVhZGVyL19jb3Vyc2UtaGVhZGVyLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL2NvdXJzZS10ZWFzZXIvX2NvdXJzZS10ZWFzZXIuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvZHVyYXRpb24tZGF0ZS9fZHVyYXRpb24tZGF0ZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDItc2l0ZS1lbGVtZW50cy9mb290ZXItcmVmZXJlbmNlL19mb290ZXItcmVmZXJlbmNlLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL2Zyb250LXBhZ2UtYmxvY2svX2Zyb250LXBhZ2UtYmxvY2suc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvaW1nLWNvbXBvc2l0aW9uL19pbWctY29tcG9zaXRpb24uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvbGVhZGVyYm9hcmQvX2xlYWRlcmJvYXJkLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL2xvY2FsLWFjdGlvbnMvX2xvY2FsLWFjdGlvbnMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvbG9nby9fbG9nby5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDItc2l0ZS1lbGVtZW50cy9tYWluLW1lbnUvX21haW4tbWVudS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDItc2l0ZS1lbGVtZW50cy9tZXNzYWdlcy9fbWVzc2FnZXMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvbWluaWJvb2svX21pbmlib29rLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL3BhZ2UtdGl0bGUvX3BhZ2UtdGl0bGUuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvcHJvZ3Jlc3MtY29tcG9uZW50L19wcm9ncmVzcy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDItc2l0ZS1lbGVtZW50cy9yZWxhdGVkLWNvdXJzZS9fcmVsYXRlZC1jb3Vyc2Uuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvdGFnL190YWcuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvdGV4dC1saW5rLWJsb2NrL190ZXh0LWxpbmstYmxvY2suc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvdGV4dC10aXRsZS1jb21wb25lbnQvX3RleHQtdGl0bGUtY29tcG9uZW50LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL3RpdGxlLWljb24tbGlzdC1jb21wb25lbnQvX3RpdGxlLWljb24tbGlzdC1jb21wb25lbnQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzAzLWxheW91dHMvc2l0ZS9fc2l0ZS5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDQtc2l0ZS1yZWdpb25zL2Jsb2cvX2Jsb2cuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzA0LXNpdGUtcmVnaW9ucy9jb3Vyc2VzLW1haW4vX2NvdXJzZXMtbWFpbi5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDQtc2l0ZS1yZWdpb25zL2Zvb3Rlci9fZm9vdGVyLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wNC1zaXRlLXJlZ2lvbnMvZm9ydW0vX2ZvcnVtLWNvbW1lbnQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzA0LXNpdGUtcmVnaW9ucy9mcm9udC1saW5rcy1ibG9ja3MvX2Zyb250LWxpbmtzLWJsb2Nrcy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDQtc2l0ZS1yZWdpb25zL2dhbGxlcnkvX2dhbGxlcnkuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzA0LXNpdGUtcmVnaW9ucy9oZWFkZXIvX2hlYWRlci5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDQtc2l0ZS1yZWdpb25zL2xlYWRlcmJvYXJkL19sZWFkZXJib2FyZC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDQtc2l0ZS1yZWdpb25zL25vdGVwYWQvX25vdGVwYWQuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzA0LXNpdGUtcmVnaW9ucy9yZWxhdGVkLXZpZGVvcy9fcmVsYXRlZC12aWRlb3Muc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzA0LXNpdGUtcmVnaW9ucy9zbGlkZXNob3cvX3NsaWRlc2hvdy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDQtc2l0ZS1yZWdpb25zL3RyYWluaW5nL190cmFpbmluZy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDQtc2l0ZS1yZWdpb25zL3R3aXR0ZXItYmxvY2tzL190d2l0dGVyLWJsb2Nrcy5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDQtc2l0ZS1yZWdpb25zL3VzZXItcHJvZmlsZS1pbmZvL191c2VyLXByb2ZpbGUtaW5mby5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDYtcGFnZXMvYWJvdXQvX2Fib3V0LnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wNi1wYWdlcy9hZG1pbi9fYWRtaW4uc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzA2LXBhZ2VzL2JhdGNoL19iYXRjaC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDYtcGFnZXMvY29udGFjdC9fY29udGFjdC5zY3NzIiwiL21lZGlhL21hcmlvcy82ODEwOThFRTEwOThDNTBBL1Byb2plY3RzL0NvZmZlZUNhbXB1cy93ZWIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvc3JjL2NvbXBvbmVudHMvMDYtcGFnZXMvZm9ydW0vX2ZvcnVtLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wNi1wYWdlcy9sZWFkZXJib2FyZHMvX2xlYWRlcmJvYXJkcy1wYWdlLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wNi1wYWdlcy9sb2dpbi9sb2dpbi1wYWdlLnNjc3MiLCIvbWVkaWEvbWFyaW9zLzY4MTA5OEVFMTA5OEM1MEEvUHJvamVjdHMvQ29mZmVlQ2FtcHVzL3dlYi90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9zcmMvY29tcG9uZW50cy8wNi1wYWdlcy91c2VyL191c2VyLXBhZ2Utbm90ZXMuc2NzcyIsIi9tZWRpYS9tYXJpb3MvNjgxMDk4RUUxMDk4QzUwQS9Qcm9qZWN0cy9Db2ZmZWVDYW1wdXMvd2ViL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L3NyYy9jb21wb25lbnRzLzA2LXBhZ2VzL3VzZXIvX3VzZXItcGFnZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIlxuLy9AaW1wb3J0IFwiYm9vdHN0cmFwLTQtZ3JpZC9zY3NzL2dyaWRcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJob3Zlci9ob3ZlclwiO1xuQGltcG9ydCBcImRlZmF1bHRzXCI7XG5AaW1wb3J0IFwibGlic1wiO1xuQGltcG9ydCBcIm1peGlucy9fY2VudGVyLnNjc3NcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX2VsbGlwc2lzLnNjc3NcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX2ZhLnNjc3NcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX2ZsdWlkLXR5cGUuc2Nzc1wiO1xuQGltcG9ydCBcIm1peGlucy9faWNvbi5zY3NzXCI7XG5AaW1wb3J0IFwibWl4aW5zL19sb2NhbC1iYXNlLnNjc3NcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX21hcmdpbi5zY3NzXCI7XG5AaW1wb3J0IFwibWl4aW5zL19tZXNzYWdlcy5zY3NzXCI7XG5AaW1wb3J0IFwibWl4aW5zL19wYWRkaW5nLnNjc3NcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX3BsYWNlaG9sZGVyLnNjc3NcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX3N0cmlwLXVuaXQuc2Nzc1wiO1xuQGltcG9ydCBcIm1peGlucy9fd29yZC13cmFwLnNjc3NcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX3otaW5kZXguc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDAtYmFzZS8wMS1jb2xvcnMvX2NvbG9ycy5jb25maWcuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDAtYmFzZS8wMi1icmVha3BvaW50cy9fYnJlYWtwb2ludHMuY29uZmlnLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAwLWJhc2UvMDMtZ3JpZC9fZ3JpZC5jb25maWcuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDAtYmFzZS8wMy1ncmlkL19ncmlkLm1peGlucy5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMC1iYXNlLzA0LXNwYWNpbmcvX3NwYWNpbmcuY29uZmlnLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAwLWJhc2UvMDUtdHlwb2dyYXBoeS9fZm9udHMuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDAtYmFzZS8wNi1mb3JtL19mb3JtLS1sb2dpbi5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMC1iYXNlLzA2LWZvcm0vX2Zvcm0tLXRyYWluaW5nLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAwLWJhc2UvMDYtZm9ybS9fZm9ybS0tdXNlci5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMC1iYXNlLzA2LWZvcm0vX2Zvcm0uc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDAtYmFzZS8wNi1mb3JtL193ZWJmb3JtX19tYXBwaW5nLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAwLWJhc2UvMDYtZm9ybS9fd2ViZm9ybV9fdGFibGUuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDAtYmFzZS8wNi1mb3JtL193ZWJmb3JtLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAwLWJhc2UvMDYtZm9ybS9mb3JtLWVsZW1lbnRzL19jaGVja2JveC5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMC1iYXNlLzA2LWZvcm0vZm9ybS1lbGVtZW50cy9fY2hvc2VuLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAwLWJhc2UvMDYtZm9ybS9mb3JtLWVsZW1lbnRzL19kZXRhaWxzLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAwLWJhc2UvMDYtZm9ybS9mb3JtLWVsZW1lbnRzL19maWVsZHNldC5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMC1iYXNlLzA2LWZvcm0vZm9ybS1lbGVtZW50cy9fZmlsZS5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMC1iYXNlLzA2LWZvcm0vZm9ybS1lbGVtZW50cy9fcmFkaW8uc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDAtYmFzZS8wNi1mb3JtL2Zvcm0tZWxlbWVudHMvX3NlbGVjdC5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMC1iYXNlLzA2LWZvcm0vZm9ybS1lbGVtZW50cy9fdGFibGUuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDAtYmFzZS8wNi1mb3JtL2Zvcm0tZWxlbWVudHMvX3RleHRhcmVhLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAwLWJhc2UvMDYtZm9ybS9mb3JtLWVsZW1lbnRzL190ZXh0ZmllbGQuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDAtYmFzZS8wNi1mb3JtL2Zvcm0tZWxlbWVudHMvX3VpLWRpYWxvZy5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMC1iYXNlLzA3LWltYWdlcy9faW1hZ2VzLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAwLWJhc2UvMDgtdGFibGUvX3RhYmxlLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAwLWJhc2UvMDktcHJpbnQvX3ByaW50LnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAxLWF0b21zL2J1dHRvbi9fYnV0dG9uLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAxLWF0b21zL2Ryb3BidXR0b24vX2Ryb3BidXR0b24uc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDEtYXRvbXMvbGluay9fbGluay5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMS1hdG9tcy9saXN0L19saXN0LnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAxLWF0b21zL25vZGVBZGQvX25vZGVBZGQuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDEtYXRvbXMvbm90ZXBhZC9fbm90ZXBhZC5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMS1hdG9tcy9wYWdlci9fcGFnZXIuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDEtYXRvbXMvcGFyYWdyYXBocy9fcGFyYWdyYXBocy5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMS1hdG9tcy9wb3B1cC9fcG9wdXAuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDEtYXRvbXMvcG9ydHJhaXQvX3BvcnRyYWl0LnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAxLWF0b21zL3VpLWRpYWxvZy9fZGlhbG9nLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvYXJyb3ctY29tcC9fYXJyb3ctY29tcC5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL2F1dGhvci1pbmZvL2F1dGhvci1pbmZvLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvYmlvLXBvcHVwL19wb3B1cC5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL2JyZWFkY3J1bWIvX2JyZWFkY3J1bWIuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDItc2l0ZS1lbGVtZW50cy9jb3Vyc2UtaGVhZGVyL19jb3Vyc2UtaGVhZGVyLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvY291cnNlLXRlYXNlci9fY291cnNlLXRlYXNlci5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL2R1cmF0aW9uLWRhdGUvX2R1cmF0aW9uLWRhdGUuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDItc2l0ZS1lbGVtZW50cy9mb290ZXItcmVmZXJlbmNlL19mb290ZXItcmVmZXJlbmNlLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvZnJvbnQtcGFnZS1ibG9jay9fZnJvbnQtcGFnZS1ibG9jay5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL2ltZy1jb21wb3NpdGlvbi9faW1nLWNvbXBvc2l0aW9uLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvbGVhZGVyYm9hcmQvX2xlYWRlcmJvYXJkLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvbG9jYWwtYWN0aW9ucy9fbG9jYWwtYWN0aW9ucy5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL2xvZ28vX2xvZ28uc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDItc2l0ZS1lbGVtZW50cy9tYWluLW1lbnUvX21haW4tbWVudS5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL21lc3NhZ2VzL19tZXNzYWdlcy5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL21pbmlib29rL19taW5pYm9vay5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL3BhZ2UtdGl0bGUvX3BhZ2UtdGl0bGUuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDItc2l0ZS1lbGVtZW50cy9wcm9ncmVzcy1jb21wb25lbnQvX3Byb2dyZXNzLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvcmVsYXRlZC1jb3Vyc2UvX3JlbGF0ZWQtY291cnNlLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzAyLXNpdGUtZWxlbWVudHMvdGFnL190YWcuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDItc2l0ZS1lbGVtZW50cy90ZXh0LWxpbmstYmxvY2svX3RleHQtbGluay1ibG9jay5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL3RleHQtdGl0bGUtY29tcG9uZW50L190ZXh0LXRpdGxlLWNvbXBvbmVudC5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wMi1zaXRlLWVsZW1lbnRzL3RpdGxlLWljb24tbGlzdC1jb21wb25lbnQvX3RpdGxlLWljb24tbGlzdC1jb21wb25lbnQuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDMtbGF5b3V0cy9zaXRlL19zaXRlLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzA0LXNpdGUtcmVnaW9ucy9ibG9nL19ibG9nLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzA0LXNpdGUtcmVnaW9ucy9jb3Vyc2VzLW1haW4vX2NvdXJzZXMtbWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wNC1zaXRlLXJlZ2lvbnMvZm9vdGVyL19mb290ZXIuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDQtc2l0ZS1yZWdpb25zL2ZvcnVtL19mb3J1bS1jb21tZW50LnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzA0LXNpdGUtcmVnaW9ucy9mcm9udC1saW5rcy1ibG9ja3MvX2Zyb250LWxpbmtzLWJsb2Nrcy5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wNC1zaXRlLXJlZ2lvbnMvZ2FsbGVyeS9fZ2FsbGVyeS5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wNC1zaXRlLXJlZ2lvbnMvaGVhZGVyL19oZWFkZXIuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDQtc2l0ZS1yZWdpb25zL2xlYWRlcmJvYXJkL19sZWFkZXJib2FyZC5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wNC1zaXRlLXJlZ2lvbnMvbm90ZXBhZC9fbm90ZXBhZC5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wNC1zaXRlLXJlZ2lvbnMvcmVsYXRlZC12aWRlb3MvX3JlbGF0ZWQtdmlkZW9zLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzA0LXNpdGUtcmVnaW9ucy9zbGlkZXNob3cvX3NsaWRlc2hvdy5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wNC1zaXRlLXJlZ2lvbnMvdHJhaW5pbmcvX3RyYWluaW5nLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzA0LXNpdGUtcmVnaW9ucy90d2l0dGVyLWJsb2Nrcy9fdHdpdHRlci1ibG9ja3Muc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDQtc2l0ZS1yZWdpb25zL3VzZXItcHJvZmlsZS1pbmZvL191c2VyLXByb2ZpbGUtaW5mby5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wNi1wYWdlcy9hYm91dC9fYWJvdXQuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDYtcGFnZXMvYWRtaW4vX2FkbWluLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzA2LXBhZ2VzL2JhdGNoL19iYXRjaC5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wNi1wYWdlcy9jb250YWN0L19jb250YWN0LnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzA2LXBhZ2VzL2ZvcnVtL19mb3J1bS5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy8wNi1wYWdlcy9sZWFkZXJib2FyZHMvX2xlYWRlcmJvYXJkcy1wYWdlLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzA2LXBhZ2VzL2xvZ2luL2xvZ2luLXBhZ2Uuc2Nzc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvMDYtcGFnZXMvdXNlci9fdXNlci1wYWdlLW5vdGVzLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzLzA2LXBhZ2VzL3VzZXIvX3VzZXItcGFnZS5zY3NzXCI7IiwiLy9DT0xPUlNcbiRjb2xvci1tYWluLXllbGxvdzogI2ZlYzUyNDtcblxuJGNvbG9yLW1haW4tYmx1ZTogIzJhMzQzZDtcbiRjb2xvci1tYWluLXNlbWktZGFyay1ibHVlOiAjNTM1ZTY3O1xuJGNvbG9yLW1haW4tYnJvd246ICM4NDVlMWY7XG4kY29sb3ItbWFpbi1ibGFjazogIzFhMWExYTtcblxuJGNvbG9yLXN1Yi1yZWQ6ICNiYzMwMTk7XG4kY29sb3Itc3ViLWdyZWVuOiAjNDY4ODQ3O1xuJGNvbG9yLXN1Y2Nlc3M6ICRjb2xvci1zdWItZ3JlZW47XG4kY29sb3Itc3ViLXllbGxvdzogI2ZmZjNkMTtcblxuJGNvbG9yLWJsYWNrOiBibGFjaztcbiRjb2xvci13aGl0ZTogd2hpdGU7XG4kY29sb3Itd2hpdGUtMjogI2Y3ZjdmNztcblxuXG4kY29sb3ItYmFyaXN0YTogI2ZlYzUyNDtcbiRjb2xvci1ncmluZGVyeTogIzY3MmQ4YztcbiRjb2xvci1yb2FzdGluZzogI2JjMzAxOTtcbiRjb2xvci1xdWFsaXR5OiAjNjk2MzAwO1xuXG5cbi8vRk9OVCBTSVpFU1xuJGZvbnQtc2l6ZS14bGFyZ2U6IDNyZW07XG4kZm9udC1zaXplLWxhcmdlOiAycmVtO1xuJGZvbnQtc2l6ZS1tbGFyZ2U6IDEuNXJlbTtcbiRmb250LXNpemUtbWVkaXVtOiAxLjFyZW07XG4kZm9udC1zaXplLXNtYWxsOiAuOXJlbTtcblxuLy9GT05UIEZBTUlMWVxuJGZvbnQtZmFtaWx5LWJsYWNrOidDZXJhIEdSIEJsYWNrJztcbiRmb250LWZhbWlseS1yZWctYm9sZDogJ0NlcmEgR1IgUmVndWxhciBCb2xkJztcbiRmb250LWZhbWlseS1yZWd1bGFyOiAnQ2VyYSBHUiBSZWd1bGFyJztcbiRmb250LWZhbWlseS1tZWRpdW06ICdDZXJhIEdSIE1lZGl1bSc7XG4kZm9udC1mYW1pbHktbGlnaHQ6ICdDZXJhIEdSIExpZ2h0JztcblxuLy9aLUlOREVYXG4kei1pbmRleC1iZWxsLWljb246IDEwMDA7XG4kei1pbmRleC1wb3B1cDogOTk5OTtcblxuLy9FTEVNRU5UU1xuJG5vdGVwYWQtYW5kLXBsYXlsaXN0LWhlaWdodDogMjEuNXJlbTtcblxuJGRlZmF1bHQtcGFnZS1wYWRkaW5nLWxhcmdlOiA3JTtcbiRkZWZhdWx0LXBhZ2UtcGFkZGluZy1tZWRpdW06IDElO1xuJGRlZmF1bHQtcGFnZS1wYWRkaW5nLXNtYWxsOiAuNXJlbTtcblxuLy9TSEFET1dTXG4kc2hhZG93LWxpZ2h0OiAwIDFyZW0gMnJlbSByZ2JhKDAsIDAsIDAsIDAuMDIpO1xuJHNoYWRvdy1saWdodC0yOiAwcHggMXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC41KTtcblxuJHNoYWRvdy1kYXJrOiAwIDJyZW0gNnJlbSByZ2JhKDAsMCwwLDAuMyk7XG4kc2hhZG93LWRhcmstc21hbGw6IDAgMnJlbSA0cmVtIHJnYmEoMCwwLDAsMC4yNSk7XG4kc2hhZG93LWRhcmstc21hbGxlcjogMCAxcmVtIDNyZW0gcmdiYSgwLDAsMCwwLjI1KTtcbiRzaGFkb3ctc2VtaS1pbnZpbnNpYmxlOiAwIDJyZW0gNXJlbSByZ2JhKDAsMCwwLDAuMDYpO1xuXG4kc2hhZG93LWJhc2ljOiAwcHggMnB4IDdweCAtM3B4IHJnYmEoJGNvbG9yLWJsYWNrLCAwLjUpO1xuXG4kc2hhZG93LW1hdGVyaWFsLTE6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMTIpLCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjI0KTtcbiRzaGFkb3ctbWF0ZXJpYWwtMjogMCAzcHggNnB4IHJnYmEoMCwwLDAsMC4xNiksIDAgM3B4IDZweCByZ2JhKDAsMCwwLDAuMjMpO1xuJHNoYWRvdy1tYXRlcmlhbC0zOiAwIDEwcHggMjBweCByZ2JhKDAsMCwwLDAuMTkpLCAwIDZweCA2cHggcmdiYSgwLDAsMCwwLjIzKTtcbiRzaGFkb3ctbWF0ZXJpYWwtNDogMCAxNHB4IDI4cHggcmdiYSgwLDAsMCwwLjI1KSwgMCAxMHB4IDEwcHggcmdiYSgwLDAsMCwwLjIyKTtcbiRzaGFkb3ctbWF0ZXJpYWwtNTogMCAxOXB4IDM4cHggcmdiYSgwLDAsMCwwLjMwKSwgMCAxNXB4IDEycHggcmdiYSgwLDAsMCwwLjIyKTtcblxuXG4vL01JWElOU1xuJGZvbnQtZmFtaWx5LWljb246ICdGb250IEF3ZXNvbWUgNSBGcmVlJztcbiRmb250LWZhbWlseS1pY29uLXdlaWdodDogOTAwO1xuQG1peGluIGZhLWljb24oJGljb24tY29kZSl7XG4gIGNvbnRlbnQ6ICRpY29uLWNvZGU7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktaWNvbjtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWZhbWlseS1pY29uLXdlaWdodDtcbn1cblxuQG1peGluIG1ha2Utc3F1YXJlKCRkaW1lbnNpb24pe1xuICB3aWR0aDogJGRpbWVuc2lvbjtcbiAgaGVpZ2h0OiAkZGltZW5zaW9uO1xufVxuXG5AbWl4aW4gbGluay1zdGx5aW5nKCR0ZXh0LWNvbG9yLCAkaG92ZXItdGV4dC1jb2xvcil7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAmOmxpbmssICY6dmlzaXRlZHtcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gIH1cbiAgJjpob3ZlcntcbiAgICBjb2xvcjogJGhvdmVyLXRleHQtY29sb3I7XG4gIH1cbn1cblxuQG1peGluIGNsZWFyZml4KCl7XG4gICY6OmFmdGVye1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuQG1peGluIGFic29sdXRlLWZ1bGwtd2lkdGgtaGVpZ2h0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cblxuQG1peGluIGFic29sdXRlLWNlbnRlci1ob3Jpem9udGFsLXZlcnRpY2FsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xufVxuXG5cbkBtaXhpbiB0YWJsZS1maXhlZC1sYXlvdXR7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuXG5cbn1cblxuQG1peGluIHJlc3BvbnNpdmUtdmlkZW8tY29udGFpbmVyKCl7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTo1Ni4yNSU7XG4gIHBhZGRpbmctdG9wOjMwcHg7XG4gIGhlaWdodDowO1xuICBvdmVyZmxvdzpoaWRkZW47XG5cbiAgJiBpZnJhbWUsICYgb2JqZWN0LCAmIGVtYmVkIHtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6MDtcbiAgICBsZWZ0OjA7XG4gICAgd2lkdGg6MTAwJTtcbiAgICBoZWlnaHQ6MTAwJTtcbiAgfVxuXG59XG5cblxuQG1peGluIGN1c3RvbS1zY3JvbGxiYXIoJHRodW1iLWNvbG9yLCAkdHJhY2stY29sb3I6ICRjb2xvci1ibGFjaywgJHdpZHRoOiAxZW0sICR0aHVtYi1yYWRpdXM6IDBweCl7XG4gIC8vY3VzdG9tIHNjcm9sbGJhclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6ICR3aWR0aDtcblxuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgkdHJhY2stY29sb3IsMC4zKTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBib3JkZXItcmFkaXVzOiAkdGh1bWItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICAkdGh1bWItY29sb3I7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHNsYXRlZ3JleTtcbiAgfVxufVxuXG5AbWl4aW4gZm9ybS1sYWJlbC1zdGx5aW5nKCRjb2xvci0xOiAkY29sb3ItYmxhY2sgLCRmb250LXNpemU6ICRmb250LXNpemUtbWVkaXVtLCAkY29sb3ItMjogJGNvbG9yLTEpIHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXJlZy1ib2xkO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMC41cmVtIDA7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBjb2xvcjogJGNvbG9yLTE7XG4gIG1hcmdpbjogMDtcbiAgZm9udC13ZWlnaHQ6IGluaXRpYWw7XG59XG4vL0ZVTkNUSU9OU1xuXG5cbi8vQU5JTUFUSU9OU1xuXG5Aa2V5ZnJhbWVzIHNjYWxlSW5BYnNDZW50ZXIge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSguNCk7XG4gIH1cbiAgdG97XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgIHNjYWxlKDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlIHtcbiAgZnJvbSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKDBkZWcpfVxuICB0b3sgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoMzYwZGVnKX1cbn1cblxuQGtleWZyYW1lcyBtb3ZlaW5MZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHJlbSk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXJlbSk7XG5cbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDApO1xuICB9XG5cbn1cblxuQGtleWZyYW1lcyBtb3ZlaW5SaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHJlbSk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFyZW0pO1xuXG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTtcbiAgfVxuXG59XG5cbkBrZXlmcmFtZXMgbW92ZWluQm90dG9tIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcmVtKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXJlbSk7XG5cbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDApO1xuICB9XG5cbn1cblxuXG5cblxuLy9NRURJQSBRVUVSSUVTXG4kbWVkaWEtYnJlYWtwb2ludC1zbWFsbDogKDYwMCAvIDE2KSoxZW07XG4kbWVkaWEtYnJlYWtwb2ludC1tZWRpdW06ICg5MDAgLyAxNikqMWVtO1xuJG1lZGlhLWJyZWFrcG9pbnQtbWxhcmdlOiAoMTM1MCAvIDE2KSoxZW07XG4kbWVkaWEtYnJlYWtwb2ludC1sYXJnZTogKDE5MDAgLyAxNikqMWVtO1xuXG5AbWl4aW4gbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQtbWYoJGJyZWFrcG9pbnQpe1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiRicmVha3BvaW50KSB7IEBjb250ZW50IH1cbn1cblxuXG5AbWl4aW4gbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQoJGJyZWFrcG9pbnQpe1xuICBAaWYgJGJyZWFrcG9pbnQgPT0gc21hbGwge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiRtZWRpYS1icmVha3BvaW50LXNtYWxsKSB7IEBjb250ZW50IH1cbiAgfVxuICBAaWYgJGJyZWFrcG9pbnQgPT0gbWVkaXVtIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDokbWVkaWEtYnJlYWtwb2ludC1tZWRpdW0pIHsgQGNvbnRlbnQgfVxuICB9XG4gIEBpZiAkYnJlYWtwb2ludCA9PSBtbGFyZ2Uge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiRtZWRpYS1icmVha3BvaW50LW1sYXJnZSkgeyBAY29udGVudCB9XG4gIH1cbiAgQGlmICRicmVha3BvaW50ID09IGxhcmdlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDokbWVkaWEtYnJlYWtwb2ludC1sYXJnZSkgeyBAY29udGVudCB9XG4gIH1cblxufVxuXG5cblxuLy9VVElMSVRJRVNcbiRiYXNlLXVuaXQtc2l6ZTogMXJlbTtcblxuQG1peGluIHV0aWxpdGllcy1zaXplcygkZGlyZWN0aW9uLCAkbW9kaWZpZXIsICRpbXBvcnRhbnQ6Jycpe1xuXG4gIEBpZiAkZGlyZWN0aW9uID09IGFsbHtcbiAgICBAYXQtcm9vdCAjeyZ9LW5vbmV7I3skbW9kaWZpZXJ9OiAwI3skaW1wb3J0YW50fTsgfVxuICAgIEBhdC1yb290ICN7Jn0tc21hbGx7I3skbW9kaWZpZXJ9OiAkYmFzZS11bml0LXNpemUjeyRpbXBvcnRhbnR9OyB9XG4gICAgQGF0LXJvb3QgI3smfS1tZWRpdW17I3skbW9kaWZpZXJ9OiRiYXNlLXVuaXQtc2l6ZSsxcmVtI3skaW1wb3J0YW50fTsgfVxuICAgIEBhdC1yb290ICN7Jn0tbGFyZ2V7I3skbW9kaWZpZXJ9OiAkYmFzZS11bml0LXNpemUrMnJlbSN7JGltcG9ydGFudH07IH1cbiAgICBAYXQtcm9vdCAjeyZ9LXhsYXJnZXsjeyRtb2RpZmllcn06ICRiYXNlLXVuaXQtc2l6ZSszcmVtI3skaW1wb3J0YW50fTsgfVxuICAgIEBhdC1yb290ICN7Jn0teHhsYXJnZXsjeyRtb2RpZmllcn06ICRiYXNlLXVuaXQtc2l6ZSs0cmVtI3skaW1wb3J0YW50fTsgfVxuICAgIEBhdC1yb290ICN7Jn0teHh4bGFyZ2V7I3skbW9kaWZpZXJ9OiAkYmFzZS11bml0LXNpemUrNXJlbSN7JGltcG9ydGFudH07IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGF0LXJvb3QgI3smfS1ub25leyN7JG1vZGlmaWVyfS0jeyRkaXJlY3Rpb259OiAwI3skaW1wb3J0YW50fTsgfVxuICAgIEBhdC1yb290ICN7Jn0tc21hbGx7I3skbW9kaWZpZXJ9LSN7JGRpcmVjdGlvbn06ICRiYXNlLXVuaXQtc2l6ZSN7JGltcG9ydGFudH07IH1cbiAgICBAYXQtcm9vdCAjeyZ9LW1lZGl1bXsjeyRtb2RpZmllcn0tI3skZGlyZWN0aW9ufTokYmFzZS11bml0LXNpemUrMXJlbSN7JGltcG9ydGFudH07IH1cbiAgICBAYXQtcm9vdCAjeyZ9LWxhcmdleyN7JG1vZGlmaWVyfS0jeyRkaXJlY3Rpb259OiAkYmFzZS11bml0LXNpemUrMnJlbSN7JGltcG9ydGFudH07IH1cbiAgICBAYXQtcm9vdCAjeyZ9LXhsYXJnZXsjeyRtb2RpZmllcn0tI3skZGlyZWN0aW9ufTogJGJhc2UtdW5pdC1zaXplKzNyZW0jeyRpbXBvcnRhbnR9OyB9XG4gICAgQGF0LXJvb3QgI3smfS14eGxhcmdleyN7JG1vZGlmaWVyfS0jeyRkaXJlY3Rpb259OiAkYmFzZS11bml0LXNpemUrNHJlbSN7JGltcG9ydGFudH07IH1cbiAgICBAYXQtcm9vdCAjeyZ9LXh4eGxhcmdleyN7JG1vZGlmaWVyfS0jeyRkaXJlY3Rpb259OiAkYmFzZS11bml0LXNpemUrNXJlbSN7JGltcG9ydGFudH07IH1cbiAgfVxufVxuXG4udXtcbiAgLy9tYXJnaW5cbiAgJi1te1xuICAgICAgICAgQGluY2x1ZGUgdXRpbGl0aWVzLXNpemVzKGFsbCxtYXJnaW4pO1xuICAgICYtcnsgQGluY2x1ZGUgdXRpbGl0aWVzLXNpemVzKHJpZ2h0LG1hcmdpbik7IH1cbiAgICAmLWx7IEBpbmNsdWRlIHV0aWxpdGllcy1zaXplcyhsZWZ0LG1hcmdpbik7IH1cbiAgICAmLXR7IEBpbmNsdWRlIHV0aWxpdGllcy1zaXplcyh0b3AsbWFyZ2luKTsgfVxuICAgICYtYnsgQGluY2x1ZGUgdXRpbGl0aWVzLXNpemVzKGJvdHRvbSxtYXJnaW4pO31cbiAgfVxuICAvL3BhZGRpbmdcbiAgJi1we1xuICAgICAgICAgQGluY2x1ZGUgdXRpbGl0aWVzLXNpemVzKGFsbCxwYWRkaW5nKTtcbiAgICAmLXJ7IEBpbmNsdWRlIHV0aWxpdGllcy1zaXplcyhyaWdodCxwYWRkaW5nKTsgfVxuICAgICYtbHsgQGluY2x1ZGUgdXRpbGl0aWVzLXNpemVzKGxlZnQscGFkZGluZyk7IH1cbiAgICAmLXR7IEBpbmNsdWRlIHV0aWxpdGllcy1zaXplcyh0b3AscGFkZGluZyk7IH1cbiAgICAmLWJ7IEBpbmNsdWRlIHV0aWxpdGllcy1zaXplcyhib3R0b20scGFkZGluZyk7fVxuICB9XG5cblxufVxuXG5cbkBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtYnJlYWtwb2ludC1tbGFyZ2UpIHtcbiAgLnUge1xuICAgIC8vbWFyZ2luXG4gICAgJi1tIHtcbiAgICAgICAgJi10YWJsZXR7XG4gICAgICAgICAgICAgICBAaW5jbHVkZSB1dGlsaXRpZXMtc2l6ZXMoYWxsLG1hcmdpbiwhaW1wb3J0YW50KTtcbiAgICAgICAgICAmLXJ7IEBpbmNsdWRlIHV0aWxpdGllcy1zaXplcyhyaWdodCxtYXJnaW4sIWltcG9ydGFudCk7IH1cbiAgICAgICAgICAmLWx7IEBpbmNsdWRlIHV0aWxpdGllcy1zaXplcyhsZWZ0LG1hcmdpbiwhaW1wb3J0YW50KTsgfVxuICAgICAgICAgICYtdHsgQGluY2x1ZGUgdXRpbGl0aWVzLXNpemVzKHRvcCxtYXJnaW4sIWltcG9ydGFudCk7IH1cbiAgICAgICAgICAmLWJ7IEBpbmNsdWRlIHV0aWxpdGllcy1zaXplcyhib3R0b20sbWFyZ2luLCFpbXBvcnRhbnQpO31cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLXAge1xuICAgICAgICAmLXRhYmxldHtcbiAgICAgICAgICAgICAgIEBpbmNsdWRlIHV0aWxpdGllcy1zaXplcyhhbGwscGFkZGluZywhaW1wb3J0YW50KTtcbiAgICAgICAgICAmLXJ7IEBpbmNsdWRlIHV0aWxpdGllcy1zaXplcyhyaWdodCxwYWRkaW5nLCFpbXBvcnRhbnQpOyB9XG4gICAgICAgICAgJi1seyBAaW5jbHVkZSB1dGlsaXRpZXMtc2l6ZXMobGVmdCxwYWRkaW5nLCFpbXBvcnRhbnQpOyB9XG4gICAgICAgICAgJi10eyBAaW5jbHVkZSB1dGlsaXRpZXMtc2l6ZXModG9wLHBhZGRpbmcsIWltcG9ydGFudCk7IH1cbiAgICAgICAgICAmLWJ7IEBpbmNsdWRlIHV0aWxpdGllcy1zaXplcyhib3R0b20scGFkZGluZywhaW1wb3J0YW50KTt9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qIVxuICogSG92ZXIuY3NzIChodHRwOi8vaWFubHVubi5naXRodWIuaW8vSG92ZXIvKVxuICogVmVyc2lvbjogMi4yLjBcbiAqIEF1dGhvcjogSWFuIEx1bm4gQElhbkx1bm5cbiAqIEF1dGhvciBVUkw6IGh0dHA6Ly9pYW5sdW5uLmNvLnVrL1xuICogR2l0aHViOiBodHRwczovL2dpdGh1Yi5jb20vSWFuTHVubi9Ib3ZlclxuXG4gKiBIb3Zlci5jc3MgQ29weXJpZ2h0IElhbiBMdW5uIDIwMTcuIEdlbmVyYXRlZCB3aXRoIFNhc3MuXG4gKi9cblxuQGltcG9ydCBcIm9wdGlvbnNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcbkBpbXBvcnQgXCJoYWNrc1wiO1xuXG5cbi8qIDJEIFRSQU5TSVRJT05TICovXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9ncm93XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tZ3JvdyB7XG5cdFx0QGluY2x1ZGUgZ3JvdygpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL3Nocmlua1wiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXNocmluayB7XG5cdFx0QGluY2x1ZGUgc2hyaW5rKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvcHVsc2VcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1wdWxzZSB7XG5cdFx0QGluY2x1ZGUgcHVsc2UoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9wdWxzZS1ncm93XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tcHVsc2UtZ3JvdyB7XG5cdFx0QGluY2x1ZGUgcHVsc2UtZ3JvdygpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL3B1bHNlLXNocmlua1wiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXB1bHNlLXNocmluayB7XG5cdFx0QGluY2x1ZGUgcHVsc2Utc2hyaW5rKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvcHVzaFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXB1c2gge1xuXHRcdEBpbmNsdWRlIHB1c2goKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9wb3BcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1wb3Age1xuXHRcdEBpbmNsdWRlIHBvcCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL2JvdW5jZS1pblwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWJvdW5jZS1pbiB7XG5cdFx0QGluY2x1ZGUgYm91bmNlLWluKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvYm91bmNlLW91dFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWJvdW5jZS1vdXQge1xuXHRcdEBpbmNsdWRlIGJvdW5jZS1vdXQoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9yb3RhdGVcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1yb3RhdGUge1xuXHRcdEBpbmNsdWRlIHJvdGF0ZSgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL2dyb3ctcm90YXRlXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tZ3Jvdy1yb3RhdGUge1xuXHRcdEBpbmNsdWRlIGdyb3ctcm90YXRlKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvZmxvYXRcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1mbG9hdCB7XG5cdFx0QGluY2x1ZGUgZmxvYXQoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9zaW5rXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tc2luayB7XG5cdFx0QGluY2x1ZGUgc2luaygpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL2JvYlwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWJvYiB7XG5cdFx0QGluY2x1ZGUgYm9iKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvaGFuZ1wiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWhhbmcge1xuXHRcdEBpbmNsdWRlIGhhbmcoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9za2V3XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tc2tldyB7XG5cdFx0QGluY2x1ZGUgc2tldygpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL3NrZXctZm9yd2FyZFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXNrZXctZm9yd2FyZCB7XG5cdFx0QGluY2x1ZGUgc2tldy1mb3J3YXJkKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvc2tldy1iYWNrd2FyZFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXNrZXctYmFja3dhcmQge1xuXHQgICAgQGluY2x1ZGUgc2tldy1iYWNrd2FyZCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL3dvYmJsZS12ZXJ0aWNhbFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXdvYmJsZS12ZXJ0aWNhbCB7XG5cdFx0QGluY2x1ZGUgd29iYmxlLXZlcnRpY2FsKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvd29iYmxlLWhvcml6b250YWxcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS13b2JibGUtaG9yaXpvbnRhbCB7XG5cdFx0QGluY2x1ZGUgd29iYmxlLWhvcml6b250YWwoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy93b2JibGUtdG8tYm90dG9tLXJpZ2h0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0td29iYmxlLXRvLWJvdHRvbS1yaWdodCB7XG5cdCAgICBAaW5jbHVkZSB3b2JibGUtdG8tYm90dG9tLXJpZ2h0KCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvd29iYmxlLXRvLXRvcC1yaWdodFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXdvYmJsZS10by10b3AtcmlnaHQge1xuXHQgICAgQGluY2x1ZGUgd29iYmxlLXRvLXRvcC1yaWdodCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL3dvYmJsZS10b3BcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS13b2JibGUtdG9wIHtcblx0XHRAaW5jbHVkZSB3b2JibGUtdG9wKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvd29iYmxlLWJvdHRvbVwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXdvYmJsZS1ib3R0b20ge1xuXHRcdEBpbmNsdWRlIHdvYmJsZS1ib3R0b20oKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy93b2JibGUtc2tld1wiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXdvYmJsZS1za2V3IHtcblx0ICAgIEBpbmNsdWRlIHdvYmJsZS1za2V3KCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvYnV6elwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWJ1enoge1xuXHQgICAgQGluY2x1ZGUgYnV6eigpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL2J1enotb3V0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tYnV6ei1vdXQge1xuXHQgICAgQGluY2x1ZGUgYnV6ei1vdXQoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9mb3J3YXJkXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tZm9yd2FyZCB7XG5cdFx0QGluY2x1ZGUgZm9yd2FyZCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL2JhY2t3YXJkXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tYmFja3dhcmQge1xuXHRcdEBpbmNsdWRlIGJhY2t3YXJkKCk7XG5cdH1cbn1cblxuLyogQkFDS0dST1VORCBUUkFOU0lUSU9OUyAqL1xuQGltcG9ydCBcImVmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9mYWRlXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tZmFkZSB7XG5cdFx0QGluY2x1ZGUgZmFkZSgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvYmFjay1wdWxzZVwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWJhY2stcHVsc2Uge1xuXHRcdEBpbmNsdWRlIGJhY2stcHVsc2UoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL3N3ZWVwLXRvLXJpZ2h0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tc3dlZXAtdG8tcmlnaHQge1xuXHRcdEBpbmNsdWRlIHN3ZWVwLXRvLXJpZ2h0KCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9zd2VlcC10by1sZWZ0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tc3dlZXAtdG8tbGVmdCB7XG5cdFx0QGluY2x1ZGUgc3dlZXAtdG8tbGVmdCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvc3dlZXAtdG8tYm90dG9tXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tc3dlZXAtdG8tYm90dG9tIHtcblx0XHRAaW5jbHVkZSBzd2VlcC10by1ib3R0b20oKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL3N3ZWVwLXRvLXRvcFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXN3ZWVwLXRvLXRvcCB7XG5cdFx0QGluY2x1ZGUgc3dlZXAtdG8tdG9wKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9ib3VuY2UtdG8tcmlnaHRcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1ib3VuY2UtdG8tcmlnaHQge1xuXHRcdEBpbmNsdWRlIGJvdW5jZS10by1yaWdodCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvYm91bmNlLXRvLWxlZnRcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1ib3VuY2UtdG8tbGVmdCB7XG5cdFx0QGluY2x1ZGUgYm91bmNlLXRvLWxlZnQoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL2JvdW5jZS10by1ib3R0b21cIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1ib3VuY2UtdG8tYm90dG9tIHtcblx0XHRAaW5jbHVkZSBib3VuY2UtdG8tYm90dG9tKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9ib3VuY2UtdG8tdG9wXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tYm91bmNlLXRvLXRvcCB7XG5cdFx0QGluY2x1ZGUgYm91bmNlLXRvLXRvcCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvcmFkaWFsLW91dFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXJhZGlhbC1vdXQge1xuXHRcdEBpbmNsdWRlIHJhZGlhbC1vdXQoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL3JhZGlhbC1pblwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXJhZGlhbC1pbiB7XG5cdFx0QGluY2x1ZGUgcmFkaWFsLWluKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9yZWN0YW5nbGUtaW5cIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1yZWN0YW5nbGUtaW4ge1xuXHRcdEBpbmNsdWRlIHJlY3RhbmdsZS1pbigpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvcmVjdGFuZ2xlLW91dFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXJlY3RhbmdsZS1vdXQge1xuXHRcdEBpbmNsdWRlIHJlY3RhbmdsZS1vdXQoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL3NodXR0ZXItaW4taG9yaXpvbnRhbFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXNodXR0ZXItaW4taG9yaXpvbnRhbCB7XG5cdFx0QGluY2x1ZGUgc2h1dHRlci1pbi1ob3Jpem9udGFsKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9zaHV0dGVyLW91dC1ob3Jpem9udGFsXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tc2h1dHRlci1vdXQtaG9yaXpvbnRhbCB7XG5cdFx0QGluY2x1ZGUgc2h1dHRlci1vdXQtaG9yaXpvbnRhbCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvc2h1dHRlci1pbi12ZXJ0aWNhbFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXNodXR0ZXItaW4tdmVydGljYWwge1xuXHRcdEBpbmNsdWRlIHNodXR0ZXItaW4tdmVydGljYWwoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL3NodXR0ZXItb3V0LXZlcnRpY2FsXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tc2h1dHRlci1vdXQtdmVydGljYWwge1xuXHRcdEBpbmNsdWRlIHNodXR0ZXItb3V0LXZlcnRpY2FsKCk7XG5cdH1cbn1cblxuXG4vKiBCT1JERVIgVFJBTlNJVElPTlMgKi9cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9ib3JkZXItZmFkZVwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWJvcmRlci1mYWRlIHtcblx0XHRAaW5jbHVkZSBib3JkZXItZmFkZSgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9ob2xsb3dcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1ob2xsb3cge1xuXHRcdEBpbmNsdWRlIGhvbGxvdygpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy90cmltXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tdHJpbSB7XG5cdFx0QGluY2x1ZGUgdHJpbSgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9yaXBwbGUtb3V0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tcmlwcGxlLW91dCB7XG5cdFx0QGluY2x1ZGUgcmlwcGxlLW91dCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9yaXBwbGUtaW5cIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1yaXBwbGUtaW4ge1xuXHRcdEBpbmNsdWRlIHJpcHBsZS1pbigpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9vdXRsaW5lLW91dFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LW91dGxpbmUtb3V0IHtcblx0XHRAaW5jbHVkZSBvdXRsaW5lLW91dCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9vdXRsaW5lLWluXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tb3V0bGluZS1pbiB7XG5cdFx0QGluY2x1ZGUgb3V0bGluZS1pbigpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9yb3VuZC1jb3JuZXJzXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tcm91bmQtY29ybmVycyB7XG5cdFx0QGluY2x1ZGUgcm91bmQtY29ybmVycygpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy91bmRlcmxpbmUtZnJvbS1sZWZ0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tdW5kZXJsaW5lLWZyb20tbGVmdCB7XG5cdFx0QGluY2x1ZGUgdW5kZXJsaW5lLWZyb20tbGVmdCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy91bmRlcmxpbmUtZnJvbS1jZW50ZXJcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS11bmRlcmxpbmUtZnJvbS1jZW50ZXIge1xuXHRcdEBpbmNsdWRlIHVuZGVybGluZS1mcm9tLWNlbnRlcigpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy91bmRlcmxpbmUtZnJvbS1yaWdodFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LXVuZGVybGluZS1mcm9tLXJpZ2h0IHtcblx0XHRAaW5jbHVkZSB1bmRlcmxpbmUtZnJvbS1yaWdodCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9vdmVybGluZS1mcm9tLWxlZnRcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1vdmVybGluZS1mcm9tLWxlZnQge1xuXHRcdEBpbmNsdWRlIG92ZXJsaW5lLWZyb20tbGVmdCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9vdmVybGluZS1mcm9tLWNlbnRlclwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LW92ZXJsaW5lLWZyb20tY2VudGVyIHtcblx0XHRAaW5jbHVkZSBvdmVybGluZS1mcm9tLWNlbnRlcigpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9vdmVybGluZS1mcm9tLXJpZ2h0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tb3ZlcmxpbmUtZnJvbS1yaWdodCB7XG5cdFx0QGluY2x1ZGUgb3ZlcmxpbmUtZnJvbS1yaWdodCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9yZXZlYWxcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1yZXZlYWwge1xuXHRcdEBpbmNsdWRlIHJldmVhbCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy91bmRlcmxpbmUtcmV2ZWFsXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tdW5kZXJsaW5lLXJldmVhbCB7XG5cdFx0QGluY2x1ZGUgdW5kZXJsaW5lLXJldmVhbCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9vdmVybGluZS1yZXZlYWxcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1vdmVybGluZS1yZXZlYWwge1xuXHRcdEBpbmNsdWRlIG92ZXJsaW5lLXJldmVhbCgpO1xuXHR9XG59XG5cblxuLyogU0hBRE9XL0dMT1cgVFJBTlNJVElPTlMgKi9cbkBpbXBvcnQgXCJlZmZlY3RzL3NoYWRvdy1hbmQtZ2xvdy10cmFuc2l0aW9ucy9nbG93XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tZ2xvdyB7XG5cdFx0QGluY2x1ZGUgZ2xvdygpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL3NoYWRvdy1hbmQtZ2xvdy10cmFuc2l0aW9ucy9zaGFkb3dcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1zaGFkb3cge1xuXHRcdEBpbmNsdWRlIHNoYWRvdygpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL3NoYWRvdy1hbmQtZ2xvdy10cmFuc2l0aW9ucy9ncm93LXNoYWRvd1wiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWdyb3ctc2hhZG93IHtcblx0XHRAaW5jbHVkZSBncm93LXNoYWRvdygpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL3NoYWRvdy1hbmQtZ2xvdy10cmFuc2l0aW9ucy9ib3gtc2hhZG93LW91dHNldFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWJveC1zaGFkb3ctb3V0c2V0IHtcblx0XHRAaW5jbHVkZSBib3gtc2hhZG93LW91dHNldCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL3NoYWRvdy1hbmQtZ2xvdy10cmFuc2l0aW9ucy9ib3gtc2hhZG93LWluc2V0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tYm94LXNoYWRvdy1pbnNldCB7XG5cdFx0QGluY2x1ZGUgYm94LXNoYWRvdy1pbnNldCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL3NoYWRvdy1hbmQtZ2xvdy10cmFuc2l0aW9ucy9mbG9hdC1zaGFkb3dcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1mbG9hdC1zaGFkb3cge1xuXHRcdEBpbmNsdWRlIGZsb2F0LXNoYWRvdygpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL3NoYWRvdy1hbmQtZ2xvdy10cmFuc2l0aW9ucy9zaGFkb3ctcmFkaWFsXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tc2hhZG93LXJhZGlhbCB7XG5cdFx0QGluY2x1ZGUgc2hhZG93LXJhZGlhbCgpO1xuXHR9XG59XG5cbi8qIFNQRUVDSCBCVUJCTEVTICovXG5AaW1wb3J0IFwiZWZmZWN0cy9zcGVlY2gtYnViYmxlcy9idWJibGUtdG9wXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tYnViYmxlLXRvcCB7XG5cdFx0QGluY2x1ZGUgYnViYmxlLXRvcCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL3NwZWVjaC1idWJibGVzL2J1YmJsZS1yaWdodFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWJ1YmJsZS1yaWdodCB7XG5cdFx0QGluY2x1ZGUgYnViYmxlLXJpZ2h0KCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvc3BlZWNoLWJ1YmJsZXMvYnViYmxlLWJvdHRvbVwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWJ1YmJsZS1ib3R0b20ge1xuXHRcdEBpbmNsdWRlIGJ1YmJsZS1ib3R0b20oKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9zcGVlY2gtYnViYmxlcy9idWJibGUtbGVmdFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWJ1YmJsZS1sZWZ0IHtcblx0XHRAaW5jbHVkZSBidWJibGUtbGVmdCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL3NwZWVjaC1idWJibGVzL2J1YmJsZS1mbG9hdC10b3BcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1idWJibGUtZmxvYXQtdG9wIHtcblx0XHRAaW5jbHVkZSBidWJibGUtZmxvYXQtdG9wKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvc3BlZWNoLWJ1YmJsZXMvYnViYmxlLWZsb2F0LXJpZ2h0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tYnViYmxlLWZsb2F0LXJpZ2h0IHtcblx0XHRAaW5jbHVkZSBidWJibGUtZmxvYXQtcmlnaHQoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9zcGVlY2gtYnViYmxlcy9idWJibGUtZmxvYXQtYm90dG9tXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tYnViYmxlLWZsb2F0LWJvdHRvbSB7XG5cdFx0QGluY2x1ZGUgYnViYmxlLWZsb2F0LWJvdHRvbSgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL3NwZWVjaC1idWJibGVzL2J1YmJsZS1mbG9hdC1sZWZ0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tYnViYmxlLWZsb2F0LWxlZnQge1xuXHRcdEBpbmNsdWRlIGJ1YmJsZS1mbG9hdC1sZWZ0KCk7XG5cdH1cbn1cblxuLyogSUNPTlMgKi9cbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tYmFja1wiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWljb24tYmFjayB7XG5cdFx0QGluY2x1ZGUgaWNvbi1iYWNrKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1mb3J3YXJkXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1mb3J3YXJkIHtcblx0XHRAaW5jbHVkZSBpY29uLWZvcndhcmQoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLWRvd25cIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1pY29uLWRvd24ge1xuXHRcdEBpbmNsdWRlIGljb24tZG93bigpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tdXBcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1pY29uLXVwIHtcblx0XHRAaW5jbHVkZSBpY29uLXVwKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1zcGluXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1zcGluIHtcblx0XHRAaW5jbHVkZSBpY29uLXNwaW4oKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLWRyb3BcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1pY29uLWRyb3Age1xuXHRcdEBpbmNsdWRlIGljb24tZHJvcCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tZmFkZVwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWljb24tZmFkZSB7XG5cdFx0QGluY2x1ZGUgaWNvbi1mYWRlKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1mbG9hdC1hd2F5XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1mbG9hdC1hd2F5IHtcblx0XHRAaW5jbHVkZSBpY29uLWZsb2F0LWF3YXkoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLXNpbmstYXdheVwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWljb24tc2luay1hd2F5IHtcblx0XHRAaW5jbHVkZSBpY29uLXNpbmstYXdheSgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tZ3Jvd1wiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWljb24tZ3JvdyB7XG5cdFx0QGluY2x1ZGUgaWNvbi1ncm93KCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1zaHJpbmtcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1pY29uLXNocmluayB7XG5cdFx0QGluY2x1ZGUgaWNvbi1zaHJpbmsoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLXB1bHNlXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1wdWxzZSB7XG5cdFx0QGluY2x1ZGUgaWNvbi1wdWxzZSgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tcHVsc2UtZ3Jvd1wiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWljb24tcHVsc2UtZ3JvdyB7XG5cdFx0QGluY2x1ZGUgaWNvbi1wdWxzZS1ncm93KCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1wdWxzZS1zaHJpbmtcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1pY29uLXB1bHNlLXNocmluayB7XG5cdFx0QGluY2x1ZGUgaWNvbi1wdWxzZS1zaHJpbmsoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLXB1c2hcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1pY29uLXB1c2gge1xuXHRcdEBpbmNsdWRlIGljb24tcHVzaCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tcG9wXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1wb3Age1xuXHRcdEBpbmNsdWRlIGljb24tcG9wKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1ib3VuY2VcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1pY29uLWJvdW5jZSB7XG5cdFx0QGluY2x1ZGUgaWNvbi1ib3VuY2UoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLXJvdGF0ZVwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWljb24tcm90YXRlIHtcblx0XHRAaW5jbHVkZSBpY29uLXJvdGF0ZSgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tZ3Jvdy1yb3RhdGVcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1pY29uLWdyb3ctcm90YXRlIHtcblx0XHRAaW5jbHVkZSBpY29uLWdyb3ctcm90YXRlKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1mbG9hdFwiO1xuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XG5cdC4jeyRuYW1lU3BhY2V9LWljb24tZmxvYXQge1xuXHRcdEBpbmNsdWRlIGljb24tZmxvYXQoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLXNpbmtcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1pY29uLXNpbmsge1xuXHRcdEBpbmNsdWRlIGljb24tc2luaygpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tYm9iXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1ib2Ige1xuXHRcdEBpbmNsdWRlIGljb24tYm9iKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1oYW5nXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1oYW5nIHtcblx0XHRAaW5jbHVkZSBpY29uLWhhbmcoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLXdvYmJsZS1ob3Jpem9udGFsXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0taWNvbi13b2JibGUtaG9yaXpvbnRhbCB7XG5cdFx0QGluY2x1ZGUgaWNvbi13b2JibGUtaG9yaXpvbnRhbCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24td29iYmxlLXZlcnRpY2FsXCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0taWNvbi13b2JibGUtdmVydGljYWwge1xuXHRcdEBpbmNsdWRlIGljb24td29iYmxlLXZlcnRpY2FsKCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1idXp6XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1idXp6IHtcblx0XHRAaW5jbHVkZSBpY29uLWJ1enooKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLWJ1enotb3V0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1idXp6LW91dCB7XG5cdFx0QGluY2x1ZGUgaWNvbi1idXp6LW91dCgpO1xuXHR9XG59XG5cbi8qIENVUkxTICovXG5AaW1wb3J0IFwiZWZmZWN0cy9jdXJscy9jdXJsLXRvcC1sZWZ0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tY3VybC10b3AtbGVmdCB7XG5cdFx0QGluY2x1ZGUgY3VybC10b3AtbGVmdCgpO1xuXHR9XG59XG5cbkBpbXBvcnQgXCJlZmZlY3RzL2N1cmxzL2N1cmwtdG9wLXJpZ2h0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tY3VybC10b3AtcmlnaHQge1xuXHRcdEBpbmNsdWRlIGN1cmwtdG9wLXJpZ2h0KCk7XG5cdH1cbn1cblxuQGltcG9ydCBcImVmZmVjdHMvY3VybHMvY3VybC1ib3R0b20tcmlnaHRcIjtcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xuXHQuI3skbmFtZVNwYWNlfS1jdXJsLWJvdHRvbS1yaWdodCB7XG5cdFx0QGluY2x1ZGUgY3VybC1ib3R0b20tcmlnaHQoKTtcblx0fVxufVxuXG5AaW1wb3J0IFwiZWZmZWN0cy9jdXJscy9jdXJsLWJvdHRvbS1sZWZ0XCI7XG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcblx0LiN7JG5hbWVTcGFjZX0tY3VybC1ib3R0b20tbGVmdCB7XG5cdFx0QGluY2x1ZGUgY3VybC1ib3R0b20tbGVmdCgpO1xuXHR9XG59XG4iLCIvLyBERUZBVUxUIE9QVElPTlNcblxuLy8gUHJlZml4IGZvciBIb3ZlciBjbGFzcyBuYW1lc1xuJG5hbWVTcGFjZTogJ2h2cicgIWRlZmF1bHQ7XG5cbi8vIER1cmF0aW9uc1xuJGZhc3REdXJhdGlvbjogLjFzICFkZWZhdWx0O1xuJG1lZGl1bUR1cmF0aW9uOiAuM3MgIWRlZmF1bHQ7XG4kc2xvd0R1cmF0aW9uOiAuNXMgIWRlZmF1bHQ7XG5cbi8vIENvbG9yc1xuJHByaW1hcnlDb2xvcjogI2UxZTFlMSAhZGVmYXVsdDtcbiRzZWNvbmRhcnlDb2xvcjogIzY2NiAhZGVmYXVsdDtcbiRoaWdobGlnaHRDb2xvcjogI2NjYyAhZGVmYXVsdDtcbiRhY3RpdmVDb2xvcjogIzIwOThEMSAhZGVmYXVsdDtcbiRzaGFkb3dDb2xvcjogcmdiYSgwLCAwLCAwLCAuNikgIWRlZmF1bHQ7XG5cbi8vIFNwZWVjaCBidWJibGVzIG9wdGlvbnNcbiR0aXBXaWR0aDogMTBweCAhZGVmYXVsdDsgIC8vdGhlIHdpZHRoIG9mIHRoZSBzcGVlY2ggYnViYmxlIHRpcFxuJHRpcEhlaWdodDogMTBweCAhZGVmYXVsdDsgLy90aGUgaGVpZ2h0IG9mIHRoZSBzcGVlY2ggYnViYmxlIHRpcFxuJHRpcENvbG9yOiAkcHJpbWFyeUNvbG9yICFkZWZhdWx0O1xuXG4vLyBBcnJvd3Mgb3B0aW9uc1xuJHNwYWNlQmV0d2VlblRleHRBbmRBcnJvd3M6IDIuMmVtICFkZWZhdWx0O1xuXG4vLyBDdXJsIGRpbWVuc2lvbnNcbiRjdXJsV2lkdGg6IDI1cHggIWRlZmF1bHQ7XG4kY3VybEhlaWdodDogMjVweCAhZGVmYXVsdDtcblxuLy8gQ3VybCBjb2xvcnNcbiRyZXZlYWxBcmVhQ29sb3I6IHdoaXRlICFkZWZhdWx0OyAgICAvLyByZXZlYWwgYXJlYSBiZWhpbmQgdGhlIGN1cmxcbiRjdXJsTGluZUNvbG9yOiAjYWFhICFkZWZhdWx0OyAgICAgICAvLyBjcmVhc2UgbGluZVxuJGN1cmxUcmFuc2l0aW9uQ29sb3I6ICNjY2MgIWRlZmF1bHQ7XHQvLyBjb2xvciB0cmFuc2l0aW9uaW5nIGZyb20gY3JlYXNlIGxpbmUgdG8gZmluYWwgY29sb3JcbiRjdXJsTGFzdENvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcdFx0Ly8gZmluYWwgY29sb3Igb2YgdGhlIGJhY2sgb2YgdGhlIGN1cmxcblxuLy8gQnJvd3NlciBQcmVmaXhlcyAtIFdoaWNoIENTUyBwcmVmaXhlcyBzaG91bGQgYmUgdXNlZD9cbiR3ZWJraXQ6IHRydWUgIWRlZmF1bHQ7XG4kbW96OiBmYWxzZSAhZGVmYXVsdDtcbiRtczogZmFsc2UgIWRlZmF1bHQ7XG4kbzogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIENvbXBpbGUgd2l0aCBvciB3aXRob3V0IGNsYXNzZXNcbiRpbmNsdWRlQ2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcbiIsIi8vIHByZWZpeCBkZWNsYXJhdGlvbnNcbkBtaXhpbiBwcmVmaXhlZCgkcHJvcGVydHksICR2YWx1ZSkge1xuICBAaWYgJHdlYmtpdCA9PSB0cnVlIHtcbiAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xuICB9XG5cbiAgQGlmICRtb3ogPT0gdHJ1ZSB7XG4gICAgLW1vei0jeyRwcm9wZXJ0eX06ICN7JHZhbHVlfTtcbiAgfVxuXG4gIEBpZiAkbXMgPT0gdHJ1ZSB7XG4gICAgLW1zLSN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xuICB9XG5cbiAgQGlmICRvID09IHRydWUge1xuICAgIC1vLSN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xuICB9XG5cbiAgI3skcHJvcGVydHl9OiAjeyR2YWx1ZX07XG59XG5cbi8vIHByZWZpeCBrZXlmcmFtZXNcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcbiAgQGlmICR3ZWJraXQgPT0gdHJ1ZSB7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbW96ID09IHRydWUge1xuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG1zID09IHRydWUge1xuICAgIEAtbXMta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbyA9PSB0cnVlIHtcbiAgICBALW8ta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBBcyBpcyBvZnRlbiB0aGUgY2FzZSwgc29tZSBkZXZpY2VzL2Jyb3dzZXJzIG5lZWQgYWRkaXRpb25hbCBjb2RlIHRvIGdldCBDU1MgdG8gd29ya1xuLy8gaW4gdGhlIG1vc3QgZGVzaXJlZCB3YXkuIFRoZXNlIG1peGlucyBhcmUgdXNlZCB0byBxdWlja2x5IGRyb3AgaW4gaGFja3MgZm9yIGVhY2ggZWxlbWVudFxuLy8gRmluZCBvdXQgbW9yZSBoZXJlOiBodHRwczovL2dpdGh1Yi5jb20vSWFuTHVubi9Ib3Zlci93aWtpL0hhY2tzLUV4cGxhaW5lZFxuXG5AbWl4aW4gaGFyZHdhcmVBY2NlbCgpIHtcblx0Ly8gSW1wcm92ZSBwZXJmb3JtYW5jZSBvbiBtb2JpbGUvdGFibGV0IGRldmljZXNcblx0Ly8gUGVyc3BlY3RpdmUgcmVkdWNlcyBibHVycnluZXNzIG9mIHRleHQgaW4gQ2hyb21lXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgcGVyc3BlY3RpdmUoMXB4KSB0cmFuc2xhdGVaKDApKTtcbn1cblxuQG1peGluIGltcHJvdmVBbnRpQWxpYXMoKSB7XG5cdC8vIEltcHJvdmUgYWxpYXNpbmcgb24gbW9iaWxlL3RhYmxldCBkZXZpY2VzXG5cdGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cblxuQG1peGluIGZvcmNlQmxvY2tMZXZlbCgpIHtcblx0Ly8gVHJhbnNmb3JtcyBuZWVkIHRvIGJlIGJsb2NrLWxldmVsIHRvIHdvcmtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5AbWl4aW4gaGFja3MoKSB7XG5cdEBpbmNsdWRlIGZvcmNlQmxvY2tMZXZlbCgpO1xuXHRAaW5jbHVkZSBoYXJkd2FyZUFjY2VsKCk7XG5cdEBpbmNsdWRlIGltcHJvdmVBbnRpQWxpYXMoKTtcbn1cbiIsIi8qIEdyb3cgKi9cbkBtaXhpbiBncm93IHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSgxLjEpKTtcblx0fVxufVxuIiwiLyogU2hyaW5rICovXG5AbWl4aW4gc2hyaW5rIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSguOSkpO1xuXHR9XG59XG4iLCIvKiBQdWxzZSAqL1xuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0tcHVsc2UpIHtcblx0MjUlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEuMSkpO1xuXHR9XG5cblx0NzUlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKC45KSk7XG5cdH1cbn1cblxuQG1peGluIHB1bHNlIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0tcHVsc2UpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGxpbmVhcik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xuXHR9XG59XG4iLCIvKiBQdWxzZSBHcm93ICovXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1wdWxzZS1ncm93KSB7XG5cdHRvIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEuMSkpO1xuXHR9XG59XG5cbkBtaXhpbiBwdWxzZS1ncm93IHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0tcHVsc2UtZ3Jvdyk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGxpbmVhcik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kaXJlY3Rpb24sIGFsdGVybmF0ZSk7XG5cdH1cbn1cbiIsIi8qIFB1bHNlIFNocmluayAqL1xuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0tcHVsc2Utc2hyaW5rKSB7XG5cdHRvIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKC45KSk7XG5cdH1cbn1cblxuQG1peGluIHB1bHNlLXNocmluayB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LXB1bHNlLXNocmluayk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGxpbmVhcik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kaXJlY3Rpb24sIGFsdGVybmF0ZSk7XG5cdH1cbn1cbiIsIi8qIFB1c2ggKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LXB1c2gpIHtcblx0NTAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKC44KSk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEpKTtcblx0fVxufVxuXG5AbWl4aW4gcHVzaCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LXB1c2gpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgLjNzKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBsaW5lYXIpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIDEpO1xuXHR9XG59XG4iLCIvKiBQb3AgKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LXBvcCkge1xuXHQ1MCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoMS4yKSk7XG5cdH1cbn1cblxuQG1peGluIHBvcCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LXBvcCk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGxpbmVhcik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgMSk7XG5cdH1cbn1cbiIsIi8qIEJvdW5jZSBJbiAqL1xuQG1peGluIGJvdW5jZS1pbiB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRzbG93RHVyYXRpb24pO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEuMikpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBjdWJpYy1iZXppZXIoLjQ3LDIuMDIsLjMxLC0wLjM2KSk7XG5cdH1cbn1cbiIsIi8qIEJvdW5jZSBPdXQgKi9cbkBtaXhpbiBib3VuY2Utb3V0IHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHNsb3dEdXJhdGlvbik7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoLjgpKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgY3ViaWMtYmV6aWVyKC40NywyLjAyLC4zMSwtMC4zNikpO1xuXHR9XG59XG4iLCIvKiBSb3RhdGUgKi9cbkBtaXhpbiByb3RhdGUge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHJvdGF0ZSg0ZGVnKSk7XG5cdH1cbn1cbiIsIi8qIEdyb3cgUm90YXRlICovXG5AbWl4aW4gZ3Jvdy1yb3RhdGUge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEuMSkgcm90YXRlKDRkZWcpKTtcblx0fVxufVxuIiwiLyogRmxvYXQgKi9cbkBtaXhpbiBmbG9hdCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtOHB4KSk7XG5cdH1cbn1cbiIsIi8qIFNpbmsgKi9cbkBtaXhpbiBzaW5rIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDhweCkpO1xuXHR9XG59XG4iLCIvKiBCb2IgKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWJvYikge1xuXHQwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC04cHgpKTtcblx0fVxuXHQ1MCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtNHB4KSk7XG5cdH1cblx0MTAwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC04cHgpKTtcblx0fVxufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1ib2ItZmxvYXQpIHtcblx0MTAwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC04cHgpKTtcblx0fVxufVxuXG5AbWl4aW4gYm9iIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsIFwiI3skbmFtZVNwYWNlfS1ib2ItZmxvYXQsICN7JG5hbWVTcGFjZX0tYm9iXCIpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgXCIuM3MsIDEuNXNcIik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWRlbGF5LCBcIjBzLCAuM3NcIik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgXCJlYXNlLW91dCwgZWFzZS1pbi1vdXRcIik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgXCIxLCBpbmZpbml0ZVwiKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZmlsbC1tb2RlLCBcImZvcndhcmRzXCIpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kaXJlY3Rpb24sIFwibm9ybWFsLCBhbHRlcm5hdGVcIik7XG5cdH1cbn1cbiIsIi8qIEhhbmcgKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWhhbmcpIHtcblx0MCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg4cHgpKTtcblx0fVxuXHQ1MCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg0cHgpKTtcblx0fVxuXHQxMDAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoOHB4KSk7XG5cdH1cbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0taGFuZy1zaW5rKSB7XG5cdDEwMCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg4cHgpKTtcblx0fVxufVxuXG5AbWl4aW4gaGFuZyB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCBcIiN7JG5hbWVTcGFjZX0taGFuZy1zaW5rLCAjeyRuYW1lU3BhY2V9LWhhbmdcIik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCBcIi4zcywgMS41c1wiKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZGVsYXksIFwiMHMsIC4zc1wiKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBcImVhc2Utb3V0LCBlYXNlLWluLW91dFwiKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBcIjEsIGluZmluaXRlXCIpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1maWxsLW1vZGUsIFwiZm9yd2FyZHNcIik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWRpcmVjdGlvbiwgXCJub3JtYWwsIGFsdGVybmF0ZVwiKTtcblx0fVxufVxuIiwiLyogU2tldyAqL1xuQG1peGluIHNrZXcge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoLTEwZGVnKSk7XG5cdH1cbn1cbiIsIi8qIFNrZXcgRm9yd2FyZCAqL1xuQG1peGluIHNrZXctZm9yd2FyZCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybS1vcmlnaW4sIDAgMTAwJSk7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2tldygtMTBkZWcpKTtcblx0fVxufVxuIiwiLyogU2tldyBCYWNrd2FyZCAqL1xuQG1peGluIHNrZXctYmFja3dhcmQge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0tb3JpZ2luLCAwIDEwMCUpO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoMTBkZWcpKTtcblx0fVxufVxuIiwiLyogV29iYmxlIFZlcnRpY2FsICovXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS13b2JibGUtdmVydGljYWwpIHtcblx0MTYuNjUlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoOHB4KSk7XG5cdH1cblxuXHQzMy4zJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC02cHgpKTtcblx0fVxuXG5cdDQ5Ljk1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDRweCkpO1xuXHR9XG5cblx0NjYuNiUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtMnB4KSk7XG5cdH1cblxuXHQ4My4yNSUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgxcHgpKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgwKSk7XG5cdH1cbn1cblxuQG1peGluIHdvYmJsZS12ZXJ0aWNhbCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LXdvYmJsZS12ZXJ0aWNhbCk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1pbi1vdXQpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIDEpO1xuXHR9XG59XG4iLCIvKiBXb2JibGUgSG9yaXpvbnRhbCAqL1xuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0td29iYmxlLWhvcml6b250YWwpIHtcblx0MTYuNjUlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoOHB4KSk7XG5cdH1cblxuXHQzMy4zJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC02cHgpKTtcblx0fVxuXG5cdDQ5Ljk1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDRweCkpO1xuXHR9XG5cblx0NjYuNiUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgtMnB4KSk7XG5cdH1cblxuXHQ4My4yNSUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgxcHgpKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgwKSk7XG5cdH1cbn1cblxuQG1peGluIHdvYmJsZS1ob3Jpem9udGFsIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0td29iYmxlLWhvcml6b250YWwpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2UtaW4tb3V0KTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAxKTtcblx0fVxufVxuIiwiLyogV29iYmxlIFRvIEJvdHRvbSBSaWdodCAqL1xuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0td29iYmxlLXRvLWJvdHRvbS1yaWdodCkge1xuXHQxNi42NSUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlKDhweCwgOHB4KSk7XG5cdH1cblxuXHQzMy4zJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGUoLTZweCwgLTZweCkpO1xuXHR9XG5cblx0NDkuOTUlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZSg0cHgsIDRweCkpO1xuXHR9XG5cblx0NjYuNiUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlKC0ycHgsIC0ycHgpKTtcblx0fVxuXG5cdDgzLjI1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGUoMXB4LCAxcHgpKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlKDAsIDApKTtcblx0fVxufVxuXG5AbWl4aW4gd29iYmxlLXRvLWJvdHRvbS1yaWdodCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LXdvYmJsZS10by1ib3R0b20tcmlnaHQpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2UtaW4tb3V0KTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAxKTtcblx0fVxufVxuIiwiLyogV29iYmxlIFRvIFRvcCBSaWdodCAqL1xuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0td29iYmxlLXRvLXRvcC1yaWdodCkge1xuICAxNi42NSUge1xuICAgIEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlKDhweCwgLThweCkpO1xuICB9XG5cbiAgMzMuMyUge1xuICAgIEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlKC02cHgsIDZweCkpO1xuICB9XG5cbiAgNDkuOTUlIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZSg0cHgsIC00cHgpKTtcbiAgfVxuXG4gIDY2LjYlIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZSgtMnB4LCAycHgpKTtcbiAgfVxuXG4gIDgzLjI1JSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGUoMXB4LCAtMXB4KSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZSgwLCAwKSk7XG4gIH1cbn1cblxuQG1peGluIHdvYmJsZS10by10b3AtcmlnaHQge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXG5cdCY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LXdvYmJsZS10by10b3AtcmlnaHQpO1xuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sIDFzKTtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1pbi1vdXQpO1xuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAxKTtcblx0fVxufVxuIiwiLyogV29iYmxlIFRvcCAqL1xuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0td29iYmxlLXRvcCkge1xuXHQxNi42NSUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2tldygtMTJkZWcpKTtcblx0fVxuXG5cdDMzLjMlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoMTBkZWcpKTtcblx0fVxuXG5cdDQ5Ljk1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBza2V3KC02ZGVnKSk7XG5cdH1cblxuXHQ2Ni42JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBza2V3KDRkZWcpKTtcblx0fVxuXG5cdDgzLjI1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBza2V3KC0yZGVnKSk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoMCkpO1xuXHR9XG59XG5cbkBtaXhpbiB3b2JibGUtdG9wIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLW9yaWdpbiwgMCAxMDAlKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0td29iYmxlLXRvcCk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1pbi1vdXQpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIDEpO1xuXHR9XG59XG4iLCIvKiBXb2JibGUgQm90dG9tICovXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS13b2JibGUtYm90dG9tKSB7XG5cdDE2LjY1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBza2V3KC0xMmRlZykpO1xuXHR9XG5cblx0MzMuMyUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2tldygxMGRlZykpO1xuXHR9XG5cblx0NDkuOTUlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoLTZkZWcpKTtcblx0fVxuXG5cdDY2LjYlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoNGRlZykpO1xuXHR9XG5cblx0ODMuMjUlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoLTJkZWcpKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2tldygwKSk7XG5cdH1cbn1cblxuQG1peGluIHdvYmJsZS1ib3R0b20ge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0tb3JpZ2luLCAxMDAlIDApO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS13b2JibGUtYm90dG9tKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sIDFzKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLWluLW91dCk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgMSk7XG5cdH1cbn1cbiIsIi8qIFdvYmJsZSBTa2V3ICovXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS13b2JibGUtc2tldykge1xuXHQxNi42NSUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2tldygtMTJkZWcpKTtcblx0fVxuXG5cdDMzLjMlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoMTBkZWcpKTtcblx0fVxuXG5cdDQ5Ljk1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBza2V3KC02ZGVnKSk7XG5cdH1cblxuXHQ2Ni42JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBza2V3KDRkZWcpKTtcblx0fVxuXG5cdDgzLjI1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBza2V3KC0yZGVnKSk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoMCkpO1xuXHR9XG59XG5cbkBtaXhpbiB3b2JibGUtc2tldyB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LXdvYmJsZS1za2V3KTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sIDFzKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLWluLW91dCk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgMSk7XG5cdH1cbn1cbiIsIi8qIEJ1enogKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWJ1enopIHtcblx0NTAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoM3B4KSByb3RhdGUoMmRlZykpO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZSgtMmRlZykpO1xuXHR9XG59XG5cbkBtaXhpbiBidXp6IHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0tYnV6eik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAuMTVzKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBsaW5lYXIpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcblx0fVxufVxuIiwiLyogQnV6eiBPdXQgKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWJ1enotb3V0KSB7XG5cdDEwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDNweCkgcm90YXRlKDJkZWcpKTtcblx0fVxuXG5cdDIwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZSgtMmRlZykpO1xuXHR9XG5cblx0MzAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoM3B4KSByb3RhdGUoMmRlZykpO1xuXHR9XG5cblx0NDAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLTNweCkgcm90YXRlKC0yZGVnKSk7XG5cdH1cblxuXHQ1MCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgycHgpIHJvdGF0ZSgxZGVnKSk7XG5cdH1cblxuXHQ2MCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgtMnB4KSByb3RhdGUoLTFkZWcpKTtcblx0fVxuXG5cdDcwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDJweCkgcm90YXRlKDFkZWcpKTtcblx0fVxuXG5cdDgwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0ycHgpIHJvdGF0ZSgtMWRlZykpO1xuXHR9XG5cblx0OTAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoMXB4KSByb3RhdGUoMCkpO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0xcHgpIHJvdGF0ZSgwKSk7XG5cdH1cbn1cblxuQG1peGluIGJ1enotb3V0IHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0tYnV6ei1vdXQpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgLjc1cyk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgbGluZWFyKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAxKTtcblx0fVxufVxuIiwiLyogRm9yd2FyZCAqL1xuQG1peGluIGZvcndhcmQge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoOHB4KSk7XG5cdH1cbn1cbiIsIi8qIEJhY2t3YXJkICovXG5AbWl4aW4gYmFja3dhcmQge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLThweCkpO1xuXHR9XG59XG4iLCIvKiBGYWRlICovXG5AbWl4aW4gZmFkZSB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIFwiY29sb3IsIGJhY2tncm91bmQtY29sb3JcIik7XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRhY3RpdmVDb2xvcjtcblx0XHRjb2xvcjogd2hpdGU7XG5cdH1cbn1cbiIsIi8qIEJhY2sgUHVsc2UgKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWJhY2stcHVsc2UpIHtcblx0NTAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMyLCAxNTIsIDIwOSwgLjc1KTtcblx0fVxufVxuXG5AbWl4aW4gYmFjay1wdWxzZSB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRzbG93RHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBcImNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yXCIpO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1iYWNrLXB1bHNlKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sIDFzKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZGVsYXksICRzbG93RHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGxpbmVhcik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRhY3RpdmVDb2xvcjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMyLCAxNTIsIDIwOSwgMSk7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHR9XG59XG4iLCIvKiBTd2VlcCBUbyBSaWdodCAqL1xuQG1peGluIHN3ZWVwLXRvLXJpZ2h0IHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IC0xO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVgoMCkpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybS1vcmlnaW4sIDAgNTAlKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRjb2xvcjogd2hpdGU7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWCgxKSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBTd2VlcCBUbyBMZWZ0ICovXG5AbWl4aW4gc3dlZXAtdG8tbGVmdCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgY29sb3IpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiAtMTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVYKDApKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0tb3JpZ2luLCAxMDAlIDUwJSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVgoMSkpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogU3dlZXAgVG8gQm90dG9tICovXG5AbWl4aW4gc3dlZXAtdG8tYm90dG9tIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IC0xO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVkoMCkpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybS1vcmlnaW4sIDUwJSAwKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRjb2xvcjogd2hpdGU7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWSgxKSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBTd2VlcCBUbyBUb3AgKi9cbkBtaXhpbiBzd2VlcC10by10b3Age1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGNvbG9yKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWSgwKSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLW9yaWdpbiwgNTAlIDEwMCUpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdGNvbG9yOiB3aGl0ZTtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVZKDEpKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIEJvdW5jZSBUbyBSaWdodCAqL1xuQG1peGluIGJvdW5jZS10by1yaWdodCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgY29sb3IpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkc2xvd0R1cmF0aW9uKTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWCgwKSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLW9yaWdpbiwgMCA1MCUpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHNsb3dEdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRjb2xvcjogd2hpdGU7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWCgxKSk7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgY3ViaWMtYmV6aWVyKC41MiwxLjY0LC4zNywuNjYpKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIEJvdW5jZSBUbyBMZWZ0ICovXG5AbWl4aW4gYm91bmNlLXRvLWxlZnQge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGNvbG9yKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHNsb3dEdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IC0xO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVgoMCkpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybS1vcmlnaW4sIDEwMCUgNTAlKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRzbG93RHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVgoMSkpO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGN1YmljLWJlemllciguNTIsMS42NCwuMzcsLjY2KSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBCb3VuY2UgVG8gQm90dG9tICovXG5AbWl4aW4gYm91bmNlLXRvLWJvdHRvbSB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgY29sb3IpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkc2xvd0R1cmF0aW9uKTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWSgwKSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLW9yaWdpbiwgNTAlIDApO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHNsb3dEdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRjb2xvcjogd2hpdGU7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWSgxKSk7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgY3ViaWMtYmV6aWVyKC41MiwxLjY0LC4zNywuNjYpKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIEJvdW5jZSBUbyBUb3AgKi9cbkBtaXhpbiBib3VuY2UtdG8tdG9wIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRzbG93RHVyYXRpb24pO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiAtMTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVZKDApKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0tb3JpZ2luLCA1MCUgMTAwJSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkc2xvd0R1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdGNvbG9yOiB3aGl0ZTtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVZKDEpKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBjdWJpYy1iZXppZXIoLjUyLDEuNjQsLjM3LC42NikpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogUmFkaWFsIE91dCAqL1xuQG1peGluIHJhZGlhbC1vdXQge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGJhY2tncm91bmQ6ICRwcmltYXJ5Q29sb3I7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGNvbG9yKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcblx0XHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoMCkpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdGNvbG9yOiB3aGl0ZTtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoMikpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogUmFkaWFsIEluICovXG5AbWl4aW4gcmFkaWFsLWluIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGNvbG9yKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGJhY2tncm91bmQ6ICRwcmltYXJ5Q29sb3I7XG5cdFx0Ym9yZGVyLXJhZGl1czogMTAwJTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDIpKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRjb2xvcjogd2hpdGU7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDApKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIFJlY3RhbmdsZSBJbiAqL1xuQG1peGluIHJlY3RhbmdsZS1pbiB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IC0xO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeUNvbG9yO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoMSkpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdGNvbG9yOiB3aGl0ZTtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoMCkpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogUmVjdGFuZ2xlIE91dCAqL1xuQG1peGluIHJlY3RhbmdsZS1vdXQge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGJhY2tncm91bmQ6ICRwcmltYXJ5Q29sb3I7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGNvbG9yKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDApKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRjb2xvcjogd2hpdGU7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEpKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIFNodXR0ZXIgSW4gSG9yaXpvbnRhbCAqL1xuQG1peGluIHNodXR0ZXItaW4taG9yaXpvbnRhbCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IC0xO1xuXHRcdHRvcDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeUNvbG9yO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVYKDEpKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0tb3JpZ2luLCA1MCUpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdGNvbG9yOiB3aGl0ZTtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVYKDApKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIFNodXR0ZXIgT3V0IEhvcml6b250YWwgKi9cbkBtaXhpbiBzaHV0dGVyLW91dC1ob3Jpem9udGFsIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRiYWNrZ3JvdW5kOiAkcHJpbWFyeUNvbG9yO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IC0xO1xuXHRcdHRvcDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVgoMCkpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybS1vcmlnaW4sIDUwJSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVgoMSkpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogU2h1dHRlciBJbiBWZXJ0aWNhbCAqL1xuQG1peGluIHNodXR0ZXItaW4tdmVydGljYWwge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgY29sb3IpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiAtMTtcblx0XHR0b3A6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnlDb2xvcjtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWSgxKSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLW9yaWdpbiwgNTAlKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRjb2xvcjogd2hpdGU7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWSgwKSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBTaHV0dGVyIE91dCBWZXJ0aWNhbCAqL1xuQG1peGluIHNodXR0ZXItb3V0LXZlcnRpY2FsIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRiYWNrZ3JvdW5kOiAkcHJpbWFyeUNvbG9yO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IC0xO1xuXHRcdHRvcDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVkoMCkpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybS1vcmlnaW4sIDUwJSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVkoMSkpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogQm9yZGVyIEZhZGUgKi9cbkBtaXhpbiBib3JkZXItZmFkZSB7XG5cdCRib3JkZXJXaWR0aDogNHB4O1xuXG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGJveC1zaGFkb3cpO1xuXHRib3gtc2hhZG93OlxuXHRcdFx0aW5zZXQgMCAwIDAgJGJvcmRlcldpZHRoICRwcmltYXJ5Q29sb3IsXG5cdFx0XHQwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMCk7IC8qIEhhY2sgdG8gaW1wcm92ZSBhbGlhc2luZyBvbiBtb2JpbGUvdGFibGV0IGRldmljZXMgKi9cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Ym94LXNoYWRvdzpcblx0XHRcdGluc2V0IDAgMCAwICRib3JkZXJXaWR0aCAkYWN0aXZlQ29sb3IsXG5cdFx0XHQwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMCk7IC8qIEhhY2sgdG8gaW1wcm92ZSBhbGlhc2luZyBvbiBtb2JpbGUvdGFibGV0IGRldmljZXMgKi9cblx0fVxufVxuIiwiLyogSG9sbG93ICovXG5AbWl4aW4gaG9sbG93IHtcblx0JGJvcmRlcldpZHRoOiA0cHg7XG5cblx0QGluY2x1ZGUgaGFja3MoKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgYmFja2dyb3VuZCk7XG5cdGJveC1zaGFkb3c6XG5cdFx0aW5zZXQgMCAwIDAgJGJvcmRlcldpZHRoICRwcmltYXJ5Q29sb3IsXG5cdFx0MCAwIDFweCByZ2JhKDAsIDAsIDAsIDApOyAvKiBIYWNrIHRvIGltcHJvdmUgYWxpYXNpbmcgb24gbW9iaWxlL3RhYmxldCBkZXZpY2VzICovXG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdH1cbn1cbiIsIi8qIFRyaW0gKi9cbkBtaXhpbiB0cmltIHtcblx0JG91dGVyQm9yZGVyV2lkdGg6IDRweDtcblx0JGlubmVyQm9yZGVyV2lkdGg6IDRweDtcblxuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3JkZXI6IHdoaXRlIHNvbGlkICRpbm5lckJvcmRlcldpZHRoO1xuXHRcdHRvcDogJG91dGVyQm9yZGVyV2lkdGg7XG5cdFx0bGVmdDogJG91dGVyQm9yZGVyV2lkdGg7XG5cdFx0cmlnaHQ6ICRvdXRlckJvcmRlcldpZHRoO1xuXHRcdGJvdHRvbTogJG91dGVyQm9yZGVyV2lkdGg7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIG9wYWNpdHkpO1xuXHR9XG5cblx0Jjpob3ZlcjpiZWZvcmUsXG5cdCY6Zm9jdXM6YmVmb3JlLFxuXHQmOmFjdGl2ZTpiZWZvcmUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbiIsIi8qIFJpcHBsZSBPdXQgKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LXJpcHBsZS1vdXQpIHtcblx0MTAwJSB7XG5cdFx0dG9wOiAtKDZweCArIDZweCk7XG5cdFx0cmlnaHQ6IC0oNnB4ICsgNnB4KTtcblx0XHRib3R0b206IC0oNnB4ICsgNnB4KTtcblx0XHRsZWZ0OiAtKDZweCArIDZweCk7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxufVxuXG5AbWl4aW4gcmlwcGxlLW91dCB7XG5cdCRvdXRlckJvcmRlcldpZHRoOiA2cHg7XG5cdCRpbm5lckJvcmRlcldpZHRoOiA2cHg7XG5cblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAnJztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym9yZGVyOiAkcHJpbWFyeUNvbG9yIHNvbGlkICRvdXRlckJvcmRlcldpZHRoO1xuXHRcdHRvcDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0bGVmdDogMDtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sIDFzKTtcblx0fVxuXG5cdCY6aG92ZXI6YmVmb3JlLFxuXHQmOmZvY3VzOmJlZm9yZSxcblx0JjphY3RpdmU6YmVmb3JlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1yaXBwbGUtb3V0KTtcblx0fVxufVxuIiwiLyogUmlwcGxlIEluICovXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1yaXBwbGUtaW4pIHtcblx0MTAwJSB7XG5cdFx0dG9wOiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuQG1peGluIHJpcHBsZS1pbiB7XG5cdCRvdXRlckJvcmRlcldpZHRoOiA0cHg7XG5cdCRpbm5lckJvcmRlcldpZHRoOiA0cHg7XG5cblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAnJztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym9yZGVyOiAkcHJpbWFyeUNvbG9yIHNvbGlkICRvdXRlckJvcmRlcldpZHRoO1xuXHRcdHRvcDogLSg2cHggKyA2cHgpO1xuXHRcdHJpZ2h0OiAtKDZweCArIDZweCk7XG5cdFx0Ym90dG9tOiAtKDZweCArIDZweCk7XG5cdFx0bGVmdDogLSg2cHggKyA2cHgpO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XG5cdH1cblxuXHQmOmhvdmVyOmJlZm9yZSxcblx0Jjpmb2N1czpiZWZvcmUsXG5cdCY6YWN0aXZlOmJlZm9yZSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0tcmlwcGxlLWluKTtcblx0fVxufVxuIiwiLyogT3V0bGluZSBPdXQgKi9cbkBtaXhpbiBvdXRsaW5lLW91dCB7XG5cdCRvdXRlckJvcmRlcldpZHRoOiA0cHg7XG5cdCRpbm5lckJvcmRlcldpZHRoOiA0cHg7XG5cblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiAnJztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym9yZGVyOiAkcHJpbWFyeUNvbG9yIHNvbGlkICRvdXRlckJvcmRlcldpZHRoO1xuXHRcdHRvcDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0bGVmdDogMDtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAuM3MpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIFwidG9wLCByaWdodCwgYm90dG9tLCBsZWZ0XCIpO1xuXHR9XG5cblx0Jjpob3ZlcjpiZWZvcmUsXG5cdCY6Zm9jdXM6YmVmb3JlLFxuXHQmOmFjdGl2ZTpiZWZvcmUge1xuXHRcdHRvcDogLSgkb3V0ZXJCb3JkZXJXaWR0aCArICRpbm5lckJvcmRlcldpZHRoKTtcblx0XHRyaWdodDogLSgkb3V0ZXJCb3JkZXJXaWR0aCArICRpbm5lckJvcmRlcldpZHRoKTtcblx0XHRib3R0b206IC0oJG91dGVyQm9yZGVyV2lkdGggKyAkaW5uZXJCb3JkZXJXaWR0aCk7XG5cdFx0bGVmdDogLSgkb3V0ZXJCb3JkZXJXaWR0aCArICRpbm5lckJvcmRlcldpZHRoKTtcblx0fVxufVxuIiwiLyogT3V0bGluZSBJbiAqL1xuQG1peGluIG91dGxpbmUtaW4ge1xuXHQkb3V0ZXJCb3JkZXJXaWR0aDogNHB4O1xuXHQkaW5uZXJCb3JkZXJXaWR0aDogNHB4O1xuXG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvcmRlcjogJHByaW1hcnlDb2xvciBzb2xpZCAkb3V0ZXJCb3JkZXJXaWR0aDtcblx0XHR0b3A6IC0oJG91dGVyQm9yZGVyV2lkdGggKyAkaW5uZXJCb3JkZXJXaWR0aCkgKiAyO1xuXHRcdHJpZ2h0OiAtKCRvdXRlckJvcmRlcldpZHRoICsgJGlubmVyQm9yZGVyV2lkdGgpICogMjtcblx0XHRib3R0b206IC0oJG91dGVyQm9yZGVyV2lkdGggKyAkaW5uZXJCb3JkZXJXaWR0aCkgKiAyO1xuXHRcdGxlZnQ6IC0oJG91dGVyQm9yZGVyV2lkdGggKyAkaW5uZXJCb3JkZXJXaWR0aCkgKiAyO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgLjNzKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBcInRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdFwiKTtcblx0fVxuXG5cdCY6aG92ZXI6YmVmb3JlLFxuXHQmOmZvY3VzOmJlZm9yZSxcblx0JjphY3RpdmU6YmVmb3JlIHtcblx0XHR0b3A6IC0oJG91dGVyQm9yZGVyV2lkdGggKyAkaW5uZXJCb3JkZXJXaWR0aCk7XG5cdFx0cmlnaHQ6IC0oJG91dGVyQm9yZGVyV2lkdGggKyAkaW5uZXJCb3JkZXJXaWR0aCk7XG5cdFx0Ym90dG9tOiAtKCRvdXRlckJvcmRlcldpZHRoICsgJGlubmVyQm9yZGVyV2lkdGgpO1xuXHRcdGxlZnQ6IC0oJG91dGVyQm9yZGVyV2lkdGggKyAkaW5uZXJCb3JkZXJXaWR0aCk7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuIiwiLyogUm91bmQgQ29ybmVycyAqL1xuQG1peGluIHJvdW5kLWNvcm5lcnMge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBib3JkZXItcmFkaXVzKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMWVtO1xuXHR9XG59XG4iLCIvKiBVbmRlcmxpbmUgRnJvbSBMZWZ0ICovXG5AbWl4aW4gdW5kZXJsaW5lLWZyb20tbGVmdCB7XG5cdCRkdXJhdGlvbjogJG1lZGl1bUR1cmF0aW9uO1xuXG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMTAwJTtcblx0XHRib3R0b206IDA7XG5cdFx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xuXHRcdGhlaWdodDogNHB4O1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIFwicmlnaHRcIik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJGR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBVbmRlcmxpbmUgRnJvbSBDZW50ZXIgKi9cbkBtaXhpbiB1bmRlcmxpbmUtZnJvbS1jZW50ZXIge1xuXHQkZHVyYXRpb246ICRtZWRpdW1EdXJhdGlvbjtcblxuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IC0xO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHRyaWdodDogNTAlO1xuXHRcdGJvdHRvbTogMDtcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XG5cdFx0aGVpZ2h0OiA0cHg7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgXCJsZWZ0LCByaWdodFwiKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkZHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBVbmRlcmxpbmUgRnJvbSBSaWdodCAqL1xuQG1peGluIHVuZGVybGluZS1mcm9tLXJpZ2h0IHtcblx0JGR1cmF0aW9uOiAkbWVkaXVtRHVyYXRpb247XG5cblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiAtMTtcblx0XHRsZWZ0OiAxMDAlO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XG5cdFx0aGVpZ2h0OiA0cHg7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgXCJsZWZ0XCIpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBPdmVybGluZSBGcm9tIExlZnQgKi9cbkBtaXhpbiBvdmVybGluZS1mcm9tLWxlZnQge1xuXHQkZHVyYXRpb246ICRtZWRpdW1EdXJhdGlvbjtcblxuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IC0xO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDEwMCU7XG5cdFx0dG9wOiAwO1xuXHRcdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcblx0XHRoZWlnaHQ6IDRweDtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBcInJpZ2h0XCIpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdH1cblx0fVxufVxuIiwiLyogT3ZlcmxpbmUgRnJvbSBDZW50ZXIgKi9cbkBtaXhpbiBvdmVybGluZS1mcm9tLWNlbnRlciB7XG5cdCRkdXJhdGlvbjogJG1lZGl1bUR1cmF0aW9uO1xuXG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiAtMTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0cmlnaHQ6IDUwJTtcblx0XHR0b3A6IDA7XG5cdFx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xuXHRcdGhlaWdodDogNHB4O1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIFwibGVmdCwgcmlnaHRcIik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJGR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdH1cblx0fVxufVxuIiwiLyogT3ZlcmxpbmUgRnJvbSBSaWdodCAqL1xuQG1peGluIG92ZXJsaW5lLWZyb20tcmlnaHQge1xuXHQkZHVyYXRpb246ICRtZWRpdW1EdXJhdGlvbjtcblxuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IC0xO1xuXHRcdGxlZnQ6IDEwMCU7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0dG9wOiAwO1xuXHRcdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcblx0XHRoZWlnaHQ6IDRweDtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBcImxlZnRcIik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJGR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0bGVmdDogMDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIFJldmVhbCAqL1xuQG1peGluIHJldmVhbCB7XG5cdCRkdXJhdGlvbjogI3skZmFzdER1cmF0aW9ufTtcblxuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IC0xO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0dG9wOiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRib3JkZXItY29sb3I6ICN7JGFjdGl2ZUNvbG9yfTtcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci13aWR0aDogMDtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBib3JkZXItd2lkdGgpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICN7JGR1cmF0aW9ufSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgwKSk7XG5cdFx0XHRib3JkZXItd2lkdGg6IDRweDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIFVuZGVybGluZSBSZXZlYWwgKi9cbkBtaXhpbiB1bmRlcmxpbmUtcmV2ZWFsIHtcblx0JGR1cmF0aW9uOiAkbWVkaXVtRHVyYXRpb247XG5cblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiAtMTtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XG5cdFx0aGVpZ2h0OiA0cHg7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDRweCkpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJGR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDApKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIE92ZXJsaW5lIFJldmVhbCAqL1xuQG1peGluIG92ZXJsaW5lLXJldmVhbCB7XG5cdCRkdXJhdGlvbjogJG1lZGl1bUR1cmF0aW9uO1xuXG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHR0b3A6IDA7XG5cdFx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xuXHRcdGhlaWdodDogNHB4O1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtNHB4KSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkZHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoMCkpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogR2xvdyAqL1xuQG1peGluIGdsb3cge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBib3gtc2hhZG93KTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDhweCAkc2hhZG93Q29sb3I7XG5cdH1cbn1cbiIsIi8qIFNoYWRvdyAqL1xuQG1peGluIHNoYWRvdyB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGJveC1zaGFkb3cpO1xuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRib3gtc2hhZG93OiAwIDEwcHggMTBweCAtMTBweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG5cdH1cbn1cbiIsIi8qIEdyb3cgU2hhZG93ICovXG5AbWl4aW4gZ3Jvdy1zaGFkb3cge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBcImJveC1zaGFkb3csIHRyYW5zZm9ybVwiKTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Ym94LXNoYWRvdzogMCAxMHB4IDEwcHggLTEwcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoMS4xKSk7XG5cdH1cbn1cbiIsIi8qIEJveCBTaGFkb3cgT3V0c2V0ICovXG5AbWl4aW4gYm94LXNoYWRvdy1vdXRzZXQge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBib3gtc2hhZG93KTtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Ym94LXNoYWRvdzogMnB4IDJweCAycHggJHNoYWRvd0NvbG9yO1xuXHR9XG59XG4iLCIvKiBCb3ggU2hhZG93IEluc2V0ICovXG5AbWl4aW4gYm94LXNoYWRvdy1pbnNldCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGJveC1zaGFkb3cpO1xuXG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRzaGFkb3dDb2xvcixcblx0XHQwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMCk7IC8qIEhhY2sgdG8gaW1wcm92ZSBhbGlhc2luZyBvbiBtb2JpbGUvdGFibGV0IGRldmljZXMgKi9cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Ym94LXNoYWRvdzogaW5zZXQgMnB4IDJweCAycHggJHNoYWRvd0NvbG9yLFxuXHRcdDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTsgLyogSGFjayB0byBpbXByb3ZlIGFsaWFzaW5nIG9uIG1vYmlsZS90YWJsZXQgZGV2aWNlcyAqL1xuXHR9XG59XG4iLCIvKiBGbG9hdCBTaGFkb3cgKi9cbkBtaXhpbiBmbG9hdC1zaGFkb3cge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cblx0JjpiZWZvcmUge1xuXHQgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHQgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ICB6LWluZGV4OiAtMTtcblx0ICBjb250ZW50OiAnJztcblx0ICB0b3A6IDEwMCU7XG5cdCAgbGVmdDogNSU7XG5cdCAgaGVpZ2h0OiAxMHB4O1xuXHQgIHdpZHRoOiA5MCU7XG5cdCAgb3BhY2l0eTogMDtcblx0ICBiYWNrZ3JvdW5kOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjZW50ZXIsIGVsbGlwc2UsIHJnYmEoMCwwLDAsLjM1KSAwJSwgcmdiYSgwLCAwLCAwLCAwKSA4MCUpO1xuXHQgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgcmdiYSgwLDAsMCwuMzUpIDAlLHJnYmEoMCwwLDAsMCkgODAlKTsgLyogVzNDICovXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBcInRyYW5zZm9ybSwgb3BhY2l0eVwiKTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLTVweCkpOyAvKiBtb3ZlIHRoZSBlbGVtZW50IHVwIGJ5IDVweCAqL1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg1cHgpKTsgLyogbW92ZSB0aGUgZWxlbWVudCBkb3duIGJ5IDVweCAoaXQgd2lsbCBzdGF5IGluIHBsYWNlIGJlY2F1c2UgaXQncyBhdHRhY2hlZCB0byB0aGUgZWxlbWVudCB0aGF0IGFsc28gbW92ZXMgdXAgNXB4KSAqL1xuXHRcdH1cblx0fVxufVxuIiwiLyogU2hhZG93IFJhZGlhbCAqL1xuQG1peGluIHNoYWRvdy1yYWRpYWwge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjpiZWZvcmUsXG5cdCY6YWZ0ZXIge1xuXHQgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXHQgIGNvbnRlbnQ6ICcnO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBoZWlnaHQ6IDVweDtcbiAgICAgIG9wYWNpdHk6IDA7XG5cdCAgQGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0ICBAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBvcGFjaXR5KTtcblx0fVxuXG5cdCY6YmVmb3JlIHtcblx0ICBib3R0b206IDEwMCU7XG5cdCAgYmFja2dyb3VuZDogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoNTAlIDE1MCUsIGVsbGlwc2UsICRzaGFkb3dDb2xvciAwJSwgcmdiYSgwLCAwLCAwLCAwKSA4MCUpO1xuICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgNTAlIDE1MCUsICRzaGFkb3dDb2xvciAwJSwgcmdiYSgwLCAwLCAwLCAwKSA4MCUpO1xuXHR9XG5cblx0JjphZnRlciB7XG5cdCAgdG9wOiAxMDAlO1xuXHQgIGJhY2tncm91bmQ6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KDUwJSAtNTAlLCBlbGxpcHNlLCAkc2hhZG93Q29sb3IgMCUsIHJnYmEoMCwgMCwgMCwgMCkgODAlKTtcblx0ICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA1MCUgLTUwJSwgJHNoYWRvd0NvbG9yIDAlLCByZ2JhKDAsIDAsIDAsIDApIDgwJSk7XG5cdH1cblxuXHQmOmhvdmVyOmJlZm9yZSxcblx0Jjpmb2N1czpiZWZvcmUsXG5cdCY6YWN0aXZlOmJlZm9yZSxcblx0Jjpob3ZlcjphZnRlcixcblx0Jjpmb2N1czphZnRlcixcblx0JjphY3RpdmU6YWZ0ZXIge1xuXHQgIG9wYWNpdHk6IDE7XG5cdH1cbn1cbiIsIi8qIEJ1YmJsZSBUb3AgKi9cbkBtaXhpbiBidWJibGUtdG9wIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdFx0bGVmdDogY2FsYyg1MCUgLSAjeyR0aXBXaWR0aH0pO1xuXHRcdHRvcDogMDtcblx0XHRib3JkZXItd2lkdGg6IDAgJHRpcFdpZHRoICR0aXBIZWlnaHQgJHRpcFdpZHRoO1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRpcENvbG9yIHRyYW5zcGFyZW50O1xuXHR9XG5cblx0Jjpob3ZlcjpiZWZvcmUsXG5cdCY6Zm9jdXM6YmVmb3JlLFxuXHQmOmFjdGl2ZTpiZWZvcmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtKCR0aXBIZWlnaHQpKSk7XG5cdH1cbn1cbiIsIi8qIEJ1YmJsZSBSaWdodCAqL1xuQG1peGluIGJ1YmJsZS1yaWdodCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IC0xO1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHRcdHRvcDogY2FsYyg1MCUgLSAjeyR0aXBIZWlnaHR9KTtcblx0XHRyaWdodDogMDtcblx0XHRib3JkZXItd2lkdGg6ICR0aXBIZWlnaHQgMCAkdGlwSGVpZ2h0ICR0aXBXaWR0aDtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0aXBDb2xvcjtcblx0fVxuXG5cdCY6aG92ZXI6YmVmb3JlLFxuXHQmOmZvY3VzOmJlZm9yZSxcblx0JjphY3RpdmU6YmVmb3JlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoJHRpcFdpZHRoKSk7XG5cdH1cbn1cbiIsIi8qIEJ1YmJsZSBCb3R0b20gKi9cbkBtaXhpbiBidWJibGUtYm90dG9tIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdFx0bGVmdDogY2FsYyg1MCUgLSAjeyR0aXBXaWR0aH0pO1xuXHRcdGJvdHRvbTogMDtcblx0XHRib3JkZXItd2lkdGg6ICR0aXBIZWlnaHQgJHRpcFdpZHRoIDAgJHRpcFdpZHRoO1xuXHRcdGJvcmRlci1jb2xvcjogJHRpcENvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHR9XG5cblx0Jjpob3ZlcjpiZWZvcmUsXG5cdCY6Zm9jdXM6YmVmb3JlLFxuXHQmOmFjdGl2ZTpiZWZvcmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgkdGlwSGVpZ2h0KSk7XG5cdH1cbn1cbiIsIi8qIEJ1YmJsZSBMZWZ0ICovXG5AbWl4aW4gYnViYmxlLWxlZnQge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjpiZWZvcmUge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiAtMTtcblx0XHRjb250ZW50OiAnJztcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblx0XHR0b3A6IGNhbGMoNTAlIC0gI3skdGlwSGVpZ2h0fSk7XG5cdFx0bGVmdDogMDtcblx0XHRib3JkZXItd2lkdGg6ICR0aXBIZWlnaHQgJHRpcFdpZHRoICR0aXBIZWlnaHQgMDtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0aXBDb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0fVxuXG5cdCY6aG92ZXI6YmVmb3JlLFxuXHQmOmZvY3VzOmJlZm9yZSxcblx0JjphY3RpdmU6YmVmb3JlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLSgkdGlwV2lkdGgpKSk7XG5cdH1cbn1cbiIsIi8qIEJ1YmJsZSBGbG9hdCBUb3AgKi9cbkBtaXhpbiBidWJibGUtZmxvYXQtdG9wIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0bGVmdDogY2FsYyg1MCUgLSAjeyR0aXBXaWR0aH0pO1xuXHRcdHRvcDogMDtcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci13aWR0aDogMCAkdGlwV2lkdGggJHRpcEhlaWdodCAkdGlwV2lkdGg7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdGlwQ29sb3IgdHJhbnNwYXJlbnQ7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgkdGlwSGVpZ2h0KSk7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLSgkdGlwSGVpZ2h0KSkpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogQnViYmxlIEZsb2F0IFJpZ2h0ICovXG5AbWl4aW4gYnViYmxlLWZsb2F0LXJpZ2h0IHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0dG9wOiBjYWxjKDUwJSAtICN7JHRpcEhlaWdodH0pO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAkdGlwSGVpZ2h0IDAgJHRpcEhlaWdodCAkdGlwV2lkdGg7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdGlwQ29sb3I7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgtKCR0aXBXaWR0aCkpKTtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgkdGlwV2lkdGgpKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIEJ1YmJsZSBGbG9hdCBCb3R0b20gKi9cbkBtaXhpbiBidWJibGUtZmxvYXQtYm90dG9tIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogLTE7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0bGVmdDogY2FsYyg1MCUgLSAjeyR0aXBXaWR0aH0pO1xuXHRcdGJvdHRvbTogMDtcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci13aWR0aDogJHRpcEhlaWdodCAkdGlwV2lkdGggMCAkdGlwV2lkdGg7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkdGlwQ29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtKCR0aXBIZWlnaHQpKSk7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoJHRpcEhlaWdodCkpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogQnViYmxlIEZsb2F0IExlZnQgKi9cbkBtaXhpbiBidWJibGUtZmxvYXQtbGVmdCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IC0xO1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHRvcDogY2FsYyg1MCUgLSAjeyR0aXBIZWlnaHR9KTtcblx0XHRsZWZ0OiAwO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAkdGlwSGVpZ2h0ICR0aXBXaWR0aCAkdGlwSGVpZ2h0IDA7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdGlwQ29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgkdGlwV2lkdGgpKTtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgtKCR0aXBXaWR0aCkpKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIEljb24gQmFjayAqL1xuQG1peGluIGljb24tYmFjayB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1sZWZ0OiAyLjJlbTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJGZhc3REdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMTM3XCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDFlbTtcblx0XHRwYWRkaW5nOiAwIDFweDtcblx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkZmFzdER1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLTRweCkpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogSWNvbiBGb3J3YXJkICovXG5AbWl4aW4gaWNvbi1mb3J3YXJkIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXJpZ2h0OiAyLjJlbTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJGZhc3REdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMTM4XCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxZW07XG5cdFx0cGFkZGluZzogMCAxcHg7XG5cdFx0Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJGZhc3REdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDRweCkpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogSWNvbiBEb3duICovXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLWRvd24pIHtcblx0MCUsXG5cdDUwJSxcblx0MTAwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDApKTtcblx0fVxuXHQyNSUsXG5cdDc1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDZweCkpO1xuXHR9XG59XG5cbi8qIEljb24gRG93biAqL1xuQG1peGluIGljb24tZG93biB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1yaWdodDogI3skc3BhY2VCZXR3ZWVuVGV4dEFuZEFycm93c307XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMDFhXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxZW07XG5cdFx0cGFkZGluZzogMCAxcHg7XG5cdFx0Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1pY29uLWRvd24pO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAuNzVzKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIEljb24gVXAgKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24tdXApIHtcblx0MCUsXG5cdDUwJSxcblx0MTAwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDApKTtcblx0fVxuXHQyNSUsXG5cdDc1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC02cHgpKTtcblx0fVxufVxuXG4vKiBJY29uIFVwICovXG5AbWl4aW4gaWNvbi11cCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1yaWdodDogMi4yZW07XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMDFiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxZW07XG5cdFx0cGFkZGluZzogMCAxcHg7XG5cdFx0Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1pY29uLXVwKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgLjc1cyk7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIFNwaW4gKi9cbkBtaXhpbiBpY29uLXNwaW4ge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmctcmlnaHQ6IDIuMmVtO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlxcZjAyMVwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogMWVtO1xuXHRcdHBhZGRpbmc6IDAgMXB4O1xuXHRcdGZvbnQtZmFtaWx5OiBGb250QXdlc29tZTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAxcyk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1pbi1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCByb3RhdGUoMzYwZGVnKSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIERyb3AgKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24tZHJvcCkge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblxuXHR9XG5cblx0NTAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtMTAwJSkpO1xuXHR9XG5cblx0NTElLFxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5cbi8qIEljb24gRHJvcCAqL1xuQG1peGluIGljb24tZHJvcCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1yaWdodDogI3skc3BhY2VCZXR3ZWVuVGV4dEFuZEFycm93c307XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMDQxXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxZW07XG5cdFx0b3BhY2l0eTogMTtcblx0XHRwYWRkaW5nOiAwIDFweDtcblx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAjeyRtZWRpdW1EdXJhdGlvbn0pO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0taWNvbi1kcm9wKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgI3skc2xvd0R1cmF0aW9ufSk7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZGVsYXksICN7JG1lZGl1bUR1cmF0aW9ufSk7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZmlsbC1tb2RlLCBmb3J3YXJkcyk7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLWluLW91dCk7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBjdWJpYy1iZXppZXIoLjUyLDEuNjQsLjM3LC42NikpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogSWNvbiBGYWRlICovXG5AbWl4aW4gaWNvbi1mYWRlIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXJpZ2h0OiAjeyRzcGFjZUJldHdlZW5UZXh0QW5kQXJyb3dzfTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcXGYwMGNcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDFlbTtcblx0XHRwYWRkaW5nOiAwIDFweDtcblx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAuNXMpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGNvbG9yKTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbG9yOiAjMEY5RTVFO1xuXHRcdH1cblx0fVxufVxuIiwiLyogSWNvbiBGbG9hdCBBd2F5ICovXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLWZsb2F0LWF3YXkpIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtMWVtKSk7XG5cdH1cbn1cblxuLyogSWNvbiBGbG9hdCBBd2F5ICovXG5AbWl4aW4gaWNvbi1mbG9hdC1hd2F5IHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXJpZ2h0OiAjeyRzcGFjZUJldHdlZW5UZXh0QW5kQXJyb3dzfTtcblxuXHQmOmJlZm9yZSxcblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcXGYwNTVcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDFlbTtcblx0XHRwYWRkaW5nOiAwIDFweDtcblx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdH1cblxuXHQmOmFmdGVyIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgI3skc2xvd0R1cmF0aW9ufSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWZpbGwtbW9kZSwgZm9yd2FyZHMpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1pY29uLWZsb2F0LWF3YXkpO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogSWNvbiBTaW5rIEF3YXkgKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24tc2luay1hd2F5KSB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoMWVtKSk7XG5cdH1cbn1cblxuLyogSWNvbiBTaW5rIEF3YXkgKi9cbkBtaXhpbiBpY29uLXNpbmstYXdheSB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1yaWdodDogI3skc3BhY2VCZXR3ZWVuVGV4dEFuZEFycm93c307XG5cblx0JjpiZWZvcmUsXG5cdCY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMDU2XCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxZW07XG5cdFx0cGFkZGluZzogMCAxcHg7XG5cdFx0Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XG5cdH1cblxuXHQmOmFmdGVyIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgI3skc2xvd0R1cmF0aW9ufSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWZpbGwtbW9kZSwgZm9yd2FyZHMpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1pY29uLXNpbmstYXdheSk7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIEdyb3cgKi9cbkBtaXhpbiBpY29uLWdyb3cge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmctcmlnaHQ6ICN7JHNwYWNlQmV0d2VlblRleHRBbmRBcnJvd3N9O1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlxcZjExOFwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogMWVtO1xuXHRcdHBhZGRpbmc6IDAgMXB4O1xuXHRcdGZvbnQtZmFtaWx5OiBGb250QXdlc29tZTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVooMCkpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSgxLjMpIHRyYW5zbGF0ZVooMCkpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogSWNvbiBTaHJpbmsgKi9cbkBtaXhpbiBpY29uLXNocmluayB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1yaWdodDogI3skc3BhY2VCZXR3ZWVuVGV4dEFuZEFycm93c307XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMTE5XCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxZW07XG5cdFx0cGFkZGluZzogMCAxcHg7XG5cdFx0Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKC44KSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIFB1bHNlICovXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLXB1bHNlKSB7XG5cdDI1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSgxLjMpKTtcblx0fVxuXG5cdDc1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSguOCkpO1xuXHR9XG59XG5cbkBtaXhpbiBpY29uLXB1bHNlIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXJpZ2h0OiAjeyRzcGFjZUJldHdlZW5UZXh0QW5kQXJyb3dzfTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcXGYwMTVcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDFlbTtcblx0XHRwYWRkaW5nOiAwIDFweDtcblx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0taWNvbi1wdWxzZSk7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sIDFzKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGxpbmVhcik7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIFB1bHNlIEdyb3cgKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24tcHVsc2UtZ3Jvdykge1xuXHR0byB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSgxLjMpKTtcblx0fVxufVxuXG5AbWl4aW4gaWNvbi1wdWxzZS1ncm93IHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXJpZ2h0OiAjeyRzcGFjZUJldHdlZW5UZXh0QW5kQXJyb3dzfTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcXGYwMTVcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDFlbTtcblx0XHRwYWRkaW5nOiAwIDFweDtcblx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0taWNvbi1wdWxzZS1ncm93KTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGxpbmVhcik7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZGlyZWN0aW9uLCBhbHRlcm5hdGUpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogSWNvbiBQdWxzZSBTaHJpbmsgKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24tcHVsc2Utc2hyaW5rKSB7XG5cdHRvIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKC44KSk7XG5cdH1cbn1cblxuQG1peGluIGljb24tcHVsc2Utc2hyaW5rIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXJpZ2h0OiAjeyRzcGFjZUJldHdlZW5UZXh0QW5kQXJyb3dzfTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcXGYwMTVcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDFlbTtcblx0XHRwYWRkaW5nOiAwIDFweDtcblx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0taWNvbi1wdWxzZS1zaHJpbmspO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgbGluZWFyKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kaXJlY3Rpb24sIGFsdGVybmF0ZSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIFB1c2ggKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24tcHVzaCkge1xuXHQ1MCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoLjUpKTtcblx0fVxufVxuXG5AbWl4aW4gaWNvbi1wdXNoIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXJpZ2h0OiAjeyRzcGFjZUJldHdlZW5UZXh0QW5kQXJyb3dzfTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcXGYwMDZcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDFlbTtcblx0XHRwYWRkaW5nOiAwIDFweDtcblx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LWljb24tcHVzaCk7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBsaW5lYXIpO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgMSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIFBvcCAqL1xuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0taWNvbi1wb3ApIHtcblx0NTAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEuNSkpO1xuXHR9XG59XG5cbkBtaXhpbiBpY29uLXBvcCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1yaWdodDogI3skc3BhY2VCZXR3ZWVuVGV4dEFuZEFycm93c307XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMDA1XCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxZW07XG5cdFx0cGFkZGluZzogMCAxcHg7XG5cdFx0Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1pY29uLXBvcCk7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBsaW5lYXIpO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgMSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIEJvdW5jZSAqL1xuXG5AbWl4aW4gaWNvbi1ib3VuY2Uge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmctcmlnaHQ6ICN7JHNwYWNlQmV0d2VlblRleHRBbmRBcnJvd3N9O1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlxcZjA4N1wiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogMWVtO1xuXHRcdHBhZGRpbmc6IDAgMXB4O1xuXHRcdGZvbnQtZmFtaWx5OiBGb250QXdlc29tZTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVooMCkpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSgxLjUpKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBjdWJpYy1iZXppZXIoLjQ3LDIuMDIsLjMxLC0wLjM2KSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIFJvdGF0ZSAqL1xuQG1peGluIGljb24tcm90YXRlIHtcblx0JGR1cmF0aW9uOiAkbWVkaXVtRHVyYXRpb247XG5cblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXJpZ2h0OiAjeyRzcGFjZUJldHdlZW5UZXh0QW5kQXJyb3dzfTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJGR1cmF0aW9uKTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcXGYwYzZcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDFlbTtcblx0XHRwYWRkaW5nOiAwIDFweDtcblx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkZHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgcm90YXRlKDIwZGVnKSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIEdyb3cgUm90YXRlICovXG5AbWl4aW4gaWNvbi1ncm93LXJvdGF0ZSB7XG5cdCRkdXJhdGlvbjogJG1lZGl1bUR1cmF0aW9uO1xuXG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1yaWdodDogI3skc3BhY2VCZXR3ZWVuVGV4dEFuZEFycm93c307XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMDk1XCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxZW07XG5cdFx0cGFkZGluZzogMCAxcHg7XG5cdFx0Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJGR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEuNSkgcm90YXRlKDEyZGVnKSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIEZsb2F0ICovXG5AbWl4aW4gaWNvbi1mbG9hdCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1yaWdodDogMi4yZW07XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMDFiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxZW07XG5cdFx0cGFkZGluZzogMCAxcHg7XG5cdFx0Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLTRweCkpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogSWNvbiBTaW5rICovXG5AbWl4aW4gaWNvbi1zaW5rIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXJpZ2h0OiAyLjJlbTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcXGYwMWFcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDFlbTtcblx0XHRwYWRkaW5nOiAwIDFweDtcblx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg0cHgpKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qIEljb24gQm9iICovXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLWJvYikge1xuXHQwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC02cHgpKTtcblx0fVxuXHQ1MCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtMnB4KSk7XG5cdH1cblx0MTAwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC02cHgpKTtcblx0fVxufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLWJvYi1mbG9hdCkge1xuXHQxMDAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLTZweCkpO1xuXHR9XG59XG5cbkBtaXhpbiBpY29uLWJvYiB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1yaWdodDogMi4yZW07XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMDc3XCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxZW07XG5cdFx0cGFkZGluZzogMCAxcHg7XG5cdFx0Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgXCIjeyRuYW1lU3BhY2V9LWljb24tYm9iLWZsb2F0LCAjeyRuYW1lU3BhY2V9LWljb24tYm9iXCIpO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCBcIi4zcywgMS41c1wiKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kZWxheSwgXCIwcywgLjNzXCIpO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgXCJlYXNlLW91dCwgZWFzZS1pbi1vdXRcIik7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBcIjEsIGluZmluaXRlXCIpO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWZpbGwtbW9kZSwgXCJmb3J3YXJkc1wiKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kaXJlY3Rpb24sIFwibm9ybWFsLCBhbHRlcm5hdGVcIik7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIEhhbmcgKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24taGFuZykge1xuXHQwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDZweCkpO1xuXHR9XG5cdDUwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDJweCkpO1xuXHR9XG5cdDEwMCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg2cHgpKTtcblx0fVxufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLWhhbmctc2luaykge1xuXHQxMDAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoNnB4KSk7XG5cdH1cbn1cblxuQG1peGluIGljb24taGFuZyB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1yaWdodDogMi4yZW07XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMDc4XCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxZW07XG5cdFx0cGFkZGluZzogMCAxcHg7XG5cdFx0Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgXCIjeyRuYW1lU3BhY2V9LWljb24taGFuZy1zaW5rLCAjeyRuYW1lU3BhY2V9LWljb24taGFuZ1wiKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgXCIuM3MsIDEuNXNcIik7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZGVsYXksIFwiMHMsIC4zc1wiKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIFwiZWFzZS1vdXQsIGVhc2UtaW4tb3V0XCIpO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgXCIxLCBpbmZpbml0ZVwiKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1maWxsLW1vZGUsIFwiZm9yd2FyZHNcIik7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZGlyZWN0aW9uLCBcIm5vcm1hbCwgYWx0ZXJuYXRlXCIpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogSWNvbiBXb2JibGUgSG9yaXpvbnRhbCAqL1xuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0taWNvbi13b2JibGUtaG9yaXpvbnRhbCkge1xuXHQxNi42NSUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCg2cHgpKTtcblx0fVxuXG5cdDMzLjMlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLTVweCkpO1xuXHR9XG5cblx0NDkuOTUlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoNHB4KSk7XG5cdH1cblxuXHQ2Ni42JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0ycHgpKTtcblx0fVxuXG5cdDgzLjI1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDFweCkpO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDApKTtcblx0fVxufVxuXG5AbWl4aW4gaWNvbi13b2JibGUtaG9yaXpvbnRhbCB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1yaWdodDogMi4yZW07XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMDYxXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxZW07XG5cdFx0cGFkZGluZzogMCAxcHg7XG5cdFx0Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1pY29uLXdvYmJsZS1ob3Jpem9udGFsKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1pbi1vdXQpO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgMSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIFdvYmJsZSBWZXJ0aWNhbCAqL1xuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0taWNvbi13b2JibGUtdmVydGljYWwpIHtcblx0MTYuNjUlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoNnB4KSk7XG5cdH1cblxuXHQzMy4zJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC01cHgpKTtcblx0fVxuXG5cdDQ5Ljk1JSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDRweCkpO1xuXHR9XG5cblx0NjYuNiUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtMnB4KSk7XG5cdH1cblxuXHQ4My4yNSUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgxcHgpKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgwKSk7XG5cdH1cbn1cblxuQG1peGluIGljb24td29iYmxlLXZlcnRpY2FsIHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXJpZ2h0OiAyLjJlbTtcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcXGYwNjJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDFlbTtcblx0XHRwYWRkaW5nOiAwIDFweDtcblx0XHRmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlIHtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LWljb24td29iYmxlLXZlcnRpY2FsKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1pbi1vdXQpO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgMSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIEJ1enogKi9cbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24tYnV6eikge1xuXHQ1MCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgzcHgpIHJvdGF0ZSgyZGVnKSk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLTNweCkgcm90YXRlKC0yZGVnKSk7XG5cdH1cbn1cblxuQG1peGluIGljb24tYnV6eiB7XG5cdEBpbmNsdWRlIGhhY2tzKCk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1yaWdodDogMi4yZW07XG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxmMDE3XCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAxZW07XG5cdFx0cGFkZGluZzogMCAxcHg7XG5cdFx0Zm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1pY29uLWJ1enopO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAuMTVzKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGxpbmVhcik7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiBJY29uIEJ1enogT3V0ICovXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLWJ1enotb3V0KSB7XG5cdDEwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDNweCkgcm90YXRlKDJkZWcpKTtcblx0fVxuXG5cdDIwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZSgtMmRlZykpO1xuXHR9XG5cblx0MzAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoM3B4KSByb3RhdGUoMmRlZykpO1xuXHR9XG5cblx0NDAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLTNweCkgcm90YXRlKC0yZGVnKSk7XG5cdH1cblxuXHQ1MCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgycHgpIHJvdGF0ZSgxZGVnKSk7XG5cdH1cblxuXHQ2MCUge1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgtMnB4KSByb3RhdGUoLTFkZWcpKTtcblx0fVxuXG5cdDcwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDJweCkgcm90YXRlKDFkZWcpKTtcblx0fVxuXG5cdDgwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0ycHgpIHJvdGF0ZSgtMWRlZykpO1xuXHR9XG5cblx0OTAlIHtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoMXB4KSByb3RhdGUoMCkpO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0xcHgpIHJvdGF0ZSgwKSk7XG5cdH1cbn1cblxuQG1peGluIGljb24tYnV6ei1vdXQge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmctcmlnaHQ6IDIuMmVtO1xuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlxcZjAyM1wiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogMWVtO1xuXHRcdHBhZGRpbmc6IDAgMXB4O1xuXHRcdGZvbnQtZmFtaWx5OiBGb250QXdlc29tZTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVooMCkpO1xuXHR9XG5cblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0taWNvbi1idXp6LW91dCk7XG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sIC43NXMpO1xuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgbGluZWFyKTtcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIDEpO1xuXHRcdH1cblx0fVxufVxuIiwiLyogQ3VybCBUb3AgTGVmdCAqL1xuQG1peGluIGN1cmwtdG9wLWxlZnQge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjpiZWZvcmUge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRjb250ZW50OiAnJztcblx0XHRoZWlnaHQ6IDA7XG5cdFx0d2lkdGg6IDA7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0YmFja2dyb3VuZDogJHJldmVhbEFyZWFDb2xvcjsgLyogSUU5ICovXG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuXHRcdFx0MTM1ZGVnLFxuXHRcdFx0JHJldmVhbEFyZWFDb2xvciA0NSUsXG5cdFx0XHQkY3VybExpbmVDb2xvciA1MCUsXG5cdFx0XHQkY3VybFRyYW5zaXRpb25Db2xvciA1NiUsXG5cdFx0XHQkY3VybExhc3RDb2xvciA4MCVcblx0XHQpO1xuXHRcdGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KEdyYWRpZW50VHlwZT0wLHN0YXJ0Q29sb3JzdHI9JyNmZmZmZmYnLCBlbmRDb2xvcnN0cj0nIzAwMDAwMCcpOy8qRm9yIElFNy04LTkqL1xuXG5cdFx0ei1pbmRleDogMTAwMDtcblx0XHRib3gtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKDAsIDAsIDAsIC40KTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIFwid2lkdGgsIGhlaWdodFwiKTtcblx0fVxuXG5cdCY6aG92ZXI6YmVmb3JlLFxuXHQmOmZvY3VzOmJlZm9yZSxcblx0JjphY3RpdmU6YmVmb3JlIHtcblx0XHR3aWR0aDogJGN1cmxXaWR0aDtcblx0XHRoZWlnaHQ6ICRjdXJsSGVpZ2h0O1xuXHR9XG59XG4iLCIvKiBDdXJsIFRvcCBSaWdodCAqL1xuQG1peGluIGN1cmwtdG9wLXJpZ2h0IHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdHdpZHRoOiAwO1xuXHRcdHRvcDogMDtcblx0XHRyaWdodDogMDtcblx0XHRiYWNrZ3JvdW5kOiAkcmV2ZWFsQXJlYUNvbG9yOyAvKiBJRTkgKi9cblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG5cdFx0XHQyMjVkZWcsXG5cdFx0XHQkcmV2ZWFsQXJlYUNvbG9yIDQ1JSxcblx0XHRcdCRjdXJsTGluZUNvbG9yIDUwJSxcblx0XHRcdCRjdXJsVHJhbnNpdGlvbkNvbG9yIDU2JSxcblx0XHRcdCRjdXJsTGFzdENvbG9yIDgwJVxuXHRcdCk7XG5cdFx0Ym94LXNoYWRvdzogLTFweCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgLjQpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgXCJ3aWR0aCwgaGVpZ2h0XCIpO1xuXHR9XG5cblx0Jjpob3ZlcjpiZWZvcmUsXG5cdCY6Zm9jdXM6YmVmb3JlLFxuXHQmOmFjdGl2ZTpiZWZvcmUge1xuXHRcdHdpZHRoOiAkY3VybFdpZHRoO1xuXHRcdGhlaWdodDogJGN1cmxIZWlnaHQ7XG5cdH1cbn1cbiIsIi8qIEN1cmwgQm90dG9tIFJpZ2h0ICovXG5AbWl4aW4gY3VybC1ib3R0b20tcmlnaHQge1xuXHRAaW5jbHVkZSBoYWNrcygpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjpiZWZvcmUge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRjb250ZW50OiAnJztcblx0XHRoZWlnaHQ6IDA7XG5cdFx0d2lkdGg6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJhY2tncm91bmQ6ICRyZXZlYWxBcmVhQ29sb3I7IC8qIElFOSAqL1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcblx0XHRcdDMxNWRlZyxcblx0XHRcdCRyZXZlYWxBcmVhQ29sb3IgNDUlLFxuXHRcdFx0JGN1cmxMaW5lQ29sb3IgNTAlLFxuXHRcdFx0JGN1cmxUcmFuc2l0aW9uQ29sb3IgNTYlLFxuXHRcdFx0JGN1cmxMYXN0Q29sb3IgODAlXG5cdFx0KTtcblx0XHRib3gtc2hhZG93OiAtMXB4IC0xcHggMXB4IHJnYmEoMCwgMCwgMCwgLjQpO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgXCJ3aWR0aCwgaGVpZ2h0XCIpO1xuXHR9XG5cblx0Jjpob3ZlcjpiZWZvcmUsXG5cdCY6Zm9jdXM6YmVmb3JlLFxuXHQmOmFjdGl2ZTpiZWZvcmUge1xuXHRcdHdpZHRoOiAkY3VybFdpZHRoO1xuXHRcdGhlaWdodDogJGN1cmxIZWlnaHQ7XG5cdH1cbn1cbiIsIi8qIEN1cmwgQm90dG9tIExlZnQgKi9cbkBtaXhpbiBjdXJsLWJvdHRvbS1sZWZ0IHtcblx0QGluY2x1ZGUgaGFja3MoKTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdHdpZHRoOiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdGJhY2tncm91bmQ6ICRyZXZlYWxBcmVhQ29sb3I7IC8qIElFOSAqL1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcblx0XHRcdDQ1ZGVnLFxuXHRcdFx0JHJldmVhbEFyZWFDb2xvciA0NSUsXG5cdFx0XHQkY3VybExpbmVDb2xvciA1MCUsXG5cdFx0XHQkY3VybFRyYW5zaXRpb25Db2xvciA1NiUsXG5cdFx0XHQkY3VybExhc3RDb2xvciA4MCVcblx0XHQpO1xuXHRcdGJveC1zaGFkb3c6IDFweCAtMXB4IDFweCByZ2JhKDAsIDAsIDAsIC40KTtcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIFwid2lkdGgsIGhlaWdodFwiKTtcblx0fVxuXG5cdCY6aG92ZXI6YmVmb3JlLFxuXHQmOmZvY3VzOmJlZm9yZSxcblx0JjphY3RpdmU6YmVmb3JlIHtcblx0XHR3aWR0aDogJGN1cmxXaWR0aDtcblx0XHRoZWlnaHQ6ICRjdXJsSGVpZ2h0O1xuXHR9XG59XG4iLCIvLyBTb21lIGdsb2JhbCBkZWZhdWx0cy5cbkBpbXBvcnQgXCJ+bm9ybWFsaXplLnNjc3Mvbm9ybWFsaXplLnNjc3NcIjtcblxuKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8vIFJlbW92ZSBvdXRsaW5lcyB3aGVuIGVsZW1lbnQgYmVjb21lcyBmb2N1cywgbGlrZSBpbnB1dCBmaWVsZHMuXG4qOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQ6ICNmN2Y3Zjc7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbWVkaXVtO1xuICBmb250LXNpemU6ICRmb250LXNpemUtbWVkaXVtO1xuXG4gIEBpbmNsdWRlIGN1c3RvbS1zY3JvbGxiYXIoJGNvbG9yLW1haW4teWVsbG93KTtcbn1cblxuZW0ge1xuICBjb2xvcjogJGNvbG9yLWdyaW5kZXJ5O1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWxpZ2h0O1xufVxuXG5cbnNlY3Rpb24gPiBoMiB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmxhY2s7XG59XG5cbi5ja2VfYm90dG9tLFxuYVtocmVmPVwiL2ZpbHRlci90aXBzXCJdIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLXllbGxvdztcbiAgY29sb3I6ICRjb2xvci13aGl0ZTtcbn1cblxuLmRpdi0taGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmxpbmtzIHtcbiAgJi0tbm8tdW5kZXJsaW5lIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxufVxuXG4ubGlzdCB7XG4gICYtLW5vLWJ1bGxldHMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cblxuICAmLS1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9XG5cbiAgJi0tY2xlYXItZGVmYXVsdHMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi5zaXRlX19jb250ZW50LWN1c3RvbSB7XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xufVxuXG4ucmVzcG9uc2l2ZS1mb250LWZpeCB7XG4gIHdvcmQtc3BhY2luZzogNSU7XG4gIGxpbmUtaGVpZ2h0OiA5MCU7XG59XG5cbi5ib3JkZXItYm90LW1kLXNvbGlkIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkO1xufVxuXG4uc3ZnIHtcbiAgJi0td2hpdGUge1xuICAgIGZpbGw6IHdoaXRlO1xuICB9XG5cbiAgJi0teWVsbG93IHtcbiAgICBmaWxsOiAjZmVjNTI0O1xuICB9XG5cbiAgJi0tYmx1ZSB7XG4gICAgZmlsbDogYmx1ZTtcbiAgfVxuXG4gICYtLWJyb3duIHtcbiAgICBmaWxsOiAjODQ1ZTFmO1xuICB9XG5cbiAgJi0tYmxhY2sge1xuICAgIGZpbGw6IGJsYWNrO1xuICB9XG5cbiAgJi0tZ3JleSB7XG4gICAgZmlsbDogZ3JleTtcbiAgfVxufVxuXG4ucmVzcG9uc2l2ZS1pbWFnZSB7XG4gICYtLXdoaXRlIHtcbiAgICAtd2Via2l0LWZpbHRlcjogaW52ZXJ0KDApO1xuICB9XG5cbiAgJi0tYmxhY2sge1xuICAgIC13ZWJraXQtZmlsdGVyOiBpbnZlcnQoMTAwJSk7XG4gIH1cbn1cblxuLmZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xuXG4gICYtY29sIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgJi1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cblxuICAmLXNwYWNlYXJvdW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgfVxuXG4gICYtc3BhY2ViZXR3ZWVuIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cblxuICAmLWNlbnRlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAmLS1pdGVtcy1jZW50ZXJlZCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG59XG5cbi5nZW5lcmFsLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwIDclO1xufVxuXG4uZmxvYXRpbmctY29udGFpbmVyIHtcblxuICAuZWwge1xuICAgICYtLWxlZnQtNTAge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cblxuICAgICYtLWxlZnQtMjAge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogMjAlO1xuICAgIH1cblxuICAgICYtLWxlZnQtMzAge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogMzAlO1xuICAgIH1cblxuICAgICYtLWxlZnQtNDAge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogNDAlO1xuICAgIH1cblxuICAgICYtLWxlZnQtNzAge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogNzAlO1xuICAgIH1cblxuICAgICYtLXJpZ2h0LTcwIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHdpZHRoOiA2OSU7XG4gICAgfVxuXG4gICAgJi0tcmlnaHQtMzAge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICB9XG5cbiAgICAmLS1yaWdodC04MCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB3aWR0aDogODAlO1xuICAgIH1cblxuICAgICYtLXJpZ2h0LTYwIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHdpZHRoOiA2MCU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NXJlbSkge1xuICAuZ2VuZXJhbC1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZ2UtcGFkZGluZy1tZWRpdW07XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ1cmVtKSB7XG5cbiAgLmdlbmVyYWwtY29udGVudCB7XG4gICAgcGFkZGluZzogMCAkZGVmYXVsdC1wYWdlLXBhZGRpbmctc21hbGw7XG4gIH1cblxuICAudGV4dCB7XG5cbiAgICAmLS1zbWFsbCB7XG4gICAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICB9XG5cbiAgICAmLS14c21hbGwge1xuICAgICAgZm9udC1zaXplOiAwLjZyZW07XG4gICAgfVxuXG4gICAgJi0tbWVkaXVtIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG5cbiAgICAmLS1tbGFyZ2Uge1xuICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgfVxuXG4gICAgJi0tbGFyZ2Uge1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgfVxuXG4gICAgJi0teGxhcmdlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIH1cblxuICAgICYtLXJlc3BvbnNpdmUtbGFyZ2Uge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgfVxuICB9XG5cbiAgLmljb24ge1xuXG4gICAgJi0teHNtYWxsIHtcbiAgICAgIHdpZHRoOiA1cHg7XG4gICAgICBoZWlnaHQ6IDVweDtcbiAgICB9XG5cbiAgICAmLS1zbWFsbCB7XG4gICAgICB3aWR0aDogMTBweDtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICB9XG5cbiAgICAmLS1tc21hbGwge1xuICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgfVxuXG4gICAgJi0tbWVkaXVtIHtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgIH1cblxuICAgICYtLW1sYXJnZSB7XG4gICAgICB3aWR0aDogMjVweDtcbiAgICAgIGhlaWdodDogMjVweDtcbiAgICB9XG5cbiAgICAmLS1sYXJnZSB7XG4gICAgICB3aWR0aDogMzVweDtcbiAgICAgIGhlaWdodDogMzVweDtcbiAgICB9XG4gIH1cblxuICAuZGVsaW1ldGVyIHtcblxuICAgICYtLXNtYWxsIHtcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICB9XG5cbiAgICAmLS1tZWRpdW0ge1xuICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5mbG9hdGluZy1jb250YWluZXIge1xuXG4gICAgLmVsIHtcbiAgICAgICYtLWxlZnQtNTAge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgICYtLWxlZnQtMjAge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgICYtLWxlZnQtMzAge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgICYtLWxlZnQtNDAge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgICYtLWxlZnQtNzAge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgICYtLXJpZ2h0LTgwIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAmLS1yaWdodC0zMCB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgJi0tcmlnaHQtNjAge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgICYtLXJpZ2h0LTcwIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi5jb250YWluZXIsIC5jb250YWluZXItZmx1aWQge1xuICBAaW5jbHVkZSBtZWRpYS1yZXNwb25zaXZlLWxheW91dC1tZigkbWVkaWEtYnJlYWtwb2ludC1tZWRpdW0pIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgLnJvdyB7XG4gICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbi51LW5vLXBhZCB7XG4gICYtLWFsbCB7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgJi0tbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmLS1yaWdodCB7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi53ZWJmb3JtLXRpdGxlIHtcblxuICBAaW5jbHVkZSBtZWRpYS1yZXNwb25zaXZlLWxheW91dChzbWFsbCkge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuXG4gICYtLWFjdGl2ZSB7XG5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4udGFibGUuYnQgdGZvb3QgdGg6YmVmb3JlLFxudGFibGUuYnQgdGZvb3QgdGQ6YmVmb3JlLFxudGFibGUuYnQgdGJvZHkgdGQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yLW1haW4tYmx1ZTtcbiAgLy9ib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRncmF5O1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogNHB4IDE2cHg7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG50YWJsZS5idCB7XG4gIHRib2R5IHRkIHtcbiAgICBmb250LXNpemU6IC44MTI1cmVtO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgfVxuXG4gIHRyIHRkIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGUtMjtcbiAgICBjb2xvcjogIzk5OTk5OTtcbiAgfVxuXG4gIHRyOm50aC1vZi10eXBlKDJuKzIpIHRkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICB9XG59XG4iLCIvKiEgbm9ybWFsaXplLnNjc3MgdjAuMS4wIHwgTUlUIExpY2Vuc2UgfCBiYXNlZCBvbiBnaXQuaW8vbm9ybWFsaXplICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi8vIFNvbWUgbGlicy5cbi8vIEdyaWQgc3lzdGVtLCBodHRwczovL2dpdGh1Yi5jb20vYXQtaW1wb3J0L1Npbmd1bGFyaXR5XG5AaW1wb3J0IFwifnNpbmd1bGFyaXR5Z3Mvc3R5bGVzaGVldHMvc2luZ3VsYXJpdHlnc1wiO1xuLy8gQSBjbGVhbmVyIHdheSB0byBkbyBicmVha3BvaW50cy9tZWRpYSBxdWVyaWVzLCBodHRwOi8vYnJlYWtwb2ludC1zYXNzLmNvbS9cbkBpbXBvcnQgXCJ+YnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnRcIjtcbi8vIEEgY2xlYW5lciB3YXkgdG8gZG8gYnJlYWtwb2ludHMvbWVkaWEgcXVlcmllcywgaHR0cDovL2JyZWFrcG9pbnQtc2Fzcy5jb20vXG4vLyBIZWxwZnVsIG1peGlucywgaHR0cDovL2JvdXJib24uaW8vZG9jcy9cbkBpbXBvcnQgXCJ+Ym91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2JvdXJib25cIjtcbi8vIEVuZCBsaWJzLlxuXG4vLyBTb21lIGdsb2JhbCBjb25maWcgZm9yIHRoZSBsaWJyYXJpZXMgdXNlZC5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2U7XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJFNpbmd1bGFyaXR5LVNldHRpbmdzOiAoXG4gICdncmlkcyc6ICgtMXB4OiAxMiksXG4gICdndXR0ZXJzJzogKC0xcHg6IC4yNSksXG4gICdndXR0ZXIgc3R5bGVzJzogKC0xcHg6ICdvcHBvc2l0ZScpLFxuICAnb3V0cHV0JzogJ2lzb2xhdGlvbicsXG4gICdkaXJlY3Rpb24nOiAnbHRyJyxcbiAgJ21vYmlsZSBmaXJzdCc6IHRydWUsXG4gICdpbmNsdWRlIGJvcmRlciBib3gnOiBmYWxzZSxcbiAgJ2luY2x1ZGUgY2xlYXJmaXgnOiBmYWxzZSxcbiAgJ2JhY2tncm91bmQgZ3JpZCBjb2xvcic6IGNob2NvbGF0ZSxcbiAgJ2FzeW1tZXRyaWMgb3V0cHV0JzogJ2lzb2xhdGlvbicsXG4gICdjYWxjIGluY2x1ZGUgbWluLXdpZHRoJzogdHJ1ZSxcbiAgJ2RlYnVnJzogZmFsc2Vcbik7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVXNlciBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kc2luZ3VsYXJpdHk6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBHZW5lcmFsIEhlbHBlcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmd1bGFyaXR5Z3MvaGVscGVyc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBMYW5ndWFnZSBIZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJzaW5ndWxhcml0eWdzL2xhbmd1YWdlXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IE1hdGhcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmd1bGFyaXR5Z3MvbWF0aFwiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBHcmlkIEhlbHBlcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmd1bGFyaXR5Z3MvZ3JpZHNcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgR3V0dGVycyBIZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJzaW5ndWxhcml0eWdzL2d1dHRlcnNcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgR3V0dGVyIFN0eWxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwic2luZ3VsYXJpdHlncy9ndXR0ZXItc3R5bGVzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IEFQSXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmd1bGFyaXR5Z3MvYXBpXCI7IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTZXR0aW5nIEhlbHBlcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImhlbHBlcnMvc2V0dGluZ3NcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2RlIEhlbHBlcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImhlbHBlcnMvZmluZFwiO1xuQGltcG9ydCBcImhlbHBlcnMvc2Fzcy1saXN0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvY29sdW1uc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc3Bhbi1zaGFyZWRcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbnNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NvcnRcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVSSBIZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJoZWxwZXJzL2JhY2tncm91bmQtZ3JpZFwiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIExheW91dCBIZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJoZWxwZXJzL2xheW91dFwiOyIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGFzIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHNncy1oYXMoJHNldHRpbmcpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRzaW5ndWxhcml0eSwgJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHNncy1nZXQoJHNldHRpbmcpIHtcbiAgQGlmIHNncy1oYXMoJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHNpbmd1bGFyaXR5LCAkc2V0dGluZyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkU2luZ3VsYXJpdHktU2V0dGluZ3MsICRzZXR0aW5nKTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNldCBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gc2dzLXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpZiAoc3RyLWluZGV4KCRzZXR0aW5nLCAnLScpIG9yIHN0ci1pbmRleCgkc2V0dGluZywgJ18nKSkgYW5kIHN0ci1pbmRleCgkc2V0dGluZywgJyAnKSA9PSBudWxsIHtcbiAgICBAd2FybiBcIldvcmRzIGluIFNpbmd1bGFyaXR5IHNldHRpbmdzIHNob3VsZCBiZSBzcGFjZXMsIG5vdCBkYXNoZXMgb3IgdW5kZXJzY29yZXMuIFBsZWFzZSByZXBsYWNlIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMgYmV0d2VlbiB3b3JkcyB3aXRoIHNwYWNlcy4gU2V0dGluZ3Mgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZCB1bnRpbCBjaGFuZ2VkLlwiO1xuICB9XG4gICRzaW5ndWxhcml0eTogbWFwLW1lcmdlKCRzaW5ndWxhcml0eSwgKCRzZXR0aW5nOiAkdmFsdWUpKSAhZ2xvYmFsO1xuICBAcmV0dXJuIHRydWU7XG59XG5cbkBtaXhpbiBzZ3MtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgJHNncy1jaGFuZ2U6IHNncy1zZXQoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBzZ3Mtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgc2dzLWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZW1vdmUgU2V0dGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gc2dzLXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMSB7XG4gICAgJHNldHRpbmdzOiBudGgoJHNldHRpbmdzLCAxKTtcbiAgfVxuXG4gIEBlYWNoICRzZXR0aW5nIGluICRzZXR0aW5ncyB7XG4gICAgJHNpbmd1bGFyaXR5OiBtYXAtcmVtb3ZlKCRzaW5ndWxhcml0eSwgJHNldHRpbmcpICFnbG9iYWw7XG4gIH1cbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gc2dzLXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICAkc2dzLXJlc2V0OiBzZ3MtcmVzZXQoJHNldHRpbmdzKTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbmQgT2JqZWN0IEtleXNcbi8vXG4vLyBSZXR1cm5zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBmaW5kLW9iamVjdC1rZXlzKCRoYXlzdGFjaykge1xuICAkS2V5czogbWFwLWtleXMoJGhheXN0YWNrKTtcbiAgJExpc3Q6ICgpO1xuICBAZWFjaCAkS2V5IGluICRLZXlzIHtcbiAgICBAaWYgJEtleSAhPSAtMXB4IHtcbiAgICAgIEBpZiB1bml0KCRLZXkpID09ICdlbScge1xuICAgICAgICAkS2V5OiAkS2V5IC8gMWVtICogMTZweDtcbiAgICAgIH1cbiAgICAgICRMaXN0OiBhcHBlbmQoJExpc3QsICRLZXkpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIHF1aWNrc29ydCgkTGlzdCk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmluZCBPYmplY3Rcbi8vXG4vLyBGaW5kcyByZWxldmFudCBvYmplY3Rcbi8vIE11c3QgYmUgdXNpbmcgQnJlYWtwb2ludCB0byB3b3JrIHByb3Blcmx5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBmaW5kLW9iamVjdCgkaGF5c3RhY2ssICR1c2VyLW9iamVjdDogbnVsbCkge1xuICAvLyBJZiBhIHVzZXIgb2JqZWN0IGhhcyBiZWVuIHBhc3NlZCBpbiwgYnlwYXNzIHRoZSB3aG9sZSBmdW5jdGlvbiBhbmQganVzdCByZXR1cm4gdGhhdCBvYmplY3QuXG4gIEBpZiAkdXNlci1vYmplY3QgIT0gbnVsbCBhbmQgJHVzZXItb2JqZWN0ICE9IGZhbHNlIHtcbiAgICBAcmV0dXJuICR1c2VyLW9iamVjdDtcbiAgfVxuXG4gICRMZW5ndGg6IGxlbmd0aCgkaGF5c3RhY2spO1xuICAkTW9iaWxlLUZpcnN0OiBzZ3MtZ2V0KCdtb2JpbGUgZmlyc3QnKTtcblxuICAvLyBIYXlzdGFjayBtdXN0IGJlIG1hcFxuICBAaWYgdHlwZS1vZigkaGF5c3RhY2spICE9ICdtYXAnIHtcbiAgICBAd2FybiBcIkRFUFJFQ0FUSU9OOiBJbiBvcmRlciB0byByZW1vdmUgZ2xvYmFsIHZhcmlhYmxlIG5hbWluZyBjb25mbGljdHMsIFNpbmd1bGFyaXR5J3Mgc2V0dGluZ3MgaGF2ZSBiZWVuIG1vdmVkIGludG8gdGhlIHNpbmdsZSBgJHNpbmd1bGFyaXR5YCB2YXJpYWJsZS4gUGxlYXNlIHJlZmVyIHRvIG91ciBkb2N1bWVudGF0aW9uIChodHRwczovL2dpdGh1Yi5jb20vVGVhbS1TYXNzL1Npbmd1bGFyaXR5L3dpa2kpIG9uIGhvdyB0byB1cGRhdGUgeW91ciBzZXR0aW5ncy4gSW4gdGhlIG5leHQgdmVyc2lvbiBvZiBTaW5ndWxhcml0eSwgdGhpcyB3YXJuaW5nIHdpbGwgYmUgcmVtb3ZlZC4gI3tudGgoJGhheXN0YWNrLCAxKX0gaGFzIGJlZW4gcmV0dXJuZWQuXCI7XG4gICAgQHJldHVybiBudGgoJGhheXN0YWNrLCAxKTtcbiAgfVxuXG4gIEBpZiAkTGVuZ3RoID4gMSB7XG4gICAgLy8gR3JhYiBCcmVha3BvaW50IENvbnRleHRcbiAgICBAaWYgbm90IGZ1bmN0aW9uLWV4aXN0cyhicmVha3BvaW50LWdldC1jb250ZXh0KSB7XG4gICAgICBAd2FybiBcIlJlc3BvbnNpdmUgY29udGV4dHMgcmVxdWlyZSBCcmVha3BvaW50IChodHRwczovL2dpdGh1Yi5jb20vVGVhbS1TYXNzL2JyZWFrcG9pbnQpLiBQbGVhc2UgZW5zdXJlIHRoYXQgQnJlYWtwb2ludCBpcyBpbXBvcnRlZCBhbmQgYXZhaWxhYmxlIGZvciBTaW5ndWxhcml0eSB0byB1c2UuIEZpcnN0IGl0ZW0gdXNlZC5cIjtcbiAgICAgIEByZXR1cm4gbWFwLWdldCgkaGF5c3RhY2ssIC0xcHgpO1xuICAgIH1cbiAgICAvLyBHZXQgQnJlYWtwb2ludCBDb250ZXh0c1xuICAgICRRdWVyeS1NaW46IGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJ21pbi13aWR0aCcpO1xuICAgICRRdWVyeS1NYXg6IGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJ21heC13aWR0aCcpO1xuXG4gICAgQGlmIGxlbmd0aCgkUXVlcnktTWluKSA9PSAxIHtcbiAgICAgICRRdWVyeS1NaW46IG50aCgkUXVlcnktTWluLCAxKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgbGVuZ3RoKCRRdWVyeS1NaW4pID4gMSB7XG4gICAgICBAd2FybiBcIlJlc3BvbnNpdmUgY29udGV4dHMgYXJlIG5vdCBhdmFpbGFibGUgZm9yIGBvcmAgcXVlcmllcyBhcyB3aGljaCBxdWVyeSB0byB1c2UgaXMgYW1iaWd1b3VzLiBQbGVhc2Ugb25seSB1c2Ugc2luZ2xlIGNvbnRleHQgcXVlcmllcy4gRGVmYXVsdCBjb250ZXh0IGlzIHVzZWQuXCI7XG4gICAgICBAcmV0dXJuIG1hcC1nZXQoJGhheXN0YWNrLCAtMXB4KTtcbiAgICB9XG5cblxuICAgIEBpZiBsZW5ndGgoJFF1ZXJ5LU1heCkgPT0gMSB7XG4gICAgICAkUXVlcnktTWF4OiBudGgoJFF1ZXJ5LU1heCwgMSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIGxlbmd0aCgkUXVlcnktTWF4KSA+IDEge1xuICAgICAgQHdhcm4gXCJSZXNwb25zaXZlIGNvbnRleHRzIGFyZSBub3QgYXZhaWxhYmxlIGZvciBgb3JgIHF1ZXJpZXMgYXMgd2hpY2ggcXVlcnkgdG8gdXNlIGlzIGFtYmlndW91cy4gUGxlYXNlIG9ubHkgdXNlIHNpbmdsZSBjb250ZXh0IHF1ZXJpZXMuIERlZmF1bHQgY29udGV4dCBpcyB1c2VkLlwiO1xuICAgICAgQHJldHVybiBtYXAtZ2V0KCRoYXlzdGFjaywgLTFweCk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgaXMgbm8gbWluIG9yIG1heCBjb250ZXh0LCByZXR1cm4gZmlyc3QgaXRlbVxuICAgIEBpZiAkUXVlcnktTWluID09IGZhbHNlIGFuZCAkUXVlcnktTWF4ID09IGZhbHNlIHtcbiAgICAgICRSRVRVUk46IG1hcC1nZXQoJGhheXN0YWNrLCAtMXB4KTtcbiAgICAgIEByZXR1cm4gJFJFVFVSTjtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IHRvIFBYXG4gICAgQGlmICRRdWVyeS1NaW4gIT0gZmFsc2UgYW5kICB1bml0KCRRdWVyeS1NaW4pID09ICdlbScge1xuICAgICAgJFF1ZXJ5LU1pbjogJFF1ZXJ5LU1pbiAvIDFlbSAqIDE2cHg7XG4gICAgfVxuICAgIEBpZiAkUXVlcnktTWF4ICE9IGZhbHNlIGFuZCB1bml0KCRRdWVyeS1NYXgpID09ICdlbScge1xuICAgICAgJFF1ZXJ5LU1heDogJFF1ZXJ5LU1heCAvIDFlbSAqIDE2cHg7XG4gICAgfVxuXG4gICAgJEZpbmQtSGF5c3RhY2s6IGZpbmQtb2JqZWN0LWtleXMoJGhheXN0YWNrKTtcbiAgICAkUmV2ZXJzZS1IYXlzdGFjazogcmV2ZXJzZSgkRmluZC1IYXlzdGFjayk7XG5cbiAgICAkU21hbGxlc3Q6IG50aCgkRmluZC1IYXlzdGFjaywgMSk7XG4gICAgJExhcmdlc3Q6IG50aCgkUmV2ZXJzZS1IYXlzdGFjaywgMSk7XG4gICAgJENvbnRleHQ6ICRRdWVyeS1NaW47XG5cbiAgICBAaWYgbm90ICRNb2JpbGUtRmlyc3Qge1xuICAgICAgJENvbnRleHQ6ICRRdWVyeS1NYXg7XG4gICAgfVxuXG4gICAgLy8gTG9vcCBvdmVyIGVhY2ggaXRlbSBpbiBDb250ZXh0IHRvIGZpbmQgaWYgYW55IG9mIHRoZSBpdGVtcyBwYXNzLlxuICAgIEBlYWNoICRRdWVyeS1Db250ZXh0IGluICRDb250ZXh0IHtcbiAgICAgIEBpZiAkUXVlcnktQ29udGV4dCAhPSBmYWxzZSB7XG4gICAgICAgIC8vIElmIGl0J3Mgc21hbGxlc3QgdGhhbiB0aGUgc21hbGxlc3QgTVEsIHVzZSB0aGUgMXN0IGdyaWRcbiAgICAgICAgQGlmICRRdWVyeS1Db250ZXh0IDwgJFNtYWxsZXN0IHtcbiAgICAgICAgICAkUkVUVVJOOiBtYXAtZ2V0KCRoYXlzdGFjaywgLTFweCk7XG4gICAgICAgICAgQHJldHVybiAkUkVUVVJOO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIGl0J3MgbGFyZ2VyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGxhcmdlc3QgTVEsIHVzZSB0aGUgbGFzdCBncmlkXG4gICAgICAgIEBlbHNlIGlmICRRdWVyeS1Db250ZXh0ID49ICRMYXJnZXN0IHtcbiAgICAgICAgICAkUkVUVVJOOiBtYXAtZ2V0KCRoYXlzdGFjaywgJExhcmdlc3QpO1xuICAgICAgICAgIEByZXR1cm4gJFJFVFVSTjtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBpdCdzIGluIGJldHdlZW4gdGhlIHNtYWxsZXN0IGFuZCBsYXJnZXN0LCBnbyBydW4gYSBjaGVjay5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIE1RLlxuICAgICAgICAgIEBmb3IgJGogZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRSZXZlcnNlLUhheXN0YWNrKSB7XG4gICAgICAgICAgICAkUXVlcnk6IG50aCgkUmV2ZXJzZS1IYXlzdGFjaywgJGopO1xuXG4gICAgICAgICAgICAvLyBJZiB0aGUgTVEgaXMgZ3JlYXRoZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgdGhlIE1RIGluIHF1ZXN0aW9uLCB1c2UgaXQhIChtb2JpbGUgZmlyc3QpXG4gICAgICAgICAgICBAaWYgKCRNb2JpbGUtRmlyc3QpIHtcbiAgICAgICAgICAgICAgQGlmICRRdWVyeS1Db250ZXh0ID49ICRRdWVyeSB7XG4gICAgICAgICAgICAgICAgJFJFVFVSTjogbWFwLWdldCgkaGF5c3RhY2ssIG50aCgkUmV2ZXJzZS1IYXlzdGFjaywgJGopKTtcbiAgICAgICAgICAgICAgICBAcmV0dXJuICRSRVRVUk47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZSBNUSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHRoZSBNUSBpbiBxdWVzdGlvbiwgdXNlIGl0ISAobm90IG1vYmlsZSBmaXJzdClcbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgQGlmICRRdWVyeS1Db250ZXh0IDw9ICRRdWVyeSB7XG4gICAgICAgICAgICAgICAgJFJFVFVSTjogbWFwLWdldCgkaGF5c3RhY2ssIG50aCgkUmV2ZXJzZS1IYXlzdGFjaywgJGopKTtcbiAgICAgICAgICAgICAgICBAcmV0dXJuICRSRVRVUk47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gQWxsIGVsc2UgZmFpbHMsIHJldHVybiB0aGUgZmlyc3QgaXRlbVxuICBAZWxzZSB7XG4gICAgJFJFVFVSTjogbWFwLWdldCgkaGF5c3RhY2ssIC0xcHgpO1xuICAgIEByZXR1cm4gJFJFVFVSTjtcbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTYXNzIExpc3QgSGVscGVyc1xuLy9cbi8vIC0gbGlzdC1zdW0oKVxuLy8gLSBxdWVyeS1saXN0KClcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGdW5jdGlvbnNcblxuLy8gUmV0dXJuIHRoZSBzdW0gb2YgYWxsIGl0ZW1zIGluIGEgbGlzdC5cbi8vXG4vLyBsaXN0LXN1bSgkbGlzdClcbi8vIC0gJGxpc3QgIDogPGxpc3Q+XG5AZnVuY3Rpb24gbGlzdC1zdW0oJGxpc3QpIHtcbiAgJHN1bTogMDtcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgICRzdW06ICRzdW0gKyAkaXRlbTtcbiAgfVxuICBAcmV0dXJuICRzdW07XG59XG5cbi8vIFJldHVybiBsaXN0IG9mIGluZGV4IGxvY2F0aW9ucyB3aGVyZSBhIHF1ZXJ5IGFwcGVhcnMgaW4gYSBsaXN0LFxuLy8gaW5jbHVkaW5nIHVuaXQgcXVlcmllcy5cbi8vXG4vLyBxdWVyeS1saXN0KCRsaXN0LCAkcXVlcnkgWywgJG1vZGVdKVxuLy8gLSAkbGlzdCAgICA6IDxsaXN0PlxuLy8gLSAkcXVlcnkgICA6IDxhbnl0aGluZz5cbi8vIC0gJG1vZGUgICAgOiBub25lIHwgdW5pdFxuLy8gICAgICAgICAgICAtIFwibm9uZVwiIChkZWZhdWx0KSBydW5zIGEgc3RhbmRhcmQgcXVlcnkuXG4vLyAgICAgICAgICAgIC0gXCJ1bml0XCIgZmluZHMgYWxsIGl0ZW1zIHdpdGggdGhlIHNhbWUgdW5pdC5cbkBmdW5jdGlvbiBxdWVyeS1saXN0KFxuICAkbGlzdCxcbiAgJHF1ZXJ5LFxuICAkbW9kZTogbm9uZVxuKSB7XG4gICRyZXR1cm46ICgpO1xuXG4gIC8vIGxvb3AgdGhyb3VnaCAkbGlzdFxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkbGlzdCkge1xuICAgIEBpZiAkbW9kZSA9PSB1bml0IHtcbiAgICAgIC8vIGlmIHRoZSBsaXN0IGl0ZW0gbWF0Y2hlcyB0aGUgcXVlcnksIHdyaXRlIHdoZXJlIGl0IGlzIHRvIHRoZSBsaXN0LlxuICAgICAgQGlmIHVuaXQobnRoKCRsaXN0LCAkaSkpID09ICRxdWVyeSB7XG4gICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCAkaSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIGlmIHRoZSBsaXN0IGl0ZW0gbWF0Y2hlcyB0aGUgcXVlcnksIHdyaXRlIHdoZXJlIGl0IGlzIHRvIHRoZSBsaXN0LlxuICAgICAgQGlmIG50aChudGgoJGxpc3QsICRpKSwgMSkgPT0gJHF1ZXJ5IHtcbiAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sICRpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBpZiBub3RoaW5nIG1hdGNoZXMgdGhlbiByZXR1cm4gZmFsc2UuXG4gIEBpZiAkcmV0dXJuID09ICgpIHtcbiAgICAkcmV0dXJuOiBmYWxzZTtcbiAgfVxuXG4gIC8vIHJldHVybiBsaXN0LlxuICBAcmV0dXJuICRyZXR1cm47XG59XG5cbi8vIFJldmVyc2VzIGRpcmVjdGlvbiBvZiBhIGxpc3RcbkBmdW5jdGlvbiByZXZlcnNlKCRsaXN0KSB7XG4gICRsZW5ndGg6IGxlbmd0aCgkbGlzdCk7XG4gICRyZXR1cm46ICgpO1xuICBAZm9yICRpIGZyb20gMCB0byAkbGVuZ3RoIHtcbiAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgbnRoKCRsaXN0LCAkbGVuZ3RoIC0gJGkpKTtcbiAgfVxuICBAcmV0dXJuICRyZXR1cm47XG59IiwiQGZ1bmN0aW9uIGVuZC1yb3coJHNwYW4sICRsb2NhdGlvbiwgJGNvbHVtbnMpIHtcbiAgQGlmICRsb2NhdGlvbiA9PSAnbGFzdCcgb3IgJGxvY2F0aW9uID09ICdvbWVnYScge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICRsb2NhdGlvbiArICgkc3BhbiAtIDEpID09IGNvbHVtbi1jb3VudCgkY29sdW1ucykge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5AZnVuY3Rpb24gc3RhcnQtcm93KCRsb2NhdGlvbikge1xuICBAaWYgJGxvY2F0aW9uID09ICdmaXJzdCcgb3IgJGxvY2F0aW9uID09ICdhbHBoYScge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSBpZiAkbG9jYXRpb24gPT0gMSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59IiwiQG1peGluIHNwYW4tc2hhcmVkIHtcbiAgJGluY2x1ZGUtYm9yZGVyLWJveDogc2dzLWdldCgnaW5jbHVkZSBib3JkZXIgYm94Jyk7XG4gICRpbmNsdWRlLWNsZWFyZml4OiBzZ3MtZ2V0KCdpbmNsdWRlIGNsZWFyZml4Jyk7XG5cbiAgQGlmICRpbmNsdWRlLWJvcmRlci1ib3gge1xuICAgIEBpZiBtaXhpbi1leGlzdHMoYm94LXNpemluZykge1xuICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gIH1cblxuICBAaWYgJGluY2x1ZGUtY2xlYXJmaXgge1xuICAgIEBpZiBtaXhpbi1leGlzdHMoY2xlYXJmaXgpIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmluZCBPcHBvc2l0ZSBEaXJlY3Rpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIG9wcG9zaXRlLWRpcmVjdGlvbigkZGlyKSB7XG4gIEBpZiAkZGlyID09ICdsZWZ0JyB7XG4gICAgQHJldHVybiByaWdodDtcbiAgfVxuICBAZWxzZSBpZiAgJGRpciA9PSAncmlnaHQnIHtcbiAgICBAcmV0dXJuIGxlZnQ7XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSAnbHRyJyB7XG4gICAgQHJldHVybiBydGw7XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSAncnRsJyB7XG4gICAgQHJldHVybiBsdHI7XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSAndG9wJyB7XG4gICAgQHJldHVybiBib3R0b207XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSAnYm90dG9tJyB7XG4gICAgQHJldHVybiB0b3A7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiI3skZGlyfSBpcyBub3QgYSBkaXJlY3Rpb24hIE1ha2Ugc3VyZSB5b3VyIGRpcmVjdGlvbiBpcyBhbGwgbG93ZXJjYXNlIVwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGaW5kIERpcmVjdGlvbiBOYW1lXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBuYW1lZC1kaXJlY3Rpb24oJGRpcikge1xuICBAaWYgJGRpciA9PSAnbHRyJyB7XG4gICAgQHJldHVybiBsZWZ0O1xuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gJ3J0bCcge1xuICAgIEByZXR1cm4gcmlnaHQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiI3skZGlyfSBpcyBub3QgYSB2YWxpZCBIVE1MIGRpcmVjdGlvbiEgTWFrZSBzdXJlIHlvdSBhcmUgdXNpbmcgYSB2YWxpZCBIVE1MIGRpcmVjdGlvblwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFF1aWNrc29ydFxuLy8gaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL1NvcnRpbmdfYWxnb3JpdGhtcy9RdWlja3NvcnRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHF1aWNrc29ydCgkbGlzdCkge1xuXG4gICRRUy1MZXNzOiAoKTtcbiAgJFFTLUVxdWFsOiAoKTtcbiAgJFFTLUxhcmdlOiAoKTtcblxuICAkUVMtTGVuZ3RoOiBsZW5ndGgoJGxpc3QpO1xuXG4gICRRUy1TZWVkOiByb3VuZCgkUVMtTGVuZ3RoIC8gMik7XG5cbiAgQGlmICRRUy1MZW5ndGggPiAxIHtcbiAgICAkUVMtU2VlZDogbnRoKCRsaXN0LCAkUVMtU2VlZCk7XG4gICAgQGVhY2ggJEl0ZW0gaW4gJGxpc3Qge1xuICAgICAgQGlmICRJdGVtIDwgJFFTLVNlZWQge1xuICAgICAgICAkUVMtTGVzczogYXBwZW5kKCRRUy1MZXNzLCAkSXRlbSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkSXRlbSA9PSAkUVMtU2VlZCB7XG4gICAgICAgICRRUy1FcXVhbDogYXBwZW5kKCRRUy1FcXVhbCwgJEl0ZW0pO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkUVMtTGFyZ2U6IGFwcGVuZCgkUVMtTGFyZ2UsICRJdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJFFTLUxlc3M6IHF1aWNrc29ydCgkUVMtTGVzcyk7XG4gICAgJFFTLUxhcmdlOiBxdWlja3NvcnQoJFFTLUxhcmdlKTtcblxuICAgICRRUy1SZXR1cm46IGpvaW4oJFFTLUxlc3MsICRRUy1FcXVhbCk7XG4gICAgJFFTLVJldHVybjogam9pbigkUVMtUmV0dXJuLCAkUVMtTGFyZ2UpO1xuXG4gICAgQHJldHVybiAkUVMtUmV0dXJuO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTb3J0IE1hcCBmdW5jdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gc29ydC1tYXAoJG1hcCwgJHJldmVyc2U6IGZhbHNlKSB7XG4gICRTb3J0LU1hcC1LZXlzOiBxdWlja3NvcnQobWFwLWtleXMoJG1hcCkpO1xuICAkU29ydC1NYXAtTWFwOiAoKTtcblxuICBAaWYgJHJldmVyc2Uge1xuICAgICRTb3J0LU1hcC1LZXlzOiByZXZlcnNlKCRTb3J0LU1hcC1LZXlzKTtcbiAgfVxuXG4gIEBlYWNoICRrZXkgaW4gJFNvcnQtTWFwLUtleXMge1xuICAgICRTb3J0LU1hcC1NYXA6IG1hcC1tZXJnZSgkU29ydC1NYXAtTWFwLCAoJGtleTogbWFwLWdldCgkbWFwLCAka2V5KSkpO1xuICB9XG5cbiAgQHJldHVybiAkU29ydC1NYXAtTWFwO1xufSIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHcmlkIEJhY2tncm91bmRcblxuQG1peGluIGJhY2tncm91bmQtZ3JpZChcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRndXR0ZXI6IG51bGwsXG4gICRndXR0ZXItc3R5bGU6IG51bGwsXG4gICRjb2xvcjogbnVsbFxuKSB7XG5cbiAgJGNvbG9yOiBpZigkY29sb3IgIT0gbnVsbCwgJGNvbG9yLCBzZ3MtZ2V0KCdiYWNrZ3JvdW5kIGdyaWQgY29sb3InKSk7XG5cbiAgQGlmIHNncy1nZXQoJ2RlYnVnJykgIT0gZmFsc2Uge1xuICAgICRjb2x1bW5zOiBpZigkY29sdW1ucyAhPSBudWxsLCAkY29sdW1ucywgc2dzLWdldCgnZ3JpZHMnKSk7XG4gICAgJGd1dHRlcjogaWYoJGd1dHRlciAhPSBudWxsLCAkZ3V0dGVyLCBzZ3MtZ2V0KCdndXR0ZXJzJykpO1xuICAgICRndXR0ZXItc3R5bGU6IGlmKCRndXR0ZXItc3R5bGUgIT0gbnVsbCwgJGd1dHRlci1zdHlsZSwgc2dzLWdldCgnZ3V0dGVyIHN0eWxlcycpKTtcblxuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtYnVpbGQoJGNvbHVtbnMsICRndXR0ZXIsICRndXR0ZXItc3R5bGUsICRjb2xvcilcbiAgfVxufVxuXG5AZnVuY3Rpb24gYmFja2dyb3VuZC1tYXAoJGNvbHVtbnMsICRndXR0ZXJzLCAkZ3V0dGVyLXN0eWxlcykge1xuICAkR3JpZHM6ICgpO1xuICAkR3V0dGVyczogKCk7XG4gICRTdHlsZXM6ICgpO1xuXG4gIEBpZiAkY29sdW1ucyBhbmQgdHlwZS1vZigkY29sdW1ucykgIT0gJ21hcCcge1xuICAgICRHcmlkczogKC0xcHg6ICRjb2x1bW5zKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJEdyaWRzOiBzZ3MtZ2V0KCdncmlkcycpO1xuICB9XG5cbiAgQGlmICRndXR0ZXJzIGFuZCB0eXBlLW9mKCRndXR0ZXJzKSAhPSAnbWFwJyB7XG4gICAgJEd1dHRlcnM6ICgtMXB4OiAkZ3V0dGVycyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRHdXR0ZXJzOiBzZ3MtZ2V0KCdndXR0ZXJzJyk7XG4gIH1cblxuICBAaWYgJGd1dHRlci1zdHlsZXMgYW5kIHR5cGUtb2YoJGd1dHRlci1zdHlsZXMpICE9ICdtYXAnIHtcbiAgICAkU3R5bGVzOiAoLTFweDogJGd1dHRlci1zdHlsZXMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkU3R5bGVzOiBzZ3MtZ2V0KCdndXR0ZXIgc3R5bGVzJyk7XG4gIH1cblxuICAvLyBCdWlsZCAxc3QgRGVwdGggTWFwXG4gICRIb2xkZXI6ICgpO1xuXG4gIC8vIEdyaWRzXG4gIEBlYWNoICRrLCAkdiBpbiAkR3JpZHMge1xuICAgICRIb2xkZXI6IG1hcC1tZXJnZSgkSG9sZGVyLCAoJGs6ICgnZ3JpZCc6ICR2KSkpO1xuICB9XG4gIC8vIEd1dHRlcnNcbiAgQGVhY2ggJGssICR2IGluICRHdXR0ZXJzIHtcbiAgICAkR3JpZDogbWFwLWdldCgkSG9sZGVyLCAkayk7XG5cbiAgICAkTWFwOiAoJ2d1dHRlcic6ICR2KTtcbiAgICBAaWYgJEdyaWQgIT0gbnVsbCB7XG4gICAgICAkR3JpZDogbWFwLWdldCgkR3JpZCwgJ2dyaWQnKTtcbiAgICAgIEBpZiAkR3JpZCAhPSBudWxsIHtcbiAgICAgICAgJE1hcDogbWFwLW1lcmdlKCRNYXAsICgnZ3JpZCc6ICRHcmlkKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJEhvbGRlcjogbWFwLW1lcmdlKCRIb2xkZXIsICgkazogJE1hcCkpO1xuICB9XG4gIC8vIFN0eWxlXG4gIEBlYWNoICRrLCAkdiBpbiAkU3R5bGVzIHtcbiAgICAkR3JpZDogbWFwLWdldCgkSG9sZGVyLCAkayk7XG4gICAgJEd1dHRlcjogbWFwLWdldCgkSG9sZGVyLCAkayk7XG5cbiAgICAkTWFwOiAoJ3N0eWxlJzogJHYpO1xuICAgIEBpZiAkR3JpZCAhPSBudWxsIHtcbiAgICAgICRHcmlkOiBtYXAtZ2V0KCRHcmlkLCAnZ3JpZCcpO1xuICAgICAgQGlmICRHcmlkICE9IG51bGwge1xuICAgICAgICAkTWFwOiBtYXAtbWVyZ2UoJE1hcCwgKCdncmlkJzogJEdyaWQpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGlmICRHdXR0ZXIgIT0gbnVsbCB7XG4gICAgICAkR3V0dGVyOiBtYXAtZ2V0KCRHdXR0ZXIsICdndXR0ZXInKTtcbiAgICAgIEBpZiAkR3V0dGVyICE9IG51bGwge1xuICAgICAgICAkTWFwOiBtYXAtbWVyZ2UoJE1hcCwgKCdndXR0ZXInOiAkR3V0dGVyKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJEhvbGRlcjogbWFwLW1lcmdlKCRIb2xkZXIsICgkazogJE1hcCkpO1xuICB9XG5cbiAgJEhvbGRlcjogc29ydC1tYXAoJEhvbGRlcik7XG4gICRSZXR1cm46ICgpO1xuXG4gIC8vIEJ1aWxkIGZ1bGwgc3RhY2sgZm9yIGVhY2ggYnJlYWtwb2ludFxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkSG9sZGVyKSB7XG4gICAgJEtleTogbnRoKG50aCgkSG9sZGVyLCAkaSksIDEpO1xuICAgICRWYWx1ZTogbnRoKG50aCgkSG9sZGVyLCAkaSksIDIpO1xuXG4gICAgJFByZXZpb3VzOiAoKTtcbiAgICBAaWYgJGkgPiAxIHtcbiAgICAgICRQcmV2aW91czogbnRoKG50aCgkUmV0dXJuLCAkaSAtIDEpLCAyKTtcbiAgICB9XG5cbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRWYWx1ZSwgJ2dyaWQnKSB7XG4gICAgICAkU29ydC1HcmlkOiBtYXAtZ2V0KCRQcmV2aW91cywgJ2dyaWQnKTtcbiAgICAgICRWYWx1ZTogbWFwLW1lcmdlKCRWYWx1ZSwgKCdncmlkJzogJFNvcnQtR3JpZCkpO1xuICAgIH1cblxuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJFZhbHVlLCAnZ3V0dGVyJykge1xuICAgICAgJFNvcnQtR3V0dGVyOiBtYXAtZ2V0KCRQcmV2aW91cywgJ2d1dHRlcicpO1xuICAgICAgJFZhbHVlOiBtYXAtbWVyZ2UoJFZhbHVlLCAoJ2d1dHRlcic6ICRTb3J0LUd1dHRlcikpO1xuICAgIH1cblxuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJFZhbHVlLCAnc3R5bGUnKSB7XG4gICAgICAkU29ydC1TdHlsZTogbWFwLWdldCgkUHJldmlvdXMsICdzdHlsZScpO1xuICAgICAgJFZhbHVlOiBtYXAtbWVyZ2UoJFZhbHVlLCAoJ3N0eWxlJzogJFNvcnQtU3R5bGUpKTtcbiAgICB9XG5cbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCRLZXk6ICRWYWx1ZSkpO1xuICB9XG5cbiAgQHJldHVybiAkUmV0dXJuO1xufVxuXG5AbWl4aW4gYmFja2dyb3VuZC1idWlsZCgkY29sdW1ucywgJGd1dHRlcnMsICRndXR0ZXItc3R5bGVzLCAkY29sb3IpIHtcbiAgJEJhY2tncm91bmQtTWFwOiBiYWNrZ3JvdW5kLW1hcCgkY29sdW1ucywgJGd1dHRlcnMsICRndXR0ZXItc3R5bGVzKTtcbiAgJERpc3BsYXk6IHRydWU7XG5cbiAgJENvbHVtbi1Db2xvcjogJGNvbG9yO1xuICAkSW52ZXJzZS1Db2x1bW4tQ29sb3I6IG1peChibGFjaywgJGNvbG9yLCAxNSUpO1xuICAkR3V0dGVyLUNvbG9yOiBtaXgod2hpdGUsICRjb2xvciwgMjUlKTtcbiAgJERpcmVjdGlvbjogbmFtZWQtZGlyZWN0aW9uKHNncy1nZXQoJ2RpcmVjdGlvbicpKTtcblxuICAkZW5jb2RlTWFwOihcbiAgICAnJVwiJzonJTI1JTIyJyxcbiAgICAnPCc6JyUzQycsXG4gICAgJyAnOiclMjAnLFxuICAgICc9JzonJTNEJyxcbiAgICAnXFxcIic6JyUyMicsXG4gICAgJzonOiclM0EnLFxuICAgICcvJzonJTJGJyxcbiAgICAnLic6JyUyRScsXG4gICAgJz4nOiclM0UnLFxuICAgICcjJzonJTIzJyxcbiAgICAnLSc6JyUyRCdcbiAgKTtcblxuICBAZWFjaCAkYmtwdCwgJGRlZiBpbiAkQmFja2dyb3VuZC1NYXAge1xuICAgICRHcmlkOiBtYXAtZ2V0KCRkZWYsICdncmlkJyk7XG4gICAgJEd1dHRlcjogbWFwLWdldCgkZGVmLCAnZ3V0dGVyJyk7XG4gICAgJFN0eWxlOiBtYXAtZ2V0KCRkZWYsICdzdHlsZScpO1xuXG4gICAgJEdyaWQtQ291bnQ6IGNvbHVtbi1jb3VudCgkR3JpZCk7XG5cbiAgICAkU1ZHOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+JztcblxuICAgICRHdXR0ZXItV2lkdGg6IGd1dHRlci1zcGFuKCRHdXR0ZXIsICRHcmlkLCAkU3R5bGUpO1xuICAgIEBpZiB1bml0KCRHdXR0ZXItV2lkdGgpICE9ICclJyBhbmQgdW5pdCgkR3V0dGVyLVdpZHRoKSAhPSAnJyB7XG4gICAgICAkR3V0dGVyLVdpZHRoOiAwJTtcbiAgICB9XG5cbiAgICBAaWYgJFN0eWxlID09ICdmaXhlZCcge1xuICAgICAgJEd1dHRlci1XaWR0aDogMCU7XG4gICAgfVxuICAgICRDb3VudGVyLVdpZHRoOiAwJTtcbiAgICAkaG9sZGVyOiAoKTtcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJEdyaWQtQ291bnQge1xuICAgICAgJEhvbGRlci1HcmFkaWVudDogKCk7XG4gICAgICAkTG9vcC1XaWR0aDogY29sdW1uLXNwYW4oMSwgJGksICRHcmlkLCAkR3V0dGVyLCAkU3R5bGUpO1xuXG4gICAgICBAaWYgaW5kZXgoJFN0eWxlLCAnc3BsaXQnKSBhbmQgJGkgPT0gMSB7XG4gICAgICAgICRTVkc6ICRTVkcgKyAnPHJlY3QgeD1cIiN7JENvdW50ZXItV2lkdGh9XCIgZmlsbD1cIiN7JEd1dHRlci1Db2xvcn1cIiB3aWR0aD1cIiN7JEd1dHRlci1XaWR0aCAvIDJ9XCIgaGVpZ2h0PVwiMTAwJVwiLz4nO1xuICAgICAgICAkQ291bnRlci1XaWR0aDogKCRHdXR0ZXItV2lkdGggLyAyKTtcbiAgICAgIH1cblxuICAgICAgJExvb3AtQ29sb3I6ICRDb2x1bW4tQ29sb3I7XG4gICAgICBAaWYgKGluZGV4KCRTdHlsZSwgJ2ZpeGVkJykgb3IgJEd1dHRlci1XaWR0aCA9PSAwJSkgYW5kICgkaSAlIDIgPT0gMCApIHtcbiAgICAgICAgJExvb3AtQ29sb3I6ICRJbnZlcnNlLUNvbHVtbi1Db2xvcjtcbiAgICAgIH1cblxuICAgICAgQGlmICRpICE9ICRHcmlkLUNvdW50IHtcbiAgICAgICAgQGlmIHVuaXQoJENvdW50ZXItV2lkdGgpID09IHVuaXQoJExvb3AtV2lkdGgpIHtcbiAgICAgICAgICAkU1ZHOiAkU1ZHICsgJzxyZWN0IHg9XCIjeyRDb3VudGVyLVdpZHRofVwiIGZpbGw9XCIjeyRMb29wLUNvbG9yfVwiIHdpZHRoPVwiI3skTG9vcC1XaWR0aH1cIiBoZWlnaHQ9XCIxMDAlXCIvPic7XG4gICAgICAgICAgJENvdW50ZXItV2lkdGg6ICRDb3VudGVyLVdpZHRoICsgJExvb3AtV2lkdGg7XG4gICAgICAgICAgJFNWRzogJFNWRyArICc8cmVjdCB4PVwiI3skQ291bnRlci1XaWR0aH1cIiBmaWxsPVwiI3skR3V0dGVyLUNvbG9yfVwiIHdpZHRoPVwiI3skR3V0dGVyLVdpZHRofVwiIGhlaWdodD1cIjEwMCVcIi8+JztcbiAgICAgICAgICAkQ291bnRlci1XaWR0aDogJENvdW50ZXItV2lkdGggKyAkR3V0dGVyLVdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkRGlzcGxheTogZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGkgPT0gMSB7XG4gICAgICAgIEBpZiB1bml0KCRDb3VudGVyLVdpZHRoKSA9PSB1bml0KCRMb29wLVdpZHRoKSB7XG4gICAgICAgICAgJFNWRzogJFNWRyArICc8cmVjdCB4PVwiI3skQ291bnRlci1XaWR0aH1cIiBmaWxsPVwiI3skTG9vcC1Db2xvcn1cIiB3aWR0aD1cIiN7JExvb3AtV2lkdGh9XCIgaGVpZ2h0PVwiMTAwJVwiLz4nO1xuICAgICAgICAgICRTVkc6ICRTVkcgKyAnPHJlY3QgeD1cIiN7JExvb3AtV2lkdGh9XCIgZmlsbD1cIiN7JEd1dHRlci1Db2xvcn1cIiB3aWR0aD1cIiN7JEd1dHRlci1XaWR0aH1cIiBoZWlnaHQ9XCIxMDAlXCIvPic7XG4gICAgICAgICAgJENvdW50ZXItV2lkdGg6ICRDb3VudGVyLVdpZHRoICsgJExvb3AtV2lkdGggKyAkR3V0dGVyLVdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkRGlzcGxheTogZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGkgPT0gJEdyaWQtQ291bnQgYW5kIGluZGV4KCRTdHlsZSwgJ3NwbGl0Jykge1xuICAgICAgICBAaWYgdW5pdCgkQ291bnRlci1XaWR0aCkgPT0gdW5pdCgkTG9vcC1XaWR0aCkge1xuICAgICAgICAgICRTVkc6ICRTVkcgKyAnPHJlY3QgeD1cIiN7JENvdW50ZXItV2lkdGh9XCIgZmlsbD1cIiN7JExvb3AtQ29sb3J9XCIgd2lkdGg9XCIjeyRMb29wLVdpZHRofVwiIGhlaWdodD1cIjEwMCVcIi8+JztcbiAgICAgICAgICAkQ291bnRlci1XaWR0aDogJENvdW50ZXItV2lkdGggKyAkTG9vcC1XaWR0aDtcbiAgICAgICAgICAkU1ZHOiAkU1ZHICsgJzxyZWN0IHg9XCIjeyRDb3VudGVyLVdpZHRofVwiIGZpbGw9XCIjeyRHdXR0ZXItQ29sb3J9XCIgd2lkdGg9XCIjeyRHdXR0ZXItV2lkdGggLyAyfVwiIGhlaWdodD1cIjEwMCVcIi8+JztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJERpc3BsYXk6IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRTVkc6ICRTVkcgKyAnPHJlY3QgeD1cIiN7JENvdW50ZXItV2lkdGh9XCIgZmlsbD1cIiN7JExvb3AtQ29sb3J9XCIgd2lkdGg9XCIjeyRMb29wLVdpZHRofVwiIGhlaWdodD1cIjEwMCVcIi8+JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkU1ZHOiAkU1ZHICsgJzwvc3ZnPic7XG5cbiAgICBAZWFjaCAkY2hhciwgJGNvZGUgaW4gJGVuY29kZU1hcCB7XG4gICAgICAkaW5kZXg6IHN0ci1pbmRleCgkU1ZHLCAkY2hhcik7XG4gICAgICBAd2hpbGUgJGluZGV4IHtcbiAgICAgICAgJGluZGV4OiBzdHItaW5kZXgoJFNWRywgJGNoYXIpO1xuICAgICAgICAkU1ZHOiBzdHItc2xpY2UoJFNWRywgMSwgJGluZGV4IC0gMSkgKyAkY29kZSArIHN0ci1zbGljZSgkU1ZHLCAkaW5kZXggKyBzdHItbGVuZ3RoKCRjaGFyKSk7XG4gICAgICAgICRpbmRleDogc3RyLWluZGV4KCRTVkcsICRjaGFyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJERpc3BsYXkge1xuXG4gICAgICBAaWYgJGJrcHQgIT0gLTFweCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJrcHQpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwnICsgJFNWRyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsJyArICRTVkcpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnQ2Fubm90IGdlbmVyYXRlIGEgQmFja2dyb3VuZCBHcmlkIGZvciBncmlkIGAjeyRHcmlkfWAgd2l0aCBndXR0ZXJzIGAjeyRHdXR0ZXJ9YCBhbmQgZ3V0dGVyIHN0eWxlIGAjeyRTdHlsZX1gJztcbiAgICB9XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV3JhcHBlciBtaXhpbiBmb3Igb3ZlcnJpZGluZyB0aGUgZ2xvYmFsIGNvbnRleHRzIGFzIGEgYmxvY2tcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIGxheW91dCgkZ3JpZDogZmFsc2UsICRndXR0ZXI6IGZhbHNlLCAkb3V0cHV0LXN0eWxlOiBmYWxzZSwgJGd1dHRlci1zdHlsZTogZmFsc2UpIHtcblxuICBAaWYgdHlwZS1vZigkZ3JpZCkgPT0gJ21hcCcge1xuICAgICRsYXlvdXQ6ICRncmlkO1xuICAgIEBpZiBtYXAtaGFzLWtleSgkbGF5b3V0LCAnZ3JpZCcpIHtcbiAgICAgICRncmlkOiBtYXAtZ2V0KCRsYXlvdXQsICdncmlkJyk7XG4gICAgfVxuXG4gICAgQGlmIG1hcC1oYXMta2V5KCRsYXlvdXQsICdndXR0ZXInKSB7XG4gICAgICAkZ3V0dGVyOiBtYXAtZ2V0KCRsYXlvdXQsICdndXR0ZXInKTtcbiAgICB9XG5cbiAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ291dHB1dCBzdHlsZScpIHtcbiAgICAgICRvdXRwdXQtc3R5bGU6IG1hcC1nZXQoJGxheW91dCwgJ291dHB1dCBzdHlsZScpO1xuICAgIH1cbiAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ291dHB1dCcpIHtcbiAgICAgICRvdXRwdXQtc3R5bGU6IG1hcC1nZXQoJGxheW91dCwgJ291dHB1dCcpO1xuICAgIH1cblxuICAgIEBpZiBtYXAtaGFzLWtleSgkbGF5b3V0LCAnZ3V0dGVyIHN0eWxlJykge1xuICAgICAgJGd1dHRlci1zdHlsZTogbWFwLWdldCgkbGF5b3V0LCAnZ3V0dGVyIHN0eWxlJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJpdmF0ZSBob2xkZXIgZm9yIGN1cnJlbnQgZ2xvYmFsIGNvbnRleHRcbiAgJGxheW91dC1wcml2YXRlLWdyaWQtaG9sZGVyOiBzZ3MtZ2V0KCdncmlkcycpO1xuICAkbGF5b3V0LXByaXZhdGUtZ3V0dGVyLWhvbGRlcjogc2dzLWdldCgnZ3V0dGVycycpO1xuICAkbGF5b3V0LXByaXZhdGUtb3V0cHV0LWhvbGRlcjogc2dzLWdldCgnb3V0cHV0Jyk7XG4gICRsYXlvdXQtcHJpdmF0ZS1ndXR0ZXItc3R5bGUtaG9sZGVyOiBzZ3MtZ2V0KCdndXR0ZXIgc3R5bGVzJyk7XG5cbiAgLy8gT3ZlcmlkZXMgY3VycmVudCBnbG9iYWwgY29udGV4dHMsIGJ1dCBvbmx5IGlmIG5lZWRlZFxuICBAaWYgJGdyaWQgIT0gZmFsc2Uge1xuICAgIEBpbmNsdWRlIHNncy1yZXNldCgnZ3JpZHMnKTtcbiAgICBAaWYgdHlwZS1vZigkZ3JpZCkgIT0gJ21hcCcge1xuICAgICAgQGluY2x1ZGUgc2dzLWNoYW5nZSgnZ3JpZHMnLCAoLTFweDogJGdyaWQpKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgc2dzLWNoYW5nZSgnZ3JpZHMnLCAkZ3JpZCk7XG4gICAgfVxuICB9XG4gIEBpZiAkZ3V0dGVyICE9IGZhbHNlIHtcbiAgICBAaW5jbHVkZSBzZ3MtcmVzZXQoJ2d1dHRlcnMnKTtcbiAgICBAaWYgdHlwZS1vZigkZ3V0dGVyKSAhPSAnbWFwJyB7XG4gICAgICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdndXR0ZXJzJywgKC0xcHg6ICRndXR0ZXIpKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgc2dzLWNoYW5nZSgnZ3V0dGVycycsICRndXR0ZXIpO1xuICAgIH1cbiAgfVxuICBAaWYgJG91dHB1dC1zdHlsZSAhPSBmYWxzZSB7XG4gICAgQGluY2x1ZGUgc2dzLXJlc2V0KCdvdXRwdXQnKTtcbiAgICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdvdXRwdXQnLCAkb3V0cHV0LXN0eWxlKTtcbiAgfVxuICBAaWYgJGd1dHRlci1zdHlsZSAhPSBmYWxzZSB7XG4gICAgQGluY2x1ZGUgc2dzLXJlc2V0KCdndXR0ZXIgc3R5bGVzJyk7XG4gICAgQGlmIHR5cGUtb2YoJGd1dHRlci1zdHlsZSkgIT0gJ21hcCcge1xuICAgICAgQGluY2x1ZGUgc2dzLWNoYW5nZSgnZ3V0dGVyIHN0eWxlcycsICgtMXB4OiAkZ3V0dGVyLXN0eWxlKSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ2d1dHRlciBzdHlsZXMnLCAkZ3V0dGVyLXN0eWxlKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbGwgdGhlIHRoaW5ncyFcbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUkVzZXQgQUxMIHRoZSBzZXR0aW5nc1xuICBAaW5jbHVkZSBzZ3MtcmVzZXQoJ2dyaWRzJyk7XG4gIEBpbmNsdWRlIHNncy1yZXNldCgnZ3V0dGVycycpO1xuICBAaW5jbHVkZSBzZ3MtcmVzZXQoJ291dHB1dCcpO1xuICBAaW5jbHVkZSBzZ3MtcmVzZXQoJ2d1dHRlciBzdHlsZXMnKTtcbiAgLy8gUmVzZXRzIGdsb2JhbCBjb250ZXh0c1xuICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdncmlkcycsICRsYXlvdXQtcHJpdmF0ZS1ncmlkLWhvbGRlcik7XG4gIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ2d1dHRlcnMnLCAkbGF5b3V0LXByaXZhdGUtZ3V0dGVyLWhvbGRlcik7XG4gIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ291dHB1dCcsICRsYXlvdXQtcHJpdmF0ZS1vdXRwdXQtaG9sZGVyKTtcbiAgQGluY2x1ZGUgc2dzLWNoYW5nZSgnZ3V0dGVyIHN0eWxlcycsICRsYXlvdXQtcHJpdmF0ZS1ndXR0ZXItc3R5bGUtaG9sZGVyKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBMYXlvdXQgQXRcbi8vIFdyYXBwZXIgbWl4aW4gZm9yIGEgY29tYmluZWQgQnJlYWtwb2ludC9MYXlvdXQgY2FsbFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gbGF5b3V0LWF0KCRsYXlvdXQsICRicmVha3BvaW50KSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAvLyBJZiBhIHNpbmdsZSB2YWx1ZSBpcyBwYXNzZWQgaW4sIGFzc3VtZSBpdCdzIGEgZ3JpZFxuICAgIEBpZiB0eXBlLW9mKCRsYXlvdXQpICE9IG1hcCB7XG4gICAgICBAaW5jbHVkZSBsYXlvdXQoJGxheW91dCkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gSWYgaXQgaXMgYSBtYXAsIHdlJ3ZlIGdvdCBrZXkvdmFsdWVzIHRvIHdvcmsgd2l0aFxuICAgIEBlbHNlIHtcbiAgICAgICRncmlkOiBmYWxzZTtcbiAgICAgICRndXR0ZXI6IGZhbHNlO1xuICAgICAgJG91dHB1dC1zdHlsZTogZmFsc2U7XG4gICAgICAkZ3V0dGVyLXN0eWxlOiBmYWxzZTtcblxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRsYXlvdXQsICdncmlkJykge1xuICAgICAgICAkZ3JpZDogbWFwLWdldCgkbGF5b3V0LCAnZ3JpZCcpO1xuICAgICAgfVxuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ2d1dHRlcicpIHtcbiAgICAgICAgJGd1dHRlcjogbWFwLWdldCgkbGF5b3V0LCAnZ3V0dGVyJyk7XG4gICAgICB9XG5cbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkbGF5b3V0LCAnb3V0cHV0IHN0eWxlJykge1xuICAgICAgICAkb3V0cHV0LXN0eWxlOiBtYXAtZ2V0KCRsYXlvdXQsICdvdXRwdXQgc3R5bGUnKTtcbiAgICAgIH1cbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkbGF5b3V0LCAnb3V0cHV0Jykge1xuICAgICAgICAkb3V0cHV0LXN0eWxlOiBtYXAtZ2V0KCRsYXlvdXQsICdvdXRwdXQnKTtcbiAgICAgIH1cblxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRsYXlvdXQsICdndXR0ZXIgc3R5bGUnKSB7XG4gICAgICAgICRndXR0ZXItc3R5bGU6IG1hcC1nZXQoJGxheW91dCwgJ2d1dHRlciBzdHlsZScpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBsYXlvdXQoJGdyaWQsICRndXR0ZXIsICRvdXRwdXQtc3R5bGUsICRndXR0ZXItc3R5bGUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiQGltcG9ydCBcImxhbmd1YWdlL3BhcnNlLWxpc3RcIjtcbkBpbXBvcnQgXCJsYW5ndWFnZS9wYXJzZS1hZGRcIjtcbkBpbXBvcnQgXCJsYW5ndWFnZS9zcGFuXCI7IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQYXJzZSBuYXR1cmFsIGxhbmd1YWdlIHN0cmluZ1xuLy9cbi8vIFJldHJpZXZlIHZhbHVlcyBmcm9tIHRoZSBuYXR1cmFsIGxhbmd1YWdlIHN0cmluZy5cbi8vIHBhcnNlLXN0cmluZygkdmFyLCAkbGlzdClcbi8vICAkdmFyICA6IDxzdHJpbmc+XG4vLyAgICAgICAgLSAnYXQnLydzcGFuJy8nb2YnIG9yIGFueSBvdGhlciBrZXl3b3Jkcy5cbi8vICAgICAgICAtICdzcGFuJyBxdWVyaWVzIHRoZSB1bnByZWZpeGVkIHNwYW4gZGVjbGFyYXRpb24uXG4vLyAgICAgICAgLSAnYXQnIGNhbiBhbHNvIHF1ZXJ5IGZpcnN0LCBsYXN0LCBhbHBoYSwgYW5kIG9tZWdhLlxuLy8gICAgICAgIC0gJ2dyaWQnIHdpbGwgcmV0dXJuIHRoZSBzYW1lIGFzICdvZidcbi8vICAkbGlzdCA6IDxsaXN0PlxuLy8gICAgICAgIC0gQSBsaXN0IGxpa2UgdGhpczogbGFzdCAyIG9mICgxIDEgMikgcHVzaCAxXG4vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gcGFyc2Utc3Bhbi1saXN0KCR2YXIsICRsaXN0KSB7XG5cbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkZ3JpZDogKCk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIGxpc3QuXG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICAvLyBpZiAnc3BhbicgLSByZXR1cm4gdGhlIGZpcnN0IG51bWVyaWMuXG4gICAgLy8gaWYga2V5d29yZCB3YXMgZm91bmQgLSByZXR1cm4gdGhlIGZvbGxvd2luZyBpdGVtLlxuICAgIEBpZiAodHlwZS1vZigkaXRlbSkgPT0gbnVtYmVyIGFuZCAkdmFyID09IHNwYW4gYW5kICRmb3VuZCAhPSAnZ3JpZCcpIG9yICRmb3VuZCA9PSB0cnVlIHtcblxuICAgICAgLy8gQGlmICRmb3VuZCA9PSB0cnVlXG4gICAgICBAcmV0dXJuICRpdGVtO1xuICAgIH1cblxuICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgZm9yIEdyaWRzXG4gICAgQGVsc2UgaWYgKCRpdGVtID09ICR2YXIgb3IgJGl0ZW0gPT0gJ2dyaWQnIG9yICRpdGVtID09ICdvZicpIGFuZCAoJHZhciA9PSAnb2YnIG9yICR2YXIgPT0gJ2dyaWQnKSB7XG4gICAgICAkZm91bmQ6ICdncmlkJztcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkZm91bmQgPT0gJ2dyaWQnIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRpdGVtKSA9PSBudW1iZXIge1xuICAgICAgICAkZ3JpZDogYXBwZW5kKCRncmlkLCAkaXRlbSwgJ3NwYWNlJyk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gJGdyaWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQW55IGtleXdvcmQgLSByZXR1cm4gdGhlIGZvbGxvd2luZyB2YWx1ZS5cbiAgICBAZWxzZSBpZiAkaXRlbSA9PSAkdmFyIHtcbiAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBXYXNuJ3QgZm91bmQuXG4gIEByZXR1cm4gZmFsc2U7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQYXJzZSBhZGQgc3RyaW5nXG4vL1xuLy8gUmV0cmlldmUgYWRkIGFuZCBtZWRpYSBxdWVyeSB2YWx1ZXMgZnJvbSBhIGRlZmluaXRpb25cbi8vIHBhcnNlLWFkZCgkZGVmaW5pdGlvbilcbi8vICAkZGVmaW5pdGlvbiA6IDxsaXN0PlxuLy8gICAgICAgIC0gQSBsaXN0IGxpa2U6IC4yNSBhdCAzMDBweFxuLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHBhcnNlLWFkZCgkZGVmaW5pdGlvbikge1xuICAkcGFyc2UtZmluZDogKCk7XG4gICRwYXJzZS1tcTogbnVsbDtcbiAgJHBhcnNlLW1xLWZpbmQ6IGZhbHNlO1xuICAkTW9iaWxlLUZpcnN0OiBzZ3MtZ2V0KCdtb2JpbGUgZmlyc3QnKTtcblxuICBAZWFjaCAkaXRlbSBpbiAkZGVmaW5pdGlvbiB7XG4gICAgQGlmICRpdGVtICE9ICdhdCcgYW5kICRwYXJzZS1tcS1maW5kICE9IHRydWUge1xuICAgICAgJHBhcnNlLWZpbmQ6IGFwcGVuZCgkcGFyc2UtZmluZCwgJGl0ZW0sICdzcGFjZScpO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkaXRlbSA9PSAnYXQnIHtcbiAgICAgICRwYXJzZS1tcS1maW5kOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkcGFyc2UtbXE6ICRpdGVtO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFyc2UtbXEge1xuICAgIEBpZiBub3QgZnVuY3Rpb24tZXhpc3RzKGJyZWFrcG9pbnQpIHtcbiAgICAgIEB3YXJuIFwiUmVzcG9uc2l2ZSBjb250ZXh0cyByZXF1aXJlIEJyZWFrcG9pbnQgKGh0dHBzOi8vZ2l0aHViLmNvbS9UZWFtLVNhc3MvYnJlYWtwb2ludCkuIFBsZWFzZSBlbnN1cmUgdGhhdCBCcmVha3BvaW50IGlzIGltcG9ydGVkIGFuZCBhdmFpbGFibGUgZm9yIFNpbmd1bGFyaXR5IHRvIHVzZS4gQ29udGV4dCBzZXQgdG8gLTFweC5cIjtcbiAgICAgICRwYXJzZS1tcTogLTFweDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJyZWFrcG9pbnQtcGFyc2U6IGJyZWFrcG9pbnQoJHBhcnNlLW1xKTtcbiAgICAgICRicmVha3BvaW50LXBhcnNlOiBtYXAtZ2V0KCRicmVha3BvaW50LXBhcnNlLCAnY29udGV4dCBob2xkZXInKTtcbiAgICAgICRicmVha3BvaW50LW1xOiBudWxsO1xuICAgICAgQGlmICRNb2JpbGUtRmlyc3Qge1xuICAgICAgICAkYnJlYWtwb2ludC1tcTogbWFwLWdldCgkYnJlYWtwb2ludC1wYXJzZSwgJ21pbi13aWR0aCcpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkYnJlYWtwb2ludC1tcTogbWFwLWdldCgkYnJlYWtwb2ludC1wYXJzZSwgJ21heC13aWR0aCcpO1xuICAgICAgfVxuXG4gICAgICBAaWYgbGVuZ3RoKCRicmVha3BvaW50LW1xKSA+IDEge1xuICAgICAgICBAd2FybiBcIlJlc3BvbnNpdmUgY29udGV4dHMgYXJlIG5vdCBhdmFpbGFibGUgZm9yIGBvcmAgcXVlcmllcyBhcyB3aGljaCBxdWVyeSB0byB1c2UgaXMgYW1iaWd1b3VzLiBQbGVhc2Ugb25seSB1c2Ugc2luZ2xlIGNvbnRleHQgcXVlcmllcy4gQ29udGV4dCBzZXQgdG8gLTFweC5cIjtcbiAgICAgICAgJHBhcnNlLW1xOiAtMXB4O1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgbGVuZ3RoKCRicmVha3BvaW50LW1xKSA8IDEge1xuICAgICAgICBAd2FybiBcIk5vIFwiICsgaWYoJE1vYmlsZS1GaXJzdCwgJ21pbi13aWR0aCcsICdtYXgtd2lkdGgnKSArICcgY29udGV4dCBmb3VuZC4gUGxlYXNlIHVzZSBhIG1lZGlhIHF1ZXJ5IHdpdGggdGhlIGNvcnJlY3QgY29udGV4dC4gQ29udGV4dCBzZXQgdG8gLTFweC4nO1xuICAgICAgICAkcGFyc2UtbXE6IC0xcHg7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZS1tcTogbnRoKCRicmVha3BvaW50LW1xLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJHBhcnNlLW1xIGFuZCB1bml0KCRwYXJzZS1tcSkgPT0gJ2VtJyB7XG4gICAgJHBhcnNlLW1xOiAkcGFyc2UtbXEgLyAxZW0gKiAxNnB4O1xuICB9XG5cbiAgQHJldHVybiAoJHBhcnNlLWZpbmQgJHBhcnNlLW1xKTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gXCJOYXR1cmFsIExhbmd1YWdlXCIgUGFyc2luZ1xuLy9cbi8vIEtleXdvcmRzOlxuLy8gIHNwYW46ICAgICBDb2x1bW4gU3BhblxuLy8gIGF0OiAgICAgICBDb2x1bW4gTG9jYXRpb25cbi8vICBvZjogICAgICAgQ29udGV4dFxuLy8gIGd1dHRlcnM6ICBHdXR0ZXJzXG4vLyAgb3V0cHV0OiAgIE91dHB1dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gc3BhbigkaW5wdXQpIHtcbiAgJHNwYW46ICAgICAgbnRoKCRpbnB1dCwgMSk7XG5cbiAgJGxvY2F0aW9uOiAgcGFyc2Utc3Bhbi1saXN0KCdhdCcsICRpbnB1dCk7XG4gICRjb250ZXh0OiAgIHBhcnNlLXNwYW4tbGlzdCgnb2YnLCAkaW5wdXQpO1xuICAkZ3V0dGVyOiAgICBwYXJzZS1zcGFuLWxpc3QoJ2d1dHRlcnMnLCAkaW5wdXQpO1xuICAkb3V0cHV0OiAgICBwYXJzZS1zcGFuLWxpc3QoJ291dHB1dCcsICRpbnB1dCk7XG5cbiAgQGluY2x1ZGUgZ3JpZC1zcGFuKCRzcGFuLCAkbG9jYXRpb24sICRjb250ZXh0LCAkZ3V0dGVyLCAkb3V0cHV0KVxufSIsIkBpbXBvcnQgXCJtYXRoL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJtYXRoL2d1dHRlcnNcIjtcbkBpbXBvcnQgXCJtYXRoL2NvbnRleHRcIjtcbkBpbXBvcnQgXCJtYXRoL2dyaWRcIjsiLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZpbmQgd2lkdGgsIGluIHBlcmNlbnRhZ2VzLCBvZiB0aGUgY29sdW1uIHNwYW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGNvbHVtbi1zcGFuKCRzcGFuLCAkbG9jYXRpb24sICRncmlkOiBudWxsLCAkZ3V0dGVyOiBudWxsLCAkZ3V0dGVyLXN0eWxlOiBudWxsKSB7XG4gIC8vIEZpbmQgdGhlIGdyaWQgYW5kIGd1dHRlcnNcbiAgJGdyaWQ6IGZpbmQtZ3JpZCgkZ3JpZCk7XG4gICRndXR0ZXI6IGZpbmQtZ3V0dGVyKCRndXR0ZXIpO1xuICAkZ3V0dGVyLXN0eWxlOiBmaW5kLWd1dHRlci1zdHlsZSgkZ3V0dGVyLXN0eWxlKTtcblxuICBAaWYgZml4ZWQtZ3V0dGVyKCRncmlkLCAkZ3V0dGVyLCAkZ3V0dGVyLXN0eWxlKSB7XG4gICAgJGd1dHRlcjogMDtcbiAgfVxuXG4gIC8vIEBkZWJ1ZyAkZ3JpZDtcbiAgLy8gQGRlYnVnICRndXR0ZXI7XG5cbiAgLy8gQ29tYmluZSB0aGUgZ3JpZCBhbmQgZ3V0dGVyc1xuICAkZ3JpZC1hbmQtZ3V0dGVyczogY29sdW1uLXN1bSgkZ3JpZCwgJGd1dHRlciwgJGd1dHRlci1zdHlsZSk7XG5cbiAgLy8gQGRlYnVnICRncmlkLWFuZC1ndXR0ZXJzO1xuXG4gIC8vIEVxdWFsIHdpZHRoIGdyaWQgYXJlIGVhc3khIERlYWwgd2l0aCB0aGVtIVxuICBAaWYgdHlwZS1vZigkZ3JpZCkgPT0gJ251bWJlcicgb3IgbGVuZ3RoKCRncmlkKSA9PSAxIHtcbiAgICAkc3Bhbi1hbmQtZ3V0dGVyczogJHNwYW4gKyAkZ3V0dGVyICogKCRzcGFuIC0gMSk7XG4gICAgQHJldHVybiAkc3Bhbi1hbmQtZ3V0dGVycyAvICRncmlkLWFuZC1ndXR0ZXJzICogMTAwJTtcbiAgfVxuICAvLyBBc3ltbWV0cmljIGxpc3RzIGFyZSBoYXJkZXIsIHNvIHdlJ3JlIGdvaW5nIHRvIHRyZWF0IHRoZW0gYXMgdGhlaXIgb3duIGdyaWRcbiAgQGVsc2UgaWYgdHlwZS1vZigkZ3JpZCkgPT0gJ2xpc3QnIG9yIGxlbmd0aCgkZ3JpZCkgPiAxIHtcbiAgICAkc3Bhbi1hbmQtZ3V0dGVyczogMDtcblxuICAgIEBpZiAkbG9jYXRpb24gPT0gMSBhbmQgJHNwYW4gPj0gMSB7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRzcGFuIHtcbiAgICAgICAgJHNwYW4tYW5kLWd1dHRlcnM6ICRzcGFuLWFuZC1ndXR0ZXJzICsgbnRoKCRncmlkLCAkaSkgKyAkZ3V0dGVyO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkdG90YWw6ICRsb2NhdGlvbiArICRzcGFuIC0gMTtcbiAgICAgIEBpZiAkdG90YWwgIT0gMCB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAkbG9jYXRpb24gdGhyb3VnaCAkdG90YWwge1xuICAgICAgICAgICRzcGFuLWFuZC1ndXR0ZXJzOiAkc3Bhbi1hbmQtZ3V0dGVycyArIG50aCgkZ3JpZCwgJGkpICsgJGd1dHRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAkc3Bhbi1hbmQtZ3V0dGVyczogJHNwYW4tYW5kLWd1dHRlcnMgLSAkZ3V0dGVyO1xuXG4gICAgQHJldHVybiAkc3Bhbi1hbmQtZ3V0dGVycyAvICRncmlkLWFuZC1ndXR0ZXJzICogMTAwJTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJDYW4ndCBmaW5kIGEgd29ya2luZyBzZXQgb2YgZ3JpZCEgVGhhdCdzIHRlcnJpYmxlIVwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGaW5kIHRoZSB0b3RhbCBzdW0gb2YgdGhlIGdyaWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGNvbHVtbi1zdW0oJGdyaWQsICRndXR0ZXIsICRndXR0ZXItc3R5bGUpIHtcbiAgJHNwbGl0OiBpZihpbmRleCgkZ3V0dGVyLXN0eWxlLCAnc3BsaXQnKSwgdHJ1ZSwgZmFsc2UpO1xuXG4gIEBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbnVtYmVyJyBvciBsZW5ndGgoJGdyaWQpID09IDEge1xuICAgIEBpZiAkc3BsaXQge1xuICAgICAgQHJldHVybiBudGgoJGdyaWQsIDEpICsgKChjb2x1bW4tY291bnQobnRoKCRncmlkLCAxKSkpICogbnRoKCRndXR0ZXIsIDEpKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBudGgoJGdyaWQsIDEpICsgKChjb2x1bW4tY291bnQobnRoKCRncmlkLCAxKSkgLSAxKSAqIG50aCgkZ3V0dGVyLCAxKSk7XG4gICAgfVxuXG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkZ3JpZCkgPT0gJ2xpc3QnIHtcbiAgICAkc3VtOiAwO1xuICAgIEBlYWNoICRjb2x1bW4gaW4gJGdyaWQge1xuICAgICAgJHN1bTogJHN1bSArIG50aCgkY29sdW1uLCAxKTtcbiAgICB9XG4gICAgQGlmICRzcGxpdCB7XG4gICAgICAkc3VtOiAkc3VtICsgKGNvbHVtbi1jb3VudCgkZ3JpZCkpICogbnRoKCRndXR0ZXIsIDEpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkc3VtOiAkc3VtICsgKGNvbHVtbi1jb3VudCgkZ3JpZCkgLSAxKSAqIG50aCgkZ3V0dGVyLCAxKTtcbiAgICB9XG4gICAgQHJldHVybiAkc3VtO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmluZCB0aGUgbnVtYmVyIG9mIGdyaWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGNvbHVtbi1jb3VudCgkZ3JpZCkge1xuICBAaWYgdHlwZS1vZigkZ3JpZCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJGdyaWQ7XG4gIH1cbiAgQGlmIHR5cGUtb2YoJGdyaWQpID09ICdsaXN0JyB7XG4gICAgQGlmIGxlbmd0aCgkZ3JpZCkgPT0gMSB7XG4gICAgICBAcmV0dXJuIG50aCgkZ3JpZCwgMSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbGVuZ3RoKCRncmlkKTtcbiAgICB9XG4gIH1cbn0iLCJAZnVuY3Rpb24gZ3V0dGVyLXNwYW4oJGd1dHRlcjogZmFsc2UsICRncmlkOiBmYWxzZSwgJGd1dHRlci1zdHlsZTogZmFsc2UpIHtcblxuICAvLyBGaW5kIHRoZSBjb2x1bW5zIGFuZCBndXR0ZXJzXG4gICRncmlkOiBmaW5kLWdyaWQoJGdyaWQpO1xuICAkZ3V0dGVyOiBmaW5kLWd1dHRlcigkZ3V0dGVyKTtcbiAgJGd1dHRlci1zdHlsZTogZmluZC1ndXR0ZXItc3R5bGUoJGd1dHRlci1zdHlsZSk7XG5cbiAgQGlmIGZpeGVkLWd1dHRlcigkZ3JpZCwgJGd1dHRlciwgJGd1dHRlci1zdHlsZSkge1xuICAgIEByZXR1cm4gbnRoKCRndXR0ZXIsIDEpO1xuICB9XG5cbiAgLy8gQ29tYmluZSB0aGUgY29sdW1ucyBhbmQgZ3V0dGVyc1xuICAkZ3JpZC1hbmQtZ3V0dGVyczogY29sdW1uLXN1bSgkZ3JpZCwgJGd1dHRlciwgJGd1dHRlci1zdHlsZSk7XG5cbiAgQHJldHVybiAobnRoKCRndXR0ZXIsIDEpIC8gJGdyaWQtYW5kLWd1dHRlcnMpICogMTAwJVxufSIsIkBmdW5jdGlvbiBjb250ZXh0KCRwcmltYXJ5LCAkc2Vjb25kYXJ5KSB7XG4gIEByZXR1cm4gKCRwcmltYXJ5IC8gJHNlY29uZGFyeSkgKiAxMDAlO1xufSIsIkBmdW5jdGlvbiBncmlkLXNwYW4oJHNwYW4sICRsb2NhdGlvbiwgJGdyaWQ6IGZhbHNlLCAkZ3V0dGVyOiBmYWxzZSwgJGd1dHRlci1zdHlsZTogZmFsc2UpIHtcbiAgQHJldHVybiBjb2x1bW4tc3Bhbigkc3BhbiwgJGxvY2F0aW9uLCAkZ3JpZCwgJGd1dHRlciwgJGd1dHRlci1zdHlsZSkgKyBndXR0ZXItc3BhbigkZ3V0dGVyLCAkZ3JpZCwgJGd1dHRlci1zdHlsZSk7XG59IiwiQGltcG9ydCBcImdyaWRzL2FkZFwiO1xuQGltcG9ydCBcImdyaWRzL2ZpbmRcIjsiLCIvLyBBY2NlcHRzIGEgZ3JpZCBkZWZpbml0aW9uIGluIHRoZSBodW1hbi1yZWFkYWJsZSBmb3JtYXQuIENvbnZlcnRzIGl0IHRvIHRoZSBpbnRlcm5hbCBmb3JtYXQsXG4vLyBhcHBlbmRzIGl0IHRvIGEgbGlzdCBvZiBncmlkcyBhbmQgcmV0dXJucyB0aGUgcmVzdWx0aW5nIGxpc3QuXG4vL1xuLy8gTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gb25seSByZXR1cm5zIGEgbmV3IGxpc3QsIGl0IGRvZXMgbm90IG1vZGlmeSB0aGUgc291cmNlIGxpc3QuXG4vL1xuLy8gYWRkLWdyaWQoJGdyaWQtZGVmaW5pdGlvbiwgJGFwcGVuZC10by1saXN0KVxuLy8gLSAkZ3JpZC1kZWZpbml0aW9uIDogPGRlZmluaXRpb24+ICBTZWUgZG9jdW1lbnRhdGlvbiBmb3Igc3ludGF4OlxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vVGVhbS1TYXNzL1Npbmd1bGFyaXR5L3dpa2kvQ3JlYXRpbmctR3JpZHNcbi8vIC0gJGFwcGVuZC10by1saXN0ICA6IFtsaXN0XSAgICAgICAgQSBsaXN0IHRvIGFwcGVuZCB0by5cbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gJGdyaWRzIGlmIG5vbmUgaXMgc3BlY2lmaWVkLlxuQGZ1bmN0aW9uIGFkZC1ncmlkKCRncmlkLWRlZmluaXRpb24sICRjdXN0b20tbWFwOiBmYWxzZSkge1xuICAkUGFyc2VkOiAgICAgIHBhcnNlLWFkZCgkZ3JpZC1kZWZpbml0aW9uKTsgLy8gUGFyc2VzIGdyaWQgZGVmaW5pdGlvbiB0byBncmlkL2JyZWFrcG9pbnRcbiAgJEdyaWQ6ICAgICAgICBudGgoJFBhcnNlZCwgMSk7IC8vIEUuIGcuIGAoPGdyaWQ+KWAuXG4gICRCcmVha3BvaW50OiAgbnRoKCRQYXJzZWQsIDIpOyAvLyBFaXRoZXIgYCg8YnJlYWtwb2ludD4pYCBvciBmYWxzZS5cbiAgJE1vYmlsZS1GaXJzdDogc2dzLWdldCgnbW9iaWxlIGZpcnN0Jyk7XG4gICRHcmlkLU1hcDogKCk7XG5cbiAgLy8gRGV0ZXJtaW5lIGlmIGEgY3VzdG9tIG1hcCBvciB0aGUgZGVmYXVsdCBtYXBzIHNob3VsZCBiZSB1c2VkLlxuICBAaWYgJGN1c3RvbS1tYXAge1xuICAgICRHcmlkLU1hcDogJGN1c3RvbS1tYXA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBzZ3MtaGFzKCdncmlkcycpIHtcbiAgICAgICRHcmlkLU1hcDogc2dzLWdldCgnZ3JpZHMnKTtcbiAgICB9XG4gIH1cbiAgJEdyaWQtS2V5LUxlbmd0aDogbGVuZ3RoKG1hcC1rZXlzKCRHcmlkLU1hcCkpO1xuXG4gIC8vIENoZWNrIHdoZXRoZXIgdGhlIGRlZmluaXRpb24gd2lsbCBiZSB0aGUgZmlyc3Qgb25lIGluIHRoZSBsaXN0XG4gIC8vIGFuZCB3aGV0aGVyIGl0IGhhcyBubyBicmVha3BvaW50IHNwZWNpZmllZC5cbiAgQGlmICRCcmVha3BvaW50ID09IG51bGwge1xuICAgIC8vIFJldHVybnMgdGhlIGZpcnN0IGl0ZW0gb2YgdGhlIGxpc3QsIGUuIGcuIGAoPGdyaWQ+KWBcbiAgICAkR3JpZC1NYXA6IG1hcC1tZXJnZSgkR3JpZC1NYXAsICgtMXB4OiAkR3JpZCkpO1xuICB9XG4gIC8vIElGIHRoZSBsaXN0IGlzIGluaXRpYXRlZCB3aXRoIGEgbGlzdCBvZiBncmlkIGNvbHVtbnMgbmVlZCB0byBzdGFydCBvZmZcbiAgLy8gYSBjb21tYSBzZXByYXRlZCBsaXN0LlxuICBAZWxzZSB7XG4gICAgQGlmIG5vdCAobWFwLWhhcy1rZXkoJEdyaWQtTWFwLCAtMXB4KSkge1xuICAgICAgJEdyaWQtTWFwOiBtYXAtbWVyZ2UoJEdyaWQtTWFwLCBtYXAtZ2V0KCRTaW5ndWxhcml0eS1TZXR0aW5ncywgJ2dyaWRzJykpO1xuICAgIH1cbiAgICAkR3JpZC1NYXA6IG1hcC1tZXJnZSgkR3JpZC1NYXAsICgkQnJlYWtwb2ludDogJEdyaWQpKTtcbiAgfVxuXG4gICRHcmlkLU1hcDogc29ydC1tYXAoJEdyaWQtTWFwLCBub3QgJE1vYmlsZS1GaXJzdCk7XG5cbiAgQHJldHVybiAkR3JpZC1NYXA7XG59XG5cblxuQG1peGluIGFkZC1ncmlkKCRncmlkLWRlZmluaXRpb24pIHtcbiAgJEFkZC1HcmlkOiBhZGQtZ3JpZCgkZ3JpZC1kZWZpbml0aW9uKTtcbiAgJEhPTERFUjogc2dzLXNldCgnZ3JpZHMnLCAkQWRkLUdyaWQpO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmluZCBHcmlkXG4vL1xuLy8gRmluZHMgdGhlIGdyaWQgdGhhdCB5b3UgYXJlIG9uLlxuLy8gRnJvbSBTaW5ndWxhcml0eVxuLy8gTXVzdCBiZSB1c2luZyBCcmVha3BvaW50IHRvIHdvcmsgcHJvcGVybHlcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGZpbmQtZ3JpZCgkdXNlci1jb2x1bW5zOiBudWxsKSB7XG5cbiAgLy8gV2Ugc3VwcGx5IGEgZGVmYXVsdCBpZiB0aGUgdXNlciBoYXNuJ3Qgc2V0IGFueSBncmlkcyBhbmQgaGFzbid0IHBhc3NlZCBpbiBhIGN1c3RvbSBjb2x1bW4gc2V0XG4gIC8vIFRoZSBkZWZhdWx0IHN1cHBsaWVkIGlzIGJhc2VkIG9uIG9yaWdpbmFsIFN1c3kgb3B0aW9uc1xuICAkR3JpZHM6IHNncy1nZXQoJ2dyaWRzJyk7XG5cbiAgJEZvdW5kOiBmaW5kLW9iamVjdCgkR3JpZHMsICR1c2VyLWNvbHVtbnMpO1xuXG4gIEBpZiBsZW5ndGgoJEZvdW5kKSA9PSAxIHtcbiAgICAkRm91bmQ6IG50aCgkRm91bmQsIDEpO1xuICB9XG5cbiAgQHJldHVybiAkRm91bmQ7XG59IiwiQGltcG9ydCBcImd1dHRlcnMvYWRkXCI7XG5AaW1wb3J0IFwiZ3V0dGVycy9maW5kXCI7IiwiLy8gQWNjZXB0cyBhIGd1dHRlciBkZWZpbml0aW9uIGluIHRoZSBodW1hbi1yZWFkYWJsZSBmb3JtYXQuIENvbnZlcnRzIGl0IHRvIHRoZSBpbnRlcm5hbCBmb3JtYXQsXG4vLyBhcHBlbmRzIGl0IHRvIGEgbGlzdCBvZiBndXR0ZXIgYW5kIHJldHVybnMgdGhlIHJlc3VsdGluZyBsaXN0LlxuLy9cbi8vIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIG9ubHkgcmV0dXJucyBhIG5ldyBsaXN0LCBpdCBkb2VzIG5vdCBtb2RpZnkgdGhlIHNvdXJjZSBsaXN0LlxuLy9cbi8vIGFkZC1ndXR0ZXIoJEd1dHRlci1kZWZpbml0aW9uLCAkYXBwZW5kLXRvLWxpc3QpXG4vLyAtICRndXR0ZXItZGVmaW5pdGlvbiA6IDxkZWZpbml0aW9uPiAgU2VlIGRvY3VtZW50YXRpb24gZm9yIHN5bnRheDpcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vVGVhbS1TYXNzL1Npbmd1bGFyaXR5L3dpa2kvQ3JlYXRpbmctR3V0dGVyc1xuLy8gLSAkYXBwZW5kLXRvLWxpc3QgICAgOiBbbGlzdF0gICAgICAgIEEgbGlzdCB0byBhcHBlbmQgdG8uXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gJGd1dHRlcnMgaWYgbm9uZSBpcyBzcGVjaWZpZWQuXG5AZnVuY3Rpb24gYWRkLWd1dHRlcigkZ3V0dGVyLWRlZmluaXRpb24sICRjdXN0b20tbWFwOiBmYWxzZSkge1xuICAkUGFyc2VkOiAgICAgIHBhcnNlLWFkZCgkZ3V0dGVyLWRlZmluaXRpb24pOyAvLyBQYXJzZXMgR3V0dGVyIGRlZmluaXRpb24gdG8gR3V0dGVyL2JyZWFrcG9pbnRcbiAgJEd1dHRlcjogICAgICAgIG50aCgkUGFyc2VkLCAxKTsgLy8gRS4gZy4gYCg8R3V0dGVyPilgLlxuICAkQnJlYWtwb2ludDogIG50aCgkUGFyc2VkLCAyKTsgLy8gRWl0aGVyIGAoPGJyZWFrcG9pbnQ+KWAgb3IgZmFsc2UuXG4gICRNb2JpbGUtRmlyc3Q6IHNncy1nZXQoJ21vYmlsZSBmaXJzdCcpO1xuICAkR3V0dGVyLU1hcDogKCk7XG5cbiAgLy8gRGV0ZXJtaW5lIGlmIGEgY3VzdG9tIG1hcCBvciB0aGUgZGVmYXVsdCBtYXBzIHNob3VsZCBiZSB1c2VkLlxuICBAaWYgJGN1c3RvbS1tYXAge1xuICAgICRHdXR0ZXItTWFwOiAkY3VzdG9tLW1hcDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIHNncy1oYXMoJ2d1dHRlcnMnKSB7XG4gICAgICAkR3V0dGVyLU1hcDogc2dzLWdldCgnZ3V0dGVycycpO1xuICAgIH1cbiAgfVxuICAkR3V0dGVyLUtleS1MZW5ndGg6IGxlbmd0aChtYXAta2V5cygkR3V0dGVyLU1hcCkpO1xuXG4gIC8vIENoZWNrIHdoZXRoZXIgdGhlIGRlZmluaXRpb24gd2lsbCBiZSB0aGUgZmlyc3Qgb25lIGluIHRoZSBsaXN0XG4gIC8vIGFuZCB3aGV0aGVyIGl0IGhhcyBubyBicmVha3BvaW50IHNwZWNpZmllZC5cbiAgQGlmICRCcmVha3BvaW50ID09IG51bGwge1xuICAgIC8vIFJldHVybnMgdGhlIGZpcnN0IGl0ZW0gb2YgdGhlIGxpc3QsIGUuIGcuIGAoPEd1dHRlcj4pYFxuICAgICRHdXR0ZXItTWFwOiBtYXAtbWVyZ2UoJEd1dHRlci1NYXAsICgtMXB4OiAkR3V0dGVyKSk7XG4gIH1cbiAgLy8gSUYgdGhlIGxpc3QgaXMgaW5pdGlhdGVkIHdpdGggYSBsaXN0IG9mIEd1dHRlciBjb2x1bW5zIG5lZWQgdG8gc3RhcnQgb2ZmXG4gIC8vIGEgY29tbWEgc2VwcmF0ZWQgbGlzdC5cbiAgQGVsc2Uge1xuICAgIEBpZiBub3QgKG1hcC1oYXMta2V5KCRHdXR0ZXItTWFwLCAtMXB4KSkge1xuICAgICAgJEd1dHRlci1NYXA6IG1hcC1tZXJnZSgkR3V0dGVyLU1hcCwgbWFwLWdldCgkU2luZ3VsYXJpdHktU2V0dGluZ3MsICdndXR0ZXJzJykpO1xuICAgIH1cbiAgICAkR3V0dGVyLU1hcDogbWFwLW1lcmdlKCRHdXR0ZXItTWFwLCAoJEJyZWFrcG9pbnQ6ICRHdXR0ZXIpKTtcbiAgfVxuXG4gICRHdXR0ZXItTWFwOiBzb3J0LW1hcCgkR3V0dGVyLU1hcCwgbm90ICRNb2JpbGUtRmlyc3QpO1xuXG4gIEByZXR1cm4gJEd1dHRlci1NYXA7XG59XG5cbkBtaXhpbiBhZGQtZ3V0dGVyKCRndXR0ZXItZGVmaW5pdGlvbikge1xuICAkQWRkLUd1dHRlcjogYWRkLWd1dHRlcigkZ3V0dGVyLWRlZmluaXRpb24pO1xuICAkSE9MREVSOiBzZ3Mtc2V0KCdndXR0ZXJzJywgJEFkZC1HdXR0ZXIpO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmluZCBndXR0ZXJcbi8vXG4vLyBGaW5kcyB0aGUgZ3V0dGVyIHRoYXQgeW91IGFyZSBvbi5cbi8vIEZyb20gU2luZ3VsYXJpdHlcbi8vIE11c3QgYmUgdXNpbmcgQnJlYWtwb2ludCB0byB3b3JrIHByb3Blcmx5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBmaW5kLWd1dHRlcigkdXNlci1ndXR0ZXJzOiBudWxsKSB7XG5cbiAgLy8gV2Ugc3VwcGx5IGEgZGVmYXVsdCBpZiB0aGUgdXNlciBoYXNuJ3Qgc2V0IGFueSBndXR0ZXJzIGFuZCBoYXNuJ3QgcGFzc2VkIGluIGEgY3VzdG9tIGNvbHVtbiBzZXRcbiAgLy8gVGhlIGRlZmF1bHQgc3VwcGxpZWQgaXMgYmFzZWQgb24gb3JpZ2luYWwgU3VzeSBvcHRpb25zXG4gICRHdXR0ZXJzOiBzZ3MtZ2V0KCdndXR0ZXJzJyk7XG5cbiAgJEZvdW5kOiBmaW5kLW9iamVjdCgkR3V0dGVycywgJHVzZXItZ3V0dGVycyk7XG5cbiAgQGlmIGxlbmd0aCgkRm91bmQpID09IDEge1xuICAgICRGb3VuZDogbnRoKCRGb3VuZCwgMSk7XG4gIH1cblxuICBAcmV0dXJuICRGb3VuZDtcbn0iLCJAaW1wb3J0IFwiZ3V0dGVyLXN0eWxlcy9hZGRcIjtcbkBpbXBvcnQgXCJndXR0ZXItc3R5bGVzL2ZpbmRcIjtcbkBpbXBvcnQgXCJndXR0ZXItc3R5bGVzL2hlbHBlcnNcIjsiLCIvLyBBY2NlcHRzIGEgZ3V0dGVyLXN0eWxlIHN0eWxlIGRlZmluaXRpb24gaW4gdGhlIGh1bWFuLXJlYWRhYmxlIGZvcm1hdC4gQ29udmVydHMgaXQgdG8gdGhlIGludGVybmFsIGZvcm1hdCxcbi8vIGFwcGVuZHMgaXQgdG8gYSBsaXN0IG9mIGd1dHRlci1zdHlsZSBzdHlsZXMgYW5kIHJldHVybnMgdGhlIHJlc3VsdGluZyBsaXN0LlxuLy9cbi8vIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIG9ubHkgcmV0dXJucyBhIG5ldyBsaXN0LCBpdCBkb2VzIG5vdCBtb2RpZnkgdGhlIHNvdXJjZSBsaXN0LlxuLy9cbi8vIGFkZC1ndXR0ZXItc3R5bGUtc3R5bGUoJGd1dHRlci1zdHlsZS1zdHlsZS1kZWZpbml0aW9uLCAkYXBwZW5kLXRvLWxpc3QpXG4vLyAtICRndXR0ZXItc3R5bGUtZGVmaW5pdGlvbiA6IDxkZWZpbml0aW9uPiAgU2VlIGRvY3VtZW50YXRpb24gZm9yIHN5bnRheDpcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vVGVhbS1TYXNzL1Npbmd1bGFyaXR5L3dpa2kvQ3JlYXRpbmctR3JpZHNcbi8vIC0gJGFwcGVuZC10by1saXN0ICAgIDogW2xpc3RdICAgICAgICBBIGxpc3QgdG8gYXBwZW5kIHRvLlxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICRndXR0ZXItc3R5bGVzIGlmIG5vbmUgaXMgc3BlY2lmaWVkLlxuQGZ1bmN0aW9uIGFkZC1ndXR0ZXItc3R5bGUoJGd1dHRlci1zdHlsZS1kZWZpbml0aW9uLCAkY3VzdG9tLW1hcDogZmFsc2UpIHtcbiAgJFBhcnNlZDogICAgICAgIHBhcnNlLWFkZCgkZ3V0dGVyLXN0eWxlLWRlZmluaXRpb24pOyAvLyBQYXJzZXMgZ3V0dGVyLXN0eWxlIGRlZmluaXRpb24gdG8gZ3V0dGVyLXN0eWxlL2JyZWFrcG9pbnRcbiAgJEd1dHRlci1TdHlsZTogIG50aCgkUGFyc2VkLCAxKTsgLy8gRS4gZy4gYCg8Z3V0dGVyLXN0eWxlPilgLlxuICAkQnJlYWtwb2ludDogICAgbnRoKCRQYXJzZWQsIDIpOyAvLyBFaXRoZXIgYCg8YnJlYWtwb2ludD4pYCBvciBmYWxzZS5cbiAgJE1vYmlsZS1GaXJzdDogIHNncy1nZXQoJ21vYmlsZSBmaXJzdCcpO1xuICAkR3V0dGVyLVN0eWxlLU1hcDogKCk7XG5cbiAgLy8gRGV0ZXJtaW5lIGlmIGEgY3VzdG9tIG1hcCBvciB0aGUgZGVmYXVsdCBtYXBzIHNob3VsZCBiZSB1c2VkLlxuICBAaWYgJGN1c3RvbS1tYXAge1xuICAgICRHdXR0ZXItU3R5bGUtTWFwOiAkY3VzdG9tLW1hcDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIHNncy1oYXMoJ2d1dHRlciBzdHlsZXMnKSB7XG4gICAgICAkR3V0dGVyLVN0eWxlLU1hcDogc2dzLWdldCgnZ3V0dGVyIHN0eWxlcycpO1xuICAgIH1cbiAgfVxuICAkR3V0dGVyLVN0eWxlLUtleS1MZW5ndGg6IGxlbmd0aChtYXAta2V5cygkR3V0dGVyLVN0eWxlLU1hcCkpO1xuXG4gIC8vIENoZWNrIHdoZXRoZXIgdGhlIGRlZmluaXRpb24gd2lsbCBiZSB0aGUgZmlyc3Qgb25lIGluIHRoZSBsaXN0XG4gIC8vIGFuZCB3aGV0aGVyIGl0IGhhcyBubyBicmVha3BvaW50IHNwZWNpZmllZC5cbiAgQGlmICRCcmVha3BvaW50ID09IG51bGwge1xuICAgIC8vIFJldHVybnMgdGhlIGZpcnN0IGl0ZW0gb2YgdGhlIGxpc3QsIGUuIGcuIGAoPGd1dHRlci1zdHlsZT4pYFxuICAgICRHdXR0ZXItU3R5bGUtTWFwOiBtYXAtbWVyZ2UoJEd1dHRlci1TdHlsZS1NYXAsICgtMXB4OiAkR3V0dGVyLVN0eWxlKSk7XG4gIH1cbiAgLy8gSUYgdGhlIGxpc3QgaXMgaW5pdGlhdGVkIHdpdGggYSBsaXN0IG9mIGd1dHRlci1zdHlsZSBjb2x1bW5zIG5lZWQgdG8gc3RhcnQgb2ZmXG4gIC8vIGEgY29tbWEgc2VwcmF0ZWQgbGlzdC5cbiAgQGVsc2Uge1xuICAgIEBpZiBub3QgKG1hcC1oYXMta2V5KCRHdXR0ZXItU3R5bGUtTWFwLCAtMXB4KSkge1xuICAgICAgJEd1dHRlci1TdHlsZS1NYXA6IG1hcC1tZXJnZSgkR3V0dGVyLVN0eWxlLU1hcCwgbWFwLWdldCgkU2luZ3VsYXJpdHktU2V0dGluZ3MsICdndXR0ZXIgc3R5bGVzJykpO1xuICAgIH1cbiAgICAkR3V0dGVyLVN0eWxlLU1hcDogbWFwLW1lcmdlKCRHdXR0ZXItU3R5bGUtTWFwLCAoJEJyZWFrcG9pbnQ6ICRHdXR0ZXItU3R5bGUpKTtcbiAgfVxuXG4gICRHdXR0ZXItU3R5bGUtTWFwOiBzb3J0LW1hcCgkR3V0dGVyLVN0eWxlLU1hcCwgbm90ICRNb2JpbGUtRmlyc3QpO1xuXG4gIEByZXR1cm4gJEd1dHRlci1TdHlsZS1NYXA7XG59XG5cbkBtaXhpbiBhZGQtZ3V0dGVyLXN0eWxlKCRndXR0ZXItc3R5bGUtZGVmaW5pdGlvbikge1xuICAkQWRkLWd1dHRlci1zdHlsZTogYWRkLWd1dHRlci1zdHlsZSgkZ3V0dGVyLXN0eWxlLWRlZmluaXRpb24pO1xuICAkSE9MREVSOiBzZ3Mtc2V0KCdndXR0ZXIgc3R5bGVzJywgJEFkZC1ndXR0ZXItc3R5bGUpO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmluZCBndXR0ZXIgc3R5bGVcbi8vXG4vLyBGaW5kcyB0aGUgZ3V0dGVyIHN0eWxlIHRoYXQgeW91IGFyZSB3b3JraW5nIHdpdGguXG4vLyBGcm9tIFNpbmd1bGFyaXR5XG4vLyBNdXN0IGJlIHVzaW5nIEJyZWFrcG9pbnQgdG8gd29yayBwcm9wZXJseVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gZmluZC1ndXR0ZXItc3R5bGUoJHVzZXItZ3V0dGVyLXN0eWxlczogbnVsbCkge1xuXG4gIC8vIFdlIHN1cHBseSBhIGRlZmF1bHQgaWYgdGhlIHVzZXIgaGFzbid0IHNldCBhbnkgZ3V0dGVycyBhbmQgaGFzbid0IHBhc3NlZCBpbiBhIGN1c3RvbSBjb2x1bW4gc2V0XG4gIC8vIFRoZSBkZWZhdWx0IHN1cHBsaWVkIGlzIGJhc2VkIG9uIG9yaWdpbmFsIFN1c3kgb3B0aW9uc1xuICAkR3V0dGVycy1TdHlsZXM6IHNncy1nZXQoJ2d1dHRlciBzdHlsZXMnKTtcblxuICAkRm91bmQ6IGZpbmQtb2JqZWN0KCRHdXR0ZXJzLVN0eWxlcywgJHVzZXItZ3V0dGVyLXN0eWxlcyk7XG5cbiAgQGlmIGxlbmd0aCgkRm91bmQpID09IDEge1xuICAgICRGb3VuZDogbnRoKCRGb3VuZCwgMSk7XG4gIH1cblxuICBAcmV0dXJuICRGb3VuZDtcbn0iLCJAZnVuY3Rpb24gZml4ZWQtZ3V0dGVyKCR1c2VyLWNvbHVtbnMsICR1c2VyLWd1dHRlciwgJHVzZXItZ3V0dGVyLXN0eWxlKSB7XG4gIEBpZiBpbmRleCgkdXNlci1ndXR0ZXItc3R5bGUsICdmaXhlZCcpIHtcbiAgICAvLyBAZGVidWcgJ0ZpeGVkIGluIG91dHB1dCBzdHlsZSc7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJHVzZXItY29sdW1ucykgPT0gJ251bWJlcicgYW5kIG5vdCB1bml0bGVzcygkdXNlci1ndXR0ZXIpIHtcbiAgICAvLyBAZGVidWcgJ0VxdWFsIGNvbHVtbnMgd2l0aCBhIHVuaXQgYmFzZWQgZ3V0dGVyJztcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkdXNlci1jb2x1bW5zKSA9PSAnbGlzdCcge1xuICAgIEBpZiB1bml0KG50aCgkdXNlci1jb2x1bW5zLCAxKSkgIT0gdW5pdCgkdXNlci1ndXR0ZXIpIHtcbiAgICAgIC8vIEBkZWJ1ZyAnQ29sdW1ucyBhbmQgZ3V0dGVycyBhcmUgZGlmZmVyZW50IHVuaXRzJztcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG5AZnVuY3Rpb24gZ3V0dGVyLXByb3BlcnR5KCR1c2VyLWNvbHVtbnMsICR1c2VyLWd1dHRlciwgJHVzZXItZ3V0dGVyLXN0eWxlKSB7XG4gIEBpZiBmaXhlZC1ndXR0ZXIoJHVzZXItY29sdW1ucywgJHVzZXItZ3V0dGVyLCAkdXNlci1ndXR0ZXItc3R5bGUpIHtcbiAgICBAcmV0dXJuICdwYWRkaW5nJztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAnbWFyZ2luJztcbiAgfVxufSIsIkBpbXBvcnQgXCJhcGkvZmxvYXRcIjtcbkBpbXBvcnQgXCJhcGkvaXNvbGF0aW9uXCI7XG5AaW1wb3J0IFwiYXBpL2NhbGNcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBNYXN0ZXIgR3JpZCBTcGFuIG1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBncmlkLXNwYW4oJHNwYW4sICRsb2NhdGlvbjogMSwgJGdyaWQ6IG51bGwsICRndXR0ZXI6IG51bGwsICRvdXRwdXQtc3R5bGU6IG51bGwsICRndXR0ZXItc3R5bGU6IG51bGwsICRvcHRpb25zOiBudWxsKSB7XG5cbiAgQGlmICRvdXRwdXQtc3R5bGUgPT0gbnVsbCB7XG4gICAgJG91dHB1dC1zdHlsZTogc2dzLWdldCgnb3V0cHV0Jyk7XG4gIH1cblxuICAkR3JpZDogZmluZC1ncmlkKCRncmlkKTtcbiAgJEd1dHRlcjogZmluZC1ndXR0ZXIoJGd1dHRlcik7XG4gICRTdHlsZTogZmluZC1ndXR0ZXItc3R5bGUoJGd1dHRlci1zdHlsZSk7XG5cbiAgJFN0YXJ0LVJvdzogc3RhcnQtcm93KCRsb2NhdGlvbik7XG4gICRFbmQtUm93OiBlbmQtcm93KCRzcGFuLCAkbG9jYXRpb24sICRHcmlkKTtcblxuICAkRml4ZWQtR3V0dGVyOiBmaXhlZC1ndXR0ZXIoJEdyaWQsICRHdXR0ZXIsICRTdHlsZSk7XG4gICRTcGxpdC1HdXR0ZXI6IGluZGV4KCRTdHlsZSwgJ3NwbGl0Jyk7XG4gICRHdXR0ZXItUHJvcGVydHk6IGd1dHRlci1wcm9wZXJ0eSgkR3JpZCwgJEd1dHRlciwgJFN0eWxlKTtcblxuICAkRGlyZWN0aW9uOiBzZ3MtZ2V0KCdkaXJlY3Rpb24nKTtcbiAgJEZyb206IGlmKCRvcHRpb25zIGFuZCB0eXBlLW9mKCRvcHRpb25zKSA9PSAnbWFwJywgaWYobWFwLWdldCgkb3B0aW9ucywgJ2Zyb20nKSwgbWFwLWdldCgkb3B0aW9ucywgJ2Zyb20nKSwgJERpcmVjdGlvbiksICREaXJlY3Rpb24pO1xuICAkRnJvbTogaWYoJEZyb20gPT0gJ2x0cicgb3IgJEZyb20gPT0gJ3J0bCcsIG5hbWVkLWRpcmVjdGlvbigkRnJvbSksICRGcm9tKTtcblxuICAkSG9sZGVyOiAoKTtcbiAgQGVhY2ggJGssICR2IGluICRvcHRpb25zIHtcbiAgICAkSG9sZGVyOiBpZigkayA9PSAnZnJvbScsICRIb2xkZXIsIG1hcC1tZXJnZSgkSG9sZGVyLCAoJGs6ICR2KSkpO1xuICB9XG4gICRvcHRpb25zOiBpZihsZW5ndGgoJEhvbGRlcikgPiAwLCAkSG9sZGVyLCBudWxsKTtcblxuICAkU3Bhbi1NYXA6IChcbiAgICAnc3Bhbic6ICRzcGFuLFxuICAgICdsb2NhdGlvbic6ICRsb2NhdGlvbixcbiAgICAnZ3JpZCc6ICRHcmlkLFxuICAgICdndXR0ZXInOiAkR3V0dGVyLFxuICAgICdzdHlsZSc6ICRTdHlsZSxcbiAgICAnc3RhcnQgcm93JzogJFN0YXJ0LVJvdyxcbiAgICAnZW5kIHJvdyc6ICRFbmQtUm93LFxuICAgICdmaXhlZCBndXR0ZXInOiAkRml4ZWQtR3V0dGVyLFxuICAgICdzcGxpdCBndXR0ZXInOiAkU3BsaXQtR3V0dGVyLFxuICAgICdndXR0ZXIgcHJvcGVydHknOiAkR3V0dGVyLVByb3BlcnR5LFxuICAgICdvcHRpb25zJzogJG9wdGlvbnNcbiAgKTtcblxuICBAaWYgc2dzLWdldCgnZGVidWcnKSAhPSBmYWxzZSB7XG4gICAgLXNncy1zcGFuLXNldHRpbmdzOiBpbnNwZWN0KCRTcGFuLU1hcCk7XG4gIH1cblxuXG4gIEBpZiBmdW5jdGlvbi1leGlzdHMoJ291dHB1dC0jeyRvdXRwdXQtc3R5bGV9Jykge1xuICAgICRMZWZ0OiAoKTtcbiAgICAkUmlnaHQ6ICgpO1xuXG4gICAgQGlmICREaXJlY3Rpb24gPT0gJ2JvdGgnIG9yICRGcm9tID09ICdsZWZ0JyBvciAoJERpcmVjdGlvbiA9PSAncnRsJyBhbmQgJEZyb20gPT0gJ29wcG9zaXRlJykge1xuICAgICAgJExlZnQ6IGNhbGwoJ291dHB1dC0jeyRvdXRwdXQtc3R5bGV9JywgbWFwLW1lcmdlKCRTcGFuLU1hcCwgKCdkaXJlY3Rpb24nOiBsZWZ0KSkpO1xuICAgIH1cblxuICAgIEBpZiAkRGlyZWN0aW9uID09ICdib3RoJyBvciAkRnJvbSA9PSAncmlnaHQnIG9yICgkRGlyZWN0aW9uID09ICdsdHInIGFuZCAkRnJvbSA9PSAnb3Bwb3NpdGUnKSB7XG4gICAgICAkUmlnaHQ6IGNhbGwoJ291dHB1dC0jeyRvdXRwdXQtc3R5bGV9JywgbWFwLW1lcmdlKCRTcGFuLU1hcCwgKCdkaXJlY3Rpb24nOiByaWdodCkpKTtcbiAgICB9XG5cbiAgICAkTGVmdC1LZXlzOiBtYXAta2V5cygkTGVmdCk7XG4gICAgJFJpZ2h0LUtleXM6IG1hcC1rZXlzKCRSaWdodCk7XG4gICAgJEV4Y2x1ZGU6ICgpO1xuXG4gICAgQGVhY2ggJGtleSBpbiAkTGVmdC1LZXlzIHtcbiAgICAgIEBpZiBpbmRleCgkUmlnaHQtS2V5cywgJGtleSkge1xuICAgICAgICBAaWYgbWFwLWdldCgkUmlnaHQsICRrZXkpID09IG1hcC1nZXQoJExlZnQsICRrZXkpIHtcbiAgICAgICAgICAkRXhjbHVkZTogYXBwZW5kKCRFeGNsdWRlLCAka2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsd2F5cyB0cnkgYW5kIHByaW50IHRoZSBMZWZ0IHZhbHVlXG4gICAgQGluY2x1ZGUgZ3JpZC1zcGFuLWJ1aWxkLWV4Y2x1ZGUoJExlZnQsICRFeGNsdWRlLCBmYWxzZSk7XG5cbiAgICAvLyBJZiBEaXJlY3Rpb24gaXMgQm90aCBvciBSVEwsIGFkZCB0aGUgUlRMIGF0dHJpYnV0ZSBzZWxlY3RvclxuICAgIEBpZiAkRGlyZWN0aW9uID09ICdib3RoJyBvciAkRGlyZWN0aW9uID09ICdydGwnIHtcbiAgICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtc3Bhbi1idWlsZC1leGNsdWRlKCRSaWdodCwgJEV4Y2x1ZGUsIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4tYnVpbGQtZXhjbHVkZSgkUmlnaHQsICRFeGNsdWRlLCB0cnVlKTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYW4gb3V0cHV0IHN0eWxlIG5hbWVkIGAjeyRvdXRwdXQtc3R5bGV9YC4gUGxlYXNlIGVuc3VyZSB0aGF0IHRoZSBmdW5jdGlvbiBgb3V0cHV0LSN7JG91dHB1dC1zdHlsZX1gIGFuZCB0aGF0IHRoZSBvdXRwdXQgc3R5bGUgYCN7JG91dHB1dC1zdHlsZX1gIGFyZSBib3RoIGF2YWlsYWJsZSBiZWZvcmUgdHJ5aW5nIHRvIHVzZSB0aGVtLlwiO1xuICB9XG59XG5cbkBtaXhpbiBncmlkLXNwYW4tYnVpbGQoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnbWFwJyB7XG4gICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlYWNoICRwcmVmaXgsICR2YWwgaW4gJHZhbHVlIHtcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGdyaWQtc3Bhbi1idWlsZC1leGNsdWRlKCRwcm9wZXJ0aWVzLCAkZGVsdGEsICRleGNsdWRlOiBmYWxzZSkge1xuICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmICRleGNsdWRlIHtcbiAgICAgIEBpZiBub3QgaW5kZXgoJGRlbHRhLCAkcHJvcGVydHkpIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuLWJ1aWxkKCRwcm9wZXJ0eSwgJHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuLWJ1aWxkKCRwcm9wZXJ0eSwgJHZhbHVlKTtcbiAgICB9XG4gIH1cbn0iLCJAZnVuY3Rpb24gb3V0cHV0LWZsb2F0KCRTcGFuLU1hcCkge1xuICAvLyBTZXQgdXAgTGVmdC9SaWdodCBtYXBzXG4gICRSZXR1cm46ICgpO1xuXG4gICRTcGFuOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3NwYW4nKTtcbiAgJExvY2F0aW9uOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2xvY2F0aW9uJyk7XG5cbiAgJEdyaWQ6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZ3JpZCcpO1xuICAkR3V0dGVyOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2d1dHRlcicpO1xuICAkU3R5bGU6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3R5bGUnKTtcblxuICAkU3RhcnQtUm93OiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3N0YXJ0IHJvdycpO1xuICAkRW5kLVJvdzogbWFwLWdldCgkU3Bhbi1NYXAsICdlbmQgcm93Jyk7XG5cbiAgJEZpeGVkLUd1dHRlcjogbWFwLWdldCgkU3Bhbi1NYXAsICdmaXhlZCBndXR0ZXInKTtcbiAgJFNwbGl0LUd1dHRlcjogbWFwLWdldCgkU3Bhbi1NYXAsICdzcGxpdCBndXR0ZXInKTtcbiAgJEd1dHRlci1Qcm9wZXJ0eTogbWFwLWdldCgkU3Bhbi1NYXAsICdndXR0ZXIgcHJvcGVydHknKTtcblxuICAkRGlyZWN0aW9uOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2RpcmVjdGlvbicpO1xuICAkT3B0aW9uczogbWFwLWdldCgkU3Bhbi1NYXAsICdvcHRpb25zJyk7XG5cbiAgQGlmICRTdGFydC1Sb3cge1xuICAgICRMb2NhdGlvbjogMTtcbiAgfVxuICBAZWxzZSBpZiAkRW5kLVJvdyB7XG4gICAgJExvY2F0aW9uOiBjb2x1bW4tY291bnQoJEdyaWQpIC0gJFNwYW4gKyAxO1xuICB9XG5cbiAgJFdpZHRoOiBjb2x1bW4tc3BhbigkU3BhbiwgJExvY2F0aW9uLCAkR3JpZCwgJEd1dHRlciwgJFN0eWxlKTtcbiAgJE1hcmdpbi1TcGFuOiBjb2x1bW4tc3BhbigoJExvY2F0aW9uIC0gMSksIDEsICRHcmlkLCAkR3V0dGVyLCAkU3R5bGUpO1xuICAkR3V0dGVyLVNwYW46IGd1dHRlci1zcGFuKCRHdXR0ZXIsICRHcmlkKTtcblxuICAvLyBCYWNrd2FyZHMgQ29tcGF0aWJpbGl0eSBmb3IgT3B0aW9uc1xuICBAaWYgdHlwZS1vZigkT3B0aW9ucykgIT0gJ21hcCcgYW5kICRPcHRpb25zICE9IG51bGwge1xuICAgICRPcHRpb25zOiAoJ2NsZWFyJzogdW5xdW90ZShudGgoJE9wdGlvbnMsIDEpKSk7XG4gIH1cblxuICAkRGlyOiAkRGlyZWN0aW9uO1xuICAkT3BwOiBvcHBvc2l0ZS1kaXJlY3Rpb24oJERpcik7XG5cbiAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnd2lkdGgnOiAkV2lkdGgpKTtcbiAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnY2xlYXInOiAkT3BwKSk7XG5cbiAgQGlmICgkRW5kLVJvdykge1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2Zsb2F0JzogJE9wcCkpO1xuXG4gICAgQGlmICRTcGxpdC1HdXR0ZXIgYW5kIG5vdCAkRml4ZWQtR3V0dGVyIHtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skRGlyfSc6IDApKTtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6ICRHdXR0ZXItU3BhbiAvIDIpKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90ICRGaXhlZC1HdXR0ZXIge1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogMCkpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnZmxvYXQnOiAkRGlyKSk7XG5cbiAgICBAaWYgJFNwbGl0LUd1dHRlciBhbmQgbm90ICRGaXhlZC1HdXR0ZXIge1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyREaXJ9JzogJEd1dHRlci1TcGFuIC8gMikpO1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuIC8gMikpO1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QgJEZpeGVkLUd1dHRlciB7XG4gICAgICBAaWYgJFN0YXJ0LVJvdyB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skRGlyfSc6IDApKTtcbiAgICAgIH1cbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6ICRHdXR0ZXItU3BhbikpO1xuICAgIH1cbiAgfVxuICAvLyBJZiBvcHRpb25zIGFyZSBzZXQsIHdlIG1lcmdlIHRoZW0gaW4hXG4gIEBpZiAoJE9wdGlvbnMpIHtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgJE9wdGlvbnMpO1xuICB9XG5cbiAgLy8gSWYgQ0xlYXIgaXNuJ3QgYWxyZWFkeSBhdmFpbGFibGUsIHNldCBpdCFcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkUmV0dXJuLCAnY2xlYXInKSB7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnY2xlYXInOiBub25lKSk7XG4gIH1cblxuICAvLyBMZWZ0IEZpeGVkIEd1dHRlcnNcbiAgQGlmICRGaXhlZC1HdXR0ZXIge1xuICAgIEBpZiBpbmRleCgkU3R5bGUsICdzcGxpdCcpIHtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skRGlyfSc6ICRHdXR0ZXItU3BhbiAvIDIpKTtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6ICRHdXR0ZXItU3BhbiAvIDIpKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmIG5vdCAkRW5kLVJvdyB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6ICRHdXR0ZXItU3BhbikpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JE9wcH0nOiAwKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkUmV0dXJuO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhhcHB5IFN5bnRheCBmb3IgRmxvYXRcbi8vXG4vLyBNYWtlcyB3b3JraW5nIHdpdGggRmxvYXQgZWFzaWVyLCBhcyBpdCBhbGxvd3MgeW91IHRvIHdhbGsgdGhlIGdyaWQgZm9yIHN5bW1ldHJpYyBncmlkcyBhbmQgZWFzeSBhcHBseWluZyBvZiAnbGFzdCcgYW5kICdmaXJzdCcsIGFzIHdlbGwgYXMgYXV0b21hdGljYWxseSBidWlsZGluZyB0aGUgdmVyYm9zZSBncmlkLXNwYW4gbWl4aW4gY2FsbFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gZmxvYXQtc3BhbigkU3BhbiwgJExvY2F0aW9uOiBmYWxzZSwgJGdyaWQ6IGZhbHNlLCAkZ3V0dGVyOiBmYWxzZSwgJGd1dHRlci1zdHlsZTogZmFsc2UsICRmcm9tOiBmYWxzZSkge1xuICAkZ3JpZDogZmluZC1ncmlkKCRncmlkKTtcbiAgJGd1dHRlcjogZmluZC1ndXR0ZXIoJGd1dHRlcik7XG4gICRyb3c6IGZhbHNlO1xuXG4gICRPcHRpb25zOiBpZigkZnJvbSwgKCdmcm9tJzogJGZyb20pLCBudWxsKTtcblxuICAvLyBXb3JraW5nIGFyb3VuZCBTQVNTIHRyZWF0aW5nIGEgbnVtYmVyIGxpa2UgYSBsaXN0IHdpdGggb25lIGVsZW1lbnRcbiAgQGlmIHR5cGUtb2YoJGdyaWQpID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRncmlkKSA9PSAxIHtcbiAgICAkZ3JpZDogbnRoKCRncmlkLCAxKTtcbiAgfVxuXG4gIC8vIFdvcmtpbmcgd2l0aCBhIHN5bW1ldHJpYyBncmlkXG4gIEBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbnVtYmVyJyB7XG4gICAgLy8gU3BlY2lhbCB0cmVhdG1lbnQgZm9yIG5vbi1udW1lcmljIGxvY2F0aW9uXG4gICAgQGlmIHR5cGUtb2YoJExvY2F0aW9uKSAhPSAnbnVtYmVyJyB7XG4gICAgICBAaWYgJExvY2F0aW9uID09ICdsYXN0JyBvciAkTG9jYXRpb24gPT0gJ29tZWdhJyB7XG4gICAgICAgICRMb2NhdGlvbjogJGdyaWQgLSAkU3BhbiArIDE7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBpZiAkTG9jYXRpb24gPT0gJ2ZpcnN0JyBvciAkTG9jYXRpb24gPT0gJ2FscGhhJyB7XG4gICAgICAgICAgJHJvdzogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAkTG9jYXRpb246IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZ3JpZC1zcGFuKCRTcGFuLCAkTG9jYXRpb24sICRncmlkLCAkZ3V0dGVyLCAnZmxvYXQnLCAkZ3V0dGVyLXN0eWxlLCAkT3B0aW9ucyk7XG5cbiAgICBAaWYgJHJvdyB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gIH1cbiAgLy8gV29ya2luZyB3aXRoIGFuIGFzeW1tZXRyaWMgZ3JpZCwgc2hvdWxkIGhhdmUgbG9jYXRpb24gcHJvdmlkZWRcbiAgQGVsc2UgaWYgdHlwZS1vZigkZ3JpZCkgPT0gJ2xpc3QnIGFuZCAkTG9jYXRpb24gIT0gZmFsc2Uge1xuICAgIEBpbmNsdWRlIGdyaWQtc3BhbigkU3BhbiwgJExvY2F0aW9uLCAkZ3JpZCwgJGd1dHRlciwgJ2Zsb2F0JywgJGd1dHRlci1zdHlsZSwgJE9wdGlvbnMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnQXN5bW1ldHJpYyBHcmlkcyBuZWVkIGEgTG9jYXRpb24gdmFsdWUgYXMgd2VsbCBhcyBhIHNwYW4gdmFsdWUgaW4gb3JkZXIgdG8ga25vdyB3aGVyZSBvbiB0aGUgZ3JpZCB5b3UgYXJlISBQbGVhc2UgaW5jbHVkZSBhIGxvY2F0aW9uIHZhbHVlISc7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBvdXRwdXQtaXNvbGF0aW9uKCRTcGFuLU1hcCkge1xuICAvLyBTZXQgdXAgTGVmdC9SaWdodCBtYXBzXG4gICRSZXR1cm46ICgpO1xuXG4gICRTcGFuOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3NwYW4nKTtcbiAgJExvY2F0aW9uOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2xvY2F0aW9uJyk7XG5cbiAgJEdyaWQ6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZ3JpZCcpO1xuICAkR3V0dGVyOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2d1dHRlcicpO1xuICAkU3R5bGU6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3R5bGUnKTtcblxuICAkU3RhcnQtUm93OiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3N0YXJ0IHJvdycpO1xuICAkRW5kLVJvdzogbWFwLWdldCgkU3Bhbi1NYXAsICdlbmQgcm93Jyk7XG5cbiAgJEZpeGVkLUd1dHRlcjogbWFwLWdldCgkU3Bhbi1NYXAsICdmaXhlZCBndXR0ZXInKTtcbiAgJFNwbGl0LUd1dHRlcjogbWFwLWdldCgkU3Bhbi1NYXAsICdzcGxpdCBndXR0ZXInKTtcbiAgJEd1dHRlci1Qcm9wZXJ0eTogbWFwLWdldCgkU3Bhbi1NYXAsICdndXR0ZXIgcHJvcGVydHknKTtcblxuICAkRGlyZWN0aW9uOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2RpcmVjdGlvbicpO1xuICAkT3B0aW9uczogbWFwLWdldCgkU3Bhbi1NYXAsICdvcHRpb25zJyk7XG5cbiAgJFdpZHRoOiBjb2x1bW4tc3BhbigkU3BhbiwgJExvY2F0aW9uLCAkR3JpZCwgJEd1dHRlciwgJFN0eWxlKTtcbiAgJE1hcmdpbi1TcGFuOiBjb2x1bW4tc3BhbigoJExvY2F0aW9uIC0gMSksIDEsICRHcmlkLCAkR3V0dGVyLCAkU3R5bGUpO1xuICAkR3V0dGVyLVNwYW46IGd1dHRlci1zcGFuKCRHdXR0ZXIsICRHcmlkKTtcblxuICAvLyBCYWNrd2FyZHMgQ29tcGF0aWJpbGl0eSBmb3IgT3B0aW9uc1xuICBAaWYgdHlwZS1vZigkT3B0aW9ucykgIT0gJ21hcCcgYW5kICRPcHRpb25zICE9IG51bGwge1xuICAgICRPcHRpb25zOiAoJ2NsZWFyJzogdW5xdW90ZShudGgoJE9wdGlvbnMsIDEpKSk7XG4gIH1cblxuICAkRGlyOiAkRGlyZWN0aW9uO1xuICAkT3BwOiBvcHBvc2l0ZS1kaXJlY3Rpb24oJERpcik7XG5cbiAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnd2lkdGgnOiAkV2lkdGgpKTtcblxuICBAaWYgKCRFbmQtUm93KSB7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnZmxvYXQnOiAkT3BwKSk7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAwKSk7XG5cbiAgICBAaWYgJFNwbGl0LUd1dHRlciBhbmQgbm90ICRGaXhlZC1HdXR0ZXIge1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuIC8gMikpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skT3BwfSc6IDApKTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2Zsb2F0JzogJERpcikpO1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyRPcHB9JzogLTEwMCUpKTtcblxuICAgIEBpZiAkU3RhcnQtUm93IHtcbiAgICAgIEBpZiAkU3BsaXQtR3V0dGVyIGFuZCBub3QgJEZpeGVkLUd1dHRlciB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogJEd1dHRlci1TcGFuIC8gMikpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgbm90ICRGaXhlZC1HdXR0ZXIge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skRGlyfSc6IDApKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmICRTcGxpdC1HdXR0ZXIgYW5kIG5vdCAkRml4ZWQtR3V0dGVyIHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAkTWFyZ2luLVNwYW4gKyAkR3V0dGVyLVNwYW4gKyAkR3V0dGVyLVNwYW4gLyAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiBub3QgJEZpeGVkLUd1dHRlciB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogJE1hcmdpbi1TcGFuICsgJEd1dHRlci1TcGFuKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogJE1hcmdpbi1TcGFuKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIElmIG9wdGlvbnMgYXJlIHNldCwgd2UgbWVyZ2UgdGhlbSBpbiFcbiAgQGlmICgkT3B0aW9ucykge1xuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAkT3B0aW9ucyk7XG4gIH1cblxuICAvLyBJZiBDTGVhciBpc24ndCBhbHJlYWR5IGF2YWlsYWJsZSwgc2V0IGl0IVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRSZXR1cm4sICdjbGVhcicpIHtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdjbGVhcic6IG5vbmUpKTtcbiAgfVxuXG4gIC8vIExlZnQgRml4ZWQgR3V0dGVyc1xuICBAaWYgJEZpeGVkLUd1dHRlciB7XG4gICAgQGlmIGluZGV4KCRTdHlsZSwgJ3NwbGl0Jykge1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyREaXJ9JzogJEd1dHRlci1TcGFuIC8gMikpO1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuIC8gMikpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRFbmQtUm93IHtcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6IDApKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRSZXR1cm47XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGFwcHkgU3ludGF4IGZvciBJc29sYXRpb25cbi8vXG4vLyBNYWtlcyB3b3JraW5nIHdpdGggSXNvbGF0aW9uIGVhc2llciwgYXMgaXQgbW92ZXMgQ2xlYXIgdG8gYSAxc3QgY2xhc3MgY2l0aXplbiBvZiB0aGUgbWl4aW4sIGFuZCBhdXRvbWF0aWNhbGx5IGJ1aWxkcyB0aGUgdmVyYm9zZSBncmlkLXNwYW4gbWl4aW4gY2FsbFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gaXNvbGF0aW9uLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJGNsZWFyOiBmYWxzZSwgJGdyaWQ6IGZhbHNlLCAkZ3V0dGVyOiBmYWxzZSwgJGd1dHRlci1zdHlsZTogZmFsc2UsICRmcm9tOiBmYWxzZSkge1xuICAkT3B0aW9uczogKCk7XG4gIEBpZiAkY2xlYXIge1xuICAgICRPcHRpb25zOiBtYXAtbWVyZ2UoJE9wdGlvbnMsICgnY2xlYXInOiB1bnF1b3RlKCRjbGVhcikpKTtcbiAgfVxuICBAaWYgJGZyb20ge1xuICAgICRPcHRpb25zOiBtYXAtbWVyZ2UoJE9wdGlvbnMsICgnZnJvbSc6ICRmcm9tKSk7XG4gIH1cblxuICAkT3B0aW9uczogaWYobGVuZ3RoKCRPcHRpb25zKSA+IDAsICRPcHRpb25zLCBudWxsKTtcbiAgQGluY2x1ZGUgZ3JpZC1zcGFuKCRTcGFuLCAkTG9jYXRpb24sICRncmlkLCAkZ3V0dGVyLCAnaXNvbGF0aW9uJywgJGd1dHRlci1zdHlsZSwgJE9wdGlvbnMpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhhcHB5IFN5bnRheCBvZiBBc3ltbWV0cmljIEdyaWRzXG4vL1xuLy8gTWFrZXMgd29ya2luZyB3aXRoIGFzeW1tZXRyaWMgZ3JpZHMgZWFzaWVyIVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gYXN5bW1ldHJpYy1zcGFuKCRMb2NhdGlvbiwgJFNwYW46IGZhbHNlLCAkZ3JpZDogZmFsc2UsICRndXR0ZXI6IGZhbHNlLCAkZ3V0dGVyLXN0eWxlOiBmYWxzZSwgJGZyb206IGZhbHNlLCAkb3V0cHV0LXN0eWxlOiBmYWxzZSkge1xuXG4gICRTcGFuOiBpZigkU3BhbiAhPSBmYWxzZSwgJFNwYW4sIDEpO1xuICAkb3V0cHV0LXN0eWxlOiBpZigkb3V0cHV0LXN0eWxlICE9IGZhbHNlLCAkb3V0cHV0LXN0eWxlLCBzZ3MtZ2V0KCdhc3ltbWV0cmljIG91dHB1dCcpKTtcblxuICAkT3B0aW9uczogKCk7XG4gIEBpZiAkZnJvbSB7XG4gICAgJE9wdGlvbnM6IG1hcC1tZXJnZSgkT3B0aW9ucywgKCdmcm9tJzogJGZyb20pKTtcbiAgfVxuICAkT3B0aW9uczogaWYobGVuZ3RoKCRPcHRpb25zKSA+IDAsICRPcHRpb25zLCBudWxsKTtcblxuICBAaW5jbHVkZSBncmlkLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJGdyaWQsICRndXR0ZXIsICRvdXRwdXQtc3R5bGUsICRndXR0ZXItc3R5bGUsICRPcHRpb25zKTtcbn0iLCJAZnVuY3Rpb24gb3V0cHV0LWNhbGMoJFNwYW4tTWFwKSB7XG4gIC8vIFNldCB1cCBMZWZ0L1JpZ2h0IG1hcHNcbiAgJFJldHVybjogKCk7XG5cbiAgJFNwYW46IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3BhbicpO1xuICAkTG9jYXRpb246IG1hcC1nZXQoJFNwYW4tTWFwLCAnbG9jYXRpb24nKTtcblxuICAkR3JpZDogbWFwLWdldCgkU3Bhbi1NYXAsICdncmlkJyk7XG4gICRHdXR0ZXI6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZ3V0dGVyJyk7XG4gICRTdHlsZTogbWFwLWdldCgkU3Bhbi1NYXAsICdzdHlsZScpO1xuXG4gIEBpZiB1bml0bGVzcygkR3V0dGVyKSB7XG4gICAgJEVSUk9SLU1FU1NBR0U6IFwiQ2FsYyBvdXRwdXQgc3R5bGUgdXNlcyBmaXhlZCBndXR0ZXJzIChndXR0ZXJzIHdpdGggdW5pdHMpLiBQbGVhc2UgZGVmaW5lIGZpeGVkIGd1dHRlcnMgdG8gdXNlIGNhbGNcIjtcbiAgICBAaWYgZmVhdHVyZS1leGlzdHMoYXQtZXJyb3IpIHtcbiAgICAgIEBlcnJvciAkRVJST1ItTUVTU0FHRTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJEVSUk9SLU1FU1NBR0U7XG4gICAgfVxuICAgIEByZXR1cm4gJFJldHVybjtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRHcmlkKSA9PSAnbnVtYmVyJyB7XG4gICAgJEVSUk9SLU1FU1NBR0U6IFwiQ2FsYyBvdXRwdXQgc3R5bGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIGFzeW1tZXRyaWMgZ3JpZHMsIGVzcGVjaWFsbHkgd2l0aCBhIG1peCBvZiBmaXhlZCBhbmQgZmx1aWQgY29sdW1ucy4gUGxlYXNlIGRlZmluZSBhbiBhc3ltbWV0cmljIGdyaWQgb3IgdXNlIGFub3RoZXIgb3V0cHV0IHN0eWxlLlwiO1xuICAgIEBpZiBmZWF0dXJlLWV4aXN0cyhhdC1lcnJvcikge1xuICAgICAgQGVycm9yICRFUlJPUi1NRVNTQUdFO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAkRVJST1ItTUVTU0FHRTtcbiAgICB9XG4gICAgQHJldHVybiAkUmV0dXJuO1xuICB9XG5cbiAgJFN0YXJ0LVJvdzogbWFwLWdldCgkU3Bhbi1NYXAsICdzdGFydCByb3cnKTtcbiAgJEVuZC1Sb3c6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZW5kIHJvdycpO1xuXG4gICRTcGxpdC1HdXR0ZXI6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3BsaXQgZ3V0dGVyJyk7XG5cbiAgJERpcmVjdGlvbjogbWFwLWdldCgkU3Bhbi1NYXAsICdkaXJlY3Rpb24nKTtcbiAgJE9wdGlvbnM6IG1hcC1nZXQoJFNwYW4tTWFwLCAnb3B0aW9ucycpO1xuXG4gICREaXI6ICREaXJlY3Rpb247XG4gICRPcHA6IG9wcG9zaXRlLWRpcmVjdGlvbigkRGlyKTtcblxuICAkV2lkdGg6ICcnO1xuICAkTWFyZ2luOiBudWxsO1xuICAkTWluLVdpZHRoOiAnKCc7XG5cbiAgJEZpeGVkOiAoKTtcbiAgJEZsdWlkOiAoKTtcbiAgJEZpeGVkLVRvdGFsczogKCdweCc6IDAsICdlbSc6IDAsICclJzogMCk7XG4gICRHdXR0ZXItVG90YWxzOiBpZihzdHItaW5kZXgoJFN0eWxlLCAnc3BsaXQnKSwgJEd1dHRlciAqIGxlbmd0aCgkR3JpZCksICRHdXR0ZXIgKiAobGVuZ3RoKCRHcmlkKSAtIDEpKTtcbiAgJEZsdWlkLVRvdGFsczogMDtcbiAgJEZsdWlkLUZpeGVkLVN1bTogJyc7XG4gICRTaW5nbGUtRmx1aWQ6ICcnO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRHcmlkKSB7XG4gICAgJEl0ZW06IG50aCgkR3JpZCwgJGkpO1xuICAgIEBpZiBub3QgdW5pdGxlc3MoJEl0ZW0pIHtcbiAgICAgICRGaXhlZDogbWFwLW1lcmdlKCRGaXhlZCwgKCRpOiAkSXRlbSkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkRmx1aWQ6IG1hcC1tZXJnZSgkRmx1aWQsICgkaTogJEl0ZW0pKTtcbiAgICB9XG4gIH1cblxuICBAZWFjaCAkaywgJHYgaW4gJEZpeGVkIHtcbiAgICAkVW5pdDogdW5pdCgkdik7XG4gICAgJFJ1bm5pbmc6IG1hcC1nZXQoJEZpeGVkLVRvdGFscywgJFVuaXQpICsgJHY7XG4gICAgJEZpeGVkLVRvdGFsczogbWFwLW1lcmdlKCRGaXhlZC1Ub3RhbHMsICgkVW5pdDogJFJ1bm5pbmcpKTtcbiAgfVxuXG4gIEBlYWNoICRrLCAkdiBpbiAkRmx1aWQge1xuICAgICRGbHVpZC1Ub3RhbHM6ICRGbHVpZC1Ub3RhbHMgKyAkdjtcbiAgfVxuXG4gIEBlYWNoICRrLCAkdiBpbiAkRml4ZWQtVG90YWxzIHtcblxuICAgIEBpZiAkdiAhPSAwIHtcbiAgICAgICRGbHVpZC1GaXhlZC1TdW06ICcjeyRGbHVpZC1GaXhlZC1TdW19I3skdn0gKyAnO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdpZHRoIG9mIGEgc2luZ2xlIGZsdWlkIGl0ZW0sIGZvciBjYWxjKClcbiAgJFNpbmdsZS1GbHVpZDogJygoMTAwJSAtICgjeyRGbHVpZC1GaXhlZC1TdW19I3skR3V0dGVyLVRvdGFsc30pKSAvICgjeyRGbHVpZC1Ub3RhbHN9KSknO1xuXG4gIC8vIE1hcmdpbiBDYWxjdWxhdGlvblxuICBAaWYgbm90ICRTdGFydC1Sb3cgb3Igbm90ICRFbmQtUm93IHtcbiAgICBAaWYgJFNwbGl0LUd1dHRlciB7XG4gICAgICAkTWFyZ2luOiAnI3skR3V0dGVyIC8gMn0gKyAnO1xuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAxIHRvICRMb2NhdGlvbiB7XG4gICAgICBAaWYgdW5pdGxlc3MobnRoKCRHcmlkLCAkaSkpIHtcbiAgICAgICAgJE1hcmdpbjogJyN7JE1hcmdpbn0oI3skU2luZ2xlLUZsdWlkfSAqICN7bnRoKCRHcmlkLCAkaSl9ICsgI3skR3V0dGVyfSkgKyAnO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkTWFyZ2luOiAnI3skTWFyZ2lufSgje250aCgkR3JpZCwgJGkpfSArICN7JEd1dHRlcn0pICsgJztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGlmICRNYXJnaW4gIT0gbnVsbCB7XG4gICAgJE1hcmdpbjogc3RyLXNsaWNlKCRNYXJnaW4sIDAsIC00KTtcbiAgfVxuXG5cbiAgLy8gV2lkdGggQ2FsY3VsYXRpb25cbiAgQGlmICRTcGFuID09IDEge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkRml4ZWQsICRMb2NhdGlvbikge1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnd2lkdGgnOiBtYXAtZ2V0KCRGaXhlZCwgJExvY2F0aW9uKSkpO1xuICAgIH1cbiAgICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkRmx1aWQsICRMb2NhdGlvbikge1xuICAgICAgJE1hdGg6ICcoI3skU2luZ2xlLUZsdWlkfSkgKiAje250aCgkR3JpZCwgJExvY2F0aW9uKX0nO1xuICAgICAgJFNwYW4tTWFwOiAoJ3dpZHRoJzogKCd3ZWJraXQnOiAtd2Via2l0LWNhbGMoI3t1bnF1b3RlKCRNYXRoKX0pLCAnc3RhbmRhcmQnOiBjYWxjKCN7dW5xdW90ZSgkTWF0aCl9KSkpO1xuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICRTcGFuLU1hcCk7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkTG9jYXRpb24tRW5kOiAkTG9jYXRpb24gKyAoJFNwYW4gLSAxKTtcbiAgICAkRml4ZWQtQ291bnRlcjogMDtcbiAgICBAZm9yICRpIGZyb20gJExvY2F0aW9uIHRocm91Z2ggJExvY2F0aW9uLUVuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MobnRoKCRHcmlkLCAkaSkpIHtcbiAgICAgICAgJFdpZHRoOiAnI3skV2lkdGh9KCN7JFNpbmdsZS1GbHVpZH0gKiAje250aCgkR3JpZCwgJGkpfSc7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRGaXhlZC1Db3VudGVyOiAkRml4ZWQtQ291bnRlciArIDE7XG4gICAgICAgICRNaW4tV2lkdGg6ICcjeyRNaW4tV2lkdGh9I3tudGgoJEdyaWQsICRpKX0gKyAjeyRHdXR0ZXJ9ICsgJztcbiAgICAgICAgJFdpZHRoOiAnI3skV2lkdGh9KCN7bnRoKCRHcmlkLCAkaSl9JztcbiAgICAgIH1cblxuXG4gICAgICBAaWYgJGkgIT0gJExvY2F0aW9uLUVuZCB7XG4gICAgICAgICRXaWR0aDogJyN7JFdpZHRofSArICN7JEd1dHRlcn0pICsgJztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJE1pbi1XaWR0aDogc3RyLXNsaWNlKCRNaW4tV2lkdGgsIDAsIC00KTtcbiAgICAgICAgQGlmICRGaXhlZC1Db3VudGVyID09IDEge1xuICAgICAgICAgICRNaW4tV2lkdGg6ICcjeyRNaW4tV2lkdGh9IC0gI3skR3V0dGVyfSc7XG4gICAgICAgIH1cbiAgICAgICAgJE1pbi1XaWR0aDogJyN7JE1pbi1XaWR0aH0pJztcbiAgICAgICAgJFdpZHRoOiAnI3skV2lkdGh9KSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWluIHdpZHRoIGhhbmRsaW5nXG4gICAgQGlmICRNaW4tV2lkdGggIT0gJyknIHtcbiAgICAgICRNaW4tTWFwOiAoJ21pbi13aWR0aCc6ICgnd2Via2l0JyA6IC13ZWJraXQtY2FsYygje3VucXVvdGUoJE1pbi1XaWR0aCl9KSwgJ3N0YW5kYXJkJzogY2FsYygje3VucXVvdGUoJE1pbi1XaWR0aCl9KSApKTtcblxuICAgICAgQGlmIHNncy1nZXQoJ2NhbGMgaW5jbHVkZSBtaW4td2lkdGgnKSB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAkTWluLU1hcCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJFNwYW4tTWFwOiAoJ3dpZHRoJzogKCd3ZWJraXQnOiAtd2Via2l0LWNhbGMoI3t1bnF1b3RlKCRXaWR0aCl9KSwgJ3N0YW5kYXJkJzogY2FsYygje3VucXVvdGUoJFdpZHRoKX0pICkgKTtcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgJFNwYW4tTWFwKTtcbiAgfVxuXG4gIC8vIEJ1aWxkIG1hcmdpbnMgYW5kIEZsb2F0c1xuICBAaWYgKCRFbmQtUm93KSB7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnZmxvYXQnOiAkT3BwKSk7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAwKSk7XG5cbiAgICBAaWYgJFNwbGl0LUd1dHRlciB7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skT3BwfSc6ICRHdXR0ZXIgLyAyKSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyRPcHB9JzogMCkpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnZmxvYXQnOiAkRGlyKSk7XG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JE9wcH0nOiAtMTAwJSkpO1xuXG4gICAgQGlmICRTdGFydC1Sb3cge1xuICAgICAgQGlmICRTcGxpdC1HdXR0ZXIge1xuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skRGlyfSc6ICRHdXR0ZXIgLyAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogMCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkTWFyZ2luLU1hcDogKCdtYXJnaW4tI3skRGlyfSc6ICgnd2Via2l0JzogLXdlYmtpdC1jYWxjKCN7dW5xdW90ZSgkTWFyZ2luKX0pLCAnc3RhbmRhcmQnOiBjYWxjKCN7dW5xdW90ZSgkTWFyZ2luKX0pKSk7XG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgJE1hcmdpbi1NYXApO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJFJldHVybjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGFwcHkgU3ludGF4IGZvciBDYWxjXG4vL1xuLy8gTWFrZXMgd29ya2luZyB3aXRoIENhbGMgZWFzaWVyLCBhcyBpdCBtb3ZlcyBDbGVhciB0byBhIDFzdCBjbGFzcyBjaXRpemVuIG9mIHRoZSBtaXhpbiwgYW5kIGF1dG9tYXRpY2FsbHkgYnVpbGRzIHRoZSB2ZXJib3NlIGdyaWQtc3BhbiBtaXhpbiBjYWxsXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBjYWxjLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJGNsZWFyOiBmYWxzZSwgJGdyaWQ6IGZhbHNlLCAkZ3V0dGVyOiBmYWxzZSwgJGd1dHRlci1zdHlsZTogZmFsc2UsICRmcm9tOiBmYWxzZSkge1xuXG4gIEBpZiAkZ3V0dGVyICE9IGZhbHNlIGFuZCB1bml0bGVzcygkZ3V0dGVyKSB7XG4gICAgQHdhcm4gXCJDYWxjIG91dHB1dCBzdHlsZSB1c2VzIGZpeGVkIGd1dHRlcnMgKGd1dHRlcnMgd2l0aCB1bml0cykuIFBsZWFzZSBkZWZpbmUgZml4ZWQgZ3V0dGVycyB0byB1c2UgY2FsY1wiO1xuICB9XG5cbiAgQGlmICRncmlkICE9IGZhbHNlIGFuZCB0eXBlLW9mKCRncmlkKSA9PSAnbnVtYmVyJyB7XG4gICAgQHdhcm4gXCJDYWxjIG91dHB1dCBzdHlsZSBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIHdpdGggYXN5bW1ldHJpYyBncmlkcywgZXNwZWNpYWxseSB3aXRoIGEgbWl4IG9mIGZpeGVkIGFuZCBmbHVpZCBjb2x1bW5zLiBQbGVhc2UgZGVmaW5lIGFuIGFzeW1tZXRyaWMgZ3JpZC5cIjtcbiAgfVxuXG4gICRPcHRpb25zOiAoKTtcbiAgQGlmICRjbGVhciB7XG4gICAgJE9wdGlvbnM6IG1hcC1tZXJnZSgkT3B0aW9ucywgKCdjbGVhcic6ICRjbGVhcikpO1xuICB9XG4gIEBpZiAkZnJvbSB7XG4gICAgJE9wdGlvbnM6IG1hcC1tZXJnZSgkT3B0aW9ucywgKCdmcm9tJzogJGZyb20pKTtcbiAgfVxuXG4gICRPcHRpb25zOiBpZihsZW5ndGgoJE9wdGlvbnMpID4gMCwgJE9wdGlvbnMsIG51bGwpO1xuICBAaW5jbHVkZSBncmlkLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJGdyaWQsICRndXR0ZXIsICdjYWxjJywgJGd1dHRlci1zdHlsZSwgJE9wdGlvbnMpO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kQnJlYWtwb2ludC1TZXR0aW5nczogKFxuICAnZGVmYXVsdCBtZWRpYSc6IGFsbCxcbiAgJ2RlZmF1bHQgZmVhdHVyZSc6IG1pbi13aWR0aCxcbiAgJ2RlZmF1bHQgcGFpcic6IHdpZHRoLFxuXG4gICdmb3JjZSBhbGwgbWVkaWEgdHlwZSc6IGZhbHNlLFxuICAndG8gZW1zJzogZmFsc2UsXG4gICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnOiB0cnVlLFxuXG4gICdubyBxdWVyaWVzJzogZmFsc2UsXG4gICdubyBxdWVyeSBmYWxsYmFja3MnOiBmYWxzZSxcblxuICAnYmFzZSBmb250IHNpemUnOiAxNnB4LFxuXG4gICdsZWdhY3kgc3ludGF4JzogZmFsc2Vcbik7XG5cbiRicmVha3BvaW50OiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJicmVha3BvaW50L3NldHRpbmdzXCI7XG5AaW1wb3J0ICdicmVha3BvaW50L2NvbnRleHQnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9oZWxwZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcGFyc2Vycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L25vLXF1ZXJ5JztcblxuQGltcG9ydCAnYnJlYWtwb2ludC9yZXNwb25kLXRvJztcblxuQGltcG9ydCBcImJyZWFrcG9pbnQvbGVnYWN5LXNldHRpbmdzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZztcblxuICAvLyBSZXNldCBjb250ZXh0c1xuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcblxuICAkYnJlYWtwb2ludDogYnJlYWtwb2ludCgkcXVlcnksIGZhbHNlKTtcblxuICAkcXVlcnktc3RyaW5nOiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnknKTtcbiAgJHF1ZXJ5LWZhbGxiYWNrOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnZmFsbGJhY2snKTtcblxuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnY29udGV4dCBob2xkZXInKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnkgY291bnQnKSAhZ2xvYmFsO1xuXG4gIC8vIEFsbG93IGZvciBhbiBhcy1uZWVkZWQgb3ZlcnJpZGUgb3IgdXNhZ2Ugb2Ygbm8gcXVlcnkgZmFsbGJhY2suXG4gIEBpZiAkbm8tcXVlcnkgIT0gZmFsc2Uge1xuICAgICRxdWVyeS1mYWxsYmFjazogJG5vLXF1ZXJ5O1xuICB9XG5cbiAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIFByaW50IE91dCBRdWVyeSBTdHJpbmdcbiAgQGlmIG5vdCBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAbWVkaWEgI3skcXVlcnktc3RyaW5nfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpICE9IGZhbHNlIG9yIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykgPT0gdHJ1ZSB7XG5cbiAgICAkdHlwZTogdHlwZS1vZihicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykpO1xuICAgICRwcmludDogZmFsc2U7XG5cbiAgICBAaWYgKCR0eXBlID09ICdib29sJykge1xuICAgICAgJHByaW50OiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ2xpc3QnKSB7XG4gICAgICBAZWFjaCAkd3JhcHBlciBpbiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09ICR3cmFwcGVyIHtcbiAgICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXcml0ZSBGYWxsYmFja1xuICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSBhbmQgKCRwcmludCA9PSB0cnVlKSB7XG4gICAgICAkdHlwZS1mYWxsYmFjazogdHlwZS1vZigkcXVlcnktZmFsbGJhY2spO1xuXG4gICAgICBAaWYgKCR0eXBlLWZhbGxiYWNrICE9ICdib29sJykge1xuICAgICAgICAjeyRxdWVyeS1mYWxsYmFja30gJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG59XG5cblxuQG1peGluIG1xKCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGFzIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzKCRzZXR0aW5nKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludCwgJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZ2V0KCRzZXR0aW5nKSB7XG4gIEBpZiBicmVha3BvaW50LWhhcygkc2V0dGluZykge1xuICAgIEByZXR1cm4gbWFwLWdldCgkYnJlYWtwb2ludCwgJHNldHRpbmcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJEJyZWFrcG9pbnQtU2V0dGluZ3MsICRzZXR0aW5nKTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNldCBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaWYgKHN0ci1pbmRleCgkc2V0dGluZywgJy0nKSBvciBzdHItaW5kZXgoJHNldHRpbmcsICdfJykpIGFuZCBzdHItaW5kZXgoJHNldHRpbmcsICcgJykgPT0gbnVsbCB7XG4gICAgQHdhcm4gXCJXb3JkcyBpbiBCcmVha3BvaW50IHNldHRpbmdzIHNob3VsZCBiZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLCBub3QgZGFzaGVzIG9yIHVuZGVyc2NvcmVzLiBQbGVhc2UgcmVwbGFjZSBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzIGJldHdlZW4gd29yZHMgd2l0aCBzcGFjZXMuIFNldHRpbmdzIHdpbGwgbm90IHdvcmsgYXMgZXhwZWN0ZWQgdW50aWwgY2hhbmdlZC5cIjtcbiAgfVxuICAkYnJlYWtwb2ludDogbWFwLW1lcmdlKCRicmVha3BvaW50LCAoJHNldHRpbmc6ICR2YWx1ZSkpICFnbG9iYWw7XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgJGJyZWFrcG9pbnQtY2hhbmdlOiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBia3B0LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuQG1peGluIGJrcHQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmVtb3ZlIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAxIHtcbiAgICAkc2V0dGluZ3M6IG50aCgkc2V0dGluZ3MsIDEpO1xuICB9XG5cbiAgQGVhY2ggJHNldHRpbmcgaW4gJHNldHRpbmdzIHtcbiAgICAkYnJlYWtwb2ludDogbWFwLXJlbW92ZSgkYnJlYWtwb2ludCwgJHNldHRpbmcpICFnbG9iYWw7XG4gIH1cbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgJGJyZWFrcG9pbnQtcmVzZXQ6IGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzKTtcbn1cblxuQG1peGluIGJrcHQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIEJyZWFrcG9pbnQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpO1xuJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEhhcyBDb250ZXh0XG4vLyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHlvdSBhcmUgaW5zaWRlIGEgQnJlYWtwb2ludCBxdWVyeVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1oYXMtY29udGV4dCgpIHtcbiAgQGlmIGxlbmd0aCgkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50KSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBHZXQgQ29udGV4dFxuLy8gJGZlYXR1cmU6IElucHV0IGZlYXR1cmUgdG8gZ2V0IGl0J3MgY3VycmVudCBNUSBjb250ZXh0LiBSZXR1cm5zIGZhbHNlIGlmIG5vIGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJGZlYXR1cmUpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKSB7XG4gICAgJGdldDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gICAgLy8gU3BlY2lhbCBoYW5kbGluZyBvZiBuby1xdWVyeSBmcm9tIGdldCBzaWRlIHNvIC9mYWxzZS8gcHJlcGVuZHMgYXJlbid0IHJldHVybmVkXG4gICAgQGlmICRmZWF0dXJlID09ICduby1xdWVyeScge1xuICAgICAgQGlmIHR5cGUtb2YoJGdldCkgPT0gJ2xpc3QnIGFuZCBsZW5ndGgoJGdldCkgPiAxIGFuZCBudGgoJGdldCwgMSkgPT0gZmFsc2Uge1xuICAgICAgICAkZ2V0OiBudGgoJGdldCwgbGVuZ3RoKCRnZXQpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiAkZ2V0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgYnJlYWtwb2ludC1oYXMtY29udGV4dCgpIGFuZCAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgIEByZXR1cm4gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIGZ1bmN0aW9uIHRvIHNldCBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSkge1xuICBAaWYgJHZhbHVlID09ICdtb25vY2hyb21lJyB7XG4gICAgJGZlYXR1cmU6ICdtb25vY2hyb21lJztcbiAgfVxuXG4gICRjdXJyZW50OiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgQGlmICRjdXJyZW50IGFuZCBsZW5ndGgoJGN1cnJlbnQpID09ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgIEB3YXJuIFwiWW91IGhhdmUgYWxyZWFkeSBxdWVyaWVkIGFnYWluc3QgYCN7JGZlYXR1cmV9YC4gVW5leHBlY3RlZCB0aGluZ3MgbWF5IGhhcHBlbiBpZiB5b3UgcXVlcnkgYWdhaW5zdCB0aGUgc2FtZSBmZWF0dXJlIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzYW1lIGBhbmRgIHF1ZXJ5LiBCcmVha3BvaW50IGlzIG92ZXJ3cml0aW5nIHRoZSBjdXJyZW50IGNvbnRleHQgd2l0aCBgI3skdmFsdWV9YFwiO1xuICB9XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xuICAgICR2LWhvbGRlcjogKCk7XG4gICAgQGZvciAkaSBmcm9tIDEgdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICR2YWx1ZSk7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZmVhdHVyZTogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHYtaG9sZGVyOiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHYtaG9sZGVyKTtcbiAgICBAZm9yICRpIGZyb20gJGxlbmd0aCB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IC0gMSB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICR2YWx1ZSk7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZmVhdHVyZTogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIGZ1bmN0aW9uIHRvIHJlc2V0IGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cyB7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbnZlcnRzIHRoZSBpbnB1dCB2YWx1ZSB0byBCYXNlIEVNc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSkge1xuICAkdmFsdWUtdW5pdDogdW5pdCgkdmFsdWUpO1xuXG4gIC8vIFdpbGwgY29udmVydCByZWxhdGl2ZSBFTXMgaW50byByb290IEVNcy5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpIGFuZCB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKSA9PSAnbnVtYmVyJyBhbmQgJHZhbHVlLXVuaXQgPT0gJ2VtJyB7XG4gICAgJGJhc2UtdW5pdDogdW5pdChicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSk7XG5cbiAgICBAaWYgJGJhc2UtdW5pdCA9PSAncHgnIG9yICRiYXNlLXVuaXQgPT0gJyUnIG9yICRiYXNlLXVuaXQgPT0gJ2VtJyBvciAkYmFzZS11bml0ID09ICdwdCcge1xuICAgICAgQHJldHVybiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKSAvIGJhc2UtY29udmVyc2lvbihicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSkgKiAxZW07XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICcje2JyZWFrcG9pbnQtZ2V0KFxcJ2Jhc2UgZm9udCBzaXplXFwnKX0gaXMgbm90IHNldCBpbiB2YWxpZCB1bml0cyBmb3IgZm9udCBzaXplISc7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkge1xuICAkdW5pdDogdW5pdCgkdmFsdWUpO1xuXG4gIEBpZiAkdW5pdCA9PSAncHgnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDE2cHggKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJyUnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDEwMCUgKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ2VtJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ3B0JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMnB0ICogMWVtO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbi8vICAgIEB3YXJuICdFdmVyeXRoaW5nIGlzIHRlcnJpYmxlISBXaGF0IGhhdmUgeW91IGRvbmU/ISc7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIGhhdmUgYSBtaW4vbWF4IHBhaXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlczogJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvci1pbmRleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2Utd2lkdGgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9ub2Nocm9tZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVzb2x1dGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4tbWF4KCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgc3RyaW5nIHZhbHVlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXN0cmluZy1mZWF0dXJlczogICdvcmllbnRhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbHVtaW5vc2l0eSc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXN0cmluZy12YWx1ZSgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiBicmVha3BvaW50LW1pbi1tYXgoJGl0ZW0pIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWluLSN7JGl0ZW19JyBvciAkZmVhdHVyZSA9PSAnbWF4LSN7JGl0ZW19JyB7XG4gICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBpcyBhIG1lZGlhIHR5cGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXM6ICAnYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JyYWlsbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnZW1ib3NzZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFuZGhlbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JlZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BlZWNoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dic7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRtZWRpYSBpbiAkYnJlYWtwb2ludC1tZWRpYS10eXBlcyB7XG4gICAgQGlmICgkZmVhdHVyZSA9PSAkbWVkaWEpIG9yICgkZmVhdHVyZSA9PSAnbm90ICN7JG1lZGlhfScpIG9yICgkZmVhdHVyZSA9PSAnb25seSAjeyRtZWRpYX0nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIHN0YW5kIGFsb25lXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyaWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLXJlc29sdXRpb24oJGZlYXR1cmUpIHtcbiAgJHJlc29sdXRpb25zOiAnZGV2aWNlLXBpeGVsLXJhdGlvJywgJ2Rwcic7XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnKSB7XG4gICAgJHJlc29sdXRpb25zOiBhcHBlbmQoJHJlc29sdXRpb25zLCAncmVzb2x1dGlvbicpO1xuICB9XG5cbiAgQGVhY2ggJHJlc28gaW4gJHJlc29sdXRpb25zIHtcbiAgICBAaWYgaW5kZXgoJGZlYXR1cmUsICRyZXNvKSBvciBpbmRleCgkZmVhdHVyZSwgJ21pbi0jeyRyZXNvfScpIG9yIGluZGV4KCRmZWF0dXJlLCAnbWF4LSN7JHJlc299Jykge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQYXJzZXIgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJwYXJzZXJzL3F1ZXJ5XCI7XG5AaW1wb3J0IFwicGFyc2Vycy9zaW5nbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL2RvdWJsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvdHJpcGxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy9yZXNvbHV0aW9uXCI7XG5cbiRNZW1vLUV4aXN0czogZnVuY3Rpb24tZXhpc3RzKG1lbW8tZ2V0KSBhbmQgZnVuY3Rpb24tZXhpc3RzKG1lbW8tc2V0KTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEZ1bmN0aW9uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50KCRxdWVyeSwgJGNvbnRleHRzLi4uKSB7XG4gICRydW46IHRydWU7XG4gICRyZXR1cm46ICgpO1xuXG4gIC8vIEdyYWIgdGhlIE1lbW8gT3V0cHV0IGlmIE1lbW9pemF0aW9uIGNhbiBiZSBhIHRoaW5nXG4gIEBpZiAkTWVtby1FeGlzdHMge1xuICAgICRyZXR1cm46IG1lbW8tZ2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cyk7XG5cbiAgICBAaWYgJHJldHVybiAhPSBudWxsIHtcbiAgICAgICRydW46IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBub3QgJE1lbW8tRXhpc3RzIG9yICRydW4ge1xuICAgIC8vIEludGVybmFsIFZhcmlhYmxlc1xuICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICRxdWVyeS1mYWxsYmFjazogZmFsc2U7XG4gICAgJHJldHVybjogKCk7XG5cbiAgICAvLyBSZXNlcnZlIEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRob2xkZXItY29udGV4dDogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjtcbiAgICAkaG9sZGVyLXF1ZXJ5LWNvdW50OiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50O1xuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cblxuICAgIC8vIFRlc3QgdG8gc2VlIGlmIGl0J3MgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdFxuICAgICRvci1saXN0OiBpZihsaXN0LXNlcGFyYXRvcigkcXVlcnkpID09ICdjb21tYScsIHRydWUsIGZhbHNlKTtcblxuXG4gICAgQGlmICgkb3ItbGlzdCA9PSBmYWxzZSBhbmQgYnJlYWtwb2ludC1nZXQoJ2xlZ2FjeSBzeW50YXgnKSA9PSBmYWxzZSkge1xuICAgICAgJHF1ZXJ5LXN0cmluZzogYnJlYWtwb2ludC1wYXJzZSgkcXVlcnkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkbGVuZ3RoOiBsZW5ndGgoJHF1ZXJ5KTtcblxuICAgICAgJGxhc3Q6IG50aCgkcXVlcnksICRsZW5ndGgpO1xuICAgICAgJHF1ZXJ5LWZhbGxiYWNrOiBicmVha3BvaW50LW5vLXF1ZXJ5KCRsYXN0KTtcblxuICAgICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIHtcbiAgICAgICAgJGxlbmd0aDogJGxlbmd0aCAtIDE7XG4gICAgICB9XG5cbiAgICAgIEBpZiAoYnJlYWtwb2ludC1nZXQoJ2xlZ2FjeSBzeW50YXgnKSA9PSB0cnVlKSB7XG4gICAgICAgICRtcTogKCk7XG5cbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAkbXE6IGFwcGVuZCgkbXEsIG50aCgkcXVlcnksICRpKSwgY29tbWEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJHF1ZXJ5LXN0cmluZzogYnJlYWtwb2ludC1wYXJzZSgkbXEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcXVlcnktc3RyaW5nOiAnJztcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAkcXVlcnktc3RyaW5nOiAkcXVlcnktc3RyaW5nICsgaWYoJGkgPT0gMSwgJycsICcsICcpICsgYnJlYWtwb2ludC1wYXJzZShudGgoJHF1ZXJ5LCAkaSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHJldHVybjogKCdxdWVyeSc6ICRxdWVyeS1zdHJpbmcsXG4gICAgICAgICdmYWxsYmFjayc6ICRxdWVyeS1mYWxsYmFjayxcbiAgICAgICAgJ2NvbnRleHQgaG9sZGVyJzogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcixcbiAgICAgICAgJ3F1ZXJ5IGNvdW50JzogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudFxuICAgICk7XG4gICAgQGlmIGxlbmd0aCgkY29udGV4dHMpID4gMCBhbmQgbnRoKCRjb250ZXh0cywgMSkgIT0gZmFsc2Uge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gICAgICB9XG4gICAgICAkY29udGV4dC1tYXA6ICgpO1xuICAgICAgQGVhY2ggJGNvbnRleHQgaW4gJGNvbnRleHRzIHtcbiAgICAgICAgJGNvbnRleHQtbWFwOiBtYXAtbWVyZ2UoJGNvbnRleHQtbWFwLCAoJGNvbnRleHQ6IGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJGNvbnRleHQpKSk7XG4gICAgICB9XG4gICAgICAkcmV0dXJuOiBtYXAtbWVyZ2UoJHJldHVybiwgKGNvbnRleHQ6ICRjb250ZXh0LW1hcCkpO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xuXG4gICAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgICAkaG9sZGVyOiBtZW1vLXNldChicmVha3BvaW50LCBicmVha3BvaW50ICRxdWVyeSAkY29udGV4dHMsICRyZXR1cm4pO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHJldHVybjtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZW5lcmFsIEJyZWFrcG9pbnQgUGFyc2VyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSkge1xuICAvLyBJbmNyZWFzZSBudW1iZXIgb2YgJ2FuZCcgcXVlcmllc1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50ICsgMSAhZ2xvYmFsO1xuXG4gIC8vIFNldCB1cCBNZWRpYSBUeXBlXG4gICRxdWVyeS1wcmludDogJyc7XG5cbiAgJGZvcmNlLWFsbDogKChicmVha3BvaW50LWdldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnKSA9PSB0cnVlKSBhbmQgKGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykgPT0gJ2FsbCcpKTtcbiAgJGVtcHR5LW1lZGlhOiB0cnVlO1xuICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykgIT0gJ2FsbCcpIHtcbiAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAkcXVlcnktcHJpbnQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJyk7XG4gICAgJGVtcHR5LW1lZGlhOiBmYWxzZTtcbiAgfVxuXG5cbiAgJHF1ZXJ5LXJlc29sdXRpb246IGZhbHNlO1xuXG4gICRxdWVyeS1ob2xkZXI6IGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KTtcblxuXG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggcGFyc2VkIG91dCBxdWVyeSBhbmQgd3JpdGUgaXQgdG8gJHF1ZXJ5LXByaW50XG4gICRmaXJzdDogdHJ1ZTtcblxuICBAZWFjaCAkZmVhdHVyZSBpbiAkcXVlcnktaG9sZGVyIHtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJGZlYXR1cmUpO1xuXG4gICAgLy8gUGFyc2UgYSBzaW5nbGUgZmVhdHVyZVxuICAgIEBpZiAoJGxlbmd0aCA9PSAxKSB7XG4gICAgICAvLyBGZWF0dXJlIGlzIGN1cnJlbnRseSBhIGxpc3QsIGdyYWIgdGhlIGFjdHVhbCB2YWx1ZVxuICAgICAgJGZlYXR1cmU6IG50aCgkZmVhdHVyZSwgMSk7XG5cbiAgICAgIC8vIE1lZGlhIFR5cGUgbXVzdCBieSBjb252ZW50aW9uIGJlIHRoZSBmaXJzdCBpdGVtLCBzbyBpdCdzIHNhZmUgdG8gZmxhdCBvdmVycmlkZSAkcXVlcnktcHJpbnQsIHdoaWNoIHJpZ2h0IG5vdyBzaG91bGQgb25seSBiZSB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlXG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtbWVkaWEoJGZlYXR1cmUpKSB7XG4gICAgICAgIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoJGZlYXR1cmUgIT0gJ2FsbCcpIHtcbiAgICAgICAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICRmZWF0dXJlO1xuICAgICAgICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG5cbiAgICAgICAgICAvLyBTZXQgQ29udGV4dFxuICAgICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1lZGlhLCAkcXVlcnktcHJpbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSBkb3VibGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDIpIHtcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSAhPSBmYWxzZSkge1xuICAgICAgICAkcXVlcnktcmVzb2x1dGlvbjogJGZlYXR1cmU7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IG51bGw7XG4gICAgICAgIC8vIElmIGl0J3MgYSBzdHJpbmcvbnVtYmVyIHBhaXIsXG4gICAgICAgIC8vIHdlIGNoZWNrIHRvIHNlZSBpZiBvbmUgaXMgYSBzaW5nbGUtc3RyaW5nIHZhbHVlLFxuICAgICAgICAvLyB0aGVuIHdlIHBhcnNlIGl0IGFzIGEgbm9ybWFsIGRvdWJsZVxuICAgICAgICAkYWxwaGE6IG50aCgkZmVhdHVyZSwgMSk7XG4gICAgICAgICRiZXRhOiBudGgoJGZlYXR1cmUsIDIpO1xuICAgICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRhbHBoYSkgb3IgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRiZXRhKSB7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGFscGhhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGJldGEsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSB0cmlwbGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDMpIHtcbiAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgIH1cblxuICB9XG5cbiAgQGlmICgkcXVlcnktcmVzb2x1dGlvbiAhPSBmYWxzZSkge1xuICAgICRxdWVyeS1wcmludDogYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgfVxuXG4gIC8vIExvb3AgdGhyb3VnaCBlYWNoIGZlYXR1cmUgdGhhdCdzIGJlZW4gZGV0ZWN0ZWQgc28gZmFyIGFuZCBhcHBlbmQgJ2ZhbHNlJyB0byB0aGUgdGhlIHZhbHVlIGxpc3QgdG8gaW5jcmVtZW50IHRoZWlyIGNvdW50ZXJzXG4gIEBlYWNoICRmLCAkdiBpbiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyIHtcbiAgICAkdi1ob2xkZXI6ICR2O1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBpZiBsZW5ndGgoJHYtaG9sZGVyKSA8ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICAgIEBpZiAkZiA9PSAnbWVkaWEnIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1xdWVyeSgkcXVlcnkpIHtcbiAgLy8gUGFyc2UgZmVhdHVyZXMgb3V0IG9mIGFuIGluZGl2aWR1YWwgcXVlcnlcbiAgJGZlYXR1cmUtaG9sZGVyOiAoKTtcbiAgJHF1ZXJ5LWhvbGRlcjogKCk7XG4gICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgIC8vIElmIHdlJ3ZlIGdvdCBhIHN0cmluZy9udW1iZXIsIG51bWJlci9zdHJpbmcsIGNoZWNrIHRvIHNlZSBpZiBpdCdzIGEgdmFsaWQgc3RyaW5nL251bWJlciBwYWlyIG9yIHR3byBzaW5nbGVzXG4gICAgQGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIG9yICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcblxuICAgICAgJG51bWJlcjogJyc7XG4gICAgICAkdmFsdWU6ICcnO1xuXG4gICAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycge1xuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAyKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJHF1ZXJ5LCAxKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMSk7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMik7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGEgc2luZ2xlIHZhbHVlLCBjaGVjayB0byBzZWUgaWYgdGhlIG51bWJlciBwYXNzZWQgaW4gaXMgYSB2YWxpZCBpbnB1dCBmb3Igc2FpZCBzaW5nbGUgdmFsdWUuIEZvcnR1bmF0ZWx5LCBhbGwgY3VycmVudCBzaW5nbGUtdmFsdWUgb3B0aW9ucyBvbmx5IGFjY2VwdCB1bml0bGVzcyBudW1iZXJzLCBzbyB0aGlzIGNoZWNrIGlzIGVhc3kuXG4gICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCR2YWx1ZSkge1xuICAgICAgICBAaWYgdW5pdGxlc3MoJG51bWJlcikge1xuICAgICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xuICAgICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgaXMgYSBtZWRpYSB0eXBlLCBzcGxpdCB0aGUgcXVlcnlcbiAgICAgIEBpZiBicmVha3BvaW50LWlzLW1lZGlhKCR2YWx1ZSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMikpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBJZiBpdCdzIG5vdCBhIHNpbmdsZSBmZWF0dXJlLCB3ZSdyZSBqdXN0IGdvaW5nIHRvIGFzc3VtZSBpdCdzIGEgcHJvcGVyIHN0cmluZy92YWx1ZSBwYWlyLCBhbmQgcm9sbCB3aXRoIGl0LlxuICAgICAgQGVsc2Uge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIG51bWJlcnMsIHdlIGFzc3VtZSBpdCdzIGEgZG91YmxlIGFuZCByb2xsIHdpdGggdGhhdFxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIHtcbiAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgIH1cbiAgICAvLyBJZiB0aGV5J3JlIGJvdGggc3RyaW5ncyBhbmQgbmVpdGhlciBhcmUgc2luZ2xlcywgd2Ugcm9sbCB3aXRoIHRoYXQuXG4gICAgQGVsc2UgaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgdGhyZWUgaXRlbXMgYW5kIG5vbmUgaXMgYSBsaXN0LCB3ZSBjaGVjayB0byBzZWVcbiAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMykpICE9ICdsaXN0JyB7XG4gICAgICAvLyBJZiBub25lIG9mIHRoZSBpdGVtcyBhcmUgc2luZ2xlIHN0cmluZyB2YWx1ZXMgYW5kIG5vbmUgb2YgdGhlIHZhbHVlcyBhcmUgbWVkaWEgdmFsdWVzLCB3ZSdyZSBnb29kLlxuICAgICAgQGlmIChub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMykpKSBhbmQgICgobm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDMpKSkpIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCRmZWF0dXJlLWhvbGRlciwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBsZXQncyBjaGVjayB0byBzZWUgaWYgdGhlIGZpcnN0IGl0ZW0gaXMgYSBtZWRpYSB0eXBlXG4gICAgICBAZWxzZSBpZiBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDIpLCBudGgoJHF1ZXJ5LCAzKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgaXRlbSwgb3IgaWYgaXQncyBub3QgYSBzcGVjaWFsIGNhc2UgZG91YmxlIG9yIHRyaXBsZSwgd2UgY2FuIHNpbXBseSByZXR1cm4gdGhlIHF1ZXJ5LlxuICBAcmV0dXJuICRxdWVyeTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwic2luZ2xlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgZmVhdHVyZSB0aGF0IGNhbiBzdGFuZCBhbG9uZSwgd2UgbGV0IGl0XG4gIEBpZiAoYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSkge1xuICAgICRwYXJzZWQ6ICRmZWF0dXJlO1xuICAgIC8vIFNldCBDb250ZXh0XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICRmZWF0dXJlKTtcbiAgfVxuICAvLyBJZiBpdCdzIG5vdCBhIHN0YW5kIGFsb25lIGZlYXR1cmUsIHdlIHBhc3MgaXQgb2ZmIHRvIHRoZSBkZWZhdWx0IGhhbmRsZXIuXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpO1xuICB9XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJygnICsgJHBhcnNlZCArICcpJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpIHtcbiAgJGRlZmF1bHQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IGZlYXR1cmUnKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZGVmYXVsdCwgJGZlYXR1cmUpO1xuXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIGFuZCAodHlwZS1vZigkZmVhdHVyZSkgPT0gJ251bWJlcicpIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3ticmVha3BvaW50LXRvLWJhc2UtZW0oJGZlYXR1cmUpfSc7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJyN7JGRlZmF1bHR9OiAjeyRmZWF0dXJlfSc7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHQtcGFpclwiO1xuQGltcG9ydCBcImRvdWJsZS9kb3VibGUtc3RyaW5nXCI7XG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gICRmaXJzdDogbnRoKCRmZWF0dXJlLCAxKTtcbiAgJHNlY29uZDogbnRoKCRmZWF0dXJlLCAyKTtcblxuICAvLyBJZiB3ZSd2ZSBnb3QgdHdvIG51bWJlcnMsIHdlIGtub3cgd2UgbmVlZCB0byB1c2UgdGhlIGRlZmF1bHQgcGFpciBiZWNhdXNlIHRoZXJlIGFyZSBubyBtZWRpYSBxdWVyaWVzIHRoYXQgaGFzIGEgbWVkaWEgZmVhdHVyZSB0aGF0IGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ251bWJlcicge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgdGhleSBhcmUgYm90aCBzdHJpbmdzLCB3ZSBzZW5kIGl0IHRocm91Z2ggdGhlIHN0cmluZyBwYXJzZXJcbiAgQGVsc2UgaWYgdHlwZS1vZigkZmlyc3QpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdzdHJpbmcnIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLCB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgQGVsc2Uge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICRwYXJzZWQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRkZWZhdWx0OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBwYWlyJyk7XG4gICRtaW46ICcnO1xuICAkbWF4OiAnJztcblxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcbiAgJG1pbjogbWluKCRmaXJzdCwgJHNlY29uZCk7XG4gICRtYXg6IG1heCgkZmlyc3QsICRzZWNvbmQpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1pbi0jeyRkZWZhdWx0fSwgJG1pbik7XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRkZWZhdWx0fSwgJG1heCk7XG5cbiAgLy8gTWFrZSB0aGVtIEVNcyBpZiBuZWVkIGJlXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkbWluOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1pbik7XG4gICAgJG1heDogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtYXgpO1xuICB9XG5cbiAgQHJldHVybiAnKG1pbi0jeyRkZWZhdWx0fTogI3skbWlufSkgYW5kIChtYXgtI3skZGVmYXVsdH06ICN7JG1heH0pJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRmZWF0dXJlOiAnJztcbiAgJHZhbHVlOiAnJztcblxuICAvLyBUZXN0IHRvIHNlZSB3aGljaCBpcyB0aGUgZmVhdHVyZSBhbmQgd2hpY2ggaXMgdGhlIHZhbHVlXG4gIEBpZiAoYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZpcnN0KSA9PSB0cnVlKSB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2UgaWYgKGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRzZWNvbmQpID09IHRydWUpIHtcbiAgICAkZmVhdHVyZTogJHNlY29uZDtcbiAgICAkdmFsdWU6ICRmaXJzdDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJOZWl0aGVyICN7JGZpcnN0fSBub3IgI3skc2Vjb25kfSBpcyBhIHZhbGlkIG1lZGlhIHF1ZXJ5IG5hbWUuXCI7XG4gIH1cblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKTtcblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknO1xufSIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgQGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICR2YWx1ZTogYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSk7XG4gIH1cblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknXG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInRyaXBsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuXG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIHNlcGFyYXRlIHRoZSBzdHJpbmcgZmVhdHVyZXMgZnJvbSB0aGUgdmFsdWUgbnVtYmVyc1xuICAkc3RyaW5nOiBudWxsO1xuICAkbnVtYmVyczogbnVsbDtcbiAgQGVhY2ggJHZhbCBpbiAkZmVhdHVyZSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gc3RyaW5nIHtcbiAgICAgICRzdHJpbmc6ICR2YWw7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRudW1iZXJzKSA9PSAnbnVsbCcge1xuICAgICAgICAkbnVtYmVyczogJHZhbDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcnM6IGFwcGVuZCgkbnVtYmVycywgJHZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkc3RyaW5nLCBudGgoJG51bWJlcnMsIDEpLCBudGgoJG51bWJlcnMsIDIpKTtcblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xuXG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkZmVhdHVyZSwgJGZpcnN0LCAkc2Vjb25kKSB7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZmVhdHVyZX0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZmVhdHVyZX0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZmVhdHVyZX06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGZlYXR1cmV9OiAjeyRtYXh9KSc7XG59XG4iLCJAaW1wb3J0IFwicmVzb2x1dGlvbi9yZXNvbHV0aW9uXCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykgYW5kICRxdWVyeS1yZXNvbHV0aW9uIHtcbiAgICAkcmVzb2x1dGlvbnM6IGJyZWFrcG9pbnQtbWFrZS1yZXNvbHV0aW9ucygkcXVlcnktcmVzb2x1dGlvbik7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9ucyk7XG4gICAgJHF1ZXJ5LWhvbGRlcjogJyc7XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgJHF1ZXJ5OiAnI3skcXVlcnktcHJpbnR9ICN7JGxlYWRlcn0je250aCgkcmVzb2x1dGlvbnMsICRpKX0nO1xuICAgICAgQGlmICRpID09IDEge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiAkcXVlcnk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICcjeyRxdWVyeS1ob2xkZXJ9LCAjeyRxdWVyeX0nO1xuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gUmV0dXJuIHdpdGggYXR0YWNoZWQgcmVzb2x1dGlvblxuICAgIEByZXR1cm4gJHF1ZXJ5LXByaW50O1xuICB9XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRyZXNvbHV0aW9uKSB7XG4gICRsZW5ndGg6IGxlbmd0aCgkcmVzb2x1dGlvbik7XG5cbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgJGZlYXR1cmU6ICcnO1xuICAgICR2YWx1ZTogJyc7XG5cbiAgICAvLyBGaW5kIHdoaWNoIGlzIG51bWJlclxuICAgIEBpZiB0eXBlLW9mKG50aCgkcmVzb2x1dGlvbiwgMSkpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogbnRoKCRyZXNvbHV0aW9uLCAxKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDIpO1xuICAgIH1cblxuICAgIC8vIERldGVybWluZSBtaW4vbWF4L3N0YW5kYXJkXG4gICAgQGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWluLXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21pbi0nO1xuICAgIH1cbiAgICBAZWxzZSBpZiBpbmRleCgkcmVzb2x1dGlvbiwgJ21heC1yZXNvbHV0aW9uJykge1xuICAgICAgJGZlYXR1cmU6ICdtYXgtJztcbiAgICB9XG5cbiAgICAkc3RhbmRhcmQ6ICcoI3skZmVhdHVyZX1yZXNvbHV0aW9uOiAjeyR2YWx1ZX0pJztcblxuICAgIC8vIElmIHdlJ3JlIG5vdCBkZWFsaW5nIHdpdGggZHBweCxcbiAgICBAaWYgdW5pdCgkdmFsdWUpICE9ICdkcHB4JyB7XG4gICAgICAkYmFzZTogOTZkcGk7XG4gICAgICBAaWYgdW5pdCgkdmFsdWUpID09ICdkcGNtJyB7XG4gICAgICAgICRiYXNlOiAyNDMuODRkcGNtO1xuICAgICAgfVxuICAgICAgLy8gV3JpdGUgb3V0IGZlYXR1cmUgdGVzdHNcbiAgICAgICR3ZWJraXQ6ICcnO1xuICAgICAgJG1vejogJyc7XG4gICAgICAkd2Via2l0OiAnKC13ZWJraXQtI3skZmVhdHVyZX1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gJGJhc2V9KSc7XG4gICAgICAkbW96OiAnKCN7JGZlYXR1cmV9LW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gJGJhc2V9KSc7XG4gICAgICAvLyBBcHBlbmQgdG8gb3V0cHV0XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHN0YW5kYXJkLCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHdlYmtpdCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRtb3osIHNwYWNlKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAxZHBweH0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAxZHBweH0pJztcbiAgICAgICRmYWxsYmFjazogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlIC8gMWRwcHggKiA5NmRwaX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRmYWxsYmFjaywgc3BhY2UpO1xuICAgIH1cblxuICB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbm8tcXVlcnkoJHF1ZXJ5KSB7XG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gJ2xpc3QnIHtcbiAgICAka2V5d29yZDogbnRoKCRxdWVyeSwgMSk7XG5cbiAgICBAaWYgdHlwZS1vZigka2V5d29yZCkgPT0gJ3N0cmluZycgYW5kICgka2V5d29yZCA9PSAnbm8tcXVlcnknIG9yICRrZXl3b3JkID09ICdubyBxdWVyeScgb3IgJGtleXdvcmQgPT0gJ2ZhbGxiYWNrJykge1xuICAgICAgQHJldHVybiBudGgoJHF1ZXJ5LCAyKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCB0aGUgQnJlYWtwb2ludHMgdmFyaWFibGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcbiRCUkVBS1BPSU5UUzogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmVzcG9uZC10byBBUEkgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIHJlc3BvbmQtdG8oJGNvbnRleHQsICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGlmIGxlbmd0aCgkYnJlYWtwb2ludHMpID4gMCBhbmQgbGVuZ3RoKCRCUkVBS1BPSU5UUykgPT0gMCB7XG4gICAgQHdhcm4gXCJJbiBvcmRlciB0byBhdm9pZCB2YXJpYWJsZSBuYW1lc3BhY2UgY29sbGlzaW9ucywgd2UgaGF2ZSB1cGRhdGVkIHRoZSB3YXkgdG8gYWRkIGJyZWFrcG9pbnRzIGZvciByZXNwb25kLXRvLiBQbGVhc2UgY2hhbmdlIGFsbCBpbnN0YW5jZXMgb2YgYCRicmVha3BvaW50czogYWRkLWJyZWFrcG9pbnQoKWAgdG8gYEBpbmNsdWRlIGFkZC1icmVha3BvaW50KClgLiBUaGUgYGFkZC1icmVha3BvaW50KClgIGZ1bmN0aW9uIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlwiO1xuICAgICRCUkVBS1BPSU5UUzogJGJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICAgJGJyZWFrcG9pbnRzOiAoKSAhZ2xvYmFsO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJEJSRUFLUE9JTlRTKSAhPSAnbWFwJyB7XG4gICAgLy8gSnVzdCBpbiBjYXNlIHNvbWVvbmUgd3JpdGVzIGdpYmJlcmlzaCB0byB0aGUgJGJyZWFrcG9pbnRzIHZhcmlhYmxlLlxuICAgIEB3YXJuIFwiWW91ciBicmVha3BvaW50cyBhcmVuJ3QgYSBtYXAhIGByZXNwb25kLXRvYCBleHBlY3RzIGEgbWFwLiBQbGVhc2UgY2hlY2sgdGhlIHZhbHVlIG9mICRCUkVBS1BPSU5UUyB2YXJpYWJsZS5cIjtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtYXAtZ2V0KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpLCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkY29udGV4dCkge1xuICAgIEB3YXJuIFwiYCN7JGNvbnRleHR9YCBpc24ndCBhIGRlZmluZWQgYnJlYWtwb2ludCEgUGxlYXNlIGFkZCBpdCB1c2luZyBgJGJyZWFrcG9pbnRzOiBhZGQtYnJlYWtwb2ludChgI3skY29udGV4dH1gLCAkdmFsdWUpO2BcIjtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJZb3UgaGF2ZW4ndCBjcmVhdGVkIGFueSBicmVha3BvaW50cyB5ZXQhIE1ha2Ugc29tZSBhbHJlYWR5ISBgQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0KWBcIjtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEFkZCBCcmVha3BvaW50IHRvIEJyZWFrcG9pbnRzXG4vLyBUT0RPOiBSZW1vdmUgZnVuY3Rpb24gaW4gbmV4dCByZWxlYXNlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQsICRvdmVyd3JpdGU6IGZhbHNlKSB7XG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xuXG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA9PSAwIHtcbiAgICBAcmV0dXJuICRvdXRwdXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgQHJldHVybiAkYnJlYWtwb2ludHM7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgQHJldHVybiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkb3V0cHV0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG5cbiAgQGlmIGxlbmd0aCgkQlJFQUtQT0lOVFMpID09IDAge1xuICAgICRCUkVBS1BPSU5UUzogJG91dHB1dCAhZ2xvYmFsO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkbmFtZSkgYW5kICRvdmVyd3JpdGUgIT0gdHJ1ZSB7XG4gICAgICBAd2FybiBcIllvdSBhbHJlYWR5IGhhdmUgYSBicmVha3BvaW50IG5hbWVkIGAjeyRuYW1lfWAsIHBsZWFzZSBjaG9vc2UgYW5vdGhlciBicmVha3BvaW50IG5hbWUsIG9yIHBhc3MgaW4gYCRvdmVyd3JpdGU6IHRydWVgIHRvIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXMgYnJlYWtwb2ludC5cIjtcbiAgICAgICRCUkVBS1BPSU5UUzogJEJSRUFLUE9JTlRTICFnbG9iYWw7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgJEJSRUFLUE9JTlRTOiBtYXAtbWVyZ2UoJEJSRUFLUE9JTlRTLCAkb3V0cHV0KSAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuXG5AZnVuY3Rpb24gZ2V0LWJyZWFrcG9pbnQoJG5hbWU6IGZhbHNlKSB7XG4gIEBpZiAkbmFtZSA9PSBmYWxzZSB7XG4gICAgQHJldHVybiAkQlJFQUtQT0lOVFM7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkQlJFQUtQT0lOVFMsICRuYW1lKTtcbiAgfVxufVxuIiwiQG1peGluIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nIHtcbiAgJGxlZ2FjeVZhcnM6IChcbiAgICAnZGVmYXVsdC1tZWRpYSc6ICdkZWZhdWx0IG1lZGlhJyxcbiAgICAnZGVmYXVsdC1mZWF0dXJlJzogJ2RlZmF1bHQgZmVhdHVyZScsXG4gICAgJ2ZvcmNlLW1lZGlhLWFsbCc6ICdmb3JjZSBhbGwgbWVkaWEgdHlwZScsXG4gICAgJ3RvLWVtcyc6ICd0byBlbXMnLFxuICAgICdyZXNvbHV0aW9ucyc6ICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnLFxuICAgICduby1xdWVyaWVzJzogJ25vIHF1ZXJpZXMnLFxuICAgICduby1xdWVyeS1mYWxsYmFja3MnOiAnbm8gcXVlcnkgZmFsbGJhY2tzJyxcbiAgICAnYmFzZS1mb250LXNpemUnOiAnYmFzZSBmb250IHNpemUnLFxuICAgICdsZWdhY3ktc3ludGF4JzogJ2xlZ2FjeSBzeW50YXgnXG4gICk7XG5cbiAgQGVhY2ggJGxlZ2FjeSwgJG5ldyBpbiAkbGVnYWN5VmFycyB7XG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtJyArICRsZWdhY3kpIHtcbiAgICAgIEB3YXJuIFwiSW4gb3JkZXIgdG8gYXZvaWQgdmFyaWFibGUgbmFtc3BhY2UgY29sbGlzaW9ucywgd2UgaGF2ZSB1cGRhdGVkIHRoZSB3YXkgdG8gY2hhbmdlIHNldHRpbmdzIGZvciBCcmVha3BvaW50LiBQbGVhc2UgY2hhbmdlIGFsbCBpbnN0YW5jZXMgb2YgYCRicmVha3BvaW50LSN7JGxlZ2FjeX06IHt7c2V0dGluZ319YCB0byBgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJyN7JG5ld30nLCB7e3NldHRpbmd9fSlgLiBWYXJpYWJsZSBzZXR0aW5ncywgYXMgd2VsbCBhcyB0aGlzIHdhcm5pbmcgd2lsbCBiZSBkZXByZWNhdGVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXCJcbiAgICB9XG4gIH07XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIEhhbmQgY29ycmVjdCBlYWNoIHNldHRpbmdcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtbWVkaWEnKSBhbmQgJGJyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYSAhPSBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZGVmYXVsdCBtZWRpYScsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZScpIGFuZCAkYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUgIT0gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgZmVhdHVyZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZGVmYXVsdCBmZWF0dXJlJywgJGJyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwnKSBhbmQgJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsICE9IGJyZWFrcG9pbnQtZ2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnLCAkYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LXRvLWVtcycpIGFuZCAkYnJlYWtwb2ludC10by1lbXMgIT0gYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgndG8gZW1zJywgJGJyZWFrcG9pbnQtdG8tZW1zKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1yZXNvbHV0aW9ucycpIGFuZCAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyAhPSBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnLCAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcmllcycpIGFuZCAkYnJlYWtwb2ludC1uby1xdWVyaWVzICE9IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdubyBxdWVyaWVzJywgJGJyZWFrcG9pbnQtbm8tcXVlcmllcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzJykgYW5kICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcyAhPSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdubyBxdWVyeSBmYWxsYmFja3MnLCAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWJhc2UtZm9udC1zaXplJykgYW5kICRicmVha3BvaW50LWJhc2UtZm9udC1zaXplICE9IGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnYmFzZSBmb250IHNpemUnLCAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCcpIGFuZCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4ICE9IGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4Jykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdsZWdhY3kgc3ludGF4JywgJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCk7XG4gIH1cbn0iLCIvLyBCb3VyYm9uIDQuMy40XG4vLyBodHRwOi8vYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTEtMjAxNyB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG5AaW1wb3J0IFwic2V0dGluZ3MvZGVwcmVjYXRpb24td2FybmluZ3NcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcblxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlXCI7XG5cbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduLWlucHV0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWluc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWlucy1mYWxzeVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1sZW5ndGhcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGlnaHRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbnVtYmVyXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLXNpemVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tcmVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3NoYWRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RpbnRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XG5cbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbmFsLXZhbHVlc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcblxuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XG5cbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLWNvbG9yXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXN0eWxlXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci13aWR0aFwiO1xuQGltcG9ydCBcImFkZG9ucy9idXR0b25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtc3RhY2tzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xuQGltcG9ydCBcImFkZG9ucy9tYXJnaW5cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcGFkZGluZ1wiO1xuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xuQGltcG9ydCBcImFkZG9ucy90ZXh0LWlucHV0c1wiO1xuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nXCI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBFbmFibGUgb3IgZGlzYWJsZSBvdXRwdXQgb2YgQm91cmJvbuKAmXMgZGVwcmVjYXRpb24tcmVsYXRlZCBTYXNzIHdhcm5pbmdzLlxuLy8vIFRoaXMgdmFyaWFibGUgbXVzdCBiZSBkZWNsYXJlZCBfYmVmb3JlXyBpbXBvcnRpbmcgQm91cmJvbi5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiB0cnVlICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2xvYmFsIHZhcmlhYmxlcyB0byBlbmFibGUgb3IgZGlzYWJsZSB2ZW5kb3IgcHJlZml4ZXNcblxuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0O1xuIiwiJGVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIGdsb2JhbCBzZXR0aW5nIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBgJGFzc2V0LXBpcGVsaW5lYCB2YXJpYWJsZSBmb3IgYWxsIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBpdC5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJGFzc2V0LXBpcGVsaW5lOiBmYWxzZSAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRocm93cyBTYXNzIHdhcm5pbmdzIHRvIGFubm91bmNlIGxpYnJhcnkgZGVwcmVjYXRpb25zLiBZb3UgY2FuIGRpc2FibGUgdGhlbVxuLy8vIGJ5IHNldHRpbmcgdGhlIGAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3NgIHZhcmlhYmxlIHRvIGBmYWxzZWAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQG1peGluIF9ib3VyYm9uLWRlcHJlY2F0ZSgkZmVhdHVyZSwgJG1lc3NhZ2U6IG51bGwpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGAjeyRmZWF0dXJlfWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgICBcInJlbW92ZWQgaW4gNS4wLjAuICN7JG1lc3NhZ2V9XCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKCRmZWF0dXJlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZSgkZmVhdHVyZSwgXCJXZSBzdWdnZXN0IHVzaW5nIGFuIGF1dG9tYXRlZCBcIiArXG4gICAgXCJwcmVmaXhpbmcgdG9vbCwgbGlrZSBBdXRvcHJlZml4ZXIuXCIpO1xufVxuIiwiQGZ1bmN0aW9uIGFzc2lnbi1pbnB1dHMoJGlucHV0cywgJHBzZXVkbzogbnVsbCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGFzc2lnbi1pbnB1dHNgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRsaXN0OiAoKTtcblxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBjb250YWluc2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgY29udGFpbnMtZmFsc3lgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgbm90ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG5cbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgaXMtbGVuZ3RoYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIiBhbmQgKHN0ci1zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCA0KSA9PSBcImNhbGNcIlxuICAgICAgIG9yIGluZGV4KGF1dG8gaW5oZXJpdCBpbml0aWFsIDAsICR2YWx1ZSlcbiAgICAgICBvciAodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIgYW5kIG5vdCh1bml0bGVzcygkdmFsdWUpKSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmsuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vcm9ib3RzLnRob3VnaHRib3QuY29tL2Nsb3Nlci1sb29rLWNvbG9yLWxpZ2h0bmVzc1xuLy8vXG4vLy8gQHBhcmFtIHtDb2xvciAoSGV4KX0gJGNvbG9yXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGlzLWxpZ2h0KCRjb2xvcilcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBpcy1saWdodCgkaGV4LWNvbG9yKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgaXMtbGlnaHRgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcblxuICBAcmV0dXJuICQtbG9jYWwtbGlnaHRuZXNzID4gMC42O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcblxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBpcy1udW1iZXJgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gY29udGFpbnMoXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCIgMCAxIDIgMyA0IDUgNiA3IDggOSwgJHZhbHVlKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1Mgc2l6ZS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuXG5AZnVuY3Rpb24gaXMtc2l6ZSgkdmFsdWUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBpcy1zaXplYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXG4gICAgICAgICAgb3IgY29udGFpbnMoXCJmaWxsXCIgXCJmaXQtY29udGVudFwiIFwibWluLWNvbnRlbnRcIiBcIm1heC1jb250ZW50XCIsICR2YWx1ZSk7XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxuXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBlbWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cblxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGByZW1gIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG5cbiAgJGJhc2U6ICRlbS1iYXNlO1xuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgICRkaW1lbnNpb246IDEwO1xuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBzdHJpcC11bml0c2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wIGFuZCByZXBsYWNlZCBieSB0aGUgYHN0cmlwLXVuaXRgIGZ1bmN0aW9uLlwiO1xuICB9XG5cbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzYCBpcyBkZXByZWNhdGVkIFwiICtcbiAgICBcImFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkbmV3LXByb3BzOiAoKTtcblxuICBAZWFjaCAkcHJvcCBpbiAkcHJvcHMge1xuICAgICRuZXctcHJvcHM6IGFwcGVuZCgkbmV3LXByb3BzLCB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3IpLCBjb21tYSk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICRuZXctcHJvcHM7XG59XG5cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lYCBpcyBkZXByZWNhdGVkIFwiICtcbiAgICBcImFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHByb3A7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XG4vLy8gICB9XG5cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHVucGFja2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRzaG9ydGhhbmQ7XG4gIH1cbn1cbiIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcbiRvY3RhdmU6ICAgICAgICAgICAyO1xuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcbiRtYWpvci10d2VsZnRoOiAgICAzO1xuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XG5cbiR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlO1xuXG4kbW9kdWxhci1zY2FsZS1yYXRpbzogJHBlcmZlY3QtZm91cnRoICFkZWZhdWx0O1xuJG1vZHVsYXItc2NhbGUtYmFzZTogZW0oJGVtLWJhc2UpICFkZWZhdWx0O1xuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nO1xuXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWU6ICRtb2R1bGFyLXNjYWxlLWJhc2UsICRyYXRpbzogJG1vZHVsYXItc2NhbGUtcmF0aW8pIHtcbiAgJHYxOiBudGgoJHZhbHVlLCAxKTtcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XG4gICR2YWx1ZTogJHYxO1xuXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxuICBAd2hpbGUgJHYyID4gJHYxIHtcbiAgICAkdjI6ICgkdjIgLyAkcmF0aW8pOyAvLyB3aWxsIGJlIG9mZi1ieS0xXG4gIH1cbiAgQHdoaWxlICR2MiA8ICR2MSB7XG4gICAgJHYyOiAoJHYyICogJHJhdGlvKTsgLy8gd2lsbCBmaXggb2ZmLWJ5LTFcbiAgfVxuXG4gIC8vIGNoZWNrIEFGVEVSIHNjYWxpbmcgJHYyIHRvIHByZXZlbnQgZG91YmxlLWNvdW50aW5nIGNvcm5lci1jYXNlXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcblxuICBAaWYgJGluY3JlbWVudCA+IDAge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgKiAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGluY3JlbWVudCA8IDAge1xuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XG4gICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAkaW5jcmVtZW50IHRocm91Z2ggLTEge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHN0ci10by1udW0gZm4uXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX2NvbnZlcnQtdW5pdHMoJG51bWJlciwgJHVuaXQpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfY29udmVydC11bml0c2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBcIiArXG4gICAgXCJiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHN0cmluZ3M6IFwicHhcIiwgXCJjbVwiLCBcIm1tXCIsIFwiJVwiLCBcImNoXCIsIFwicGljYVwiLCBcImluXCIsIFwiZW1cIiwgXCJyZW1cIiwgXCJwdFwiLCBcInBjXCIsIFwiZXhcIiwgXCJ2d1wiLCBcInZoXCIsIFwidm1pblwiLCBcInZtYXhcIiwgXCJkZWdcIiwgXCJyYWRcIiwgXCJncmFkXCIsIFwidHVyblwiO1xuICAkdW5pdHM6ICAgMXB4LCAxY20sIDFtbSwgMSUsIDFjaCwgMXBpY2EsIDFpbiwgMWVtLCAxcmVtLCAxcHQsIDFwYywgMWV4LCAxdncsIDF2aCwgMXZtaW4sIDF2bWF4LCAxZGVnLCAxcmFkLCAxZ3JhZCwgMXR1cm47XG4gICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICR1bml0KTtcblxuICBAaWYgbm90ICRpbmRleCB7XG4gICAgQHdhcm4gXCJVbmtub3duIHVuaXQgYCN7JHVuaXR9YC5cIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgIT0gXCJudW1iZXJcIiB7XG4gICAgQHdhcm4gXCJgI3skbnVtYmVyfSBpcyBub3QgYSBudW1iZXJgXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEByZXR1cm4gJG51bWJlciAqIG50aCgkdW5pdHMsICRpbmRleCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXJlY3Rpb25hbC1wcm9wZXJ0eSBtaXhpbnMgYXJlIHNob3J0aGFuZHMgZm9yIHdyaXRpbmcgcHJvcGVydGllcyBsaWtlIHRoZSBmb2xsb3dpbmdcbi8vL1xuLy8vIEBpZ25vcmUgWW91IGNhbiBhbHNvIHVzZSBgZmFsc2VgIGluc3RlYWQgb2YgYG51bGxgLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBkaXJlY3Rpb25hbCB2YWx1ZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZG90dGVkIG51bGwpO1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIDEwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDA7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9XG5cbkBmdW5jdGlvbiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBjb2xsYXBzZS1kaXJlY3Rpb25hbHNgIGlzIGRlcHJlY2F0ZWQgYW5kIFwiICtcbiAgICBcIndpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUoXCJkaXJlY3Rpb25hbC1wcm9wZXJ0eVwiKTtcblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxuXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZm9udC11cmwtcHJlZml4ZXJgIGlzIGRlcHJlY2F0ZWQgYW5kIFwiICtcbiAgICBcIndpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgQHJldHVybiBmb250LXVybDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0cyxcbiAgJGZvbnQtdXJsKSB7XG5cbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBmb250LXNvdXJjZS1kZWNsYXJhdGlvbmAgaXMgZGVwcmVjYXRlZCBcIiArXG4gICAgXCJhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHNyYzogKCk7XG5cbiAgJGZvcm1hdHMtbWFwOiAoXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcbiAgKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xuXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzcmM7XG59XG4iLCJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICRncmFkaWVudC1wb3NpdGlvbnM7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX2xpbmVhci1hbmdsZS1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRvZmZzZXQ6IG51bGw7XG4gICR1bml0LXNob3J0OiAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAyLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHVuaXQtbG9uZzogICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gIEBpZiAoJHVuaXQtbG9uZyA9PSBcImdyYWRcIikgb3JcbiAgICAgICgkdW5pdC1sb25nID09IFwidHVyblwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtbG9uZyA9PSBcImdyYWRcIiwgLTEwMGdyYWQgKiAzLCAtMC43NXR1cm4pO1xuICB9XG5cbiAgQGVsc2UgaWYgKCR1bml0LXNob3J0ID09IFwiZGVnXCIpIG9yXG4gICAgICAgICAgICgkdW5pdC1zaG9ydCA9PSBcInJhZFwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIiwgLTkwICogMywgMS42cmFkKTtcbiAgfVxuXG4gIEBpZiAkb2Zmc2V0IHtcbiAgICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XG5cbiAgICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAoJG9mZnNldCAtICRudW0pICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfbGluZWFyLWdyYWRpZW50LXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaGFzLW11bHRpcGxlLXZhbHM6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcIiBcIik7XG4gICRoYXMtc2luZ2xlLXBvc2l0aW9uOiB1bnF1b3RlKF9wb3NpdGlvbi1mbGlwcGVyKCRmaXJzdC12YWwpICsgXCJcIik7XG4gICRoYXMtYW5nbGU6IGlzLW51bWJlcihzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgMSkpO1xuXG4gIEBpZiAkaGFzLW11bHRpcGxlLXZhbHMge1xuICAgICRncmFkaWVudHM6IF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtc2luZ2xlLXBvc2l0aW9uICE9IFwiXCIge1xuICAgICRwb3M6IHVucXVvdGUoJGhhcy1zaW5nbGUtcG9zaXRpb24gKyBcIlwiKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtYW5nbGUge1xuICAgIC8vIFJvdGF0ZSBkZWdyZWUgZm9yIHdlYmtpdFxuICAgICRncmFkaWVudHM6IF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRzcGVjOiBudWxsO1xuICAkZGVncmVlOiBudWxsO1xuICAkc2lkZTogbnVsbDtcbiAgJGNvcm5lcjogbnVsbDtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcblxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgIH1cblxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkZGVncmVlOiAkcG9zO1xuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xuICAgICAgJHNwZWM6ICRwb3M7XG4gICAgfVxuICB9XG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICRkZWdyZWUgJHNwZWM7XG59XG5cbkBmdW5jdGlvbiBfcG9zaXRpb24tZmxpcHBlcigkcG9zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3Bvc2l0aW9uLWZsaXBwZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gaWYoJHBvcyA9PSBsZWZ0LCByaWdodCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gcmlnaHQsIGxlZnQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHRvcCwgYm90dG9tLCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSBib3R0b20sIHRvcCwgbnVsbCk7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJHZhbC0xOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGhhcy1tdWx0aXBsZS12YWxzIC0gMSk7XG4gICR2YWwtMjogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRoYXMtbXVsdGlwbGUtdmFscyArIDEsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdmFsLTM6IG51bGw7XG4gICRoYXMtdmFsLTM6IHN0ci1pbmRleCgkdmFsLTIsIFwiIFwiKTtcblxuICBAaWYgJGhhcy12YWwtMyB7XG4gICAgJHZhbC0zOiBzdHItc2xpY2UoJHZhbC0yLCAkaGFzLXZhbC0zICsgMSwgc3RyLWxlbmd0aCgkdmFsLTIpKTtcbiAgICAkdmFsLTI6IHN0ci1zbGljZSgkdmFsLTIsIDEsICRoYXMtdmFsLTMgLSAxKTtcbiAgfVxuXG4gICRwb3M6IF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMSkgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0yKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTMpO1xuICAkcG9zOiB1bnF1b3RlKCRwb3MgKyBcIlwiKTtcblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICAvLyBVc2Ugb2xkIHNwZWMgZm9yIHdlYmtpdFxuICBAaWYgJHZhbC0xID09IFwidG9cIiB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIC8vIEJyaW5nIHRoZSBjb2RlIHVwIHRvIHNwZWNcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9yYWRpYWwtYXJnLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XG4gICAgfVxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRnMTogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcbiAgICBAZWxzZSB7XG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xuXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICRwb3MgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZlxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xuXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJGcyIHtcbiAgICAgICAgICAgICRnMjogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcblxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xuXG4gIC8vIEFkZCBjb21tYVxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3JhZGlhbC1ncmFkaWVudC1wYXJzZXJgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcblxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcblxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9yZW5kZXItZ3JhZGllbnRzYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkcHJlLXNwZWM6IG51bGw7XG4gICRzcGVjOiBudWxsO1xuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gIEBpZiAkdmVuZG9yIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xuICB9XG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xuICB9XG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfc2hhcGUtc2l6ZS1zdHJpcHBlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcbiAgICAgICR2YWx1ZTogbnVsbDtcbiAgICB9XG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xuICB9XG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfc3RyLXRvLW51bWAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgLy8gTWF0cmljZXNcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XG5cbiAgLy8gUmVzdWx0XG4gICRyZXN1bHQ6IDA7XG4gICRkaXZpZGVyOiAwO1xuICAkbWludXM6IGZhbHNlO1xuXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xuICAgICAgJG1pbnVzOiB0cnVlO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xuICAgICAgJGRpdmlkZXI6IDE7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGlmIG5vdCAkaW5kZXgge1xuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XG4gICAgICB9XG5cbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcblxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcbiAgICAgIH1cblxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xufVxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tbmFtZVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1kdXJhdGlvblwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uXCIpO1xuXG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnRcIik7XG5cbiAgLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbigkZGlyZWN0aW9ucy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1kaXJlY3Rpb25cIik7XG5cbiAgLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1wbGF5LXN0YXRlXCIpO1xuXG4gIC8vIHJ1bm5pbmcgfCBwYXVzZWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWRlbGF5XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSgkbW9kZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tZmlsbC1tb2RlXCIpO1xuXG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYXBwZWFyYW5jZVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYmFja2ZhY2UtdmlzaWJpbGl0eVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmRzIHVzaW5nIHNob3J0aGFuZFxuLy8gbm90YXRpb24uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJhY2tncm91bmRcIik7XG5cbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcblxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XG5cbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJhY2tncm91bmQtaW1hZ2VcIik7XG5cbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xuICAkc3BlYy1pbWFnZXM6ICgpO1xuXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcbiAgICAkc3BlYy1pbWFnZTogKCk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xufVxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJvcmRlci1pbWFnZVwiKTtcblxuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xuICAkc3BlYy1ib3JkZXJzOiAoKTtcblxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XG5cbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xuICB9XG5cbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLy9FeGFtcGxlczpcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY2FsY1wiKTtcblxuICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtY2FsYygjeyR2YWx1ZX0pO1xuICAjeyRwcm9wZXJ0eX06IGNhbGMoI3skdmFsdWV9KTtcbn1cbiIsIkBtaXhpbiBjb2x1bW5zKCRhcmc6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW5zXCIpO1xuXG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1jb3VudFwiKTtcblxuICAvLyBhdXRvIHx8IGludGVnZXJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tZ2FwXCIpO1xuXG4gIC8vIG5vcm1hbCB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tZmlsbFwiKTtcblxuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tcnVsZVwiKTtcblxuICAvLyA8Ym9yZGVyLXdpZHRoPiB8fCA8Ym9yZGVyLXN0eWxlPiB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXJ1bGUtY29sb3JcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1ydWxlLXN0eWxlXCIpO1xuXG4gIC8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGgoJHdpZHRoOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXJ1bGUtd2lkdGhcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tc3BhblwiKTtcblxuICAvLyBub25lIHx8IGFsbFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXdpZHRoXCIpO1xuXG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmlsdGVyXCIpO1xuXG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcblxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3hcIik7XG5cbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XG59XG5cbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZGlzcGxheS1ib3hcIik7XG5cbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcbiAgZGlzcGxheTogYm94O1xufVxuXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1vcmllbnRcIik7XG5cbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtcGFja1wiKTtcblxuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LWFsaWduXCIpO1xuXG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1kaXJlY3Rpb25cIik7XG5cbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LWxpbmVzXCIpO1xuXG4vLyBzaW5nbGV8bXVsdGlwbGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LW9yZGluYWwtZ3JvdXBcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LWZsZXhcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtZmxleC1ncm91cFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZGlzcGxheVwiKTtcblxuLy8gZmxleCB8IGlubGluZS1mbGV4XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xuICAgIC8vIDIwMDlcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAvLyAyMDEyXG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXG4gICAgZGlzcGxheTogZmxleDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XG5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9IEBlbHNlIHtcbiAgICBkaXNwbGF5OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXhcIik7XG5cbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LWRpcmVjdGlvblwiKTtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAkZGlyZWN0aW9uOiBub3JtYWw7XG5cbiAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtd3JhcFwiKTtcblxuICAvLyBBbHQgdmFsdWVzXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LWZsb3dcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJvcmRlclwiKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xufVxuXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmbGV4LWdyb3dcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtc2hyaW5rXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtYmFzaXNcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xufVxuXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImp1c3RpZnktY29udGVudFwiKTtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbGlnbi1pdGVtc1wiKTtcblxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFsaWduLXNlbGZcIik7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbGlnbi1jb250ZW50XCIpO1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG4iLCJAbWl4aW4gZm9udC1mYWNlKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICR3ZWlnaHQ6IG5vcm1hbCxcbiAgJHN0eWxlOiBub3JtYWwsXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYgc3ZnKSB7XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcblxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcblxuICAgIHNyYzogZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICAgICAkZm9udC1mYW1pbHksXG4gICAgICAkZmlsZS1wYXRoLFxuICAgICAgJGFzc2V0LXBpcGVsaW5lLFxuICAgICAgJGZpbGUtZm9ybWF0cyxcbiAgICAgICRmb250LXVybC1wcmVmaXhcbiAgICApO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiKTtcblxuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImhpZHBpXCIpO1xuXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAkcmF0aW8gKiAxZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJoeXBoZW5zXCIpO1xuXG4gIC8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJpbWFnZS1yZW5kZXJpbmdcIik7XG5cbiAgQGlmICgkbW9kZSA9PSBjcmlzcC1lZGdlcykge1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7IC8vIElFOCtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtby1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBpbWFnZS1yZW5kZXJpbmc6ICRtb2RlO1xuICB9XG59XG4iLCIvLyBBZGRzIGtleWZyYW1lcyBibG9ja3MgZm9yIHN1cHBvcnRlZCBwcmVmaXhlcywgcmVtb3ZpbmcgcmVkdW5kYW50IHByZWZpeGVzIGluIHRoZSBibG9jaydzIGNvbnRlbnRcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJrZXlmcmFtZXNcIik7XG5cbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0OiAgICAkcHJlZml4LWZvci13ZWJraXQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE6ICAgJHByZWZpeC1mb3ItbW96aWxsYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0OiAkcHJlZml4LWZvci1taWNyb3NvZnQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhOiAgICAgJHByZWZpeC1mb3Itb3BlcmE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM6ICAgICAgJHByZWZpeC1mb3Itc3BlYztcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0IHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3Itd2Via2l0OiB0cnVlICFnbG9iYWw7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdCAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhICAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMgICAgICAhZ2xvYmFsO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjIHtcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkZzEsICRnMjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJsaW5lYXItZ3JhZGllbnRcIik7XG5cbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHBvcy1zcGVjOiBudWxsO1xuICAkcG9zLWRlZ3JlZTogbnVsbDtcblxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xuICAgICRnMTA6ICRnOTsgJGc5OiAkZzg7ICRnODogJGc3OyAkZzc6ICRnNjsgJGc2OiAkZzU7XG4gICAgJGc1OiAkZzQ7ICRnNDogJGczOyAkZzM6ICRnMjsgJGcyOiAkZzE7ICRnMTogJHBvcztcbiAgICAkcG9zOiBudWxsO1xuICB9XG5cbiAgQGlmICRwb3Mge1xuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xuICAgICRwb3Mtc3BlYzogICBudGgoJHBvc2l0aW9ucywgMik7XG4gIH1cblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRnMSwgMSk7XG5cbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCgjeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwicGVyc3BlY3RpdmVcIik7XG5cbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwicGVyc3BlY3RpdmUtb3JpZ2luXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJwbGFjZWhvbGRlclwiKTtcblxuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwicmFkaWFsLWdyYWRpZW50XCIpO1xuXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKTtcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcblxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcbiAgJHBvczogICAgICAgIGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpO1xuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXHJcbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcclxuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XHJcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJzZWxlY3Rpb25cIik7XHJcblxyXG4gIEBpZiAkY3VycmVudC1zZWxlY3RvciB7XHJcbiAgICAmOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIDo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiB0ZXh0LWRlY29yYXRpb24oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidGV4dC1kZWNvcmF0aW9uXCIpO1xuXG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbiwgJHZhbHVlLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWxpbmUoJGxpbmU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0ZXh0LWRlY29yYXRpb24tbGluZVwiKTtcblxuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1saW5lLCAkbGluZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1zdHlsZSgkc3R5bGU6IHNvbGlkKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidGV4dC1kZWNvcmF0aW9uLXN0eWxlXCIpO1xuXG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRleHQtZGVjb3JhdGlvbi1jb2xvclwiKTtcblxuLy8gY3VycmVudENvbG9yIHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zZm9ybVwiKTtcblxuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zZm9ybS1vcmlnaW5cIik7XG5cbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcbiAgLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbiAgLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zZm9ybS1zdHlsZVwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAxcyBlYXNlLWluIDJzLCB3aWR0aCAycyBlYXNlLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb25cIik7XG5cbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxuICAkbmVlZHMtcHJlZml4ZXM6IGZhbHNlO1xuICAkd2Via2l0OiAoKTtcbiAgJG1vejogKCk7XG4gICRzcGVjOiAoKTtcblxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cbiAgQGVhY2ggJGxpc3QgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xuICAgICAgJGxpc3QxOiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XG4gICAgICAkbGlzdDM6ICgpO1xuXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XG5cbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XG4gICAgICAgICAgJGxpc3QyOiBqb2luKCRsaXN0MiwgJHZhcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdDMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcbiAgfSBAZWxzZSB7XG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2l0aW9uLXByb3BlcnR5XCIpO1xuXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2l0aW9uLWR1cmF0aW9uXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb25cIik7XG5cbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2l0aW9uLWRlbGF5XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ1c2VyLXNlbGVjdFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcih1c2VyLXNlbGVjdCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XG4vLy8gICAgIGJvcmRlci10b3AtY29sb3I6ICNhNjBiNTU7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXG5cbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgY29sb3IsICR2YWxzLi4uKTtcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItcmFkaXVzYCBvbiBib3RoIGNvcm5lcnMgb24gdGhlIHNpZGUgb2YgYSBib3guXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGlpXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cyg1cHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItcmFkaXVzYFxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1zdHlsZWAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRhc2hlZCBudWxsIHNvbGlkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1zdHlsZWBcblxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci13aWR0aGAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXdpZHRoKDFlbSBudWxsIDIwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4O1xuLy8vICAgICBib3JkZXItdG9wLXdpZHRoOiAxZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItd2lkdGhgXG5cbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgd2lkdGgsICR2YWxzLi4uKTtcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1mb2N1c30sXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGJ1dHRvbixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXG4vLy8gICBidXR0b246aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgZG91YmxlIGFzc2lnbmVkIHZhcmlhYmxlcyAoTGluZXMgNTnigJM2MikgaW4gdjUuMC4wXG5cbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XG5cbiR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlO1xuXG4kYWxsLWJ1dHRvbnM6ICAgICAgICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QpO1xuJGFsbC1idXR0b25zLWFjdGl2ZTogYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBhY3RpdmUpO1xuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XG4kYWxsLWJ1dHRvbnMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGhvdmVyKTtcblxuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZztcblxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogJGFsbC1idXR0b25zLWFjdGl2ZTtcbiRhbGwtYnV0dG9uLWlucHV0cy1mb2N1czogICRhbGwtYnV0dG9ucy1mb2N1cztcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcnVuY2F0ZXMgdGV4dCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB0byByZXByZXNlbnQgb3ZlcmZsb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxuLy8vICAgTWF4LXdpZHRoIGZvciB0aGUgc3RyaW5nIHRvIHJlc3BlY3QgYmVmb3JlIGJlaW5nIHRydW5jYXRlZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGVsbGlwc2lzO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuLy8vICAgfVxuXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlb3JnaWEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGdlb3JnaWE6IFwiR2VvcmdpYVwiLCBcIkNhbWJyaWFcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXCJUaW1lc1wiLCBzZXJpZjtcblxuLy8vIEhlbHZldGljYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kaGVsdmV0aWNhOiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiUm9ib3RvXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIEx1Y2lkYSBHcmFuZGUgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGx1Y2lkYS1ncmFuZGU6IFwiTHVjaWRhIEdyYW5kZVwiLCBcIlRhaG9tYVwiLCBcIlZlcmRhbmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTW9ub3NwYWNlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIFwiQ29uc29sYXNcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZTtcblxuLy8vIFZlcmRhbmEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHZlcmRhbmE6IFwiVmVyZGFuYVwiLCBcIkdlbmV2YVwiLCBzYW5zLXNlcmlmO1xuIiwiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vemVsZG1hbi5jb20vMjAxMi8wMy8wMS9yZXBsYWNpbmctdGhlLTk5OTlweC1oYWNrLW5ldy1pbWFnZS1yZXBsYWNlbWVudFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgaGVpZ2h0IGFyZ3VtZW50IGluIHY1LjAuMFxuXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmICRoZWlnaHQge1xuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYG1hcmdpbmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDNlbTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYG1hcmdpbmBcblxuQG1peGluIG1hcmdpbigkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcbi8vLyAgICAgcGFkZGluZy10b3A6IDEydmg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxuXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkocGFkZGluZywgZmFsc2UsICR2YWxzLi4uKTtcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3Igc2V0dGluZyBhbiBlbGVtZW504oCZcyBwb3NpdGlvbi4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cbi8vLyAgIEEgQ1NTIHBvc2l0aW9uIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cbi8vLyAgIExpc3Qgb2YgdmFsdWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgNC12YWx1ZSBzeW50YXggZm9yIHRoZSBlZGdlcyBvZiBhIGJveFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbGVmdDogMTBlbTtcbi8vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8vICAgICB0b3A6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gdW5wYWNrXG5cbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJG9mZnNldHM6IChcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XG4gICAgfVxuICB9XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZVxuLy8vICAgVmFsdWUgdG8gdXNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwcmVmaXhlc1xuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itd2Via2l0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW9wZXJhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXG5cbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xufVxuIiwiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKFwicmV0aW5hLWltYWdlXCIpO1xuXG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGhpZHBpIHtcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgb2YgdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaXplXG4vLy8gICBBIGxpc3Qgb2YgYXQgbW9zdCAyIHNpemUgdmFsdWVzLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHZhbHVlIGluIGAkc2l6ZWAgaXQgaXMgdXNlZCBmb3IgYm90aCB3aWR0aCBhbmQgaGVpZ2h0LiBBbGwgdW5pdHMgYXJlIHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IDJlbTtcbi8vLyAgICAgaGVpZ2h0OiAyZW07XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiBhdXRvO1xuLy8vICAgICBoZWlnaHQ6IDEwZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZWZhY3RvciBpbiA1LjAuMCB0byB1c2UgYSBjb21tYS1zZXBhcmF0ZWQgYXJndW1lbnRcblxuQG1peGluIHNpemUoJHZhbHVlKSB7XG4gICR3aWR0aDogbnRoKCR2YWx1ZSwgMSk7XG4gICRoZWlnaHQ6ICR3aWR0aDtcblxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPiAxIHtcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCB0ZXh0LWJhc2VkIGlucHV0cy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtdGV4dC1pbnB1dHN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30sXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWFjdGl2ZX0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuLy8vICAgdGV4dGFyZWEge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06Zm9jdXMsXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpob3Zlcixcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTphY3RpdmUsXG4vLy8gICB0ZXh0YXJlYTphY3RpdmUge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdGV4dC1pbnB1dHMtbGlzdDogJ2lucHV0W3R5cGU9XCJjb2xvclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm1vbnRoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm51bWJlclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGVsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ1cmxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0Om5vdChbdHlwZV0pJyxcbiAgICAgICAgICAgICAgICAgICAndGV4dGFyZWEnO1xuXG4kdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZTtcblxuJGFsbC10ZXh0LWlucHV0czogICAgICAgIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QpO1xuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGhvdmVyKTtcblxuJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1vdXRwdXQtZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZztcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucy4gVGltaW5nIGZ1bmN0aW9ucyBjb3VydGVzeSBvZiBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxuLy8vXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxuLy8vXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXG5cbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xuXG4kZWFzZS1vdXQtcXVhZDogICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVpbnQ6ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApO1xuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtY2lyYzogICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcblxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XG4iLCJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKGxlbmd0aCgkY29sb3IpID09IDIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuLy8vICAgfVxuXG5AbWl4aW4gd29yZC13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIH0gQGVsc2Uge1xuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xuICB9XG59XG4iLCIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXG5cbkBtaXhpbiBpbmxpbmUtYmxvY2sge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUoXCJpbmxpbmUtYmxvY2tcIik7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5AbWl4aW4gYnV0dG9uICgkc3R5bGU6IHNpbXBsZSwgJGJhc2UtY29sb3I6ICM0Mjk0ZjAsICR0ZXh0LXNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUoXCJidXR0b25cIik7XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkYmFzZS1jb2xvcjtcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cbn1cblxuLy8gU2VsZWN0b3IgU3R5bGUgQnV0dG9uXG5AbWl4aW4gYnV0dG9uc3R5bGUoJHR5cGUsICRiLWNvbG9yLCAkdC1zaXplLCAkcGFkKSB7XG4gIC8vIEdyYXlzY2FsZSBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBzaGlueSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHBpbGwgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IGZsYXQgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgLy8gQ29sb3JlZCBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBzaGlueSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHBpbGwge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IGZsYXQge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxufVxuXG4vLyBTaW1wbGUgQnV0dG9uXG5AbWl4aW4gc2ltcGxlKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTElKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTclLCAkbGlnaHRuZXNzOiAgNSUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOCUsICRsaWdodG5lc3M6IC0xNCUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNyUsICRsaWdodG5lc3M6IC0xNyUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBTaGlueSBCdXR0b25cbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTcsICRncmVlbjogLTExMSwgJGJsdWU6IC04MSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xuICAkZm91cnRoLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNzksICAkZ3JlZW46IC03MCwgICRibHVlOiAtNDYpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAgMzcsICAkZ3JlZW46ICAyOSwgICRibHVlOiAgMTIpO1xuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTQwLCAkZ3JlZW46IC0xNDEsICRibHVlOiAtMTE0KTtcbiAgJHRoaXJkLXN0b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAgJGdyZWVuOiAtNzUsICAkYmx1ZTogLTQ4KTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzZWNvbmQtc3RvcDogICBncmF5c2NhbGUoJHNlY29uZC1zdG9wKTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gICAgJHRoaXJkLXN0b3A6ICAgIGdyYXlzY2FsZSgkdGhpcmQtc3RvcCk7XG4gIH1cblxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMywgJGdyZWVuOiAtMTUsICRibHVlOiAtMTgpO1xuICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNjYsICRncmVlbjogLTYyLCAkYmx1ZTogLTUxKTtcbiAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTkzLCAkZ3JlZW46IC04NSwgJGJsdWU6IC02Nik7XG4gICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgJGdyZWVuOiAtODAsICRibHVlOiAtNjMpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkZmlyc3Qtc3RvcC1ob3Zlcik7XG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xuICAgICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJHRoaXJkLXN0b3AtaG92ZXIpO1xuICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wLWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkZmlyc3Qtc3RvcC1ob3ZlciAgMCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcmQtc3RvcC1ob3ZlciAgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmb3VydGgtc3RvcC1ob3ZlciAxMDAlKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExMSwgJGdyZWVuOiAtMTE2LCAkYmx1ZTogLTEyMik7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAyMHB4IDAgJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gUGlsbCBCdXR0b25cbkBtaXhpbiBwaWxsKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtMTElLCAkbGlnaHRuZXNzOiAtMjYlKTtcbiAgJGJvcmRlci1zaWRlczogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMjElLCAkbGlnaHRuZXNzOiAtMjElKTtcbiAgJGJvcmRlci10b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMzAlLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMSUsICAkbGlnaHRuZXNzOiAgNyUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxNCUsICRsaWdodG5lc3M6IC0xMCUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC0xOSUsICRsaWdodG5lc3M6IC0xNSUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRib3JkZXItc2lkZXM6ICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaWdodG5lc3M6IC00LjUlKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xuICAgICRib3JkZXItdG9wOiAgICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTE3JSwgICAkbGlnaHRuZXNzOiAtMjElKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC01JSwgICAgJGxpZ2h0bmVzczogLTIyJSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICAgJGJvcmRlci10b3A6ICAgICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNCwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTEwJSk7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDYsICAkc2F0dXJhdGlvbjogLTIuNSUsICRsaWdodG5lc3M6IC0zMCUpO1xuICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAxMSwgJHNhdHVyYXRpb246ICA2JSwgICAkbGlnaHRuZXNzOiAtMzElKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogOSwgICRzYXR1cmF0aW9uOiAgMiUsICAgJGxpZ2h0bmVzczogLTIxLjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNSwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTIxLjUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBncmF5c2NhbGUoJGFjdGl2ZS1jb2xvcik7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbS1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZDogJGFjdGl2ZS1jb2xvcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b20tYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggM3B4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gRmxhdCBCdXR0b25cbkBtaXhpbiBmbGF0KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA0JSwgJGxpZ2h0bmVzczogNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItYWN0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4vLyBGbGV4aWJsZSBncmlkXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGZsZXgtZ3JpZGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLiBGb3IgZ3JpZCBmdW5jdGlvbnMsIGNoZWNrIG91dCBCb3VyYm9uJ3Mgc2lzdGVyIGxpYnJhcnlcIiArXG4gICAgXCJOZWF0LlwiO1xuICB9XG5cbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbi8vIEZsZXhpYmxlIGd1dHRlclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZmxleC1ndXR0ZXJgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gRm9yIGdyaWQgZnVuY3Rpb25zLCBjaGVjayBvdXQgQm91cmJvbidzIHNpc3RlciBsaWJyYXJ5XCIgK1xuICAgIFwiTmVhdC5cIjtcbiAgfVxuXG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGdyaWQtd2lkdGhgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gRm9yIGdyaWQgZnVuY3Rpb25zLCBjaGVjayBvdXQgQm91cmJvbidzIHNpc3RlciBsaWJyYXJ5XCIgK1xuICAgIFwiTmVhdC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xufVxuXG5AZnVuY3Rpb24gZ29sZGVuLXJhdGlvKCR2YWx1ZSwgJGluY3JlbWVudCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGdvbGRlbi1yYXRpb2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLiBZb3UgY2FuIHVzZSB0aGUgYG1vZHVsYXItc2NhbGVgIGZ1bmN0aW9uIGluc3RlYWQuXCI7XG4gIH1cblxuICBAcmV0dXJuIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlLCAkcmF0aW86ICRnb2xkZW4pO1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkYm94KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LXNpemluZ1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiLy8vIENlbnRlci5cbi8vLyBDZW50ZXIgYW4gZWxlbWVudCB2ZXJ0aWNhbGx5IG9yIGhvcml6b250YWxseSBpbiBpdHMgY29udGFpbmVyLFxuLy8vIGFuZCBvcHRpb25hbGx5IGhvcml6b250YWxseS4gT3B0aW9uIHRvIHVuZG8uXG4vLy8gQHBhcmFtICRob3Jpem9uYWxseS1jZW50ZXIgLSBjZW50ZXIgaG9yaXpvbnRhbGx5XG4vLy8gQHBhcmFtICR2ZXJ0aWNhbGx5LWNlbnRlciAtIGNlbnRlciB2ZXJ0aWNhbGx5XG4vLy8gQHBhcmFtICRhYnNvbHV0ZS1wb3NpdGlvbmluZyAtIHBvc2l0aW9uIGFic29sdXRlbHksIHJhdGhlciB0aGFuIHJlbGF0aXZlbHlcbi8vLyBAcGFyYW0gJHVuZG8gLSB1bmRvIHZlcnRpY2FsIGNlbnRlcmluZyBvbiBhbiBlbGVtZW50IGl0IHdhcyBwcmV2aW91c2x5IGFwcGxpZWQgdG9cbkBtaXhpbiBjZW50ZXIoJGhvcml6b250YWxseTogdHJ1ZSwgJHZlcnRpY2FsbHk6IHRydWUsICRhYnNvbHV0ZTogZmFsc2UsICR1bmRvOiBmYWxzZSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIEBpZiAoJGFic29sdXRlKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9IEBlbHNlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgQGlmICgkaG9yaXpvbnRhbGx5ID09IHRydWUgYW5kICR2ZXJ0aWNhbGx5ID09IHRydWUpIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cblxuICBAaWYgKCR2ZXJ0aWNhbGx5ID09IHRydWUgYW5kICRob3Jpem9udGFsbHkgPT0gZmFsc2UpIHtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cblxuICBAaWYgKCRob3Jpem9udGFsbHkgPT0gdHJ1ZSBhbmQgJHZlcnRpY2FsbHkgPT0gZmFsc2UpIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG5cbiAgQGlmICgkdW5kbykge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbGVmdDogYXV0bztcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn0iLCIvLy8gRWxsaXBzaXMgZml4IGZvciBsb25nIHNwYWNlbGVzcyBzdHJpbmdzXG4vLy8gQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL2Nzcy9wcmV2ZW50LWxvbmctdXJscy1mcm9tLWJyZWFraW5nLW91dC1vZi1jb250YWluZXIvXG5AbWl4aW4gZWxsaXBzaXMoKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufSIsIi8vLyBBcHBsaWVzIGZvbnQgYXdlc29tZSBpY29uIGJ5IG5hbWVcbi8vLyBAcGFyYW0geyRpY29ufSBpY29uIG5hbWUgZnJvbSBodHRwOi8vZm9udGF3ZXNvbWUuaW8vaWNvbi5cbkBtaXhpbiBmYS1pY29uLWFwcGx5KCRpY29uKSB7XG4gIEBleHRlbmQgLmZhO1xuICBAZXh0ZW5kIC5mYS0jeyRpY29ufTtcbn1cbiIsIi8vLyBNaXhpbiAtIEZsdWlkIFR5cGVcbi8vLyBQUkVDSVNFIENPTlRST0wgT1ZFUiBSRVNQT05TSVZFIFRZUE9HUkFQSFkgRk9SIFNBU1Ncbi8vLyBJbmRyZWsgUGFhcyBAaW5kcmVrcGFhc1xuLy8vIEluc3BpcmVkIGJ5IE1pa2UgUmlldGhtdWxsZXIncyBQcmVjaXNlIGNvbnRyb2wgb3ZlciByZXNwb25zaXZlIHR5cG9ncmFwaHlcbi8vLyBAbGluayBodHRwOi8vbWFkZWJ5bWlrZS5jb20uYXUvd3JpdGluZy9wcmVjaXNlLWNvbnRyb2wtcmVzcG9uc2l2ZS10eXBvZ3JhcGh5L1xuLy8vIEBwYXJhbSAkcHJvcGVydGllc1xuLy8vIEBwYXJhbSAkbWluLXZ3XG4vLy8gQHBhcmFtICRtYXgtdndcbi8vLyBAcGFyYW0gJG1pbi12YWx1ZVxuLy8vIEBwYXJhbSAkbWF4LXZhbHVlXG5AbWl4aW4gZmx1aWQtdHlwZSgkcHJvcGVydGllcywgJG1pbi12dywgJG1heC12dywgJG1pbi12YWx1ZSwgJG1heC12YWx1ZSkge1xuICAmIHtcbiAgICBAZWFjaCAkcHJvcGVydHkgaW4gJHByb3BlcnRpZXMge1xuICAgICAgI3skcHJvcGVydHl9OiAkbWluLXZhbHVlO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRtaW4tdncpIHtcbiAgICAgIEBlYWNoICRwcm9wZXJ0eSBpbiAkcHJvcGVydGllcyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogY2FsYygjeyRtaW4tdmFsdWV9ICsgI3tzdHJpcC11bml0KCRtYXgtdmFsdWUgLSAkbWluLXZhbHVlKX0gKiAoMTAwdncgLSAjeyRtaW4tdnd9KSAvICN7c3RyaXAtdW5pdCgkbWF4LXZ3IC0gJG1pbi12dyl9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWF4LXZ3KSB7XG4gICAgICBAZWFjaCAkcHJvcGVydHkgaW4gJHByb3BlcnRpZXMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICRtYXgtdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLypcbiAqIE1haW4gSWNvbiBtaXhpblxuICpcbiAqIENhbiBiZSBjYWxsZWQgbGlrZSBAaW5jbHVkZSBpY29uKCR2YXJzKSB7IGJhY2tncm91bmQ6IHNvbWV0aGluZzsgfSB1c2luZyB0aGVcbiAqIHBvd2VyIG9mIEBjb250ZW50LlxuICovXG5AbWl4aW4gaWNvbihcbiAgJGljb246IFwic2VhcmNoXCIsIC8vIGp1c3QgYSBkZWZhdWx0XG4gICRwc2V1ZG86IGJlZm9yZSxcbiAgJHNpemU6IGluaGVyaXQsXG4gICRjb2xvcjogaW5oZXJpdCxcbiAgJGJsb2NrOiBmYWxzZVxuKSB7XG4gIEBleHRlbmQgLmljb24tI3skaWNvbn0gIW9wdGlvbmFsO1xuICAmOiN7JHBzZXVkb30ge1xuICAgIGZvbnQtc2l6ZTogJHNpemU7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBAY29udGVudDtcbiAgfVxuICAvLyBHZXQgYXJvdW5kIGZpZ2h0aW5nIHdpdGggbGluZS1oZWlnaHRzXG4gIEBpZiAkYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8vIFNldCBmb250LWJhc2UgZm9yIHRoZSBpY29uIGZvbnQuXG4uaWNvbjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHNwZWFrOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuIiwiLy8vIE1peGluIC0gTG9jYWwgQmFzZVxuLy8vIFNldCBIVE1MIGZvbnQgc2l6aW5nIGJhc2UgZm9yIGdsb2JhbC9sb2NhbCBzaXppbmcgKHJlbS9lbSkuXG4vLy8gQGxpbmsgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9yZW0tZ2xvYmFsLWVtLWxvY2FsL1xuQG1peGluIGxvY2FsLWJhc2UoKSB7XG4gIGZvbnQtc2l6ZTogMXJlbTsgLy8gMTZweCAoZGVmYXVsdClcbn1cblxuLmxvY2FsLWJhc2Uge1xuICBAaW5jbHVkZSBsb2NhbC1iYXNlKCk7XG59IiwiQG1peGluIG1hcmdpbi10b3AtYm90dG9tKCRzcGFjZXI6ICRzcGFjaW5nX19tZWRpdW0pIHtcbiAgbWFyZ2luLXRvcDogJHNwYWNlcjtcbiAgbWFyZ2luLWJvdHRvbTogJHNwYWNlcjtcbn1cbiIsIi8vIE1peGluIGZvciBkeW5hbWljIHZhbHVlcy5cbi8vIEV4dGVuZGluZyBtZXNzYWdlcy5cbkBtaXhpbiBtZXNzYWdlcygkY29sb3IpIHtcbiAgQGV4dGVuZCAlbWVzc2FnZXM7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGNvbG9yLCAzOCUpO1xuICBib3JkZXItY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLCAyMCUpO1xufSIsIkBtaXhpbiBwYWRkaW5nLXRvcC1ib3R0b20oJHNwYWNpbmc6ICRzcGFjaW5nLS14eGwpIHtcbiAgcGFkZGluZy10b3A6ICRzcGFjaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmc7XG59XG4iLCIvLyBDcmVhdGUgcGxhY2Vob2xkZXIgbWl4aW5cbkBtaXhpbiBwbGFjZWhvbGRlcigkY29sb3IsICRzaXplOlwiXCIpIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBAaWYgJHNpemUgIT0gXCJcIiB7XG4gICAgICBmb250LXNpemU6ICRzaXplO1xuICAgIH1cbiAgfVxuICAmOi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgQGlmICRzaXplICE9IFwiXCIge1xuICAgICAgZm9udC1zaXplOiAkc2l6ZTtcbiAgICB9XG4gIH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBAaWYgJHNpemUgIT0gXCJcIiB7XG4gICAgICBmb250LXNpemU6ICRzaXplO1xuICAgIH1cbiAgfVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBAaWYgJHNpemUgIT0gXCJcIiB7XG4gICAgICBmb250LXNpemU6ICRzaXplO1xuICAgIH1cbiAgfVxufSIsIi8vLyBTdHJpcCB1bml0XG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkdmFsdWUpIHtcbiAgQHJldHVybiAkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpO1xufSIsIi8vLyBXb3JkIFdyYXAgZml4IGZvciBsb25nIHNwYWNlbGVzcyBzdHJpbmdzXG4vLy8gQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL2Nzcy9wcmV2ZW50LWxvbmctdXJscy1mcm9tLWJyZWFraW5nLW91dC1vZi1jb250YWluZXIvXG5AbWl4aW4gd29yZC13cmFwKCkge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIGh5cGhlbnM6IGF1dG87XG59IiwiJHotaW5kZXg6IChcbiAgbW9kYWw6IDEwMCxcbiAgbW9kYWxCRzogOTAsXG4gIG5hdkZpeGVkOiA4MCxcbiAgdG9vbHRpcDogNzAsXG4gIHBvcG92ZXI6IDYwLFxuICBkcm9wZG93bjogNTAsXG4gIG5hdjogNTAsXG4gIGNvbnRlbnRUb3A6IDQwLFxuICBjb250ZW50OiAzMCxcbiAgY29udGVudEJvdHRvbTogMjAsXG4pO1xuXG4vLyB1c2FnZTpcbi8vIC5jbGFzcyB7IHotaW5kZXg6IHooXCJtb2RhbFwiKTsgfVxuQGZ1bmN0aW9uIHooJGtleSkge1xuICBAcmV0dXJuIG1hcC1nZXQoJHotaW5kZXgsICRrZXkpXG59XG4iLCIvLyBDb2xvciBuYW1lcyB3ZXJlIGRlcml2ZWQgZnJvbSBodHRwOi8vY2hpci5hZy9wcm9qZWN0cy9uYW1lLXRoYXQtY29sb3JcblxuLy8gUmljaCwgbHV4dXJpb3VzIHRvbmVzXG4kYy0tc2NhcnBhLWZsb3c6IHJnYmEoOTAsIDgzLCA5NiwgMSk7XG4kYy0tc2NhcnBhLWZsb3dfXzc1OiByZ2JhKDkwLCA4MywgOTYsIC43NSk7XG4kYy0tc2NhcnBhLWZsb3dfXzUwOiByZ2JhKDkwLCA4MywgOTYsIC41KTtcbiRjLS1zY2FycGEtZmxvd19fMjU6IHJnYmEoOTAsIDgzLCA5NiwgLjI1KTtcblxuLy8gUGFudG9uZSA2NjggQ1xuJGMtLW11bGxlZC13aW5lOiByZ2JhKDkzLCA2NiwgMTA5LCAxKTtcbiRjLS1tdWxsZWQtd2luZV9fNzU6IHJnYmEoOTMsIDY2LCAxMDksIC43NSk7XG4kYy0tbXVsbGVkLXdpbmVfXzUwOiByZ2JhKDkzLCA2NiwgMTA5LCAuNSk7XG4kYy0tbXVsbGVkLXdpbmVfXzI1OiByZ2JhKDkzLCA2NiwgMTA5LCAuMjUpO1xuXG4kYy0tY29zdGEtZGVsLXNvbDogcmdiYSg5MSwgOTMsIDQ4LCAxKTtcbiRjLS1jb3N0YS1kZWwtc29sX183NTogcmdiYSg5MSwgOTMsIDQ4LCAuNzUpO1xuJGMtLWNvc3RhLWRlbC1zb2xfXzUwOiByZ2JhKDkxLCA5MywgNDgsIC41KTtcbiRjLS1jb3N0YS1kZWwtc29sX18yNTogcmdiYSg5MSwgOTMsIDQ4LCAuMjUpO1xuXG4kYy0tYnJlYWtlci1iYXk6IHJnYmEoNzgsIDE1MiwgMTM3LCAxKTtcbiRjLS1icmVha2VyLWJheV9fNzU6IHJnYmEoNzgsIDE1MiwgMTM3LCAuNzUpO1xuJGMtLWJyZWFrZXItYmF5X181MDogcmdiYSg3OCwgMTUyLCAxMzcsIC41KTtcbiRjLS1icmVha2VyLWJheV9fMjU6IHJnYmEoNzgsIDE1MiwgMTM3LCAuMjUpO1xuXG4kYy0ta2FzbWlyLWJsdWU6IHJnYmEoNzMsIDEwMCwgMTQwLCAxKTtcbiRjLS1rYXNtaXItYmx1ZV9fNzU6IHJnYmEoNzMsIDEwMCwgMTQwLCAuNzUpO1xuJGMtLWthc21pci1ibHVlX181MDogcmdiYSg3MywgMTAwLCAxNDAsIC41KTtcbiRjLS1rYXNtaXItYmx1ZV9fMjU6IHJnYmEoNzMsIDEwMCwgMTQwLCAuMjUpO1xuXG4kYy0tY2FyZGluYWw6IHJnYmEoMTgzLCAzMCwgNjMsIDEpO1xuJGMtLWNhcmRpbmFsX183NTogcmdiYSgxODMsIDMwLCA2MywgLjc1KTtcbiRjLS1jYXJkaW5hbF9fNTA6IHJnYmEoMTgzLCAzMCwgNjMsIC41KTtcbiRjLS1jYXJkaW5hbF9fMjU6IHJnYmEoMTgzLCAzMCwgNjMsIC4yNSk7XG5cbi8vIFBhbnRvbmUgMjIyMyBDXG4kYy0tc3VyZmllLWdyZWVuOiByZ2JhKDEzLCAxMTIsIDEzMSwgMSk7XG4kYy0tc3VyZmllLWdyZWVuX183NTogcmdiYSgxMywgMTEyLCAxMzEsIC43NSk7XG4kYy0tc3VyZmllLWdyZWVuX181MDogcmdiYSgxMywgMTEyLCAxMzEsIC41KTtcbiRjLS1zdXJmaWUtZ3JlZW5fXzI1OiByZ2JhKDEzLCAxMTIsIDEzMSwgLjI1KTtcblxuLy8gU29mdCwgY2FsbSB0b25lc1xuJGMtLXN1cmY6IHJnYmEoMTgxLCAyMTUsIDE4NiwgMSk7XG4kYy0tc3VyZl9fNzU6IHJnYmEoMTgxLCAyMTUsIDE4NiwgLjc1KTtcbiRjLS1zdXJmX181MDogcmdiYSgxODEsIDIxNSwgMTg2LCAuNSk7XG4kYy0tc3VyZl9fMjU6IHJnYmEoMTgxLCAyMTUsIDE4NiwgLjI1KTtcblxuJGMtLWV1bnJ5OiByZ2JhKDIwNywgMTcxLCAxNTMsIDEpO1xuJGMtLWV1bnJ5X183NTogcmdiYSgyMDcsIDE3MSwgMTUzLCAuNzUpO1xuJGMtLWV1bnJ5X181MDogcmdiYSgyMDcsIDE3MSwgMTUzLCAuNSk7XG4kYy0tZXVucnlfXzI1OiByZ2JhKDIwNywgMTcxLCAxNTMsIC4yNSk7XG5cbiRjLS1iaWxvYmEtZmxvd2VyOiByZ2JhKDE2NCwgMTY4LCAyMzgsIDEpO1xuJGMtLWJpbG9iYS1mbG93ZXJfXzc1OiByZ2JhKDE2NCwgMTY4LCAyMzgsIC43NSk7XG4kYy0tYmlsb2JhLWZsb3dlcl9fNTA6IHJnYmEoMTY0LCAxNjgsIDIzOCwgLjUpO1xuJGMtLWJpbG9iYS1mbG93ZXJfXzI1OiByZ2JhKDE2NCwgMTY4LCAyMzgsIC4yNSk7XG5cbiRjLS1qYWdnZWQtaWNlOiByZ2JhKDIwNywgMjMzLCAyMzgsIDEpO1xuJGMtLWphZ2dlZC1pY2VfXzc1OiByZ2JhKDIwNywgMjMzLCAyMzgsIC43NSk7XG4kYy0tamFnZ2VkLWljZV9fNTA6IHJnYmEoMjA3LCAyMzMsIDIzOCwgLjUpO1xuJGMtLWphZ2dlZC1pY2VfXzI1OiByZ2JhKDIwNywgMjMzLCAyMzgsIC4yNSk7XG5cbiRjLS1yYWZmaWE6IHJnYmEoMjM1LCAyMjUsIDE5MSwgMSk7XG4kYy0tcmFmZmlhX183NTogcmdiYSgyMzUsIDIyNSwgMTkxLCAuNzUpO1xuJGMtLXJhZmZpYV9fNTA6IHJnYmEoMjM1LCAyMjUsIDE5MSwgLjUpO1xuJGMtLXJhZmZpYV9fMjU6IHJnYmEoMjM1LCAyMjUsIDE5MSwgLjI1KTtcblxuLy8gUGFudG9uZSBQYXN0ZWwgOTMyMiBDXG4kYy0tdmFuaWxsYS1pY2U6IHJnYmEoMjM4LCAyMDQsIDIxMywgMSk7XG4kYy0tdmFuaWxsYS1pY2VfXzc1OiByZ2JhKDIzOCwgMjA0LCAyMTMsIC43NSk7XG4kYy0tdmFuaWxsYS1pY2V0X181MDogcmdiYSgyMzgsIDIwNCwgMjEzLCAuNSk7XG4kYy0tdmFuaWxsYS1pY2V0X18yNTogcmdiYSgyMzgsIDIwNCwgMjEzLCAuMjUpO1xuXG4kYy0tYWx0bzogcmdiYSgyMjEsIDIyMCwgMjE5LCAxKTtcbiRjLS1hbHRvX183NTogcmdiYSgyMjEsIDIyMCwgMjE5LCAuNzUpO1xuJGMtLWFsdG9fXzUwOiByZ2JhKDIyMSwgMjIwLCAyMTksIC41KTtcbiRjLS1hbHRvX18yNTogcmdiYSgyMjEsIDIyMCwgMjE5LCAuMjUpO1xuXG4vLyBWaWJyYW50LCBlbmVyZ2V0aWMgdG9uZXNcbiRjLS1lYXJscy1ncmVlbjogcmdiYSgxODcsIDIwOCwgNTIsIDEpO1xuJGMtLWVhcmxzLWdyZWVuX183NTogcmdiYSgxODcsIDIwOCwgNTIsIC43NSk7XG4kYy0tZWFybHMtZ3JlZW5fXzUwOiByZ2JhKDE4NywgMjA4LCA1MiwgLjUpO1xuJGMtLWVhcmxzLWdyZWVuX18yNTogcmdiYSgxODcsIDIwOCwgNTIsIC4yNSk7XG5cbiRjLS1tYWxpYnU6IHJnYmEoMTEzLCAyMDMsIDI0NCwgMSk7XG4kYy0tbWFsaWJ1X183NTogcmdiYSgxMTMsIDIwMywgMjQ0LCAuNzUpO1xuJGMtLW1hbGlidV9fNTA6IHJnYmEoMTEzLCAyMDMsIDI0NCwgLjUpO1xuJGMtLW1hbGlidV9fMjU6IHJnYmEoMTEzLCAyMDMsIDI0NCwgLjI1KTtcblxuJGMtLXdpc3RlcmlhOiByZ2JhKDE1OCwgMTE3LCAxNzgsIDEpO1xuJGMtLXdpc3RlcmlhX183NTogcmdiYSgxNTgsIDExNywgMTc4LCAuNzUpO1xuJGMtLXdpc3RlcmlhX181MDogcmdiYSgxNTgsIDExNywgMTc4LCAuNSk7XG4kYy0td2lzdGVyaWFfXzI1OiByZ2JhKDE1OCwgMTE3LCAxNzgsIC4yNSk7XG5cbiRjLS1yZWQtcmliYm9uOiByZ2JhKDIyOCwgMCwgNTgsIDEpO1xuJGMtLXJlZC1yaWJib25fXzc1OiByZ2JhKDIyOCwgMCwgNTgsIC43NSk7XG4kYy0tcmVkLXJpYmJvbl9fNTA6IHJnYmEoMjI4LCAwLCA1OCwgLjUpO1xuJGMtLXJlZC1yaWJib25fXzI1OiByZ2JhKDIyOCwgMCwgNTgsIC4yNSk7XG5cbiRjLS1mb3VudGFpbi1ibHVlOiByZ2JhKDEwMiwgMTkzLCAxOTEsIDEpO1xuJGMtLWZvdW50YWluLWJsdWVfXzc1OiByZ2JhKDEwMiwgMTkzLCAxOTEsIC43NSk7XG4kYy0tZm91bnRhaW4tYmx1ZV9fNTA6IHJnYmEoMTAyLCAxOTMsIDE5MSwgLjUpO1xuJGMtLWZvdW50YWluLWJsdWVfXzI1OiByZ2JhKDEwMiwgMTkzLCAxOTEsIC4yNSk7XG5cbi8vIFBhbnRvbmUgNzQwMyBDXG4kYy0tY29uZmV0dGk6IHJnYmEoMjM1LCAyMTAsIDkyLCAxKTtcbiRjLS1jb25mZXR0aV9fNzU6IHJnYmEoMjM1LCAyMTAsIDkyLCAuNzUpO1xuJGMtLWNvbmZldHRpX181MDogcmdiYSgyMzUsIDIxMCwgOTIsIC41KTtcbiRjLS1jb25mZXR0aV9fMjU6IHJnYmEoMjM1LCAyMTAsIDkyLCAuMjUpO1xuXG4vLyBQYW50b25lIDc1NzcgQ1xuJGMtLWphZmZhOiByZ2JhKDI0NCwgMTQyLCA3NSwgMSk7XG4kYy0tamFmZmFfXzc1OiByZ2JhKDI0NCwgMTQyLCA3NSwgLjc1KTtcbiRjLS1qYWZmYV9fNTA6IHJnYmEoMjQ0LCAxNDIsIDc1LCAuNSk7XG4kYy0tamFmZmFfXzI1OiByZ2JhKDI0NCwgMTQyLCA3NSwgLjI1KTtcblxuLy8gRGVuaW1cbiRjLS1kZW5pbTogcmdiYSgxOCwgMTI0LCAxNzksIDEpO1xuJGMtLWRlbmltX183NTogcmdiYSgxOCwgMTI0LCAxNzksIC43NSk7XG4kYy0tZGVuaW1fXzUwOiByZ2JhKDE4LCAxMjQsIDE3OSwgLjUpO1xuJGMtLWRlbmltX18yNTogcmdiYSgxOCwgMTI0LCAxNzksIC4yNSk7XG4kYy0tZGVuaW1fXzU6IHJnYmEoMTgsIDEyNCwgMTc5LCAuMDUpO1xuXG4vLyBCbGFjayBzcXVlZXplICh0aGlzIGlzIGEgcGFzdGVsIGxpa2UgY29sb3IgLSB0aGUgdGVycmlibGUgbmFtZSBpcyBmcm9tIG5hbWUtdGhhdC1jb2xvciwgc2VlIHRvcCBvZiB0aGlzIGZpbGUpXG4kYy0tYmxhY2stc3F1ZWV6ZTogcmdiYSgyMzIsIDI0MSwgMjQ3LCAxKTtcbiRjLS1ibGFjay1zcXVlZXplX183NTogcmdiYSgyMzIsIDI0MSwgMjQ3LCAuNzUpO1xuJGMtLWJsYWNrLXNxdWVlemVfNTA6IHJnYmEoMjMyLCAyNDEsIDI0NywgLjUpO1xuJGMtLWJsYWNrLXNxdWVlemVfMjU6IHJnYmEoMjMyLCAyNDEsIDI0NywgLjI1KTtcblxuLy8gV2hpdGUsIGJsYWNrIGFuZCBzaGFkZXMgb2YgZ3JleSBjb2xvcnNcbiRjLS13aGl0ZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTtcbiRjLS13aGl0ZV9fc3Ryb25nOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC45NSk7XG4kYy0td2hpdGVfX2xpZ2h0OiByZ2JhKDI1NSwgMjU1LCAyNTUsIC41KTtcbiRjLS13aGl0ZV9fZGFyazogcmdiYSgyMjAsIDIyMCwgMjIwLCAxKTtcbiRjLS1ibGFjazogcmdiYSgwLCAwLCAwLCAxKTtcbiRjLS1ncmV5OiByZ2JhKDY2LCA2NiwgNjYsIDEpO1xuJGMtLWdyZXlfX2xpZ2h0OiByZ2JhKDExNSwgMTE1LCAxMTUsIDEpO1xuJGMtLWdyZXlfX2xpZ2h0ZXI6IHJnYmEoMTk0LCAxOTQsIDE5NCwgMSk7XG4kYy0tZ3JleV9fbGlnaHRlcmVyOiByZ2JhKDIyNSwgMjI1LCAyMjUsIDEpO1xuJGMtLWdyZXlfX2Rhcms6IHJnYmEoNTMsIDUzLCA1MywgMSk7XG4kYy0tc2t5LWJsdWU6IHJnYig4MSwgMTU3LCAxOTYpO1xuXG4vLyBQcmltYXJ5IGFuZCBzZWNvbmRhcnkgY29sb3JzXG4kYy0tcHJpbWFyeTogJGMtLWRlbmltO1xuJGMtLXNlY29uZGFyeTogJGMtLWdyZXlfX2xpZ2h0O1xuJGMtLWJhY2tncm91bmQ6ICRjLS13aGl0ZTtcbiRjLS10ZXh0OiAkYy0tYmxhY2s7XG4kYy0tdGV4dF9fbGlnaHQ6ICRjLS1ncmV5X19saWdodDtcblxuLy8gQnJhbmQgY29sb3JzXG4kYy0tcGludGVyZXN0OiByZ2JhKDE4OSwgOCwgMjgsIDEpO1xuJGMtLWZhY2Vib29rOiByZ2JhKDU5LCA4OSwgMTUyLCAxKTtcbiRjLS10d2l0dGVyOiByZ2IoMjksIDE2MSwgMjQyKTtcbiIsIi8qKlxuICogQnJlYWtwb2ludCBDb25maWd1cmF0aW9uXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9UZWFtLVNhc3MvYnJlYWtwb2ludC93aWtpXG4gKlxuICogVXNhZ2U6XG4gKiBkaXNwbGF5OiBub25lOyAvLyBoaWRkZW4gZm9yIG1vYmlsZVxuICogQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLW1vYmlsZSkge1xuICogICBkaXNwbGF5OiBibG9jazsgLy8gc2hvd24gYWJvdmUgNDgwXG4gKiB9XG4gKi9cblxuLy8gQnJlYWtwb2ludCB3aWxsIG91dHB1dCBmYWxsYmFjayBzZWxlY3RvcnMgaW4gdGhpcyBzdHlsZXNoZWV0XG5AaW5jbHVkZSBicmVha3BvaW50LXNldChcIm5vIHF1ZXJ5IGZhbGxiYWNrc1wiLCB0cnVlKTtcblxuJGJwLS1tb2JpbGU6IDMyMHB4O1xuJGJwLS10YWJsZXQ6IDUzNHB4O1xuJGJwLS1kZXNrdG9wOiAxMDIxcHg7XG5cbi8vIFNpdGUgY29udGVudCB3aWR0aCBzY2FsZS5cbiR3aWR0aC0tbWluOiAkYnAtLW1vYmlsZTtcbiR3aWR0aC0tbWF4OiAxMDAwcHg7XG4iLCIvLyBNb2JpbGUgZmlyc3QgZ3JpZC5cbkBpbmNsdWRlIGFkZC1ncmlkKDQpO1xuQGluY2x1ZGUgYWRkLWdyaWQoOCBhdCAkYnAtLXRhYmxldCk7XG5AaW5jbHVkZSBhZGQtZ3JpZCgxMiBhdCAkYnAtLWRlc2t0b3ApO1xuXG5AaW5jbHVkZSBhZGQtZ3V0dGVyKDEvMy4yNSk7XG5cblxuLnZpZXdzLXZpZXctZ3JpZCB7XG4gIC52aWV3cy1yb3c6bm90KDpsYXN0LWNoaWxkKXtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIGxpZ2h0Z3JheTtcbiAgfVxuICAudmlld3MtY29sIHtcbiAgICBtYXgtd2lkdGg6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDFyZW0gMDtcbiAgfVxufSIsIlxuLy8vIE1ha2VzIGEgZnVsbC13aWR0aCBncmlkIHJvdywgYXBwbGllcyBtYXggYW5kIG1pbiB3aWR0aCByZXN0cmljdGlvbnMuXG5AbWl4aW4gZ3JpZC1yb3coKSB7XG4gIEBpbmNsdWRlIGdyaWQtc3Bhbig0KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0tdGFibGV0KSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDgpO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLWRlc2t0b3ApIHtcbiAgICBAaW5jbHVkZSBncmlkLXNwYW4oMTIpO1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1pbi13aWR0aDogJHdpZHRoLS1taW47XG4gICAgbWF4LXdpZHRoOiAkd2lkdGgtLW1heDtcbiAgICBtYXJnaW46IHtcbiAgICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIGd1dHRlciBzcGFuIGZvciBhIGNzcyBwcm9wZXJ0eS5cbi8vLyBAcGFyYW0geyRwcm9wZXJ0eX0gdGhlIGNzcyBwcm9wZXJ0eSwgZS5nLiAnbWFyZ2luLWJvdHRvbScuXG4vLy8gQHBhcmFtIHskbXVsdGlwbGllcn0gdGhlIG11bHRpcGxpZXIgZm9yIHRoZSBndXR0ZXIgdmFsdWUuXG5AbWl4aW4gYXBwbHlHdXR0ZXJTcGFuKCRwcm9wZXJ0eSwgJG11bHRpcGxpZXI6IDEpIHtcbiAgI3skcHJvcGVydHl9OiBndXR0ZXItc3BhbigpICogJG11bHRpcGxpZXI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLXRhYmxldCkge1xuICAgICN7JHByb3BlcnR5fTogZ3V0dGVyLXNwYW4oKSAqICRtdWx0aXBsaWVyO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnAtLWRlc2t0b3ApIHtcbiAgICAjeyRwcm9wZXJ0eX06IGd1dHRlci1zcGFuKCkgKiAkbXVsdGlwbGllcjtcbiAgfVxufVxuIiwiJHNwYWNpbmctLXRpbnk6IHJlbSgyKTtcbiRzcGFjaW5nLS1zbWFsbDogcmVtKDQpO1xuJHNwYWNpbmctLWhhbGY6IHJlbSg4KTtcbiRzcGFjaW5nLS1iYXNlOiByZW0oMTApO1xuJHNwYWNpbmctLW1lZGl1bTogcmVtKDEyKTtcbiRzcGFjaW5nLS1ndXR0ZXI6IHJlbSgyMCk7XG4kc3BhY2luZy0tYmlnOiByZW0oMjQpO1xuJHNwYWNpbmctLWRvdWJsZTogcmVtKDMyKTtcbiRzcGFjaW5nLS1sYXJnZTogcmVtKDY0KTtcblxuLy8gQSBtYXAgZm9yIHBhdHRlcm4tbGFiIHRvIHNob3cgdGhlIHNwYWNpbmdzLlxuJHNwYWNpbmctbWFwOiAoXG4gIHRpbnk6ICRzcGFjaW5nLS10aW55LFxuICBzbWFsbDogJHNwYWNpbmctLXNtYWxsLFxuICBoYWxmOiAkc3BhY2luZy0taGFsZixcbiAgYmFzZTogJHNwYWNpbmctLWJhc2UsXG4gIG1lZGl1bTogJHNwYWNpbmctLW1lZGl1bSxcbiAgYmlnOiAkc3BhY2luZy0tYmlnLFxuICBkb3VibGU6ICRzcGFjaW5nLS1kb3VibGUsXG4gIGxhcmdlOiAkc3BhY2luZy0tbGFyZ2UsXG4pO1xuIiwiQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQ2VyYSBHUiBNZWRpdW0nO1xuICAvL3NyYzogdXJsKCcvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvYXNzZXRzL0ZvbnRzL0NlcmFfR1IvQ2VyYSBHUiBNZWRpdW0ud29mZicpO1xuICBzcmM6IHVybCgnL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L2Fzc2V0cy9Gb250cy9DRl9Ecm9tb24vQ0YgRHJvbW9uX01kLm90ZicpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQ2VyYSBHUiBCbGFjayc7XG4gIC8vc3JjOiB1cmwoJy90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9hc3NldHMvRm9udHMvQ2VyYV9HUi9DZXJhIEdSIEJsYWNrLndvZmYnKTtcbiAgc3JjOiB1cmwoJy90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9hc3NldHMvRm9udHMvQ0ZfRHJvbW9uL0NGIERyb21vbl9Cay5vdGYnKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0NlcmEgR1IgTGlnaHQnO1xuICAvL3NyYzogdXJsKCcvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvYXNzZXRzL0ZvbnRzL0NlcmFfR1IvQ2VyYSBHUiBMaWdodC53b2ZmJyk7XG4gIHNyYzogdXJsKCcvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvYXNzZXRzL0ZvbnRzL0NGX0Ryb21vbi9DRiBEcm9tb25fTGdJdC5vdGYnKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0NlcmEgR1IgUmVndWxhciBJdGFsaWMnO1xuICAvL3NyYzogdXJsKCcvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvYXNzZXRzL0ZvbnRzL0NlcmFfR1IvQ2VyYSBHUiBSZWd1bGFyIEl0YWxpYy53b2ZmJyk7XG4gIHNyYzogdXJsKCcvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvYXNzZXRzL0ZvbnRzL0NGX0Ryb21vbi9DRiBEcm9tb25fUmdJdC5vdGYnKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0NlcmEgR1IgUmVndWxhciBCb2xkJztcbiAgLy9zcmM6IHVybCgnL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L2Fzc2V0cy9Gb250cy9DZXJhX0dSL0NlcmEgR1IgQm9sZC53b2ZmJyk7XG4gIHNyYzogdXJsKCcvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvYXNzZXRzL0ZvbnRzL0NGX0Ryb21vbi9DRiBEcm9tb25fQmQub3RmJyk7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdDZXJhIEdSIFJlZ3VsYXInO1xuICAvL3NyYzogdXJsKCcvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvYXNzZXRzL0ZvbnRzL0NlcmFfR1IvQ2VyYSBHUi53b2ZmJyk7XG4gIHNyYzogdXJsKCcvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvYXNzZXRzL0ZvbnRzL0NGX0Ryb21vbi9DRiBEcm9tb25fUmcub3RmJyk7XG59XG5cbi5mb250e1xuICAmLS1ibGFja3tmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJsYWNrO31cbiAgJi0tbGlnaHR7Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1saWdodDt9XG4gICYtLXJlZ3VsYXJ7Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1yZWd1bGFyO31cbiAgJi0tcmVndWxhci1ib2xke2ZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktcmVnLWJvbGQ7fVxuICAmLS10aGluLWl0YWxpY3tmb250LWZhbWlseTogJ0NlcmEgR1IgUmVndWxhciBJdGFsaWMnO31cbn1cbkBtaXhpbiB0ZXh0LWxpbmstc3R5bGUoJGNvbG9yKXtcbiAgY29sb3I6ICRjb2xvcjtcbn1cblxuJGJhc2ljLWZvbnQtc2l6ZTogMXJlbTtcbi50ZXh0e1xuICAmLS1zdWNjZXNze0BpbmNsdWRlIHRleHQtbGluay1zdHlsZSgkY29sb3Itc3VjY2Vzcyk7fVxuICAmLS13aGl0ZXtAaW5jbHVkZSB0ZXh0LWxpbmstc3R5bGUoJGNvbG9yLXdoaXRlKTt9XG4gICYtLXllbGxvd3tAaW5jbHVkZSB0ZXh0LWxpbmstc3R5bGUoJGNvbG9yLW1haW4teWVsbG93KTt9XG4gICYtLWJsdWV7QGluY2x1ZGUgdGV4dC1saW5rLXN0eWxlKCRjb2xvci1tYWluLXNlbWktZGFyay1ibHVlKTt9XG4gICYtLWRhcmstYmx1ZXtAaW5jbHVkZSB0ZXh0LWxpbmstc3R5bGUoJGNvbG9yLW1haW4tYmx1ZSk7fVxuICAmLS1icm93bntAaW5jbHVkZSB0ZXh0LWxpbmstc3R5bGUoJGNvbG9yLW1haW4tYnJvd24pO31cbiAgJi0tYmxhY2t7QGluY2x1ZGUgdGV4dC1saW5rLXN0eWxlKCRjb2xvci1tYWluLWJsYWNrKTt9XG4gICYtLWdyZXl7QGluY2x1ZGUgdGV4dC1saW5rLXN0eWxlKGdyZXkpO31cblxuICAmLS1iYXJpc3Rhe2NvbG9yOiAkY29sb3ItYmFyaXN0YTsgfVxuICAmLS1ncmluZGVyeXtjb2xvcjogJGNvbG9yLWdyaW5kZXJ5OyB9XG4gICYtLXF1YWxpdHl7Y29sb3I6ICRjb2xvci1xdWFsaXR5OyB9XG4gICYtLXJvYXN0aW5ne2NvbG9yOiAkY29sb3Itcm9hc3Rpbmc7IH1cblxuICAmLS1ib2xke2ZvbnQtd2VpZ2h0OiBib2xkO31cbiAgJi0tdXBwZXJjYXNle3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7fVxuICAmLS1uby11bmRlcmxpbmV7dGV4dC1kZWNvcmF0aW9uOiBub25lO31cbiAgJi0tdW5kZXJsaW5le3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cblxuICAmLS1sZWZ0e3RleHQtYWxpZ246IGxlZnQ7fVxuICAmLS1jZW50ZXJlZHt0ZXh0LWFsaWduOiBjZW50ZXI7fVxuICAmLS1yaWdodHt0ZXh0LWFsaWduOiByaWdodDt9XG5cblxuICAmLS14c21hbGx7Zm9udC1zaXplOiAkYmFzaWMtZm9udC1zaXplIC0gMC4zO31cbiAgJi0tc21hbGx7Zm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO31cbiAgJi0tbWVkaXVte2ZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZWRpdW07fVxuICAmLS1tbGFyZ2V7Zm9udC1zaXplOiAkZm9udC1zaXplLW1sYXJnZTt9XG4gICYtLWxhcmdle2ZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1sYXJnZTsgbGluZS1oZWlnaHQ6IDE7fVxuICAmLS14bGFyZ2V7Zm9udC1zaXplOiAkZm9udC1zaXplLXhsYXJnZTsgbGluZS1oZWlnaHQ6IDE7IH1cbn1cblxuIiwiLmxvZ2luX2Zvcm1fX2J1dHRvbiB7XG4gIGlucHV0W3R5cGU9c3VibWl0XSB7XG4gICAgQGV4dGVuZCAuYnV0dG9uLCAuYnV0dG9uLS1ib3JkZXIteWVsbG93LCAuYnV0dG9uLS10cmFuc3BhcmVudCwgLmJ1dHRvbi0taHZyLWdsb3csIC5idXR0b24tLWh2ci1nbG93LS15ZWxsb3c7XG4gICAgY29sb3I6ICRjb2xvci1tYWluLXllbGxvdztcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1yZWctYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG59XG5cbi5wYXNzd29yZC1zcGFjZSB7XG4gIGxldHRlci1zcGFjaW5nOiAzcHg7XG59XG5cbi51c2VyLXBhc3MtcmVzZXQge1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMnJlbTtcblxuICBlbXtcbiAgICBjb2xvcjogJGNvbG9yLW1haW4teWVsbG93XG4gIH1cblxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJde1xuICAgIEBleHRlbmQgLmJ1dHRvbiwgLmJ1dHRvbi0tcHJpbWFyeTtcbiAgfVxufVxuXG4udXNlci1sb2dpbi1mb3JtLCAudXNlci1wYXNzIHtcbiAgaW5wdXQge1xuICAgIGN1cmV0LWNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIH1cblxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsLFxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxuICBpbnB1dDotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciA1MDAwcyBlYXNlLWluLW91dCAwcyAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAkY29sb3Itd2hpdGUgIWltcG9ydGFudDtcbiAgfVxufSIsImRpdltkYXRhLWRydXBhbC1zZWxlY3Rvcj1cImVkaXQtZmllbGQtcmUtZGlhdGhlc2ltby1lb3Mtd3JhcHBlclwiXSxcbmRpdltkYXRhLWRydXBhbC1zZWxlY3Rvcj1cImVkaXQtZmllbGQtcmUtZGlhdGhlc2ltby1hcG8td3JhcHBlclwiXSxcbmRpdltkYXRhLWRydXBhbC1zZWxlY3Rvcj1cImVkaXQtZmllbGQtZGlhdGhlc2ltby1lb3Mtd3JhcHBlclwiXSxcbmRpdltkYXRhLWRydXBhbC1zZWxlY3Rvcj1cImVkaXQtZmllbGQtZGlhdGhlc2ltby1hcG8td3JhcHBlclwiXSB7XG4gIHdpZHRoOiA1MCU7XG4gIGZsb2F0OiBsZWZ0O1xuXG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm5vZGUtdHJhaW5pbmctZWRpdC1mb3JtLFxuLm5vZGUtdHJhaW5pbmctZm9ybSB7XG5cbiAgLmZpZWxkLS13aWRnZXQtd2ViZm9ybS1lbnRpdHktcmVmZXJlbmNlLXNlbGVjdCBkZXRhaWxzOm50aC1vZi10eXBlKDEpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgPiBkaXYge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmVjNTI0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICBsYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjRyZW0gIWltcG9ydGFudDtcbiAgfVxufVxuIiwiJGZvcm0tZWxlbWVudHMtcmFkaXVzOiA2cHg7XG4kZm9ybS13cmFwcGVyLXJhZGl1czogM3B4O1xuLnVzZXJfZWRpdF9mb3JtLCAudXNlcl9yZWdpc3Rlcl9mb3JtIHtcblxuICAmX19jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLXdyYXBwZXItcmFkaXVzO1xuXG4gICAgbWFyZ2luOiAycmVtIDA7XG4gICAgcGFkZGluZzogMXJlbSAxNXB4O1xuICAgIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0LW1mKCRtZWRpYS1icmVha3BvaW50LW1lZGl1bSkge1xuICAgICAgcGFkZGluZzogMnJlbSAycmVtO1xuICAgIH1cblxuXG4gICAgJl90aXRsZSB7XG4gICAgICBjb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1sYXJnZTtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmxhY2s7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAycHggM3B4IHJnYmEoJGNvbG9yLWdyaW5kZXJ5LCAwLjEpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG5cbiAgICAgICYtLWRvdHRlZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBkb3R0ZWQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2VsIHtcblxuICAgIC8vREVGQVVMVFNcbiAgICBsYWJlbCwgbGVnZW5kLCBoNCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLXN0bHlpbmcoKTtcbiAgICB9XG5cbiAgICAvLy5kZXNjcmlwdGlvbiB7XG4gICAgLy8gIG1hcmdpbi10b3A6IC41cmVtO1xuICAgIC8vfVxuXG4gICAgaW5wdXQge1xuICAgICAgJjpub3QoW3R5cGU9XCJyYWRpb1wiXSk6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0pIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1saWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1lZGl1bTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1lbGVtZW50cy1yYWRpdXM7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGNvbG9yLXdoaXRlLCAwLjgpO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjVzIGVhc2U7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItbWFpbi1ibGFjayAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcblxuICAgICAgICBib3gtc2hhZG93OiAwcHggMXB4IDFyZW0gcmdiYSgkY29sb3ItZ3JpbmRlcnksIC4xKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmV5O1xuXG4gICAgICAgICY6YWN0aXZlLCAmOmZvY3VzIHtcbiAgICAgICAgICBib3gtc2hhZG93OiAwcHggMXB4IDFyZW0gcmdiYSgkY29sb3ItbWFpbi15ZWxsb3csIC4yKTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItbWFpbi15ZWxsb3c7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAmLS1idXR0b24ge1xuICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1lZGl1bSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjayAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcHggIWltcG9ydGFudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItbWFpbi15ZWxsb3cgIWltcG9ydGFudDtcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93LXNlbWktaW52aW5zaWJsZTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG5cbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgJi0tbm8tZGVzYyB7XG4gICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICYtLWNoZWNrYm94IHtcbiAgICAgIC5leHAgKyBsYWJlbCB7IC8vY2hlY2tib3ggbGFiZWxcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1saWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1lZGl1bTtcbiAgICAgIH1cblxuICAgICAgLmZvcm0taXRlbSB7IC8vcmVtb3ZlIGRlZmF1bHQgbWFyZ2luIGJldHdlZW4gY2hlY2tib3hlc1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tY2hlY2tib3gtc2hhcnAge1xuICAgICAgLmV4cCBsYWJlbCBzcGFuIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLXBhc3Mge1xuICAgICAgaW5wdXQge1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtbWxhcmdlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICAgICAgfVxuXG4gICAgICAucGFzc3dvcmQtc3RyZW5ndGgge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICAgICZfX21ldGVyIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAucGFzc3dvcmQtY29uZmlybSB7XG4gICAgICAgIC5lcnJvciB7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci1zdWItcmVkO1xuICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZWRpdW07XG4gICAgICAgIH1cblxuICAgICAgICAub2sge1xuICAgICAgICAgIGNvbG9yOiAkY29sb3Itc3ViLWdyZWVuO1xuICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZWRpdW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5qcy1mb3JtLXR5cGUtY2hlY2tib3ggbGFiZWwsXG4gICAgJiAuanMtZm9ybS10eXBlLXJhZGlvIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gIH1cblxuICAmX19wcm9maWxlLXBpYyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBsYWJlbCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLXN0bHlpbmcoKTtcbiAgICB9XG5cbiAgICAuZmlsZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4udXNlcl9yZWdpc3Rlcl9mb3JtIHtcblxuICAmX193cmFwcGVyIHsgLy9pZiB0aGUgZm9ybSBpcyBkaXNwbGF5ZWQgb24gYSBjb250ZW50IG1hbmFnZWdlclxuICAgICYgPiAudXNlcl9yZWdpc3Rlcl9mb3JtX19jb250YWluZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDUwcmVtO1xuICAgIH1cbiAgfVxufVxuIiwiLmdhcC1zbWFsbCB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG5pbnB1dCxcbnRleHRhcmVhIHtcbiAgcGFkZGluZzogJHNwYWNpbmctLWhhbGYgJHNwYWNpbmctLW1lZGl1bTtcbn1cblxuLnN1Ym1pc3Npb24tYXZlcmFnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6ICRjb2xvci1tYWluLWJsdWU7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBib3JkZXI6IDFweCBkYXNoZWQgJGNvbG9yLW1haW4tYmx1ZTtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcblxuICAmOmVtcHR5IHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgfVxuXG4gICYgKyAqIHtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgbGlnaHRncmF5O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuXG4gIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgc3BhbjpudGgtY2hpbGQoMSkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggZGFzaGVkICRjb2xvci1tYWluLWJsdWU7XG4gIH1cblxuICBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIH1cbn1cblxuXG5cbi53ZWJmb3JtLXN1Ym1pc3Npb24sXG4udGVzdC1mb3JtIHtcbiAgQGV4dGVuZCAuZ2VuZXJhbC1jb250ZW50O1xufVxuXG4uZm9ybS1lbGVtZW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAycmVtIDA7XG4gIG1hcmdpbi1yaWdodDogM3JlbTtcbiAgbWFyZ2luLWxlZnQ6IDNyZW07XG5cbiAgJl9fbGFiZWwge1xuICAgIGxhYmVsIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gICZfX2lucHV0LWZpZWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7XG4gIH1cbn1cblxuLnN1Ym1pc3Npb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLm1lc3NhZ2VzIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICB9XG5cbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCBsaWdodGdyYXk7XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuXG5cbkBtaXhpbiBub0NvdW50ZXIge1xuICAud2ViZm9ybS1lbGVtZW50LWRlc2NyaXB0aW9uIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5cbi5ub2RlLXByZXZpZXctZm9ybS1zZWxlY3Qge1xuICBwYWRkaW5nOiAycmVtO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGJhY2tncm91bmQ6ICMyYTM0M2Q7XG5cbiAgI2VkaXQtYmFja2xpbmsge1xuICAgIEBleHRlbmQgLmJ1dHRvbiwgLmJ1dHRvbi0taW5mbztcbiAgfVxuXG4gIC5qcy1mb3JtLWl0ZW0tdmlldy1tb2RlIHtcbiAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgbGFiZWwge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG59XG5cblxuXG5AbWVkaWEgKG1heC13aWR0aDogNDJyZW0pIHtcbiAgLmZvcm0tZWxlbWVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAudXNlci1sb2dpbi1mb3JtIHtcbiAgICAuZm9ybS1lbGVtZW50IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xuICAgIH1cblxuICAgICNlZGl0LXN1Ym1pdCB7XG4gICAgICBtYXgtd2lkdGg6IDE3cmVtO1xuICAgIH1cblxuICB9XG59XG5cbiIsIi53ZWJmb3JtLW1hcHBpbmctdGFibGUgeyAvL01BUFBJTkcgUVVFU1RJT05TXG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG5cbiAgdGhlYWQgdGggeyAvL1NPVVJDRSAtPiBERVNUSU5BVElPTlxuICAgIHBhZGRpbmc6IC44cmVtO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxuXG4gIHRkIHtcbiAgICBwYWRkaW5nLXRvcDogLjI1cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAuMjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgdHIgdGQ6Zmlyc3QtY2hpbGQgeyAvL1NPVVJDRSBBTlNXRVJTXG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIHRleHQtYWxpZ246IGluaXRpYWw7XG4gIH1cbn1cbiIsIi53ZWJmb3JtLXN1Ym1pc3Npb24tZm9ybS10YWJsZSB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuXG4gIHRib2R5IHtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWxpZ2h0O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xuICB9XG5cbiAgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKCRjb2xvci1tYWluLXNlbWktZGFyay1ibHVlLCAuMik7XG5cbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItbWFpbi1ibGFjaztcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBkYXNoZWQgcmdiYSgkY29sb3ItbWFpbi1zZW1pLWRhcmstYmx1ZSwgLjIpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmxhY2s7XG4gICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRjb2xvci1tYWluLWJsYWNrO1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgdGQ6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIud2ViZm9ybS1zdWJtaXNzaW9uLWZvcm0geyAvL3dlYmZvcm1zXG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgY291bnRlci1yZXNldDogc2VjdGlvbjtcbiAgcGFkZGluZzogMXJlbSAwO1xuXG4gIC5mb3JtLWFjdGlvbnMge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLy9TVEFUVVMgTUVTU0FHRVNcbiAgLm1lc3NhZ2VzIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cblxuXG4gIC8vUkVNT1ZFIENPVU5URVJcbiAgLm5vLXN1YkNvdW50LFxuICAud2ViZm9ybS1mbGV4Ym94Om5vdCguYWRkLWNvdW50KSAud2ViZm9ybS1lbGVtZW50LWRlc2NyaXB0aW9uLFxuICAjZWRpdC10cmFpbmluZy1kYXRlcmFuZ2UgLndlYmZvcm0tZWxlbWVudC1kZXNjcmlwdGlvbixcbiAgI2VkaXQtcGFyYWdnZWxpYSAjZWRpdC1mbGV4Ym94LFxuICAuanMtZm9ybS10eXBlLXdlYmZvcm0tbWFwcGluZy1yYWRpb3Mge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5qcy1mb3JtLXR5cGUtd2ViZm9ybS1tYXBwaW5nLXJhZGlvcyB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLndlYmZvcm0tbWFwcGluZy1yYWRpb3MgeyAvL0NVU1RPTSBNQVBQSU5HIEVMRU1FTlRcbiAgICB0Ym9keSB0ciB7XG4gICAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgIH1cblxuICAgICAgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBkYXNoZWQgbGlnaHRncmF5O1xuICAgICAgfVxuXG4gICAgICB0ZDpudGgtY2hpbGQoMykge1xuICAgICAgICB3aWR0aDogMSU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgbGlnaHRncmF5O1xuICAgIH1cblxuICAgIC5qcy1mb3JtLXR5cGUtdGV4dGFyZWEgeyAvL0NPTU1FTlRTIEVMRU1FTlRcbiAgICAgIHdpZHRoOiAyMjVweDtcblxuICAgICAgdGV4dGFyZWEge1xuICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0td3JhcHBlciAuZmllbGRzZXQtd3JhcHBlciA+IGRpdiB7IC8vTUFLRSBSQURJT1MgSU5MSU5FXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAmID4gKiB7XG4gICAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmpzLWZvcm0tdHlwZS1yYWRpbyB7XG4gICAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIC5leHAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLy0tLS0tLS0tLS0tLS0tLUVORCBPRiBDVVNUT00gTUFQUElORyBFTEVNRU5ULS0tLS0tLS0tLS0tXG5cbiAgLy8uanMtZm9ybS10eXBlLW51bWJlciB7XG4gIC8vICBwYWRkaW5nOiAxcmVtO1xuICAvL31cblxuICBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAud2ViZm9ybS10eXBlLWZpZWxkc2V0IHsgLy9GSUVMRCBTRVQgQ09OVEFJTkVSXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGNvdW50ZXItcmVzZXQ6IGZpZWxkc2V0O1xuXG4gICAgLmpzLWZvcm0tdHlwZS13ZWJmb3JtLW1hcHBpbmctcmFkaW9zOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuanMtZm9ybS10eXBlLWRhdGUsXG4gICAgLmpzLXdlYmZvcm0tcmFkaW9zIHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+IC5maWVsZHNldC13cmFwcGVyID4gLmZvcm0taXRlbSB7XG4gICAgICBwYWRkaW5nOiAwIDFyZW07XG5cbiAgICAgIC53ZWJmb3JtLXNlY3Rpb24td3JhcHBlciA+IC5kZXNjcmlwdGlvbiAud2ViZm9ybS1lbGVtZW50LWRlc2NyaXB0aW9uLFxuICAgICAgLndlYmZvcm0tZWxlbWVudC1kZXNjcmlwdGlvbiB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItbWFpbi1ibGFjaztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBmaWVsZHNldDtcbiAgICAgICAgICBjb250ZW50OiBjb3VudGVyKHNlY3Rpb24pIFwiLlwiIGNvdW50ZXIoZmllbGRzZXQpO1xuICAgICAgICAgIGNvbG9yOiAkY29sb3ItbWFpbi1ibGFjaztcbiAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtbWVkaXVtO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktcmVnLWJvbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLndlYmZvcm0tc2VjdGlvbi13cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgbm9Db3VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC53ZWJmb3JtLXNlY3Rpb24td3JhcHBlciA+IC5kZXNjcmlwdGlvbiB7XG4gICAgQGluY2x1ZGUgbm9Db3VudGVyO1xuXG4gICAgLndlYmZvcm0tZWxlbWVudC1kZXNjcmlwdGlvbiB7XG5cbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBjb2xvcjogJGNvbG9yLW1haW4tYmxhY2s7XG4gICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXJlZy1ib2xkO1xuXG4gICAgICAqIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cbiAgLnNlbGVjdDIsXG4gIC5qcy1mb3JtLXR5cGUtc2VsZWN0IHNlbGVjdCB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgfVxuXG4gIC5qcy1mb3JtLXR5cGUtZGF0ZSxcbiAgLmpzLWZvcm0taXRlbS1zdG9yZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgIGxhYmVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuICB9XG5cblxuICAuY2hlY2tib3hlcy0td3JhcHBlciAuZmllbGQtcHJlZml4ID4gLmRlc2NyaXB0aW9uLFxuICAucmFkaW9zLS13cmFwcGVyIC5maWVsZC1wcmVmaXggPiAuZGVzY3JpcHRpb24sXG4gIC53ZWJmb3JtLWVsZW1lbnQtZGVzY3JpcHRpb24gLy9FTEVNRU5UIERFU0NSSVBUSU9OXG4gIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogJGNvbG9yLW1haW4tYnJvd247XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1tYWluLWJyb3duO1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMDtcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb3VudGVyLWluY3JlbWVudDogc2VjdGlvbjtcbiAgICAgIGNvbnRlbnQ6IGNvdW50ZXIoc2VjdGlvbik7XG4gICAgICBjb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlO1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1yZWctYm9sZDtcbiAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICB9XG5cblxuICAuanMtZm9ybS10eXBlLWNoZWNrYm94LFxuICAuanMtZm9ybS10eXBlLXJhZGlvIHsgLy9DSEVDS0JPWEVTIFJBRElPU1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuXG4gIC5pbnRsLXRlbC1pbnB1dCxcbiAgaW5wdXQge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG59IiwiLmV4cHtcbiAgLmNoZWNrYm94IGxhYmVsIHNwYW4ge1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgfVxufSIsIi5jaG9zZW4tY29udGFpbmVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkgZW0ge1xuICBiYWNrZ3JvdW5kOiAjZmZkYjdhO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkge1xuICBwYWRkaW5nOiA4cHggNnB4O1xufVxuXG4uY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuaGlnaGxpZ2h0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFpbi1ibHVlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGNvbG9yLW1haW4tYmx1ZSAyMCUsICRjb2xvci1tYWluLWJsdWUgOTAlKTtcbiAgY29sb3I6ICRjb2xvci13aGl0ZTtcbn0iLCIud2ViZm9ybS1lbGVtZW50LW1vcmUsXG5kZXRhaWxzLmRldGFpbHMge1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JmYmZiZjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZhO1xuXG4gIC53ZWJmb3JtLWVsZW1lbnQtbW9yZS0tbGluayxcbiAgLmRldGFpbHNfX3N1bW1hcnkge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmxhY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAkY29sb3ItbWFpbi1ibHVlO1xuICAgIHRleHQtc2hhZG93OiAwIDFweCAwIHdoaXRlO1xuICAgIHBhZGRpbmc6IDAuOTVlbSAxLjQ1ZW07XG4gIH1cblxuICAud2ViZm9ybS1lbGVtZW50LW1vcmUtLWxpbmsge1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgcGFkZGluZzogMC45NWVtIDAgMC45NWVtIDEuNDVlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0zNnB4O1xuICAgICAgcGFkZGluZzogMC45NWVtIDAgMC45NWVtIDM2cHg7XG4gICAgICBjb2xvcjogJGNvbG9yLW1haW4tYmx1ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxleDogMTtcbiAgICB9XG4gIH1cblxuICAud2ViZm9ybS1lbGVtZW50LW1vcmUtLWNvbnRlbnQsXG4gIC5kZXRhaWxzX193cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwIDEuNWVtIDFlbSAxLjVlbTtcbiAgfVxufVxuXG4iLCJcbmZpZWxkc2V0Om5vdCguZmllbGRncm91cCkgPiBsZWdlbmQge1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJsYWNrO1xufVxuIiwiZGl2W2NsYXNzKj1cImpzLWZvcm0taXRlbS11cGxvYWQtZmlsZVwiXSB7XG4gIG1hcmdpbjogMXJlbSAwO1xufVxuXG5pbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbn1cblxuLmZpbGUge1xuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGZhLWljb24oXCJcXGYwYzZcIik7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nOiA0cHg7XG4gIH1cbn1cblxuLmZvcm0tbWFuYWdlZC1maWxlIHtcbiAgcGFkZGluZzogMXJlbTtcblxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOm5vdCguanMtaGlkZSkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogaW5pdGlhbCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5lbnRpdHktYnJvd3Nlci1mb3JtIHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG5cbiAgZGl2W2RhdGEtZHJ1cGFsLXNlbGVjdG9yPVwiZWRpdC1hY3Rpb25zXCJdIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLmVudGl0eS1icm93c2VyLW1vZGFsLWlmcmFtZSB7XG4gIEBpbmNsdWRlIGFic29sdXRlLWZ1bGwtd2lkdGgtaGVpZ2h0KCk7XG59XG5cbi52aWV3cy1maWVsZC1lbnRpdHktYnJvd3Nlci1zZWxlY3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59IiwiLy9DSEVDS0JPWFxuLmV4cCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLy8gdG8gY2VudGVyIHRoZSBpdGVtXG4gICYgKyBsYWJlbCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgbGFiZWwge1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBpbXBvcnRhbnRcbiAgICBzcGFuIHsgLy8gTm93IHdlJ2xsIGNyZWF0ZSB0aGUgY2hlY2tib3ggb2JqZWN0XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB3aWR0aDogMjVweDtcbiAgICAgIGhlaWdodDogMjVweDtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1tYWluLXNlbWktZGFyay1ibHVlO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMHB4O1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyAvLyBzbyB0aGF0IHRoZSB0aWNrIGhhcyBuaWNlIHJvdW5kZWQgbG9va1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgdG9wOiAxMnB4OyAvLyB5b3UnbGwgbmVlZCB0byBleHBlcmltZW50IHdpdGggcGxhY2VtZW50IGRlcGVuZGluZyBvbiB0aGUgZGltZW5zaW9ucyB5b3UndmUgY2hvc2VuXG4gICAgICAgIGxlZnQ6IDlweDsgLy8geW91J2xsIG5lZWQgdG8gZXhwZXJpbWVudCB3aXRoIHBsYWNlbWVudCBkZXBlbmRpbmcgb24gdGhlIGRpbWVuc2lvbnMgeW91J3ZlIGNob3NlblxuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCA1MG1zIGVhc2UgNTBtcztcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMCU7XG4gICAgICB9XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgLy8gc28gdGhhdCB0aGUgdGljayBoYXMgbmljZSByb3VuZGVkIGxvb2tcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMDVkZWcpO1xuICAgICAgICB0b3A6IDE1cHg7IC8vIHlvdSdsbCBuZWVkIHRvIGV4cGVyaW1lbnQgd2l0aCBwbGFjZW1lbnQgZGVwZW5kaW5nIG9uIHRoZSBkaW1lbnNpb25zIHlvdSd2ZSBjaG9zZW5cbiAgICAgICAgbGVmdDogMTFweDsgLy8geW91J2xsIG5lZWQgdG8gZXhwZXJpbWVudCB3aXRoIHBsYWNlbWVudCBkZXBlbmRpbmcgb24gdGhlIGRpbWVuc2lvbnMgeW91J3ZlIGNob3NlblxuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCA1MG1zIGVhc2U7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBkaXNwbGF5OiBub25lOyAvLyBoaWRlIHRoZSBzeXN0ZW0gY2hlY2tib3hcblxuICAgIC8vIExldCdzIGFkZCBzb21lIGVmZmVjdHMgYWZ0ZXIgdGhlIGNoZWNrYm94IGlzIGNoZWNrZWRcbiAgICAkdGljay1jb2xvcjogd2hpdGU7XG5cbiAgICAmOmNoZWNrZWQge1xuICAgICAgKyBsYWJlbCB7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVjNTI0O1xuXG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0aWNrLWNvbG9yO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHdpZHRoOiA1cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdGljay1jb2xvcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJzZWxlY3Qge1xuICBwYWRkaW5nOiAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLW1lZGl1bTtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1yZWd1bGFyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB3aGl0ZSwgcmdiYSgyMTEsIDIxMSwgMjExLCAwLjA0KSk7XG4gIGJveC1zaGFkb3c6IDAgMXJlbSAycmVtIHJnYmEoMCwgMCwgMCwgMC4wMik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSBtZWRpYS1yZXNwb25zaXZlLWxheW91dChzbWFsbCl7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICB9XG59XG4iLCIiLCJ0ZXh0YXJlYSB7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IC0ycHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG59IiwiLnRleHRmaWVsZCB7XG4gIHBhZGRpbmc6IDA7XG5cbiAgJi0tc21hbGwge1xuICAgIHdpZHRoOiAxMHJlbTtcbiAgfVxuXG4gICYtLW1lZGl1bSB7XG4gICAgd2lkdGg6IDE4cmVtO1xuICB9XG5cbiAgJi0tbm8tYmFjayB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59IiwiLnVpLWRpYWxvZyB7XG4gIHotaW5kZXg6IDEwMDIgIWltcG9ydGFudDtcbn1cblxuLnVpLXdpZGdldC1vdmVybGF5IHtcbiAgei1pbmRleDogMTAwMSAhaW1wb3J0YW50O1xufVxuXG4udG9vbGJhci1vcmllbnRlZCAudG9vbGJhci1iYXIge1xuICB6LWluZGV4OiAxMDAwICFpbXBvcnRhbnQ7XG59XG5cbi51aS1zdGF0ZS1hY3RpdmUsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtYWN0aXZlLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtYWN0aXZlLCBhLnVpLWJ1dHRvbjphY3RpdmUsIC51aS1idXR0b246YWN0aXZlLCAudWktYnV0dG9uLnVpLXN0YXRlLWFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWM1MjQ7XG59XG5cbi51aS1kaWFsb2cge1xuICB6LWluZGV4OiAxMDAxO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG5cbiAgLnVpLWRpYWxvZy10aXRsZWJhciB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLW1haW4tYmx1ZTtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1ibGFjaztcbiAgICBmb250LXdlaWdodDogaW5pdGlhbDtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG5cbiAgLnVpLWRpYWxvZy1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYm9yZGVyOiBub25lO1xuXG4gICAgbGFiZWwge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1yZWctYm9sZDtcbiAgICB9XG4gIH1cbn1cblxuXG4udWktd2lkZ2V0LWNvbnRlbnQgYS5idXR0b257XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnVpLWRpYWxvZyAud2ViZm9ybS11aS1lbGVtZW50LWZvcm0gaW5wdXQuZm9ybS1hdXRvY29tcGxldGUsIC51aS1kaWFsb2cgLndlYmZvcm0tdWktZWxlbWVudC1mb3JtIGlucHV0LmZvcm0tdGV4dCwgLnVpLWRpYWxvZyAud2ViZm9ybS11aS1lbGVtZW50LWZvcm0gaW5wdXQuZm9ybS10ZWwsXG4udWktZGlhbG9nIC53ZWJmb3JtLXVpLWVsZW1lbnQtZm9ybSBpbnB1dC5mb3JtLWVtYWlsLCAudWktZGlhbG9nIC53ZWJmb3JtLXVpLWVsZW1lbnQtZm9ybSBpbnB1dC5mb3JtLXVybCwgLnVpLWRpYWxvZyAud2ViZm9ybS11aS1lbGVtZW50LWZvcm0gaW5wdXQuZm9ybS1zZWFyY2gsIC51aS1kaWFsb2cgLndlYmZvcm0tdWktZWxlbWVudC1mb3JtIGlucHV0LmZvcm0tbnVtYmVyLFxuLnVpLWRpYWxvZyAud2ViZm9ybS11aS1lbGVtZW50LWZvcm0gaW5wdXQuZm9ybS1jb2xvciwgLnVpLWRpYWxvZyAud2ViZm9ybS11aS1lbGVtZW50LWZvcm0gaW5wdXQuZm9ybS1maWxlLCAudWktZGlhbG9nIC53ZWJmb3JtLXVpLWVsZW1lbnQtZm9ybSBpbnB1dC5mb3JtLWRhdGUsIC51aS1kaWFsb2cgLndlYmZvcm0tdWktZWxlbWVudC1mb3JtIGlucHV0LmZvcm0tdGltZSxcbi51aS1kaWFsb2cgLndlYmZvcm0tdWktZWxlbWVudC1mb3JtIHRleHRhcmVhLmZvcm0tdGV4dGFyZWEsIC51aS1kaWFsb2cgLndlYmZvcm0tdWktZWxlbWVudC10eXBlLXNlbGVjdC1mb3JtIGlucHV0LmZvcm0tYXV0b2NvbXBsZXRlLCAudWktZGlhbG9nIC53ZWJmb3JtLXVpLWVsZW1lbnQtdHlwZS1zZWxlY3QtZm9ybSBpbnB1dC5mb3JtLXRleHQsIC51aS1kaWFsb2cgLndlYmZvcm0tdWktZWxlbWVudC10eXBlLXNlbGVjdC1mb3JtIGlucHV0LmZvcm0tdGVsLFxuLnVpLWRpYWxvZyAud2ViZm9ybS11aS1lbGVtZW50LXR5cGUtc2VsZWN0LWZvcm0gaW5wdXQuZm9ybS1lbWFpbCwgLnVpLWRpYWxvZyAud2ViZm9ybS11aS1lbGVtZW50LXR5cGUtc2VsZWN0LWZvcm0gaW5wdXQuZm9ybS11cmwsIC51aS1kaWFsb2cgLndlYmZvcm0tdWktZWxlbWVudC10eXBlLXNlbGVjdC1mb3JtIGlucHV0LmZvcm0tc2VhcmNoLCAudWktZGlhbG9nIC53ZWJmb3JtLXVpLWVsZW1lbnQtdHlwZS1zZWxlY3QtZm9ybSBpbnB1dC5mb3JtLW51bWJlcixcbi51aS1kaWFsb2cgLndlYmZvcm0tdWktZWxlbWVudC10eXBlLXNlbGVjdC1mb3JtIGlucHV0LmZvcm0tY29sb3IsIC51aS1kaWFsb2cgLndlYmZvcm0tdWktZWxlbWVudC10eXBlLXNlbGVjdC1mb3JtIGlucHV0LmZvcm0tZmlsZSwgLnVpLWRpYWxvZyAud2ViZm9ybS11aS1lbGVtZW50LXR5cGUtc2VsZWN0LWZvcm0gaW5wdXQuZm9ybS1kYXRlLCAudWktZGlhbG9nIC53ZWJmb3JtLXVpLWVsZW1lbnQtdHlwZS1zZWxlY3QtZm9ybSBpbnB1dC5mb3JtLXRpbWUsXG4udWktZGlhbG9nIC53ZWJmb3JtLXVpLWVsZW1lbnQtdHlwZS1zZWxlY3QtZm9ybSB0ZXh0YXJlYS5mb3JtLXRleHRhcmVhIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogLjNlbSAuNGVtIC4zZW0gLjVlbTtcbiAgLyogTFRSICovXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiOGI4Yjg7XG4gIGJvcmRlci10b3AtY29sb3I6ICM5OTk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZDogI2ZjZmNmYTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICBmb250LXNpemU6IDFlbTtcbiAgY29sb3I6ICM1OTU5NTk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyIGxpbmVhciAwLjJzLCBib3gtc2hhZG93IGxpbmVhciAwLjJzO1xuICB0cmFuc2l0aW9uOiBib3JkZXIgbGluZWFyIDAuMnMsIGJveC1zaGFkb3cgbGluZWFyIDAuMnM7XG59XG5cbi51aS10YWJzIC51aS10YWJzLXBhbmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci13aWR0aDogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xufVxuXG5cbi5lYi10YWJzIHVsIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1tYWluLXllbGxvdztcblxuICBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcblxuICAgIGEge1xuICAgICAgY29sb3I6ICRjb2xvci1tYWluLXNlbWktZGFyay1ibHVlO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICAgICAgfVxuXG4gICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJGNvbG9yLW1haW4teWVsbG93O1xuICAgIH1cbiAgfVxufSIsIlxuXG5cbi5pbWFnZXtcbiAgJi0tcmVzcG9uc2l2ZS1kZWZhdWx0IGltZ3t3aWR0aDogMTAwJTtoZWlnaHQ6IGF1dG99XG4gICYtLWNvbnRhaW57XG4gICAgQHN1cHBvcnRzIG5vdCAob2JqZWN0LWZpdDogY29udGFpbikge1xuICAgICAgaGVpZ2h0OiBhdXRvIWltcG9ydGFudDtcblxuICAgIH1cbiAgICBAc3VwcG9ydHMgKG9iamVjdC1maXQ6IGNvbnRhaW4pIHtcbiAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcblxuICAgIH1cbiAgfVxuICAmLS1jb3Zlci1mdWxsIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6IGNvbnRhaW47fVxuXG5cbiAgJi0teWVsbG93e1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU0LDE5NywzNiwgMC43KTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGltZ3t6LWluZGV4OiAtMTt9XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuICAmLS1yZWR1Y2VkLWJyaWdodG5lc3Mge1xuICAgIGltZ3std2Via2l0LWZpbHRlcjogYnJpZ2h0bmVzcygwLjMwKTtmaWx0ZXI6IGJyaWdodG5lc3MoMC4zMCk7XG4gICAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO31cbiAgfVxufVxuXG5cblxuLmljb257XG5cbiAgJi0teHNtYWxse3dpZHRoOiAxNXB4O2hlaWdodDogMTVweDt9XG4gICYtLXNtYWxse3dpZHRoOiAyNXB4O2hlaWdodDogMjVweDt9XG4gICYtLW1zbWFsbHt3aWR0aDogMzhweDtoZWlnaHQ6IDM4cHg7fVxuICAmLS1tZWRpdW17d2lkdGg6IDUwcHg7aGVpZ2h0OiA1MHB4O31cbiAgJi0tbWxhcmdle3dpZHRoOiA3NXB4O2hlaWdodDogNzVweDt9XG4gICYtLWxhcmdle3dpZHRoOiAxMDBweDtoZWlnaHQ6IDEwMHB4O31cbn1cblxuLmxvZ297XG4gIGhlaWdodDogYXV0bztcblxuICAmLS14c21hbGx7d2lkdGg6IDcwcHg7fVxuICAmLS1zbWFsbHt3aWR0aDogMTUwcHg7fVxuICAmLS1tc21hbGx7d2lkdGg6IDIwMHB4O31cbiAgJi0tbWVkaXVte3dpZHRoOiAyNTBweDt9XG4gICYtLW1sYXJnZXt3aWR0aDogMjY1cHg7fVxuICAmLS1sYXJnZXt3aWR0aDogMzAwcHg7fVxuICAmLS14bGFyZ2V7d2lkdGg6IDM1MHB4O31cblxufVxuXG4uZGVsaW1ldGVye1xuICAmLS13aGl0ZXtib3JkZXItbGVmdDogMnB4IHNvbGlkIHdoaXRlO31cbiAgJi0teWVsbG93e2JvcmRlci1sZWZ0OiAycHggc29saWQgI2ZlYzUyNDt9XG4gICYtLWJsdWV7Ym9yZGVyLWxlZnQ6IDJweCBzb2xpZCBibHVlO31cbiAgJi0tZGFyay1ibHVle2JvcmRlci1sZWZ0OiAycHggc29saWQgIzJhMzQzZDt9XG4gICYtLWJyb3due2JvcmRlci1sZWZ0OiAycHggc29saWQgIzg0NWUxZjt9XG4gICYtLWJsYWNre2JvcmRlci1sZWZ0OiAycHggc29saWQgYmxhY2s7fVxuICAmLS1ncmV5e2JvcmRlci1sZWZ0OiAycHggc29saWQgZ3JleTt9XG5cblxuICAmLS1zbWFsbHtoZWlnaHQ6IDMwcHg7fVxuICAmLS1tZWRpdW17aGVpZ2h0OiA2MHB4O31cblxufVxuXG5cblxuXG5AbWVkaWEgKG1heC13aWR0aDogNDJyZW0pIHtcblxuXG4gIC5sb2dve1xuICAgIGhlaWdodDogYXV0bztcbiAgICAmLS1zbWFsbHt3aWR0aDogMzVweDt9XG4gICAgJi0tbXNtYWxse3dpZHRoOiA1MHB4O31cbiAgICAmLS1tZWRpdW17d2lkdGg6IDc1cHg7fVxuXG4gICAgJi0tbWxhcmdle3dpZHRoOiAxOTBweDt9XG5cbiAgICAmLS1sYXJnZXt3aWR0aDogMTAwcHg7fVxuICAgICYtLXhsYXJnZXt3aWR0aDogMTUwcHg7fVxuICB9XG5cblxufVxuIiwiXG50YWJsZSB7XG4gIG1hcmdpbjogMnJlbSAwO1xuICB3aWR0aDogMTAwJTtcblxuICBjYXB0aW9uIHtcbiAgICBmb250LXdlaWdodDogaW5pdGlhbDtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmxhY2s7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1sYXJnZTtcbiAgfVxufVxuXG50YWJsZS5zdGlja3ktaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxudGhlYWQge1xuICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbn1cblxudGhlYWQgdHIge1xuICBiYWNrZ3JvdW5kOiAjMmEzNDNkO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbnRoZWFkIHRyIGgxLCB0aGVhZCB0ciBoMiwgdGhlYWQgdHIgaDMsIHRoZWFkIHRyIGg0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG50aGVhZCB0ciBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbnRoZWFkIHRyIGE6bGluaywgdGhlYWQgdHIgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICNmZWM1MjQ7XG59XG5cbnRoZWFkIHRyIGE6aG92ZXIge1xuICBjb2xvcjogI2ZlYzUyNDtcbn1cblxudGhlYWQgdHIgdGgge1xuICBwYWRkaW5nOiAxcmVtIC43NXJlbTtcbiAgZm9udC1mYW1pbHk6IFwiQ2VyYSBHUiBSZWd1bGFyIEJvbGRcIjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxudGJvZHkgdHIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRncmV5O1xufVxuXG50Ym9keSB0ZCB7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgZm9udC1mYW1pbHk6IFwiQ2VyYSBHUiBSZWd1bGFyXCI7XG59XG5cbnRib2R5IGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxudGJvZHkgYTpsaW5rLCB0Ym9keSBhOnZpc2l0ZWQge1xuICBjb2xvcjogIzJhMzQzZDtcbn1cblxudGJvZHkgYTpob3ZlciB7XG4gIGNvbG9yOiAjZmVjNTI0O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxudGJvZHkgdWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cblxuLnRhYmxlZHJhZy10b2dnbGUtd2VpZ2h0LXdyYXBwZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5cbi5kcmFnZ2FibGUgYS50YWJsZWRyYWctaGFuZGxlIHtcbiAgY3Vyc29yOiBtb3ZlO1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiAxLjdlbTtcbiAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuYS50YWJsZWRyYWctaGFuZGxlIC5oYW5kbGUge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIvdGhlbWVzL2N1c3RvbS9jb2ZmZWV0aGVtZTIwMTcvYXNzZXRzL2ltYWdlcy9zdmcvbW92ZS5zdmdcIikgbm8tcmVwZWF0IDZweCA3cHg7XG4gIGhlaWdodDogMjVweDtcbiAgbWFyZ2luOiAtMC40ZW0gMC41ZW0gMDtcbiAgcGFkZGluZzogMC40MmVtIDAuNWVtO1xuICB3aWR0aDogMjVweDtcbn1cblxuIiwiJHRpY2stY29sb3I6IHdoaXRlO1xuXG5cbkBtZWRpYSBwcmludCB7XG5cbiAgQHBhZ2Uge1xuICAgIHNpemU6IGF1dG87XG4gICAgbWFyZ2luOiAxNm1tIDEybW0gMTZtbSAxMm1tO1xuICAgIC8vbWFyZ2luLXRvcDogMjBtbTtcbiAgfVxuXG4gIC8vKiB7XG4gIC8vICBtYXJnaW46IDA7XG4gIC8vICBwYWRkaW5nOiAwO1xuICAvLyAgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0ICFpbXBvcnRhbnQ7XG4gIC8vfVxuXG4gIGh0bWwge1xuICAgIGZvbnQtc2l6ZTogLjhyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDBweDtcbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4gIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbiAgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuXG4gIH1cblxuICAud2ViZm9ybS1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG4gIC53ZWJmb3JtLWZsZXgge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuICAud2ViZm9ybS1mbGV4LS0xIHtcbiAgICBmbGV4OiAxO1xuICB9XG4gIC53ZWJmb3JtLWZsZXgtLTIge1xuICAgIGZsZXg6IDI7XG4gIH1cbiAgLnN1Ym1pc3Npb24tYXZlcmFnZSB7XG4gICAgJjplbXB0eSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgfVxuICB9XG5cbiAgLndlYmZvcm0tc3VibWlzc2lvbi1mb3JtLXRhYmxlIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhbHdheXM7XG4gIH1cblxuICAud2ViZm9ybS1zdWJtaXNzaW9uLWZvcm0gLmludGwtdGVsLWlucHV0LFxuICAud2ViZm9ybS1zdWJtaXNzaW9uLWZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC53ZWJmb3JtLWVsZW1lbnQtZGVzY3JpcHRpb24ge1xuICAgIC8vY29sb3I6ICM4NDVlMWYgIWltcG9ydGFudDtcbiAgICAvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODQ1ZTFmICFpbXBvcnRhbnQ7XG4gIH1cblxuICAud2ViZm9ybS1zdWJtaXNzaW9uLWZvcm0gLmpzLWZvcm0tdHlwZS1jaGVja2JveCxcbiAgLndlYmZvcm0tc3VibWlzc2lvbi1mb3JtIC5qcy1mb3JtLXR5cGUtcmFkaW8ge1xuICAgIG1hcmdpbi10b3A6IC40Y207XG4gICAgbWFyZ2luLWJvdHRvbTogLjRjbTtcbiAgfVxuXG4gIC53ZWJmb3JtLXN1Ym1pc3Npb24tZm9ybSAuY2hlY2tib3hlcy0td3JhcHBlciAuZmllbGQtcHJlZml4ID4gLmRlc2NyaXB0aW9uOjpiZWZvcmUsIC53ZWJmb3JtLXN1Ym1pc3Npb24tZm9ybSAucmFkaW9zLS13cmFwcGVyIC5maWVsZC1wcmVmaXggPiAuZGVzY3JpcHRpb246OmJlZm9yZSwgLndlYmZvcm0tc3VibWlzc2lvbi1mb3JtIC53ZWJmb3JtLWVsZW1lbnQtZGVzY3JpcHRpb246OmJlZm9yZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgY29sb3I6ICNmZWM1MjQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC53ZWJmb3JtLXN1Ym1pc3Npb24tZm9ybSAud2ViZm9ybS1tYXBwaW5nLXJhZGlvcyB0Ym9keSB0ciB0ZCB7XG4gICAgcGFkZGluZzogLjJjbTtcbiAgfVxuXG4gIC5sb2dvLS1tc21hbGwge1xuICAgIHdpZHRoOiAxNTBweDtcbiAgfVxuXG4gIHRyIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cblxuICAuanMtZm9ybS1pdGVtIHtcbiAgICAvL3BhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnNpdGVfX2Zvb3RlcixcbiAgLmhlYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5wcm9ncmVzcy1zdGVwLmlzLWFjdGl2ZSAucHJvZ3Jlc3MtbWFya2VyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVjNTI0ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucHJvZ3Jlc3MtbWFya2VyIHtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjZiNmI2ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvL0NIRUNLQk9YIC0gUkFESU9cbiAgLmV4cCBsYWJlbCBzcGFuIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgdG9wOiAxMHB4O1xuICAgICAgbGVmdDogNnB4O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHRvcDogMTNweDtcbiAgICAgIGxlZnQ6IDhweDtcbiAgICB9XG4gIH1cblxuICAuZXhwIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgLmV4cCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICY6Y2hlY2tlZCArIGxhYmVsIHNwYW4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlYzUyNCAhaW1wb3J0YW50O1xuXG4gICAgICAmOmFmdGVyLFxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkdGljay1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59IiwiLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgd2lkdGg6IDIxcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1ib3R0b206IC44cmVtO1xuICBwYWRkaW5nLXRvcDogLjhyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuXG4gIGJhY2tncm91bmQ6ICRjb2xvci1tYWluLXNlbWktZGFyay1ibHVlO1xuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuXG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICYtLWljb24ge1xuICAgIGltZyB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIH1cblxuICAgICYtbWlkZGxlIHtcbiAgICAgIGltZyB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gICYtLXByaW1hcnksXG4gICYtLXllbGxvdyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlYzUyNDtcbiAgICBjb2xvcjogJGNvbG9yLWJsYWNrO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmstc3RseWluZygkY29sb3ItYmxhY2ssICRjb2xvci13aGl0ZSk7XG4gIH1cblxuICAmLS1mdWxsLXdpZHRoIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLS1saWdodC1ib3gtc2hhZG93IHtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWxpZ2h0LTI7XG4gIH1cblxuICAmLS1zbWFsbCB7XG4gICAgd2lkdGg6IDEycmVtO1xuICB9XG5cbiAgJi0tbGFyZ2Uge1xuICAgIHdpZHRoOiAyM3JlbTtcbiAgfVxuXG4gICYtLXhzbWFsbCB7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIHdpZHRoOiA1cmVtO1xuICB9XG5cbiAgJi0tYmx1ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWlkbmlnaHRibHVlO1xuICB9XG5cbiAgJi0td2hpdGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgJi0tdHJhbnNwYXJlbnQge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJi0tYm9yZGVyLXllbGxvdyB7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2ZlYzUyNDtcblxuICAgICYtc21hbGwge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZlYzUyNDtcbiAgICB9XG4gIH1cblxuICAmLS1ib3JkZXItYmxhY2sge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICB9XG5cbiAgJi0tcm91bmQge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIH1cblxuICAmLS1odnItZ2xvdyB7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAzMDBtcyBlYXNlO1xuXG4gICAgJi0teWVsbG93IHtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTk4LCA5MywgMC4zKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1ibGFjayB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLWhvdmVyLWJyb3duLXllbGxvdyB7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4tYnJvd247XG4gICAgfVxuICB9XG5cbiAgJi0tZGFuZ2VyIHtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1yb2FzdGluZztcbiAgICBAaW5jbHVkZSBsaW5rLXN0bHlpbmcoJGNvbG9yLXdoaXRlLCAkY29sb3Itd2hpdGUpO1xuICB9XG5cblxuICAmLS1pbmZvIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbWFpbi1zZW1pLWRhcmstYmx1ZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGUgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgLy8mLS1pbmZvOmhvdmVyOjphZnRlcntcbiAgLy8gIG9wYWNpdHk6IDA7XG4gIC8vICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIC8vfVxufVxuXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0MnJlbSkge1xuICAuYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufSIsIi8qKlxuICogQGZpbGVcbiAqIFN0eWxpbmcgZHJvcGJ1dHRvbnMuXG4gKi9cbi8qKlxuICogUmVzZXQgc3R5bGluZyBmb3IgYWxsIGVsZW1lbnRzLlxuICovXG4uanMgLmRyb3BidXR0b24gLmRyb3BidXR0b24tYWN0aW9uID4gaW5wdXQsXG4uanMgLmRyb3BidXR0b24gLmRyb3BidXR0b24tYWN0aW9uID4gYSxcbi5qcyAuZHJvcGJ1dHRvbiAuZHJvcGJ1dHRvbi1hY3Rpb24gPiBidXR0b24ge1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAvKiBMVFIgKi9cbn1cblxuW2Rpcj1cInJ0bFwiXS5qcyAuZHJvcGJ1dHRvbiAuZHJvcGJ1dHRvbi1hY3Rpb24gPiBpbnB1dCxcbltkaXI9XCJydGxcIl0uanMgLmRyb3BidXR0b24gLmRyb3BidXR0b24tYWN0aW9uID4gYSxcbltkaXI9XCJydGxcIl0uanMgLmRyb3BidXR0b24gLmRyb3BidXR0b24tYWN0aW9uID4gYnV0dG9uIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBUaGlzIGlzIHJlcXVpcmVkIHRvIHdpbiBvdmVyIHNwZWNpZmljaXR5IG9mIFtkaXI9XCJydGxcIl0gLmRyb3BidXR0b24tbXVsdGlwbGUgLmRyb3BidXR0b24gLmRyb3BidXR0b24tYWN0aW9uID4gKiAqL1xufVxuXG4uanMgLmRyb3BidXR0b24tYWN0aW9uLmxhc3Qge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAxZW07XG4gIC8qIExUUiAqL1xufVxuXG5bZGlyPVwicnRsXCJdIC5qcyAuZHJvcGJ1dHRvbi1hY3Rpb24ubGFzdCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAxZW0gMDtcbn1cblxuLyoqXG4gKiBPdmVyd3JpdGUgU2V2ZW5zIGJ1dHRvbiBzdHlsaW5nLlxuICovXG4uanMgLmRyb3BidXR0b24td2lkZ2V0IC5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uanMgLmRyb3BidXR0b24tbXVsdGlwbGUgLmRyb3BidXR0b24ge1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIC8qIExUUiAqL1xufVxuXG5bZGlyPVwicnRsXCJdLmpzIC5kcm9wYnV0dG9uLW11bHRpcGxlIC5kcm9wYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG5cbi8qKlxuICogZHJvcGRvd24gYnV0dG9uIHN0eWxlcy5cbiAqL1xuLmpzIC5kcm9wYnV0dG9uLW11bHRpcGxlIC5kcm9wYnV0dG9uLXdpZGdldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhNmE2YTY7XG4gIGJvcmRlci1yYWRpdXM6IDIwZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYxZWI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2Y2ZjZmMywgI2U3ZTdkZik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmNmY2ZjMsICNlN2U3ZGYpO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xufVxuXG4uZHJvcGJ1dHRvbi1tdWx0aXBsZS5vcGVuIC5kcm9wYnV0dG9uLXdpZGdldCB7XG4gIGJvcmRlci1yYWRpdXM6IDFlbTtcbn1cblxuLmpzIC5kcm9wYnV0dG9uLXdpZGdldCAuZHJvcGJ1dHRvbi1hY3Rpb24gYSxcbi5qcyAuZHJvcGJ1dHRvbi13aWRnZXQgLmRyb3BidXR0b24tYWN0aW9uIGlucHV0LFxuLmpzIC5kcm9wYnV0dG9uLXdpZGdldCAuZHJvcGJ1dHRvbi1hY3Rpb24gYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMjBlbSAwIDAgMjBlbTtcbiAgLyogTFRSICovXG4gIHBhZGRpbmc6IDRweCAxLjVlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5bZGlyPVwicnRsXCJdLmpzIC5kcm9wYnV0dG9uLXdpZGdldCAuZHJvcGJ1dHRvbi1hY3Rpb24gYSxcbltkaXI9XCJydGxcIl0uanMgLmRyb3BidXR0b24td2lkZ2V0IC5kcm9wYnV0dG9uLWFjdGlvbiBpbnB1dCxcbltkaXI9XCJydGxcIl0uanMgLmRyb3BidXR0b24td2lkZ2V0IC5kcm9wYnV0dG9uLWFjdGlvbiBidXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwIDIwZW0gMjBlbSAwO1xufVxuXG4uanMgLmRyb3BidXR0b24td2lkZ2V0IC5kcm9wYnV0dG9uLWFjdGlvbiBhOmZvY3VzLFxuLmpzIC5kcm9wYnV0dG9uLXdpZGdldCAuZHJvcGJ1dHRvbi1hY3Rpb24gaW5wdXQ6Zm9jdXMsXG4uanMgLmRyb3BidXR0b24td2lkZ2V0IC5kcm9wYnV0dG9uLWFjdGlvbiBidXR0b246Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmpzIC5kcm9wYnV0dG9uLW11bHRpcGxlLm9wZW4gLmRyb3BidXR0b24tYWN0aW9uIGEsXG4uanMgLmRyb3BidXR0b24tbXVsdGlwbGUub3BlbiAuZHJvcGJ1dHRvbi1hY3Rpb24gLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5qcyAuZHJvcGJ1dHRvbi1tdWx0aXBsZS5vcGVuIC5kcm9wYnV0dG9uLWFjdGlvbjpmaXJzdC1jaGlsZCBhLFxuLmpzIC5kcm9wYnV0dG9uLW11bHRpcGxlLm9wZW4gLmRyb3BidXR0b24tYWN0aW9uOmZpcnN0LWNoaWxkIC5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwLjllbSAwIDAgMDtcbiAgLyogTFRSICovXG59XG5cbltkaXI9XCJydGxcIl0uanMgLmRyb3BidXR0b24tbXVsdGlwbGUub3BlbiAuZHJvcGJ1dHRvbi1hY3Rpb246Zmlyc3QtY2hpbGQgYSxcbltkaXI9XCJydGxcIl0uanMgLmRyb3BidXR0b24tbXVsdGlwbGUub3BlbiAuZHJvcGJ1dHRvbi1hY3Rpb246Zmlyc3QtY2hpbGQgLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMC45ZW0gMCAwO1xufVxuXG4uanMgLmRyb3BidXR0b24tbXVsdGlwbGUub3BlbiAuZHJvcGJ1dHRvbi1hY3Rpb246bGFzdC1jaGlsZCBhLFxuLmpzIC5kcm9wYnV0dG9uLW11bHRpcGxlLm9wZW4gLmRyb3BidXR0b24tYWN0aW9uOmxhc3QtY2hpbGQgLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDAuOWVtO1xuICAvKiBMVFIgKi9cbn1cblxuW2Rpcj1cInJ0bFwiXS5qcyAuZHJvcGJ1dHRvbi1tdWx0aXBsZS5vcGVuIC5kcm9wYnV0dG9uLWFjdGlvbjpsYXN0LWNoaWxkIGEsXG5bZGlyPVwicnRsXCJdLmpzIC5kcm9wYnV0dG9uLW11bHRpcGxlLm9wZW4gLmRyb3BidXR0b24tYWN0aW9uOmxhc3QtY2hpbGQgLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwLjllbSAwO1xufVxuXG4uanMgLmRyb3BidXR0b24td3JhcHBlciAuZHJvcGJ1dHRvbi13aWRnZXQgLmRyb3BidXR0b24tYWN0aW9uIGE6aG92ZXIsXG4uanMgLmRyb3BidXR0b24td3JhcHBlciAuZHJvcGJ1dHRvbi13aWRnZXQgLmRyb3BidXR0b24tYWN0aW9uIGJ1dHRvbjpob3Zlcixcbi5qcyAuZHJvcGJ1dHRvbi13cmFwcGVyIC5kcm9wYnV0dG9uLXdpZGdldCAuZHJvcGJ1dHRvbi1hY3Rpb24gaW5wdXQ6aG92ZXIsXG4uanMgLmRyb3BidXR0b24td3JhcHBlciAuZHJvcGJ1dHRvbi13aWRnZXQgLmRyb3BidXR0b24tYWN0aW9uIGE6Zm9jdXMsXG4uanMgLmRyb3BidXR0b24td3JhcHBlciAuZHJvcGJ1dHRvbi13aWRnZXQgLmRyb3BidXR0b24tYWN0aW9uIGJ1dHRvbjpmb2N1cyxcbi5qcyAuZHJvcGJ1dHRvbi13cmFwcGVyIC5kcm9wYnV0dG9uLXdpZGdldCAuZHJvcGJ1dHRvbi1hY3Rpb24gaW5wdXQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOGY2O1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmY2ZjZmEsICNlOWU5ZGQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmNmY2ZhLCAjZTllOWRkKTtcbiAgY29sb3I6ICMxYTFhMWE7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgei1pbmRleDogMztcbn1cblxuLmpzIC5kcm9wYnV0dG9uLXdyYXBwZXIgLmRyb3BidXR0b24td2lkZ2V0IC5kcm9wYnV0dG9uLWFjdGlvbiBhOmFjdGl2ZSxcbi5qcyAuZHJvcGJ1dHRvbi13cmFwcGVyIC5kcm9wYnV0dG9uLXdpZGdldCAuZHJvcGJ1dHRvbi1hY3Rpb24gaW5wdXQ6YWN0aXZlLFxuLmpzIC5kcm9wYnV0dG9uLXdyYXBwZXIgLmRyb3BidXR0b24td2lkZ2V0IC5kcm9wYnV0dG9uLWFjdGlvbiBidXR0b246YWN0aXZlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkZmQ5O1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmNmY2ZjMsICNlN2U3ZGYpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZjZmNmYzLCAjZTdlN2RmKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuLmRyb3BidXR0b24gLnNlY29uZGFyeS1hY3Rpb24ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2JmYmZiYTtcbn1cblxuLyoqXG4gKiBSYXJlIGluc3RhbmNlcyB3aGVuIGEgZHJvcGJ1dHRvbiBpcyBhY3R1YWxseSBqdXN0IGEgYnV0dG9uLlxuICogQ29waWVkIGZyb20gU2V2ZW4ncyBidXR0b25zLmNzcy5cbiAqL1xuLmRyb3BidXR0b24tc2luZ2xlIC5kcm9wYnV0dG9uLXdpZGdldCB7XG4gIGJvcmRlcjogMDtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZHJvcGJ1dHRvbi1zaW5nbGUgLmRyb3BidXR0b24tYWN0aW9uIGEge1xuICBwYWRkaW5nOiA0cHggMS41ZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhNmE2YTY7XG4gIGJvcmRlci1yYWRpdXM6IDIwZW0gIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjFlYjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZjZmNmYzLCAjZTdlN2RmKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2Y2ZjZmMywgI2U3ZTdkZik7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMXM7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRyb3BidXR0b24tc2luZ2xlIC5kcm9wYnV0dG9uLWFjdGlvbiBhOmhvdmVyLFxuLmRyb3BidXR0b24tc2luZ2xlIC5kcm9wYnV0dG9uLWFjdGlvbiBhOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjhmNjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmNmY2ZhLCAjZTllOWRkKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZjZmNmYSwgI2U5ZTlkZCk7XG4gIGNvbG9yOiAjMWExYTFhO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5kcm9wYnV0dG9uLXNpbmdsZSAuZHJvcGJ1dHRvbi1hY3Rpb24gYTpob3Zlcixcbi5kcm9wYnV0dG9uLXNpbmdsZSAuZHJvcGJ1dHRvbi1hY3Rpb24gYTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbn1cblxuLmRyb3BidXR0b24tc2luZ2xlIC5kcm9wYnV0dG9uLWFjdGlvbiBhOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmRmZDk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2Y2ZjZmMywgI2U3ZTdkZik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmNmY2ZjMsICNlN2U3ZGYpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbi8qKlxuICogVGhlIGRyb3Bkb3duIHRyaWdnZXIuXG4gKi9cbi5qcyAuZHJvcGJ1dHRvbi13cmFwcGVyIC5kcm9wYnV0dG9uLXdpZGdldCAuZHJvcGJ1dHRvbi10b2dnbGUgYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYTZhNmE2O1xuICAvKiBMVFIgKi9cbiAgb3V0bGluZTogbm9uZTtcbn1cblxuW2Rpcj1cInJ0bFwiXS5qcyAuZHJvcGJ1dHRvbi13cmFwcGVyIC5kcm9wYnV0dG9uLXdpZGdldCAuZHJvcGJ1dHRvbi10b2dnbGUgYnV0dG9uIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2E2YTZhNjtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG5cbi5qcyAuZHJvcGJ1dHRvbi13cmFwcGVyIC5kcm9wYnV0dG9uLXdpZGdldCAuZHJvcGJ1dHRvbi10b2dnbGUgYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMCAyMGVtIDIwZW0gMDtcbiAgLyogTFRSICovXG59XG5cbltkaXI9XCJydGxcIl0uanMgLmRyb3BidXR0b24td3JhcHBlciAuZHJvcGJ1dHRvbi13aWRnZXQgLmRyb3BidXR0b24tdG9nZ2xlIGJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDIwZW0gMCAwIDIwZW07XG59XG5cbi5kcm9wYnV0dG9uLW11bHRpcGxlLm9wZW4gLmRyb3BidXR0b24td2lkZ2V0IC5kcm9wYnV0dG9uLXRvZ2dsZSBidXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwIDFlbSAxZW0gMDtcbiAgLyogTFRSICovXG59XG5cbltkaXI9XCJydGxcIl0gLmRyb3BidXR0b24tbXVsdGlwbGUub3BlbiAuZHJvcGJ1dHRvbi13aWRnZXQgLmRyb3BidXR0b24tdG9nZ2xlIGJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDFlbSAwIDAgMWVtO1xufVxuXG4uanMgLmRyb3BidXR0b24td3JhcHBlciAuZHJvcGJ1dHRvbi13aWRnZXQgLmRyb3BidXR0b24tdG9nZ2xlIGJ1dHRvbjpob3Zlcixcbi5qcyAuZHJvcGJ1dHRvbi13cmFwcGVyIC5kcm9wYnV0dG9uLXdpZGdldCAuZHJvcGJ1dHRvbi10b2dnbGUgYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjhmNjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmNmY2ZhLCAjZTllOWRkKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZjZmNmYSwgI2U5ZTlkZCk7XG4gIGNvbG9yOiAjMWExYTFhO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgei1pbmRleDogMztcbn1cblxuLmpzIC5kcm9wYnV0dG9uLXdyYXBwZXIgLmRyb3BidXR0b24td2lkZ2V0IC5kcm9wYnV0dG9uLXRvZ2dsZSBidXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZGZkOTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZjZmNmYzLCAjZTdlN2RmKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2Y2ZjZmMywgI2U3ZTdkZik7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbi5kcm9wYnV0dG9uLWFycm93IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzMzMztcbiAgcmlnaHQ6IDM1JTtcbiAgLyogTFRSICovXG4gIHRvcDogNTQlO1xufVxuXG5bZGlyPVwicnRsXCJdIC5kcm9wYnV0dG9uLWFycm93IHtcbiAgbGVmdDogMzUlO1xuICByaWdodDogYXV0bztcbn1cblxuLmRyb3BidXR0b24tbXVsdGlwbGUub3BlbiAuZHJvcGJ1dHRvbi1hcnJvdyB7XG4gIGJvcmRlci1ib3R0b206IDAuMzMzM2VtIHNvbGlkICMzMzM7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0b3A6IDAuNjY2N2VtO1xufVxuXG4uanMgdGQgLmRyb3BidXR0b24tbXVsdGlwbGUge1xuICBwYWRkaW5nLXJpZ2h0OiAxMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuIiwiLmxpbmsge1xuICAmLS1ob3Zlci15ZWxsb3c6aG92ZXIge1xuICAgIGNvbG9yOiAkY29sb3ItbWFpbi15ZWxsb3c7XG4gIH1cblxuICAmLS1ob3Zlci1icm93bjpob3ZlciB7XG4gICAgY29sb3I6ICRjb2xvci1tYWluLWJyb3duO1xuICB9XG5cbiAgJi0taG92ZXItYmx1ZTpob3ZlciB7XG4gICAgY29sb3I6ICRjb2xvci1tYWluLWJsdWU7XG4gIH1cblxuICAmLS1ob3Zlci1ub25lOmhvdmVyIHtcbiAgICBjb2xvcjogaW5pdGlhbDtcbiAgfVxuXG4gICYtLWN1cnNvci1ub25lIHtcbiAgICBjdXJzb3I6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgfVxuXG4gICYtLWFjdGl2ZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjb2xvci1tYWluLXllbGxvdztcbiAgICBwYWRkaW5nOiA1cHggMDtcbiAgfVxuXG59XG5cbmEge1xuICBjb2xvcjogIzA3RDtcblxuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICRjb2xvci1tYWluLXllbGxvdztcbiAgfVxufVxuXG5cbi5hY2NvdW50LW1lbnUtbGluayB7XG5cbiAgc3BhbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gIH1cblxuICBpbWcge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICB9XG5cbiAgaGVpZ2h0OiAyLjVyZW07XG59XG5cblxuIiwiLmxpbmstbGlzdCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgJl9fdGl0bGUge1xuICAgIGNvbG9yOiAkY29sb3ItYmxhY2s7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1ibGFjaztcbiAgfVxuXG4gICZfX2xpbmtzID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICRjb2xvci1tYWluLWJsdWU7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cblxuJGxpc3QtYmFjazogI2Y3ZjdmNztcblxudWwuY29ubmVjdGVkLWxpc3Qge1xuXG4gICYsIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIH1cblxuICB1bCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICB3aWR0aDogMDtcblxuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xuICAgIH1cbiAgfVxuXG5cbiAgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogM3B4IDEycHg7XG5cbiAgICBjb2xvcjogI2NjYztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcblxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTBweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogOHB4O1xuICAgICAgaGVpZ2h0OiAwO1xuXG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQ6OmJlZm9yZSB7XG4gICAgICB0b3A6IDEwcHg7XG4gICAgICBib3R0b206IDA7XG4gICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAgIGJhY2tncm91bmQ6ICNmN2Y3Zjc7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjb2xvcjogI2NjYztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpob3ZlciArIHVsIGxpIGEge1xuICAgICAgICBjb2xvcjogUkdCQSgyMTMsIDIzNSwgMjI3LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4kbGlzdC1iYWNrZ3JvdW5kLTE6ICNGNkY1RjU7XG4kbGlzdC1iYWNrZ3JvdW5kLTI6ICNFNkU2RTY7XG5cbi50ZXh0LWxpc3Rpbmcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG51bC5yZXN1bHQtbGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAycmVtIDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1heC1oZWlnaHQ6IDQwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG5cbiAgbGkge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBiYWNrZ3JvdW5kOiAkbGlzdC1iYWNrZ3JvdW5kLTE7XG4gICAgcGFkZGluZzogLjRyZW0gLjZyZW07XG4gICAgYm94LXNoYWRvdzogMCAxcHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG5cbiAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbGlzdC1iYWNrZ3JvdW5kLTI7XG4gICAgfVxuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgZGl2IHtcbiAgICAgIGZsZXg6IDAgMCA1OHB4O1xuXG4gICAgICAmOm50aC1jaGlsZCgxKSB7IC8vaW1hZ2VcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBAaW5jbHVkZSBtYWtlLXNxdWFyZSg1MHB4KTtcbiAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IC40cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgfVxuXG4gICAgICAmOm50aC1jaGlsZCgzKSB7IC8vdGV4dFxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgZmxleDogMDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICBAaW5jbHVkZSBsaW5rLXN0bHlpbmcoIzkzOTM5MywgJGNvbG9yLW1haW4teWVsbG93KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuIiwiYVtocmVmPVwiL25vZGUvYWRkL25vdGVcIl17XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5ub2RlLWxpc3QtYWRkIHtcbiAgbGlzdC1zdHlsZS1pbWFnZTogdXJsKFwiL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L2Fzc2V0cy9pbWFnZXMvc3ltYm9scyB5ZWxsb3cvY2hldnJvbi1zaWduLnBuZ1wiKTtcbn1cblxuLm5vZGUtbGlzdC1hZGQgbGkge1xuICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbn1cblxuLm5vZGUtbGlzdC1hZGQgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubm9kZS1saXN0LWFkZCBhOmxpbmssIC5ub2RlLWxpc3QtYWRkIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLm5vZGUtbGlzdC1hZGQgYTpob3ZlciB7XG4gIGNvbG9yOiAjZmVjNTI0O1xufVxuXG4ubm9kZS1saXN0LWFkZCBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5ub2RlLWZvcm0gPiBkaXYge1xuICBwYWRkaW5nOiAycmVtIDA7XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAjZmVjNTI0O1xufVxuXG4ubm9kZS1mb3JtIGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIkNlcmEgR1IgUmVndWxhciBCb2xkXCI7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgcGFkZGluZzogMXJlbSAwO1xufVxuXG4ubm9kZS1mb3JtIC5kZXNjcmlwdGlvbiB7XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xufVxuXG4ubm9kZS1mb3JtIC5kcmFnZ2FibGUgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4ubm9kZS1mb3JtIC5kcmFnZ2FibGUgdGQ6bnRoLWNoaWxkKDIpIC5wYXJhZ3JhcGhzLWRyb3BidXR0b24td3JhcHBlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm5vZGUtZm9ybSAuZHJhZ2dhYmxlIHRkOm50aC1jaGlsZCgyKSAuZm9ybS1pdGVtIHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRncmV5O1xuICBwYWRkaW5nOiAwLjNyZW0gMDtcbn1cblxuLm5vZGUtZm9ybSAuZHJhZ2dhYmxlIHRkOm50aC1jaGlsZCgyKSAuZm9ybS1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIGJsYWNrO1xufVxuXG4ubm9kZS1mb3JtIC5kcmFnZ2FibGUgdGQ6bnRoLWNoaWxkKDIpIC5mb3JtLWl0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5ub2RlLWZvcm0gLmRyYWdnYWJsZSB0ZDpsYXN0LWNoaWxkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubm9kZS1mb3JtIC5qcy1mb3JtLXR5cGUtdmVydGljYWwtdGFicywgLm5vZGUtZm9ybSAuZm9ybS1pdGVtLWZpZWxkLWJsb2ctYm9keS0wLWZvcm1hdCwgLm5vZGUtZm9ybSAuZm9ybS1pdGVtLWZpZWxkLWNvdXJzZS1kZXNjcmlwdGlvbi0wLWZvcm1hdCxcbi5ub2RlLWZvcm0gLmZvcm0taXRlbS1maWVsZC1hcnRpY2xlLWRlc2NyaXB0aW9uLTAtZm9ybWF0LCAubm9kZS1mb3JtIC5mb3JtLWl0ZW0tZmllbGQtdmlkZW8tZGVzY3JpcHRpb24tMC1mb3JtYXQsIC5ub2RlLWZvcm0gLmZvcm0taXRlbS1maWVsZC1jb3Vyc2UtYXJ0aWNsZXMtYW5kLXZpZGVvcy1mb3JtLWlubGluZS1lbnRpdHktZm9ybS1maWVsZC12aWRlby1kZXNjcmlwdGlvbi0wLWZvcm1hdCwgLm5vZGUtZm9ybSAuZm9ybS1pdGVtLWZpZWxkLWNvdXJzZS1hcnRpY2xlcy1hbmQtdmlkZW9zLWZvcm0taW5saW5lLWVudGl0eS1mb3JtLWZpZWxkLWFydGljbGUtY29udGVudC1mb3JtYXRlZC0wLWZvcm1hdCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5ub2RlLWZvcm0gLmpzLWZvcm0tdHlwZS10ZXh0YXJlYSBsYWJlbCBzcGFuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm5vZGUtZm9ybSAuZmllbGQtYm9keS1hZGQtbW9yZS13cmFwcGVyOmZpcnN0LWNoaWxkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xufVxuXG4ubm9kZS1mb3JtID4gLmRyb3BidXR0b24td3JhcHBlciAuZHJvcGJ1dHRvbi13aWRnZXQge1xuICB3aWR0aDogMjNyZW07XG4gIGJhY2tncm91bmQ6ICM1Y2I4NWMgIWltcG9ydGFudDtcbn1cblxuLm5vZGUtZm9ybSA+IC5kcm9wYnV0dG9uLXdyYXBwZXIgLmRyb3BidXR0b24td2lkZ2V0IGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMXJlbSAwICFpbXBvcnRhbnQ7XG59XG5cbi5ub2RlLWZvcm0gPiAuZHJvcGJ1dHRvbi13cmFwcGVyIC5kcm9wYnV0dG9uLXdpZGdldCBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbiAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG59XG5cbi5ub2RlLWZvcm0gPiAuZHJvcGJ1dHRvbi13cmFwcGVyLmRyb3BidXR0b24tc2luZ2xlIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIsIC5ub2RlLWZvcm0gPiAuZHJvcGJ1dHRvbi13cmFwcGVyLmRyb3BidXR0b24tc2luZ2xlIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlLCAubm9kZS1mb3JtID4gLmRyb3BidXR0b24td3JhcHBlci5kcm9wYnV0dG9uLXNpbmdsZSBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzIHtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xufVxuIiwiJG5vdGVwYWQtbWFpbi1jb2xvcjogIzUzNWU2NztcbiRub3RlcGFkLW1haW4tdGV4dC1jb2xvcjogIzUzNWU2NztcbiRub3RlcGFkLXJvdy1jb2xvci1vZGQ6ICNFMUUyRTE7XG4kbm90ZXBhZC1yb3ctY29sb3ItZXZlbjogI0UxRTJFMTtcbiRub3RlcGFkLWJhY2stY29sb3I6ICM1MzVlNjc7XG5cblxuJG5vdGVwYWQtYm9yZGVyLWNvbG9yOiBsaWdodGdyZXk7XG4kbm90ZXBhZC1zY3JvbGxiYXItY29sb3I6ICNmZWM1MjQ7XG4kbm90ZXBhZC1idXR0b24tYmFjay1jb2xvcjogIzUzNWU2NztcbiRub3RlcGFkLWJ1dHRvbi10ZXh0LWNvbG9yOiB3aGl0ZTtcbiRub3RlcGFkLWJ1dHRvbi1ib3JkZXItY29sb3I6IHdoaXRlO1xuXG4ubm90ZXBhZC1taW5pe1xuXG4gIGhlaWdodDogJG5vdGVwYWQtYW5kLXBsYXlsaXN0LWhlaWdodCAtIDMuMXJlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcblxuICBjb2xvcjogJG5vdGVwYWQtbWFpbi10ZXh0LWNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkbm90ZXBhZC1iYWNrLWNvbG9yO1xuXG4gIC8vYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG5cblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFja1xuICB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwwLDAsMC4zKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjVGNUY1O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXJcbiAge1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjU7XG4gIH1cblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYlxuICB7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwuMyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG5vdGVwYWQtc2Nyb2xsYmFyLWNvbG9yO1xuICB9XG5cblxuICAmX19hZGRfbm90ZV9mb3Jte1xuICAgIGlucHV0W3R5cGU9dGV4dF17XG4gICAgICAvL2JvcmRlcjogMDtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgLy9tYXJnaW4tYm90dG9tOiAwLjNyZW07XG4gICAgICBjb2xvcjogJG5vdGVwYWQtbWFpbi1jb2xvcjtcbiAgICB9XG4gICAgYnV0dG9ue1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgb3V0bGluZTogMDtcbiAgICAgIGJhY2tncm91bmQ6ICRub3RlcGFkLW1haW4tY29sb3I7XG4gICAgICBwYWRkaW5nOiA0cHggN3B4O1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgfVxuXG4gIC5ub3Rle1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogM3JlbTtcblxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbm90ZXBhZC1ib3JkZXItY29sb3I7XG4gICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgJjpudGgtY2hpbGQob2RkKXtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRub3RlcGFkLXJvdy1jb2xvci1vZGQ7XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKGV2ZW4pe1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5vdGVwYWQtcm93LWNvbG9yLWV2ZW47XG4gICAgfVxuXG5cbiAgICBidXR0b257XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIGNvbG9yOiAkbm90ZXBhZC1idXR0b24tdGV4dC1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQ6ICRub3RlcGFkLWJ1dHRvbi1iYWNrLWNvbG9yO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG4gICAgJl9fYm9keXtcbiAgICAgIHdpZHRoOiA2MCU7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICB9XG5cbiAgICAmX19jcmVhdGVkLCAmX19jb250cm9sc3tcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7IHdpZHRoOiAyMCU7dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmX19jcmVhdGVke1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAmX19jb250cm9sc3tcbiAgICAgICYgPiBidXR0b257XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3RlcGFkLWJ1dHRvbi1ib3JkZXItY29sb3I7XG4gICAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICZfX2VkaXQtZm9ybXtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBpbnB1dFt0eXBlPXRleHRde1xuICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICBjb2xvcjogJG5vdGVwYWQtbWFpbi1jb2xvcjtcbiAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICBoZWlnaHQ6IDIuMDM1cmVtO1xuICAgICAgfVxuXG4gICAgICAmID4gYnV0dG9ue1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB3aWR0aDogMTAlO3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRub3RlcGFkLWJ1dHRvbi1ib3JkZXItY29sb3I7XG4gICAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuXG59XG5cbiNub3Rlcy10YWtlbi1yZWdpb24gLm5vdGVwYWQtbWluaSB7XG4gIG1heC1oZWlnaHQ6IDIwcmVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDRyZW07XG59IiwiLnBhZ2VyIHtcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIHBhZGRpbmc6IDJyZW07XG5cbiAgJl9faXRlbXMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAmX19pdGVtLFxuICAmX19pdGVtcyA+IGxpIHsgLy9mb3IgbWluaSBwYWdlclxuICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbGlnaHQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmEzNDNkO1xuXG4gICAgICAmOmxpbmssICY6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6ICNmZWM1MjQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUgYSB7XG4gICAgICBib3gtc2hhZG93OiAkc2hhZG93LXNlbWktaW52aW5zaWJsZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWM1MjQ7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICY6bGluaywgJjp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICM1MzVlNjc7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faXRlbSB7XG4gICAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQoc21hbGwpIHtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgICAgICY6bm90KC5pcy1hY3RpdmUpOm5vdCgmLS1uZXh0KTpub3QoJi0tcHJldmlvdXMpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJcbi5wYXJhZ3JhcGh7XG5cblxuXG4gICYtd3JhcHBlcntcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG5cbiAgICAmID4gKnttYXJnaW4tcmlnaHQ6IDFyZW07fVxuXG5cbiAgICAmLS1ib3JkZXJ7XG4gICAgICAmLXRvcC0xe2JvcmRlci10b3A6IDFweCBzb2xpZDt9XG4gICAgICAmLWJvdHRvbS0xe2JvcmRlci1ib3R0b206IDFweCBzb2xpZDsgfVxuICAgICAgJi1jb2xvci17XG4gICAgICAgICZ5ZWxsb3d7Ym9yZGVyLWNvbG9yOiAjZmVjNTI0O31cbiAgICAgICAgJmRhcmstYmx1ZXtib3JkZXItY29sb3I6ICMyYTM0M2Q7fVxuICAgICAgICAmYnJvd257Ym9yZGVyLWNvbG9yOiAjODQ1ZTFmO31cbiAgICAgICAgJmJsYWNre2JvcmRlci1jb2xvcjogYmxhY2s7fVxuICAgICAgICAmZ3JleXtib3JkZXItY29sb3I6IGxpZ2h0Z3JleTt9XG5cbiAgICAgIH1cblxuICAgIH1cblxuICAgICY6YWZ0ZXJ7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gIH1cblxuICAmX19saW5re1xuICAgICYtLXR5cGUtMSBhe1xuICAgICAgQGV4dGVuZCAuYnV0dG9uLCAuYnV0dG9uLS15ZWxsb3csIC50ZXh0LS1ibGFjaywgLmJ1dHRvbi0taG92ZXItYnJvd24teWVsbG93O1xuXG4gICAgfVxuICAgICYtLWFsaWdubWVudHtcbiAgICAgICYtbGVmdHt0ZXh0LWFsaWduOiBsZWZ0O31cbiAgICAgICYtY2VudGVye3RleHQtYWxpZ246IGNlbnRlcjt9XG4gICAgICAmLXJpZ2h0e3RleHQtYWxpZ246IHJpZ2h0O31cbiAgICB9XG4gIH1cblxuICAmX19nYWxsZXJ5e1xuXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICB9XG4gICZfX2dhbGxlcnktaW5saW5le1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICAmIC5nYWxsZXJ5LXNsaWRlLS1pbmxpbmUge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICYgPiBpbWcge3BhZGRpbmc6IDAuNXJlbTt3aWR0aDoxMDAlO2hlaWdodDphdXRvO31cbiAgICB9XG4gIH1cblxuXG4gICZfX3RleHR7XG4gICAgLy90byBmaXggdGFibGVzXG4gICAgdGFibGV7IG1hcmdpbjogMCBhdXRvIWltcG9ydGFudDsgZmxvYXQgOm5vbmUhaW1wb3J0YW50OyB3aWR0aDogOTUlIWltcG9ydGFudDsgdWx7bGlzdC1zdHlsZTogbm9uZTt9fVxuXG4gICAgLy9maXJzdCBsZXR0ZXJcbiAgICAmLS1maXJzdC1sZXR0ZXItYmlnLTEgcDpmaXJzdC1jaGlsZCB7XG4gICAgICAmOmZpcnN0LWxldHRlcntcbiAgICAgICAgY29sb3I6ICNmZWM1MjQ7XG5cblxuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC1mYW1pbHk6IEdlb3JnaWE7XG4gICAgICAgIGZvbnQtc2l6ZTogNzVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fdmlkZW97XG5cbiAgICAvLyZfX3BsYXllcntcbiAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgcGFkZGluZy1ib3R0b206NTYuMjUlO1xuICAgICAgcGFkZGluZy10b3A6MzBweDtcbiAgICAgIGhlaWdodDowO1xuICAgICAgb3ZlcmZsb3c6aGlkZGVuO1xuXG4gICAgICAmIGlmcmFtZSwgJiBvYmplY3QsICYgZW1iZWQge1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgdG9wOjA7XG4gICAgICAgIGxlZnQ6MDtcbiAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgaGVpZ2h0OjEwMCU7XG4gICAgICB9XG5cbiAgICAvL31cbiAgfVxuLy93aGVuIGltYWdlcyBhcmUgc21hbGwgdGFibGVzIG11c3QgYmUgbGFyZ2VyXG5cbiAgLnRhYmxlcy1zaXple1xuXG4gICAgJi0tc21hbGwge3RhYmxle3dpZHRoOiA3MCUhaW1wb3J0YW50O319XG4gICAgJi0tbWVkaXVtIHt0YWJsZXt3aWR0aDogNDUlIWltcG9ydGFudDt9fVxuXG4gIH1cbiAgJl9faW1hZ2V7XG4gICAgaW1nIHt3aWR0aDoxMDAlOyBoZWlnaHQ6IGF1dG87fVxuXG4gICAgJi0tYm90dG9tLW1pZGRsZSB7bWFyZ2luOiBhdXRvO31cbiAgICAmLS10b3AtbWlkZGxlIHttYXJnaW46IGF1dG87fVxuICAgICYtLWNlbnRlciB7bWFyZ2luOiBhdXRvO31cbiAgICAmLS1sZWZ0IHtmbG9hdDpsZWZ0O31cbiAgICAmLS1yaWdodCB7ZmxvYXQ6cmlnaHQ7cGFkZGluZy1sZWZ0OiAwLjVyZW07fVxuICAgICYtLXNtYWxsIHsgd2lkdGg6IDI1JTt9XG4gICAgJi0tbWVkaXVtIHt3aWR0aDogNTAlO31cbiAgICAmLS1sYXJnZSB7d2lkdGg6IDc1JTt9XG4gICAgJi0teGxhcmdlIHt3aWR0aDogMTAwJTt9XG4gIH1cblxuXG4gICY6YWZ0ZXJ7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuXG59XG5cblxuXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0MnJlbSkge1xuXG4gIC5wYXJhZ3JhcGh7XG4gICAgJi13cmFwcGVyIHtcblxuICAgICAgJiA+ICoge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAucGFyYWdyYXBoX19pbWFnZS0tbGVmdHttYXJnaW4tcmlnaHQ6IDFyZW07fVxuICAgICAgLnBhcmFncmFwaF9faW1hZ2UtLXJpZ2h0e3BhZGRpbmctbGVmdDogMHJlbTt9XG4gICAgICAucGFyYWdyYXBoX19pbWFnZS0tY2VudGVye21hcmdpbjogYXV0bzt9XG4gICAgfVxuXG4gIH1cbn1cbiIsIlxuLm5vdGlmaWNhdGlvbi1pY29uIHtcblxuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcGFkZGluZzogMXJlbSAzcmVtO1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQoc21hbGwpIHtcbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgJi0taGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5vdmVybGF5IHtcblxuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDUwMG1zO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDk5OTtcbiAgZGlzcGxheTogZmxleDtcblxuICAmOnRhcmdldCB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAmLS12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4ucG9wdXAge1xuICBwYWRkaW5nOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHdpZHRoOiAzMCU7XG4gIGhlaWdodDogMjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBtYXJnaW46IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgaDIge1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZmVjNTI0O1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgfVxuXG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlLWltYWdlOiB1cmwoJy90aGVtZXMvY3VzdG9tL2NvZmZlZXRoZW1lMjAxNy9hc3NldHMvaW1hZ2VzL3N0YXJzL3N0YXJfeWVsbG93LnBuZycpO1xuICB9XG5cbiAgLmNvbnRlbnQge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cblxuICAuY2xvc2Uge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyMHB4O1xuICAgIHJpZ2h0OiAzMHB4O1xuXG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzMzMztcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZWM1MjQ7XG4gICAgfVxuXG4gIH1cbn1cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuYm94IHtcbiAgICB3aWR0aDogNzAlO1xuICB9XG4gIC5wb3B1cCB7XG4gICAgd2lkdGg6IDcwJTtcbiAgfVxufVxuXG5cbi5jb21tZW50LXRhYmxlLWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiBnaG9zdHdoaXRlO1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG5cbiAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQoc21hbGwpe1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgfVxufVxuXG4jd2ViZm9ybV9zdWJtaXNzaW9uX3RyYWluaW5nX3VzZXJfY29tbWVudF9hZGRfZm9ybS1hamF4LFxuI3dlYmZvcm1fc3VibWlzc2lvbl90cmFpbmluZ191c2VyX2NvbW1lbnRfZWRpdF9mb3JtLWFqYXgge1xuICAud2ViZm9ybS1zdWJtaXNzaW9uLWluZm9ybWF0aW9uLmRldGFpbHMsXG4gIC53ZWJmb3JtLXN1Ym1pc3Npb24tcGFnZXIsXG4gIC5jb3Vyc2VzX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuIiwiXG4ucG9ydHJhaXR7XG5cblxuICAmLS1yb3RhdGluZ3tcbiAgICBwZXJzcGVjdGl2ZTogMTUwcmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuICAmLS1yb3RhdGluZyAmX19jYXB0aW9ue1xuICAgIEBpbmNsdWRlIGFic29sdXRlLWZ1bGwtd2lkdGgtaGVpZ2h0O1xuXG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDE4MGRlZyk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJveC1zaGFkb3c6IDAgMS41cmVtIDJyZW0gcmdiYSgkY29sb3ItYmxhY2sgLCAuMDUpO1xuICB9XG5cbiAgJi0tcm90YXRpbmcgJl9fcGhvdG8gLCAmLS1yb3RhdGluZyAmX19jYXB0aW9ue1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjhzIGVhc2U7XG4gIH1cblxuICAmLS1yb3RhdGluZzpob3ZlciAmX19waG90b3tcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gIH1cblxuICAmLS1yb3RhdGluZzpob3ZlciAmX19jYXB0aW9ue1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSgwKTtcbiAgfVxuXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgJi0tY2lyY2xle1xuXG4gIH1cbiAgJi0tY2lyY2xlICZfX3Bob3Rve1xuICAgIHdpZHRoOiAxMHJlbTtcbiAgICBoZWlnaHQ6IDEwcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0KG1lZGl1bSl7XG4gICAgICAmX19waG90b3tcbiAgICAgICAgd2lkdGg6IDhyZW07XG4gICAgICAgIGhlaWdodDogOHJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmLS1vdXRsaW5lLXllbGxvd3tcblxuICB9XG4gICYtLW91dGxpbmUteWVsbG93ICZfX3Bob3Rve1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1tYWluLXllbGxvdztcbiAgfVxuICAmLS1vdXRsaW5lLXllbGxvdyAmX19jYXB0aW9ue1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1tYWluLXllbGxvdztcbiAgfVxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbiAgJl9fY2FwdGlvbntcblxuICAgIHNwYW57XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXItaG9yaXpvbnRhbC12ZXJ0aWNhbDtcblxuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1lZGl1bTtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbGlnaHQ7XG5cbiAgICAgIGNvbG9yOiAkY29sb3ItbWFpbi1ibGFjaztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgfVxuXG4gICZfX3Bob3Rve1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG1hcmdpbjogMTBweDtcblxuICAgIGJveC1zaGFkb3c6IDAgM3B4IDRweCByZ2JhKCRjb2xvci1ibGFjaywgLjAzKTtcbiAgfVxuXG5cbn1cblxuXG5cbi5wb3J0cmFpdC1jb2xsZWN0aW9ue1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC5hamF4LXByb2dyZXNzLXRocm9iYmVyIHsgZGlzcGxheTogbm9uZX0vL3RvIHJlbW92ZSB0aGUgdGhyb2JiZXJcbn0iLCIgLy8udWktd2lkZ2V0LW92ZXJsYXl7XG4gLy8gICB6LWluZGV4OiA5OTk5O1xuIC8vICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjUpO1xuIC8vIH1cbiAvL1xuIC8vIC53ZWJmb3JtLXVpLWVsZW1lbnQtdHlwZS1zZWxlY3QtZm9ybXtcbiAvLyAgIHRhYmxle1xuIC8vICAgICB3aWR0aDogMTAwJTtcbiAvLyAgICAgdGhlYWQgdHJ7aGVpZ2h0OiA0cmVtO31cbiAvLyAgICAgdGJvZHl7XG4gLy8gICAgICAgdHJ7XG4gLy8gICAgICAgICBoZWlnaHQ6IDRyZW07XG4gLy8gICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gLy8gICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIGxpZ2h0Z3JleTtcbiAvLyAgICAgICAgIHRke1xuIC8vICAgICAgICAgICAmIC5kcm9wYnV0dG9uLWFjdGlvbiBhe3BhZGRpbmc6IDNweCA1cHghaW1wb3J0YW50O31cbiAvLyAgICAgICAgIH1cbiAvLyAgICAgICB9XG4gLy8gICAgIH1cbiAvLyAgIH1cbiAvL1xuIC8vXG4gLy8gfVxuIC8vIC53ZWJmb3JtLXVpLWxvY2FsLWFjdGlvbnMge1xuIC8vICAgJiBhOmZpcnN0LWNoaWxke1xuIC8vICAgICBAZXh0ZW5kIC5idXR0b24sIC50ZXh0LS1zbWFsbCAsIC50ZXh0LS1ib2xkICwudGV4dC0tdXBwZXJjYXNlICwgLnRleHQtLXllbGxvdyAsLmJ1dHRvbi0tYm9yZGVyLXllbGxvdywgLmJ1dHRvbi0tdHJhbnNwYXJlbnQ7XG4gLy8gICAgICY6aG92ZXJ7Y29sb3I6IHdoaXRlO2JhY2tncm91bmQ6ICNmZWM1MjQ7fVxuIC8vICAgfVxuIC8vICAgI2VkaXQtYWRkLXBhZ2V7ZGlzcGxheTogbm9uZTt9XG4gLy8gfVxuIC8vXG4gLy8gLndlYmZvcm0tdWktZWxlbWVudHMtdGFibGV7XG4gLy8gICAmIHRye3RkOm50aC1jaGlsZCgyKSx0aDpudGgtY2hpbGQoMil7ZGlzcGxheTogbm9uZTt9fVxuIC8vIH1cbiAvL1xuIC8vIC50YWJsZWRyYWctdG9nZ2xlLXdlaWdodCwudGFibGVyZXNwb25zaXZlLXRvZ2dsZS1jb2x1bW5ze2Rpc3BsYXk6IG5vbmU7fVxuIC8vXG4gLy9cbiAvL1xuIC8vIC51aS1kaWFsb2cge1xuIC8vICAgLndlYmZvcm0tbXVsdGlwbGUtdGFibGUgdGQge3BhZGRpbmc6IDAgMC41cmVtIWltcG9ydGFudDt9XG4gLy9cbiAvLyAgIHBhZGRpbmc6IDA7XG4gLy8gICAmLXRpdGxlYmFye1xuIC8vICAgICAudWktY29ybmVyLWFsbHtcbiAvLyAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAvLyAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuIC8vICAgICB9XG4gLy8gICB9XG4gLy9cbiAvL1xuIC8vXG4gLy8gICAud2ViZm9ybS11aS1lbGVtZW50LWZvcm17XG4gLy8gICAgICYgPiAqLCAuZm9ybS1pdGVtLXByb3BlcnRpZXMtb3B0aW9ucy1vcHRpb25zLCAuZm9ybS1pdGVtLXR5cGUsIC5mb3JtLWl0ZW0tcHJvcGVydGllcy1tdWx0aXBsZSxcbiAvLyAgICAgLmZvcm0taXRlbS1wcm9wZXJ0aWVzLW9wdGlvbnMtZGlzcGxheSwgLmZvcm0taXRlbS1wcm9wZXJ0aWVzLWRlZmF1bHQtdmFsdWV7ZGlzcGxheTogbm9uZTt9XG4gLy8gICAgIGZpZWxkc2V0IHsmOmZpcnN0LWNoaWxkLCY6bnRoLWNoaWxkKDIpe2Rpc3BsYXk6IGJsb2NrO319XG4gLy8gICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sIC5idXR0b24tLWRhbmdlciB7ZGlzcGxheTogYmxvY2s7fVxuIC8vICAgICAuYnV0dG9uLS1kYW5nZXJ7XG4gLy8gICAgICAgY29sb3I6ICNmZmY7XG4gLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5NTM0ZjtcbiAvLyAgICAgICBib3JkZXItY29sb3I6ICNkNDNmM2E7fVxuIC8vXG4gLy8gICAgIC5mb3JtLWl0ZW0tcHJvcGVydGllcy10aXRsZXtcbiAvLyAgICAgICAuZGVzY3JpcHRpb24sICYgPiBzcGFue2Rpc3BsYXk6IG5vbmU7fVxuIC8vICAgICB9XG4gLy9cbiAvLyAgICAgLmNvbnRhaW5lci1pbmxpbmUsLmZvcm0taXRlbS1wcm9wZXJ0aWVzLW9wdGlvbnMtcmFuZG9taXplIHtcbiAvLyAgICAgICBAZXh0ZW5kIC5mbG9hdGluZy1jb250YWluZXI7XG4gLy8gICAgICAgJiA+ICp7ZGlzcGxheTogaW5saW5lLWJsb2NrO31cbiAvLyAgICAgICAmOmZpcnN0LWNoaWxke2Zsb2F0OiBsZWZ0O31cbiAvLyAgICAgICAmOmxhc3QtY2hpbGR7ZmxvYXQ6IHJpZ2h0O31cbiAvLyAgICAgfVxuIC8vICAgfVxuIC8vXG4gLy9cbiAvLyAgIC53ZWJmb3JtLXVpLWVsZW1lbnQtZm9ybSwgLndlYmZvcm0tdWktZWxlbWVudC10eXBlLXNlbGVjdC1mb3JtIHtcbiAvLyAgICAgbWFyZ2luOiAwO1xuIC8vICAgICBwYWRkaW5nOiAwO1xuIC8vXG4gLy9cbiAvLyAgICAgZmllbGRzZXR7XG4gLy8gICAgICAgJjpub3QoLmZpZWxkZ3JvdXApIHtcbiAvLyAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2ZjZmE7XG4gLy8gICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gLy8gICAgICAgICBtYXJnaW46IDFlbSAwO1xuIC8vICAgICAgICAgcGFkZGluZzogMzBweCAxOHB4IDE4cHg7XG4gLy8gICAgICAgICBtaW4td2lkdGg6IDA7XG4gLy8gICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gLy8gICAgICAgICAmID4gbGVnZW5kIHtcbiAvLyAgICAgICAgICAgZm9udC1zaXplOiAxZW07XG4gLy8gICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuIC8vICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuIC8vICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gLy8gICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gLy8gICAgICAgICAgIHRvcDogMTBweDtcbiAvLyAgICAgICAgIH1cbiAvLyAgICAgICB9XG4gLy9cbiAvLyAgICAgfVxuIC8vXG4gLy9cbiAvLyAgICAgLmZpZWxkZ3JvdXAge21pbi13aWR0aDogMDt9XG4gLy9cbiAvLyAgICAgLmZvcm0taXRlbSB7bWFyZ2luOiAwLjc1ZW0gMDt9XG4gLy8gICAgIC5mb3JtLXR5cGUtY2hlY2tib3gge3BhZGRpbmc6IDA7fVxuIC8vICAgICBsYWJlbCB7XG4gLy8gICAgICAgZGlzcGxheTogdGFibGU7XG4gLy8gICAgICAgbWFyZ2luOiAwIDAgMC4xZW07XG4gLy8gICAgICAgcGFkZGluZzogMDtcbiAvLyAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAvLyAgICAgfVxuIC8vICAgICAvL2xhYmVsLmVycm9yIHtcbiAvLyAgICAgLy8gIGNvbG9yOiAjYTUxYjAwO1xuIC8vICAgICAvL31cbiAvLyAgICAgLy9sYWJlbFtmb3JdIHtcbiAvLyAgICAgLy8gIGN1cnNvcjogcG9pbnRlcjtcbiAvLyAgICAgLy99XG4gLy8gICAgIC8vLmZvcm0taXRlbSBsYWJlbC5vcHRpb24ge1xuIC8vICAgICAvLyAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gLy8gICAgIC8vfVxuIC8vICAgICAvLy5mb3JtLWl0ZW0gbGFiZWwub3B0aW9uIGlucHV0IHtcbiAvLyAgICAgLy8gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gLy8gICAgIC8vfVxuIC8vICAgICAvLy5mb3JtLWRpc2FibGVkIGxhYmVsIHtcbiAvLyAgICAgLy8gIGNvbG9yOiAjNzM3MzczO1xuIC8vICAgICAvL31cbiAvLyAgICAgLmZvcm0tZGlzYWJsZWQgaW5wdXQuZm9ybS10ZXh0LC5mb3JtLWRpc2FibGVkIGlucHV0LmZvcm0tdGVsLFxuIC8vICAgICAuZm9ybS1kaXNhYmxlZCBpbnB1dC5mb3JtLWVtYWlsLC5mb3JtLWRpc2FibGVkIGlucHV0LmZvcm0tdXJsLFxuIC8vICAgICAuZm9ybS1kaXNhYmxlZCBpbnB1dC5mb3JtLXNlYXJjaCwuZm9ybS1kaXNhYmxlZCBpbnB1dC5mb3JtLW51bWJlcixcbiAvLyAgICAgLmZvcm0tZGlzYWJsZWQgaW5wdXQuZm9ybS1jb2xvciwuZm9ybS1kaXNhYmxlZCBpbnB1dC5mb3JtLWZpbGUsXG4gLy8gICAgIC5mb3JtLWRpc2FibGVkIHRleHRhcmVhLmZvcm0tdGV4dGFyZWEsXG4gLy8gICAgIC5mb3JtLWRpc2FibGVkIHNlbGVjdC5mb3JtLXNlbGVjdCB7XG4gLy8gICAgICAgYm9yZGVyLWNvbG9yOiAjZDRkNGQ0O1xuIC8vICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDAlLCAuMDgpO1xuIC8vICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gLy8gICAgIH1cbiAvL1xuIC8vICAgICAvKiBGaWx0ZXIgKi9cbiAvLyAgICAgdWwudGlwcyxcbiAvLyAgICAgZGl2LmRlc2NyaXB0aW9uLFxuIC8vICAgICAuZm9ybS1pdGVtIC5kZXNjcmlwdGlvbiB7XG4gLy8gICAgICAgbWFyZ2luOiAwLjJlbSAwIDAgMDtcbiAvLyAgICAgICBjb2xvcjogIzU5NTk1OTtcbiAvLyAgICAgICBmb250LXNpemU6IDAuOTVlbTtcbiAvLyAgICAgfVxuIC8vICAgICAuZm9ybS1pdGVtIC5kZXNjcmlwdGlvbi5lcnJvciB7XG4gLy8gICAgICAgbWFyZ2luLXRvcDogMDtcbiAvLyAgICAgICBjb2xvcjogI2E1MWIwMDtcbiAvLyAgICAgfVxuIC8vXG4gLy8gICAgIHVsLnRpcHMgbGkge21hcmdpbjogMC4yNWVtIDAgMC4yNWVtIDEuNWVtOyAvKiBMVFIgKi99XG4gLy8gICAgIFtkaXI9XCJydGxcIl0gdWwudGlwcyBsaSB7bWFyZ2luOiAwLjI1ZW0gMS41ZW0gMC4yNWVtIDA7XG4gLy8gICAgIH1cbiAvLyAgICAgLmZvcm0tdHlwZS1yYWRpbyAuZGVzY3JpcHRpb24sLmZvcm0tdHlwZS1jaGVja2JveCAuZGVzY3JpcHRpb24ge1xuIC8vICAgICAgIG1hcmdpbi1sZWZ0OiAxLjVlbTsgLyogTFRSICovXG4gLy8gICAgIH1cbiAvLyAgICAgW2Rpcj1cInJ0bFwiXSAuZm9ybS10eXBlLXJhZGlvIC5kZXNjcmlwdGlvbixcbiAvLyAgICAgW2Rpcj1cInJ0bFwiXSAuZm9ybS10eXBlLWNoZWNrYm94IC5kZXNjcmlwdGlvbiB7XG4gLy8gICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gLy8gICAgICAgbWFyZ2luLXJpZ2h0OiAxLjVlbTtcbiAvLyAgICAgfVxuIC8vICAgICAuZm9ybS10ZXh0LFxuIC8vICAgICAuZm9ybS10ZXh0YXJlYSB7XG4gLy8gICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuIC8vICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuIC8vICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gLy8gICAgIH1cbiAvL1xuIC8vICAgICBpbnB1dC5mb3JtLWF1dG9jb21wbGV0ZSxpbnB1dC5mb3JtLXRleHQsaW5wdXQuZm9ybS10ZWwsXG4gLy8gICAgIGlucHV0LmZvcm0tZW1haWwsaW5wdXQuZm9ybS11cmwsaW5wdXQuZm9ybS1zZWFyY2gsaW5wdXQuZm9ybS1udW1iZXIsXG4gLy8gICAgIGlucHV0LmZvcm0tY29sb3IsaW5wdXQuZm9ybS1maWxlLGlucHV0LmZvcm0tZGF0ZSxpbnB1dC5mb3JtLXRpbWUsXG4gLy8gICAgIHRleHRhcmVhLmZvcm0tdGV4dGFyZWEge1xuIC8vICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gLy8gICAgICAgcGFkZGluZzogLjNlbSAuNGVtIC4zZW0gLjVlbTsgLyogTFRSICovXG4gLy8gICAgICAgd2lkdGg6IDEwMCU7XG4gLy8gICAgICAgYm9yZGVyOiAxcHggc29saWQgI2I4YjhiODtcbiAvLyAgICAgICBib3JkZXItdG9wLWNvbG9yOiAjOTk5O1xuIC8vICAgICAgIC8vYmFja2dyb3VuZDogI2ZmZjtcbiAvLyAgICAgICAvL2NvbG9yOiAjMzMzO1xuIC8vICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAvLyAgICAgICBiYWNrZ3JvdW5kOiAjZmNmY2ZhO1xuIC8vICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIC4xMjUpO1xuIC8vICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuIC8vICAgICAgIGNvbG9yOiAjNTk1OTU5O1xuIC8vICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyIGxpbmVhciAwLjJzLCBib3gtc2hhZG93IGxpbmVhciAwLjJzO1xuIC8vICAgICAgIHRyYW5zaXRpb246IGJvcmRlciBsaW5lYXIgMC4ycywgYm94LXNoYWRvdyBsaW5lYXIgMC4ycztcbiAvLyAgICAgfVxuIC8vICAgICBbZGlyPVwicnRsXCJdIHRleHRhcmVhLmZvcm0tdGV4dGFyZWEge1xuIC8vICAgICAgIHBhZGRpbmc6IC4zZW0gLjVlbSAuM2VtIC40ZW07XG4gLy8gICAgIH1cbiAvL1xuIC8vXG4gLy8gICAgIC5jb25maXJtLXBhcmVudCxcbiAvLyAgICAgLnBhc3N3b3JkLXBhcmVudCB7XG4gLy8gICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gLy8gICAgICAgd2lkdGg6IGF1dG87XG4gLy8gICAgIH1cbiAvL1xuIC8vICAgICAuZm9ybS1pdGVtLW9wdGlvbnMtZ3JvdXAtaW5mby1pZGVudGlmaWVyLFxuIC8vICAgICAuZm9ybS1pdGVtLXBhc3MgLmRlc2NyaXB0aW9uIHtcbiAvLyAgICAgICBjbGVhcjogYm90aDtcbiAvLyAgICAgfVxuIC8vXG4gLy8gICAgIC8qKlxuIC8vICAgICAgKiBMaW1pdHMgZXh0cmEgbG9uZyBpbnN0YW5jZXMgb2Ygc2VsZWN0IGVsZW1lbnRzIHRvIHRoZSBtYXggd2lkdGggYWxsb3dlZFxuIC8vICAgICAgKiB0byBhdm9pZCBicmVha2luZyBsYXlvdXRzLlxuIC8vICAgICAgKi9cbiAvLyAgICAgc2VsZWN0IHtcbiAvLyAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gLy8gICAgIH1cbiAvL1xuIC8vXG4gLy8gICAgIC8qKlxuIC8vICAgICAgKiBJbXByb3ZlIHNwYWNpbmcgb2YgY2FuY2VsIGxpbmsuXG4gLy8gICAgICAqL1xuIC8vICAgICAjZWRpdC1jYW5jZWwge1xuIC8vICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyAvKiBMVFIgKi9cbiAvLyAgICAgfVxuIC8vICAgICBbZGlyPVwicnRsXCJdICNlZGl0LWNhbmNlbCB7XG4gLy8gICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gLy8gICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuIC8vICAgICB9XG4gLy9cbiAvLyAgICAgLyogRXhjZXB0aW9ucyAqL1xuIC8vICAgICAjZGlmZi1pbmxpbmUtZm9ybSBzZWxlY3QsXG4gLy8gICAgIGRpdi5maWx0ZXItb3B0aW9ucyBzZWxlY3Qge3BhZGRpbmc6IDA7fVxuIC8vXG4gLy8gICB9XG4gLy9cbiAvL1xuIC8vICAgfVxuIiwiXG4kYXJyb3ctaGVpZ2h0OiA1cmVtO1xuJGFycm93LXdpZHRoOiA4cHg7XG4kYXJyb3ctZGlzdGFuY2UtZnJvbS10b3A6IDJyZW07XG5cbi5hcnJvd19jb21wb3NpdGlvbntcblxuICAmX19hcnJvd3N7XG4gICAgQGluY2x1ZGUgdGFibGUtZml4ZWQtbGF5b3V0O1xuICAgIHdpZHRoOiA3NSU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkYXJyb3ctd2lkdGgvMik7XG5cbiAgICAmID4gc3BhbntcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cbiAgICAgIGhlaWdodDogJGFycm93LWhlaWdodDtcbiAgICAgIGJvcmRlci1yaWdodDogJGFycm93LXdpZHRoIHNvbGlkICRjb2xvci1tYWluLXllbGxvdztcbiAgICAgIGJvcmRlci10b3A6ICRhcnJvdy13aWR0aCBzb2xpZCAkY29sb3ItbWFpbi15ZWxsb3c7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYXJyb3ctd2lkdGggc29saWQgJGNvbG9yLW1haW4teWVsbG93O1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3Bob3Rvc3tcbiAgICBAaW5jbHVkZSB0YWJsZS1maXhlZC1sYXlvdXQ7XG5cbiAgICAmID4gZGl2e1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB9XG4gICAgJiBpbWd7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gIH1cbiAgJl9fY2FwdGlvbnN7XG4gICAgQGluY2x1ZGUgdGFibGUtZml4ZWQtbGF5b3V0O1xuXG5cbiAgICAmID4gZGl2e1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1saWdodDtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZWRpdW07XG4gICAgfVxuICAgIHN0cm9uZ3tcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tbGFyZ2U7XG4gICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXJlZy1ib2xkO1xuICAgIH1cblxuICB9XG5cblxuICAmX190b3B7XG4gICAgbWF4LXdpZHRoOiAzMHJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206ICRhcnJvdy1kaXN0YW5jZS1mcm9tLXRvcDtcblxuICAgICY6OmFmdGVye1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJvcmRlci1sZWZ0OiAkYXJyb3ctd2lkdGgvMiBzb2xpZCAkY29sb3ItbWFpbi15ZWxsb3c7XG4gICAgICBib3JkZXItcmlnaHQ6ICRhcnJvdy13aWR0aC8yIHNvbGlkICRjb2xvci1tYWluLXllbGxvdztcblxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICAgICAgaGVpZ2h0OiAkYXJyb3ctZGlzdGFuY2UtZnJvbS10b3A7XG5cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYS1yZXNwb25zaXZlLWxheW91dChtZWRpdW0pe1xuICAgICZfX2Fycm93c3tcbiAgICAgICYgPiBzcGFue1xuICAgICAgICBoZWlnaHQ6ICRhcnJvdy1oZWlnaHQvMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jYXB0aW9uc3tcbiAgICAgIEBpbmNsdWRlIHRhYmxlLWZpeGVkLWxheW91dDtcblxuICAgICAgJiA+IGRpdntcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgICAgfVxuICAgICAgc3Ryb25ne1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtbWVkaXVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCJcbi5hdXRob3ItaW5mb3tcblxuICAmID4gZGl2IHttYXJnaW46IDAgMC41cmVtO31cbiAgJi0tdXNlcntcblxuICB9XG59XG5cblxuXG4ucHJvZmlsZS1pbWFnZXtcbiAgLy93aWR0aDogNHJlbTtcbiAgLy9oZWlnaHQ6IGF1dG87XG4gIC8vbWF4LWhlaWdodDogNHJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvL2JvcmRlcjogMXB4IHNvbGlkICNmZWM1MjQgO1xuXG4gIC1tb3otYm9yZGVyLXJhZGl1czogNTAlO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAtd2Via2l0LWNsaXAtcGF0aDogY2lyY2xlKDUwJSBhdCA1MCUgNTAlKTtcbiAgY2xpcC1wYXRoOiBjaXJjbGUoNTAlIGF0IDUwJSA1MCUpO1xuXG4gICYgaW1ne1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICB3ZWJraXQtYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgfVxufVxuIiwiLnBob25lLXBvcHVwIHtcbiAgLnBob25lIHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnVzZXJfZWRpdF9mb3JtX19lbCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICRjb2xvci1ncmluZGVyeTtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRjb2xvci1tYWluLXllbGxvdztcbiAgICB9XG4gIH1cblxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAuN3JlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG5cbiAgLmV4cCArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIC5leHAgbGFiZWwgc3BhbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbWFpbi1ibHVlO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2Utb3V0O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbWFpbi15ZWxsb3c7XG4gICAgICBib3gtc2hhZG93OiAkc2hhZG93LWxpZ2h0LTI7XG4gICAgfVxuICB9XG5cbiAgI3BvcHVwX21lc3NhZ2VfYm94LFxuICAubm90aWZpY2F0aW9uLWljb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmJpb19wb3B1cCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogJHotaW5kZXgtcG9wdXA7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGNvbG9yLWJsYWNrLCAuOCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjVzO1xuXG4gICZfX2Nsb3NlIHtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGNvbG9yOiAkY29sb3ItbWFpbi1ibHVlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDFyZW07XG4gICAgcmlnaHQ6IDFyZW07XG5cbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICAgIH1cblxuICB9XG5cbiAgJl9fY29udGVudCB7XG5cbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcbiAgICBhbmltYXRpb246IHNjYWxlSW5BYnNDZW50ZXIgLjRzO1xuXG4gICAgQGluY2x1ZGUgYWJzb2x1dGUtY2VudGVyLWhvcml6b250YWwtdmVydGljYWw7XG4gICAgdHJhbnNpdGlvbjogYWxsIC41cyAuMnM7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgYm94LXNoYWRvdzogMCAycmVtIDRyZW0gcmdiYSgkY29sb3ItYmxhY2ssIC4yKTtcblxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3ItbWFpbi15ZWxsb3c7XG5cbiAgICBtYXgtd2lkdGg6IDUwcmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cblxuICAmX19pbWcge1xuICAgIHdpZHRoOiAxNXJlbTtcbiAgICBoZWlnaHQ6IDE1cmVtO1xuXG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHNoYXBlLW91dHNpZGU6IGNpcmNsZSgpO1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgIGltZyB7XG4gICAgICBib3gtc2hhZG93OiAwIC41cmVtIDJyZW0gcmdiYSgkY29sb3ItYmxhY2ssIC4wNCk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICB3aWR0aDogMjAwMHB4O1xuICAgIH1cbiAgfVxuXG4gICZfX3RleHQge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZWRpdW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1ibGFjaztcbiAgICBjb2xvcjogJGNvbG9yLW1haW4tc2VtaS1kYXJrLWJsdWU7XG5cbiAgICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtc2hhZG93OiAwIDNweCAzcHggcmdiYSgkY29sb3ItYmxhY2ssIDAuMik7XG4gIH1cblxuICAmX19zdWJ0aXRsZSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbGlnaHQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1sYXJnZTtcbiAgICBjb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQobWVkaXVtKSB7XG4gICAgJl9fY2xvc2Uge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICBjb2xvcjogJGNvbG9yLW1haW4tYmx1ZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMXJlbTtcbiAgICAgIHJpZ2h0OiAxcmVtO1xuXG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG5cbiAgICAmLS1mdWxsc2NyZWVuICZfX2NvbnRlbnQge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICZfX2ltZyB7XG4gICAgICB3aWR0aDogOHJlbTtcbiAgICAgIGhlaWdodDogOHJlbTtcblxuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgc2hhcGUtb3V0c2lkZTogY2lyY2xlKCk7XG4gICAgfVxuICAgICZfX3RleHQge1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1lZGl1bTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgICBwIHtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDI1cHg7XG4gICAgICB9XG5cbiAgICB9XG4gICAgJl9fdGl0bGUge1xuXG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtbWxhcmdlO1xuXG4gICAgICBsZXR0ZXItc3BhY2luZzogM3B4O1xuXG4gICAgfVxuICAgICZfX3N1YnRpdGxlIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbGlnaHQ7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtbWVkaXVtO1xuICAgICAgY29sb3I6ICRjb2xvci1tYWluLXllbGxvdztcbiAgICB9XG5cbiAgfVxufVxuXG5cbiIsIi5jdXN0b20tYnJlYWRjcnVtYiB7XG4gIHBhZGRpbmc6IDFyZW0gMDtcbn0iLCIuY291cnNlLWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmLS1zbWFsbCB7XG4gICAgLmNvdXJzZS1oZWFkZXJfX2JhY2tncm91bmQtaW1hZ2Uge1xuICAgICAgbWF4LWhlaWdodDogMThyZW1cbiAgICB9XG4gIH1cblxuICAmX19iYWNrZ3JvdW5kLWltYWdlIHtcbiAgICBtYXgtaGVpZ2h0OiAyNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgZGl2IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmLXNoYXBlZCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBoZWlnaHQ6IDI1cmVtO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgLnNoYXBlIHtcbiAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgNjUlIDAsIDcwJSAxMDAlLCAwJSAxMDAlKTtcbiAgICAgICAgYmFja2dyb3VuZDogIzFhMWExYTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICB9XG5cbiAgICAgIC5oZWFkLWltYWdlIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGFpbmVyIHtcbiAgICAmLS11cCB7XG4gICAgICBib3R0b206IGluaXRpYWw7XG4gICAgICB0b3A6IDE1JTtcbiAgICB9XG5cbiAgICB6LWluZGV4OiAxMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAxMCU7XG4gICAgbWFyZ2luLWxlZnQ6ICRkZWZhdWx0LXBhZ2UtcGFkZGluZy1sYXJnZTtcbiAgICB3aWR0aDogNDByZW07XG5cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NXJlbSkge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRkZWZhdWx0LXBhZ2UtcGFkZGluZy1tZWRpdW07XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQycmVtKSB7XG4gICAgICBwYWRkaW5nOiAwICRkZWZhdWx0LXBhZ2UtcGFkZGluZy1zbWFsbDtcbiAgICB9XG4gIH1cblxuICAmX190aXRsZSB7XG4gIH1cblxufVxuXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NXJlbSkge1xuXG4gIC5jb3Vyc2UtaGVhZGVyIHtcbiAgICAmLS1zbWFsbCB7XG4gICAgICAuY291cnNlLWhlYWRlcl9fYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDdyZW1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWNrZ3JvdW5kLWltYWdlIHtcbiAgICAgIG1heC1oZWlnaHQ6IDE0cmVtO1xuXG4gICAgICAmLXNoYXBlZCB7XG4gICAgICAgIGhlaWdodDogMTRyZW07XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAmX19jb250YWluZXIge1xuXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICB3aWR0aDogNTAlO1xuXG4gICAgICAudGV4dC0teGxhcmdlIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fY291cnNlLWRlc2NyaXB0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQycmVtKSB7XG5cblxuICAuY291cnNlLWhlYWRlciB7XG5cbiAgICAmX19iYWNrZ3JvdW5kLWltYWdlIHtcbiAgICAgIG1heC1oZWlnaHQ6IDEwcmVtO1xuXG4gICAgICAmLXNoYXBlZCB7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxufSIsIi5jb3Vyc2UtbGlua3tcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDdweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC41MCk7XG5cblxuXG4gICYtLWxpZ2h0LWdyZXl7YmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzt9XG4gICYtLWRhcmstYmx1ZXtcbiAgICBoZWlnaHQ6IDRyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQyLDUyLDYxKTtcbiAgICAuY291cnNlLWxpbmtfX2xpbmsgYXtjb2xvcjogZ3JleTsmOmhvdmVye2NvbG9yOiB3aGl0ZTt9XG4gICAgfVxuICB9XG4gICYtLWRhcmstYmx1ZS10aXRsZXtiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDIsNTIsNjEpO31cblxuXG5cbiAgJi13cmFwcGVye1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG4gIH1cbiAgJi0tZHJvcGRvd257XG4gICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLy9QUk9HUkVTUyBCQVIgQVBQRUFSSU5HIENPVVJTRVMgQVZBSUxBQkxFIFBBR0VcbiAgJi0tcHJvZ3Jlc3N7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDE7XG4gICAgJjo6YWZ0ZXJ7XG4gICAgICBib3R0b206IC0ycHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbWFpbi15ZWxsb3c7XG4gICAgICBoZWlnaHQ6IDhweDtcbiAgICB9XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMDAge1xuICAgICAgJi0jeyRpfSB7XG4gICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgd2lkdGg6ICRpKjElO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy9RVUVTVElPTk5BSVJFUyBXSVRIIERFU0NSSVBUSU9OXG4gICZfX29wZW4tZWx7XG4gICAgbWF4LWhlaWdodDogMzZweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IGFsbCAuNXMgZWFzZS1vdXQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXJ7XG4gICAgICBjb250ZW50OiBcIi4uLlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxOHB4O1xuICAgICAgcmlnaHQ6IDhweDtcbiAgICB9XG5cbiAgICAmOmhvdmVye1xuICAgICAgbWF4LWhlaWdodDogNTAwcHg7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG4gICAgJjpob3Zlcjo6YWZ0ZXJ7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0LW1mKCRtZWRpYS1icmVha3BvaW50LXNtYWxsKXtcbiAgICAgIG1heC1oZWlnaHQ6IGluaXRpYWw7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICY6OmFmdGVye1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3RpdGxlIGF7XG4gICAgQGV4dGVuZCAudGV4dC0tYmxhY2ssLmxpbmstLWhvdmVyLXllbGxvdztcbiAgfVxuICAvL0FQUEVBUklORyBPTiBMRUFERVJCT0FSRFNcbiAgJl9fdXNlci1pbWFnZXtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgaGVpZ2h0OiAyNDBweDtcbiAgICBpbWd7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cbiAgfVxuICAmX19udW1iZXItYm94e1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBmb250LXNpemU6IDUwcHg7XG4gIH1cbiAgJl9fbnVtYmVyLWJveC0tbGVhZHN7XG4gICAgICBmb250LXNpemU6IDUwcHg7XG4gICAgICB3aWR0aDogNDAwcHg7XG4gICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIH1cblxuICAvL0JVTExFVFMgT04gQ09VUlNFUyBBVkFJTEFCTEUgUEFHRVxuICAmX19idWxsZXR7XG4gICAgJi0tc2VtaXZpc2libGV7IG9wYWNpdHk6IDAuNTsgfVxuICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIC5ob3Jpem9udGFsLXJ1bGUtYnVsbGV0e1xuICAgICAgaGVpZ2h0OiAxMXJlbTtcbiAgICAgIHRvcDogLTIwJTtcbiAgICAgIHdpZHRoOiAycHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiA1MHB4O1xuICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCBsaWdodGdyZXk7XG4gICAgICByaWdodDogMDtcbiAgICAgIHotaW5kZXg6IDA7XG4gICAgICAmLS1maXJzdHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgIH1cbiAgICAgICYtLWxhc3R7XG4gICAgICAgIHRvcDogaW5pdGlhbDtcbiAgICAgICAgYm90dG9tOiA1MCU7XG4gICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgIH1cbiAgICAgICYtLW5vbmV7ZGlzcGxheTogbm9uZTt9XG4gICAgfVxuICB9XG4gICZfX2ljb24tYm94e1xuICAgIGltZ3t6LWluZGV4OiAyO31cbiAgICB3aWR0aDogMTAwcHg7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAudGlja3tmb250LXNpemU6IDUwcHg7fVxuICB9XG4gICZfX2xlZnR7XG4gICAgei1pbmRleDogMTA7XG4gICAgc3Zne1xuICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gICAgJi0tbG9ja2Vke1xuICAgICAgLmNvdXJzZS1saW5rX19pY29uLWJveHtiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JleTt9XG4gICAgfVxuICAgICYtLXVubG9ja2Vke1xuICAgICAgLmNvdXJzZS1saW5rX19pY29uLWJveHtiYWNrZ3JvdW5kOiAjZmVmOWY2O31cbiAgICB9XG4gIH1cblxuICAmX19yaWdodHtcbiAgICB6LWluZGV4OiAxMDtcbiAgICAmID4gZGl2IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIH1cbiAgICAmID4gZGl2Omxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuICAmLS1hY3RpdmUgYXtjb2xvcjogd2hpdGUhaW1wb3J0YW50O31cbiAgJl9fbGlua3tcbiAgICAvL2NvbG9yOiAkY29sb3ItYmxhY2s7XG4gICAgbWFyZ2luOiAwIDFyZW07XG4gICAgJiA+IHNwYW4sICYgPiBkaXYge1xuICAgICAgLy9tYXJnaW46IDAuMnJlbSAwO1xuICAgIH1cbiAgfVxuICAvL2ljb24gb2YgdGljayBvciBjcm9zc1xuICAmX19jb21wbGV0ZWR7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgaW1ne1xuICAgICAgd2lkdGg6IDJyZW07XG4gICAgICBoZWlnaHQ6IDJyZW07XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWVkaWEgKG1heC13aWR0aDogNzByZW0pIHtcblxuICAuY291cnNlLWxpbmt7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogNXJlbTtcblxuICAgICYtLWxpZ2h0LWdyZXl7YmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzt9XG4gICAgJi0tZHJvcGRvd257bWFyZ2luOiAxcmVtIDA7fVxuXG4gICAgJi13cmFwcGVye3Bvc2l0aW9uOiByZWxhdGl2ZTtwYWRkaW5nOiAwLjVyZW0gMDt9XG5cbiAgICAmLS1kYXJrLWJsdWUtdGl0bGV7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDIsNTIsNjEpO1xuICAgICAgLmNvdXJzZS1saW5rX19sZWZ0IC5jb3Vyc2UtbGlua19faWNvbi1ib3h7ZGlzcGxheTogbm9uZTt9XG4gICAgfVxuXG5cbiAgICAmX191c2VyLWltYWdle1xuICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgaGVpZ2h0OiAxNTBweDtcbiAgICB9XG4gICAgJl9fbnVtYmVyLWJveHt3aWR0aDogYXV0bzt9XG5cbiAgICAmX19udW1iZXItYm94LS1sZWFkc3tcbiAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgIHdpZHRoOiAzMDBweDtcbiAgICB9XG5cblxuXG4gICAgJl9fYnVsbGV0e1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIC5ob3Jpem9udGFsLXJ1bGUtYnVsbGV0e2hlaWdodDogNXJlbTtsZWZ0OiAxN3B4OyYtLWxhc3QsJi0tZmlyc3R7aGVpZ2h0OiAyLjVyZW0haW1wb3J0YW50O319XG4gICAgfVxuXG4gICAgJl9faWNvbi1ib3h7XG4gICAgICBpbWd7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICB3aWR0aDogNTBweDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgLnRpY2t7Zm9udC1zaXplOiAyNXB4O31cblxuICAgIH1cblxuXG4gICAgJl9fbGVmdHtcbiAgICAgIHN2Z3tcbiAgICAgICAgd2lkdGg6IDM1cHg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cblxuICAgICAgLmNvdXJzZS1saW5rX19pY29uLWJveHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogNTAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgIH1cbiAgICAgICYtLWxlYWRlcmJvYXJkc3t9XG5cbiAgICAgICYtLWxvY2tlZHtcbiAgICAgICAgLmNvdXJzZS1saW5rX19pY29uLWJveHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JleTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi0tdW5sb2NrZWR7XG4gICAgICAgIC5jb3Vyc2UtbGlua19faWNvbi1ib3h7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2ZlZjlmNjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgJl9fcmlnaHR7fVxuICAgIC5saW5rLXN0YXR1cyB7XG5cbiAgICAgICYgPiBkaXY6bnRoLWxhc3QtY2hpbGQoMil7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNjBweDtcbiAgICAgIH1cbiAgICAgICYgPiBkaXY6bGFzdC1jaGlsZHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC5xdWVzdC1wb2ludHN7XG4gICAgICAudGV4dC0tbWxhcmdlLC50ZXh0LS1sYXJnZSB7Zm9udC1zaXplOiAxcmVtO31cbiAgICB9XG5cblxuICAgICZfX2xpbmt7XG4gICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgLnRleHQtLWxhcmdle1xuICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb21wbGV0ZWR7fVxuXG4gIH1cbn1cblxuXG5cblxuXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0MnJlbSkge1xuXG4gIC5jb3Vyc2UtbGlua3tcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4taGVpZ2h0OiA1cmVtO1xuXG4gICAgJi0tbGlnaHQtZ3JleXtiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O31cbiAgICAmLS1kcm9wZG93bnttYXJnaW46IDFyZW0gMDt9XG5cbiAgICAmLXdyYXBwZXJ7cG9zaXRpb246IHJlbGF0aXZlO3BhZGRpbmc6IDAuNXJlbSAwO31cblxuICAgICYtLWRhcmstYmx1ZS10aXRsZXtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig0Miw1Miw2MSk7XG4gICAgICAuY291cnNlLWxpbmtfX2xlZnQgLmNvdXJzZS1saW5rX19pY29uLWJveHtkaXNwbGF5OiBub25lO31cbiAgICB9XG5cblxuICAgICZfX3VzZXItaW1hZ2V7XG4gICAgICB3aWR0aDogMTUwcHg7XG4gICAgICBoZWlnaHQ6IDE1MHB4O1xuICAgIH1cbiAgICAmX19udW1iZXItYm94e3dpZHRoOiBhdXRvO31cblxuICAgICZfX251bWJlci1ib3gtLWxlYWRze1xuICAgICAgZm9udC1zaXplOiAyNXB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG5cblxuICAgICZfX2J1bGxldHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAuaG9yaXpvbnRhbC1ydWxlLWJ1bGxldHtoZWlnaHQ6IDVyZW07bGVmdDogMTdweDsmLS1sYXN0LCYtLWZpcnN0e2hlaWdodDogMi41cmVtIWltcG9ydGFudDt9fVxuICAgIH1cblxuICAgICZfX2ljb24tYm94e1xuICAgICAgaW1ne1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIC50aWNre2ZvbnQtc2l6ZTogMjVweDt9XG5cbiAgICB9XG5cblxuICAgICZfX2xlZnR7XG4gICAgICBzdmd7XG5cbiAgICAgICAgd2lkdGg6IDM1cHg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cblxuICAgICAgLmNvdXJzZS1saW5rX19pY29uLWJveHtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JleTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogNTAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgIH1cbiAgICAgICYtLWxlYWRlcmJvYXJkc3tmbGV4LWRpcmVjdGlvbjogY29sdW1uIWltcG9ydGFudDt3aWR0aDogNTAlOy50ZXh0LS1sYXJnZXtmb250LXNpemU6IDFyZW0haW1wb3J0YW50O319XG4gICAgICAmLS1sb2NrZWR7XG4gICAgICAgIC5jb3Vyc2UtbGlua19faWNvbi1ib3h7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyZXk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYtLXVubG9ja2Vke1xuICAgICAgICAuY291cnNlLWxpbmtfX2ljb24tYm94e1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmZWY5ZjY7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICAgICZfX3JpZ2h0e1xuXG5cbiAgICB9XG4gICAgLmxpbmstc3RhdHVzIHtcblxuICAgICAgJiA+IGRpdjpudGgtbGFzdC1jaGlsZCgyKXtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2MHB4O1xuICAgICAgfVxuICAgICAgJiA+IGRpdjpsYXN0LWNoaWxke1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLnF1ZXN0LXBvaW50c3tcbiAgICAgIC50ZXh0LS1tbGFyZ2UsLnRleHQtLWxhcmdlIHtmb250LXNpemU6IDFyZW07fVxuICAgIH1cblxuXG4gICAgJl9fbGlua3tcbiAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAudGV4dC0tbGFyZ2V7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbXBsZXRlZHt9XG5cbiAgfVxufVxuXG5cbi5jb2ZmZWVib3h7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBib3gtc2hhZG93OiAkc2hhZG93LW1hdGVyaWFsLTE7XG5cbiAgJi0tdmVydGljYWx7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0KG1lZGl1bSl7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICYgPiAqOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZmxleDogMSAxIDEwMCU7XG4gICAgICB9XG4gICAgICAmID4gKjpudGgtY2hpbGQoMikge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXJnaW46IGluaXRpYWwhaW1wb3J0YW50O1xuICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgICB9XG4gICAgICAmID4gKjpudGgtY2hpbGQoMykge1xuICAgICAgICBtYXJnaW46IGluaXRpYWwhaW1wb3J0YW50O1xuICAgICAgICBmbGV4LWJhc2lzOiA0MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi0tdmVydGljYWwgJl9fYm9keXtcblxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG5cbiAgJi0tdmVydGljYWwgJl9fZm9vdGVye1xuICAgIHBhZGRpbmctbGVmdDogMi44cmVtO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2ZlYzUyNDtcbiAgICBtYXJnaW46IDEuOHJlbSAyLjVyZW07XG4gICAgbWluLXdpZHRoOiA3MnB4O1xuICB9XG5cbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuICAmOmhvdmVyICZfX2ltYWdlIGltZ3tcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cbiAgJl9faW1hZ2Uge1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgQGluY2x1ZGUgbWFrZS1zcXVhcmUoNzJweCk7XG4gICAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQobWVkaXVtKXtcbiAgICAgIEBpbmNsdWRlIG1ha2Utc3F1YXJlKDQ4cHgpO1xuICAgIH1cbiAgICBpbWd7XG4gICAgICBAaW5jbHVkZSBtYWtlLXNxdWFyZSgxMDAlKTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuNHMgZWFzZS1vdXQ7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG4gIH1cblxuICAmX19ib2R5e1xuICAgIHBhZGRpbmc6IDJyZW0gMXJlbTtcbiAgfVxuXG4gICZfX3RpdGxle1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tbGFyZ2U7XG4gICAgY29sb3I6ICRjb2xvci1tYWluLXNlbWktZGFyay1ibHVlO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmxhY2s7XG4gIH1cblxuICAmX19zdWJ0aXRsZXtcbiAgICBjb2xvcjogbGlnaHRncmV5O1xuICB9XG5cbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgJl9faGVhZGVye1xuICAgIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblxuICB9XG5cbiAgJi0tdmVydGljYWwgJl9faGVhZGVye1xuICAgIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0KG1lZGl1bSl7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYS1yZXNwb25zaXZlLWxheW91dChtZWRpdW0pIHtcbiAgICAmX19ib2R5ID4gJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cbiAgICAmX19ib2R5ID4gJl9fc3VidGl0bGUge1xuICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgIH1cbiAgfVxuXG4gICZfX2hlYWRlciAmX190aXRsZXtcbiAgICBAaW5jbHVkZSBtZWRpYS1yZXNwb25zaXZlLWxheW91dChtZWRpdW0pIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXhsYXJnZTtcbiAgICBjb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICB9XG5cbiAgJl9faGVhZGVyICZfX3N1YnRpdGxle1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbGlnaHQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1sYXJnZTtcbiAgICBjb2xvcjogJGNvbG9yLW1haW4tc2VtaS1kYXJrLWJsdWU7XG4gIH1cblxufVxuIiwiLmR1cmF0aW9uLWRhdGV7XG4gICYgPiBkaXZ7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICBzcGFue21hcmdpbi1sZWZ0OiAwLjVyZW07fVxuICB9XG59IiwiLnJlZmVyZW5jZXtcblxuXG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xuICBwYWRkaW5nLXRvcDogMXJlbSA7XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtIDtcblxuICAmX19yZWZlcmVuY2VfX2luZm97XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn0iLCIuZnJvbnQtcGFnZS10ZWFzZXJ7XG5cblxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICAmX19jb250ZW50c3tcbiAgICBoMnttYXJnaW46MDtwYWRkaW5nOiAwLjNlbSAwO31cbiAgICBwYWRkaW5nOiAwIDNyZW07XG4gIH1cblxuICAmLS13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTt9XG4gICYtLWRhcmt7YmFja2dyb3VuZC1jb2xvcjogIzJhMzQzZDt9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0NXJlbSkge1xuICAuZnJvbnQtcGFnZS10ZWFzZXJ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxufVxuIiwiIiwiLmxlYWRlcmJvYXJkLXRvcC1iYXJpc3Rhe1xuXG4gICYtbGVmdHtmbG9hdDogbGVmdDt9XG4gICYtcmlnaHR7ZmxvYXQ6IHJpZ2h0O31cbiAgd2lkdGg6IDQwJTtcblxuICAmX19wb3N7XG5cbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiA2cmVtO1xuICAgICYgPiBkaXY6Zmlyc3QtY2hpbGR7XG4gICAgICBmb250LXNpemU6IDUwcHg7XG4gICAgICBwYWRkaW5nOiAycmVtO1xuICAgIH1cbiAgICAmID4gZGl2Omxhc3QtY2hpbGR7bWFyZ2luLXRvcDogMC41cmVtO31cbiAgfVxuICAmX19pbWd7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyNHJlbTtcbiAgICAmIGEgaW1ne3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtvYmplY3QtZml0OiBjb3Zlcjt9XG4gIH1cblxufVxuXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2NXJlbSkge1xuXG4ubGVhZGVyYm9hcmQtdG9wLWJhcmlzdGF7XG5cbiAgJl9fcG9ze3BhZGRpbmc6IDNyZW07fVxuICAmX19pbWd7aGVpZ2h0OiAxNHJlbTt9XG5cbn1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQycmVtKSB7XG4gIC5sZWFkZXJib2FyZC10b3AtYmFyaXN0YSB7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgJi1sZWZ0e2Zsb2F0OiBub25lO31cbiAgICAmLXJpZ2h0e2Zsb2F0OiBub25lO31cbiAgICB3aWR0aDogMTVyZW07XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgICZfX3BvcyB7XG4gICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgJiA+IGRpdjpmaXJzdC1jaGlsZHtwYWRkaW5nOiAwcmVtO31cbiAgICB9XG4gICAgJl9faW1nIHtoZWlnaHQ6IDEwcmVtO31cblxuICB9XG5cbn1cbiIsIlxuLm1lbnUtbG9jYWwtdGFza3MtcHJpbWFyeSwgLm1lbnUtbG9jYWwtdGFza3Mtc2VjIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4ubWVudS1sb2NhbC10YXNrcy1wcmltYXJ5IGxpLCAubWVudS1sb2NhbC10YXNrcy1zZWMgbGkge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLm1lbnUtbG9jYWwtdGFza3MtcHJpbWFyeSBsaSBhLCAubWVudS1sb2NhbC10YXNrcy1zZWMgbGkgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzUzNWU2NztcbiAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQoc21hbGwpe1xuICAgIGZvbnQtc2l6ZTogLjhyZW07XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gIH1cbn1cblxuLm1lbnUtbG9jYWwtdGFza3MtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICNmZWM1MjQ7XG59XG5cbi5tZW51LWxvY2FsLXRhc2tzLXByaW1hcnkgbGkgLmlzLWFjdGl2ZSwgLm1lbnUtbG9jYWwtdGFza3MtcHJpbWFyeSBsaTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4ubWVudS1sb2NhbC10YXNrcy1zZWMgbGkgLmlzLWFjdGl2ZSB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZmVjNTI0O1xufVxuXG4ubG9jYWwtYWN0aW9ucyB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQoc21hbGwpe1xuICAgIGZvbnQtc2l6ZTogLjhyZW07XG4gIH1cbn1cblxuLmxvY2FsLWFjdGlvbnM6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4ubG9jYWwtYWN0aW9ucyBsaSBhIHtcbiAgYm94LXNoYWRvdzogMHB4IDFweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJhY2tncm91bmQ6ICMyYTM0M2Q7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBAaW5jbHVkZSBtZWRpYS1yZXNwb25zaXZlLWxheW91dChzbWFsbCl7XG4gICAgZm9udC1zaXplOiAuOHJlbTtcbiAgfVxufVxuXG4ubG9jYWwtYWN0aW9ucyBsaSBhOmxpbmssIC5sb2NhbC1hY3Rpb25zIGxpIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmxvY2FsLWFjdGlvbnMgbGkgYTpob3ZlciB7XG4gIGNvbG9yOiAjZmVjNTI0O1xufVxuIiwiLmxvZ28ge1xuICAgIGltZ3tcbiAgICBtYXgtd2lkdGg6IDI0MnB4O1xuICB9XG5cbn1cbiIsIi5tZW51IHtcblxuICAubW9iaWxlLWRhdGEge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gICYtLXN0YXRpYyB7XG4gICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB9XG5cbiAgJGFjY291bnQtbWVudS1jb2xvci1iYWNrOiAjZWNlY2VjO1xuXG4gICYtLXVzZXItYWNjb3VudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICRhY2NvdW50LW1lbnUtY29sb3ItYmFjaztcblxuICAgIC8vdG9wIHJpZ2h0IGNvcm5lciBpbiBhY2NvdW50IG1lbnVcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDA7XG5cbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAyMHB4O1xuXG4gICAgICBib3R0b206IDEwMCU7XG4gICAgICBtYXJnaW4tbGVmdDogLTExcHg7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgYm9yZGVyOiAxMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGFjY291bnQtbWVudS1jb2xvci1iYWNrO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHdoaXRlO1xuICAgIH1cblxuICAgIC5hY2NvdW50LW1lbnUtbG9nbyB7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgIH1cblxuICAgIC5saW5rcy1sZWZ0IHtcbiAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgJiA+IC5idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXG4gICRhY2NvdW50LW1lbnUtaWNvbi1tYXJnaW5zOiAuNXJlbTtcblxuICAmX19wcm9maWxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIH1cblxuICAmX19wcm9maWxlLWljb24ge1xuICAgIG1hcmdpbi1yaWdodDogJGFjY291bnQtbWVudS1pY29uLW1hcmdpbnM7XG4gIH1cblxuICAmX19wcm9maWxlLXVzZXItbmFtZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZfX25vdGlmaWNhaW9uLWNvdW50IHtcbiAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBjb2xvcjogJGNvbG9yLXJvYXN0aW5nO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiKFwiO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiKVwiO1xuICAgIH1cbiAgfVxuXG5cbiAgJl9fbGlua3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG5cbiAgICBtaW4td2lkdGg6IDE1cmVtO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICAuaXRlbXMtcGFyZW50IHtcbiAgICAgIC5pdGVtcy1iZWxvdyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICAuaXRlbXMtYmVsb3cge1xuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0LW1mKCRtZWRpYS1icmVha3BvaW50LW1sYXJnZSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAuaXRlbXMtYmVsb3cge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMCUpO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZWM1MjQ7XG4gICAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgICB3aWR0aDogMTZyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA3MnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEycHggY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMzJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICBsaSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItbWFpbi15ZWxsb3c7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gICZfX2Nsb3NlIHtcbiAgfVxuXG4gICYtLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYtLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5tZW51MiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmX19saW5rcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmX19pY29uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgfVxuXG5cbiAgJjpob3ZlciB7XG4gICAgLm1lbnVfX2xpbmtzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG5cbkBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtYnJlYWtwb2ludC1tbGFyZ2UpIHtcbiAgYm9keSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlblxuICB9XG4gIC5oZWFkZXJfX3JpZ2h0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1lbnUge1xuXG5cbiAgICAmX19jbG9zZSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICB6LWluZGV4OiA5OTk5O1xuICAgICAgd2lkdGg6IDUwcHg7XG4gICAgfVxuXG5cbiAgICAmLS12aXNpYmxlIHtcblxuXG4gICAgICAubW9iaWxlLWRhdGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IC0xMDAlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB3aWR0aDogMTAwdnc7XG4gICAgICAvL3JpZ2h0OiAwO1xuICAgICAgLy9ib3R0b206IDA7XG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRyYW5zaXRpb246IDAuNXM7IC8qIDAuNSBzZWNvbmQgdHJhbnNpdGlvbiBlZmZlY3QgdG8gc2xpZGUgaW4gdGhlIHNpZGVuYXYgKi9cbiAgICAgIGJhY2tncm91bmQ6IHVybCgnL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L2Fzc2V0cy9pbWFnZXMvZnJvbnQzLzEtbWluLmpwZycpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcbiAgICAgIHotaW5kZXg6IDk5OTtcblxuXG4gICAgICB1bCB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgIHBhZGRpbmc6IDAuN3JlbSAwO1xuXG4gICAgICAgICAgLmxpbmstLWFjdGl2ZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG5cbiAgICB9XG4gIH1cbn1cblxuXG4iLCIvLyBDb25maWd1cmF0aW9uIHZhcmlhYmxlcy5cbi8vIFR5cGUgbmFtZSA6IGNvbG9yIHNjaGVtZS5cbiRtZXNzYWdlcy10eXBlczogKFxuICBlcnJvciAgIDogcmdiYSgkY29sb3Itcm9hc3RpbmcsIC41NSksXG4gIHdhcm5pbmcgOiAjZmY5OTMzLFxuICBzdGF0dXMgIDogJGNvbG9yLXN1Y2Nlc3MsXG4pICFkZWZhdWx0O1xuXG4lbWVzc2FnZXMge1xuICBjb2xvcjogcmdiYSgxOTAsIDQ3LCAyNSwgMC41NSk7XG4gIHBhZGRpbmc6ICRzcGFjaW5nLS1tZWRpdW07XG4gIEBpbmNsdWRlIG1hcmdpbi10b3AtYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAkc3BhY2luZy0taGFsZjtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgdWwsIGxpIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICAgIG1hcmdpbjogMCAwICRzcGFjaW5nLS1kb3VibGU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG5cbi8vIExvb3AgZG9pbmcgYWxsIHRoZSBkdW1waW5nLlxuQGVhY2ggJHR5cGUsICRjb2xvciBpbiAkbWVzc2FnZXMtdHlwZXMge1xuICAubWVzc2FnZXMtLSN7JHR5cGV9IHtcbiAgICBAaW5jbHVkZSBtZXNzYWdlcygkY29sb3IpO1xuICB9XG59XG4iLCIkYm9vay1idXR0b24tY29sb3I6ICRjb2xvci1tYWluLXllbGxvdztcbiRwYWdlLWRlZmF1bHQtaGVpZ2h0OiAyMDBweDtcbiRwYWdlLWNvbG9yOiB3aGl0ZSFpbXBvcnRhbnQ7XG5cblxuJGJvb2std2lkdGg6IDE2MHB4O1xuJGJvb2staGVpZ2h0OiAkcGFnZS1kZWZhdWx0LWhlaWdodDtcblxuLmJvb2stb3BlbmluZyB7XG5cbiAgLy9jbGVhciBkZWZhdWx0c1xuICB1bCwgbGkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cblxuXG4gIC5idG4ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nOiAwLjFlbSAwLjRlbTtcblxuICAgIG1hcmdpbi10b3A6ICRwYWdlLWRlZmF1bHQtaGVpZ2h0LzI7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRib29rLWJ1dHRvbi1jb2xvcjtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIHRyYW5zaXRpb246IGFsbCAuNHM7XG5cbiAgICBjb2xvcjogJGJvb2stYnV0dG9uLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRib29rLWJ1dHRvbi1jb2xvciwgLjIpO1xuICAgIH1cbiAgfVxuXG5cblxuICAvKiBiYXNpYyBncmlkLCBvbmx5IGZvciB0aGlzIGRlbW8gKi9cblxuICAuYWxpZ24ge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIC8vbWFyZ2luOiA5MHB4IGF1dG8gMjBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDExNzBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmID4gbGkge1xuICAgICAgd2lkdGg6IDUwMHB4O1xuICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46IDMwcHggMjBweCAzMHB4IDMwcHg7XG4gICAgICBwYWRkaW5nOiAwIDAgMCA2MHB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG4gIH1cblxufVxuXG5cbi8qIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5IQVJEQ09WRVJcblRhYmxlIG9mIENvbnRlbnRzXG5cbjEuIGNvbnRhaW5lclxuMi4gYmFja2dyb3VuZCAmIGNvbG9yXG4zLiBvcGVuaW5nIGNvdmVyLCBiYWNrIGNvdmVyIGFuZCBwYWdlc1xuNC4gcG9zaXRpb24sIHRyYW5zZm9ybSB5IHRyYW5zaXRpb25cbjUuIGV2ZW50c1xuNi4gQm9udXNcblx0LSBDb3ZlciBkZXNpZ25cblx0LSBSaWJib25cblx0LSBGaWdjYXB0aW9uXG43LiBtaW5pLXJlc2V0XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vKi9cblxuLypcblx0MS4gY29udGFpbmVyXG4qL1xuXG4uYm9vayB7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJGJvb2std2lkdGg7XG4gIGhlaWdodDogJGJvb2staGVpZ2h0O1xuXG4gIHBlcnNwZWN0aXZlOiAxMDAwcHg7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG5cblxuXG4gIHRyYW5zaXRpb246IGFsbCAuOHM7XG4gICY6aG92ZXJ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7XG4gIH1cbn1cblxuLypcblx0Mi4gYmFja2dyb3VuZCAmIGNvbG9yXG4qL1xuXG4uaGFyZGNvdmVyX2Zyb250e1xuICBsaXtcbiAgICAvKiBIQVJEQ09WRVIgRlJPTlQgKi9cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIC8qIHJldmVyc2UgKi9cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmJlYztcbiAgICB9XG4gIH1cbn1cblxuXG4uaGFyZGNvdmVyX2JhY2t7XG4gIGxpe1xuICAgIC8qIEhBUkRDT1ZFUiBCQUNLICovXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmYmVjO1xuICAgIH1cbiAgICAvKiByZXZlcnNlICovXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZiZWM7XG4gICAgfVxuICB9XG59XG5cblxuLmJvb2tfc3BpbmV7XG4gIGxpe1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgYmFja2dyb3VuZDogI2VlZTtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgfVxuICB9XG59XG5cblxuLyogdGhpY2tuZXNzIG9mIGNvdmVyICovXG4uaGFyZGNvdmVyX2Zyb250IGxpOmZpcnN0LWNoaWxkOmFmdGVyLFxuLmhhcmRjb3Zlcl9mcm9udCBsaTpmaXJzdC1jaGlsZDpiZWZvcmUsXG4uaGFyZGNvdmVyX2Zyb250IGxpOmxhc3QtY2hpbGQ6YWZ0ZXIsXG4uaGFyZGNvdmVyX2Zyb250IGxpOmxhc3QtY2hpbGQ6YmVmb3JlLFxuLmhhcmRjb3Zlcl9iYWNrIGxpOmZpcnN0LWNoaWxkOmFmdGVyLFxuLmhhcmRjb3Zlcl9iYWNrIGxpOmZpcnN0LWNoaWxkOmJlZm9yZSxcbi5oYXJkY292ZXJfYmFjayBsaTpsYXN0LWNoaWxkOmFmdGVyLFxuLmhhcmRjb3Zlcl9iYWNrIGxpOmxhc3QtY2hpbGQ6YmVmb3JlLFxuLmJvb2tfc3BpbmUgbGk6Zmlyc3QtY2hpbGQ6YWZ0ZXIsXG4uYm9va19zcGluZSBsaTpmaXJzdC1jaGlsZDpiZWZvcmUsXG4uYm9va19zcGluZSBsaTpsYXN0LWNoaWxkOmFmdGVyLFxuLmJvb2tfc3BpbmUgbGk6bGFzdC1jaGlsZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjOTk5O1xufVxuXG4vKlxuXHQzLiBvcGVuaW5nIGNvdmVyLCBiYWNrIGNvdmVyIGFuZCBwYWdlc1xuKi9cblxuLmhhcmRjb3Zlcl9mcm9udCB7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgtMzRkZWcpIHRyYW5zbGF0ZVooOHB4KTtcbiAgei1pbmRleDogMTAwO1xufVxuXG4uaGFyZGNvdmVyX2JhY2sge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSgtMTVkZWcpIHRyYW5zbGF0ZVooLThweCk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGVZKC0xNWRlZykgdHJhbnNsYXRlWigtOHB4KTtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKC0xNWRlZykgdHJhbnNsYXRlWigtOHB4KTtcbn1cblxuXG5cblxuXG5cblxuLyogcGFnZSAqL1xuXG4ucGFnZSB7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuXG5cbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogOTglO1xuICB0b3A6IDElO1xuICBsZWZ0OiAzJTtcbiAgei1pbmRleDogMTA7XG5cbiAgJiA+IGxpIHtcblxuXG4gICAgLy9iYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQobGVmdCwgI2UxZGRkOCAwJSwgI2ZmZmJmNiAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAkcGFnZS1jb2xvcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyZXk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMHB4IC0xcHggMnB4IHJnYmEoNTAsIDUwLCA1MCwgMC4xKSwgaW5zZXQgLTFweCAwcHggMXB4IHJnYmEoMTUwLCAxNTAsIDE1MCwgMC4yKTtcbiAgICBib3JkZXItcmFkaXVzOiAwcHggNXB4IDVweCAwcHg7XG5cblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgIEBpbmNsdWRlIGFic29sdXRlLWZ1bGwtd2lkdGgtaGVpZ2h0O1xuXG5cbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG5cblxuXG4gICAgLy9IT1cgRkFTVCBTSE9VTEQgVEhFIEJPT0sgQ0xPU0VcbiAgICAmOm50aC1jaGlsZCgxKSB7dHJhbnNpdGlvbi1kdXJhdGlvbjogMC42czt9XG4gICAgJjpudGgtY2hpbGQoMikge3RyYW5zaXRpb24tZHVyYXRpb246IDAuNnM7fVxuICAgICY6bnRoLWNoaWxkKDMpIHt0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjRzO31cbiAgICAmOm50aC1jaGlsZCg0KSB7dHJhbnNpdGlvbi1kdXJhdGlvbjogMC41czt9XG4gICAgJjpudGgtY2hpbGQoNSkge3RyYW5zaXRpb24tZHVyYXRpb246IDAuNnM7fVxuICB9XG5cblxuXG5cbiAgLy9JTklUSUFMIFJPVEFUSU9OIE9GIFBBR0VTXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggNHtcblxuICAgICYgbGk6bnRoLWNoaWxkKCN7JGkgKyAxfSkge1xuXG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTI4ZGVnIC0gJGkqMmRlZyk7XG5cbiAgICB9XG4gIH1cblxufVxuXG4vKlxuXHQ0LiBwb3NpdGlvbiwgdHJhbnNmb3JtICYgdHJhbnNpdGlvblxuKi9cblxuLmhhcmRjb3Zlcl9mcm9udCxcbi5oYXJkY292ZXJfYmFjayxcbi5ib29rX3NwaW5lLFxuLmhhcmRjb3Zlcl9mcm9udCBsaSxcbi5oYXJkY292ZXJfYmFjayBsaSxcbi5ib29rX3NwaW5lIGxpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG59XG5cbi5oYXJkY292ZXJfZnJvbnQsXG4uaGFyZGNvdmVyX2JhY2sge1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbn1cblxuLmhhcmRjb3Zlcl9mcm9udCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuOHMgZWFzZSwgei1pbmRleCAwLjZzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjhzIGVhc2UsIHotaW5kZXggMC42cztcbiAgdHJhbnNpdGlvbjogYWxsIDAuOHMgZWFzZSwgei1pbmRleCAwLjZzO1xufVxuXG4vKiBIQVJEQ09WRVIgZnJvbnQgKi9cbi5oYXJkY292ZXJfZnJvbnQgbGk6Zmlyc3QtY2hpbGQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigycHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWigycHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMnB4KTtcbn1cblxuLmhhcmRjb3Zlcl9mcm9udCBsaTpsYXN0LWNoaWxkIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKSB0cmFuc2xhdGVaKDJweCk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGVZKDE4MGRlZykgdHJhbnNsYXRlWigycHgpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKSB0cmFuc2xhdGVaKDJweCk7XG59XG5cbi8qIEhBUkRDT1ZFUiBiYWNrICovXG4uaGFyZGNvdmVyX2JhY2sgbGk6Zmlyc3QtY2hpbGQge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigycHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWigycHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMnB4KTtcbn1cblxuLmhhcmRjb3Zlcl9iYWNrIGxpOmxhc3QtY2hpbGQge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMnB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTJweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigtMnB4KTtcbn1cblxuLyogdGhpY2tuZXNzIG9mIGNvdmVyICovXG4uaGFyZGNvdmVyX2Zyb250IGxpOmZpcnN0LWNoaWxkOmFmdGVyLFxuLmhhcmRjb3Zlcl9mcm9udCBsaTpmaXJzdC1jaGlsZDpiZWZvcmUsXG4uaGFyZGNvdmVyX2Zyb250IGxpOmxhc3QtY2hpbGQ6YWZ0ZXIsXG4uaGFyZGNvdmVyX2Zyb250IGxpOmxhc3QtY2hpbGQ6YmVmb3JlLFxuLmhhcmRjb3Zlcl9iYWNrIGxpOmZpcnN0LWNoaWxkOmFmdGVyLFxuLmhhcmRjb3Zlcl9iYWNrIGxpOmZpcnN0LWNoaWxkOmJlZm9yZSxcbi5oYXJkY292ZXJfYmFjayBsaTpsYXN0LWNoaWxkOmFmdGVyLFxuLmhhcmRjb3Zlcl9iYWNrIGxpOmxhc3QtY2hpbGQ6YmVmb3JlLFxuLmJvb2tfc3BpbmUgbGk6Zmlyc3QtY2hpbGQ6YWZ0ZXIsXG4uYm9va19zcGluZSBsaTpmaXJzdC1jaGlsZDpiZWZvcmUsXG4uYm9va19zcGluZSBsaTpsYXN0LWNoaWxkOmFmdGVyLFxuLmJvb2tfc3BpbmUgbGk6bGFzdC1jaGlsZDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cblxuLyogSEFSRENPVkVSIGZyb250ICovXG4uaGFyZGNvdmVyX2Zyb250IGxpOmZpcnN0LWNoaWxkOmFmdGVyLFxuLmhhcmRjb3Zlcl9mcm9udCBsaTpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5oYXJkY292ZXJfZnJvbnQgbGk6Zmlyc3QtY2hpbGQ6YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSg5MGRlZykgdHJhbnNsYXRlWigtMnB4KSB0cmFuc2xhdGVYKDJweCk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGVaKC0ycHgpIHRyYW5zbGF0ZVgoMnB4KTtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGVaKC0ycHgpIHRyYW5zbGF0ZVgoMnB4KTtcbn1cblxuLmhhcmRjb3Zlcl9mcm9udCBsaTpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSg5MGRlZykgdHJhbnNsYXRlWigxNThweCkgdHJhbnNsYXRlWCgycHgpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlWSg5MGRlZykgdHJhbnNsYXRlWigxNThweCkgdHJhbnNsYXRlWCgycHgpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZVooMTU4cHgpIHRyYW5zbGF0ZVgoMnB4KTtcbn1cblxuLmhhcmRjb3Zlcl9mcm9udCBsaTpsYXN0LWNoaWxkOmFmdGVyLFxuLmhhcmRjb3Zlcl9mcm9udCBsaTpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gIHdpZHRoOiA0cHg7XG4gIGhlaWdodDogMTYwcHg7XG59XG5cbi5oYXJkY292ZXJfZnJvbnQgbGk6bGFzdC1jaGlsZDphZnRlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKDkwZGVnKSByb3RhdGVaKDkwZGVnKSB0cmFuc2xhdGVaKDgwcHgpIHRyYW5zbGF0ZVgoLTJweCkgdHJhbnNsYXRlWSgtNzhweCk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGVYKDkwZGVnKSByb3RhdGVaKDkwZGVnKSB0cmFuc2xhdGVaKDgwcHgpIHRyYW5zbGF0ZVgoLTJweCkgdHJhbnNsYXRlWSgtNzhweCk7XG4gIHRyYW5zZm9ybTogcm90YXRlWCg5MGRlZykgcm90YXRlWig5MGRlZykgdHJhbnNsYXRlWig4MHB4KSB0cmFuc2xhdGVYKC0ycHgpIHRyYW5zbGF0ZVkoLTc4cHgpO1xufVxuLmhhcmRjb3Zlcl9mcm9udCBsaTpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMzBweCA1cHggIzMzMztcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoOTBkZWcpIHJvdGF0ZVooOTBkZWcpIHRyYW5zbGF0ZVooLTE0MHB4KSB0cmFuc2xhdGVYKC0ycHgpIHRyYW5zbGF0ZVkoLTc4cHgpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlWCg5MGRlZykgcm90YXRlWig5MGRlZykgdHJhbnNsYXRlWigtMTQwcHgpIHRyYW5zbGF0ZVgoLTJweCkgdHJhbnNsYXRlWSgtNzhweCk7XG4gIHRyYW5zZm9ybTogcm90YXRlWCg5MGRlZykgcm90YXRlWig5MGRlZykgdHJhbnNsYXRlWigtMTQwcHgpIHRyYW5zbGF0ZVgoLTJweCkgdHJhbnNsYXRlWSgtNzhweCk7XG59XG5cbi8qIHRoaWNrbmVzcyBvZiBjb3ZlciAqL1xuXG4uaGFyZGNvdmVyX2JhY2sgbGk6Zmlyc3QtY2hpbGQ6YWZ0ZXIsXG4uaGFyZGNvdmVyX2JhY2sgbGk6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgd2lkdGg6IDRweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uaGFyZGNvdmVyX2JhY2sgbGk6Zmlyc3QtY2hpbGQ6YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSg5MGRlZykgdHJhbnNsYXRlWigtMnB4KSB0cmFuc2xhdGVYKDJweCk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGVaKC0ycHgpIHRyYW5zbGF0ZVgoMnB4KTtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGVaKC0ycHgpIHRyYW5zbGF0ZVgoMnB4KTtcbn1cbi5oYXJkY292ZXJfYmFjayBsaTpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSg5MGRlZykgdHJhbnNsYXRlWigxNThweCkgdHJhbnNsYXRlWCgycHgpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlWSg5MGRlZykgdHJhbnNsYXRlWigxNThweCkgdHJhbnNsYXRlWCgycHgpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZVooMTU4cHgpIHRyYW5zbGF0ZVgoMnB4KTtcbn1cblxuLmhhcmRjb3Zlcl9iYWNrIGxpOmxhc3QtY2hpbGQ6YWZ0ZXIsXG4uaGFyZGNvdmVyX2JhY2sgbGk6bGFzdC1jaGlsZDpiZWZvcmUge1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDE2MHB4O1xufVxuXG4uaGFyZGNvdmVyX2JhY2sgbGk6bGFzdC1jaGlsZDphZnRlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKDkwZGVnKSByb3RhdGVaKDkwZGVnKSB0cmFuc2xhdGVaKDgwcHgpIHRyYW5zbGF0ZVgoMnB4KSB0cmFuc2xhdGVZKC03OHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZVgoOTBkZWcpIHJvdGF0ZVooOTBkZWcpIHRyYW5zbGF0ZVooODBweCkgdHJhbnNsYXRlWCgycHgpIHRyYW5zbGF0ZVkoLTc4cHgpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVgoOTBkZWcpIHJvdGF0ZVooOTBkZWcpIHRyYW5zbGF0ZVooODBweCkgdHJhbnNsYXRlWCgycHgpIHRyYW5zbGF0ZVkoLTc4cHgpO1xufVxuXG4uaGFyZGNvdmVyX2JhY2sgbGk6bGFzdC1jaGlsZDpiZWZvcmUge1xuICBib3gtc2hhZG93OiAxMHB4IC0xcHggODBweCAyMHB4ICM2NjY7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKDkwZGVnKSByb3RhdGVaKDkwZGVnKSB0cmFuc2xhdGVaKC0xNDBweCkgdHJhbnNsYXRlWCgycHgpIHRyYW5zbGF0ZVkoLTc4cHgpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlWCg5MGRlZykgcm90YXRlWig5MGRlZykgdHJhbnNsYXRlWigtMTQwcHgpIHRyYW5zbGF0ZVgoMnB4KSB0cmFuc2xhdGVZKC03OHB4KTtcbiAgdHJhbnNmb3JtOiByb3RhdGVYKDkwZGVnKSByb3RhdGVaKDkwZGVnKSB0cmFuc2xhdGVaKC0xNDBweCkgdHJhbnNsYXRlWCgycHgpIHRyYW5zbGF0ZVkoLTc4cHgpO1xufVxuXG4vKiBCT09LIFNQSU5FICovXG4uYm9va19zcGluZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKDYwZGVnKSB0cmFuc2xhdGVYKC01cHgpIHRyYW5zbGF0ZVooLTEycHgpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlWSg2MGRlZykgdHJhbnNsYXRlWCgtNXB4KSB0cmFuc2xhdGVaKC0xMnB4KTtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKDYwZGVnKSB0cmFuc2xhdGVYKC01cHgpIHRyYW5zbGF0ZVooLTEycHgpO1xuICB3aWR0aDogMTZweDtcbiAgei1pbmRleDogMDtcbn1cblxuLmJvb2tfc3BpbmUgbGk6Zmlyc3QtY2hpbGQge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigycHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWigycHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMnB4KTtcbn1cblxuLmJvb2tfc3BpbmUgbGk6bGFzdC1jaGlsZCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0ycHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMnB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0ycHgpO1xufVxuXG4vKiB0aGlja25lc3Mgb2YgYm9vayBzcGluZSAqL1xuLmJvb2tfc3BpbmUgbGk6Zmlyc3QtY2hpbGQ6YWZ0ZXIsXG4uYm9va19zcGluZSBsaTpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5ib29rX3NwaW5lIGxpOmZpcnN0LWNoaWxkOmFmdGVyIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZVooLTJweCkgdHJhbnNsYXRlWCgycHgpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlWSg5MGRlZykgdHJhbnNsYXRlWigtMnB4KSB0cmFuc2xhdGVYKDJweCk7XG4gIHRyYW5zZm9ybTogcm90YXRlWSg5MGRlZykgdHJhbnNsYXRlWigtMnB4KSB0cmFuc2xhdGVYKDJweCk7XG59XG5cbi5ib29rX3NwaW5lIGxpOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKC05MGRlZykgdHJhbnNsYXRlWigtMTJweCk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGVZKC05MGRlZykgdHJhbnNsYXRlWigtMTJweCk7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgtOTBkZWcpIHRyYW5zbGF0ZVooLTEycHgpO1xufVxuXG4uYm9va19zcGluZSBsaTpsYXN0LWNoaWxkOmFmdGVyLFxuLmJvb2tfc3BpbmUgbGk6bGFzdC1jaGlsZDpiZWZvcmUge1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG5cbi5ib29rX3NwaW5lIGxpOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCg5MGRlZykgcm90YXRlWig5MGRlZykgdHJhbnNsYXRlWig4cHgpIHRyYW5zbGF0ZVgoMnB4KSB0cmFuc2xhdGVZKC02cHgpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlWCg5MGRlZykgcm90YXRlWig5MGRlZykgdHJhbnNsYXRlWig4cHgpIHRyYW5zbGF0ZVgoMnB4KSB0cmFuc2xhdGVZKC02cHgpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVgoOTBkZWcpIHJvdGF0ZVooOTBkZWcpIHRyYW5zbGF0ZVooOHB4KSB0cmFuc2xhdGVYKDJweCkgdHJhbnNsYXRlWSgtNnB4KTtcbn1cblxuLmJvb2tfc3BpbmUgbGk6bGFzdC1jaGlsZDpiZWZvcmUge1xuICBib3gtc2hhZG93OiA1cHggLTFweCAxMDBweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoOTBkZWcpIHJvdGF0ZVooOTBkZWcpIHRyYW5zbGF0ZVooLTIxMHB4KSB0cmFuc2xhdGVYKDJweCkgdHJhbnNsYXRlWSgtNnB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZVgoOTBkZWcpIHJvdGF0ZVooOTBkZWcpIHRyYW5zbGF0ZVooLTIxMHB4KSB0cmFuc2xhdGVYKDJweCkgdHJhbnNsYXRlWSgtNnB4KTtcbiAgdHJhbnNmb3JtOiByb3RhdGVYKDkwZGVnKSByb3RhdGVaKDkwZGVnKSB0cmFuc2xhdGVaKC0yMTBweCkgdHJhbnNsYXRlWCgycHgpIHRyYW5zbGF0ZVkoLTZweCk7XG59XG5cblxuLypcblx0NS4gZXZlbnRzXG4qL1xuXG4uYm9vazpob3ZlciA+IC5oYXJkY292ZXJfZnJvbnQge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSgtMTQ1ZGVnKSB0cmFuc2xhdGVaKDApO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlWSgtMTQ1ZGVnKSB0cmFuc2xhdGVaKDApO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE0NWRlZykgdHJhbnNsYXRlWigwKTtcbiAgei1pbmRleDogMDtcbn1cblxuLmJvb2s6aG92ZXIgPiAucGFnZSBsaTpudGgtY2hpbGQoMSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSgtMzBkZWcpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlWSgtMzBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTMwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAxLjVzO1xuICAtbW96LXRyYW5zaXRpb24tZHVyYXRpb246IDEuNXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDEuNXM7XG59XG5cbi5ib29rOmhvdmVyID4gLnBhZ2UgbGk6bnRoLWNoaWxkKDIpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoLTM1ZGVnKTtcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZVkoLTM1ZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKC0zNWRlZyk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMS44cztcbiAgLW1vei10cmFuc2l0aW9uLWR1cmF0aW9uOiAxLjhzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxLjhzO1xufVxuXG4uYm9vazpob3ZlciA+IC5wYWdlIGxpOm50aC1jaGlsZCgzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKC0xMThkZWcpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlWSgtMTE4ZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGVZKC0xMThkZWcpO1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDEuNnM7XG4gIC1tb3otdHJhbnNpdGlvbi1kdXJhdGlvbjogMS42cztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMS42cztcbn1cblxuLmJvb2s6aG92ZXIgPiAucGFnZSBsaTpudGgtY2hpbGQoNCkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSgtMTMwZGVnKTtcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZVkoLTEzMGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgtMTMwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAxLjRzO1xuICAtbW96LXRyYW5zaXRpb24tZHVyYXRpb246IDEuNHM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDEuNHM7XG59XG5cbi5ib29rOmhvdmVyID4gLnBhZ2UgbGk6bnRoLWNoaWxkKDUpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoLTE0MGRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGVZKC0xNDBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE0MGRlZyk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMS4ycztcbiAgLW1vei10cmFuc2l0aW9uLWR1cmF0aW9uOiAxLjJzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxLjJzO1xufVxuXG4vKlxuXHQ2LiBCb251c1xuKi9cblxuLyogY292ZXIgQ1NTICovXG5cbi5jb3ZlckRlc2lnbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLmNvdmVyRGVzaWduOjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCAtMTM1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpIDAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQoIC0xMzVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSkgMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoIC0xMzVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSkgMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbn1cblxuLmNvdmVyRGVzaWduIGgxIHtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMi4yZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiA1NCUgMCAwIDA7XG4gIHRleHQtc2hhZG93OiAtMXB4IC0xcHggMCByZ2JhKDAsMCwwLDAuMSk7XG59XG5cbi5jb3ZlckRlc2lnbiBwIHtcbiAgY29sb3I6ICNmOGY4Zjg7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAtMXB4IC0xcHggMCByZ2JhKDAsMCwwLDAuMSk7XG59XG5cbi8vLnllbGxvdyB7XG4vLyAgYmFja2dyb3VuZC1jb2xvcjogI2YxYzQwZjtcbi8vICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmMWM0MGYgNTglLCAjZTdiYTA3IDAlKTtcbi8vICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNmMWM0MGYgNTglLCAjZTdiYTA3IDAlKTtcbi8vICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG9wLCAjZjFjNDBmIDU4JSwgI2U3YmEwNyAwJSk7XG4vL31cbi8vXG4vLy5ibHVlIHtcbi8vICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiO1xuLy8gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIzM0OThkYiA1OCUsICMyYTkwZDQgMCUpO1xuLy8gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzM0OThkYiA1OCUsICMyYTkwZDQgMCUpO1xuLy8gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0b3AsICMzNDk4ZGIgNTglLCAjMmE5MGQ0IDAlKTtcbi8vfVxuLy9cbi8vLmdyZXkge1xuLy8gIGJhY2tncm91bmQtY29sb3I6ICNmOGU5ZDE7XG4vLyAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZjhlOWQxIDU4JSwgI2U3ZDViNyAwJSk7XG4vLyAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZjhlOWQxIDU4JSwgI2U3ZDViNyAwJSk7XG4vLyAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvcCwgI2Y4ZTlkMSA1OCUsICNlN2Q1YjcgMCUpO1xuLy99XG5cbi8qIEJhc2ljIHJpYmJvbiAqL1xuXG4ucmliYm9uIHtcbiAgYmFja2dyb3VuZDogI2ZlYzUyNDtcbiAgY29sb3I6ICNmZmY7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuN2VtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTFweDtcbiAgcmlnaHQ6IDFweDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE1ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiByb3RhdGVaKDQ1ZGVnKSB0cmFuc2xhdGVaKDFweCk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogMTA7XG5cbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlcntcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMjBweDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMjBweCBzb2xpZCAjZmVjNTI0O1xuICAgIGJvcmRlci10b3A6IDIwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAmOjpiZWZvcmV7XG4gICAgbGVmdDogLTIwcHg7XG4gICAgYm9yZGVyLWxlZnQ6IDIwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmOjphZnRlcntcbiAgICByaWdodDogLTIwcHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB9XG59XG5cblxuLyogZmlnY2FwdGlvbiAqL1xuXG5maWdjYXB0aW9uIHtcbiAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDE2MHB4O1xuICB3aWR0aDogMzEwcHg7XG59XG5cbmZpZ2NhcHRpb24gaDEge1xuICBtYXJnaW46IDA7XG59XG5cbmZpZ2NhcHRpb24gc3BhbiB7XG4gIGNvbG9yOiAjMTZhMDg1O1xuICBwYWRkaW5nOiAwLjZlbSAwIDFlbSAwO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuZmlnY2FwdGlvbiBwIHtcbiAgY29sb3I6ICM2MzcwN2Q7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi8qIE1lZGlhIFF1ZXJpZXMgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MDBweCkge1xuXG5cbiAgLmJvb2stb3BlbmluZyB7XG5cblxuICAgICY6aG92ZXIge1xuICAgICAgLy9wYWRkaW5nLWxlZnQ6IDE0MHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICYgLmFsaWduID4gbGkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiBpbml0aWFsO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZzogNTBweCAwcHg7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gIH1cblxuXG4gICAgLmFsaWduID4gbGkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDQ0MHB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIC8vbWFyZ2luOiAwIDAgMzBweCAwO1xuICB9XG5cbiAgLmJvb2sge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG5cbiAgZmlnY2FwdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAzMjBweDtcbiAgICB0b3A6IDI1MHB4O1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBsZWZ0OiAtODBweDtcbiAgICBmb250LXNpemU6IDkwJTtcbiAgfVxufVxuIiwiLy8ucGFnZS10aXRsZSB7XG4vLyAgQGV4dGVuZCAlZm9udC1zaXplLXh4bGFyZ2U7XG4vLyAgZm9udC13ZWlnaHQ6ICRmdy0tYmFzZTtcbi8vICBtYXJnaW46IDAgMCAkc3BhY2luZy0taGFsZiAqIDI7XG4vL31cbiIsIiRncmV5OiAjRTJFMkUyO1xuXG4ucHJvZ3Jlc3MtY29tcCB7XG4gIHdpZHRoOiA1MDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3ctZGFyay1zbWFsbDtcblxuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1hcmdpbjogMnJlbSAwIDVyZW0gMDtcbiAgcGFkZGluZzogMjVweDtcblxuICAmX190aXRsZXtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJsYWNrO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tbGFyZ2VcbiAgfVxuXG4gICZfX2xhYmVse1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZWRpdW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZzogMnJlbSAwIC40cmVtIDA7XG4gIH1cblxuICAmX19pdGVte31cbiAgJl9fbGFiZWwtdGl0bGUge31cbiAgJl9fbGFiZWwtdmFsdWUge31cbn1cblxuXG5cblxuLnByb2dyZXNzLWJhcntcblxuICAmX19zbGlkZXIge1xuICAgIGhlaWdodDogNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19wcm9ncmVzcyB7IC8vcHJvZ3Jlc3MgaW5zaWRlIHNsaWRlclxuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmluZGVyeTtcbiAgICBhbmltYXRpb246IHNsaWRlIDEuNXMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEwMCB7XG4gICAgJi0tI3skaX0gJl9fcHJvZ3Jlc3MgIHsgd2lkdGg6ICRpKjElOyB9XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCwxKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLDEpO1xuICB9XG59XG5cbi5oaWRle1xuICAmLS1zbXtcbiAgICBAaW5jbHVkZSBtZWRpYS1yZXNwb25zaXZlLWxheW91dChzbWFsbCl7ZGlzcGxheTogbm9uZTt9XG4gIH1cbn0iLCIvLy5yZWxhdGVkLWNvdXJzZS1pdGVte1xuLy8gIGRpc3BsYXk6IGZsZXg7XG4vLyAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbi8vICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbi8vICBtYXgtd2lkdGg6IDMwcmVtO1xuLy9cbi8vICBtYXJnaW46IDFyZW0gYXV0bztcbi8vXG4vLyAgJl9faW1hZ2V7XG4vL1xuLy8gICAgcG9zaXRpb246cmVsYXRpdmU7XG4vLyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLyAgICBtYXJnaW46IGF1dG87XG4vLyAgICAgaW1ne1xuLy8gICAgICB3aWR0aDogMTAwJTtcbi8vICAgICAgaGVpZ2h0OmF1dG87XG4vLyAgICB9XG4vLyAgfVxuLy8gICZfX2Zvb3Rlcntcbi8vXG4vLyAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4vL1xuLy8gICAgd2lkdGg6IDIwcmVtO1xuLy8gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4vL1xuLy8gIH1cbi8vXG4vL30iLCIudGFne1xuICBjb2xvcjogJGNvbG9yLW1haW4tYmxhY2s7XG4gIGJhY2tncm91bmQ6ICRjb2xvci1tYWluLXllbGxvdztcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1ibGFjaztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kOiAjZmVjNTI0O1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMzBweDtcbn0iLCJcbi5pbWFnZS10ZXh0LWxpbmstYmxvY2t7XG4gIFxuICBoZWlnaHQ6IDEwMCU7XG5cbiAgJi0tbGFyZ2V7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC5pbWFnZS10ZXh0LWxpbmstYmxvY2tfX3RleHR7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgd2lkdGg6IDIwcmVtO1xuICAgIH1cblxuICB9XG4gICYtLXNtYWxsIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC5pbWFnZS10ZXh0LWxpbmstYmxvY2tfX3RleHR7XG4gICAgICBoZWlnaHQ6IGluaXRpYWw7XG4gICAgfVxuXG4gIH1cbiAgJi0tcmV2ZXJzZWR7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG5cbiAgJi0tdmVydGljYWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiAxMDAlO1xuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAuaW1hZ2UtdGV4dC1saW5rLWJsb2NrX190ZXh0e1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICB9XG5cbiAgfVxufVxuXG5cbi5pbWFnZS10ZXh0LWxpbmstYmxvY2t7XG5cbiAgJl9fdGV4dHtcblxuICAgICY6aG92ZXJ7XG5cbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1pbi13aWR0aDogNTAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICB9XG5cbiAgJl9faW1hZ2Uge1xuICAgIG1pbi13aWR0aDogNTAlO1xuICAgIGhlaWdodDogYXV0bztcblxuICAgIGltZ3tcblxuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIC8vaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG4udGV4dC1ibG9ja3tcbiAgaGVpZ2h0OiAxMDAlO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgZGlzcGxheTogZmxleDtcblxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICZfX2hlYWRlcntcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cblxuICAmX19jb250ZW50e1xuXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICB9XG4gICZfX2RlbGltZXRlcntcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gIH1cblxufVxuXG4iLCJAbWl4aW4gcmV2ZXJzZS1ob3ZlcigkY29sb3ItMSwgJGNvbG9yLTIpe1xuICBjb2xvcjogJGNvbG9yLTE7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0yO1xuICAmOmhvdmVye1xuICAgIGNvbG9yOiAkY29sb3ItMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItMTtcbiAgfVxufVxuXG5cbiR0dC1jb21wLXRpdGxlLXNpemU6ICRmb250LXNpemUtbWxhcmdlO1xuJHR0LWNvbXAtdGl0bGUtY29sb3I6ICRjb2xvci1tYWluLXllbGxvdztcblxuJHR0LWNvbXAtdGV4dC1zaXplOiAkZm9udC1zaXplLW1lZGl1bTtcbiR0dC1jb21wLXRleHQtY29sb3I6IGxpZ2h0Z3JleTtcblxuJHR0LWNvbXAtaWNvbi1jb2xvci0xOiAkY29sb3ItZ3JpbmRlcnk7XG4kdHQtY29tcC1pY29uLWNvbG9yLTI6ICRjb2xvci1tYWluLXllbGxvdztcblxuXG5cblxuLnR0LWNvbXBvbmVudHtcblxuICAvLy0tLS0tLS0tLS0tLS0tLS0tTU9ESUZJRVJTLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLy0tLS0tLS0tLS0tLS0tLS1TSVpJTkctLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJi0tdGV4dC1tZWRpdW0gJl9fdGl0bGUsXG4gICYtLXRleHQtbWVkaXVtICZfX3RpdGxlLWljb24sXG4gICYtLXRleHQtbWVkaXVtICZfX3RleHR7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1lZGl1bTtcbiAgfVxuXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICYtLWljb25zLXRyYW5zcGFyZW50e1xuICB9XG4gICYtLWljb25zLWNvbG9yZWR7XG4gIH1cbiAgLy8tLS0tLS0tLS0tLS0tLS0tLUFMSUdOTUVOVC0tLS0tLS0tLS0tLS0tLS0tLVxuICAmLS1yaWdodHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICAmLS1yaWdodCAmX190aXRsZXtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIH1cbiAgJi0tcmlnaHQgJl9fdGl0bGUtaWNvbntcbiAgICBtYXJnaW4tcmlnaHQ6IDByZW07XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gIH1cblxuICAmLS1jZW50ZXJ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gICYtLWNlbnRlciAmX190aXRsZXtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICAmLS1jZW50ZXIgJl9fdGl0bGUtaWNvbntcbiAgfVxuXG5cbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS1CT1ggQ09NUE9ORU5ULS0tLS0tLS0tLS0tLS1cbiAgJi0tYm94e1xuICAgIHBhZGRpbmc6IDUlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDEuNXJlbSAycmVtIHJnYmEoJGNvbG9yLWJsYWNrLCAuMDgpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQobWxhcmdlKXtcbiAgICAgIHBhZGRpbmc6IDMlO1xuICAgIH1cbiAgfVxuICAmLS1ib3ggJl9fdGl0bGV7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLS1ib3ggJl9fdGl0bGUtdGV4dHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1ibGFjaztcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICB9XG5cblxuICAmLS10aGVtZS15ZWxsb3d7XG4gICAgc3Ryb25ne2NvbG9yOiAkY29sb3ItbWFpbi15ZWxsb3c7fVxuICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1tYWluLXllbGxvdztcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGU7XG4gIH1cbiAgJi0tdGhlbWUteWVsbG93ICZfX3RpdGxlLXRleHQsXG4gICYtLXRoZW1lLXllbGxvdyAmX190ZXh0IHtcbiAgICBjb2xvcjogJGNvbG9yLW1haW4tYmxhY2s7XG4gIH1cblxuXG5cbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS1ERUZBVUxUIFNUWUxFUy0tLS0tLS0tLS0tLS1cblxuICAmX190aXRsZXtcbiAgICBtYXJnaW4tYm90dG9tOiAuNHJlbTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gICZfX3RpdGxlLWljb257XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbWxhcmdlO1xuXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHdpZHRoOiAyLjVyZW07XG4gICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdy1zZW1pLWludmluc2libGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgLy9AaW5jbHVkZSByZXZlcnNlLWhvdmVyKCR0dC1jb21wLWljb24tY29sb3ItMSwkdHQtY29tcC1pY29uLWNvbG9yLTIpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQoJG1lZGlhLWJyZWFrcG9pbnQtbWVkaXVtKXtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG4gIH1cbiAgJl9fdGl0bGUtdGV4dCxcbiAgJl9fdGl0bGUtdGV4dCBhOmxpbmssXG4gICZfX3RpdGxlLXRleHQgYTp2aXNpdGVkIHtcbiAgICAvL2xpbmUtaGVpZ2h0OiAxLjc7XG5cblxuICAgIGZvbnQtc2l6ZTogJHR0LWNvbXAtdGl0bGUtc2l6ZTtcbiAgICBjb2xvcjogJHR0LWNvbXAtdGl0bGUtY29sb3I7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgfVxuXG4gICZfX3RleHR7XG4gICAgZm9udC1zaXplOiAkdHQtY29tcC10ZXh0LXNpemU7XG4gICAgY29sb3I6ICR0dC1jb21wLXRleHQtY29sb3I7XG4gIH1cbn1cbiIsIlxuXG4kdGlsLWNvbXAtdGl0bGUtc2l6ZTogJGZvbnQtc2l6ZS1tbGFyZ2U7XG4kdGlsLWNvbXAtdGl0bGUtY29sb3I6ICRjb2xvci1tYWluLXllbGxvdztcblxuJHRpbC1jb21wLXRleHQtc2l6ZTogJGZvbnQtc2l6ZS1tZWRpdW07XG4kdGlsLWNvbXAtdGV4dC1jb2xvcjogbGlnaHRncmV5O1xuXG4kdGlsLWNvbXAtaWNvbi1jb2xvci0xOiAkY29sb3ItZ3JpbmRlcnk7XG4kdGlsLWNvbXAtaWNvbi1jb2xvci0yOiAkY29sb3ItbWFpbi15ZWxsb3c7XG5cblxuXG5cbi50aWwtY29tcG9uZW50e1xuXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS1NT0RJRklFUlMtLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tU0laSU5HLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS1BTElHTk1FTlQtLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS1ERUZBVUxUIFNUWUxFUy0tLS0tLS0tLS0tLS1cbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAmX190aXRsZXtcbiAgICBmb250LXNpemU6ICR0aWwtY29tcC10aXRsZS1zaXplO1xuICAgIGNvbG9yOiAkdGlsLWNvbXAtdGl0bGUtY29sb3I7XG4gICAgbWFyZ2luLWJvdHRvbTogLjRyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuXG4gIH1cblxuICAmX19saXN0e1xuICB9XG59XG5cbiIsIiRzaXRlLW1haW4tbmF2aWdhdGlvbl9fZnM6IDEuOXJlbTtcbiRzaXRlLW1haW4tbmF2aWdhdGlvbl9fbGg6IDEuODtcbiRzaXRlLW5hdmlnYXRpb25fX3dpZHRoOiAzNjBweDtcblxuLnNpdGUge1xuICAvL0BpbmNsdWRlIGFwcGx5R3V0dGVyU3BhbignbWFyZ2luLXJpZ2h0JywgMC41KTtcbiAgLy9AaW5jbHVkZSBhcHBseUd1dHRlclNwYW4oJ21hcmdpbi1sZWZ0JywgMC41KTtcbiAgLy9AaW5jbHVkZSBicmVha3BvaW50KCRicC0tZGVza3RvcCkge1xuICAvLyAgbWFyZ2luOiAwO1xuICAvL31cblxuICAmX19tYWluLFxuICAmX19jb250ZW50LWJvdHRvbSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gIH1cblxuICAmX19jb250ZW50LFxuICAmX19zaWRlYmFyLFxuICAmX19jb250ZW50LXRvcCxcbiAgJl9fY29udGVudC1ib3R0b20ge1xuICAgIEBpbmNsdWRlIGFwcGx5R3V0dGVyU3BhbignbWFyZ2luLWJvdHRvbScpO1xuICB9XG5cbiAgJl9fbWFpbixcbiAgJl9fY29udGVudC10b3AsXG4gICZfX2NvbnRlbnQtYm90dG9tIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuXG4gICZfX21haW4ge1xuXG4gICAgLnNpdGVfX2NvbnRlbnQtdG9wLFxuICAgIC5zaXRlX19zaWRlYmFyXG4gICAgLy8sXG4gICAgLy8uc2l0ZV9fY29udGVudFxuICAgIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93KCk7XG4gICAgfVxuXG4gICAgJi0tc2lkZWJhciB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0tdGFibGV0KSB7XG4gICAgICAgIC5zaXRlX19jb250ZW50LXRvcCB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDQsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNpdGVfX2NvbnRlbnQge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtc3Bhbig0LCAxKTtcbiAgICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zaXRlX19zaWRlYmFyIHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLXNwYW4oNCwgNSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXaGVuIGNvbnRlbnQgdG9wIGlzIHdpZGUuXG4gICAgICAgICYuc2l0ZV9fbWFpbi0tdG9wLXdpZGUge1xuICAgICAgICAgIC5zaXRlX19jb250ZW50LXRvcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLXNwYW4oOCwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5zaXRlX19jb250ZW50IHtcbiAgICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicC0tZGVza3RvcCkge1xuICAgICAgICAuc2l0ZV9fY29udGVudC10b3Age1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtc3Bhbig4LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zaXRlX19jb250ZW50IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLXNwYW4oOCwgMSk7XG4gICAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuc2l0ZV9fc2lkZWJhciB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDQsIDkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2hlbiBjb250ZW50IHRvcCBpcyB3aWRlLlxuICAgICAgICAmLnNpdGVfX21haW4tLXRvcC13aWRlIHtcbiAgICAgICAgICAuc2l0ZV9fY29udGVudC10b3Age1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDEyLCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLnNpdGVfX2NvbnRlbnQge1xuICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuIiwiLm5ld3MtYmxvZ3Mge1xuICBAZXh0ZW5kIC5mbG9hdGluZy1jb250YWluZXI7XG5cbiAgLnZpZXdzLXJvdyB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgfVxuICB9XG59XG5cblxuLnRlYXNlciB7XG4gIHBhZGRpbmctdG9wOiA0cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgaGVpZ2h0OiA0OHJlbTtcbiAgbWFyZ2luOiBhdXRvO1xuXG4gICZfX3RvcCB7XG4gICAgbWFyZ2luOiAxLjVyZW0gMDtcblxuICAgICYgPiBkaXYge1xuICAgICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgfVxuXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgfVxuXG4gICZfX2ltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjI1cyBlYXNlO1xuXG4gICAgaW1nIHtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMjVzIGVhc2U7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmOmhvdmVyIGltZyB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjI1cyBlYXNlO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIH1cbiAgfVxuXG4gICZfX2ltYWdlICZfX2ltYWdlLXRhZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLjVyZW07XG4gICAgcmlnaHQ6IC41cmVtO1xuICAgIGNvbG9yOiAkY29sb3ItZ3JpbmRlcnk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkY29sb3ItZ3JpbmRlcnksIDU1JSk7XG4gICAgcGFkZGluZzogLjFyZW0gLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogOXB4O1xuICB9XG5cbiAgJl9faW1hZ2U6aG92ZXIgJl9faW1hZ2UtdGFnIHtcbiAgICBjb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgfVxuXG4gICZfX3RleHQge1xuICB9XG5cbiAgJl9fYm90dG9tIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGdyZXk7XG4gIH1cbn1cblxuXG4uYmxvZyB7XG4gICZfX3RhZ3Mge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgcGFkZGluZzogMnJlbSAxcmVtO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmVjNTI0O1xuXG4gICAgPiBzcGFuIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZWM1MjQ7XG5cbiAgICB9XG5cbiAgICAuY2ZpZWxkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgICAgPiBkaXYge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG5cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIiNcIjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZXh0ZW5kIC50ZXh0LS1ibGFjaywgLmxpbmstLWhvdmVyLXllbGxvdywgLnRleHQtLW1lZGl1bTtcbiAgICAgICAgfVxuXG5cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5AbWVkaWEgKG1heC13aWR0aDogNDJyZW0pIHtcbiAgLm5ld3MtYmxvZ3Mge1xuICAgIC52aWV3cy1yb3cge1xuXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuXG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMHJlbTtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDByZW07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC50ZWFzZXIge1xuICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgIGhlaWdodDogaW5pdGlhbDtcblxuICAgICZfX3RvcCB7XG4gICAgICBtYXJnaW46IDAuNXJlbSAwO1xuICAgIH1cbiAgfVxuICAuYmxvZ19fdGFncyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbn1cblxuLmZlZWQtaWNvbiB7XG4gIGJhY2tncm91bmQ6IHVybCgnL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L2Fzc2V0cy9pbWFnZXMvc3ZnL2ZlZWQuc3ZnJykgbm8tcmVwZWF0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufSIsIi5jb3Vyc2VzIHtcblxuICAmX19oZWFkZXItd3JhcHBlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICBAZXh0ZW5kIC5nZW5lcmFsLWNvbnRlbnQ7XG4gIH1cblxuICAmX19oZWFkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cblxufVxuXG4ucGF0aC1jb3Vyc2UtbGkge1xuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgI2ZlYzUyNDtcbiAgfVxufVxuXG4ucGF0aCB7XG4gICZfX2hlYWRlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIG1hcmdpbi1ib3R0b206IC0ycHg7XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgY29sb3I6IGJsYWNrO1xuXG4gICAgICAmLmJhcmlzdGEtc2Nob29sIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjb2xvci1iYXJpc3RhO1xuICAgICAgfVxuXG4gICAgICAmLmdyaW5kZXJ5LXNjaG9vbCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkY29sb3ItZ3JpbmRlcnk7XG4gICAgICB9XG5cbiAgICAgICYucm9hc3Rpbmctc2Nob29sIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjb2xvci1yb2FzdGluZztcbiAgICAgIH1cblxuICAgICAgJi5xdWFsaXR5LXNjaG9vbCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkY29sb3ItcXVhbGl0eTtcbiAgICAgIH1cblxuICAgICAgJi5mb29kLXByb2plY3Qge1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGNvbG9yLWJsYWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLWdyZXkge1xuICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbiAgfVxuXG5cbiAgJl9faWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICB9XG5cblxuICAmX19jb250ZXN0ZWQtcmVnaW9uIHtcbiAgICBAZXh0ZW5kIC5nZW5lcmFsLWNvbnRlbnQ7XG4gICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgfVxuXG59XG5cblxuI2NvdXJzZXMtY29tcGxldGVkIHtcblxuICBtYXJnaW46IDFyZW0gMDtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBncmV5O1xuXG4gICYtY291bnQge1xuICAgIHNwYW46Zmlyc3QtY2hpbGQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIvXCI7XG4gICAgfVxuICB9XG5cbiAgI3Byb2dyZXNzLWNpcmNsZSB7XG4gICAgbWFyZ2luOiAwIDFyZW07XG4gIH1cblxufVxuXG5cbi5jb3Vyc2Utdmlldy1mdWxsIHtcbiAgcGFkZGluZzogMCAxMCU7XG59XG5cblxuLmNvdXJzZSB7XG4gICYtZmxhZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYtY29udGVudHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmLWRyb3Bkb3duLWJ1dHRvbiB7IC8vRFJPUERPV04gSU5ESUNBVE9SIEFQUEVBUklORyBJTiBDT1VSU0VTIERST1BET1dOU1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGltZyB7IC8vQVJST1cgSU5ESUNBVE9SIE9OIE1PQklMRSBTSE9VTEQgQkUgU01BTExFUlxuICAgICAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQobWVkaXVtKSB7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi5jb3Vyc2UtZW50aXR5IHtcblxuXG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cblxuICAmX190aXRsZSB7XG4gICAgJiA+IGRpdiB7XG4gICAgICBwYWRkaW5nOiAwLjJyZW0gMDtcbiAgICB9XG5cbiAgICAmID4gZGl2Omxhc3QtY2hpbGQge1xuICAgICAgbWF4LXdpZHRoOiAxNXJlbTtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICB9XG4gIH1cblxuICAmX19hcnRpY2xlIHtcbiAgICB3aWR0aDogNjYlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICB9XG5cbiAgJl9fcmVsYXRlZC1jb3Vyc2VzIHtcbiAgICB3aWR0aDogMzMlO1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgaW5wdXQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJi0tZml4ZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgfVxuICB9XG5cblxuICAmX192aWRlbyB7XG4gICAgd2lkdGg6IDY2JTtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIC52aWRlbyB7XG4gICAgICAmX19wbGF5ZXIge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXZpZGVvLWNvbnRhaW5lcigpO1xuICAgICAgfVxuXG4gICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICB9XG4gICAgfVxuXG5cbiAgfVxuXG4gICYtLXJlbGF0ZWQtY29udGVudC1maXhlZCB7XG5cbiAgICAuY291cnNlLWVudGl0eV9fcmVsYXRlZC1jb3Vyc2VzIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDMzJTtcbiAgICB9XG5cbiAgfVxuXG5cbn1cblxuLnRlc3QtbGluayB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHotaW5kZXg6IDk5OTk7XG5cbiAgaGVpZ2h0OiA2cmVtO1xuICB3aWR0aDogMzNyZW07XG4gIC8vZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYTM0M2Q7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMjUlO1xuXG4gIGNvbG9yOiB3aGl0ZTtcblxuICBhIHtcbiAgICBjb2xvcjogeWVsbG93O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICYtLXN0YXRlLTEge1xuICAgIC5tZXNzYWdlLTEge1xuICAgIH1cblxuICAgIC5tZXNzYWdlLTIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgfVxuXG4gICYtLXN0YXRlLTIge1xuICAgIHdpZHRoOiA5JTtcblxuICAgIC5tZXNzYWdlLTEge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubWVzc2FnZS0yIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgJi1sYWJlbCB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgIH1cblxuICAgICAgJi1hZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cblxuICAgIH1cblxuICAgICY6aG92ZXIge1xuXG4gICAgICB3aWR0aDogMjByZW07XG5cbiAgICAgIC5tZXNzYWdlLTItbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAubWVzc2FnZS0yLWFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgfVxuXG59XG5cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcwcmVtKSB7XG5cbiAgLmNvdXJzZS1lbnRpdHkge1xuICAgICZfX3ZpZGVvIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fYXJ0aWNsZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICB9XG5cbiAgICAmX19yZWxhdGVkLWNvdXJzZXMge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgLy9ub3RlcGFkIGFuZCByZWxhdGVkIGNvdXJzZXMgc2lkZSBieSBzaWRlIG9uIG1lZGl1bVxuICAgICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcblxuICAgICAgJiA+IGRpdiB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vYWRkIDUwcHggdG8gdGhlIHRvcCBvZiBub3RlcGFkIGFzIHJlbGF0ZWQgY291cnNlcyBjb250YWluZXIgaGFzIGEgdGl0bGUgb2YgNTBweFxuICAgICAgI3Jvb3Qge1xuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuY291cnNlcyB7XG4gICAgJl9fcGF0aC1uYXZpZ2F0aW9uIHtcbiAgICAgIC5wYXRoX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAucGF0aCB7XG4gICAgJl9faWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICB9XG4gIH1cblxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTByZW0pIHtcblxuICAjY291cnNlcy1jb21wbGV0ZWQge1xuXG4gICAgI2NvdXJzZXMtY29tcGxldGVkLWNvdW50IHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgIH1cblxuICAgICNwcm9ncmVzcy1jaXJjbGUge1xuICAgICAgbWFyZ2luOiAwIDAgMCAxMHB4O1xuICAgIH1cblxuICB9XG5cblxuICAuY291cnNlLWVudGl0eSB7XG5cbiAgICAmX192aWRlbyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cblxuICAgICZfX2FydGljbGUge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAvL3RleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgfVxuXG4gICAgJl9fcmVsYXRlZC1jb3Vyc2VzIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZmxvYXQ6IG5vbmU7XG5cblxuICAgICAgLy9ub3RlcGFkIGFuZCByZWxhdGVkIGNvdXJzZXMgb25lIGFmdGVyIGFub3RoZXIgb24gc21hbGxcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cbiAgICAgICYgPiBkaXYge1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbG9hdDogbm9uZTtcblxuXG4gICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvL3JlbW92ZSBleHRyYSBoZWlnaHQgb2Ygbm90ZXBhZFxuICAgICAgI3Jvb3Qge1xuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuICAuY291cnNlcyB7XG4gICAgJl9fcGF0aC1uYXZpZ2F0aW9uIHtcbiAgICAgIC5wYXRoX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAucGF0aCB7XG4gICAgJl9faWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICB9XG4gIH1cbn1cbiIsIiRmb290ZXItdGV4dC1jb2xvcjogJGNvbG9yLXdoaXRlO1xuXG5cbi5mb290ZXIge1xuXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig0Miw1Miw2MSk7XG4gIHBhZGRpbmctdG9wOiAzcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcblxuXG4gICZfX21haW57ZGlzcGxheTogaW5saW5lLWJsb2NrO31cblxuICAmX19sb2dve1xuICAgIC8vbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgLy90ZXh0LWFsaWduOiByaWdodDtcbiAgICAvL2Zsb2F0OiByaWdodDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gICZfX2Jsb2Nrc3tcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cblxuICAmX19ibG9ja3tcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgLy9PVkVSSURJTkcgREVGQVVMVCB0aWwtY29tcG9uZW50IFNUWUxFU1xuICAgIC50aWwtY29tcG9uZW50e1xuICAgICAgJl9fdGl0bGV7XG4gICAgICAgIGNvbG9yOiAkZm9vdGVyLXRleHQtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZWRpdW07XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktcmVnLWJvbGQ7XG4gICAgICB9XG4gICAgICAmX19saXN0e1xuXG4gICAgICAgIC8vT1ZFUklESU5HIERFRkFVTFQgdHQtY29tcG9uZW50IFNUWUxFU1xuICAgICAgICAudHQtY29tcG9uZW50e1xuICAgICAgICAgICZfX3RpdGxlLXRleHQsXG4gICAgICAgICAgJl9fdGl0bGUtdGV4dCBhOmxpbmssXG4gICAgICAgICAgJl9fdGl0bGUtdGV4dCBhOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRmb290ZXItdGV4dC1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItbWFpbi15ZWxsb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICZfX3RpdGxlLWljb257XG4gICAgICAgICAgICAvL0BpbmNsdWRlIHJldmVyc2UtaG92ZXIoJGNvbG9yLW1haW4teWVsbG93LCRjb2xvci13aGl0ZSk7XG4gICAgICAgICAgICBjb2xvcjogJGZvb3Rlci10ZXh0LWNvbG9yO1xuXG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtbWVkaXVtO1xuXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cblxuXG5cbiAgfVxuXG4gICZfX2JvdHRvbXtcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiA1cmVtO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZmVjNTI0O1xuICB9XG5cbn1cblxuXG5cblxuXG4iLCIiLCIkYmFzZS1tZC13aWR0aC1ibG9jazogNTAlO1xuLmZyb250LWxpbmtzLWJsb2NrcyB7XG5cblxuXG5cbiAgLmZyb250LXBhZ2UtdGVhc2Vye1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICB9XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICBAaW5jbHVkZSBtZWRpYS1yZXNwb25zaXZlLWxheW91dC1tZigkbWVkaWEtYnJlYWtwb2ludC1tZWRpdW0pe1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24tY29udGVudDogc3RyZXRjaDtcbiAgfVxuXG4gICZfX2Jsb2Nre1xuXG5cblxuICAgIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0LW1mKCRtZWRpYS1icmVha3BvaW50LW1lZGl1bSl7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgd2lkdGg6IDMzLjMzMzMlO1xuICAgIH1cblxuICAgICYtLTF7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgICAmLS0ye1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBvcmRlcjogMztcbiAgICB9XG4gICAgJi0tM3tcblxuICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgb3JkZXI6IDI7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyAgLmZyb250LWxpbmtzLWJsb2NrcyB7XG4vLyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDIsNTIsNjEpO1xuLy8gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gICAgbWluLWhlaWdodDogMTAwdmg7XG4vLyAgICB3aWR0aDogMTAwJTtcbi8vXG4vL1xuLy8gICAgJl9fYmxvY2t7XG4vLyAgICAgICZfMSAsICZfMiwmXzMge1xuLy8gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vXG4vLyAgICAgICAgd2lkdGg6IDUwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogNTB2aDtcbi8vICAgICAgICAudmlld3Mtcm93e1xuLy8gICAgICAgICAgZGlzcGxheTogdGFibGU7XG4vLyAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgICAgICAgICB3aWR0aDogMTAwLjElO1xuLy8gICAgICAgICAgaGVpZ2h0OiAxMDAuMiU7XG4vLyAgICAgICAgICB6LWluZGV4OiA5OVxuLy8gICAgICAgIH1cbi8vICAgICAgfVxuLy8gICAgICAmXzJ7XG4vLyAgICAgICAgLnZpZXdzLXJvd3sgYm90dG9tOiAwO31cbi8vXG4vLyAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICAgICAgIGJvdHRvbTogMDtcbi8vICAgICAgICByaWdodDogMDtcbi8vICAgICAgfVxuLy8gICAgICAmXzN7XG4vLyAgICAgICAgLnZpZXdzLXJvd3sgYm90dG9tOiAwO31cbi8vICAgICAgICBmbG9hdDogcmlnaHQ7XG4vLyAgICAgICAgd2lkdGg6IDI1JTtcbi8vICAgICAgICB1bCwgbGl7aGVpZ2h0OiAxMDAlIWltcG9ydGFudDt9XG4vLyAgICAgICAgdWx7cmlnaHQ6IDEwMCU7fVxuLy8gICAgICB9XG4vL1xuLy8gICAgfVxuLy8gICAgJl9faW1hZ2V7XG4vL1xuLy8gICAgICB1bCwgbGl7aGVpZ2h0OiAxMDAlIWltcG9ydGFudDt9XG4vLyAgICAgICYgPiBpbWcsICAmIHVsIGxpID4gaW1ne3dpZHRoOiAxMDAlIWltcG9ydGFudDsgaGVpZ2h0OiAxMDAlIWltcG9ydGFudDsgb2JqZWN0LWZpdDogY292ZXIhaW1wb3J0YW50O31cbi8vICAgICAgJl8xICwgJl8ye3dpZHRoOiA1MCU7aGVpZ2h0OiAxMDB2aDt9XG4vLyAgICAgICZfMXtmbG9hdDogcmlnaHQ7fVxuLy8gICAgICAmXzJ7cG9zaXRpb246IHJlbGF0aXZlO2Zsb2F0OiBsZWZ0O31cbi8vICAgIH1cbi8vICB9XG4vL1xuLy9AbWVkaWEgKG1heC13aWR0aDogNTVyZW0pIHtcbi8vXG4vLyAgLmZyb250LWxpbmtzLWJsb2NrcyB7XG4vLyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDIsNTIsNjEpO1xuLy8gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gICAgbWluLWhlaWdodDogMTAwdmg7XG4vLyAgICB3aWR0aDogMTAwJTtcbi8vXG4vL1xuLy8gICAgJl9fYmxvY2t7XG4vLyAgICAgICZfMSAsICZfMiwmXzMge1xuLy8gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vXG4vLyAgICAgICAgd2lkdGg6IDUwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogNTB2aDtcbi8vICAgICAgICAudmlld3Mtcm93e1xuLy8gICAgICAgICAgZGlzcGxheTogdGFibGU7XG4vLyAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgICAgICAgICB3aWR0aDogMTAwLjElO1xuLy8gICAgICAgICAgaGVpZ2h0OiAxMDAuMiU7XG4vLyAgICAgICAgICB6LWluZGV4OiA5OVxuLy8gICAgICAgIH1cbi8vICAgICAgfVxuLy8gICAgICAmXzJ7XG4vLyAgICAgICAgLy8udmlld3Mtcm93eyBib3R0b206IDA7fVxuLy9cbi8vICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgICAgICAgYm90dG9tOiAwO1xuLy8gICAgICAgIHJpZ2h0OiAwO1xuLy8gICAgICAgIHdpZHRoOiAxMDAlO1xuLy8gICAgICB9XG4vLyAgICAgICZfM3tcbi8vICAgICAgICAudmlld3Mtcm93eyBib3R0b206IDA7fVxuLy8gICAgICAgIGZsb2F0OiByaWdodDtcbi8vICAgICAgICB3aWR0aDogNTAlO1xuLy8gICAgICAgIC8vdWwsIGxpe2hlaWdodDogMTAwJSFpbXBvcnRhbnQ7fVxuLy8gICAgICAgIHVse1xuLy8gICAgICAgICAgZGlzcGxheTogbm9uZTtcbi8vICAgICAgICAgIC8vcmlnaHQ6IDEwMCU7XG4vLyAgICAgICAgfVxuLy8gICAgICB9XG4vL1xuLy8gICAgfVxuLy8gICAgJl9faW1hZ2V7XG4vL1xuLy8gICAgICB1bCwgbGl7aGVpZ2h0OiAxMDAlIWltcG9ydGFudDt9XG4vLyAgICAgICYgPiBpbWcsICAmIHVsIGxpID4gaW1ne3dpZHRoOiAxMDAlIWltcG9ydGFudDsgaGVpZ2h0OiAxMDAlIWltcG9ydGFudDsgb2JqZWN0LWZpdDogY292ZXIhaW1wb3J0YW50O31cbi8vICAgICAgJl8xICwgJl8ye3dpZHRoOiA1MCU7aGVpZ2h0OiAxMDB2aDt9XG4vLyAgICAgICZfMXtmbG9hdDogcmlnaHQ7fVxuLy8gICAgICAmXzJ7cG9zaXRpb246IHJlbGF0aXZlO2Zsb2F0OiBsZWZ0O31cbi8vICAgIH1cbi8vICB9XG4vL31cbi8vXG4vL1xuLy9AbWVkaWEgKG1heC13aWR0aDogNjByZW0pIHtcbi8vICAuZnJvbnQtbGlua3MtYmxvY2tzIHtcbi8vXG4vLyAgICAmX19ibG9ja3tcbi8vICAgICAgJl8xLCZfMiwmXzMge1xuLy8gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuLy9cbi8vICAgICAgICB3aWR0aDogMTAwJTsgZmxvYXQ6IG5vbmU7IGhlaWdodDogaW5pdGlhbDtcbi8vICAgICAgICAudmlld3Mtcm93e1xuLy8gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4vLyAgICAgICAgICB3aWR0aDogMTAwJTtcbi8vICAgICAgICAgIGhlaWdodDogaW5pdGlhbDtcbi8vICAgICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuLy8gICAgICAgIH1cbi8vICAgICAgfVxuLy8gICAgICAmXzJ7XG4vL1xuLy9cbi8vICAgICAgfVxuLy8gICAgICAmXzN7XG4vLyAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbi8vICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGNvbG9yLW1haW4teWVsbG93O1xuLy8gICAgICAgIC8vdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbi8vXG4vLyAgICAgICAgJiA+IGltZ3tcbi8vXG4vLyAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vICAgICAgICAgIHdpZHRoOiAxMDAlO1xuLy8gICAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4vL1xuLy8gICAgICAgICAgaGVpZ2h0OiBpbml0aWFsO1xuLy8gICAgICAgICAgLy9vYmplY3QtZml0OiBjb3Zlcjtcbi8vICAgICAgICB9XG4vLyAgICAgIH1cbi8vXG4vLyAgICB9XG4vLyAgICAmX19pbWFnZXtcbi8vICAgICAgLy91bCwgbGl7aGVpZ2h0OiBpbmhlcml0IWltcG9ydGFudDt9XG4vL1xuLy8gICAgICBib3JkZXItdG9wOiAycHggc29saWQgJGNvbG9yLW1haW4teWVsbG93O1xuLy8gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGNvbG9yLW1haW4teWVsbG93O1xuLy8gICAgICAvLyYgPiBpbWd7ZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IGluaXRpYWw7fVxuLy8gICAgICAmXzEge2Rpc3BsYXk6bm9uZTt9XG4vLyAgICAgICZfMntcbi8vICAgICAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlWSgrMTAwJSk7XG4vLyAgICAgICAgd2lkdGg6IDEwMCU7aGVpZ2h0OiBpbml0aWFsOyBmbG9hdDogbm9uZSFpbXBvcnRhbnQ7XG4vLyAgICAgIH1cbi8vXG4vLyAgICB9XG4vLyAgfVxuLy9cbi8vfVxuLy9cbi8vXG4vL1xuIiwiXG4iLCIvL21vYmlsZVxuLmhlYWRlciB7XG5cbiAgQGV4dGVuZCAuZ2VuZXJhbC1jb250ZW50O1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gIHotaW5kZXg6IDk5OTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICZfX2JhY2stbGluayB7XG4gICAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQtbWYoJG1lZGlhLWJyZWFrcG9pbnQtbWxhcmdlKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgJi0tZml4ZWQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICB9XG5cbiAgJi0tZml4ZWQyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgfVxuXG4gICYtLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGNvbG9yLW1haW4teWVsbG93O1xuICB9XG5cbiAgJi0tYmxhY2stdHJhbnNwYXJlbnQge1xuICAgIC5tZW51IHtcbiAgICAgICZfX25vdGlmaWNhaW9uLWNvdW50IHtcbiAgICAgICAgY29sb3I6ICRjb2xvci1iYXJpc3RhO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgfVxuXG4gICZfX2xlZnQge1xuICAgIC5tZW51IHtcbiAgICAgICZfX2ljb24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJl9fbGlua3Mge1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtbWVkaXVtIC0gLjFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAmX19yaWdodCB7XG5cbiAgICAubWVudSB7XG4gICAgfVxuXG4gICAgLmhlYWRlci1kZWxpbWV0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmID4gLmxvZ28ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy9kZXNrdG9wXG5AbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLWJyZWFrcG9pbnQtbWxhcmdlKSB7XG4gIC5oZWFkZXIge1xuICAgICZfX2xlZnQge1xuICAgICAgZmxleDogMCAwIGF1dG87IC8vc28gdGhhdCBtZW51IGxpbmtzIGRvIG5vdCB3cmFwXG4gICAgICAvL3JlbW92ZSBpY29uIC0gZGlzcGxheSBtZW51IGxpbmtzIG5leHQgdG8gZWFjaCBvdGhlclxuICAgICAgLm1lbnUge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlua3Mge1xuICAgICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIC8vZm9udC1zaXplOiAkZm9udC1zaXplLW1lZGl1bTtcblxuICAgICAgICAgIC8vQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQtbWYoJG1lZGlhLWJyZWFrcG9pbnQtbWxhcmdlKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgLy99XG5cbiAgICAgICAgICAmIHVsIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcblxuICAgICAgICAgICAgJiBhIC5hY3RpdmUge1xuICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZlYzUyNDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL2Rpc3BsYXkgbG9nbyAtIGRlbGltZXRlclxuICAgICZfX3JpZ2h0IHtcbiAgICAgIC5oZWFkZXItZGVsaW1ldGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCAuNXJlbTtcbiAgICAgIH1cblxuICAgICAgJiA+IC5sb2dvIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIi5sZWFkZXJib2FyZHtcblxuICAvL2JhY2tncm91bmQtaW1hZ2U6IHVybCgnL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L2Fzc2V0cy9pbWFnZXMvbGVhZGVyYm9hcmRzL2JhY2tncm91bmQucG5nJyk7XG4gIC8vYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgLy9iYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXG4gIEBleHRlbmQgLmdlbmVyYWwtY29udGVudDtcbiAgcGFkZGluZy10b3A6IDVyZW07XG4gIHBhZGRpbmctYm90dG9tOiA1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbWFpbi1ibHVlO1xuXG4gICZfX3RpdGxle3BhZGRpbmc6IDNyZW07fVxuICAmX19kZXNjcmlwdGlvbntwYWRkaW5nOiAycmVtO31cbiAgJl9fdG9wLWJhcmlzdGFze0BleHRlbmQgLmZsb2F0aW5nLWNvbnRhaW5lcjt9XG5cbn1cblxuXG5AbWVkaWEgKG1heC13aWR0aDogNDByZW0pIHtcbiAgLmxlYWRlcmJvYXJke1xuICAgIHBhZGRpbmc6IDA7XG4gICAgJl9fdGl0bGV7cGFkZGluZzogM3JlbSAxcmVtIWltcG9ydGFudDsgZm9udC1zaXplOiAycmVtIWltcG9ydGFudDt9XG4gICAgLnRvcC1iYXJpc3Rhc3tcblxuICAgICAgJl9fY29se21hcmdpbi1sZWZ0OiAwO21hcmdpbi1yaWdodDogMDt9XG4gICAgfVxuICB9XG59IiwiLm5vdGVwYWR7XG5cbiAgbWFyZ2luOiAycmVtIDA7XG5cbiAgJi10aXRsZXtcblxuXG4gIC5jb3Vyc2UtbGlua19fbGVmdHtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gIH1cblxuICAgIC5jb3Vyc2UtbGlua19fcmlnaHR7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICAmLXdyYXBwZXJ7XG5cbiAgICBmb3Jte1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgfVxuXG5cblxuI2NrZV8xX2JvdHRvbSwgI2VkaXQtdXNlci1ub3RlcGFkLWZvcm1hdC1oZWxwLWFib3V0LC5qcy1mb3JtLWl0ZW0tdXNlci1ub3RlcGFkLWZvcm1hdHtkaXNwbGF5OiBub25lIWltcG9ydGFudDt9XG59XG5cblxuXG4iLCJcbiRyZWxhdGVkLWxpc3QtaW5hY3RpdmUtY29sb3I6IGdyZXk7XG4kcmVsYXRlZC1saXN0LWFjdGl2ZS1jb2xvcjogd2hpdGU7XG5cbi5yZWxhdGVkLWxpc3R7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4tYmx1ZTtcbiAgaGVpZ2h0OiAkbm90ZXBhZC1hbmQtcGxheWxpc3QtaGVpZ2h0O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG5cbiAgJl9fdGl0bGV7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1lZGl1bTtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXJlZy1ib2xkO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgJl9fY29tcGxldGVkLWljb257XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIGltZ3tcbiAgICAgIHdpZHRoOiAxLjVyZW07XG4gICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICB9XG4gIH1cbiAgJl9faXRlbXtcblxuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgY29sb3I6ICRyZWxhdGVkLWxpc3QtaW5hY3RpdmUtY29sb3I7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tZWRpdW07XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkcmVsYXRlZC1saXN0LWluYWN0aXZlLWNvbG9yO1xuXG4gICAgJi0tYWN0aXZle1xuICAgICAgY29sb3I6ICRyZWxhdGVkLWxpc3QtYWN0aXZlLWNvbG9yO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRyZWxhdGVkLWxpc3QtYWN0aXZlLWNvbG9yO1xuICAgIH1cblxuICAgIC8vbGF5b3V0IGluc2lkZVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIC8vbGF5b3V0IG9mIGVsZW1lbnRzXG4gICAgJiA+IGRpdiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICBmbGV4LWJhc2lzOiA2cmVtO1xuICAgICAgfVxuICAgIH1cblxuXG4gIH1cbiAgJl9fbGluayB7XG4gICAgYXtcbiAgICAgIGNvbG9yOiAkcmVsYXRlZC1saXN0LWluYWN0aXZlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gICZfX2l0ZW0tLWFjdGl2ZSAmX19saW5rLCAmX19saW5rOmhvdmVye1xuICAgIGEge1xuICAgICAgY29sb3I6ICRyZWxhdGVkLWxpc3QtYWN0aXZlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG5cbiAgQGluY2x1ZGUgY3VzdG9tLXNjcm9sbGJhcih3aGl0ZSwgJGNvbG9yLW1haW4tc2VtaS1kYXJrLWJsdWUgLCAuNXJlbSApO1xuXG59XG5cbiIsIi5teVNsaWRlcyB7ZGlzcGxheTpub25lO31cblxuLnNsaWRlc2hvd3tcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAmX19pbWFnZXtcbiAgICBpbWd7XG4gICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG4gIH1cbiAgJl9fbG9nb3tcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOjI1JTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICZfX3RleHR7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiA2JTtcbiAgICBtYXJnaW46IDAgNyU7XG5cbiAgICB3b3JkLXNwYWNpbmc6IDUlO1xuICAgIGxpbmUtaGVpZ2h0OiAuOTtcblxuICAgIGZvbnQtc2l6ZTogNHZ3O1xuICB9XG5cbn1cblxuXG5AbWVkaWEgKG1heC13aWR0aDogNDJyZW0pIHtcbiAgLnNsaWRlc2hvdyB7XG4gICAgJl9fdGV4dHtcbiAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlIC0gLjVyZW07XG4gICAgfVxuICB9XG5cblxuICB9IiwiLmNmaWVsZF9fbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1ibGFjaztcbn1cblxuIiwiLnR3aXR0ZXItYmxvY2tze1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgJl9fcm93e1xuICBmb250LXNpemU6IDIwcmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuXG5cblxuICB9XG5cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ1cmVtKSB7XG4gIC50d2l0dGVyLWJsb2Nrc3tcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cblxufSIsIiR1c2VyLXByb2ZpbGUtaW5mby1zaWRlLXBhZGRpbmctZGVmYXVsdDogMnJlbTtcblxuXG4vL0xBWU9VVFxuLnVzZXJfcGFnZXtcblxuICAmX19jb250YWluZXJ7XG5cbiAgICAmLS1sZWZ0e1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogMzMuMzMzJTtcbiAgICB9XG4gICAgJi0tcmlnaHR7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiA2Ni42NjYlO1xuICAgIH1cbiAgfVxuXG59XG5cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcwcmVtKSB7XG5cblxuICAudXNlcl9wYWdle1xuICAgICZfX2NvbnRhaW5lcntcbiAgICAgICYtLWxlZnQgLCAmLS1yaWdodHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAmLS1yaWdodHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cblxuXG4udXNlci1wcm9maWxlLWluZm97XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICAmX19idXR0b257cGFkZGluZzogMC41cmVtO31cbiAgJl9faW1hZ2V7fVxuICAmX19lbGVtZW50e1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGdyZXk7XG4gICAgbWluLWhlaWdodDogNHJlbTtcbiAgICBwYWRkaW5nOiAwLjVyZW0gJHVzZXItcHJvZmlsZS1pbmZvLXNpZGUtcGFkZGluZy1kZWZhdWx0O1xuXG4gICAgJjpsYXN0LWNoaWxke2JvcmRlci1ib3R0b206IG5vbmU7fVxuICB9XG4gICZfX3BvaW50c3tcblxuICAgIC8vaGVpZ2h0OiA2cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWM1MjQ7XG4gICAgcGFkZGluZzogMC41cmVtIDA7XG5cblxuICB9XG4gICZfX2VkaXR7XG4gICAgaGVpZ2h0OiA3cmVtO1xuICB9XG5cblxufVxuXG4udXNlcl9zY29yZXN7XG5cbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGJhY2tncm91bmQ6ICRjb2xvci1tYWluLXllbGxvdztcbiAgcGFkZGluZzogJHVzZXItcHJvZmlsZS1pbmZvLXNpZGUtcGFkZGluZy1kZWZhdWx0O1xuICBjb2xvcjogJGNvbG9yLW1haW4tYnJvd247XG5cbiAgbWFyZ2luOiBhdXRvO1xuXG4gICZfX2NoZWNrYm94e2Rpc3BsYXk6IG5vbmU7fVxuICAmX190b3RhbHsgcGFkZGluZzogMCAxcmVtOyB9XG4gICZfX2FuYWx5dGljYWx7fVxuXG5cbiAgJl9fbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuXG4gICAgJl9pdGVte1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblxuICAgICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICAgIG1hcmdpbjogMC41cmVtIDA7XG4gICAgICBwYWRkaW5nOiAwLjNyZW0gMXJlbTtcblxuICAgIH1cbiAgfVxuXG4gICZfX2hlYWRpbmd7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICB9XG4gICZfX21hcmtze1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1sYXJnZTtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgICAmLS13aGl0ZSB7Y29sb3I6ICRjb2xvci13aGl0ZTsgZm9udC1zaXplOiAkZm9udC1zaXplLXhsYXJnZTt9XG4gICAgJi0tbGVmdHt9XG4gICAgJi0tZGVsaW1ldGVye31cbiAgICAmLS1yaWdodHsgY29sb3I6ICRjb2xvci1tYWluLWJsdWU7IH1cbiAgfVxufVxuXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1MHJlbSkge1xuXG5cbiAgLnVzZXItcHJvZmlsZS1pbmZve1xuXG4gIH1cblxufSIsIlxuXG4kY29tcG9zaXRpb24taGVpZ2h0OiAxNXJlbTtcblxuLmNvbXBvc2l0aW9uIHtcblxuICAuYWpheC1wcm9ncmVzcy10aHJvYmJlciB7XG4gICAgZGlzcGxheTogbm9uZVxuICB9XG4gIC8vdG8gcmVtb3ZlIHRoZSB0aHJvYmJlclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICRjb21wb3NpdGlvbi1oZWlnaHQ7XG4gIGhlaWdodDogJGNvbXBvc2l0aW9uLWhlaWdodDtcbiAgJl9fbG9nbyB7XG4gICAgd2lkdGg6IDMwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxNXJlbTtcbiAgfVxuICAmX19zbGlkZS1sYWJlbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgdG9wOiAtNTBweDtcblxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1saWdodDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbWVkaXVtO1xuICB9XG5cbiAgJl9fc2xpZGUge1xuICAgIHBlcnNwZWN0aXZlOiAxNTByZW07XG5cbiAgICBoZWlnaHQ6ICRjb21wb3NpdGlvbi1oZWlnaHQgLSAycmVtO1xuICAgIG1heC13aWR0aDogMTVyZW07XG4gICAgd2lkdGg6IDMwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAmLS1wMSB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgIH1cbiAgICAmLS1wMiB7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gICAgJi0tcDMge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdG9wOiAwcmVtO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0KG1lZGl1bSkge1xuXG4gICAgJiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBoZWlnaHQ6IGluaXRpYWw7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fbG9nbyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAmX19zbGlkZSB7XG5cbiAgICAgIHdpZHRoOiAxM3JlbTtcbiAgICAgIGhlaWdodDogMTNyZW07XG5cbiAgICAgIG1hcmdpbi10b3A6IDRyZW07XG4gICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IC41cmVtO1xuXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG5cbiAgICB9XG4gIH1cblxuICAmX19zbGlkZS1jYXB0aW9uIHtcblxuICAgIEBpbmNsdWRlIGFic29sdXRlLWZ1bGwtd2lkdGgtaGVpZ2h0O1xuXG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDE4MGRlZyk7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLW1haW4teWVsbG93O1xuICAgIGJveC1zaGFkb3c6IDAgMS41cmVtIDJyZW0gcmdiYSgkY29sb3ItYmxhY2ssIC4wNSk7XG5cbiAgICBzcGFuIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlci1ob3Jpem9udGFsLXZlcnRpY2FsO1xuXG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtbWVkaXVtO1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1saWdodDtcblxuICAgICAgJjpob3ZlciwgJiB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItbWFpbi1ibGFjaztcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gICZfX3Bob3RvIHtcbiAgICBib3gtc2hhZG93OiAwIDEuNXJlbSAycmVtIHJnYmEoJGNvbG9yLWJsYWNrLCAuMDgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3ItbWFpbi15ZWxsb3c7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cblxuICAmX19waG90bywgJl9fc2xpZGUtY2FwdGlvbiB7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IGFsbCAuOHMgZWFzZTtcbiAgfVxuICAmX19zbGlkZTpob3ZlciAmX19waG90byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICB9XG5cbiAgJl9fc2xpZGU6aG92ZXIgJl9fc2xpZGUtY2FwdGlvbiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDApO1xuICB9XG59XG5cbiRzY2hvb2wtaWNvbi13aWR0aC1tZWV0LXVzOiAxMzBweDtcblxuLmNhbXB1cy1tZWV0IHtcbiAgYmFja2dyb3VuZDogIzJhMzQzZDtcbiAgcGFkZGluZzogMnJlbSAzcmVtIDUlIDUlO1xuICAmX191cHBlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAmX3RpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDNyZW07XG4gICAgfVxuICAgICZfdGV4dCB7XG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICAgJiA+IGRpdiB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHNjaG9vbC1pY29uLXdpZHRoLW1lZXQtdXM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi0tbGVmdCwgJi0tcmlnaHQge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgJl9fY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5jYW1wdXMtbWVldC1iYWNrLWltYWdlIHtcblxuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICByaWdodDogLTI1cHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIHdpZHRoOiAkc2Nob29sLWljb24td2lkdGgtbWVldC11cztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyIC40cyBlYXNlO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGFuaW1hdGlvbjogcm90YXRlIDFzIGVhc2UtaW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNhbXB1cy1tZWV0LWJveCB7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBtaW4taGVpZ2h0OiAzNnJlbTtcbiAgICAgIHBhZGRpbmc6IDVyZW07XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvci13aGl0ZSwgLjkpO1xuICAgICAgLnRleHQtLWJvbGQge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJsYWNrO1xuICAgICAgfVxuICAgICAgJi0tYmFyaXN0YSB7XG4gICAgICAgIC50ZXh0LS1ib2xkIHtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLWJhcmlzdGE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYtLWdyaW5kZXJ5IHtcbiAgICAgICAgLnRleHQtLWJvbGQge1xuICAgICAgICAgIGNvbG9yOiAkY29sb3ItZ3JpbmRlcnk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYtLXF1YWxpdHkge1xuICAgICAgICAudGV4dC0tYm9sZCB7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci1xdWFsaXR5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLS1yb2FzdGluZyB7XG4gICAgICAgIC50ZXh0LS1ib2xkIHtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXJvYXN0aW5nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjVzIGVhc2U7XG4gICAgfVxuICAgICY6aG92ZXIgLmNhbXB1cy1tZWV0LWJveCB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkY29sb3Itd2hpdGUsIDEpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XG4gICAgICB9XG4gICAgfVxuICAgICY6aG92ZXIgLmNhbXB1cy1tZWV0LWJhY2staW1hZ2Uge1xuICAgICAgJi0tYmFyaXN0YSB7XG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRjb2xvci1iYXJpc3RhO1xuICAgICAgfVxuICAgICAgJi0tZ3JpbmRlcnkge1xuICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAkY29sb3ItZ3JpbmRlcnk7XG4gICAgICB9XG4gICAgICAmLS1xdWFsaXR5IHtcbiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJGNvbG9yLXF1YWxpdHk7XG4gICAgICB9XG4gICAgICAmLS1yb2FzdGluZyB7XG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRjb2xvci1yb2FzdGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1ibGFjaztcbiAgICAmLS1iYXJpc3RhIHtcbiAgICAgIGNvbG9yOiAkY29sb3ItYmFyaXN0YTtcbiAgICB9XG4gICAgJi0tZ3JpbmRlcnkge1xuICAgICAgY29sb3I6ICRjb2xvci1ncmluZGVyeTtcbiAgICB9XG4gICAgJi0tcXVhbGl0eSB7XG4gICAgICBjb2xvcjogJGNvbG9yLXF1YWxpdHk7XG4gICAgfVxuICAgICYtLXJvYXN0aW5nIHtcbiAgICAgIGNvbG9yOiAkY29sb3Itcm9hc3Rpbmc7XG4gICAgfVxuICAgIEBzdXBwb3J0cyAoLXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcjogI2ZlYzUyNCApIHtcblxuICAgICAgJi0tYmFyaXN0YSB7XG4gICAgICAgIC13ZWJraXQtdGV4dC1zdHJva2UtY29sb3I6ICRjb2xvci1iYXJpc3RhO1xuICAgICAgfVxuICAgICAgJi0tZ3JpbmRlcnkge1xuICAgICAgICAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiAkY29sb3ItZ3JpbmRlcnk7XG4gICAgICB9XG4gICAgICAmLS1xdWFsaXR5IHtcbiAgICAgICAgLXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcjogJGNvbG9yLXF1YWxpdHk7XG4gICAgICB9XG4gICAgICAmLS1yb2FzdGluZyB7XG4gICAgICAgIC13ZWJraXQtdGV4dC1zdHJva2UtY29sb3I6ICRjb2xvci1yb2FzdGluZztcbiAgICAgIH1cbiAgICAgIC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDFweDtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHRyYW5zZm9ybTogc2tld1goLTEwZGVnKTtcbiAgICB9XG4gIH1cbn1cblxuLmFib3V0X25ldyB7XG5cbiAgJl9faGVhZGVyIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1ibGFjaztcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgIGNvbG9yOiAkY29sb3ItbWFpbi1ibGFjaztcbiAgfVxuXG4gICZfX2ltYWdlLWJveCB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBtYXgtd2lkdGg6IDg1cmVtO1xuXG4gICAgJi1pbWFnZSB7XG4gICAgICB3aWR0aDogNjAlO1xuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYWJvdXRfbmV3X190ZXh0LWJveCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICB3aWR0aDogNTUlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0KG1sYXJnZSkge1xuICAgICAgJi1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiA3NSU7XG4gICAgICB9XG4gICAgICAuYWJvdXRfbmV3X190ZXh0LWJveCB7XG4gICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQobWVkaXVtKSB7XG4gICAgICAmLWltYWdlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIC5hYm91dF9uZXdfX3RleHQtYm94IHtcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC8vJl9fdGV4dC1ib3h7XG4gIC8vICBwYWRkaW5nOiA1JTtcbiAgLy8gIGJveC1zaGFkb3c6IDAgMS41cmVtIDJyZW0gcmdiYSgkY29sb3ItYmxhY2ssIC4wOCk7XG4gIC8vICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3ItbWFpbi15ZWxsb3c7XG4gIC8vICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8vICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGU7XG4gIC8vICBzdHJvbmd7Y29sb3I6ICRjb2xvci1tYWluLXllbGxvdzt9XG4gIC8vXG4gIC8vICBAaW5jbHVkZSBtZWRpYS1yZXNwb25zaXZlLWxheW91dChtbGFyZ2Upe1xuICAvLyAgICAgIHBhZGRpbmc6IDMlO1xuICAvLyAgfVxuICAvL31cblxuICAmX19jb21wb3NpdGlvbi1ib3gge1xuXG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAuYWJvdXRfbmV3X190ZXh0LWJveCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiA0MCU7XG5cbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogJGNvbXBvc2l0aW9uLWhlaWdodDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgIH1cbiAgICAuY29tcG9zaXRpb24ge1xuICAgICAgd2lkdGg6IDU1JTtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1yZXNwb25zaXZlLWxheW91dChtbGFyZ2UpIHtcbiAgICAgIC5hYm91dF9uZXdfX3RleHQtYm94IHtcbiAgICAgICAgd2lkdGg6IDMyJTtcbiAgICAgIH1cbiAgICAgIC5jb21wb3NpdGlvbiB7XG4gICAgICAgIHdpZHRoOiA2NSU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQobWVkaXVtKSB7XG4gICAgICAuYWJvdXRfbmV3X190ZXh0LWJveCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblxuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgIH1cbiAgICAgIC5jb21wb3NpdGlvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDkwcmVtKSB7XG4gIC5jYW1wdXMtbWVldCB7XG4gICAgJi0tbGVmdCwgJi0tcmlnaHQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICB9XG4gIH1cblxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTByZW0pIHtcblxuICAuYWJvdXQge1xuXG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgIC5hYm91dC1iYWNrLWltYWdlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGluaXRpYWw7XG5cbiAgICAgIH1cbiAgICAgIC5hYm91dC1ib3gge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2FtcHVzLW1lZXQge1xuICAgIC8vbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDJyZW0gLjVyZW0gM3JlbSAuNXJlbTtcbiAgICAmX191cHBlciB7XG5cbiAgICB9XG5cbiAgICAmX191cHBlciB7XG5cbiAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgJl90aXRsZSB7XG4gICAgICAgIHBhZGRpbmc6IDNyZW0gMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgICZfdGV4dCB7XG4gICAgICAgIC8vY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAmLS1sZWZ0LCAmLS1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cblxuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAuY2FtcHVzLW1lZXQtYmFjay1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiBpbml0aWFsO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiA1MHB4O1xuICAgICAgfVxuICAgICAgLmNhbXB1cy1tZWV0LWJveCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiBpbml0aWFsO1xuICAgICAgfVxuICAgIH1cbiAgICAmX190aXRsZSB7XG4gICAgICBwYWRkaW5nOiA1MHB4IDAgMCAwO1xuICAgIH1cbiAgfVxuICAuc3dpcGVyLWJ1dHRvbi1wcmV2LCAuc3dpcGVyLWJ1dHRvbi1uZXh0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbiIsIiIsIi5wcm9ncmVzcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMnJlbSAwO1xuXG59XG5cbi5wcm9ncmVzc19fdHJhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZDtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMTZweDtcblxuICBib3JkZXItcmFkaXVzOiAxMDAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucHJvZ3Jlc3NfX2JhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLWJsdWU7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDMlO1xuICBtaW4td2lkdGg6IDMlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4ucHJvZ3Jlc3NfX2Rlc2NyaXB0aW9uLFxuLnByb2dyZXNzX19wZXJjZW50YWdlIHtcbiAgY29sb3I6ICM1NTU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgbWFyZ2luLXRvcDogMC4yZW07XG59XG4ucHJvZ3Jlc3NfX2Rlc2NyaXB0aW9uIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4iLCIuY29udGFjdC1wYWdle1xuXG4gIC50aWwtY29tcG9uZW50e1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGJveC1zaGFkb3c6IDBweCAycHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgbWFyZ2luOiAycmVtIDA7XG4gICAgcGFkZGluZzogMS41cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAmX190aXRsZXtcbiAgICAgIGNvbG9yOiAkY29sb3ItbWFpbi1ibGFjayFpbXBvcnRhbnQ7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtbWVkaXVtIWltcG9ydGFudDtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmxhY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IC41cmVtO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IGRvdHRlZDtcbiAgICB9XG4gICAgJl9fbGlzdHtcbiAgICAgIC50dC1jb21wb25lbnRfX3RpdGxlLXRleHR7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItbWFpbi1zZW1pLWRhcmstYmx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbCFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbGlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL0ZPUlVNXG4uZm9ydW17XG5cbiAgLy9CQVNJQyBFTEVNRU5UU1xuICAmX19oZWFkZXJ7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1yZWctYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbWxhcmdlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tYWluLXllbGxvdztcbiAgICBjb2xvcjogJGNvbG9yLW1haW4tc2VtaS1kYXJrLWJsdWU7XG4gICAgcGFkZGluZzogMXJlbSAxNXB4O1xuICB9XG5cbiAgJl9fc3ViaGVhZGVye1xuICAgICYsICYgYXtcbiAgICAgIGNvbG9yOiAkY29sb3ItbWFpbi15ZWxsb3c7XG4gICAgfVxuXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1yZWctYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbWxhcmdlO1xuICB9XG5cbiAgJl9fc2VjLWVse1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgJiBsaXttYXJnaW4tcmlnaHQ6IDAuNXJlbTt9XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDAuNHJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC40cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyZXk7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gICYtdGFibGUtd3JhcHBlcntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICAgIG1hcmdpbjogMXJlbSAwIDtcbiAgfVxuXG4gICYtdGFibGV7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAmLXRhYmxlLWhlYWRlcntcbiAgICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlYzUyNDtcbiAgfVxuICAmLXRhYmxlLXN1YmhlYWRlcntcbiAgICAmLS1ibGFja3tcbiAgICAgIGJhY2tncm91bmQ6ICMyYTM0M2Q7XG4gICAgICBwYWRkaW5nLXRvcDogMC40cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDAuNHJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICB9XG4gICAgdGh7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAgbGlnaHRncmV5O1xuICAgICAgcGFkZGluZy10b3A6IDAuNHJlbTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjRyZW07XG4gICAgICBAZXh0ZW5kIC5mb250LS1saWdodDtcbiAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgfVxuXG4gICAgICBhe0BleHRlbmQgLnRleHQtLWdyZXksLmxpbmstLWhvdmVyLXllbGxvd31cbiAgICB9XG5cbiAgfVxuXG5cblxuICAmLXRhYmxlLXJvd3tcblxuICAgIC5mb3J1bV9fdGl0bGV7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgJiA+IGRpdjpmaXJzdC1jaGlsZCBhe1xuICAgICAgICBAZXh0ZW5kIC50ZXh0LS1ib2xkLCAudGV4dC0tbWVkaXVtICwudGV4dC0tYmxhY2sgLC5saW5rLS1ob3Zlci15ZWxsb3c7XG4gICAgICB9XG4gICAgICAmID4gZGl2Omxhc3QtY2hpbGQgYXtcbiAgICAgICAgQGV4dGVuZCAudGV4dC0tYmxhY2sgLCAubGluay0taG92ZXIteWVsbG93O1xuXG4gICAgICB9XG4gICAgfVxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGdyZXk7XG5cbiAgICAmOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTogbm9uZTt9XG5cbiAgICAuaW5kZW50ID4gaW1ne1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgfVxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYzZDE7XG4gICAgdGR7XG4gICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgbGlnaHRncmV5O1xuICAgICAgJjpsYXN0LWNoaWxke2JvcmRlci1yaWdodDogbm9uZTt9XG4gICAgfVxuICAgIC50YWJsZS1jb2x7XG4gICAgICAmLXNtYWxse3dpZHRoOiAxMCU7fVxuICAgICAgJi1tZWRpdW17d2lkdGg6IDIwJTt9XG4gICAgICAmLWxhcmdle3dpZHRoOiA2MCU7fVxuXG4gICAgfVxuICAgIC50b3BpYy10aXRsZXtcbiAgICAgIGRpdiBwe1xuICAgICAgICBAZXh0ZW5kIC5saXN0LS1jbGVhci1kZWZhdWx0cztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG5cbn1cbi5pY29uLWZsb2F0LWxlZnR7IGZsb2F0OiBsZWZ0OyBtYXJnaW4tcmlnaHQ6IDAuNXJlbX1cblxuXG5AbWVkaWEgKG1heC13aWR0aDogNzByZW0pIHtcblxuICAuZm9ydW17XG5cbiAgICAmLXRhYmxlLXN1YmhlYWRlcntkaXNwbGF5OiBub25lOyYtLWJsYWNre2Rpc3BsYXk6IGJsb2NrO319XG4gICAgJi10YWJsZS1yb3d7XG5cbiAgICAgIHRke3BhZGRpbmc6IDFyZW0gMnJlbTt9XG4gICAgICAudGFibGUtY29se1xuICAgICAgICAmLXNtYWxse2Rpc3BsYXk6bm9uZTt9XG4gICAgICAgICYtbWVkaXVte2Rpc3BsYXk6bm9uZTt9XG4gICAgICAgICYtbGFyZ2V7d2lkdGg6IDEwMCU7fVxuXG4gICAgICB9XG4gICAgfVxuICAgICZfX3JlcGxpZXN7ZGlzcGxheTogbm9uZTt9XG4gICAgJl9fbGFzdC1yZXBseXtkaXNwbGF5OiBub25lO31cblxuICB9XG5cbn1cblxuLy9GT1JVTSBUT1BJQ1xuJHRvcGljLWJhY2tncm91bmQ6ICRjb2xvci1zdWIteWVsbG93O1xuXG4kdG9waWMtaW5mby1saW5lLWNvbG9yOiBsaWdodGdyZXk7XG5cbi5mb3J1bS10b3BpYyB7XG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9waWMtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJHNoYWRvdy1iYXNpYztcblxuICAuZm9ydW0tdGFibGUtaGVhZGVye21hcmdpbi1ib3R0b206IC0ycmVtO31cblxuICAmIGlucHV0Om5vdChpbnB1dFt0eXBlPVwic3VibWl0XCJdKXt3aWR0aDogMTAwJTt9XG5cbiAgLy9PUEVSQVRJT04gTElOS1MgSU5TSURFIENPTU1FTlRcbiAgLmxpbmtze1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0LW1mKCRtZWRpYS1icmVha3BvaW50LW1lZGl1bSl7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICByaWdodDogMTVweDtcbiAgICAgIGxlZnQ6IDE1cHg7XG4gICAgfVxuXG5cbiAgICBhe1xuICAgICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcbiAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY29tbWVudC1kZWxldGUgYXtcbiAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgQGluY2x1ZGUgZmEtaWNvbihcIlxcZjFmOFwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNvbW1lbnQtZWRpdCBhe1xuICAgICAgJjo6YmVmb3Jle1xuICAgICAgICBAaW5jbHVkZSBmYS1pY29uKFwiXFxmMDQ0XCIpO1xuICAgICAgfVxuICAgIH1cbiAgICAuY29tbWVudC1yZXBseSBhe1xuICAgICAgJjo6YmVmb3Jle1xuICAgICAgICBAaW5jbHVkZSBmYS1pY29uKFwiXFxmM2U1XCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vRUxFTUVOVFNcbiAgJl9faW5mb3tcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR0b3BpYy1pbmZvLWxpbmUtY29sb3I7XG4gICAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQtbWYoJG1lZGlhLWJyZWFrcG9pbnQtbWVkaXVtKXtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgfVxuICAmX19ib2R5e1xuICAgIHBhZGRpbmc6IDFyZW0gMCAxcmVtIDA7XG4gICAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQtbWYoJG1lZGlhLWJyZWFrcG9pbnQtbWVkaXVtKXtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMCA0cmVtIDA7XG4gICAgfVxuICB9XG4gICZfX2ltYWdle1xuICAgIHBhZGRpbmctYm90dG9tOiAuNXJlbTtcbiAgICAuanMtZm9ybS1pdGVte2Rpc3BsYXk6IG5vbmU7fVxuICAgIGltZ3tcbiAgICAgIHdpZHRoOiA4NXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQtbWYoJG1lZGlhLWJyZWFrcG9pbnQtbWVkaXVtKXtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIC5qcy1mb3JtLWl0ZW17ZGlzcGxheTogYmxvY2s7fVxuICAgICAgaW1ne1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgICAgIH1cbiAgICAgIGg0e1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG4gICZfX25ldy1pbmRpY2F0b3I6bm90KC5oaWRkZW4pe1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgQGluY2x1ZGUgbWFrZS1zcXVhcmUoM3JlbSk7XG5cbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0LW1mKCRtZWRpYS1icmVha3BvaW50LW1lZGl1bSl7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgIH1cblxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cblxuXG5cbi5pbmRlbnRlZHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSBtZWRpYS1yZXNwb25zaXZlLWxheW91dC1tZigkbWVkaWEtYnJlYWtwb2ludC1tZWRpdW0pe1xuICAgIHdpZHRoOiA5NiU7XG4gIH1cbn1cblxuLmNvbW1lbnQtZm9ybXtcbiAgcGFkZGluZzogMnJlbSAycmVtIDByZW07XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGxhYmVse1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmxhY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogLjRyZW07XG4gIH1cbiAgaW5wdXR7XG4gICAgbWFyZ2luLWJvdHRvbTogLjRyZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl17XG4gICAgbWFyZ2luOiAycmVtIDA7XG4gICAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQobWVkaXVtKXtcbiAgICBtYXJnaW46IDFyZW0gMDtcbiAgICB9XG4gIH1cbn1cbiIsIi5sZWFkZXJib2FyZHMtcGFnZXtwYWRkaW5nLXRvcDogMnJlbTt9IiwiLmxvZ2luLXBhZ2Uge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgkY29sb3ItYmxhY2ssIDAuNSksIHJnYmEoJGNvbG9yLWJsYWNrLCAwLjUpKSxcbiAgdXJsKFwiL3RoZW1lcy9jdXN0b20vY29mZmVldGhlbWUyMDE3L2Fzc2V0cy9pbWFnZXMvcGxhaW5faW1hZ2VzL2NvZmZlZV9iYXJpc3RhX2Fsb25lLmpwZ1wiKTtcblxuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJSwgY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIG5vLXJlcGVhdDtcblxuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgLm5vdGlmaWNhdGlvbi1pY29uIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IGluaXRpYWw7XG4gICAgei1pbmRleDogJHotaW5kZXgtYmVsbC1pY29uO1xuICB9XG5cbiAgJl9fZm9ybV9jb250YWluZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBtYXJnaW46IC41cmVtIDA7XG4gICAgQGluY2x1ZGUgbWVkaWEtcmVzcG9uc2l2ZS1sYXlvdXQoJG1lZGlhLWJyZWFrcG9pbnQtbWVkaXVtKSB7XG4gICAgICBhbmltYXRpb246IG1vdmVpbkJvdHRvbSAxcztcbiAgICB9XG4gIH1cblxuICAmX19sb2dvIHtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgbWF4LXdpZHRoOiAyMHJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0KCRtZWRpYS1icmVha3BvaW50LW1lZGl1bSkge1xuICAgICAgYW5pbWF0aW9uOiBtb3ZlaW5SaWdodCAxcztcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgJl9fd2VsY29tZV9tZXNzYWdlIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gICAgY29sb3I6ICRjb2xvci1tYWluLXllbGxvdztcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBAaW5jbHVkZSBtZWRpYS1yZXNwb25zaXZlLWxheW91dCgkbWVkaWEtYnJlYWtwb2ludC1tZWRpdW0pIHtcbiAgICAgIGFuaW1hdGlvbjogbW92ZWluTGVmdCAxcztcbiAgICB9XG4gIH1cblxuICAmX19hY3Rpb24tYnV0dG9uIHtcblxuICAgIEBleHRlbmQgLmJ1dHRvbiwgLmJ1dHRvbi0tYm9yZGVyLXllbGxvdywgLmJ1dHRvbi0tdHJhbnNwYXJlbnQsIC5idXR0b24tLWh2ci1nbG93LCAuYnV0dG9uLS1odnItZ2xvdy0teWVsbG93O1xuICAgIGNvbG9yOiAkY29sb3ItbWFpbi15ZWxsb3c7XG4gICAgbWFyZ2luOiAxcmVtIGF1dG87XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktcmVnLWJvbGQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0KCRtZWRpYS1icmVha3BvaW50LW1lZGl1bSkge1xuICAgICAgYW5pbWF0aW9uOiBtb3ZlaW5Cb3R0b20gMXMgMXM7XG4gICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7XG4gICAgfVxuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDJyZW0pIHtcbiAgICAgIG1heC13aWR0aDogMTdyZW07XG4gICAgfVxuXG4gICAgJi0tc2Vjb25kYXJ5IHtcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGUtMjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci13aGl0ZS0yO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0KG1lZGl1bSkge1xuICAgICAgICBwYWRkaW5nOiAzcHggMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAuN3JlbTtcbiAgICAgICAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLW1haW4teWVsbG93O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLXJlc3BvbnNpdmUtbGF5b3V0KG1lZGl1bSkge1xuICAgICZfX2FjdGlvbnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucyAmX19hY3Rpb24tYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTByZW0pIHtcbiAgLmxvZ2luLXBhZ2Uge1xuXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXG4gICAgJl9fbG9nbyB7XG4gICAgICBtYXgtd2lkdGg6IDEwcmVtO1xuXG4gICAgfVxuXG4gICAgLnVzZXItbG9naW4tZm9ybSwgLnVzZXItcGFzcyB7XG4gICAgICAuZm9ybS1lbGVtZW50IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICNlZGl0LXN1Ym1pdCB7XG4gICAgICAgIG1heC13aWR0aDogMTdyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuIiwiJG5vdGVwYWQtYm90dG9tLWxpbmUtY29sb3I6ICM1MzVlNjc7XG4kbm90ZXBhZC1sZWZ0LWxpbmUtY29sb3I6ICNmZWM1MjQ7XG5cblxuJG5vdGVwYWQtdGl0bGUtZm9udC1mYW1pbHk6ICdDZXJhIEdSIEJsYWNrJztcbiRub3RlcGFkLXRpdGxlLXRleHQtc2l6ZTogMS41cmVtO1xuJG5vdGVwYWQtdGl0bGUtdGV4dC1jb2xvcjogIzJhMzQzZDtcblxuJG5vdGVwYWQtbm90ZXMtZm9udC1mYW1pbHk6ICdDZXJhIEdSIE1lZGl1bSc7XG4kbm90ZXBhZC1ub3Rlcy10ZXh0LXNpemU6IDFyZW07XG4kbm90ZXBhZC1ub3Rlcy10ZXh0LWNvbG9yOiAjMmEzNDNkO1xuXG5cbi5ub3RlcGFkX2xpc3Rpbmd7XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJl9fcm93e1xuXG4gIH1cblxuXG5cblxuICAgICZfX3RpdGxle1xuXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgIHBhZGRpbmc6IDMuNXJlbSAwIDAuNXJlbSA1LjVyZW07XG5cblxuICAgICAgY29sb3I6ICRub3RlcGFkLXRpdGxlLXRleHQtY29sb3I7XG4gICAgICBmb250LWZhbWlseTogJG5vdGVwYWQtdGl0bGUtZm9udC1mYW1pbHk7XG4gICAgICBmb250LXNpemU6ICRub3RlcGFkLXRpdGxlLXRleHQtc2l6ZTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbm90ZXBhZC1ib3R0b20tbGluZS1jb2xvcjtcbiAgICB9XG5cbiAgJl9fbm90ZXtcblxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbm90ZXBhZC1ib3R0b20tbGluZS1jb2xvcjtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMCAwLjVyZW0gNS41cmVtIDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgIGZvbnQtZmFtaWx5OiAkbm90ZXBhZC1ub3Rlcy1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6ICRub3RlcGFkLW5vdGVzLXRleHQtc2l6ZTtcbiAgICBjb2xvcjogJG5vdGVwYWQtbm90ZXMtdGV4dC1jb2xvcjtcblxuXG4gICAgJl9jb250YWluZXJ7XG5cbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICY6YmVmb3Jle1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgaGVpZ2h0OiAxMDUlO1xuICAgICAgICBsZWZ0OiA0cmVtO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkbm90ZXBhZC1sZWZ0LWxpbmUtY29sb3I7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cblxuICAgICZfYm9keXtcbiAgICAgIHB7cGFkZGluZzowO21hcmdpbjogMDt9XG4gICAgfVxuICAgICZfZGF0ZXtcbiAgICAgIG1pbi13aWR0aDogOXJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxufVxuXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuXG5cblxuXG4gIC5ub3RlcGFkX2xpc3Rpbmd7XG5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgICZfX3Jvd3tcblxuICAgIH1cblxuXG5cblxuICAgICZfX3RpdGxle1xuXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgIHBhZGRpbmc6IDMuNXJlbSAwIDAuNXJlbSAyLjVyZW07XG5cblxuICAgICAgLy9jb2xvcjogJG5vdGVwYWQtdGl0bGUtdGV4dC1jb2xvcjtcbiAgICAgIC8vZm9udC1mYW1pbHk6ICRub3RlcGFkLXRpdGxlLWZvbnQtZmFtaWx5O1xuICAgICAgLy9mb250LXNpemU6ICRub3RlcGFkLXRpdGxlLXRleHQtc2l6ZTtcbiAgICAgIC8vYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRub3RlcGFkLWJvdHRvbS1saW5lLWNvbG9yO1xuICAgIH1cblxuICAgICZfX25vdGV7XG5cbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAwIDAuNXJlbSAyLjVyZW0gO1xuXG4gICAgICAmX2NvbnRhaW5lcntcblxuICAgICAgICAmOmJlZm9yZXtcblxuICAgICAgICAgIGxlZnQ6IDFyZW07XG5cblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuXG59IiwiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUNrTEEsVUFBVSxDQUFWLGdCQUFVO0VBQ1IsSUFBSTtJQUNGLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxVQUFTOztFQUU1QyxFQUFFO0lBQ0EsU0FBUyxFQUFFLHFCQUFxQixDQUFFLFFBQVE7Ozs7QUFJOUMsVUFBVSxDQUFWLE1BQVU7RUFDUixJQUFJO0lBQUcsaUJBQWlCLEVBQUUsYUFBYTs7RUFDdkMsRUFBRTtJQUFFLGlCQUFpQixFQUFFLGVBQWU7Ozs7QUFHeEMsVUFBVSxDQUFWLFVBQVU7RUFDUixFQUFFO0lBQ0EsT0FBTyxFQUFFLENBQUM7SUFDVixTQUFTLEVBQUUsa0JBQWtCOztFQUUvQixHQUFHO0lBQ0QsU0FBUyxFQUFFLGdCQUFnQjs7RUFHN0IsSUFBSTtJQUNGLE9BQU8sRUFBRSxDQUFDO0lBQ1YsU0FBUyxFQUFFLFlBQVk7Ozs7QUFLM0IsVUFBVSxDQUFWLFdBQVU7RUFDUixFQUFFO0lBQ0EsT0FBTyxFQUFFLENBQUM7SUFDVixTQUFTLEVBQUUsaUJBQWlCOztFQUU5QixHQUFHO0lBQ0QsU0FBUyxFQUFFLGlCQUFpQjs7RUFHOUIsSUFBSTtJQUNGLE9BQU8sRUFBRSxDQUFDO0lBQ1YsU0FBUyxFQUFFLFlBQVk7Ozs7QUFLM0IsVUFBVSxDQUFWLFlBQVU7RUFDUixFQUFFO0lBQ0EsT0FBTyxFQUFFLENBQUM7SUFDVixTQUFTLEVBQUUsaUJBQWlCOztFQUU5QixHQUFHO0lBQ0QsU0FBUyxFQUFFLGlCQUFpQjs7RUFHOUIsSUFBSTtJQUNGLE9BQU8sRUFBRSxDQUFDO0lBQ1YsU0FBUyxFQUFFLFlBQVk7Ozs7QUEyQ2YsQUFBQSxTQUFTLENBQUE7RUFBQyxNQUFZLEVBQUUsQ0FBYztDQUFJOztBQUMxQyxBQUFBLFVBQVUsQ0FBQTtFQUFDLE1BQVksRUFBQyxJQUFDO0NBQWdDOztBQUN6RCxBQUFBLFdBQVcsQ0FBQTtFQUFDLE1BQVksRUFBQyxJQUFpQztDQUFJOztBQUM5RCxBQUFBLFVBQVUsQ0FBQTtFQUFDLE1BQVksRUFBRSxJQUFpQztDQUFJOztBQUM5RCxBQUFBLFdBQVcsQ0FBQTtFQUFDLE1BQVksRUFBRSxJQUFpQztDQUFJOztBQUMvRCxBQUFBLFlBQVksQ0FBQTtFQUFDLE1BQVksRUFBRSxJQUFpQztDQUFJOztBQUNoRSxBQUFBLGFBQWEsQ0FBQTtFQUFDLE1BQVksRUFBRSxJQUFpQztDQUFJOztBQUdqRSxBQUFBLFdBQVcsQ0FBRjtFQUFDLFlBQTBCLEVBQUcsQ0FBYztDQUFJOztBQUN6RCxBQUFBLFlBQVksQ0FBRjtFQUFDLFlBQTBCLEVBQUUsSUFBQztDQUFnQzs7QUFDeEUsQUFBQSxhQUFhLENBQUY7RUFBQyxZQUEwQixFQUFFLElBQWlDO0NBQUk7O0FBQzdFLEFBQUEsWUFBWSxDQUFGO0VBQUMsWUFBMEIsRUFBRyxJQUFpQztDQUFJOztBQUM3RSxBQUFBLGFBQWEsQ0FBRjtFQUFDLFlBQTBCLEVBQUcsSUFBaUM7Q0FBSTs7QUFDOUUsQUFBQSxjQUFjLENBQUY7RUFBQyxZQUEwQixFQUFHLElBQWlDO0NBQUk7O0FBQy9FLEFBQUEsZUFBZSxDQUFGO0VBQUMsWUFBMEIsRUFBRyxJQUFpQztDQUFJOztBQU5oRixBQUFBLFdBQVcsQ0FBRjtFQUFDLFdBQTBCLEVBQUcsQ0FBYztDQUFJOztBQUN6RCxBQUFBLFlBQVksQ0FBRjtFQUFDLFdBQTBCLEVBQUUsSUFBQztDQUFnQzs7QUFDeEUsQUFBQSxhQUFhLENBQUY7RUFBQyxXQUEwQixFQUFFLElBQWlDO0NBQUk7O0FBQzdFLEFBQUEsWUFBWSxDQUFGO0VBQUMsV0FBMEIsRUFBRyxJQUFpQztDQUFJOztBQUM3RSxBQUFBLGFBQWEsQ0FBRjtFQUFDLFdBQTBCLEVBQUcsSUFBaUM7Q0FBSTs7QUFDOUUsQUFBQSxjQUFjLENBQUY7RUFBQyxXQUEwQixFQUFHLElBQWlDO0NBQUk7O0FBQy9FLEFBQUEsZUFBZSxDQUFGO0VBQUMsV0FBMEIsRUFBRyxJQUFpQztDQUFJOztBQU5oRixBQUFBLFdBQVcsQ0FBRjtFQUFDLFVBQTBCLEVBQUcsQ0FBYztDQUFJOztBQUN6RCxBQUFBLFlBQVksQ0FBRjtFQUFDLFVBQTBCLEVBQUUsSUFBQztDQUFnQzs7QUFDeEUsQUFBQSxhQUFhLENBQUY7RUFBQyxVQUEwQixFQUFFLElBQWlDO0NBQUk7O0FBQzdFLEFBQUEsWUFBWSxDQUFGO0VBQUMsVUFBMEIsRUFBRyxJQUFpQztDQUFJOztBQUM3RSxBQUFBLGFBQWEsQ0FBRjtFQUFDLFVBQTBCLEVBQUcsSUFBaUM7Q0FBSTs7QUFDOUUsQUFBQSxjQUFjLENBQUY7RUFBQyxVQUEwQixFQUFHLElBQWlDO0NBQUk7O0FBQy9FLEFBQUEsZUFBZSxDQUFGO0VBQUMsVUFBMEIsRUFBRyxJQUFpQztDQUFJOztBQU5oRixBQUFBLFdBQVcsQ0FBRjtFQUFDLGFBQTBCLEVBQUcsQ0FBYztDQUFJOztBQUN6RCxBQUFBLFlBQVksQ0FBRjtFQUFDLGFBQTBCLEVBQUUsSUFBQztDQUFnQzs7QUFDeEUsQUFBQSxhQUFhLENBQUY7RUFBQyxhQUEwQixFQUFFLElBQWlDO0NBQUk7O0FBQzdFLEFBQUEsWUFBWSxDQUFGO0VBQUMsYUFBMEIsRUFBRyxJQUFpQztDQUFJOztBQUM3RSxBQUFBLGFBQWEsQ0FBRjtFQUFDLGFBQTBCLEVBQUcsSUFBaUM7Q0FBSTs7QUFDOUUsQUFBQSxjQUFjLENBQUY7RUFBQyxhQUEwQixFQUFHLElBQWlDO0NBQUk7O0FBQy9FLEFBQUEsZUFBZSxDQUFGO0VBQUMsYUFBMEIsRUFBRyxJQUFpQztDQUFJOztBQWZoRixBQUFBLFNBQVMsQ0FBQTtFQUFDLE9BQVksRUFBRSxDQUFjO0NBQUk7O0FBQzFDLEFBQUEsVUFBVSxDQUFBO0VBQUMsT0FBWSxFQUFDLElBQUM7Q0FBZ0M7O0FBQ3pELEFBQUEsV0FBVyxDQUFBO0VBQUMsT0FBWSxFQUFDLElBQWlDO0NBQUk7O0FBQzlELEFBQUEsVUFBVSxDQUFBO0VBQUMsT0FBWSxFQUFFLElBQWlDO0NBQUk7O0FBQzlELEFBQUEsV0FBVyxDQUFBO0VBQUMsT0FBWSxFQUFFLElBQWlDO0NBQUk7O0FBQy9ELEFBQUEsWUFBWSxDQUFBO0VBQUMsT0FBWSxFQUFFLElBQWlDO0NBQUk7O0FBQ2hFLEFBQUEsYUFBYSxDQUFBO0VBQUMsT0FBWSxFQUFFLElBQWlDO0NBQUk7O0FBR2pFLEFBQUEsV0FBVyxDQUFGO0VBQUMsYUFBMEIsRUFBRyxDQUFjO0NBQUk7O0FBQ3pELEFBQUEsWUFBWSxDQUFGO0VBQUMsYUFBMEIsRUFBRSxJQUFDO0NBQWdDOztBQUN4RSxBQUFBLGFBQWEsQ0FBRjtFQUFDLGFBQTBCLEVBQUUsSUFBaUM7Q0FBSTs7QUFDN0UsQUFBQSxZQUFZLENBQUY7RUFBQyxhQUEwQixFQUFHLElBQWlDO0NBQUk7O0FBQzdFLEFBQUEsYUFBYSxDQUFGO0VBQUMsYUFBMEIsRUFBRyxJQUFpQztDQUFJOztBQUM5RSxBQUFBLGNBQWMsQ0FBRjtFQUFDLGFBQTBCLEVBQUcsSUFBaUM7Q0FBSTs7QUFDL0UsQUFBQSxlQUFlLENBQUY7RUFBQyxhQUEwQixFQUFHLElBQWlDO0NBQUk7O0FBTmhGLEFBQUEsV0FBVyxDQUFGO0VBQUMsWUFBMEIsRUFBRyxDQUFjO0NBQUk7O0FBQ3pELEFBQUEsWUFBWSxDQUFGO0VBQUMsWUFBMEIsRUFBRSxJQUFDO0NBQWdDOztBQUN4RSxBQUFBLGFBQWEsQ0FBRjtFQUFDLFlBQTBCLEVBQUUsSUFBaUM7Q0FBSTs7QUFDN0UsQUFBQSxZQUFZLENBQUY7RUFBQyxZQUEwQixFQUFHLElBQWlDO0NBQUk7O0FBQzdFLEFBQUEsYUFBYSxDQUFGO0VBQUMsWUFBMEIsRUFBRyxJQUFpQztDQUFJOztBQUM5RSxBQUFBLGNBQWMsQ0FBRjtFQUFDLFlBQTBCLEVBQUcsSUFBaUM7Q0FBSTs7QUFDL0UsQUFBQSxlQUFlLENBQUY7RUFBQyxZQUEwQixFQUFHLElBQWlDO0NBQUk7O0FBTmhGLEFBQUEsV0FBVyxDQUFGO0VBQUMsV0FBMEIsRUFBRyxDQUFjO0NBQUk7O0FBQ3pELEFBQUEsWUFBWSxDQUFGO0VBQUMsV0FBMEIsRUFBRSxJQUFDO0NBQWdDOztBQUN4RSxBQUFBLGFBQWEsQ0FBRjtFQUFDLFdBQTBCLEVBQUUsSUFBaUM7Q0FBSTs7QUFDN0UsQUFBQSxZQUFZLENBQUY7RUFBQyxXQUEwQixFQUFHLElBQWlDO0NBQUk7O0FBQzdFLEFBQUEsYUFBYSxDQUFGO0VBQUMsV0FBMEIsRUFBRyxJQUFpQztDQUFJOztBQUM5RSxBQUFBLGNBQWMsQ0FBRjtFQUFDLFdBQTBCLEVBQUcsSUFBaUM7Q0FBSTs7QUFDL0UsQUFBQSxlQUFlLENBQUY7RUFBQyxXQUEwQixFQUFHLElBQWlDO0NBQUk7O0FBTmhGLEFBQUEsV0FBVyxDQUFGO0VBQUMsY0FBMEIsRUFBRyxDQUFjO0NBQUk7O0FBQ3pELEFBQUEsWUFBWSxDQUFGO0VBQUMsY0FBMEIsRUFBRSxJQUFDO0NBQWdDOztBQUN4RSxBQUFBLGFBQWEsQ0FBRjtFQUFDLGNBQTBCLEVBQUUsSUFBaUM7Q0FBSTs7QUFDN0UsQUFBQSxZQUFZLENBQUY7RUFBQyxjQUEwQixFQUFHLElBQWlDO0NBQUk7O0FBQzdFLEFBQUEsYUFBYSxDQUFGO0VBQUMsY0FBMEIsRUFBRyxJQUFpQztDQUFJOztBQUM5RSxBQUFBLGNBQWMsQ0FBRjtFQUFDLGNBQTBCLEVBQUcsSUFBaUM7Q0FBSTs7QUFDL0UsQUFBQSxlQUFlLENBQUY7RUFBQyxjQUEwQixFQUFHLElBQWlDO0NBQUk7O0FBMEI1RixNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVE7RUF6Q2YsQUFBQSxnQkFBZ0IsQ0FBUDtJQUFDLE1BQVksRUFBRSxXQUFjO0dBQUk7RUFDMUMsQUFBQSxpQkFBaUIsQ0FBUDtJQUFDLE1BQVksRUFBQyxjQUFDO0dBQWdDO0VBQ3pELEFBQUEsa0JBQWtCLENBQVA7SUFBQyxNQUFZLEVBQUMsY0FBaUM7R0FBSTtFQUM5RCxBQUFBLGlCQUFpQixDQUFQO0lBQUMsTUFBWSxFQUFFLGNBQWlDO0dBQUk7RUFDOUQsQUFBQSxrQkFBa0IsQ0FBUDtJQUFDLE1BQVksRUFBRSxjQUFpQztHQUFJO0VBQy9ELEFBQUEsbUJBQW1CLENBQVA7SUFBQyxNQUFZLEVBQUUsY0FBaUM7R0FBSTtFQUNoRSxBQUFBLG9CQUFvQixDQUFQO0lBQUMsTUFBWSxFQUFFLGNBQWlDO0dBQUk7RUFHakUsQUFBQSxrQkFBa0IsQ0FBVDtJQUFDLFlBQTBCLEVBQUcsV0FBYztHQUFJO0VBQ3pELEFBQUEsbUJBQW1CLENBQVQ7SUFBQyxZQUEwQixFQUFFLGNBQUM7R0FBZ0M7RUFDeEUsQUFBQSxvQkFBb0IsQ0FBVDtJQUFDLFlBQTBCLEVBQUUsY0FBaUM7R0FBSTtFQUM3RSxBQUFBLG1CQUFtQixDQUFUO0lBQUMsWUFBMEIsRUFBRyxjQUFpQztHQUFJO0VBQzdFLEFBQUEsb0JBQW9CLENBQVQ7SUFBQyxZQUEwQixFQUFHLGNBQWlDO0dBQUk7RUFDOUUsQUFBQSxxQkFBcUIsQ0FBVDtJQUFDLFlBQTBCLEVBQUcsY0FBaUM7R0FBSTtFQUMvRSxBQUFBLHNCQUFzQixDQUFUO0lBQUMsWUFBMEIsRUFBRyxjQUFpQztHQUFJO0VBTmhGLEFBQUEsa0JBQWtCLENBQVQ7SUFBQyxXQUEwQixFQUFHLFdBQWM7R0FBSTtFQUN6RCxBQUFBLG1CQUFtQixDQUFUO0lBQUMsV0FBMEIsRUFBRSxjQUFDO0dBQWdDO0VBQ3hFLEFBQUEsb0JBQW9CLENBQVQ7SUFBQyxXQUEwQixFQUFFLGNBQWlDO0dBQUk7RUFDN0UsQUFBQSxtQkFBbUIsQ0FBVDtJQUFDLFdBQTBCLEVBQUcsY0FBaUM7R0FBSTtFQUM3RSxBQUFBLG9CQUFvQixDQUFUO0lBQUMsV0FBMEIsRUFBRyxjQUFpQztHQUFJO0VBQzlFLEFBQUEscUJBQXFCLENBQVQ7SUFBQyxXQUEwQixFQUFHLGNBQWlDO0dBQUk7RUFDL0UsQUFBQSxzQkFBc0IsQ0FBVDtJQUFDLFdBQTBCLEVBQUcsY0FBaUM7R0FBSTtFQU5oRixBQUFBLGtCQUFrQixDQUFUO0lBQUMsVUFBMEIsRUFBRyxXQUFjO0dBQUk7RUFDekQsQUFBQSxtQkFBbUIsQ0FBVDtJQUFDLFVBQTBCLEVBQUUsY0FBQztHQUFnQztFQUN4RSxBQUFBLG9CQUFvQixDQUFUO0lBQUMsVUFBMEIsRUFBRSxjQUFpQztHQUFJO0VBQzdFLEFBQUEsbUJBQW1CLENBQVQ7SUFBQyxVQUEwQixFQUFHLGNBQWlDO0dBQUk7RUFDN0UsQUFBQSxvQkFBb0IsQ0FBVDtJQUFDLFVBQTBCLEVBQUcsY0FBaUM7R0FBSTtFQUM5RSxBQUFBLHFCQUFxQixDQUFUO0lBQUMsVUFBMEIsRUFBRyxjQUFpQztHQUFJO0VBQy9FLEFBQUEsc0JBQXNCLENBQVQ7SUFBQyxVQUEwQixFQUFHLGNBQWlDO0dBQUk7RUFOaEYsQUFBQSxrQkFBa0IsQ0FBVDtJQUFDLGFBQTBCLEVBQUcsV0FBYztHQUFJO0VBQ3pELEFBQUEsbUJBQW1CLENBQVQ7SUFBQyxhQUEwQixFQUFFLGNBQUM7R0FBZ0M7RUFDeEUsQUFBQSxvQkFBb0IsQ0FBVDtJQUFDLGFBQTBCLEVBQUUsY0FBaUM7R0FBSTtFQUM3RSxBQUFBLG1CQUFtQixDQUFUO0lBQUMsYUFBMEIsRUFBRyxjQUFpQztHQUFJO0VBQzdFLEFBQUEsb0JBQW9CLENBQVQ7SUFBQyxhQUEwQixFQUFHLGNBQWlDO0dBQUk7RUFDOUUsQUFBQSxxQkFBcUIsQ0FBVDtJQUFDLGFBQTBCLEVBQUcsY0FBaUM7R0FBSTtFQUMvRSxBQUFBLHNCQUFzQixDQUFUO0lBQUMsYUFBMEIsRUFBRyxjQUFpQztHQUFJO0VBZmhGLEFBQUEsZ0JBQWdCLENBQVA7SUFBQyxPQUFZLEVBQUUsV0FBYztHQUFJO0VBQzFDLEFBQUEsaUJBQWlCLENBQVA7SUFBQyxPQUFZLEVBQUMsY0FBQztHQUFnQztFQUN6RCxBQUFBLGtCQUFrQixDQUFQO0lBQUMsT0FBWSxFQUFDLGNBQWlDO0dBQUk7RUFDOUQsQUFBQSxpQkFBaUIsQ0FBUDtJQUFDLE9BQVksRUFBRSxjQUFpQztHQUFJO0VBQzlELEFBQUEsa0JBQWtCLENBQVA7SUFBQyxPQUFZLEVBQUUsY0FBaUM7R0FBSTtFQUMvRCxBQUFBLG1CQUFtQixDQUFQO0lBQUMsT0FBWSxFQUFFLGNBQWlDO0dBQUk7RUFDaEUsQUFBQSxvQkFBb0IsQ0FBUDtJQUFDLE9BQVksRUFBRSxjQUFpQztHQUFJO0VBR2pFLEFBQUEsa0JBQWtCLENBQVQ7SUFBQyxhQUEwQixFQUFHLFdBQWM7R0FBSTtFQUN6RCxBQUFBLG1CQUFtQixDQUFUO0lBQUMsYUFBMEIsRUFBRSxjQUFDO0dBQWdDO0VBQ3hFLEFBQUEsb0JBQW9CLENBQVQ7SUFBQyxhQUEwQixFQUFFLGNBQWlDO0dBQUk7RUFDN0UsQUFBQSxtQkFBbUIsQ0FBVDtJQUFDLGFBQTBCLEVBQUcsY0FBaUM7R0FBSTtFQUM3RSxBQUFBLG9CQUFvQixDQUFUO0lBQUMsYUFBMEIsRUFBRyxjQUFpQztHQUFJO0VBQzlFLEFBQUEscUJBQXFCLENBQVQ7SUFBQyxhQUEwQixFQUFHLGNBQWlDO0dBQUk7RUFDL0UsQUFBQSxzQkFBc0IsQ0FBVDtJQUFDLGFBQTBCLEVBQUcsY0FBaUM7R0FBSTtFQU5oRixBQUFBLGtCQUFrQixDQUFUO0lBQUMsWUFBMEIsRUFBRyxXQUFjO0dBQUk7RUFDekQsQUFBQSxtQkFBbUIsQ0FBVDtJQUFDLFlBQTBCLEVBQUUsY0FBQztHQUFnQztFQUN4RSxBQUFBLG9CQUFvQixDQUFUO0lBQUMsWUFBMEIsRUFBRSxjQUFpQztHQUFJO0VBQzdFLEFBQUEsbUJBQW1CLENBQVQ7SUFBQyxZQUEwQixFQUFHLGNBQWlDO0dBQUk7RUFDN0UsQUFBQSxvQkFBb0IsQ0FBVDtJQUFDLFlBQTBCLEVBQUcsY0FBaUM7R0FBSTtFQUM5RSxBQUFBLHFCQUFxQixDQUFUO0lBQUMsWUFBMEIsRUFBRyxjQUFpQztHQUFJO0VBQy9FLEFBQUEsc0JBQXNCLENBQVQ7SUFBQyxZQUEwQixFQUFHLGNBQWlDO0dBQUk7RUFOaEYsQUFBQSxrQkFBa0IsQ0FBVDtJQUFDLFdBQTBCLEVBQUcsV0FBYztHQUFJO0VBQ3pELEFBQUEsbUJBQW1CLENBQVQ7SUFBQyxXQUEwQixFQUFFLGNBQUM7R0FBZ0M7RUFDeEUsQUFBQSxvQkFBb0IsQ0FBVDtJQUFDLFdBQTBCLEVBQUUsY0FBaUM7R0FBSTtFQUM3RSxBQUFBLG1CQUFtQixDQUFUO0lBQUMsV0FBMEIsRUFBRyxjQUFpQztHQUFJO0VBQzdFLEFBQUEsb0JBQW9CLENBQVQ7SUFBQyxXQUEwQixFQUFHLGNBQWlDO0dBQUk7RUFDOUUsQUFBQSxxQkFBcUIsQ0FBVDtJQUFDLFdBQTBCLEVBQUcsY0FBaUM7R0FBSTtFQUMvRSxBQUFBLHNCQUFzQixDQUFUO0lBQUMsV0FBMEIsRUFBRyxjQUFpQztHQUFJO0VBTmhGLEFBQUEsa0JBQWtCLENBQVQ7SUFBQyxjQUEwQixFQUFHLFdBQWM7R0FBSTtFQUN6RCxBQUFBLG1CQUFtQixDQUFUO0lBQUMsY0FBMEIsRUFBRSxjQUFDO0dBQWdDO0VBQ3hFLEFBQUEsb0JBQW9CLENBQVQ7SUFBQyxjQUEwQixFQUFFLGNBQWlDO0dBQUk7RUFDN0UsQUFBQSxtQkFBbUIsQ0FBVDtJQUFDLGNBQTBCLEVBQUcsY0FBaUM7R0FBSTtFQUM3RSxBQUFBLG9CQUFvQixDQUFUO0lBQUMsY0FBMEIsRUFBRyxjQUFpQztHQUFJO0VBQzlFLEFBQUEscUJBQXFCLENBQVQ7SUFBQyxjQUEwQixFQUFHLGNBQWlDO0dBQUk7RUFDL0UsQUFBQSxzQkFBc0IsQ0FBVDtJQUFDLGNBQTBCLEVBQUcsY0FBaUM7R0FBSTs7O0FDclM1Rjs7Ozs7Ozs7R0FRRztBQU9ILG9CQUFvQjtBSWZwQixVQUFVO0FKa0JULEFBQUEsU0FBUyxDQUFXO0VHRHBCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RURUakMsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztDRkVkOztBQUZELEFJWkEsU0pZUyxBSVpSLE1BQU0sRUpZUCxTQUFTLEFJWFIsTUFBTSxFSldQLFNBQVMsQUlWUixPQUFPLENBQUM7RUZMTixpQkFBb0IsRUFBUyxVQUFDO0VBZWhDLFNBQVksRUFBQyxVQUFDO0NFUmQ7O0FDVkYsWUFBWTtBTHlCWCxBQUFBLFdBQVcsQ0FBVztFR1J0QixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VEVGpDLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7Q0ZTZDs7QUFGRCxBS25CQSxXTG1CVyxBS25CVixNQUFNLEVMbUJQLFdBQVcsQUtsQlYsTUFBTSxFTGtCUCxXQUFXLEFLakJWLE9BQU8sQ0FBQztFSExOLGlCQUFvQixFQUFTLFVBQUM7RUFlaEMsU0FBWSxFQUFDLFVBQUM7Q0dSZDs7QUNWRixXQUFXO0FKd0JQLGtCQUFrQixDQUFsQixTQUFrQjtFSXRCckIsR0FBRztJSkNBLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7O0VJWmYsR0FBRztJSkhBLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLFNBQVU7RUk3Q1gsR0FBRztJSkNBLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7O0VJWmYsR0FBRztJSkhBLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7Ozs7QUZjZixBQUFBLFVBQVUsQ0FBVztFR2ZyQixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0NIc0JuQzs7QUFGRCxBTWxCQSxVTmtCVSxBTWxCVCxNQUFNLEVOa0JQLFVBQVUsQU1qQlQsTUFBTSxFTmlCUCxVQUFVLEFNaEJULE9BQU8sQ0FBQztFSmJOLHNCQUFvQixFQUFTLFNBQUM7RUFlaEMsY0FBWSxFQUFDLFNBQUM7RUFmWiwwQkFBb0IsRUFBUyxFQUFDO0VBZWhDLGtCQUFZLEVBQUMsRUFBQztFQWZaLGlDQUFvQixFQUFTLE1BQUM7RUFlaEMseUJBQVksRUFBQyxNQUFDO0VBZlosaUNBQW9CLEVBQVMsUUFBQztFQWVoQyx5QkFBWSxFQUFDLFFBQUM7Q0lHZDs7QUNyQkYsZ0JBQWdCO0FMd0JaLGtCQUFrQixDQUFsQixjQUFrQjtFS3RCckIsRUFBRTtJTENDLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLGNBQVU7RUs3Q1gsRUFBRTtJTENDLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7Ozs7QUZxQmYsQUFBQSxlQUFlLENBQVc7RUd0QjFCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7Q0g2Qm5DOztBQUZELEFPN0JBLGVQNkJlLEFPN0JkLE1BQU0sRVA2QlAsZUFBZSxBTzVCZCxNQUFNLEVQNEJQLGVBQWUsQU8zQmQsT0FBTyxDQUFDO0VMVE4sc0JBQW9CLEVBQVMsY0FBQztFQWVoQyxjQUFZLEVBQUMsY0FBQztFQWZaLDBCQUFvQixFQUFTLElBQUM7RUFlaEMsa0JBQVksRUFBQyxJQUFDO0VBZlosaUNBQW9CLEVBQVMsTUFBQztFQWVoQyx5QkFBWSxFQUFDLE1BQUM7RUFmWixpQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLHlCQUFZLEVBQUMsUUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0NLQWQ7O0FDbEJGLGtCQUFrQjtBTndCZCxrQkFBa0IsQ0FBbEIsZ0JBQWtCO0VNdEJyQixFQUFFO0lOQ0MsaUJBQW9CLEVBQVMsVUFBQztJQWVoQyxTQUFZLEVBQUMsVUFBQzs7OztBQTZCZCxVQUFVLENBQVYsZ0JBQVU7RU03Q1gsRUFBRTtJTkNDLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7Ozs7QUY0QmYsQUFBQSxpQkFBaUIsQ0FBVztFRzdCNUIsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtDSG9DbkM7O0FBRkQsQVFwQ0EsaUJSb0NpQixBUXBDaEIsTUFBTSxFUm9DUCxpQkFBaUIsQVFuQ2hCLE1BQU0sRVJtQ1AsaUJBQWlCLEFRbENoQixPQUFPLENBQUM7RU5UTixzQkFBb0IsRUFBUyxnQkFBQztFQWVoQyxjQUFZLEVBQUMsZ0JBQUM7RUFmWiwwQkFBb0IsRUFBUyxJQUFDO0VBZWhDLGtCQUFZLEVBQUMsSUFBQztFQWZaLGlDQUFvQixFQUFTLE1BQUM7RUFlaEMseUJBQVksRUFBQyxNQUFDO0VBZlosaUNBQW9CLEVBQVMsUUFBQztFQWVoQyx5QkFBWSxFQUFDLFFBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztDTUFkOztBQ2xCRixVQUFVO0FQd0JOLGtCQUFrQixDQUFsQixRQUFrQjtFT3RCckIsR0FBRztJUENBLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7O0VPWmYsSUFBSTtJUEhELGlCQUFvQixFQUFTLFFBQUM7SUFlaEMsU0FBWSxFQUFDLFFBQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLFFBQVU7RU83Q1gsR0FBRztJUENBLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7O0VPWmYsSUFBSTtJUEhELGlCQUFvQixFQUFTLFFBQUM7SUFlaEMsU0FBWSxFQUFDLFFBQUM7Ozs7QUZtQ2YsQUFBQSxTQUFTLENBQVc7RUdwQ3BCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7Q0gyQ25DOztBQUZELEFTdkNBLFNUdUNTLEFTdkNSLE1BQU0sRVR1Q1AsU0FBUyxBU3RDUixNQUFNLEVUc0NQLFNBQVMsQVNyQ1IsT0FBTyxDQUFDO0VQYk4sc0JBQW9CLEVBQVMsUUFBQztFQWVoQyxjQUFZLEVBQUMsUUFBQztFQWZaLDBCQUFvQixFQUFTLElBQUM7RUFlaEMsa0JBQVksRUFBQyxJQUFDO0VBZlosaUNBQW9CLEVBQVMsTUFBQztFQWVoQyx5QkFBWSxFQUFDLE1BQUM7RUFmWixpQ0FBb0IsRUFBUyxDQUFDO0VBZWhDLHlCQUFZLEVBQUMsQ0FBQztDT0dkOztBQ3JCRixTQUFTO0FSd0JMLGtCQUFrQixDQUFsQixPQUFrQjtFUXRCckIsR0FBRztJUkNBLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLE9BQVU7RVE3Q1gsR0FBRztJUkNBLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7Ozs7QUYwQ2YsQUFBQSxRQUFRLENBQVc7RUczQ25CLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7Q0hrRG5DOztBQUZELEFVbERBLFFWa0RRLEFVbERQLE1BQU0sRVZrRFAsUUFBUSxBVWpEUCxNQUFNLEVWaURQLFFBQVEsQVVoRFAsT0FBTyxDQUFDO0VSVE4sc0JBQW9CLEVBQVMsT0FBQztFQWVoQyxjQUFZLEVBQUMsT0FBQztFQWZaLDBCQUFvQixFQUFTLElBQUM7RUFlaEMsa0JBQVksRUFBQyxJQUFDO0VBZlosaUNBQW9CLEVBQVMsTUFBQztFQWVoQyx5QkFBWSxFQUFDLE1BQUM7RUFmWixpQ0FBb0IsRUFBUyxDQUFDO0VBZWhDLHlCQUFZLEVBQUMsQ0FBQztDUURkOztBQ2pCRixlQUFlO0FYbUVkLEFBQUEsY0FBYyxDQUFXO0VHbER6QixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VEVGpDLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0NGbURkOztBQUZELEFXOURBLGNYOERjLEFXOURiLE1BQU0sRVg4RFAsY0FBYyxBVzdEYixNQUFNLEVYNkRQLGNBQWMsQVc1RGIsT0FBTyxDQUFDO0VUSk4saUJBQW9CLEVBQVMsVUFBQztFQWVoQyxTQUFZLEVBQUMsVUFBQztFQWZaLGtDQUFvQixFQUFTLHFDQUFDO0VBZWhDLDBCQUFZLEVBQUMscUNBQUM7Q1NSZDs7QUNWRixnQkFBZ0I7QVowRWYsQUFBQSxlQUFlLENBQVc7RUd6RDFCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RURUakMsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0YwRGQ7O0FBRkQsQVlyRUEsZVpxRWUsQVlyRWQsTUFBTSxFWnFFUCxlQUFlLEFZcEVkLE1BQU0sRVpvRVAsZUFBZSxBWW5FZCxPQUFPLENBQUM7RVZKTixpQkFBb0IsRUFBUyxVQUFDO0VBZWhDLFNBQVksRUFBQyxVQUFDO0VBZlosa0NBQW9CLEVBQVMscUNBQUM7RUFlaEMsMEJBQVksRUFBQyxxQ0FBQztDVVJkOztBQ1ZGLFlBQVk7QWJpRlgsQUFBQSxXQUFXLENBQVc7RUdoRXRCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RURUakMsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztDRmlFZDs7QUFGRCxBYTNFQSxXYjJFVyxBYTNFVixNQUFNLEViMkVQLFdBQVcsQWExRVYsTUFBTSxFYjBFUCxXQUFXLEFhekVWLE9BQU8sQ0FBQztFWExOLGlCQUFvQixFQUFTLFlBQUM7RUFlaEMsU0FBWSxFQUFDLFlBQUM7Q1dSZDs7QUNWRixpQkFBaUI7QWR3RmhCLEFBQUEsZ0JBQWdCLENBQVc7RUd2RTNCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RURUakMsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztDRndFZDs7QUFGRCxBY2xGQSxnQmRrRmdCLEFjbEZmLE1BQU0sRWRrRlAsZ0JBQWdCLEFjakZmLE1BQU0sRWRpRlAsZ0JBQWdCLEFjaEZmLE9BQU8sQ0FBQztFWkxOLGlCQUFvQixFQUFTLHVCQUFDO0VBZWhDLFNBQVksRUFBQyx1QkFBQztDWVJkOztBQ1ZGLFdBQVc7QWYrRlYsQUFBQSxVQUFVLENBQVc7RUc5RXJCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RURUakMsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0NGK0VkOztBQUZELEFleEZBLFVmd0ZVLEFleEZULE1BQU0sRWZ3RlAsVUFBVSxBZXZGVCxNQUFNLEVmdUZQLFVBQVUsQWV0RlQsT0FBTyxDQUFDO0ViTk4saUJBQW9CLEVBQVMsZ0JBQUM7RUFlaEMsU0FBWSxFQUFDLGdCQUFDO0NhUGQ7O0FDWEYsVUFBVTtBaEJzR1QsQUFBQSxTQUFTLENBQVc7RUdyRnBCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RURUakMsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0NGc0ZkOztBQUZELEFnQi9GQSxTaEIrRlMsQWdCL0ZSLE1BQU0sRWhCK0ZQLFNBQVMsQWdCOUZSLE1BQU0sRWhCOEZQLFNBQVMsQWdCN0ZSLE9BQU8sQ0FBQztFZE5OLGlCQUFvQixFQUFTLGVBQUM7RUFlaEMsU0FBWSxFQUFDLGVBQUM7Q2NQZDs7QUNYRixTQUFTO0Fmd0JMLGtCQUFrQixDQUFsQixPQUFrQjtFZXRCckIsRUFBRTtJZkNDLGlCQUFvQixFQUFTLGdCQUFDO0lBZWhDLFNBQVksRUFBQyxnQkFBQzs7RWViZixHQUFHO0lmRkEsaUJBQW9CLEVBQVMsZ0JBQUM7SUFlaEMsU0FBWSxFQUFDLGdCQUFDOztFZVZmLElBQUk7SWZMRCxpQkFBb0IsRUFBUyxnQkFBQztJQWVoQyxTQUFZLEVBQUMsZ0JBQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLE9BQVU7RWU3Q1gsRUFBRTtJZkNDLGlCQUFvQixFQUFTLGdCQUFDO0lBZWhDLFNBQVksRUFBQyxnQkFBQzs7RWViZixHQUFHO0lmRkEsaUJBQW9CLEVBQVMsZ0JBQUM7SUFlaEMsU0FBWSxFQUFDLGdCQUFDOztFZVZmLElBQUk7SWZMRCxpQkFBb0IsRUFBUyxnQkFBQztJQWVoQyxTQUFZLEVBQUMsZ0JBQUM7Ozs7QUFNWixrQkFBa0IsQ0FBbEIsYUFBa0I7RWVWckIsSUFBSTtJZlhELGlCQUFvQixFQUFTLGdCQUFDO0lBZWhDLFNBQVksRUFBQyxnQkFBQzs7OztBQTZCZCxVQUFVLENBQVYsYUFBVTtFZWpDWCxJQUFJO0lmWEQsaUJBQW9CLEVBQVMsZ0JBQUM7SUFlaEMsU0FBWSxFQUFDLGdCQUFDOzs7O0FGMkZmLEFBQUEsUUFBUSxDQUFXO0VHNUZuQixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0NIbUduQzs7QUFGRCxBaUJ2RkEsUWpCdUZRLEFpQnZGUCxNQUFNLEVqQnVGUCxRQUFRLEFpQnRGUCxNQUFNLEVqQnNGUCxRQUFRLEFpQnJGUCxPQUFPLENBQUM7RWZyQk4sc0JBQW9CLEVBQVMsc0JBQUM7RUFlaEMsY0FBWSxFQUFDLHNCQUFDO0VBZlosMEJBQW9CLEVBQVMsU0FBQztFQWVoQyxrQkFBWSxFQUFDLFNBQUM7RUFmWix1QkFBb0IsRUFBUyxPQUFDO0VBZWhDLGVBQVksRUFBQyxPQUFDO0VBZlosaUNBQW9CLEVBQVMscUJBQUM7RUFlaEMseUJBQVksRUFBQyxxQkFBQztFQWZaLGlDQUFvQixFQUFTLFdBQUM7RUFlaEMseUJBQVksRUFBQyxXQUFDO0VBZlosMkJBQW9CLEVBQVMsUUFBQztFQWVoQyxtQkFBWSxFQUFDLFFBQUM7RUFmWiwyQkFBb0IsRUFBUyxpQkFBQztFQWVoQyxtQkFBWSxFQUFDLGlCQUFDO0NlY2Q7O0FDaENGLFVBQVU7QWhCd0JOLGtCQUFrQixDQUFsQixRQUFrQjtFZ0J0QnJCLEVBQUU7SWhCQ0MsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RWdCYmYsR0FBRztJaEJGQSxpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOztFZ0JWZixJQUFJO0loQkxELGlCQUFvQixFQUFTLGVBQUM7SUFlaEMsU0FBWSxFQUFDLGVBQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLFFBQVU7RWdCN0NYLEVBQUU7SWhCQ0MsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RWdCYmYsR0FBRztJaEJGQSxpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOztFZ0JWZixJQUFJO0loQkxELGlCQUFvQixFQUFTLGVBQUM7SUFlaEMsU0FBWSxFQUFDLGVBQUM7Ozs7QUFNWixrQkFBa0IsQ0FBbEIsYUFBa0I7RWdCVnJCLElBQUk7SWhCWEQsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7OztBQTZCZCxVQUFVLENBQVYsYUFBVTtFZ0JqQ1gsSUFBSTtJaEJYRCxpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOzs7O0FGa0dmLEFBQUEsU0FBUyxDQUFXO0VHbkdwQixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0NIMEduQzs7QUFGRCxBa0I5RkEsU2xCOEZTLEFrQjlGUixNQUFNLEVsQjhGUCxTQUFTLEFrQjdGUixNQUFNLEVsQjZGUCxTQUFTLEFrQjVGUixPQUFPLENBQUM7RWhCckJOLHNCQUFvQixFQUFTLHVCQUFDO0VBZWhDLGNBQVksRUFBQyx1QkFBQztFQWZaLDBCQUFvQixFQUFTLFNBQUM7RUFlaEMsa0JBQVksRUFBQyxTQUFDO0VBZlosdUJBQW9CLEVBQVMsT0FBQztFQWVoQyxlQUFZLEVBQUMsT0FBQztFQWZaLGlDQUFvQixFQUFTLHFCQUFDO0VBZWhDLHlCQUFZLEVBQUMscUJBQUM7RUFmWixpQ0FBb0IsRUFBUyxXQUFDO0VBZWhDLHlCQUFZLEVBQUMsV0FBQztFQWZaLDJCQUFvQixFQUFTLFFBQUM7RUFlaEMsbUJBQVksRUFBQyxRQUFDO0VBZlosMkJBQW9CLEVBQVMsaUJBQUM7RUFlaEMsbUJBQVksRUFBQyxpQkFBQztDZ0JjZDs7QUNoQ0YsVUFBVTtBbkIySFQsQUFBQSxTQUFTLENBQVc7RUcxR3BCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RURUakMsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztDRjJHZDs7QUFGRCxBbUJySEEsU25CcUhTLEFtQnJIUixNQUFNLEVuQnFIUCxTQUFTLEFtQnBIUixNQUFNLEVuQm9IUCxTQUFTLEFtQm5IUixPQUFPLENBQUM7RWpCTE4saUJBQW9CLEVBQVMsWUFBQztFQWVoQyxTQUFZLEVBQUMsWUFBQztDaUJSZDs7QUNWRixrQkFBa0I7QXBCa0lqQixBQUFBLGlCQUFpQixDQUFXO0VHakg1QixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VEVGpDLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7RUFmWix3QkFBb0IsRUFBUyxNQUFDO0VBZWhDLGdCQUFZLEVBQUMsTUFBQztDRmtIZDs7QUFGRCxBb0IzSEEsaUJwQjJIaUIsQW9CM0hoQixNQUFNLEVwQjJIUCxpQkFBaUIsQW9CMUhoQixNQUFNLEVwQjBIUCxpQkFBaUIsQW9CekhoQixPQUFPLENBQUM7RWxCTk4saUJBQW9CLEVBQVMsWUFBQztFQWVoQyxTQUFZLEVBQUMsWUFBQztDa0JQZDs7QUNYRixtQkFBbUI7QXJCeUlsQixBQUFBLGtCQUFrQixDQUFXO0VHeEg3QixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VEVGpDLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7RUFmWix3QkFBb0IsRUFBUyxNQUFDO0VBZWhDLGdCQUFZLEVBQUMsTUFBQztDRnlIZDs7QUFGRCxBcUJsSUEsa0JyQmtJa0IsQXFCbElqQixNQUFNLEVyQmtJUCxrQkFBa0IsQXFCaklqQixNQUFNLEVyQmlJUCxrQkFBa0IsQXFCaElqQixPQUFPLENBQUM7RW5CTk4saUJBQW9CLEVBQVMsV0FBQztFQWVoQyxTQUFZLEVBQUMsV0FBQztDbUJQZDs7QUNYRixxQkFBcUI7QXBCd0JqQixrQkFBa0IsQ0FBbEIsbUJBQWtCO0VvQnRCckIsTUFBTTtJcEJDSCxpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOztFb0JaZixLQUFLO0lwQkhGLGlCQUFvQixFQUFTLGdCQUFDO0lBZWhDLFNBQVksRUFBQyxnQkFBQzs7RW9CUmYsTUFBTTtJcEJQSCxpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOztFb0JKZixLQUFLO0lwQlhGLGlCQUFvQixFQUFTLGdCQUFDO0lBZWhDLFNBQVksRUFBQyxnQkFBQzs7RW9CQWYsTUFBTTtJcEJmSCxpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOztFb0JJZixJQUFJO0lwQm5CRCxpQkFBb0IsRUFBUyxhQUFDO0lBZWhDLFNBQVksRUFBQyxhQUFDOzs7O0FBNkJkLFVBQVUsQ0FBVixtQkFBVTtFb0I3Q1gsTUFBTTtJcEJDSCxpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOztFb0JaZixLQUFLO0lwQkhGLGlCQUFvQixFQUFTLGdCQUFDO0lBZWhDLFNBQVksRUFBQyxnQkFBQzs7RW9CUmYsTUFBTTtJcEJQSCxpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOztFb0JKZixLQUFLO0lwQlhGLGlCQUFvQixFQUFTLGdCQUFDO0lBZWhDLFNBQVksRUFBQyxnQkFBQzs7RW9CQWYsTUFBTTtJcEJmSCxpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOztFb0JJZixJQUFJO0lwQm5CRCxpQkFBb0IsRUFBUyxhQUFDO0lBZWhDLFNBQVksRUFBQyxhQUFDOzs7O0FGOEhmLEFBQUEsb0JBQW9CLENBQVc7RUcvSC9CLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7Q0hzSW5DOztBQUZELEFzQmxIQSxvQnRCa0hvQixBc0JsSG5CLE1BQU0sRXRCa0hQLG9CQUFvQixBc0JqSG5CLE1BQU0sRXRCaUhQLG9CQUFvQixBc0JoSG5CLE9BQU8sQ0FBQztFcEI3Qk4sc0JBQW9CLEVBQVMsbUJBQUM7RUFlaEMsY0FBWSxFQUFDLG1CQUFDO0VBZlosMEJBQW9CLEVBQVMsRUFBQztFQWVoQyxrQkFBWSxFQUFDLEVBQUM7RUFmWixpQ0FBb0IsRUFBUyxXQUFDO0VBZWhDLHlCQUFZLEVBQUMsV0FBQztFQWZaLGlDQUFvQixFQUFTLENBQUM7RUFlaEMseUJBQVksRUFBQyxDQUFDO0NvQm1CZDs7QUNyQ0YsdUJBQXVCO0FyQndCbkIsa0JBQWtCLENBQWxCLHFCQUFrQjtFcUJ0QnJCLE1BQU07SXJCQ0gsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RXFCWmYsS0FBSztJckJIRixpQkFBb0IsRUFBUyxnQkFBQztJQWVoQyxTQUFZLEVBQUMsZ0JBQUM7O0VxQlJmLE1BQU07SXJCUEgsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RXFCSmYsS0FBSztJckJYRixpQkFBb0IsRUFBUyxnQkFBQztJQWVoQyxTQUFZLEVBQUMsZ0JBQUM7O0VxQkFmLE1BQU07SXJCZkgsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RXFCSWYsSUFBSTtJckJuQkQsaUJBQW9CLEVBQVMsYUFBQztJQWVoQyxTQUFZLEVBQUMsYUFBQzs7OztBQTZCZCxVQUFVLENBQVYscUJBQVU7RXFCN0NYLE1BQU07SXJCQ0gsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RXFCWmYsS0FBSztJckJIRixpQkFBb0IsRUFBUyxnQkFBQztJQWVoQyxTQUFZLEVBQUMsZ0JBQUM7O0VxQlJmLE1BQU07SXJCUEgsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RXFCSmYsS0FBSztJckJYRixpQkFBb0IsRUFBUyxnQkFBQztJQWVoQyxTQUFZLEVBQUMsZ0JBQUM7O0VxQkFmLE1BQU07SXJCZkgsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RXFCSWYsSUFBSTtJckJuQkQsaUJBQW9CLEVBQVMsYUFBQztJQWVoQyxTQUFZLEVBQUMsYUFBQzs7OztBRnFJZixBQUFBLHNCQUFzQixDQUFXO0VHdElqQyxPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0NINkluQzs7QUFGRCxBdUJ6SEEsc0J2QnlIc0IsQXVCekhyQixNQUFNLEV2QnlIUCxzQkFBc0IsQXVCeEhyQixNQUFNLEV2QndIUCxzQkFBc0IsQXVCdkhyQixPQUFPLENBQUM7RXJCN0JOLHNCQUFvQixFQUFTLHFCQUFDO0VBZWhDLGNBQVksRUFBQyxxQkFBQztFQWZaLDBCQUFvQixFQUFTLEVBQUM7RUFlaEMsa0JBQVksRUFBQyxFQUFDO0VBZlosaUNBQW9CLEVBQVMsV0FBQztFQWVoQyx5QkFBWSxFQUFDLFdBQUM7RUFmWixpQ0FBb0IsRUFBUyxDQUFDO0VBZWhDLHlCQUFZLEVBQUMsQ0FBQztDcUJtQmQ7O0FDckNGLDRCQUE0QjtBdEJ3QnhCLGtCQUFrQixDQUFsQiwwQkFBa0I7RXNCdEJyQixNQUFNO0l0QkNILGlCQUFvQixFQUFTLG1CQUFDO0lBZWhDLFNBQVksRUFBQyxtQkFBQzs7RXNCWmYsS0FBSztJdEJIRixpQkFBb0IsRUFBUyxxQkFBQztJQWVoQyxTQUFZLEVBQUMscUJBQUM7O0VzQlJmLE1BQU07SXRCUEgsaUJBQW9CLEVBQVMsbUJBQUM7SUFlaEMsU0FBWSxFQUFDLG1CQUFDOztFc0JKZixLQUFLO0l0QlhGLGlCQUFvQixFQUFTLHFCQUFDO0lBZWhDLFNBQVksRUFBQyxxQkFBQzs7RXNCQWYsTUFBTTtJdEJmSCxpQkFBb0IsRUFBUyxtQkFBQztJQWVoQyxTQUFZLEVBQUMsbUJBQUM7O0VzQklmLElBQUk7SXRCbkJELGlCQUFvQixFQUFTLGVBQUM7SUFlaEMsU0FBWSxFQUFDLGVBQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLDBCQUFVO0VzQjdDWCxNQUFNO0l0QkNILGlCQUFvQixFQUFTLG1CQUFDO0lBZWhDLFNBQVksRUFBQyxtQkFBQzs7RXNCWmYsS0FBSztJdEJIRixpQkFBb0IsRUFBUyxxQkFBQztJQWVoQyxTQUFZLEVBQUMscUJBQUM7O0VzQlJmLE1BQU07SXRCUEgsaUJBQW9CLEVBQVMsbUJBQUM7SUFlaEMsU0FBWSxFQUFDLG1CQUFDOztFc0JKZixLQUFLO0l0QlhGLGlCQUFvQixFQUFTLHFCQUFDO0lBZWhDLFNBQVksRUFBQyxxQkFBQzs7RXNCQWYsTUFBTTtJdEJmSCxpQkFBb0IsRUFBUyxtQkFBQztJQWVoQyxTQUFZLEVBQUMsbUJBQUM7O0VzQklmLElBQUk7SXRCbkJELGlCQUFvQixFQUFTLGVBQUM7SUFlaEMsU0FBWSxFQUFDLGVBQUM7Ozs7QUY0SWYsQUFBQSwyQkFBMkIsQ0FBVztFRzdJdEMsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtDSG9KbkM7O0FBRkQsQXdCaElBLDJCeEJnSTJCLEF3QmhJMUIsTUFBTSxFeEJnSVAsMkJBQTJCLEF3Qi9IMUIsTUFBTSxFeEIrSFAsMkJBQTJCLEF3QjlIMUIsT0FBTyxDQUFDO0V0QjdCTixzQkFBb0IsRUFBUywwQkFBQztFQWVoQyxjQUFZLEVBQUMsMEJBQUM7RUFmWiwwQkFBb0IsRUFBUyxFQUFDO0VBZWhDLGtCQUFZLEVBQUMsRUFBQztFQWZaLGlDQUFvQixFQUFTLFdBQUM7RUFlaEMseUJBQVksRUFBQyxXQUFDO0VBZlosaUNBQW9CLEVBQVMsQ0FBQztFQWVoQyx5QkFBWSxFQUFDLENBQUM7Q3NCbUJkOztBQ3JDRix5QkFBeUI7QXZCd0JyQixrQkFBa0IsQ0FBbEIsdUJBQWtCO0V1QnRCcEIsTUFBTTtJdkJDSixpQkFBb0IsRUFBUyxvQkFBQztJQWVoQyxTQUFZLEVBQUMsb0JBQUM7O0V1QlpkLEtBQUs7SXZCSEgsaUJBQW9CLEVBQVMsb0JBQUM7SUFlaEMsU0FBWSxFQUFDLG9CQUFDOztFdUJSZCxNQUFNO0l2QlBKLGlCQUFvQixFQUFTLG9CQUFDO0lBZWhDLFNBQVksRUFBQyxvQkFBQzs7RXVCSmQsS0FBSztJdkJYSCxpQkFBb0IsRUFBUyxvQkFBQztJQWVoQyxTQUFZLEVBQUMsb0JBQUM7O0V1QkFkLE1BQU07SXZCZkosaUJBQW9CLEVBQVMsb0JBQUM7SUFlaEMsU0FBWSxFQUFDLG9CQUFDOztFdUJJZCxJQUFJO0l2Qm5CRixpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOzs7O0FBNkJkLFVBQVUsQ0FBVix1QkFBVTtFdUI3Q1YsTUFBTTtJdkJDSixpQkFBb0IsRUFBUyxvQkFBQztJQWVoQyxTQUFZLEVBQUMsb0JBQUM7O0V1QlpkLEtBQUs7SXZCSEgsaUJBQW9CLEVBQVMsb0JBQUM7SUFlaEMsU0FBWSxFQUFDLG9CQUFDOztFdUJSZCxNQUFNO0l2QlBKLGlCQUFvQixFQUFTLG9CQUFDO0lBZWhDLFNBQVksRUFBQyxvQkFBQzs7RXVCSmQsS0FBSztJdkJYSCxpQkFBb0IsRUFBUyxvQkFBQztJQWVoQyxTQUFZLEVBQUMsb0JBQUM7O0V1QkFkLE1BQU07SXZCZkosaUJBQW9CLEVBQVMsb0JBQUM7SUFlaEMsU0FBWSxFQUFDLG9CQUFDOztFdUJJZCxJQUFJO0l2Qm5CRixpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOzs7O0FGbUpmLEFBQUEsd0JBQXdCLENBQVc7RUdwSm5DLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7Q0gySm5DOztBQUZELEF5QnZJQSx3QnpCdUl3QixBeUJ2SXZCLE1BQU0sRXpCdUlQLHdCQUF3QixBeUJ0SXBCLE1BQU0sRXpCc0lWLHdCQUF3QixBeUJySXBCLE9BQU8sQ0FBQztFdkI3QlQsc0JBQW9CLEVBQVMsdUJBQUM7RUFlaEMsY0FBWSxFQUFDLHVCQUFDO0VBZlosMEJBQW9CLEVBQVMsRUFBQztFQWVoQyxrQkFBWSxFQUFDLEVBQUM7RUFmWixpQ0FBb0IsRUFBUyxXQUFDO0VBZWhDLHlCQUFZLEVBQUMsV0FBQztFQWZaLGlDQUFvQixFQUFTLENBQUM7RUFlaEMseUJBQVksRUFBQyxDQUFDO0N1Qm1CZDs7QUNyQ0YsZ0JBQWdCO0F4QndCWixrQkFBa0IsQ0FBbEIsY0FBa0I7RXdCdEJyQixNQUFNO0l4QkNILGlCQUFvQixFQUFTLFlBQUM7SUFlaEMsU0FBWSxFQUFDLFlBQUM7O0V3QlpmLEtBQUs7SXhCSEYsaUJBQW9CLEVBQVMsV0FBQztJQWVoQyxTQUFZLEVBQUMsV0FBQzs7RXdCUmYsTUFBTTtJeEJQSCxpQkFBb0IsRUFBUyxXQUFDO0lBZWhDLFNBQVksRUFBQyxXQUFDOztFd0JKZixLQUFLO0l4QlhGLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7O0V3QkFmLE1BQU07SXhCZkgsaUJBQW9CLEVBQVMsV0FBQztJQWVoQyxTQUFZLEVBQUMsV0FBQzs7RXdCSWYsSUFBSTtJeEJuQkQsaUJBQW9CLEVBQVMsT0FBQztJQWVoQyxTQUFZLEVBQUMsT0FBQzs7OztBQTZCZCxVQUFVLENBQVYsY0FBVTtFd0I3Q1gsTUFBTTtJeEJDSCxpQkFBb0IsRUFBUyxZQUFDO0lBZWhDLFNBQVksRUFBQyxZQUFDOztFd0JaZixLQUFLO0l4QkhGLGlCQUFvQixFQUFTLFdBQUM7SUFlaEMsU0FBWSxFQUFDLFdBQUM7O0V3QlJmLE1BQU07SXhCUEgsaUJBQW9CLEVBQVMsV0FBQztJQWVoQyxTQUFZLEVBQUMsV0FBQzs7RXdCSmYsS0FBSztJeEJYRixpQkFBb0IsRUFBUyxVQUFDO0lBZWhDLFNBQVksRUFBQyxVQUFDOztFd0JBZixNQUFNO0l4QmZILGlCQUFvQixFQUFTLFdBQUM7SUFlaEMsU0FBWSxFQUFDLFdBQUM7O0V3QklmLElBQUk7SXhCbkJELGlCQUFvQixFQUFTLE9BQUM7SUFlaEMsU0FBWSxFQUFDLE9BQUM7Ozs7QUYwSmYsQUFBQSxlQUFlLENBQVc7RUczSjFCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RURUakMsd0JBQW9CLEVBQVMsTUFBQztFQWVoQyxnQkFBWSxFQUFDLE1BQUM7Q0Y0SmQ7O0FBRkQsQTBCN0lBLGUxQjZJZSxBMEI3SWQsTUFBTSxFMUI2SVAsZUFBZSxBMEI1SWQsTUFBTSxFMUI0SVAsZUFBZSxBMEIzSWQsT0FBTyxDQUFDO0V4QjlCTixzQkFBb0IsRUFBUyxjQUFDO0VBZWhDLGNBQVksRUFBQyxjQUFDO0VBZlosMEJBQW9CLEVBQVMsRUFBQztFQWVoQyxrQkFBWSxFQUFDLEVBQUM7RUFmWixpQ0FBb0IsRUFBUyxXQUFDO0VBZWhDLHlCQUFZLEVBQUMsV0FBQztFQWZaLGlDQUFvQixFQUFTLENBQUM7RUFlaEMseUJBQVksRUFBQyxDQUFDO0N3Qm9CZDs7QUN0Q0YsbUJBQW1CO0F6QndCZixrQkFBa0IsQ0FBbEIsaUJBQWtCO0V5QnRCckIsTUFBTTtJekJDSCxpQkFBb0IsRUFBUyxZQUFDO0lBZWhDLFNBQVksRUFBQyxZQUFDOztFeUJaZixLQUFLO0l6QkhGLGlCQUFvQixFQUFTLFdBQUM7SUFlaEMsU0FBWSxFQUFDLFdBQUM7O0V5QlJmLE1BQU07SXpCUEgsaUJBQW9CLEVBQVMsV0FBQztJQWVoQyxTQUFZLEVBQUMsV0FBQzs7RXlCSmYsS0FBSztJekJYRixpQkFBb0IsRUFBUyxVQUFDO0lBZWhDLFNBQVksRUFBQyxVQUFDOztFeUJBZixNQUFNO0l6QmZILGlCQUFvQixFQUFTLFdBQUM7SUFlaEMsU0FBWSxFQUFDLFdBQUM7O0V5QklmLElBQUk7SXpCbkJELGlCQUFvQixFQUFTLE9BQUM7SUFlaEMsU0FBWSxFQUFDLE9BQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLGlCQUFVO0V5QjdDWCxNQUFNO0l6QkNILGlCQUFvQixFQUFTLFlBQUM7SUFlaEMsU0FBWSxFQUFDLFlBQUM7O0V5QlpmLEtBQUs7SXpCSEYsaUJBQW9CLEVBQVMsV0FBQztJQWVoQyxTQUFZLEVBQUMsV0FBQzs7RXlCUmYsTUFBTTtJekJQSCxpQkFBb0IsRUFBUyxXQUFDO0lBZWhDLFNBQVksRUFBQyxXQUFDOztFeUJKZixLQUFLO0l6QlhGLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7O0V5QkFmLE1BQU07SXpCZkgsaUJBQW9CLEVBQVMsV0FBQztJQWVoQyxTQUFZLEVBQUMsV0FBQzs7RXlCSWYsSUFBSTtJekJuQkQsaUJBQW9CLEVBQVMsT0FBQztJQWVoQyxTQUFZLEVBQUMsT0FBQzs7OztBRmlLZixBQUFBLGtCQUFrQixDQUFXO0VHbEs3QixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VEVGpDLHdCQUFvQixFQUFTLE1BQUM7RUFlaEMsZ0JBQVksRUFBQyxNQUFDO0NGbUtkOztBQUZELEEyQnBKQSxrQjNCb0prQixBMkJwSmpCLE1BQU0sRTNCb0pQLGtCQUFrQixBMkJuSmpCLE1BQU0sRTNCbUpQLGtCQUFrQixBMkJsSmpCLE9BQU8sQ0FBQztFekI5Qk4sc0JBQW9CLEVBQVMsaUJBQUM7RUFlaEMsY0FBWSxFQUFDLGlCQUFDO0VBZlosMEJBQW9CLEVBQVMsRUFBQztFQWVoQyxrQkFBWSxFQUFDLEVBQUM7RUFmWixpQ0FBb0IsRUFBUyxXQUFDO0VBZWhDLHlCQUFZLEVBQUMsV0FBQztFQWZaLGlDQUFvQixFQUFTLENBQUM7RUFlaEMseUJBQVksRUFBQyxDQUFDO0N5Qm9CZDs7QUN0Q0YsaUJBQWlCO0ExQndCYixrQkFBa0IsQ0FBbEIsZUFBa0I7RTBCdEJyQixNQUFNO0kxQkNILGlCQUFvQixFQUFTLFlBQUM7SUFlaEMsU0FBWSxFQUFDLFlBQUM7O0UwQlpmLEtBQUs7STFCSEYsaUJBQW9CLEVBQVMsV0FBQztJQWVoQyxTQUFZLEVBQUMsV0FBQzs7RTBCUmYsTUFBTTtJMUJQSCxpQkFBb0IsRUFBUyxXQUFDO0lBZWhDLFNBQVksRUFBQyxXQUFDOztFMEJKZixLQUFLO0kxQlhGLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7O0UwQkFmLE1BQU07STFCZkgsaUJBQW9CLEVBQVMsV0FBQztJQWVoQyxTQUFZLEVBQUMsV0FBQzs7RTBCSWYsSUFBSTtJMUJuQkQsaUJBQW9CLEVBQVMsT0FBQztJQWVoQyxTQUFZLEVBQUMsT0FBQzs7OztBQTZCZCxVQUFVLENBQVYsZUFBVTtFMEI3Q1gsTUFBTTtJMUJDSCxpQkFBb0IsRUFBUyxZQUFDO0lBZWhDLFNBQVksRUFBQyxZQUFDOztFMEJaZixLQUFLO0kxQkhGLGlCQUFvQixFQUFTLFdBQUM7SUFlaEMsU0FBWSxFQUFDLFdBQUM7O0UwQlJmLE1BQU07STFCUEgsaUJBQW9CLEVBQVMsV0FBQztJQWVoQyxTQUFZLEVBQUMsV0FBQzs7RTBCSmYsS0FBSztJMUJYRixpQkFBb0IsRUFBUyxVQUFDO0lBZWhDLFNBQVksRUFBQyxVQUFDOztFMEJBZixNQUFNO0kxQmZILGlCQUFvQixFQUFTLFdBQUM7SUFlaEMsU0FBWSxFQUFDLFdBQUM7O0UwQklmLElBQUk7STFCbkJELGlCQUFvQixFQUFTLE9BQUM7SUFlaEMsU0FBWSxFQUFDLE9BQUM7Ozs7QUZ3S2YsQUFBQSxnQkFBZ0IsQ0FBVztFR3pLM0IsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtDSGdMbkM7O0FBRkQsQTRCNUpBLGdCNUI0SmdCLEE0QjVKZixNQUFNLEU1QjRKUCxnQkFBZ0IsQTRCM0pmLE1BQU0sRTVCMkpQLGdCQUFnQixBNEIxSmYsT0FBTyxDQUFDO0UxQjdCTixzQkFBb0IsRUFBUyxlQUFDO0VBZWhDLGNBQVksRUFBQyxlQUFDO0VBZlosMEJBQW9CLEVBQVMsRUFBQztFQWVoQyxrQkFBWSxFQUFDLEVBQUM7RUFmWixpQ0FBb0IsRUFBUyxXQUFDO0VBZWhDLHlCQUFZLEVBQUMsV0FBQztFQWZaLGlDQUFvQixFQUFTLENBQUM7RUFlaEMseUJBQVksRUFBQyxDQUFDO0MwQm1CZDs7QUNyQ0YsVUFBVTtBM0J3Qk4sa0JBQWtCLENBQWxCLFFBQWtCO0UyQnRCckIsR0FBRztJM0JDQSxpQkFBb0IsRUFBUyw0QkFBQztJQWVoQyxTQUFZLEVBQUMsNEJBQUM7O0UyQlpmLElBQUk7STNCSEQsaUJBQW9CLEVBQVMsOEJBQUM7SUFlaEMsU0FBWSxFQUFDLDhCQUFDOzs7O0FBNkJkLFVBQVUsQ0FBVixRQUFVO0UyQjdDWCxHQUFHO0kzQkNBLGlCQUFvQixFQUFTLDRCQUFDO0lBZWhDLFNBQVksRUFBQyw0QkFBQzs7RTJCWmYsSUFBSTtJM0JIRCxpQkFBb0IsRUFBUyw4QkFBQztJQWVoQyxTQUFZLEVBQUMsOEJBQUM7Ozs7QUYrS2YsQUFBQSxTQUFTLENBQVc7RUdoTHBCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7Q0h1TG5DOztBQUZELEE2Qm5MQSxTN0JtTFMsQTZCbkxSLE1BQU0sRTdCbUxQLFNBQVMsQTZCbExSLE1BQU0sRTdCa0xQLFNBQVMsQTZCakxSLE9BQU8sQ0FBQztFM0JiTixzQkFBb0IsRUFBUyxRQUFDO0VBZWhDLGNBQVksRUFBQyxRQUFDO0VBZlosMEJBQW9CLEVBQVMsS0FBQztFQWVoQyxrQkFBWSxFQUFDLEtBQUM7RUFmWixpQ0FBb0IsRUFBUyxNQUFDO0VBZWhDLHlCQUFZLEVBQUMsTUFBQztFQWZaLGlDQUFvQixFQUFTLFFBQUM7RUFlaEMseUJBQVksRUFBQyxRQUFDO0MyQkdkOztBQ3JCRixjQUFjO0E1QndCVixrQkFBa0IsQ0FBbEIsWUFBa0I7RTRCdEJyQixHQUFHO0k1QkNBLGlCQUFvQixFQUFTLDRCQUFDO0lBZWhDLFNBQVksRUFBQyw0QkFBQzs7RTRCWmYsR0FBRztJNUJIQSxpQkFBb0IsRUFBUyw4QkFBQztJQWVoQyxTQUFZLEVBQUMsOEJBQUM7O0U0QlJmLEdBQUc7STVCUEEsaUJBQW9CLEVBQVMsNEJBQUM7SUFlaEMsU0FBWSxFQUFDLDRCQUFDOztFNEJKZixHQUFHO0k1QlhBLGlCQUFvQixFQUFTLDhCQUFDO0lBZWhDLFNBQVksRUFBQyw4QkFBQzs7RTRCQWYsR0FBRztJNUJmQSxpQkFBb0IsRUFBUyw0QkFBQztJQWVoQyxTQUFZLEVBQUMsNEJBQUM7O0U0QklmLEdBQUc7STVCbkJBLGlCQUFvQixFQUFTLDhCQUFDO0lBZWhDLFNBQVksRUFBQyw4QkFBQzs7RTRCUWYsR0FBRztJNUJ2QkEsaUJBQW9CLEVBQVMsNEJBQUM7SUFlaEMsU0FBWSxFQUFDLDRCQUFDOztFNEJZZixHQUFHO0k1QjNCQSxpQkFBb0IsRUFBUyw4QkFBQztJQWVoQyxTQUFZLEVBQUMsOEJBQUM7O0U0QmdCZixHQUFHO0k1Qi9CQSxpQkFBb0IsRUFBUyx5QkFBQztJQWVoQyxTQUFZLEVBQUMseUJBQUM7O0U0Qm9CZixJQUFJO0k1Qm5DRCxpQkFBb0IsRUFBUywwQkFBQztJQWVoQyxTQUFZLEVBQUMsMEJBQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLFlBQVU7RTRCN0NYLEdBQUc7STVCQ0EsaUJBQW9CLEVBQVMsNEJBQUM7SUFlaEMsU0FBWSxFQUFDLDRCQUFDOztFNEJaZixHQUFHO0k1QkhBLGlCQUFvQixFQUFTLDhCQUFDO0lBZWhDLFNBQVksRUFBQyw4QkFBQzs7RTRCUmYsR0FBRztJNUJQQSxpQkFBb0IsRUFBUyw0QkFBQztJQWVoQyxTQUFZLEVBQUMsNEJBQUM7O0U0QkpmLEdBQUc7STVCWEEsaUJBQW9CLEVBQVMsOEJBQUM7SUFlaEMsU0FBWSxFQUFDLDhCQUFDOztFNEJBZixHQUFHO0k1QmZBLGlCQUFvQixFQUFTLDRCQUFDO0lBZWhDLFNBQVksRUFBQyw0QkFBQzs7RTRCSWYsR0FBRztJNUJuQkEsaUJBQW9CLEVBQVMsOEJBQUM7SUFlaEMsU0FBWSxFQUFDLDhCQUFDOztFNEJRZixHQUFHO0k1QnZCQSxpQkFBb0IsRUFBUyw0QkFBQztJQWVoQyxTQUFZLEVBQUMsNEJBQUM7O0U0QllmLEdBQUc7STVCM0JBLGlCQUFvQixFQUFTLDhCQUFDO0lBZWhDLFNBQVksRUFBQyw4QkFBQzs7RTRCZ0JmLEdBQUc7STVCL0JBLGlCQUFvQixFQUFTLHlCQUFDO0lBZWhDLFNBQVksRUFBQyx5QkFBQzs7RTRCb0JmLElBQUk7STVCbkNELGlCQUFvQixFQUFTLDBCQUFDO0lBZWhDLFNBQVksRUFBQywwQkFBQzs7OztBRnNMZixBQUFBLGFBQWEsQ0FBVztFR3ZMeEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtDSDhMbkM7O0FBRkQsQThCMUpBLGE5QjBKYSxBOEIxSlosTUFBTSxFOUIwSlAsYUFBYSxBOEJ6SlosTUFBTSxFOUJ5SlAsYUFBYSxBOEJ4SlosT0FBTyxDQUFDO0U1QjdDTixzQkFBb0IsRUFBUyxZQUFDO0VBZWhDLGNBQVksRUFBQyxZQUFDO0VBZlosMEJBQW9CLEVBQVMsS0FBQztFQWVoQyxrQkFBWSxFQUFDLEtBQUM7RUFmWixpQ0FBb0IsRUFBUyxNQUFDO0VBZWhDLHlCQUFZLEVBQUMsTUFBQztFQWZaLGlDQUFvQixFQUFTLENBQUM7RUFlaEMseUJBQVksRUFBQyxDQUFDO0M0Qm1DZDs7QUNyREYsYUFBYTtBL0IrTVosQUFBQSxZQUFZLENBQVc7RUc5THZCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RURUakMsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztDRitMZDs7QUFGRCxBK0J6TUEsWS9CeU1ZLEErQnpNWCxNQUFNLEUvQnlNUCxZQUFZLEErQnhNWCxNQUFNLEUvQndNUCxZQUFZLEErQnZNWCxPQUFPLENBQUM7RTdCTE4saUJBQW9CLEVBQVMsZUFBQztFQWVoQyxTQUFZLEVBQUMsZUFBQztDNkJSZDs7QUNWRixjQUFjO0FoQ3NOYixBQUFBLGFBQWEsQ0FBVztFR3JNeEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFRFRqQywyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0NGc01kOztBQUZELEFnQ2hOQSxhaENnTmEsQWdDaE5aLE1BQU0sRWhDZ05QLGFBQWEsQWdDL01aLE1BQU0sRWhDK01QLGFBQWEsQWdDOU1aLE9BQU8sQ0FBQztFOUJMTixpQkFBb0IsRUFBUyxnQkFBQztFQWVoQyxTQUFZLEVBQUMsZ0JBQUM7QzhCUmQ7O0FoQ2lORiw0QkFBNEI7QWlDM041QixVQUFVO0FqQzhOVCxBQUFBLFNBQVMsQ0FBVztFRzdNcEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFOEJUcEMsUUFBUSxFQUFFLE1BQU07RS9CQWIsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyx1QkFBQztFQWVoQyxtQkFBWSxFQUFDLHVCQUFDO0NGOE1kOztBQUZELEFpQ3ZOQSxTakN1TlMsQWlDdk5SLE1BQU0sRWpDdU5QLFNBQVMsQWlDdE5SLE1BQU0sRWpDc05QLFNBQVMsQWlDck5SLE9BQU8sQ0FBQztFQUNSLGdCQUFnQixFaENJSixPQUFPO0VnQ0huQixLQUFLLEVBQUUsS0FBSztDQUNaOztBQ1pGLGdCQUFnQjtBaEN3Qlosa0JBQWtCLENBQWxCLGNBQWtCO0VnQ3RCckIsR0FBRztJQUNGLGdCQUFnQixFQUFFLHdCQUF1Qjs7OztBaEM0Q3pDLFVBQVUsQ0FBVixjQUFVO0VnQzdDWCxHQUFHO0lBQ0YsZ0JBQWdCLEVBQUUsd0JBQXVCOzs7O0FsQ2tPMUMsQUFBQSxlQUFlLENBQVc7RUdwTjFCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RStCSHBDLFFBQVEsRUFBRSxNQUFNO0VoQ05iLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsdUJBQUM7RUFlaEMsbUJBQVksRUFBQyx1QkFBQztDRnFOZDs7QUFGRCxBa0N4TkEsZWxDd05lLEFrQ3hOZCxNQUFNLEVsQ3dOUCxlQUFlLEFrQ3ZOZCxNQUFNLEVsQ3VOUCxlQUFlLEFrQ3ROZCxPQUFPLENBQUM7RWhDWk4sc0JBQW9CLEVBQVMsY0FBQztFQWVoQyxjQUFZLEVBQUMsY0FBQztFQWZaLDBCQUFvQixFQUFTLEVBQUM7RUFlaEMsa0JBQVksRUFBQyxFQUFDO0VBZlosdUJBQW9CLEVBQVMsSUFBQztFQWVoQyxlQUFZLEVBQUMsSUFBQztFQWZaLGlDQUFvQixFQUFTLE1BQUM7RUFlaEMseUJBQVksRUFBQyxNQUFDO0VBZlosaUNBQW9CLEVBQVMsUUFBQztFQWVoQyx5QkFBWSxFQUFDLFFBQUM7RWdDR2QsZ0JBQWdCLEVqQ1BKLE9BQU87RWlDUW5CLGdCQUFnQixFQUFFLE9BQXFCO0VBQ3ZDLEtBQUssRUFBRSxLQUFLO0NBQ1o7O0FDeEJGLG9CQUFvQjtBbkM0T25CLEFBQUEsbUJBQW1CLENBQVc7RUczTjlCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RWdDVHBDLFFBQVEsRUFBRSxRQUFRO0VqQ0FmLDJCQUFvQixFQUFTLEtBQUM7RUFlaEMsbUJBQVksRUFBQyxLQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0Y0TmQ7O0FBRkQsQW1Dck9BLG1CbkNxT21CLEFtQ3JPbEIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLE1BQU0sRUFBRSxDQUFDO0VBQ1QsVUFBVSxFbENERSxPQUFPO0VDWGpCLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7RUFmWix3QkFBb0IsRUFBUyxLQUFDO0VBZWhDLGdCQUFZLEVBQUMsS0FBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDaUNHZDs7QW5DdU5ELEFtQ3JOQSxtQm5DcU5tQixBbUNyTmxCLE1BQU0sRW5DcU5QLG1CQUFtQixBbUNwTmxCLE1BQU0sRW5Db05QLG1CQUFtQixBbUNuTmxCLE9BQU8sQ0FBQztFQUNSLEtBQUssRUFBRSxLQUFLO0NBS1o7O0FuQzZNRCxBbUNoTkMsbUJuQ2dOa0IsQW1Dck5sQixNQUFNLEFBS0wsT0FBTyxFbkNnTlQsbUJBQW1CLEFtQ3BObEIsTUFBTSxBQUlMLE9BQU8sRW5DZ05ULG1CQUFtQixBbUNuTmxCLE9BQU8sQUFHTixPQUFPLENBQUM7RWpDekJQLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7Q2lDWWI7O0FDOUJILG1CQUFtQjtBcENtUGxCLEFBQUEsa0JBQWtCLENBQVc7RUdsTzdCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RWlDVHBDLFFBQVEsRUFBRSxRQUFRO0VsQ0FmLDJCQUFvQixFQUFTLEtBQUM7RUFlaEMsbUJBQVksRUFBQyxLQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0ZtT2Q7O0FBRkQsQW9DNU9BLGtCcEM0T2tCLEFvQzVPakIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLE1BQU0sRUFBRSxDQUFDO0VBQ1QsVUFBVSxFbkNERSxPQUFPO0VDWGpCLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7RUFmWix3QkFBb0IsRUFBUyxRQUFDO0VBZWhDLGdCQUFZLEVBQUMsUUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDa0NHZDs7QXBDOE5ELEFvQzVOQSxrQnBDNE5rQixBb0M1TmpCLE1BQU0sRXBDNE5QLGtCQUFrQixBb0MzTmpCLE1BQU0sRXBDMk5QLGtCQUFrQixBb0MxTmpCLE9BQU8sQ0FBQztFQUNSLEtBQUssRUFBRSxLQUFLO0NBS1o7O0FwQ29ORCxBb0N2TkMsa0JwQ3VOaUIsQW9DNU5qQixNQUFNLEFBS0wsT0FBTyxFcEN1TlQsa0JBQWtCLEFvQzNOakIsTUFBTSxBQUlMLE9BQU8sRXBDdU5ULGtCQUFrQixBb0MxTmpCLE9BQU8sQUFHTixPQUFPLENBQUM7RWxDekJQLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7Q2tDWWI7O0FDOUJILHFCQUFxQjtBckMwUHBCLEFBQUEsb0JBQW9CLENBQVc7RUd6Ty9CLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RWtDVHBDLFFBQVEsRUFBRSxRQUFRO0VuQ0FmLDJCQUFvQixFQUFTLEtBQUM7RUFlaEMsbUJBQVksRUFBQyxLQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0YwT2Q7O0FBRkQsQXFDblBBLG9CckNtUG9CLEFxQ25QbkIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLE1BQU0sRUFBRSxDQUFDO0VBQ1QsVUFBVSxFcENERSxPQUFPO0VDWGpCLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7RUFmWix3QkFBb0IsRUFBUyxLQUFDO0VBZWhDLGdCQUFZLEVBQUMsS0FBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDbUNHZDs7QXJDcU9ELEFxQ25PQSxvQnJDbU9vQixBcUNuT25CLE1BQU0sRXJDbU9QLG9CQUFvQixBcUNsT25CLE1BQU0sRXJDa09QLG9CQUFvQixBcUNqT25CLE9BQU8sQ0FBQztFQUNSLEtBQUssRUFBRSxLQUFLO0NBS1o7O0FyQzJORCxBcUM5TkMsb0JyQzhObUIsQXFDbk9uQixNQUFNLEFBS0wsT0FBTyxFckM4TlQsb0JBQW9CLEFxQ2xPbkIsTUFBTSxBQUlMLE9BQU8sRXJDOE5ULG9CQUFvQixBcUNqT25CLE9BQU8sQUFHTixPQUFPLENBQUM7RW5DekJQLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7Q21DWWI7O0FDOUJILGtCQUFrQjtBdENpUWpCLEFBQUEsaUJBQWlCLENBQVc7RUdoUDVCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RW1DVHBDLFFBQVEsRUFBRSxRQUFRO0VwQ0FmLDJCQUFvQixFQUFTLEtBQUM7RUFlaEMsbUJBQVksRUFBQyxLQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0ZpUGQ7O0FBRkQsQXNDMVBBLGlCdEMwUGlCLEFzQzFQaEIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLE1BQU0sRUFBRSxDQUFDO0VBQ1QsVUFBVSxFckNERSxPQUFPO0VDWGpCLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7RUFmWix3QkFBb0IsRUFBUyxRQUFDO0VBZWhDLGdCQUFZLEVBQUMsUUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDb0NHZDs7QXRDNE9ELEFzQzFPQSxpQnRDME9pQixBc0MxT2hCLE1BQU0sRXRDME9QLGlCQUFpQixBc0N6T2hCLE1BQU0sRXRDeU9QLGlCQUFpQixBc0N4T2hCLE9BQU8sQ0FBQztFQUNSLEtBQUssRUFBRSxLQUFLO0NBS1o7O0F0Q2tPRCxBc0NyT0MsaUJ0Q3FPZ0IsQXNDMU9oQixNQUFNLEFBS0wsT0FBTyxFdENxT1QsaUJBQWlCLEFzQ3pPaEIsTUFBTSxBQUlMLE9BQU8sRXRDcU9ULGlCQUFpQixBc0N4T2hCLE9BQU8sQUFHTixPQUFPLENBQUM7RXBDekJQLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7Q29DWWI7O0FDOUJILHFCQUFxQjtBdkN3UXBCLEFBQUEsb0JBQW9CLENBQVc7RUd2UC9CLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RW9DVHBDLFFBQVEsRUFBRSxRQUFRO0VyQ0FmLDJCQUFvQixFQUFTLEtBQUM7RUFlaEMsbUJBQVksRUFBQyxLQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0Z3UGQ7O0FBRkQsQXVDalFBLG9CdkNpUW9CLEF1Q2pRbkIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLE1BQU0sRUFBRSxDQUFDO0VBQ1QsVUFBVSxFdENERSxPQUFPO0VDWGpCLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7RUFmWix3QkFBb0IsRUFBUyxLQUFDO0VBZWhDLGdCQUFZLEVBQUMsS0FBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDcUNHZDs7QXZDbVBELEF1Q2pQQSxvQnZDaVBvQixBdUNqUG5CLE1BQU0sRXZDaVBQLG9CQUFvQixBdUNoUG5CLE1BQU0sRXZDZ1BQLG9CQUFvQixBdUMvT25CLE9BQU8sQ0FBQztFQUNSLEtBQUssRUFBRSxLQUFLO0NBTVo7O0F2Q3dPRCxBdUM1T0Msb0J2QzRPbUIsQXVDalBuQixNQUFNLEFBS0wsT0FBTyxFdkM0T1Qsb0JBQW9CLEF1Q2hQbkIsTUFBTSxBQUlMLE9BQU8sRXZDNE9ULG9CQUFvQixBdUMvT25CLE9BQU8sQUFHTixPQUFPLENBQUM7RXJDekJQLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7RUFmWixrQ0FBb0IsRUFBUyxvQ0FBQztFQWVoQywwQkFBWSxFQUFDLG9DQUFDO0NxQ2FiOztBQy9CSCxvQkFBb0I7QXhDK1FuQixBQUFBLG1CQUFtQixDQUFXO0VHOVA5QixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VxQ1RwQyxRQUFRLEVBQUUsUUFBUTtFdENBZiwyQkFBb0IsRUFBUyxLQUFDO0VBZWhDLG1CQUFZLEVBQUMsS0FBQztFQWZaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0NGK1BkOztBQUZELEF3Q3hRQSxtQnhDd1FtQixBd0N4UWxCLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxFQUFFO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxHQUFHLEVBQUUsQ0FBQztFQUNOLElBQUksRUFBRSxDQUFDO0VBQ1AsS0FBSyxFQUFFLENBQUM7RUFDUixNQUFNLEVBQUUsQ0FBQztFQUNULFVBQVUsRXZDREUsT0FBTztFQ1hqQixpQkFBb0IsRUFBUyxTQUFDO0VBZWhDLFNBQVksRUFBQyxTQUFDO0VBZlosd0JBQW9CLEVBQVMsUUFBQztFQWVoQyxnQkFBWSxFQUFDLFFBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFQWZaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosa0NBQW9CLEVBQVMsUUFBQztFQWVoQywwQkFBWSxFQUFDLFFBQUM7Q3NDR2Q7O0F4QzBQRCxBd0N4UEEsbUJ4Q3dQbUIsQXdDeFBsQixNQUFNLEV4Q3dQUCxtQkFBbUIsQXdDdlBsQixNQUFNLEV4Q3VQUCxtQkFBbUIsQXdDdFBsQixPQUFPLENBQUM7RUFDUixLQUFLLEVBQUUsS0FBSztDQU1aOztBeEMrT0QsQXdDblBDLG1CeENtUGtCLEF3Q3hQbEIsTUFBTSxBQUtMLE9BQU8sRXhDbVBULG1CQUFtQixBd0N2UGxCLE1BQU0sQUFJTCxPQUFPLEV4Q21QVCxtQkFBbUIsQXdDdFBsQixPQUFPLEFBR04sT0FBTyxDQUFDO0V0Q3pCUCxpQkFBb0IsRUFBUyxTQUFDO0VBZWhDLFNBQVksRUFBQyxTQUFDO0VBZlosa0NBQW9CLEVBQVMsb0NBQUM7RUFlaEMsMEJBQVksRUFBQyxvQ0FBQztDc0NhYjs7QUMvQkgsc0JBQXNCO0F6Q3NSckIsQUFBQSxxQkFBcUIsQ0FBVztFR3JRaEMsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFc0NUcEMsUUFBUSxFQUFFLFFBQVE7RXZDQWYsMkJBQW9CLEVBQVMsS0FBQztFQWVoQyxtQkFBWSxFQUFDLEtBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztDRnNRZDs7QUFGRCxBeUMvUUEscUJ6QytRcUIsQXlDL1FwQixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxFQUFFO0VBQ1gsR0FBRyxFQUFFLENBQUM7RUFDTixJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsTUFBTSxFQUFFLENBQUM7RUFDVCxVQUFVLEV4Q0RFLE9BQU87RUNYakIsaUJBQW9CLEVBQVMsU0FBQztFQWVoQyxTQUFZLEVBQUMsU0FBQztFQWZaLHdCQUFvQixFQUFTLEtBQUM7RUFlaEMsZ0JBQVksRUFBQyxLQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0N1Q0dkOztBekNpUUQsQXlDL1BBLHFCekMrUHFCLEF5Qy9QcEIsTUFBTSxFekMrUFAscUJBQXFCLEF5QzlQcEIsTUFBTSxFekM4UFAscUJBQXFCLEF5QzdQcEIsT0FBTyxDQUFDO0VBQ1IsS0FBSyxFQUFFLEtBQUs7Q0FNWjs7QXpDc1BELEF5QzFQQyxxQnpDMFBvQixBeUMvUHBCLE1BQU0sQUFLTCxPQUFPLEV6QzBQVCxxQkFBcUIsQXlDOVBwQixNQUFNLEFBSUwsT0FBTyxFekMwUFQscUJBQXFCLEF5QzdQcEIsT0FBTyxBQUdOLE9BQU8sQ0FBQztFdkN6QlAsaUJBQW9CLEVBQVMsU0FBQztFQWVoQyxTQUFZLEVBQUMsU0FBQztFQWZaLGtDQUFvQixFQUFTLG9DQUFDO0VBZWhDLDBCQUFZLEVBQUMsb0NBQUM7Q3VDYWI7O0FDL0JILG1CQUFtQjtBMUM2UmxCLEFBQUEsa0JBQWtCLENBQVc7RUc1UTdCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RXVDVHBDLFFBQVEsRUFBRSxRQUFRO0V4Q0FmLDJCQUFvQixFQUFTLEtBQUM7RUFlaEMsbUJBQVksRUFBQyxLQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0Y2UWQ7O0FBRkQsQTBDdFJBLGtCMUNzUmtCLEEwQ3RSakIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLE1BQU0sRUFBRSxDQUFDO0VBQ1QsVUFBVSxFekNERSxPQUFPO0VDWGpCLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7RUFmWix3QkFBb0IsRUFBUyxRQUFDO0VBZWhDLGdCQUFZLEVBQUMsUUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDd0NHZDs7QTFDd1FELEEwQ3RRQSxrQjFDc1FrQixBMEN0UWpCLE1BQU0sRTFDc1FQLGtCQUFrQixBMENyUWpCLE1BQU0sRTFDcVFQLGtCQUFrQixBMENwUWpCLE9BQU8sQ0FBQztFQUNSLEtBQUssRUFBRSxLQUFLO0NBTVo7O0ExQzZQRCxBMENqUUMsa0IxQ2lRaUIsQTBDdFFqQixNQUFNLEFBS0wsT0FBTyxFMUNpUVQsa0JBQWtCLEEwQ3JRakIsTUFBTSxBQUlMLE9BQU8sRTFDaVFULGtCQUFrQixBMENwUWpCLE9BQU8sQUFHTixPQUFPLENBQUM7RXhDekJQLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7RUFmWixrQ0FBb0IsRUFBUyxvQ0FBQztFQWVoQywwQkFBWSxFQUFDLG9DQUFDO0N3Q2FiOztBQy9CSCxnQkFBZ0I7QTNDb1NmLEFBQUEsZUFBZSxDQUFXO0VHblIxQixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0V3Q1RwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixRQUFRLEVBQUUsTUFBTTtFQUNoQixVQUFVLEUxQ01JLE9BQU87RUNSbEIsMkJBQW9CLEVBQVMsS0FBQztFQWVoQyxtQkFBWSxFQUFDLEtBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztDRm9SZDs7QUFGRCxBMkMzUkEsZTNDMlJlLEEyQzNSZCxPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxFQUFFO0VBQ1gsR0FBRyxFQUFFLENBQUM7RUFDTixJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsTUFBTSxFQUFFLENBQUM7RUFDVCxVQUFVLEUxQ0hFLE9BQU87RTBDSW5CLGFBQWEsRUFBRSxJQUFJO0V6Q2ZqQixpQkFBb0IsRUFBUyxRQUFDO0VBZWhDLFNBQVksRUFBQyxRQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0N5Q0tkOztBM0M2UUQsQTJDM1FBLGUzQzJRZSxBMkMzUWQsTUFBTSxFM0MyUVAsZUFBZSxBMkMxUWQsTUFBTSxFM0MwUVAsZUFBZSxBMkN6UWQsT0FBTyxDQUFDO0VBQ1IsS0FBSyxFQUFFLEtBQUs7Q0FLWjs7QTNDbVFELEEyQ3RRQyxlM0NzUWMsQTJDM1FkLE1BQU0sQUFLTCxPQUFPLEUzQ3NRVCxlQUFlLEEyQzFRZCxNQUFNLEFBSUwsT0FBTyxFM0NzUVQsZUFBZSxBMkN6UWQsT0FBTyxBQUdOLE9BQU8sQ0FBQztFekMzQlAsaUJBQW9CLEVBQVMsUUFBQztFQWVoQyxTQUFZLEVBQUMsUUFBQztDeUNjYjs7QUNoQ0gsZUFBZTtBNUMyU2QsQUFBQSxjQUFjLENBQVc7RUcxUnpCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RXlDVHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFFBQVEsRUFBRSxNQUFNO0VBQ2hCLFVBQVUsRTNDU0csT0FBTztFQ1hqQiwyQkFBb0IsRUFBUyxLQUFDO0VBZWhDLG1CQUFZLEVBQUMsS0FBQztFQWZaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0NGMlJkOztBQUZELEE0Q2xTQSxjNUNrU2MsQTRDbFNiLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxFQUFFO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxHQUFHLEVBQUUsQ0FBQztFQUNOLElBQUksRUFBRSxDQUFDO0VBQ1AsS0FBSyxFQUFFLENBQUM7RUFDUixNQUFNLEVBQUUsQ0FBQztFQUNULFVBQVUsRTNDTkcsT0FBTztFMkNPcEIsYUFBYSxFQUFFLElBQUk7RTFDZmpCLGlCQUFvQixFQUFTLFFBQUM7RUFlaEMsU0FBWSxFQUFDLFFBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFQWZaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosa0NBQW9CLEVBQVMsUUFBQztFQWVoQywwQkFBWSxFQUFDLFFBQUM7QzBDS2Q7O0E1Q29SRCxBNENsUkEsYzVDa1JjLEE0Q2xSYixNQUFNLEU1Q2tSUCxjQUFjLEE0Q2pSYixNQUFNLEU1Q2lSUCxjQUFjLEE0Q2hSYixPQUFPLENBQUM7RUFDUixLQUFLLEVBQUUsS0FBSztDQUtaOztBNUMwUUQsQTRDN1FDLGM1QzZRYSxBNENsUmIsTUFBTSxBQUtMLE9BQU8sRTVDNlFULGNBQWMsQTRDalJiLE1BQU0sQUFJTCxPQUFPLEU1QzZRVCxjQUFjLEE0Q2hSYixPQUFPLEFBR04sT0FBTyxDQUFDO0UxQzNCUCxpQkFBb0IsRUFBUyxRQUFDO0VBZWhDLFNBQVksRUFBQyxRQUFDO0MwQ2NiOztBQ2hDSCxrQkFBa0I7QTdDa1RqQixBQUFBLGlCQUFpQixDQUFXO0VHalM1QixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0UwQ1RwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixVQUFVLEU1Q1VHLE9BQU87RUNYakIsMkJBQW9CLEVBQVMsS0FBQztFQWVoQyxtQkFBWSxFQUFDLEtBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztDRmtTZDs7QUFGRCxBNkMxU0EsaUI3QzBTaUIsQTZDMVNoQixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxFQUFFO0VBQ1gsR0FBRyxFQUFFLENBQUM7RUFDTixJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsTUFBTSxFQUFFLENBQUM7RUFDVCxVQUFVLEU1Q0xHLE9BQU87RUNSbEIsaUJBQW9CLEVBQVMsUUFBQztFQWVoQyxTQUFZLEVBQUMsUUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDMkNHZDs7QTdDNlJELEE2QzNSQSxpQjdDMlJpQixBNkMzUmhCLE1BQU0sRTdDMlJQLGlCQUFpQixBNkMxUmhCLE1BQU0sRTdDMFJQLGlCQUFpQixBNkN6UmhCLE9BQU8sQ0FBQztFQUNSLEtBQUssRUFBRSxLQUFLO0NBS1o7O0E3Q21SRCxBNkN0UkMsaUI3Q3NSZ0IsQTZDM1JoQixNQUFNLEFBS0wsT0FBTyxFN0NzUlQsaUJBQWlCLEE2QzFSaEIsTUFBTSxBQUlMLE9BQU8sRTdDc1JULGlCQUFpQixBNkN6UmhCLE9BQU8sQUFHTixPQUFPLENBQUM7RTNDekJQLGlCQUFvQixFQUFTLFFBQUM7RUFlaEMsU0FBWSxFQUFDLFFBQUM7QzJDWWI7O0FDOUJILG1CQUFtQjtBOUN5VGxCLEFBQUEsa0JBQWtCLENBQVc7RUd4UzdCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RTJDVHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFVBQVUsRTdDT0ksT0FBTztFQ1JsQiwyQkFBb0IsRUFBUyxLQUFDO0VBZWhDLG1CQUFZLEVBQUMsS0FBQztFQWZaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0NGeVNkOztBQUZELEE4Q2pUQSxrQjlDaVRrQixBOENqVGpCLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxFQUFFO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxHQUFHLEVBQUUsQ0FBQztFQUNOLElBQUksRUFBRSxDQUFDO0VBQ1AsS0FBSyxFQUFFLENBQUM7RUFDUixNQUFNLEVBQUUsQ0FBQztFQUNULFVBQVUsRTdDRkUsT0FBTztFQ1hqQixpQkFBb0IsRUFBUyxRQUFDO0VBZWhDLFNBQVksRUFBQyxRQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0M0Q0dkOztBOUNvU0QsQThDbFNBLGtCOUNrU2tCLEE4Q2xTakIsTUFBTSxFOUNrU1Asa0JBQWtCLEE4Q2pTakIsTUFBTSxFOUNpU1Asa0JBQWtCLEE4Q2hTakIsT0FBTyxDQUFDO0VBQ1IsS0FBSyxFQUFFLEtBQUs7Q0FLWjs7QTlDMFJELEE4QzdSQyxrQjlDNlJpQixBOENsU2pCLE1BQU0sQUFLTCxPQUFPLEU5QzZSVCxrQkFBa0IsQThDalNqQixNQUFNLEFBSUwsT0FBTyxFOUM2UlQsa0JBQWtCLEE4Q2hTakIsT0FBTyxBQUdOLE9BQU8sQ0FBQztFNUN6QlAsaUJBQW9CLEVBQVMsUUFBQztFQWVoQyxTQUFZLEVBQUMsUUFBQztDNENZYjs7QUM5QkgsMkJBQTJCO0EvQ2dVMUIsQUFBQSwwQkFBMEIsQ0FBVztFRy9TckMsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFNENUcEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsVUFBVSxFOUNVRyxPQUFPO0VDWGpCLDJCQUFvQixFQUFTLEtBQUM7RUFlaEMsbUJBQVksRUFBQyxLQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0ZnVGQ7O0FBRkQsQStDeFRBLDBCL0N3VDBCLEErQ3hUekIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLEdBQUcsRUFBRSxDQUFDO0VBQ04sTUFBTSxFQUFFLENBQUM7RUFDVCxJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsVUFBVSxFOUNMRyxPQUFPO0VDUmxCLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7RUFmWix3QkFBb0IsRUFBUyxHQUFDO0VBZWhDLGdCQUFZLEVBQUMsR0FBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDNkNJZDs7QS9DMFNELEErQ3hTQSwwQi9Dd1MwQixBK0N4U3pCLE1BQU0sRS9Dd1NQLDBCQUEwQixBK0N2U3pCLE1BQU0sRS9DdVNQLDBCQUEwQixBK0N0U3pCLE9BQU8sQ0FBQztFQUNSLEtBQUssRUFBRSxLQUFLO0NBS1o7O0EvQ2dTRCxBK0NuU0MsMEIvQ21TeUIsQStDeFN6QixNQUFNLEFBS0wsT0FBTyxFL0NtU1QsMEJBQTBCLEErQ3ZTekIsTUFBTSxBQUlMLE9BQU8sRS9DbVNULDBCQUEwQixBK0N0U3pCLE9BQU8sQUFHTixPQUFPLENBQUM7RTdDMUJQLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7QzZDYWI7O0FDL0JILDRCQUE0QjtBaER1VTNCLEFBQUEsMkJBQTJCLENBQVc7RUd0VHRDLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RTZDVHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFVBQVUsRS9DT0ksT0FBTztFQ1JsQiwyQkFBb0IsRUFBUyxLQUFDO0VBZWhDLG1CQUFZLEVBQUMsS0FBQztFQWZaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0NGdVRkOztBQUZELEFnRC9UQSwyQmhEK1QyQixBZ0QvVDFCLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxFQUFFO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxHQUFHLEVBQUUsQ0FBQztFQUNOLE1BQU0sRUFBRSxDQUFDO0VBQ1QsSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLFVBQVUsRS9DRkUsT0FBTztFQ1hqQixpQkFBb0IsRUFBUyxTQUFDO0VBZWhDLFNBQVksRUFBQyxTQUFDO0VBZlosd0JBQW9CLEVBQVMsR0FBQztFQWVoQyxnQkFBWSxFQUFDLEdBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFQWZaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosa0NBQW9CLEVBQVMsUUFBQztFQWVoQywwQkFBWSxFQUFDLFFBQUM7QzhDSWQ7O0FoRGlURCxBZ0QvU0EsMkJoRCtTMkIsQWdEL1MxQixNQUFNLEVoRCtTUCwyQkFBMkIsQWdEOVMxQixNQUFNLEVoRDhTUCwyQkFBMkIsQWdEN1MxQixPQUFPLENBQUM7RUFDUixLQUFLLEVBQUUsS0FBSztDQUtaOztBaER1U0QsQWdEMVNDLDJCaEQwUzBCLEFnRC9TMUIsTUFBTSxBQUtMLE9BQU8sRWhEMFNULDJCQUEyQixBZ0Q5UzFCLE1BQU0sQUFJTCxPQUFPLEVoRDBTVCwyQkFBMkIsQWdEN1MxQixPQUFPLEFBR04sT0FBTyxDQUFDO0U5QzFCUCxpQkFBb0IsRUFBUyxTQUFDO0VBZWhDLFNBQVksRUFBQyxTQUFDO0M4Q2FiOztBQy9CSCx5QkFBeUI7QWpEOFV4QixBQUFBLHdCQUF3QixDQUFXO0VHN1RuQyxPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0U4Q1RwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixVQUFVLEVoRFVHLE9BQU87RUNYakIsMkJBQW9CLEVBQVMsS0FBQztFQWVoQyxtQkFBWSxFQUFDLEtBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztDRjhUZDs7QUFGRCxBaUR0VUEsd0JqRHNVd0IsQWlEdFV2QixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxFQUFFO0VBQ1gsR0FBRyxFQUFFLENBQUM7RUFDTixNQUFNLEVBQUUsQ0FBQztFQUNULElBQUksRUFBRSxDQUFDO0VBQ1AsS0FBSyxFQUFFLENBQUM7RUFDUixVQUFVLEVoRExHLE9BQU87RUNSbEIsaUJBQW9CLEVBQVMsU0FBQztFQWVoQyxTQUFZLEVBQUMsU0FBQztFQWZaLHdCQUFvQixFQUFTLEdBQUM7RUFlaEMsZ0JBQVksRUFBQyxHQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0MrQ0lkOztBakR3VEQsQWlEdFRBLHdCakRzVHdCLEFpRHRUdkIsTUFBTSxFakRzVFAsd0JBQXdCLEFpRHJUdkIsTUFBTSxFakRxVFAsd0JBQXdCLEFpRHBUdkIsT0FBTyxDQUFDO0VBQ1IsS0FBSyxFQUFFLEtBQUs7Q0FLWjs7QWpEOFNELEFpRGpUQyx3QmpEaVR1QixBaUR0VHZCLE1BQU0sQUFLTCxPQUFPLEVqRGlUVCx3QkFBd0IsQWlEclR2QixNQUFNLEFBSUwsT0FBTyxFakRpVFQsd0JBQXdCLEFpRHBUdkIsT0FBTyxBQUdOLE9BQU8sQ0FBQztFL0MxQlAsaUJBQW9CLEVBQVMsU0FBQztFQWVoQyxTQUFZLEVBQUMsU0FBQztDK0NhYjs7QUMvQkgsMEJBQTBCO0FsRHFWekIsQUFBQSx5QkFBeUIsQ0FBVztFR3BVcEMsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFK0NUcEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsVUFBVSxFakRPSSxPQUFPO0VDUmxCLDJCQUFvQixFQUFTLEtBQUM7RUFlaEMsbUJBQVksRUFBQyxLQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0ZxVWQ7O0FBRkQsQWtEN1VBLHlCbEQ2VXlCLEFrRDdVeEIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLEdBQUcsRUFBRSxDQUFDO0VBQ04sTUFBTSxFQUFFLENBQUM7RUFDVCxJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsVUFBVSxFakRGRSxPQUFPO0VDWGpCLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7RUFmWix3QkFBb0IsRUFBUyxHQUFDO0VBZWhDLGdCQUFZLEVBQUMsR0FBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDZ0RJZDs7QWxEK1RELEFrRDdUQSx5QmxENlR5QixBa0Q3VHhCLE1BQU0sRWxENlRQLHlCQUF5QixBa0Q1VHhCLE1BQU0sRWxENFRQLHlCQUF5QixBa0QzVHhCLE9BQU8sQ0FBQztFQUNSLEtBQUssRUFBRSxLQUFLO0NBS1o7O0FsRHFURCxBa0R4VEMseUJsRHdUd0IsQWtEN1R4QixNQUFNLEFBS0wsT0FBTyxFbER3VFQseUJBQXlCLEFrRDVUeEIsTUFBTSxBQUlMLE9BQU8sRWxEd1RULHlCQUF5QixBa0QzVHhCLE9BQU8sQUFHTixPQUFPLENBQUM7RWhEMUJQLGlCQUFvQixFQUFTLFNBQUM7RUFlaEMsU0FBWSxFQUFDLFNBQUM7Q2dEYWI7O0FsRDRUSCx3QkFBd0I7QW1EM1Z4QixpQkFBaUI7QW5EOFZoQixBQUFBLGdCQUFnQixDQUFXO0VHN1UzQixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VEVGpDLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsVUFBQztFQWVoQyxtQkFBWSxFQUFDLFVBQUM7RWlEWGYsVUFBVSxFQUNSLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FOQyxHQUFHLENsRFNILE9BQU8sRWtERm5CLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFQUFFLHVEQUF1RDtDbkR1VmxGOztBQUZELEFtRG5WQSxnQm5EbVZnQixBbURuVmYsTUFBTSxFbkRtVlAsZ0JBQWdCLEFtRGxWZixNQUFNLEVuRGtWUCxnQkFBZ0IsQW1EalZmLE9BQU8sQ0FBQztFQUNSLFVBQVUsRUFDVCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBYkMsR0FBRyxDbERZSixPQUFPLEVrREVsQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RUFBRSx1REFBdUQ7Q0FDbEY7O0FDakJGLFlBQVk7QXBEcVdYLEFBQUEsV0FBVyxDQUFXO0VHcFZ0QixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VEVGpDLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsVUFBQztFQWVoQyxtQkFBWSxFQUFDLFVBQUM7RWtEWGYsVUFBVSxFQUNULEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FORSxHQUFHLENuRFNILE9BQU8sRW1ERnBCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFQUFFLHVEQUF1RDtDcEQ4VmpGOztBQUZELEFvRDFWQSxXcEQwVlcsQW9EMVZWLE1BQU0sRXBEMFZQLFdBQVcsQW9EelZWLE1BQU0sRXBEeVZQLFdBQVcsQW9EeFZWLE9BQU8sQ0FBQztFQUNSLFVBQVUsRUFBRSxJQUFJO0NBQ2hCOztBQ2ZGLFVBQVU7QXJENFdULEFBQUEsU0FBUyxDQUFXO0VHM1ZwQixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VrRE5wQyxRQUFRLEVBQUUsUUFBUTtDckR3V2pCOztBQUZELEFxRHBXQSxTckRvV1MsQXFEcFdSLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxFQUFFO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBUkQsR0FBRztFQVNyQixHQUFHLEVBVmUsR0FBRztFQVdyQixJQUFJLEVBWGMsR0FBRztFQVlyQixLQUFLLEVBWmEsR0FBRztFQWFyQixNQUFNLEVBYlksR0FBRztFQWNyQixPQUFPLEVBQUUsQ0FBQztFbkRiUiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLE9BQUM7RUFlaEMsbUJBQVksRUFBQyxPQUFDO0NtRENkOztBckR5VkQsQXFEdlZBLFNyRHVWUyxBcUR2VlIsTUFBTSxBQUFBLE9BQU8sRXJEdVZkLFNBQVMsQXFEdFZSLE1BQU0sQUFBQSxPQUFPLEVyRHNWZCxTQUFTLEFxRHJWUixPQUFPLEFBQUEsT0FBTyxDQUFDO0VBQ2YsT0FBTyxFQUFFLENBQUM7Q0FDVjs7QUN6QkYsZ0JBQWdCO0FwRHdCWixrQkFBa0IsQ0FBbEIsY0FBa0I7RW9EdEJyQixJQUFJO0lBQ0gsR0FBRyxFQUFJLEtBQVM7SUFDaEIsS0FBSyxFQUFJLEtBQVM7SUFDbEIsTUFBTSxFQUFJLEtBQVM7SUFDbkIsSUFBSSxFQUFJLEtBQVM7SUFDakIsT0FBTyxFQUFFLENBQUM7Ozs7QXBEd0NWLFVBQVUsQ0FBVixjQUFVO0VvRDdDWCxJQUFJO0lBQ0gsR0FBRyxFQUFJLEtBQVM7SUFDaEIsS0FBSyxFQUFJLEtBQVM7SUFDbEIsTUFBTSxFQUFJLEtBQVM7SUFDbkIsSUFBSSxFQUFJLEtBQVM7SUFDakIsT0FBTyxFQUFFLENBQUM7Ozs7QXRENFdYLEFBQUEsZUFBZSxDQUFXO0VHbFcxQixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VtRElwQyxRQUFRLEVBQUUsUUFBUTtDdERxV2pCOztBQUZELEFzRGpXQSxldERpV2UsQXNEaldkLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxFQUFFO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsTUFBTSxFckRWTyxPQUFPLENxRFVFLEtBQUssQ0FUVCxHQUFHO0VBVXJCLEdBQUcsRUFBRSxDQUFDO0VBQ04sS0FBSyxFQUFFLENBQUM7RUFDUixNQUFNLEVBQUUsQ0FBQztFQUNULElBQUksRUFBRSxDQUFDO0VwRHRCTCwwQkFBb0IsRUFBUyxFQUFDO0VBZWhDLGtCQUFZLEVBQUMsRUFBQztDb0RTZDs7QXREd1ZELEFzRHRWQSxldERzVmUsQXNEdFZkLE1BQU0sQUFBQSxPQUFPLEV0RHNWZCxlQUFlLEFzRHJWZCxNQUFNLEFBQUEsT0FBTyxFdERxVmQsZUFBZSxBc0RwVmQsT0FBTyxBQUFBLE9BQU8sQ0FBQztFcEQ1QmIsc0JBQW9CLEVBQVMsY0FBQztFQWVoQyxjQUFZLEVBQUMsY0FBQztDb0RlZDs7QUNqQ0YsZUFBZTtBckR3Qlgsa0JBQWtCLENBQWxCLGFBQWtCO0VxRHRCckIsSUFBSTtJQUNILEdBQUcsRUFBRSxDQUFDO0lBQ04sS0FBSyxFQUFFLENBQUM7SUFDUixNQUFNLEVBQUUsQ0FBQztJQUNULElBQUksRUFBRSxDQUFDO0lBQ1AsT0FBTyxFQUFFLENBQUM7Ozs7QXJEd0NWLFVBQVUsQ0FBVixhQUFVO0VxRDdDWCxJQUFJO0lBQ0gsR0FBRyxFQUFFLENBQUM7SUFDTixLQUFLLEVBQUUsQ0FBQztJQUNSLE1BQU0sRUFBRSxDQUFDO0lBQ1QsSUFBSSxFQUFFLENBQUM7SUFDUCxPQUFPLEVBQUUsQ0FBQzs7OztBdkRtWFgsQUFBQSxjQUFjLENBQVc7RUd6V3pCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RW9ESXBDLFFBQVEsRUFBRSxRQUFRO0N2RDRXakI7O0FBRkQsQXVEeFdBLGN2RHdXYyxBdUR4V2IsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixNQUFNLEV0RFZPLE9BQU8sQ3NEVUUsS0FBSyxDQVRULEdBQUc7RUFVckIsR0FBRyxFQUFJLEtBQVM7RUFDaEIsS0FBSyxFQUFJLEtBQVM7RUFDbEIsTUFBTSxFQUFJLEtBQVM7RUFDbkIsSUFBSSxFQUFJLEtBQVM7RUFDakIsT0FBTyxFQUFFLENBQUM7RXJEdkJSLDBCQUFvQixFQUFTLEVBQUM7RUFlaEMsa0JBQVksRUFBQyxFQUFDO0NxRFVkOztBdkQ4VkQsQXVENVZBLGN2RDRWYyxBdUQ1VmIsTUFBTSxBQUFBLE9BQU8sRXZENFZkLGNBQWMsQXVEM1ZiLE1BQU0sQUFBQSxPQUFPLEV2RDJWZCxjQUFjLEF1RDFWYixPQUFPLEFBQUEsT0FBTyxDQUFDO0VyRDdCYixzQkFBb0IsRUFBUyxhQUFDO0VBZWhDLGNBQVksRUFBQyxhQUFDO0NxRGdCZDs7QUNsQ0YsaUJBQWlCO0F4RGlZaEIsQUFBQSxnQkFBZ0IsQ0FBVztFR2hYM0IsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFcUROcEMsUUFBUSxFQUFFLFFBQVE7Q3hENlhqQjs7QUFGRCxBd0R6WEEsZ0J4RHlYZ0IsQXdEelhmLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxFQUFFO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsTUFBTSxFdkRBTyxPQUFPLEN1REFFLEtBQUssQ0FUVCxHQUFHO0VBVXJCLEdBQUcsRUFBRSxDQUFDO0VBQ04sS0FBSyxFQUFFLENBQUM7RUFDUixNQUFNLEVBQUUsQ0FBQztFQUNULElBQUksRUFBRSxDQUFDO0V0RFpMLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsd0JBQUM7RUFlaEMsbUJBQVksRUFBQyx3QkFBQztDc0RBZDs7QXhEK1dELEF3RDdXQSxnQnhENldnQixBd0Q3V2YsTUFBTSxBQUFBLE9BQU8sRXhENldkLGdCQUFnQixBd0Q1V2YsTUFBTSxBQUFBLE9BQU8sRXhENFdkLGdCQUFnQixBd0QzV2YsT0FBTyxBQUFBLE9BQU8sQ0FBQztFQUNmLEdBQUcsRUFBSSxJQUFxQztFQUM1QyxLQUFLLEVBQUksSUFBcUM7RUFDOUMsTUFBTSxFQUFJLElBQXFDO0VBQy9DLElBQUksRUFBSSxJQUFxQztDQUM3Qzs7QUMzQkYsZ0JBQWdCO0F6RHdZZixBQUFBLGVBQWUsQ0FBVztFR3ZYMUIsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFc0ROcEMsUUFBUSxFQUFFLFFBQVE7Q3pEb1lqQjs7QUFGRCxBeURoWUEsZXpEZ1llLEF5RGhZZCxPQUFPLENBQUM7RUFDUixjQUFjLEVBQUUsSUFBSTtFQUNwQixPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE1BQU0sRXhERE8sT0FBTyxDd0RDRSxLQUFLLENBVlQsR0FBRztFQVdyQixHQUFHLEVBQUUsS0FBNEM7RUFDakQsS0FBSyxFQUFFLEtBQTRDO0VBQ25ELE1BQU0sRUFBRSxLQUE0QztFQUNwRCxJQUFJLEVBQUUsS0FBNEM7RUFDbEQsT0FBTyxFQUFFLENBQUM7RXZEZFIsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyx3QkFBQztFQWVoQyxtQkFBWSxFQUFDLHdCQUFDO0N1REVkOztBekRvWEQsQXlEbFhBLGV6RGtYZSxBeURsWGQsTUFBTSxBQUFBLE9BQU8sRXpEa1hkLGVBQWUsQXlEalhkLE1BQU0sQUFBQSxPQUFPLEV6RGlYZCxlQUFlLEF5RGhYZCxPQUFPLEFBQUEsT0FBTyxDQUFDO0VBQ2YsR0FBRyxFQUFJLElBQXFDO0VBQzVDLEtBQUssRUFBSSxJQUFxQztFQUM5QyxNQUFNLEVBQUksSUFBcUM7RUFDL0MsSUFBSSxFQUFJLElBQXFDO0VBQzdDLE9BQU8sRUFBRSxDQUFDO0NBQ1Y7O0FDOUJGLG1CQUFtQjtBMUQrWWxCLEFBQUEsa0JBQWtCLENBQVc7RUc5WDdCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RURUakMsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxhQUFDO0VBZWhDLG1CQUFZLEVBQUMsYUFBQztDRitYZDs7QUFGRCxBMER6WUEsa0IxRHlZa0IsQTBEellqQixNQUFNLEUxRHlZUCxrQkFBa0IsQTBEeFlqQixNQUFNLEUxRHdZUCxrQkFBa0IsQTBEdllqQixPQUFPLENBQUM7RUFDUixhQUFhLEVBQUUsR0FBRztDQUNsQjs7QUNWRix5QkFBeUI7QTNEc1p4QixBQUFBLHdCQUF3QixDQUFXO0VHclluQyxPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0V3RFBwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixRQUFRLEVBQUUsTUFBTTtDM0RrWmY7O0FBRkQsQTJEOVlBLHdCM0Q4WXdCLEEyRDlZdkIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLElBQUksRUFBRSxDQUFDO0VBQ1AsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsQ0FBQztFQUNULFVBQVUsRTFEREUsT0FBTztFMERFbkIsTUFBTSxFQUFFLEdBQUc7RXpEYlQsMkJBQW9CLEVBQVMsS0FBQztFQWVoQyxtQkFBWSxFQUFDLEtBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0N5REVkOztBM0RrWUQsQTJENVhDLHdCM0Q0WHVCLEEyRGhZdkIsTUFBTSxBQUlMLE9BQU8sRTNENFhULHdCQUF3QixBMkQvWHZCLE1BQU0sQUFHTCxPQUFPLEUzRDRYVCx3QkFBd0IsQTJEOVh2QixPQUFPLEFBRU4sT0FBTyxDQUFDO0VBQ1IsS0FBSyxFQUFFLENBQUM7Q0FDUjs7QUM1QkgsMkJBQTJCO0E1RDZaMUIsQUFBQSwwQkFBMEIsQ0FBVztFRzVZckMsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFeURQcEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsUUFBUSxFQUFFLE1BQU07QzVEeVpmOztBQUZELEE0RHJaQSwwQjVEcVowQixBNERyWnpCLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxFQUFFO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxJQUFJLEVBQUUsR0FBRztFQUNULEtBQUssRUFBRSxHQUFHO0VBQ1YsTUFBTSxFQUFFLENBQUM7RUFDVCxVQUFVLEUzRERFLE9BQU87RTJERW5CLE1BQU0sRUFBRSxHQUFHO0UxRGJULDJCQUFvQixFQUFTLFdBQUM7RUFlaEMsbUJBQVksRUFBQyxXQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDMERFZDs7QTVEeVlELEE0RG5ZQywwQjVEbVl5QixBNER2WXpCLE1BQU0sQUFJTCxPQUFPLEU1RG1ZVCwwQkFBMEIsQTREdFl6QixNQUFNLEFBR0wsT0FBTyxFNURtWVQsMEJBQTBCLEE0RHJZekIsT0FBTyxBQUVOLE9BQU8sQ0FBQztFQUNSLElBQUksRUFBRSxDQUFDO0VBQ1AsS0FBSyxFQUFFLENBQUM7Q0FDUjs7QUM3QkgsMEJBQTBCO0E3RG9hekIsQUFBQSx5QkFBeUIsQ0FBVztFR25acEMsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFMERQcEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsUUFBUSxFQUFFLE1BQU07QzdEZ2FmOztBQUZELEE2RDVaQSx5QjdENFp5QixBNkQ1WnhCLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxFQUFFO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxJQUFJLEVBQUUsSUFBSTtFQUNWLEtBQUssRUFBRSxDQUFDO0VBQ1IsTUFBTSxFQUFFLENBQUM7RUFDVCxVQUFVLEU1RERFLE9BQU87RTRERW5CLE1BQU0sRUFBRSxHQUFHO0UzRGJULDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDMkRFZDs7QTdEZ1pELEE2RDFZQyx5QjdEMFl3QixBNkQ5WXhCLE1BQU0sQUFJTCxPQUFPLEU3RDBZVCx5QkFBeUIsQTZEN1l4QixNQUFNLEFBR0wsT0FBTyxFN0QwWVQseUJBQXlCLEE2RDVZeEIsT0FBTyxBQUVOLE9BQU8sQ0FBQztFQUNSLElBQUksRUFBRSxDQUFDO0NBQ1A7O0FDNUJILHdCQUF3QjtBOUQyYXZCLEFBQUEsdUJBQXVCLENBQVc7RUcxWmxDLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RTJEUHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFFBQVEsRUFBRSxNQUFNO0M5RHVhZjs7QUFGRCxBOERuYUEsdUI5RG1hdUIsQThEbmF0QixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxFQUFFO0VBQ1gsSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsSUFBSTtFQUNYLEdBQUcsRUFBRSxDQUFDO0VBQ04sVUFBVSxFN0RERSxPQUFPO0U2REVuQixNQUFNLEVBQUUsR0FBRztFNURiVCwyQkFBb0IsRUFBUyxLQUFDO0VBZWhDLG1CQUFZLEVBQUMsS0FBQztFQWZaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosa0NBQW9CLEVBQVMsUUFBQztFQWVoQywwQkFBWSxFQUFDLFFBQUM7QzRERWQ7O0E5RHVaRCxBOERqWkMsdUI5RGlac0IsQThEclp0QixNQUFNLEFBSUwsT0FBTyxFOURpWlQsdUJBQXVCLEE4RHBadEIsTUFBTSxBQUdMLE9BQU8sRTlEaVpULHVCQUF1QixBOERuWnRCLE9BQU8sQUFFTixPQUFPLENBQUM7RUFDUixLQUFLLEVBQUUsQ0FBQztDQUNSOztBQzVCSCwwQkFBMEI7QS9Ea2J6QixBQUFBLHlCQUF5QixDQUFXO0VHamFwQyxPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0U0RFBwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixRQUFRLEVBQUUsTUFBTTtDL0Q4YWY7O0FBRkQsQStEMWFBLHlCL0QwYXlCLEErRDFheEIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLElBQUksRUFBRSxHQUFHO0VBQ1QsS0FBSyxFQUFFLEdBQUc7RUFDVixHQUFHLEVBQUUsQ0FBQztFQUNOLFVBQVUsRTlEREUsT0FBTztFOERFbkIsTUFBTSxFQUFFLEdBQUc7RTdEYlQsMkJBQW9CLEVBQVMsV0FBQztFQWVoQyxtQkFBWSxFQUFDLFdBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0M2REVkOztBL0Q4WkQsQStEeFpDLHlCL0R3WndCLEErRDVaeEIsTUFBTSxBQUlMLE9BQU8sRS9Ed1pULHlCQUF5QixBK0QzWnhCLE1BQU0sQUFHTCxPQUFPLEUvRHdaVCx5QkFBeUIsQStEMVp4QixPQUFPLEFBRU4sT0FBTyxDQUFDO0VBQ1IsSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztDQUNSOztBQzdCSCx5QkFBeUI7QWhFeWJ4QixBQUFBLHdCQUF3QixDQUFXO0VHeGFuQyxPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0U2RFBwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixRQUFRLEVBQUUsTUFBTTtDaEVxYmY7O0FBRkQsQWdFamJBLHdCaEVpYndCLEFnRWpidkIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLElBQUksRUFBRSxJQUFJO0VBQ1YsS0FBSyxFQUFFLENBQUM7RUFDUixHQUFHLEVBQUUsQ0FBQztFQUNOLFVBQVUsRS9EREUsT0FBTztFK0RFbkIsTUFBTSxFQUFFLEdBQUc7RTlEYlQsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0M4REVkOztBaEVxYUQsQWdFL1pDLHdCaEUrWnVCLEFnRW5hdkIsTUFBTSxBQUlMLE9BQU8sRWhFK1pULHdCQUF3QixBZ0VsYXZCLE1BQU0sQUFHTCxPQUFPLEVoRStaVCx3QkFBd0IsQWdFamF2QixPQUFPLEFBRU4sT0FBTyxDQUFDO0VBQ1IsSUFBSSxFQUFFLENBQUM7Q0FDUDs7QUM1QkgsWUFBWTtBakVnY1gsQUFBQSxXQUFXLENBQVc7RUcvYXRCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RThEUHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFFBQVEsRUFBRSxNQUFNO0NqRTRiZjs7QUFGRCxBaUV4YkEsV2pFd2JXLEFpRXhiVixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxFQUFFO0VBQ1gsSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLEdBQUcsRUFBRSxDQUFDO0VBQ04sTUFBTSxFQUFFLENBQUM7RUFDVCxZQUFZLEVBQUMsT0FBQztFQUNkLFlBQVksRUFBRSxLQUFLO0VBQ25CLFlBQVksRUFBRSxDQUFDO0UvRGZiLDJCQUFvQixFQUFTLFlBQUM7RUFlaEMsbUJBQVksRUFBQyxZQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDK0RJZDs7QWpFMGFELEFpRXBhQyxXakVvYVUsQWlFeGFWLE1BQU0sQUFJTCxPQUFPLEVqRW9hVCxXQUFXLEFpRXZhVixNQUFNLEFBR0wsT0FBTyxFakVvYVQsV0FBVyxBaUV0YVYsT0FBTyxBQUVOLE9BQU8sQ0FBQztFL0R6QlAsaUJBQW9CLEVBQVMsYUFBQztFQWVoQyxTQUFZLEVBQUMsYUFBQztFK0RZYixZQUFZLEVBQUUsR0FBRztDQUNqQjs7QUMvQkgsc0JBQXNCO0FsRXVjckIsQUFBQSxxQkFBcUIsQ0FBVztFR3RiaEMsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFK0RQcEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsUUFBUSxFQUFFLE1BQU07Q2xFbWNmOztBQUZELEFrRS9iQSxxQmxFK2JxQixBa0UvYnBCLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxFQUFFO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsTUFBTSxFQUFFLENBQUM7RUFDVCxVQUFVLEVqRURFLE9BQU87RWlFRW5CLE1BQU0sRUFBRSxHQUFHO0VoRWJULGlCQUFvQixFQUFTLGVBQUM7RUFlaEMsU0FBWSxFQUFDLGVBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFQWZaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosa0NBQW9CLEVBQVMsUUFBQztFQWVoQywwQkFBWSxFQUFDLFFBQUM7Q2dFR2Q7O0FsRWtiRCxBa0U1YUMscUJsRTRhb0IsQWtFaGJwQixNQUFNLEFBSUwsT0FBTyxFbEU0YVQscUJBQXFCLEFrRS9hcEIsTUFBTSxBQUdMLE9BQU8sRWxFNGFULHFCQUFxQixBa0U5YXBCLE9BQU8sQUFFTixPQUFPLENBQUM7RWhFeEJQLGlCQUFvQixFQUFTLGFBQUM7RUFlaEMsU0FBWSxFQUFDLGFBQUM7Q2dFV2I7O0FDN0JILHFCQUFxQjtBbkU4Y3BCLEFBQUEsb0JBQW9CLENBQVc7RUc3Yi9CLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RWdFUHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFFBQVEsRUFBRSxNQUFNO0NuRTBjZjs7QUFGRCxBbUV0Y0Esb0JuRXNjb0IsQW1FdGNuQixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxFQUFFO0VBQ1gsSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLEdBQUcsRUFBRSxDQUFDO0VBQ04sVUFBVSxFbEVERSxPQUFPO0VrRUVuQixNQUFNLEVBQUUsR0FBRztFakViVCxpQkFBb0IsRUFBUyxnQkFBQztFQWVoQyxTQUFZLEVBQUMsZ0JBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFQWZaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosa0NBQW9CLEVBQVMsUUFBQztFQWVoQywwQkFBWSxFQUFDLFFBQUM7Q2lFR2Q7O0FuRXliRCxBbUVuYkMsb0JuRW1ibUIsQW1FdmJuQixNQUFNLEFBSUwsT0FBTyxFbkVtYlQsb0JBQW9CLEFtRXRibkIsTUFBTSxBQUdMLE9BQU8sRW5FbWJULG9CQUFvQixBbUVyYm5CLE9BQU8sQUFFTixPQUFPLENBQUM7RWpFeEJQLGlCQUFvQixFQUFTLGFBQUM7RUFlaEMsU0FBWSxFQUFDLGFBQUM7Q2lFV2I7O0FuRXViSCw2QkFBNkI7QW9FcGQ3QixVQUFVO0FwRXVkVCxBQUFBLFNBQVMsQ0FBVztFR3RjcEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFRFRqQywyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFVBQUM7RUFlaEMsbUJBQVksRUFBQyxVQUFDO0NGdWNkOztBQUZELEFvRWpkQSxTcEVpZFMsQW9FamRSLE1BQU0sRXBFaWRQLFNBQVMsQW9FaGRSLE1BQU0sRXBFZ2RQLFNBQVMsQW9FL2NSLE9BQU8sQ0FBQztFQUNSLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ25FTVAsa0JBQWlCO0NtRUw3Qjs7QUNWRixZQUFZO0FyRThkWCxBQUFBLFdBQVcsQ0FBVztFRzdjdEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFRFRqQywyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFVBQUM7RUFlaEMsbUJBQVksRUFBQyxVQUFDO0NGOGNkOztBQUZELEFxRXhkQSxXckV3ZFcsQXFFeGRWLE1BQU0sRXJFd2RQLFdBQVcsQXFFdmRWLE1BQU0sRXJFdWRQLFdBQVcsQXFFdGRWLE9BQU8sQ0FBQztFQUNSLFVBQVUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBRSxLQUFJLENBQUMsa0JBQWtCO0NBQ2hEOztBQ1ZGLGlCQUFpQjtBdEVxZWhCLEFBQUEsZ0JBQWdCLENBQVc7RUdwZDNCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RURUakMsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxxQkFBQztFQWVoQyxtQkFBWSxFQUFDLHFCQUFDO0NGcWRkOztBQUZELEFzRS9kQSxnQnRFK2RnQixBc0UvZGYsTUFBTSxFdEUrZFAsZ0JBQWdCLEFzRTlkZixNQUFNLEV0RThkUCxnQkFBZ0IsQXNFN2RmLE9BQU8sQ0FBQztFQUNSLFVBQVUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBRSxLQUFJLENBQUMsa0JBQWtCO0VwRU45QyxpQkFBb0IsRUFBUyxVQUFDO0VBZWhDLFNBQVksRUFBQyxVQUFDO0NvRVBkOztBQ1hGLHVCQUF1QjtBdkU0ZXRCLEFBQUEsc0JBQXNCLENBQVc7RUczZGpDLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RURUakMsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxVQUFDO0VBZWhDLG1CQUFZLEVBQUMsVUFBQztDRjRkZDs7QUFGRCxBdUV0ZUEsc0J2RXNlc0IsQXVFdGVyQixNQUFNLEV2RXNlUCxzQkFBc0IsQXVFcmVyQixNQUFNLEV2RXFlUCxzQkFBc0IsQXVFcGVyQixPQUFPLENBQUM7RUFDUixVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEN0RU1YLGtCQUFpQjtDc0VMN0I7O0FDVkYsc0JBQXNCO0F4RW1mckIsQUFBQSxxQkFBcUIsQ0FBVztFR2xlaEMsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFRFRqQywyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFVBQUM7RUFlaEMsbUJBQVksRUFBQyxVQUFDO0VzRVpmLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEN2RVNWLGtCQUFpQixFdUVSN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VBQUUsdURBQXVEO0N4RThlakY7O0FBRkQsQXdFMWVBLHFCeEUwZXFCLEF3RTFlcEIsTUFBTSxFeEUwZVAscUJBQXFCLEF3RXplcEIsTUFBTSxFeEV5ZVAscUJBQXFCLEF3RXhlcEIsT0FBTyxDQUFDO0VBQ1IsVUFBVSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ3ZFR2pCLGtCQUFpQixFdUVGN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VBQUUsdURBQXVEO0NBQ2pGOztBQ2RGLGtCQUFrQjtBekUwZmpCLEFBQUEsaUJBQWlCLENBQVc7RUd6ZTVCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RXNFVHBDLFFBQVEsRUFBRSxRQUFRO0V2RUFmLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7Q0YwZWQ7O0FBRkQsQXlFbmZBLGlCekVtZmlCLEF5RW5maEIsT0FBTyxDQUFDO0VBQ1AsY0FBYyxFQUFFLElBQUk7RUFDcEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxPQUFPLEVBQUUsRUFBRTtFQUNYLEdBQUcsRUFBRSxJQUFJO0VBQ1QsSUFBSSxFQUFFLEVBQUU7RUFDUixNQUFNLEVBQUUsSUFBSTtFQUNaLEtBQUssRUFBRSxHQUFHO0VBQ1YsT0FBTyxFQUFFLENBQUM7RUFDVixVQUFVLEVBQUUsc0ZBQWtGO0VBQzlGLFVBQVUsRUFBRSxnRkFBd0U7RUFBRSxTQUFTO0V2RWY5RiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLGtCQUFDO0VBZWhDLG1CQUFZLEVBQUMsa0JBQUM7Q3VFR2Q7O0F6RXFlRCxBeUVuZUEsaUJ6RW1laUIsQXlFbmVoQixNQUFNLEV6RW1lUCxpQkFBaUIsQXlFbGVoQixNQUFNLEV6RWtlUCxpQkFBaUIsQXlFamVoQixPQUFPLENBQUM7RXZFdEJOLGlCQUFvQixFQUFTLGdCQUFDO0VBZWhDLFNBQVksRUFBQyxnQkFBQztFdUVRa0MsZ0NBQWdDO0NBTWhGOztBekUwZEQsQXlFOWRDLGlCekU4ZGdCLEF5RW5laEIsTUFBTSxBQUtMLE9BQU8sRXpFOGRULGlCQUFpQixBeUVsZWhCLE1BQU0sQUFJTCxPQUFPLEV6RThkVCxpQkFBaUIsQXlFamVoQixPQUFPLEFBR04sT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLENBQUM7RXZFMUJULGlCQUFvQixFQUFTLGVBQUM7RUFlaEMsU0FBWSxFQUFDLGVBQUM7RXVFWWtDLHNIQUFzSDtDQUNySzs7QUMvQkgsbUJBQW1CO0ExRWlnQmxCLEFBQUEsa0JBQWtCLENBQVc7RUdoZjdCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RXVFVHBDLFFBQVEsRUFBRSxRQUFRO0MxRWdnQmpCOztBQUZELEEwRTVmQSxrQjFFNGZrQixBMEU1ZmpCLE9BQU8sRTFFNGZSLGtCQUFrQixBMEUzZmpCLE1BQU0sQ0FBQztFQUNOLGNBQWMsRUFBRSxJQUFJO0VBQ2pCLFFBQVEsRUFBRSxRQUFRO0VBQ3JCLE9BQU8sRUFBRSxFQUFFO0VBQ1IsSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsSUFBSTtFQUNYLFVBQVUsRUFBRSxVQUFVO0VBQ3RCLGlCQUFpQixFQUFFLFNBQVM7RUFDNUIsTUFBTSxFQUFFLEdBQUc7RUFDWCxPQUFPLEVBQUUsQ0FBQztFeEVaWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLE9BQUM7RUFlaEMsbUJBQVksRUFBQyxPQUFDO0N3RUFkOztBMUUrZUQsQTBFN2VBLGtCMUU2ZWtCLEEwRTdlakIsT0FBTyxDQUFDO0VBQ1AsTUFBTSxFQUFFLElBQUk7RUFDWixVQUFVLEVBQUUsdUZBQWlGO0VBQzFGLFVBQVUsRUFBRSxpRkFBMkU7Q0FDM0Y7O0ExRXllRCxBMEV2ZUEsa0IxRXVla0IsQTBFdmVqQixNQUFNLENBQUM7RUFDTixHQUFHLEVBQUUsSUFBSTtFQUNULFVBQVUsRUFBRSx1RkFBaUY7RUFDN0YsVUFBVSxFQUFFLGlGQUEyRTtDQUN4Rjs7QTFFbWVELEEwRWplQSxrQjFFaWVrQixBMEVqZWpCLE1BQU0sQUFBQSxPQUFPLEUxRWllZCxrQkFBa0IsQTBFaGVqQixNQUFNLEFBQUEsT0FBTyxFMUVnZWQsa0JBQWtCLEEwRS9kakIsT0FBTyxBQUFBLE9BQU8sRTFFK2RmLGtCQUFrQixBMEU5ZGpCLE1BQU0sQUFBQSxNQUFNLEUxRThkYixrQkFBa0IsQTBFN2RqQixNQUFNLEFBQUEsTUFBTSxFMUU2ZGIsa0JBQWtCLEEwRTVkakIsT0FBTyxBQUFBLE1BQU0sQ0FBQztFQUNiLE9BQU8sRUFBRSxDQUFDO0NBQ1g7O0ExRStkRixvQkFBb0I7QTJFdGdCcEIsZ0JBQWdCO0EzRXlnQmYsQUFBQSxlQUFlLENBQVc7RUd4ZjFCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RXdFVHBDLFFBQVEsRUFBRSxRQUFRO0MzRXdnQmpCOztBQUZELEEyRXBnQkEsZTNFb2dCZSxBMkVwZ0JkLE9BQU8sQ0FBQztFQUNSLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxFQUFFO0VBQ1gsT0FBTyxFQUFFLEVBQUU7RUFDWCxZQUFZLEVBQUUsS0FBSztFekVQakIsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFeUVMZCxJQUFJLEVBQUUsZ0JBQXdCO0VBQzlCLEdBQUcsRUFBRSxDQUFDO0VBQ04sWUFBWSxFQUFFLENBQUMsQzFFR04sSUFBSSxDQUNILElBQUksQ0FETCxJQUFJO0UwRUZiLFlBQVksRUFBRSxXQUFXLENBQUMsV0FBVyxDMUVMeEIsT0FBTyxDMEVLNEIsV0FBVztDQUMzRDs7QTNFd2ZELEEyRXRmQSxlM0VzZmUsQTJFdGZkLE1BQU0sQUFBQSxPQUFPLEUzRXNmZCxlQUFlLEEyRXJmZCxNQUFNLEFBQUEsT0FBTyxFM0VxZmQsZUFBZSxBMkVwZmQsT0FBTyxBQUFBLE9BQU8sQ0FBQztFekVsQmIsaUJBQW9CLEVBQVMsaUJBQUM7RUFlaEMsU0FBWSxFQUFDLGlCQUFDO0N5RUtkOztBQ3ZCRixrQkFBa0I7QTVFZ2hCakIsQUFBQSxpQkFBaUIsQ0FBVztFRy9mNUIsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFeUVUcEMsUUFBUSxFQUFFLFFBQVE7QzVFK2dCakI7O0FBRkQsQTRFM2dCQSxpQjVFMmdCaUIsQTRFM2dCaEIsT0FBTyxDQUFDO0VBQ1IsY0FBYyxFQUFFLElBQUk7RUFDcEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxPQUFPLEVBQUUsRUFBRTtFQUNYLFlBQVksRUFBRSxLQUFLO0UxRVBqQiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0UwRUxkLEdBQUcsRUFBRSxnQkFBeUI7RUFDOUIsS0FBSyxFQUFFLENBQUM7RUFDUixZQUFZLEUzRUlGLElBQUksQzJFSlcsQ0FBQyxDM0VJaEIsSUFBSSxDQURMLElBQUk7RTJFRmIsWUFBWSxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVyxDM0VMcEMsT0FBTztDMkVNcEI7O0E1RStmRCxBNEU3ZkEsaUI1RTZmaUIsQTRFN2ZoQixNQUFNLEFBQUEsT0FBTyxFNUU2ZmQsaUJBQWlCLEE0RTVmaEIsTUFBTSxBQUFBLE9BQU8sRTVFNGZkLGlCQUFpQixBNEUzZmhCLE9BQU8sQUFBQSxPQUFPLENBQUM7RTFFbEJiLGlCQUFvQixFQUFTLGdCQUFDO0VBZWhDLFNBQVksRUFBQyxnQkFBQztDMEVLZDs7QUN2QkYsbUJBQW1CO0E3RXVoQmxCLEFBQUEsa0JBQWtCLENBQVc7RUd0Z0I3QixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0UwRVRwQyxRQUFRLEVBQUUsUUFBUTtDN0VzaEJqQjs7QUFGRCxBNkVsaEJBLGtCN0VraEJrQixBNkVsaEJqQixPQUFPLENBQUM7RUFDUixjQUFjLEVBQUUsSUFBSTtFQUNwQixRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLE9BQU8sRUFBRSxFQUFFO0VBQ1gsWUFBWSxFQUFFLEtBQUs7RTNFUGpCLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7RTJFTGQsSUFBSSxFQUFFLGdCQUF3QjtFQUM5QixNQUFNLEVBQUUsQ0FBQztFQUNULFlBQVksRTVFSUYsSUFBSSxDQURMLElBQUksQzRFSHNCLENBQUMsQzVFRzNCLElBQUk7RTRFRmIsWUFBWSxFNUVMQyxPQUFPLEM0RUtJLFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVztDQUMzRDs7QTdFc2dCRCxBNkVwZ0JBLGtCN0VvZ0JrQixBNkVwZ0JqQixNQUFNLEFBQUEsT0FBTyxFN0VvZ0JkLGtCQUFrQixBNkVuZ0JqQixNQUFNLEFBQUEsT0FBTyxFN0VtZ0JkLGtCQUFrQixBNkVsZ0JqQixPQUFPLEFBQUEsT0FBTyxDQUFDO0UzRWxCYixpQkFBb0IsRUFBUyxnQkFBQztFQWVoQyxTQUFZLEVBQUMsZ0JBQUM7QzJFS2Q7O0FDdkJGLGlCQUFpQjtBOUU4aEJoQixBQUFBLGdCQUFnQixDQUFXO0VHN2dCM0IsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFMkVUcEMsUUFBUSxFQUFFLFFBQVE7QzlFNmhCakI7O0FBRkQsQThFemhCQSxnQjlFeWhCZ0IsQThFemhCZixPQUFPLENBQUM7RUFDUixjQUFjLEVBQUUsSUFBSTtFQUNwQixRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLE9BQU8sRUFBRSxFQUFFO0VBQ1gsWUFBWSxFQUFFLEtBQUs7RTVFUGpCLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7RTRFTGQsR0FBRyxFQUFFLGdCQUF5QjtFQUM5QixJQUFJLEVBQUUsQ0FBQztFQUNQLFlBQVksRTdFSUYsSUFBSSxDQURMLElBQUksQ0FDSCxJQUFJLEM2RUpnQyxDQUFDO0VBQy9DLFlBQVksRUFBRSxXQUFXLEM3RUxaLE9BQU8sQzZFS2dCLFdBQVcsQ0FBQyxXQUFXO0NBQzNEOztBOUU2Z0JELEE4RTNnQkEsZ0I5RTJnQmdCLEE4RTNnQmYsTUFBTSxBQUFBLE9BQU8sRTlFMmdCZCxnQkFBZ0IsQThFMWdCZixNQUFNLEFBQUEsT0FBTyxFOUUwZ0JkLGdCQUFnQixBOEV6Z0JmLE9BQU8sQUFBQSxPQUFPLENBQUM7RTVFbEJiLGlCQUFvQixFQUFTLGlCQUFDO0VBZWhDLFNBQVksRUFBQyxpQkFBQztDNEVLZDs7QUN2QkYsc0JBQXNCO0EvRXFpQnJCLEFBQUEscUJBQXFCLENBQVc7RUdwaEJoQyxPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0U0RVRwQyxRQUFRLEVBQUUsUUFBUTtFN0VBZiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0NGcWhCZDs7QUFGRCxBK0U5aEJBLHFCL0U4aEJxQixBK0U5aEJwQixPQUFPLENBQUM7RUFDUixRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLE9BQU8sRUFBRSxFQUFFO0VBQ1gsSUFBSSxFQUFFLGdCQUF3QjtFQUM5QixHQUFHLEVBQUUsQ0FBQztFQUNOLFlBQVksRUFBRSxLQUFLO0VBQ25CLFlBQVksRUFBRSxDQUFDLEM5RUlOLElBQUksQ0FDSCxJQUFJLENBREwsSUFBSTtFOEVIYixZQUFZLEVBQUUsV0FBVyxDQUFDLFdBQVcsQzlFSnhCLE9BQU8sQzhFSTRCLFdBQVc7RTdFWnpELDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7QzZFQWQ7O0EvRW1oQkQsQStFamhCQSxxQi9FaWhCcUIsQStFamhCcEIsTUFBTSxFL0VpaEJQLHFCQUFxQixBK0VoaEJwQixNQUFNLEUvRWdoQlAscUJBQXFCLEErRS9nQnBCLE9BQU8sQ0FBQztFN0VuQk4saUJBQW9CLEVBQVMsZ0JBQUM7RUFlaEMsU0FBWSxFQUFDLGdCQUFDO0M2RVVkOztBL0V5Z0JELEErRTVnQkMscUIvRTRnQm9CLEErRWpoQnBCLE1BQU0sQUFLTCxPQUFPLEUvRTRnQlQscUJBQXFCLEErRWhoQnBCLE1BQU0sQUFJTCxPQUFPLEUvRTRnQlQscUJBQXFCLEErRS9nQnBCLE9BQU8sQUFHTixPQUFPLENBQUM7RTdFdEJQLGlCQUFvQixFQUFTLGlCQUFDO0VBZWhDLFNBQVksRUFBQyxpQkFBQztDNkVTYjs7QUMzQkgsd0JBQXdCO0FoRjRpQnZCLEFBQUEsdUJBQXVCLENBQVc7RUczaEJsQyxPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0U2RVRwQyxRQUFRLEVBQUUsUUFBUTtFOUVBZiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0NGNGhCZDs7QUFGRCxBZ0ZyaUJBLHVCaEZxaUJ1QixBZ0ZyaUJ0QixPQUFPLENBQUM7RUFDUixRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLEdBQUcsRUFBRSxnQkFBeUI7RUFDOUIsS0FBSyxFQUFFLENBQUM7RUFDUixPQUFPLEVBQUUsRUFBRTtFQUNYLFlBQVksRUFBRSxLQUFLO0VBQ25CLFlBQVksRS9FS0YsSUFBSSxDK0VMVyxDQUFDLEMvRUtoQixJQUFJLENBREwsSUFBSTtFK0VIYixZQUFZLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEMvRUpwQyxPQUFPO0VDUmxCLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7QzhFQWQ7O0FoRjBoQkQsQWdGeGhCQSx1QmhGd2hCdUIsQWdGeGhCdEIsTUFBTSxFaEZ3aEJQLHVCQUF1QixBZ0Z2aEJ0QixNQUFNLEVoRnVoQlAsdUJBQXVCLEFnRnRoQnRCLE9BQU8sQ0FBQztFOUVuQk4saUJBQW9CLEVBQVMsaUJBQUM7RUFlaEMsU0FBWSxFQUFDLGlCQUFDO0M4RVVkOztBaEZnaEJELEFnRm5oQkMsdUJoRm1oQnNCLEFnRnhoQnRCLE1BQU0sQUFLTCxPQUFPLEVoRm1oQlQsdUJBQXVCLEFnRnZoQnRCLE1BQU0sQUFJTCxPQUFPLEVoRm1oQlQsdUJBQXVCLEFnRnRoQnRCLE9BQU8sQUFHTixPQUFPLENBQUM7RTlFdEJQLGlCQUFvQixFQUFTLGdCQUFDO0VBZWhDLFNBQVksRUFBQyxnQkFBQztDOEVTYjs7QUMzQkgseUJBQXlCO0FqRm1qQnhCLEFBQUEsd0JBQXdCLENBQVc7RUdsaUJuQyxPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0U4RVRwQyxRQUFRLEVBQUUsUUFBUTtFL0VBZiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0NGbWlCZDs7QUFGRCxBaUY1aUJBLHdCakY0aUJ3QixBaUY1aUJ2QixPQUFPLENBQUM7RUFDUixRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtFQUNYLE9BQU8sRUFBRSxFQUFFO0VBQ1gsSUFBSSxFQUFFLGdCQUF3QjtFQUM5QixNQUFNLEVBQUUsQ0FBQztFQUNULFlBQVksRUFBRSxLQUFLO0VBQ25CLFlBQVksRWhGS0YsSUFBSSxDQURMLElBQUksQ2dGSnNCLENBQUMsQ2hGSTNCLElBQUk7RWdGSGIsWUFBWSxFaEZKQyxPQUFPLENnRklJLFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVztFL0VaekQsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztDK0VBZDs7QWpGaWlCRCxBaUYvaEJBLHdCakYraEJ3QixBaUYvaEJ2QixNQUFNLEVqRitoQlAsd0JBQXdCLEFpRjloQnZCLE1BQU0sRWpGOGhCUCx3QkFBd0IsQWlGN2hCdkIsT0FBTyxDQUFDO0UvRW5CTixpQkFBb0IsRUFBUyxpQkFBQztFQWVoQyxTQUFZLEVBQUMsaUJBQUM7QytFVWQ7O0FqRnVoQkQsQWlGMWhCQyx3QmpGMGhCdUIsQWlGL2hCdkIsTUFBTSxBQUtMLE9BQU8sRWpGMGhCVCx3QkFBd0IsQWlGOWhCdkIsTUFBTSxBQUlMLE9BQU8sRWpGMGhCVCx3QkFBd0IsQWlGN2hCdkIsT0FBTyxBQUdOLE9BQU8sQ0FBQztFL0V0QlAsaUJBQW9CLEVBQVMsZ0JBQUM7RUFlaEMsU0FBWSxFQUFDLGdCQUFDO0MrRVNiOztBQzNCSCx1QkFBdUI7QWxGMGpCdEIsQUFBQSxzQkFBc0IsQ0FBVztFR3ppQmpDLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RStFVHBDLFFBQVEsRUFBRSxRQUFRO0VoRkFmLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7Q0YwaUJkOztBQUZELEFrRm5qQkEsc0JsRm1qQnNCLEFrRm5qQnJCLE9BQU8sQ0FBQztFQUNSLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxFQUFFO0VBQ1gsT0FBTyxFQUFFLEVBQUU7RUFDWCxHQUFHLEVBQUUsZ0JBQXlCO0VBQzlCLElBQUksRUFBRSxDQUFDO0VBQ1AsWUFBWSxFQUFFLEtBQUs7RUFDbkIsWUFBWSxFakZLRixJQUFJLENBREwsSUFBSSxDQUNILElBQUksQ2lGTGdDLENBQUM7RUFDL0MsWUFBWSxFQUFFLFdBQVcsQ2pGSlosT0FBTyxDaUZJZ0IsV0FBVyxDQUFDLFdBQVc7RWhGWnpELDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7Q2dGQWQ7O0FsRndpQkQsQWtGdGlCQSxzQmxGc2lCc0IsQWtGdGlCckIsTUFBTSxFbEZzaUJQLHNCQUFzQixBa0ZyaUJyQixNQUFNLEVsRnFpQlAsc0JBQXNCLEFrRnBpQnJCLE9BQU8sQ0FBQztFaEZuQk4saUJBQW9CLEVBQVMsZ0JBQUM7RUFlaEMsU0FBWSxFQUFDLGdCQUFDO0NnRlVkOztBbEY4aEJELEFrRmppQkMsc0JsRmlpQnFCLEFrRnRpQnJCLE1BQU0sQUFLTCxPQUFPLEVsRmlpQlQsc0JBQXNCLEFrRnJpQnJCLE1BQU0sQUFJTCxPQUFPLEVsRmlpQlQsc0JBQXNCLEFrRnBpQnJCLE9BQU8sQUFHTixPQUFPLENBQUM7RWhGdEJQLGlCQUFvQixFQUFTLGlCQUFDO0VBZWhDLFNBQVksRUFBQyxpQkFBQztDZ0ZTYjs7QWxGb2lCSCxXQUFXO0FtRi9qQlgsZUFBZTtBbkZra0JkLEFBQUEsY0FBYyxDQUFXO0VHampCekIsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFZ0ZUcEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsWUFBWSxFQUFFLEtBQUs7RWpGRGhCLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0NGa2pCZDs7QUFGRCxBbUYzakJBLGNuRjJqQmMsQW1GM2pCYixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsT0FBTztFQUNoQixRQUFRLEVBQUUsUUFBUTtFQUNsQixJQUFJLEVBQUUsR0FBRztFQUNULE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLFdBQVc7RWpGVHRCLGlCQUFvQixFQUFTLGFBQUM7RUFlaEMsU0FBWSxFQUFDLGFBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0VBZlosa0NBQW9CLEVBQVMsUUFBQztFQWVoQywwQkFBWSxFQUFDLFFBQUM7Q2lGRGQ7O0FuRmlqQkQsQW1GM2lCQyxjbkYyaUJhLEFtRi9pQmIsTUFBTSxBQUlMLE9BQU8sRW5GMmlCVCxjQUFjLEFtRjlpQmIsTUFBTSxBQUdMLE9BQU8sRW5GMmlCVCxjQUFjLEFtRjdpQmIsT0FBTyxBQUVOLE9BQU8sQ0FBQztFakZwQlAsaUJBQW9CLEVBQVMsZ0JBQUM7RUFlaEMsU0FBWSxFQUFDLGdCQUFDO0NpRk9iOztBQ3pCSCxrQkFBa0I7QXBGeWtCakIsQUFBQSxpQkFBaUIsQ0FBVztFR3hqQjVCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RWlGVHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGFBQWEsRUFBRSxLQUFLO0VsRkRqQiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztDRnlqQmQ7O0FBRkQsQW9GbGtCQSxpQnBGa2tCaUIsQW9GbGtCaEIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLE9BQU87RUFDaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLEdBQUc7RUFDVixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxXQUFXO0VsRlR0QixpQkFBb0IsRUFBUyxhQUFDO0VBZWhDLFNBQVksRUFBQyxhQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0NrRkRkOztBcEZ3akJELEFvRmxqQkMsaUJwRmtqQmdCLEFvRnRqQmhCLE1BQU0sQUFJTCxPQUFPLEVwRmtqQlQsaUJBQWlCLEFvRnJqQmhCLE1BQU0sQUFHTCxPQUFPLEVwRmtqQlQsaUJBQWlCLEFvRnBqQmhCLE9BQU8sQUFFTixPQUFPLENBQUM7RWxGcEJQLGlCQUFvQixFQUFTLGVBQUM7RUFlaEMsU0FBWSxFQUFDLGVBQUM7Q2tGT2I7O0FDekJILGVBQWU7QW5Gd0JYLGtCQUFrQixDQUFsQixhQUFrQjtFbUZ0QnJCLEVBQUU7RUFDRixHQUFHO0VBQ0gsSUFBSTtJbkZERCxpQkFBb0IsRUFBUyxhQUFDO0lBZWhDLFNBQVksRUFBQyxhQUFDOztFbUZYZixHQUFHO0VBQ0gsR0FBRztJbkZMQSxpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOzs7O0FBNkJkLFVBQVUsQ0FBVixhQUFVO0VtRjdDWCxFQUFFO0VBQ0YsR0FBRztFQUNILElBQUk7SW5GREQsaUJBQW9CLEVBQVMsYUFBQztJQWVoQyxTQUFZLEVBQUMsYUFBQzs7RW1GWGYsR0FBRztFQUNILEdBQUc7SW5GTEEsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7OztBbUZMaEIsZUFBZTtBckZta0JkLEFBQUEsY0FBYyxDQUFXO0VHL2pCekIsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFa0ZJcEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsYUFBYSxFQUFDLEtBQUM7Q3JGaWtCZDs7QUFGRCxBcUY3akJBLGNyRjZqQmMsQXFGN2pCYixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsT0FBTztFQUNoQixRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsR0FBRztFQUNWLE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLFdBQVc7RW5GckJ0QixpQkFBb0IsRUFBUyxhQUFDO0VBZWhDLFNBQVksRUFBQyxhQUFDO0NtRlFkOztBckZzakJELEFxRmhqQkMsY3JGZ2pCYSxBcUZwakJiLE1BQU0sQUFJTCxPQUFPLEVyRmdqQlQsY0FBYyxBcUZuakJiLE1BQU0sQUFHTCxPQUFPLEVyRmdqQlQsY0FBYyxBcUZsakJiLE9BQU8sQUFFTixPQUFPLENBQUM7RW5GN0JQLHNCQUFvQixFQUFTLGFBQUM7RUFlaEMsY0FBWSxFQUFDLGFBQUM7RUFmWiwwQkFBb0IsRUFBUyxLQUFDO0VBZWhDLGtCQUFZLEVBQUMsS0FBQztFQWZaLGlDQUFvQixFQUFTLFFBQUM7RUFlaEMseUJBQVksRUFBQyxRQUFDO0NtRmtCYjs7QUNwQ0gsYUFBYTtBcEZ3QlQsa0JBQWtCLENBQWxCLFdBQWtCO0VvRnRCckIsRUFBRTtFQUNGLEdBQUc7RUFDSCxJQUFJO0lwRkRELGlCQUFvQixFQUFTLGFBQUM7SUFlaEMsU0FBWSxFQUFDLGFBQUM7O0VvRlhmLEdBQUc7RUFDSCxHQUFHO0lwRkxBLGlCQUFvQixFQUFTLGdCQUFDO0lBZWhDLFNBQVksRUFBQyxnQkFBQzs7OztBQTZCZCxVQUFVLENBQVYsV0FBVTtFb0Y3Q1gsRUFBRTtFQUNGLEdBQUc7RUFDSCxJQUFJO0lwRkRELGlCQUFvQixFQUFTLGFBQUM7SUFlaEMsU0FBWSxFQUFDLGFBQUM7O0VvRlhmLEdBQUc7RUFDSCxHQUFHO0lwRkxBLGlCQUFvQixFQUFTLGdCQUFDO0lBZWhDLFNBQVksRUFBQyxnQkFBQzs7OztBb0ZMaEIsYUFBYTtBdEYwa0JaLEFBQUEsWUFBWSxDQUFXO0VHdGtCdkIsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFbUZJcEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsYUFBYSxFQUFFLEtBQUs7Q3RGd2tCbkI7O0FBRkQsQXNGcGtCQSxZdEZva0JZLEFzRnBrQlgsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLE9BQU87RUFDaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLEdBQUc7RUFDVixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxXQUFXO0VwRnJCdEIsaUJBQW9CLEVBQVMsYUFBQztFQWVoQyxTQUFZLEVBQUMsYUFBQztDb0ZRZDs7QXRGNmpCRCxBc0Z2akJDLFl0RnVqQlcsQXNGM2pCWCxNQUFNLEFBSUwsT0FBTyxFdEZ1akJULFlBQVksQXNGMWpCWCxNQUFNLEFBR0wsT0FBTyxFdEZ1akJULFlBQVksQXNGempCWCxPQUFPLEFBRU4sT0FBTyxDQUFDO0VwRjdCUCxzQkFBb0IsRUFBUyxXQUFDO0VBZWhDLGNBQVksRUFBQyxXQUFDO0VBZlosMEJBQW9CLEVBQVMsS0FBQztFQWVoQyxrQkFBWSxFQUFDLEtBQUM7RUFmWixpQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLHlCQUFZLEVBQUMsUUFBQztDb0ZrQmI7O0FDcENILGVBQWU7QXZGOGxCZCxBQUFBLGNBQWMsQ0FBVztFRzdrQnpCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RW9GVHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGFBQWEsRUFBRSxLQUFLO0N2RjRsQm5COztBQUZELEF1RnhsQkEsY3ZGd2xCYyxBdUZ4bEJiLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxPQUFPO0VBQ2hCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFBRSxHQUFHO0VBQ1YsT0FBTyxFQUFFLEtBQUs7RUFDZCxXQUFXLEVBQUUsV0FBVztFckZSdEIsMkJBQW9CLEVBQVMsRUFBQztFQWVoQyxtQkFBWSxFQUFDLEVBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFQWZaLGtDQUFvQixFQUFTLFdBQUM7RUFlaEMsMEJBQVksRUFBQyxXQUFDO0NxRkhkOztBdkYra0JELEF1RnprQkMsY3ZGeWtCYSxBdUY3a0JiLE1BQU0sQUFJTCxPQUFPLEV2RnlrQlQsY0FBYyxBdUY1a0JiLE1BQU0sQUFHTCxPQUFPLEV2RnlrQlQsY0FBYyxBdUYza0JiLE9BQU8sQUFFTixPQUFPLENBQUM7RXJGbEJQLGlCQUFvQixFQUFTLGNBQUM7RUFlaEMsU0FBWSxFQUFDLGNBQUM7Q3FGS2I7O0FDdkJILGVBQWU7QXRGd0JYLGtCQUFrQixDQUFsQixhQUFrQjtFc0Z0QnJCLEVBQUU7SUFDRCxPQUFPLEVBQUUsQ0FBQzs7RUFJWCxHQUFHO0lBQ0YsT0FBTyxFQUFFLENBQUM7SXRGTFIsaUJBQW9CLEVBQVMsaUJBQUM7SUFlaEMsU0FBWSxFQUFDLGlCQUFDOztFc0ZOZixHQUFHO0VBQ0gsSUFBSTtJQUNILE9BQU8sRUFBRSxDQUFDOzs7O0F0RmlDVixVQUFVLENBQVYsYUFBVTtFc0Y3Q1gsRUFBRTtJQUNELE9BQU8sRUFBRSxDQUFDOztFQUlYLEdBQUc7SUFDRixPQUFPLEVBQUUsQ0FBQztJdEZMUixpQkFBb0IsRUFBUyxpQkFBQztJQWVoQyxTQUFZLEVBQUMsaUJBQUM7O0VzRk5mLEdBQUc7RUFDSCxJQUFJO0lBQ0gsT0FBTyxFQUFFLENBQUM7Ozs7QUFJWixlQUFlO0F4Rm1sQmQsQUFBQSxjQUFjLENBQVc7RUdwbEJ6QixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VxRlNwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixhQUFhLEVBQUMsS0FBQztDeEZpbEJkOztBQUZELEF3RjdrQkEsY3hGNmtCYyxBd0Y3a0JiLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxPQUFPO0VBQ2hCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFBRSxHQUFHO0VBQ1YsT0FBTyxFQUFFLENBQUM7RUFDVixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxXQUFXO0V0RjNCdEIsaUJBQW9CLEVBQVMsYUFBQztFQWVoQyxTQUFZLEVBQUMsYUFBQztDc0ZjZDs7QXhGcWtCRCxBd0YvakJDLGN4RitqQmEsQXdGbmtCYixNQUFNLEFBSUwsT0FBTyxFeEYrakJULGNBQWMsQXdGbGtCYixNQUFNLEFBR0wsT0FBTyxFeEYrakJULGNBQWMsQXdGamtCYixPQUFPLEFBRU4sT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLENBQUM7RXRGcENULDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosc0JBQW9CLEVBQVMsYUFBQztFQWVoQyxjQUFZLEVBQUMsYUFBQztFQWZaLDBCQUFvQixFQUFTLElBQUM7RUFlaEMsa0JBQVksRUFBQyxJQUFDO0VBZlosdUJBQW9CLEVBQVMsSUFBQztFQWVoQyxlQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFFBQUM7RUFlaEMsbUJBQVksRUFBQyxRQUFDO0VBZlosaUNBQW9CLEVBQVMsV0FBQztFQWVoQyx5QkFBWSxFQUFDLFdBQUM7RUFmWixpQ0FBb0IsRUFBUyxvQ0FBQztFQWVoQyx5QkFBWSxFQUFDLG9DQUFDO0NzRjZCYjs7QUMvQ0gsZUFBZTtBekY0bUJkLEFBQUEsY0FBYyxDQUFXO0VHM2xCekIsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFc0ZUcEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsYUFBYSxFQUFDLEtBQUM7Q3pGMG1CZDs7QUFGRCxBeUZ0bUJBLGN6RnNtQmMsQXlGdG1CYixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsT0FBTztFQUNoQixRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsR0FBRztFQUNWLE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLFdBQVc7RXZGUnRCLGlCQUFvQixFQUFTLGFBQUM7RUFlaEMsU0FBWSxFQUFDLGFBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLEtBQUM7RUFlaEMsbUJBQVksRUFBQyxLQUFDO0N1RkhkOztBekY2bEJELEF5RnZsQkMsY3pGdWxCYSxBeUYzbEJiLE1BQU0sQUFJTCxPQUFPLEV6RnVsQlQsY0FBYyxBeUYxbEJiLE1BQU0sQUFHTCxPQUFPLEV6RnVsQlQsY0FBYyxBeUZ6bEJiLE9BQU8sQUFFTixPQUFPLENBQUM7RUFDUixLQUFLLEVBQUUsT0FBTztDQUNkOztBQ3ZCSCxxQkFBcUI7QXhGd0JqQixrQkFBa0IsQ0FBbEIsbUJBQWtCO0V3RnRCckIsRUFBRTtJQUNELE9BQU8sRUFBRSxDQUFDOztFQUdYLElBQUk7SUFDSCxPQUFPLEVBQUUsQ0FBQztJeEZKUixpQkFBb0IsRUFBUyxnQkFBQztJQWVoQyxTQUFZLEVBQUMsZ0JBQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLG1CQUFVO0V3RjdDWCxFQUFFO0lBQ0QsT0FBTyxFQUFFLENBQUM7O0VBR1gsSUFBSTtJQUNILE9BQU8sRUFBRSxDQUFDO0l4RkpSLGlCQUFvQixFQUFTLGdCQUFDO0lBZWhDLFNBQVksRUFBQyxnQkFBQzs7OztBd0ZOaEIscUJBQXFCO0ExRnVtQnBCLEFBQUEsb0JBQW9CLENBQVc7RUdsbUIvQixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0V1RkdwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixhQUFhLEVBQUMsS0FBQztDMUZxbUJkOztBQUZELEEwRmptQkEsb0IxRmltQm9CLEEwRmptQm5CLE9BQU8sRTFGaW1CUixvQkFBb0IsQTBGaG1CbkIsTUFBTSxDQUFDO0VBQ1AsT0FBTyxFQUFFLE9BQU87RUFDaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLEdBQUc7RUFDVixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxXQUFXO0NBQ3hCOztBMUYwbEJELEEwRnhsQkEsb0IxRndsQm9CLEEwRnhsQm5CLE1BQU0sQ0FBQztFQUNQLE9BQU8sRUFBRSxDQUFDO0V4RnpCUiwwQkFBb0IsRUFBUyxJQUFDO0VBZWhDLGtCQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFFBQUM7RUFlaEMsbUJBQVksRUFBQyxRQUFDO0N3RmFkOztBMUZvbEJELEEwRjlrQkMsb0IxRjhrQm1CLEEwRmxsQm5CLE1BQU0sQUFJTCxNQUFNLEUxRjhrQlIsb0JBQW9CLEEwRmpsQm5CLE1BQU0sQUFHTCxNQUFNLEUxRjhrQlIsb0JBQW9CLEEwRmhsQm5CLE9BQU8sQUFFTixNQUFNLENBQUM7RXhGbENOLHNCQUFvQixFQUFTLG1CQUFDO0VBZWhDLGNBQVksRUFBQyxtQkFBQztFQWZaLGlDQUFvQixFQUFTLFFBQUM7RUFlaEMseUJBQVksRUFBQyxRQUFDO0N3RnNCYjs7QUN4Q0gsb0JBQW9CO0F6RndCaEIsa0JBQWtCLENBQWxCLGtCQUFrQjtFeUZ0QnJCLEVBQUU7SUFDRCxPQUFPLEVBQUUsQ0FBQzs7RUFHWCxJQUFJO0lBQ0gsT0FBTyxFQUFFLENBQUM7SXpGSlIsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7OztBQTZCZCxVQUFVLENBQVYsa0JBQVU7RXlGN0NYLEVBQUU7SUFDRCxPQUFPLEVBQUUsQ0FBQzs7RUFHWCxJQUFJO0lBQ0gsT0FBTyxFQUFFLENBQUM7SXpGSlIsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7OztBeUZOaEIsb0JBQW9CO0EzRjhtQm5CLEFBQUEsbUJBQW1CLENBQVc7RUd6bUI5QixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0V3RkdwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixhQUFhLEVBQUMsS0FBQztDM0Y0bUJkOztBQUZELEEyRnhtQkEsbUIzRndtQm1CLEEyRnhtQmxCLE9BQU8sRTNGd21CUixtQkFBbUIsQTJGdm1CbEIsTUFBTSxDQUFDO0VBQ1AsT0FBTyxFQUFFLE9BQU87RUFDaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLEdBQUc7RUFDVixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxXQUFXO0V6RnJCdEIsaUJBQW9CLEVBQVMsYUFBQztFQWVoQyxTQUFZLEVBQUMsYUFBQztDeUZRZDs7QTNGZ21CRCxBMkY5bEJBLG1CM0Y4bEJtQixBMkY5bEJsQixNQUFNLENBQUM7RUFDUCxPQUFPLEVBQUUsQ0FBQztFekYxQlIsMEJBQW9CLEVBQVMsSUFBQztFQWVoQyxrQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxRQUFDO0VBZWhDLG1CQUFZLEVBQUMsUUFBQztDeUZjZDs7QTNGMGxCRCxBMkZwbEJDLG1CM0ZvbEJrQixBMkZ4bEJsQixNQUFNLEFBSUwsTUFBTSxFM0ZvbEJSLG1CQUFtQixBMkZ2bEJsQixNQUFNLEFBR0wsTUFBTSxFM0ZvbEJSLG1CQUFtQixBMkZ0bEJsQixPQUFPLEFBRU4sTUFBTSxDQUFDO0V6Rm5DTixzQkFBb0IsRUFBUyxrQkFBQztFQWVoQyxjQUFZLEVBQUMsa0JBQUM7RUFmWixpQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLHlCQUFZLEVBQUMsUUFBQztDeUZ1QmI7O0FDekNILGVBQWU7QTVGaW9CZCxBQUFBLGNBQWMsQ0FBVztFR2huQnpCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RXlGVHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGFBQWEsRUFBQyxLQUFDO0UxRkRaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0NGaW5CZDs7QUFGRCxBNEYxbkJBLGM1RjBuQmMsQTRGMW5CYixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsT0FBTztFQUNoQixRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsR0FBRztFQUNWLE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLFdBQVc7RTFGVHRCLGlCQUFvQixFQUFTLGFBQUM7RUFlaEMsU0FBWSxFQUFDLGFBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0VBZlosa0NBQW9CLEVBQVMsUUFBQztFQWVoQywwQkFBWSxFQUFDLFFBQUM7QzBGRGQ7O0E1RmduQkQsQTRGMW1CQyxjNUYwbUJhLEE0RjltQmIsTUFBTSxBQUlMLE9BQU8sRTVGMG1CVCxjQUFjLEE0RjdtQmIsTUFBTSxBQUdMLE9BQU8sRTVGMG1CVCxjQUFjLEE0RjVtQmIsT0FBTyxBQUVOLE9BQU8sQ0FBQztFMUZwQlAsaUJBQW9CLEVBQVMsd0JBQUM7RUFlaEMsU0FBWSxFQUFDLHdCQUFDO0MwRk9iOztBQ3pCSCxpQkFBaUI7QTdGd29CaEIsQUFBQSxnQkFBZ0IsQ0FBVztFR3ZuQjNCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RTBGVHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGFBQWEsRUFBQyxLQUFDO0UzRkRaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0NGd25CZDs7QUFGRCxBNkZqb0JBLGdCN0Zpb0JnQixBNkZqb0JmLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxPQUFPO0VBQ2hCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFBRSxHQUFHO0VBQ1YsT0FBTyxFQUFFLEtBQUs7RUFDZCxXQUFXLEVBQUUsV0FBVztFM0ZUdEIsaUJBQW9CLEVBQVMsYUFBQztFQWVoQyxTQUFZLEVBQUMsYUFBQztFQWZaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDMkZEZDs7QTdGdW5CRCxBNkZqbkJDLGdCN0ZpbkJlLEE2RnJuQmYsTUFBTSxBQUlMLE9BQU8sRTdGaW5CVCxnQkFBZ0IsQTZGcG5CZixNQUFNLEFBR0wsT0FBTyxFN0ZpbkJULGdCQUFnQixBNkZubkJmLE9BQU8sQUFFTixPQUFPLENBQUM7RTNGcEJQLGlCQUFvQixFQUFTLFVBQUM7RUFlaEMsU0FBWSxFQUFDLFVBQUM7QzJGT2I7O0FDekJILGdCQUFnQjtBNUZ3Qlosa0JBQWtCLENBQWxCLGNBQWtCO0U0RnRCckIsR0FBRztJNUZDQSxpQkFBb0IsRUFBUyxVQUFDO0lBZWhDLFNBQVksRUFBQyxVQUFDOztFNEZaZixHQUFHO0k1RkhBLGlCQUFvQixFQUFTLFVBQUM7SUFlaEMsU0FBWSxFQUFDLFVBQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLGNBQVU7RTRGN0NYLEdBQUc7STVGQ0EsaUJBQW9CLEVBQVMsVUFBQztJQWVoQyxTQUFZLEVBQUMsVUFBQzs7RTRGWmYsR0FBRztJNUZIQSxpQkFBb0IsRUFBUyxVQUFDO0lBZWhDLFNBQVksRUFBQyxVQUFDOzs7O0FGNm5CZixBQUFBLGVBQWUsQ0FBVztFRzluQjFCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RTJGQ3BDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGFBQWEsRUFBQyxLQUFDO0M5Rm1vQmQ7O0FBRkQsQThGL25CQSxlOUYrbkJlLEE4Ri9uQmQsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLE9BQU87RUFDaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLEdBQUc7RUFDVixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxXQUFXO0U1RmxCdEIsaUJBQW9CLEVBQVMsYUFBQztFQWVoQyxTQUFZLEVBQUMsYUFBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0M0Rk1kOztBOUZ1bkJELEE4RmpuQkMsZTlGaW5CYyxBOEZybkJkLE1BQU0sQUFJTCxPQUFPLEU5RmluQlQsZUFBZSxBOEZwbkJkLE1BQU0sQUFHTCxPQUFPLEU5RmluQlQsZUFBZSxBOEZubkJkLE9BQU8sQUFFTixPQUFPLENBQUM7RTVGM0JQLHNCQUFvQixFQUFTLGNBQUM7RUFlaEMsY0FBWSxFQUFDLGNBQUM7RUFmWiwwQkFBb0IsRUFBUyxFQUFDO0VBZWhDLGtCQUFZLEVBQUMsRUFBQztFQWZaLGlDQUFvQixFQUFTLE1BQUM7RUFlaEMseUJBQVksRUFBQyxNQUFDO0VBZlosaUNBQW9CLEVBQVMsUUFBQztFQWVoQyx5QkFBWSxFQUFDLFFBQUM7QzRGaUJiOztBQ25DSCxxQkFBcUI7QTdGd0JqQixrQkFBa0IsQ0FBbEIsbUJBQWtCO0U2RnRCckIsRUFBRTtJN0ZDQyxpQkFBb0IsRUFBUyxVQUFDO0lBZWhDLFNBQVksRUFBQyxVQUFDOzs7O0FBNkJkLFVBQVUsQ0FBVixtQkFBVTtFNkY3Q1gsRUFBRTtJN0ZDQyxpQkFBb0IsRUFBUyxVQUFDO0lBZWhDLFNBQVksRUFBQyxVQUFDOzs7O0FGb29CZixBQUFBLG9CQUFvQixDQUFXO0VHcm9CL0IsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFNEZIcEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsYUFBYSxFQUFDLEtBQUM7Qy9GOG9CZDs7QUFGRCxBK0Yxb0JBLG9CL0Ywb0JvQixBK0Yxb0JuQixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsT0FBTztFQUNoQixRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsR0FBRztFQUNWLE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLFdBQVc7RTdGZHRCLGlCQUFvQixFQUFTLGFBQUM7RUFlaEMsU0FBWSxFQUFDLGFBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDNkZFZDs7QS9Ga29CRCxBK0Y1bkJDLG9CL0Y0bkJtQixBK0Zob0JuQixNQUFNLEFBSUwsT0FBTyxFL0Y0bkJULG9CQUFvQixBK0YvbkJuQixNQUFNLEFBR0wsT0FBTyxFL0Y0bkJULG9CQUFvQixBK0Y5bkJuQixPQUFPLEFBRU4sT0FBTyxDQUFDO0U3RnZCUCxzQkFBb0IsRUFBUyxtQkFBQztFQWVoQyxjQUFZLEVBQUMsbUJBQUM7RUFmWiwwQkFBb0IsRUFBUyxJQUFDO0VBZWhDLGtCQUFZLEVBQUMsSUFBQztFQWZaLGlDQUFvQixFQUFTLE1BQUM7RUFlaEMseUJBQVksRUFBQyxNQUFDO0VBZlosaUNBQW9CLEVBQVMsUUFBQztFQWVoQyx5QkFBWSxFQUFDLFFBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztDNkZjYjs7QUNoQ0gsdUJBQXVCO0E5RndCbkIsa0JBQWtCLENBQWxCLHFCQUFrQjtFOEZ0QnJCLEVBQUU7STlGQ0MsaUJBQW9CLEVBQVMsVUFBQztJQWVoQyxTQUFZLEVBQUMsVUFBQzs7OztBQTZCZCxVQUFVLENBQVYscUJBQVU7RThGN0NYLEVBQUU7STlGQ0MsaUJBQW9CLEVBQVMsVUFBQztJQWVoQyxTQUFZLEVBQUMsVUFBQzs7OztBRjJvQmYsQUFBQSxzQkFBc0IsQ0FBVztFRzVvQmpDLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RTZGSHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGFBQWEsRUFBQyxLQUFDO0NoR3FwQmQ7O0FBRkQsQWdHanBCQSxzQmhHaXBCc0IsQWdHanBCckIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLE9BQU87RUFDaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLEdBQUc7RUFDVixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxXQUFXO0U5RmR0QixpQkFBb0IsRUFBUyxhQUFDO0VBZWhDLFNBQVksRUFBQyxhQUFDO0VBZlosa0NBQW9CLEVBQVMsUUFBQztFQWVoQywwQkFBWSxFQUFDLFFBQUM7QzhGRWQ7O0FoR3lvQkQsQWdHbm9CQyxzQmhHbW9CcUIsQWdHdm9CckIsTUFBTSxBQUlMLE9BQU8sRWhHbW9CVCxzQkFBc0IsQWdHdG9CckIsTUFBTSxBQUdMLE9BQU8sRWhHbW9CVCxzQkFBc0IsQWdHcm9CckIsT0FBTyxBQUVOLE9BQU8sQ0FBQztFOUZ2QlAsc0JBQW9CLEVBQVMscUJBQUM7RUFlaEMsY0FBWSxFQUFDLHFCQUFDO0VBZlosMEJBQW9CLEVBQVMsSUFBQztFQWVoQyxrQkFBWSxFQUFDLElBQUM7RUFmWixpQ0FBb0IsRUFBUyxNQUFDO0VBZWhDLHlCQUFZLEVBQUMsTUFBQztFQWZaLGlDQUFvQixFQUFTLFFBQUM7RUFlaEMseUJBQVksRUFBQyxRQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7QzhGY2I7O0FDaENILGVBQWU7QS9Gd0JYLGtCQUFrQixDQUFsQixhQUFrQjtFK0Z0QnJCLEdBQUc7SS9GQ0EsaUJBQW9CLEVBQVMsVUFBQztJQWVoQyxTQUFZLEVBQUMsVUFBQzs7OztBQTZCZCxVQUFVLENBQVYsYUFBVTtFK0Y3Q1gsR0FBRztJL0ZDQSxpQkFBb0IsRUFBUyxVQUFDO0lBZWhDLFNBQVksRUFBQyxVQUFDOzs7O0FGa3BCZixBQUFBLGNBQWMsQ0FBVztFR25wQnpCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RThGSHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGFBQWEsRUFBQyxLQUFDO0UvRlBaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0NGb3BCZDs7QUFGRCxBaUd2cEJBLGNqR3VwQmMsQWlHdnBCYixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsT0FBTztFQUNoQixRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsR0FBRztFQUNWLE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLFdBQVc7RS9GZnRCLGlCQUFvQixFQUFTLGFBQUM7RUFlaEMsU0FBWSxFQUFDLGFBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0VBZlosa0NBQW9CLEVBQVMsUUFBQztFQWVoQywwQkFBWSxFQUFDLFFBQUM7QytGS2Q7O0FqRzZvQkQsQWlHdm9CQyxjakd1b0JhLEFpRzNvQmIsTUFBTSxBQUlMLE9BQU8sRWpHdW9CVCxjQUFjLEFpRzFvQmIsTUFBTSxBQUdMLE9BQU8sRWpHdW9CVCxjQUFjLEFpR3pvQmIsT0FBTyxBQUVOLE9BQU8sQ0FBQztFL0YxQlAsc0JBQW9CLEVBQVMsYUFBQztFQWVoQyxjQUFZLEVBQUMsYUFBQztFQWZaLDBCQUFvQixFQUFTLElBQUM7RUFlaEMsa0JBQVksRUFBQyxJQUFDO0VBZlosaUNBQW9CLEVBQVMsTUFBQztFQWVoQyx5QkFBWSxFQUFDLE1BQUM7RUFmWixpQ0FBb0IsRUFBUyxDQUFDO0VBZWhDLHlCQUFZLEVBQUMsQ0FBQztDK0ZnQmI7O0FDbENILGNBQWM7QWhHd0JWLGtCQUFrQixDQUFsQixZQUFrQjtFZ0d0QnJCLEdBQUc7SWhHQ0EsaUJBQW9CLEVBQVMsVUFBQztJQWVoQyxTQUFZLEVBQUMsVUFBQzs7OztBQTZCZCxVQUFVLENBQVYsWUFBVTtFZ0c3Q1gsR0FBRztJaEdDQSxpQkFBb0IsRUFBUyxVQUFDO0lBZWhDLFNBQVksRUFBQyxVQUFDOzs7O0FGeXBCZixBQUFBLGFBQWEsQ0FBVztFRzFwQnhCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RStGSHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGFBQWEsRUFBQyxLQUFDO0VoR1BaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0NGMnBCZDs7QUFGRCxBa0c5cEJBLGFsRzhwQmEsQWtHOXBCWixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsT0FBTztFQUNoQixRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsR0FBRztFQUNWLE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLFdBQVc7RWhHZnRCLGlCQUFvQixFQUFTLGFBQUM7RUFlaEMsU0FBWSxFQUFDLGFBQUM7RUFmWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztFQWZaLDJCQUFvQixFQUFTLFNBQUM7RUFlaEMsbUJBQVksRUFBQyxTQUFDO0VBZlosa0NBQW9CLEVBQVMsUUFBQztFQWVoQywwQkFBWSxFQUFDLFFBQUM7Q2dHS2Q7O0FsR29wQkQsQWtHOW9CQyxhbEc4b0JZLEFrR2xwQlosTUFBTSxBQUlMLE9BQU8sRWxHOG9CVCxhQUFhLEFrR2pwQlosTUFBTSxBQUdMLE9BQU8sRWxHOG9CVCxhQUFhLEFrR2hwQlosT0FBTyxBQUVOLE9BQU8sQ0FBQztFaEcxQlAsc0JBQW9CLEVBQVMsWUFBQztFQWVoQyxjQUFZLEVBQUMsWUFBQztFQWZaLDBCQUFvQixFQUFTLElBQUM7RUFlaEMsa0JBQVksRUFBQyxJQUFDO0VBZlosaUNBQW9CLEVBQVMsTUFBQztFQWVoQyx5QkFBWSxFQUFDLE1BQUM7RUFmWixpQ0FBb0IsRUFBUyxDQUFDO0VBZWhDLHlCQUFZLEVBQUMsQ0FBQztDZ0dnQmI7O0FDbENILGlCQUFpQjtBbkdrckJoQixBQUFBLGdCQUFnQixDQUFXO0VHanFCM0IsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFZ0dScEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsYUFBYSxFQUFDLEtBQUM7RWpHRlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0ZrcUJkOztBQUZELEFtRzFxQkEsZ0JuRzBxQmdCLEFtRzFxQmYsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLE9BQU87RUFDaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLEdBQUc7RUFDVixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxXQUFXO0VqR1Z0QixpQkFBb0IsRUFBUyxhQUFDO0VBZWhDLFNBQVksRUFBQyxhQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0NpR0FkOztBbkdncUJELEFtRzFwQkMsZ0JuRzBwQmUsQW1HOXBCZixNQUFNLEFBSUwsT0FBTyxFbkcwcEJULGdCQUFnQixBbUc3cEJmLE1BQU0sQUFHTCxPQUFPLEVuRzBwQlQsZ0JBQWdCLEFtRzVwQmYsT0FBTyxBQUVOLE9BQU8sQ0FBQztFakdyQlAsaUJBQW9CLEVBQVMsVUFBQztFQWVoQyxTQUFZLEVBQUMsVUFBQztFQWZaLGtDQUFvQixFQUFTLHFDQUFDO0VBZWhDLDBCQUFZLEVBQUMscUNBQUM7Q2lHU2I7O0FDM0JILGlCQUFpQjtBcEd5ckJoQixBQUFBLGdCQUFnQixDQUFXO0VHeHFCM0IsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFaUdQcEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsYUFBYSxFQUFDLEtBQUM7RWxHSFosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0Z5cUJkOztBQUZELEFvR2hyQkEsZ0JwR2dyQmdCLEFvR2hyQmYsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLE9BQU87RUFDaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLEdBQUc7RUFDVixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxXQUFXO0VsR1h0QixpQkFBb0IsRUFBUyxhQUFDO0VBZWhDLFNBQVksRUFBQyxhQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0NrR0NkOztBcEdzcUJELEFvR2hxQkMsZ0JwR2dxQmUsQW9HcHFCZixNQUFNLEFBSUwsT0FBTyxFcEdncUJULGdCQUFnQixBb0ducUJmLE1BQU0sQUFHTCxPQUFPLEVwR2dxQlQsZ0JBQWdCLEFvR2xxQmYsT0FBTyxBQUVOLE9BQU8sQ0FBQztFbEd0QlAsaUJBQW9CLEVBQVMsYUFBQztFQWVoQyxTQUFZLEVBQUMsYUFBQztDa0dTYjs7QUMzQkgsc0JBQXNCO0FyR2dzQnJCLEFBQUEscUJBQXFCLENBQVc7RUcvcUJoQyxPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VrR1BwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixhQUFhLEVBQUMsS0FBQztFbkdIWiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztDRmdyQmQ7O0FBRkQsQXFHdnJCQSxxQnJHdXJCcUIsQXFHdnJCcEIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLE9BQU87RUFDaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLEdBQUc7RUFDVixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxXQUFXO0VuR1h0QixpQkFBb0IsRUFBUyxhQUFDO0VBZWhDLFNBQVksRUFBQyxhQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0NtR0NkOztBckc2cUJELEFxR3ZxQkMscUJyR3VxQm9CLEFxRzNxQnBCLE1BQU0sQUFJTCxPQUFPLEVyR3VxQlQscUJBQXFCLEFxRzFxQnBCLE1BQU0sQUFHTCxPQUFPLEVyR3VxQlQscUJBQXFCLEFxR3pxQnBCLE9BQU8sQUFFTixPQUFPLENBQUM7RW5HdEJQLGlCQUFvQixFQUFTLHdCQUFDO0VBZWhDLFNBQVksRUFBQyx3QkFBQztDbUdTYjs7QUMzQkgsZ0JBQWdCO0F0R3VzQmYsQUFBQSxlQUFlLENBQVc7RUd0ckIxQixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VtR1RwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixhQUFhLEVBQUUsS0FBSztFcEdEakIsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0Z1ckJkOztBQUZELEFzR2hzQkEsZXRHZ3NCZSxBc0doc0JkLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxPQUFPO0VBQ2hCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFBRSxHQUFHO0VBQ1YsT0FBTyxFQUFFLEtBQUs7RUFDZCxXQUFXLEVBQUUsV0FBVztFcEdUdEIsaUJBQW9CLEVBQVMsYUFBQztFQWVoQyxTQUFZLEVBQUMsYUFBQztFQWZaLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsU0FBQztFQWVoQyxtQkFBWSxFQUFDLFNBQUM7RUFmWixrQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLDBCQUFZLEVBQUMsUUFBQztDb0dEZDs7QXRHc3JCRCxBc0dockJDLGV0R2dyQmMsQXNHcHJCZCxNQUFNLEFBSUwsT0FBTyxFdEdnckJULGVBQWUsQXNHbnJCZCxNQUFNLEFBR0wsT0FBTyxFdEdnckJULGVBQWUsQXNHbHJCZCxPQUFPLEFBRU4sT0FBTyxDQUFDO0VwR3BCUCxpQkFBb0IsRUFBUyxnQkFBQztFQWVoQyxTQUFZLEVBQUMsZ0JBQUM7Q29HT2I7O0FDekJILGVBQWU7QXZHOHNCZCxBQUFBLGNBQWMsQ0FBVztFRzdyQnpCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RW9HVHBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGFBQWEsRUFBRSxLQUFLO0VyR0RqQiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztDRjhyQmQ7O0FBRkQsQXVHdnNCQSxjdkd1c0JjLEF1R3ZzQmIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLE9BQU87RUFDaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLEdBQUc7RUFDVixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxXQUFXO0VyR1R0QixpQkFBb0IsRUFBUyxhQUFDO0VBZWhDLFNBQVksRUFBQyxhQUFDO0VBZlosMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7RUFmWiwyQkFBb0IsRUFBUyxTQUFDO0VBZWhDLG1CQUFZLEVBQUMsU0FBQztFQWZaLGtDQUFvQixFQUFTLFFBQUM7RUFlaEMsMEJBQVksRUFBQyxRQUFDO0NxR0RkOztBdkc2ckJELEF1R3ZyQkMsY3ZHdXJCYSxBdUczckJiLE1BQU0sQUFJTCxPQUFPLEV2R3VyQlQsY0FBYyxBdUcxckJiLE1BQU0sQUFHTCxPQUFPLEV2R3VyQlQsY0FBYyxBdUd6ckJiLE9BQU8sQUFFTixPQUFPLENBQUM7RXJHcEJQLGlCQUFvQixFQUFTLGVBQUM7RUFlaEMsU0FBWSxFQUFDLGVBQUM7Q3FHT2I7O0FDekJILGNBQWM7QXRHd0JWLGtCQUFrQixDQUFsQixZQUFrQjtFc0d0QnJCLEVBQUU7SXRHQ0MsaUJBQW9CLEVBQVMsZ0JBQUM7SUFlaEMsU0FBWSxFQUFDLGdCQUFDOztFc0diZixHQUFHO0l0R0ZBLGlCQUFvQixFQUFTLGdCQUFDO0lBZWhDLFNBQVksRUFBQyxnQkFBQzs7RXNHVmYsSUFBSTtJdEdMRCxpQkFBb0IsRUFBUyxnQkFBQztJQWVoQyxTQUFZLEVBQUMsZ0JBQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLFlBQVU7RXNHN0NYLEVBQUU7SXRHQ0MsaUJBQW9CLEVBQVMsZ0JBQUM7SUFlaEMsU0FBWSxFQUFDLGdCQUFDOztFc0diZixHQUFHO0l0R0ZBLGlCQUFvQixFQUFTLGdCQUFDO0lBZWhDLFNBQVksRUFBQyxnQkFBQzs7RXNHVmYsSUFBSTtJdEdMRCxpQkFBb0IsRUFBUyxnQkFBQztJQWVoQyxTQUFZLEVBQUMsZ0JBQUM7Ozs7QUFNWixrQkFBa0IsQ0FBbEIsa0JBQWtCO0VzR1ZyQixJQUFJO0l0R1hELGlCQUFvQixFQUFTLGdCQUFDO0lBZWhDLFNBQVksRUFBQyxnQkFBQzs7OztBQTZCZCxVQUFVLENBQVYsa0JBQVU7RXNHakNYLElBQUk7SXRHWEQsaUJBQW9CLEVBQVMsZ0JBQUM7SUFlaEMsU0FBWSxFQUFDLGdCQUFDOzs7O0FGbXNCZixBQUFBLGFBQWEsQ0FBVztFR3BzQnhCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RXFHU3BDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGFBQWEsRUFBRSxLQUFLO0V0R25CakIsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0Zxc0JkOztBQUZELEF3RzVyQkEsYXhHNHJCYSxBd0c1ckJaLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxPQUFPO0VBQ2hCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFBRSxHQUFHO0VBQ1YsT0FBTyxFQUFFLEtBQUs7RUFDZCxXQUFXLEVBQUUsV0FBVztFdEczQnRCLGlCQUFvQixFQUFTLGFBQUM7RUFlaEMsU0FBWSxFQUFDLGFBQUM7Q3NHY2Q7O0F4R3FyQkQsQXdHL3FCQyxheEcrcUJZLEF3R25yQlosTUFBTSxBQUlMLE9BQU8sRXhHK3FCVCxhQUFhLEF3R2xyQlosTUFBTSxBQUdMLE9BQU8sRXhHK3FCVCxhQUFhLEF3R2pyQlosT0FBTyxBQUVOLE9BQU8sQ0FBQztFdEduQ1Asc0JBQW9CLEVBQVMsZ0NBQUM7RUFlaEMsY0FBWSxFQUFDLGdDQUFDO0VBZlosMEJBQW9CLEVBQVMsU0FBQztFQWVoQyxrQkFBWSxFQUFDLFNBQUM7RUFmWix1QkFBb0IsRUFBUyxPQUFDO0VBZWhDLGVBQVksRUFBQyxPQUFDO0VBZlosaUNBQW9CLEVBQVMscUJBQUM7RUFlaEMseUJBQVksRUFBQyxxQkFBQztFQWZaLGlDQUFvQixFQUFTLFdBQUM7RUFlaEMseUJBQVksRUFBQyxXQUFDO0VBZlosMkJBQW9CLEVBQVMsUUFBQztFQWVoQyxtQkFBWSxFQUFDLFFBQUM7RUFmWiwyQkFBb0IsRUFBUyxpQkFBQztFQWVoQyxtQkFBWSxFQUFDLGlCQUFDO0NzRzRCYjs7QUM5Q0gsZUFBZTtBdkd3Qlgsa0JBQWtCLENBQWxCLGFBQWtCO0V1R3RCckIsRUFBRTtJdkdDQyxpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOztFdUdiZixHQUFHO0l2R0ZBLGlCQUFvQixFQUFTLGVBQUM7SUFlaEMsU0FBWSxFQUFDLGVBQUM7O0V1R1ZmLElBQUk7SXZHTEQsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7OztBQTZCZCxVQUFVLENBQVYsYUFBVTtFdUc3Q1gsRUFBRTtJdkdDQyxpQkFBb0IsRUFBUyxlQUFDO0lBZWhDLFNBQVksRUFBQyxlQUFDOztFdUdiZixHQUFHO0l2R0ZBLGlCQUFvQixFQUFTLGVBQUM7SUFlaEMsU0FBWSxFQUFDLGVBQUM7O0V1R1ZmLElBQUk7SXZHTEQsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7OztBQU1aLGtCQUFrQixDQUFsQixrQkFBa0I7RXVHVnJCLElBQUk7SXZHWEQsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7OztBQTZCZCxVQUFVLENBQVYsa0JBQVU7RXVHakNYLElBQUk7SXZHWEQsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7OztBRjBzQmYsQUFBQSxjQUFjLENBQVc7RUczc0J6QixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0VzR1NwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixhQUFhLEVBQUUsS0FBSztFdkduQmpCLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0NGNHNCZDs7QUFGRCxBeUduc0JBLGN6R21zQmMsQXlHbnNCYixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsT0FBTztFQUNoQixRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsR0FBRztFQUNWLE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLFdBQVc7RXZHM0J0QixpQkFBb0IsRUFBUyxhQUFDO0VBZWhDLFNBQVksRUFBQyxhQUFDO0N1R2NkOztBekc0ckJELEF5R3RyQkMsY3pHc3JCYSxBeUcxckJiLE1BQU0sQUFJTCxPQUFPLEV6R3NyQlQsY0FBYyxBeUd6ckJiLE1BQU0sQUFHTCxPQUFPLEV6R3NyQlQsY0FBYyxBeUd4ckJiLE9BQU8sQUFFTixPQUFPLENBQUM7RXZHbkNQLHNCQUFvQixFQUFTLGlDQUFDO0VBZWhDLGNBQVksRUFBQyxpQ0FBQztFQWZaLDBCQUFvQixFQUFTLFNBQUM7RUFlaEMsa0JBQVksRUFBQyxTQUFDO0VBZlosdUJBQW9CLEVBQVMsT0FBQztFQWVoQyxlQUFZLEVBQUMsT0FBQztFQWZaLGlDQUFvQixFQUFTLHFCQUFDO0VBZWhDLHlCQUFZLEVBQUMscUJBQUM7RUFmWixpQ0FBb0IsRUFBUyxXQUFDO0VBZWhDLHlCQUFZLEVBQUMsV0FBQztFQWZaLDJCQUFvQixFQUFTLFFBQUM7RUFlaEMsbUJBQVksRUFBQyxRQUFDO0VBZlosMkJBQW9CLEVBQVMsaUJBQUM7RUFlaEMsbUJBQVksRUFBQyxpQkFBQztDdUc0QmI7O0FDOUNILDRCQUE0QjtBeEd3QnhCLGtCQUFrQixDQUFsQiwwQkFBa0I7RXdHdEJyQixNQUFNO0l4R0NILGlCQUFvQixFQUFTLGVBQUM7SUFlaEMsU0FBWSxFQUFDLGVBQUM7O0V3R1pmLEtBQUs7SXhHSEYsaUJBQW9CLEVBQVMsZ0JBQUM7SUFlaEMsU0FBWSxFQUFDLGdCQUFDOztFd0dSZixNQUFNO0l4R1BILGlCQUFvQixFQUFTLGVBQUM7SUFlaEMsU0FBWSxFQUFDLGVBQUM7O0V3R0pmLEtBQUs7SXhHWEYsaUJBQW9CLEVBQVMsZ0JBQUM7SUFlaEMsU0FBWSxFQUFDLGdCQUFDOztFd0dBZixNQUFNO0l4R2ZILGlCQUFvQixFQUFTLGVBQUM7SUFlaEMsU0FBWSxFQUFDLGVBQUM7O0V3R0lmLElBQUk7SXhHbkJELGlCQUFvQixFQUFTLGFBQUM7SUFlaEMsU0FBWSxFQUFDLGFBQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLDBCQUFVO0V3RzdDWCxNQUFNO0l4R0NILGlCQUFvQixFQUFTLGVBQUM7SUFlaEMsU0FBWSxFQUFDLGVBQUM7O0V3R1pmLEtBQUs7SXhHSEYsaUJBQW9CLEVBQVMsZ0JBQUM7SUFlaEMsU0FBWSxFQUFDLGdCQUFDOztFd0dSZixNQUFNO0l4R1BILGlCQUFvQixFQUFTLGVBQUM7SUFlaEMsU0FBWSxFQUFDLGVBQUM7O0V3R0pmLEtBQUs7SXhHWEYsaUJBQW9CLEVBQVMsZ0JBQUM7SUFlaEMsU0FBWSxFQUFDLGdCQUFDOztFd0dBZixNQUFNO0l4R2ZILGlCQUFvQixFQUFTLGVBQUM7SUFlaEMsU0FBWSxFQUFDLGVBQUM7O0V3R0lmLElBQUk7SXhHbkJELGlCQUFvQixFQUFTLGFBQUM7SUFlaEMsU0FBWSxFQUFDLGFBQUM7Ozs7QUZpdEJmLEFBQUEsMkJBQTJCLENBQVc7RUdsdEJ0QyxPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0V1R2lCcEMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsYUFBYSxFQUFFLEtBQUs7RXhHM0JqQiwyQkFBb0IsRUFBUyxJQUFDO0VBZWhDLG1CQUFZLEVBQUMsSUFBQztDRm10QmQ7O0FBRkQsQTBHbHNCQSwyQjFHa3NCMkIsQTBHbHNCMUIsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLE9BQU87RUFDaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLEdBQUc7RUFDVixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxXQUFXO0V4R25DdEIsaUJBQW9CLEVBQVMsYUFBQztFQWVoQyxTQUFZLEVBQUMsYUFBQztDd0dzQmQ7O0ExRzJyQkQsQTBHcnJCQywyQjFHcXJCMEIsQTBHenJCMUIsTUFBTSxBQUlMLE9BQU8sRTFHcXJCVCwyQkFBMkIsQTBHeHJCMUIsTUFBTSxBQUdMLE9BQU8sRTFHcXJCVCwyQkFBMkIsQTBHdnJCMUIsT0FBTyxBQUVOLE9BQU8sQ0FBQztFeEczQ1Asc0JBQW9CLEVBQVMsMEJBQUM7RUFlaEMsY0FBWSxFQUFDLDBCQUFDO0VBZlosMEJBQW9CLEVBQVMsRUFBQztFQWVoQyxrQkFBWSxFQUFDLEVBQUM7RUFmWixpQ0FBb0IsRUFBUyxXQUFDO0VBZWhDLHlCQUFZLEVBQUMsV0FBQztFQWZaLGlDQUFvQixFQUFTLENBQUM7RUFlaEMseUJBQVksRUFBQyxDQUFDO0N3R2lDYjs7QUNuREgsMEJBQTBCO0F6R3dCdEIsa0JBQWtCLENBQWxCLHdCQUFrQjtFeUd0QnJCLE1BQU07SXpHQ0gsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RXlHWmYsS0FBSztJekdIRixpQkFBb0IsRUFBUyxnQkFBQztJQWVoQyxTQUFZLEVBQUMsZ0JBQUM7O0V5R1JmLE1BQU07SXpHUEgsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RXlHSmYsS0FBSztJekdYRixpQkFBb0IsRUFBUyxnQkFBQztJQWVoQyxTQUFZLEVBQUMsZ0JBQUM7O0V5R0FmLE1BQU07SXpHZkgsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RXlHSWYsSUFBSTtJekduQkQsaUJBQW9CLEVBQVMsYUFBQztJQWVoQyxTQUFZLEVBQUMsYUFBQzs7OztBQTZCZCxVQUFVLENBQVYsd0JBQVU7RXlHN0NYLE1BQU07SXpHQ0gsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RXlHWmYsS0FBSztJekdIRixpQkFBb0IsRUFBUyxnQkFBQztJQWVoQyxTQUFZLEVBQUMsZ0JBQUM7O0V5R1JmLE1BQU07SXpHUEgsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RXlHSmYsS0FBSztJekdYRixpQkFBb0IsRUFBUyxnQkFBQztJQWVoQyxTQUFZLEVBQUMsZ0JBQUM7O0V5R0FmLE1BQU07SXpHZkgsaUJBQW9CLEVBQVMsZUFBQztJQWVoQyxTQUFZLEVBQUMsZUFBQzs7RXlHSWYsSUFBSTtJekduQkQsaUJBQW9CLEVBQVMsYUFBQztJQWVoQyxTQUFZLEVBQUMsYUFBQzs7OztBRnd0QmYsQUFBQSx5QkFBeUIsQ0FBVztFR3p0QnBDLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RXdHaUJwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixhQUFhLEVBQUUsS0FBSztFekczQmpCLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0NGMHRCZDs7QUFGRCxBMkd6c0JBLHlCM0d5c0J5QixBMkd6c0J4QixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsT0FBTztFQUNoQixRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsR0FBRztFQUNWLE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLFdBQVc7RXpHbkN0QixpQkFBb0IsRUFBUyxhQUFDO0VBZWhDLFNBQVksRUFBQyxhQUFDO0N5R3NCZDs7QTNHa3NCRCxBMkc1ckJDLHlCM0c0ckJ3QixBMkdoc0J4QixNQUFNLEFBSUwsT0FBTyxFM0c0ckJULHlCQUF5QixBMkcvckJ4QixNQUFNLEFBR0wsT0FBTyxFM0c0ckJULHlCQUF5QixBMkc5ckJ4QixPQUFPLEFBRU4sT0FBTyxDQUFDO0V6RzNDUCxzQkFBb0IsRUFBUyx3QkFBQztFQWVoQyxjQUFZLEVBQUMsd0JBQUM7RUFmWiwwQkFBb0IsRUFBUyxFQUFDO0VBZWhDLGtCQUFZLEVBQUMsRUFBQztFQWZaLGlDQUFvQixFQUFTLFdBQUM7RUFlaEMseUJBQVksRUFBQyxXQUFDO0VBZlosaUNBQW9CLEVBQVMsQ0FBQztFQWVoQyx5QkFBWSxFQUFDLENBQUM7Q3lHaUNiOztBQ25ESCxlQUFlO0ExR3dCWCxrQkFBa0IsQ0FBbEIsYUFBa0I7RTBHdEJyQixHQUFHO0kxR0NBLGlCQUFvQixFQUFTLDRCQUFDO0lBZWhDLFNBQVksRUFBQyw0QkFBQzs7RTBHWmYsSUFBSTtJMUdIRCxpQkFBb0IsRUFBUyw4QkFBQztJQWVoQyxTQUFZLEVBQUMsOEJBQUM7Ozs7QUE2QmQsVUFBVSxDQUFWLGFBQVU7RTBHN0NYLEdBQUc7STFHQ0EsaUJBQW9CLEVBQVMsNEJBQUM7SUFlaEMsU0FBWSxFQUFDLDRCQUFDOztFMEdaZixJQUFJO0kxR0hELGlCQUFvQixFQUFTLDhCQUFDO0lBZWhDLFNBQVksRUFBQyw4QkFBQzs7OztBRit0QmYsQUFBQSxjQUFjLENBQVc7RUdodUJ6QixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsTUFBTTtFRGZuQixpQkFBb0IsRUFBUyw4QkFBQztFQWVoQyxTQUFZLEVBQUMsOEJBQUM7RUNOZixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0V5R0NwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixhQUFhLEVBQUUsS0FBSztFMUdYakIsMkJBQW9CLEVBQVMsSUFBQztFQWVoQyxtQkFBWSxFQUFDLElBQUM7Q0ZpdUJkOztBQUZELEE0R2h1QkEsYzVHZ3VCYyxBNEdodUJiLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxPQUFPO0VBQ2hCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFBRSxHQUFHO0VBQ1YsT0FBTyxFQUFFLEtBQUs7RUFDZCxXQUFXLEVBQUUsV0FBVztFMUduQnRCLGlCQUFvQixFQUFTLGFBQUM7RUFlaEMsU0FBWSxFQUFDLGFBQUM7QzBHTWQ7O0E1R3l0QkQsQTRHbnRCQyxjNUdtdEJhLEE0R3Z0QmIsTUFBTSxBQUlMLE9BQU8sRTVHbXRCVCxjQUFjLEE0R3R0QmIsTUFBTSxBQUdMLE9BQU8sRTVHbXRCVCxjQUFjLEE0R3J0QmIsT0FBTyxBQUVOLE9BQU8sQ0FBQztFMUczQlAsc0JBQW9CLEVBQVMsYUFBQztFQWVoQyxjQUFZLEVBQUMsYUFBQztFQWZaLDBCQUFvQixFQUFTLEtBQUM7RUFlaEMsa0JBQVksRUFBQyxLQUFDO0VBZlosaUNBQW9CLEVBQVMsTUFBQztFQWVoQyx5QkFBWSxFQUFDLE1BQUM7RUFmWixpQ0FBb0IsRUFBUyxRQUFDO0VBZWhDLHlCQUFZLEVBQUMsUUFBQztDMEdpQmI7O0FDbkNILG1CQUFtQjtBM0d3QmYsa0JBQWtCLENBQWxCLGlCQUFrQjtFMkd0QnJCLEdBQUc7STNHQ0EsaUJBQW9CLEVBQVMsNEJBQUM7SUFlaEMsU0FBWSxFQUFDLDRCQUFDOztFMkdaZixHQUFHO0kzR0hBLGlCQUFvQixFQUFTLDhCQUFDO0lBZWhDLFNBQVksRUFBQyw4QkFBQzs7RTJHUmYsR0FBRztJM0dQQSxpQkFBb0IsRUFBUyw0QkFBQztJQWVoQyxTQUFZLEVBQUMsNEJBQUM7O0UyR0pmLEdBQUc7STNHWEEsaUJBQW9CLEVBQVMsOEJBQUM7SUFlaEMsU0FBWSxFQUFDLDhCQUFDOztFMkdBZixHQUFHO0kzR2ZBLGlCQUFvQixFQUFTLDRCQUFDO0lBZWhDLFNBQVksRUFBQyw0QkFBQzs7RTJHSWYsR0FBRztJM0duQkEsaUJBQW9CLEVBQVMsOEJBQUM7SUFlaEMsU0FBWSxFQUFDLDhCQUFDOztFMkdRZixHQUFHO0kzR3ZCQSxpQkFBb0IsRUFBUyw0QkFBQztJQWVoQyxTQUFZLEVBQUMsNEJBQUM7O0UyR1lmLEdBQUc7STNHM0JBLGlCQUFvQixFQUFTLDhCQUFDO0lBZWhDLFNBQVksRUFBQyw4QkFBQzs7RTJHZ0JmLEdBQUc7STNHL0JBLGlCQUFvQixFQUFTLHlCQUFDO0lBZWhDLFNBQVksRUFBQyx5QkFBQzs7RTJHb0JmLElBQUk7STNHbkNELGlCQUFvQixFQUFTLDBCQUFDO0lBZWhDLFNBQVksRUFBQywwQkFBQzs7OztBQTZCZCxVQUFVLENBQVYsaUJBQVU7RTJHN0NYLEdBQUc7STNHQ0EsaUJBQW9CLEVBQVMsNEJBQUM7SUFlaEMsU0FBWSxFQUFDLDRCQUFDOztFMkdaZixHQUFHO0kzR0hBLGlCQUFvQixFQUFTLDhCQUFDO0lBZWhDLFNBQVksRUFBQyw4QkFBQzs7RTJHUmYsR0FBRztJM0dQQSxpQkFBb0IsRUFBUyw0QkFBQztJQWVoQyxTQUFZLEVBQUMsNEJBQUM7O0UyR0pmLEdBQUc7STNHWEEsaUJBQW9CLEVBQVMsOEJBQUM7SUFlaEMsU0FBWSxFQUFDLDhCQUFDOztFMkdBZixHQUFHO0kzR2ZBLGlCQUFvQixFQUFTLDRCQUFDO0lBZWhDLFNBQVksRUFBQyw0QkFBQzs7RTJHSWYsR0FBRztJM0duQkEsaUJBQW9CLEVBQVMsOEJBQUM7SUFlaEMsU0FBWSxFQUFDLDhCQUFDOztFMkdRZixHQUFHO0kzR3ZCQSxpQkFBb0IsRUFBUyw0QkFBQztJQWVoQyxTQUFZLEVBQUMsNEJBQUM7O0UyR1lmLEdBQUc7STNHM0JBLGlCQUFvQixFQUFTLDhCQUFDO0lBZWhDLFNBQVksRUFBQyw4QkFBQzs7RTJHZ0JmLEdBQUc7STNHL0JBLGlCQUFvQixFQUFTLHlCQUFDO0lBZWhDLFNBQVksRUFBQyx5QkFBQzs7RTJHb0JmLElBQUk7STNHbkNELGlCQUFvQixFQUFTLDBCQUFDO0lBZWhDLFNBQVksRUFBQywwQkFBQzs7OztBRnN1QmYsQUFBQSxrQkFBa0IsQ0FBVztFR3Z1QjdCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RTBHaUNwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixhQUFhLEVBQUUsS0FBSztFM0czQ2pCLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0NGd3VCZDs7QUFGRCxBNkd2c0JBLGtCN0d1c0JrQixBNkd2c0JqQixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsT0FBTztFQUNoQixRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsR0FBRztFQUNWLE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLFdBQVc7RTNHbkR0QixpQkFBb0IsRUFBUyxhQUFDO0VBZWhDLFNBQVksRUFBQyxhQUFDO0MyR3NDZDs7QTdHZ3NCRCxBNkcxckJDLGtCN0cwckJpQixBNkc5ckJqQixNQUFNLEFBSUwsT0FBTyxFN0cwckJULGtCQUFrQixBNkc3ckJqQixNQUFNLEFBR0wsT0FBTyxFN0cwckJULGtCQUFrQixBNkc1ckJqQixPQUFPLEFBRU4sT0FBTyxDQUFDO0UzRzNEUCxzQkFBb0IsRUFBUyxpQkFBQztFQWVoQyxjQUFZLEVBQUMsaUJBQUM7RUFmWiwwQkFBb0IsRUFBUyxLQUFDO0VBZWhDLGtCQUFZLEVBQUMsS0FBQztFQWZaLGlDQUFvQixFQUFTLE1BQUM7RUFlaEMseUJBQVksRUFBQyxNQUFDO0VBZlosaUNBQW9CLEVBQVMsQ0FBQztFQWVoQyx5QkFBWSxFQUFDLENBQUM7QzJHaURiOztBN0cwckJILFdBQVc7QThHN3ZCWCxtQkFBbUI7QTlHZ3dCbEIsQUFBQSxrQkFBa0IsQ0FBVztFRy91QjdCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VEZm5CLGlCQUFvQixFQUFTLDhCQUFDO0VBZWhDLFNBQVksRUFBQyw4QkFBQztFQ05mLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7RTJHVHBDLFFBQVEsRUFBRSxRQUFRO0M5Ryt2QmpCOztBQUZELEE4RzN2QkEsa0I5RzJ2QmtCLEE4RzN2QmpCLE9BQU8sQ0FBQztFQUNSLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxFQUFFO0VBQ1gsTUFBTSxFQUFFLENBQUM7RUFDVCxLQUFLLEVBQUUsQ0FBQztFQUNSLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxVQUFVLEU3R2lCTSxLQUFLO0U2R2pCUyxTQUFTO0VBQ3ZDLFVBQVUsRUFBRSxpRUFNWDtFQUNELE1BQU0sRUFBRSx5R0FBeUc7RUFBQyxlQUFlO0VBRWpJLE9BQU8sRUFBRSxJQUFJO0VBQ2IsVUFBVSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGtCQUFpQjtFNUdyQnZDLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsYUFBQztFQWVoQyxtQkFBWSxFQUFDLGFBQUM7QzRHU2Q7O0E5R3F1QkQsQThHbnVCQSxrQjlHbXVCa0IsQThHbnVCakIsTUFBTSxBQUFBLE9BQU8sRTlHbXVCZCxrQkFBa0IsQThHbHVCakIsTUFBTSxBQUFBLE9BQU8sRTlHa3VCZCxrQkFBa0IsQThHanVCakIsT0FBTyxBQUFBLE9BQU8sQ0FBQztFQUNmLEtBQUssRTdHTkssSUFBSTtFNkdPZCxNQUFNLEU3R05LLElBQUk7QzZHT2Y7O0FDbENGLG9CQUFvQjtBL0d1d0JuQixBQUFBLG1CQUFtQixDQUFXO0VHdHZCOUIsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFNEdUcEMsUUFBUSxFQUFFLFFBQVE7Qy9Hc3dCakI7O0FBRkQsQStHbHdCQSxtQi9Ha3dCbUIsQStHbHdCbEIsT0FBTyxDQUFDO0VBQ1IsY0FBYyxFQUFFLElBQUk7RUFDcEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxNQUFNLEVBQUUsQ0FBQztFQUNULEtBQUssRUFBRSxDQUFDO0VBQ1IsR0FBRyxFQUFFLENBQUM7RUFDTixLQUFLLEVBQUUsQ0FBQztFQUNSLFVBQVUsRTlHaUJNLEtBQUs7RThHakJTLFNBQVM7RUFDdkMsVUFBVSxFQUFFLGlFQU1YO0VBQ0QsVUFBVSxFQUFHLElBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGtCQUFpQjtFN0dsQnhDLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsYUFBQztFQWVoQyxtQkFBWSxFQUFDLGFBQUM7QzZHTWQ7O0EvRyt1QkQsQStHN3VCQSxtQi9HNnVCbUIsQStHN3VCbEIsTUFBTSxBQUFBLE9BQU8sRS9HNnVCZCxtQkFBbUIsQStHNXVCbEIsTUFBTSxBQUFBLE9BQU8sRS9HNHVCZCxtQkFBbUIsQStHM3VCbEIsT0FBTyxBQUFBLE9BQU8sQ0FBQztFQUNmLEtBQUssRTlHSEssSUFBSTtFOEdJZCxNQUFNLEU5R0hLLElBQUk7QzhHSWY7O0FDL0JGLHVCQUF1QjtBaEg4d0J0QixBQUFBLHNCQUFzQixDQUFXO0VHN3ZCakMsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFNkdUcEMsUUFBUSxFQUFFLFFBQVE7Q2hINndCakI7O0FBRkQsQWdIendCQSxzQmhIeXdCc0IsQWdIendCckIsT0FBTyxDQUFDO0VBQ1IsY0FBYyxFQUFFLElBQUk7RUFDcEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxNQUFNLEVBQUUsQ0FBQztFQUNULEtBQUssRUFBRSxDQUFDO0VBQ1IsTUFBTSxFQUFFLENBQUM7RUFDVCxLQUFLLEVBQUUsQ0FBQztFQUNSLFVBQVUsRS9HaUJNLEtBQUs7RStHakJTLFNBQVM7RUFDdkMsVUFBVSxFQUFFLGlFQU1YO0VBQ0QsVUFBVSxFQUFHLElBQUcsQ0FBRSxJQUFHLENBQUMsR0FBRyxDQUFDLGtCQUFpQjtFOUdsQnpDLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsYUFBQztFQWVoQyxtQkFBWSxFQUFDLGFBQUM7QzhHTWQ7O0FoSHN2QkQsQWdIcHZCQSxzQmhIb3ZCc0IsQWdIcHZCckIsTUFBTSxBQUFBLE9BQU8sRWhIb3ZCZCxzQkFBc0IsQWdIbnZCckIsTUFBTSxBQUFBLE9BQU8sRWhIbXZCZCxzQkFBc0IsQWdIbHZCckIsT0FBTyxBQUFBLE9BQU8sQ0FBQztFQUNmLEtBQUssRS9HSEssSUFBSTtFK0dJZCxNQUFNLEUvR0hLLElBQUk7QytHSWY7O0FDL0JGLHNCQUFzQjtBakhxeEJyQixBQUFBLHFCQUFxQixDQUFXO0VHcHdCaEMsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RURmbkIsaUJBQW9CLEVBQVMsOEJBQUM7RUFlaEMsU0FBWSxFQUFDLDhCQUFDO0VDTmYsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtFOEdUcEMsUUFBUSxFQUFFLFFBQVE7Q2pIb3hCakI7O0FBRkQsQWlIaHhCQSxxQmpIZ3hCcUIsQWlIaHhCcEIsT0FBTyxDQUFDO0VBQ1IsY0FBYyxFQUFFLElBQUk7RUFDcEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxNQUFNLEVBQUUsQ0FBQztFQUNULEtBQUssRUFBRSxDQUFDO0VBQ1IsTUFBTSxFQUFFLENBQUM7RUFDVCxJQUFJLEVBQUUsQ0FBQztFQUNQLFVBQVUsRWhIaUJNLEtBQUs7RWdIakJTLFNBQVM7RUFDdkMsVUFBVSxFQUFFLGdFQU1YO0VBQ0QsVUFBVSxFQUFFLEdBQUcsQ0FBRSxJQUFHLENBQUMsR0FBRyxDQUFDLGtCQUFpQjtFL0dsQnhDLDJCQUFvQixFQUFTLElBQUM7RUFlaEMsbUJBQVksRUFBQyxJQUFDO0VBZlosMkJBQW9CLEVBQVMsYUFBQztFQWVoQyxtQkFBWSxFQUFDLGFBQUM7QytHTWQ7O0FqSDZ2QkQsQWlIM3ZCQSxxQmpIMnZCcUIsQWlIM3ZCcEIsTUFBTSxBQUFBLE9BQU8sRWpIMnZCZCxxQkFBcUIsQWlIMXZCcEIsTUFBTSxBQUFBLE9BQU8sRWpIMHZCZCxxQkFBcUIsQWlIenZCcEIsT0FBTyxBQUFBLE9BQU8sQ0FBQztFQUNmLEtBQUssRWhISEssSUFBSTtFZ0hJZCxNQUFNLEVoSEhLLElBQUk7Q2dISWY7O0FFL0JGLHNFQUFzRTtBQUV0RTs7OztHQUlHO0FBRUgsQUFBQSxJQUFJLENBQUM7RUFDSCxXQUFXLEVBQUUsVUFBVTtFQUFFLE9BQU87RUFDaEMsb0JBQW9CLEVBQUUsSUFBSTtFQUFFLE9BQU87RUFDbkMsd0JBQXdCLEVBQUUsSUFBSTtFQUFFLE9BQU87Q0FDeEM7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLElBQUksQ0FBQztFQUNILE1BQU0sRUFBRSxDQUFDO0NBQ1Y7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOzs7OztHQUtHO0FBRUgsQUFBQSxPQUFPO0FBQ1AsS0FBSztBQUNMLE9BQU87QUFDUCxVQUFVO0FBQ1YsTUFBTTtBQUNOLE1BQU07QUFDTixNQUFNO0FBQ04sTUFBTTtBQUNOLElBQUk7QUFDSixJQUFJO0FBQ0osR0FBRztBQUNILE9BQU87QUFDUCxPQUFPLENBQUM7RUFDTixPQUFPLEVBQUUsS0FBSztDQUNmOztBQUVEOzs7R0FHRztBQUVILEFBQUEsS0FBSztBQUNMLE1BQU07QUFDTixRQUFRO0FBQ1IsS0FBSyxDQUFDO0VBQ0osT0FBTyxFQUFFLFlBQVk7RUFBRSxPQUFPO0VBQzlCLGNBQWMsRUFBRSxRQUFRO0VBQUUsT0FBTztDQUNsQzs7QUFFRDs7O0dBR0c7QUFFSCxBQUFBLEtBQUssQUFBQSxJQUFLLEVBQUEsQUFBQSxRQUFDLEFBQUEsR0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQUNiLE1BQU0sRUFBRSxDQUFDO0NBQ1Y7O0FBRUQ7OztHQUdHO0NBRUgsQUFBQSxBQUFBLE1BQUMsQUFBQTtBQUNELFFBQVEsQ0FBQztFQUNQLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOztHQUVHO0FBRUgsQUFBQSxDQUFDLENBQUM7RUFDQSxnQkFBZ0IsRUFBRSxXQUFXO0NBQzlCOztBQUVEOztHQUVHO0FBRUgsQUFBQSxDQUFDLEFBQUEsT0FBTztBQUNSLENBQUMsQUFBQSxNQUFNLENBQUM7RUFDTixPQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVILEFBQUEsSUFBSSxDQUFBLEFBQUEsS0FBQyxBQUFBLEVBQU87RUFDVixhQUFhLEVBQUUsVUFBVTtDQUMxQjs7QUFFRDs7R0FFRztBQUVILEFBQUEsQ0FBQztBQUNELE1BQU0sQ0FBQztFQUNMLFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQUVEOztHQUVHO0FBRUgsQUFBQSxHQUFHLENBQUM7RUFDRixVQUFVLEVBQUUsTUFBTTtDQUNuQjs7QUFFRDs7O0dBR0c7QUFFSCxBQUFBLEVBQUUsQ0FBQztFQUNELFNBQVMsRUFBRSxHQUFHO0VBQ2QsTUFBTSxFQUFFLFFBQVE7Q0FDakI7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLElBQUksQ0FBQztFQUNILFVBQVUsRUFBRSxJQUFJO0VBQ2hCLEtBQUssRUFBRSxJQUFJO0NBQ1o7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLEtBQUssQ0FBQztFQUNKLFNBQVMsRUFBRSxHQUFHO0NBQ2Y7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLEdBQUc7QUFDSCxHQUFHLENBQUM7RUFDRixTQUFTLEVBQUUsR0FBRztFQUNkLFdBQVcsRUFBRSxDQUFDO0VBQ2QsUUFBUSxFQUFFLFFBQVE7RUFDbEIsY0FBYyxFQUFFLFFBQVE7Q0FDekI7O0FBRUQsQUFBQSxHQUFHLENBQUM7RUFDRixHQUFHLEVBQUUsTUFBTTtDQUNaOztBQUVELEFBQUEsR0FBRyxDQUFDO0VBQ0YsTUFBTSxFQUFFLE9BQU87Q0FDaEI7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOztHQUVHO0FBRUgsQUFBQSxHQUFHLENBQUM7RUFDRixNQUFNLEVBQUUsQ0FBQztDQUNWOztBQUVEOztHQUVHO0FBRUgsQUFBQSxHQUFHLEFBQUEsSUFBSyxDQUFBLEtBQUssRUFBRTtFQUNiLFFBQVEsRUFBRSxNQUFNO0NBQ2pCOztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVILEFBQUEsTUFBTSxDQUFDO0VBQ0wsTUFBTSxFQUFFLFFBQVE7Q0FDakI7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLEVBQUUsQ0FBQztFQUNELGVBQWUsRUFBRSxXQUFXO0VBQzVCLFVBQVUsRUFBRSxXQUFXO0VBQ3ZCLE1BQU0sRUFBRSxDQUFDO0NBQ1Y7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLEdBQUcsQ0FBQztFQUNGLFFBQVEsRUFBRSxJQUFJO0NBQ2Y7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLElBQUk7QUFDSixHQUFHO0FBQ0gsR0FBRztBQUNILElBQUksQ0FBQztFQUNILFdBQVcsRUFBRSxvQkFBb0I7RUFDakMsU0FBUyxFQUFFLEdBQUc7Q0FDZjs7QUFFRDtnRkFDZ0Y7QUFFaEY7OztHQUdHO0FBRUg7Ozs7O0dBS0c7QUFFSCxBQUFBLE1BQU07QUFDTixLQUFLO0FBQ0wsUUFBUTtBQUNSLE1BQU07QUFDTixRQUFRLENBQUM7RUFDUCxLQUFLLEVBQUUsT0FBTztFQUFFLE9BQU87RUFDdkIsSUFBSSxFQUFFLE9BQU87RUFBRSxPQUFPO0VBQ3RCLE1BQU0sRUFBRSxDQUFDO0VBQUUsT0FBTztDQUNuQjs7QUFFRDs7R0FFRztBQUVILEFBQUEsTUFBTSxDQUFDO0VBQ0wsUUFBUSxFQUFFLE9BQU87Q0FDbEI7O0FBRUQ7Ozs7O0dBS0c7QUFFSCxBQUFBLE1BQU07QUFDTixNQUFNLENBQUM7RUFDTCxjQUFjLEVBQUUsSUFBSTtDQUNyQjs7QUFFRDs7Ozs7O0dBTUc7QUFFSCxBQUFBLE1BQU07QUFDTixJQUFJLENBQUMsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYjtBQUNYLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxPQUFPLEFBQVo7QUFDTixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLEVBQWU7RUFDbkIsa0JBQWtCLEVBQUUsTUFBTTtFQUFFLE9BQU87RUFDbkMsTUFBTSxFQUFFLE9BQU87RUFBRSxPQUFPO0NBQ3pCOztBQUVEOztHQUVHO0FBRUgsQUFBQSxNQUFNLENBQUEsQUFBQSxRQUFDLEFBQUE7QUFDUCxJQUFJLENBQUMsS0FBSyxDQUFBLEFBQUEsUUFBQyxBQUFBLEVBQVU7RUFDbkIsTUFBTSxFQUFFLE9BQU87Q0FDaEI7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLE1BQU0sQUFBQSxrQkFBa0I7QUFDeEIsS0FBSyxBQUFBLGtCQUFrQixDQUFDO0VBQ3RCLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUM7Q0FDWDs7QUFFRDs7O0dBR0c7QUFFSCxBQUFBLEtBQUssQ0FBQztFQUNKLFdBQVcsRUFBRSxNQUFNO0NBQ3BCOztBQUVEOzs7Ozs7R0FNRztBQUVILEFBQUEsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFVBQVUsQUFBZjtBQUNOLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxPQUFPLEFBQVosRUFBYztFQUNsQixVQUFVLEVBQUUsVUFBVTtFQUFFLE9BQU87RUFDL0IsT0FBTyxFQUFFLENBQUM7RUFBRSxPQUFPO0NBQ3BCOztBQUVEOzs7O0dBSUc7QUFFSCxBQUFBLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsQ0FBYywyQkFBMkI7QUFDL0MsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixDQUFjLDJCQUEyQixDQUFDO0VBQzlDLE1BQU0sRUFBRSxJQUFJO0NBQ2I7O0FBRUQ7Ozs7R0FJRztBQUVILEFBQUEsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixFQUFlO0VBQ25CLGtCQUFrQixFQUFFLFNBQVM7RUFBRSxPQUFPO0VBQ3RDLGVBQWUsRUFBRSxXQUFXO0VBQzVCLGtCQUFrQixFQUFFLFdBQVc7RUFBRSxPQUFPO0VBQ3hDLFVBQVUsRUFBRSxXQUFXO0NBQ3hCOztBQUVEOzs7O0dBSUc7QUFFSCxBQUFBLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsQ0FBYyw4QkFBOEI7QUFDbEQsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixDQUFjLDJCQUEyQixDQUFDO0VBQzlDLGtCQUFrQixFQUFFLElBQUk7Q0FDekI7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLFFBQVEsQ0FBQztFQUNQLE1BQU0sRUFBRSxpQkFBaUI7RUFDekIsTUFBTSxFQUFFLEtBQUs7RUFDYixPQUFPLEVBQUUscUJBQXFCO0NBQy9COztBQUVEOzs7R0FHRztBQUVILEFBQUEsTUFBTSxDQUFDO0VBQ0wsTUFBTSxFQUFFLENBQUM7RUFBRSxPQUFPO0VBQ2xCLE9BQU8sRUFBRSxDQUFDO0VBQUUsT0FBTztDQUNwQjs7QUFFRDs7R0FFRztBQUVILEFBQUEsUUFBUSxDQUFDO0VBQ1AsUUFBUSxFQUFFLElBQUk7Q0FDZjs7QUFFRDs7O0dBR0c7QUFFSCxBQUFBLFFBQVEsQ0FBQztFQUNQLFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVILEFBQUEsS0FBSyxDQUFDO0VBQ0osZUFBZSxFQUFFLFFBQVE7RUFDekIsY0FBYyxFQUFFLENBQUM7Q0FDbEI7O0FBRUQsQUFBQSxFQUFFO0FBQ0YsRUFBRSxDQUFDO0VBQ0QsT0FBTyxFQUFFLENBQUM7Q0FDWDs7QUR2YUQsQUFBQSxDQUFDLENBQUM7RUFDQSxVQUFVLEVBQUUsVUFBVTtDQUN2Qjs7QUFHRCxBQUFBLENBQUMsQUFBQSxNQUFNLENBQUM7RUFDTixPQUFPLEVBQUUsSUFBSTtDQUNkOztBQ1FELEFBQUEsSUFBSSxDRE5DO0VBQ0gsVUFBVSxFQUFFLE9BQU87RUFDbkIsV0FBVyxFbkhxQlEsZ0JBQWdCO0VtSHBCbkMsU0FBUyxFbkhhUSxNQUFNO0NtSFZ4Qjs7QUFORCxBbkhzSUUsSW1IdElFLEFuSHNJRCxtQkFBbUIsQ0FBQztFQUNuQixLQUFLLEVBSGlFLEdBQUc7Q0FLMUU7O0FtSHpJSCxBbkgySUUsSW1IM0lFLEFuSDJJRCx5QkFBeUIsQ0FBQztFQUN6QixVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQTNJZixrQkFBSztDQTRJaEI7O0FtSDdJSCxBbkgrSUUsSW1IL0lFLEFuSCtJRCx5QkFBeUIsQ0FBQztFQUN6QixhQUFhLEVBWjZFLEdBQUc7RUFhN0YsZ0JBQWdCLEVBNUpBLE9BQU87RUE2SnZCLE9BQU8sRUFBRSxtQkFBbUI7Q0FDN0I7O0FtSDNJSCxBQUFBLEVBQUUsQ0FBQztFQUNELEtBQUssRW5IRlUsT0FBTztFbUhHdEIsV0FBVyxFbkhjTyxlQUFlO0NtSGJsQzs7QUFHRCxBQUFBLE9BQU8sR0FBRyxFQUFFLENBQUM7RUFDWCxXQUFXLEVuSEtNLGVBQWU7Q21ISmpDOztBQUVELEFBQUEsV0FBVztBQUNYLENBQUMsQ0FBQSxBQUFBLElBQUMsQ0FBSyxjQUFjLEFBQW5CLEVBQXFCO0VBQ3JCLE9BQU8sRUFBRSxlQUFlO0NBQ3pCOztBQUVELEFBQUEsV0FBVyxDQUFDO0VBQ1YsZ0JBQWdCLEVuSG5DRSxPQUFPO0VtSG9DekIsS0FBSyxFbkh2Qk8sS0FBSztDbUh3QmxCOztBQUVELEFBQUEsWUFBWSxDQUFDO0VBQ1gsT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUFHRSxBQUFELG9CQUFlLENBQUM7RUFDZCxlQUFlLEVBQUUsSUFBSTtDQUN0Qjs7QUFLQSxBQUFELGlCQUFhLENBQUM7RUFDWixVQUFVLEVBQUUsSUFBSTtDQUNqQjs7QUFFQSxBQUFELGFBQVMsQ0FBQztFQUNSLE9BQU8sRUFBRSxXQUFXO0NBQ3JCOztBQUVBLEFBQUQscUJBQWlCLEVxT1doQixnQkFBVSxDQWdDVCxZQUFZLENBQ1YsR0FBRyxDQUFDLENBQUMsQ3JPNUNTO0VBQ2hCLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUM7Q0FDWDs7QUFHSCxBQUFBLHFCQUFxQixDQUFDO0VBQ3BCLGNBQWMsRUFBRSxJQUFJO0NBQ3JCOztBQUVELEFBQUEsb0JBQW9CLENBQUM7RUFDbkIsWUFBWSxFQUFFLEVBQUU7RUFDaEIsV0FBVyxFQUFFLEdBQUc7Q0FDakI7O0FBRUQsQUFBQSxvQkFBb0IsQ0FBQztFQUNuQixhQUFhLEVBQUUsU0FBUztDQUN6Qjs7QUFHRSxBQUFELFdBQVEsQ0FBQztFQUNQLElBQUksRUFBRSxLQUFLO0NBQ1o7O0FBRUEsQUFBRCxZQUFTLENBQUM7RUFDUixJQUFJLEVBQUUsT0FBTztDQUNkOztBQUVBLEFBQUQsVUFBTyxDQUFDO0VBQ04sSUFBSSxFQUFFLElBQUk7Q0FDWDs7QUFFQSxBQUFELFdBQVEsQ0FBQztFQUNQLElBQUksRUFBRSxPQUFPO0NBQ2Q7O0FBRUEsQUFBRCxXQUFRLENBQUM7RUFDUCxJQUFJLEVBQUUsS0FBSztDQUNaOztBQUVBLEFBQUQsVUFBTyxDQUFDO0VBQ04sSUFBSSxFQUFFLElBQUk7Q0FDWDs7QUFJQSxBQUFELHdCQUFRLENBQUM7RUFDUCxjQUFjLEVBQUUsU0FBUztDQUMxQjs7QUFFQSxBQUFELHdCQUFRLENBQUM7RUFDUCxjQUFjLEVBQUUsWUFBWTtDQUM3Qjs7QUFHSCxBQUFBLEtBQUssQ0FBQztFQUNKLE9BQU8sRUFBRSxJQUFJO0NBMEJkOztBQXhCRSxBQUFELFNBQUssQ0FBQztFQUNKLGNBQWMsRUFBRSxNQUFNO0NBQ3ZCOztBQUVBLEFBQUQsU0FBSyxDQUFDO0VBQ0osY0FBYyxFQUFFLEdBQUc7Q0FDcEI7O0FBRUEsQUFBRCxpQkFBYSxDQUFDO0VBQ1osZUFBZSxFQUFFLFlBQVk7Q0FDOUI7O0FBRUEsQUFBRCxrQkFBYyxDQUFDO0VBQ2IsZUFBZSxFQUFFLGFBQWE7Q0FDL0I7O0FBRUEsQUFBRCxZQUFRLENBQUM7RUFDUCxlQUFlLEVBQUUsTUFBTTtDQUN4Qjs7QUFFQSxBQUFELHFCQUFpQixDQUFDO0VBQ2hCLFdBQVcsRUFBRSxNQUFNO0NBQ3BCOztBQUlILEFBQUEsZ0JBQWdCLEU4SnZHaEIsbUJBQW1CO0FBQ25CLFVBQVUsRXNEeENQLHdCQUFnQixFQWtFaEIsdUJBQWtCLEVLbkVyQixPQUFPLEVDRFAsWUFBWSxDMU5nSks7RUFDZixPQUFPLEVBQUUsSUFBSTtDQUNkOztBQUVELEFBR0ksbUJBSGUsQ0FHZCxZQUFTLEVtTnZKZCxXQUFXLENuTnVKTixZQUFTLEUwTjFJWCwwQkFBYyxDMU4wSVosWUFBUyxDQUFDO0VBQ1QsS0FBSyxFQUFFLElBQUk7RUFDWCxLQUFLLEVBQUUsR0FBRztDQUNYOztBQU5MLEFBUUksbUJBUmUsQ0FRZCxZQUFTLEVtTjVKZCxXQUFXLENuTjRKTixZQUFTLEUwTi9JWCwwQkFBYyxDMU4rSVosWUFBUyxDQUFDO0VBQ1QsS0FBSyxFQUFFLElBQUk7RUFDWCxLQUFLLEVBQUUsR0FBRztDQUNYOztBQVhMLEFBYUksbUJBYmUsQ0FhZCxZQUFTLEVtTmpLZCxXQUFXLENuTmlLTixZQUFTLEUwTnBKWCwwQkFBYyxDMU5vSlosWUFBUyxDQUFDO0VBQ1QsS0FBSyxFQUFFLElBQUk7RUFDWCxLQUFLLEVBQUUsR0FBRztDQUNYOztBQWhCTCxBQWtCSSxtQkFsQmUsQ0FrQmQsWUFBUyxFbU50S2QsV0FBVyxDbk5zS04sWUFBUyxFME56SlgsMEJBQWMsQzFOeUpaLFlBQVMsQ0FBQztFQUNULEtBQUssRUFBRSxJQUFJO0VBQ1gsS0FBSyxFQUFFLEdBQUc7Q0FDWDs7QUFyQkwsQUF1QkksbUJBdkJlLENBdUJkLFlBQVMsRW1OM0tkLFdBQVcsQ25OMktOLFlBQVMsRTBOOUpYLDBCQUFjLEMxTjhKWixZQUFTLENBQUM7RUFDVCxLQUFLLEVBQUUsSUFBSTtFQUNYLEtBQUssRUFBRSxHQUFHO0NBQ1g7O0FBMUJMLEFBNEJJLG1CQTVCZSxDQTRCZCxhQUFVLEVtTmhMZixXQUFXLENuTmdMTixhQUFVLEUwTm5LWiwwQkFBYyxDMU5tS1osYUFBVSxDQUFDO0VBQ1YsS0FBSyxFQUFFLEtBQUs7RUFDWixLQUFLLEVBQUUsR0FBRztDQUNYOztBQS9CTCxBQWlDSSxtQkFqQ2UsQ0FpQ2QsYUFBVSxFbU5yTGYsV0FBVyxDbk5xTE4sYUFBVSxFME54S1osMEJBQWMsQzFOd0taLGFBQVUsQ0FBQztFQUNWLEtBQUssRUFBRSxLQUFLO0VBQ1osS0FBSyxFQUFFLEdBQUc7Q0FDWDs7QUFwQ0wsQUFzQ0ksbUJBdENlLENBc0NkLGFBQVUsRW1OMUxmLFdBQVcsQ25OMExOLGFBQVUsRTBON0taLDBCQUFjLEMxTjZLWixhQUFVLENBQUM7RUFDVixLQUFLLEVBQUUsS0FBSztFQUNaLEtBQUssRUFBRSxHQUFHO0NBQ1g7O0FBekNMLEFBMkNJLG1CQTNDZSxDQTJDZCxhQUFVLEVtTi9MZixXQUFXLENuTitMTixhQUFVLEUwTmxMWiwwQkFBYyxDMU5rTFosYUFBVSxDQUFDO0VBQ1YsS0FBSyxFQUFFLEtBQUs7RUFDWixLQUFLLEVBQUUsR0FBRztDQUNYOztBQTlDTCxBbkh2REUsbUJtSHVEaUIsQW5IdkRoQixPQUFPLEVzVTdGVixXQUFXLEF0VTZGUixPQUFPLEU2VWhGUCwwQkFBYyxBN1VnRmQsT0FBTyxDQUFBO0VBQ04sT0FBTyxFQUFFLEVBQUU7RUFDWCxPQUFPLEVBQUUsS0FBSztFQUNkLEtBQUssRUFBRSxJQUFJO0NBQ1o7O0FtSHVHSCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RUF4RHhCLEFBQUEsZ0JBQWdCLEU4SnZHaEIsbUJBQW1CO0VBQ25CLFVBQVUsRXNEeENQLHdCQUFnQixFQWtFaEIsdUJBQWtCLEVLbkVyQixPQUFPLEVDRFAsWUFBWSxDMU55TU87SUFDZixPQUFPLEVBQUUsQ0FBQyxDbkg1SmdCLEVBQUU7R21INko3Qjs7O0FBR0gsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VBOUR4QixBQUFBLGdCQUFnQixFOEp2R2hCLG1CQUFtQjtFQUNuQixVQUFVLEVzRHhDUCx3QkFBZ0IsRUFrRWhCLHVCQUFrQixFS25FckIsT0FBTyxFQ0RQLFlBQVksQzFOZ05PO0lBQ2YsT0FBTyxFQUFFLENBQUMsQ25IbEtlLE1BQUs7R21IbUsvQjtFQUlFLEFBQUQsWUFBUSxDQUFDO0lBQ1AsU0FBUyxFQUFFLE1BQU07R0FDbEI7RUFFQSxBQUFELGFBQVMsQ0FBQztJQUNSLFNBQVMsRUFBRSxNQUFNO0dBQ2xCO0VBRUEsQUFBRCxhQUFTLEVtTi9JVixXQUFNLENBWUwsT0FBTyxHQUdILEdBQUcsQ0FHSCxDQUFDLEVrQjFCTixnQkFBVSxDQUVULGFBQWEsR0FFUCxHQUFHLEFBQUEsWUFBWSxDQUFDLENBQUMsQ3JPbUpiO0lBQ1IsU0FBUyxFQUFFLElBQUk7R0FDaEI7RUFFQSxBQUFELGFBQVMsQ0FBQztJQUNSLFNBQVMsRUFBRSxNQUFNO0dBQ2xCO0VBRUEsQUFBRCxZQUFRLENBQUM7SUFDUCxTQUFTLEVBQUUsTUFBTTtHQUNsQjtFQUVBLEFBQUQsYUFBUyxDQUFDO0lBQ1IsU0FBUyxFQUFFLE1BQU07R0FDbEI7RUFFQSxBQUFELHVCQUFtQixDQUFDO0lBQ2xCLFNBQVMsRUFBRSxNQUFNO0dBQ2xCO0VBS0EsQUFBRCxhQUFTLENBQUM7SUFDUixLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxHQUFHO0dBQ1o7RUFFQSxBQUFELFlBQVEsQ0FBQztJQUNQLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7R0FDYjtFQUVBLEFBQUQsYUFBUyxDQUFDO0lBQ1IsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtHQUNiO0VBRUEsQUFBRCxhQUFTLENBQUM7SUFDUixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0dBQ2I7RUFFQSxBQUFELGFBQVMsQ0FBQztJQUNSLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7R0FDYjtFQUVBLEFBQUQsWUFBUSxDQUFDO0lBQ1AsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtHQUNiO0VBS0EsQUFBRCxpQkFBUSxDQUFDO0lBQ1AsTUFBTSxFQUFFLElBQUk7R0FDYjtFQUVBLEFBQUQsa0JBQVMsQ0FBQztJQUNSLE1BQU0sRUFBRSxJQUFJO0dBQ2I7RUF4SUwsQUFHSSxtQkFIZSxDQUdkLFlBQVMsRW1OdkpkLFdBQVcsQ25OdUpOLFlBQVMsRTBOMUlYLDBCQUFjLEMxTjBJWixZQUFTLENBMklHO0lBQ1QsS0FBSyxFQUFFLElBQUk7SUFDWCxLQUFLLEVBQUUsSUFBSTtHQUNaO0VBakpQLEFBUUksbUJBUmUsQ0FRZCxZQUFTLEVtTjVKZCxXQUFXLENuTjRKTixZQUFTLEUwTi9JWCwwQkFBYyxDMU4rSVosWUFBUyxDQTJJRztJQUNULEtBQUssRUFBRSxJQUFJO0lBQ1gsS0FBSyxFQUFFLElBQUk7R0FDWjtFQXRKUCxBQWFJLG1CQWJlLENBYWQsWUFBUyxFbU5qS2QsV0FBVyxDbk5pS04sWUFBUyxFME5wSlgsMEJBQWMsQzFOb0paLFlBQVMsQ0EySUc7SUFDVCxLQUFLLEVBQUUsSUFBSTtJQUNYLEtBQUssRUFBRSxJQUFJO0dBQ1o7RUEzSlAsQUFrQkksbUJBbEJlLENBa0JkLFlBQVMsRW1OdEtkLFdBQVcsQ25Oc0tOLFlBQVMsRTBOekpYLDBCQUFjLEMxTnlKWixZQUFTLENBMklHO0lBQ1QsS0FBSyxFQUFFLElBQUk7SUFDWCxLQUFLLEVBQUUsSUFBSTtHQUNaO0VBaEtQLEFBdUJJLG1CQXZCZSxDQXVCZCxZQUFTLEVtTjNLZCxXQUFXLENuTjJLTixZQUFTLEUwTjlKWCwwQkFBYyxDMU44SlosWUFBUyxDQTJJRztJQUNULEtBQUssRUFBRSxJQUFJO0lBQ1gsS0FBSyxFQUFFLElBQUk7R0FDWjtFQXJLUCxBQXNDSSxtQkF0Q2UsQ0FzQ2QsYUFBVSxFbU4xTGYsV0FBVyxDbk4wTE4sYUFBVSxFME43S1osMEJBQWMsQzFONktaLGFBQVUsQ0FpSUc7SUFDVixLQUFLLEVBQUUsSUFBSTtJQUNYLEtBQUssRUFBRSxJQUFJO0dBQ1o7RUExS1AsQUFpQ0ksbUJBakNlLENBaUNkLGFBQVUsRW1OckxmLFdBQVcsQ25OcUxOLGFBQVUsRTBOeEtaLDBCQUFjLEMxTndLWixhQUFVLENBMklHO0lBQ1YsS0FBSyxFQUFFLElBQUk7SUFDWCxLQUFLLEVBQUUsSUFBSTtHQUNaO0VBL0tQLEFBMkNJLG1CQTNDZSxDQTJDZCxhQUFVLEVtTi9MZixXQUFXLENuTitMTixhQUFVLEUwTmxMWiwwQkFBYyxDMU5rTFosYUFBVSxDQXNJRztJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsS0FBSyxFQUFFLElBQUk7R0FDWjtFQXBMUCxBQTRCSSxtQkE1QmUsQ0E0QmQsYUFBVSxFbU5oTGYsV0FBVyxDbk5nTE4sYUFBVSxFME5uS1osMEJBQWMsQzFObUtaLGFBQVUsQ0EwSkc7SUFDVixLQUFLLEVBQUUsSUFBSTtJQUNYLEtBQUssRUFBRSxJQUFJO0dBQ1o7OztBbkhuRkgsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPO0VtSHlGOUIsQUFBQSxVQUFVLEVBQUUsZ0JBQWdCLENBQUM7SUFFekIsYUFBYSxFQUFFLFlBQVk7SUFDM0IsWUFBWSxFQUFFLFlBQVk7R0FNN0I7RUFURCxBQUlJLFVBSk0sQ0FJTixJQUFJLEVBSkksZ0JBQWdCLENBSXhCLElBQUksQ0FBQztJQUNILFdBQVcsRUFBRSxZQUFZO0lBQ3pCLFlBQVksRUFBRSxZQUFZO0dBQzNCOzs7QUFLRixBQUFELGNBQU0sQ0FBQztFQUNMLGFBQWEsRUFBRSxZQUFZO0VBQzNCLFlBQVksRUFBRSxZQUFZO0NBQzNCOztBQUVBLEFBQUQsZUFBTyxDQUFDO0VBQ04sWUFBWSxFQUFFLFlBQVk7Q0FDM0I7O0FBRUEsQUFBRCxnQkFBUSxDQUFDO0VBQ1AsYUFBYSxFQUFFLFlBQVk7Q0FDNUI7O0FuSDFHQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RW1INkc3QixBQUFBLGNBQWMsQ0FBQztJQUdYLFNBQVMsRUFBRSxJQUFJO0dBY2xCOzs7QUFYRSxBQUFELHNCQUFTLENBQUM7RUFFUixRQUFRLEVBQUUsS0FBSztFQUVmLE1BQU0sRUFBRSxDQUFDO0VBQ1QsS0FBSyxFQUFFLENBQUM7RUFDUixJQUFJLEVBQUUsQ0FBQztFQUNQLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLE9BQU8sRUFBRSxDQUFDO0VBQ1YsTUFBTSxFQUFFLENBQUM7Q0FDVjs7QUFHSCxBQUFBLE1BQU0sQUFBQSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQUFBQSxPQUFPO0FBQ3pCLEtBQUssQUFBQSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQUFBQSxPQUFPO0FBQ3hCLEtBQUssQUFBQSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQUFBQSxPQUFPLENBQUM7RUFDdkIsVUFBVSxFbkhoWU0sT0FBTztFbUhrWXZCLEtBQUssRUFBRSxLQUFLO0VBQ1osWUFBWSxFQUFFLElBQUk7RUFDbEIsVUFBVSxFQUFFLElBQUk7RUFDaEIsT0FBTyxFQUFFLFFBQVE7RUFDakIsVUFBVSxFQUFFLFdBQVc7Q0FDeEI7O0FBRUQsQUFDRSxLQURHLEFBQUEsR0FBRyxDQUNOLEtBQUssQ0FBQyxFQUFFLENBQUM7RUFDUCxTQUFTLEVBQUUsUUFBUTtFQUNuQixPQUFPLEVBQUUsQ0FBQztDQUVYOztBQUxILEFBT0UsS0FQRyxBQUFBLEdBQUcsQ0FPTixFQUFFLENBQUMsRUFBRSxDQUFDO0VBQ0osVUFBVSxFbkhyWUUsT0FBTztFbUhzWW5CLEtBQUssRUFBRSxPQUFPO0NBQ2Y7O0FBVkgsQUFZRSxLQVpHLEFBQUEsR0FBRyxDQVlOLEVBQUUsQUFBQSxZQUFhLENBQUEsSUFBSSxFQUFFLEVBQUUsQ0FBQztFQUN0QixVQUFVLEVBQUUsT0FBTztDQUNwQjs7QTRJMVpIOzs7OztHQUtHO0FBcUJILEFBQUEsS0FBSyxBQUFBLE9BQU8sQ0FBQztFQUNYLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLFdBQVcsRUFBRSxDQUFDO0VBQ2QsVUFBVSxFQUFFLE1BQU07RUFDbEIsS0FBSyxFQUFFLElBQUk7RUFDWCxlQUFlLEVBQUUsT0FBTztFQUN4QixjQUFjLEVBQUUsSUFBSTtFQUNwQixjQUFjLEVBQUUsa0JBQWtCO0NBQ25DOztBQzVCRCxBQUFBLFdBQVcsQ0FBQztFQUhWLFNBQVMsRUFBRSxJQUFJO0NBS2hCOztBU1REOzs7Ozs7Ozs7R0FTRztBQ0RILEFBQ0UsZ0JBRGMsQ0FDZCxVQUFVLEFBQUEsSUFBSyxDQUFBLFdBQVcsRUFBQztFQUN6QixhQUFhLEVBQUUsb0JBQW9CO0NBQ3BDOztBQUhILEFBSUUsZ0JBSmMsQ0FJZCxVQUFVLENBQUM7RUFDVCxTQUFTLEVBQUUsa0JBQWtCO0VBQzdCLE1BQU0sRUFBRSxNQUFNO0NBQ2Y7O0FHZkgsVUFBVTtFQUNSLFdBQVcsRUFBRSxnQkFBZ0I7RUFFN0IsR0FBRyxFQUFFLDZFQUE2RTs7O0FBRXBGLFVBQVU7RUFDUixXQUFXLEVBQUUsZUFBZTtFQUU1QixHQUFHLEVBQUUsNkVBQTZFOzs7QUFFcEYsVUFBVTtFQUNSLFdBQVcsRUFBRSxlQUFlO0VBRTVCLEdBQUcsRUFBRSwrRUFBK0U7OztBQUV0RixVQUFVO0VBQ1IsV0FBVyxFQUFFLHdCQUF3QjtFQUVyQyxHQUFHLEVBQUUsK0VBQStFOzs7QUFFdEYsVUFBVTtFQUNSLFdBQVcsRUFBRSxzQkFBc0I7RUFFbkMsR0FBRyxFQUFFLDZFQUE2RTs7O0FBRXBGLFVBQVU7RUFDUixXQUFXLEVBQUUsaUJBQWlCO0VBRTlCLEdBQUcsRUFBRSw2RUFBNkU7OztBQUlqRixBQUFELFlBQVEsQ0FBQTtFQUFDLFdBQVcsRTdRQUgsZUFBZTtDNlFBVzs7QUFDMUMsQUFBRCxZQUFRLEUyRVlQLHNCQUFnQixDQU9mLEVBQUUsQzNFbkJJO0VBQUMsV0FBVyxFN1FHRixlQUFlO0M2UUhVOztBQUMxQyxBQUFELGNBQVUsQ0FBQTtFQUFDLFdBQVcsRTdRQUYsaUJBQWlCO0M2UUFVOztBQUM5QyxBQUFELG1CQUFlLENBQUE7RUFBQyxXQUFXLEU3UUZOLHNCQUFzQjtDNlFFVTs7QUFDcEQsQUFBRCxrQkFBYyxDQUFBO0VBQUMsV0FBVyxFQUFFLHdCQUF3QjtDQUFHOztBQVF0RCxBQUFELGNBQVUsQ0FBQTtFQUxWLEtBQUssRTdROUJXLE9BQU87QzZRbUMrQjs7QUFDckQsQUFBRCxZQUFRLENBQUE7RUFOUixLQUFLLEU3UXpCTyxLQUFLO0M2UStCaUM7O0FBQ2pELEFBQUQsYUFBUyxDQUFBO0VBUFQsS0FBSyxFN1F0Q2EsT0FBTztDNlE2Q2dDOztBQUN4RCxBQUFELFdBQU8sQ0FBQTtFQVJQLEtBQUssRTdRbkNxQixPQUFPO0M2UTJDOEI7O0FBQzlELEFBQUQsZ0JBQVksQ0FBQTtFQVRaLEtBQUssRTdRcENXLE9BQU87QzZRNkNtQzs7QUFDekQsQUFBRCxZQUFRLENBQUE7RUFWUixLQUFLLEU3UWxDWSxPQUFPO0M2UTRDK0I7O0FBQ3RELEFBQUQsWUFBUSxFNkJmTCx3QkFBUSxDQUFDLENBQUMsRVM0Q1osbUJBQU8sQ0FBQyxDQUFDLEVtQkFULFdBQU0sQ0FZTCxPQUFPLEdBR0gsR0FBRyxDQUdILENBQUMsRWtCMUJOLGdCQUFVLENBRVQsYUFBYSxHQUVQLEdBQUcsQUFBQSxZQUFZLENBQUMsQ0FBQyxFQUp4QixnQkFBVSxDQUVULGFBQWEsR0FLUCxHQUFHLEFBQUEsV0FBVyxDQUFDLENBQUMsQzNFNUJoQjtFQVhSLEtBQUssRTdRakNZLE9BQU87QzZRNEMrQjs7QUFDdEQsQUFBRCxXQUFPLEUyRU5OLHNCQUFnQixDQU9mLEVBQUUsQ0FZQSxDQUFDLEMzRWJFO0VBWlAsS0FBSyxFQVk0QixJQUFJO0NBQUk7O0FBRXhDLEFBQUQsY0FBVSxDQUFBO0VBQUMsS0FBSyxFN1FuQ0YsT0FBTztDNlFtQ2U7O0FBQ25DLEFBQUQsZUFBVyxDQUFBO0VBQUMsS0FBSyxFN1FuQ0YsT0FBTztDNlFtQ2dCOztBQUNyQyxBQUFELGNBQVUsQ0FBQTtFQUFDLEtBQUssRTdRbENGLE9BQU87QzZRa0NlOztBQUNuQyxBQUFELGVBQVcsQ0FBQTtFQUFDLEtBQUssRTdRcENGLE9BQU87QzZRb0NnQjs7QUFFckMsQUFBRCxXQUFPLEUyRWFOLGdCQUFVLENBRVQsYUFBYSxHQUVQLEdBQUcsQUFBQSxZQUFZLENBQUMsQ0FBQyxDM0VqQmxCO0VBQUMsV0FBVyxFQUFFLElBQUk7Q0FBRzs7QUFDM0IsQUFBRCxnQkFBWSxDQUFBO0VBQUMsY0FBYyxFQUFFLFNBQVM7Q0FBRzs7QUFDeEMsQUFBRCxtQkFBZSxDQUFBO0VBQUMsZUFBZSxFQUFFLElBQUk7Q0FBRzs7QUFDdkMsQUFBRCxnQkFBWSxDQUFBO0VBQUMsZUFBZSxFQUFFLFNBQVM7Q0FBRzs7QUFFekMsQUFBRCxXQUFPLENBQUE7RUFBQyxVQUFVLEVBQUUsSUFBSTtDQUFHOztBQUMxQixBQUFELGVBQVcsQ0FBQTtFQUFDLFVBQVUsRUFBRSxNQUFNO0NBQUc7O0FBQ2hDLEFBQUQsWUFBUSxDQUFBO0VBQUMsVUFBVSxFQUFFLEtBQUs7Q0FBRzs7QTFKeUoxQixBQUFELGFBQVMsQzBKdEpGO0VBQUMsU0FBUyxFQUFFLE1BQXNCO0NBQUc7O0ExSmtKM0MsQUFBRCxZQUFRLEMwSmpKRjtFQUFDLFNBQVMsRTdReENGLE1BQUs7QzZRd0NrQjs7QTFKeUpwQyxBQUFELGFBQVMsRW1OL0lWLFdBQU0sQ0FZTCxPQUFPLEdBR0gsR0FBRyxDQUdILENBQUMsRWtCMUJOLGdCQUFVLENBRVQsYUFBYSxHQUVQLEdBQUcsQUFBQSxZQUFZLENBQUMsQ0FBQyxDM0VMaEI7RUFBQyxTQUFTLEU3UTFDRixNQUFNO0M2UTBDa0I7O0ExSjRKdEMsQUFBRCxhQUFTLEMwSjNKRjtFQUFDLFNBQVMsRTdRNUNGLE1BQU07QzZRNENrQjs7QTFKK0p0QyxBQUFELFlBQVEsQzBKOUpGO0VBQUMsU0FBUyxFN1E5Q0YsSUFBSTtFNlE4Q2tCLFdBQVcsRUFBRSxDQUFDO0NBQUc7O0ExSmtLcEQsQUFBRCxhQUFTLEMwSmpLRjtFQUFDLFNBQVMsRTdRaERGLElBQUk7RTZRZ0RtQixXQUFXLEVBQUUsQ0FBQztDQUFJOztBQ3pFNUQsQUFDRSxtQkFEaUIsQ0FDakIsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQSxFQUFhO0VBRWpCLEtBQUssRTlRRlcsT0FBTztFOFFHdkIsU0FBUyxFOVF5QkssTUFBSztFOFF4Qm5CLFdBQVcsRTlRNEJRLHNCQUFzQjtFOFEzQnpDLGNBQWMsRUFBRSxTQUFTO0NBQzFCOztBQUdILEFBQUEsZUFBZSxDQUFDO0VBQ2QsY0FBYyxFQUFFLEdBQUc7Q0FDcEI7O0FBRUQsQUFBQSxnQkFBZ0IsQ0FBQztFQUNmLEtBQUssRUFBRSxLQUFLO0VBQ1osVUFBVSxFQUFFLE1BQU07RUFDbEIsT0FBTyxFQUFFLElBQUk7Q0FTZDs7QUFaRCxBQUtFLGdCQUxjLENBS2QsRUFBRSxDQUFBO0VBQ0EsS0FBSyxFOVFuQlcsT0FBTztDOFFvQnhCOztBQU9ILEFBQ0UsZ0JBRGMsQ0FDZCxLQUFLLEVBRFcsVUFBVSxDQUMxQixLQUFLLENBQUM7RUFDSixXQUFXLEU5UWhCRCxLQUFLO0M4UWlCaEI7O0FBSEgsQUFLRSxnQkFMYyxDQUtkLEtBQUssQUFBQSxpQkFBaUI7QUFMeEIsZ0JBQWdCLENBTWQsS0FBSyxBQUFBLGlCQUFpQixBQUFBLE1BQU07QUFOOUIsZ0JBQWdCLENBT2QsS0FBSyxBQUFBLGlCQUFpQixBQUFBLE1BQU07QUFQOUIsZ0JBQWdCLENBUWQsS0FBSyxBQUFBLGlCQUFpQixBQUFBLE9BQU8sRUFSYixVQUFVLENBSzFCLEtBQUssQUFBQSxpQkFBaUI7QUFMTixVQUFVLENBTTFCLEtBQUssQUFBQSxpQkFBaUIsQUFBQSxNQUFNO0FBTlosVUFBVSxDQU8xQixLQUFLLEFBQUEsaUJBQWlCLEFBQUEsTUFBTTtBQVBaLFVBQVUsQ0FRMUIsS0FBSyxBQUFBLGlCQUFpQixBQUFBLE9BQU8sQ0FBQztFQUM1QixVQUFVLEVBQUUsZ0RBQWdEO0VBQzVELHVCQUF1QixFOVF4QmIsS0FBSyxDOFF3QnVCLFVBQVU7Q0FDakQ7O0FDdkNILEFBQUEsR0FBRyxDQUFBLEFBQUEsb0JBQUMsQ0FBcUIsc0NBQXNDLEFBQTNEO0FBQ0osR0FBRyxDQUFBLEFBQUEsb0JBQUMsQ0FBcUIsc0NBQXNDLEFBQTNEO0FBQ0osR0FBRyxDQUFBLEFBQUEsb0JBQUMsQ0FBcUIsbUNBQW1DLEFBQXhEO0FBQ0osR0FBRyxDQUFBLEFBQUEsb0JBQUMsQ0FBcUIsbUNBQW1DLEFBQXhELEVBQTBEO0VBQzVELEtBQUssRUFBRSxHQUFHO0VBQ1YsS0FBSyxFQUFFLElBQUk7RUFFWCxhQUFhLEVBQUUsSUFBSTtFQUNuQixPQUFPLEVBQUUsWUFBWTtDQUN0Qjs7QUFFRCxBQUdFLHdCQUhzQixDQUd0Qiw4Q0FBOEMsQ0FBQyxPQUFPLEFBQUEsWUFBYSxDQUFBLENBQUM7QUFGdEUsbUJBQW1CLENBRWpCLDhDQUE4QyxDQUFDLE9BQU8sQUFBQSxZQUFhLENBQUEsQ0FBQyxFQUFFO0VBQ3BFLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBTEgsQUFPRSx3QkFQc0IsR0FPcEIsR0FBRztBQU5QLG1CQUFtQixHQU1mLEdBQUcsQ0FBQztFQUNKLGFBQWEsRUFBRSw0QkFBNEI7Q0FDNUM7O0FBVEgsQUFXRSx3QkFYc0IsQ0FXdEIsS0FBSztBQVZQLG1CQUFtQixDQVVqQixLQUFLLENBQUM7RUFDSixTQUFTLEVBQUUsaUJBQWlCO0NBQzdCOztBQ3BCQSxBQUFELDBCQUFZLEVBQVgsOEJBQVcsQ0FBQztFQUNYLGdCQUFnQixFaFJTTixLQUFLO0VnUlJmLFVBQVUsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0I7RUFDM0MsYUFBYSxFQU5LLEdBQUc7RUFRckIsTUFBTSxFQUFFLE1BQU07RUFDZCxPQUFPLEVBQUUsU0FBUztDQW9CbkI7O0FoUjROQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU87RWdSdFAzQixBQUFELDBCQUFZLEVBQVgsOEJBQVcsQ0FBQztJQVFULE9BQU8sRUFBRSxTQUFTO0dBa0JyQjs7O0FBZEUsQUFBRCxnQ0FBTyxFQUFOLG9DQUFNLENBQUM7RUFDTixLQUFLLEVoUmhCUyxPQUFPO0VnUmlCckIsU0FBUyxFaFJTSSxNQUFNO0VnUlJuQixXQUFXLEVoUmFFLGVBQWU7RWdSWjVCLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ2hSRlgsdUJBQU87RWdSR2xCLGFBQWEsRUFBRSxLQUFLO0NBT3JCOztBQUxFLEFBQUQsd0NBQVMsRUFBUiw0Q0FBUSxDQUFDO0VBQ1IsYUFBYSxFQUFFLFVBQVU7RUFDekIsY0FBYyxFQUFFLElBQUk7RUFDcEIsVUFBVSxFQUFFLElBQUk7Q0FDakI7O0FBSUosQUFHQyxtQkFIRyxDQUdILEtBQUssRUFITixtQkFBSSxDQUdJLE1BQU0sRUFIZCxtQkFBSSxDQUdZLEVBQUUsRUFIbEIsdUJBQUksQ0FHSCxLQUFLLEVBSE4sdUJBQUksQ0FHSSxNQUFNLEVBSGQsdUJBQUksQ0FHWSxFQUFFLENBQUM7RWhSZ0lwQixTQUFTLEVBdklRLE1BQU07RUF3SXZCLFdBQVcsRUFuSVUsc0JBQXNCO0VBb0kzQyxPQUFPLEVBQUUsS0FBSztFQUNkLE9BQU8sRUFBRSxRQUFRO0VBQ2pCLGNBQWMsRUFBRSxHQUFHO0VBQ25CLGNBQWMsRUFBRSxVQUFVO0VBQzFCLEtBQUssRUE1Sk8sS0FBSztFQTZKakIsTUFBTSxFQUFFLENBQUM7RUFDVCxXQUFXLEVBQUUsT0FBTztDZ1J0SWpCOztBQUxGLEFBWUcsbUJBWkMsQ0FXSCxLQUFLLEFBQ0YsSUFBSyxFQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixFQUFjLElBQUssRUFBQSxBQUFBLElBQUMsQ0FBSyxVQUFVLEFBQWYsSUFaOUIsdUJBQUksQ0FXSCxLQUFLLEFBQ0YsSUFBSyxFQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixFQUFjLElBQUssRUFBQSxBQUFBLElBQUMsQ0FBSyxVQUFVLEFBQWYsR0FBa0I7RUFDM0MsV0FBVyxFaFJUQyxlQUFlO0VnUlUzQixTQUFTLEVoUmxCRSxNQUFNO0VnUm1CakIsS0FBSyxFQUFFLElBQUk7RUFDWCxPQUFPLEVBQUUsS0FBSztFQUNkLGFBQWEsRUFqREUsR0FBRztFQWtEbEIsVUFBVSxFaFJwQ0osd0JBQUs7RWdScUNYLFVBQVUsRUFBRSxZQUFZO0VBQ3hCLEtBQUssRWhSOUNNLE9BQU8sQ2dSOENPLFVBQVU7RUFDbkMsT0FBTyxFQUFFLGNBQWM7RUFFdkIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDaFJwQ2YsdUJBQU87RWdScUNoQixNQUFNLEVBQUUsbUJBQW1CO0NBTTVCOztBQTlCSixBQTBCSyxtQkExQkQsQ0FXSCxLQUFLLEFBQ0YsSUFBSyxFQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixFQUFjLElBQUssRUFBQSxBQUFBLElBQUMsQ0FBSyxVQUFVLEFBQWYsRUFjeEIsT0FBTyxFQTFCYixtQkFBSSxDQVdILEtBQUssQUFDRixJQUFLLEVBQUEsQUFBQSxJQUFDLENBQUssT0FBTyxBQUFaLEVBQWMsSUFBSyxFQUFBLEFBQUEsSUFBQyxDQUFLLFVBQVUsQUFBZixFQWNkLE1BQU0sRUExQnRCLHVCQUFJLENBV0gsS0FBSyxBQUNGLElBQUssRUFBQSxBQUFBLElBQUMsQ0FBSyxPQUFPLEFBQVosRUFBYyxJQUFLLEVBQUEsQUFBQSxJQUFDLENBQUssVUFBVSxBQUFmLEVBY3hCLE9BQU8sRUExQmIsdUJBQUksQ0FXSCxLQUFLLEFBQ0YsSUFBSyxFQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixFQUFjLElBQUssRUFBQSxBQUFBLElBQUMsQ0FBSyxVQUFVLEFBQWYsRUFjZCxNQUFNLENBQUM7RUFDaEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDaFIxRGQsdUJBQU87RWdSMkRqQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ2hSM0RQLE9BQU87Q2dSNERsQjs7QUE3Qk4sQUFpQ0MsbUJBakNHLEFBaUNGLElBQUssQ054RE8sV0FBVyxHTXVCekIsdUJBQUksQUFpQ0YsSUFBSyxDTnhETyxXQUFXLEVNd0RMO0VBQ2pCLGFBQWEsRUFBRSxJQUFJO0NBQ3BCOztBQUdBLEFBQ0MsMkJBRE8sQ0FDUCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLEdBRFAsK0JBQVEsQ0FDUCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLEVBQWU7RUFDbkIsS0FBSyxFQUFFLEtBQUs7RUFDWixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRWhSdkNFLGdCQUFnQixDZ1J1Q0ksVUFBVTtFQUMzQyxNQUFNLEVBQUUsMEJBQTBCO0VBQ2xDLGFBQWEsRUFBRSxjQUFjO0VBQzdCLFVBQVUsRUFBRSxPQUFPO0NBWXBCOztBQW5CRixBQVNHLDJCQVRLLENBQ1AsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixDQVFILE1BQU0sRUFUViwrQkFBUSxDQUNQLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsQ0FRSCxNQUFNLENBQUM7RUFDTixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ2hSL0VQLE9BQU8sQ2dSK0VvQixVQUFVO0VBQy9DLFVBQVUsRWhSekJLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFnQjtFZ1IwQjNDLFNBQVMsRUFBRSxnQkFBZ0I7Q0FFNUI7O0FBZEosQUFnQkcsMkJBaEJLLENBQ1AsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixDQWVILE9BQU8sRUFoQlgsK0JBQVEsQ0FDUCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLENBZUgsT0FBTyxDQUFDO0VBQ1AsU0FBUyxFQUFFLGVBQWU7Q0FDM0I7O0FBTUosQUFDQyw0QkFEUSxDQUNSLFlBQVksRUFEYixnQ0FBUyxDQUNSLFlBQVksQ0FBQztFQUNYLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBSUYsQUFDQyw2QkFEUyxDQUNULElBQUksR0FBRyxLQUFLLEVBRGIsaUNBQVUsQ0FDVCxJQUFJLEdBQUcsS0FBSyxDQUFDO0VBQ1gsV0FBVyxFaFJuRUMsZUFBZTtFZ1JvRTNCLFNBQVMsRWhSNUVFLE1BQU07Q2dSNkVsQjs7QUFKRixBQU1DLDZCQU5TLENBTVQsVUFBVSxFQU5YLGlDQUFVLENBTVQsVUFBVSxDQUFDO0VBQ1QsTUFBTSxFQUFFLENBQUM7Q0FDVjs7QUFHRixBQUNDLG1DQURlLENBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBRGhCLHVDQUFnQixDQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0VBQ2QsYUFBYSxFQUFFLFlBQVk7Q0FDNUI7O0FBR0YsQUFDQyx5QkFESyxDQUNMLEtBQUssRUFETiw2QkFBTSxDQUNMLEtBQUssQ0FBQztFQUNKLFNBQVMsRWhSN0ZFLE1BQU07RWdSOEZqQixjQUFjLEVBQUUsR0FBRztDQUNwQjs7QUFKRixBQU1DLHlCQU5LLENBTUwsa0JBQWtCLEVBTm5CLDZCQUFNLENBTUwsa0JBQWtCLENBQUM7RUFDakIsS0FBSyxFQUFFLEdBQUc7RUFDVixhQUFhLEVBQUUsSUFBSTtDQUtwQjs7QUFiRixBQVVHLHlCQVZHLENBVUYseUJBQU8sRUFWWCw2QkFBTSxDQVVGLHlCQUFPLENBQUM7RUFDUCxhQUFhLEVBQUUsS0FBSztDQUNyQjs7QUFaSixBQWdCRyx5QkFoQkcsQ0FlTCxpQkFBaUIsQ0FDZixNQUFNLEVBaEJULDZCQUFNLENBZUwsaUJBQWlCLENBQ2YsTUFBTSxDQUFDO0VBQ0wsS0FBSyxFaFIvSEMsT0FBTztFZ1JnSWIsU0FBUyxFaFI1R0EsTUFBTTtDZ1I2R2hCOztBQW5CSixBQXFCRyx5QkFyQkcsQ0FlTCxpQkFBaUIsQ0FNZixHQUFHLEVBckJOLDZCQUFNLENBZUwsaUJBQWlCLENBTWYsR0FBRyxDQUFDO0VBQ0YsS0FBSyxFaFJuSUcsT0FBTztFZ1JvSWYsU0FBUyxFaFJqSEEsTUFBTTtDZ1JrSGhCOztBQTlHTixBQWtIQyxtQkFsSEcsQ0FrSEQsc0JBQXNCLENBQUMsS0FBSztBQWxIL0IsbUJBQUksQ0FtSEQsbUJBQW1CLENBQUMsS0FBSyxFQW5INUIsdUJBQUksQ0FrSEQsc0JBQXNCLENBQUMsS0FBSztBQWxIL0IsdUJBQUksQ0FtSEQsbUJBQW1CLENBQUMsS0FBSyxDQUFDO0VBQzFCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0NBQ3ZCOztBQUlGLEFBQUQsNEJBQWMsRUFBYixnQ0FBYSxDQUFDO0VBQ2IsT0FBTyxFQUFFLEtBQUs7Q0FhZjs7QUFkQSxBQUdDLDRCQUhZLENBR1osS0FBSyxFQUhOLGdDQUFhLENBR1osS0FBSyxDQUFDO0VoUk1SLFNBQVMsRUF2SVEsTUFBTTtFQXdJdkIsV0FBVyxFQW5JVSxzQkFBc0I7RUFvSTNDLE9BQU8sRUFBRSxLQUFLO0VBQ2QsT0FBTyxFQUFFLFFBQVE7RUFDakIsY0FBYyxFQUFFLEdBQUc7RUFDbkIsY0FBYyxFQUFFLFVBQVU7RUFDMUIsS0FBSyxFQTVKTyxLQUFLO0VBNkpqQixNQUFNLEVBQUUsQ0FBQztFQUNULFdBQVcsRUFBRSxPQUFPO0NnUlpqQjs7QUFMRixBQU9DLDRCQVBZLENBT1osS0FBSyxFQVBOLGdDQUFhLENBT1osS0FBSyxDQUFDO0VBQ0osT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUFURixBQVdDLDRCQVhZLENBV1osWUFBWSxFQVhiLGdDQUFhLENBV1osWUFBWSxDQUFDO0VBQ1gsT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUFNRixBQUNDLDRCQURRLEdBQ0osOEJBQThCLENBQUM7RUFDakMsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsS0FBSztDQUNqQjs7QUNqTEwsQUFBQSxVQUFVLENBQUM7RUFDVCxXQUFXLEVBQUUsSUFBSTtDQUNsQjs7QUFFRCxBQUFBLEtBQUs7QUFDTCxRQUFRLENBQUM7RUFDUCxPQUFPLEV4RmtCQyxNQUF1QixDQUF2QixPQUF1QjtDd0ZqQmhDOztBQUVELEFBQUEsbUJBQW1CLENBQUM7RUFDbEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsS0FBSyxFalJSVyxPQUFPO0VpUlN2QixPQUFPLEVBQUUsUUFBUTtFQUNqQixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ2pSVkYsT0FBTztFaVJXdkIsYUFBYSxFQUFFLElBQUk7RUFhbkIsVUFBVSxFQUFFLElBQUk7Q0FVakI7O0FBNUJELEFBT0UsbUJBUGlCLEFBT2hCLE1BQU0sQ0FBQztFQUNOLFVBQVUsRUFBRSxNQUFNO0NBRW5COztBQVZILEFBWUUsbUJBWmlCLEdBWWIsQ0FBQyxDQUFDO0VBQ0osTUFBTSxFQUFFLG9CQUFvQjtFQUM1QixPQUFPLEVBQUUsSUFBSTtFQUNiLGFBQWEsRUFBRSxJQUFJO0NBQ3BCOztBQWhCSCxBQW9CRSxtQkFwQmlCLENBb0JqQixJQUFJLEFBQUEsVUFBVyxDRmZvRCxDQUFDLEVFZWxEO0VBQ2hCLGFBQWEsRUFBRSxJQUFJO0VBQ25CLFlBQVksRUFBRSxHQUFHLENBQUMsTUFBTSxDalI1QlYsT0FBTztDaVI2QnRCOztBQXZCSCxBQXlCRSxtQkF6QmlCLENBeUJqQixJQUFJLEFBQUEsVUFBVyxDQUFBLENBQUMsRUFBRTtFQUNoQixXQUFXLEVBQUUsSUFBSTtDQUNsQjs7QUFVSCxBQUFBLGFBQWEsQ0FBQztFQUNaLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxNQUFNO0VBQ2YsWUFBWSxFQUFFLElBQUk7RUFDbEIsV0FBVyxFQUFFLElBQUk7Q0FZbEI7O0FBVkUsQUFDQyxvQkFETSxDQUNOLEtBQUssQ0FBQztFQUNKLEtBQUssRUFBRSxPQUFPO0VBQ2QsU0FBUyxFQUFFLE9BQU87Q0FDbkI7O0FBR0YsQUFBRCwwQkFBYyxDQUFDO0VBQ2IsYUFBYSxFQUFFLGVBQWU7Q0FDL0I7O0FBR0gsQUFBQSxXQUFXLENBQUM7RUFDVixRQUFRLEVBQUUsUUFBUTtFQU9sQixhQUFhLEVBQUUsb0JBQW9CO0VBQ25DLGNBQWMsRUFBRSxJQUFJO0NBQ3JCOztBQVZELEFBR0UsV0FIUyxDQUdULFNBQVMsQ0FBQztFQUNSLE9BQU8sRUFBRSxDQUFDO0VBQ1YsVUFBVSxFQUFFLEtBQUs7Q0FDbEI7O0FBaUJILEFBQUEseUJBQXlCLENBQUM7RUFDeEIsT0FBTyxFQUFFLElBQUk7RUFDYixTQUFTLEVBQUUsSUFBSTtFQUNmLFVBQVUsRUFBRSxPQUFPO0NBZXBCOztBQWxCRCxBQVNFLHlCQVR1QixDQVN2Qix1QkFBdUIsQ0FBQztFQUN0QixPQUFPLEVBQUUsTUFBTTtFQUNmLE9BQU8sRUFBRSxZQUFZO0NBTXRCOztBQWpCSCxBQWFJLHlCQWJxQixDQVN2Qix1QkFBdUIsQ0FJckIsS0FBSyxDQUFDO0VBQ0osT0FBTyxFQUFFLEtBQUs7RUFDZCxLQUFLLEVBQUUsS0FBSztDQUNiOztBQU1MLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFQS9EeEIsQUFBQSxhQUFhLENBZ0VHO0lBQ1osT0FBTyxFQUFFLEtBQUs7R0FDZjtFQUVELEFBQ0UsZ0JBRGMsQ0FDZCxhQUFhLENBQUM7SUFDWixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxRQUFRO0dBQ2xCO0VBSkgsQUFNRSxnQkFOYyxDQU1kLFlBQVksQ0FBQztJQUNYLFNBQVMsRUFBRSxLQUFLO0dBQ2pCOzs7QUMxSEwsQUFBQSxzQkFBc0IsQ0FBQztFQUNyQixLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxDQUFDO0NBb0JWOztBQXRCRCxBQUlFLHNCQUpvQixDQUlwQixLQUFLLENBQUMsRUFBRSxDQUFDO0VBQ1AsT0FBTyxFQUFFLEtBQUs7Q0FLZjs7QUFWSCxBQU9JLHNCQVBrQixDQUlwQixLQUFLLENBQUMsRUFBRSxBQUdMLFlBQVksQ0FBQztFQUNaLFVBQVUsRUFBRSxJQUFJO0NBQ2pCOztBQVRMLEFBWUUsc0JBWm9CLENBWXBCLEVBQUUsQ0FBQztFQUNELFdBQVcsRUFBRSxNQUFNO0VBQ25CLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLFVBQVUsRUFBRSxNQUFNO0NBQ25COztBQWhCSCxBQWtCRSxzQkFsQm9CLENBa0JwQixFQUFFLENBQUMsRUFBRSxBQUFBLFlBQVksQ0FBQztFQUNoQixZQUFZLEVBQUUsSUFBSTtFQUNsQixVQUFVLEVBQUUsT0FBTztDQUNwQjs7QUNyQkgsQUFBQSw4QkFBOEIsQ0FBQztFQUM3QixPQUFPLEVBQUUsS0FBSztDQXVDZjs7QUF4Q0QsQUFHRSw4QkFINEIsQ0FHNUIsS0FBSyxDQUFDO0VBQ0osVUFBVSxFblI4Q0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CO0VtUjdDMUMsVUFBVSxFQUFFLEtBQUs7RUFDakIsYUFBYSxFQUFFLE9BQU87RUFDdEIsTUFBTSxFQUFFLG1CQUFtQjtDQUM1Qjs7QUFSSCxBQVVFLDhCQVY0QixDQVU1QixFQUFFLENBQUM7RUFDRCxhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQ25SUEEsc0JBQU87Q21SbUNoQzs7QUF2Q0gsQUFhSSw4QkFiMEIsQ0FVNUIsRUFBRSxDQUdBLEVBQUUsQ0FBQztFQUNELE9BQU8sRUFBRSxJQUFJO0NBYWQ7O0FBM0JMLEFBZ0JNLDhCQWhCd0IsQ0FVNUIsRUFBRSxDQUdBLEVBQUUsQUFHQyxVQUFXLENKRm1ELENBQUMsRUlFakQ7RUFDYixLQUFLLEVuUlhNLE9BQU87RW1SWWxCLGFBQWEsRUFBRSxLQUFLO0NBQ3JCOztBQW5CUCxBQXFCTSw4QkFyQndCLENBVTVCLEVBQUUsQ0FHQSxFQUFFLEFBUUMsVUFBVyxDRmFELENBQUMsRUViRztFQUNiLFdBQVcsRUFBRSxHQUFHLENBQUMsTUFBTSxDblJsQkgsc0JBQU87RW1SbUIzQixVQUFVLEVBQUUsTUFBTTtFQUNsQixXQUFXLEVuUlFBLGVBQWU7RW1SUDFCLFlBQVksRUFBRSxLQUFLO0NBQ3BCOztBQTFCUCxBQThCSSw4QkE5QjBCLENBVTVCLEVBQUUsQUFvQkMsV0FBVyxDQUFDO0VBQ1gsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENuUnpCUixPQUFPO0VtUjBCcEIsYUFBYSxFQUFFLElBQUk7Q0FNcEI7O0FBdENMLEFBa0NNLDhCQWxDd0IsQ0FVNUIsRUFBRSxBQW9CQyxXQUFXLENBSVYsRUFBRSxBQUFBLFVBQVcsQ0pwQmtELENBQUMsRUlvQmhEO0VBQ2QsU0FBUyxFQUFFLE1BQU07RUFDakIsYUFBYSxFQUFFLElBQUk7Q0FDcEI7O0FDckNQLEFBQUEsd0JBQXdCLENBQUM7RUFFdkIsT0FBTyxFQUFFLElBQUk7RUFDYixjQUFjLEVBQUUsTUFBTTtFQUN0QixhQUFhLEVBQUUsT0FBTztFQUN0QixPQUFPLEVBQUUsTUFBTTtDQXVNaEI7O0FBNU1ELEFBT0Usd0JBUHNCLENBT3RCLGFBQWEsQ0FBQztFQUNaLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFVBQVUsRUFBRSxNQUFNO0NBQ25COztBQVZILEFBYUUsd0JBYnNCLENBYXRCLFNBQVMsQ0FBQztFQUNSLE9BQU8sRUFBRSxDQUFDO0VBQ1YsYUFBYSxFQUFFLENBQUM7RUFDaEIsTUFBTSxFQUFFLElBQUk7RUFDWixVQUFVLEVBQUUsSUFBSTtDQUNqQjs7QUFsQkgsQUEyQkksd0JBM0JvQixDQXNCdEIsWUFBWSxBQUtULFFBQVE7QUEzQmIsd0JBQXdCLENBdUJ0QixnQkFBZ0IsQUFBQSxJQUFLLENBQUEsVUFBVSxFQUFFLDRCQUE0QixBQUkxRCxRQUFRO0FBM0JiLHdCQUF3QixDQXdCdEIsd0JBQXdCLENBQUMsNEJBQTRCLEFBR2xELFFBQVE7QUEzQmIsd0JBQXdCLENBeUJ0QixnQkFBZ0IsQ0FBQyxhQUFhLEFBRTNCLFFBQVE7QUEzQmIsd0JBQXdCLENBMEJ0QixvQ0FBb0MsQUFDakMsUUFBUSxDQUFDO0VBQ1IsT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUE3QkwsQUFnQ0Usd0JBaENzQixDQWdDdEIsb0NBQW9DLENBQUM7RUFDbkMsV0FBVyxFQUFFLFlBQVk7RUFDekIsY0FBYyxFQUFFLFlBQVk7Q0FDN0I7O0FBbkNILEFBc0NJLHdCQXRDb0IsQ0FxQ3RCLHVCQUF1QixDQUNyQixLQUFLLENBQUMsRUFBRSxDQUFDO0VBZVAsYUFBYSxFQUFFLG9CQUFvQjtDQUNwQzs7QUF0REwsQUF1Q00sd0JBdkNrQixDQXFDdEIsdUJBQXVCLENBQ3JCLEtBQUssQ0FBQyxFQUFFLENBQ04sRUFBRSxDQUFDO0VBQ0QsT0FBTyxFQUFFLE1BQU07Q0FDaEI7O0FBekNQLEFBMkNNLHdCQTNDa0IsQ0FxQ3RCLHVCQUF1QixDQUNyQixLQUFLLENBQUMsRUFBRSxDQUtOLEVBQUUsQUFBQSxZQUFZLENBQUM7RUFDYixLQUFLLEVBQUUsR0FBRztFQUNWLFlBQVksRUFBRSxvQkFBb0I7Q0FDbkM7O0FBOUNQLEFBZ0RNLHdCQWhEa0IsQ0FxQ3RCLHVCQUF1QixDQUNyQixLQUFLLENBQUMsRUFBRSxDQVVOLEVBQUUsQUFBQSxVQUFXLENBQUEsQ0FBQyxFQUFFO0VBQ2QsS0FBSyxFQUFFLEVBQUU7RUFDVCxXQUFXLEVBQUUsTUFBTTtDQUNwQjs7QUFuRFAsQUF3REksd0JBeERvQixDQXFDdEIsdUJBQXVCLENBbUJyQixzQkFBc0IsQ0FBQztFQUNyQixLQUFLLEVBQUUsS0FBSztDQUtiOztBQTlETCxBQTJETSx3QkEzRGtCLENBcUN0Qix1QkFBdUIsQ0FtQnJCLHNCQUFzQixDQUdwQixRQUFRLENBQUM7RUFDUCxNQUFNLEVBQUUsSUFBSTtDQUNiOztBQTdEUCxBQWdFSSx3QkFoRW9CLENBcUN0Qix1QkFBdUIsQ0EyQnJCLGFBQWEsQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUM7RUFDcEMsZUFBZSxFQUFFLGFBQWE7RUFDOUIsT0FBTyxFQUFFLElBQUk7Q0FNZDs7QUF4RUwsQUFvRU0sd0JBcEVrQixDQXFDdEIsdUJBQXVCLENBMkJyQixhQUFhLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxHQUkvQixDQUFDLENBQUM7RUFDSixJQUFJLEVBQUUsUUFBUTtFQUNkLE1BQU0sRUFBRSxDQUFDO0NBQ1Y7O0FBdkVQLEFBMkVNLHdCQTNFa0IsQ0FxQ3RCLHVCQUF1QixDQXFDckIsbUJBQW1CLENBQ2pCLEVBQUUsQ0FBQztFQUNELE9BQU8sRUFBRSxDQUFDO0NBQ1g7O0FBN0VQLEFBK0VNLHdCQS9Fa0IsQ0FxQ3RCLHVCQUF1QixDQXFDckIsbUJBQW1CLENBS2pCLElBQUksQ0FBQztFQUNILE9BQU8sRUFBRSxLQUFLO0NBQ2Y7O0FBakZQLEFBbUZNLHdCQW5Ga0IsQ0FxQ3RCLHVCQUF1QixDQXFDckIsbUJBQW1CLEFBU2hCLFFBQVEsQ0FBQztFQUNSLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBckZQLEFBK0ZFLHdCQS9Gc0IsQ0ErRnRCLFFBQVEsQ0FBQztFQUNQLE1BQU0sRUFBRSxJQUFJO0VBQ1osT0FBTyxFQUFFLENBQUM7Q0FDWDs7QUFsR0gsQUFvR0Usd0JBcEdzQixDQW9HdEIsc0JBQXNCLENBQUM7RUFDckIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsYUFBYSxFQUFFLFFBQVE7Q0FrQ3hCOztBQXhJSCxBQXdHSSx3QkF4R29CLENBb0d0QixzQkFBc0IsQ0FJcEIsb0NBQW9DLEFBQUEsSUFBSyxDVi9GNUIsV0FBVyxFVStGOEI7RUFDcEQsYUFBYSxFQUFFLENBQUM7Q0FDakI7O0FBMUdMLEFBOEdNLHdCQTlHa0IsQ0FvR3RCLHNCQUFzQixDQVFwQixrQkFBa0IsQUFFZixRQUFRO0FBOUdmLHdCQUF3QixDQW9HdEIsc0JBQXNCLENBU3BCLGtCQUFrQixBQUNmLFFBQVEsQ0FBQztFQUNSLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBaEhQLEFBbUhJLHdCQW5Ib0IsQ0FvR3RCLHNCQUFzQixHQWVoQixpQkFBaUIsR0FBRyxVQUFVLENBQUM7RUFDakMsT0FBTyxFQUFFLE1BQU07Q0FtQmhCOztBQXZJTCxBQXNITSx3QkF0SGtCLENBb0d0QixzQkFBc0IsR0FlaEIsaUJBQWlCLEdBQUcsVUFBVSxDQUdoQyx3QkFBd0IsR0FBRyxZQUFZLENBQUMsNEJBQTRCO0FBdEgxRSx3QkFBd0IsQ0FvR3RCLHNCQUFzQixHQWVoQixpQkFBaUIsR0FBRyxVQUFVLENBSWhDLDRCQUE0QixDQUFDO0VBQzNCLEtBQUssRXBSbEhNLE9BQU87RW9SbUhsQixhQUFhLEVBQUUsSUFBSTtDQVNwQjs7QUFsSVAsQUEySFEsd0JBM0hnQixDQW9HdEIsc0JBQXNCLEdBZWhCLGlCQUFpQixHQUFHLFVBQVUsQ0FHaEMsd0JBQXdCLEdBQUcsWUFBWSxDQUFDLDRCQUE0QixBQUtqRSxRQUFRO0FBM0hqQix3QkFBd0IsQ0FvR3RCLHNCQUFzQixHQWVoQixpQkFBaUIsR0FBRyxVQUFVLENBSWhDLDRCQUE0QixBQUl6QixRQUFRLENBQUM7RUFDUixpQkFBaUIsRUFBRSxRQUFRO0VBQzNCLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsaUJBQWlCO0VBQy9DLEtBQUssRXBSeEhJLE9BQU87RW9SeUhoQixTQUFTLEVwUm5HQSxNQUFNO0VvUm9HZixXQUFXLEVwUi9GRSxzQkFBc0I7Q29SZ0dwQzs7QUFqSVQsQUgrRUksd0JHL0VvQixDQW9HdEIsc0JBQXNCLEdBZWhCLGlCQUFpQixHQUFHLFVBQVUsQ0FpQmhDLHdCQUF3QixDSHRENUIsNEJBQTRCLEFBQ3pCLFFBQVEsQ0FBQztFQUNSLE9BQU8sRUFBRSxFQUFFO0VBQ1gsaUJBQWlCLEVBQUUsSUFBSTtDQUN4Qjs7QUdsRkwsQUgrRUksd0JHL0VvQixDQTBJdEIsd0JBQXdCLEdBQUcsWUFBWSxDSDVEdkMsNEJBQTRCLEFBQ3pCLFFBQVEsQ0FBQztFQUNSLE9BQU8sRUFBRSxFQUFFO0VBQ1gsaUJBQWlCLEVBQUUsSUFBSTtDQUN4Qjs7QUdsRkwsQUE2SUksd0JBN0lvQixDQTBJdEIsd0JBQXdCLEdBQUcsWUFBWSxDQUdyQyw0QkFBNEIsQ0FBQztFQUUzQixhQUFhLEVBQUUsSUFBSTtFQUNuQixLQUFLLEVwUjFJUSxPQUFPO0VvUjJJcEIsV0FBVyxFcFJoSE0sc0JBQXNCO0NvUnNIeEM7O0FBdkpMLEFBbUpNLHdCQW5Ka0IsQ0EwSXRCLHdCQUF3QixHQUFHLFlBQVksQ0FHckMsNEJBQTRCLENBTTFCLENBQUMsQ0FBQztFQUNBLFdBQVcsRUFBRSxrQkFBa0I7Q0FDaEM7O0FBckpQLEFBMkpFLHdCQTNKc0IsQ0EySnRCLFFBQVE7QUEzSlYsd0JBQXdCLENBNEp0QixvQkFBb0IsQ0FBQyxNQUFNLENBQUM7RUFDMUIsVUFBVSxFQUFFLElBQUk7Q0FDakI7O0FBOUpILEFBZ0tFLHdCQWhLc0IsQ0FnS3RCLGtCQUFrQjtBQWhLcEIsd0JBQXdCLENBaUt0QixtQkFBbUIsQ0FBQztFQUNsQixhQUFhLEVBQUUsSUFBSTtDQUtwQjs7QUF2S0gsQUFvS0ksd0JBcEtvQixDQWdLdEIsa0JBQWtCLENBSWhCLEtBQUs7QUFwS1Qsd0JBQXdCLENBaUt0QixtQkFBbUIsQ0FHakIsS0FBSyxDQUFDO0VBQ0osYUFBYSxFQUFFLElBQUk7Q0FDcEI7O0FBdEtMLEFBMEtFLHdCQTFLc0IsQ0EwS3RCLG9CQUFvQixDQUFDLGFBQWEsR0FBRyxZQUFZO0FBMUtuRCx3QkFBd0IsQ0EyS3RCLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxZQUFZO0FBM0svQyx3QkFBd0IsQ0E0S3RCLDRCQUE0QixDQUM1QjtFQUNFLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFcFIxS1UsT0FBTztFb1IyS3RCLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDcFIzS1QsT0FBTztFb1I0S3RCLE9BQU8sRUFBRSxTQUFTO0VBQ2xCLGFBQWEsRUFBRSxLQUFLO0NBV3JCOztBQTdMSCxBQW9MSSx3QkFwTG9CLENBMEt0QixvQkFBb0IsQ0FBQyxhQUFhLEdBQUcsWUFBWSxBQVU5QyxRQUFRO0FBcExiLHdCQUF3QixDQTJLdEIsZ0JBQWdCLENBQUMsYUFBYSxHQUFHLFlBQVksQUFTMUMsUUFBUTtBQXBMYix3QkFBd0IsQ0E0S3RCLDRCQUE0QixBQVF6QixRQUFRLENBQUM7RUFDUixpQkFBaUIsRUFBRSxPQUFPO0VBQzFCLE9BQU8sRUFBRSxnQkFBZ0I7RUFDekIsS0FBSyxFcFJ0TFMsT0FBTztFb1J1THJCLFNBQVMsRXBSOUpHLElBQUk7RW9SK0poQixXQUFXLEVwUnhKTSxzQkFBc0I7RW9SeUp2QyxPQUFPLEVBQUUsUUFBUTtFQUNqQixLQUFLLEVBQUUsSUFBSTtDQUNaOztBQTVMTCxBQWdNRSx3QkFoTXNCLENBZ010QixzQkFBc0I7QUFoTXhCLHdCQUF3QixDQWlNdEIsbUJBQW1CLENBQUM7RUFDbEIsWUFBWSxFQUFFLE1BQU07RUFDcEIsVUFBVSxFQUFFLElBQUk7RUFDaEIsYUFBYSxFQUFFLElBQUk7Q0FDcEI7O0FBck1ILEFBdU1FLHdCQXZNc0IsQ0F1TXRCLGVBQWU7QUF2TWpCLHdCQUF3QixDQXdNdEIsS0FBSyxDQUFDO0VBQ0osU0FBUyxFQUFFLElBQUk7Q0FDaEI7O0FDMU1ILEFBQ0UsSUFERSxDQUNGLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0VBQ25CLGFBQWEsRUFBRSxHQUFHO0NBQ25COztBQ0hILEFBQUEsaUJBQWlCLENBQUM7RUFDaEIsU0FBUyxFQUFFLElBQUk7Q0FDaEI7O0FBRUQsQUFBQSxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztFQUN0QyxVQUFVLEVBQUUsT0FBTztFQUNuQixLQUFLLEVBQUUsT0FBTztFQUNkLGVBQWUsRUFBRSxJQUFJO0NBQ3RCOztBQUVELEFBQUEsaUJBQWlCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztFQUNuQyxPQUFPLEVBQUUsT0FBTztDQUNqQjs7QUFFRCxBQUFBLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxFQUFFLEFBQUEsWUFBWSxDQUFDO0VBQy9DLGdCQUFnQixFdFJaQSxPQUFPO0VzUmF2QixnQkFBZ0IsRUFBRSx5Q0FBMkQ7RUFDN0UsS0FBSyxFdFJITyxLQUFLO0NzUklsQjs7QUNsQkQsQUFBQSxxQkFBcUI7QUFDckIsT0FBTyxBQUFBLFFBQVEsQ0FBQztFQUNkLFVBQVUsRUFBRSxHQUFHO0VBQ2YsYUFBYSxFQUFFLEdBQUc7RUFDbEIsTUFBTSxFQUFFLGlCQUFpQjtFQUN6QixhQUFhLEVBQUUsR0FBRztFQUNsQixnQkFBZ0IsRUFBRSxPQUFPO0NBaUMxQjs7QUF2Q0QsQUFRRSxxQkFSbUIsQ0FRbkIsMkJBQTJCO0FBUjdCLHFCQUFxQixDQVNuQixpQkFBaUI7QUFSbkIsT0FBTyxBQUFBLFFBQVEsQ0FPYiwyQkFBMkI7QUFQN0IsT0FBTyxBQUFBLFFBQVEsQ0FRYixpQkFBaUIsQ0FBQztFQUNoQixXQUFXLEV2UnNCSSxlQUFlO0V1UnJCOUIsTUFBTSxFQUFFLE9BQU87RUFDZixLQUFLLEV2UlRTLE9BQU87RXVSVXJCLFdBQVcsRUFBRSxhQUFhO0VBQzFCLE9BQU8sRUFBRSxhQUFhO0NBQ3ZCOztBQWZILEFBaUJFLHFCQWpCbUIsQ0FpQm5CLDJCQUEyQjtBQWhCN0IsT0FBTyxBQUFBLFFBQVEsQ0FnQmIsMkJBQTJCLENBQUM7RUFDMUIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLGVBQWU7Q0FjekI7O0FBakNILEFBcUJJLHFCQXJCaUIsQ0FpQm5CLDJCQUEyQixBQUl4QixRQUFRO0FBcEJiLE9BQU8sQUFBQSxRQUFRLENBZ0JiLDJCQUEyQixBQUl4QixRQUFRLENBQUM7RUFDUixPQUFPLEVBQUUsc0JBQXNCO0VBQy9CLFlBQVksRUFBRSxHQUFHO0NBQ2xCOztBQXhCTCxBQTBCSSxxQkExQmlCLENBaUJuQiwyQkFBMkIsQ0FTekIsQ0FBQztBQXpCTCxPQUFPLEFBQUEsUUFBUSxDQWdCYiwyQkFBMkIsQ0FTekIsQ0FBQyxDQUFDO0VBQ0EsV0FBVyxFQUFFLEtBQUs7RUFDbEIsT0FBTyxFQUFFLG9CQUFvQjtFQUM3QixLQUFLLEV2UjFCTyxPQUFPO0V1UjJCbkIsT0FBTyxFQUFFLEtBQUs7RUFDZCxJQUFJLEVBQUUsQ0FBQztDQUNSOztBQWhDTCxBQW1DRSxxQkFuQ21CLENBbUNuQiw4QkFBOEI7QUFuQ2hDLHFCQUFxQixDQW9DbkIsaUJBQWlCO0FBbkNuQixPQUFPLEFBQUEsUUFBUSxDQWtDYiw4QkFBOEI7QUFsQ2hDLE9BQU8sQUFBQSxRQUFRLENBbUNiLGlCQUFpQixDQUFDO0VBQ2hCLE9BQU8sRUFBRSxpQkFBaUI7Q0FDM0I7O0FDckNILEFBQUEsUUFBUSxBQUFBLElBQUssQ0FBQSxXQUFXLElBQUksTUFBTSxDQUFDO0VBQ2pDLFdBQVcsRXhSOEJNLGVBQWU7Q3dSN0JqQzs7QUNIRCxBQUFBLEdBQUcsQ0FBQSxBQUFBLEtBQUMsRUFBTywwQkFBMEIsQUFBakMsRUFBbUM7RUFDckMsTUFBTSxFQUFFLE1BQU07Q0FDZjs7QUFFRCxBQUFBLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxNQUFNLEFBQVgsRUFBYTtFQUNqQixNQUFNLEVBQUUsbUJBQW1CO0NBQzVCOztBQUVELEFBQ0UsS0FERyxBQUNGLFFBQVEsQ0FBQztFelI4RFYsT0FBTyxFeVI3RFksSUFBTztFelI4RDFCLFdBQVcsRUFKTSxxQkFBcUI7RUFLdEMsV0FBVyxFQUphLEdBQUc7RXlSMUR6QixZQUFZLEVBQUUsR0FBRztFQUNqQixjQUFjLEVBQUUsTUFBTTtFQUN0QixPQUFPLEVBQUUsR0FBRztDQUNiOztBQUdILEFBQUEsa0JBQWtCLENBQUM7RUFDakIsT0FBTyxFQUFFLElBQUk7Q0FNZDs7QUFQRCxBQUdFLGtCQUhnQixDQUdoQixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLENBQWMsSUFBSyxDQUFBLFFBQVEsRUFBRTtFQUNqQyxPQUFPLEVBQUUsWUFBWTtFQUNyQixLQUFLLEVBQUUsa0JBQWtCO0NBQzFCOztBQUdILEFBQUEsb0JBQW9CLENBQUM7RUFDbkIsVUFBVSxFQUFFLEtBQUs7Q0FLbEI7O0FBTkQsQUFHRSxvQkFIa0IsQ0FHbEIsR0FBRyxDQUFBLEFBQUEsb0JBQUMsQ0FBcUIsY0FBYyxBQUFuQyxFQUFxQztFQUN2QyxVQUFVLEVBQUUsTUFBTTtDQUNuQjs7QUFHSCxBQUFBLDRCQUE0QixDQUFDO0V6Um1FM0IsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLENBQUM7RUFDTixJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7Q3lSckViOztBQUVELEFBQUEsa0NBQWtDLENBQUM7RUFDakMsT0FBTyxFQUFFLFlBQVk7Q0FDdEI7O0FDdkNELEFBQUEsSUFBSSxDQUFDO0VBQ0gsT0FBTyxFQUFFLFlBQVk7Q0E0RXRCOztBQTdFRCxBQUVFLElBRkUsR0FFRSxLQUFLLENBQUM7RUFDUixNQUFNLEVBQUUsT0FBTztDQUNoQjs7QUFKSCxBQU1FLElBTkUsQ0FNRixLQUFLLENBQUM7RUFDSixLQUFLLEVBQUUsS0FBSztFQUNaLE1BQU0sRUFBRSxPQUFPO0VBQ2YsUUFBUSxFQUFFLFFBQVE7Q0F5Q25COztBQWxESCxBQVVJLElBVkEsQ0FNRixLQUFLLENBSUgsSUFBSSxDQUFDO0VBQ0gsY0FBYyxFQUFFLE1BQU07RUFDdEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsZ0JBQWdCLEVBQUUsV0FBVztFQUM3QixLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxJQUFJO0VBQ1osZ0JBQWdCLEVBQUUsTUFBTTtFQUN4QixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzFSZkssT0FBTztFMFJnQjdCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE1BQU0sRUFBRSxRQUFRO0NBNkJqQjs7QUFqREwsQUFzQk0sSUF0QkYsQ0FNRixLQUFLLENBSUgsSUFBSSxBQVlELE9BQU8sQ0FBQztFQUNQLE9BQU8sRUFBRSxFQUFFO0VBQ1gsS0FBSyxFQUFFLEdBQUc7RUFDVixNQUFNLEVBQUUsR0FBRztFQUNYLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFNBQVMsRUFBRSxhQUFhO0VBQ3hCLEdBQUcsRUFBRSxJQUFJO0VBQ1QsSUFBSSxFQUFFLEdBQUc7RUFDVCxVQUFVLEVBQUUsb0JBQW9CO0VBQ2hDLGdCQUFnQixFQUFFLEtBQUs7Q0FDeEI7O0FBbENQLEFBb0NNLElBcENGLENBTUYsS0FBSyxDQUlILElBQUksQUEwQkQsTUFBTSxDQUFDO0VBQ04sT0FBTyxFQUFFLEVBQUU7RUFDWCxLQUFLLEVBQUUsQ0FBQztFQUNSLE1BQU0sRUFBRSxHQUFHO0VBQ1gsYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQUFFLElBQUk7RUFDaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsU0FBUyxFQUFFLGNBQWM7RUFDekIsR0FBRyxFQUFFLElBQUk7RUFDVCxJQUFJLEVBQUUsSUFBSTtFQUNWLFVBQVUsRUFBRSxlQUFlO0VBQzNCLGdCQUFnQixFQUFFLEtBQUs7Q0FDeEI7O0FBaERQLEFBb0RFLElBcERFLENBb0RGLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxVQUFVLEFBQWYsR0FwRFIsSUFBSSxDQW9Ec0IsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixFQUFjO0VBQzFDLE9BQU8sRUFBRSxJQUFJO0NBdUJkOztBQTVFSCxBQTREUSxJQTVESixDQW9ERixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssVUFBVSxBQUFmLENBTUgsUUFBUSxHQUNMLEtBQUssQ0FDTCxJQUFJLEVBNURaLElBQUksQ0FvRHNCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxPQUFPLEFBQVosQ0FNM0IsUUFBUSxHQUNMLEtBQUssQ0FDTCxJQUFJLENBQUM7RUFDSCxNQUFNLEVBQUUsSUFBSTtFQUNaLGdCQUFnQixFQUFFLE9BQU87Q0FXMUI7O0FBekVULEFBZ0VVLElBaEVOLENBb0RGLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxVQUFVLEFBQWYsQ0FNSCxRQUFRLEdBQ0wsS0FBSyxDQUNMLElBQUksQUFJRCxNQUFNLEVBaEVqQixJQUFJLENBb0RzQixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssT0FBTyxBQUFaLENBTTNCLFFBQVEsR0FDTCxLQUFLLENBQ0wsSUFBSSxBQUlELE1BQU0sQ0FBQztFQUNOLEtBQUssRUFBRSxJQUFJO0VBQ1gsVUFBVSxFQVZMLEtBQUs7Q0FXWDs7QUFuRVgsQUFxRVUsSUFyRU4sQ0FvREYsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFVBQVUsQUFBZixDQU1ILFFBQVEsR0FDTCxLQUFLLENBQ0wsSUFBSSxBQVNELE9BQU8sRUFyRWxCLElBQUksQ0FvRHNCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxPQUFPLEFBQVosQ0FNM0IsUUFBUSxHQUNMLEtBQUssQ0FDTCxJQUFJLEFBU0QsT0FBTyxDQUFDO0VBQ1AsS0FBSyxFQUFFLEdBQUc7RUFDVixVQUFVLEVBZkwsS0FBSztDQWdCWDs7QUN6RVgsQUFBQSxNQUFNLENBQUM7RUFDTCxPQUFPLEVBQUUsSUFBSTtFQUNiLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLFNBQVMsRTNSeUJRLE1BQU07RTJSeEJ2QixXQUFXLEUzUjhCUyxpQkFBaUI7RTJSN0JyQyxnQkFBZ0IsRUFBRSw0REFBNEQ7RUFDOUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtFQUMzQyxNQUFNLEVBQUUsbUJBQW1CO0VBQzNCLFVBQVUsRUFBRSxPQUFPO0VBQ25CLFNBQVMsRUFBRSxJQUFJO0NBSWhCOztBM1JtUEcsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0UyUmhRN0IsQUFBQSxNQUFNLENBQUM7SUFXSCxTQUFTLEUzUmtCSyxNQUFLO0cyUmhCdEI7OztBdktpWUQsQUFBQSxRQUFRLEN5SzlZQztFQUNQLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFVBQVUsRUFBRSxjQUFjO0VBQzFCLE1BQU0sRUFBRSxJQUFJO0VBQ1osS0FBSyxFQUFFLElBQUk7Q0FDWjs7QUNMRCxBQUFBLFVBQVUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDO0NBY1g7O0FBWkUsQUFBRCxpQkFBUSxDQUFDO0VBQ1AsS0FBSyxFQUFFLEtBQUs7Q0FDYjs7QUFFQSxBQUFELGtCQUFTLENBQUM7RUFDUixLQUFLLEVBQUUsS0FBSztDQUNiOztBQUVBLEFBQUQsbUJBQVUsQ0FBQztFQUNULE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLFdBQVc7Q0FDeEI7O0FDZEgsQUFBQSxVQUFVLENBQUM7RUFDVCxPQUFPLEVBQUUsZUFBZTtDQUN6Qjs7QUFFRCxBQUFBLGtCQUFrQixDQUFDO0VBQ2pCLE9BQU8sRUFBRSxlQUFlO0NBQ3pCOztBQUVELEFBQUEsaUJBQWlCLENBQUMsWUFBWSxDQUFDO0VBQzdCLE9BQU8sRUFBRSxlQUFlO0NBQ3pCOztBQUVELEFBQUEsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxBQUFBLFVBQVUsQUFBQSxPQUFPLEVBQUUsVUFBVSxBQUFBLE9BQU8sRUFBRSxVQUFVLEFBQUEsZ0JBQWdCLEFBQUEsTUFBTSxDQUFDO0VBQ2pLLGdCQUFnQixFQUFFLE9BQU87Q0FDMUI7O0FBZEQsQUFBQSxVQUFVLENBZ0JDO0VBQ1QsT0FBTyxFQUFFLElBQUk7RUFDYixNQUFNLEVBQUUsSUFBSTtFQUNaLE9BQU8sRUFBRSxDQUFDO0NBbUJYOztBQXRCRCxBQUtFLFVBTFEsQ0FLUixtQkFBbUIsQ0FBQztFQUNsQixVQUFVLEUvUm5CSSxPQUFPO0UrUm9CckIsS0FBSyxFL1JUSyxLQUFLO0UrUldmLFdBQVcsRS9ST0ksZUFBZTtFK1JOOUIsV0FBVyxFQUFFLE9BQU87RUFDcEIsT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUFaSCxBQWNFLFVBZFEsQ0FjUixrQkFBa0IsQ0FBQztFQUNqQixPQUFPLEVBQUUsR0FBRztFQUNaLE1BQU0sRUFBRSxJQUFJO0NBS2I7O0FBckJILEFBa0JJLFVBbEJNLENBY1Isa0JBQWtCLENBSWhCLEtBQUssQ0FBQztFQUNKLFdBQVcsRS9SRk0sc0JBQXNCO0MrUkd4Qzs7QUFLTCxBQUFBLGtCQUFrQixDQUFDLENBQUMsQUFBQSxPQUFPLEVBQTNCLGtCQUFrQixDZDhDbEIseUJBQXlCLENjOUNOLENBQUMsQWRtRGxCLGNBQWMsRUFMaEIseUJBQXlCLENjOUN6QixrQkFBa0IsQ0FBQyxDQUFDLEFkbURsQixjQUFjLEVjbkRoQixrQkFBa0IsQ1dOYix3QkFBUSxDQUFDLENBQUMsRUFBVix3QkFBUSxDWE1iLGtCQUFrQixDV05KLENBQUMsRVhNZixrQkFBa0IsQ0FBQyxDQUFDLEEyRGNqQiwwQkFBZSxDM0RkUztFQUN6QixLQUFLLEVBQUUsS0FBSztDQUNiOztBQUVELEFBQUEsVUFBVSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQUFBQSxrQkFBa0IsRUFBRSxVQUFVLENBQUMsd0JBQXdCLENBQUMsS0FBSyxBQUFBLFVBQVUsRUFBRSxVQUFVLENBQUMsd0JBQXdCLENBQUMsS0FBSyxBQUFBLFNBQVM7QUFDcEssVUFBVSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQUFBQSxXQUFXLEVBQUUsVUFBVSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQUFBQSxTQUFTLEVBQUUsVUFBVSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQUFBQSxZQUFZLEVBQUUsVUFBVSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQUFBQSxZQUFZO0FBQ3ROLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEFBQUEsV0FBVyxFQUFFLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEFBQUEsVUFBVSxFQUFFLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEFBQUEsVUFBVSxFQUFFLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEFBQUEsVUFBVTtBQUNuTixVQUFVLENBQUMsd0JBQXdCLENBQUMsUUFBUSxBQUFBLGNBQWMsRUFBRSxVQUFVLENBQUMsb0NBQW9DLENBQUMsS0FBSyxBQUFBLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxLQUFLLEFBQUEsVUFBVSxFQUFFLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxLQUFLLEFBQUEsU0FBUztBQUNwUSxVQUFVLENBQUMsb0NBQW9DLENBQUMsS0FBSyxBQUFBLFdBQVcsRUFBRSxVQUFVLENBQUMsb0NBQW9DLENBQUMsS0FBSyxBQUFBLFNBQVMsRUFBRSxVQUFVLENBQUMsb0NBQW9DLENBQUMsS0FBSyxBQUFBLFlBQVksRUFBRSxVQUFVLENBQUMsb0NBQW9DLENBQUMsS0FBSyxBQUFBLFlBQVk7QUFDdFEsVUFBVSxDQUFDLG9DQUFvQyxDQUFDLEtBQUssQUFBQSxXQUFXLEVBQUUsVUFBVSxDQUFDLG9DQUFvQyxDQUFDLEtBQUssQUFBQSxVQUFVLEVBQUUsVUFBVSxDQUFDLG9DQUFvQyxDQUFDLEtBQUssQUFBQSxVQUFVLEVBQUUsVUFBVSxDQUFDLG9DQUFvQyxDQUFDLEtBQUssQUFBQSxVQUFVO0FBQ25RLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxRQUFRLEFBQUEsY0FBYyxDQUFDO0VBQ3JFLFVBQVUsRUFBRSxVQUFVO0VBQ3RCLE9BQU8sRUFBRSxtQkFBbUI7RUFDNUIsU0FBUztFQUNULEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLElBQUk7RUFDZixNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLGdCQUFnQixFQUFFLElBQUk7RUFDdEIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQUFFLE9BQU87RUFDbkIsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0I7RUFDaEQsU0FBUyxFQUFFLEdBQUc7RUFDZCxLQUFLLEVBQUUsT0FBTztFQUNkLGtCQUFrQixFQUFFLDBDQUEwQztFQUM5RCxVQUFVLEVBQUUsMENBQTBDO0NBQ3ZEOztBQUVELEFBQUEsUUFBUSxDQUFDLGNBQWMsQ0FBQztFQUN0QixPQUFPLEVBQUUsS0FBSztFQUNkLFlBQVksRUFBRSxDQUFDO0VBQ2YsT0FBTyxFQUFFLENBQUM7RUFDVixVQUFVLEVBQUUsSUFBSTtFQUNoQixNQUFNLEVBQUUsSUFBSTtDQUNiOztBQUdELEFBQUEsUUFBUSxDQUFDLEVBQUUsQ0FBQztFQUNWLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDL1I3RU4sT0FBTztDK1I4RjFCOztBQWxCRCxBQUdFLFFBSE0sQ0FBQyxFQUFFLENBR1QsRUFBRSxDQUFDO0VBQ0QsYUFBYSxFQUFFLElBQUk7Q0FhcEI7O0FBakJILEFBTUksUUFOSSxDQUFDLEVBQUUsQ0FHVCxFQUFFLENBR0EsQ0FBQyxDQUFDO0VBQ0EsS0FBSyxFL1JoRmlCLE9BQU87QytSaUY5Qjs7QUFSTCxBQVVJLFFBVkksQ0FBQyxFQUFFLENBR1QsRUFBRSxBQU9DLE9BQU8sQ0FBQztFQUtQLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDL1IzRlYsT0FBTztDK1I0RnRCOztBQWhCTCxBQVdNLFFBWEUsQ0FBQyxFQUFFLENBR1QsRUFBRSxBQU9DLE9BQU8sQ0FDTixDQUFDLENBQUM7RUFDQSxLQUFLLEUvUnhGTyxPQUFPO0MrUnlGcEI7O0FDdEZKLEFBQUQsMEJBQXFCLENBQUMsR0FBRyxDQUFBO0VBQUMsS0FBSyxFQUFFLElBQUk7RUFBQyxNQUFNLEVBQUUsSUFBSTtDQUFFOztBQUVmLFNBQUMsQ0FBRCxHQUFDLEVBQXJCLFVBQVUsRUFBRSxPQUFPO0VBRG5DLEFBQUQsZUFBVSxDQUFBO0lBRU4sTUFBTSxFQUFFLElBQUksQ0FBQSxVQUFVO0dBT3pCOzs7QUFKZ0MsU0FBQyxFQUFyQixVQUFVLEVBQUUsT0FBTztFQUwvQixBQUFELGVBQVUsQ0FBQTtJQU1QLFVBQVUsRUFBRSxPQUFPO0dBR3JCOzs7QUFDQSxBQUFELGtCQUFhLENBQUMsR0FBRyxDQUFBO0VBQUMsS0FBSyxFQUFDLElBQUk7RUFBQyxNQUFNLEVBQUMsSUFBSTtFQUFDLFVBQVUsRUFBRSxPQUFPO0NBQUc7O0FBRzlELEFBQUQsY0FBUyxDQUFBO0VBQ1AsVUFBVSxFQUFFLHVCQUFxQjtFQUNqQyxPQUFPLEVBQUUsQ0FBQztFQUVWLFVBQVUsRUFBRSxPQUFPO0NBQ3BCOztBQUxBLEFBR0MsY0FITyxDQUdQLEdBQUcsQ0FBQTtFQUFDLE9BQU8sRUFBRSxFQUFFO0NBQUc7O0FBR25CLEFBQ0MsMEJBRG1CLENBQ25CLEdBQUcsQ0FBQTtFQUFDLGNBQWMsRUFBRSxlQUFnQjtFQUFDLE1BQU0sRUFBRSxlQUFnQjtFQUMzRCxlQUFlLEVBQUUsUUFBUTtFQUN6QixrQkFBa0IsRUFBRSxRQUFRO0VBQzVCLFVBQVUsRUFBRSxRQUFRO0NBQUU7O0E3S3lOdkIsQUFBRCxhQUFTLEM2S2pORjtFQUFDLEtBQUssRUFBRSxJQUFJO0VBQUMsTUFBTSxFQUFFLElBQUk7Q0FBRzs7QTdLc05sQyxBQUFELFlBQVEsQzZLck5GO0VBQUMsS0FBSyxFQUFFLElBQUk7RUFBQyxNQUFNLEVBQUUsSUFBSTtDQUFHOztBN0swTmpDLEFBQUQsYUFBUyxDNkt6TkY7RUFBQyxLQUFLLEVBQUUsSUFBSTtFQUFDLE1BQU0sRUFBRSxJQUFJO0NBQUc7O0E3SzhObEMsQUFBRCxhQUFTLEM2SzdORjtFQUFDLEtBQUssRUFBRSxJQUFJO0VBQUMsTUFBTSxFQUFFLElBQUk7Q0FBRzs7QTdLa09sQyxBQUFELGFBQVMsQzZLak9GO0VBQUMsS0FBSyxFQUFFLElBQUk7RUFBQyxNQUFNLEVBQUUsSUFBSTtDQUFHOztBN0tzT2xDLEFBQUQsWUFBUSxDNktyT0Y7RUFBQyxLQUFLLEVBQUUsS0FBSztFQUFDLE1BQU0sRUFBRSxLQUFLO0NBQUc7O0FBR3hDLEFBQUEsS0FBSyxDQUFBO0VBQ0gsTUFBTSxFQUFFLElBQUk7Q0FVYjs7QUFSRSxBQUFELGFBQVMsQ0FBQTtFQUFDLEtBQUssRUFBRSxJQUFJO0NBQUc7O0FBQ3ZCLEFBQUQsWUFBUSxDQUFBO0VBQUMsS0FBSyxFQUFFLEtBQUs7Q0FBRzs7QUFDdkIsQUFBRCxhQUFTLENBQUE7RUFBQyxLQUFLLEVBQUUsS0FBSztDQUFHOztBQUN4QixBQUFELGFBQVMsQ0FBQTtFQUFDLEtBQUssRUFBRSxLQUFLO0NBQUc7O0FBQ3hCLEFBQUQsYUFBUyxDQUFBO0VBQUMsS0FBSyxFQUFFLEtBQUs7Q0FBRzs7QUFDeEIsQUFBRCxZQUFRLENBQUE7RUFBQyxLQUFLLEVBQUUsS0FBSztDQUFHOztBQUN2QixBQUFELGFBQVMsQ0FBQTtFQUFDLEtBQUssRUFBRSxLQUFLO0NBQUc7O0FBS3hCLEFBQUQsaUJBQVEsQ0FBQTtFQUFDLFdBQVcsRUFBRSxlQUFlO0NBQUc7O0FBQ3ZDLEFBQUQsa0JBQVMsQ0FBQTtFQUFDLFdBQVcsRUFBRSxpQkFBaUI7Q0FBRzs7QUFDMUMsQUFBRCxnQkFBTyxDQUFBO0VBQUMsV0FBVyxFQUFFLGNBQWM7Q0FBRzs7QUFDckMsQUFBRCxxQkFBWSxDQUFBO0VBQUMsV0FBVyxFQUFFLGlCQUFpQjtDQUFHOztBQUM3QyxBQUFELGlCQUFRLENBQUE7RUFBQyxXQUFXLEVBQUUsaUJBQWlCO0NBQUc7O0FBQ3pDLEFBQUQsaUJBQVEsQ0FBQTtFQUFDLFdBQVcsRUFBRSxlQUFlO0NBQUc7O0FBQ3ZDLEFBQUQsZ0JBQU8sQ0FBQTtFQUFDLFdBQVcsRUFBRSxjQUFjO0NBQUc7O0E3S3NObkMsQUFBRCxpQkFBUSxDNktuTkY7RUFBQyxNQUFNLEVBQUUsSUFBSTtDQUFHOztBN0t1TnJCLEFBQUQsa0JBQVMsQzZLdE5GO0VBQUMsTUFBTSxFQUFFLElBQUk7Q0FBRzs7QUFPM0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VBL0J4QixBQUFBLEtBQUssQ0FrQ0U7SUFDSCxNQUFNLEVBQUUsSUFBSTtHQVNiO0VBeENBLEFBQUQsWUFBUSxDQWdDRTtJQUFDLEtBQUssRUFBRSxJQUFJO0dBQUc7RUEvQnhCLEFBQUQsYUFBUyxDQWdDRTtJQUFDLEtBQUssRUFBRSxJQUFJO0dBQUc7RUEvQnpCLEFBQUQsYUFBUyxDQWdDRTtJQUFDLEtBQUssRUFBRSxJQUFJO0dBQUc7RUEvQnpCLEFBQUQsYUFBUyxDQWlDRTtJQUFDLEtBQUssRUFBRSxLQUFLO0dBQUc7RUFoQzFCLEFBQUQsWUFBUSxDQWtDRTtJQUFDLEtBQUssRUFBRSxLQUFLO0dBQUc7RUFqQ3pCLEFBQUQsYUFBUyxDQWtDRTtJQUFDLEtBQUssRUFBRSxLQUFLO0dBQUc7OztBNUsyVTdCLEFBQUEsS0FBSyxDNktqYUM7RUFDSixNQUFNLEVBQUUsTUFBTTtFQUNkLEtBQUssRUFBRSxJQUFJO0NBUVo7O0FBVkQsQUFJRSxLQUpHLENBSUgsT0FBTyxDQUFDO0VBQ04sV0FBVyxFQUFFLE9BQU87RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFDYixXQUFXLEVqU3dCSSxlQUFlO0VpU3ZCOUIsU0FBUyxFalNrQk0sTUFBTTtDaVNqQnRCOztBQUdILEFBQUEsS0FBSyxBQUFBLGNBQWMsQ0FBQztFQUNsQixVQUFVLEVBQUUsSUFBSTtDQUNqQjs7QUFFRCxBQUFBLEtBQUssQ0FBQztFQUNKLE9BQU8sRUFBRSxrQkFBa0I7RUFDM0IsY0FBYyxFQUFFLE1BQU07RUFDdEIsWUFBWSxFQUFFLE9BQU87Q0FDdEI7O0FBRUQsQUFBQSxLQUFLLENBQUMsRUFBRSxDQUFDO0VBQ1AsVUFBVSxFQUFFLE9BQU87RUFDbkIsS0FBSyxFQUFFLEtBQUs7Q0FDYjs7QUFFRCxBQUFBLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0VBQ2pELEtBQUssRUFBRSxLQUFLO0NBQ2I7O0FBRUQsQUFBQSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUNULE1BQU0sRUFBRSxPQUFPO0VBQ2YsZUFBZSxFQUFFLElBQUk7Q0FDdEI7O0FBRUQsQUFBQSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQUFBQSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEFBQUEsUUFBUSxDQUFDO0VBQ2xDLEtBQUssRUFBRSxPQUFPO0NBQ2Y7O0FBRUQsQUFBQSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQUFBQSxNQUFNLENBQUM7RUFDZixLQUFLLEVBQUUsT0FBTztDQUNmOztBQUVELEFBQUEsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7RUFDVixPQUFPLEVBQUUsV0FBVztFQUNwQixXQUFXLEVBQUUsc0JBQXNCO0VBQ25DLFdBQVcsRUFBRSxNQUFNO0NBQ3BCOztBQUVELEFBQUEsS0FBSyxDQUFDLEVBQUUsQ0FBQztFQUNQLGFBQWEsRUFBRSxtQkFBbUI7Q0FDbkM7O0FBRUQsQUFBQSxLQUFLLENBQUMsRUFBRSxDQUFDO0VBQ1AsT0FBTyxFQUFFLFNBQVM7RUFDbEIsV0FBVyxFQUFFLGlCQUFpQjtDQUMvQjs7QUFFRCxBQUFBLEtBQUssQ0FBQyxDQUFDLENBQUM7RUFDTixNQUFNLEVBQUUsT0FBTztFQUNmLGVBQWUsRUFBRSxJQUFJO0NBQ3RCOztBQUVELEFBQUEsS0FBSyxDQUFDLENBQUMsQUFBQSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQUFBQSxRQUFRLENBQUM7RUFDNUIsS0FBSyxFQUFFLE9BQU87Q0FDZjs7QUFFRCxBQUFBLEtBQUssQ0FBQyxDQUFDLEFBQUEsTUFBTSxDQUFDO0VBQ1osS0FBSyxFQUFFLE9BQU87RUFDZCxlQUFlLEVBQUUsU0FBUztDQUMzQjs7QUFFRCxBQUFBLEtBQUssQ0FBQyxFQUFFLENBQUM7RUFDUCxNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDO0NBQ1g7O0FBR0QsQUFBQSxnQ0FBZ0MsQ0FBQztFQUMvQixPQUFPLEVBQUUsSUFBSTtDQUNkOztBQUdELEFBQUEsVUFBVSxDQUFDLENBQUMsQUFBQSxpQkFBaUIsQ0FBQztFQUM1QixNQUFNLEVBQUUsSUFBSTtFQUNaLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLEtBQUs7RUFDYixXQUFXLEVBQUUsSUFBSTtFQUNqQixRQUFRLEVBQUUsTUFBTTtFQUNoQixlQUFlLEVBQUUsSUFBSTtDQUN0Qjs7QUFFRCxBQUFBLENBQUMsQUFBQSxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7RUFDekIsVUFBVSxFQUFFLGdFQUFnRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRztFQUM5RixNQUFNLEVBQUUsSUFBSTtFQUNaLE1BQU0sRUFBRSxjQUFjO0VBQ3RCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLEtBQUssRUFBRSxJQUFJO0NBQ1o7O0FDakdELE1BQU0sQ0FBQyxLQUFLO0VBRVYsS0FBSztJQUNILElBQUksRUFBRSxJQUFJO0lBQ1YsTUFBTSxFQUFFLG1CQUFtQjs7RTlLQy9CLEFBQUEsSUFBSSxDOEtTRztJQUNILFNBQVMsRUFBRSxnQkFBZ0I7SUFDM0IsTUFBTSxFQUFFLEdBQUc7R0FDWjtFQUVELEFBQUEsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYjtFQUNOLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxPQUFPLEFBQVo7RUFDTixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssS0FBSyxBQUFWO0VBQ04sS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWCxFQUFhO0lBQ2pCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsTUFBTSxFQUFFLElBQUk7R0FDYjtFOUtWSCxBQUFBLElBQUksQzhLWUc7SUFDSCxNQUFNLEVBQUUsQ0FBQztHQUVWO0VBRUQsQUFBQSxnQkFBZ0IsQ0FBQztJQUNmLE9BQU8sRUFBRSxJQUFJO0dBQ2Q7RUFDRCxBQUFBLGFBQWEsQ0FBQztJQUNaLFNBQVMsRUFBRSxDQUFDO0dBQ2I7RUFDRCxBQUFBLGdCQUFnQixDQUFDO0lBQ2YsSUFBSSxFQUFFLENBQUM7R0FDUjtFQUNELEFBQUEsZ0JBQWdCLENBQUM7SUFDZixJQUFJLEVBQUUsQ0FBQztHQUNSO0VqQnJDSCxBQU9FLG1CQVBpQixBQU9oQixNQUFNLENpQmdDRztJQUNOLE9BQU8sRUFBRSxJQUFJO0dBRWQ7RWZuREwsQUFBQSw4QkFBOEIsQ2VzREc7SUFDN0IsZ0JBQWdCLEVBQUUsTUFBTTtHQUN6QjtFQUVELEFBQUEsd0JBQXdCLENBQUMsZUFBZTtFQUN4Qyx3QkFBd0IsQ0FBQyxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLEVBQWU7SUFDNUMsT0FBTyxFQUFFLElBQUk7R0FDZDtFZDdESCxBQWdNRSx3QkFoTXNCLENBZ010QixzQkFBc0I7RUFoTXhCLHdCQUF3QixDQWlNdEIsbUJBQW1CLENjNUgwQjtJQUMzQyxVQUFVLEVBQUUsSUFBSTtJQUNoQixhQUFhLEVBQUUsSUFBSTtHQUNwQjtFZHhFSCxBQW9MSSx3QkFwTG9CLENBMEt0QixvQkFBb0IsQ0FBQyxhQUFhLEdBQUcsWUFBWSxBQVU5QyxRQUFRO0VBcExiLHdCQUF3QixDQTJLdEIsZ0JBQWdCLENBQUMsYUFBYSxHQUFHLFlBQVksQUFTMUMsUUFBUTtFQXBMYix3QkFBd0IsQ0E0S3RCLDRCQUE0QixBQVF6QixRQUFRLENjMUd1TjtJQUNoTyxTQUFTLEVBQUUsTUFBTTtJQUNqQixLQUFLLEVBQUUsa0JBQWtCO0dBQzFCO0VkN0VILEFBdUNNLHdCQXZDa0IsQ0FxQ3RCLHVCQUF1QixDQUNyQixLQUFLLENBQUMsRUFBRSxDQUNOLEVBQUUsQ2N3Q3VEO0lBQzNELE9BQU8sRUFBRSxJQUFJO0dBQ2Q7RUZoQ0EsQUFBRCxhQUFTLENFa0NLO0lBQ1osS0FBSyxFQUFFLEtBQUs7R0FDYjtFQUVELEFBQUEsRUFBRSxDQUFDO0lBQ0QsaUJBQWlCLEVBQUUsS0FBSztHQUN6QjtFQU1ELEFBQUEsYUFBYTtFQUNiLE9BQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0dBQ2Q7RUFFRCxBQUFBLGNBQWMsQUFBQSxVQUFVLENBQUMsZ0JBQWdCLENBQUM7SUFDeEMsZ0JBQWdCLEVBQUUsa0JBQWtCO0lBQ3BDLEtBQUssRUFBRSxnQkFBZ0I7R0FDeEI7RUFFRCxBQUFBLGdCQUFnQixDQUFDO0lBQ2YsS0FBSyxFQUFFLGdCQUFnQjtJQUN2QixnQkFBZ0IsRUFBRSxrQkFBa0I7R0FDckM7RVIzR0gsQUFVSSxJQVZBLENBTUYsS0FBSyxDQUlILElBQUksQ1FvR1U7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0dBV2I7RUFiRCxBQUlFLElBSkUsQ0FBQyxLQUFLLENBQUMsSUFBSSxBQUlaLFFBQVEsQ0FBQztJQUNSLEdBQUcsRUFBRSxJQUFJO0lBQ1QsSUFBSSxFQUFFLEdBQUc7R0FDVjtFQVBILEFBU0UsSUFURSxDQUFDLEtBQUssQ0FBQyxJQUFJLEFBU1osT0FBTyxDQUFDO0lBQ1AsR0FBRyxFQUFFLElBQUk7SUFDVCxJQUFJLEVBQUUsR0FBRztHQUNWO0VSMUhMLEFBNERRLElBNURKLENBb0RGLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxVQUFVLEFBQWYsQ0FNSCxRQUFRLEdBQ0wsS0FBSyxDQUNMLElBQUksRUE1RFosSUFBSSxDQW9Ec0IsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixDQU0zQixRQUFRLEdBQ0wsS0FBSyxDQUNMLElBQUksQ1FtRWU7SUFDckIsZ0JBQWdCLEVBQUUsa0JBQWtCO0dBTXJDO0VBVEgsQUFLSSxJQUxBLENBQUMsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFVBQVUsQUFBZixDQUVSLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxBQUduQixNQUFNLEVBTFgsSUFBSSxDQUFDLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxVQUFVLEFBQWYsQ0FFUixRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQUFJbkIsT0FBTztFQUxaLElBQUksQ0FBQyxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssT0FBTyxBQUFaLENBQ1IsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLEFBR25CLE1BQU07RUFKWCxJQUFJLENBQUMsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixDQUNSLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxBQUluQixPQUFPLENBQUM7SUFDUCxVQUFVLEVBcklMLEtBQUssQ0FxSWMsVUFBVTtHQUNuQzs7O0FDdElQLEFBQUEsT0FBTyxFckJBUCxtQkFBbUIsQ0FDakIsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQSxHQWFSLGdCQUFnQixDQVNkLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsR0dnRVIseUJBQXlCLENBS3ZCLGNBQWMsRXlCekRYLHdCQUFRLENBQUMsQ0FBQyxFZ0RvQlosMEJBQWUsQ3ZEdkRWO0VBQ04sYUFBYSxFQUFFLEdBQUc7RUFDbEIsS0FBSyxFQUFFLEtBQUs7RUFDWixVQUFVLEVBQUUsTUFBTTtFQUNsQixPQUFPLEVBQUUsWUFBWTtFQUNyQixjQUFjLEVBQUUsS0FBSztFQUNyQixXQUFXLEVBQUUsS0FBSztFQUNsQixNQUFNLEVBQUUsT0FBTztFQUNmLE1BQU0sRUFBRSxJQUFJO0VBRVosVUFBVSxFblNOZ0IsT0FBTztFbVNPakMsS0FBSyxFblNHTyxLQUFLO0NtU3lIbEI7O0FBdklELEFBYUUsT0FiSyxBQWFKLE1BQU0sRXJCYlQsbUJBQW1CLENBQ2pCLEtBQUssQXFCWUosTUFBTSxDckJaRixBQUFBLElBQUMsQ0FBRCxNQUFDLEFBQUEsR0FhUixnQkFBZ0IsQ0FTZCxLQUFLLEFxQlZKLE1BQU0sQ3JCVUYsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLEdHZ0VSLHlCQUF5QixDQUt2QixjQUFjLEFrQi9FYixNQUFNLEVPc0JKLHdCQUFRLENBQUMsQ0FBQyxBUHRCWixNQUFNLEV1RDBDTiwwQkFBZSxBdkQxQ2YsTUFBTSxDQUFDO0VBQ04sZUFBZSxFQUFFLElBQUk7Q0FDdEI7O0FBRUEsQUFDQyxhQURLLENBQ0wsR0FBRyxDQUFDO0VBQ0YsY0FBYyxFQUFFLE1BQU07Q0FDdkI7O0FBRUEsQUFDQyxvQkFETSxDQUNOLEdBQUcsQ0FBQztFQUNGLGNBQWMsRUFBRSxNQUNsQjtDQUFDOztBQUtKLEFBQUQsZ0JBQVUsRXJCaEJaLGdCQUFnQixDQVNkLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsR3FCUUwsZUFBUSxFT0lOLHdCQUFRLENBQUMsQ0FBQyxDUEpIO0VBQ1IsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixLQUFLLEVuU3BCSyxLQUFLO0VBcUVqQixNQUFNLEVBQUUsT0FBTztFQUNmLGVBQWUsRUFBRSxJQUFJO0NtUzNDcEI7O0FBVkEsQUFLQyxnQkFMUSxBQUtQLE1BQU0sRXJCckJYLGdCQUFnQixDQVNkLEtBQUssQXFCVkosTUFBTSxDckJVRixBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsR3FCUUwsZUFBUSxBQUlOLE1BQU0sRU9BTix3QkFBUSxDQUFDLENBQUMsQVB0QlosTUFBTSxDQXNCRztFQUNOLEtBQUssRW5TdEJHLEtBQUs7Q21TdUJkOztBQVBGLEFuU3NERCxnQm1TdERVLEFuU3NEVCxLQUFLLEU4UXRFUixnQkFBZ0IsQ0FTZCxLQUFLLEE5UTZESixLQUFLLEM4UTdERCxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsR3FCT0wsZ0JBQVMsQW5Tc0RELFFBQVEsRThRdEVuQixnQkFBZ0IsQ0FTZCxLQUFLLEE5UTZESSxRQUFRLEM4UTdEWixBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsR3FCUUwsZUFBUSxBblNxRFIsS0FBSyxFMFNqREgsd0JBQVEsQ0FBQyxDQUFDLEExU2lEWixLQUFLLEVtU3JETCxlQUFRLEFuU3FEQSxRQUFRLEUwU2pEZCx3QkFBUSxDQUFDLENBQUMsQTFTaURKLFFBQVEsQ0FBQTtFQUNmLEtBQUssRUF4RUssS0FBSztDQXlFaEI7O0FtU3hEQSxBQUtDLGdCQUxRLEFBS1AsTUFBTSxFckJyQlgsZ0JBQWdCLENBU2QsS0FBSyxBcUJWSixNQUFNLENyQlVGLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixHcUJRTCxlQUFRLEFBSU4sTUFBTSxFT0FOLHdCQUFRLENBQUMsQ0FBQyxBUHRCWixNQUFNLENuUzBFQTtFQUNMLEtBQUssRUExRUssS0FBSztDQTJFaEI7O0FtUy9DQSxBQUFELG1CQUFhLENBQUM7RUFDWixNQUFNLEVBQUUsQ0FBQztFQUNULEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLEtBQUs7Q0FDZjs7QUFFQSxBQUFELHlCQUFtQixDQUFDO0VBQ2xCLFVBQVUsRW5TRUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsSUFBRyxDQUFDLGtCQUFrQjtDbVNEakQ7O0FBRUEsQUFBRCxjQUFRLENBQUM7RUFDUCxLQUFLLEVBQUUsS0FBSztDQUNiOztBQUVBLEFBQUQsY0FBUSxDQUFDO0VBQ1AsS0FBSyxFQUFFLEtBQUs7Q0FDYjs7QUFFQSxBQUFELGVBQVMsQ0FBQztFQUNSLE9BQU8sRUFBRSxNQUFNO0VBQ2YsS0FBSyxFQUFFLElBQUk7Q0FDWjs7QUFFQSxBQUFELGFBQU8sQ0FBQztFQUNOLGdCQUFnQixFQUFFLFlBQVk7Q0FDL0I7O0FBRUEsQUFBRCxjQUFRLENBQUM7RUFDUCxnQkFBZ0IsRUFBRSxLQUFLO0NBQ3hCOztBQUVBLEFBQUQsb0JBQWMsRXJCekVoQixtQkFBbUIsQ0FDakIsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQSxHNEVzREwsMEJBQWUsQ3ZEa0JEO0VBQ2IsVUFBVSxFQUFFLFdBQVc7Q0FDeEI7O0FBRUEsQUFBRCxzQkFBZ0IsRXJCN0VsQixtQkFBbUIsQ0FDakIsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQSxHNEVzREwsMEJBQWUsQ3ZEc0JDO0VBQ2YsTUFBTSxFQUFFLGlCQUFpQjtDQUsxQjs7QUFIRSxBQUFELDRCQUFPLENBQUM7RUFDTixNQUFNLEVBQUUsaUJBQWlCO0NBQzFCOztBQUdGLEFBQUQscUJBQWUsQ0FBQztFQUNkLE1BQU0sRUFBRSxlQUFlO0NBQ3hCOztBQUVBLEFBQUQsY0FBUSxDQUFDO0VBQ1AsYUFBYSxFQUFFLElBQUk7Q0FDcEI7O0FBRUEsQUFBRCxpQkFBVyxFckI3RmIsbUJBQW1CLENBQ2pCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxNQUFDLEFBQUEsRzRFc0RMLDBCQUFlLEN2RHNDSjtFQUNWLFVBQVUsRUFBRSwyQkFBMkI7Q0FheEM7O0FBWEUsQUFDQyx5QkFETyxBQUNOLE1BQU0sRXJCakdiLG1CQUFtQixDQUNqQixLQUFLLEFxQllKLE1BQU0sQ3JCWkYsQUFBQSxJQUFDLENBQUQsTUFBQyxBQUFBLEc0RXNETCwwQkFBZSxBdkQxQ2YsTUFBTSxDQW9GSztFQUNOLGdCQUFnQixFQUFFLHVCQUF1QjtDQUMxQzs7QUFHRixBQUNDLHdCQURNLEFBQ0wsTUFBTSxDQUFDO0VBQ04sZ0JBQWdCLEVBQUUsa0JBQWtCO0NBQ3JDOztBQUlKLEFBQ0MsMkJBRG1CLEFBQ2xCLE1BQU0sRU8zRU4sd0JBQVEsQ0FBQyxDQUFDLEFQdEJaLE1BQU0sQ0FpR0c7RUFDTixLQUFLLEVuUzlHUyxPQUFPO0VtUytHckIsZ0JBQWdCLEVuUzNHSCxPQUFPO0NtUzRHckI7O0FBR0YsQUFBRCxlQUFTLENBQUM7RUFDUixLQUFLLEVuU3ZHSyxLQUFLO0VtU3dHZixnQkFBZ0IsRW5TbEdILE9BQU87RUE4RHRCLE1BQU0sRUFBRSxPQUFPO0VBQ2YsZUFBZSxFQUFFLElBQUk7Q21TcUNwQjs7QUFKQSxBblNoQ0QsZW1TZ0NTLEFuU2hDUixLQUFLLEVtU2dDTCxlQUFRLEFuU2hDQSxRQUFRLENBQUE7RUFDZixLQUFLLEVBdkVLLEtBQUs7Q0F3RWhCOztBbVM4QkEsQW5TN0JELGVtUzZCUyxBblM3QlIsTUFBTSxDQUFBO0VBQ0wsS0FBSyxFQTFFSyxLQUFLO0NBMkVoQjs7QW1Ta0NBLEFBQUQsYUFBTyxFbEJwQ1QseUJBQXlCLENBS3ZCLGNBQWMsQ2tCK0JOO0VBQ04sVUFBVSxFblN4SGMsT0FBTyxDbVN3SFEsVUFBVTtFQUNqRCxLQUFLLEVuUy9HSyxLQUFLLENtUytHSyxVQUFVO0VBQzlCLFFBQVEsRUFBRSxRQUFRO0VBRWxCLE9BQU8sRUFBRSxDQUFDO0NBQ1g7O0FBU0gsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VBMUl4QixBQUFBLE9BQU8sRXJCQVAsbUJBQW1CLENBQ2pCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxNQUFDLEFBQUEsR0FhUixnQkFBZ0IsQ0FTZCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLEdHZ0VSLHlCQUF5QixDQUt2QixjQUFjLEV5QnpEWCx3QkFBUSxDQUFDLENBQUMsRWdEb0JaLDBCQUFlLEN2RG9GUjtJQUNOLEtBQUssRUFBRSxJQUFJO0dBQ1o7OztBQzdJSDs7O0dBR0c7QUFDSDs7R0FFRztBQUNILEFBQUEsR0FBRyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsR0FBRyxLQUFLO0FBQzFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEdBQUcsQ0FBQztBQUN0QyxHQUFHLENBQUMsV0FBVyxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQztFQUMxQyxLQUFLLEVBQUUsT0FBTztFQUNkLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLE9BQU8sRUFBRSxDQUFDO0VBQ1YsTUFBTSxFQUFFLENBQUM7RUFDVCxXQUFXLEVBQUUsR0FBRztFQUNoQixXQUFXLEVBQUUsTUFBTTtFQUNuQixzQkFBc0IsRUFBRSxXQUFXO0VBQ25DLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFNBQVM7Q0FDVjs7Q0FFRCxBQUFBLEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxDQUFVLEdBQUcsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEdBQUcsS0FBSztDQUNyRCxBQUFBLEdBQUMsQ0FBSSxLQUFLLEFBQVQsQ0FBVSxHQUFHLENBQUMsV0FBVyxDQUFDLGtCQUFrQixHQUFHLENBQUM7Q0FDakQsQUFBQSxHQUFDLENBQUksS0FBSyxBQUFULENBQVUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7RUFDckQsVUFBVSxFQUFFLEtBQUs7RUFDakIsV0FBVyxFQUFFLENBQUM7RUFDZCxxSEFBcUg7Q0FDdEg7O0FBRUQsQUFBQSxHQUFHLENBQUMsa0JBQWtCLEFBQUEsS0FBSyxDQUFDO0VBQzFCLGFBQWEsRUFBRSxTQUFTO0VBQ3hCLFNBQVM7Q0FDVjs7Q0FFRCxBQUFBLEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxFQUFXLEdBQUcsQ0FBQyxrQkFBa0IsQUFBQSxLQUFLLENBQUM7RUFDdEMsYUFBYSxFQUFFLFNBQVM7Q0FDekI7O0FBRUQ7O0dBRUc7QUFDSCxBQUFBLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQTlCLEdBQUcsQ0FBQyxrQkFBa0IsQ3RCekN0QixtQkFBbUIsQ0FDakIsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQSxHQURSLG1CQUFtQixDc0J5Q25CLEdBQUcsQ0FBQyxrQkFBa0IsQ3RCeENwQixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsTUFBQyxBQUFBLEdzQndDUixHQUFHLENBQUMsa0JBQWtCLEN0QjNCdEIsZ0JBQWdCLENBU2QsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixHQVRSLGdCQUFnQixDc0IyQmhCLEdBQUcsQ0FBQyxrQkFBa0IsQ3RCbEJwQixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLEdzQmtCUixHQUFHLENBQUMsa0JBQWtCLENuQjhDdEIseUJBQXlCLENBS3ZCLGNBQWMsRUFMaEIseUJBQXlCLENtQjlDekIsR0FBRyxDQUFDLGtCQUFrQixDbkJtRHBCLGNBQWMsRW1CbkRoQixHQUFHLENBQUMsa0JBQWtCLENNTmpCLHdCQUFRLENBQUMsQ0FBQyxFQUFWLHdCQUFRLENOTWIsR0FBRyxDQUFDLGtCQUFrQixDTU5SLENBQUMsRU5NZixHQUFHLENBQUMsa0JBQWtCLENzRGNuQiwwQkFBZSxDdERkYTtFQUM3QixVQUFVLEVBQUUsV0FBVztFQUN2QixNQUFNLEVBQUUsQ0FBQztFQUNULGFBQWEsRUFBRSxDQUFDO0VBQ2hCLFVBQVUsRUFBRSxJQUFJO0NBQ2pCOztBQUVELEFBQUEsR0FBRyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQztFQUNuQyxZQUFZLEVBQUUsQ0FBQztFQUNmLFNBQVM7Q0FDVjs7Q0FFRCxBQUFBLEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxDQUFVLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUM7RUFDOUMsV0FBVyxFQUFFLENBQUM7Q0FDZjs7QUFFRDs7R0FFRztBQUNILEFBQUEsR0FBRyxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDO0VBQzFDLE1BQU0sRUFBRSxpQkFBaUI7RUFDekIsYUFBYSxFQUFFLElBQUk7RUFDbkIsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixnQkFBZ0IsRUFBRSw4Q0FBOEM7RUFDaEUsZ0JBQWdCLEVBQUUsNENBQTRDO0VBQzlELFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLHdCQUF3QjtDQUM1Qzs7QUFFRCxBQUFBLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztFQUMzQyxhQUFhLEVBQUUsR0FBRztDQUNuQjs7QUFFRCxBQUFBLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzNDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLO0FBQy9DLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7RUFDL0MsYUFBYSxFQUFFLGFBQWE7RUFDNUIsU0FBUztFQUNULE9BQU8sRUFBRSxTQUFTO0VBQ2xCLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLElBQUk7Q0FDWjs7Q0FFRCxBQUFBLEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxDQUFVLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0NBQ3RELEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxDQUFVLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLO0NBQzFELEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxDQUFVLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7RUFDMUQsYUFBYSxFQUFFLGFBQWE7Q0FDN0I7O0FBRUQsQUFBQSxHQUFHLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxBQUFBLE1BQU07QUFDakQsR0FBRyxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLEtBQUssQUFBQSxNQUFNO0FBQ3JELEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEFBQUEsTUFBTSxDQUFDO0VBQ3JELGVBQWUsRUFBRSxTQUFTO0NBQzNCOztBQUVELEFBQUEsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ2xELEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBTztBQUF4RCxHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixDdEJoR2hELG1CQUFtQixDQUNqQixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsTUFBQyxBQUFBO0FBRFIsbUJBQW1CLENzQmdHbkIsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQ3RCL0Y5QyxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsTUFBQyxBQUFBO0FzQitGUixHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixDdEJsRmhELGdCQUFnQixDQVNkLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWI7QUFUUixnQkFBZ0IsQ3NCa0ZoQixHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixDdEJ6RTlDLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWI7QXNCeUVSLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLENuQlRoRCx5QkFBeUIsQ0FLdkIsY0FBYztBQUxoQix5QkFBeUIsQ21CU3pCLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLENuQko5QyxjQUFjO0FtQkloQixHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixDTTdEM0Msd0JBQVEsQ0FBQyxDQUFDO0FBQVYsd0JBQVEsQ042RGIsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQ003RGxDLENBQUM7QU42RGYsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQ3NEekM3QywwQkFBZSxDdER5Q3VDO0VBQ3ZELGFBQWEsRUFBRSxDQUFDO0NBQ2pCOztBQUVELEFBQUEsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxZQUFZLENBQUMsQ0FBQztBQUM5RCxHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixBQUFBLFlBQVksQ0FBQyxPQUFPO0FBQXBFLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsWUFBWSxDdEJyRzVELG1CQUFtQixDQUNqQixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsTUFBQyxBQUFBO0FBRFIsbUJBQW1CLENzQnFHbkIsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxZQUFZLEN0QnBHMUQsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQTtBc0JvR1IsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxZQUFZLEN0QnZGNUQsZ0JBQWdCLENBU2QsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYjtBQVRSLGdCQUFnQixDc0J1RmhCLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsWUFBWSxDdEI5RTFELEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWI7QXNCOEVSLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsWUFBWSxDbkJkNUQseUJBQXlCLENBS3ZCLGNBQWM7QUFMaEIseUJBQXlCLENtQmN6QixHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixBQUFBLFlBQVksQ25CVDFELGNBQWM7QW1CU2hCLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsWUFBWSxDTWxFdkQsd0JBQVEsQ0FBQyxDQUFDO0FBQVYsd0JBQVEsQ05rRWIsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxZQUFZLENNbEU5QyxDQUFDO0FOa0VmLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsWUFBWSxDc0Q5Q3pELDBCQUFlLEN0RDhDbUQ7RUFDbkUsYUFBYSxFQUFFLFdBQVc7RUFDMUIsU0FBUztDQUNWOztDQUVELEFBQUEsQUFBQSxHQUFDLENBQUksS0FBSyxBQUFULENBQVUsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxZQUFZLENBQUMsQ0FBQztDQUN6RSxBQUFBLEdBQUMsQ0FBSSxLQUFLLEFBQVQsQ0FBVSxHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixBQUFBLFlBQVksQ0FBQyxPQUFPO0NBQS9FLEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxDQUFVLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsWUFBWSxDdEIzR3ZFLG1CQUFtQixDQUNqQixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsTUFBQyxBQUFBO0FBRFIsbUJBQW1CLEVzQjJHbkIsQUFBQSxHQUFDLENBQUksS0FBSyxBQUFULENBQVUsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxZQUFZLEN0QjFHckUsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQTtDc0IwR1IsQUFBQSxHQUFDLENBQUksS0FBSyxBQUFULENBQVUsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxZQUFZLEN0QjdGdkUsZ0JBQWdCLENBU2QsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYjtBQVRSLGdCQUFnQixFc0I2RmhCLEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxDQUFVLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsWUFBWSxDdEJwRnJFLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWI7Q3NCb0ZSLEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxDQUFVLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsWUFBWSxDbkJwQnZFLHlCQUF5QixDQUt2QixjQUFjO0FBTGhCLHlCQUF5QixFbUJvQnpCLEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxDQUFVLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsWUFBWSxDbkJmckUsY0FBYztDbUJlaEIsQUFBQSxHQUFDLENBQUksS0FBSyxBQUFULENBQVUsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxZQUFZLENNeEVsRSx3QkFBUSxDQUFDLENBQUM7QUFBVix3QkFBUSxFTndFYixBQUFBLEdBQUMsQ0FBSSxLQUFLLEFBQVQsQ0FBVSxHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixBQUFBLFlBQVksQ014RXpELENBQUM7Q053RWYsQUFBQSxHQUFDLENBQUksS0FBSyxBQUFULENBQVUsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxZQUFZLENzRHBEcEUsMEJBQWUsQ3REb0Q4RDtFQUM5RSxhQUFhLEVBQUUsV0FBVztDQUMzQjs7QUFFRCxBQUFBLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsV0FBVyxDQUFDLENBQUM7QUFDN0QsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxXQUFXLENBQUMsT0FBTztBQUFuRSxHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixBQUFBLFdBQVcsQ3RCaEgzRCxtQkFBbUIsQ0FDakIsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQTtBQURSLG1CQUFtQixDc0JnSG5CLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsV0FBVyxDdEIvR3pELEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxNQUFDLEFBQUE7QXNCK0dSLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsV0FBVyxDdEJsRzNELGdCQUFnQixDQVNkLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWI7QUFUUixnQkFBZ0IsQ3NCa0doQixHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixBQUFBLFdBQVcsQ3RCekZ6RCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiO0FzQnlGUixHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixBQUFBLFdBQVcsQ25CekIzRCx5QkFBeUIsQ0FLdkIsY0FBYztBQUxoQix5QkFBeUIsQ21CeUJ6QixHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixBQUFBLFdBQVcsQ25CcEJ6RCxjQUFjO0FtQm9CaEIsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxXQUFXLENNN0V0RCx3QkFBUSxDQUFDLENBQUM7QUFBVix3QkFBUSxDTjZFYixHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixBQUFBLFdBQVcsQ003RTdDLENBQUM7QU42RWYsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxXQUFXLENzRHpEeEQsMEJBQWUsQ3REeURrRDtFQUNsRSxhQUFhLEVBQUUsV0FBVztFQUMxQixTQUFTO0NBQ1Y7O0NBRUQsQUFBQSxBQUFBLEdBQUMsQ0FBSSxLQUFLLEFBQVQsQ0FBVSxHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixBQUFBLFdBQVcsQ0FBQyxDQUFDO0NBQ3hFLEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxDQUFVLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsV0FBVyxDQUFDLE9BQU87Q0FBOUUsQUFBQSxHQUFDLENBQUksS0FBSyxBQUFULENBQVUsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxXQUFXLEN0QnRIdEUsbUJBQW1CLENBQ2pCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxNQUFDLEFBQUE7QUFEUixtQkFBbUIsRXNCc0huQixBQUFBLEdBQUMsQ0FBSSxLQUFLLEFBQVQsQ0FBVSxHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixBQUFBLFdBQVcsQ3RCckhwRSxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsTUFBQyxBQUFBO0NzQnFIUixBQUFBLEdBQUMsQ0FBSSxLQUFLLEFBQVQsQ0FBVSxHQUFHLENBQUMsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixBQUFBLFdBQVcsQ3RCeEd0RSxnQkFBZ0IsQ0FTZCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiO0FBVFIsZ0JBQWdCLEVzQndHaEIsQUFBQSxHQUFDLENBQUksS0FBSyxBQUFULENBQVUsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxXQUFXLEN0Qi9GcEUsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYjtDc0IrRlIsQUFBQSxHQUFDLENBQUksS0FBSyxBQUFULENBQVUsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxXQUFXLENuQi9CdEUseUJBQXlCLENBS3ZCLGNBQWM7QUFMaEIseUJBQXlCLEVtQitCekIsQUFBQSxHQUFDLENBQUksS0FBSyxBQUFULENBQVUsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxXQUFXLENuQjFCcEUsY0FBYztDbUIwQmhCLEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxDQUFVLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsV0FBVyxDTW5GakUsd0JBQVEsQ0FBQyxDQUFDO0FBQVYsd0JBQVEsRU5tRmIsQUFBQSxHQUFDLENBQUksS0FBSyxBQUFULENBQVUsR0FBRyxDQUFDLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxrQkFBa0IsQUFBQSxXQUFXLENNbkZ4RCxDQUFDO0NObUZmLEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxDQUFVLEdBQUcsQ0FBQyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLEFBQUEsV0FBVyxDc0QvRG5FLDBCQUFlLEN0RCtENkQ7RUFDN0UsYUFBYSxFQUFFLFdBQVc7Q0FDM0I7O0FBRUQsQUFBQSxHQUFHLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxBQUFBLE1BQU07QUFDckUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQUFBQSxNQUFNO0FBQzFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEFBQUEsTUFBTTtBQUN6RSxHQUFHLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxBQUFBLE1BQU07QUFDckUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQUFBQSxNQUFNO0FBQzFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEFBQUEsTUFBTSxDQUFDO0VBQ3hFLGdCQUFnQixFQUFFLE9BQU87RUFDekIsZ0JBQWdCLEVBQUUsOENBQThDO0VBQ2hFLGdCQUFnQixFQUFFLDRDQUE0QztFQUM5RCxLQUFLLEVBQUUsT0FBTztFQUNkLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0I7RUFDMUMsT0FBTyxFQUFFLENBQUM7Q0FDWDs7QUFFRCxBQUFBLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEFBQUEsT0FBTztBQUN0RSxHQUFHLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsS0FBSyxBQUFBLE9BQU87QUFDMUUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQUFBQSxPQUFPLENBQUM7RUFDMUUsZUFBZSxFQUFFLElBQUk7RUFDckIsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixnQkFBZ0IsRUFBRSw4Q0FBOEM7RUFDaEUsZ0JBQWdCLEVBQUUsNENBQTRDO0VBQzlELFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsa0JBQWtCO0NBQy9DOztBQUVELEFBQUEsV0FBVyxDQUFDLGlCQUFpQixDQUFDO0VBQzVCLFVBQVUsRUFBRSxpQkFBaUI7Q0FDOUI7O0FBRUQ7OztHQUdHO0FBQ0gsQUFBQSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQztFQUNwQyxNQUFNLEVBQUUsQ0FBQztFQUNULFFBQVEsRUFBRSxNQUFNO0VBQ2hCLE9BQU8sRUFBRSxZQUFZO0NBQ3RCOztBQUVELEFBQUEsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0VBQ3RDLE9BQU8sRUFBRSxTQUFTO0VBQ2xCLE1BQU0sRUFBRSxpQkFBaUI7RUFDekIsYUFBYSxFQUFFLGVBQWU7RUFDOUIsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixnQkFBZ0IsRUFBRSw4Q0FBOEM7RUFDaEUsZ0JBQWdCLEVBQUUsNENBQTRDO0VBQzlELEtBQUssRUFBRSxPQUFPO0VBQ2QsZUFBZSxFQUFFLElBQUk7RUFDckIsV0FBVyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCO0VBQzNDLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLGtCQUFrQixFQUFFLFFBQVE7RUFDNUIsVUFBVSxFQUFFLFFBQVE7RUFDcEIsc0JBQXNCLEVBQUUsV0FBVztFQUNuQyxLQUFLLEVBQUUsZUFBZTtDQUN2Qjs7QUFFRCxBQUFBLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLENBQUMsQUFBQSxNQUFNO0FBQzdDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLENBQUMsQUFBQSxNQUFNLENBQUM7RUFDNUMsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixnQkFBZ0IsRUFBRSw4Q0FBOEM7RUFDaEUsZ0JBQWdCLEVBQUUsNENBQTRDO0VBQzlELEtBQUssRUFBRSxPQUFPO0VBQ2QsZUFBZSxFQUFFLElBQUk7RUFDckIsT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUFSRCxBQUFBLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLENBQUMsQUFBQSxNQUFNO0FBQzdDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLENBQUMsQUFBQSxNQUFNLENBVUM7RUFDNUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLG9CQUFvQjtDQUMzQzs7QUFFRCxBQUFBLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLENBQUMsQUFBQSxPQUFPLENBQUM7RUFDN0MsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixnQkFBZ0IsRUFBRSw4Q0FBOEM7RUFDaEUsZ0JBQWdCLEVBQUUsNENBQTRDO0VBQzlELFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsa0JBQWtCO0VBQzlDLGtCQUFrQixFQUFFLElBQUk7RUFDeEIsVUFBVSxFQUFFLElBQUk7Q0FDakI7O0FBRUQ7O0dBRUc7QUFDSCxBQUFBLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7RUFDbkUsV0FBVyxFQUFFLGlCQUFpQjtFQUM5QixTQUFTO0VBQ1QsT0FBTyxFQUFFLElBQUk7Q0FDZDs7Q0FFRCxBQUFBLEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxDQUFVLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7RUFDOUUsWUFBWSxFQUFFLGlCQUFpQjtFQUMvQixXQUFXLEVBQUUsQ0FBQztDQUNmOztBQVRELEFBQUEsR0FBRyxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FXQztFQUNuRSxhQUFhLEVBQUUsYUFBYTtFQUM1QixTQUFTO0NBQ1Y7O0NBUkQsQUFBQSxBQUFBLEdBQUMsQ0FBSSxLQUFLLEFBQVQsQ0FBVSxHQUFHLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQVVDO0VBQzlFLGFBQWEsRUFBRSxhQUFhO0NBQzdCOztBQUVELEFBQUEsb0JBQW9CLEFBQUEsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztFQUNyRSxhQUFhLEVBQUUsV0FBVztFQUMxQixTQUFTO0NBQ1Y7O0NBRUQsQUFBQSxBQUFBLEdBQUMsQ0FBSSxLQUFLLEFBQVQsRUFBVyxvQkFBb0IsQUFBQSxLQUFLLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO0VBQ2pGLGFBQWEsRUFBRSxXQUFXO0NBQzNCOztBQUVELEFBQUEsR0FBRyxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQUFBQSxNQUFNO0FBQzFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEFBQUEsTUFBTSxDQUFDO0VBQ3pFLGdCQUFnQixFQUFFLE9BQU87RUFDekIsZ0JBQWdCLEVBQUUsOENBQThDO0VBQ2hFLGdCQUFnQixFQUFFLDRDQUE0QztFQUM5RCxLQUFLLEVBQUUsT0FBTztFQUNkLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0I7RUFDMUMsT0FBTyxFQUFFLENBQUM7Q0FDWDs7QUFFRCxBQUFBLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEFBQUEsT0FBTyxDQUFDO0VBQzFFLGdCQUFnQixFQUFFLE9BQU87RUFDekIsZ0JBQWdCLEVBQUUsOENBQThDO0VBQ2hFLGdCQUFnQixFQUFFLDRDQUE0QztFQUM5RCxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGtCQUFrQjtDQUMvQzs7QUFFRCxBQUFBLGlCQUFpQixDQUFDO0VBQ2hCLGdCQUFnQixFQUFFLElBQUk7RUFDdEIsS0FBSyxFQUFFLEdBQUc7RUFDVixTQUFTO0VBQ1QsR0FBRyxFQUFFLEdBQUc7Q0FDVDs7Q0FFRCxBQUFBLEFBQUEsR0FBQyxDQUFJLEtBQUssQUFBVCxFQUFXLGlCQUFpQixDQUFDO0VBQzVCLElBQUksRUFBRSxHQUFHO0VBQ1QsS0FBSyxFQUFFLElBQUk7Q0FDWjs7QUFFRCxBQUFBLG9CQUFvQixBQUFBLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztFQUMxQyxhQUFhLEVBQUUsbUJBQW1CO0VBQ2xDLGdCQUFnQixFQUFFLFdBQVc7RUFDN0IsR0FBRyxFQUFFLFFBQVE7Q0FDZDs7QUFFRCxBQUFBLEdBQUcsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUM7RUFDMUIsYUFBYSxFQUFFLElBQUk7RUFDbkIsWUFBWSxFQUFFLFlBQVk7RUFDMUIsU0FBUyxFQUFFLElBQUk7Q0FDaEI7O0FDaFJFLEFBQUQsbUJBQWUsQUFBQSxNQUFNLEVjOEVwQixtQkFBTyxDQUFDLENBQUMsQWQ5RUssTUFBTSxFaUM4RXBCLFdBQU0sQ0FZTCxPQUFPLEdBR0gsR0FBRyxDQUdILENBQUMsQWpDaEdRLE1BQU0sRW1ENENwQixzQkFBZ0IsQ0FPZixFQUFFLENBWUEsQ0FBQyxBbkQvRFUsTUFBTSxFbURzRXBCLGdCQUFVLENBRVQsYUFBYSxHQUVQLEdBQUcsQUFBQSxZQUFZLENBQUMsQ0FBQyxBbkQxRVYsTUFBTSxFbURzRXBCLGdCQUFVLENBRVQsYUFBYSxHQUtQLEdBQUcsQUFBQSxXQUFXLENBQUMsQ0FBQyxBbkQ3RVQsTUFBTSxDQUFDO0VBQ3BCLEtBQUssRXJTRFcsT0FBTztDcVNFeEI7O0FBRUEsQUFBRCxrQkFBYyxBQUFBLE1BQU0sQ0FBQztFQUNuQixLQUFLLEVyU0RVLE9BQU87Q3FTRXZCOztBQUVBLEFBQUQsaUJBQWEsQUFBQSxNQUFNLENBQUM7RUFDbEIsS0FBSyxFclNQUyxPQUFPO0NxU1F0Qjs7QUFFQSxBQUFELGlCQUFhLEFBQUEsTUFBTSxDQUFDO0VBQ2xCLEtBQUssRUFBRSxPQUFPO0NBQ2Y7O0FBRUEsQUFBRCxrQkFBYyxDQUFDO0VBQ2IsTUFBTSxFQUFFLGtCQUFrQjtDQUMzQjs7QUFFQSxBQUFELGFBQVMsQ0FBQztFQUNSLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDclNyQlIsT0FBTztFcVNzQnZCLE9BQU8sRUFBRSxLQUFLO0NBQ2Y7O0FqTGdFSCxBQUFBLENBQUMsQ2lMNURDO0VBQ0EsS0FBSyxFQUFFLElBQUk7Q0FNWjs7QUFQRCxBQUdFLENBSEQsQUFHRSxNQUFNLENBQUM7RUFDTixlQUFlLEVBQUUsSUFBSTtFQUNyQixLQUFLLEVyU2hDVyxPQUFPO0NxU2lDeEI7O0FBSUgsQUFBQSxrQkFBa0IsQ0FBQztFQWNqQixNQUFNLEVBQUUsTUFBTTtDQUNmOztBQWZELEFBRUUsa0JBRmdCLENBRWhCLElBQUksQ0FBQztFQUNILFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQUpILEFBTUUsa0JBTmdCLENBTWhCLEdBQUcsQ0FBQztFQUNGLFlBQVksRUFBRSxJQUFJO0NBQ25COztBQVJILEFBVUUsa0JBVmdCLEFBVWYsTUFBTSxDQUFDO0VBQ04sVUFBVSxFQUFFLEtBQUs7Q0FDbEI7O0FDbERILEFBQUEsVUFBVSxDQUFDO0VBQ1QsYUFBYSxFQUFFLElBQUk7Q0FpQnBCOztBQWZFLEFBQUQsaUJBQVEsQ0FBQztFQUNQLEtBQUssRXRTU0ssS0FBSztFc1NSZixXQUFXLEV0UzJCSSxlQUFlO0NzUzFCL0I7O0FBRUEsQUFBRCxpQkFBUSxHQUFHLENBQUMsQ0FBQztFQUNYLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFdFNQUyxPQUFPO0VzU1FyQixhQUFhLEVBQUUsR0FBRztDQU1uQjs7QUFUQSxBQUtDLGlCQUxNLEdBQUcsQ0FBQyxBQUtULE1BQU0sQ0FBQztFQUNOLEtBQUssRXRTYlMsT0FBTztFc1NjckIsZUFBZSxFQUFFLFNBQVM7Q0FDM0I7O0FBT0wsQUFFRSxFQUZBLEFBQUEsZUFBZSxFQUFqQixFQUFFLEFBQUEsZUFBZSxDQUVaLEVBQUUsQ0FBQztFQUNKLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUM7RUFDVixlQUFlLEVBQUUsSUFBSTtDQUN0Qjs7QUFOSCxBQVFFLEVBUkEsQUFBQSxlQUFlLENBUWYsRUFBRSxDQUFDO0VBQ0QsUUFBUSxFQUFFLFFBQVE7RUFDbEIsV0FBVyxFQUFFLElBQUk7Q0FhbEI7O0FBdkJILEFBWUksRUFaRixBQUFBLGVBQWUsQ0FRZixFQUFFLEFBSUMsUUFBUSxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxPQUFPLEVBQUUsS0FBSztFQUNkLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxNQUFNLEVBQUUsQ0FBQztFQUNULEtBQUssRUFBRSxDQUFDO0VBRVIsV0FBVyxFQUFFLGNBQWM7Q0FDNUI7O0FBdEJMLEFBMEJFLEVBMUJBLEFBQUEsZUFBZSxDQTBCZixFQUFFLENBQUM7RUFDRCxRQUFRLEVBQUUsUUFBUTtFQUNsQixNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxRQUFRO0VBRWpCLEtBQUssRUFBRSxJQUFJO0VBQ1gsZUFBZSxFQUFFLElBQUk7RUFDckIsY0FBYyxFQUFFLFNBQVM7RUFDekIsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsTUFBTTtFQUNuQixXQUFXLEVBQUUsSUFBSTtDQXFDbEI7O0FBekVILEFBdUNJLEVBdkNGLEFBQUEsZUFBZSxDQTBCZixFQUFFLEFBYUMsUUFBUSxDQUFDO0VBQ1IsT0FBTyxFQUFFLEVBQUU7RUFDWCxPQUFPLEVBQUUsS0FBSztFQUNkLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxJQUFJO0VBQ1QsSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsR0FBRztFQUNWLE1BQU0sRUFBRSxDQUFDO0VBRVQsVUFBVSxFQUFFLGNBQWM7Q0FDM0I7O0FBakRMLEFBbURJLEVBbkRGLEFBQUEsZUFBZSxDQTBCZixFQUFFLEFBeUJDLFdBQVcsQUFBQSxRQUFRLENBQUM7RUFDbkIsR0FBRyxFQUFFLElBQUk7RUFDVCxNQUFNLEVBQUUsQ0FBQztFQUNULE1BQU0sRUFBRSxJQUFJO0VBRVosVUFBVSxFQUFFLE9BQU87Q0FDcEI7O0FBekRMLEFBMkRJLEVBM0RGLEFBQUEsZUFBZSxDQTBCZixFQUFFLENBaUNBLENBQUMsQ0FBQztFQUNBLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFBRSxJQUFJO0VBQ1gsZUFBZSxFQUFFLElBQUk7RUFDckIsY0FBYyxFQUFFLFNBQVM7RUFDekIsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsSUFBSTtFQUNqQixXQUFXLEVBQUUsSUFBSTtDQU1sQjs7QUF4RUwsQUFvRU0sRUFwRUosQUFBQSxlQUFlLENBMEJmLEVBQUUsQ0FpQ0EsQ0FBQyxBQVNFLE1BQU07QUFwRWIsRUFBRSxBQUFBLGVBQWUsQ0EwQmYsRUFBRSxDQWlDQSxDQUFDLEFBVUUsTUFBTSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0VBQ2hCLEtBQUssRUFBRSxzQkFBc0I7Q0FDOUI7O0FBU1AsQUFBQSxhQUFhLENBQUM7RUFDWixPQUFPLEVBQUUsWUFBWTtFQUNyQixZQUFZLEVBQUUsR0FBRztDQUNsQjs7QUFFRCxBQUFBLEVBQUUsQUFBQSxZQUFZLENBQUM7RUFDYixlQUFlLEVBQUUsSUFBSTtFQUNyQixNQUFNLEVBQUUsTUFBTTtFQUNkLE9BQU8sRUFBRSxDQUFDO0VBQ1YsVUFBVSxFQUFFLEtBQUs7RUFDakIsVUFBVSxFQUFFLElBQUk7Q0E2Q2pCOztBQWxERCxBQVFFLEVBUkEsQUFBQSxZQUFZLENBUVosRUFBRSxDQUFDO0VBQ0QsYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQWxCTSxPQUFPO0VBbUJ2QixPQUFPLEVBQUUsV0FBVztFQUNwQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsbUJBQW1CO0VBTXpDLE9BQU8sRUFBRSxJQUFJO0VBQ2IsV0FBVyxFQUFFLE1BQU07Q0E4QnBCOztBQWpESCxBQWNJLEVBZEYsQUFBQSxZQUFZLENBUVosRUFBRSxBQU1DLFVBQVcsQ0FBQSxJQUFJLEVBQUU7RUFDaEIsVUFBVSxFQXRCSSxPQUFPO0NBdUJ0Qjs7QUFoQkwsQUFxQkksRUFyQkYsQUFBQSxZQUFZLENBUVosRUFBRSxDQWFBLEdBQUcsQ0FBQztFQUNGLElBQUksRUFBRSxRQUFRO0NBMEJmOztBQWhETCxBQXdCTSxFQXhCSixBQUFBLFlBQVksQ0FRWixFQUFFLENBYUEsR0FBRyxBQUdBLFVBQVcsQ3ZCdEhtRCxDQUFDLEV1QnNIakQ7RUFRYixZQUFZLEVBQUUsR0FBRztDQUNsQjs7QUFqQ1AsQUF5QlEsRUF6Qk4sQUFBQSxZQUFZLENBUVosRUFBRSxDQWFBLEdBQUcsQUFHQSxVQUFXLEN2QnRIbUQsQ0FBQyxFdUJ1SDlELEdBQUcsQ0FBQztFdFN4RFYsS0FBSyxFc1N5RHdCLElBQUk7RXRTeERqQyxNQUFNLEVzU3dEdUIsSUFBSTtFQUN6QixVQUFVLEVBQUUsS0FBSztFQUNqQixRQUFRLEVBQUUsTUFBTTtFQUNoQixhQUFhLEVBQUUsS0FBSztDQUNyQjs7QUE5QlQsQUFtQ00sRUFuQ0osQUFBQSxZQUFZLENBUVosRUFBRSxDQWFBLEdBQUcsQUFjQSxVQUFXLENyQjdHRCxDQUFDLEVxQjZHRztFQUNiLElBQUksRUFBRSxDQUFDO0VBQ1AsWUFBWSxFQUFFLElBQUk7Q0FDbkI7O0FBdENQLEFBd0NNLEVBeENKLEFBQUEsWUFBWSxDQVFaLEVBQUUsQ0FhQSxHQUFHLEFBbUJBLFVBQVcsQ2xCcEdDLENBQUMsRWtCb0dDO0VBQ2IsV0FBVyxFQUFFLElBQUk7RUFDakIsSUFBSSxFQUFFLENBQUM7Q0FLUjs7QUEvQ1AsQUE0Q1EsRUE1Q04sQUFBQSxZQUFZLENBUVosRUFBRSxDQWFBLEdBQUcsQUFtQkEsVUFBVyxDbEJwR0MsQ0FBQyxFa0J3R1osQ0FBQyxDQUFDO0V0U3RFUixNQUFNLEVBQUUsT0FBTztFQUNmLGVBQWUsRUFBRSxJQUFJO0NzU3VFZDs7QUE5Q1QsQXRTeEJFLEVzU3dCQSxBQUFBLFlBQVksQ0FRWixFQUFFLENBYUEsR0FBRyxBQW1CQSxVQUFXLENsQnBHQyxDQUFDLEVrQndHWixDQUFDLEF0U3BFTixLQUFLLEVzU3dCUixFQUFFLEFBQUEsWUFBWSxDQVFaLEVBQUUsQ0FhQSxHQUFHLEFBbUJBLFVBQVcsQ2xCcEdDLENBQUMsRWtCd0daLENBQUMsQXRTcEVFLFFBQVEsQ0FBQTtFQUNmLEtBQUssRXNTb0V1QixPQUFPO0N0U25FcEM7O0FzU3NCSCxBdFNyQkUsRXNTcUJBLEFBQUEsWUFBWSxDQVFaLEVBQUUsQ0FhQSxHQUFHLEFBbUJBLFVBQVcsQ2xCcEdDLENBQUMsRWtCd0daLENBQUMsQXRTakVOLE1BQU0sQ0FBQTtFQUNMLEtBQUssRUF2RlcsT0FBTztDQXdGeEI7O0F1U3pGSCxBQUFBLENBQUMsQ0FBQSxBQUFBLElBQUMsQ0FBSyxnQkFBZ0IsQUFBckIsRUFBc0I7RUFDdEIsT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUFFRCxBQUFBLGNBQWMsQ0FBQztFQUNiLGdCQUFnQixFQUFFLG1GQUFtRjtDQUN0Rzs7QUFFRCxBQUFBLGNBQWMsQ0FBQyxFQUFFLENBQUM7RUFDaEIsT0FBTyxFQUFFLFFBQVE7RUFDakIsYUFBYSxFQUFFLG1CQUFtQjtDQUNuQzs7QUFFRCxBQUFBLGNBQWMsQ0FBQyxDQUFDLENBQUM7RUFDZixNQUFNLEVBQUUsT0FBTztFQUNmLGVBQWUsRUFBRSxJQUFJO0NBQ3RCOztBQUVELEFBQUEsY0FBYyxDQUFDLENBQUMsQUFBQSxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUMsQUFBQSxRQUFRLENBQUM7RUFDOUMsS0FBSyxFQUFFLEtBQUs7Q0FDYjs7QUFFRCxBQUFBLGNBQWMsQ0FBQyxDQUFDLEFBQUEsTUFBTSxDQUFDO0VBQ3JCLEtBQUssRUFBRSxPQUFPO0NBQ2Y7O0FBRkQsQUFBQSxjQUFjLENBQUMsQ0FBQyxBQUFBLE1BQU0sQ0FJQztFQUNyQixlQUFlLEVBQUUsU0FBUztDQUMzQjs7QUFFRCxBQUFBLFVBQVUsR0FBRyxHQUFHLENBQUM7RUFDZixPQUFPLEVBQUUsTUFBTTtFQUNmLGFBQWEsRUFBRSxpQkFBaUI7Q0FDakM7O0FBRUQsQUFBQSxVQUFVLENBQUMsS0FBSyxDQUFDO0VBQ2YsT0FBTyxFQUFFLEtBQUs7RUFDZCxXQUFXLEVBQUUsc0JBQXNCO0VBQ25DLFNBQVMsRUFBRSxJQUFJO0VBQ2YsT0FBTyxFQUFFLE1BQU07Q0FDaEI7O0FBRUQsQUFBQSxVQUFVLENBQUMsWUFBWSxDQUFDO0VBQ3RCLE9BQU8sRUFBRSxRQUFRO0NBQ2xCOztBQUVELEFBQUEsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7RUFDMUIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLENBQUM7RUFDVixVQUFVLEVBQUUsTUFBTTtFQUNsQixTQUFTLEVBQUUsSUFBSTtDQUNoQjs7QUFFRCxBQUFBLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxBQUFBLFVBQVcsQ3RCbkJsQixDQUFDLEVzQm1Cb0IsOEJBQThCLENBQUM7RUFDbkUsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07Q0FDdkI7O0FBRUQsQUFBQSxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQUFBQSxVQUFXLEN0QnhCbEIsQ0FBQyxFc0J3Qm9CLFVBQVUsQ0FBQztFQUMvQyxNQUFNLEVBQUUsQ0FBQztFQUNULGFBQWEsRUFBRSxtQkFBbUI7RUFDbEMsT0FBTyxFQUFFLFFBQVE7Q0FDbEI7O0FBRUQsQUFBQSxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQUFBQSxVQUFXLEN0QjlCbEIsQ0FBQyxFc0I4Qm9CLFVBQVUsQUFBQSxZQUFZLENBQUM7RUFDM0QsVUFBVSxFQUFFLGVBQWU7Q0FDNUI7O0FBRUQsQUFBQSxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQUFBQSxVQUFXLEN0QmxDbEIsQ0FBQyxFc0JrQ29CLFVBQVUsQUFBQSxXQUFXLENBQUM7RUFDMUQsYUFBYSxFQUFFLElBQUk7Q0FDcEI7O0FBRUQsQUFBQSxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQUFBQSxXQUFXLENBQUM7RUFDbEMsVUFBVSxFQUFFLE1BQU07Q0FDbkI7O0FBRUQsQUFBQSxVQUFVLENBQUMsMkJBQTJCLEVBQUUsVUFBVSxDQUFDLG1DQUFtQyxFQUFFLFVBQVUsQ0FBQyw0Q0FBNEM7QUFDL0ksVUFBVSxDQUFDLDZDQUE2QyxFQUFFLFVBQVUsQ0FBQywyQ0FBMkMsRUFBRSxVQUFVLENBQUMsb0dBQW9HLEVBQUUsVUFBVSxDQUFDLDJHQUEyRyxDQUFDO0VBQ3hWLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBRUQsQUFBQSxVQUFVLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztFQUMzQyxPQUFPLEVBQUUsSUFBSTtDQUNkOztBQUVELEFBQUEsVUFBVSxDQUFDLDRCQUE0QixBQUFBLFlBQVksQ0FBQztFQUNsRCxPQUFPLEVBQUUsS0FBSztFQUNkLE9BQU8sRUFBRSxRQUFRO0NBQ2xCOztBQUVELEFBQUEsVUFBVSxHQUFHLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDO0VBQ2xELEtBQUssRUFBRSxLQUFLO0VBQ1osVUFBVSxFQUFFLGtCQUFrQjtDQUMvQjs7QUFFRCxBQUFBLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLEVBQWU7RUFDdkUsS0FBSyxFQUFFLGVBQWU7RUFDdEIsVUFBVSxFQUFFLGlCQUFpQjtFQUM3QixPQUFPLEVBQUUsaUJBQWlCO0NBQzNCOztBQUVELEFBQUEsVUFBVSxHQUFHLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsQ0FBYyxNQUFNLENBQUM7RUFDN0UsS0FBSyxFQUFFLGdCQUFnQjtDQUN4Qjs7QUFFRCxBQUFBLFVBQVUsR0FBRyxtQkFBbUIsQUFBQSxrQkFBa0IsQ0FBQyxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLENBQWMsTUFBTSxFQUFFLFVBQVUsR0FBRyxtQkFBbUIsQUFBQSxrQkFBa0IsQ0FBQyxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLENBQWMsT0FBTyxFQUFFLFVBQVUsR0FBRyxtQkFBbUIsQUFBQSxrQkFBa0IsQ0FBQyxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLENBQWMsTUFBTSxDQUFDO0VBQzNPLGFBQWEsRUFBRSxZQUFZO0NBQzVCOztBQzlGRCxBQUFBLGFBQWEsQ0FBQTtFQUVYLE1BQU0sRUFBRSxPQUFxQztFQUM3QyxVQUFVLEVBQUUsSUFBSTtFQUVoQixLQUFLLEVBakJtQixPQUFPO0VBa0IvQixVQUFVLEVBZlMsT0FBTztFQWtCMUIsYUFBYSxFQUFFLElBQUk7Q0FpSHBCOztBQTFIRCxBQVlFLGFBWlcsQUFZVix5QkFBeUIsQ0FDMUI7RUFDRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsa0JBQWU7RUFDakQsZ0JBQWdCLEVBQUUsT0FBTztDQUMxQjs7QUFoQkgsQUFrQkUsYUFsQlcsQUFrQlYsbUJBQW1CLENBQ3BCO0VBQ0UsS0FBSyxFQUFFLElBQUk7RUFDWCxnQkFBZ0IsRUFBRSxPQUFPO0NBQzFCOztBQXRCSCxBQXdCRSxhQXhCVyxBQXdCVix5QkFBeUIsQ0FDMUI7RUFDRSxhQUFhLEVBQUUsSUFBSTtFQUNuQixrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsa0JBQWM7RUFDaEQsZ0JBQWdCLEVBakNNLE9BQU87Q0FrQzlCOztBQUdBLEFBQ0MsNEJBRGMsQ0FDZCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsSUFBQyxBQUFBLEVBQVU7RUFFZCxPQUFPLEVBQUUsQ0FBQztFQUNWLE1BQU0sRUFBRSxTQUFTO0VBQ2pCLE9BQU8sRUFBRSxXQUFXO0VBRXBCLEtBQUssRUFwRFUsT0FBTztDQXFEdkI7O0FBUkYsQUFTQyw0QkFUYyxDQVNkLE1BQU0sQ0FBQTtFQUNKLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUM7RUFDVixVQUFVLEVBekRLLE9BQU87RUEwRHRCLE9BQU8sRUFBRSxPQUFPO0VBQ2hCLEtBQUssRUFBRSxLQUFLO0NBQ2I7O0FBL0NMLEFBa0RFLGFBbERXLENBa0RYLEtBQUssQ0FBQTtFQUNILE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUVaLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQTdETCxTQUFTO0VBOEQ1QixPQUFPLEVBQUUsTUFBTTtDQWdFaEI7O0FBeEhILEFBMERJLGFBMURTLENBa0RYLEtBQUssQUFRRixVQUFXLENBQUEsR0FBRyxFQUFDO0VBQ2QsZ0JBQWdCLEVBdEVFLE9BQU87Q0F1RTFCOztBQTVETCxBQTZESSxhQTdEUyxDQWtEWCxLQUFLLEFBV0YsVUFBVyxDRmdEQSxJQUFJLEVFaERDO0VBQ2YsZ0JBQWdCLEVBeEVHLE9BQU87Q0F5RTNCOztBQS9ETCxBQWtFSSxhQWxFUyxDQWtEWCxLQUFLLENBZ0JILE1BQU0sQ0FBQTtFQUNKLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLEdBQUc7RUFDWixLQUFLLEVBekVpQixLQUFLO0VBMEUzQixVQUFVLEVBM0VZLE9BQU87RUE0RTdCLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUM7Q0FDWDs7QUExRUwsQUEyRUksYUEzRVMsQ0EyRVIsV0FBTSxDQUFBO0VBQ0wsS0FBSyxFQUFFLEdBQUc7RUFDVixPQUFPLEVBQUUsVUFBVTtFQUFDLGNBQWMsRUFBRSxNQUFNO0VBQzFDLE9BQU8sRUFBRSxRQUFRO0NBQ2xCOztBQS9FTCxBQWlGSSxhQWpGUyxDQWlGUixjQUFTLEVBakZkLGFBQWEsQ0FpRkksZUFBVSxDQUFBO0VBQ3JCLE9BQU8sRUFBRSxVQUFVO0VBQUUsS0FBSyxFQUFFLEdBQUc7RUFBQyxjQUFjLEVBQUUsTUFBTTtDQUN2RDs7QUFuRkwsQUFxRkksYUFyRlMsQ0FxRlIsY0FBUyxDQUFBO0VBQ1IsVUFBVSxFQUFFLE1BQU07Q0FDbkI7O0FBdkZMLEFBeUZNLGFBekZPLENBd0ZSLGVBQVUsR0FDTCxNQUFNLENBQUE7RUFDUixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0E1RkssS0FBSztDQWdHNUI7O0FBOUZQLEFBMkZRLGFBM0ZLLENBd0ZSLGVBQVUsR0FDTCxNQUFNLEFBRVAsWUFBWSxDQUFBO0VBQ1gsYUFBYSxFQUFFLElBQUk7Q0FDcEI7O0FBN0ZULEFBaUdJLGFBakdTLENBaUdSLGdCQUFXLENBQUE7RUFDVixLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxLQUFLO0NBbUJmOztBQXRITCxBQW9HTSxhQXBHTyxDQWlHUixnQkFBVyxDQUdWLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxJQUFDLEFBQUEsRUFBVTtFQUNkLEtBQUssRUFBRSxHQUFHO0VBQ1YsT0FBTyxFQUFFLFVBQVU7RUFDbkIsS0FBSyxFQXBIUSxPQUFPO0VBcUhwQixPQUFPLEVBQUUsQ0FBQztFQUNWLE1BQU0sRUFBRSxDQUFDO0VBQ1QsY0FBYyxFQUFFLE1BQU07RUFDdEIsTUFBTSxFQUFFLFFBQVE7Q0FDakI7O0FBNUdQLEFBOEdNLGFBOUdPLENBaUdSLGdCQUFXLEdBYU4sTUFBTSxDQUFBO0VBQ1IsT0FBTyxFQUFFLFVBQVU7RUFBRSxLQUFLLEVBQUUsR0FBRztFQUFDLGNBQWMsRUFBRSxNQUFNO0VBQ3RELE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDQWxISyxLQUFLO0NBc0g1Qjs7QUFwSFAsQUFpSFEsYUFqSEssQ0FpR1IsZ0JBQVcsR0FhTixNQUFNLEFBR1AsWUFBWSxDQUFBO0VBQ1gsWUFBWSxFQUFFLElBQUk7Q0FDbkI7O0FBU1QsQUFBQSxtQkFBbUIsQ0FBQyxhQUFhLENBQUM7RUFDaEMsVUFBVSxFQUFFLEtBQUs7RUFDakIsTUFBTSxFQUFFLElBQUk7RUFDWixhQUFhLEVBQUUsSUFBSTtDQUNwQjs7QUM3SUQsQUFBQSxNQUFNLENBQUM7RUFDTCxNQUFNLEVBQUUsTUFBTTtFQUNkLE9BQU8sRUFBRSxJQUFJO0NBNkRkOztBQTNERSxBQUFELGFBQVEsQ0FBQztFQUNQLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUM7RUFDVixlQUFlLEVBQUUsSUFBSTtFQUNyQixPQUFPLEVBQUUsSUFBSTtFQUNiLGVBQWUsRUFBRSxNQUFNO0VBQ3ZCLFdBQVcsRUFBRSxNQUFNO0NBQ3BCOztBQUVBLEFBQUQsWUFBTztBQUNOLGFBQU8sR0FBRyxFQUFFLENBQUM7RUFDWixXQUFXLEVBQUUsS0FBSztDQXNDbkI7O0FBeENBLEFBSUMsWUFKSyxBQUlKLE1BQU07QUFIUixhQUFPLEdBQUcsRUFBRSxBQUdWLE1BQU0sQ0FBQztFQUNOLFNBQVMsRUFBRSxnQkFBZ0I7Q0FDNUI7O0FBTkYsQUFRQyxZQVJLLENBUUwsQ0FBQztBQVBGLGFBQU8sR0FBRyxFQUFFLENBT1gsQ0FBQyxDQUFDO0VBQ0EsTUFBTSxFQUFFLE9BQU87RUFDZixlQUFlLEVBQUUsSUFBSTtFQUNyQixPQUFPLEVBQUUsSUFBSTtFQUNiLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFdBQVcsRXpTVUcsZUFBZTtFeVNUN0IsZ0JBQWdCLEVBQUUsT0FBTztDQVUxQjs7QUF4QkYsQUFnQkcsWUFoQkcsQ0FRTCxDQUFDLEFBUUUsS0FBSyxFQWhCVCxZQUFNLENBUUwsQ0FBQyxBQVFVLFFBQVE7QUFmcEIsYUFBTyxHQUFHLEVBQUUsQ0FPWCxDQUFDLEFBUUUsS0FBSztBQWZULGFBQU8sR0FBRyxFQUFFLENBT1gsQ0FBQyxBQVFVLFFBQVEsQ0FBQztFQUNoQixLQUFLLEVBQUUsS0FBSztDQUNiOztBQWxCSixBQW9CRyxZQXBCRyxDQVFMLENBQUMsQUFZRSxNQUFNO0FBbkJWLGFBQU8sR0FBRyxFQUFFLENBT1gsQ0FBQyxBQVlFLE1BQU0sQ0FBQztFQUNOLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLEtBQUssRUFBRSxPQUFPO0NBQ2Y7O0FBdkJKLEFBMEJDLFlBMUJLLEFBMEJKLFVBQVUsQ0FBQyxDQUFDO0FBekJkLGFBQU8sR0FBRyxFQUFFLEFBeUJWLFVBQVUsQ0FBQyxDQUFDLENBQUM7RUFDWixVQUFVLEV6U2dCUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBZ0I7RXlTZi9DLGdCQUFnQixFQUFFLE9BQU87RUFDekIsTUFBTSxFQUFFLE9BQU87RUFDZixlQUFlLEVBQUUsSUFBSTtDQVN0Qjs7QUF2Q0YsQUFnQ0csWUFoQ0csQUEwQkosVUFBVSxDQUFDLENBQUMsQUFNVixLQUFLLEVBaENULFlBQU0sQUEwQkosVUFBVSxDQUFDLENBQUMsQUFNRixRQUFRO0FBL0JwQixhQUFPLEdBQUcsRUFBRSxBQXlCVixVQUFVLENBQUMsQ0FBQyxBQU1WLEtBQUs7QUEvQlQsYUFBTyxHQUFHLEVBQUUsQUF5QlYsVUFBVSxDQUFDLENBQUMsQUFNRixRQUFRLENBQUM7RUFDaEIsS0FBSyxFQUFFLE9BQU87Q0FDZjs7QUFsQ0osQUFvQ0csWUFwQ0csQUEwQkosVUFBVSxDQUFDLENBQUMsQUFVVixNQUFNO0FBbkNWLGFBQU8sR0FBRyxFQUFFLEFBeUJWLFVBQVUsQ0FBQyxDQUFDLEFBVVYsTUFBTSxDQUFDO0VBQ04sS0FBSyxFQUFFLEtBQUs7Q0FDYjs7QXpTNk1ILE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFeVN6TTFCLEFBQUQsWUFBTyxDQUFDO0lBRUosU0FBUyxFelM1QkcsTUFBSztHeVNpQ3BCO0VBUEEsQUFHRyxZQUhHLEFBR0YsSUFBSyxDQUFBLFVBQVUsQ0FBQyxJQUFLLENBQUMsa0JBQU0sQ0FBQyxJQUFLLENBQUMsc0JBQVUsRUFBRTtJQUM5QyxPQUFPLEVBQUUsSUFBSTtHQUNkOzs7QUN2REosQUFBRCxrQkFBUyxDQUFBO0VBQ1AsV0FBVyxFQUFFLElBQUk7RUFDakIsY0FBYyxFQUFFLElBQUk7RUFDcEIsWUFBWSxFQUFFLElBQUk7Q0F3Qm5COztBQTNCQSxBQUtDLGtCQUxPLEdBS0gsQ0FBQyxDQUFBO0VBQUMsWUFBWSxFQUFFLElBQUk7Q0FBRzs7QUFJeEIsQUFBRCxnQ0FBTyxDQUFBO0VBQUMsVUFBVSxFQUFFLFNBQVM7Q0FBRzs7QUFDL0IsQUFBRCxtQ0FBVSxDQUFBO0VBQUMsYUFBYSxFQUFFLFNBQVM7Q0FBSTs7QUFFcEMsQUFBRCx1Q0FBTyxDQUFBO0VBQUMsWUFBWSxFQUFFLE9BQU87Q0FBRzs7QUFDL0IsQUFBRCwwQ0FBVSxDQUFBO0VBQUMsWUFBWSxFQUFFLE9BQU87Q0FBRzs7QUFDbEMsQUFBRCxzQ0FBTSxDQUFBO0VBQUMsWUFBWSxFQUFFLE9BQU87Q0FBRzs7QUFDOUIsQUFBRCxzQ0FBTSxDQUFBO0VBQUMsWUFBWSxFQUFFLEtBQUs7Q0FBRzs7QUFDNUIsQUFBRCxxQ0FBSyxDQUFBO0VBQUMsWUFBWSxFQUFFLFNBQVM7Q0FBRzs7QUFoQnJDLEFBc0JDLGtCQXRCTyxBQXNCTixNQUFNLENBQUE7RUFDTCxPQUFPLEVBQUUsRUFBRTtFQUNYLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLElBQUk7Q0FDWjs7QUFTRSxBQUFELGdDQUFNLENBQUE7RUFBQyxVQUFVLEVBQUUsSUFBSTtDQUFHOztBQUN6QixBQUFELGtDQUFRLENBQUE7RUFBQyxVQUFVLEVBQUUsTUFBTTtDQUFHOztBQUM3QixBQUFELGlDQUFPLENBQUE7RUFBQyxVQUFVLEVBQUUsS0FBSztDQUFHOztBQUkvQixBQUFELG1CQUFVLENBQUE7RUFFUixNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDO0VBQ1YsUUFBUSxFQUFFLFFBQVE7RUFDbEIsTUFBTSxFQUFFLElBQUk7Q0FFYjs7QUFDQSxBQUFELDBCQUFpQixDQUFBO0VBRWYsS0FBSyxFQUFFLElBQUk7RUFDWCxPQUFPLEVBQUUsS0FBSztFQUNkLFlBQVksRUFBRSxLQUFLO0NBS3BCOztBQVRBLEFBS0MsMEJBTGUsQ0FLYixzQkFBc0IsQ0FBQztFQUN2QixPQUFPLEVBQUUsVUFBVTtDQUVwQjs7QUFSRixBQU9HLDBCQVBhLENBS2Isc0JBQXNCLEdBRWxCLEdBQUcsQ0FBQztFQUFDLE9BQU8sRUFBRSxNQUFNO0VBQUMsS0FBSyxFQUFDLElBQUk7RUFBQyxNQUFNLEVBQUMsSUFBSTtDQUFHOztBQUtyRCxBQUVDLGdCQUZLLENBRUwsS0FBSyxDQUFBO0VBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUEsVUFBVTtFQUFFLEtBQUssRUFBRSxJQUFJLENBQUEsVUFBVTtFQUFFLEtBQUssRUFBRSxHQUFHLENBQUEsVUFBVTtDQUF5Qjs7QUFGdEcsQUFFK0UsZ0JBRnpFLENBRUwsS0FBSyxDQUF5RSxFQUFFLENBQUE7RUFBQyxVQUFVLEVBQUUsSUFBSTtDQUFHOztBQUduRyxBQUNDLG9DQURtQixDQUFDLENBQUMsQUFBQSxZQUFZLEFBQ2hDLGFBQWEsQ0FBQTtFQUNaLEtBQUssRUFBRSxPQUFPO0VBR2QsS0FBSyxFQUFFLElBQUk7RUFDWCxXQUFXLEVBQUUsT0FBTztFQUNwQixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFlBQVksRUFBRSxHQUFHO0NBQ2xCOztBQUlKLEFBQUQsaUJBQVEsQ0FBQTtFQUdKLFFBQVEsRUFBQyxRQUFRO0VBQ2pCLGNBQWMsRUFBQyxNQUFNO0VBQ3JCLFdBQVcsRUFBQyxJQUFJO0VBQ2hCLE1BQU0sRUFBQyxDQUFDO0VBQ1IsUUFBUSxFQUFDLE1BQU07Q0FXbEI7O0FBbEJBLEFBU0csaUJBVEksQ0FTRixNQUFNLEVBVFgsaUJBQU8sQ0FTUSxNQUFNLEVBVHJCLGlCQUFPLENBU2tCLEtBQUssQ0FBQztFQUMxQixRQUFRLEVBQUMsUUFBUTtFQUNqQixHQUFHLEVBQUMsQ0FBQztFQUNMLElBQUksRUFBQyxDQUFDO0VBQ04sS0FBSyxFQUFDLElBQUk7RUFDVixNQUFNLEVBQUMsSUFBSTtDQUNaOztBQXJHUCxBQTZHYyxVQTdHSixDQTZHTCxtQkFBTyxDQUFFLEtBQUssQ0FBQTtFQUFDLEtBQUssRUFBRSxHQUFHLENBQUEsVUFBVTtDQUFHOztBQTdHM0MsQUE4R2UsVUE5R0wsQ0E4R0wsb0JBQVEsQ0FBRSxLQUFLLENBQUE7RUFBQyxLQUFLLEVBQUUsR0FBRyxDQUFBLFVBQVU7Q0FBRzs7QUFHekMsQUFDQyxpQkFETSxDQUNOLEdBQUcsQ0FBQztFQUFDLEtBQUssRUFBQyxJQUFJO0VBQUUsTUFBTSxFQUFFLElBQUk7Q0FBRzs7QUFFL0IsQUFBRCxnQ0FBZ0IsQ0FBQztFQUFDLE1BQU0sRUFBRSxJQUFJO0NBQUc7O0FBQ2hDLEFBQUQsNkJBQWEsQ0FBQztFQUFDLE1BQU0sRUFBRSxJQUFJO0NBQUc7O0FBQzdCLEFBQUQseUJBQVMsQ0FBQztFQUFDLE1BQU0sRUFBRSxJQUFJO0NBQUc7O0FBQ3pCLEFBQUQsdUJBQU8sQ0FBQztFQUFDLEtBQUssRUFBQyxJQUFJO0NBQUc7O0FBQ3JCLEFBQUQsd0JBQVEsQ0FBQztFQUFDLEtBQUssRUFBQyxLQUFLO0VBQUMsWUFBWSxFQUFFLE1BQU07Q0FBRzs7QUFDNUMsQUFBRCx3QkFBUSxDQUFDO0VBQUUsS0FBSyxFQUFFLEdBQUc7Q0FBRzs7QUFDdkIsQUFBRCx5QkFBUyxDQUFDO0VBQUMsS0FBSyxFQUFFLEdBQUc7Q0FBRzs7QUFDdkIsQUFBRCx3QkFBUSxDQUFDO0VBQUMsS0FBSyxFQUFFLEdBQUc7Q0FBRzs7QUFDdEIsQUFBRCx5QkFBUyxDQUFDO0VBQUMsS0FBSyxFQUFFLElBQUk7Q0FBRzs7QUE1SDdCLEFBZ0lFLFVBaElRLEFBZ0lQLE1BQU0sQ0FBQTtFQUNMLE9BQU8sRUFBRSxFQUFFO0VBQ1gsT0FBTyxFQUFFLEtBQUs7RUFDZCxLQUFLLEVBQUUsSUFBSTtDQUNaOztBQU9ILE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFQXZJckIsQUFBRCxrQkFBUyxDQTBJRztJQUtSLFlBQVksRUFBRSxDQUFDO0dBSWhCO0VBbkpGLEFBS0Msa0JBTE8sR0FLSCxDQUFDLENBdUlHO0lBQ0osWUFBWSxFQUFFLENBQUM7R0FDaEI7RUFKRixBQU1DLGtCQU5PLENBTVAsdUJBQXVCLENBQUE7SUFBQyxZQUFZLEVBQUUsSUFBSTtHQUFHO0VBTjlDLEFBT0Msa0JBUE8sQ0FPUCx3QkFBd0IsQ0FBQTtJQUFDLFlBQVksRUFBRSxJQUFJO0dBQUc7RUFQL0MsQUFRQyxrQkFSTyxDQVFQLHlCQUF5QixDQUFBO0lBQUMsTUFBTSxFQUFFLElBQUk7R0FBRzs7O0FDdEovQyxBQUFBLGtCQUFrQixDQUFDO0VBRWpCLFFBQVEsRUFBRSxLQUFLO0VBQ2YsT0FBTyxFQUFFLEdBQUc7RUFDWixLQUFLLEVBQUUsQ0FBQztFQUNSLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLFNBQVM7RUFFbEIsTUFBTSxFQUFFLE9BQU87Q0FXaEI7O0EzUzRPRyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RTJTL1A3QixBQVVJLGtCQVZjLENBVWQsR0FBRyxDQUFDO0lBQ0YsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtHQUNiOzs7QUFHRixBQUFELDBCQUFTLENBQUM7RUFDUixPQUFPLEVBQUUsSUFBSTtDQUNkOztBQUdILEFBQUEsUUFBUSxDQUFDO0VBRVAsUUFBUSxFQUFFLEtBQUs7RUFDZixHQUFHLEVBQUUsQ0FBQztFQUNOLE1BQU0sRUFBRSxDQUFDO0VBQ1QsSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLFVBQVUsRUFBRSxrQkFBa0I7RUFDOUIsVUFBVSxFQUFFLGFBQWE7RUFDekIsVUFBVSxFQUFFLE1BQU07RUFDbEIsT0FBTyxFQUFFLENBQUM7RUFDVixPQUFPLEVBQUUsR0FBRztFQUNaLE9BQU8sRUFBRSxJQUFJO0NBV2Q7O0FBdkJELEFBY0UsUUFkTSxBQWNMLE9BQU8sQ0FBQztFQUNQLFVBQVUsRUFBRSxrQkFBa0I7RUFDOUIsT0FBTyxFQUFFLENBQUM7Q0FDWDs7QUFFQSxBQUFELGlCQUFVLENBQUM7RUFDVCxPQUFPLEVBQUUsQ0FBQztFQUNWLFVBQVUsRUFBRSxrQkFBa0I7Q0FDL0I7O0FBR0gsQUFBQSxNQUFNLENBQUM7RUFDTCxPQUFPLEVBQUUsSUFBSTtFQUNiLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLEtBQUssRUFBRSxHQUFHO0VBQ1YsTUFBTSxFQUFFLEtBQUs7RUFDYixRQUFRLEVBQUUsUUFBUTtFQUVsQixNQUFNLEVBQUUsSUFBSTtFQUNaLE9BQU8sRUFBRSxJQUFJO0VBQ2IsY0FBYyxFQUFFLE1BQU07Q0ErQnZCOztBQXpDRCxBQVlFLE1BWkksQ0FZSixFQUFFLENBQUM7RUFDRCxhQUFhLEVBQUUsaUJBQWlCO0VBQ2hDLE9BQU8sRUFBRSxNQUFNO0NBQ2hCOztBQWZILEFBaUJFLE1BakJJLENBaUJKLEVBQUUsQ0FBQztFQUNELGdCQUFnQixFQUFFLHlFQUF5RTtDQUM1Rjs7QUFuQkgsQUFxQkUsTUFyQkksQ0FxQkosUUFBUSxDQUFDO0VBQ1AsVUFBVSxFQUFFLElBQUk7Q0FDakI7O0FBdkJILEFBeUJFLE1BekJJLENBeUJKLE1BQU0sQ0FBQztFQUNMLE1BQU0sRUFBRSxPQUFPO0VBQ2YsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLElBQUk7RUFDVCxLQUFLLEVBQUUsSUFBSTtFQUVYLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLElBQUk7RUFDakIsZUFBZSxFQUFFLElBQUk7RUFDckIsS0FBSyxFQUFFLElBQUk7Q0FNWjs7QUF4Q0gsQUFvQ0ksTUFwQ0UsQ0F5QkosTUFBTSxBQVdILE1BQU0sQ0FBQztFQUNOLEtBQUssRUFBRSxPQUFPO0NBQ2Y7O0FBTUwsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFQUNqQyxBQUFBLElBQUksQ0FBQztJQUNILEtBQUssRUFBRSxHQUFHO0dBQ1g7RUEvQ0gsQUFBQSxNQUFNLENBZ0RHO0lBQ0wsS0FBSyxFQUFFLEdBQUc7R0FDWDs7O0FBSUgsQUFBQSxtQkFBbUIsQ0FBQztFQUNsQixVQUFVLEVBQUUsVUFBVTtFQUN0QixPQUFPLEVBQUUsUUFBUTtFQUNqQixNQUFNLEVBQUUsZUFBZTtDQU14Qjs7QTNTa0pHLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFMlMzSjdCLEFBQUEsbUJBQW1CLENBQUM7SUFNaEIsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsS0FBSztHQUVqQjs7O0FBRUQsQUFFRSx1REFGcUQsQ0FFckQsK0JBQStCLEFBQUEsUUFBUTtBQUZ6Qyx1REFBdUQsQ0FHckQseUJBQXlCO0FBSDNCLHVEQUF1RCxDQUlyRCxnQkFBZ0I7QUFIbEIsd0RBQXdELENBQ3RELCtCQUErQixBQUFBLFFBQVE7QUFEekMsd0RBQXdELENBRXRELHlCQUF5QjtBQUYzQix3REFBd0QsQ0FHdEQsZ0JBQWdCLENBQUM7RUFDZixPQUFPLEVBQUUsSUFBSTtDQUNkOztBQ2xIQSxBQUFELG1CQUFXLENBQUE7RUFDVCxXQUFXLEVBQUUsTUFBTTtFQUNuQixRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsWUFBWTtDQUN0Qjs7QUFFQSxBQUFELG1CQUFXLENBQUUsa0JBQVMsQ0FBQTtFNVMyRnRCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxJQUFJO0U0UzVGVixTQUFTLEVBQUUsZUFBZTtFQUMxQixhQUFhLEVBQUUsR0FBRztFQUNsQixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEM1U0ZmLG1CQUFLO0M0U0doQjs7QUFFQSxBQUFELG1CQUFXLENBQUUsZ0JBQU8sRUFBSSxtQkFBVSxDQUFFLGtCQUFTLENBQUE7RUFDM0MsbUJBQW1CLEVBQUUsTUFBTTtFQUMzQixVQUFVLEVBQUUsWUFBWTtDQUN6Qjs7QUFFQSxBQUFELG1CQUFXLEFBQUEsTUFBTSxDQUFFLGdCQUFPLENBQUE7RUFDeEIsU0FBUyxFQUFFLGdCQUFnQjtDQUM1Qjs7QUFFQSxBQUFELG1CQUFXLEFBQUEsTUFBTSxDQUFFLGtCQUFTLENBQUE7RUFDMUIsU0FBUyxFQUFFLFVBQVU7Q0FDdEI7O0FBT0EsQUFBRCxpQkFBUyxDQUFFLGdCQUFPLENBQUE7RUFDaEIsS0FBSyxFQUFFLEtBQUs7RUFDWixNQUFNLEVBQUUsS0FBSztFQUNiLGFBQWEsRUFBRSxHQUFHO0NBUW5COztBNVNvTkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPO0U0Uy9OM0IsQUFNRyxpQkFOSyxDQU1KLHVCQUFPLENBQUE7SUFDTixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0dBQ2I7OztBQVFKLEFBQUQseUJBQWlCLENBQUUsZ0JBQU8sQ0FBQTtFQUN4QixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzVTckRELE9BQU87QzRTc0R4Qjs7QUFDQSxBQUFELHlCQUFpQixDQUFFLGtCQUFTLENBQUE7RUFDMUIsVUFBVSxFNVN4RE0sT0FBTztDNFN5RHhCOztBQUlBLEFBRUMsa0JBRlEsQ0FFUixJQUFJLENBQUE7RUFDRixVQUFVLEVBQUUsTUFBTTtFNVM2Q3RCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxHQUFHO0VBQ1IsSUFBSSxFQUFFLEdBQUc7RUFDVCxTQUFTLEVBQUUscUJBQW9CO0U0UzdDM0IsU0FBUyxFNVN4Q0ksTUFBTTtFNFN5Q25CLFdBQVcsRTVTakNHLGVBQWU7RTRTbUM3QixLQUFLLEU1U2pFUSxPQUFPO0U0U2tFcEIsZUFBZSxFQUFFLElBQUk7Q0FDdEI7O0FBSUYsQUFBRCxnQkFBUSxDQUFBO0VBQ04sT0FBTyxFQUFFLEtBQUs7RUFDZCxVQUFVLEVBQUUsS0FBSztFQUNqQixNQUFNLEVBQUUsSUFBSTtFQUVaLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQzVTckVYLG1CQUFLO0M0U3NFaEI7O0FBT0gsQUFBQSxvQkFBb0IsQ0FBQTtFQUNsQixVQUFVLEVBQUUsTUFBTTtDQUVuQjs7QUFIRCxBQUVFLG9CQUZrQixDQUVsQix1QkFBdUIsQ0FBQztFQUFFLE9BQU8sRUFBRSxJQUFJO0NBQUU7O0FFckZ4QyxBQUFELDBCQUFTLENBQUE7RTlTZ0hULEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLEtBQUs7RUFDZCxZQUFZLEVBQUUsS0FBSztFOFNoSGpCLEtBQUssRUFBRSxHQUFHO0VBQ1YsTUFBTSxFQUFFLElBQUk7RUFDWixTQUFTLEVBQUUsZUFBMEI7Q0FrQnRDOztBQXRCQSxBQU1DLDBCQU5PLEdBTUgsSUFBSSxDQUFBO0VBQ04sT0FBTyxFQUFFLFVBQVU7RUFFbkIsTUFBTSxFQWZHLElBQUk7RUFnQmIsWUFBWSxFQWZKLEdBQUcsQ0FlZ0IsS0FBSyxDOVNoQmxCLE9BQU87RThTaUJyQixVQUFVLEVBaEJGLEdBQUcsQ0FnQmMsS0FBSyxDOVNqQmhCLE9BQU87QzhTMkJ0Qjs7QUFyQkYsQUFhRywwQkFiSyxHQU1ILElBQUksQUFPTCxZQUFZLENBQUE7RUFDWCxXQUFXLEVBbkJMLEdBQUcsQ0FtQmlCLEtBQUssQzlTcEJuQixPQUFPO0U4U3FCbkIsc0JBQXNCLEVBQUUsSUFBSTtDQUM3Qjs7QUFoQkosQUFrQkcsMEJBbEJLLEdBTUgsSUFBSSxBQVlMLFdBQVcsQ0FBQTtFQUNWLHVCQUF1QixFQUFFLElBQUk7Q0FDOUI7O0FBSUosQUFBRCwwQkFBUyxDQUFBO0U5U3dGVCxLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxLQUFLO0VBQ2QsWUFBWSxFQUFFLEtBQUs7QzhTL0VsQjs7QUFYQSxBQUdDLDBCQUhPLEdBR0gsR0FBRyxDQUFBO0VBQ0wsT0FBTyxFQUFFLFVBQVU7Q0FDcEI7O0FBTEYsQUFNQywwQkFOTyxDQU1MLEdBQUcsQ0FBQTtFQUNILFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLElBQUk7Q0FDYjs7QUFHRixBQUFELDRCQUFXLENBQUE7RTlTNEVYLEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLEtBQUs7RUFDZCxZQUFZLEVBQUUsS0FBSztDOFM5RGxCOztBQWhCQSxBQUlDLDRCQUpTLEdBSUwsR0FBRyxDQUFBO0VBQ0wsT0FBTyxFQUFFLFVBQVU7RUFDbkIsVUFBVSxFQUFFLE1BQU07RUFFbEIsV0FBVyxFOVNmRyxlQUFlO0U4U2dCN0IsU0FBUyxFOVN4QkksTUFBTTtDOFN5QnBCOztBQVZGLEFBV0MsNEJBWFMsQ0FXVCxNQUFNLENBQUE7RUFDSixTQUFTLEU5UzVCSSxNQUFNO0U4UzZCbkIsV0FBVyxFOVN2Qk0sc0JBQXNCO0M4U3dCeEM7O0FBS0YsQUFBRCx1QkFBTSxDQUFBO0VBQ0osU0FBUyxFQUFFLEtBQUs7RUFDaEIsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGFBQWEsRUFoRVMsSUFBSTtDQStFM0I7O0FBcEJBLEFBT0MsdUJBUEksQUFPSCxPQUFPLENBQUE7RUFDTixPQUFPLEVBQUUsRUFBRTtFQUNYLE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLEdBQWMsQ0FBQyxLQUFLLEM5U3ZFbkIsT0FBTztFOFN3RXJCLFlBQVksRUFBRSxHQUFjLENBQUMsS0FBSyxDOVN4RXBCLE9BQU87RThTMEVyQixRQUFRLEVBQUUsUUFBUTtFQUNsQixJQUFJLEVBQUUsR0FBRztFQUNULE1BQU0sRUFBRSxDQUFDO0VBQ1QsU0FBUyxFQUFFLGdCQUFnQjtFQUMzQixNQUFNLEVBNUVjLElBQUk7Q0E4RXpCOztBOVNrTEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPO0U4UzVQM0IsQUFNQywwQkFOTyxHQU1ILElBQUksQ0F5RUU7SUFDTixNQUFNLEVBQUUsTUFBZTtHQUN4QjtFQTdDSixBQUFELDRCQUFXLENBZ0RFO0k5UzRCYixLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxLQUFLO0lBQ2QsWUFBWSxFQUFFLEtBQUs7RzhTckJoQjtFQXpERixBQUlDLDRCQUpTLEdBSUwsR0FBRyxDQStDRTtJQUNMLFNBQVMsRTlTbEVDLE1BQUs7RzhTbUVoQjtFQXJESixBQVdDLDRCQVhTLENBV1QsTUFBTSxDQTJDRTtJQUNKLFNBQVMsRTlTdEVFLE1BQU07RzhTdUVsQjs7O0FDbEdQLEFBRUUsWUFGVSxHQUVOLEdBQUcsQ0FBQztFQUFDLE1BQU0sRUFBRSxRQUFRO0NBQUc7O0FBUTlCLEFBQUEsY0FBYyxDQUFBO0VBSVosT0FBTyxFQUFFLFlBQVk7RUFHckIsa0JBQWtCLEVBQUUsR0FBRztFQUN2QixxQkFBcUIsRUFBRSxHQUFHO0VBQzFCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLGlCQUFpQixFQUFFLHNCQUFzQjtFQUN6QyxTQUFTLEVBQUUsc0JBQXNCO0NBVWxDOztBQXJCRCxBQWFFLGNBYlksQ0FhVixHQUFHLENBQUE7RUFDSCxLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLE9BQU87RUFDbkIsZUFBZSxFQUFFLElBQUk7RUFDckIsb0JBQW9CLEVBQUUsR0FBRztFQUN6QixhQUFhLEVBQUUsR0FBRztDQUNuQjs7QUMvQkgsQUFDRSxZQURVLENBQ1YsTUFBTSxDQUFDO0VBQ0wsVUFBVSxFQUFFLGVBQWU7RUFDM0IsYUFBYSxFQUFFLGVBQWU7Q0FDL0I7O0FBSkgsQUFNRSxZQU5VLENBTVYsbUJBQW1CLENBQUM7RUFDbEIsTUFBTSxFQUFFLENBQUM7Q0FDVjs7QUFSSCxBQVVFLFlBVlUsQ0FVVixDQUFDLENBQUM7RUFDQSxLQUFLLEVoVFFRLE9BQU87Q2dUSHJCOztBQWhCSCxBQWFJLFlBYlEsQ0FVVixDQUFDLEFBR0UsTUFBTSxDQUFDO0VBQ04sS0FBSyxFaFRiUyxPQUFPO0NnVGN0Qjs7QUFmTCxBQWtCRSxZQWxCVSxDQWtCVixLQUFLLENBQUM7RUFDSixTQUFTLEVBQUUsS0FBSztFQUNoQixPQUFPLEVBQUUsS0FBSztFQUNkLGFBQWEsRUFBRSxJQUFJO0NBQ3BCOztBQXRCSCxBQXdCRSxZQXhCVSxDQXdCVixJQUFJLEdBQUcsS0FBSyxDQUFDO0VBQ1gsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07Q0FDdkI7O0FBM0JILEFBNkJFLFlBN0JVLENBNkJWLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0VBQ2QsV0FBVyxFQUFFLENBQUM7Q0FDZjs7QUEvQkgsQUFpQ0UsWUFqQ1UsQ0FpQ1YsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixFQUFlO0VBQ25CLEtBQUssRUFBRSxJQUFJO0VBQ1gsVUFBVSxFaFRoQ0ksT0FBTztFZ1RpQ3JCLEtBQUssRUFBRSxLQUFLO0VBQ1osVUFBVSxFQUFFLGdCQUFnQjtDQU03Qjs7QUEzQ0gsQUF1Q0ksWUF2Q1EsQ0FpQ1YsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixDQU1ILE1BQU0sQ0FBQztFQUNOLFVBQVUsRWhUdkNJLE9BQU87RWdUd0NyQixVQUFVLEVoVFVDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLElBQUcsQ0FBQyxrQkFBa0I7Q2dUVC9DOztBQTFDTCxBQTZDRSxZQTdDVSxDQTZDVixrQkFBa0I7QUE3Q3BCLFlBQVksQ0E4Q1Ysa0JBQWtCLENBQUM7RUFDakIsT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUFHSCxBQUFBLFVBQVUsQ0FBQztFQUNULFFBQVEsRUFBRSxLQUFLO0VBQ2YsT0FBTyxFaFRiTyxJQUFJO0VnVGNsQixHQUFHLEVBQUUsQ0FBQztFQUNOLElBQUksRUFBRSxDQUFDO0VBQ1AsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsS0FBSztFQUNiLGdCQUFnQixFaFQ3Q0osa0JBQUs7RWdUOENqQixVQUFVLEVBQUUsV0FBVztDQTJJeEI7O0FBeklFLEFBQUQsaUJBQVEsQ0FBQztFQUVQLE1BQU0sRUFBRSxPQUFPO0VBRWYsS0FBSyxFaFQ5RFMsT0FBTztFZ1QrRHJCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxJQUFJO0VBQ1QsS0FBSyxFQUFFLElBQUk7RUFFWCxTQUFTLEVoVDVDSyxJQUFJO0VnVDZDbEIsT0FBTyxFQUFFLFlBQVk7Q0FNdEI7O0FBaEJBLEFBWUMsaUJBWk0sQUFZTCxNQUFNLENBQUM7RUFDTixLQUFLLEVoVHpFUyxPQUFPO0NnVDBFdEI7O0FBSUYsQUFBRCxtQkFBVSxDQUFDO0VBRVQsbUJBQW1CLEVBQUUsUUFBUTtFQUM3QixTQUFTLEVBQUUsb0JBQW9CO0VoVDRCakMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLEdBQUc7RUFDUixJQUFJLEVBQUUsR0FBRztFQUNULFNBQVMsRUFBRSxxQkFBb0I7RWdUNUI3QixVQUFVLEVBQUUsV0FBVztFQUV2QixnQkFBZ0IsRWhUekVOLEtBQUs7RWdUMEVmLFVBQVUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ2hUM0ViLGtCQUFLO0VnVDZFZixhQUFhLEVBQUUsR0FBRztFQUNsQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ2hUMUZELE9BQU87RWdUNEZ2QixTQUFTLEVBQUUsS0FBSztFQUNoQixLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBRUEsQUFBRCxlQUFNLENBQUM7RUFDTCxLQUFLLEVBQUUsS0FBSztFQUNaLE1BQU0sRUFBRSxLQUFLO0VBRWIsS0FBSyxFQUFFLEtBQUs7RUFDWixhQUFhLEVBQUUsUUFBUTtFQUN2QixPQUFPLEVBQUUsTUFBTTtDQVNoQjs7QUFmQSxBQVFDLGVBUkksQ0FRSixHQUFHLENBQUM7RUFDRixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQUssQ0FBQyxJQUFJLENoVDlGaEIsbUJBQUs7RWdUK0ZiLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLE1BQU0sRUFBRSxLQUFLO0VBQ2IsS0FBSyxFQUFFLE1BQU07Q0FDZDs7QUFHRixBQUFELGdCQUFPLENBQUM7RUFDTixTQUFTLEVoVHhGTSxNQUFNO0VnVHlGckIsV0FBVyxFQUFFLEdBQUc7Q0FDakI7O0FBRUEsQUFBRCxpQkFBUSxDQUFDO0VBQ1AsU0FBUyxFaFQvRkssSUFBSTtFZ1RnR2xCLFdBQVcsRWhUMUZJLGVBQWU7RWdUMkY5QixLQUFLLEVoVHZIbUIsT0FBTztFZ1R5SC9CLGNBQWMsRUFBRSxHQUFHO0VBQ25CLFdBQVcsRUFBRSxDQUFDO0VBQ2QsV0FBVyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDaFRsSFosa0JBQUs7Q2dUbUhoQjs7QUFFQSxBQUFELG9CQUFXLENBQUM7RUFDVixVQUFVLEVBQUUsTUFBTTtFQUNsQixXQUFXLEVoVGhHSyxlQUFlO0VnVGlHL0IsU0FBUyxFaFQxR00sTUFBTTtFZ1QyR3JCLEtBQUssRWhUcklXLE9BQU87Q2dUc0l4Qjs7QWhUNEhDLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTztFZ1R0TTNCLEFBQUQsaUJBQVEsQ0E2RUc7SUFDUCxNQUFNLEVBQUUsT0FBTztJQUVmLEtBQUssRWhUMUlPLE9BQU87SWdUMkluQixRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsSUFBSTtJQUNULEtBQUssRUFBRSxJQUFJO0lBRVgsU0FBUyxFaFR4SEcsSUFBSTtJZ1R5SGhCLE9BQU8sRUFBRSxZQUFZO0dBTXRCO0VBNUZGLEFBWUMsaUJBWk0sQUFZTCxNQUFNLENBNEVHO0lBQ04sS0FBSyxFaFRySk8sT0FBTztHZ1RzSnBCO0VBeEVKLEFBQUQsbUJBQVUsQ0E0RUc7SUFDVCxhQUFhLEVBQUUsQ0FBQztJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsUUFBUSxFQUFFLElBQUk7R0FDZjtFQUVBLEFBQUQsc0JBQWEsQ0FBRSxtQkFBUyxDQUFDO0lBQ3ZCLE1BQU0sRUFBRSxJQUFJO0dBQ2I7RUFsRUYsQUFBRCxlQUFNLENBb0VHO0lBQ0wsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUVaLEtBQUssRUFBRSxLQUFLO0lBQ1osYUFBYSxFQUFFLFFBQVE7R0FDeEI7RUF6REYsQUFBRCxnQkFBTyxDQTBERztJQUNOLFNBQVMsRWhUbEpJLE1BQU07SWdUbUpuQixXQUFXLEVBQUUsR0FBRztJQUNoQixVQUFVLEVBQUUsSUFBSTtHQU1qQjtFQVRBLEFBS0MsZ0JBTEssQ0FLTCxDQUFDLENBQUM7SUFDQSxXQUFXLEVBQUUsSUFBSTtHQUNsQjtFQTVESixBQUFELGlCQUFRLENBK0RHO0lBRVAsU0FBUyxFaFQ5SkksTUFBTTtJZ1RnS25CLGNBQWMsRUFBRSxHQUFHO0dBRXBCO0VBM0RGLEFBQUQsb0JBQVcsQ0E0REc7SUFDVixVQUFVLEVBQUUsTUFBTTtJQUNsQixXQUFXLEVoVDVKRyxlQUFlO0lnVDZKN0IsU0FBUyxFaFRyS0ksTUFBTTtJZ1RzS25CLEtBQUssRWhUak1TLE9BQU87R2dUa010Qjs7O0FDbk1MLEFBQUEsa0JBQWtCLENBQUM7RUFDakIsT0FBTyxFQUFFLE1BQU07Q0FDaEI7O0FDRkQsQUFBQSxjQUFjLENBQUM7RUFDYixRQUFRLEVBQUUsUUFBUTtDQStFbkI7O0FBN0VFLEFBQ0MscUJBRE0sQ0FDTixnQ0FBZ0MsQ0FBQztFQUMvQixVQUFVLEVBQUUsS0FDZDtDQUFDOztBQUdGLEFBQUQsZ0NBQW1CLENBQUM7RUFDbEIsVUFBVSxFQUFFLEtBQUs7RUFDakIsT0FBTyxFQUFFLElBQUk7Q0EwQ2Q7O0FBNUNBLEFBSUMsZ0NBSmlCLENBSWpCLEdBQUcsQ0FBQztFQUNGLE9BQU8sRUFBRSxJQUFJO0VBQ2IsS0FBSyxFQUFFLElBQUk7Q0FDWjs7QUFQRixBQVNDLGdDQVRpQixDQVNqQixHQUFHLENBQUM7RUFDRixLQUFLLEVBQUUsSUFBSTtFQUNYLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLE1BQU0sRUFBRSxJQUFJO0NBQ2I7O0FBRUEsQUFBRCx1Q0FBUSxDQUFDO0VBQ1AsUUFBUSxFQUFFLFFBQVE7RUFDbEIsTUFBTSxFQUFFLEtBQUs7RUFDYixRQUFRLEVBQUUsTUFBTTtDQXlCakI7O0FBNUJBLEFBS0MsdUNBTE0sQ0FLTixNQUFNLENBQUM7RUFDTCxTQUFTLEVBQUUsc0NBQXNDO0VBQ2pELFVBQVUsRUFBRSxPQUFPO0VBQ25CLEtBQUssRUFBRSxJQUFJO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsTUFBTSxFQUFFLElBQUk7RUFDWixJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsR0FBRyxFQUFFLENBQUM7RUFDTixNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDO0NBQ1g7O0FBaEJGLEFBa0JDLHVDQWxCTSxDQWtCTixXQUFXLENBQUM7RUFPVixVQUFVLEVBQUUsS0FBSztFQUNqQixNQUFNLEVBQUUsSUFBSTtDQUNiOztBQTNCRixBQW1CRyx1Q0FuQkksQ0FrQk4sV0FBVyxDQUNULEdBQUcsQ0FBQztFQUNGLEtBQUssRUFBRSxHQUFHO0VBQ1YsTUFBTSxFQUFFLElBQUk7RUFDWixVQUFVLEVBQUUsS0FBSztDQUNsQjs7QUFRTixBQUFELHlCQUFZLENBQUM7RUFNWCxPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE1BQU0sRUFBRSxHQUFHO0VBQ1gsV0FBVyxFbFRuQmMsRUFBRTtFa1RvQjNCLEtBQUssRUFBRSxLQUFLO0NBVWI7O0FBbkJFLEFBQUQsNkJBQUssQ0FBQztFQUNKLE1BQU0sRUFBRSxPQUFPO0VBQ2YsR0FBRyxFQUFFLEdBQUc7Q0FDVDs7QUFTRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RUFiekIsQUFBRCx5QkFBWSxDQUFDO0lBY1QsV0FBVyxFbFR2QmEsRUFBRTtHa1Q2QjdCOzs7QUFIQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RUFqQnpCLEFBQUQseUJBQVksQ0FBQztJQWtCVCxPQUFPLEVBQUUsQ0FBQyxDbFQxQmEsTUFBSztHa1Q0Qi9COzs7QUFRSCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RUFoRnJCLEFBQ0MscUJBRE0sQ0FDTixnQ0FBZ0MsQ0FtRkc7SUFDL0IsVUFBVSxFQUFFLElBQ2Q7R0FBQztFQWhGSixBQUFELGdDQUFtQixDQW1GRztJQUNsQixVQUFVLEVBQUUsS0FBSztHQU1sQjtFQTNFQSxBQUFELHVDQUFRLENBdUVHO0lBQ1AsTUFBTSxFQUFFLEtBQUs7R0FDZDtFQTFDSixBQUFELHlCQUFZLENBOENHO0lBRVgsVUFBVSxFQUFFLElBQUk7SUFFaEIsS0FBSyxFQUFFLEdBQUc7R0FLWDtFQVRBLEFBTUMseUJBTlUsQ0FNVixhQUFhLENBQUM7SUFDWixTQUFTLEVBQUUsTUFBTTtHQUNsQjtFQUdGLEFBQUQsa0NBQXFCLENBQUM7SUFDcEIsT0FBTyxFQUFFLElBQUk7R0FDZDs7O0FBS0wsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VBOUdyQixBQUFELGdDQUFtQixDQW1IRztJQUNsQixVQUFVLEVBQUUsS0FBSztHQUtsQjtFQTFHQSxBQUFELHVDQUFRLENBdUdHO0lBQ1AsTUFBTSxFQUFFLEtBQUs7R0FDZDs7O0FDaklQLEFBQUEsWUFBWSxDQUFBO0VBQ1YsVUFBVSxFQUFFLEtBQUs7RUFDakIsS0FBSyxFQUFFLElBQUk7RUFDWCxVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsSUFBRyxDQUFDLGtCQUFtQjtDQStLakQ7O0FBM0tFLEFBQUQsd0JBQWEsQ0FBQTtFQUFDLGdCQUFnQixFQUFFLE9BQU87Q0FBRzs7QUFDekMsQUFBRCx1QkFBWSxDQUFBO0VBQ1YsTUFBTSxFQUFFLElBQUk7RUFDWixnQkFBZ0IsRUFBRSxPQUFhO0NBR2hDOztBQUxBLEFBR0MsdUJBSFUsQ0FHVixrQkFBa0IsQ0FBQyxDQUFDLENBQUE7RUFBQyxLQUFLLEVBQUUsSUFBSTtDQUMvQjs7QUFKRixBQUdrQyx1QkFIdkIsQ0FHVixrQkFBa0IsQ0FBQyxDQUFDLEFBQWMsTUFBTSxDQUFBO0VBQUMsS0FBSyxFQUFFLEtBQUs7Q0FBRzs7QUFHekQsQUFBRCw2QkFBa0IsQ0FBQTtFQUFDLGdCQUFnQixFQUFFLE9BQWE7Q0FBRzs7QUFJcEQsQUFBRCxvQkFBUyxDQUFBO0VBQ1AsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLE1BQU07Q0FDaEI7O0FBQ0EsQUFBRCxzQkFBVyxDQUFBO0VBQ1QsTUFBTSxFQUFFLE1BQU07RUFDZCxRQUFRLEVBQUUsUUFBUTtDQUNuQjs7QUFHQSxBQUFELHNCQUFXLENBQUE7RUFDVCxNQUFNLEVBQUUsT0FBTztFQUNmLE9BQU8sRUFBRSxDQUFDO0NBZ0JYOztBQWxCQSxBQUdDLHNCQUhTLEFBR1IsT0FBTyxDQUFBO0VBQ04sTUFBTSxFQUFFLElBQUk7RUFDWixJQUFJLEVBQUUsQ0FBQztFQUNQLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxFQUFFO0VBQ1gsVUFBVSxFblRuQ0ksT0FBTztFbVRvQ3JCLE1BQU0sRUFBRSxHQUFHO0NBQ1o7O0FBRUUsQUFDQyx3QkFEQyxBQUNBLE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxFQUFLO0NBQ2I7O0FBSEYsQUFDQyx3QkFEQyxBQUNBLE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxFQUFLO0NBQ2I7O0FBSEYsQUFDQyx3QkFEQyxBQUNBLE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxFQUFLO0NBQ2I7O0FBSEYsQUFDQyx3QkFEQyxBQUNBLE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxFQUFLO0NBQ2I7O0FBSEYsQUFDQyx3QkFEQyxBQUNBLE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxFQUFLO0NBQ2I7O0FBSEYsQUFDQyx3QkFEQyxBQUNBLE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxFQUFLO0NBQ2I7O0FBSEYsQUFDQyx3QkFEQyxBQUNBLE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxFQUFLO0NBQ2I7O0FBSEYsQUFDQyx3QkFEQyxBQUNBLE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxFQUFLO0NBQ2I7O0FBSEYsQUFDQyx3QkFEQyxBQUNBLE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxFQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFDQyx5QkFERSxBQUNELE1BQU0sQ0FBQTtFQUNMLEtBQUssRUFBRSxHQUFLO0NBQ2I7O0FBSEYsQUFD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QUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FBSztDQUFJOztBQUF2QyxBQUFELGlCQUFLLENBQUUsdUJBQVUsQ0FBSztFQUFFLEtBQUssRUFBRSxHQUFLO0NBQUk7O0FBQXZDLEFBQUQsaUJBQUssQ0FBRSx1QkFBVSxDQUFLO0VBQUUsS0FBSyxFQUFFLEdBQUs7Q0FBSTs7QUFBdkMsQUFBRCxpQkFBSyxDQUFFLHVCQUFVLENBQUs7RUFBRSxLQUFLLEVBQUUsR0FB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 */