@font-face {
  font-family: 'Magento-Icons';
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/Magento-Icons/Magento-Icons.eot');
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/Magento-Icons/Magento-Icons.eot?#iefix') format('embedded-opentype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/Magento-Icons/Magento-Icons.woff2') format('woff2'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/Magento-Icons/Magento-Icons.woff') format('woff'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/Magento-Icons/Magento-Icons.ttf') format('truetype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/Magento-Icons/Magento-Icons.svg#Magento-Icons') format('svg');
  font-weight: normal;
  font-style: normal;
}
.spinner {
  display: inline-block;
  font-size: 4rem;
  height: 1em;
  margin-right: 1.5rem;
  position: relative;
  width: 1em;
}
.spinner > span {
  -webkit-transform: scale(0.4);
  -moz-transform: scale(0.4);
  -ms-transform: scale(0.4);
  transform: scale(0.4);
  -webkit-animation-name: fade;
  -moz-animation-name: fade;
  -ms-animation-name: fade;
  animation-name: fade;
  -webkit-animation-duration: .72s;
  -moz-animation-duration: .72s;
  -ms-animation-duration: .72s;
  animation-duration: .72s;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  -ms-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-direction: normal;
  -moz-animation-direction: normal;
  -ms-animation-direction: normal;
  animation-direction: normal;
  background-color: #fff;
  border-radius: 6px;
  clip: rect(0 0.28571429em 0.1em 0);
  height: .1em;
  margin-top: .5em;
  position: absolute;
  width: 1em;
}
.spinner > span:nth-child(1) {
  -webkit-animation-delay: 0.27s;
  -moz-animation-delay: 0.27s;
  -ms-animation-delay: 0.27s;
  animation-delay: 0.27s;
  -webkit-transform: rotate(-315deg);
  -moz-transform: rotate(-315deg);
  -ms-transform: rotate(-315deg);
  transform: rotate(-315deg);
}
.spinner > span:nth-child(2) {
  -webkit-animation-delay: 0.36s;
  -moz-animation-delay: 0.36s;
  -ms-animation-delay: 0.36s;
  animation-delay: 0.36s;
  -webkit-transform: rotate(-270deg);
  -moz-transform: rotate(-270deg);
  -ms-transform: rotate(-270deg);
  transform: rotate(-270deg);
}
.spinner > span:nth-child(3) {
  -webkit-animation-delay: 0.45s;
  -moz-animation-delay: 0.45s;
  -ms-animation-delay: 0.45s;
  animation-delay: 0.45s;
  -webkit-transform: rotate(-225deg);
  -moz-transform: rotate(-225deg);
  -ms-transform: rotate(-225deg);
  transform: rotate(-225deg);
}
.spinner > span:nth-child(4) {
  -webkit-animation-delay: 0.54s;
  -moz-animation-delay: 0.54s;
  -ms-animation-delay: 0.54s;
  animation-delay: 0.54s;
  -webkit-transform: rotate(-180deg);
  -moz-transform: rotate(-180deg);
  -ms-transform: rotate(-180deg);
  transform: rotate(-180deg);
}
.spinner > span:nth-child(5) {
  -webkit-animation-delay: 0.63s;
  -moz-animation-delay: 0.63s;
  -ms-animation-delay: 0.63s;
  animation-delay: 0.63s;
  -webkit-transform: rotate(-135deg);
  -moz-transform: rotate(-135deg);
  -ms-transform: rotate(-135deg);
  transform: rotate(-135deg);
}
.spinner > span:nth-child(6) {
  -webkit-animation-delay: 0.72s;
  -moz-animation-delay: 0.72s;
  -ms-animation-delay: 0.72s;
  animation-delay: 0.72s;
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  transform: rotate(-90deg);
}
.spinner > span:nth-child(7) {
  -webkit-animation-delay: 0.81s;
  -moz-animation-delay: 0.81s;
  -ms-animation-delay: 0.81s;
  animation-delay: 0.81s;
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
.spinner > span:nth-child(8) {
  -webkit-animation-delay: 0.9;
  -moz-animation-delay: 0.9;
  -ms-animation-delay: 0.9;
  animation-delay: 0.9;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -ms-transform: rotate(0deg);
  transform: rotate(0deg);
}
@-moz-keyframes fade {
  0% {
    background-color: #514943;
  }
  100% {
    background-color: #fff;
  }
}
@-webkit-keyframes fade {
  0% {
    background-color: #514943;
  }
  100% {
    background-color: #fff;
  }
}
@-ms-keyframes fade {
  0% {
    background-color: #514943;
  }
  100% {
    background-color: #fff;
  }
}
@keyframes fade {
  0% {
    background-color: #514943;
  }
  100% {
    background-color: #fff;
  }
}
form.loading .mgz__spinner {
  display: block;
}
.mgz__spinner {
  display: none;
  position: relative;
  width: 186px;
  height: 20px;
  margin: auto;
  position: absolute;
  left: 45%;
  top: 15px;
}
.mgz__spinner .spinner-item {
  position: absolute;
  top: 0;
  background-color: #d8d8d8;
  width: 20px;
  height: 20px;
  animation-name: bounce_fountainG;
  -o-animation-name: bounce_fountainG;
  -ms-animation-name: bounce_fountainG;
  -webkit-animation-name: bounce_fountainG;
  -moz-animation-name: bounce_fountainG;
  animation-duration: 0.645s;
  -o-animation-duration: 0.645s;
  -ms-animation-duration: 0.645s;
  -webkit-animation-duration: 0.645s;
  -moz-animation-duration: 0.645s;
  animation-iteration-count: infinite;
  -o-animation-iteration-count: infinite;
  -ms-animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  animation-direction: normal;
  -o-animation-direction: normal;
  -ms-animation-direction: normal;
  -webkit-animation-direction: normal;
  -moz-animation-direction: normal;
  transform: scale(0.3);
  -o-transform: scale(0.3);
  -ms-transform: scale(0.3);
  -webkit-transform: scale(0.3);
  -moz-transform: scale(0.3);
  border-radius: 15px;
  -o-border-radius: 15px;
  -ms-border-radius: 15px;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
}
.mgz__spinner .spinner-item.spinner-item-1 {
  left: 0;
  animation-delay: 0.256s;
  -o-animation-delay: 0.256s;
  -ms-animation-delay: 0.256s;
  -webkit-animation-delay: 0.256s;
  -moz-animation-delay: 0.256s;
}
.mgz__spinner .spinner-item.spinner-item-2 {
  left: 20px;
  animation-delay: 0.3225s;
  -o-animation-delay: 0.3225s;
  -ms-animation-delay: 0.3225s;
  -webkit-animation-delay: 0.3225s;
  -moz-animation-delay: 0.3225s;
}
.mgz__spinner .spinner-item.spinner-item-3 {
  left: 40px;
  animation-delay: 0.389s;
  -o-animation-delay: 0.389s;
  -ms-animation-delay: 0.389s;
  -webkit-animation-delay: 0.389s;
  -moz-animation-delay: 0.389s;
}
.mgz__spinner .spinner-item.spinner-item-4 {
  left: 60px;
  animation-delay: 0.4555s;
  -o-animation-delay: 0.4555s;
  -ms-animation-delay: 0.4555s;
  -webkit-animation-delay: 0.4555s;
  -moz-animation-delay: 0.4555s;
}
.mgz__spinner .spinner-item.spinner-item-5 {
  left: 80px;
  animation-delay: 0.522s;
  -o-animation-delay: 0.522s;
  -ms-animation-delay: 0.522s;
  -webkit-animation-delay: 0.522s;
  -moz-animation-delay: 0.522s;
}
.mgz__spinner .spinner-item.spinner-item-6 {
  left: 100px;
  animation-delay: 0.5885s;
  -o-animation-delay: 0.5885s;
  -ms-animation-delay: 0.5885s;
  -webkit-animation-delay: 0.5885s;
  -moz-animation-delay: 0.5885s;
}
.mgz__spinner .spinner-item.spinner-item-7 {
  left: 120px;
  animation-delay: 0.645s;
  -o-animation-delay: 0.645s;
  -ms-animation-delay: 0.645s;
  -webkit-animation-delay: 0.645s;
  -moz-animation-delay: 0.645s;
}
.mgz__spinner .spinner-item.spinner-item-8 {
  left: 140px;
  animation-delay: 0.7115s;
  -o-animation-delay: 0.7115s;
  -ms-animation-delay: 0.7115s;
  -webkit-animation-delay: 0.7115s;
  -moz-animation-delay: 0.7115s;
}
@keyframes bounce_fountainG {
  0% {
    transform: scale(1);
    background-color: #d8d8d8;
  }
  100% {
    transform: scale(0.3);
    background-color: #d8d8d8;
  }
}
@-o-keyframes bounce_fountainG {
  0% {
    -o-transform: scale(1);
    background-color: #d8d8d8;
  }
  100% {
    -o-transform: scale(0.3);
    background-color: #d8d8d8;
  }
}
@-ms-keyframes bounce_fountainG {
  0% {
    -ms-transform: scale(1);
    background-color: #d8d8d8;
  }
  100% {
    -ms-transform: scale(0.3);
    background-color: #d8d8d8;
  }
}
@-webkit-keyframes bounce_fountainG {
  0% {
    -webkit-transform: scale(1);
    background-color: #d8d8d8;
  }
  100% {
    -webkit-transform: scale(0.3);
    background-color: #d8d8d8;
  }
}
@-moz-keyframes bounce_fountainG {
  0% {
    -moz-transform: scale(1);
    background-color: #d8d8d8;
  }
  100% {
    -moz-transform: scale(0.3);
    background-color: #d8d8d8;
  }
}
.mgz__page-actions.page-main-actions {
  margin: 0 0 3rem;
  background: #f8f8f8;
  border-bottom: 1px solid #e3e3e3;
  border-top: 1px solid #e3e3e3;
  padding: 1.5rem;
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons {
  float: right;
  justify-content: flex-end;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button {
  background-color: transparent;
  text-shadow: none;
  color: #41362f;
  font-size: 1.6rem;
  letter-spacing: .025em;
  padding-bottom: .8875em;
  padding-top: .8875em;
  border-color: transparent;
  box-shadow: none;
  margin-left: 1.3rem;
  font-weight: 600;
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button.primary {
  -ms-flex-order: 2;
  -webkit-order: 2;
  order: 2;
  background-color: #eb5202;
  border-color: #eb5202;
  color: #fff;
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25);
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button.primary:hover {
  background-color: #ba4000;
  border-color: #b84002;
  box-shadow: 0 0 0 1px #007bdb;
  color: #fff;
  text-decoration: none;
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button.action-secondary {
  background-color: #514943;
  border-color: #514943;
  color: #fff;
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button.action-secondary:hover {
  background-color: #35302c;
  border-color: #35302c;
  box-shadow: 0 0 0 1px #007bdb;
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons > button.back {
  float: left;
  -ms-flex-order: -1;
  -webkit-order: -1;
  order: -1;
  margin-left: 1.3rem;
}
@media (max-width: 480px) {
  .mgz__page-actions.page-main-actions .page-actions .page-actions-buttons {
    display: block;
  }
  .mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button.back {
    margin: 0;
  }
}
.mgz__page-actions.page-main-actions .page-actions:before,
.mgz__page-actions.page-main-actions .page-actions:after {
  content: '';
  display: table;
  clear: both;
}
.mgz__page-actions.page-main-actions .page-actions #back:before {
  content: '\e626';
  margin-right: .5em;
  position: relative;
  top: 1px;
  font-family: 'Magento-Icons';
}
@media (max-width: 480px) {
  .mgz__page-actions.page-main-actions .page-actions .page-actions-buttons {
    text-align: center;
  }
  .mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button {
    margin-left: 0;
  }
}
.sidebar {
  max-width: 100%;
}
.payu-block {
    width: 100%;
    text-align: center;
}
.payu-block__wrapper {
    display: inline-block;
    width: 100%;
    box-sizing: border-box;
    max-width: 452px;
}
.block-payu-cards .card .col {
    vertical-align: middle;
}
.block-payu-cards .card__logo img {
    max-height: 30px;
}
.block-payu-cards .card__action button[type="submit"] {
    padding: 0;
    box-shadow: none;
    border-radius: 0;
    background: transparent;
    border: 0;
    font-weight: 400;
    color: #1979c3;
    font-size: 1.4rem;
}
.block-payu-cards .card__action button[type="submit"]:hover {
    text-decoration: underline;
}
.payu-repay {
    margin-bottom: 20px;
}
.payu-repay .repay__method:last-child {
    border-bottom: 1px solid #cccccc;
}
.payu-repay .repay__method .payment-method-title {
    padding: 20px 0;
    border-top: 1px solid #cccccc;
}
.payu-repay .repay__method .payment-method-title label {
    cursor: pointer;
}
.payu-repay .repay__method .payment-method-content {
    padding: 0 0 20px;
}
.payu-repay .msg__repay {
    margin-top: 10px;
}
.payu-payment._active .payment-method-content {
    display: block;
}
.payu-payment__logo {
    max-height: 25px;
    margin-bottom: -5px;
}
.payu-payment .payment-method-content {
    display: none;
}
.payu-payment .payment__method {
    padding: 0 0 20px 0;
    border-bottom: 1px solid #dcdcdc;
}
.payu-payment .payment__method .method__single {
    position: relative;
    display: inline-block;
    box-sizing: border-box;
    padding: 2px;
    width: 100%;
    height: 60px;
    float: left;
}
.payu-payment .payment__method .method__single--content {
    width: 100%;
    height: 100%;
}
.payu-payment .payment__method .method__single--content label {
    display: block;
}
.payu-payment .payment__method .method__single--content img {
    max-height: calc(100% - 18px);
    max-width: calc(100% - 18px);
    position: absolute;
    top: 50%;
    left: 50%;
    margin-right: -50%;
    transform: translate(-50%, -50%);
}
.payu-payment .payment__method .method__single--content__image {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
}
.payu-payment .payment__method .method__single:nth-child(5n + 1) {
    padding-left: 0;
}
.payu-payment .payment__method .method__single--clear {
    clear: both;
}
.payu-payment .payment__method .payu-card {
    margin-bottom: 10px;
    cursor: pointer;
}
.payu-payment .payment__method .payu-card__img-wrapper {
    text-align: center;
    min-width: 100px;
    font-size: 0;
}
.payu-payment .payment__method .payu-card__img-wrapper > * {
    font-size: 1em;
}
.payu-payment .payment__method .payu-card__info {
    list-style: none;
    position: relative;
    display: table;
    box-sizing: border-box;
}
.payu-payment .payment__method .payu-card__info > * {
    display: table-cell;
    vertical-align: middle;
}
.payu-payment .payment__method .payu-card__info span {
    padding-left: 20px;
}
.payu-payment .payment__method .payu-card__info img {
    max-height: 30px;
}
.payu-payment .payment__method .method__single--content,
.payu-payment .payment__method .payu-card {
    box-sizing: border-box;
    padding: 7px;
    border: 1px solid #dcdcdc;
    border-radius: 3px;
}

.payu-payment .payment__method .method__single--content:not(._disabled),
.payu-payment .payment__method .payu-card:not(._disabled) {
    cursor: pointer;
}

.payu-payment .payment__method .method__single--content:not(._disabled):hover,
.payu-payment .payment__method .payu-card:not(._disabled):hover {
    background: rgba(220, 220, 220, 0.5);
    border-color: grey;
}
.payu-payment .payment__method .method__single--content:not(._disabled):focus,
.payu-payment .payment__method .payu-card:not(._disabled):focus {
    border-color: darkgreen;
}
.payu-payment .payment__method .method__single--content:not(._disabled)._active,
.payu-payment .payment__method .payu-card:not(._disabled)._active {
    background: rgba(220, 220, 220, 0.5);
    border-color: darkgreen;
}
.payu-payment .payment__method .method__single--content._disabled,
.payu-payment .payment__method .payu-card._disabled {
    -webkit-filter: grayscale(1);
    filter: grayscale(1);
    opacity: 0.5;
    cursor: default;
}
.payu-payment .payment__payu-agreement .payu-agreement__wrapper {
    margin-top: 20px;
}
.payu-payment .payment__payu-agreement .payu-agreement__wrapper > * {
    margin-bottom: 10px;
}
.payu-payment .payu-text {
    font-size: 10px;
}
.checkout-index-index .actions-toolbar .action.primary,
.sales-order-repayview .actions-toolbar .action.primary {
    margin-top: 20px;
}
.payu-msg .msg__error {
    color: red;
}

.payu-card-form-container {
    width: 380px;
    margin: 25px auto 15px;
}


.payu-card-cvv-form-container {
    width: 200px;
    margin: 25px auto 15px;
}

.payu-card-form-container .payu-card-container,
.payu-card-cvv-form-container .payu-card-cvv-container {
    margin: 0 auto;
    color: #ffffff;
    border-radius: 6px;
    padding: 15px 10px;
    border: 1px solid #428f29;
    background: rgba(66, 143, 41, 1);
    background: linear-gradient(135deg, rgba(53, 112, 33, 1) 0%, rgba(66, 143, 41, 1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#357021', endColorstr='#428f29', GradientType=1);
}

.payu-card-form-container .payu-card-container div.aside {
    font-size: 14px;
    margin-bottom: 6px;
}

.payu-card-form-container .payu-card-form,
.payu-card-cvv-form-container .payu-card-form {
    margin: 0 auto 0 auto;
    background-color: #ffffff;
    padding: 5px;
    border-radius: 4px;
}

.payu-card-form-container .card-details .expiration {
    width: 50%;
    float: left;
}
.payu-card-form-container .card-details .cvv {
    width: 45%;
    float: right;
}
.payu-card-form-container .clearfix:before, .clearfix:after {
    content: "";
    display: table;
}

.payu-card-form-container .clearfix:after { clear: both; }

.payu-card-form-container .clearfix {
    margin-top: 10px;
}

.payu-card-form-container .payu-card-legend-container {
    color: #ffffff;
    font-size: 12px;
    font-weight: bold;
    overflow: auto
}
.payu-card-form-container .payu-card-legend-container > div {
    float: left;
}
.payu-card-form-container .payu-card-legend-container > .payu-card-legend-number {
    width: 220px;
    margin-left: 45px
}
.payu-card-form-container .payu-card-legend-container > .payu-card-legend-valid {
    width: 85px
}
.payu-store-card {
    margin: 15px 0;
}
.payu-read-more {
    cursor: pointer;
    text-decoration: underline;
}

@media all and (min-width: 768px), print {
    .payu-payment .payment__method .method__single {
        width: 16.66666667%;
    }
}

@media only screen and (max-width: 500px) {
    .payu-card-form-container {
        width: 100%;
    }
}
/*!
 *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */@font-face{font-family:'FontAwesome';src:url('../../frontend/Creativestyle/theme-kma/pl_PL/Magenest_Popup/fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../../frontend/Creativestyle/theme-kma/pl_PL/Magenest_Popup/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../../frontend/Creativestyle/theme-kma/pl_PL/Magenest_Popup/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../../frontend/Creativestyle/theme-kma/pl_PL/Magenest_Popup/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../../frontend/Creativestyle/theme-kma/pl_PL/Magenest_Popup/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../../frontend/Creativestyle/theme-kma/pl_PL/Magenest_Popup/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
@charset "UTF-8"; /*!
 * animate.css - https://animate.style/
 * Version - 4.1.0
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2020 Animate.css
 */
:root {
  --animate-duration:1s;--animate-delay:1s;--animate-repeat:1}

.animate__animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-duration: var(--animate-duration);
  animation-duration: var(--animate-duration);
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both
}

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

.animate__animated.animate__repeat-1 {
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-iteration-count: var(--animate-repeat);
  animation-iteration-count: var(--animate-repeat)
}

.animate__animated.animate__repeat-2 {
  -webkit-animation-iteration-count: 2;
  animation-iteration-count: 2;
  -webkit-animation-iteration-count: calc(var(--animate-repeat)*2);
  animation-iteration-count: calc(var(--animate-repeat)*2)
}

.animate__animated.animate__repeat-3 {
  -webkit-animation-iteration-count: 3;
  animation-iteration-count: 3;
  -webkit-animation-iteration-count: calc(var(--animate-repeat)*3);
  animation-iteration-count: calc(var(--animate-repeat)*3)
}

.animate__animated.animate__delay-1s {
  -webkit-animation-delay: 1s;
  animation-delay: 1s;
  -webkit-animation-delay: var(--animate-delay);
  animation-delay: var(--animate-delay)
}

.animate__animated.animate__delay-2s {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
  -webkit-animation-delay: calc(var(--animate-delay)*2);
  animation-delay: calc(var(--animate-delay)*2)
}

.animate__animated.animate__delay-3s {
  -webkit-animation-delay: 3s;
  animation-delay: 3s;
  -webkit-animation-delay: calc(var(--animate-delay)*3);
  animation-delay: calc(var(--animate-delay)*3)
}

.animate__animated.animate__delay-4s {
  -webkit-animation-delay: 4s;
  animation-delay: 4s;
  -webkit-animation-delay: calc(var(--animate-delay)*4);
  animation-delay: calc(var(--animate-delay)*4)
}

.animate__animated.animate__delay-5s {
  -webkit-animation-delay: 5s;
  animation-delay: 5s;
  -webkit-animation-delay: calc(var(--animate-delay)*5);
  animation-delay: calc(var(--animate-delay)*5)
}

.animate__animated.animate__faster {
  -webkit-animation-duration: .5s;
  animation-duration: .5s;
  -webkit-animation-duration: calc(var(--animate-duration)/2);
  animation-duration: calc(var(--animate-duration)/2)
}

.animate__animated.animate__fast {
  -webkit-animation-duration: .8s;
  animation-duration: .8s;
  -webkit-animation-duration: calc(var(--animate-duration)*0.8);
  animation-duration: calc(var(--animate-duration)*0.8)
}

.animate__animated.animate__slow {
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-animation-duration: calc(var(--animate-duration)*2);
  animation-duration: calc(var(--animate-duration)*2)
}

.animate__animated.animate__slower {
  -webkit-animation-duration: 3s;
  animation-duration: 3s;
  -webkit-animation-duration: calc(var(--animate-duration)*3);
  animation-duration: calc(var(--animate-duration)*3)
}

@media (prefers-reduced-motion:reduce),print {
  .animate__animated {
    -webkit-animation-duration: 1ms!important;
    animation-duration: 1ms!important;
    -webkit-transition-duration: 1ms!important;
    transition-duration: 1ms!important;
    -webkit-animation-iteration-count: 1!important;
    animation-iteration-count: 1!important
  }
  
  .animate__animated[class*=Out] {
    opacity: 0
  }
}

@-webkit-keyframes bounce {
  0%,20%,53%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1);
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  40%,43% {
    -webkit-animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    -webkit-transform: translate3d(0,-30px,0) scaleY(1.1);
    transform: translate3d(0,-30px,0) scaleY(1.1)
  }
  
  70% {
    -webkit-animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    -webkit-transform: translate3d(0,-15px,0) scaleY(1.05);
    transform: translate3d(0,-15px,0) scaleY(1.05)
  }
  
  80% {
    -webkit-transition-timing-function: cubic-bezier(.215,.61,.355,1);
    transition-timing-function: cubic-bezier(.215,.61,.355,1);
    -webkit-transform: translateZ(0) scaleY(.95);
    transform: translateZ(0) scaleY(.95)
  }
  
  90% {
    -webkit-transform: translate3d(0,-4px,0) scaleY(1.02);
    transform: translate3d(0,-4px,0) scaleY(1.02)
  }
}

@keyframes bounce {
  0%,20%,53%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1);
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  40%,43% {
    -webkit-animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    -webkit-transform: translate3d(0,-30px,0) scaleY(1.1);
    transform: translate3d(0,-30px,0) scaleY(1.1)
  }
  
  70% {
    -webkit-animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    -webkit-transform: translate3d(0,-15px,0) scaleY(1.05);
    transform: translate3d(0,-15px,0) scaleY(1.05)
  }
  
  80% {
    -webkit-transition-timing-function: cubic-bezier(.215,.61,.355,1);
    transition-timing-function: cubic-bezier(.215,.61,.355,1);
    -webkit-transform: translateZ(0) scaleY(.95);
    transform: translateZ(0) scaleY(.95)
  }
  
  90% {
    -webkit-transform: translate3d(0,-4px,0) scaleY(1.02);
    transform: translate3d(0,-4px,0) scaleY(1.02)
  }
}

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

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

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

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

@-webkit-keyframes pulse {
  0% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
  
  50% {
    -webkit-transform: scale3d(1.05,1.05,1.05);
    transform: scale3d(1.05,1.05,1.05)
  }
  
  to {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

@keyframes pulse {
  0% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
  
  50% {
    -webkit-transform: scale3d(1.05,1.05,1.05);
    transform: scale3d(1.05,1.05,1.05)
  }
  
  to {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

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

@-webkit-keyframes rubberBand {
  0% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
  
  30% {
    -webkit-transform: scale3d(1.25,.75,1);
    transform: scale3d(1.25,.75,1)
  }
  
  40% {
    -webkit-transform: scale3d(.75,1.25,1);
    transform: scale3d(.75,1.25,1)
  }
  
  50% {
    -webkit-transform: scale3d(1.15,.85,1);
    transform: scale3d(1.15,.85,1)
  }
  
  65% {
    -webkit-transform: scale3d(.95,1.05,1);
    transform: scale3d(.95,1.05,1)
  }
  
  75% {
    -webkit-transform: scale3d(1.05,.95,1);
    transform: scale3d(1.05,.95,1)
  }
  
  to {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

@keyframes rubberBand {
  0% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
  
  30% {
    -webkit-transform: scale3d(1.25,.75,1);
    transform: scale3d(1.25,.75,1)
  }
  
  40% {
    -webkit-transform: scale3d(.75,1.25,1);
    transform: scale3d(.75,1.25,1)
  }
  
  50% {
    -webkit-transform: scale3d(1.15,.85,1);
    transform: scale3d(1.15,.85,1)
  }
  
  65% {
    -webkit-transform: scale3d(.95,1.05,1);
    transform: scale3d(.95,1.05,1)
  }
  
  75% {
    -webkit-transform: scale3d(1.05,.95,1);
    transform: scale3d(1.05,.95,1)
  }
  
  to {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

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

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

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

.animate__shakeX {
  -webkit-animation-name: shakeX;
  animation-name: shakeX
}

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

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

.animate__shakeY {
  -webkit-animation-name: shakeY;
  animation-name: shakeY
}

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

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

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

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

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

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

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

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

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

@-webkit-keyframes wobble {
  0% {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  15% {
    -webkit-transform: translate3d(-25%,0,0) rotate(-5deg);
    transform: translate3d(-25%,0,0) rotate(-5deg)
  }
  
  30% {
    -webkit-transform: translate3d(20%,0,0) rotate(3deg);
    transform: translate3d(20%,0,0) rotate(3deg)
  }
  
  45% {
    -webkit-transform: translate3d(-15%,0,0) rotate(-3deg);
    transform: translate3d(-15%,0,0) rotate(-3deg)
  }
  
  60% {
    -webkit-transform: translate3d(10%,0,0) rotate(2deg);
    transform: translate3d(10%,0,0) rotate(2deg)
  }
  
  75% {
    -webkit-transform: translate3d(-5%,0,0) rotate(-1deg);
    transform: translate3d(-5%,0,0) rotate(-1deg)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes wobble {
  0% {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  15% {
    -webkit-transform: translate3d(-25%,0,0) rotate(-5deg);
    transform: translate3d(-25%,0,0) rotate(-5deg)
  }
  
  30% {
    -webkit-transform: translate3d(20%,0,0) rotate(3deg);
    transform: translate3d(20%,0,0) rotate(3deg)
  }
  
  45% {
    -webkit-transform: translate3d(-15%,0,0) rotate(-3deg);
    transform: translate3d(-15%,0,0) rotate(-3deg)
  }
  
  60% {
    -webkit-transform: translate3d(10%,0,0) rotate(2deg);
    transform: translate3d(10%,0,0) rotate(2deg)
  }
  
  75% {
    -webkit-transform: translate3d(-5%,0,0) rotate(-1deg);
    transform: translate3d(-5%,0,0) rotate(-1deg)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

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

@-webkit-keyframes jello {
  0%,11.1%,to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg)
  }
  
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg)
  }
  
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg)
  }
  
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg)
  }
  
  66.6% {
    -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);
    transform: skewX(-.78125deg) skewY(-.78125deg)
  }
  
  77.7% {
    -webkit-transform: skewX(.390625deg) skewY(.390625deg);
    transform: skewX(.390625deg) skewY(.390625deg)
  }
  
  88.8% {
    -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);
    transform: skewX(-.1953125deg) skewY(-.1953125deg)
  }
}

@keyframes jello {
  0%,11.1%,to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg)
  }
  
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg)
  }
  
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg)
  }
  
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg)
  }
  
  66.6% {
    -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);
    transform: skewX(-.78125deg) skewY(-.78125deg)
  }
  
  77.7% {
    -webkit-transform: skewX(.390625deg) skewY(.390625deg);
    transform: skewX(.390625deg) skewY(.390625deg)
  }
  
  88.8% {
    -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);
    transform: skewX(-.1953125deg) skewY(-.1953125deg)
  }
}

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

@-webkit-keyframes heartBeat {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
  
  14% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3)
  }
  
  28% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
  
  42% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3)
  }
  
  70% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
}

@keyframes heartBeat {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
  
  14% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3)
  }
  
  28% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
  
  42% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3)
  }
  
  70% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
}

.animate__heartBeat {
  -webkit-animation-name: heartBeat;
  animation-name: heartBeat;
  -webkit-animation-duration: 1.3s;
  animation-duration: 1.3s;
  -webkit-animation-duration: calc(var(--animate-duration)*1.3);
  animation-duration: calc(var(--animate-duration)*1.3);
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out
}

@-webkit-keyframes backInDown {
  0% {
    -webkit-transform: translateY(-1200px) scale(.7);
    transform: translateY(-1200px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

@keyframes backInDown {
  0% {
    -webkit-transform: translateY(-1200px) scale(.7);
    transform: translateY(-1200px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

.animate__backInDown {
  -webkit-animation-name: backInDown;
  animation-name: backInDown
}

@-webkit-keyframes backInLeft {
  0% {
    -webkit-transform: translateX(-2000px) scale(.7);
    transform: translateX(-2000px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

@keyframes backInLeft {
  0% {
    -webkit-transform: translateX(-2000px) scale(.7);
    transform: translateX(-2000px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

.animate__backInLeft {
  -webkit-animation-name: backInLeft;
  animation-name: backInLeft
}

@-webkit-keyframes backInRight {
  0% {
    -webkit-transform: translateX(2000px) scale(.7);
    transform: translateX(2000px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

@keyframes backInRight {
  0% {
    -webkit-transform: translateX(2000px) scale(.7);
    transform: translateX(2000px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

.animate__backInRight {
  -webkit-animation-name: backInRight;
  animation-name: backInRight
}

@-webkit-keyframes backInUp {
  0% {
    -webkit-transform: translateY(1200px) scale(.7);
    transform: translateY(1200px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

@keyframes backInUp {
  0% {
    -webkit-transform: translateY(1200px) scale(.7);
    transform: translateY(1200px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

.animate__backInUp {
  -webkit-animation-name: backInUp;
  animation-name: backInUp
}

@-webkit-keyframes backOutDown {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateY(700px) scale(.7);
    transform: translateY(700px) scale(.7);
    opacity: .7
  }
}

@keyframes backOutDown {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateY(700px) scale(.7);
    transform: translateY(700px) scale(.7);
    opacity: .7
  }
}

.animate__backOutDown {
  -webkit-animation-name: backOutDown;
  animation-name: backOutDown
}

@-webkit-keyframes backOutLeft {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateX(-2000px) scale(.7);
    transform: translateX(-2000px) scale(.7);
    opacity: .7
  }
}

@keyframes backOutLeft {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateX(-2000px) scale(.7);
    transform: translateX(-2000px) scale(.7);
    opacity: .7
  }
}

.animate__backOutLeft {
  -webkit-animation-name: backOutLeft;
  animation-name: backOutLeft
}

@-webkit-keyframes backOutRight {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateX(2000px) scale(.7);
    transform: translateX(2000px) scale(.7);
    opacity: .7
  }
}

@keyframes backOutRight {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateX(2000px) scale(.7);
    transform: translateX(2000px) scale(.7);
    opacity: .7
  }
}

.animate__backOutRight {
  -webkit-animation-name: backOutRight;
  animation-name: backOutRight
}

@-webkit-keyframes backOutUp {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateY(-700px) scale(.7);
    transform: translateY(-700px) scale(.7);
    opacity: .7
  }
}

@keyframes backOutUp {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateY(-700px) scale(.7);
    transform: translateY(-700px) scale(.7);
    opacity: .7
  }
}

.animate__backOutUp {
  -webkit-animation-name: backOutUp;
  animation-name: backOutUp
}

@-webkit-keyframes bounceIn {
  0%,20%,40%,60%,80%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3,.3,.3);
    transform: scale3d(.3,.3,.3)
  }
  
  20% {
    -webkit-transform: scale3d(1.1,1.1,1.1);
    transform: scale3d(1.1,1.1,1.1)
  }
  
  40% {
    -webkit-transform: scale3d(.9,.9,.9);
    transform: scale3d(.9,.9,.9)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03,1.03,1.03);
    transform: scale3d(1.03,1.03,1.03)
  }
  
  80% {
    -webkit-transform: scale3d(.97,.97,.97);
    transform: scale3d(.97,.97,.97)
  }
  
  to {
    opacity: 1;
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

@keyframes bounceIn {
  0%,20%,40%,60%,80%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3,.3,.3);
    transform: scale3d(.3,.3,.3)
  }
  
  20% {
    -webkit-transform: scale3d(1.1,1.1,1.1);
    transform: scale3d(1.1,1.1,1.1)
  }
  
  40% {
    -webkit-transform: scale3d(.9,.9,.9);
    transform: scale3d(.9,.9,.9)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03,1.03,1.03);
    transform: scale3d(1.03,1.03,1.03)
  }
  
  80% {
    -webkit-transform: scale3d(.97,.97,.97);
    transform: scale3d(.97,.97,.97)
  }
  
  to {
    opacity: 1;
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

.animate__bounceIn {
  -webkit-animation-duration: .75s;
  animation-duration: .75s;
  -webkit-animation-duration: calc(var(--animate-duration)*0.75);
  animation-duration: calc(var(--animate-duration)*0.75);
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn
}

@-webkit-keyframes bounceInDown {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,-3000px,0) scaleY(3);
    transform: translate3d(0,-3000px,0) scaleY(3)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0,25px,0) scaleY(.9);
    transform: translate3d(0,25px,0) scaleY(.9)
  }
  
  75% {
    -webkit-transform: translate3d(0,-10px,0) scaleY(.95);
    transform: translate3d(0,-10px,0) scaleY(.95)
  }
  
  90% {
    -webkit-transform: translate3d(0,5px,0) scaleY(.985);
    transform: translate3d(0,5px,0) scaleY(.985)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes bounceInDown {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,-3000px,0) scaleY(3);
    transform: translate3d(0,-3000px,0) scaleY(3)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0,25px,0) scaleY(.9);
    transform: translate3d(0,25px,0) scaleY(.9)
  }
  
  75% {
    -webkit-transform: translate3d(0,-10px,0) scaleY(.95);
    transform: translate3d(0,-10px,0) scaleY(.95)
  }
  
  90% {
    -webkit-transform: translate3d(0,5px,0) scaleY(.985);
    transform: translate3d(0,5px,0) scaleY(.985)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

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

@-webkit-keyframes bounceInLeft {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px,0,0) scaleX(3);
    transform: translate3d(-3000px,0,0) scaleX(3)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px,0,0) scaleX(1);
    transform: translate3d(25px,0,0) scaleX(1)
  }
  
  75% {
    -webkit-transform: translate3d(-10px,0,0) scaleX(.98);
    transform: translate3d(-10px,0,0) scaleX(.98)
  }
  
  90% {
    -webkit-transform: translate3d(5px,0,0) scaleX(.995);
    transform: translate3d(5px,0,0) scaleX(.995)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes bounceInLeft {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px,0,0) scaleX(3);
    transform: translate3d(-3000px,0,0) scaleX(3)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px,0,0) scaleX(1);
    transform: translate3d(25px,0,0) scaleX(1)
  }
  
  75% {
    -webkit-transform: translate3d(-10px,0,0) scaleX(.98);
    transform: translate3d(-10px,0,0) scaleX(.98)
  }
  
  90% {
    -webkit-transform: translate3d(5px,0,0) scaleX(.995);
    transform: translate3d(5px,0,0) scaleX(.995)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

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

@-webkit-keyframes bounceInRight {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(3000px,0,0) scaleX(3);
    transform: translate3d(3000px,0,0) scaleX(3)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px,0,0) scaleX(1);
    transform: translate3d(-25px,0,0) scaleX(1)
  }
  
  75% {
    -webkit-transform: translate3d(10px,0,0) scaleX(.98);
    transform: translate3d(10px,0,0) scaleX(.98)
  }
  
  90% {
    -webkit-transform: translate3d(-5px,0,0) scaleX(.995);
    transform: translate3d(-5px,0,0) scaleX(.995)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes bounceInRight {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(3000px,0,0) scaleX(3);
    transform: translate3d(3000px,0,0) scaleX(3)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px,0,0) scaleX(1);
    transform: translate3d(-25px,0,0) scaleX(1)
  }
  
  75% {
    -webkit-transform: translate3d(10px,0,0) scaleX(.98);
    transform: translate3d(10px,0,0) scaleX(.98)
  }
  
  90% {
    -webkit-transform: translate3d(-5px,0,0) scaleX(.995);
    transform: translate3d(-5px,0,0) scaleX(.995)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

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

@-webkit-keyframes bounceInUp {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,3000px,0) scaleY(5);
    transform: translate3d(0,3000px,0) scaleY(5)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0,-20px,0) scaleY(.9);
    transform: translate3d(0,-20px,0) scaleY(.9)
  }
  
  75% {
    -webkit-transform: translate3d(0,10px,0) scaleY(.95);
    transform: translate3d(0,10px,0) scaleY(.95)
  }
  
  90% {
    -webkit-transform: translate3d(0,-5px,0) scaleY(.985);
    transform: translate3d(0,-5px,0) scaleY(.985)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes bounceInUp {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,3000px,0) scaleY(5);
    transform: translate3d(0,3000px,0) scaleY(5)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0,-20px,0) scaleY(.9);
    transform: translate3d(0,-20px,0) scaleY(.9)
  }
  
  75% {
    -webkit-transform: translate3d(0,10px,0) scaleY(.95);
    transform: translate3d(0,10px,0) scaleY(.95)
  }
  
  90% {
    -webkit-transform: translate3d(0,-5px,0) scaleY(.985);
    transform: translate3d(0,-5px,0) scaleY(.985)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

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

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

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

.animate__bounceOut {
  -webkit-animation-duration: .75s;
  animation-duration: .75s;
  -webkit-animation-duration: calc(var(--animate-duration)*0.75);
  animation-duration: calc(var(--animate-duration)*0.75);
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut
}

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

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

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

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

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

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

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

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

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

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

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

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

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

@keyframes fadeIn {
  0% {
    opacity: 0
  }
  
  to {
    opacity: 1
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.animate__fadeInTopLeft {
  -webkit-animation-name: fadeInTopLeft;
  animation-name: fadeInTopLeft
}

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

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

.animate__fadeInTopRight {
  -webkit-animation-name: fadeInTopRight;
  animation-name: fadeInTopRight
}

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

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

.animate__fadeInBottomLeft {
  -webkit-animation-name: fadeInBottomLeft;
  animation-name: fadeInBottomLeft
}

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

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

.animate__fadeInBottomRight {
  -webkit-animation-name: fadeInBottomRight;
  animation-name: fadeInBottomRight
}

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

@keyframes fadeOut {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.animate__fadeOutTopLeft {
  -webkit-animation-name: fadeOutTopLeft;
  animation-name: fadeOutTopLeft
}

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

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

.animate__fadeOutTopRight {
  -webkit-animation-name: fadeOutTopRight;
  animation-name: fadeOutTopRight
}

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

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

.animate__fadeOutBottomRight {
  -webkit-animation-name: fadeOutBottomRight;
  animation-name: fadeOutBottomRight
}

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

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

.animate__fadeOutBottomLeft {
  -webkit-animation-name: fadeOutBottomLeft;
  animation-name: fadeOutBottomLeft
}

@-webkit-keyframes flip {
  0% {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);
    transform: perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out
  }
  
  40% {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);
    transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out
  }
  
  50% {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);
    transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
  
  80% {
    -webkit-transform: perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);
    transform: perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
  
  to {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);
    transform: perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
}

@keyframes flip {
  0% {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);
    transform: perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out
  }
  
  40% {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);
    transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out
  }
  
  50% {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);
    transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
  
  80% {
    -webkit-transform: perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);
    transform: perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
  
  to {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);
    transform: perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
}

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

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

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

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

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

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

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

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

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

.animate__flipOutX {
  -webkit-animation-duration: .75s;
  animation-duration: .75s;
  -webkit-animation-duration: calc(var(--animate-duration)*0.75);
  animation-duration: calc(var(--animate-duration)*0.75);
  -webkit-animation-name: flipOutX;
  animation-name: flipOutX;
  -webkit-backface-visibility: visible!important;
  backface-visibility: visible!important
}

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

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

.animate__flipOutY {
  -webkit-animation-duration: .75s;
  animation-duration: .75s;
  -webkit-animation-duration: calc(var(--animate-duration)*0.75);
  animation-duration: calc(var(--animate-duration)*0.75);
  -webkit-backface-visibility: visible!important;
  backface-visibility: visible!important;
  -webkit-animation-name: flipOutY;
  animation-name: flipOutY
}

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

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

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

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

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

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

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

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

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

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

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

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

@-webkit-keyframes rotateIn {
  0% {
    -webkit-transform: rotate(-200deg);
    transform: rotate(-200deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

@keyframes rotateIn {
  0% {
    -webkit-transform: rotate(-200deg);
    transform: rotate(-200deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

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

@-webkit-keyframes rotateInDownLeft {
  0% {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

@keyframes rotateInDownLeft {
  0% {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

.animate__rotateInDownLeft {
  -webkit-animation-name: rotateInDownLeft;
  animation-name: rotateInDownLeft;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom
}

@-webkit-keyframes rotateInDownRight {
  0% {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

@keyframes rotateInDownRight {
  0% {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

.animate__rotateInDownRight {
  -webkit-animation-name: rotateInDownRight;
  animation-name: rotateInDownRight;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom
}

@-webkit-keyframes rotateInUpLeft {
  0% {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

@keyframes rotateInUpLeft {
  0% {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

.animate__rotateInUpLeft {
  -webkit-animation-name: rotateInUpLeft;
  animation-name: rotateInUpLeft;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom
}

@-webkit-keyframes rotateInUpRight {
  0% {
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

@keyframes rotateInUpRight {
  0% {
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

.animate__rotateInUpRight {
  -webkit-animation-name: rotateInUpRight;
  animation-name: rotateInUpRight;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom
}

@-webkit-keyframes rotateOut {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(200deg);
    transform: rotate(200deg);
    opacity: 0
  }
}

@keyframes rotateOut {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(200deg);
    transform: rotate(200deg);
    opacity: 0
  }
}

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

@-webkit-keyframes rotateOutDownLeft {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    opacity: 0
  }
}

@keyframes rotateOutDownLeft {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    opacity: 0
  }
}

.animate__rotateOutDownLeft {
  -webkit-animation-name: rotateOutDownLeft;
  animation-name: rotateOutDownLeft;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom
}

@-webkit-keyframes rotateOutDownRight {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    opacity: 0
  }
}

@keyframes rotateOutDownRight {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    opacity: 0
  }
}

.animate__rotateOutDownRight {
  -webkit-animation-name: rotateOutDownRight;
  animation-name: rotateOutDownRight;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom
}

@-webkit-keyframes rotateOutUpLeft {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    opacity: 0
  }
}

@keyframes rotateOutUpLeft {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    opacity: 0
  }
}

.animate__rotateOutUpLeft {
  -webkit-animation-name: rotateOutUpLeft;
  animation-name: rotateOutUpLeft;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom
}

@-webkit-keyframes rotateOutUpRight {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0
  }
}

@keyframes rotateOutUpRight {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0
  }
}

.animate__rotateOutUpRight {
  -webkit-animation-name: rotateOutUpRight;
  animation-name: rotateOutUpRight;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom
}

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

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

.animate__hinge {
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-animation-duration: calc(var(--animate-duration)*2);
  animation-duration: calc(var(--animate-duration)*2);
  -webkit-animation-name: hinge;
  animation-name: hinge;
  -webkit-transform-origin: top left;
  transform-origin: top left
}

@-webkit-keyframes jackInTheBox {
  0% {
    opacity: 0;
    -webkit-transform: scale(.1) rotate(30deg);
    transform: scale(.1) rotate(30deg);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom
  }
  
  50% {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg)
  }
  
  70% {
    -webkit-transform: rotate(3deg);
    transform: rotate(3deg)
  }
  
  to {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1)
  }
}

@keyframes jackInTheBox {
  0% {
    opacity: 0;
    -webkit-transform: scale(.1) rotate(30deg);
    transform: scale(.1) rotate(30deg);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom
  }
  
  50% {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg)
  }
  
  70% {
    -webkit-transform: rotate(3deg);
    transform: rotate(3deg)
  }
  
  to {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1)
  }
}

.animate__jackInTheBox {
  -webkit-animation-name: jackInTheBox;
  animation-name: jackInTheBox
}

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

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

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

@-webkit-keyframes rollOut {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%,0,0) rotate(120deg);
    transform: translate3d(100%,0,0) rotate(120deg)
  }
}

@keyframes rollOut {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%,0,0) rotate(120deg);
    transform: translate3d(100%,0,0) rotate(120deg)
  }
}

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

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

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

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

@-webkit-keyframes zoomInDown {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,-1000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,-1000px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

@keyframes zoomInDown {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,-1000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,-1000px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

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

@-webkit-keyframes zoomInLeft {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(-1000px,0,0);
    transform: scale3d(.1,.1,.1) translate3d(-1000px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(10px,0,0);
    transform: scale3d(.475,.475,.475) translate3d(10px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

@keyframes zoomInLeft {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(-1000px,0,0);
    transform: scale3d(.1,.1,.1) translate3d(-1000px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(10px,0,0);
    transform: scale3d(.475,.475,.475) translate3d(10px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

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

@-webkit-keyframes zoomInRight {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(1000px,0,0);
    transform: scale3d(.1,.1,.1) translate3d(1000px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(-10px,0,0);
    transform: scale3d(.475,.475,.475) translate3d(-10px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

@keyframes zoomInRight {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(1000px,0,0);
    transform: scale3d(.1,.1,.1) translate3d(1000px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(-10px,0,0);
    transform: scale3d(.475,.475,.475) translate3d(-10px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

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

@-webkit-keyframes zoomInUp {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,1000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,1000px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

@keyframes zoomInUp {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,1000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,1000px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

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

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

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

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

@-webkit-keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,2000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,2000px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

@keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,2000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,2000px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

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

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

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

.animate__zoomOutLeft {
  -webkit-animation-name: zoomOutLeft;
  animation-name: zoomOutLeft;
  -webkit-transform-origin: left center;
  transform-origin: left center
}

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

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

.animate__zoomOutRight {
  -webkit-animation-name: zoomOutRight;
  animation-name: zoomOutRight;
  -webkit-transform-origin: right center;
  transform-origin: right center
}

@-webkit-keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,-2000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,-2000px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

@keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,-2000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,-2000px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.animate__slideOutUp {
  -webkit-animation-name: slideOutUp;
  animation-name: slideOutUp
}
/**
 * Owl Carousel v2.3.4
 * Copyright 2013-2018 David Deutsch
 * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
 */
.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit;box-shadow: none;}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/css/owlcarousel/owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%}
.owl-carousel .owl-dots,.owl-carousel .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-carousel .owl-nav{margin-top:10px}.owl-carousel .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-carousel .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none}.owl-carousel .owl-nav .disabled{opacity:.5;cursor:default}.owl-carousel .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-carousel .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-carousel .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-carousel .owl-dots .owl-dot.active span,.owl-carousel .owl-dots .owl-dot:hover span{background:#869791}@charset "UTF-8";

/*!
 * animate.css -https://daneden.github.io/animate.css/
 * Version - 3.7.2
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2019 Daniel Eden
 */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1);
  }

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

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

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

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

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

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

  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1);
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@-webkit-keyframes heartBeat {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  14% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

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

  42% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

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

@keyframes heartBeat {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  14% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

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

  42% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

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

.heartBeat {
  -webkit-animation-name: heartBeat;
  animation-name: heartBeat;
  -webkit-animation-duration: 1.3s;
  animation-duration: 1.3s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
}

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

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

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

  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9);
  }

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

  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97);
  }

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

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

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

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

  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9);
  }

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

  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97);
  }

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

.bounceIn {
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.bounceOut {
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

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

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

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

  to {
    opacity: 0;
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

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

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

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

@keyframes fadeOutDown {
  from {
    opacity: 1;
  }

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

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

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

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

@keyframes fadeOutDownBig {
  from {
    opacity: 1;
  }

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

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

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

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

@keyframes fadeOutLeft {
  from {
    opacity: 1;
  }

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

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

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

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

@keyframes fadeOutLeftBig {
  from {
    opacity: 1;
  }

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

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

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

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

@keyframes fadeOutRight {
  from {
    opacity: 1;
  }

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

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

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

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

@keyframes fadeOutRightBig {
  from {
    opacity: 1;
  }

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

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

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

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

@keyframes fadeOutUp {
  from {
    opacity: 1;
  }

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

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

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

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

@keyframes fadeOutUpBig {
  from {
    opacity: 1;
  }

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

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

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

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

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

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

  to {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
      rotate3d(0, 1, 0, 0deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
}

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

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

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

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

  to {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
      rotate3d(0, 1, 0, 0deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@keyframes lightSpeedOut {
  from {
    opacity: 1;
  }

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

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

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

  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

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

  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

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

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

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

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

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

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

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

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

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

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

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

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

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

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

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

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

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

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

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

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  70% {
    -webkit-transform: rotate(3deg);
    transform: rotate(3deg);
  }

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

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

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

  70% {
    -webkit-transform: rotate(3deg);
    transform: rotate(3deg);
  }

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

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

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

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

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

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

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

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

@keyframes rollOut {
  from {
    opacity: 1;
  }

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

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

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

  50% {
    opacity: 1;
  }
}

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

  50% {
    opacity: 1;
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  to {
    opacity: 0;
  }
}

@keyframes zoomOut {
  from {
    opacity: 1;
  }

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

  to {
    opacity: 0;
  }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.animated.delay-1s {
  -webkit-animation-delay: 1s;
  animation-delay: 1s;
}

.animated.delay-2s {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.animated.delay-3s {
  -webkit-animation-delay: 3s;
  animation-delay: 3s;
}

.animated.delay-4s {
  -webkit-animation-delay: 4s;
  animation-delay: 4s;
}

.animated.delay-5s {
  -webkit-animation-delay: 5s;
  animation-delay: 5s;
}

.animated.fast {
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
}

.animated.faster {
  -webkit-animation-duration: 500ms;
  animation-duration: 500ms;
}

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

.animated.slower {
  -webkit-animation-duration: 3s;
  animation-duration: 3s;
}

@media (print), (prefers-reduced-motion: reduce) {
  .animated {
    -webkit-animation-duration: 1ms !important;
    animation-duration: 1ms !important;
    -webkit-transition-duration: 1ms !important;
    transition-duration: 1ms !important;
    -webkit-animation-iteration-count: 1 !important;
    animation-iteration-count: 1 !important;
  }
}/*!
 * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
/*!
 * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
.mgz-fa,
.fas,
.far,
.fal,
.fab {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
}
/* makes the font 33% larger relative to the icon container */
.mgz-fa-lg {
  font-size: 1.33333333em;
  line-height: 0.75em;
  vertical-align: -0.0667em;
}
.mgz-fa-xs {
  font-size: 0.75em;
}
.mgz-fa-sm {
  font-size: 0.875em;
}
.mgz-fa-1x {
  font-size: 1em;
}
.mgz-fa-2x {
  font-size: 2em;
}
.mgz-fa-3x {
  font-size: 3em;
}
.mgz-fa-4x {
  font-size: 4em;
}
.mgz-fa-5x {
  font-size: 5em;
}
.mgz-fa-6x {
  font-size: 6em;
}
.mgz-fa-7x {
  font-size: 7em;
}
.mgz-fa-8x {
  font-size: 8em;
}
.mgz-fa-9x {
  font-size: 9em;
}
.mgz-fa-10x {
  font-size: 10em;
}
.mgz-fa-fw {
  text-align: center;
  width: 1.25em;
}
.mgz-fa-ul {
  list-style-type: none;
  margin-left: 2.5em;
  padding-left: 0;
}
.mgz-fa-ul > li {
  position: relative;
}
.mgz-fa-li {
  left: -2em;
  position: absolute;
  text-align: center;
  width: 2em;
  line-height: inherit;
}
.mgz-fa-border {
  border-radius: 0.1em;
  border: solid 0.08em #eee;
  padding: 0.2em 0.25em 0.15em;
}
.mgz-fa-pull-left {
  float: left;
}
.mgz-fa-pull-right {
  float: right;
}
.mgz-fa.mgz-fa-pull-left,
.fas.mgz-fa-pull-left,
.far.mgz-fa-pull-left,
.fal.mgz-fa-pull-left,
.fab.mgz-fa-pull-left {
  margin-right: 0.3em;
}
.mgz-fa.mgz-fa-pull-right,
.fas.mgz-fa-pull-right,
.far.mgz-fa-pull-right,
.fal.mgz-fa-pull-right,
.fab.mgz-fa-pull-right {
  margin-left: 0.3em;
}
.mgz-fa-spin {
  animation: fa-spin 2s infinite linear;
}
.mgz-fa-pulse {
  animation: fa-spin 1s infinite steps(8);
}
@keyframes fa-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.mgz-fa-rotate-90 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
  transform: rotate(90deg);
}
.mgz-fa-rotate-180 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
  transform: rotate(180deg);
}
.mgz-fa-rotate-270 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
  transform: rotate(270deg);
}
.mgz-fa-flip-horizontal {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
  transform: scale(-1, 1);
}
.mgz-fa-flip-vertical {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
  transform: scale(1, -1);
}
.mgz-fa-flip-both,
.mgz-fa-flip-horizontal.mgz-fa-flip-vertical {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
  transform: scale(-1, -1);
}
:root .mgz-fa-rotate-90,
:root .mgz-fa-rotate-180,
:root .mgz-fa-rotate-270,
:root .mgz-fa-flip-horizontal,
:root .mgz-fa-flip-vertical,
:root .mgz-fa-flip-both {
  filter: none;
}
.mgz-fa-stack {
  display: inline-block;
  height: 2em;
  line-height: 2em;
  position: relative;
  vertical-align: middle;
  width: 2em;
}
.mgz-fa-stack-1x,
.mgz-fa-stack-2x {
  left: 0;
  position: absolute;
  text-align: center;
  width: 100%;
}
.mgz-fa-stack-1x {
  line-height: inherit;
}
.mgz-fa-stack-2x {
  font-size: 2em;
}
.mgz-fa-inverse {
  color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */
.mgz-fa-500px:before {
  content: "\f26e";
}
.mgz-fa-accessible-icon:before {
  content: "\f368";
}
.mgz-fa-accusoft:before {
  content: "\f369";
}
.mgz-fa-acquisitions-incorporated:before {
  content: "\f6af";
}
.mgz-fa-ad:before {
  content: "\f641";
}
.mgz-fa-address-book:before {
  content: "\f2b9";
}
.mgz-fa-address-card:before {
  content: "\f2bb";
}
.mgz-fa-adjust:before {
  content: "\f042";
}
.mgz-fa-adn:before {
  content: "\f170";
}
.mgz-fa-adobe:before {
  content: "\f778";
}
.mgz-fa-adversal:before {
  content: "\f36a";
}
.mgz-fa-affiliatetheme:before {
  content: "\f36b";
}
.mgz-fa-air-freshener:before {
  content: "\f5d0";
}
.mgz-fa-airbnb:before {
  content: "\f834";
}
.mgz-fa-algolia:before {
  content: "\f36c";
}
.mgz-fa-align-center:before {
  content: "\f037";
}
.mgz-fa-align-justify:before {
  content: "\f039";
}
.mgz-fa-align-left:before {
  content: "\f036";
}
.mgz-fa-align-right:before {
  content: "\f038";
}
.mgz-fa-alipay:before {
  content: "\f642";
}
.mgz-fa-allergies:before {
  content: "\f461";
}
.mgz-fa-amazon:before {
  content: "\f270";
}
.mgz-fa-amazon-pay:before {
  content: "\f42c";
}
.mgz-fa-ambulance:before {
  content: "\f0f9";
}
.mgz-fa-american-sign-language-interpreting:before {
  content: "\f2a3";
}
.mgz-fa-amilia:before {
  content: "\f36d";
}
.mgz-fa-anchor:before {
  content: "\f13d";
}
.mgz-fa-android:before {
  content: "\f17b";
}
.mgz-fa-angellist:before {
  content: "\f209";
}
.mgz-fa-angle-double-down:before {
  content: "\f103";
}
.mgz-fa-angle-double-left:before {
  content: "\f100";
}
.mgz-fa-angle-double-right:before {
  content: "\f101";
}
.mgz-fa-angle-double-up:before {
  content: "\f102";
}
.mgz-fa-angle-down:before {
  content: "\f107";
}
.mgz-fa-angle-left:before {
  content: "\f104";
}
.mgz-fa-angle-right:before {
  content: "\f105";
}
.mgz-fa-angle-up:before {
  content: "\f106";
}
.mgz-fa-angry:before {
  content: "\f556";
}
.mgz-fa-angrycreative:before {
  content: "\f36e";
}
.mgz-fa-angular:before {
  content: "\f420";
}
.mgz-fa-ankh:before {
  content: "\f644";
}
.mgz-fa-app-store:before {
  content: "\f36f";
}
.mgz-fa-app-store-ios:before {
  content: "\f370";
}
.mgz-fa-apper:before {
  content: "\f371";
}
.mgz-fa-apple:before {
  content: "\f179";
}
.mgz-fa-apple-alt:before {
  content: "\f5d1";
}
.mgz-fa-apple-pay:before {
  content: "\f415";
}
.mgz-fa-archive:before {
  content: "\f187";
}
.mgz-fa-archway:before {
  content: "\f557";
}
.mgz-fa-arrow-alt-circle-down:before {
  content: "\f358";
}
.mgz-fa-arrow-alt-circle-left:before {
  content: "\f359";
}
.mgz-fa-arrow-alt-circle-right:before {
  content: "\f35a";
}
.mgz-fa-arrow-alt-circle-up:before {
  content: "\f35b";
}
.mgz-fa-arrow-circle-down:before {
  content: "\f0ab";
}
.mgz-fa-arrow-circle-left:before {
  content: "\f0a8";
}
.mgz-fa-arrow-circle-right:before {
  content: "\f0a9";
}
.mgz-fa-arrow-circle-up:before {
  content: "\f0aa";
}
.mgz-fa-arrow-down:before {
  content: "\f063";
}
.mgz-fa-arrow-left:before {
  content: "\f060";
}
.mgz-fa-arrow-right:before {
  content: "\f061";
}
.mgz-fa-arrow-up:before {
  content: "\f062";
}
.mgz-fa-arrows-alt:before {
  content: "\f0b2";
}
.mgz-fa-arrows-alt-h:before {
  content: "\f337";
}
.mgz-fa-arrows-alt-v:before {
  content: "\f338";
}
.mgz-fa-artstation:before {
  content: "\f77a";
}
.mgz-fa-assistive-listening-systems:before {
  content: "\f2a2";
}
.mgz-fa-asterisk:before {
  content: "\f069";
}
.mgz-fa-asymmetrik:before {
  content: "\f372";
}
.mgz-fa-at:before {
  content: "\f1fa";
}
.mgz-fa-atlas:before {
  content: "\f558";
}
.mgz-fa-atlassian:before {
  content: "\f77b";
}
.mgz-fa-atom:before {
  content: "\f5d2";
}
.mgz-fa-audible:before {
  content: "\f373";
}
.mgz-fa-audio-description:before {
  content: "\f29e";
}
.mgz-fa-autoprefixer:before {
  content: "\f41c";
}
.mgz-fa-avianex:before {
  content: "\f374";
}
.mgz-fa-aviato:before {
  content: "\f421";
}
.mgz-fa-award:before {
  content: "\f559";
}
.mgz-fa-aws:before {
  content: "\f375";
}
.mgz-fa-baby:before {
  content: "\f77c";
}
.mgz-fa-baby-carriage:before {
  content: "\f77d";
}
.mgz-fa-backspace:before {
  content: "\f55a";
}
.mgz-fa-backward:before {
  content: "\f04a";
}
.mgz-fa-bacon:before {
  content: "\f7e5";
}
.mgz-fa-balance-scale:before {
  content: "\f24e";
}
.mgz-fa-ban:before {
  content: "\f05e";
}
.mgz-fa-band-aid:before {
  content: "\f462";
}
.mgz-fa-bandcamp:before {
  content: "\f2d5";
}
.mgz-fa-barcode:before {
  content: "\f02a";
}
.mgz-fa-bars:before {
  content: "\f0c9";
}
.mgz-fa-baseball-ball:before {
  content: "\f433";
}
.mgz-fa-basketball-ball:before {
  content: "\f434";
}
.mgz-fa-bath:before {
  content: "\f2cd";
}
.mgz-fa-battery-empty:before {
  content: "\f244";
}
.mgz-fa-battery-full:before {
  content: "\f240";
}
.mgz-fa-battery-half:before {
  content: "\f242";
}
.mgz-fa-battery-quarter:before {
  content: "\f243";
}
.mgz-fa-battery-three-quarters:before {
  content: "\f241";
}
.mgz-fa-battle-net:before {
  content: "\f835";
}
.mgz-fa-bed:before {
  content: "\f236";
}
.mgz-fa-beer:before {
  content: "\f0fc";
}
.mgz-fa-behance:before {
  content: "\f1b4";
}
.mgz-fa-behance-square:before {
  content: "\f1b5";
}
.mgz-fa-bell:before {
  content: "\f0f3";
}
.mgz-fa-bell-slash:before {
  content: "\f1f6";
}
.mgz-fa-bezier-curve:before {
  content: "\f55b";
}
.mgz-fa-bible:before {
  content: "\f647";
}
.mgz-fa-bicycle:before {
  content: "\f206";
}
.mgz-fa-bimobject:before {
  content: "\f378";
}
.mgz-fa-binoculars:before {
  content: "\f1e5";
}
.mgz-fa-biohazard:before {
  content: "\f780";
}
.mgz-fa-birthday-cake:before {
  content: "\f1fd";
}
.mgz-fa-bitbucket:before {
  content: "\f171";
}
.mgz-fa-bitcoin:before {
  content: "\f379";
}
.mgz-fa-bity:before {
  content: "\f37a";
}
.mgz-fa-black-tie:before {
  content: "\f27e";
}
.mgz-fa-blackberry:before {
  content: "\f37b";
}
.mgz-fa-blender:before {
  content: "\f517";
}
.mgz-fa-blender-phone:before {
  content: "\f6b6";
}
.mgz-fa-blind:before {
  content: "\f29d";
}
.mgz-fa-blog:before {
  content: "\f781";
}
.mgz-fa-blogger:before {
  content: "\f37c";
}
.mgz-fa-blogger-b:before {
  content: "\f37d";
}
.mgz-fa-bluetooth:before {
  content: "\f293";
}
.mgz-fa-bluetooth-b:before {
  content: "\f294";
}
.mgz-fa-bold:before {
  content: "\f032";
}
.mgz-fa-bolt:before {
  content: "\f0e7";
}
.mgz-fa-bomb:before {
  content: "\f1e2";
}
.mgz-fa-bone:before {
  content: "\f5d7";
}
.mgz-fa-bong:before {
  content: "\f55c";
}
.mgz-fa-book:before {
  content: "\f02d";
}
.mgz-fa-book-dead:before {
  content: "\f6b7";
}
.mgz-fa-book-medical:before {
  content: "\f7e6";
}
.mgz-fa-book-open:before {
  content: "\f518";
}
.mgz-fa-book-reader:before {
  content: "\f5da";
}
.mgz-fa-bookmark:before {
  content: "\f02e";
}
.mgz-fa-bootstrap:before {
  content: "\f836";
}
.mgz-fa-bowling-ball:before {
  content: "\f436";
}
.mgz-fa-box:before {
  content: "\f466";
}
.mgz-fa-box-open:before {
  content: "\f49e";
}
.mgz-fa-boxes:before {
  content: "\f468";
}
.mgz-fa-braille:before {
  content: "\f2a1";
}
.mgz-fa-brain:before {
  content: "\f5dc";
}
.mgz-fa-bread-slice:before {
  content: "\f7ec";
}
.mgz-fa-briefcase:before {
  content: "\f0b1";
}
.mgz-fa-briefcase-medical:before {
  content: "\f469";
}
.mgz-fa-broadcast-tower:before {
  content: "\f519";
}
.mgz-fa-broom:before {
  content: "\f51a";
}
.mgz-fa-brush:before {
  content: "\f55d";
}
.mgz-fa-btc:before {
  content: "\f15a";
}
.mgz-fa-buffer:before {
  content: "\f837";
}
.mgz-fa-bug:before {
  content: "\f188";
}
.mgz-fa-building:before {
  content: "\f1ad";
}
.mgz-fa-bullhorn:before {
  content: "\f0a1";
}
.mgz-fa-bullseye:before {
  content: "\f140";
}
.mgz-fa-burn:before {
  content: "\f46a";
}
.mgz-fa-buromobelexperte:before {
  content: "\f37f";
}
.mgz-fa-bus:before {
  content: "\f207";
}
.mgz-fa-bus-alt:before {
  content: "\f55e";
}
.mgz-fa-business-time:before {
  content: "\f64a";
}
.mgz-fa-buysellads:before {
  content: "\f20d";
}
.mgz-fa-calculator:before {
  content: "\f1ec";
}
.mgz-fa-calendar:before {
  content: "\f133";
}
.mgz-fa-calendar-alt:before {
  content: "\f073";
}
.mgz-fa-calendar-check:before {
  content: "\f274";
}
.mgz-fa-calendar-day:before {
  content: "\f783";
}
.mgz-fa-calendar-minus:before {
  content: "\f272";
}
.mgz-fa-calendar-plus:before {
  content: "\f271";
}
.mgz-fa-calendar-times:before {
  content: "\f273";
}
.mgz-fa-calendar-week:before {
  content: "\f784";
}
.mgz-fa-camera:before {
  content: "\f030";
}
.mgz-fa-camera-retro:before {
  content: "\f083";
}
.mgz-fa-campground:before {
  content: "\f6bb";
}
.mgz-fa-canadian-maple-leaf:before {
  content: "\f785";
}
.mgz-fa-candy-cane:before {
  content: "\f786";
}
.mgz-fa-cannabis:before {
  content: "\f55f";
}
.mgz-fa-capsules:before {
  content: "\f46b";
}
.mgz-fa-car:before {
  content: "\f1b9";
}
.mgz-fa-car-alt:before {
  content: "\f5de";
}
.mgz-fa-car-battery:before {
  content: "\f5df";
}
.mgz-fa-car-crash:before {
  content: "\f5e1";
}
.mgz-fa-car-side:before {
  content: "\f5e4";
}
.mgz-fa-caret-down:before {
  content: "\f0d7";
}
.mgz-fa-caret-left:before {
  content: "\f0d9";
}
.mgz-fa-caret-right:before {
  content: "\f0da";
}
.mgz-fa-caret-square-down:before {
  content: "\f150";
}
.mgz-fa-caret-square-left:before {
  content: "\f191";
}
.mgz-fa-caret-square-right:before {
  content: "\f152";
}
.mgz-fa-caret-square-up:before {
  content: "\f151";
}
.mgz-fa-caret-up:before {
  content: "\f0d8";
}
.mgz-fa-carrot:before {
  content: "\f787";
}
.mgz-fa-cart-arrow-down:before {
  content: "\f218";
}
.mgz-fa-cart-plus:before {
  content: "\f217";
}
.mgz-fa-cash-register:before {
  content: "\f788";
}
.mgz-fa-cat:before {
  content: "\f6be";
}
.mgz-fa-cc-amazon-pay:before {
  content: "\f42d";
}
.mgz-fa-cc-amex:before {
  content: "\f1f3";
}
.mgz-fa-cc-apple-pay:before {
  content: "\f416";
}
.mgz-fa-cc-diners-club:before {
  content: "\f24c";
}
.mgz-fa-cc-discover:before {
  content: "\f1f2";
}
.mgz-fa-cc-jcb:before {
  content: "\f24b";
}
.mgz-fa-cc-mastercard:before {
  content: "\f1f1";
}
.mgz-fa-cc-paypal:before {
  content: "\f1f4";
}
.mgz-fa-cc-stripe:before {
  content: "\f1f5";
}
.mgz-fa-cc-visa:before {
  content: "\f1f0";
}
.mgz-fa-centercode:before {
  content: "\f380";
}
.mgz-fa-centos:before {
  content: "\f789";
}
.mgz-fa-certificate:before {
  content: "\f0a3";
}
.mgz-fa-chair:before {
  content: "\f6c0";
}
.mgz-fa-chalkboard:before {
  content: "\f51b";
}
.mgz-fa-chalkboard-teacher:before {
  content: "\f51c";
}
.mgz-fa-charging-station:before {
  content: "\f5e7";
}
.mgz-fa-chart-area:before {
  content: "\f1fe";
}
.mgz-fa-chart-bar:before {
  content: "\f080";
}
.mgz-fa-chart-line:before {
  content: "\f201";
}
.mgz-fa-chart-pie:before {
  content: "\f200";
}
.mgz-fa-check:before {
  content: "\f00c";
}
.mgz-fa-check-circle:before {
  content: "\f058";
}
.mgz-fa-check-double:before {
  content: "\f560";
}
.mgz-fa-check-square:before {
  content: "\f14a";
}
.mgz-fa-cheese:before {
  content: "\f7ef";
}
.mgz-fa-chess:before {
  content: "\f439";
}
.mgz-fa-chess-bishop:before {
  content: "\f43a";
}
.mgz-fa-chess-board:before {
  content: "\f43c";
}
.mgz-fa-chess-king:before {
  content: "\f43f";
}
.mgz-fa-chess-knight:before {
  content: "\f441";
}
.mgz-fa-chess-pawn:before {
  content: "\f443";
}
.mgz-fa-chess-queen:before {
  content: "\f445";
}
.mgz-fa-chess-rook:before {
  content: "\f447";
}
.mgz-fa-chevron-circle-down:before {
  content: "\f13a";
}
.mgz-fa-chevron-circle-left:before {
  content: "\f137";
}
.mgz-fa-chevron-circle-right:before {
  content: "\f138";
}
.mgz-fa-chevron-circle-up:before {
  content: "\f139";
}
.mgz-fa-chevron-down:before {
  content: "\f078";
}
.mgz-fa-chevron-left:before {
  content: "\f053";
}
.mgz-fa-chevron-right:before {
  content: "\f054";
}
.mgz-fa-chevron-up:before {
  content: "\f077";
}
.mgz-fa-child:before {
  content: "\f1ae";
}
.mgz-fa-chrome:before {
  content: "\f268";
}
.mgz-fa-chromecast:before {
  content: "\f838";
}
.mgz-fa-church:before {
  content: "\f51d";
}
.mgz-fa-circle:before {
  content: "\f111";
}
.mgz-fa-circle-notch:before {
  content: "\f1ce";
}
.mgz-fa-city:before {
  content: "\f64f";
}
.mgz-fa-clinic-medical:before {
  content: "\f7f2";
}
.mgz-fa-clipboard:before {
  content: "\f328";
}
.mgz-fa-clipboard-check:before {
  content: "\f46c";
}
.mgz-fa-clipboard-list:before {
  content: "\f46d";
}
.mgz-fa-clock:before {
  content: "\f017";
}
.mgz-fa-clone:before {
  content: "\f24d";
}
.mgz-fa-closed-captioning:before {
  content: "\f20a";
}
.mgz-fa-cloud:before {
  content: "\f0c2";
}
.mgz-fa-cloud-download-alt:before {
  content: "\f381";
}
.mgz-fa-cloud-meatball:before {
  content: "\f73b";
}
.mgz-fa-cloud-moon:before {
  content: "\f6c3";
}
.mgz-fa-cloud-moon-rain:before {
  content: "\f73c";
}
.mgz-fa-cloud-rain:before {
  content: "\f73d";
}
.mgz-fa-cloud-showers-heavy:before {
  content: "\f740";
}
.mgz-fa-cloud-sun:before {
  content: "\f6c4";
}
.mgz-fa-cloud-sun-rain:before {
  content: "\f743";
}
.mgz-fa-cloud-upload-alt:before {
  content: "\f382";
}
.mgz-fa-cloudscale:before {
  content: "\f383";
}
.mgz-fa-cloudsmith:before {
  content: "\f384";
}
.mgz-fa-cloudversify:before {
  content: "\f385";
}
.mgz-fa-cocktail:before {
  content: "\f561";
}
.mgz-fa-code:before {
  content: "\f121";
}
.mgz-fa-code-branch:before {
  content: "\f126";
}
.mgz-fa-codepen:before {
  content: "\f1cb";
}
.mgz-fa-codiepie:before {
  content: "\f284";
}
.mgz-fa-coffee:before {
  content: "\f0f4";
}
.mgz-fa-cog:before {
  content: "\f013";
}
.mgz-fa-cogs:before {
  content: "\f085";
}
.mgz-fa-coins:before {
  content: "\f51e";
}
.mgz-fa-columns:before {
  content: "\f0db";
}
.mgz-fa-comment:before {
  content: "\f075";
}
.mgz-fa-comment-alt:before {
  content: "\f27a";
}
.mgz-fa-comment-dollar:before {
  content: "\f651";
}
.mgz-fa-comment-dots:before {
  content: "\f4ad";
}
.mgz-fa-comment-medical:before {
  content: "\f7f5";
}
.mgz-fa-comment-slash:before {
  content: "\f4b3";
}
.mgz-fa-comments:before {
  content: "\f086";
}
.mgz-fa-comments-dollar:before {
  content: "\f653";
}
.mgz-fa-compact-disc:before {
  content: "\f51f";
}
.mgz-fa-compass:before {
  content: "\f14e";
}
.mgz-fa-compress:before {
  content: "\f066";
}
.mgz-fa-compress-arrows-alt:before {
  content: "\f78c";
}
.mgz-fa-concierge-bell:before {
  content: "\f562";
}
.mgz-fa-confluence:before {
  content: "\f78d";
}
.mgz-fa-connectdevelop:before {
  content: "\f20e";
}
.mgz-fa-contao:before {
  content: "\f26d";
}
.mgz-fa-cookie:before {
  content: "\f563";
}
.mgz-fa-cookie-bite:before {
  content: "\f564";
}
.mgz-fa-copy:before {
  content: "\f0c5";
}
.mgz-fa-copyright:before {
  content: "\f1f9";
}
.mgz-fa-couch:before {
  content: "\f4b8";
}
.mgz-fa-cpanel:before {
  content: "\f388";
}
.mgz-fa-creative-commons:before {
  content: "\f25e";
}
.mgz-fa-creative-commons-by:before {
  content: "\f4e7";
}
.mgz-fa-creative-commons-nc:before {
  content: "\f4e8";
}
.mgz-fa-creative-commons-nc-eu:before {
  content: "\f4e9";
}
.mgz-fa-creative-commons-nc-jp:before {
  content: "\f4ea";
}
.mgz-fa-creative-commons-nd:before {
  content: "\f4eb";
}
.mgz-fa-creative-commons-pd:before {
  content: "\f4ec";
}
.mgz-fa-creative-commons-pd-alt:before {
  content: "\f4ed";
}
.mgz-fa-creative-commons-remix:before {
  content: "\f4ee";
}
.mgz-fa-creative-commons-sa:before {
  content: "\f4ef";
}
.mgz-fa-creative-commons-sampling:before {
  content: "\f4f0";
}
.mgz-fa-creative-commons-sampling-plus:before {
  content: "\f4f1";
}
.mgz-fa-creative-commons-share:before {
  content: "\f4f2";
}
.mgz-fa-creative-commons-zero:before {
  content: "\f4f3";
}
.mgz-fa-credit-card:before {
  content: "\f09d";
}
.mgz-fa-critical-role:before {
  content: "\f6c9";
}
.mgz-fa-crop:before {
  content: "\f125";
}
.mgz-fa-crop-alt:before {
  content: "\f565";
}
.mgz-fa-cross:before {
  content: "\f654";
}
.mgz-fa-crosshairs:before {
  content: "\f05b";
}
.mgz-fa-crow:before {
  content: "\f520";
}
.mgz-fa-crown:before {
  content: "\f521";
}
.mgz-fa-crutch:before {
  content: "\f7f7";
}
.mgz-fa-css3:before {
  content: "\f13c";
}
.mgz-fa-css3-alt:before {
  content: "\f38b";
}
.mgz-fa-cube:before {
  content: "\f1b2";
}
.mgz-fa-cubes:before {
  content: "\f1b3";
}
.mgz-fa-cut:before {
  content: "\f0c4";
}
.mgz-fa-cuttlefish:before {
  content: "\f38c";
}
.mgz-fa-d-and-d:before {
  content: "\f38d";
}
.mgz-fa-d-and-d-beyond:before {
  content: "\f6ca";
}
.mgz-fa-dashcube:before {
  content: "\f210";
}
.mgz-fa-database:before {
  content: "\f1c0";
}
.mgz-fa-deaf:before {
  content: "\f2a4";
}
.mgz-fa-delicious:before {
  content: "\f1a5";
}
.mgz-fa-democrat:before {
  content: "\f747";
}
.mgz-fa-deploydog:before {
  content: "\f38e";
}
.mgz-fa-deskpro:before {
  content: "\f38f";
}
.mgz-fa-desktop:before {
  content: "\f108";
}
.mgz-fa-dev:before {
  content: "\f6cc";
}
.mgz-fa-deviantart:before {
  content: "\f1bd";
}
.mgz-fa-dharmachakra:before {
  content: "\f655";
}
.mgz-fa-dhl:before {
  content: "\f790";
}
.mgz-fa-diagnoses:before {
  content: "\f470";
}
.mgz-fa-diaspora:before {
  content: "\f791";
}
.mgz-fa-dice:before {
  content: "\f522";
}
.mgz-fa-dice-d20:before {
  content: "\f6cf";
}
.mgz-fa-dice-d6:before {
  content: "\f6d1";
}
.mgz-fa-dice-five:before {
  content: "\f523";
}
.mgz-fa-dice-four:before {
  content: "\f524";
}
.mgz-fa-dice-one:before {
  content: "\f525";
}
.mgz-fa-dice-six:before {
  content: "\f526";
}
.mgz-fa-dice-three:before {
  content: "\f527";
}
.mgz-fa-dice-two:before {
  content: "\f528";
}
.mgz-fa-digg:before {
  content: "\f1a6";
}
.mgz-fa-digital-ocean:before {
  content: "\f391";
}
.mgz-fa-digital-tachograph:before {
  content: "\f566";
}
.mgz-fa-directions:before {
  content: "\f5eb";
}
.mgz-fa-discord:before {
  content: "\f392";
}
.mgz-fa-discourse:before {
  content: "\f393";
}
.mgz-fa-divide:before {
  content: "\f529";
}
.mgz-fa-dizzy:before {
  content: "\f567";
}
.mgz-fa-dna:before {
  content: "\f471";
}
.mgz-fa-dochub:before {
  content: "\f394";
}
.mgz-fa-docker:before {
  content: "\f395";
}
.mgz-fa-dog:before {
  content: "\f6d3";
}
.mgz-fa-dollar-sign:before {
  content: "\f155";
}
.mgz-fa-dolly:before {
  content: "\f472";
}
.mgz-fa-dolly-flatbed:before {
  content: "\f474";
}
.mgz-fa-donate:before {
  content: "\f4b9";
}
.mgz-fa-door-closed:before {
  content: "\f52a";
}
.mgz-fa-door-open:before {
  content: "\f52b";
}
.mgz-fa-dot-circle:before {
  content: "\f192";
}
.mgz-fa-dove:before {
  content: "\f4ba";
}
.mgz-fa-download:before {
  content: "\f019";
}
.mgz-fa-draft2digital:before {
  content: "\f396";
}
.mgz-fa-drafting-compass:before {
  content: "\f568";
}
.mgz-fa-dragon:before {
  content: "\f6d5";
}
.mgz-fa-draw-polygon:before {
  content: "\f5ee";
}
.mgz-fa-dribbble:before {
  content: "\f17d";
}
.mgz-fa-dribbble-square:before {
  content: "\f397";
}
.mgz-fa-dropbox:before {
  content: "\f16b";
}
.mgz-fa-drum:before {
  content: "\f569";
}
.mgz-fa-drum-steelpan:before {
  content: "\f56a";
}
.mgz-fa-drumstick-bite:before {
  content: "\f6d7";
}
.mgz-fa-drupal:before {
  content: "\f1a9";
}
.mgz-fa-dumbbell:before {
  content: "\f44b";
}
.mgz-fa-dumpster:before {
  content: "\f793";
}
.mgz-fa-dumpster-fire:before {
  content: "\f794";
}
.mgz-fa-dungeon:before {
  content: "\f6d9";
}
.mgz-fa-dyalog:before {
  content: "\f399";
}
.mgz-fa-earlybirds:before {
  content: "\f39a";
}
.mgz-fa-ebay:before {
  content: "\f4f4";
}
.mgz-fa-edge:before {
  content: "\f282";
}
.mgz-fa-edit:before {
  content: "\f044";
}
.mgz-fa-egg:before {
  content: "\f7fb";
}
.mgz-fa-eject:before {
  content: "\f052";
}
.mgz-fa-elementor:before {
  content: "\f430";
}
.mgz-fa-ellipsis-h:before {
  content: "\f141";
}
.mgz-fa-ellipsis-v:before {
  content: "\f142";
}
.mgz-fa-ello:before {
  content: "\f5f1";
}
.mgz-fa-ember:before {
  content: "\f423";
}
.mgz-fa-empire:before {
  content: "\f1d1";
}
.mgz-fa-envelope:before {
  content: "\f0e0";
}
.mgz-fa-envelope-open:before {
  content: "\f2b6";
}
.mgz-fa-envelope-open-text:before {
  content: "\f658";
}
.mgz-fa-envelope-square:before {
  content: "\f199";
}
.mgz-fa-envira:before {
  content: "\f299";
}
.mgz-fa-equals:before {
  content: "\f52c";
}
.mgz-fa-eraser:before {
  content: "\f12d";
}
.mgz-fa-erlang:before {
  content: "\f39d";
}
.mgz-fa-ethereum:before {
  content: "\f42e";
}
.mgz-fa-ethernet:before {
  content: "\f796";
}
.mgz-fa-etsy:before {
  content: "\f2d7";
}
.mgz-fa-euro-sign:before {
  content: "\f153";
}
.mgz-fa-evernote:before {
  content: "\f839";
}
.mgz-fa-exchange-alt:before {
  content: "\f362";
}
.mgz-fa-exclamation:before {
  content: "\f12a";
}
.mgz-fa-exclamation-circle:before {
  content: "\f06a";
}
.mgz-fa-exclamation-triangle:before {
  content: "\f071";
}
.mgz-fa-expand:before {
  content: "\f065";
}
.mgz-fa-expand-arrows-alt:before {
  content: "\f31e";
}
.mgz-fa-expeditedssl:before {
  content: "\f23e";
}
.mgz-fa-external-link-alt:before {
  content: "\f35d";
}
.mgz-fa-external-link-square-alt:before {
  content: "\f360";
}
.mgz-fa-eye:before {
  content: "\f06e";
}
.mgz-fa-eye-dropper:before {
  content: "\f1fb";
}
.mgz-fa-eye-slash:before {
  content: "\f070";
}
.mgz-fa-facebook:before {
  content: "\f09a";
}
.mgz-fa-facebook-f:before {
  content: "\f39e";
}
.mgz-fa-facebook-messenger:before {
  content: "\f39f";
}
.mgz-fa-facebook-square:before {
  content: "\f082";
}
.mgz-fa-fantasy-flight-games:before {
  content: "\f6dc";
}
.mgz-fa-fast-backward:before {
  content: "\f049";
}
.mgz-fa-fast-forward:before {
  content: "\f050";
}
.mgz-fa-fax:before {
  content: "\f1ac";
}
.mgz-fa-feather:before {
  content: "\f52d";
}
.mgz-fa-feather-alt:before {
  content: "\f56b";
}
.mgz-fa-fedex:before {
  content: "\f797";
}
.mgz-fa-fedora:before {
  content: "\f798";
}
.mgz-fa-female:before {
  content: "\f182";
}
.mgz-fa-fighter-jet:before {
  content: "\f0fb";
}
.mgz-fa-figma:before {
  content: "\f799";
}
.mgz-fa-file:before {
  content: "\f15b";
}
.mgz-fa-file-alt:before {
  content: "\f15c";
}
.mgz-fa-file-archive:before {
  content: "\f1c6";
}
.mgz-fa-file-audio:before {
  content: "\f1c7";
}
.mgz-fa-file-code:before {
  content: "\f1c9";
}
.mgz-fa-file-contract:before {
  content: "\f56c";
}
.mgz-fa-file-csv:before {
  content: "\f6dd";
}
.mgz-fa-file-download:before {
  content: "\f56d";
}
.mgz-fa-file-excel:before {
  content: "\f1c3";
}
.mgz-fa-file-export:before {
  content: "\f56e";
}
.mgz-fa-file-image:before {
  content: "\f1c5";
}
.mgz-fa-file-import:before {
  content: "\f56f";
}
.mgz-fa-file-invoice:before {
  content: "\f570";
}
.mgz-fa-file-invoice-dollar:before {
  content: "\f571";
}
.mgz-fa-file-medical:before {
  content: "\f477";
}
.mgz-fa-file-medical-alt:before {
  content: "\f478";
}
.mgz-fa-file-pdf:before {
  content: "\f1c1";
}
.mgz-fa-file-powerpoint:before {
  content: "\f1c4";
}
.mgz-fa-file-prescription:before {
  content: "\f572";
}
.mgz-fa-file-signature:before {
  content: "\f573";
}
.mgz-fa-file-upload:before {
  content: "\f574";
}
.mgz-fa-file-video:before {
  content: "\f1c8";
}
.mgz-fa-file-word:before {
  content: "\f1c2";
}
.mgz-fa-fill:before {
  content: "\f575";
}
.mgz-fa-fill-drip:before {
  content: "\f576";
}
.mgz-fa-film:before {
  content: "\f008";
}
.mgz-fa-filter:before {
  content: "\f0b0";
}
.mgz-fa-fingerprint:before {
  content: "\f577";
}
.mgz-fa-fire:before {
  content: "\f06d";
}
.mgz-fa-fire-alt:before {
  content: "\f7e4";
}
.mgz-fa-fire-extinguisher:before {
  content: "\f134";
}
.mgz-fa-firefox:before {
  content: "\f269";
}
.mgz-fa-first-aid:before {
  content: "\f479";
}
.mgz-fa-first-order:before {
  content: "\f2b0";
}
.mgz-fa-first-order-alt:before {
  content: "\f50a";
}
.mgz-fa-firstdraft:before {
  content: "\f3a1";
}
.mgz-fa-fish:before {
  content: "\f578";
}
.mgz-fa-fist-raised:before {
  content: "\f6de";
}
.mgz-fa-flag:before {
  content: "\f024";
}
.mgz-fa-flag-checkered:before {
  content: "\f11e";
}
.mgz-fa-flag-usa:before {
  content: "\f74d";
}
.mgz-fa-flask:before {
  content: "\f0c3";
}
.mgz-fa-flickr:before {
  content: "\f16e";
}
.mgz-fa-flipboard:before {
  content: "\f44d";
}
.mgz-fa-flushed:before {
  content: "\f579";
}
.mgz-fa-fly:before {
  content: "\f417";
}
.mgz-fa-folder:before {
  content: "\f07b";
}
.mgz-fa-folder-minus:before {
  content: "\f65d";
}
.mgz-fa-folder-open:before {
  content: "\f07c";
}
.mgz-fa-folder-plus:before {
  content: "\f65e";
}
.mgz-fa-font:before {
  content: "\f031";
}
.mgz-fa-font-awesome:before {
  content: "\f2b4";
}
.mgz-fa-font-awesome-alt:before {
  content: "\f35c";
}
.mgz-fa-font-awesome-flag:before {
  content: "\f425";
}
.mgz-fa-font-awesome-logo-full:before {
  content: "\f4e6";
}
.mgz-fa-fonticons:before {
  content: "\f280";
}
.mgz-fa-fonticons-fi:before {
  content: "\f3a2";
}
.mgz-fa-football-ball:before {
  content: "\f44e";
}
.mgz-fa-fort-awesome:before {
  content: "\f286";
}
.mgz-fa-fort-awesome-alt:before {
  content: "\f3a3";
}
.mgz-fa-forumbee:before {
  content: "\f211";
}
.mgz-fa-forward:before {
  content: "\f04e";
}
.mgz-fa-foursquare:before {
  content: "\f180";
}
.mgz-fa-free-code-camp:before {
  content: "\f2c5";
}
.mgz-fa-freebsd:before {
  content: "\f3a4";
}
.mgz-fa-frog:before {
  content: "\f52e";
}
.mgz-fa-frown:before {
  content: "\f119";
}
.mgz-fa-frown-open:before {
  content: "\f57a";
}
.mgz-fa-fulcrum:before {
  content: "\f50b";
}
.mgz-fa-funnel-dollar:before {
  content: "\f662";
}
.mgz-fa-futbol:before {
  content: "\f1e3";
}
.mgz-fa-galactic-republic:before {
  content: "\f50c";
}
.mgz-fa-galactic-senate:before {
  content: "\f50d";
}
.mgz-fa-gamepad:before {
  content: "\f11b";
}
.mgz-fa-gas-pump:before {
  content: "\f52f";
}
.mgz-fa-gavel:before {
  content: "\f0e3";
}
.mgz-fa-gem:before {
  content: "\f3a5";
}
.mgz-fa-genderless:before {
  content: "\f22d";
}
.mgz-fa-get-pocket:before {
  content: "\f265";
}
.mgz-fa-gg:before {
  content: "\f260";
}
.mgz-fa-gg-circle:before {
  content: "\f261";
}
.mgz-fa-ghost:before {
  content: "\f6e2";
}
.mgz-fa-gift:before {
  content: "\f06b";
}
.mgz-fa-gifts:before {
  content: "\f79c";
}
.mgz-fa-git:before {
  content: "\f1d3";
}
.mgz-fa-git-square:before {
  content: "\f1d2";
}
.mgz-fa-github:before {
  content: "\f09b";
}
.mgz-fa-github-alt:before {
  content: "\f113";
}
.mgz-fa-github-square:before {
  content: "\f092";
}
.mgz-fa-gitkraken:before {
  content: "\f3a6";
}
.mgz-fa-gitlab:before {
  content: "\f296";
}
.mgz-fa-gitter:before {
  content: "\f426";
}
.mgz-fa-glass-cheers:before {
  content: "\f79f";
}
.mgz-fa-glass-martini:before {
  content: "\f000";
}
.mgz-fa-glass-martini-alt:before {
  content: "\f57b";
}
.mgz-fa-glass-whiskey:before {
  content: "\f7a0";
}
.mgz-fa-glasses:before {
  content: "\f530";
}
.mgz-fa-glide:before {
  content: "\f2a5";
}
.mgz-fa-glide-g:before {
  content: "\f2a6";
}
.mgz-fa-globe:before {
  content: "\f0ac";
}
.mgz-fa-globe-africa:before {
  content: "\f57c";
}
.mgz-fa-globe-americas:before {
  content: "\f57d";
}
.mgz-fa-globe-asia:before {
  content: "\f57e";
}
.mgz-fa-globe-europe:before {
  content: "\f7a2";
}
.mgz-fa-gofore:before {
  content: "\f3a7";
}
.mgz-fa-golf-ball:before {
  content: "\f450";
}
.mgz-fa-goodreads:before {
  content: "\f3a8";
}
.mgz-fa-goodreads-g:before {
  content: "\f3a9";
}
.mgz-fa-google:before {
  content: "\f1a0";
}
.mgz-fa-google-drive:before {
  content: "\f3aa";
}
.mgz-fa-google-play:before {
  content: "\f3ab";
}
.mgz-fa-google-plus:before {
  content: "\f2b3";
}
.mgz-fa-google-plus-g:before {
  content: "\f0d5";
}
.mgz-fa-google-plus-square:before {
  content: "\f0d4";
}
.mgz-fa-google-wallet:before {
  content: "\f1ee";
}
.mgz-fa-gopuram:before {
  content: "\f664";
}
.mgz-fa-graduation-cap:before {
  content: "\f19d";
}
.mgz-fa-gratipay:before {
  content: "\f184";
}
.mgz-fa-grav:before {
  content: "\f2d6";
}
.mgz-fa-greater-than:before {
  content: "\f531";
}
.mgz-fa-greater-than-equal:before {
  content: "\f532";
}
.mgz-fa-grimace:before {
  content: "\f57f";
}
.mgz-fa-grin:before {
  content: "\f580";
}
.mgz-fa-grin-alt:before {
  content: "\f581";
}
.mgz-fa-grin-beam:before {
  content: "\f582";
}
.mgz-fa-grin-beam-sweat:before {
  content: "\f583";
}
.mgz-fa-grin-hearts:before {
  content: "\f584";
}
.mgz-fa-grin-squint:before {
  content: "\f585";
}
.mgz-fa-grin-squint-tears:before {
  content: "\f586";
}
.mgz-fa-grin-stars:before {
  content: "\f587";
}
.mgz-fa-grin-tears:before {
  content: "\f588";
}
.mgz-fa-grin-tongue:before {
  content: "\f589";
}
.mgz-fa-grin-tongue-squint:before {
  content: "\f58a";
}
.mgz-fa-grin-tongue-wink:before {
  content: "\f58b";
}
.mgz-fa-grin-wink:before {
  content: "\f58c";
}
.mgz-fa-grip-horizontal:before {
  content: "\f58d";
}
.mgz-fa-grip-lines:before {
  content: "\f7a4";
}
.mgz-fa-grip-lines-vertical:before {
  content: "\f7a5";
}
.mgz-fa-grip-vertical:before {
  content: "\f58e";
}
.mgz-fa-gripfire:before {
  content: "\f3ac";
}
.mgz-fa-grunt:before {
  content: "\f3ad";
}
.mgz-fa-guitar:before {
  content: "\f7a6";
}
.mgz-fa-gulp:before {
  content: "\f3ae";
}
.mgz-fa-h-square:before {
  content: "\f0fd";
}
.mgz-fa-hacker-news:before {
  content: "\f1d4";
}
.mgz-fa-hacker-news-square:before {
  content: "\f3af";
}
.mgz-fa-hackerrank:before {
  content: "\f5f7";
}
.mgz-fa-hamburger:before {
  content: "\f805";
}
.mgz-fa-hammer:before {
  content: "\f6e3";
}
.mgz-fa-hamsa:before {
  content: "\f665";
}
.mgz-fa-hand-holding:before {
  content: "\f4bd";
}
.mgz-fa-hand-holding-heart:before {
  content: "\f4be";
}
.mgz-fa-hand-holding-usd:before {
  content: "\f4c0";
}
.mgz-fa-hand-lizard:before {
  content: "\f258";
}
.mgz-fa-hand-middle-finger:before {
  content: "\f806";
}
.mgz-fa-hand-paper:before {
  content: "\f256";
}
.mgz-fa-hand-peace:before {
  content: "\f25b";
}
.mgz-fa-hand-point-down:before {
  content: "\f0a7";
}
.mgz-fa-hand-point-left:before {
  content: "\f0a5";
}
.mgz-fa-hand-point-right:before {
  content: "\f0a4";
}
.mgz-fa-hand-point-up:before {
  content: "\f0a6";
}
.mgz-fa-hand-pointer:before {
  content: "\f25a";
}
.mgz-fa-hand-rock:before {
  content: "\f255";
}
.mgz-fa-hand-scissors:before {
  content: "\f257";
}
.mgz-fa-hand-spock:before {
  content: "\f259";
}
.mgz-fa-hands:before {
  content: "\f4c2";
}
.mgz-fa-hands-helping:before {
  content: "\f4c4";
}
.mgz-fa-handshake:before {
  content: "\f2b5";
}
.mgz-fa-hanukiah:before {
  content: "\f6e6";
}
.mgz-fa-hard-hat:before {
  content: "\f807";
}
.mgz-fa-hashtag:before {
  content: "\f292";
}
.mgz-fa-hat-wizard:before {
  content: "\f6e8";
}
.mgz-fa-haykal:before {
  content: "\f666";
}
.mgz-fa-hdd:before {
  content: "\f0a0";
}
.mgz-fa-heading:before {
  content: "\f1dc";
}
.mgz-fa-headphones:before {
  content: "\f025";
}
.mgz-fa-headphones-alt:before {
  content: "\f58f";
}
.mgz-fa-headset:before {
  content: "\f590";
}
.mgz-fa-heart:before {
  content: "\f004";
}
.mgz-fa-heart-broken:before {
  content: "\f7a9";
}
.mgz-fa-heartbeat:before {
  content: "\f21e";
}
.mgz-fa-helicopter:before {
  content: "\f533";
}
.mgz-fa-highlighter:before {
  content: "\f591";
}
.mgz-fa-hiking:before {
  content: "\f6ec";
}
.mgz-fa-hippo:before {
  content: "\f6ed";
}
.mgz-fa-hips:before {
  content: "\f452";
}
.mgz-fa-hire-a-helper:before {
  content: "\f3b0";
}
.mgz-fa-history:before {
  content: "\f1da";
}
.mgz-fa-hockey-puck:before {
  content: "\f453";
}
.mgz-fa-holly-berry:before {
  content: "\f7aa";
}
.mgz-fa-home:before {
  content: "\f015";
}
.mgz-fa-hooli:before {
  content: "\f427";
}
.mgz-fa-hornbill:before {
  content: "\f592";
}
.mgz-fa-horse:before {
  content: "\f6f0";
}
.mgz-fa-horse-head:before {
  content: "\f7ab";
}
.mgz-fa-hospital:before {
  content: "\f0f8";
}
.mgz-fa-hospital-alt:before {
  content: "\f47d";
}
.mgz-fa-hospital-symbol:before {
  content: "\f47e";
}
.mgz-fa-hot-tub:before {
  content: "\f593";
}
.mgz-fa-hotdog:before {
  content: "\f80f";
}
.mgz-fa-hotel:before {
  content: "\f594";
}
.mgz-fa-hotjar:before {
  content: "\f3b1";
}
.mgz-fa-hourglass:before {
  content: "\f254";
}
.mgz-fa-hourglass-end:before {
  content: "\f253";
}
.mgz-fa-hourglass-half:before {
  content: "\f252";
}
.mgz-fa-hourglass-start:before {
  content: "\f251";
}
.mgz-fa-house-damage:before {
  content: "\f6f1";
}
.mgz-fa-houzz:before {
  content: "\f27c";
}
.mgz-fa-hryvnia:before {
  content: "\f6f2";
}
.mgz-fa-html5:before {
  content: "\f13b";
}
.mgz-fa-hubspot:before {
  content: "\f3b2";
}
.mgz-fa-i-cursor:before {
  content: "\f246";
}
.mgz-fa-ice-cream:before {
  content: "\f810";
}
.mgz-fa-icicles:before {
  content: "\f7ad";
}
.mgz-fa-id-badge:before {
  content: "\f2c1";
}
.mgz-fa-id-card:before {
  content: "\f2c2";
}
.mgz-fa-id-card-alt:before {
  content: "\f47f";
}
.mgz-fa-igloo:before {
  content: "\f7ae";
}
.mgz-fa-image:before {
  content: "\f03e";
}
.mgz-fa-images:before {
  content: "\f302";
}
.mgz-fa-imdb:before {
  content: "\f2d8";
}
.mgz-fa-inbox:before {
  content: "\f01c";
}
.mgz-fa-indent:before {
  content: "\f03c";
}
.mgz-fa-industry:before {
  content: "\f275";
}
.mgz-fa-infinity:before {
  content: "\f534";
}
.mgz-fa-info:before {
  content: "\f129";
}
.mgz-fa-info-circle:before {
  content: "\f05a";
}
.mgz-fa-instagram:before {
  content: "\f16d";
}
.mgz-fa-intercom:before {
  content: "\f7af";
}
.mgz-fa-internet-explorer:before {
  content: "\f26b";
}
.mgz-fa-invision:before {
  content: "\f7b0";
}
.mgz-fa-ioxhost:before {
  content: "\f208";
}
.mgz-fa-italic:before {
  content: "\f033";
}
.mgz-fa-itch-io:before {
  content: "\f83a";
}
.mgz-fa-itunes:before {
  content: "\f3b4";
}
.mgz-fa-itunes-note:before {
  content: "\f3b5";
}
.mgz-fa-java:before {
  content: "\f4e4";
}
.mgz-fa-jedi:before {
  content: "\f669";
}
.mgz-fa-jedi-order:before {
  content: "\f50e";
}
.mgz-fa-jenkins:before {
  content: "\f3b6";
}
.mgz-fa-jira:before {
  content: "\f7b1";
}
.mgz-fa-joget:before {
  content: "\f3b7";
}
.mgz-fa-joint:before {
  content: "\f595";
}
.mgz-fa-joomla:before {
  content: "\f1aa";
}
.mgz-fa-journal-whills:before {
  content: "\f66a";
}
.mgz-fa-js:before {
  content: "\f3b8";
}
.mgz-fa-js-square:before {
  content: "\f3b9";
}
.mgz-fa-jsfiddle:before {
  content: "\f1cc";
}
.mgz-fa-kaaba:before {
  content: "\f66b";
}
.mgz-fa-kaggle:before {
  content: "\f5fa";
}
.mgz-fa-key:before {
  content: "\f084";
}
.mgz-fa-keybase:before {
  content: "\f4f5";
}
.mgz-fa-keyboard:before {
  content: "\f11c";
}
.mgz-fa-keycdn:before {
  content: "\f3ba";
}
.mgz-fa-khanda:before {
  content: "\f66d";
}
.mgz-fa-kickstarter:before {
  content: "\f3bb";
}
.mgz-fa-kickstarter-k:before {
  content: "\f3bc";
}
.mgz-fa-kiss:before {
  content: "\f596";
}
.mgz-fa-kiss-beam:before {
  content: "\f597";
}
.mgz-fa-kiss-wink-heart:before {
  content: "\f598";
}
.mgz-fa-kiwi-bird:before {
  content: "\f535";
}
.mgz-fa-korvue:before {
  content: "\f42f";
}
.mgz-fa-landmark:before {
  content: "\f66f";
}
.mgz-fa-language:before {
  content: "\f1ab";
}
.mgz-fa-laptop:before {
  content: "\f109";
}
.mgz-fa-laptop-code:before {
  content: "\f5fc";
}
.mgz-fa-laptop-medical:before {
  content: "\f812";
}
.mgz-fa-laravel:before {
  content: "\f3bd";
}
.mgz-fa-lastfm:before {
  content: "\f202";
}
.mgz-fa-lastfm-square:before {
  content: "\f203";
}
.mgz-fa-laugh:before {
  content: "\f599";
}
.mgz-fa-laugh-beam:before {
  content: "\f59a";
}
.mgz-fa-laugh-squint:before {
  content: "\f59b";
}
.mgz-fa-laugh-wink:before {
  content: "\f59c";
}
.mgz-fa-layer-group:before {
  content: "\f5fd";
}
.mgz-fa-leaf:before {
  content: "\f06c";
}
.mgz-fa-leanpub:before {
  content: "\f212";
}
.mgz-fa-lemon:before {
  content: "\f094";
}
.mgz-fa-less:before {
  content: "\f41d";
}
.mgz-fa-less-than:before {
  content: "\f536";
}
.mgz-fa-less-than-equal:before {
  content: "\f537";
}
.mgz-fa-level-down-alt:before {
  content: "\f3be";
}
.mgz-fa-level-up-alt:before {
  content: "\f3bf";
}
.mgz-fa-life-ring:before {
  content: "\f1cd";
}
.mgz-fa-lightbulb:before {
  content: "\f0eb";
}
.mgz-fa-line:before {
  content: "\f3c0";
}
.mgz-fa-link:before {
  content: "\f0c1";
}
.mgz-fa-linkedin:before {
  content: "\f08c";
}
.mgz-fa-linkedin-in:before {
  content: "\f0e1";
}
.mgz-fa-linode:before {
  content: "\f2b8";
}
.mgz-fa-linux:before {
  content: "\f17c";
}
.mgz-fa-lira-sign:before {
  content: "\f195";
}
.mgz-fa-list:before {
  content: "\f03a";
}
.mgz-fa-list-alt:before {
  content: "\f022";
}
.mgz-fa-list-ol:before {
  content: "\f0cb";
}
.mgz-fa-list-ul:before {
  content: "\f0ca";
}
.mgz-fa-location-arrow:before {
  content: "\f124";
}
.mgz-fa-lock:before {
  content: "\f023";
}
.mgz-fa-lock-open:before {
  content: "\f3c1";
}
.mgz-fa-long-arrow-alt-down:before {
  content: "\f309";
}
.mgz-fa-long-arrow-alt-left:before {
  content: "\f30a";
}
.mgz-fa-long-arrow-alt-right:before {
  content: "\f30b";
}
.mgz-fa-long-arrow-alt-up:before {
  content: "\f30c";
}
.mgz-fa-low-vision:before {
  content: "\f2a8";
}
.mgz-fa-luggage-cart:before {
  content: "\f59d";
}
.mgz-fa-lyft:before {
  content: "\f3c3";
}
.mgz-fa-magento:before {
  content: "\f3c4";
}
.mgz-fa-magic:before {
  content: "\f0d0";
}
.mgz-fa-magnet:before {
  content: "\f076";
}
.mgz-fa-mail-bulk:before {
  content: "\f674";
}
.mgz-fa-mailchimp:before {
  content: "\f59e";
}
.mgz-fa-male:before {
  content: "\f183";
}
.mgz-fa-mandalorian:before {
  content: "\f50f";
}
.mgz-fa-map:before {
  content: "\f279";
}
.mgz-fa-map-marked:before {
  content: "\f59f";
}
.mgz-fa-map-marked-alt:before {
  content: "\f5a0";
}
.mgz-fa-map-marker:before {
  content: "\f041";
}
.mgz-fa-map-marker-alt:before {
  content: "\f3c5";
}
.mgz-fa-map-pin:before {
  content: "\f276";
}
.mgz-fa-map-signs:before {
  content: "\f277";
}
.mgz-fa-markdown:before {
  content: "\f60f";
}
.mgz-fa-marker:before {
  content: "\f5a1";
}
.mgz-fa-mars:before {
  content: "\f222";
}
.mgz-fa-mars-double:before {
  content: "\f227";
}
.mgz-fa-mars-stroke:before {
  content: "\f229";
}
.mgz-fa-mars-stroke-h:before {
  content: "\f22b";
}
.mgz-fa-mars-stroke-v:before {
  content: "\f22a";
}
.mgz-fa-mask:before {
  content: "\f6fa";
}
.mgz-fa-mastodon:before {
  content: "\f4f6";
}
.mgz-fa-maxcdn:before {
  content: "\f136";
}
.mgz-fa-medal:before {
  content: "\f5a2";
}
.mgz-fa-medapps:before {
  content: "\f3c6";
}
.mgz-fa-medium:before {
  content: "\f23a";
}
.mgz-fa-medium-m:before {
  content: "\f3c7";
}
.mgz-fa-medkit:before {
  content: "\f0fa";
}
.mgz-fa-medrt:before {
  content: "\f3c8";
}
.mgz-fa-meetup:before {
  content: "\f2e0";
}
.mgz-fa-megaport:before {
  content: "\f5a3";
}
.mgz-fa-meh:before {
  content: "\f11a";
}
.mgz-fa-meh-blank:before {
  content: "\f5a4";
}
.mgz-fa-meh-rolling-eyes:before {
  content: "\f5a5";
}
.mgz-fa-memory:before {
  content: "\f538";
}
.mgz-fa-mendeley:before {
  content: "\f7b3";
}
.mgz-fa-menorah:before {
  content: "\f676";
}
.mgz-fa-mercury:before {
  content: "\f223";
}
.mgz-fa-meteor:before {
  content: "\f753";
}
.mgz-fa-microchip:before {
  content: "\f2db";
}
.mgz-fa-microphone:before {
  content: "\f130";
}
.mgz-fa-microphone-alt:before {
  content: "\f3c9";
}
.mgz-fa-microphone-alt-slash:before {
  content: "\f539";
}
.mgz-fa-microphone-slash:before {
  content: "\f131";
}
.mgz-fa-microscope:before {
  content: "\f610";
}
.mgz-fa-microsoft:before {
  content: "\f3ca";
}
.mgz-fa-minus:before {
  content: "\f068";
}
.mgz-fa-minus-circle:before {
  content: "\f056";
}
.mgz-fa-minus-square:before {
  content: "\f146";
}
.mgz-fa-mitten:before {
  content: "\f7b5";
}
.mgz-fa-mix:before {
  content: "\f3cb";
}
.mgz-fa-mixcloud:before {
  content: "\f289";
}
.mgz-fa-mizuni:before {
  content: "\f3cc";
}
.mgz-fa-mobile:before {
  content: "\f10b";
}
.mgz-fa-mobile-alt:before {
  content: "\f3cd";
}
.mgz-fa-modx:before {
  content: "\f285";
}
.mgz-fa-monero:before {
  content: "\f3d0";
}
.mgz-fa-money-bill:before {
  content: "\f0d6";
}
.mgz-fa-money-bill-alt:before {
  content: "\f3d1";
}
.mgz-fa-money-bill-wave:before {
  content: "\f53a";
}
.mgz-fa-money-bill-wave-alt:before {
  content: "\f53b";
}
.mgz-fa-money-check:before {
  content: "\f53c";
}
.mgz-fa-money-check-alt:before {
  content: "\f53d";
}
.mgz-fa-monument:before {
  content: "\f5a6";
}
.mgz-fa-moon:before {
  content: "\f186";
}
.mgz-fa-mortar-pestle:before {
  content: "\f5a7";
}
.mgz-fa-mosque:before {
  content: "\f678";
}
.mgz-fa-motorcycle:before {
  content: "\f21c";
}
.mgz-fa-mountain:before {
  content: "\f6fc";
}
.mgz-fa-mouse-pointer:before {
  content: "\f245";
}
.mgz-fa-mug-hot:before {
  content: "\f7b6";
}
.mgz-fa-music:before {
  content: "\f001";
}
.mgz-fa-napster:before {
  content: "\f3d2";
}
.mgz-fa-neos:before {
  content: "\f612";
}
.mgz-fa-network-wired:before {
  content: "\f6ff";
}
.mgz-fa-neuter:before {
  content: "\f22c";
}
.mgz-fa-newspaper:before {
  content: "\f1ea";
}
.mgz-fa-nimblr:before {
  content: "\f5a8";
}
.mgz-fa-nintendo-switch:before {
  content: "\f418";
}
.mgz-fa-node:before {
  content: "\f419";
}
.mgz-fa-node-js:before {
  content: "\f3d3";
}
.mgz-fa-not-equal:before {
  content: "\f53e";
}
.mgz-fa-notes-medical:before {
  content: "\f481";
}
.mgz-fa-npm:before {
  content: "\f3d4";
}
.mgz-fa-ns8:before {
  content: "\f3d5";
}
.mgz-fa-nutritionix:before {
  content: "\f3d6";
}
.mgz-fa-object-group:before {
  content: "\f247";
}
.mgz-fa-object-ungroup:before {
  content: "\f248";
}
.mgz-fa-odnoklassniki:before {
  content: "\f263";
}
.mgz-fa-odnoklassniki-square:before {
  content: "\f264";
}
.mgz-fa-oil-can:before {
  content: "\f613";
}
.mgz-fa-old-republic:before {
  content: "\f510";
}
.mgz-fa-om:before {
  content: "\f679";
}
.mgz-fa-opencart:before {
  content: "\f23d";
}
.mgz-fa-openid:before {
  content: "\f19b";
}
.mgz-fa-opera:before {
  content: "\f26a";
}
.mgz-fa-optin-monster:before {
  content: "\f23c";
}
.mgz-fa-osi:before {
  content: "\f41a";
}
.mgz-fa-otter:before {
  content: "\f700";
}
.mgz-fa-outdent:before {
  content: "\f03b";
}
.mgz-fa-page4:before {
  content: "\f3d7";
}
.mgz-fa-pagelines:before {
  content: "\f18c";
}
.mgz-fa-pager:before {
  content: "\f815";
}
.mgz-fa-paint-brush:before {
  content: "\f1fc";
}
.mgz-fa-paint-roller:before {
  content: "\f5aa";
}
.mgz-fa-palette:before {
  content: "\f53f";
}
.mgz-fa-palfed:before {
  content: "\f3d8";
}
.mgz-fa-pallet:before {
  content: "\f482";
}
.mgz-fa-paper-plane:before {
  content: "\f1d8";
}
.mgz-fa-paperclip:before {
  content: "\f0c6";
}
.mgz-fa-parachute-box:before {
  content: "\f4cd";
}
.mgz-fa-paragraph:before {
  content: "\f1dd";
}
.mgz-fa-parking:before {
  content: "\f540";
}
.mgz-fa-passport:before {
  content: "\f5ab";
}
.mgz-fa-pastafarianism:before {
  content: "\f67b";
}
.mgz-fa-paste:before {
  content: "\f0ea";
}
.mgz-fa-patreon:before {
  content: "\f3d9";
}
.mgz-fa-pause:before {
  content: "\f04c";
}
.mgz-fa-pause-circle:before {
  content: "\f28b";
}
.mgz-fa-paw:before {
  content: "\f1b0";
}
.mgz-fa-paypal:before {
  content: "\f1ed";
}
.mgz-fa-peace:before {
  content: "\f67c";
}
.mgz-fa-pen:before {
  content: "\f304";
}
.mgz-fa-pen-alt:before {
  content: "\f305";
}
.mgz-fa-pen-fancy:before {
  content: "\f5ac";
}
.mgz-fa-pen-nib:before {
  content: "\f5ad";
}
.mgz-fa-pen-square:before {
  content: "\f14b";
}
.mgz-fa-pencil-alt:before {
  content: "\f303";
}
.mgz-fa-pencil-ruler:before {
  content: "\f5ae";
}
.mgz-fa-penny-arcade:before {
  content: "\f704";
}
.mgz-fa-people-carry:before {
  content: "\f4ce";
}
.mgz-fa-pepper-hot:before {
  content: "\f816";
}
.mgz-fa-percent:before {
  content: "\f295";
}
.mgz-fa-percentage:before {
  content: "\f541";
}
.mgz-fa-periscope:before {
  content: "\f3da";
}
.mgz-fa-person-booth:before {
  content: "\f756";
}
.mgz-fa-phabricator:before {
  content: "\f3db";
}
.mgz-fa-phoenix-framework:before {
  content: "\f3dc";
}
.mgz-fa-phoenix-squadron:before {
  content: "\f511";
}
.mgz-fa-phone:before {
  content: "\f095";
}
.mgz-fa-phone-slash:before {
  content: "\f3dd";
}
.mgz-fa-phone-square:before {
  content: "\f098";
}
.mgz-fa-phone-volume:before {
  content: "\f2a0";
}
.mgz-fa-php:before {
  content: "\f457";
}
.mgz-fa-pied-piper:before {
  content: "\f2ae";
}
.mgz-fa-pied-piper-alt:before {
  content: "\f1a8";
}
.mgz-fa-pied-piper-hat:before {
  content: "\f4e5";
}
.mgz-fa-pied-piper-pp:before {
  content: "\f1a7";
}
.mgz-fa-piggy-bank:before {
  content: "\f4d3";
}
.mgz-fa-pills:before {
  content: "\f484";
}
.mgz-fa-pinterest:before {
  content: "\f0d2";
}
.mgz-fa-pinterest-p:before {
  content: "\f231";
}
.mgz-fa-pinterest-square:before {
  content: "\f0d3";
}
.mgz-fa-pizza-slice:before {
  content: "\f818";
}
.mgz-fa-place-of-worship:before {
  content: "\f67f";
}
.mgz-fa-plane:before {
  content: "\f072";
}
.mgz-fa-plane-arrival:before {
  content: "\f5af";
}
.mgz-fa-plane-departure:before {
  content: "\f5b0";
}
.mgz-fa-play:before {
  content: "\f04b";
}
.mgz-fa-play-circle:before {
  content: "\f144";
}
.mgz-fa-playstation:before {
  content: "\f3df";
}
.mgz-fa-plug:before {
  content: "\f1e6";
}
.mgz-fa-plus:before {
  content: "\f067";
}
.mgz-fa-plus-circle:before {
  content: "\f055";
}
.mgz-fa-plus-square:before {
  content: "\f0fe";
}
.mgz-fa-podcast:before {
  content: "\f2ce";
}
.mgz-fa-poll:before {
  content: "\f681";
}
.mgz-fa-poll-h:before {
  content: "\f682";
}
.mgz-fa-poo:before {
  content: "\f2fe";
}
.mgz-fa-poo-storm:before {
  content: "\f75a";
}
.mgz-fa-poop:before {
  content: "\f619";
}
.mgz-fa-portrait:before {
  content: "\f3e0";
}
.mgz-fa-pound-sign:before {
  content: "\f154";
}
.mgz-fa-power-off:before {
  content: "\f011";
}
.mgz-fa-pray:before {
  content: "\f683";
}
.mgz-fa-praying-hands:before {
  content: "\f684";
}
.mgz-fa-prescription:before {
  content: "\f5b1";
}
.mgz-fa-prescription-bottle:before {
  content: "\f485";
}
.mgz-fa-prescription-bottle-alt:before {
  content: "\f486";
}
.mgz-fa-print:before {
  content: "\f02f";
}
.mgz-fa-procedures:before {
  content: "\f487";
}
.mgz-fa-product-hunt:before {
  content: "\f288";
}
.mgz-fa-project-diagram:before {
  content: "\f542";
}
.mgz-fa-pushed:before {
  content: "\f3e1";
}
.mgz-fa-puzzle-piece:before {
  content: "\f12e";
}
.mgz-fa-python:before {
  content: "\f3e2";
}
.mgz-fa-qq:before {
  content: "\f1d6";
}
.mgz-fa-qrcode:before {
  content: "\f029";
}
.mgz-fa-question:before {
  content: "\f128";
}
.mgz-fa-question-circle:before {
  content: "\f059";
}
.mgz-fa-quidditch:before {
  content: "\f458";
}
.mgz-fa-quinscape:before {
  content: "\f459";
}
.mgz-fa-quora:before {
  content: "\f2c4";
}
.mgz-fa-quote-left:before {
  content: "\f10d";
}
.mgz-fa-quote-right:before {
  content: "\f10e";
}
.mgz-fa-quran:before {
  content: "\f687";
}
.mgz-fa-r-project:before {
  content: "\f4f7";
}
.mgz-fa-radiation:before {
  content: "\f7b9";
}
.mgz-fa-radiation-alt:before {
  content: "\f7ba";
}
.mgz-fa-rainbow:before {
  content: "\f75b";
}
.mgz-fa-random:before {
  content: "\f074";
}
.mgz-fa-raspberry-pi:before {
  content: "\f7bb";
}
.mgz-fa-ravelry:before {
  content: "\f2d9";
}
.mgz-fa-react:before {
  content: "\f41b";
}
.mgz-fa-reacteurope:before {
  content: "\f75d";
}
.mgz-fa-readme:before {
  content: "\f4d5";
}
.mgz-fa-rebel:before {
  content: "\f1d0";
}
.mgz-fa-receipt:before {
  content: "\f543";
}
.mgz-fa-recycle:before {
  content: "\f1b8";
}
.mgz-fa-red-river:before {
  content: "\f3e3";
}
.mgz-fa-reddit:before {
  content: "\f1a1";
}
.mgz-fa-reddit-alien:before {
  content: "\f281";
}
.mgz-fa-reddit-square:before {
  content: "\f1a2";
}
.mgz-fa-redhat:before {
  content: "\f7bc";
}
.mgz-fa-redo:before {
  content: "\f01e";
}
.mgz-fa-redo-alt:before {
  content: "\f2f9";
}
.mgz-fa-registered:before {
  content: "\f25d";
}
.mgz-fa-renren:before {
  content: "\f18b";
}
.mgz-fa-reply:before {
  content: "\f3e5";
}
.mgz-fa-reply-all:before {
  content: "\f122";
}
.mgz-fa-replyd:before {
  content: "\f3e6";
}
.mgz-fa-republican:before {
  content: "\f75e";
}
.mgz-fa-researchgate:before {
  content: "\f4f8";
}
.mgz-fa-resolving:before {
  content: "\f3e7";
}
.mgz-fa-restroom:before {
  content: "\f7bd";
}
.mgz-fa-retweet:before {
  content: "\f079";
}
.mgz-fa-rev:before {
  content: "\f5b2";
}
.mgz-fa-ribbon:before {
  content: "\f4d6";
}
.mgz-fa-ring:before {
  content: "\f70b";
}
.mgz-fa-road:before {
  content: "\f018";
}
.mgz-fa-robot:before {
  content: "\f544";
}
.mgz-fa-rocket:before {
  content: "\f135";
}
.mgz-fa-rocketchat:before {
  content: "\f3e8";
}
.mgz-fa-rockrms:before {
  content: "\f3e9";
}
.mgz-fa-route:before {
  content: "\f4d7";
}
.mgz-fa-rss:before {
  content: "\f09e";
}
.mgz-fa-rss-square:before {
  content: "\f143";
}
.mgz-fa-ruble-sign:before {
  content: "\f158";
}
.mgz-fa-ruler:before {
  content: "\f545";
}
.mgz-fa-ruler-combined:before {
  content: "\f546";
}
.mgz-fa-ruler-horizontal:before {
  content: "\f547";
}
.mgz-fa-ruler-vertical:before {
  content: "\f548";
}
.mgz-fa-running:before {
  content: "\f70c";
}
.mgz-fa-rupee-sign:before {
  content: "\f156";
}
.mgz-fa-sad-cry:before {
  content: "\f5b3";
}
.mgz-fa-sad-tear:before {
  content: "\f5b4";
}
.mgz-fa-safari:before {
  content: "\f267";
}
.mgz-fa-salesforce:before {
  content: "\f83b";
}
.mgz-fa-sass:before {
  content: "\f41e";
}
.mgz-fa-satellite:before {
  content: "\f7bf";
}
.mgz-fa-satellite-dish:before {
  content: "\f7c0";
}
.mgz-fa-save:before {
  content: "\f0c7";
}
.mgz-fa-schlix:before {
  content: "\f3ea";
}
.mgz-fa-school:before {
  content: "\f549";
}
.mgz-fa-screwdriver:before {
  content: "\f54a";
}
.mgz-fa-scribd:before {
  content: "\f28a";
}
.mgz-fa-scroll:before {
  content: "\f70e";
}
.mgz-fa-sd-card:before {
  content: "\f7c2";
}
.mgz-fa-search:before {
  content: "\f002";
}
.mgz-fa-search-dollar:before {
  content: "\f688";
}
.mgz-fa-search-location:before {
  content: "\f689";
}
.mgz-fa-search-minus:before {
  content: "\f010";
}
.mgz-fa-search-plus:before {
  content: "\f00e";
}
.mgz-fa-searchengin:before {
  content: "\f3eb";
}
.mgz-fa-seedling:before {
  content: "\f4d8";
}
.mgz-fa-sellcast:before {
  content: "\f2da";
}
.mgz-fa-sellsy:before {
  content: "\f213";
}
.mgz-fa-server:before {
  content: "\f233";
}
.mgz-fa-servicestack:before {
  content: "\f3ec";
}
.mgz-fa-shapes:before {
  content: "\f61f";
}
.mgz-fa-share:before {
  content: "\f064";
}
.mgz-fa-share-alt:before {
  content: "\f1e0";
}
.mgz-fa-share-alt-square:before {
  content: "\f1e1";
}
.mgz-fa-share-square:before {
  content: "\f14d";
}
.mgz-fa-shekel-sign:before {
  content: "\f20b";
}
.mgz-fa-shield-alt:before {
  content: "\f3ed";
}
.mgz-fa-ship:before {
  content: "\f21a";
}
.mgz-fa-shipping-fast:before {
  content: "\f48b";
}
.mgz-fa-shirtsinbulk:before {
  content: "\f214";
}
.mgz-fa-shoe-prints:before {
  content: "\f54b";
}
.mgz-fa-shopping-bag:before {
  content: "\f290";
}
.mgz-fa-shopping-basket:before {
  content: "\f291";
}
.mgz-fa-shopping-cart:before {
  content: "\f07a";
}
.mgz-fa-shopware:before {
  content: "\f5b5";
}
.mgz-fa-shower:before {
  content: "\f2cc";
}
.mgz-fa-shuttle-van:before {
  content: "\f5b6";
}
.mgz-fa-sign:before {
  content: "\f4d9";
}
.mgz-fa-sign-in-alt:before {
  content: "\f2f6";
}
.mgz-fa-sign-language:before {
  content: "\f2a7";
}
.mgz-fa-sign-out-alt:before {
  content: "\f2f5";
}
.mgz-fa-signal:before {
  content: "\f012";
}
.mgz-fa-signature:before {
  content: "\f5b7";
}
.mgz-fa-sim-card:before {
  content: "\f7c4";
}
.mgz-fa-simplybuilt:before {
  content: "\f215";
}
.mgz-fa-sistrix:before {
  content: "\f3ee";
}
.mgz-fa-sitemap:before {
  content: "\f0e8";
}
.mgz-fa-sith:before {
  content: "\f512";
}
.mgz-fa-skating:before {
  content: "\f7c5";
}
.mgz-fa-sketch:before {
  content: "\f7c6";
}
.mgz-fa-skiing:before {
  content: "\f7c9";
}
.mgz-fa-skiing-nordic:before {
  content: "\f7ca";
}
.mgz-fa-skull:before {
  content: "\f54c";
}
.mgz-fa-skull-crossbones:before {
  content: "\f714";
}
.mgz-fa-skyatlas:before {
  content: "\f216";
}
.mgz-fa-skype:before {
  content: "\f17e";
}
.mgz-fa-slack:before {
  content: "\f198";
}
.mgz-fa-slack-hash:before {
  content: "\f3ef";
}
.mgz-fa-slash:before {
  content: "\f715";
}
.mgz-fa-sleigh:before {
  content: "\f7cc";
}
.mgz-fa-sliders-h:before {
  content: "\f1de";
}
.mgz-fa-slideshare:before {
  content: "\f1e7";
}
.mgz-fa-smile:before {
  content: "\f118";
}
.mgz-fa-smile-beam:before {
  content: "\f5b8";
}
.mgz-fa-smile-wink:before {
  content: "\f4da";
}
.mgz-fa-smog:before {
  content: "\f75f";
}
.mgz-fa-smoking:before {
  content: "\f48d";
}
.mgz-fa-smoking-ban:before {
  content: "\f54d";
}
.mgz-fa-sms:before {
  content: "\f7cd";
}
.mgz-fa-snapchat:before {
  content: "\f2ab";
}
.mgz-fa-snapchat-ghost:before {
  content: "\f2ac";
}
.mgz-fa-snapchat-square:before {
  content: "\f2ad";
}
.mgz-fa-snowboarding:before {
  content: "\f7ce";
}
.mgz-fa-snowflake:before {
  content: "\f2dc";
}
.mgz-fa-snowman:before {
  content: "\f7d0";
}
.mgz-fa-snowplow:before {
  content: "\f7d2";
}
.mgz-fa-socks:before {
  content: "\f696";
}
.mgz-fa-solar-panel:before {
  content: "\f5ba";
}
.mgz-fa-sort:before {
  content: "\f0dc";
}
.mgz-fa-sort-alpha-down:before {
  content: "\f15d";
}
.mgz-fa-sort-alpha-up:before {
  content: "\f15e";
}
.mgz-fa-sort-amount-down:before {
  content: "\f160";
}
.mgz-fa-sort-amount-up:before {
  content: "\f161";
}
.mgz-fa-sort-down:before {
  content: "\f0dd";
}
.mgz-fa-sort-numeric-down:before {
  content: "\f162";
}
.mgz-fa-sort-numeric-up:before {
  content: "\f163";
}
.mgz-fa-sort-up:before {
  content: "\f0de";
}
.mgz-fa-soundcloud:before {
  content: "\f1be";
}
.mgz-fa-sourcetree:before {
  content: "\f7d3";
}
.mgz-fa-spa:before {
  content: "\f5bb";
}
.mgz-fa-space-shuttle:before {
  content: "\f197";
}
.mgz-fa-speakap:before {
  content: "\f3f3";
}
.mgz-fa-speaker-deck:before {
  content: "\f83c";
}
.mgz-fa-spider:before {
  content: "\f717";
}
.mgz-fa-spinner:before {
  content: "\f110";
}
.mgz-fa-splotch:before {
  content: "\f5bc";
}
.mgz-fa-spotify:before {
  content: "\f1bc";
}
.mgz-fa-spray-can:before {
  content: "\f5bd";
}
.mgz-fa-square:before {
  content: "\f0c8";
}
.mgz-fa-square-full:before {
  content: "\f45c";
}
.mgz-fa-square-root-alt:before {
  content: "\f698";
}
.mgz-fa-squarespace:before {
  content: "\f5be";
}
.mgz-fa-stack-exchange:before {
  content: "\f18d";
}
.mgz-fa-stack-overflow:before {
  content: "\f16c";
}
.mgz-fa-stamp:before {
  content: "\f5bf";
}
.mgz-fa-star:before {
  content: "\f005";
}
.mgz-fa-star-and-crescent:before {
  content: "\f699";
}
.mgz-fa-star-half:before {
  content: "\f089";
}
.mgz-fa-star-half-alt:before {
  content: "\f5c0";
}
.mgz-fa-star-of-david:before {
  content: "\f69a";
}
.mgz-fa-star-of-life:before {
  content: "\f621";
}
.mgz-fa-staylinked:before {
  content: "\f3f5";
}
.mgz-fa-steam:before {
  content: "\f1b6";
}
.mgz-fa-steam-square:before {
  content: "\f1b7";
}
.mgz-fa-steam-symbol:before {
  content: "\f3f6";
}
.mgz-fa-step-backward:before {
  content: "\f048";
}
.mgz-fa-step-forward:before {
  content: "\f051";
}
.mgz-fa-stethoscope:before {
  content: "\f0f1";
}
.mgz-fa-sticker-mule:before {
  content: "\f3f7";
}
.mgz-fa-sticky-note:before {
  content: "\f249";
}
.mgz-fa-stop:before {
  content: "\f04d";
}
.mgz-fa-stop-circle:before {
  content: "\f28d";
}
.mgz-fa-stopwatch:before {
  content: "\f2f2";
}
.mgz-fa-store:before {
  content: "\f54e";
}
.mgz-fa-store-alt:before {
  content: "\f54f";
}
.mgz-fa-strava:before {
  content: "\f428";
}
.mgz-fa-stream:before {
  content: "\f550";
}
.mgz-fa-street-view:before {
  content: "\f21d";
}
.mgz-fa-strikethrough:before {
  content: "\f0cc";
}
.mgz-fa-stripe:before {
  content: "\f429";
}
.mgz-fa-stripe-s:before {
  content: "\f42a";
}
.mgz-fa-stroopwafel:before {
  content: "\f551";
}
.mgz-fa-studiovinari:before {
  content: "\f3f8";
}
.mgz-fa-stumbleupon:before {
  content: "\f1a4";
}
.mgz-fa-stumbleupon-circle:before {
  content: "\f1a3";
}
.mgz-fa-subscript:before {
  content: "\f12c";
}
.mgz-fa-subway:before {
  content: "\f239";
}
.mgz-fa-suitcase:before {
  content: "\f0f2";
}
.mgz-fa-suitcase-rolling:before {
  content: "\f5c1";
}
.mgz-fa-sun:before {
  content: "\f185";
}
.mgz-fa-superpowers:before {
  content: "\f2dd";
}
.mgz-fa-superscript:before {
  content: "\f12b";
}
.mgz-fa-supple:before {
  content: "\f3f9";
}
.mgz-fa-surprise:before {
  content: "\f5c2";
}
.mgz-fa-suse:before {
  content: "\f7d6";
}
.mgz-fa-swatchbook:before {
  content: "\f5c3";
}
.mgz-fa-swimmer:before {
  content: "\f5c4";
}
.mgz-fa-swimming-pool:before {
  content: "\f5c5";
}
.mgz-fa-symfony:before {
  content: "\f83d";
}
.mgz-fa-synagogue:before {
  content: "\f69b";
}
.mgz-fa-sync:before {
  content: "\f021";
}
.mgz-fa-sync-alt:before {
  content: "\f2f1";
}
.mgz-fa-syringe:before {
  content: "\f48e";
}
.mgz-fa-table:before {
  content: "\f0ce";
}
.mgz-fa-table-tennis:before {
  content: "\f45d";
}
.mgz-fa-tablet:before {
  content: "\f10a";
}
.mgz-fa-tablet-alt:before {
  content: "\f3fa";
}
.mgz-fa-tablets:before {
  content: "\f490";
}
.mgz-fa-tachometer-alt:before {
  content: "\f3fd";
}
.mgz-fa-tag:before {
  content: "\f02b";
}
.mgz-fa-tags:before {
  content: "\f02c";
}
.mgz-fa-tape:before {
  content: "\f4db";
}
.mgz-fa-tasks:before {
  content: "\f0ae";
}
.mgz-fa-taxi:before {
  content: "\f1ba";
}
.mgz-fa-teamspeak:before {
  content: "\f4f9";
}
.mgz-fa-teeth:before {
  content: "\f62e";
}
.mgz-fa-teeth-open:before {
  content: "\f62f";
}
.mgz-fa-telegram:before {
  content: "\f2c6";
}
.mgz-fa-telegram-plane:before {
  content: "\f3fe";
}
.mgz-fa-temperature-high:before {
  content: "\f769";
}
.mgz-fa-temperature-low:before {
  content: "\f76b";
}
.mgz-fa-tencent-weibo:before {
  content: "\f1d5";
}
.mgz-fa-tenge:before {
  content: "\f7d7";
}
.mgz-fa-terminal:before {
  content: "\f120";
}
.mgz-fa-text-height:before {
  content: "\f034";
}
.mgz-fa-text-width:before {
  content: "\f035";
}
.mgz-fa-th:before {
  content: "\f00a";
}
.mgz-fa-th-large:before {
  content: "\f009";
}
.mgz-fa-th-list:before {
  content: "\f00b";
}
.mgz-fa-the-red-yeti:before {
  content: "\f69d";
}
.mgz-fa-theater-masks:before {
  content: "\f630";
}
.mgz-fa-themeco:before {
  content: "\f5c6";
}
.mgz-fa-themeisle:before {
  content: "\f2b2";
}
.mgz-fa-thermometer:before {
  content: "\f491";
}
.mgz-fa-thermometer-empty:before {
  content: "\f2cb";
}
.mgz-fa-thermometer-full:before {
  content: "\f2c7";
}
.mgz-fa-thermometer-half:before {
  content: "\f2c9";
}
.mgz-fa-thermometer-quarter:before {
  content: "\f2ca";
}
.mgz-fa-thermometer-three-quarters:before {
  content: "\f2c8";
}
.mgz-fa-think-peaks:before {
  content: "\f731";
}
.mgz-fa-thumbs-down:before {
  content: "\f165";
}
.mgz-fa-thumbs-up:before {
  content: "\f164";
}
.mgz-fa-thumbtack:before {
  content: "\f08d";
}
.mgz-fa-ticket-alt:before {
  content: "\f3ff";
}
.mgz-fa-times:before {
  content: "\f00d";
}
.mgz-fa-times-circle:before {
  content: "\f057";
}
.mgz-fa-tint:before {
  content: "\f043";
}
.mgz-fa-tint-slash:before {
  content: "\f5c7";
}
.mgz-fa-tired:before {
  content: "\f5c8";
}
.mgz-fa-toggle-off:before {
  content: "\f204";
}
.mgz-fa-toggle-on:before {
  content: "\f205";
}
.mgz-fa-toilet:before {
  content: "\f7d8";
}
.mgz-fa-toilet-paper:before {
  content: "\f71e";
}
.mgz-fa-toolbox:before {
  content: "\f552";
}
.mgz-fa-tools:before {
  content: "\f7d9";
}
.mgz-fa-tooth:before {
  content: "\f5c9";
}
.mgz-fa-torah:before {
  content: "\f6a0";
}
.mgz-fa-torii-gate:before {
  content: "\f6a1";
}
.mgz-fa-tractor:before {
  content: "\f722";
}
.mgz-fa-trade-federation:before {
  content: "\f513";
}
.mgz-fa-trademark:before {
  content: "\f25c";
}
.mgz-fa-traffic-light:before {
  content: "\f637";
}
.mgz-fa-train:before {
  content: "\f238";
}
.mgz-fa-tram:before {
  content: "\f7da";
}
.mgz-fa-transgender:before {
  content: "\f224";
}
.mgz-fa-transgender-alt:before {
  content: "\f225";
}
.mgz-fa-trash:before {
  content: "\f1f8";
}
.mgz-fa-trash-alt:before {
  content: "\f2ed";
}
.mgz-fa-trash-restore:before {
  content: "\f829";
}
.mgz-fa-trash-restore-alt:before {
  content: "\f82a";
}
.mgz-fa-tree:before {
  content: "\f1bb";
}
.mgz-fa-trello:before {
  content: "\f181";
}
.mgz-fa-tripadvisor:before {
  content: "\f262";
}
.mgz-fa-trophy:before {
  content: "\f091";
}
.mgz-fa-truck:before {
  content: "\f0d1";
}
.mgz-fa-truck-loading:before {
  content: "\f4de";
}
.mgz-fa-truck-monster:before {
  content: "\f63b";
}
.mgz-fa-truck-moving:before {
  content: "\f4df";
}
.mgz-fa-truck-pickup:before {
  content: "\f63c";
}
.mgz-fa-tshirt:before {
  content: "\f553";
}
.mgz-fa-tty:before {
  content: "\f1e4";
}
.mgz-fa-tumblr:before {
  content: "\f173";
}
.mgz-fa-tumblr-square:before {
  content: "\f174";
}
.mgz-fa-tv:before {
  content: "\f26c";
}
.mgz-fa-twitch:before {
  content: "\f1e8";
}
.mgz-fa-twitter:before {
  content: "\f099";
}
.mgz-fa-twitter-square:before {
  content: "\f081";
}
.mgz-fa-typo3:before {
  content: "\f42b";
}
.mgz-fa-uber:before {
  content: "\f402";
}
.mgz-fa-ubuntu:before {
  content: "\f7df";
}
.mgz-fa-uikit:before {
  content: "\f403";
}
.mgz-fa-umbrella:before {
  content: "\f0e9";
}
.mgz-fa-umbrella-beach:before {
  content: "\f5ca";
}
.mgz-fa-underline:before {
  content: "\f0cd";
}
.mgz-fa-undo:before {
  content: "\f0e2";
}
.mgz-fa-undo-alt:before {
  content: "\f2ea";
}
.mgz-fa-uniregistry:before {
  content: "\f404";
}
.mgz-fa-universal-access:before {
  content: "\f29a";
}
.mgz-fa-university:before {
  content: "\f19c";
}
.mgz-fa-unlink:before {
  content: "\f127";
}
.mgz-fa-unlock:before {
  content: "\f09c";
}
.mgz-fa-unlock-alt:before {
  content: "\f13e";
}
.mgz-fa-untappd:before {
  content: "\f405";
}
.mgz-fa-upload:before {
  content: "\f093";
}
.mgz-fa-ups:before {
  content: "\f7e0";
}
.mgz-fa-usb:before {
  content: "\f287";
}
.mgz-fa-user:before {
  content: "\f007";
}
.mgz-fa-user-alt:before {
  content: "\f406";
}
.mgz-fa-user-alt-slash:before {
  content: "\f4fa";
}
.mgz-fa-user-astronaut:before {
  content: "\f4fb";
}
.mgz-fa-user-check:before {
  content: "\f4fc";
}
.mgz-fa-user-circle:before {
  content: "\f2bd";
}
.mgz-fa-user-clock:before {
  content: "\f4fd";
}
.mgz-fa-user-cog:before {
  content: "\f4fe";
}
.mgz-fa-user-edit:before {
  content: "\f4ff";
}
.mgz-fa-user-friends:before {
  content: "\f500";
}
.mgz-fa-user-graduate:before {
  content: "\f501";
}
.mgz-fa-user-injured:before {
  content: "\f728";
}
.mgz-fa-user-lock:before {
  content: "\f502";
}
.mgz-fa-user-md:before {
  content: "\f0f0";
}
.mgz-fa-user-minus:before {
  content: "\f503";
}
.mgz-fa-user-ninja:before {
  content: "\f504";
}
.mgz-fa-user-nurse:before {
  content: "\f82f";
}
.mgz-fa-user-plus:before {
  content: "\f234";
}
.mgz-fa-user-secret:before {
  content: "\f21b";
}
.mgz-fa-user-shield:before {
  content: "\f505";
}
.mgz-fa-user-slash:before {
  content: "\f506";
}
.mgz-fa-user-tag:before {
  content: "\f507";
}
.mgz-fa-user-tie:before {
  content: "\f508";
}
.mgz-fa-user-times:before {
  content: "\f235";
}
.mgz-fa-users:before {
  content: "\f0c0";
}
.mgz-fa-users-cog:before {
  content: "\f509";
}
.mgz-fa-usps:before {
  content: "\f7e1";
}
.mgz-fa-ussunnah:before {
  content: "\f407";
}
.mgz-fa-utensil-spoon:before {
  content: "\f2e5";
}
.mgz-fa-utensils:before {
  content: "\f2e7";
}
.mgz-fa-vaadin:before {
  content: "\f408";
}
.mgz-fa-vector-square:before {
  content: "\f5cb";
}
.mgz-fa-venus:before {
  content: "\f221";
}
.mgz-fa-venus-double:before {
  content: "\f226";
}
.mgz-fa-venus-mars:before {
  content: "\f228";
}
.mgz-fa-viacoin:before {
  content: "\f237";
}
.mgz-fa-viadeo:before {
  content: "\f2a9";
}
.mgz-fa-viadeo-square:before {
  content: "\f2aa";
}
.mgz-fa-vial:before {
  content: "\f492";
}
.mgz-fa-vials:before {
  content: "\f493";
}
.mgz-fa-viber:before {
  content: "\f409";
}
.mgz-fa-video:before {
  content: "\f03d";
}
.mgz-fa-video-slash:before {
  content: "\f4e2";
}
.mgz-fa-vihara:before {
  content: "\f6a7";
}
.mgz-fa-vimeo:before {
  content: "\f40a";
}
.mgz-fa-vimeo-square:before {
  content: "\f194";
}
.mgz-fa-vimeo-v:before {
  content: "\f27d";
}
.mgz-fa-vine:before {
  content: "\f1ca";
}
.mgz-fa-vk:before {
  content: "\f189";
}
.mgz-fa-vnv:before {
  content: "\f40b";
}
.mgz-fa-volleyball-ball:before {
  content: "\f45f";
}
.mgz-fa-volume-down:before {
  content: "\f027";
}
.mgz-fa-volume-mute:before {
  content: "\f6a9";
}
.mgz-fa-volume-off:before {
  content: "\f026";
}
.mgz-fa-volume-up:before {
  content: "\f028";
}
.mgz-fa-vote-yea:before {
  content: "\f772";
}
.mgz-fa-vr-cardboard:before {
  content: "\f729";
}
.mgz-fa-vuejs:before {
  content: "\f41f";
}
.mgz-fa-walking:before {
  content: "\f554";
}
.mgz-fa-wallet:before {
  content: "\f555";
}
.mgz-fa-warehouse:before {
  content: "\f494";
}
.mgz-fa-water:before {
  content: "\f773";
}
.mgz-fa-wave-square:before {
  content: "\f83e";
}
.mgz-fa-waze:before {
  content: "\f83f";
}
.mgz-fa-weebly:before {
  content: "\f5cc";
}
.mgz-fa-weibo:before {
  content: "\f18a";
}
.mgz-fa-weight:before {
  content: "\f496";
}
.mgz-fa-weight-hanging:before {
  content: "\f5cd";
}
.mgz-fa-weixin:before {
  content: "\f1d7";
}
.mgz-fa-whatsapp:before {
  content: "\f232";
}
.mgz-fa-whatsapp-square:before {
  content: "\f40c";
}
.mgz-fa-wheelchair:before {
  content: "\f193";
}
.mgz-fa-whmcs:before {
  content: "\f40d";
}
.mgz-fa-wifi:before {
  content: "\f1eb";
}
.mgz-fa-wikipedia-w:before {
  content: "\f266";
}
.mgz-fa-wind:before {
  content: "\f72e";
}
.mgz-fa-window-close:before {
  content: "\f410";
}
.mgz-fa-window-maximize:before {
  content: "\f2d0";
}
.mgz-fa-window-minimize:before {
  content: "\f2d1";
}
.mgz-fa-window-restore:before {
  content: "\f2d2";
}
.mgz-fa-windows:before {
  content: "\f17a";
}
.mgz-fa-wine-bottle:before {
  content: "\f72f";
}
.mgz-fa-wine-glass:before {
  content: "\f4e3";
}
.mgz-fa-wine-glass-alt:before {
  content: "\f5ce";
}
.mgz-fa-wix:before {
  content: "\f5cf";
}
.mgz-fa-wizards-of-the-coast:before {
  content: "\f730";
}
.mgz-fa-wolf-pack-battalion:before {
  content: "\f514";
}
.mgz-fa-won-sign:before {
  content: "\f159";
}
.mgz-fa-wordpress:before {
  content: "\f19a";
}
.mgz-fa-wordpress-simple:before {
  content: "\f411";
}
.mgz-fa-wpbeginner:before {
  content: "\f297";
}
.mgz-fa-wpexplorer:before {
  content: "\f2de";
}
.mgz-fa-wpforms:before {
  content: "\f298";
}
.mgz-fa-wpressr:before {
  content: "\f3e4";
}
.mgz-fa-wrench:before {
  content: "\f0ad";
}
.mgz-fa-x-ray:before {
  content: "\f497";
}
.mgz-fa-xbox:before {
  content: "\f412";
}
.mgz-fa-xing:before {
  content: "\f168";
}
.mgz-fa-xing-square:before {
  content: "\f169";
}
.mgz-fa-y-combinator:before {
  content: "\f23b";
}
.mgz-fa-yahoo:before {
  content: "\f19e";
}
.mgz-fa-yammer:before {
  content: "\f840";
}
.mgz-fa-yandex:before {
  content: "\f413";
}
.mgz-fa-yandex-international:before {
  content: "\f414";
}
.mgz-fa-yarn:before {
  content: "\f7e3";
}
.mgz-fa-yelp:before {
  content: "\f1e9";
}
.mgz-fa-yen-sign:before {
  content: "\f157";
}
.mgz-fa-yin-yang:before {
  content: "\f6ad";
}
.mgz-fa-yoast:before {
  content: "\f2b1";
}
.mgz-fa-youtube:before {
  content: "\f167";
}
.mgz-fa-youtube-square:before {
  content: "\f431";
}
.mgz-fa-zhihu:before {
  content: "\f63f";
}
.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
}
/*!
 * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
@font-face {
  font-family: 'Font Awesome 5 Free';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-solid-900.eot');
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-solid-900.eot?#iefix') format('embedded-opentype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-solid-900.woff2') format('woff2'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-solid-900.woff') format('woff'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-solid-900.ttf') format('truetype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-solid-900.svg#fontawesome') format('svg');
}
.fas {
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
}
/*!
 * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
@font-face {
  font-family: 'Font Awesome 5 Free';
  font-style: normal;
  font-weight: 400;
  font-display: auto;
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-regular-400.eot');
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-regular-400.eot?#iefix') format('embedded-opentype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-regular-400.woff2') format('woff2'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-regular-400.woff') format('woff'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-regular-400.ttf') format('truetype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-regular-400.svg#fontawesome') format('svg');
}
.far {
  font-family: 'Font Awesome 5 Free';
  font-weight: 400;
}
/*!
 * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
@font-face {
  font-family: 'Font Awesome 5 Brands';
  font-style: normal;
  font-weight: normal;
  font-display: auto;
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-brands-400.eot');
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-brands-400.eot?#iefix') format('embedded-opentype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-brands-400.woff2') format('woff2'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-brands-400.woff') format('woff'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-brands-400.ttf') format('truetype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-brands-400.svg#fontawesome') format('svg');
}
.fab {
  font-family: 'Font Awesome 5 Brands';
}
@font-face {
  font-family: 'Magezon-Icons';
  src:  url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/mgz_icons.eot?lbpphw');
  src:  url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/css/fonts/mgz_icons.eot?lbpphw#iefix') format('embedded-opentype'),
  url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/mgz_icons.ttf?lbpphw') format('truetype'),
  url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/mgz_icons.woff?lbpphw') format('woff'),
  url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/mgz_icons.svg?lbpphw#mgz_icons') format('svg');
  font-weight: normal;
  font-style: normal;
}

.mgz-icon {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'Magezon-Icons' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  display: inline-block;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.mgz-icon:before {
    font-family: inherit;
}

.mgz-icon-search:before {
  content: "\e8b6";
}
.mgz-icon-close:before {
  content: "\e62f";
}
.mgz-icon-add:before {
  content: "\e90d";
}
.mgz-icon-fullscreen:before {
  content: "\e915";
}
.mgz-icon-dragndrop:before {
  content: "\e913";
}
.mgz-icon-edit:before {
  content: "\e91d";
}
.mgz-icon-delete:before {
  content: "\e912";
}
.mgz-icon-clone:before {
  content: "\e911";
}
.mgz-icon-arrow_drop_right:before {
  content: "\e916";
}
.mgz-icon-arrow_drop_down:before {
  content: "\e5c5";
}
.mgz-icon-arrow_drop_up:before {
  content: "\e5c7";
}
.mgz-icon-1-1:before {
  content: "\e900";
}
.mgz-icon-1-2_1-2:before {
  content: "\e901";
}
.mgz-icon-1-3_1-3_1-3:before {
  content: "\e902";
}
.mgz-icon-1-4_1-2_1-4:before {
  content: "\e904";
}
.mgz-icon-1-4_1-4_1-4_1-4:before {
  content: "\e905";
}
.mgz-icon-1-4_3-4:before {
  content: "\e906";
}
.mgz-icon-1-6_1-6_1-6_1-2:before {
  content: "\e907";
}
.mgz-icon-1-6_1-6_1-6_1-6_1-6_1-6:before {
  content: "\e908";
}
.mgz-icon-l_15_15_15_15_15:before {
  content: "\e909";
}
.mgz-icon-1-6_2-3_1-6:before {
  content: "\e90a";
}
.mgz-icon-2-3_1-3:before {
  content: "\e90b";
}
.mgz-icon-5-6_1-6:before {
  content: "\e90c";
}
.mgz-icon-1-6_4-6_1-6:before {
  content: "\e90e";
}
.mgz-icon-row:before {
  content: "\e91e";
}
.mgz-icon-fullscreen:before {
  content: "\e915";
}
.mgz-icon-fullscreen_exit:before {
  content: "\e914";
}
.mgz-icon-check-mage:before {
  content: "\e62d";
}
.mgz-icon-plus:before {
  content: "\e61c";
}
.mgz-icon-minus:before {
  content: "\e60f";
}
.mgz-icon-remove:before {
  content: "\e604";
}
.mgz-icon-up:before {
  content: "\e621";
}
.mgz-icon-down:before {
  content: "\e622";
}
.mgz-icon-product:before {
  content: "\e608";
}
.mgz-icon-tabs:before {
  content: "\e879";
}
.mgz-icon-divider:before {
  content: "\e822";
  font-weight: bold;
}
.mgz-icon-spacer:before {
  content: "\e877";
  font-weight: bold;
}
.mgz-settings-icon:before{
  content: "\e910";
}
.mgz-icon-play:before {
  content: "\e939";
}
.mgz-icon-cms:before {
  content: "\e602";
}
.mgz-icon-testimonial:before {
  content: "\e920";
}
.mgz-icon-social-icons:before {
  content: "\e876";
}
.mgz-icon-pricing-table:before {
  content: "\e859";
}
.mgz-icon-accordion:before {
  content: "\e806";
}
.mgz-icon-number-counter:before {
  content: "\e921";
}
.mgz-icon-favorite:before {
  content: "\e895";
}
.mgz-icon-toggle:before {
  content: "\e887";
}
.mgz-icon-slideshow:before {
  content: "\e875";
}
.mgz-icon-icon-list:before {
  content: "\e893";
}
.mgz-icon-flip-box:before {
  content: "\e903";
}
.mgz-icon-code:before {
  content: "\e894";
}
.mgz-icon-countdown:before {
  content: "\e818";
}
.mgz-icon-magezon-pagebuilder:before {
  content: "\e922";
}
.mgz-icon-checkbox:before {
  content: "\e816";
}
.mgz-icon-number-field:before {
  content: "\e846";
}
.mgz-icon-menu-toggle:before {
  content: "\e943";
}
.mgz-icon-button:before {
  content: "\e812";
}
.mgz-icon-text-field:before {
  content: "\e882";
}
.mgz-icon-delete2:before {
  content: "\e630";
}
.mgz-icon-check:before {
  content: "\e5ca";
}
.mgz-icon-tablet-landscape:before {
  content: "\1f4bb";
}
.mgz-icon-mobile-portrait:before {
  content: "\1f4f1";
}
.mgz-icon-mobile-landscape:before {
  content: "\1f4f2";
}
.mgz-icon-desktop:before {
  content: "\1f4fa";
}
.mgz-icon-tablet-portrait:before {
  content: "\1f5b3";
}
.mgz-icon-arrow_downward:before {
  content: "\e5dc";
}
.mgz-icon-stores:before {
  content: "\e60e";
}
.mgz-icon-sales:before {
  content: "\e60b";
}
.mgz-icon-layers:before {
  content: "\1f5d7";
}
.mgz-icon-column:before {
  content: "\23f8";
}
.mgz-icon-minimize:before {
  content: "\e91c";
}[class*='mgz-col-'] {
  width: 100%;
  float: left;
}
.mgz-col-xs-1, .mgz-col-sm-1, .mgz-col-md-1, .mgz-col-lg-1, .mgz-col-xs-2, .mgz-col-sm-2, .mgz-col-md-2, .mgz-col-lg-2, .mgz-col-xs-3, .mgz-col-sm-3, .mgz-col-md-3, .mgz-col-lg-3, .mgz-col-xs-4, .mgz-col-sm-4, .mgz-col-md-4, .mgz-col-lg-4, .mgz-col-xs-5, .mgz-col-sm-5, .mgz-col-md-5, .mgz-col-lg-5, .mgz-col-xs-6, .mgz-col-sm-6, .mgz-col-md-6, .mgz-col-lg-6, .mgz-col-xs-7, .mgz-col-sm-7, .mgz-col-md-7, .mgz-col-lg-7, .mgz-col-xs-8, .mgz-col-sm-8, .mgz-col-md-8, .mgz-col-lg-8, .mgz-col-xs-9, .mgz-col-sm-9, .mgz-col-md-9, .mgz-col-lg-9, .mgz-col-xs-10, .mgz-col-sm-10, .mgz-col-md-10, .mgz-col-lg-10, .mgz-col-xs-11, .mgz-col-sm-11, .mgz-col-md-11, .mgz-col-lg-11, .mgz-col-xs-12, .mgz-col-sm-12, .mgz-col-md-12, .mgz-col-lg-12, .mgz-col-xs-15, .mgz-col-sm-15, .mgz-col-md-15, .mgz-col-lg-15, .mgz-col-xs-25, .mgz-col-sm-25, .mgz-col-md-25, .mgz-col-lg-25, .mgz-col-xs-35, .mgz-col-sm-35, .mgz-col-md-35, .mgz-col-lg-35, .mgz-col-xs-45, .mgz-col-sm-45, .mgz-col-md-45, .mgz-col-lg-45 {
  position: relative;
  min-height: 1px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.mgz-col-xs-1, .mgz-col-xs-2, .mgz-col-xs-3, .mgz-col-xs-4, .mgz-col-xs-5, .mgz-col-xs-6, .mgz-col-xs-7, .mgz-col-xs-8, .mgz-col-xs-9, .mgz-col-xs-10, .mgz-col-xs-11, .mgz-col-xs-12, .mgz-col-xs-15, .mgz-col-xs-25, .mgz-col-xs-35, .mgz-col-xs-45 {
  float: left;
}
.mgz-col-xs-12 {
  width: 100%;
}
.mgz-col-xs-11 {
  width: 91.66666667%;
}
.mgz-col-xs-10 {
  width: 83.33333333%;
}
.mgz-col-xs-9 {
  width: 75%;
}
.mgz-col-xs-8 {
  width: 66.66666667%;
}
.mgz-col-xs-7 {
  width: 58.33333333%;
}
.mgz-col-xs-6 {
  width: 50%;
}
.mgz-col-xs-5 {
  width: 41.66666667%;
}
.mgz-col-xs-4 {
  width: 33.33333333%;
}
.mgz-col-xs-3 {
  width: 25%;
}
.mgz-col-xs-15 {
  width: 20%;
}
.mgz-col-xs-25 {
  width: 40%;
}
.mgz-col-xs-35 {
  width: 60%;
}
.mgz-col-xs-45 {
  width: 80%;
}
.mgz-col-xs-2 {
  width: 16.66666667%;
}
.mgz-col-xs-1 {
  width: 8.33333333%;
}
.mgz-col-xs-pull-12 {
  right: 100%;
}
.mgz-col-xs-pull-11 {
  right: 91.66666667%;
}
.mgz-col-xs-pull-10 {
  right: 83.33333333%;
}
.mgz-col-xs-pull-9 {
  right: 75%;
}
.mgz-col-xs-pull-8 {
  right: 66.66666667%;
}
.mgz-col-xs-pull-7 {
  right: 58.33333333%;
}
.mgz-col-xs-pull-6 {
  right: 50%;
}
.mgz-col-xs-pull-5 {
  right: 41.66666667%;
}
.mgz-col-xs-pull-4 {
  right: 33.33333333%;
}
.mgz-col-xs-pull-3 {
  right: 25%;
}
.mgz-col-xs-pull-15 {
  right: 20%;
}
.mgz-col-xs-pull-25 {
  right: 40%;
}
.mgz-col-xs-pull-35 {
  right: 60%;
}
.mgz-col-xs-pull-45 {
  right: 80%;
}
.mgz-col-xs-pull-2 {
  right: 16.66666667%;
}
.mgz-col-xs-pull-1 {
  right: 8.33333333%;
}
.mgz-col-xs-pull-0 {
  right: auto;
}
.mgz-col-xs-push-12 {
  left: 100%;
}
.mgz-col-xs-push-11 {
  left: 91.66666667%;
}
.mgz-col-xs-push-10 {
  left: 83.33333333%;
}
.mgz-col-xs-push-9 {
  left: 75%;
}
.mgz-col-xs-push-8 {
  left: 66.66666667%;
}
.mgz-col-xs-push-7 {
  left: 58.33333333%;
}
.mgz-col-xs-push-6 {
  left: 50%;
}
.mgz-col-xs-push-5 {
  left: 41.66666667%;
}
.mgz-col-xs-push-4 {
  left: 33.33333333%;
}
.mgz-col-xs-push-3 {
  left: 25%;
}
.mgz-col-xs-push-15 {
  left: 20%;
}
.mgz-col-xs-push-25 {
  left: 40%;
}
.mgz-col-xs-push-35 {
  left: 60%;
}
.mgz-col-xs-push-45 {
  left: 80%;
}
.mgz-col-xs-push-2 {
  left: 16.66666667%;
}
.mgz-col-xs-push-1 {
  left: 8.33333333%;
}
.mgz-col-xs-push-0 {
  left: auto;
}
.mgz-col-xs-offset-12 {
  margin-left: 100%;
}
.mgz-col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.mgz-col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.mgz-col-xs-offset-9 {
  margin-left: 75%;
}
.mgz-col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.mgz-col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.mgz-col-xs-offset-6 {
  margin-left: 50%;
}
.mgz-col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.mgz-col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.mgz-col-xs-offset-3 {
  margin-left: 25%;
}
.mgz-col-xs-offset-15 {
  margin-left: 20%;
}
.mgz-col-xs-offset-25 {
  margin-left: 40%;
}
.mgz-col-xs-offset-35 {
  margin-left: 60%;
}
.mgz-col-xs-offset-45 {
  margin-left: 80%;
}
.mgz-col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.mgz-col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.mgz-col-xs-offset-0 {
  margin-left: 0%;
}

.mgz-container {
  width: 1280px;
  max-width: 100%;
  margin: 0 auto;
}

.mgz-row:before,
.mgz-row:after {
  content: " ";
  display: table;
}
.mgz-row:after {
  clear: both;
}

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

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

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

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

.f-right {
  float: right;
  width: auto;
}

.f-left {
  float: left;
  width: auto;
}

.f-none {
  float: none;
  width: auto;
}
@media (min-width: 576px) {
  .mgz-col-sm-1, .mgz-col-sm-2, .mgz-col-sm-3, .mgz-col-sm-4, .mgz-col-sm-5, .mgz-col-sm-6, .mgz-col-sm-7, .mgz-col-sm-8, .mgz-col-sm-9, .mgz-col-sm-10, .mgz-col-sm-11, .mgz-col-sm-12, .mgz-col-sm-15, .mgz-col-sm-25, .mgz-col-sm-35, .mgz-col-sm-45 {
    float: left;
  }
  .mgz-col-sm-12 {
    width: 100%;
  }
  .mgz-col-sm-11 {
    width: 91.66666667%;
  }
  .mgz-col-sm-10 {
    width: 83.33333333%;
  }
  .mgz-col-sm-9 {
    width: 75%;
  }
  .mgz-col-sm-8 {
    width: 66.66666667%;
  }
  .mgz-col-sm-7 {
    width: 58.33333333%;
  }
  .mgz-col-sm-6 {
    width: 50%;
  }
  .mgz-col-sm-5 {
    width: 41.66666667%;
  }
  .mgz-col-sm-4 {
    width: 33.33333333%;
  }
  .mgz-col-sm-3 {
    width: 25%;
  }
  .mgz-col-sm-15 {
    width: 20%;
  }
  .mgz-col-sm-25 {
    width: 40%;
  }
  .mgz-col-sm-35 {
    width: 60%;
  }
  .mgz-col-sm-45 {
    width: 80%;
  }
  .mgz-col-sm-2 {
    width: 16.66666667%;
  }
  .mgz-col-sm-1 {
    width: 8.33333333%;
  }
  .mgz-col-sm-pull-12 {
    right: 100%;
  }
  .mgz-col-sm-pull-11 {
    right: 91.66666667%;
  }
  .mgz-col-sm-pull-10 {
    right: 83.33333333%;
  }
  .mgz-col-sm-pull-9 {
    right: 75%;
  }
  .mgz-col-sm-pull-8 {
    right: 66.66666667%;
  }
  .mgz-col-sm-pull-7 {
    right: 58.33333333%;
  }
  .mgz-col-sm-pull-6 {
    right: 50%;
  }
  .mgz-col-sm-pull-5 {
    right: 41.66666667%;
  }
  .mgz-col-sm-pull-4 {
    right: 33.33333333%;
  }
  .mgz-col-sm-pull-3 {
    right: 25%;
  }
  .mgz-col-sm-pull-15 {
    right: 20%;
  }
  .mgz-col-sm-pull-25 {
    right: 40%;
  }
  .mgz-col-sm-pull-35 {
    right: 60%;
  }
  .mgz-col-sm-pull-45 {
    right: 80%;
  }
  .mgz-col-sm-pull-2 {
    right: 16.66666667%;
  }
  .mgz-col-sm-pull-1 {
    right: 8.33333333%;
  }
  .mgz-col-sm-pull-0 {
    right: auto;
  }
  .mgz-col-sm-push-12 {
    left: 100%;
  }
  .mgz-col-sm-push-11 {
    left: 91.66666667%;
  }
  .mgz-col-sm-push-10 {
    left: 83.33333333%;
  }
  .mgz-col-sm-push-9 {
    left: 75%;
  }
  .mgz-col-sm-push-8 {
    left: 66.66666667%;
  }
  .mgz-col-sm-push-7 {
    left: 58.33333333%;
  }
  .mgz-col-sm-push-6 {
    left: 50%;
  }
  .mgz-col-sm-push-5 {
    left: 41.66666667%;
  }
  .mgz-col-sm-push-4 {
    left: 33.33333333%;
  }
  .mgz-col-sm-push-3 {
    left: 25%;
  }
  .mgz-col-sm-push-15 {
    left: 20%;
  }
  .mgz-col-sm-push-25 {
    left: 40%;
  }
  .mgz-col-sm-push-35 {
    left: 60%;
  }
  .mgz-col-sm-push-45 {
    left: 80%;
  }
  .mgz-col-sm-push-2 {
    left: 16.66666667%;
  }
  .mgz-col-sm-push-1 {
    left: 8.33333333%;
  }
  .mgz-col-sm-push-0 {
    left: auto;
  }
  .mgz-col-sm-offset-12 {
    margin-left: 100%;
  }
  .mgz-col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .mgz-col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .mgz-col-sm-offset-9 {
    margin-left: 75%;
  }
  .mgz-col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .mgz-col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .mgz-col-sm-offset-6 {
    margin-left: 50%;
  }
  .mgz-col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .mgz-col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .mgz-col-sm-offset-3 {
    margin-left: 25%;
  }
  .mgz-col-sm-offset-15 {
    margin-left: 20%;
  }
  .mgz-col-sm-offset-25 {
    margin-left: 40%;
  }
  .mgz-col-sm-offset-35 {
    margin-left: 60%;
  }
  .mgz-col-sm-offset-45 {
    margin-left: 80%;
  }
  .mgz-col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .mgz-col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .mgz-col-sm-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 768px) {
  .mgz-col-md-1, .mgz-col-md-2, .mgz-col-md-3, .mgz-col-md-4, .mgz-col-md-5, .mgz-col-md-6, .mgz-col-md-7, .mgz-col-md-8, .mgz-col-md-9, .mgz-col-md-10, .mgz-col-md-11, .mgz-col-md-12, .mgz-col-md-15, .mgz-col-md-25, .mgz-col-md-35, .mgz-col-md-45 {
    float: left;
  }
  .mgz-col-md-12 {
    width: 100%;
  }
  .mgz-col-md-11 {
    width: 91.66666667%;
  }
  .mgz-col-md-10 {
    width: 83.33333333%;
  }
  .mgz-col-md-9 {
    width: 75%;
  }
  .mgz-col-md-8 {
    width: 66.66666667%;
  }
  .mgz-col-md-7 {
    width: 58.33333333%;
  }
  .mgz-col-md-6 {
    width: 50%;
  }
  .mgz-col-md-5 {
    width: 41.66666667%;
  }
  .mgz-col-md-4 {
    width: 33.33333333%;
  }
  .mgz-col-md-3 {
    width: 25%;
  }
  .mgz-col-md-15 {
    width: 20%;
  }
  .mgz-col-md-25 {
    width: 40%;
  }
  .mgz-col-md-35 {
    width: 60%;
  }
  .mgz-col-md-45 {
    width: 80%;
  }
  .mgz-col-md-2 {
    width: 16.66666667%;
  }
  .mgz-col-md-1 {
    width: 8.33333333%;
  }
  .mgz-col-md-pull-12 {
    right: 100%;
  }
  .mgz-col-md-pull-11 {
    right: 91.66666667%;
  }
  .mgz-col-md-pull-10 {
    right: 83.33333333%;
  }
  .mgz-col-md-pull-9 {
    right: 75%;
  }
  .mgz-col-md-pull-8 {
    right: 66.66666667%;
  }
  .mgz-col-md-pull-7 {
    right: 58.33333333%;
  }
  .mgz-col-md-pull-6 {
    right: 50%;
  }
  .mgz-col-md-pull-5 {
    right: 41.66666667%;
  }
  .mgz-col-md-pull-4 {
    right: 33.33333333%;
  }
  .mgz-col-md-pull-3 {
    right: 25%;
  }
  .mgz-col-md-pull-15 {
    right: 20%;
  }
  .mgz-col-md-pull-25 {
    right: 40%;
  }
  .mgz-col-md-pull-35 {
    right: 60%;
  }
  .mgz-col-md-pull-45 {
    right: 80%;
  }
  .mgz-col-md-pull-2 {
    right: 16.66666667%;
  }
  .mgz-col-md-pull-1 {
    right: 8.33333333%;
  }
  .mgz-col-md-pull-0 {
    right: auto;
  }
  .mgz-col-md-push-12 {
    left: 100%;
  }
  .mgz-col-md-push-11 {
    left: 91.66666667%;
  }
  .mgz-col-md-push-10 {
    left: 83.33333333%;
  }
  .mgz-col-md-push-9 {
    left: 75%;
  }
  .mgz-col-md-push-8 {
    left: 66.66666667%;
  }
  .mgz-col-md-push-7 {
    left: 58.33333333%;
  }
  .mgz-col-md-push-6 {
    left: 50%;
  }
  .mgz-col-md-push-5 {
    left: 41.66666667%;
  }
  .mgz-col-md-push-4 {
    left: 33.33333333%;
  }
  .mgz-col-md-push-3 {
    left: 25%;
  }
  .mgz-col-md-push-15 {
    left: 20%;
  }
  .mgz-col-md-push-25 {
    left: 40%;
  }
  .mgz-col-md-push-35 {
    left: 60%;
  }
  .mgz-col-md-push-45 {
    left: 80%;
  }
  .mgz-col-md-push-2 {
    left: 16.66666667%;
  }
  .mgz-col-md-push-1 {
    left: 8.33333333%;
  }
  .mgz-col-md-push-0 {
    left: auto;
  }
  .mgz-col-md-offset-12 {
    margin-left: 100%;
  }
  .mgz-col-md-offset-11 {
    margin-left: 91.66666667%;
  }
  .mgz-col-md-offset-10 {
    margin-left: 83.33333333%;
  }
  .mgz-col-md-offset-9 {
    margin-left: 75%;
  }
  .mgz-col-md-offset-8 {
    margin-left: 66.66666667%;
  }
  .mgz-col-md-offset-7 {
    margin-left: 58.33333333%;
  }
  .mgz-col-md-offset-6 {
    margin-left: 50%;
  }
  .mgz-col-md-offset-5 {
    margin-left: 41.66666667%;
  }
  .mgz-col-md-offset-4 {
    margin-left: 33.33333333%;
  }
  .mgz-col-md-offset-3 {
    margin-left: 25%;
  }
  .mgz-col-md-offset-15 {
    margin-left: 20%;
  }
  .mgz-col-md-offset-25 {
    margin-left: 40%;
  }
  .mgz-col-md-offset-35 {
    margin-left: 60%;
  }
  .mgz-col-md-offset-45 {
    margin-left: 80%;
  }
  .mgz-col-md-offset-2 {
    margin-left: 16.66666667%;
  }
  .mgz-col-md-offset-1 {
    margin-left: 8.33333333%;
  }
  .mgz-col-md-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 992px) {
  .mgz-col-lg-1, .mgz-col-lg-2, .mgz-col-lg-3, .mgz-col-lg-4, .mgz-col-lg-5, .mgz-col-lg-6, .mgz-col-lg-7, .mgz-col-lg-8, .mgz-col-lg-9, .mgz-col-lg-10, .mgz-col-lg-11, .mgz-col-lg-12, .mgz-col-lg-15, .mgz-col-lg-25, .mgz-col-lg-35, .mgz-col-lg-45 {
    float: left;
  }
  .mgz-col-lg-12 {
    width: 100%;
  }
  .mgz-col-lg-11 {
    width: 91.66666667%;
  }
  .mgz-col-lg-10 {
    width: 83.33333333%;
  }
  .mgz-col-lg-9 {
    width: 75%;
  }
  .mgz-col-lg-8 {
    width: 66.66666667%;
  }
  .mgz-col-lg-7 {
    width: 58.33333333%;
  }
  .mgz-col-lg-6 {
    width: 50%;
  }
  .mgz-col-lg-5 {
    width: 41.66666667%;
  }
  .mgz-col-lg-4 {
    width: 33.33333333%;
  }
  .mgz-col-lg-3 {
    width: 25%;
  }
  .mgz-col-lg-15 {
    width: 20%;
  }
  .mgz-col-lg-25 {
    width: 40%;
  }
  .mgz-col-lg-35 {
    width: 60%;
  }
  .mgz-col-lg-45 {
    width: 80%;
  }
  .mgz-col-lg-2 {
    width: 16.66666667%;
  }
  .mgz-col-lg-1 {
    width: 8.33333333%;
  }
  .mgz-col-lg-pull-12 {
    right: 100%;
  }
  .mgz-col-lg-pull-11 {
    right: 91.66666667%;
  }
  .mgz-col-lg-pull-10 {
    right: 83.33333333%;
  }
  .mgz-col-lg-pull-9 {
    right: 75%;
  }
  .mgz-col-lg-pull-8 {
    right: 66.66666667%;
  }
  .mgz-col-lg-pull-7 {
    right: 58.33333333%;
  }
  .mgz-col-lg-pull-6 {
    right: 50%;
  }
  .mgz-col-lg-pull-5 {
    right: 41.66666667%;
  }
  .mgz-col-lg-pull-4 {
    right: 33.33333333%;
  }
  .mgz-col-lg-pull-3 {
    right: 25%;
  }
  .mgz-col-lg-pull-15 {
    right: 20%;
  }
  .mgz-col-lg-pull-25 {
    right: 40%;
  }
  .mgz-col-lg-pull-35 {
    right: 60%;
  }
  .mgz-col-lg-pull-45 {
    right: 80%;
  }
  .mgz-col-lg-pull-2 {
    right: 16.66666667%;
  }
  .mgz-col-lg-pull-1 {
    right: 8.33333333%;
  }
  .mgz-col-lg-pull-0 {
    right: auto;
  }
  .mgz-col-lg-push-12 {
    left: 100%;
  }
  .mgz-col-lg-push-11 {
    left: 91.66666667%;
  }
  .mgz-col-lg-push-10 {
    left: 83.33333333%;
  }
  .mgz-col-lg-push-9 {
    left: 75%;
  }
  .mgz-col-lg-push-8 {
    left: 66.66666667%;
  }
  .mgz-col-lg-push-7 {
    left: 58.33333333%;
  }
  .mgz-col-lg-push-6 {
    left: 50%;
  }
  .mgz-col-lg-push-5 {
    left: 41.66666667%;
  }
  .mgz-col-lg-push-4 {
    left: 33.33333333%;
  }
  .mgz-col-lg-push-3 {
    left: 25%;
  }
  .mgz-col-lg-push-15 {
    left: 20%;
  }
  .mgz-col-lg-push-25 {
    left: 40%;
  }
  .mgz-col-lg-push-35 {
    left: 60%;
  }
  .mgz-col-lg-push-45 {
    left: 80%;
  }
  .mgz-col-lg-push-2 {
    left: 16.66666667%;
  }
  .mgz-col-lg-push-1 {
    left: 8.33333333%;
  }
  .mgz-col-lg-push-0 {
    left: auto;
  }
  .mgz-col-lg-offset-12 {
    margin-left: 100%;
  }
  .mgz-col-lg-offset-11 {
    margin-left: 91.66666667%;
  }
  .mgz-col-lg-offset-10 {
    margin-left: 83.33333333%;
  }
  .mgz-col-lg-offset-9 {
    margin-left: 75%;
  }
  .mgz-col-lg-offset-8 {
    margin-left: 66.66666667%;
  }
  .mgz-col-lg-offset-7 {
    margin-left: 58.33333333%;
  }
  .mgz-col-lg-offset-6 {
    margin-left: 50%;
  }
  .mgz-col-lg-offset-5 {
    margin-left: 41.66666667%;
  }
  .mgz-col-lg-offset-4 {
    margin-left: 33.33333333%;
  }
  .mgz-col-lg-offset-3 {
    margin-left: 25%;
  }
  .mgz-col-lg-offset-15 {
    margin-left: 20%;
  }
  .mgz-col-lg-offset-25 {
    margin-left: 40%;
  }
  .mgz-col-lg-offset-35 {
    margin-left: 60%;
  }
  .mgz-col-lg-offset-45 {
    margin-left: 80%;
  }
  .mgz-col-lg-offset-2 {
    margin-left: 16.66666667%;
  }
  .mgz-col-lg-offset-1 {
    margin-left: 8.33333333%;
  }
  .mgz-col-lg-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 1200px) {
  .mgz-col-xl-1, .mgz-col-xl-2, .mgz-col-xl-3, .mgz-col-xl-4, .mgz-col-xl-5, .mgz-col-xl-6, .mgz-col-xl-7, .mgz-col-xl-8, .mgz-col-xl-9, .mgz-col-xl-10, .mgz-col-xl-11, .mgz-col-xl-12, .mgz-col-xl-15, .mgz-col-xl-25, .mgz-col-xl-35, .mgz-col-xl-45 {
    float: left;
  }
  .mgz-col-xl-12 {
    width: 100%;
  }
  .mgz-col-xl-11 {
    width: 91.66666667%;
  }
  .mgz-col-xl-10 {
    width: 83.33333333%;
  }
  .mgz-col-xl-9 {
    width: 75%;
  }
  .mgz-col-xl-8 {
    width: 66.66666667%;
  }
  .mgz-col-xl-7 {
    width: 58.33333333%;
  }
  .mgz-col-xl-6 {
    width: 50%;
  }
  .mgz-col-xl-5 {
    width: 41.66666667%;
  }
  .mgz-col-xl-4 {
    width: 33.33333333%;
  }
  .mgz-col-xl-3 {
    width: 25%;
  }
  .mgz-col-xl-15 {
    width: 20%;
  }
  .mgz-col-xl-25 {
    width: 40%;
  }
  .mgz-col-xl-35 {
    width: 60%;
  }
  .mgz-col-xl-45 {
    width: 80%;
  }
  .mgz-col-xl-2 {
    width: 16.66666667%;
  }
  .mgz-col-xl-1 {
    width: 8.33333333%;
  }
  .mgz-col-xl-pull-12 {
    right: 100%;
  }
  .mgz-col-xl-pull-11 {
    right: 91.66666667%;
  }
  .mgz-col-xl-pull-10 {
    right: 83.33333333%;
  }
  .mgz-col-xl-pull-9 {
    right: 75%;
  }
  .mgz-col-xl-pull-8 {
    right: 66.66666667%;
  }
  .mgz-col-xl-pull-7 {
    right: 58.33333333%;
  }
  .mgz-col-xl-pull-6 {
    right: 50%;
  }
  .mgz-col-xl-pull-5 {
    right: 41.66666667%;
  }
  .mgz-col-xl-pull-4 {
    right: 33.33333333%;
  }
  .mgz-col-xl-pull-3 {
    right: 25%;
  }
  .mgz-col-xl-pull-15 {
    right: 20%;
  }
  .mgz-col-xl-pull-25 {
    right: 40%;
  }
  .mgz-col-xl-pull-35 {
    right: 60%;
  }
  .mgz-col-xl-pull-45 {
    right: 80%;
  }
  .mgz-col-xl-pull-2 {
    right: 16.66666667%;
  }
  .mgz-col-xl-pull-1 {
    right: 8.33333333%;
  }
  .mgz-col-xl-pull-0 {
    right: auto;
  }
  .mgz-col-xl-push-12 {
    left: 100%;
  }
  .mgz-col-xl-push-11 {
    left: 91.66666667%;
  }
  .mgz-col-xl-push-10 {
    left: 83.33333333%;
  }
  .mgz-col-xl-push-9 {
    left: 75%;
  }
  .mgz-col-xl-push-8 {
    left: 66.66666667%;
  }
  .mgz-col-xl-push-7 {
    left: 58.33333333%;
  }
  .mgz-col-xl-push-6 {
    left: 50%;
  }
  .mgz-col-xl-push-5 {
    left: 41.66666667%;
  }
  .mgz-col-xl-push-4 {
    left: 33.33333333%;
  }
  .mgz-col-xl-push-3 {
    left: 25%;
  }
  .mgz-col-xl-push-15 {
    left: 20%;
  }
  .mgz-col-xl-push-25 {
    left: 40%;
  }
  .mgz-col-xl-push-35 {
    left: 60%;
  }
  .mgz-col-xl-push-45 {
    left: 80%;
  }
  .mgz-col-xl-push-2 {
    left: 16.66666667%;
  }
  .mgz-col-xl-push-1 {
    left: 8.33333333%;
  }
  .mgz-col-xl-push-0 {
    left: auto;
  }
  .mgz-col-xl-offset-12 {
    margin-left: 100%;
  }
  .mgz-col-xl-offset-11 {
    margin-left: 91.66666667%;
  }
  .mgz-col-xl-offset-10 {
    margin-left: 83.33333333%;
  }
  .mgz-col-xl-offset-9 {
    margin-left: 75%;
  }
  .mgz-col-xl-offset-8 {
    margin-left: 66.66666667%;
  }
  .mgz-col-xl-offset-7 {
    margin-left: 58.33333333%;
  }
  .mgz-col-xl-offset-6 {
    margin-left: 50%;
  }
  .mgz-col-xl-offset-5 {
    margin-left: 41.66666667%;
  }
  .mgz-col-xl-offset-4 {
    margin-left: 33.33333333%;
  }
  .mgz-col-xl-offset-3 {
    margin-left: 25%;
  }
  .mgz-col-xl-offset-15 {
    margin-left: 20%;
  }
  .mgz-col-xl-offset-25 {
    margin-left: 40%;
  }
  .mgz-col-xl-offset-35 {
    margin-left: 60%;
  }
  .mgz-col-xl-offset-45 {
    margin-left: 80%;
  }
  .mgz-col-xl-offset-2 {
    margin-left: 16.66666667%;
  }
  .mgz-col-xl-offset-1 {
    margin-left: 8.33333333%;
  }
  .mgz-col-xl-offset-0 {
    margin-left: 0%;
  }
}
@media (max-width: 575px) {
  .mgz-grid-col-xs-6 > div:nth-child(6n+1),
  .mgz-grid-col-xs-3 > div:nth-child(3n+1),
  .mgz-grid-col-xs-4 > div:nth-child(4n+1),
  .mgz-grid-col-xs-15 > div:nth-child(5n+1),
  .mgz-grid-col-xs-2 > div:nth-child(2n+1) {
    clear: left;
  }
  .mgz-grid-col-xs-6> div,
  .mgz-grid-col-xs-3 > div,
  .mgz-grid-col-xs-4 > div,
  .mgz-grid-col-xs-15 > div,
  .mgz-grid-col-xs-2 > div {
    float: left;
  }
  .mgz-grid-col-xs-6 > div {
    width: 16.66666667%;
  }
  .mgz-grid-col-xs-3 > div {
    width: 33.33333333%;
  }
  .mgz-grid-col-xs-4 > div {
    width: 25%;
  }
  .mgz-grid-col-xs-15 > div {
    width: 20%;
  }
  .mgz-grid-col-xs-2 > div {
    width: 50%;
  }
  .mgz-hidden-xs {
    display: none !important;
  }
  .xs_left {
    text-align: left;
  }
  .xs_center {
    text-align: center;
  }
  .xs_right {
    text-align: right;
  }
  .xs_f-right {
    float: right;
  }
  .xs_f-left {
    float: left;
  }
  .xs_f-none {
    float: none;
  }
}
@media (min-width: 576px) and (max-width: 767px) {
  .mgz-grid-col-xs-12 > div:nth-child(12n+1),
  .mgz-grid-col-xs-6 > div:nth-child(6n+1),
  .mgz-grid-col-xs-5 > div:nth-child(5n+1),
  .mgz-grid-col-xs-4 > div:nth-child(4n+1),
  .mgz-grid-col-xs-3 > div:nth-child(3n+1),
  .mgz-grid-col-xs-2 > div:nth-child(2n+1),
  .mgz-grid-col-xs-1 > div:nth-child(1n+1) {
    clear: left;
  }
  .mgz-grid-col-xs-12 > div,
  .mgz-grid-col-xs-6 > div,
  .mgz-grid-col-xs-5 > div,
  .mgz-grid-col-xs-4 > div,
  .mgz-grid-col-xs-3 > div,
  .mgz-grid-col-xs-2 > div,
  .mgz-grid-col-xs-1 > div {
    float: left;
  }
  .mgz-grid-col-xs-12 > div {
    width: 8.33333333%;
  }
  .mgz-grid-col-xs-6 > div {
    width: 16.66666667%;
  }
  .mgz-grid-col-xs-5 > div {
    width: 20%;
  }
  .mgz-grid-col-xs-4 > div {
    width: 25%;
  }
  .mgz-grid-col-xs-3 > div {
    width: 33.33333333%;
  }
  .mgz-grid-col-xs-2 > div {
    width: 50%;
  }
  .mgz-grid-col-xs-1 > div {
    width: 100%;
  }
  .mgz-hidden-sm {
    display: none !important;
  }
  .sm_left {
    text-align: left;
  }
  .sm_center {
    text-align: center;
  }
  .sm_right {
    text-align: right;
  }
  .sm_f-right {
    float: right;
  }
  .sm_f-left {
    float: left;
  }
  .sm_f-none {
    float: none;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .mgz-grid-col-md-12 > div:nth-child(12n+1),
  .mgz-grid-col-md-6 > div:nth-child(6n+1),
  .mgz-grid-col-md-5 > div:nth-child(5n+1),
  .mgz-grid-col-md-4 > div:nth-child(4n+1),
  .mgz-grid-col-md-3 > div:nth-child(3n+1),
  .mgz-grid-col-md-2 > div:nth-child(2n+1),
  .mgz-grid-col-md-1 > div:nth-child(1n+1) {
    clear: left;
  }
  .mgz-grid-col-md-12 > div,
  .mgz-grid-col-md-6 > div,
  .mgz-grid-col-md-5 > div,
  .mgz-grid-col-md-4 > div,
  .mgz-grid-col-md-3 > div,
  .mgz-grid-col-md-2 > div,
  .mgz-grid-col-md-1 > div {
    float: left;
  }
  .mgz-grid-col-md-12 > div {
    width: 8.33333333%;
  }
  .mgz-grid-col-md-6 > div {
    width: 16.66666667%;
  }
  .mgz-grid-col-md-5 > div {
    width: 20%;
  }
  .mgz-grid-col-md-4 > div {
    width: 25%;
  }
  .mgz-grid-col-md-3 > div {
    width: 33.33333333%;
  }
  .mgz-grid-col-md-2 > div {
    width: 50%;
  }
  .mgz-grid-col-md-1 > div {
    width: 100%;
  }
  .mgz-hidden-md {
    display: none !important;
  }
  .md_left {
    text-align: left;
  }
  .md_center {
    text-align: center;
  }
  .md_right {
    text-align: right;
  }
  .md_f-right {
    float: right;
  }
  .md_f-left {
    float: left;
  }
  .md_f-none {
    float: none;
  }
}
@media (min-width: 992px) and (max-width: 1200px) {
  .mgz-grid-col-lg-12 > div:nth-child(12n+1),
  .mgz-grid-col-lg-6 > div:nth-child(6n+1),
  .mgz-grid-col-lg-5 > div:nth-child(5n+1),
  .mgz-grid-col-lg-4 > div:nth-child(4n+1),
  .mgz-grid-col-lg-3 > div:nth-child(3n+1),
  .mgz-grid-col-lg-2 > div:nth-child(2n+1),
  .mgz-grid-col-lg-1 > div:nth-child(1n+1) {
    clear: left;
  }
  .mgz-grid-col-lg-12 > div,
  .mgz-grid-col-lg-6 > div,
  .mgz-grid-col-lg-5 > div,
  .mgz-grid-col-lg-4 > div,
  .mgz-grid-col-lg-3 > div,
  .mgz-grid-col-lg-2 > div,
  .mgz-grid-col-lg-1 > div {
    float: left;
  }
  .mgz-grid-col-lg-12 > div {
    width: 8.33333333%;
  }
  .mgz-grid-col-lg-6 > div {
    width: 16.66666667%;
  }
  .mgz-grid-col-lg-5 > div {
    width: 20%;
  }
  .mgz-grid-col-lg-4 > div {
    width: 25%;
  }
  .mgz-grid-col-lg-3 > div {
    width: 33.33333333%;
  }
  .mgz-grid-col-lg-2 > div {
    width: 50%;
  }
  .mgz-grid-col-lg-1 > div {
    width: 100%;
  }
  .mgz-hidden-lg {
    display: none !important;
  }
  .lg_left {
    text-align: left;
  }
  .lg_center {
    text-align: center;
  }
  .lg_right {
    text-align: right;
  }
  .lg_f-right {
    float: right;
  }
  .lg_f-left {
    float: left;
  }
  .lg_f-none {
    float: none;
  }
}
@media (min-width: 1200px) {
  .mgz-grid-col-xl-12 > div:nth-child(12n+1),
  .mgz-grid-col-xl-6 > div:nth-child(6n+1),
  .mgz-grid-col-xl-5 > div:nth-child(5n+1),
  .mgz-grid-col-xl-4 > div:nth-child(4n+1),
  .mgz-grid-col-xl-3 > div:nth-child(3n+1),
  .mgz-grid-col-xl-2 > div:nth-child(2n+1),
  .mgz-grid-col-xl-1 > div:nth-child(1n+1) {
    clear: left;
  }
  .mgz-grid-col-xl-12 > div,
  .mgz-grid-col-xl-6 > div,
  .mgz-grid-col-xl-5 > div,
  .mgz-grid-col-xl-4 > div,
  .mgz-grid-col-xl-3 > div,
  .mgz-grid-col-xl-2 > div,
  .mgz-grid-col-xl-1 > div {
    float: left;
  }
  .mgz-grid-col-xl-12 > div {
    width: 8.33333333%;
  }
  .mgz-grid-col-xl-6 > div {
    width: 16.66666667%;
  }
  .mgz-grid-col-xl-5 > div {
    width: 20%;
  }
  .mgz-grid-col-xl-4 > div {
    width: 25%;
  }
  .mgz-grid-col-xl-3 > div {
    width: 33.33333333%;
  }
  .mgz-grid-col-xl-2 > div {
    width: 50%;
  }
  .mgz-grid-col-xl-1 > div {
    width: 100%;
  }
  .mgz-hidden-xl {
    display: none !important;
  }
  .xl_left {
    text-align: left;
  }
  .xl_center {
    text-align: center;
  }
  .xl_right {
    text-align: right;
  }
  .xl_f-right {
    float: right;
  }
  .xl_f-left {
    float: left;
  }
  .xl_f-none {
    float: none;
  }
}
.mgz-pull-right {
  float: right !important;
}
.mgz-pull-left {
  float: left !important;
}@font-face{font-family:mgz_openiconic;src:url(../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/fonts/mgz_openiconic.eot?54101537);src:url(../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/fonts/mgz_openiconic.eot?54101537#iefix) format('embedded-opentype'),url(../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/fonts/mgz_openiconic.woff?54101537) format('woff'),url(../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/fonts/mgz_openiconic.ttf?54101537) format('truetype'),url(../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/fonts/mgz_openiconic.svg?54101537#mgz_openiconic) format('svg');font-weight:400;font-style:normal}[class*=" mgz-oi-"]:before,[class^=mgz-oi-]:before{font-family:mgz_openiconic;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:0;text-align:center;font-variant:normal;text-transform:none;line-height:inherit;margin-left:0}.mgz-oi-dial:before{content:'\e800'}.mgz-oi-pilcrow:before{content:'\e801'}.mgz-oi-at:before{content:'\e802'}.mgz-oi-hash:before{content:'\e803'}.mgz-oi-key-inv:before{content:'\e804'}.mgz-oi-key:before{content:'\e805'}.mgz-oi-chart-pie-alt:before{content:'\e806'}.mgz-oi-chart-pie:before{content:'\e807'}.mgz-oi-chart-bar:before{content:'\e808'}.mgz-oi-umbrella:before{content:'\e809'}.mgz-oi-moon-inv:before{content:'\e80a'}.mgz-oi-mobile:before{content:'\e80b'}.mgz-oi-cd:before{content:'\e80c'}.mgz-oi-split:before{content:'\e80d'}.mgz-oi-exchange:before{content:'\e80e'}.mgz-oi-block:before{content:'\e80f'}.mgz-oi-resize-full:before{content:'\e810'}.mgz-oi-article-alt:before{content:'\e811'}.mgz-oi-article:before{content:'\e812'}.mgz-oi-pencil-alt:before{content:'\e813'}.mgz-oi-undo:before{content:'\e814'}.mgz-oi-attach:before{content:'\e815'}.mgz-oi-link:before{content:'\e816'}.mgz-oi-search:before{content:'\e817'}.mgz-oi-mail:before{content:'\e818'}.mgz-oi-heart:before{content:'\e819'}.mgz-oi-comment:before{content:'\e81a'}.mgz-oi-resize-full-alt:before{content:'\e81b'}.mgz-oi-lock:before{content:'\e81c'}.mgz-oi-book-open:before{content:'\e81d'}.mgz-oi-arrow-curved:before{content:'\e81e'}.mgz-oi-equalizer:before{content:'\e81f'}.mgz-oi-heart-empty:before{content:'\e820'}.mgz-oi-lock-empty:before{content:'\e821'}.mgz-oi-comment-inv:before{content:'\e822'}.mgz-oi-folder:before{content:'\e823'}.mgz-oi-resize-small:before{content:'\e824'}.mgz-oi-play:before{content:'\e825'}.mgz-oi-cursor:before{content:'\e826'}.mgz-oi-aperture:before{content:'\e827'}.mgz-oi-play-circle2:before{content:'\e828'}.mgz-oi-resize-small-alt:before{content:'\e829'}.mgz-oi-folder-empty:before{content:'\e82a'}.mgz-oi-comment-alt:before{content:'\e82b'}.mgz-oi-lock-open:before{content:'\e82c'}.mgz-oi-star:before{content:'\e82d'}.mgz-oi-user:before{content:'\e82e'}.mgz-oi-lock-open-empty:before{content:'\e82f'}.mgz-oi-box:before{content:'\e830'}.mgz-oi-resize-vertical:before{content:'\e831'}.mgz-oi-stop:before{content:'\e832'}.mgz-oi-aperture-alt:before{content:'\e833'}.mgz-oi-book:before{content:'\e834'}.mgz-oi-steering-wheel:before{content:'\e835'}.mgz-oi-pause:before{content:'\e836'}.mgz-oi-to-start:before{content:'\e837'}.mgz-oi-move:before{content:'\e838'}.mgz-oi-resize-horizontal:before{content:'\e839'}.mgz-oi-rss-alt:before{content:'\e83a'}.mgz-oi-comment-alt2:before{content:'\e83b'}.mgz-oi-rss:before{content:'\e83c'}.mgz-oi-comment-inv-alt:before{content:'\e83d'}.mgz-oi-comment-inv-alt2:before{content:'\e83e'}.mgz-oi-eye:before{content:'\e83f'}.mgz-oi-pin:before{content:'\e840'}.mgz-oi-video:before{content:'\e841'}.mgz-oi-picture:before{content:'\e842'}.mgz-oi-camera:before{content:'\e843'}.mgz-oi-tag:before{content:'\e844'}.mgz-oi-chat:before{content:'\e845'}.mgz-oi-cog:before{content:'\e846'}.mgz-oi-popup:before{content:'\e847'}.mgz-oi-to-end:before{content:'\e848'}.mgz-oi-book-alt:before{content:'\e849'}.mgz-oi-brush:before{content:'\e84a'}.mgz-oi-eject:before{content:'\e84b'}.mgz-oi-down:before{content:'\e84c'}.mgz-oi-wrench:before{content:'\e84d'}.mgz-oi-chat-inv:before{content:'\e84e'}.mgz-oi-tag-empty:before{content:'\e84f'}.mgz-oi-ok:before{content:'\e850'}.mgz-oi-ok-circle:before{content:'\e851'}.mgz-oi-download:before{content:'\e852'}.mgz-oi-location:before{content:'\e853'}.mgz-oi-share:before{content:'\e854'}.mgz-oi-left:before{content:'\e855'}.mgz-oi-target:before{content:'\e856'}.mgz-oi-brush-alt:before{content:'\e857'}.mgz-oi-cancel:before{content:'\e858'}.mgz-oi-upload:before{content:'\e859'}.mgz-oi-location-inv:before{content:'\e85a'}.mgz-oi-calendar:before{content:'\e85b'}.mgz-oi-right:before{content:'\e85c'}.mgz-oi-signal:before{content:'\e85d'}.mgz-oi-eyedropper:before{content:'\e85e'}.mgz-oi-layers:before{content:'\e85f'}.mgz-oi-award:before{content:'\e860'}.mgz-oi-up:before{content:'\e861'}.mgz-oi-calendar-inv:before{content:'\e862'}.mgz-oi-location-alt:before{content:'\e863'}.mgz-oi-download-cloud:before{content:'\e864'}.mgz-oi-cancel-circle:before{content:'\e865'}.mgz-oi-plus:before{content:'\e866'}.mgz-oi-upload-cloud:before{content:'\e867'}.mgz-oi-compass:before{content:'\e868'}.mgz-oi-calendar-alt:before{content:'\e869'}.mgz-oi-down-circle:before{content:'\e86a'}.mgz-oi-award-empty:before{content:'\e86b'}.mgz-oi-layers-alt:before{content:'\e86c'}.mgz-oi-sun:before{content:'\e86d'}.mgz-oi-list:before{content:'\e86e'}.mgz-oi-left-circle:before{content:'\e86f'}.mgz-oi-mic:before{content:'\e870'}.mgz-oi-trash:before{content:'\e871'}.mgz-oi-quote-left:before{content:'\e872'}.mgz-oi-plus-circle:before{content:'\e873'}.mgz-oi-minus:before{content:'\e874'}.mgz-oi-quote-right:before{content:'\e875'}.mgz-oi-trash-empty:before{content:'\e876'}.mgz-oi-volume-off:before{content:'\e877'}.mgz-oi-right-circle:before{content:'\e878'}.mgz-oi-list-nested:before{content:'\e879'}.mgz-oi-sun-inv:before{content:'\e87a'}.mgz-oi-bat-empty:before{content:'\e87b'}.mgz-oi-up-circle:before{content:'\e87c'}.mgz-oi-volume-up:before{content:'\e87d'}.mgz-oi-doc:before{content:'\e87e'}.mgz-oi-quote-left-alt:before{content:'\e87f'}.mgz-oi-minus-circle:before{content:'\e880'}.mgz-oi-cloud:before{content:'\e881'}.mgz-oi-rain:before{content:'\e882'}.mgz-oi-bat-half:before{content:'\e883'}.mgz-oi-cw:before{content:'\e884'}.mgz-oi-headphones:before{content:'\e885'}.mgz-oi-doc-inv:before{content:'\e886'}.mgz-oi-quote-right-alt:before{content:'\e887'}.mgz-oi-help:before{content:'\e888'}.mgz-oi-info:before{content:'\e889'}.mgz-oi-pencil:before{content:'\e88a'}.mgz-oi-doc-alt:before{content:'\e88b'}.mgz-oi-clock:before{content:'\e88c'}.mgz-oi-loop:before{content:'\e88d'}.mgz-oi-bat-full:before{content:'\e88e'}.mgz-oi-flash:before{content:'\e88f'}.mgz-oi-moon:before{content:'\e890'}.mgz-oi-bat-charge:before{content:'\e891'}.mgz-oi-loop-alt:before{content:'\e892'}.mgz-oi-lamp:before{content:'\e893'}.mgz-oi-doc-inv-alt:before{content:'\e894'}.mgz-oi-pencil-neg:before{content:'\e895'}.mgz-oi-home:before{content:'\e896'}@charset "UTF-8";
.mgz-flex,
.mgz-flex-position-top-left,
.mgz-flex-position-top-center,
.mgz-flex-position-top-right,
.mgz-flex-position-middle-left,
.mgz-flex-position-center-left,
.mgz-flex-position-middle-center,
.mgz-flex-position-center-center,
.mgz-flex-position-middle-right,
.mgz-flex-position-center-right,
.mgz-flex-position-bottom-left,
.mgz-flex-position-bottom-center,
.mgz-flex-position-bottom-right,
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner,
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content,
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content > .mgz-element,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content > .mgz-element,
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner,
.mgz-socialicons li,
.mgz-countdown {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.mgz-invisible {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
a.mgz-btn {
  color: #333;
}
.mgz-btn:not(.primary) {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
button.mgz-btn {
  border: 0;
}
.mgz-btn {
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  margin: 0;
  display: inline-block;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  background-image: none;
  word-wrap: break-word;
  text-decoration: none;
  position: relative;
  line-height: normal;
  padding: 10px 20px;
  color: #333;
  background-color: #e3e3e3;
  font-size: 1.4rem;
  max-width: 100%;
  height: auto;
}
.mgz-btn:hover {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  color: #5e5e5e;
  background-color: #dcdcdc;
  text-decoration: none;
}
.mgz-btn:focus {
  outline: none;
}
.mgz-btn.mgz-btn-save,
.mgz-btn.mgz-btn-cancel,
.mgz-btn.mgz-btn-replace {
  padding: 15px 20px;
  font-size: 1.6rem;
  font-weight: 500;
  min-width: 140px;
}
.mgz-btn.mgz-btn-save {
  background: #007dbd;
  color: #FFF;
}
.mgz-btn.mgz-btn-save:hover {
  background: #0073ae;
}
.mgz-btn.mgz-btn-cancel {
  color: #fff;
  background-color: #afafaf;
}
.mgz-btn.mgz-btn-cancel:hover {
  background-color: #8c8c8c;
}
.mgz-btn.mgz-btn-replace {
  float: left;
  color: #fff;
  background-color: #afafaf;
}
.mgz-btn.mgz-btn-replace:hover {
  background-color: #8c8c8c;
}
.mgz-btn.mgz-btn-delete {
  color: #FFF;
  background-color: #e22626;
}
.mgz-btn.mgz-btn-delete:hover {
  background-color: #ca1c1c;
}
.mgz-icon,
.tabs-opener:before {
  font-family: 'Magezon-Icons' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.mgz-fa {
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
}
.mgz-fa-s {
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
}
.mgz-fa-r {
  font-family: 'Font Awesome 5 Free';
  font-weight: 400;
}
.mgz-liststyle {
  margin: 0;
  padding: 0;
  list-style: none;
}
/*!
 * ImageHover.css - http://www.imagehover.io
 * Version 1.0
 * Author: Ciarán Walsh

 * Made available under a MIT License:
 * http://www.opensource.org/licenses/mit-license.php

 */
.mgz-hover {
  position: relative;
  overflow: hidden;
  display: block;
}
.mgz-hover-description {
  position: relative;
  display: inline-block;
  margin: 0;
  max-width: 100%;
  overflow: hidden;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -moz-osx-font-smoothing: grayscale;
  transform: translateZ(0);
}
.mgz-hover-main {
  overflow: hidden;
}
[class^='mgz-hover-'] > img,
[class*=' mgz-hover-'] > img {
  vertical-align: top;
  max-width: 100%;
}
[class^='mgz-hover-'] .mgz-hover-description,
[class*=' mgz-hover-'] .mgz-hover-description {
  background-color: rgba(255, 255, 255, 0.8);
  padding: 30px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
[class^='mgz-hover-'],
[class*=' mgz-hover-'],
[class^='mgz-hover-']:before,
[class^='mgz-hover-']:after,
[class*=' mgz-hover-']:before,
[class*=' mgz-hover-']:after,
[class^='mgz-hover-'] *,
[class*=' mgz-hover-'] *,
[class^='mgz-hover-'] *:before,
[class^='mgz-hover-'] *:after,
[class*=' mgz-hover-'] *:before,
[class*=' mgz-hover-'] *:after {
  box-sizing: border-box;
  transition: all 0.35s ease;
}
/* mgz-hover-fade-*
----------------------------- */
[class^='mgz-hover-fade'] .mgz-hover-description,
[class*=' mgz-hover-fade'] .mgz-hover-description {
  opacity: 0;
}
[class^='mgz-hover-fade']:hover > .mgz-hover-main,
[class*=' mgz-hover-fade']:hover > .mgz-hover-main {
  opacity: 0;
}
[class^='mgz-hover-fade']:hover .mgz-hover-description,
[class*=' mgz-hover-fade']:hover .mgz-hover-description {
  opacity: 1;
}
[class^='mgz-hover-fade']:hover > .mgz-hover-main,
[class^='mgz-hover-fade']:hover .mgz-hover-description,
[class*=' mgz-hover-fade']:hover > .mgz-hover-main,
[class*=' mgz-hover-fade']:hover .mgz-hover-description {
  transform: translate(0, 0);
}
/* mgz-hover-fade
----------------------------- */
/* mgz-hover-fade-in-up
----------------------------- */
.mgz-hover-fade-in-up .mgz-hover-description {
  transform: translate(0, 15%);
}
/* mgz-hover-fade-in-down
----------------------------- */
.mgz-hover-fade-in-down .mgz-hover-description {
  transform: translate(0, -15%);
}
/* mgz-hover-fade-in-left
----------------------------- */
.mgz-hover-fade-in-left .mgz-hover-description {
  transform: translate(-15%, 0);
}
/* mgz-hover-fade-in-right
----------------------------- */
.mgz-hover-fade-in-right .mgz-hover-description {
  transform: translate(15%, 0);
}
/* mgz-hover-push-*
----------------------------- */
[class^='mgz-hover-push-']:hover .mgz-hover-description,
[class*=' mgz-hover-push-']:hover .mgz-hover-description {
  transform: translate(0, 0);
}
/* mgz-hover-push-up
----------------------------- */
.mgz-hover-push-up .mgz-hover-description {
  transform: translateY(100%);
}
.mgz-hover-push-up:hover > .mgz-hover-main {
  transform: translateY(-100%);
}
/* mgz-hover-push-down
----------------------------- */
.mgz-hover-push-down .mgz-hover-description {
  transform: translateY(-100%);
}
.mgz-hover-push-down:hover > .mgz-hover-main {
  transform: translateY(100%);
}
/* mgz-hover-push-left
----------------------------- */
.mgz-hover-push-left .mgz-hover-description {
  transform: translateX(100%);
}
.mgz-hover-push-left:hover > .mgz-hover-main {
  transform: translateX(-100%);
}
/* mgz-hover-push--right
----------------------------- */
.mgz-hover-push-right .mgz-hover-description {
  transform: translateX(-100%);
}
.mgz-hover-push-right:hover > .mgz-hover-main {
  transform: translateX(100%);
}
/* mgz-hover-slide-*
----------------------------- */
[class^='mgz-hover-slide-']:hover .mgz-hover-description,
[class*=' mgz-hover-slide-']:hover .mgz-hover-description {
  transform: translate(0, 0);
}
/* mgz-hover-slide-up
----------------------------- */
.mgz-hover-slide-up .mgz-hover-description {
  transform: translateY(100%);
}
/* mgz-hover-slide-down
----------------------------- */
.mgz-hover-slide-down .mgz-hover-description {
  transform: translateY(-100%);
}
/* mgz-hover-slide-left
----------------------------- */
.mgz-hover-slide-left .mgz-hover-description {
  transform: translateX(100%);
}
/* mgz-hover-slide-right
----------------------------- */
.mgz-hover-slide-right .mgz-hover-description {
  transform: translateX(-100%);
}
/* mgz-hover-slide-top-left
----------------------------- */
.mgz-hover-slide-top-left .mgz-hover-description {
  transform: translate(-100%, -100%);
}
/* mgz-hover-slide-top-right
----------------------------- */
.mgz-hover-slide-top-right .mgz-hover-description {
  transform: translate(100%, -100%);
}
/* mgz-hover-slide-bottom-left
----------------------------- */
.mgz-hover-slide-bottom-left .mgz-hover-description {
  transform: translate(-100%, 100%);
}
/* mgz-hover-slide-bottom-right
----------------------------- */
.mgz-hover-slide-bottom-right .mgz-hover-description {
  transform: translate(100%, 100%);
}
/* mgz-hover-reveal-*
----------------------------- */
[class^='mgz-hover-reveal-']:before,
[class*=' mgz-hover-reveal-']:before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  content: '';
  background-color: #007dbd;
}
[class^='mgz-hover-reveal-'] .mgz-hover-description,
[class*=' mgz-hover-reveal-'] .mgz-hover-description {
  opacity: 0;
}
[class^='mgz-hover-reveal-']:hover:before,
[class*=' mgz-hover-reveal-']:hover:before {
  transform: translate(0, 0);
}
[class^='mgz-hover-reveal-']:hover .mgz-hover-description,
[class*=' mgz-hover-reveal-']:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.21s;
}
/* mgz-hover-reveal-up
----------------------------- */
.mgz-hover-reveal-up:before {
  transform: translateY(100%);
}
/* mgz-hover-reveal-down
----------------------------- */
.mgz-hover-reveal-down:before {
  transform: translateY(-100%);
}
/* mgz-hover-reveal-left
----------------------------- */
.mgz-hover-reveal-left:before {
  transform: translateX(100%);
}
/* mgz-hover-reveal-right
----------------------------- */
.mgz-hover-reveal-right:before {
  transform: translateX(-100%);
}
/* mgz-hover-reveal-top-left
----------------------------- */
.mgz-hover-reveal-top-left:before {
  transform: translate(-100%, -100%);
}
/* mgz-hover-reveal-top-right
----------------------------- */
.mgz-hover-reveal-top-right:before {
  transform: translate(100%, -100%);
}
/* mgz-hover-reveal-bottom-left
----------------------------- */
.mgz-hover-reveal-bottom-left:before {
  transform: translate(-100%, 100%);
}
/* mgz-hover-reveal-bottom-right
----------------------------- */
.mgz-hover-reveal-bottom-right:before {
  transform: translate(100%, 100%);
}
/* mgz-hover-hinge-*
----------------------------- */
[class^='mgz-hover-hinge-'],
[class*=' mgz-hover-hinge-'] {
  perspective: 50em;
}
[class^='mgz-hover-hinge-'] .mgz-hover-description,
[class*=' mgz-hover-hinge-'] .mgz-hover-description {
  opacity: 0;
  z-index: 1;
}
[class^='mgz-hover-hinge-']:hover img,
[class*=' mgz-hover-hinge-']:hover img {
  opacity: 0;
}
[class^='mgz-hover-hinge-']:hover .mgz-hover-description,
[class*=' mgz-hover-hinge-']:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.21s;
}
/* mgz-hover-hinge-up
----------------------------- */
.mgz-hover-hinge-up img {
  transform-origin: 50% 0%;
}
.mgz-hover-hinge-up .mgz-hover-description {
  transform: rotateX(90deg);
  transform-origin: 50% 100%;
}
.mgz-hover-hinge-up:hover > .mgz-hover-main {
  transform: rotateX(-90deg);
}
.mgz-hover-hinge-up:hover .mgz-hover-description {
  transform: rotateX(0);
}
/* mgz-hover-hinge-down
----------------------------- */
.mgz-hover-hinge-down img {
  transform-origin: 50% 100%;
}
.mgz-hover-hinge-down .mgz-hover-description {
  transform: rotateX(-90deg);
  transform-origin: 50% -50%;
}
.mgz-hover-hinge-down:hover > .mgz-hover-main {
  transform: rotateX(90deg);
  opacity: 0;
}
.mgz-hover-hinge-down:hover .mgz-hover-description {
  transform: rotateX(0);
}
/* mgz-hover-hinge-left
----------------------------- */
.mgz-hover-hinge-left img {
  transform-origin: 0% 50%;
}
.mgz-hover-hinge-left .mgz-hover-description {
  transform: rotateY(-90deg);
  transform-origin: 100% 50%;
}
.mgz-hover-hinge-left:hover > .mgz-hover-main {
  transform: rotateY(90deg);
}
.mgz-hover-hinge-left:hover .mgz-hover-description {
  transform: rotateY(0);
}
/* mgz-hover-hinge-right
----------------------------- */
.mgz-hover-hinge-right img {
  transform-origin: 100% 50%;
}
.mgz-hover-hinge-right .mgz-hover-description {
  transform: rotateY(90deg);
  transform-origin: 0 50%;
}
.mgz-hover-hinge-right:hover > .mgz-hover-main {
  transform: rotateY(-90deg);
}
.mgz-hover-hinge-right:hover .mgz-hover-description {
  transform: rotateY(0);
}
/* mgz-hover-flip-*
----------------------------- */
[class^='mgz-hover-flip-'],
[class*=' mgz-hover-flip-'] {
  perspective: 50em;
}
[class^='mgz-hover-flip-'] img,
[class*=' mgz-hover-flip-'] img {
  backface-visibility: hidden;
}
[class^='mgz-hover-flip-'] .mgz-hover-description,
[class*=' mgz-hover-flip-'] .mgz-hover-description {
  opacity: 0;
}
[class^='mgz-hover-flip-']:hover > .mgz-hover-main,
[class*=' mgz-hover-flip-']:hover > .mgz-hover-main {
  opacity: 0;
}
[class^='mgz-hover-flip-']:hover .mgz-hover-description,
[class*=' mgz-hover-flip-']:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.14s;
}
/* mgz-hover-flip-horiz
----------------------------- */
.mgz-hover-flip-horiz .mgz-hover-description {
  transform: rotateX(90deg);
  transform-origin: 0% 50%;
}
.mgz-hover-flip-horiz:hover img {
  transform: rotateX(-180deg);
}
.mgz-hover-flip-horiz:hover .mgz-hover-description {
  transform: rotateX(0deg);
}
/* mgz-hover-flip-vert
----------------------------- */
.mgz-hover-flip-vert .mgz-hover-description {
  transform: rotateY(90deg);
  transform-origin: 50% 0%;
}
.mgz-hover-flip-vert:hover > .mgz-hover-main {
  transform: rotateY(-180deg);
}
.mgz-hover-flip-vert:hover .mgz-hover-description {
  transform: rotateY(0deg);
}
/* mgz-hover-flip-diag-1
----------------------------- */
.mgz-hover-flip-diag-1 .mgz-hover-description {
  transform: rotate3d(1, -1, 0, 100deg);
}
.mgz-hover-flip-diag-1:hover > .mgz-hover-main {
  transform: rotate3d(-1, 1, 0, 100deg);
}
.mgz-hover-flip-diag-1:hover .mgz-hover-description {
  transform: rotate3d(0, 0, 0, 0deg);
}
/* mgz-hover-flip-diag-2
----------------------------- */
.mgz-hover-flip-diag-2 .mgz-hover-description {
  transform: rotate3d(1, 1, 0, 100deg);
}
.mgz-hover-flip-diag-2:hover > .mgz-hover-main {
  transform: rotate3d(-1, -1, 0, 100deg);
}
.mgz-hover-flip-diag-2:hover .mgz-hover-description {
  transform: rotate3d(0, 0, 0, 0deg);
}
/* mgz-hover-shutter-out-*
----------------------------- */
[class^='mgz-hover-shutter-out-']:before,
[class*=' mgz-hover-shutter-out-']:before {
  background: #007dbd;
  position: absolute;
  content: '';
  transition-delay: 0.105s;
}
[class^='mgz-hover-shutter-out-'] .mgz-hover-description,
[class*=' mgz-hover-shutter-out-'] .mgz-hover-description {
  opacity: 0;
  transition-delay: 0s;
}
[class^='mgz-hover-shutter-out-']:hover:before,
[class*=' mgz-hover-shutter-out-']:hover:before {
  transition-delay: 0s;
}
[class^='mgz-hover-shutter-out-']:hover .mgz-hover-description,
[class*=' mgz-hover-shutter-out-']:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.105s;
}
/* mgz-hover-shutter-out-horiz
----------------------------- */
.mgz-hover-shutter-out-horiz:before {
  left: 50%;
  right: 50%;
  top: 0;
  bottom: 0;
}
.mgz-hover-shutter-out-horiz:hover:before {
  left: 0;
  right: 0;
}
/* mgz-hover-shutter-out-vert
----------------------------- */
.mgz-hover-shutter-out-vert:before {
  top: 50%;
  bottom: 50%;
  left: 0;
  right: 0;
}
.mgz-hover-shutter-out-vert:hover:before {
  top: 0;
  bottom: 0;
}
/* mgz-hover-shutter-out-diag-1
----------------------------- */
.mgz-hover-shutter-out-diag-1:before {
  top: 50%;
  bottom: 50%;
  left: -35%;
  right: -35%;
  transform: rotate(45deg);
}
.mgz-hover-shutter-out-diag-1:hover:before {
  top: -35%;
  bottom: -35%;
}
/* mgz-hover-shutter-out-diag-2
----------------------------- */
.mgz-hover-shutter-out-diag-2:before {
  top: 50%;
  bottom: 50%;
  left: -35%;
  right: -35%;
  transform: rotate(-45deg);
}
.mgz-hover-shutter-out-diag-2:hover:before {
  top: -35%;
  bottom: -35%;
}
/* mgz-hover-shutter-in-*
----------------------------- */
[class^='mgz-hover-shutter-in-']:after,
[class^='mgz-hover-shutter-in-']:before,
[class*=' mgz-hover-shutter-in-']:after,
[class*=' mgz-hover-shutter-in-']:before {
  background: #007dbd;
  position: absolute;
  content: '';
}
[class^='mgz-hover-shutter-in-']:after,
[class*=' mgz-hover-shutter-in-']:after {
  top: 0;
  left: 0;
}
[class^='mgz-hover-shutter-in-']:before,
[class*=' mgz-hover-shutter-in-']:before {
  right: 0;
  bottom: 0;
}
[class^='mgz-hover-shutter-in-'] .mgz-hover-description,
[class*=' mgz-hover-shutter-in-'] .mgz-hover-description {
  opacity: 0;
  z-index: 1;
}
[class^='mgz-hover-shutter-in-']:hover .mgz-hover-description,
[class*=' mgz-hover-shutter-in-']:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.21s;
}
/* mgz-hover-shutter-in-horiz
----------------------------- */
.mgz-hover-shutter-in-horiz:after,
.mgz-hover-shutter-in-horiz:before {
  width: 0;
  height: 100%;
}
.mgz-hover-shutter-in-horiz:hover:after,
.mgz-hover-shutter-in-horiz:hover:before {
  width: 50%;
}
/* mgz-hover-shutter-in-vert
----------------------------- */
.mgz-hover-shutter-in-vert:after,
.mgz-hover-shutter-in-vert:before {
  height: 0;
  width: 100%;
}
.mgz-hover-shutter-in-vert:hover:after,
.mgz-hover-shutter-in-vert:hover:before {
  height: 50%;
}
/* mgz-hover-shutter-in-out-horiz
----------------------------- */
.mgz-hover-shutter-in-out-horiz:after,
.mgz-hover-shutter-in-out-horiz:before {
  width: 0;
  height: 100%;
  opacity: 0.75;
}
.mgz-hover-shutter-in-out-horiz:hover:after,
.mgz-hover-shutter-in-out-horiz:hover:before {
  width: 100%;
}
/* mgz-hover-shutter-in-out-vert
----------------------------- */
.mgz-hover-shutter-in-out-vert:after,
.mgz-hover-shutter-in-out-vert:before {
  height: 0;
  width: 100%;
  opacity: 0.75;
}
.mgz-hover-shutter-in-out-vert:hover:after,
.mgz-hover-shutter-in-out-vert:hover:before {
  height: 100%;
}
/* mgz-hover-shutter-in-out-diag-1
----------------------------- */
.mgz-hover-shutter-in-out-diag-1:after,
.mgz-hover-shutter-in-out-diag-1:before {
  width: 200%;
  height: 200%;
  transition: all 0.6s ease;
  opacity: 0.75;
}
.mgz-hover-shutter-in-out-diag-1:after {
  transform: skew(-45deg) translateX(-150%);
}
.mgz-hover-shutter-in-out-diag-1:before {
  transform: skew(-45deg) translateX(150%);
}
.mgz-hover-shutter-in-out-diag-1:hover:after {
  transform: skew(-45deg) translateX(-50%);
}
.mgz-hover-shutter-in-out-diag-1:hover:before {
  transform: skew(-45deg) translateX(50%);
}
/* mgz-hover-shutter-in-out-diag-2
----------------------------- */
.mgz-hover-shutter-in-out-diag-2:after,
.mgz-hover-shutter-in-out-diag-2:before {
  width: 200%;
  height: 200%;
  transition: all 0.6s ease;
  opacity: 0.75;
}
.mgz-hover-shutter-in-out-diag-2:after {
  transform: skew(45deg) translateX(-100%);
}
.mgz-hover-shutter-in-out-diag-2:before {
  transform: skew(45deg) translateX(100%);
}
.mgz-hover-shutter-in-out-diag-2:hover:after {
  transform: skew(45deg) translateX(0%);
}
.mgz-hover-shutter-in-out-diag-2:hover:before {
  transform: skew(45deg) translateX(0%);
}
/* mgz-hover-fold*
----------------------------- */
[class^='mgz-hover-fold'],
[class*=' mgz-hover-fold'] {
  perspective: 50em;
}
[class^='mgz-hover-fold'] img,
[class*=' mgz-hover-fold'] img {
  transform-origin: 50% 0%;
}
[class^='mgz-hover-fold'] .mgz-hover-description,
[class*=' mgz-hover-fold'] .mgz-hover-description {
  z-index: 1;
  opacity: 0;
}
[class^='mgz-hover-fold']:hover > .mgz-hover-main,
[class*=' mgz-hover-fold']:hover > .mgz-hover-main {
  opacity: 0;
  transition-delay: 0;
}
[class^='mgz-hover-fold']:hover .mgz-hover-description,
[class*=' mgz-hover-fold']:hover .mgz-hover-description {
  transform: rotateX(0) translate3d(0, 0%, 0) scale(1);
  opacity: 1;
  transition-delay: 0.21s;
}
/* mgz-hover-fold-up
----------------------------- */
.mgz-hover-fold-up > img {
  transform-origin: 50% 0%;
}
.mgz-hover-fold-up .mgz-hover-description {
  transform: rotateX(-90deg) translate3d(0%, -50%, 0) scale(0.6);
  transform-origin: 50% 100%;
}
.mgz-hover-fold-up:hover > .mgz-hover-main {
  transform: rotateX(90deg) scale(0.6) translateY(50%);
}
/* mgz-hover-fold-down
----------------------------- */
.mgz-hover-fold-down > img {
  transform-origin: 50% 100%;
}
.mgz-hover-fold-down .mgz-hover-description {
  transform: rotateX(90deg) translate3d(0%, 50%, 0) scale(0.6);
  transform-origin: 50% 0%;
}
.mgz-hover-fold-down:hover > .mgz-hover-main {
  transform: rotateX(-90deg) scale(0.6) translateY(-50%);
}
/* mgz-hover-fold-left
----------------------------- */
.mgz-hover-fold-left > img {
  transform-origin: 0% 50%;
}
.mgz-hover-fold-left .mgz-hover-description {
  transform: rotateY(90deg) translate3d(-50%, 0%, 0) scale(0.6);
  transform-origin: 100% 50%;
}
.mgz-hover-fold-left:hover > .mgz-hover-main {
  transform: rotateY(-90deg) scale(0.6) translateX(50%);
}
/* mgz-hover-fold-right
----------------------------- */
.mgz-hover-fold-right > img {
  transform-origin: 100% 50%;
}
.mgz-hover-fold-right .mgz-hover-description {
  transform: rotateY(-90deg) translate3d(50%, 0%, 0) scale(0.6);
  transform-origin: 0 50%;
}
.mgz-hover-fold-right:hover > .mgz-hover-main {
  transform: rotateY(90deg) scale(0.6) translateX(-50%);
}
/* mgz-hover-zoom-in
----------------------------- */
.mgz-hover-zoom-in .mgz-hover-description {
  opacity: 0;
  transform: scale(0.5);
}
.mgz-hover-zoom-in:hover .mgz-hover-description {
  transform: scale(1);
  opacity: 1;
}
/* mgz-hover-zoom-out*
----------------------------- */
[class^='mgz-hover-zoom-out'] .mgz-hover-description,
[class*=' mgz-hover-zoom-out'] .mgz-hover-description {
  transform: scale(0.5);
  transform-origin: 50% 50%;
  opacity: 0;
}
[class^='mgz-hover-zoom-out']:hover .mgz-hover-description,
[class^='mgz-hover-zoom-out'].hover .mgz-hover-description,
[class*=' mgz-hover-zoom-out']:hover .mgz-hover-description,
[class*=' mgz-hover-zoom-out'].hover .mgz-hover-description {
  transform: scale(1);
  opacity: 1;
  transition-delay: 0.35s;
}
/* mgz-hover-zoom-out
----------------------------- */
.mgz-hover-zoom-out:hover > .mgz-hover-main {
  transform: scale(0.5);
  opacity: 0;
}
/* mgz-hover-zoom-out-up
----------------------------- */
.mgz-hover-zoom-out-up:hover > .mgz-hover-main,
.mgz-hover-zoom-out-up.hover > img {
  animation: mgz-hover-zoom-out-up 0.4025s linear;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-up {
  50% {
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateY(-150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-up {
  50% {
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateY(-150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-down
----------------------------- */
.mgz-hover-zoom-out-down:hover > .mgz-hover-main,
.mgz-hover-zoom-out-down.hover > img {
  animation: mgz-hover-zoom-out-down 0.4025s linear;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-down {
  50% {
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateY(150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-down {
  50% {
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateY(150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-left
----------------------------- */
.mgz-hover-zoom-out-left:hover > .mgz-hover-main,
.mgz-hover-zoom-out-left.hover > img {
  animation: mgz-hover-zoom-out-left 0.4025s linear;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-left {
  50% {
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateX(-150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-left {
  50% {
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateX(-150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-right
----------------------------- */
.mgz-hover-zoom-out-right:hover > .mgz-hover-main,
.mgz-hover-zoom-out-right.hover > img {
  animation: mgz-hover-zoom-out-right 0.4025s linear;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-right {
  50% {
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateX(150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-right {
  50% {
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateX(150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-flip-horiz
----------------------------- */
.mgz-hover-zoom-out-flip-horiz {
  perspective: 50em;
}
.mgz-hover-zoom-out-flip-horiz .mgz-hover-description {
  opacity: 0;
  transform: rotateX(90deg) translateY(-100%) scale(0.5);
}
.mgz-hover-zoom-out-flip-horiz:hover > .mgz-hover-main,
.mgz-hover-zoom-out-flip-horiz.hover > img {
  transform: rotateX(-100deg) translateY(50%) scale(0.5);
  opacity: 0;
  transition-delay: 0;
}
.mgz-hover-zoom-out-flip-horiz:hover .mgz-hover-description,
.mgz-hover-zoom-out-flip-horiz.hover .mgz-hover-description {
  transform: rotateX(0) translateY(0%) scale(1);
  opacity: 1;
  transition-delay: 0.35s;
}
/* mgz-hover-zoom-out-flip-vert
----------------------------- */
.mgz-hover-zoom-out-flip-vert {
  perspective: 50em;
}
.mgz-hover-zoom-out-flip-vert .mgz-hover-description {
  opacity: 0;
  transform: rotateY(90deg) translate(50%, 0) scale(0.5);
}
.mgz-hover-zoom-out-flip-vert:hover > .mgz-hover-main,
.mgz-hover-zoom-out-flip-vert.hover > img {
  transform: rotateY(-100deg) translateX(50%) scale(0.5);
  opacity: 0;
  transition-delay: 0;
}
.mgz-hover-zoom-out-flip-vert:hover .mgz-hover-description,
.mgz-hover-zoom-out-flip-vert.hover .mgz-hover-description {
  transform: rotateY(0) translate(0, 0) scale(1);
  opacity: 1;
  transition-delay: 0.35s;
}
/* mgz-hover-blur
----------------------------- */
.mgz-hover-blur .mgz-hover-description {
  opacity: 0;
}
.mgz-hover-blur:hover > .mgz-hover-main {
  filter: blur(30px);
  transform: scale(1.2);
  opacity: 0;
}
.mgz-hover-blur:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.21s;
}
/* mgz-hover-zoom-in
----------------------------- */
.mgz-hover-zoom-in .mgz-hover-description {
  opacity: 0;
  -webkit-transform: scale(0.5);
  transform: scale(0.5);
}
.mgz-hover-zoom-in:hover .mgz-hover-description {
  -webkit-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
/* mgz-hover-zoom-out*
----------------------------- */
[class^='mgz-hover-zoom-out'] .mgz-hover-description,
[class*=' mgz-hover-zoom-out'] .mgz-hover-description {
  -webkit-transform: scale(0.5);
  transform: scale(0.5);
  -webkit-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
  opacity: 0;
}
[class^='mgz-hover-zoom-out']:hover .mgz-hover-description,
[class^='mgz-hover-zoom-out'].hover .mgz-hover-description,
[class*=' mgz-hover-zoom-out']:hover .mgz-hover-description,
[class*=' mgz-hover-zoom-out'].hover .mgz-hover-description {
  -webkit-transform: scale(1);
  transform: scale(1);
  opacity: 1;
  transition-delay: 0.35s;
}
/* mgz-hover-zoom-out
----------------------------- */
.mgz-hover-zoom-out:hover > .mgz-hover-main {
  -webkit-transform: scale(0.5);
  transform: scale(0.5);
  opacity: 0;
}
/* mgz-hover-zoom-out-up
----------------------------- */
.mgz-hover-zoom-out-up:hover > .mgz-hover-main,
.mgz-hover-zoom-out-up.hover > img {
  -webkit-animation: mgz-hover-zoom-out-up 0.4025s linear;
  animation: mgz-hover-zoom-out-up 0.4025s linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-up {
  50% {
    -webkit-transform: scale(0.8) translateY(0%);
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateY(-150%);
    transform: scale(0.8) translateY(-150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-up {
  50% {
    -webkit-transform: scale(0.8) translateY(0%);
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateY(-150%);
    transform: scale(0.8) translateY(-150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-down
----------------------------- */
.mgz-hover-zoom-out-down:hover > .mgz-hover-main,
.mgz-hover-zoom-out-down.hover > img {
  -webkit-animation: mgz-hover-zoom-out-down 0.4025s linear;
  animation: mgz-hover-zoom-out-down 0.4025s linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-down {
  50% {
    -webkit-transform: scale(0.8) translateY(0%);
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateY(150%);
    transform: scale(0.8) translateY(150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-down {
  50% {
    -webkit-transform: scale(0.8) translateY(0%);
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateY(150%);
    transform: scale(0.8) translateY(150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-left
----------------------------- */
.mgz-hover-zoom-out-left:hover > .mgz-hover-main,
.mgz-hover-zoom-out-left.hover > img {
  -webkit-animation: mgz-hover-zoom-out-left 0.4025s linear;
  animation: mgz-hover-zoom-out-left 0.4025s linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-left {
  50% {
    -webkit-transform: scale(0.8) translateX(0%);
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateX(-150%);
    transform: scale(0.8) translateX(-150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-left {
  50% {
    -webkit-transform: scale(0.8) translateX(0%);
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateX(-150%);
    transform: scale(0.8) translateX(-150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-right
----------------------------- */
.mgz-hover-zoom-out-right:hover > .mgz-hover-main,
.mgz-hover-zoom-out-right.hover > img {
  -webkit-animation: mgz-hover-zoom-out-right 0.4025s linear;
  animation: mgz-hover-zoom-out-right 0.4025s linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-right {
  50% {
    -webkit-transform: scale(0.8) translateX(0%);
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateX(150%);
    transform: scale(0.8) translateX(150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-right {
  50% {
    -webkit-transform: scale(0.8) translateX(0%);
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateX(150%);
    transform: scale(0.8) translateX(150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-flip-horiz
----------------------------- */
.mgz-hover-zoom-out-flip-horiz {
  -webkit-perspective: 50em;
  perspective: 50em;
}
.mgz-hover-zoom-out-flip-horiz .mgz-hover-description {
  opacity: 0;
  -webkit-transform: rotateX(90deg) translateY(-100%) scale(0.5);
  transform: rotateX(90deg) translateY(-100%) scale(0.5);
}
.mgz-hover-zoom-out-flip-horiz:hover > .mgz-hover-main,
.mgz-hover-zoom-out-flip-horiz.hover > img {
  -webkit-transform: rotateX(-100deg) translateY(50%) scale(0.5);
  transform: rotateX(-100deg) translateY(50%) scale(0.5);
  opacity: 0;
  transition-delay: 0;
}
.mgz-hover-zoom-out-flip-horiz:hover .mgz-hover-description,
.mgz-hover-zoom-out-flip-horiz.hover .mgz-hover-description {
  -webkit-transform: rotateX(0) translateY(0%) scale(1);
  transform: rotateX(0) translateY(0%) scale(1);
  opacity: 1;
  transition-delay: 0.35s;
}
/* mgz-hover-zoom-out-flip-vert
----------------------------- */
.mgz-hover-zoom-out-flip-vert {
  -webkit-perspective: 50em;
  perspective: 50em;
}
.mgz-hover-zoom-out-flip-vert .mgz-hover-description {
  opacity: 0;
  -webkit-transform: rotateY(90deg) translate(50%, 0) scale(0.5);
  transform: rotateY(90deg) translate(50%, 0) scale(0.5);
}
.mgz-hover-zoom-out-flip-vert:hover > .mgz-hover-main,
.mgz-hover-zoom-out-flip-vert.hover > img {
  -webkit-transform: rotateY(-100deg) translateX(50%) scale(0.5);
  transform: rotateY(-100deg) translateX(50%) scale(0.5);
  opacity: 0;
  transition-delay: 0;
}
.mgz-hover-zoom-out-flip-vert:hover .mgz-hover-description,
.mgz-hover-zoom-out-flip-vert.hover .mgz-hover-description {
  -webkit-transform: rotateY(0) translate(0, 0) scale(1);
  transform: rotateY(0) translate(0, 0) scale(1);
  opacity: 1;
  transition-delay: 0.35s;
}
/* mgz-hover-blur
----------------------------- */
.mgz-hover-blur .mgz-hover-description {
  opacity: 0;
}
.mgz-hover-blur:hover > .mgz-hover-main {
  -webkit-filter: blur(30px);
  filter: blur(30px);
  -webkit-transform: scale(1.2);
  transform: scale(1.2);
  opacity: 0;
}
.mgz-hover-blur:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.21s;
}
/* mgz-hover-scale
----------------------------- */
.mgz-hover-zoom .mgz-hover-description {
  opacity: 0;
}
.mgz-hover-zoom:hover > img,
.mgz-hover-zoom:hover > .mgz-hover-main {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -ms-transform: scale(1.1);
  -o-transform: scale(1.1);
}
.mgz-hover-zoom:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.21s;
}
.mgz-image-hovers.owl-carousel .owl-item {
  overflow: hidden;
}
.mgz-image-hovers.owl-carousel .owl-item .hover-type-zoomin {
  opacity: 1;
  -webkit-transition: all 0.4s !important;
  -moz-transition: all 0.4s !important;
  -ms-transition: all 0.4s !important;
  -o-transition: all 0.4s !important;
}
.mgz-image-hovers.owl-carousel .owl-item .hover-type-zoomout {
  opacity: 1;
  -webkit-transform: scale(1.12);
  -ms-transform: scale(1.12);
  transform: scale(1.12);
  -webkit-transition: opacity 1s, -webkit-transform 1s !important;
  transition: opacity 1s, -webkit-transform 1s !important;
  -o-transition: opacity 1s,transform 1s !important;
  transition: opacity 1s,transform 1s !important;
  transition: opacity 1s, transform 1s, -webkit-transform 1s !important;
}
.mgz-image-hovers.owl-carousel .owl-item .hover-type-liftup {
  -webkit-transform: perspective(1000px) scale(1);
  transform: perspective(1000px) scale(1);
  -webkit-transition: -webkit-transform 0.35s !important;
  transition: -webkit-transform 0.35s !important;
  -o-transition: transform 0.35s !important;
  transition: transform 0.35s !important;
  transition: transform 0.35s, -webkit-transform 0.35s !important;
  position: relative;
  z-index: 1;
}
.mgz-image-hovers.owl-carousel .owl-item:hover .hover-type-zoomin {
  opacity: 0.9;
  -webkit-transform: scale3d(1.1, 1.1, 1);
  transform: scale3d(1.1, 1.1, 1);
}
.mgz-image-hovers.owl-carousel .owl-item:hover .hover-type-zoomout {
  opacity: 0.9;
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}
.mgz-image-hovers.owl-carousel .owl-item:hover .hover-type-liftup {
  -webkit-transform: perspective(1000px) scale(1.03);
  transform: perspective(1000px) scale(1.03);
}
.mgz-image-hovers.owl-carousel .owl-item:hover .hover-type-liftup:before {
  opacity: 1;
}
.mgz-image-hovers .hover-type-zoomin {
  overflow: hidden;
}
.mgz-image-hovers .hover-type-zoomin img {
  opacity: 1;
  -webkit-transition: all 0.4s !important;
  -moz-transition: all 0.4s !important;
  -ms-transition: all 0.4s !important;
  -o-transition: all 0.4s !important;
}
.mgz-image-hovers .hover-type-zoomin:hover img {
  opacity: 0.9;
  -webkit-transform: scale3d(1.1, 1.1, 1);
  transform: scale3d(1.1, 1.1, 1);
}
.mgz-image-hovers .hover-type-zoomout {
  overflow: hidden;
}
.mgz-image-hovers .hover-type-zoomout img {
  opacity: 1;
  -webkit-transform: scale(1.12);
  -ms-transform: scale(1.12);
  transform: scale(1.12);
  -webkit-transition: opacity 1s, -webkit-transform 1s !important;
  transition: opacity 1s, -webkit-transform 1s !important;
  -o-transition: opacity 1s,transform 1s !important;
  transition: opacity 1s,transform 1s !important;
  transition: opacity 1s, transform 1s, -webkit-transform 1s !important;
}
.mgz-image-hovers .hover-type-zoomout:hover img {
  opacity: 0.9;
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}
.mgz-image-hovers .hover-type-liftup {
  position: relative;
}
.mgz-image-hovers .hover-type-liftup img {
  -webkit-transform: perspective(1000px) scale(1);
  transform: perspective(1000px) scale(1);
  -webkit-transition: -webkit-transform 0.35s !important;
  transition: -webkit-transform 0.35s !important;
  -o-transition: transform 0.35s !important;
  transition: transform 0.35s !important;
  transition: transform 0.35s, -webkit-transform 0.35s !important;
  position: relative;
  z-index: 1;
}
.mgz-image-hovers .hover-type-liftup:before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  content: '';
  -webkit-transition: opacity 0.35s !important;
  -o-transition: opacity 0.35s !important;
  transition: opacity 0.35s !important;
  -webkit-box-shadow: 0 3px 15px rgba(0, 0, 0, 0.4);
  box-shadow: 0 3px 15px rgba(0, 0, 0, 0.4);
  opacity: 0;
}
.mgz-image-hovers .hover-type-liftup:hover img {
  -webkit-transform: perspective(1000px) scale(1.03);
  transform: perspective(1000px) scale(1.03);
}
.mgz-image-hovers .hover-type-liftup:hover:before {
  opacity: 1;
}
.mgz-hover-image {
  float: right;
}
.mgz-hover.zoom .mgz-hover-image {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  -o-transform: scale(1);
  -webkit-transition: all 0.3s ease-out 0s;
  -moz-transition: all 0.3s ease-out 0s;
  -ms-transition: all 0.3s ease-out 0s;
  -o-transition: all 0.3s ease-out 0s;
}
.mgz-hover.zoom:hover .mgz-hover-image {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -ms-transform: scale(1.1);
  -o-transform: scale(1.1);
}
.mgz-hover.border:before {
  border: 2px solid #fff;
  top: -2px;
  bottom: -2px;
  right: -2px;
  left: -2px;
  content: '';
  display: block;
  position: absolute;
  -webkit-transition: all 0.5s ease-out 0s;
  -moz-transition: all 0.5s ease-out 0s;
  -ms-transition: all 0.5s ease-out 0s;
  -o-transition: all 0.5s ease-out 0s;
}
.mgz-hover.border:hover:before {
  top: 15px;
  bottom: 15px;
  right: 15px;
  left: 15px;
  z-index: 1;
}
.mgz-hover.flashed:after {
  -webkit-transition: transform 0.6s;
  -moz-transition: transform 0.6s;
  -ms-transition: transform 0.6s;
  -o-transition: transform 0.6s;
  -webkit-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, -300%, 0);
  -moz-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, -300%, 0);
  -ms-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, -300%, 0);
  -o-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, -300%, 0);
  position: absolute;
  top: 0;
  left: 0;
  width: 1000px;
  height: 200px;
  background: rgba(255, 255, 255, 0.5);
  content: '';
}
.mgz-hover.flashed:hover:after {
  -webkit-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, 300%, 0);
  -moz-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, 300%, 0);
  -ms-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, 300%, 0);
  -o-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, 300%, 0);
}
.mgz-hover.shadow {
  -webkit-transition: all 0.2s ease 0s;
  -moz-transition: all 0.2s ease 0s;
  -ms-transition: all 0.2s ease 0s;
  -o-transition: all 0.2s ease 0s;
}
.mgz-hover.shadow:hover {
  -webkit-box-shadow: 2px 3px 3px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 2px 3px 3px rgba(0, 0, 0, 0.2);
  box-shadow: 2px 3px 3px rgba(0, 0, 0, 0.2);
}
.mgz-position-top-left {
  position: absolute;
  top: 0;
  left: 0;
}
.mgz-position-top-center {
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
}
.mgz-position-top-right {
  position: absolute;
  top: 0;
  right: 0;
}
.mgz-position-middle-left,
.mgz-position-center-left {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
}
.mgz-position-middle-center,
.mgz-position-center-center {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
}
.mgz-position-middle-right,
.mgz-position-center-right {
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
}
.mgz-position-bottom-left {
  position: absolute;
  bottom: 0;
  left: 0;
}
.mgz-position-bottom-center {
  position: absolute;
  left: 50%;
  bottom: 0;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
}
.mgz-position-bottom-right {
  position: absolute;
  bottom: 0;
  right: 0;
}
.mgz-flex-position-top-left {
  -webkit-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
  -webkit-justify-content: flex-start;
  -ms-justify-content: flex-start;
  justify-content: flex-start;
}
.mgz-flex-position-top-center {
  -webkit-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
}
.mgz-flex-position-top-right {
  -webkit-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
  -webkit-justify-content: flex-end;
  -ms-justify-content: flex-end;
  justify-content: flex-end;
}
.mgz-flex-position-middle-left,
.mgz-flex-position-center-left {
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  -ms-justify-content: flex-start;
  justify-content: flex-start;
}
.mgz-flex-position-middle-center,
.mgz-flex-position-center-center {
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
}
.mgz-flex-position-middle-right,
.mgz-flex-position-center-right {
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-end;
  -ms-justify-content: flex-end;
  justify-content: flex-end;
}
.mgz-flex-position-bottom-left {
  -webkit-align-items: flex-end;
  -ms-align-items: flex-end;
  align-items: flex-end;
  -webkit-justify-content: flex-start;
  -ms-justify-content: flex-start;
  justify-content: flex-start;
}
.mgz-flex-position-bottom-center {
  -webkit-align-items: flex-end;
  -ms-align-items: flex-end;
  align-items: flex-end;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
}
.mgz-flex-position-bottom-right {
  -webkit-align-items: flex-end;
  -ms-align-items: flex-end;
  align-items: flex-end;
  -webkit-justify-content: flex-end;
  -ms-justify-content: flex-end;
  justify-content: flex-end;
}
.mgz-bg-transform-wrapper {
  overflow: hidden;
}
.mgz-bg-transform-zoom-in:hover .mgz-bg,
.mgz-bg-transform-zoom-out .mgz-bg {
  -webkit-transform: scale(1.2);
  -ms-transform: scale(1.2);
  transform: scale(1.2);
}
.mgz-bg-transform-zoom-out:hover .mgz-bg {
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}
.mgz-bg-transform-move-left .mgz-bg {
  -webkit-transform: scale(1.2) translateX(8%);
  -ms-transform: scale(1.2) translateX(8%);
  transform: scale(1.2) translateX(8%);
}
.mgz-bg-transform-move-left:hover .mgz-bg,
.mgz-bg-transform-move-right .mgz-bg {
  -webkit-transform: scale(1.2) translateX(-8%);
  -ms-transform: scale(1.2) translateX(-8%);
  transform: scale(1.2) translateX(-8%);
}
.mgz-bg-transform-move-right:hover .mgz-bg {
  -webkit-transform: scale(1.2) translateX(8%);
  -ms-transform: scale(1.2) translateX(8%);
  transform: scale(1.2) translateX(8%);
}
.mgz-bg-transform-move-up .mgz-bg {
  -webkit-transform: scale(1.2) translateY(8%);
  -ms-transform: scale(1.2) translateY(8%);
  transform: scale(1.2) translateY(8%);
}
.mgz-bg-transform-move-down .mgz-bg,
.mgz-bg-transform-move-up:hover .mgz-bg {
  -webkit-transform: scale(1.2) translateY(-8%);
  -ms-transform: scale(1.2) translateY(-8%);
  transform: scale(1.2) translateY(-8%);
}
.mgz-bg-transform-move-down:hover .mgz-bg {
  -webkit-transform: scale(1.2) translateY(8%);
  -ms-transform: scale(1.2) translateY(8%);
  transform: scale(1.2) translateY(8%);
}
*[class*='mgz-animated-item--'] {
  -webkit-transition: 0.5s;
  -moz-transition: 0.5s;
  -ms-transition: 0.5s;
  -o-transition: 0.5s;
  width: 100%;
}
.mgz-animated-content:hover .mgz-animated-item--grow {
  -webkit-transform: scale(1.1);
  -ms-transform: scale(1.1);
  transform: scale(1.1);
}
.mgz-animated-content:hover .mgz-animated-item--shrink {
  -webkit-transform: scale(0.85);
  -ms-transform: scale(0.85);
  transform: scale(0.85);
}
.mgz-animated-content:hover .mgz-animated-item--enter-zoom-in,
.mgz-animated-content:hover .mgz-animated-item--enter-zoom-out,
.mgz-animated-content:hover .mgz-animated-item--fade-in {
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.mgz-animated-content:hover .mgz-animated-item--exit-zoom-in,
.mgz-animated-content:hover .mgz-animated-item--exit-zoom-out,
.mgz-animated-content:hover .mgz-animated-item--fade-out {
  opacity: 0;
}
.mgz-animated-content:hover .mgz-animated-item--exit-zoom-out {
  -webkit-transform: scale(0.2);
  -ms-transform: scale(0.2);
  transform: scale(0.2);
}
.mgz-animated-content:hover .mgz-animated-item--exit-zoom-in {
  -webkit-transform: scale(2);
  -ms-transform: scale(2);
  transform: scale(2);
}
.mgz-animated-content:hover .mgz-animated-item--enter-from-bottom,
.mgz-animated-content:hover .mgz-animated-item--enter-from-left,
.mgz-animated-content:hover .mgz-animated-item--enter-from-right,
.mgz-animated-content:hover .mgz-animated-item--enter-from-top {
  opacity: 1;
  -webkit-transform: translateY(0) translateX(0);
  -ms-transform: translateY(0) translateX(0);
  transform: translateY(0) translateX(0);
}
.mgz-animated-content:hover .mgz-animated-item--exit-to-right {
  -webkit-transform: translateX(1000px);
  -ms-transform: translateX(1000px);
  transform: translateX(1000px);
}
.mgz-animated-content:hover .mgz-animated-item--exit-to-left {
  -webkit-transform: translateX(-1000px);
  -ms-transform: translateX(-1000px);
  transform: translateX(-1000px);
}
.mgz-animated-content:hover .mgz-animated-item--exit-to-top {
  -webkit-transform: translateY(-600px);
  -ms-transform: translateY(-600px);
  transform: translateY(-600px);
}
.mgz-animated-content:hover .mgz-animated-item--exit-to-bottom {
  -webkit-transform: translateY(600px);
  -ms-transform: translateY(600px);
  transform: translateY(600px);
}
.mgz-animated-content:hover .mgz-animated-item--exit-to-bottom,
.mgz-animated-content:hover .mgz-animated-item--exit-to-left,
.mgz-animated-content:hover .mgz-animated-item--exit-to-right,
.mgz-animated-content:hover .mgz-animated-item--exit-to-top {
  opacity: 0;
}
.mgz-animated-content:hover .mgz-animated-item--move-right {
  -webkit-transform: translateX(30px);
  -ms-transform: translateX(30px);
  transform: translateX(30px);
}
.mgz-animated-content:hover .mgz-animated-item--move-left {
  -webkit-transform: translateX(-30px);
  -ms-transform: translateX(-30px);
  transform: translateX(-30px);
}
.mgz-animated-content:hover .mgz-animated-item--move-up {
  -webkit-transform: translateY(-30px);
  -ms-transform: translateY(-30px);
  transform: translateY(-30px);
}
.mgz-animated-content:hover .mgz-animated-item--move-down {
  -webkit-transform: translateY(30px);
  -ms-transform: translateY(30px);
  transform: translateY(30px);
}
.mgz-animated-content [class^=elementor-animated-item] {
  will-change: transform, opacity;
}
.mgz-animated-content .mgz-animated-item--enter-zoom-in {
  -webkit-transform: scale(0.2);
  -ms-transform: scale(0.2);
  transform: scale(0.2);
}
.mgz-animated-content .mgz-animated-item--enter-zoom-out {
  -webkit-transform: scale(2);
  -ms-transform: scale(2);
  transform: scale(2);
}
.mgz-animated-content .mgz-animated-item--enter-zoom-in,
.mgz-animated-content .mgz-animated-item--enter-zoom-out,
.mgz-animated-content .mgz-animated-item--fade-in {
  opacity: 0;
}
.mgz-animated-content .mgz-animated-item--exit-zoom-in,
.mgz-animated-content .mgz-animated-item--exit-zoom-out,
.mgz-animated-content .mgz-animated-item--fade-out {
  opacity: 1;
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}
.mgz-animated-content .mgz-animated-item--enter-from-right {
  -webkit-transform: translateX(1000px);
  -ms-transform: translateX(1000px);
  transform: translateX(1000px);
}
.mgz-animated-content .mgz-animated-item--enter-from-left {
  -webkit-transform: translateX(-1000px);
  -ms-transform: translateX(-1000px);
  transform: translateX(-1000px);
}
.mgz-animated-content .mgz-animated-item--enter-from-top {
  -webkit-transform: translateY(-600px);
  -ms-transform: translateY(-600px);
  transform: translateY(-600px);
}
.mgz-animated-content .mgz-animated-item--enter-from-bottom {
  -webkit-transform: translateY(500px);
  -ms-transform: translateY(500px);
  transform: translateY(500px);
}
.mgz-animated-content .mgz-animated-item--enter-from-bottom,
.mgz-animated-content .mgz-animated-item--enter-from-left,
.mgz-animated-content .mgz-animated-item--enter-from-right,
.mgz-animated-content .mgz-animated-item--enter-from-top {
  opacity: 0;
}
.mgz-animated-content .mgz-animated-item--exit-to-bottom,
.mgz-animated-content .mgz-animated-item--exit-to-left,
.mgz-animated-content .mgz-animated-item--exit-to-right,
.mgz-animated-content .mgz-animated-item--exit-to-top {
  opacity: 1;
  -webkit-transform: translateY(0) translateX(0);
  -ms-transform: translateY(0) translateX(0);
  transform: translateY(0) translateX(0);
}
.owl-nav .owl-prev,
.owl-nav .owl-next {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
.owl-dots {
  text-align: center;
}
.owl-dots .owl-dot {
  -webkit-box-shadow: none !important;
  -moz-box-shadow: none !important;
  box-shadow: none !important;
}
@-webkit-keyframes backSlideOut {
  25% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px);
  }
  75% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(-200%);
  }
  100% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(-200%);
  }
}
@-moz-keyframes backSlideOut {
  25% {
    opacity: 0.5;
    -moz-transform: translateZ(-500px);
  }
  75% {
    opacity: 0.5;
    -moz-transform: translateZ(-500px) translateX(-200%);
  }
  100% {
    opacity: 0.5;
    -moz-transform: translateZ(-500px) translateX(-200%);
  }
}
@keyframes backSlideOut {
  25% {
    opacity: 0.5;
    transform: translateZ(-500px);
  }
  75% {
    opacity: 0.5;
    transform: translateZ(-500px) translateX(-200%);
  }
  100% {
    opacity: 0.5;
    transform: translateZ(-500px) translateX(-200%);
  }
}
@-webkit-keyframes backSlideIn {
  0%,
  25% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(200%);
  }
  75% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(0) translateX(0);
  }
}
@-moz-keyframes backSlideIn {
  0%,
  25% {
    opacity: 0.5;
    -moz-transform: translateZ(-500px) translateX(200%);
  }
  75% {
    opacity: 0.5;
    -moz-transform: translateZ(-500px);
  }
  100% {
    opacity: 1;
    -moz-transform: translateZ(0) translateX(0);
  }
}
@keyframes backSlideIn {
  0%,
  25% {
    opacity: 0.5;
    transform: translateZ(-500px) translateX(200%);
  }
  75% {
    opacity: 0.5;
    transform: translateZ(-500px);
  }
  100% {
    opacity: 1;
    transform: translateZ(0) translateX(0);
  }
}
@-webkit-keyframes scaleToFade {
  to {
    opacity: 0;
    -webkit-transform: scale(0.8);
  }
}
@-moz-keyframes scaleToFade {
  to {
    opacity: 0;
    -moz-transform: scale(0.8);
  }
}
@keyframes scaleToFade {
  to {
    opacity: 0;
    transform: scale(0.8);
  }
}
@-webkit-keyframes goDown {
  from {
    -webkit-transform: translateY(-100%);
  }
}
@-moz-keyframes goDown {
  from {
    -moz-transform: translateY(-100%);
  }
}
@keyframes goDown {
  from {
    transform: translateY(-100%);
  }
}
@-webkit-keyframes scaleUpFrom {
  from {
    opacity: 0;
    -webkit-transform: scale(1.5);
  }
}
@-moz-keyframes scaleUpFrom {
  from {
    opacity: 0;
    -moz-transform: scale(1.5);
  }
}
@keyframes scaleUpFrom {
  from {
    opacity: 0;
    transform: scale(1.5);
  }
}
@-webkit-keyframes scaleUpTo {
  to {
    opacity: 0;
    -webkit-transform: scale(1.5);
  }
}
@-moz-keyframes scaleUpTo {
  to {
    opacity: 0;
    -moz-transform: scale(1.5);
  }
}
@keyframes scaleUpTo {
  to {
    opacity: 0;
    transform: scale(1.5);
  }
}
.owl-backSlide-out {
  -webkit-animation: backSlideOut 1s both ease;
  -moz-animation: backSlideOut 1s both ease;
  animation: backSlideOut 1s both ease;
}
.owl-backSlide-in {
  -webkit-animation: backSlideIn 1s both ease;
  -moz-animation: backSlideIn 1s both ease;
  animation: backSlideIn 1s both ease;
}
/* goDown */
.owl-goDown-out {
  -webkit-animation: scaleToFade 0.7s ease both;
  -moz-animation: scaleToFade 0.7s ease both;
  animation: scaleToFade 0.7s ease both;
}
.owl-goDown-in {
  -webkit-animation: goDown 0.6s ease both;
  -moz-animation: goDown 0.6s ease both;
  animation: goDown 0.6s ease both;
}
/* scaleUp */
.owl-fadeUp-in {
  -webkit-animation: scaleUpFrom 0.5s ease both;
  -moz-animation: scaleUpFrom 0.5s ease both;
  animation: scaleUpFrom 0.5s ease both;
}
.owl-fadeUp-out {
  -webkit-animation: scaleUpTo 0.5s ease both;
  -moz-animation: scaleUpTo 0.5s ease both;
  animation: scaleUpTo 0.5s ease both;
}
.mgz-element-inner {
  height: 100%;
  position: relative;
}
.mgz-element-inner:before,
.mgz-element-inner:after {
  content: " ";
  display: table;
  clear: both;
}
.inner-content {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
}
.inner-content:before,
.inner-content:after {
  content: " ";
  display: table;
  clear: both;
}
.magezon-builder-preload .mgz-element {
  z-index: 0;
}
.mgz-child:not(:last-child) > .mgz-element-inner {
  margin-bottom: 15px;
}
.mgz-element {
  position: relative;
  text-align: left;
}
.mgz-element:before,
.mgz-element:after {
  content: " ";
  display: table;
  clear: both;
}
.mgz-element p:last-child {
  margin-bottom: 0;
}
.mgz-element .title {
  font-weight: 400;
}
.mgz-element-title-align-left .inner-content {
  margin-left: 0 !important;
}
.mgz-element-title-align-right .inner-content {
  margin-right: 0 !important;
}
.mgz-parallax,
.mgz-parallax-inner,
.mgz-parallax-overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.mgz-parallax {
  -webkit-border-radius: inherit;
  -moz-border-radius: inherit;
  border-radius: inherit;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  overflow: hidden;
  pointer-events: none;
}
.mgz-parallax.mgz-parallax-mouse-parallax {
  -webkit-transform: translateX(0);
  transform: translateX(0);
}
.mgz-parallax .mgz-parallax-inner {
  background-repeat: no-repeat;
  background-position: 50% 50%;
}
.mgz-parallax .mgz-parallax-inner * {
  background-position: inherit !important;
  background-size: inherit !important;
  background-repeat: inherit !important;
}
.mgz-mfp .mfp-title {
  position: absolute;
  margin-top: 10px;
}
.mgz-mfp .mfp-counter {
  top: auto;
  bottom: -25px;
}
.mgz-animated {
  -webkit-opacity: 0;
  -moz-opacity: 0;
  opacity: 0;
}
.mgz-animated:not(.mgz_start_animation) {
  -webkit-animation: none;
  -o-animation: none;
  animation: none;
}
.mgz_start_animation {
  -webkit-opacity: 1;
  -moz-opacity: 1;
  opacity: 1;
}
.mgz-animated-infinite {
  animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;
}
@-webkit-keyframes mgz_ttb {
  0% {
    -webkit-transform: translate(0, -10%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    opacity: 1;
  }
}
@-moz-keyframes mgz_ttb {
  0% {
    -moz-transform: translate(0, -10%);
    opacity: 0;
  }
  100% {
    -moz-transform: translate(0, 0);
    opacity: 1;
  }
}
@-o-keyframes mgz_ttb {
  0% {
    -o-transform: translate(0, -10%);
    opacity: 0;
  }
  100% {
    -o-transform: translate(0, 0);
    opacity: 1;
  }
}
@keyframes mgz_ttb {
  0% {
    -webkit-transform: translate(0, -10%);
    -ms-transform: translate(0, -10%);
    -o-transform: translate(0, -10%);
    transform: translate(0, -10%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1;
  }
}
@-webkit-keyframes mgz_btt {
  0% {
    -webkit-transform: translate(0, 10%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    opacity: 1;
  }
}
@-moz-keyframes mgz_btt {
  0% {
    -moz-transform: translate(0, 10%);
    opacity: 0;
  }
  100% {
    -moz-transform: translate(0, 0);
    opacity: 1;
  }
}
@-o-keyframes mgz_btt {
  0% {
    -o-transform: translate(0, 10%);
    opacity: 0;
  }
  100% {
    -o-transform: translate(0, 0);
    opacity: 1;
  }
}
@keyframes mgz_btt {
  0% {
    -webkit-transform: translate(0, 10%);
    -ms-transform: translate(0, 10%);
    -o-transform: translate(0, 10%);
    transform: translate(0, 10%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1;
  }
}
@-webkit-keyframes mgz_ltr {
  0% {
    -webkit-transform: translate(-10%, 0);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    opacity: 1;
  }
}
@-moz-keyframes mgz_ltr {
  0% {
    -moz-transform: translate(-10%, 0);
    opacity: 0;
  }
  100% {
    -moz-transform: translate(0, 0);
    opacity: 1;
  }
}
@-o-keyframes mgz_ltr {
  0% {
    -o-transform: translate(-10%, 0);
    opacity: 0;
  }
  100% {
    -o-transform: translate(0, 0);
    opacity: 1;
  }
}
@keyframes mgz_ltr {
  0% {
    -webkit-transform: translate(-10%, 0);
    -ms-transform: translate(-10%, 0);
    -o-transform: translate(-10%, 0);
    transform: translate(-10%, 0);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1;
  }
}
@-webkit-keyframes mgz_rtl {
  0% {
    -webkit-transform: translate(10%, 0);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    opacity: 1;
  }
}
@-moz-keyframes mgz_rtl {
  0% {
    -moz-transform: translate(10%, 0);
    opacity: 0;
  }
  100% {
    -moz-transform: translate(0, 0);
    opacity: 1;
  }
}
@-o-keyframes mgz_rtl {
  0% {
    -o-transform: translate(10%, 0);
    opacity: 0;
  }
  100% {
    -o-transform: translate(0, 0);
    opacity: 1;
  }
}
@keyframes mgz_rtl {
  0% {
    -webkit-transform: translate(10%, 0);
    -ms-transform: translate(10%, 0);
    -o-transform: translate(10%, 0);
    transform: translate(10%, 0);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1;
  }
}
@-webkit-keyframes mgz_appear {
  0% {
    -webkit-transform: scale(0.5);
    opacity: 0.1;
  }
  100% {
    -webkit-transform: scale(1);
    opacity: 1;
  }
}
@-moz-keyframes mgz_appear {
  0% {
    -moz-transform: scale(0.5);
    opacity: 0.1;
  }
  100% {
    -moz-transform: scale(1);
    opacity: 1;
  }
}
@-o-keyframes mgz_appear {
  0% {
    -o-transform: scale(0.5);
    opacity: 0.1;
  }
  100% {
    -o-transform: scale(1);
    opacity: 1;
  }
}
@keyframes mgz_appear {
  0% {
    -webkit-transform: scale(0.5);
    -ms-transform: scale(0.5);
    -o-transform: scale(0.5);
    transform: scale(0.5);
    opacity: 0.1;
  }
  100% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
}
.mgz_top-to-bottom {
  -webkit-animation: mgz_ttb 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -moz-animation: mgz_ttb 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation: mgz_ttb 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation: mgz_ttb 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.mgz_bottom-to-top {
  -webkit-animation: mgz_btt 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -moz-animation: mgz_btt 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation: mgz_btt 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation: mgz_btt 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.mgz_left-to-right {
  -webkit-animation: mgz_ltr 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -moz-animation: mgz_ltr 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation: mgz_ltr 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation: mgz_ltr 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.mgz_right-to-left {
  -webkit-animation: mgz_rtl 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -moz-animation: mgz_rtl 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation: mgz_rtl 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation: mgz_rtl 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.mgz_appear {
  -webkit-animation: mgz_appear 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -moz-animation: mgz_appear 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation: mgz_appear 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation: mgz_appear 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  -o-transform: scale(1);
}
.mgz-row-full-height {
  min-height: 500px;
}
.mgz-row-full-height > .mgz-element-inner {
  min-height: 500px;
}
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content {
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content:before,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content:before,
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content:after,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content:after {
  display: none;
}
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content > .mgz-element,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content > .mgz-element {
  -webkit-align-items: stretch;
  -ms-align-items: stretch;
  align-items: stretch;
}
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner {
  -webkit-flex-grow: 1;
  -ms-flex-grow: 1;
  flex-grow: 1;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  width: 100%;
}
.mgz-element-row.content-top > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner {
  -webkit-align-self: flex-start;
  -ms-align-self: flex-start;
  align-self: flex-start;
  -webkit-justify-content: flex-start;
  -ms-justify-content: flex-start;
  justify-content: flex-start;
}
.mgz-element-row.content-middle > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner {
  -webkit-align-self: center;
  -ms-align-self: center;
  align-self: center;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
}
.mgz-element-row.content-bottom > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner {
  -webkit-align-self: flex-end;
  -ms-align-self: flex-end;
  align-self: flex-end;
  -webkit-justify-content: flex-end;
  -ms-justify-content: flex-end;
  justify-content: flex-end;
}
.mgz-element-row.mgz-container {
  float: none;
  margin: 0 auto;
}
.page-layout-1column-fullwidth .column > .magezon-builder > .full_width_row > .mgz-element-inner,
.page-layout-1column-fullwidth .column > .magezon-builder > .full_width_row_content > .mgz-element-inner {
  padding-left: 10px;
  padding-right: 10px;
}
@media (max-width: 767px) {
  .mgz-row-wrap-reverse > .mgz-element-inner > .inner-content {
    -webkit-flex-direction: column-reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse;
  }
}
.mgz-element-column > .mgz-element-inner {
  padding: 10px;
}
.mgz-element-column.mgz-element-column-empty > .mgz-element-inner {
  padding: 0;
  margin: 0;
}
.mgz-row-gap-margin > .mgz-element-inner {
  margin: 10px;
  padding: 0;
}
.mgz-element-separator {
  position: relative;
}
.mgz-element-separator .title {
  background: #FFF;
  position: relative;
  z-index: 1;
  padding: 0 8px;
  display: inline-block;
  margin: 0;
}
.mgz-element-separator .title i + span,
.mgz-element-separator .title span + i {
  padding-left: 5px;
}
.mgz-element-separator .mgz-element-separator-line {
  -webkit-transform: translate(0%, -50%);
  -moz-transform: translate(0%, -50%);
  -ms-transform: translate(0%, -50%);
  -o-transform: translate(0%, -50%);
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  border-top: 1px solid transparent;
  margin: 0 auto;
}
.mgz-element-separator .mgz-text-left .title {
  padding-left: 0;
}
.mgz-element-separator .mgz-text-left .mgz-element-separator-line {
  left: 0;
}
.mgz-element-separator .mgz-text-right .title {
  padding-right: 0;
}
.mgz-element-separator-wrapper {
  position: relative;
}
.mgz-element-heading-text {
  margin: 0;
  color: inherit;
}
.mgz-element-heading-text > a {
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  opacity: 1;
  font-weight: inherit;
}
.mgz-element-heading-text > a,
.mgz-element-heading-text > a:focus,
.mgz-element-heading-text > a:hover,
.mgz-element-heading-text > a:visited {
  border: none;
  text-decoration: inherit;
  color: inherit;
  font-weight: inherit;
}
.mgz-element-heading-text > a:hover {
  opacity: 0.85;
}
.mgz-tabs:before,
.mgz-tabs-nav:before,
.mgz-tabs-content:before,
.mgz-tabs:after,
.mgz-tabs-nav:after,
.mgz-tabs-content:after {
  content: " ";
  display: table;
  clear: both;
}
.mgz-tabs-nav > .mgz-tabs-tab-title > a,
.mgz-tabs-content > .mgz-tabs-tab-title > a {
  color: #666666;
}
.mgz-tabs-nav > .mgz-tabs-tab-title:not(.mgz-active) > a,
.mgz-tabs-content > .mgz-tabs-tab-title:not(.mgz-active) > a {
  background: #ebebeb;
}
.mgz-tabs-nav > .mgz-tabs-tab-title:not(.mgz-active) > a:hover,
.mgz-tabs-content > .mgz-tabs-tab-title:not(.mgz-active) > a:hover {
  background: #dcdcdc;
}
.mgz-tabs-nav > .mgz-tabs-tab-title:first-child > a,
.mgz-tabs-content > .mgz-tabs-tab-title:first-child > a {
  margin-top: 0 !important;
}
.mgz-tabs-nav > .mgz-tabs-tab-title.mgz-active > a,
.mgz-tabs-content > .mgz-tabs-tab-title.mgz-active > a {
  background: #f8f8f8;
}
.mgz-tabs {
  color: #333;
}
.mgz-tabs .mgz-tabs-tab-title > a {
  -webkit-transition: background 0.2s ease-in-out, color 0.2s ease-in-out, border 0.2s ease-in-out;
  -moz-transition: background 0.2s ease-in-out, color 0.2s ease-in-out, border 0.2s ease-in-out;
  -ms-transition: background 0.2s ease-in-out, color 0.2s ease-in-out, border 0.2s ease-in-out;
  -o-transition: background 0.2s ease-in-out, color 0.2s ease-in-out, border 0.2s ease-in-out;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  padding: 14px 20px;
  display: block;
  position: relative;
  z-index: 1;
  border: 1px solid #e3e3e3;
}
.mgz-tabs .mgz-tabs-tab-title > a:hover {
  text-decoration: none;
}
.mgz-tabs .mgz-tabs-tab-content {
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  display: none;
}
.mgz-tabs .mgz-tabs-tab-content.mgz-active {
  display: block;
}
.mgz-tabs .mgz-tabs-tab-content > .mgz-element > .mgz-element-inner {
  margin-bottom: 0;
}
.mgz-tabs:not(.mgz-tabs-no-fill-content) .mgz-tabs-tab-content {
  border: 1px solid #e3e3e3;
  background: #f8f8f8;
  margin-top: -1px;
}
.mgz-element-tab-position-top.mgz-tabs,
.mgz-element-tab-position-bottom.mgz-tabs {
  flex-direction: column;
}
.mgz-element-tab-position-top.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title > a,
.mgz-element-tab-position-bottom.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title > a {
  margin-right: 5px;
}
.mgz-element-tab-position-top.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title:last-child,
.mgz-element-tab-position-bottom.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title:last-child {
  margin-right: 0;
}
@media (min-width: 768px) {
  .mgz-tabs {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
  .mgz-tabs .mgz-tabs-tab-title {
    text-align: left;
    display: inline-block;
  }
  .mgz-tabs .mgz-tabs-content > .mgz-tabs-tab-title {
    display: none;
  }
  .mgz-element-tab-align-right.mgz-tabs > .mgz-tabs-nav {
    text-align: right;
  }
  .mgz-element-tab-align-center.mgz-tabs > .mgz-tabs-nav {
    text-align: center;
  }
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title > a,
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title > a {
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
  }
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title:last-child > a,
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title:last-child > a {
    margin-right: 0;
  }
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title.mgz-active > a,
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title.mgz-active > a {
    border-bottom-color: transparent;
  }
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content {
    border-top-left-radius: 0;
  }
  .mgz-element-tab-position-top.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title > a {
    margin-top: 0 !important;
  }
  .mgz-element-tab-position-top.mgz-element-tab-align-right.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content {
    border-top-left-radius: 5px;
    border-top-right-radius: 0;
  }
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title > a,
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title > a {
    border-top-right-radius: 0;
    border-top-left-radius: 0;
  }
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title:last-child > a,
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title:last-child > a {
    margin-right: 0;
  }
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title.mgz-active > a,
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title.mgz-active > a {
    border-top-color: transparent;
  }
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content {
    border-bottom-left-radius: 0;
    margin-bottom: -1px;
  }
  .mgz-element-tab-position-bottom.mgz-tabs > .mgz-tabs-nav {
    order: 1;
  }
  .mgz-element-tab-position-bottom.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title > a {
    margin-top: 0 !important;
  }
  .mgz-element-tab-position-bottom.mgz-tabs > .mgz-tabs-content > .mgz-tabs-tab-content {
    margin-top: 0 !important;
  }
  .mgz-element-tab-position-left.mgz-tabs > .mgz-tabs-nav,
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-nav {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .mgz-element-tab-position-left.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title,
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title {
    margin-right: 0;
    display: block;
    width: 100%;
    margin-bottom: 5px;
  }
  .mgz-element-tab-position-left.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title > a,
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title > a {
    margin-right: 0;
  }
  .mgz-element-tab-position-left.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title:first-child > a,
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title:first-child > a {
    margin-top: 0;
  }
  .mgz-element-tab-position-left.mgz-tabs > .mgz-tabs-content,
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-content {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-width: 0;
  }
  .mgz-element-tab-position-left.mgz-tabs > .mgz-tabs-content > .mgz-tabs-tab-content,
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-content > .mgz-tabs-tab-content {
    margin-top: 0;
    height: 100%;
  }
  .mgz-element-tab-position-left .mgz-tabs-tab-content,
  .mgz-element-tab-position-right .mgz-tabs-tab-content {
    margin-top: 0 !important;
  }
  .mgz-element-tab-position-left.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title > a {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }
  .mgz-element-tab-position-left.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title.mgz-active > a {
    border-right-width: 0;
  }
  .mgz-element-tab-position-left.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content {
    border-top-left-radius: 0;
    margin-left: -1px;
  }
  .mgz-element-tab-position-right.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title > a {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }
  .mgz-element-tab-position-right.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title.mgz-active > a {
    border-left-width: 0;
  }
  .mgz-element-tab-position-right.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content {
    border-top-right-radius: 0;
    margin-right: -1px;
  }
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-nav {
    order: 1;
  }
}
.tabs-opener {
  height: 50px;
  width: 50px;
  position: absolute;
  right: 0;
  top: 0;
  cursor: pointer;
  text-align: center;
  font-size: 20px;
  font-weight: 100;
  display: none;
}
.tabs-opener:before {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
  content: '\e624';
}
.tabs-opener:hover {
  background-color: rgba(0, 0, 0, 0.05);
}
@media (max-width: 767px) {
  .mgz-tabs-content .mgz-tabs-tab-title {
    display: none;
  }
  .mgz-tabs-nav .mgz-tabs-tab-title {
    display: inline-block;
  }
  .mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content.mgz-active {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
  .mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title {
    margin-top: 5px;
  }
  .mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title:first-child {
    margin-top: 0;
  }
  .mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title.mgz-active > a {
    border-bottom-color: transparent;
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
  }
  .mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content.mgz-active {
    border-top-color: transparent;
  }
  .mgz-tabs.tabs-mobile-accordion .mgz-tabs-nav {
    display: none;
  }
  .mgz-tabs.tabs-mobile-accordion .mgz-tabs-content .mgz-tabs-tab-title {
    display: block;
    position: relative;
  }
  .mgz-tabs.tabs-mobile-accordion .mgz-tabs-content .mgz-tabs-tab-title .tabs-opener {
    display: block;
  }
  .mgz-tabs.tabs-mobile-accordion .mgz-tabs-content .mgz-tabs-tab-title.mgz-active .tabs-opener:before {
    content: '\e623';
  }
  .mgz-tabs .mgz-tabs-content > .mgz-tabs-tab-title:first-child {
    margin-top: 0 !important;
  }
  .mgz-tabs .mgz-tabs-content > .mgz-tabs-tab-title > a {
    margin-right: 0 !important;
  }
  .mgz-tabs .mgz-tabs-content > .mgz-tabs-tab-content {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
.mgz-element-text p:first-child {
  margin-top: 0;
}
.mgz-element-text p:last-child {
  margin-bottom: 0;
}
.mgz-btn-style-modern .mgz-btn {
  background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.01) 100%);
  background-image: -o-linear-gradient(top, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.01) 100%);
  background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.01) 100%);
  background-repeat: repeat-x;
}
.mgz-btn-style-gradient .mgz-btn {
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  background-size: 200% 100%;
}
.mgz-btn-style-gradient .mgz-btn:hover {
  background-position: 100% 0;
}
.mgz-btn-style-3d .mgz-btn:hover {
  top: 2px;
}
.mgz-btn-size-xs .mgz-btn {
  font-size: 11px;
  padding: 8px 12px;
}
.mgz-btn-size-sm .mgz-btn {
  font-size: 12px;
  padding: 11px 16px;
}
.mgz-btn-size-md .mgz-btn {
  font-size: 14px;
  padding: 14px 20px;
}
.mgz-btn-size-lg .mgz-btn {
  font-size: 18px;
  padding: 18px 30px;
}
.mgz-btn-size-xl .mgz-btn {
  font-size: 22px;
  padding: 22px 35px;
}
.mgz-element .swatch-option {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}
.mgz-element-single_image .mgz-element-inner {
  font-size: 0;
}
.mgz-single-image-wrapper {
  display: inline-block;
  line-height: 0;
  max-width: 100%;
  font-size: 1.4rem;
  position: relative;
}
.mgz-single-image-wrapper a {
  line-height: 0;
  font-size: 0;
  overflow: hidden;
  display: block;
}
.mgz-single-image-wrapper img {
  border-color: #ebebeb;
}
.mgz-single-image-wrapper.mgz-box-shadow-3d:before,
.mgz-single-image-wrapper.mgz-box-shadow-3d:after {
  -webkit-box-shadow: 0 15px 10px rgba(0, 0, 0, 0.6);
  -moz-box-shadow: 0 15px 10px rgba(0, 0, 0, 0.6);
  box-shadow: 0 15px 10px rgba(0, 0, 0, 0.6);
  -webkit-transform-origin: 0 0;
  -moz-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
  -webkit-transform: skewY(-6deg);
  -moz-transform: skewY(-6deg);
  -ms-transform: skewY(-6deg);
  -o-transform: skewY(-6deg);
  content: "";
  position: absolute;
  left: 5px;
  right: 50%;
  bottom: 8px;
  height: 30%;
  z-index: -1;
}
.mgz-single-image-wrapper.mgz-box-shadow-3d:after {
  left: 50%;
  right: 5px;
  -webkit-transform: skewY(6deg);
  -moz-transform: skewY(6deg);
  -ms-transform: skewY(6deg);
  -o-transform: skewY(6deg);
  -webkit-transform-origin: 100% 0;
  -moz-transform-origin: 100% 0;
  -ms-transform-origin: 100% 0;
  transform-origin: 100% 0;
}
.mgz-single-image-wrapper.mgz-box-outline {
  padding: 5px;
  border: 1px solid #ebebeb;
}
.mgz-single-image-wrapper.mgz-box-outline img {
  border: 1px solid #ebebeb;
}
.mgz-single-image-wrapper.mgz-box-shadow {
  -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}
.mgz-single-image-wrapper.mgz-box-shadow img {
  -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}
.mgz-single-image-wrapper.mgz-box-shadow2 {
  -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  -moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
}
.mgz-single-image-wrapper.mgz-box-shadow2 img {
  -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  -moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
}
.mgz-single-image-wrapper .image-title + .image-description {
  margin-top: 10px;
}
.mgz-single-image-wrapper .image-content {
  padding: 10px 20px;
  text-align: left;
  line-height: initial;
  clear: both;
  z-index: 1;
  position: absolute;
}
.mgz-single-image-wrapper .mgz-flex-position-below .image-content {
  padding: 10px 0;
  position: static;
}
.mgz-single-image-wrapper.item-content-hover .image-content {
  display: none;
}
.mgz-single-image-wrapper.item-content-hover:hover .image-content {
  display: block;
}
.mgz-single-image-wrapper .mgz-image-link {
  cursor: pointer;
}
.mgz-element-gmaps .gm-style-iw-d {
  overflow: visible !important;
  max-height: none !important;
  font-size: 13px;
}
.mgz-element-gmaps .gm-style-iw-c {
  max-height: none !important;
  padding: 10px !important;
}
.mgz-socialicons {
  margin: 0;
  padding: 0;
  list-style: none;
  display: inline-block;
}
.mgz-socialicons:before,
.mgz-socialicons:after {
  content: " ";
  display: table;
  clear: both;
}
.mgz-socialicons li {
  position: relative;
  margin-bottom: 8px;
  float: left;
}
.mgz-socialicons li a {
  float: left;
  margin-right: 8px;
}
.mgz-socialicons li i {
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -ms-transition: all 0.3s;
  -o-transition: all 0.3s;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  width: 32px;
  height: 32px;
  padding: 0;
  display: inline-block;
  position: relative;
  text-align: center;
  text-decoration: none;
  line-height: 32px;
  color: #FFF;
}
.mgz-socialicons li i.mgz-fa-facebook-f {
  background: #3b5998;
}
.mgz-socialicons li i.mgz-fa-twitter {
  background: #00aced;
}
.mgz-socialicons li i.mgz-fa-pinterest-p {
  background: #cb2027;
}
.mgz-socialicons li i.mgz-fa-linkedin-in {
  background: #007bb6;
}
.mgz-socialicons li i.mgz-fa-tumblr {
  background: #32506d;
}
.mgz-socialicons li i.mgz-fa-instagram {
  background: #517fa4;
}
.mgz-socialicons li i.mgz-fa-skype {
  background: #12a5f4;
}
.mgz-socialicons li i.mgz-fa-dribbble {
  background: #ea4c8d;
}
.mgz-socialicons li i.mgz-fa-flickr {
  background: #ff0084;
}
.mgz-socialicons li i.mgz-fa-youtube {
  background: #a82400;
}
.mgz-socialicons li i.mgz-fa-vimeo-v {
  background: #45bbff;
}
.mgz-socialicons li i.mgz-fa-rss {
  background: #ff8a3c;
}
.mgz-socialicons li i.mgz-fa-behance {
  background: #191919;
}
.mgz-socialicons li .mgz-socialicons-follow-button {
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -ms-transition: all 0.3s;
  -o-transition: all 0.3s;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  -webkit-align-self: center;
  -ms-align-self: center;
  align-self: center;
  margin-right: 25px;
  padding: 0 12px;
  color: rgba(0, 0, 0, 0.5);
  background: rgba(0, 0, 0, 0.1);
  font-size: 14px;
  line-height: 1.6em;
}
.mgz-socialicons li .mgz-socialicons-follow-button:hover {
  text-decoration: none;
  color: rgba(0, 0, 0, 0.6);
  background: rgba(0, 0, 0, 0.2);
}
.mgz-socialicons .mgz-socialicons_network_name {
  display: none;
}
.mgz-element-newsletter_form .block.newsletter {
  display: inline-block;
  float: none;
  width: auto;
}
.mgz-element-newsletter_form .action.sr-only {
  position: static;
  width: auto;
  height: 100%;
  margin: 0;
  clip: unset;
  overflow: visible;
}
.mgz-element-newsletter_form .newsletter-title {
  margin: 0 0 20px;
  font-weight: 500;
}
.mgz-element-newsletter_form .newsletter-description {
  margin-bottom: 10px;
}
.magezon-builder .block-search {
  margin: 0;
  padding: 0;
  max-width: 100%;
  float: none;
  display: inline-block;
}
.mgz-element-search_form .block-search {
  margin: 0;
}
@media only screen and (max-width: 767px) {
  .mgz-element-search_form-wrapper {
    position: static;
  }
  .mgz-element-search_form-wrapper > .mgz-element-inner {
    position: static;
  }
  .mgz-element-search_form {
    position: static;
  }
  .mgz-element-search_form > .mgz-element-inner {
    position: static;
  }
  .mgz-element-search_form .minisearch.active .control {
    display: block;
  }
  .mgz-element-search_form .block-search .control {
    border: 0;
    width: 100%;
    left: 0;
    right: 0;
    margin: 0;
    bottom: -15px;
    position: absolute;
    background: #FFF;
  }
  .mgz-element-search_form .block-search .form.active .control input {
    position: static;
  }
}
.mgz-carousel-hidden {
  background: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/images/loader.gif') no-repeat center 25%;
}
.mgz-carousel:before,
.mgz-carousel:after {
  content: " ";
  display: table;
  clear: both;
}
.mgz-carousel.owl-carousel.owl-loaded .owl-stage-outer,
.mgz-carousel.owl-carousel.owl-loaded .owl-nav,
.mgz-carousel.owl-carousel.owl-loaded .owl-dots {
  opacity: 1;
}
.mgz-carousel.owl-carousel.owl-loaded.mgz-carousel-hidden .owl-stage-outer,
.mgz-carousel.owl-carousel.owl-loaded.mgz-carousel-hidden .owl-nav,
.mgz-carousel.owl-carousel.owl-loaded.mgz-carousel-hidden .owl-dots {
  opacity: 0;
}
.mgz-carousel .owl-item {
  position: relative;
  background-repeat: no-repeat;
  background-position: center top;
}
.mgz-carousel .owl-item img {
  max-width: 100%;
}
.mgz-carousel .mgz-carousel-item-inner {
  position: relative;
}
.mgz-carousel a + .item-content {
  cursor: pointer;
}
.mgz-carousel .item-content {
  position: absolute;
  text-align: center;
  color: #333;
  z-index: 1;
  font-size: 14px;
}
.mgz-carousel .item-title {
  font-size: 16px;
}
.mgz-carousel .owl-nav {
  margin: 0;
}
.mgz-carousel .owl-nav [class*=owl-] {
  -webkit-transition: opacity 300ms ease-in-out, background-color 300ms ease-in-out, color 300ms ease-in-out;
  -moz-transition: opacity 300ms ease-in-out, background-color 300ms ease-in-out, color 300ms ease-in-out;
  -ms-transition: opacity 300ms ease-in-out, background-color 300ms ease-in-out, color 300ms ease-in-out;
  -o-transition: opacity 300ms ease-in-out, background-color 300ms ease-in-out, color 300ms ease-in-out;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  margin: 0;
  padding: 0;
  display: block;
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  cursor: pointer;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1;
  display: inline-block;
}
.mgz-carousel .owl-nav [class*=owl-]:hover {
  background: rgba(0, 0, 0, 0.8);
}
.mgz-carousel .owl-nav .owl-next {
  margin-left: 5px;
}
.mgz-carousel .owl-dots {
  margin-top: 10px;
  width: 100%;
  pointer-events: none;
}
.mgz-carousel .owl-dots .owl-dot {
  pointer-events: all;
}
.mgz-carousel .owl-dots .owl-dot span {
  -webkit-transition: width 300ms ease-in-out, height 300ms ease-in-out, margin 300ms ease-in-out, background-color 300ms ease-in-out;
  -moz-transition: width 300ms ease-in-out, height 300ms ease-in-out, margin 300ms ease-in-out, background-color 300ms ease-in-out;
  -ms-transition: width 300ms ease-in-out, height 300ms ease-in-out, margin 300ms ease-in-out, background-color 300ms ease-in-out;
  -o-transition: width 300ms ease-in-out, height 300ms ease-in-out, margin 300ms ease-in-out, background-color 300ms ease-in-out;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  border-radius: 20px;
  display: block;
  width: 10px;
  height: 10px;
  margin: 8px;
  background: rgba(0, 0, 0, 0.6);
}
.mgz-carousel .owl-dots .owl-dot:hover span,
.mgz-carousel .owl-dots .owl-dot.active span {
  background: rgba(0, 0, 0, 0.8);
}
.mgz-carousel .mgz-carousel-magnific {
  cursor: pointer;
}
.mgz-carousel .mgz-carousel-multirow .product-item-info {
  margin-bottom: 15px;
}
.mgz-carousel .mgz-carousel-multirow .product-item-info:last-child {
  margin-bottom: 0;
}
.mgz-carousel .product-item {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 100%;
}
.mgz-carousel .product-item .product-item-info {
  width: 100%;
}
.mgz-carousel.mgz-carousel-equal-height .owl-stage {
  display: flex;
}
.mgz-carousel.mgz-carousel-equal-height .owl-item {
  display: flex;
  flex: 1 0 auto;
}
.mgz-carousel-dot-inside .owl-dots {
  position: absolute;
  bottom: 15px;
  margin: 0;
}
.mgz-carousel-dot-inside .owl-dots .owl-dot {
  bottom: 15px;
}
.mgz-carousel-dot-inside .owl-dots .owl-dot span {
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  background: #FFF;
}
.mgz-carousel-dot-inside .owl-dots .owl-dot:hover span,
.mgz-carousel-dot-inside .owl-dots .owl-dot.active span {
  background: #FFF;
  width: 16px;
  height: 16px;
  margin: 5px;
}
.mgz-carousel-dot-inside .owl-dots .owl-dot:hover:not(.active) span {
  background: #FFF;
}
.mgz-carousel-nav-position-top_left .owl-nav,
.mgz-carousel-nav-position-top_right .owl-nav {
  position: absolute;
}
.mgz-carousel-nav-position-top_left.mgz-carousel-nav-size-mini .owl-nav,
.mgz-carousel-nav-position-top_right.mgz-carousel-nav-size-mini .owl-nav {
  top: -40px;
}
.mgz-carousel-nav-position-top_left.mgz-carousel-nav-size-small .owl-nav,
.mgz-carousel-nav-position-top_right.mgz-carousel-nav-size-small .owl-nav {
  top: -50px;
}
.mgz-carousel-nav-position-top_left.mgz-carousel-nav-size-normal .owl-nav,
.mgz-carousel-nav-position-top_right.mgz-carousel-nav-size-normal .owl-nav {
  top: -60px;
}
.mgz-carousel-nav-position-top_left.mgz-carousel-nav-size-large .owl-nav,
.mgz-carousel-nav-position-top_right.mgz-carousel-nav-size-large .owl-nav {
  top: -70px;
}
.mgz-carousel-nav-position-top_left .owl-nav {
  left: 0;
}
.mgz-carousel-nav-position-top_right .owl-nav {
  right: 0;
}
.mgz-carousel-nav-position-bottom_left .owl-nav {
  text-align: left;
  margin-top: 10px;
}
.mgz-carousel-nav-position-bottom_right .owl-nav {
  text-align: right;
  margin-top: 10px;
}
.mgz-carousel-nav-position-bottom_center .owl-nav {
  margin-top: 10px;
  text-align: center;
}
.mgz-carousel-nav-position-bottom_center .owl-nav .owl-prev {
  margin-right: 5px;
}
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-mini .owl-prev,
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-mini .owl-next {
  top: -40px;
}
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-small .owl-prev,
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-small .owl-next {
  top: -50px;
}
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-normal .owl-prev,
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-normal .owl-next {
  top: -60px;
}
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-large .owl-prev,
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-large .owl-next {
  top: -70px;
}
.mgz-carousel-nav-position-top_split .owl-nav [class*=owl-] {
  position: absolute;
}
.mgz-carousel-nav-position-top_split .owl-nav .owl-prev {
  left: 0;
}
.mgz-carousel-nav-position-top_split .owl-nav .owl-next {
  right: 0;
}
.mgz-carousel-nav-position-center_split .owl-nav [class*=owl-] {
  position: absolute;
  opacity: 0;
}
.mgz-carousel-nav-position-center_split .owl-nav .owl-prev {
  -webkit-transform: translate(0, -50%);
  -moz-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  -o-transform: translate(0, -50%);
  position: absolute;
  top: 50%;
  left: 0;
}
.mgz-carousel-nav-position-center_split .owl-nav .owl-next {
  -webkit-transform: translate(0, -50%);
  -moz-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  -o-transform: translate(0, -50%);
  position: absolute;
  top: 50%;
  right: 0;
}
.mgz-carousel-nav-position-center_split:hover .owl-nav [class*=owl-] {
  opacity: 1;
  filter: alpha(opacity=100);
}
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-mini .owl-prev,
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-mini .owl-next {
  bottom: -40px;
}
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-small .owl-prev,
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-small .owl-next {
  bottom: -50px;
}
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-normal .owl-prev,
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-normal .owl-next {
  bottom: -60px;
}
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-large .owl-prev,
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-large .owl-next {
  bottom: -70px;
}
.mgz-carousel-nav-position-bottom_split .owl-nav [class*=owl-] {
  position: absolute;
}
.mgz-carousel-nav-position-bottom_split .owl-nav .owl-prev {
  left: 0;
}
.mgz-carousel-nav-position-bottom_split .owl-nav .owl-next {
  right: 0;
}
.mgz-carousel-nav-size-mini .owl-nav [class*=owl-] {
  width: 20px;
  height: 20px;
  line-height: 20px;
}
.mgz-carousel-nav-size-small .owl-nav [class*=owl-] {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.mgz-carousel-nav-size-normal .owl-nav [class*=owl-] {
  width: 40px;
  height: 40px;
  line-height: 40px;
}
.mgz-carousel-nav-size-large .owl-nav [class*=owl-] {
  width: 50px;
  height: 50px;
  line-height: 50px;
}
.mgz-product-listing .product-image-wrapper {
  height: auto;
  padding: 0 !important;
}
.mgz-product-listing .product-image-wrapper .product-image-photo {
  position: static;
}
.magezon-builder .mgz-element-sidebar .sidebar-main,
.magezon-builder .mgz-element-sidebar .sidebar-additional {
  width: 100%;
  padding: 0;
}
.magezon-builder .mgz-element-sidebar .filter-options-item {
  width: 100%;
  border-bottom: 1px solid #cccccc;
}
.magezon-builder .mgz-element-sidebar .filter-options-title {
  padding: 10px 40px 0 10px;
}
@media (min-width: 768px) {
  .magezon-builder .mgz-element-sidebar .filter-options-item:before,
  .magezon-builder .mgz-element-sidebar .filter-options-item:after {
    display: none !important;
    border: 0 !important;
  }
  .magezon-builder .mgz-element-sidebar .filter-options-content {
    position: static;
    border: 0;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    width: 100%;
  }
}
.mgz-countdown {
  -webkit-align-self: center;
  -ms-align-self: center;
  align-self: center;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  padding: 30px;
}
.mgz-countdown .mgz-countdown-heading-wrapper {
  text-align: left;
}
.mgz-countdown .mgz-countdown-subheading {
  font-size: 1.4rem;
}
.mgz-countdown .mgz-countdown-heading {
  font-size: 18px;
  font-weight: 700;
}
.mgz-countdown .mgz-countdown-number {
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  position: relative;
  display: inline-block;
}
.mgz-countdown .mgz-countdown-counter-wrapper {
  -webkit-flex-grow: 1;
  -ms-flex-grow: 1;
  flex-grow: 1;
}
.mgz-countdown .mgz-countdown-unit {
  position: relative;
  padding: 10px;
}
.mgz-countdown .mgz-countdown-unit-number {
  font-size: 24px;
  line-height: 1;
}
.mgz-countdown .mgz-countdown-unit-label {
  font-size: 1.4rem;
}
.mgz-countdown .mgz-countdown-unit-label {
  min-width: 80px;
}
.mgz-countdown .svg-container {
  display: inline-block;
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  padding-bottom: 100%;
}
.mgz-countdown .svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.mgz-countdown.mgz-countdown-text-inline .mgz-countdown-unit-label {
  min-width: auto;
  display: inline-block;
}
.mgz-countdown .mgz-countdown-link-wrapper {
  padding: 10px;
}
.mgz-countdown-separator-colon .mgz-countdown-number:after {
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  content: ":";
  font-size: 30px;
  position: absolute;
  right: 0px;
  top: 50%;
  z-index: 10;
  display: inline-block;
}
.mgz-countdown-separator-colon .mgz-countdown-number:last-child:after {
  display: none;
}
.mgz-countdown-separator-line .mgz-countdown-number:after {
  content: "";
  display: inline-block;
  top: 0px;
  bottom: 0px;
  z-index: 10;
  border-right: 1px solid #cccccc;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
  left: auto;
}
.mgz-countdown-separator-line .mgz-countdown-number:last-child:after {
  display: none;
}
.mgz-countdown-circle .mgz-countdown-unit {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 11;
}
@media (max-width: 767px) {
  .mgz-countdown {
    display: block;
    padding: 10px;
  }
  .mgz-countdown .mgz-countdown-counter-wrapper {
    margin-top: 20px;
    margin-bottom: 10px;
  }
  .mgz-countdown .mgz-countdown-heading-wrapper,
  .mgz-countdown .mgz-countdown-link-wrapper {
    text-align: center;
  }
  .mgz-countdown.mgz-countdown-text-inline .mgz-countdown-unit-label {
    min-width: 80px;
    display: block;
  }
  .mgz-countdown.mgz-countdown-separator-colon .mgz-countdown-number:after {
    display: none;
  }
  .mgz-countdown .mgz-countdown-unit {
    padding: 10px !important;
  }
}
.page-layout-1column-fullwidth #maincontent {
  max-width: 100%;
  margin: 0;
  padding: 0;
}
.page-layout-1column,
.page-layout-2columns-left,
.page-layout-2columns-right,
.page-layout-1column-fullwidth {
  overflow-x: hidden;
}
.magezon-builder {
  position: relative;
  z-index: 2;
}
.magezon-builder:before,
.magezon-builder:after {
  content: " ";
  display: table;
  clear: both;
}
.magezon-builder * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.magezon-builder iframe,
.magezon-builder video,
.magezon-builder img {
  max-width: 100%;
}
.magezon-builder p {
  margin-top: 0;
}
.mgz-block-heading {
  margin-bottom: 10px;
  padding-bottom: 10px;
  position: relative;
  text-align: center;
}
.mgz-block-heading.mgz-block-heading-line:before {
  content: '';
  display: block;
  height: 1px;
  width: 100%;
  background: #cecece;
  position: absolute;
  top: 40%;
  z-index: 0;
}
.mgz-block-heading.mgz-block-heading-line .title {
  display: inline-block;
  background: #FFF;
  padding: 0;
  position: relative;
}
.mgz-block-heading.mgz-block-heading-line h2 {
  font-weight: 500;
}
.mgz-block-heading.mgz-block-heading-line-position-bottom:before {
  bottom: 0;
  top: auto;
}
.mgz-block-heading.mgz-block-heading-align-center {
  text-align: center;
}
.mgz-block-heading.mgz-block-heading-align-center .title {
  padding: 0 10px;
}
.mgz-block-heading.mgz-block-heading-align-left {
  text-align: left;
}
.mgz-block-heading.mgz-block-heading-align-left .title {
  padding-right: 10px;
}
.mgz-block-heading.mgz-block-heading-align-right {
  text-align: right;
}
.mgz-block-heading.mgz-block-heading-align-right .title {
  padding-left: 10px;
}
.mgz-block-heading .title {
  margin: 0;
  font-weight: 400;
}
.mgz-block-heading .info {
  margin: 0;
}
.mgz_fit {
  width: 1%;
}
.magezon-builder-btn {
  background: #007dbd;
  border-color: #007dbd;
  color: #fff;
  position: relative;
  text-align: left;
  font-weight: 500;
  line-height: 1.4;
  padding: 0.6rem 1em 0.6rem 35px;
  display: inline-block;
  margin-bottom: 10px;
}
.magezon-builder-btn:hover {
  color: #FFF;
  text-decoration: none;
  background: #0073ae;
}
.magezon-builder-btn i {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
  font-size: 25px;
  position: absolute;
  left: 15px;
}
table .magezon-builder .mgz-container {
  width: 100%;
}
.mgz-condition-html .rule-tree ul {
  padding-left: 16px;
}
.mgz-builder-single_image-icon {
  background-image: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/images/icons/element-icon-single-image.svg') !important;
}
.item.product .magezon-builder .mgz-container {
  width: 100%;
}
.mgz-builder-wrapper._disabled > .admin__field-control > button,
.mgz-builder-wrapper._disabled > .admin__field-control .mgz-builder {
  cursor: default;
  opacity: 0.5;
  pointer-events: none;
}
.mgz-overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
}
.mgz-absolute-link {
  position: absolute;
  z-index: 11;
  width: 100%;
  height: 100%;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
}
.admin__form-loading-mask[data-component="linkbuilder_form.linkbuilder_form"] {
  display: none;
}
.mgz-image-switch-after {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
}
.mgz-image-switch:hover .mgz-image-switch-before {
  opacity: 0;
}
.mgz-image-switch:hover .mgz-image-switch-after {
  opacity: 1;
}
@media all and (min-width: 768px) {
  html {
    height: auto !important;
  }
}.navigation {
  font-weight: normal !important;
}
.navigation > .ninjamenus.ninjamenus-desktop {
  margin: 0 20px;
}
.nav-item {
  position: relative;
  text-align: left;
}
.nav-item.active > a {
  color: #f55856;
}
.nav-item > a {
  -webkit-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  -moz-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  -ms-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  -o-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  color: #333;
  font-weight: 400;
  line-height: 35px;
  text-decoration: none;
  display: block;
  position: relative;
  padding: 0 15px;
}
.nav-item > a:hover {
  color: #f55856;
}
.nav-item > a:hover .title-wrapper .label {
  background-color: #555;
}
.nav-item > a:hover .title-wrapper .label:before {
  border-top-color: #555;
}
.nav-item > a > .opener {
  width: 35px;
  height: 35px;
}
.nav-item > a .label {
  -webkit-transition: color 0.45s ease-in-out, background-color 0.45s ease-in-out;
  -moz-transition: color 0.45s ease-in-out, background-color 0.45s ease-in-out;
  -ms-transition: color 0.45s ease-in-out, background-color 0.45s ease-in-out;
  -o-transition: color 0.45s ease-in-out, background-color 0.45s ease-in-out;
  padding: 2px 4px;
  font-size: 11px;
  font-weight: 400;
  line-height: 18px;
  background-color: #ed143d;
  color: #fff;
}
.nav-item > a .item-icon {
  line-height: inherit;
}
.nav-item > a .item-icon + span,
.nav-item > a span + .item-icon {
  margin-left: 2px;
}
.nav-item > a span.title {
  display: inline-block;
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
}
.nav-item > a > span {
  display: inline-block;
}
.nav-item .caret {
  line-height: inherit;
  border: 0;
  height: auto;
}
.nav-item .item-submenu {
  position: absolute;
  display: none;
  -webkit-animation-duration: 0.2s;
  animation-duration: 0.2s;
  z-index: 11;
  width: 100%;
  height: auto;
}
.nav-item.ninjamenus-hover > .item-submenu {
  display: block;
}
.magezon-builder > .nav-item > a {
  line-height: 50px;
  font-weight: 600;
}
.magezon-builder > .nav-item > .opener {
  height: 50px;
  width: 50px;
}
.subtitle {
  display: block !important;
  font-size: 11px;
  line-height: 13px;
  font-weight: 400;
  color: #999;
  white-space: normal;
  margin-top: -10px;
}
.label-top_left > a .label {
  position: absolute;
  top: -10px;
  left: 10px;
}
.label-top_left > a .label:before {
  -webkit-transition: border-color 450ms ease-in-out;
  -moz-transition: border-color 450ms ease-in-out;
  -ms-transition: border-color 450ms ease-in-out;
  -o-transition: border-color 450ms ease-in-out;
  position: absolute;
  left: 6px;
  top: 22px;
  width: 0;
  height: 0;
  content: "";
  border-style: solid;
  border-width: 4px;
  border-color: transparent;
  border-top-color: #ed143d;
}
.label-top_right > a .label {
  position: absolute;
  top: -10px;
  right: 10px;
}
.label-top_right > a .label:before {
  -webkit-transition: border-color 450ms ease-in-out;
  -moz-transition: border-color 450ms ease-in-out;
  -ms-transition: border-color 450ms ease-in-out;
  -o-transition: border-color 450ms ease-in-out;
  position: absolute;
  right: 6px;
  top: 22px;
  width: 0;
  height: 0;
  content: "";
  border-style: solid;
  border-width: 4px;
  border-color: transparent;
  border-top-color: #ed143d;
}
.label-left > a, .label-right > a  {
  justify-content: flex-start;
  display: flex;
  align-items: flex-end;
}
.ninjamenus-hamburger-trigger {
  line-height: 50px;
  background: #f2f2f2;
  display: none;
}
.ninjamenus-hamburger-trigger .trigger-icon {
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  margin-right: 5px;
}
.ninjamenus-hamburger-trigger .trigger-icon .menu-trigger-inner {
  -webkit-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  -moz-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  -ms-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  -o-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
}
.ninjamenus-hamburger-trigger .trigger-icon .line {
  display: block;
  background-color: #333333;
  height: 3px;
  margin-bottom: 2px;
}
.ninjamenus-hamburger-trigger .menu-trigger-inner {
  display: inline-block;
  padding: 0 15px;
  cursor: pointer;
}
.ninjamenus-hamburger-trigger .menu-trigger-inner:hover {
  background-color: #f55856;
  color: #ffffff;
}
.ninjamenus-hamburger-trigger .menu-trigger-inner:hover .line {
  background: #FFF;
}
.ninjamenus {
  position: relative;
}
.ninjamenus:before,
.ninjamenus:after {
  content: " ";
  display: table;
  clear: both;
}
.ninjamenus .ninjamenus-toggle-active > .opener:before {
  content: '\e60d';
}
.ninjamenus .level0 > a > span.title {
  font-weight: inherit;
}
.ninjamenus .level0 > a > span.title-wrapper .title {
  font-weight: inherit;
}
.ninjamenus .opener {
  position: absolute;
  right: 0;
  top: 0;
  cursor: pointer;
  text-align: center;
  font-size: 20px;
  font-weight: 100;
  display: none;
}
.ninjamenus .opener:before {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
  font-family: 'Magezon-Icons' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: '\e61c';
}
.ninjamenus .opener:hover {
  background-color: rgba(0, 0, 0, 0.05);
}
.ninjamenus .drilldown-opener {
  position: absolute;
  right: 0;
  top: 0;
  cursor: pointer;
  text-align: center;
  font-size: 20px;
  font-weight: 100;
  display: none;
}
.ninjamenus .drilldown-opener:before {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
  font-family: 'Magezon-Icons' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: '\e61c';
}
.ninjamenus .item-submenu {
  padding: 10px;
}
.ninjamenus .drilldown-opener:hover {
  background-color: rgba(0, 0, 0, 0.05);
}
.ninjamenus .nav-item > .drilldown-opener:before {
  content: '\e60a';
}
.ninjamenus .ninjamenus-drilldown-back > .drilldown-opener:before {
  content: '\e617';
}
.ninjamenus .links {
  margin: 0;
  padding: 10px 15px;
  border-bottom: 1px solid #EEE;
}
.ninjamenus .links li {
  position: relative;
  margin: 0;
  display: inline-block;
}
.ninjamenus .links li > a {
  line-height: 35px;
  padding-left: 15px;
  padding-right: 15px;
  display: block;
}
.ninjamenus .links li > a:hover {
  background: #f55856;
  text-decoration: none;
  color: #fff;
}
.ninjamenus a {
  color: #333;
  font-weight: 400;
}
.ninjamenus .block.tabspro-block {
  margin: 0;
}
.ninjamenus .form.contact {
  width: 100% !important;
}
.ninjamenus.ninjamenus-vertical > .magezon-builder > .nav-item > a .caret {
  -webkit-opacity: 0.8;
  -moz-opacity: 0.8;
  opacity: 0.8;
  float: right;
  line-height: inherit;
}
.ninjamenus.ninjamenus-vertical > .magezon-builder > .nav-item > a .label {
  right: auto;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-horizontal > .magezon-builder > .nav-item {
  float: left;
  margin: 0;
}
.ninjamenus.ninjamenus-desktop .ninjamenus-right {
  float: right !important;
}
.ninjamenus.ninjamenus-desktop .item-submenu {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  -moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  width: 200px;
}
.ninjamenus.ninjamenus-desktop .item-submenu:before,
.ninjamenus.ninjamenus-desktop .item-submenu:after {
  content: " ";
  display: table;
  clear: both;
}
.ninjamenus.ninjamenus-desktop .mega > .item-submenu {
  background: #FFF;
}
.ninjamenus.ninjamenus-desktop .ninjamenus-hide-desktop {
  display: none;
}
.ninjamenus.ninjamenus-desktop .left_edge_menu_bar,
.ninjamenus.ninjamenus-desktop .right_edge_menu_bar,
.ninjamenus.ninjamenus-desktop .left_vertical_full_height,
.ninjamenus.ninjamenus-desktop .right_vertical_full_height {
  position: static;
}
.ninjamenus.ninjamenus-desktop .left_edge_menu_bar > .item-submenu {
  left: 0;
}
.ninjamenus.ninjamenus-desktop .right_edge_menu_bar > .item-submenu {
  right: 0;
}
.ninjamenus.ninjamenus-desktop .left_vertical_full_height > .item-submenu {
  right: 100%;
  top: 0;
}
.ninjamenus.ninjamenus-desktop .right_vertical_full_height > .item-submenu {
  left: 100%;
  top: 0;
}
.ninjamenus.ninjamenus-desktop .left_edge_parent_item > .item-submenu {
  left: 0;
}
.ninjamenus.ninjamenus-desktop .right_edge_parent_item > .item-submenu {
  right: 0;
}
.ninjamenus.ninjamenus-desktop .level0 .left_edge_parent_item > .item-submenu {
  left: 80%;
  top: 0;
}
.ninjamenus.ninjamenus-desktop .level0 .right_edge_parent_item > .item-submenu {
  right: 80%;
  top: 0;
}
.ninjamenus.ninjamenus-desktop .stack > a .caret {
  display: none;
}
.ninjamenus.ninjamenus-desktop .stack > .item-submenu {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  position: static;
  display: block;
  width: 100%;
  padding: 0;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown {
  width: 100%;
  max-width: 100%;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion.label-top_right > a .label,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown.label-top_right > a .label {
  right: auto;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .level0,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .level0 {
  border-bottom: 1px solid #e6e6e6;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .level0 > a:hover,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .level0 > a:hover {
  background: transparent;
  color: #333;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .nav-item,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .nav-item {
  position: relative !important;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .item-submenu,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .item-submenu {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  position: static;
  width: 100%;
  max-width: 100%;
  padding: 0;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .caret,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .caret {
  display: none;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .mega > .opener,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .mega > .opener {
  display: block;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .nav-item > a,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .nav-item > a {
  line-height: 50px;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .nav-item > .opener,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .nav-item > .opener {
  height: 50px;
  width: 50px;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown {
  overflow: hidden;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .drilldown-opener {
  display: block;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .stack > .drilldown-opener {
  display: none;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-vertical .nav-item.level0:hover > a,
.ninjamenus.ninjamenus-desktop.ninjamenus-horizontal .nav-item.level0:hover > a {
  background-color: #f55856;
  color: #FFF;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-vertical .nav-item.level0.active > a,
.ninjamenus.ninjamenus-desktop.ninjamenus-horizontal .nav-item.level0.active > a {
  background-color: #333;
  color: #FFF;
}
.ninjamenus.ninjamenus-mobile {
  overflow-x: hidden;
}
.ninjamenus.ninjamenus-mobile.ninjamenus-hamburger-menu,
.ninjamenus.ninjamenus-mobile .ninjamenus-hide-mobile {
  display: none;
}
.ninjamenus.ninjamenus-mobile .opener {
  display: block;
}
.ninjamenus.ninjamenus-mobile .caret {
  display: none;
}
.ninjamenus.ninjamenus-mobile .item-submenu {
  max-width: 100% !important;
  position: relative;
}
.ninjamenus.ninjamenus-mobile .nav-item > a {
  line-height: 50px;
}
.ninjamenus.ninjamenus-mobile .nav-item > .opener {
  height: 50px;
  width: 50px;
}
.ninjamenus.ninjamenus-mobile .level0.label-top_right > a .label {
  right: auto;
}
.ninjamenus.ninjamenus-mobile .level0 > a .title {
  margin: 0 !important;
}
.ninjamenus-hamburger-active .menu-trigger-inner {
  background-color: #f55856;
  color: #ffffff;
}
.ninjamenus-hamburger-active .menu-trigger-inner .line {
  background: #FFF;
}
.ninjamenus-hamburger-active .ninjamenus-hamburger-menu {
  display: block !important;
}
.ninjamenus-widget .ninjamenus-vertical,
.ninjamenus-widget .ninjamenus-accordion,
.ninjamenus-widget .ninjamenus-drilldown {
  border: 1px solid #6e716e;
}
.cms-content .block.ninjamenus-widget > .block-title,
.block.ninjamenus-widget > .block-title {
  text-transform: uppercase;
  padding: 10px;
  background: #6e716e;
  color: #fff;
  margin: 0;
  border: 1px solid #6e716e;
}
.cms-content .block.ninjamenus-widget > .block-title > strong,
.block.ninjamenus-widget > .block-title > strong {
  display: block;
}
.cms-content .block.ninjamenus-widget > .ninjamenus,
.block.ninjamenus-widget > .ninjamenus {
  background: #f8f8f8;
}
.cms-content .block.ninjamenus-widget > .ninjamenus.ninjamenus-drilldown,
.block.ninjamenus-widget > .ninjamenus.ninjamenus-drilldown {
  border: 1px solid #6e716e;
}
.scroll-to-fixed-fixed .magezon-builder > .nav-item.label-top_left > a .label,
.scroll-to-fixed-fixed .magezon-builder > .nav-item.label-top_right > a .label {
  display: none;
}
.scroll-to-fixed-fixed .ninjamenus-hide-sticky {
  display: none !important;
}
.ninjamenus-lazy-blur {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  -webkit-transition: 0.3s filter linear;
  -moz-transition: 0.3s filter linear;
  -ms-transition: 0.3s filter linear;
  -o-transition: 0.3s filter linear;
  -webkit-filter: blur(5px);
  filter: blur(5px);
}
.ninjamenus-lazy-blur .ninjamenus-lazy-loaded {
  -webkit-filter: blur(0px);
  filter: blur(0px);
  image-rendering: initial;
}
.ninjamenus-drilldown-back {
  line-height: 50px;
  text-align: center;
  background: #f0f0f0;
  border-bottom: 1px solid #e6e6e6;
  text-transform: uppercase;
  font-weight: 600;
  font-size: 18px;
  display: none;
}
.ninjamenus-drilldown-back > .drilldown-opener {
  height: 50px;
  width: 50px;
  left: 0;
  display: block;
}
.drilldown-root > div > .ninjamenus-drilldown-back {
  display: block;
}
.ninjamenus-tablet {
  position: static !important;
}
.ninjamenus-tablet .item-submenu {
  left: 0 !important;
  max-width: 100%;
}
.ninjamenus-desktop.ninjamenus-top .level0 {
  margin: 0;
  display: inline-block;
}
.item-autolist .nav-item.stack > a{
  font-weight: 900;
}
.ninjamenus-desktop .item-autolist > .item-submenu > .nav-item{
  float: left;
}
.ninjamenus-desktop .item-autolist-col2 > .item-submenu > .nav-item{
  width: 50%;
}
.ninjamenus-desktop .item-autolist-col3 > .item-submenu > .nav-item{
  width: 33.33333333%;
}
.ninjamenus-desktop .item-autolist-col4 > .item-submenu > .nav-item{
  width: 25%;
}
.ninjamenus-desktop .item-autolist-col5 > .item-submenu > .nav-item{
  width: 20%;
}
.ninjamenus-desktop .item-autolist-col6 > .item-submenu > .nav-item{
  width: 16.66666667%;
}
.ninjamenus-desktop .item-autolist-col2 > .item-submenu > .nav-item:nth-child(2n+1),
.ninjamenus-desktop .item-autolist-col3 > .item-submenu > .nav-item:nth-child(3n+1),
.ninjamenus-desktop .item-autolist-col4 > .item-submenu > .nav-item:nth-child(4n+1),
.ninjamenus-desktop .item-autolist-col4 > .item-submenu > .nav-item:nth-child(5n+1),
.ninjamenus-desktop .item-autolist-col3 > .item-submenu > .nav-item:nth-child(6n+1) {
  clear: left;
}
.nav-item-static {
  position: static !important;
}

.nav-item.nav-item-static > .item-submenu{
  width: 100vw !important;
}

.ninjamenus.ninjamenus-mobile .nav-item-static{
  position: relative !important;
}
.ninjamenus.ninjamenus-mobile  .nav-item.nav-item-static > .item-submenu{
  width: 100% !important;
}
.ninjamenus-top-overlay {
    position: absolute;
    left: 0;
    width: 100%;
    background: #0e0e0eb0;
    height: 100%;
    z-index: 10;
    display: none;
}.fotorama-stretch,.fotorama-focus-overlay:after,.fotorama__stage__shaft,.fotorama__stage__frame,.fotorama__html,.fotorama__video iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.fotorama-grab-cursor,.fotorama__wrap .fotorama__grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.fotorama-grabbing-cursor,.fotorama__grabbing *{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.fotorama-gpu,.fotorama--fullscreen,.fotorama__caption,.fotorama__wrap--css3 .fotorama__spinner,.fotorama__wrap--css3 .fotorama__stage,.fotorama__wrap--css3 .fotorama__nav,.fotorama__wrap--css3 .fotorama__stage__frame,.fotorama__wrap--css3 .fotorama__html,.fotorama__stage:before,.fotorama__nav:before,.fotorama__stage:after,.fotorama__nav:after,.fotorama--fullscreen .fotorama__stage__frame .fotorama__img--full{transform:translateZ(0)}.fotorama-focus,.fotorama__nav__frame,.fotorama__fullscreen-icon:focus,.fotorama__zoom-out:focus,.fotorama__zoom-in:focus{outline:0}.fotorama-focus-overlay:after{background-color:#006bb4;border-radius:inherit;content:''}.fotorama-transform-disabled,.fotorama__wrap--video .fotorama__stage__shaft,.fotorama__wrap--video .fotorama__stage,.fotorama__wrap--video .fotorama__stage__frame--video,.fotorama__wrap--video .fotorama__stage__frame--video .fotorama__img,.fotorama__wrap--video .fotorama__stage__frame--video .fotorama__html{transform:none !important}.fotorama-transition-for-slide,.fotorama__wrap--css3 .fotorama__stage__shaft,.fotorama__wrap--css3 .fotorama__nav__shaft,.fotorama__wrap--css3 .fotorama__thumb-border{transition-duration:0ms;transition-property:transform,width;transition-timing-function:cubic-bezier(.1, 0, .25, 1)}.fotorama-no-select,.fotorama__wrap,.fotorama__no-select,.fotorama__arr,.fotorama__fullscreen-icon,.fotorama__video-close{user-select:none}.fotorama-select,.fotorama__select{user-select:text}.fotorama-empty-bg{background:url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=)}.fotorama-auto-margin,.fotorama__nav,.fotorama__nav__frame{margin:auto;padding:0}.fotorama-inline-block,.fotorama__nav__shaft,.fotorama__nav__frame,.fotorama__caption__wrap{*display:inline;*zoom:1;-moz-box-orient:vertical;display:-moz-inline-box;display:inline-block;vertical-align:middle}.fotorama-content-box,.fotorama__nav__frame{box-sizing:content-box}.fotorama-border-box,.fotorama__thumb-border,.fotorama__caption__wrap,.fotorama__arr{box-sizing:border-box}.fotorama-hidden,.fotorama--hidden,.fotorama__load{left:-99999px;position:absolute;top:-99999px;z-index:-1000}.fotorama-visible{left:auto;opacity:1;position:relative;top:auto;z-index:auto}.fotorama-no-tap,.fotorama__stage__shaft,.fotorama__stage__frame,.fotorama__nav,.fotorama__nav__shaft,.fotorama__nav__frame,.fotorama__arr,.fotorama__fullscreen-icon,.fotorama__video-close{-webkit-tap-highlight-color:rgba(0,0,0,0)}.transitionDuration{transition-duration:333ms}.transitionDurationZero{transition-duration:0ms}.fotorama-sprite,.fotorama__fullscreen .fotorama__zoom-out,.fotorama__fullscreen .fotorama__zoom-in,.fotorama__arr .fotorama__arr__arr,.fotorama__fullscreen-icon,.fotorama__video-play,.fotorama__thumb--icon,.fotorama__video-close{background-image:url('../../frontend/Creativestyle/theme-kma/pl_PL/mage/gallery/gallery.png');background-repeat:no-repeat}@media print{.fotorama-print-background,.fotorama-sprite,.fotorama__thumb-border,.fotorama__fullscreen .fotorama__zoom-out,.fotorama__fullscreen .fotorama__zoom-in,.fotorama__arr .fotorama__arr__arr,.fotorama__fullscreen-icon,.fotorama__video-play,.fotorama__thumb--icon,.fotorama__video-close{background:none !important}}.fotorama__fullscreen-icon:focus,.fotorama__zoom-out:focus,.fotorama__zoom-in:focus,.fotorama__arr:focus,.fotorama__stage__shaft:focus,.fotorama__nav__frame--thumb:focus .fotorama__thumb,.fotorama__nav__frame--dot:focus .fotorama__dot{box-shadow:none}.fotorama__fullscreen-icon:focus:after,.fotorama__zoom-out:focus:after,.fotorama__zoom-in:focus:after,.fotorama__arr:focus:after,.fotorama__stage__shaft:focus:after,.fotorama__nav__frame--thumb:focus .fotorama__thumb:after,.fotorama__nav__frame--dot:focus .fotorama__dot:after{border-radius:inherit;bottom:3px;box-shadow:0 0 3px 1px #68a8e0;content:'';left:3px;position:absolute;right:3px;top:3px;z-index:1000}.fotorama__nav__frame--thumb:focus .fotorama__thumb:after,.fotorama__nav__frame--dot:focus .fotorama__thumb:after,.fotorama__nav__frame--thumb:focus .fotorama__dot:after,.fotorama__nav__frame--dot:focus .fotorama__dot:after{bottom:0;left:0;right:0;top:0}.fotorama__nav__frame--thumb:focus .fotorama__thumb.fotorama_vertical_ratio:after,.fotorama__nav__frame--dot:focus .fotorama__thumb.fotorama_vertical_ratio:after{left:2px;right:2px}.fotorama__nav__frame--thumb:focus .fotorama__thumb,.fotorama__nav__frame--dot:focus .fotorama__thumb{overflow:inherit}.fotorama__nav__frame:nth-child(2):focus .fotorama__thumb:after{left:1px}.fotorama__nav__frame:nth-child(2):focus .fotorama__thumb.fotorama_vertical_ratio:after{top:1px}.fotorama__nav__frame:last-child:focus .fotorama__thumb:after{right:1px}.fotorama__nav__frame:last-child:focus .fotorama__thumb.fotorama_vertical_ratio:after{bottom:1px}.fotorama__thumb__arr{box-shadow:none}.fotorama--fullscreen{background:#fff;bottom:0 !important;float:none !important;left:0 !important;margin:0 !important;position:fixed !important;right:0 !important;top:0 !important;width:100% !important;z-index:1000 !important}.fotorama--fullscreen .fotorama__wrap{max-width:100% !important}.fotorama__fullscreen{overflow:hidden;position:relative}.fotorama__fullscreen .fotorama__zoom-in,.fotorama__fullscreen .fotorama__zoom-out{cursor:pointer;display:block;height:80px;overflow:hidden;position:absolute;width:80px}.fotorama__fullscreen .fotorama__zoom-out{background-position:0 -80px !important;top:80px}.fotorama__fullscreen .fotorama__zoom-out.fotorama__zoom-out--disabled{display:none}.fotorama__fullscreen .fotorama__zoom-in{background-position:0 0 !important;top:0}.fotorama__fullscreen .fotorama__zoom-in.fotorama__zoom-in--disabled{display:none}.fotorama__fullscreen .fotorama__video-close{display:none}.fotorama--fullscreen .fotorama__loaded--full .fotorama__img{display:none}.fotorama--fullscreen .fotorama__loaded--full .fotorama__img--full{display:block}.fotorama__zoom-in,.fotorama__zoom-out{display:none}.fotorama{min-width:1px;overflow:hidden}.fotorama__wrap{-webkit-text-size-adjust:100%;direction:ltr;position:relative;z-index:0}.fotorama__wrap--rtl .fotorama__stage__frame{direction:rtl}.fotorama__stage,.fotorama__nav{max-width:100%;overflow:hidden;position:relative}.fotorama__wrap--pan-y{-ms-touch-action:pan-y}.fotorama__stage__shaft{position:relative}.fotorama__wrap .fotorama__pointer{cursor:pointer}.fotorama__wrap--slide .fotorama__stage__frame{opacity:1 !important}.fotorama__stage__frame{overflow:hidden}.fotorama__stage__frame.fotorama__active{z-index:8}.fotorama__wrap--fade .fotorama__stage__frame{display:none}.fotorama__wrap--fade .fotorama__stage__frame.fotorama__active,.fotorama__wrap--fade .fotorama__fade-front,.fotorama__wrap--fade .fotorama__fade-rear{display:block;left:0;top:0}.fotorama__wrap--fade .fotorama__fade-front{z-index:8}.fotorama__wrap--fade .fotorama__fade-rear{z-index:7}.fotorama__wrap--fade .fotorama__fade-rear.fotorama__active{z-index:9}.fotorama__wrap--fade .fotorama__stage .fotorama__shadow{display:none}.fotorama__img{border:none !important;max-width:inherit;opacity:0}.fotorama__loaded .fotorama__img,.fotorama__error .fotorama__img{opacity:1}.fotorama__img--full{display:none}.fotorama__nav{display:none;font-size:0;line-height:0;white-space:nowrap;z-index:5}.fotorama__nav__shaft{left:0;position:relative;text-align:left;top:0}.fotorama__nav__frame{position:relative}.fotorama__nav--dots{display:block;text-align:center}.fotorama__nav--dots .fotorama__nav__frame{height:30px;width:18px}.fotorama__nav--dots .fotorama__nav__frame--thumb,.fotorama__nav--dots .fotorama__thumb-border{display:none}.fotorama__nav--thumbs{display:block}.fotorama__nav--thumbs .fotorama__nav__frame{padding-left:0 !important}.fotorama__nav--thumbs .fotorama__nav__frame:last-child{padding-right:0 !important}.fotorama__nav--thumbs .fotorama__nav__frame--dot{display:none}.fotorama__active .fotorama__dot{background-color:#ff5501;border-color:#ff5501}.fotorama__nav__frame.fotorama__active .fotorama__nav__frame{border-width:3px;height:0;width:0}.fotorama__nav__frame.fotorama__active .fotorama__nav__frame:after{left:-3px;padding:3px;top:-3px}.fotorama__nav__frame:focus {box-shadow:none}.fotorama__nav__frame:focus :after{left:-1px;padding:1px;top:-1px}.fotorama__dot{border-radius:6px;border:1px solid #858585;display:block;height:4px;left:6px;position:relative;top:12px;width:4px}.fotorama__thumb{background-color:#ebebeb;height:100%;overflow:hidden;position:relative;width:100%}.fotorama__nav__frame:focus .fotorama__thumb{z-index:2}.fotorama__thumb-border{backface-visibility:hidden;background-image:linear-gradient(to bottom right, rgba(255,255,255,0.25), rgba(64,64,64,0.1));border:1px solid #ff5501;left:0;position:absolute;top:0;z-index:9}.fotorama__caption{bottom:0;color:#000;font-size:14px;left:0;line-height:1.5;position:absolute;right:0;z-index:12}.fotorama__caption a{border-bottom:1px solid;border-color:rgba(0,0,0,0.005);color:#000;text-decoration:none}.fotorama__caption a:hover{border-color:rgba(0,0,0,0.005);color:#000}.fotorama__wrap--rtl .fotorama__caption{left:auto;right:0}.fotorama__wrap--video .fotorama__caption,.fotorama__wrap--no-captions .fotorama__caption{display:none}.fotorama__caption__wrap{background-color:#fff;padding:5px 10px}@keyframes spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.fotorama__spinner{-webkit-transform:translate3d(-50%, -50%, 0);-ms-transform:translate3d(-50%, -50%, 0);-o-transform:translate3d(-50%, -50%, 0);transform:translate3d(-50%, -50%, 0);left:50%;position:absolute;top:50%}.fotorama__wrap--css3 .fotorama__spinner{animation:spinner 24s infinite linear}.fotorama__wrap--css3 .fotorama__html{transition-duration:.3s;transition-property:opacity;transition-timing-function:linear}.fotorama__wrap--video .fotorama__stage__frame--video .fotorama__img,.fotorama__wrap--video .fotorama__stage__frame--video .fotorama__html{opacity:0}.fotorama__select{cursor:auto}.fotorama__video{bottom:0;left:0;position:absolute;right:0;top:32px;z-index:10}@-moz-document url-prefix(){.fotorama__active{box-shadow:0 0 0 transparent}}.fotorama__arr,.fotorama__fullscreen-icon,.fotorama__video-close{cursor:pointer;position:absolute}.fotorama__arr{z-index:900}.fotorama__fullscreen-icon,.fotorama__zoom-out,.fotorama__zoom-in,.fotorama__video-close{z-index:1000}.fotorama__arr{bottom:0;position:absolute;top:0;width:80px}._block-content-loading .fotorama__arr{opacity:0}.fotorama__arr .fotorama__arr__arr{-webkit-transform:translate3d(-50%, -50%, 0);-ms-transform:translate3d(-50%, -50%, 0);-o-transform:translate3d(-50%, -50%, 0);transform:translate3d(-50%, -50%, 0);left:50%;position:absolute;top:50%;height:80px;width:80px}.fotorama__arr--prev{left:0}.fotorama__arr--prev .fotorama__arr__arr{background-position:-80px -80px}.fotorama__arr--next{right:0}.fotorama__arr--next .fotorama__arr__arr{background-position:-160px -80px}.fotorama__arr--disabled{cursor:default;opacity:0;pointer-events:none}.fotorama__fullscreen-icon{background-position:0 0;display:none;height:80px;right:0;top:0;width:80px;z-index:1000}.fotorama--fullscreen-icons .fotorama__fullscreen-icon{display:none}.fotorama--fullscreen .fotorama__fullscreen-icon{background-position:-80px 0;display:inline-block}.fotorama__video-play{-webkit-transform:translate3d(-50%, -50%, 0);-ms-transform:translate3d(-50%, -50%, 0);-o-transform:translate3d(-50%, -50%, 0);transform:translate3d(-50%, -50%, 0);left:50%;position:absolute;top:50%;background-position:-80px -160px;height:160px;width:160px}.fotorama__wrap--css2 .fotorama__video-play,.fotorama__wrap--video .fotorama__stage .fotorama__video-play{display:none}.fotorama__loaded .fotorama__video-play,.fotorama__error .fotorama__video-play,.fotorama__nav__frame .fotorama__video-play{display:block;opacity:1}.fotorama__nav__frame .fotorama__video-play{background-position:0 -240px;height:80px;width:80px}.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__arr,.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__fullscreen-icon{opacity:0}.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__arr:focus,.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__fullscreen-icon:focus{opacity:1}.fotorama__wrap--toggle-arrows:not(.fotorama__wrap--video) .fotorama__video-close{display:none}.fotorama__wrap--toggle-arrows.fotorama__wrap--video .fotorama__video-close{opacity:1;right:93px;top:97px}.fotorama__wrap--toggle-arrows:not(.fotorama__wrap--video) .fotorama__video-close{display:none}.fotorama__wrap--toggle-arrows.fotorama__wrap--video .fotorama__video-close{opacity:1;right:93px;top:97px}.fotorama__wrap--toggle-arrows:not(.fotorama__wrap--video) .fotorama__video-close{display:none}.fotorama__wrap--toggle-arrows.fotorama__wrap--video .fotorama__video-close{opacity:1;right:93px;top:97px}.fotorama__wrap--video .fotorama__arr,.fotorama__wrap--video .fotorama__fullscreen-icon{opacity:0 !important}.fotorama__wrap--css2.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__arr,.fotorama__wrap--css2.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__fullscreen-icon{display:none}.fotorama__wrap--css2.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__arr:focus,.fotorama__wrap--css2.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__fullscreen-icon:focus{display:block}.fotorama__wrap--css2.fotorama__wrap--video .fotorama__arr,.fotorama__wrap--css2.fotorama__wrap--video .fotorama__fullscreen-icon{display:none !important}.fotorama__wrap--css3.fotorama__wrap--no-controls.fotorama__wrap--slide.fotorama__wrap--toggle-arrows .fotorama__fullscreen-icon:not(:focus){-webkit-transform:translate3d(80px, -80px, 0);-ms-transform:translate3d(80px, -80px, 0);-o-transform:translate3d(80px, -80px, 0);transform:translate3d(80px, -80px, 0)}.fotorama__wrap--css3.fotorama__wrap--no-controls.fotorama__wrap--slide.fotorama__wrap--toggle-arrows .fotorama__arr--prev:not(:focus){-webkit-transform:translate3d(-120px, 0, 0);-ms-transform:translate3d(-120px, 0, 0);-o-transform:translate3d(-120px, 0, 0);transform:translate3d(-120px, 0, 0)}.fotorama__wrap--css3.fotorama__wrap--no-controls.fotorama__wrap--slide.fotorama__wrap--toggle-arrows .fotorama__arr--next:not(:focus){-webkit-transform:translate3d(120px, 0, 0);-ms-transform:translate3d(120px, 0, 0);-o-transform:translate3d(120px, 0, 0);transform:translate3d(120px, 0, 0)}.fotorama__wrap--css3.fotorama__wrap--video .fotorama__fullscreen-icon{-webkit-transform:translate3d(80px, -80px, 0) !important;-ms-transform:translate3d(80px, -80px, 0) !important;-o-transform:translate3d(80px, -80px, 0) !important;transform:translate3d(80px, -80px, 0) !important}.fotorama__wrap--css3.fotorama__wrap--video .fotorama__arr--prev{-webkit-transform:translate3d(-120px, 0, 0) !important;-ms-transform:translate3d(-120px, 0, 0) !important;-o-transform:translate3d(-120px, 0, 0) !important;transform:translate3d(-120px, 0, 0) !important}.fotorama__wrap--css3.fotorama__wrap--video .fotorama__arr--next{-webkit-transform:translate3d(120px, 0, 0) !important;-ms-transform:translate3d(120px, 0, 0) !important;-o-transform:translate3d(120px, 0, 0) !important;transform:translate3d(120px, 0, 0) !important}.fotorama__wrap--css3 .fotorama__arr:not(:focus),.fotorama__wrap--css3 .fotorama__fullscreen-icon:not(:focus),.fotorama__wrap--css3 .fotorama__video-play:not(:focus),.fotorama__wrap--css3 .fotorama__video-close:not(:focus){transition-duration:.3s;transition-property:transform,opacity,background-color}.fotorama__stage:before,.fotorama__nav:before,.fotorama__stage:after,.fotorama__nav:after{background-repeat:no-repeat;content:'';display:block;pointer-events:none;position:absolute;text-decoration:none;z-index:10}.fotorama__stage:before,.fotorama__nav:before{left:-10px;top:-10px}.fotorama__stage:after,.fotorama__nav:after{right:-10px;bottom:-10px}.fotorama__stage.fotorama__shadows--left:before,.fotorama__nav.fotorama__shadows--left:before,.fotorama__stage.fotorama__shadows--right:after,.fotorama__nav.fotorama__shadows--right:after{background-size:1px 100%,5px 100%;bottom:0;height:auto;top:0;width:10px}.fotorama__stage.fotorama__shadows--top:before,.fotorama__nav.fotorama__shadows--top:before,.fotorama__stage.fotorama__shadows--bottom:after,.fotorama__nav.fotorama__shadows--bottom:after{background-size:100% 1px,100% 5px;height:10px;left:0;right:0;width:auto}.fotorama__stage.fotorama__shadows--left:before,.fotorama__nav.fotorama__shadows--left:before{background-image:linear-gradient(transparent, rgba(0,0,0,0.2) 25%, rgba(0,0,0,0.3) 75%, transparent),radial-gradient(farthest-side at 0 50%, rgba(0,0,0,0.4), transparent);background-position:0 0,0 0;left:0}.fotorama__stage.fotorama__shadows--right:after,.fotorama__nav.fotorama__shadows--right:after{background-image:linear-gradient(transparent, rgba(0,0,0,0.2) 25%, rgba(0,0,0,0.3) 75%, transparent),radial-gradient(farthest-side at 100% 50%, rgba(0,0,0,0.4), transparent);background-position:100% 0,100% 0;right:0}.fotorama__stage.fotorama__shadows--top:before,.fotorama__nav.fotorama__shadows--top:before{background-image:linear-gradient(transparent, rgba(0,0,0,0.2) 25%, rgba(0,0,0,0.3) 75%, transparent),radial-gradient(farthest-side at 50% 0, rgba(0,0,0,0.4), transparent);background-position:0 0,0 0;top:0}.fotorama__stage.fotorama__shadows--bottom:after,.fotorama__nav.fotorama__shadows--bottom:after{background-image:linear-gradient(transparent, rgba(0,0,0,0.2) 25%, rgba(0,0,0,0.3) 75%, transparent),radial-gradient(farthest-side at 50% 100%, rgba(0,0,0,0.4), transparent);background-position:0 100%,0 100%;bottom:0}.fotorama--fullscreen .fotorama__stage:before,.fotorama--fullscreen .fotorama__nav:before,.fotorama__wrap--no-shadows .fotorama__stage:before,.fotorama__wrap--no-shadows .fotorama__nav:before,.fotorama__wrap--fade .fotorama__stage:before,.fotorama--fullscreen .fotorama__stage:after,.fotorama--fullscreen .fotorama__nav:after,.fotorama__wrap--no-shadows .fotorama__stage:after,.fotorama__wrap--no-shadows .fotorama__nav:after,.fotorama__wrap--fade .fotorama__stage:after{display:none}.fotorama__nav-wrap .fotorama_vertical_ratio .fotorama__img{-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);height:auto;position:absolute;top:50%;width:100%}.fotorama__nav-wrap .fotorama_horizontal_ratio .fotorama__img{-webkit-transform:translate(-50%, -50%);-ms-transform:translateY(-50%, -50%);-o-transform:translateY(-50%, -50%);transform:translateY(-50%, -50%);top:50%;left:50%;position:absolute;width:auto}.magnifier-thumb-wrapper{display:block;left:0;position:relative;top:0}.magnifier-lens{border:solid 1px #bbb;left:0;overflow:hidden;position:absolute;top:0;z-index:800}.magnify-lens{background:rgba(255,255,255,0.5);border:solid 1px #bbb;color:#fff;left:0;position:absolute;text-align:center;top:0;z-index:1000;overflow:hidden}.magnify-lens .magnifier-large{width:auto;height:auto;max-height:none;max-width:none;border:none;position:absolute;z-index:100}.magnifier-loader-text{margin-top:10px}.magnifier-preview{bottom:0;left:58%;overflow:hidden;padding:0;position:absolute;z-index:2;top:215px}.magnifier-preview:not(.hidden){background-color:#fff}.magnifier-preview img{left:0;max-width:inherit;max-height:inherit;position:absolute;top:0;object-fit:scale-down}.fotorama__stage__frame{text-align:center}.fotorama__stage__frame .fotorama__img{height:auto;left:50%;max-height:100%;max-width:100%;position:absolute;top:50%;-webkit-transform:translate3d(-50%, -50%, 0);-ms-transform:translate3d(-50%, -50%, 0);-o-transform:translate3d(-50%, -50%, 0);transform:translate3d(-50%, -50%, 0);transition-duration:.3s;transition-property:width,height,top,left;vertical-align:middle;width:auto}.magnify-opaque{opacity:.5}.magnify-hidden{display:none}.fotorama__nav-wrap--vertical.fotorama__nav-wrap{display:inline-block;left:0;position:absolute;top:0}.fotorama__nav-wrap--vertical .fotorama__nav__shaft{background-color:white;width:100%}.fotorama__nav-wrap--vertical .fotorama__nav__shaft .fotorama__nav__frame--thumb{display:block;padding-bottom:inherit !important}.fotorama--fullscreen .fotorama__stage__frame .fotorama__img{display:none}.fotorama--fullscreen .fotorama__stage__frame .fotorama__img,.fotorama--fullscreen .fotorama__stage__frame .fotorama__img--full{bottom:0;left:0;margin:auto;max-height:inherit;max-width:inherit;position:absolute;right:0;top:0}.fotorama--fullscreen .fotorama__stage__frame .fotorama__img--full{cursor:default;display:block;height:auto;left:0;margin:auto;max-height:100%;max-width:100%;top:0;transition:.3s linear;vertical-align:middle;width:auto}.fotorama--fullscreen .fotorama__stage__frame .fotorama__img--full.fotorama__img--zoommable{cursor:pointer;max-height:none;max-width:none;transition-property:width,height,bottom,right,top,left}.fotorama--fullscreen .fotorama__stage__frame .fotorama__img--full.fotorama__img--draggable{cursor:move;transition-property:none}.fotorama--fullscreen .fotorama__stage__frame iframe{left:80px;width:calc(100% - 80px * 2)}.fotorama__nav-wrap--horizontal .fotorama__thumb__arr--left,.fotorama__nav-wrap--horizontal .fotorama__thumb__arr--right{bottom:0;cursor:pointer;position:absolute;top:0;width:30px;z-index:1000}.fotorama__nav-wrap--horizontal .fotorama__thumb__arr--left .fotorama__thumb--icon,.fotorama__nav-wrap--horizontal .fotorama__thumb__arr--right .fotorama__thumb--icon{-webkit-transform:translate3d(-50%, -50%, 0);-ms-transform:translate3d(-50%, -50%, 0);-o-transform:translate3d(-50%, -50%, 0);transform:translate3d(-50%, -50%, 0);left:50%;position:absolute;top:50%;width:100%}.fotorama__nav-wrap--horizontal .fotorama__thumb__arr--left{left:0}.fotorama__nav-wrap--horizontal .fotorama__thumb__arr--right{right:0}.fotorama__nav-wrap--vertical .fotorama__thumb__arr--left,.fotorama__nav-wrap--vertical .fotorama__thumb__arr--right{cursor:pointer;height:30px;left:0;position:absolute;right:0;z-index:1000}.fotorama__nav-wrap--vertical .fotorama__thumb__arr--left .fotorama__thumb--icon,.fotorama__nav-wrap--vertical .fotorama__thumb__arr--right .fotorama__thumb--icon{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);margin:auto;width:30px}.fotorama__nav-wrap--vertical .fotorama__thumb__arr--left{top:0}.fotorama__nav-wrap--vertical .fotorama__thumb__arr--right{bottom:0}.fotorama__wrap--only-active .fotorama__stage,.fotorama__wrap--only-active .fotorama__nav{max-width:99999px !important}.fotorama__wrap--only-active .fotorama__stage__frame{visibility:hidden}.fotorama__wrap--only-active .fotorama__stage__frame.fotorama__active{visibility:visible}.fotorama__thumb--icon{font-size:0.001px;padding-bottom:30px}.fotorama__thumb__arr--left .fotorama__thumb--icon{background-position:-25px -265px}.fotorama__thumb__arr--right .fotorama__thumb--icon{background-position:-25px -350px}.magnify-fullimage{display:none}.fotorama__arr,.fotorama__thumb__arr{background-color:rgba(255,255,255,0.3);transition:background-color .3s ease-in-out}.fotorama__arr:hover,.fotorama__thumb__arr:hover{background-color:rgba(255,255,255,0.5)}.fotorama__arr:active,.fotorama__thumb__arr:active{background-color:rgba(213,213,213,0.5)}.fotorama__wrap:not(.fotorama__wrap--toggle-arrows) .fotorama__fullscreen-icon,.fotorama__wrap:not(.fotorama__wrap--toggle-arrows) .fotorama__zoom-out,.fotorama__wrap:not(.fotorama__wrap--toggle-arrows) .fotorama__zoom-in{background-color:rgba(255,255,255,0.3);transition:background-color .3s ease-in-out}.fotorama__wrap:not(.fotorama__wrap--toggle-arrows) .fotorama__fullscreen-icon:hover,.fotorama__wrap:not(.fotorama__wrap--toggle-arrows) .fotorama__zoom-out:hover,.fotorama__wrap:not(.fotorama__wrap--toggle-arrows) .fotorama__zoom-in:hover{background-color:rgba(255,255,255,0.5)}.fotorama__wrap:not(.fotorama__wrap--toggle-arrows) .fotorama__fullscreen-icon:active,.fotorama__wrap:not(.fotorama__wrap--toggle-arrows) .fotorama__zoom-out:active,.fotorama__wrap:not(.fotorama__wrap--toggle-arrows) .fotorama__zoom-in:active{background-color:rgba(213,213,213,0.5)}.fotorama__video-close{background-position:-80px 0;height:80px;opacity:0;right:0;top:0;transform:translate3d(80px, -80px, 0);transition:opacity .3s ease-in-out;width:80px}@media all and (max-width:768px){.fotorama__video-close{background-position:-100px -20px;top:10px;height:40px;width:40px}}.fotorama__video-close.fotorama-show-control{opacity:1;transform:translate3d(0, -10px, 0)}.gallery-placeholder__image{display:block;margin:auto}.fotorama__spinner{background-image:url('../../frontend/Creativestyle/theme-kma/pl_PL/images/loader-1.gif');bottom:0;display:none;height:64px;left:0;margin:auto;position:absolute;right:0;top:0;width:64px;z-index:100}.fotorama__spinner.fotorama__spinner--show{display:block}.fotorama__product-video--loaded .fotorama__img,.fotorama__product-video--loaded .fotorama__img--full{display:none !important}.fotorama__stage .fotorama__arr--shown{display:block !important}.fotorama__stage .fotorama__arr--hidden{display:none !important}/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
html {
  box-sizing: border-box;
  font-size: 62.5%;
  background: #fff;
  /* stylelint-disable */
  overflow-x: hidden;
  /* stylelint-enable */ }

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

body {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  -webkit-overflow-scrolling: touch;
  margin: 0;
  font-size: 1.4rem;
  font-display: swap; }

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

/* Hide HTML5 Up and Down arrows. */
input[type='number'] {
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield; }
  input[type='number']::-webkit-outer-spin-button, input[type='number']::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0; }

/* Hide HTML5 'X' in search input */
input[type='search'] {
  /* Clears the 'X' from Internet Explorer */
  /* Clears the 'X' from Chrome */ }
  input[type='search']::-ms-clear, input[type='search']::-ms-reveal {
    display: none;
    width: 0;
    height: 0; }
  input[type='search']::-webkit-search-decoration, input[type='search']::-webkit-search-cancel-button, input[type='search']::-webkit-search-results-button, input[type='search']::-webkit-search-results-decoration {
    display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
body {
  width: 100vw;
  max-width: 100vw !important;
  min-height: 100vh;
  height: auto !important; }

::-webkit-scrollbar {
  width: 6px;
  border-radius: 3px; }

::-webkit-scrollbar-track {
  background: #d5d5d5;
  border-radius: 3px; }

::-webkit-scrollbar-thumb {
  background: #333333;
  border-radius: 3px; }
  ::-webkit-scrollbar-thumb:hover {
    background: #878787; }

.action.create.primary::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.action.create.primary, .action.create.primary:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #c1272f;
  color: #ffffff;
  background-color: #c1272f; }
  .action.create.primary:hover:not([disabled]), .action.create.primary:focus:not([disabled]), .action.create.primary:active:not([disabled]), .action.create.primary:visited:hover:not([disabled]), .action.create.primary:visited:focus:not([disabled]), .action.create.primary:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #a20109;
    color: #ffffff;
    background-color: #a20109; }
  .action.create.primary[disabled], .action.create.primary:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #e5e5e5; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-hide-laptop {
    display: none !important;
    /* stylelint-disable-line declaration-no-important */ } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-hide-tablet {
    display: none !important;
    /* stylelint-disable-line declaration-no-important */ } }

.cs-no-display {
  display: none !important;
  /* stylelint-disable-line declaration-no-important */ }

.cs-aspect-ratio {
  position: relative;
  overflow: hidden;
  padding-top: 56.25%; }
  .cs-aspect-ratio__content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
.cs-container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 120rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 30%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 67%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-container {
  background-color: #f7f7f7;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 120rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 25%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 72%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
body,
html {
  height: 100%;
  max-width: 100vw; }

.no-scroll {
  position: fixed;
  width: 100vw;
  height: 100vh; }

.no-scroll-child {
  overflow-y: hidden !important; }

#maincontent {
  flex: 1 0 auto; }

.page-wrapper {
  display: block !important;
  min-height: 100%; }
  @media (min-width: 48em) {
    .page-wrapper {
      display: flex !important;
      flex-direction: column !important; } }

.columns .column.main {
  width: auto;
  padding: 4rem 0 0;
  max-width: 100%;
  min-height: 10rem; }
  @media (min-width: 48em) {
    .columns .column.main {
      padding: 4rem 0 0; } }

.cms-home .columns .column.main {
  padding: 0; }
  @media (min-width: 48em) {
    .cms-home .columns .column.main {
      padding: 0; } }

.page-layout-1column .product-info-wrapper {
  width: 100%; }
  @media (min-width: 48em) {
    .page-layout-1column .product-info-wrapper {
      position: absolute;
      right: 0;
      height: 100%;
      width: 40%; } }
  @media (min-width: 64em) {
    .page-layout-1column .product-info-wrapper {
      width: 30%; } }

@media (min-width: 48em) {
  .page-layout-2columns-left .sidebar-main,
  .page-layout-2columns-left .sidebar-additional {
    width: 22.5%;
    padding-right: 40px;
    border-right: 1px solid #f0f0f0; } }

a, a:visited {
  color: #324dcf;
  text-decoration: none; }

a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #142b9e;
  text-decoration: none; }

.gift-options-cart-item {
  display: none; }

@media (min-width: 48em) {
  .paypal-express-review .page-title-wrapper {
    padding: 0 1.5rem; } }

@media (max-width: 63.99em) {
  .paypal-review.view .cs-cart-item__price {
    padding-left: 0 !important; }
  .paypal-review.view .cs-cart-item__subtotal {
    padding-right: 0 !important; } }

@media (min-width: 48em) {
  .paypal-review.view {
    padding: 0 1.5rem; } }

.paypal-express-in-context-mini-cart-container {
  margin-top: 1rem; }

.paypal-review-discount {
  border-bottom: none; }

.amazon-button-container {
  max-width: 25rem;
  position: relative;
  margin-left: auto;
  margin-right: auto;
  z-index: 303; }
  @media (min-width: 48em) {
    .amazon-button-container {
      max-width: 32rem; } }
  .amazon-button-container img {
    margin-left: auto;
    margin-right: auto; }
  .amazon-button-container__cell:nth-child(2) {
    position: absolute;
    min-width: 3rem;
    left: calc(100% + 0.6rem);
    top: 1.9rem; }
    @media (max-width: 23.115em) {
      .amazon-button-container__cell:nth-child(2) {
        left: calc(100% + 0.8rem); } }
  .amazon-button-container__cell .field-tooltip-content {
    width: 25rem;
    box-sizing: border-box;
    box-shadow: 0 0 5px 2px rgba(0, 0, 0, 0.17);
    border: none;
    font-size: 1.3rem;
    padding: 0.8rem; }
    @media (min-width: 30em) {
      .amazon-button-container__cell .field-tooltip-content {
        width: 28rem; } }
    .amazon-button-container__cell .field-tooltip-content:before {
      border-right-color: #888; }
    .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content,
    .cs-cart-summary .amazon-button-container__cell .field-tooltip-content {
      top: auto;
      bottom: 42px;
      left: -210px;
      right: auto; }
      @media (min-width: 48em) {
        .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content,
        .cs-cart-summary .amazon-button-container__cell .field-tooltip-content {
          left: -250px; } }
      @media (min-width: 64em) {
        .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content,
        .cs-cart-summary .amazon-button-container__cell .field-tooltip-content {
          left: -232px; } }
      .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before, .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:after,
      .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before,
      .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
        top: calc(100% + 2rem);
        left: 210px;
        transform: rotate(-180deg); }
        @media (min-width: 48em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before, .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:after,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
            bottom: -10px;
            top: 100%;
            left: 250px;
            transform: rotate(-90deg); } }
        @media (min-width: 64em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before, .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:after,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
            left: 232px; } }
      .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before,
      .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before {
        left: 210px; }
        @media (max-width: 47.99em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before {
            border-right-color: transparent; } }
        @media (min-width: 48em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before {
            left: 251px;
            transform: rotate(-90deg); } }
        @media (min-width: 64em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before {
            left: 233px; } }
      @media (min-width: 64em) {
        .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:after,
        .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
          transform: rotate(-90deg); } }
    @media (min-width: 48em) {
      .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before, .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
        top: calc(100% + 2rem);
        transform: rotate(180deg); } }

/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.columns .column.main {
  padding-top: 0; }

body._has-modal {
  height: 100vh !important;
  overflow: hidden !important; }

@media (min-width: 30em) {
  body.catalog-product-view {
    overflow: unset !important; } }

@media (min-width: 30em) {
  body.catalog-product-view._has-modal {
    overflow: hidden !important;
    height: 100vh !important; } }

body.cms-kma-home-page #maincontent,
body.cms-no-route #maincontent,
body.brands-index-all #maincontent {
  padding-bottom: calc(85px + 20px); }

@media (max-width: 30em) {
  body.cms-kma-home-page #maincontent .cs-container--products-carousel .cs-products-carousel__pagination {
    margin-bottom: 4rem; } }

@media (max-width: 29.99em) {
  body.cms-kma-home-page #maincontent {
    padding-bottom: 0; } }

body.cms-no-route .cs-container--header {
  background-color: #f7f7f7;
  border-bottom: none; }

body.cms-no-route #maincontent .cs-container {
  background-color: transparent;
  position: relative; }
  body.cms-no-route #maincontent .cs-container::before {
    content: "";
    background-color: #f7f7f7;
    position: absolute;
    top: 0;
    bottom: 65%;
    left: 0;
    right: 0;
    height: 46%; }
  body.cms-no-route #maincontent .cs-container h3 + p {
    max-width: 380px;
    margin: auto; }
  body.cms-no-route #maincontent .cs-container .action.create.primary {
    font-weight: 400;
    padding-inline: 4rem;
    margin-top: 2rem; }

body.helpdesk-satisfaction-rate #maincontent,
body.helpdesk-satisfaction-form #maincontent {
  padding-block: 5rem 14rem; }
  @media (max-width: 48em) {
    body.helpdesk-satisfaction-rate #maincontent,
    body.helpdesk-satisfaction-form #maincontent {
      padding-block: 5rem; } }
  body.helpdesk-satisfaction-rate #maincontent .action.submit.primary::-moz-focus-inner,
  body.helpdesk-satisfaction-form #maincontent .action.submit.primary::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  body.helpdesk-satisfaction-rate #maincontent .action.submit.primary, body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:visited,
  body.helpdesk-satisfaction-form #maincontent .action.submit.primary,
  body.helpdesk-satisfaction-form #maincontent .action.submit.primary:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:hover:not([disabled]), body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:focus:not([disabled]), body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:active:not([disabled]), body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:visited:hover:not([disabled]), body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:visited:focus:not([disabled]), body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:visited:active:not([disabled]),
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:hover:not([disabled]),
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:focus:not([disabled]),
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:active:not([disabled]),
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:visited:hover:not([disabled]),
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:visited:focus:not([disabled]),
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    body.helpdesk-satisfaction-rate #maincontent .action.submit.primary[disabled], body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:visited[disabled],
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary[disabled],
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }

.cs-product-details__item--product-view-nav,
.cs-product-details__item--product-view-nav > div, .cs-product-details__item--product-view-parameters,
.cs-product-details__item--product-view-parameters > div, .cs-product-details__item--product-view-3Dview,
.cs-product-details__item--product-view-3Dview > div, .cs-product-details__item--product-view-brand-details,
.cs-product-details__item--product-view-brand-details > div, .cs-product-details__item--product-info-crosssell,
.cs-product-details__item--product-info-crosssell > div {
  background-color: #ffffff; }

.cs-product-details__item--related,
.cs-product-details__item--related > div {
  background-color: #f7f7f7 !important; }

@media (max-width: 30em) {
  .cs-product-details__item--related .block.products-related {
    width: 100%; } }

@media (max-width: 30em) {
  .cs-product-details__item--product-info-crosssell > div, .cs-product-details__item--product-info-upsell > div {
    padding-inline: 0; } }

@media (max-width: 30em) {
  .cs-product-details__item--crosssell .cs-product-details__content {
    padding-inline: 0; }
    .cs-product-details__item--crosssell .cs-product-details__content .block.products-crosssell {
      width: 100%; } }

@media (max-width: 30em) {
  .cs-product-details__item--product-view-brand-details > div {
    padding-inline: 0; }
  .cs-product-details__item--product-view-brand-details .cs-product-details__content {
    padding: 0 1.5rem !important; }
    .cs-product-details__item--product-view-brand-details .cs-product-details__content .pdp-details-container {
      width: 100%; } }

body.cms-kontakt #maincontent {
  overflow: hidden !important; }

body.cms-kontakt .field .input-text.required-entry {
  margin-bottom: 0; }

body.cms-kontakt .field-recaptcha {
  margin-top: 1rem; }

body.cms-kontakt .cs-container--image-teaser.kma_contact__info .cs-image-teaser__content-wrapper {
  align-items: flex-start;
  padding-top: 80px; }

body.cms-kontakt .kma_contact_about_us__info .cs-image-teaser__content-wrapper {
  height: 105%; }

#phone-contact-request-form .field .input-text.required-entry {
  margin-bottom: 0; }

#phone-contact-request-form .field-recaptcha {
  margin-top: 2rem; }

.cs-category-pills__link {
  white-space: normal !important; }
  .cs-category-pills__link:hover,
  .cs-category-pills__link:hover .cs-category-pills__qty {
    color: #c1272f !important; }
  .cs-category-pills__link .cs-category-pills__qty {
    margin-inline: 0; }

.cs-category-pills__button {
  border-top: 1px solid #d5d5d5; }

.cs-category-pills-button-container::before {
  content: "";
  width: calc(100% - 3rem);
  height: 1px;
  top: 0;
  position: absolute;
  left: 1.5rem;
  right: 1.5rem;
  background: #d5d5d5; }

.cs-category-pills-button-wrapper {
  border-top: none !important; }

.cs-category-pills-scroll-button {
  cursor: pointer; }

@media (max-width: 30em) {
  .modal-popup {
    max-width: calc(100vw - 44px);
    right: 0; } }

.cs-container--products-carousel {
  overflow: hidden; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem; }

.badge {
  display: flex;
  border: 1px solid;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 11rem;
  font-weight: 600;
  border-radius: 15px;
  padding: 2px 0.5rem;
  font-size: 1.2rem;
  align-items: center; }
  .badge svg {
    margin-right: 0.5rem; }
  .badge-bestseller {
    border-color: #003666;
    color: #003666; }
  .badge-new {
    border-color: #318862;
    color: #318862; }
  .badge-promo {
    border-color: #ff7200;
    color: #ff7200; }

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../../frontend/Creativestyle/theme-kma/pl_PL/fonts/Poppins-Light.ttf") format("truetype"); }

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../../frontend/Creativestyle/theme-kma/pl_PL/fonts/Poppins-Regular.ttf") format("truetype"); }

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../../frontend/Creativestyle/theme-kma/pl_PL/fonts/Poppins-SemiBold.ttf") format("truetype"); }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-authorization-link {
  display: flex;
  align-items: center;
  position: relative;
  margin-left: 0.9rem;
  padding: 0 0 0 0.3rem; }
  @media (min-width: 64em) {
    .cs-authorization-link {
      padding: 0 0 0 1.3rem;
      margin-left: 1.7rem; } }
  .cs-authorization-link:before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    content: '';
    border-left: 0.2rem solid #fff; }
  .cs-authorization-link__link {
    display: flex;
    align-items: center; }
    .cs-authorization-link__link, .cs-authorization-link__link:visited {
      color: #324dcf;
      text-decoration: none; }
    .cs-authorization-link__link:hover, .cs-authorization-link__link:focus, .cs-authorization-link__link:active, .cs-authorization-link__link:visited:hover, .cs-authorization-link__link:visited:focus {
      color: #142b9e;
      text-decoration: none; }
    .cs-authorization-link__link:hover .cs-authorization-link__icon path {
      fill: #888; }
  .cs-authorization-link__icon {
    width: 1.8rem;
    height: 1rem;
    padding-right: 0.5rem; }
    .cs-authorization-link__icon path {
      fill: #888; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-addtocart {
  /* stylelint-disable */
  /* stylelint-enable */ }
  .cs-addtocart__wrapper {
    overflow: hidden; }
    @supports ((-webkit-clip-path: inset(0 0 0 0 round 24px)) or (clip-path: inset(0 0 0 0 round 24px))) {
      .cs-addtocart__wrapper {
        -webkit-clip-path: inset(0 0 0 0 round 24px);
                clip-path: inset(0 0 0 0 round 24px); } }
  .cs-addtocart__button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-addtocart__button, .cs-addtocart__button:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-addtocart__button:hover:not([disabled]), .cs-addtocart__button:focus:not([disabled]), .cs-addtocart__button:active:not([disabled]), .cs-addtocart__button:visited:hover:not([disabled]), .cs-addtocart__button:visited:focus:not([disabled]), .cs-addtocart__button:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    .cs-addtocart__button[disabled], .cs-addtocart__button:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  .cs-addtocart__button[disabled] {
    opacity: 1; }
  .cs-addtocart__button .cs-addtocart__success-label, .cs-addtocart__button:hover .cs-addtocart__success-label, .cs-addtocart__button:focus .cs-addtocart__success-label, .cs-addtocart__button:active .cs-addtocart__success-label {
    color: #fff; }
  .cs-addtocart__button .cs-addtocart__success-icon *, .cs-addtocart__button:hover .cs-addtocart__success-icon *, .cs-addtocart__button:focus .cs-addtocart__success-icon *, .cs-addtocart__button:active .cs-addtocart__success-icon * {
    fill: #fff; }
  .cs-addtocart__button .cs-addtocart__fail-label, .cs-addtocart__button:hover .cs-addtocart__fail-label, .cs-addtocart__button:focus .cs-addtocart__fail-label, .cs-addtocart__button:active .cs-addtocart__fail-label {
    color: #fff; }
  .cs-addtocart__button .cs-addtocart__fail-icon *, .cs-addtocart__button:hover .cs-addtocart__fail-icon *, .cs-addtocart__button:focus .cs-addtocart__fail-icon *, .cs-addtocart__button:active .cs-addtocart__fail-icon * {
    fill: #fff; }
  .cs-addtocart__button-label, .cs-addtocart__success-label, .cs-addtocart__fail-label {
    font-size: 1.6rem;
    white-space: nowrap; }
  .cs-addtocart__configure-icon, .cs-addtocart__button-icon, .cs-addtocart__success-icon, .cs-addtocart__fail-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none;
    max-width: none;
    max-height: none;
    width: 2.2rem;
    height: 2.2rem;
    /* stylelint-disable */
    /* stylelint-enable */ }
  .cs-addtocart__fail-icon {
    transition: none; }
  .cs-addtocart__button-label, .cs-addtocart__success-label {
    transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1); }
  .cs-addtocart__button-label {
    display: inline-block;
    transform: translate3d(0, 0, 0); }
  .cs-addtocart__loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: scale(0) translate3d(-50%, -50%, 0);
    width: 40px;
    height: 10px;
    opacity: 0;
    transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1);
    transition-delay: 0.2s; }
    .cs-addtocart__loading-ball {
      position: absolute;
      display: block;
      width: 10px;
      height: 10px;
      bottom: 0;
      background: #fff;
      border-radius: 50%; }
      .cs-addtocart__loading-ball--1 {
        left: 0; }
      .cs-addtocart__loading-ball--2 {
        left: 15px;
        -webkit-animation-delay: 0.15s !important;
                animation-delay: 0.15s !important; }
      .cs-addtocart__loading-ball--3 {
        left: 30px;
        -webkit-animation-delay: 0.3s !important;
                animation-delay: 0.3s !important; }
  .cs-addtocart__feedback-bg {
    position: absolute;
    left: -1em;
    top: -1px;
    bottom: -1px;
    width: calc(100% + 2.5em);
    transform: translate3d(-100%, 0, 0);
    transform-origin: 0 0;
    transition: transform 0.45s cubic-bezier(0.01, 0.65, 0.38, 1);
    background: #31a43a; }
    .cs-addtocart--no-transitions .cs-addtocart__feedback-bg {
      transition: none; }
    .cs-addtocart--fail .cs-addtocart__feedback-bg {
      background: #cc1c10; }
  .cs-addtocart__success-label, .cs-addtocart__success-icon, .cs-addtocart__fail-label, .cs-addtocart__fail-icon {
    opacity: 0; }
  .cs-addtocart__success-icon, .cs-addtocart__fail-icon {
    height: 1.725em;
    transition-delay: 0.2s; }
  .cs-addtocart__success-label, .cs-addtocart__fail-label {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0) translateX(-2em);
    transition-delay: 0.2s;
    white-space: nowrap;
    padding-right: 3.5rem; }
  .cs-addtocart__minicart {
    width: 100%;
    text-align: center; }
    .cs-addtocart__minicart--sticky, .cs-addtocart__minicart--unstick {
      max-width: 120rem;
      width: 100%;
      margin: 0 auto;
      width: 100%;
      position: fixed;
      top: 0;
      left: 50%;
      transform: translate3d(-50%, 0, 0);
      z-index: 400;
      padding: 0;
      text-align: right;
      display: flex;
      justify-content: flex-end; }
      .cs-addtocart__minicart--sticky .ui-dialog, .cs-addtocart__minicart--unstick .ui-dialog {
        right: 0 !important; }
      .cs-addtocart__minicart--sticky .block-minicart:after, .cs-addtocart__minicart--unstick .block-minicart:after {
        right: 3.2rem !important; }
  .cs-addtocart__minicart--sticky .cs-addtocart__minicart-link,
  .cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
    text-align: center;
    padding: 2.5rem 1rem;
    background: #fff;
    box-shadow: 1px 3px 4.5rem 0 rgba(30, 48, 67, 0.34);
    -webkit-animation: minicart-in 1s cubic-bezier(0, 0.77, 0.18, 1);
            animation: minicart-in 1s cubic-bezier(0, 0.77, 0.18, 1);
    position: relative; }
  .cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
    -webkit-animation: minicart-out 0.5s cubic-bezier(0.55, 0.2, 0.89, 0.45);
            animation: minicart-out 0.5s cubic-bezier(0.55, 0.2, 0.89, 0.45); }
  .cs-addtocart__minicart-link:before {
    content: none !important; }
  .cs-addtocart__minicart-qty-badge-wrapper {
    position: absolute;
    opacity: 0;
    z-index: 600;
    transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93);
    pointer-events: none; }
    .cs-addtocart__minicart-qty-badge-wrapper--animating {
      -webkit-animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
              animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
      position: fixed;
      top: 0.5rem; }
      @media (min-width: 48em) {
        .cs-addtocart__minicart-qty-badge-wrapper--animating {
          top: 1.3rem; } }
      @media (min-width: 64em) {
        .cs-addtocart__minicart-qty-badge-wrapper--animating {
          position: absolute;
          top: 5.3rem; } }
      .cs-addtocart__minicart-qty-badge-wrapper--animating.cs-addtocart__minicart-qty-badge-wrapper--minicart-sticky {
        position: fixed;
        top: 1.8rem; }
    .cs-addtocart__minicart-qty-badge-wrapper .cs-addtocart__minicart-qty-badge {
      position: static;
      visibility: visible; }
  .cs-addtocart--loading .cs-addtocart__button-label, .cs-addtocart--done .cs-addtocart__button-label {
    opacity: 0;
    transform: translate3d(2em, 0, 0); }
  .cs-addtocart--loading .cs-addtocart__loading {
    opacity: 1;
    transform: scale(1) translate3d(-50%, -50%, 0) translateX(-1.25em); }
    .cs-addtocart--loading .cs-addtocart__loading-ball {
      -webkit-animation: ball-in 1s infinite;
              animation: ball-in 1s infinite; }
  .cs-addtocart--done .cs-addtocart__button-icon {
    opacity: 0; }
  .cs-addtocart--done .cs-addtocart__feedback-bg {
    transform: translate3d(0, 0, 0); }
    .cs-addtocart--done .cs-addtocart__feedback-bg:after {
      transform: translate3d(-5.3rem, 0, 0); }
  .cs-addtocart--success .cs-addtocart__success-icon {
    opacity: 1; }
  .cs-addtocart--success .cs-addtocart__success-label {
    opacity: 1;
    transform: translate3d(-50%, -50%, 0); }
  .cs-addtocart--fail .cs-addtocart__fail-icon {
    opacity: 1; }
  .cs-addtocart--fail .cs-addtocart__fail-label {
    opacity: 1;
    transform: translate3d(-50%, -50%, 0); }
  .cs-addtocart--animation-done .cs-addtocart__button-label,
  .cs-addtocart--animation-done .cs-addtocart__button-icon {
    transition-delay: 0.5s; }
  .cs-addtocart--animation-done .cs-addtocart__feedback-bg {
    transition-delay: 0.2s; }
    .cs-addtocart--animation-done .cs-addtocart__feedback-bg, .cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
      transition: transform 0.4s cubic-bezier(0.86, 0.01, 0.83, 0.51); }
    .cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
      transition-delay: 0; }
  .cs-addtocart--animation-done .cs-addtocart__success-label,
  .cs-addtocart--animation-done .cs-addtocart__fail-icon {
    transition: opacity 0.6s linear, transform 0.6s cubic-bezier(0.86, 0.01, 0.83, 0.51);
    transition-delay: 0; }
  .cs-addtocart--animation-done .cs-addtocart__success-icon,
  .cs-addtocart--animation-done .cs-addtocart__fail-icon {
    transition-delay: 0; }

@-webkit-keyframes ball-in {
  0% {
    opacity: 0; }
  50% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes ball-in {
  0% {
    opacity: 0; }
  50% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@-webkit-keyframes minicart-in {
  0% {
    transform: translate3d(0, -100%, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }

@keyframes minicart-in {
  0% {
    transform: translate3d(0, -100%, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }

@-webkit-keyframes minicart-out {
  0% {
    transform: translate3d(0, 0, 0); }
  100% {
    transform: translate3d(0, -100%, 0); } }

@keyframes minicart-out {
  0% {
    transform: translate3d(0, 0, 0); }
  100% {
    transform: translate3d(0, -100%, 0); } }

@-webkit-keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  80% {
    opacity: 1;
    transform: scale(1.5); }
  100% {
    opacity: 0;
    transform: scale(1); } }

@keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  80% {
    opacity: 1;
    transform: scale(1.5); }
  100% {
    opacity: 0;
    transform: scale(1); } }
  .cs-addtocart .block-minicart {
    margin-bottom: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
.cs-autocomplete {
  width: 100%;
  top: 100%;
  left: 0;
  box-sizing: border-box;
  background-color: #fff;
  border-radius: 3px;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.17);
  z-index: 200;
  margin-top: -1px; }
  @media (max-width: 48em) {
    .cs-autocomplete .autocomplete-list.product dd:last-child {
      padding-bottom: 9rem; } }
  .cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
    background: #fff;
    padding: 0.5rem 1rem;
    margin: 0;
    border-bottom: 1px solid #dcdcdc;
    display: flex;
    align-items: center;
    transition: background-color 0.15s linear;
    font-size: 1.29rem; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
    padding: 1rem; } }
    .cs-autocomplete .autocomplete-list dd:hover, .cs-autocomplete .autocomplete-list dd.selected, .cs-autocomplete__item:hover, .cs-autocomplete__item.selected {
      background-color: #f0f0f0;
      cursor: pointer; }
    .cs-autocomplete .autocomplete-list dd:last-child, .cs-autocomplete__item:last-child {
      border-bottom: none; }
    .cs-autocomplete .autocomplete-list dd-image-container, .cs-autocomplete__item-image-container {
      padding: 0;
      margin-right: 1rem;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center; }
    .cs-autocomplete .autocomplete-list dd-image, .cs-autocomplete__item-image {
      width: 4.5rem;
      height: 4.5rem; }
    .cs-autocomplete .autocomplete-list dd-details, .cs-autocomplete__item-details {
      flex: 1 1 100%;
      margin: 0;
      padding-block: 2rem; }
      .cs-autocomplete .autocomplete-list dd-details .f-fix, .cs-autocomplete__item-details .f-fix {
        height: auto;
        display: flex;
        flex-direction: column;
        justify-content: center; }
      .cs-autocomplete .autocomplete-list dd-details img, .cs-autocomplete__item-details img {
        display: block; }
    .cs-autocomplete .autocomplete-list dd-brand, .cs-autocomplete__item-brand {
      font-size: 1.2rem;
      color: #888; }
    .cs-autocomplete .autocomplete-list dd-name, .cs-autocomplete__item-name {
      font-size: 1.29rem;
      color: #000;
      font-weight: 700; }
    .cs-autocomplete .autocomplete-list dd-price, .cs-autocomplete__item-price {
      margin: 0.3rem 0 0;
      padding-block: 1rem; }
  .cs-autocomplete .price-box {
    display: flex; }
    .cs-autocomplete .price-box > .price {
      color: #324dcf;
      font-size: 1.5rem;
      font-weight: 700;
      margin-right: 0; }
    @media (max-width: 30em) {
      .cs-autocomplete .price-box .special-price .price-excluding-tax {
        margin-left: -0.5rem; } }
    .cs-autocomplete .price-box .old-price > .price {
      text-decoration: line-through;
      color: #696969;
      font-size: 1.5rem;
      font-weight: 700; }
    @media (max-width: 30em) {
      .cs-autocomplete .price-box .old-price .price {
        margin: 0; }
      .cs-autocomplete .price-box .old-price .price-including-tax {
        position: relative; }
        .cs-autocomplete .price-box .old-price .price-including-tax > .price {
          position: absolute;
          left: 9.5rem;
          bottom: -2rem; }
      .cs-autocomplete .price-box .old-price .price-excluding-tax {
        position: relative; }
        .cs-autocomplete .price-box .old-price .price-excluding-tax > .price {
          position: absolute;
          left: 9rem;
          top: -2rem; } }
    .cs-autocomplete .price-box .special-price > .price {
      color: #e41f12;
      font-size: 1.5rem;
      font-weight: 700; }
    .cs-autocomplete .price-box .minimal-price-link {
      display: none; }
    .cs-autocomplete .price-box .old-price {
      order: -1; }
      .cs-autocomplete .price-box .old-price .price {
        margin-right: 1rem; }
  .cs-autocomplete__badges {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    margin-left: 1rem; }
  .cs-autocomplete__badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #324dcf;
    color: #fff;
    border: 0;
    border-radius: 24px;
    padding: 0 0.7rem;
    font-size: 1.1rem;
    font-weight: 700;
    min-height: 2em;
    text-transform: uppercase; }
    .cs-autocomplete__badge + .cs-autocomplete__badge {
      margin-top: 0.5rem; }
    .cs-autocomplete__badge--popular {
      background-color: #37b841;
      color: #fff; }
      .cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
        line-height: normal; }
        .cs-autocomplete__badge--popular .cs-autocomplete__badge-text + .cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
          margin-left: 0.5rem; }
    .cs-autocomplete__badge--free-shipping {
      background-color: #37b841;
      color: #fff; }
      .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
        line-height: normal; }
        .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text + .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
          margin-left: 0.5rem; }
  .cs-autocomplete__badge-text {
    line-height: normal; }
    .cs-autocomplete__badge-text + .cs-autocomplete__badge-text {
      margin-left: 0.5rem; }
    @media (min-width: 23.125em) {
      .cs-autocomplete__badge-text {
        white-space: nowrap; } }

.autocomplete-list {
  margin: -1px 0 1rem;
  border-top: 1px solid #dcdcdc; }
  .autocomplete-list:first-child {
    border-top: 0; }
  .autocomplete-list:last-child {
    margin-bottom: 0; }
  .autocomplete-list .amount {
    color: #888;
    font-size: 1.29rem;
    font-weight: 700;
    margin-left: 0.5rem; }
    .autocomplete-list .amount:not(:empty):after {
      content: ")"; }
    .autocomplete-list .amount:not(:empty):before {
      content: "("; }

.autocomplete-list-title {
  padding: 1.2rem 3rem 1rem 1rem;
  border-bottom: none;
  color: #888;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 1.29rem;
  letter-spacing: 1px;
  margin: 0; }
  .autocomplete-list-title:hover, .autocomplete-list-title.selected {
    background-color: transparent; }
  .autocomplete-list-title:not(:empty):first-child {
    border-top: transparent; }

@charset "UTF-8";
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-breadcrumbs {
  padding-top: 1.3rem;
  padding-bottom: 1.3rem;
  font-weight: 400; }
  .cs-breadcrumbs__list {
    margin: 0;
    padding: 0;
    list-style: none; }
  .cs-breadcrumbs__item {
    position: relative;
    display: inline-block;
    margin: 0;
    padding: 0 1.95em 0 0;
    cursor: pointer;
    font-size: 1.2rem; }
    .cs-breadcrumbs__item:last-child {
      padding: 0;
      color: #212121;
      cursor: default; }
    .cs-breadcrumbs__item:not(:last-child):after {
      position: absolute;
      top: 50%;
      right: 0.8em;
      content: "⁄";
      transform: translateY(-50%);
      line-height: 1;
      color: #888; }
  .cs-breadcrumbs__link {
    position: relative;
    display: inline-block;
    color: #888; }
    .cs-breadcrumbs__link:visited {
      color: #888; }
    .cs-breadcrumbs__link:hover {
      text-decoration: none;
      color: #212121; }
  .cs-breadcrumbs__separator-icon {
    position: absolute;
    top: 50%;
    right: 0.5em;
    transform: translateY(-50%);
    width: 0.8em;
    height: 0.8em;
    fill: #888; }

.cs-container--breadcrumbs {
  max-width: none;
  display: none;
  background: #f0f0f0; }
  @media (min-width: 48em) {
    .cs-container--breadcrumbs {
      display: block;
      background: #f0f0f0 url("../../frontend/Creativestyle/theme-kma/pl_PL/images/breadcrumbs.png") no-repeat right/auto 6.8rem; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-breadcrumbs {
  padding-top: 1.3rem;
  padding-bottom: 1.3rem;
  font-weight: 400;
  position: relative;
  z-index: 10; }
  .cs-breadcrumbs__list {
    margin: 0;
    padding: 0;
    list-style: none; }
  .cs-breadcrumbs__item {
    position: relative;
    display: inline-block;
    margin: 0;
    padding: 0 0.95em 0 0;
    cursor: pointer;
    font-size: 1.3rem; }
    .cs-breadcrumbs__item:last-child {
      padding: 0;
      color: #878787;
      cursor: default; }
    .cs-breadcrumbs__item:not(:last-child):after {
      position: absolute;
      top: 50%;
      right: 0;
      content: "⁄";
      transform: translateY(-50%);
      line-height: 1;
      color: #888; }
  .cs-breadcrumbs__link {
    position: relative;
    display: inline-block;
    color: #333333; }
    .cs-breadcrumbs__link:visited {
      color: #333333; }
    .cs-breadcrumbs__link:hover {
      text-decoration: none;
      color: #333333; }
  .cs-breadcrumbs__separator-icon {
    position: absolute;
    top: 50%;
    right: 0.5em;
    transform: translateY(-50%);
    width: 0.8em;
    height: 0.8em;
    fill: #888; }

.cs-container--breadcrumbs {
  max-width: none;
  display: none;
  background: transparent; }
  @media (min-width: 48em) {
    .cs-container--breadcrumbs {
      display: block;
      background: transparent; } }

.cms-serwis .cs-container--breadcrumbs, .cms-kontakt .cs-container--breadcrumbs, .cms-o-nas .cs-container--breadcrumbs {
  display: none !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-button, .cs-button:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #c1272f;
  color: #ffffff;
  background-color: #c1272f; }
  .cs-button:hover:not([disabled]), .cs-button:focus:not([disabled]), .cs-button:active:not([disabled]), .cs-button:visited:hover:not([disabled]), .cs-button:visited:focus:not([disabled]), .cs-button:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #a20109;
    color: #ffffff;
    background-color: #a20109; }
  .cs-button[disabled], .cs-button:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #e5e5e5; }

.cs-button__span {
  font-size: 1.6rem; }

.cs-button__icon {
  max-width: 1em;
  max-height: 1.6rem;
  z-index: 2;
  height: auto;
  width: 100%;
  display: none; }

.cs-button-component {
  margin: 0 0 3rem;
  position: relative;
  left: 50%;
  transform: translateX(-50%); }
  .cs-button-component::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-button-component, .cs-button-component:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-button-component:hover:not([disabled]), .cs-button-component:focus:not([disabled]), .cs-button-component:active:not([disabled]), .cs-button-component:visited:hover:not([disabled]), .cs-button-component:visited:focus:not([disabled]), .cs-button-component:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    .cs-button-component[disabled], .cs-button-component:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  @media (min-width: 48em) {
    .cs-button-component {
      margin: 0 0 4rem; } }
  .cs-button-component--skip-spacing {
    margin: 0; }
  .cs-button-component__span {
    font-size: 1.6rem; }
  .cs-button-component__icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }
  .cs-button-component__amount:before {
    content: '('; }
  .cs-button-component__amount:after {
    content: ')'; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
.cs-container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 120rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 30%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 67%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-container {
  background-color: #f7f7f7;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 120rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 25%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 72%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-cookie-message {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 1.2rem;
  background-color: #fff;
  color: #000;
  box-shadow: 0 -0.3rem 0.5rem 0 rgba(0, 0, 0, 0.15);
  font-size: 85%;
  z-index: 98;
  transform: translate3d(0, 110%, 0);
  opacity: 0;
  transition: transform 0.25s ease-out, opacity 0.18s linear;
  display: flex;
  justify-content: center;
  align-items: center; }
  .cs-cookie-message--shown {
    z-index: 202;
    transform: translate3d(0, 0, 0);
    opacity: 1; }
  .cs-cookie-message__inner {
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    position: relative;
    padding-left: 8rem; }
    @media (min-width: 48em) {
      .cs-cookie-message__inner {
        flex-direction: row; } }
  .cs-cookie-message__button-wrapper {
    align-self: flex-start; }
    @media (min-width: 48em) {
      .cs-cookie-message__button-wrapper {
        align-self: unset; } }
  .cs-cookie-message__text {
    position: relative;
    margin: 0; }
    .cs-cookie-message__text .block-cms-link.widget,
    .cs-cookie-message__text p {
      margin: 0;
      display: inline; }
    .cs-cookie-message__text a, .cs-cookie-message__text a:visited {
      color: #324dcf;
      text-decoration: none; }
    .cs-cookie-message__text a:hover, .cs-cookie-message__text a:focus, .cs-cookie-message__text a:active, .cs-cookie-message__text a:visited:hover, .cs-cookie-message__text a:visited:focus {
      color: #142b9e;
      text-decoration: none; }
  .cs-cookie-message__icon {
    position: absolute;
    left: 0.5rem;
    width: 5.5rem;
    height: 5.5rem;
    top: 50%;
    transform: translateY(-50%); }
    @media (min-width: 48em) {
      .cs-cookie-message__icon {
        top: -3.5rem;
        transform: translateY(0); } }
  .cs-cookie-message__button {
    white-space: nowrap;
    margin-top: 1.2rem; }
    .cs-cookie-message__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-cookie-message__button, .cs-cookie-message__button:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-cookie-message__button:hover:not([disabled]), .cs-cookie-message__button:focus:not([disabled]), .cs-cookie-message__button:active:not([disabled]), .cs-cookie-message__button:visited:hover:not([disabled]), .cs-cookie-message__button:visited:focus:not([disabled]), .cs-cookie-message__button:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-cookie-message__button[disabled], .cs-cookie-message__button:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    @media (min-width: 48em) {
      .cs-cookie-message__button {
        margin-top: 0;
        margin-left: 1.2rem; } }
  .cs-cookie-message__button-span {
    font-size: 1.6rem; }
  .cs-cookie-message__button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
@media (max-width: 47.99em) {
  .cs-display-controller--hidden-mobile {
    display: none; } }

@media (min-width: 48em) {
  .cs-display-controller--hidden-desktop {
    display: none; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-dropdown-switcher {
  white-space: nowrap;
  cursor: pointer;
  width: 100%; }
  @media (min-width: 64em) {
    .cs-dropdown-switcher .mage-dropdown-dialog {
      position: absolute;
      top: 100%;
      right: -1rem;
      left: 1rem; } }
  .cs-dropdown-switcher--currency .mage-dropdown-dialog {
    right: -1rem; }
  @media (min-width: 64em) {
    .cs-dropdown-switcher {
      position: relative;
      display: inline-flex;
      align-items: center;
      flex-shrink: 0; }
      .cs-dropdown-switcher:before {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 1.3rem;
        content: '';
        border-left: 0.2rem solid #fff;
        display: block; } }
  @media (min-width: 64em) {
    .cs-dropdown-switcher--stores:before {
      display: none; } }
  .cs-dropdown-switcher__option-icon {
    min-width: 1.5rem;
    height: 1.5rem;
    margin-right: 0.6rem;
    margin-bottom: 0.2rem;
    display: inline-block; }
    @media (min-width: 64em) {
      .cs-dropdown-switcher--language .cs-dropdown-switcher__option-icon {
        width: 1.5rem; } }
  @media (min-width: 64em) {
    .cs-dropdown-switcher .switcher-options {
      display: flex; } }
  .cs-dropdown-switcher__trigger {
    padding: 2.4rem 2rem;
    font-size: 1.4rem;
    font-weight: 700;
    border-bottom: 1px #dcdcdc solid;
    position: relative;
    position: relative; }
    .cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
      content: '';
      position: absolute;
      top: 50%;
      width: 0.7rem;
      height: 0.1rem;
      left: auto;
      background-color: #324dcf;
      transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden; }
    .cs-dropdown-switcher__trigger:before {
      transform: rotate(45deg) translate3d(0, 0, 0);
      right: 3rem; }
    .cs-dropdown-switcher__trigger:after {
      transform: rotate(-45deg) translate3d(0, 0, 0);
      right: 2.5rem; }
    .cs-dropdown-switcher__trigger.active:before {
      transform: rotate(-45deg); }
    .cs-dropdown-switcher__trigger.active:after {
      transform: rotate(45deg); }
    @media (min-width: 64em) {
      .cs-dropdown-switcher__trigger {
        height: 100%;
        display: inline-flex;
        align-items: center;
        margin-left: 2rem;
        font-size: 1.1rem;
        font-weight: 400;
        padding: 0 1.5rem 0 0;
        border-bottom: none;
        position: relative; }
        .cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
          content: '';
          position: absolute;
          top: 50%;
          width: 0.7rem;
          height: 0.1rem;
          left: auto;
          background-color: #000;
          transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
          -webkit-backface-visibility: hidden;
                  backface-visibility: hidden; }
        .cs-dropdown-switcher__trigger:before {
          transform: rotate(45deg) translate3d(0, 0, 0);
          right: 0.5rem; }
        .cs-dropdown-switcher__trigger:after {
          transform: rotate(-45deg) translate3d(0, 0, 0);
          right: 0; }
        .cs-dropdown-switcher__trigger.active:before {
          transform: rotate(-45deg); }
        .cs-dropdown-switcher__trigger.active:after {
          transform: rotate(45deg); } }
    .cs-dropdown-switcher__trigger.active {
      background: transparent;
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      border: none;
      position: relative;
      width: 100%; }
      @media (max-width: 63.99em) {
        .cs-dropdown-switcher__trigger.active {
          padding: 2.4rem 2rem;
          border-style: none; } }
    .cs-dropdown-switcher__trigger-span {
      display: flex;
      align-items: center; }
  .cs-dropdown-switcher__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: none;
    list-style: none;
    font-size: 1.1rem;
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
    border-color: #f0f0f0;
    border-style: solid;
    border-width: 0 1px 1px;
    width: 100%; }
    @media (min-width: 64em) {
      .cs-dropdown-switcher__list {
        background: #fff;
        min-width: 100%; } }
    .cs-dropdown-switcher__list-item {
      margin: 0;
      white-space: nowrap; }
    .cs-dropdown-switcher__list-item-link {
      width: 100%;
      color: #212121 !important;
      display: flex;
      align-items: center; }
      .cs-dropdown-switcher__list-item-link:hover {
        background-color: #f0f0f0;
        text-decoration: none; }
      @media (max-width: 63.99em) {
        .cs-dropdown-switcher__list-item-link {
          padding: 1.4rem 2rem;
          font-size: 1.4rem; } }
      @media (min-width: 64em) {
        .cs-dropdown-switcher__list-item-link {
          padding: 0.6rem 1.8rem;
          font-size: 1.1rem; } }

.cs-dropdown-switcher {
  width: unset;
  display: flex;
  align-content: center;
  height: 100%;
  font-size: 1.1rem;
  font-weight: 400; }
  .cs-dropdown-switcher::before {
    display: none; }
  .cs-dropdown-switcher--language::before {
    display: block;
    border-left-color: #333333;
    border-left-width: 1px;
    height: 1rem;
    top: 50%;
    transform: translateY(-50%);
    left: 1rem; }
  .cs-dropdown-switcher--language .cs-dropdown-switcher__trigger-span {
    text-indent: -9999px;
    color: transparent;
    width: 18px; }
  @media (max-width: 63.99em) {
    .cs-dropdown-switcher--language {
      margin-right: 1rem; } }
  .cs-dropdown-switcher--currency .mage-dropdown-dialog {
    left: -1rem !important; }
    @media (max-width: 48em) {
      .cs-dropdown-switcher--currency .mage-dropdown-dialog {
        left: unset !important; } }
  .cs-dropdown-switcher__option-icon--active {
    border-radius: 50%;
    border: 1px solid #f7f7f7; }
  .cs-dropdown-switcher__trigger {
    display: flex;
    border: none;
    height: 100%; }
    @media (max-width: 48em) {
      .cs-dropdown-switcher__trigger {
        padding-left: 0.75rem;
        padding-right: 1.5rem; } }
    .cs-dropdown-switcher__trigger span {
      line-height: 1; }
    .cs-dropdown-switcher__trigger#switcher-currency-trigger-topbar {
      margin-left: 0; }
    .cs-dropdown-switcher__trigger::before, .cs-dropdown-switcher__trigger::after {
      background-color: #000000;
      width: 0.5rem; }
    .cs-dropdown-switcher__trigger::before {
      right: 0.35rem; }
    .cs-dropdown-switcher__trigger::after {
      right: 0; }
  .cs-dropdown-switcher .switcher-options {
    position: relative;
    height: 100%; }
  .cs-dropdown-switcher .mage-dropdown-dialog {
    position: absolute;
    top: 5rem;
    left: -6rem;
    right: -1rem;
    background-color: #ffffff; }
    @media (max-width: 48em) {
      .cs-dropdown-switcher .mage-dropdown-dialog {
        left: unset;
        right: 0; } }
  .cs-dropdown-switcher__list-item-link {
    padding: 0.6rem 0.8rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable no-descending-specificity */
.cs-field,
.cs-input {
  font-size: 1.6rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%; }
  .cs-field__control,
  .cs-input__control {
    width: 100%; }
  .cs-field__label,
  .cs-input__label {
    font-weight: 400;
    font-size: 1.4rem;
    width: 100%;
    text-transform: none;
    color: inherit;
    padding: 4px 0; }
    .required .cs-field__label:after, .required
    .cs-input__label:after {
      content: " *";
      color: #ff0018;
      padding: 4px 0; }
  .cs-field__input, .cs-field__textarea,
  .cs-input__input,
  .cs-input__textarea {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit; }
    .cs-field__input:hover:not([disabled]), .cs-field__input:focus:not([disabled]), .cs-field__textarea:hover:not([disabled]), .cs-field__textarea:focus:not([disabled]),
    .cs-input__input:hover:not([disabled]),
    .cs-input__input:focus:not([disabled]),
    .cs-input__textarea:hover:not([disabled]),
    .cs-input__textarea:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .cs-field__input.mage-error, .cs-field__input.mage-error:hover:not(:focus), .cs-field__textarea.mage-error, .cs-field__textarea.mage-error:hover:not(:focus),
    .cs-input__input.mage-error,
    .cs-input__input.mage-error:hover:not(:focus),
    .cs-input__textarea.mage-error,
    .cs-input__textarea.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .cs-field__input.required-entry, .cs-field__textarea.required-entry,
    .cs-input__input.required-entry,
    .cs-input__textarea.required-entry {
      margin-bottom: 0; }
    .cs-field__input::-moz-placeholder, .cs-field__textarea::-moz-placeholder, .cs-input__input::-moz-placeholder, .cs-input__textarea::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-field__input:-ms-input-placeholder, .cs-field__textarea:-ms-input-placeholder, .cs-input__input:-ms-input-placeholder, .cs-input__textarea:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-field__input::placeholder, .cs-field__textarea::placeholder,
    .cs-input__input::placeholder,
    .cs-input__textarea::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-field__input[disabled], .cs-field__textarea[disabled],
    .cs-input__input[disabled],
    .cs-input__textarea[disabled] {
      opacity: 1; }
    .cs-field__input.mage-error, .cs-field__input.mage-error:hover:not(:focus), .cs-field__textarea.mage-error, .cs-field__textarea.mage-error:hover:not(:focus),
    .cs-input__input.mage-error,
    .cs-input__input.mage-error:hover:not(:focus),
    .cs-input__textarea.mage-error,
    .cs-input__textarea.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
  .cs-field__select,
  .cs-input__select {
    display: block;
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    padding-right: 2.3em;
    color: #333333;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #ffffff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23d5d5d5'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .cs-field__select.mage-error, .cs-field__select.mage-error:hover:not(:focus),
    .cs-input__select.mage-error,
    .cs-input__select.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .cs-field__select.required-entry,
    .cs-input__select.required-entry {
      margin-bottom: 1rem; }
    .cs-field__select:-moz-focusring, .cs-field__select::-moz-focus-inner,
    .cs-input__select:-moz-focusring,
    .cs-input__select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__select:hover:not([disabled]), .cs-field__select:focus:not([disabled]),
    .cs-input__select:hover:not([disabled]),
    .cs-input__select:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1);
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23333333'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .cs-field__select[disabled],
    .cs-input__select[disabled] {
      opacity: 1; }
    .cs-field__select option,
    .cs-input__select option {
      padding: 0;
      color: initial; }
  .cs-field__radio,
  .cs-input__radio {
    display: inline-block;
    height: 1.9rem;
    width: 1.9rem;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s; }
    .cs-field__radio::-moz-focus-inner, .cs-field__radio:-moz-focusring,
    .cs-input__radio::-moz-focus-inner,
    .cs-input__radio:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__radio:hover:not([disabled]), .cs-field__radio:focus:not([disabled]),
    .cs-input__radio:hover:not([disabled]),
    .cs-input__radio:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: none;
      background-color: transparent; }
    .cs-field__radio:checked,
    .cs-input__radio:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23333333' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
      background-size: cover; }
      .cs-field__radio:checked, .cs-field__radio:checked:hover, .cs-field__radio:checked:focus,
      .cs-input__radio:checked,
      .cs-input__radio:checked:hover,
      .cs-input__radio:checked:focus {
        border: 1px solid #333333;
        background-color: transparent;
        box-shadow: none; }
    .cs-field__radio[disabled],
    .cs-field__radio[disabled] + .label,
    .cs-field__radio[disabled] + .cs-input__label,
    .cs-input__radio[disabled],
    .cs-input__radio[disabled] + .label,
    .cs-input__radio[disabled] + .cs-input__label {
      opacity: 1; }
  .cs-field__checkbox,
  .cs-input__checkbox {
    display: inline-block;
    height: 1.9rem;
    width: 1.9rem;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s;
    border-radius: 0;
    background-size: 1em 1em;
    background-color: #ffffff; }
    .cs-field__checkbox::-moz-focus-inner, .cs-field__checkbox:-moz-focusring,
    .cs-input__checkbox::-moz-focus-inner,
    .cs-input__checkbox:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__checkbox:hover:not([disabled]), .cs-field__checkbox:focus:not([disabled]),
    .cs-input__checkbox:hover:not([disabled]),
    .cs-input__checkbox:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: none;
      background-color: transparent; }
    .cs-field__checkbox:checked,
    .cs-input__checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23333333' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
      background-size: cover; }
      .cs-field__checkbox:checked, .cs-field__checkbox:checked:hover, .cs-field__checkbox:checked:focus,
      .cs-input__checkbox:checked,
      .cs-input__checkbox:checked:hover,
      .cs-input__checkbox:checked:focus {
        border: 1px solid #333333;
        background-color: transparent;
        box-shadow: none; }
    .cs-field__checkbox[disabled],
    .cs-field__checkbox[disabled] + .label,
    .cs-field__checkbox[disabled] + .cs-input__label,
    .cs-input__checkbox[disabled],
    .cs-input__checkbox[disabled] + .label,
    .cs-input__checkbox[disabled] + .cs-input__label {
      opacity: 1; }
    .cs-field__checkbox:checked,
    .cs-input__checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%23333333' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e"); }
    .cs-field__checkbox.mage-error, .cs-field__checkbox.mage-error:hover:not(:focus),
    .cs-input__checkbox.mage-error,
    .cs-input__checkbox.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
  .cs-field__icon,
  .cs-input__icon {
    position: absolute;
    width: 1.3em;
    height: 1.3em;
    right: 0.8em;
    top: 0.8em;
    display: none; }
  .cs-field__note,
  .cs-input__note {
    display: block;
    font-size: 0.85em;
    padding: 4px 0;
    color: #696969;
    margin-top: -1rem; }
  .cs-field__error,
  .cs-input__error {
    display: block;
    font-size: 0.85em;
    padding: 4px 0;
    color: #696969;
    margin-top: -1rem;
    color: #ff0018; }

.field {
  font-size: 1.6rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%; }
  .field._success:not(._warn) .control {
    position: relative; }
    .field._success:not(._warn) .control:after {
      position: absolute;
      width: 1.3em;
      height: 1.3em;
      right: 0.8em;
      top: 0.8em;
      display: none;
      background: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/check-green.svg") no-repeat center center/contain;
      content: ''; }
  .field .control {
    width: 100%; }
    .field .control > textarea {
      font-size: 1.6rem;
      line-height: 2.6rem;
      padding: 1rem 2.3rem;
      color: #333333;
      background: #ffffff;
      border-radius: 24px;
      border: 1px solid #d5d5d5;
      box-shadow: none;
      transition: border-color 0.5s;
      margin: 0 0 0.2em;
      width: 100%;
      height: 4.8rem;
      background-clip: padding-box;
      font-family: inherit; }
      .field .control > textarea:hover:not([disabled]), .field .control > textarea:focus:not([disabled]) {
        border: 1px solid #333333;
        box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
      .field .control > textarea.mage-error, .field .control > textarea.mage-error:hover:not(:focus) {
        border: 1px solid #ff0018; }
      .field .control > textarea.required-entry {
        margin-bottom: 0; }
      .field .control > textarea::-moz-placeholder {
        opacity: 1;
        font-size: 1.6rem;
        color: #333333;
        font-style: normal; }
      .field .control > textarea:-ms-input-placeholder {
        opacity: 1;
        font-size: 1.6rem;
        color: #333333;
        font-style: normal; }
      .field .control > textarea::placeholder {
        opacity: 1;
        font-size: 1.6rem;
        color: #333333;
        font-style: normal; }
      .field .control > textarea[disabled] {
        opacity: 1; }
  .field .label {
    font-weight: 400;
    font-size: 1.4rem;
    width: 100%;
    text-transform: none;
    color: inherit;
    padding: 4px 0; }
  .field.required > .label:after, .field._required > .label:after {
    content: " *";
    color: #ff0018;
    padding: 4px 0; }
  .field.required ._required > .label:after {
    display: none; }
  .field .input-text {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit; }
    .field .input-text:hover:not([disabled]), .field .input-text:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .field .input-text.mage-error, .field .input-text.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .field .input-text.required-entry {
      margin-bottom: 0; }
    .field .input-text::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .field .input-text:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .field .input-text::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .field .input-text[disabled] {
      opacity: 1; }
    .field .input-text.mage-error, .field .input-text.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .field .input-text.required-entry {
      margin-bottom: 1rem; }
  .field .select {
    display: block;
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    padding-right: 2.3em;
    color: #333333;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #ffffff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23d5d5d5'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .field .select.mage-error, .field .select.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .field .select.required-entry {
      margin-bottom: 1rem; }
    .field .select:-moz-focusring, .field .select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .select:hover:not([disabled]), .field .select:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1);
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23333333'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .field .select[disabled] {
      opacity: 1; }
    .field .select option {
      padding: 0;
      color: initial; }
  .field .checkbox {
    display: inline-block;
    height: 1.9rem;
    width: 1.9rem;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s;
    border-radius: 0;
    background-size: 1em 1em;
    background-color: #ffffff; }
    .field .checkbox::-moz-focus-inner, .field .checkbox:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .checkbox:hover:not([disabled]), .field .checkbox:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: none;
      background-color: transparent; }
    .field .checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23333333' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
      background-size: cover; }
      .field .checkbox:checked, .field .checkbox:checked:hover, .field .checkbox:checked:focus {
        border: 1px solid #333333;
        background-color: transparent;
        box-shadow: none; }
    .field .checkbox[disabled],
    .field .checkbox[disabled] + .label,
    .field .checkbox[disabled] + .cs-input__label {
      opacity: 1; }
    .field .checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%23333333' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e"); }
    .field .checkbox.mage-error, .field .checkbox.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
  .field .radio {
    display: inline-block;
    height: 1.9rem;
    width: 1.9rem;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s; }
    .field .radio::-moz-focus-inner, .field .radio:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .radio:hover:not([disabled]), .field .radio:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: none;
      background-color: transparent; }
    .field .radio:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23333333' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
      background-size: cover; }
      .field .radio:checked, .field .radio:checked:hover, .field .radio:checked:focus {
        border: 1px solid #333333;
        background-color: transparent;
        box-shadow: none; }
    .field .radio[disabled],
    .field .radio[disabled] + .label,
    .field .radio[disabled] + .cs-input__label {
      opacity: 1; }
  .field.customer-name-prefix select {
    display: block;
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    padding-right: 2.3em;
    color: #333333;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #ffffff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23d5d5d5'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .field.customer-name-prefix select.mage-error, .field.customer-name-prefix select.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .field.customer-name-prefix select.required-entry {
      margin-bottom: 1rem; }
    .field.customer-name-prefix select:-moz-focusring, .field.customer-name-prefix select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field.customer-name-prefix select:hover:not([disabled]), .field.customer-name-prefix select:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1);
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23333333'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .field.customer-name-prefix select[disabled] {
      opacity: 1; }
    .field.customer-name-prefix select option {
      padding: 0;
      color: initial; }
  .field.field-dob input {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit; }
    .field.field-dob input:hover:not([disabled]), .field.field-dob input:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .field.field-dob input.mage-error, .field.field-dob input.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .field.field-dob input.required-entry {
      margin-bottom: 0; }
    .field.field-dob input::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .field.field-dob input:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .field.field-dob input::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .field.field-dob input[disabled] {
      opacity: 1; }
    .field.field-dob input.mage-error, .field.field-dob input.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
  .field.field-dob button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .field.field-dob button, .field.field-dob button:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .field.field-dob button:hover:not([disabled]), .field.field-dob button:focus:not([disabled]), .field.field-dob button:active:not([disabled]), .field.field-dob button:visited:hover:not([disabled]), .field.field-dob button:visited:focus:not([disabled]), .field.field-dob button:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .field.field-dob button[disabled], .field.field-dob button:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .field.field-dob button span {
    font-size: 1.6rem; }
  .field._error .input-text, .field._error .input-text:hover:not(:focus),
  .field._error .checkbox,
  .field._error .checkbox:hover:not(:focus) {
    border: 1px solid #ff0018; }
  .field .control._with-tooltip input {
    width: 100%;
    margin-right: 0; }
  .field .field-tooltip {
    position: static; }
    .field .field-tooltip .label,
    .field .field-tooltip .field-tooltip-action {
      display: none; }
    .field .field-tooltip .field-tooltip-content {
      position: static;
      background: none;
      border: none;
      display: block;
      font-size: 0.85em;
      padding: 4px 0;
      color: #696969;
      margin-top: -1rem; }
      .field .field-tooltip .field-tooltip-content:before, .field .field-tooltip .field-tooltip-content:after {
        display: none; }
  .field .note {
    display: block;
    font-size: 0.85em;
    padding: 4px 0;
    color: #696969;
    margin-top: -1rem; }

div.mage-error,
div.field-error {
  display: block;
  font-size: 0.85em;
  padding: 4px 0;
  color: #696969;
  margin-top: -1rem;
  color: #ff0018; }

/* stylelint-enable */
.field:empty {
  display: none !important; }

.field textarea {
  max-width: 100%;
  min-height: 80px;
  min-width: 100%; }

.field .mage-error {
  margin-top: 0; }

.field-tooltip-content {
  margin-top: 0 !important; }

/**
 * Footer component customization.
 * @see /Magento_Theme/templates/footer/columns.phtml for templates.
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-footer {
  position: relative;
  padding-top: 80px;
  background: linear-gradient(90deg, #272727 0%, #424242 100%); }
  .cms-kontakt .cs-footer,
  .cms-serwis .cs-footer {
    margin-top: 75px; }
  .cms-o-nas .cs-footer {
    margin-top: 0; }
  @media (max-width: 47.99em) {
    .cs-footer {
      margin-top: 260px; }
      .cs-footer:before {
        content: "";
        position: absolute;
        top: -260px;
        left: 0;
        height: 260px;
        width: 100%;
        background-color: #f7f7f7; } }
  .cs-footer .cs-container__inner:after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, #3c3c3c 0%, #424242 100%);
    right: calc(-75% - 15px);
    top: 0;
    position: absolute; }
  @media (max-width: 47.99em) {
    .cs-footer .cs-container__inner:after {
      top: unset;
      bottom: 0px;
      left: -15px;
      height: 390px;
      width: calc(100% + 30px); } }
  .cs-footer p {
    margin: 0; }
  .cs-footer .footer__additional_info_wrapper {
    padding: 29px 50px 23px 50px;
    background-color: #fff;
    position: absolute;
    z-index: 1;
    top: -75px;
    width: 100%;
    display: flex;
    flex-direction: column;
    transform: translateY(-50%); }
    @media (max-width: 47.99em) {
      .cs-footer .footer__additional_info_wrapper {
        top: 10px; } }
  .cs-footer .footer__additional_info_title {
    color: #333333;
    font-size: 16px;
    font-weight: 300;
    letter-spacing: 0;
    line-height: 24px;
    text-align: center;
    margin-bottom: 20px; }
  .cs-footer .footer__additional_info_items {
    display: flex;
    justify-content: space-between; }
    @media (max-width: 47.99em) {
      .cs-footer .footer__additional_info_items {
        flex-direction: column;
        align-items: center; } }
  .cs-footer .footer__addtional_info_item {
    width: 33%;
    display: flex;
    align-items: center;
    position: relative;
    padding-left: 88px;
    min-height: 64px; }
    @media (max-width: 47.99em) {
      .cs-footer .footer__addtional_info_item {
        flex-direction: column;
        align-items: center;
        padding-top: 88px;
        min-height: 88px;
        padding-left: 0;
        width: 100%;
        justify-content: center;
        margin-bottom: 45px; } }
    .cs-footer .footer__addtional_info_item--availability:before, .cs-footer .footer__addtional_info_item--delivery:before, .cs-footer .footer__addtional_info_item--launch:before {
      content: "";
      width: 64px;
      height: 64px;
      display: block;
      position: absolute;
      left: 0;
      background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/footer/Dostepnosc.svg");
      background-size: cover;
      background-repeat: no-repeat; }
      @media (max-width: 47.99em) {
        .cs-footer .footer__addtional_info_item--availability:before, .cs-footer .footer__addtional_info_item--delivery:before, .cs-footer .footer__addtional_info_item--launch:before {
          top: 0;
          left: unset; } }
    .cs-footer .footer__addtional_info_item--delivery:before {
      background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/footer/Szybka_wysylka.svg"); }
    .cs-footer .footer__addtional_info_item--launch:before {
      background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/footer/Automatyk.svg"); }
    .cs-footer .footer__addtional_info_item-title {
      color: #333;
      font-size: 16px;
      font-weight: 600;
      letter-spacing: 0;
      line-height: 24px;
      margin-bottom: 0;
      text-align: center; }
  .cs-footer .footer__wrapper {
    margin-top: 50px;
    position: relative;
    z-index: 1; }
    @media (max-width: 47.99em) {
      .cs-footer .footer__wrapper {
        margin-top: 370px; } }
  .cs-footer .footer__main-list {
    display: flex;
    justify-content: space-between;
    padding-bottom: 40px; }
    @media (max-width: 47.99em) {
      .cs-footer .footer__main-list {
        flex-direction: column; } }
    .cs-footer .footer__main-list-links-wrapper {
      display: flex;
      flex-direction: column; }
      .cs-footer .footer__main-list-links-wrapper p,
      .cs-footer .footer__main-list-links-wrapper a {
        color: #fff;
        font-size: 14px;
        font-weight: 300;
        letter-spacing: 0;
        line-height: 23px; }
      .cs-footer .footer__main-list-links-wrapper a {
        text-decoration: none; }
        @media (max-width: 47.99em) {
          .cs-footer .footer__main-list-links-wrapper a {
            margin-top: 5px; } }
        .cs-footer .footer__main-list-links-wrapper a:hover {
          color: #fff;
          text-decoration: underline; }
    .cs-footer .footer__main-list-contact-item {
      padding-right: 15px; }
    .cs-footer .footer__main-list-links-item {
      display: flex;
      flex-direction: column;
      width: 21%; }
      @media (max-width: 47.99em) {
        .cs-footer .footer__main-list-links-item {
          width: 100%;
          border-bottom: 1px solid #878787;
          padding-bottom: 16px;
          margin-bottom: 16px; } }
    .cs-footer .footer__main-list-links-title {
      color: #fff;
      font-size: 16px;
      font-weight: 600;
      letter-spacing: 0;
      line-height: 26px;
      margin-bottom: 16px;
      position: relative; }
      @media (max-width: 47.99em) {
        .cs-footer .footer__main-list-links-title {
          margin-bottom: 0; }
          .cs-footer .footer__main-list-links-title:after {
            content: "+";
            display: block;
            position: absolute;
            top: 0;
            right: 0;
            font-size: 32px;
            font-weight: 300; }
          .cs-footer .footer__main-list-links-title.active {
            margin-bottom: 16px; }
            .cs-footer .footer__main-list-links-title.active:after {
              content: "-";
              right: 5px; } }
    .cs-footer .footer__main-list-address-wrapper, .cs-footer .footer__main-list-phone-wrapper, .cs-footer .footer__main-list-mail-wrapper {
      display: flex; }
      .cs-footer .footer__main-list-address-wrapper .footer__main-list-contact-icon-wrapper, .cs-footer .footer__main-list-phone-wrapper .footer__main-list-contact-icon-wrapper, .cs-footer .footer__main-list-mail-wrapper .footer__main-list-contact-icon-wrapper {
        width: 24px;
        margin-right: 16px;
        position: relative; }
        .cs-footer .footer__main-list-address-wrapper .footer__main-list-contact-icon-wrapper:before, .cs-footer .footer__main-list-phone-wrapper .footer__main-list-contact-icon-wrapper:before, .cs-footer .footer__main-list-mail-wrapper .footer__main-list-contact-icon-wrapper:before {
          content: "";
          width: 24px;
          height: 24px;
          display: block;
          position: absolute;
          left: 0;
          background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/footer/siedziba.svg");
          background-size: cover;
          background-repeat: no-repeat; }
    .cs-footer .footer__main-list-address-wrapper {
      margin-top: 24px; }
    .cs-footer .footer__main-list-mail-wrapper {
      margin-top: 16px; }
      .cs-footer .footer__main-list-mail-wrapper .footer__main-list-contact-icon-wrapper::before {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/footer/mail.svg"); }
      .cs-footer .footer__main-list-mail-wrapper a {
        color: #fff;
        font-size: 14px;
        font-weight: 300;
        letter-spacing: 0;
        line-height: 23px;
        text-decoration: underline; }
    .cs-footer .footer__main-list-phone-wrapper {
      margin-top: 42px; }
      @media (max-width: 47.99em) {
        .cs-footer .footer__main-list-phone-wrapper {
          margin-top: 82px; } }
      .cs-footer .footer__main-list-phone-wrapper .footer__main-list-contact-icon-wrapper::before {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/footer/infolinia.svg"); }
      .cs-footer .footer__main-list-phone-wrapper .footer__main-list-contact-text-wrapper p {
        color: #d5d5d5; }
      .cs-footer .footer__main-list-phone-wrapper .footer__main-list-contact-text-wrapper span {
        color: #fff; }
    .cs-footer .footer__main-list-contact-text-wrapper {
      color: #fff;
      font-size: 14px;
      font-weight: 300;
      letter-spacing: 0;
      line-height: 23px; }
    .cs-footer .footer__main-list-phone-text {
      color: #fff;
      font-size: 24px;
      font-weight: 300;
      letter-spacing: 0;
      line-height: 40px; }
  .cs-footer .footer__text--bold {
    font-weight: 600; }
  .cs-footer .footer__info-list {
    border-top: 1px solid #979797;
    padding: 24px 0 44px 0;
    display: flex;
    justify-content: space-between; }
    @media (max-width: 47.99em) {
      .cs-footer .footer__info-list {
        flex-direction: column;
        align-items: center; } }
    @media (max-width: 47.99em) {
      .cs-footer .footer__info-list-links {
        margin-bottom: 30px; } }
    .cs-footer .footer__info-list-links a, .cs-footer .footer__info-list-copy {
      color: #fff;
      font-size: 14px;
      font-weight: 300;
      letter-spacing: 0;
      line-height: 23px;
      text-decoration: none;
      margin-right: 10px;
      position: relative; }
    .cs-footer .footer__info-list-links a:hover {
      color: #fff;
      text-decoration: underline; }
    .cs-footer .footer__info-list-links a:after {
      content: "";
      display: block;
      position: absolute;
      width: 1px;
      height: 100%;
      border-right: 1px solid #fff;
      right: -7px;
      top: 0; }
    .cs-footer .footer__info-list-links a:last-child::after {
      display: none; }
  .catalog-product-view .cs-footer {
    margin-top: 105px; }
    @media (max-width: 47.99em) {
      .catalog-product-view .cs-footer {
        margin-top: 260px; } }
    .catalog-product-view .cs-footer:before {
      content: "";
      display: block;
      width: 100%;
      height: 110px;
      background: #f7f7f7;
      position: absolute;
      top: -110px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-footer-links {
  margin: 0;
  padding: 0;
  list-style: none; }
  .cs-footer-links__item {
    margin: 0 0 0.3em; }
  .cs-footer-links a, .cs-footer-links a:visited {
    color: #fff;
    text-decoration: none; }
  .cs-footer-links a:hover, .cs-footer-links a:focus, .cs-footer-links a:active, .cs-footer-links a:visited:hover, .cs-footer-links a:visited:focus {
    color: #fff;
    text-decoration: underline; }
  .cs-footer-links a, .cs-footer-links a:visited {
    display: block;
    padding: 0.5em 0;
    font-size: inherit; }
    @media (min-width: 48em) {
      .cs-footer-links a, .cs-footer-links a:visited {
        padding: 0.35em 0;
        display: inline-block; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-headline {
  font-size: 1rem;
  clear: both;
  padding: 2em 0;
  margin: 2em 0;
  margin: 0;
  padding: 0;
  margin: 0 0 3rem; }
  @media (min-width: 48em) {
    .cs-headline {
      margin: 0 0 4rem; } }
  .cs-headline--skip-spacing {
    margin: 0; }
  .cs-headline__title {
    display: block;
    text-align: center;
    align-items: center;
    margin: 0;
    font-size: 2.6em;
    font-weight: 700;
    color: #212121;
    text-transform: none; }
    @media (min-width: 48em) {
      .cs-headline__title {
        display: flex; } }
    .cs-headline__title:before, .cs-headline__title:after {
      content: '';
      display: none;
      height: 1px;
      flex-grow: 1;
      background-color: #dcdcdc; }
      @media (min-width: 48em) {
        .cs-headline__title:before, .cs-headline__title:after {
          display: flex; } }
    .cs-headline__title:before {
      margin-right: 0.6em; }
    .cs-headline__title:after {
      margin-left: 0.6em; }
  .cs-headline__subtitle {
    color: #888;
    font-size: 1.3em;
    font-weight: 400;
    text-transform: none;
    margin: 0;
    display: none;
    text-align: center; }
    @media (min-width: 48em) {
      .cs-headline__subtitle {
        display: block; } }

@media (max-width: 47.99em) {
  .cms-kma-home-page .cs-container.cs-container--headline {
    position: relative;
    z-index: 1; } }

.cms-kma-home-page h2.cs-headline__title,
.cms-kma-home-page h3.cs-headline__title,
.cms-kma-home-page h4.cs-headline__title {
  display: block;
  color: #333333;
  font-family: "Poppins";
  font-size: 42px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 60px;
  margin-bottom: 6px;
  text-align: left; }
  .cms-kma-home-page h2.cs-headline__title::before, .cms-kma-home-page h2.cs-headline__title::after,
  .cms-kma-home-page h3.cs-headline__title::before,
  .cms-kma-home-page h3.cs-headline__title::after,
  .cms-kma-home-page h4.cs-headline__title::before,
  .cms-kma-home-page h4.cs-headline__title::after {
    display: none; }

@media (max-width: 47.99em) {
  .cms-kma-home-page h2.cs-headline__title {
    text-align: center;
    font-size: 28px;
    line-height: 42px; } }

.cms-kma-home-page h3.cs-headline__title {
  text-align: center; }
  @media (max-width: 47.99em) {
    .cms-kma-home-page h3.cs-headline__title {
      font-size: 28px;
      line-height: 42px; } }

.cms-kma-home-page h4.cs-headline__title {
  font-size: 24px;
  text-align: center;
  position: relative;
  z-index: 9; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Variables related to sticky header and topbar on mobile devices.
 * to prevent page jumping when offacnvas (fixed positioned) is opened
 * If you have more elements on top, you have to include their height.
 */
@media (max-width: 63.99em) {
  .cs-container--header {
    padding-left: 0;
    padding-right: 0; } }

/**
     * Styles related to sticky header and topbar on mobile devices.
     * to prevent page jumping when offacnvas (fixed positioned) is opened
     */
@media (max-width: 63.99em) {
  .navigation-offcanvas-open .page-wrapper.no-scroll-child {
    padding-top: 8.3rem; } }

@media (max-width: 47.99em) {
  .navigation-offcanvas-open .page-wrapper.no-scroll-child {
    padding-top: 5rem; } }

@media (max-width: 63.99em) {
  .cs-container--header {
    position: sticky;
    z-index: 800;
    top: 0;
    /**
                 * Fixed positioning required to work with offcanvas elements.
                 * Also, as a fallback for IE which does not support sticky.
                 */ }
    .navigation-offcanvas-open.no-scroll .cs-container--header,
    .cs-container--header .ie11 {
      position: fixed; } }

@media (max-width: 47.99em) {
  .cs-container--header {
    top: 0; } }

.cs-header {
  font-size: 1rem;
  height: 5rem; }
  @media (min-width: 48em) {
    .cs-header {
      height: 8.3rem; } }
  @media (min-width: 80em) {
    .cs-header {
      height: 11rem; } }
  .cs-header__content {
    height: 5rem;
    z-index: 300;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    position: relative;
    max-width: 100vw; }
    @media (min-width: 48em) {
      .cs-header__content {
        height: 8.3rem; } }
    @media (min-width: 64em) {
      .cs-header__content {
        border-bottom: 1px solid #f0f0f0;
        flex-wrap: nowrap; } }
    @media (min-width: 80em) {
      .cs-header__content {
        height: 11rem; } }
  .cs-header__offcanvas-toggle {
    height: 100%;
    flex: 0 1 4rem; }
    @media (min-width: 64em) {
      .cs-header__offcanvas-toggle {
        display: none; } }
  .cs-header__logo {
    display: flex;
    flex: 1 1;
    margin-bottom: 0;
    height: 100%;
    padding: 0.7rem 0 0.7rem 0.7rem; }
    @media (min-width: 23.125em) {
      .cs-header__logo {
        padding: 0.7rem 0 0.7rem 1.5rem; } }
    @media (min-width: 48em) {
      .cs-header__logo {
        flex: 0 1 auto;
        padding: 0; } }
    .page-print .cs-header__logo {
      max-width: 120rem;
      width: 100%;
      margin: 0 auto;
      position: relative;
      height: auto;
      padding: 2rem 0; }
      .page-print .cs-header__logo:after {
        content: '';
        display: table;
        clear: both; }
  .cs-header__search {
    display: none;
    width: 100%;
    background-color: #fff;
    padding: 1rem;
    position: absolute;
    left: 0;
    right: 0;
    z-index: 300;
    top: 100%; }
    @media (min-width: 64em) {
      .cs-header__search {
        flex-grow: 1;
        width: auto;
        padding: 0;
        position: initial;
        margin-left: 2rem !important;
        justify-content: center; } }
    .cs-header__search--active {
      display: flex; }
    @media (min-width: 64em) {
      .cs-header__search {
        display: flex; } }
    @media (min-width: 64em) {
      .cs-header__search {
        position: relative;
        padding: 0;
        top: initial; } }
  .cs-header__user-nav {
    display: flex;
    justify-content: flex-end;
    flex: 0 1 30%; }
    @media (min-width: 64em) {
      .cs-header__user-nav {
        flex: 0 1 25%; } }
  .cs-header__back-button {
    border-right: 1px solid #dcdcdc;
    height: 100%;
    display: flex;
    padding: 0 1rem;
    align-items: center;
    justify-content: center;
    min-width: 4rem; }
    @media (min-width: 23.125em) {
      .cs-header__back-button {
        padding: 0 1.5rem; } }
    @media (min-width: 48em) {
      .cs-header__back-button {
        display: none; } }
  .cs-header__back-button-icon {
    fill: #888;
    height: 2.5rem; }
    @media (max-width: 23.115em) {
      .cs-header__back-button-icon {
        height: 2rem; } }

.cs-header .navigation {
  margin-left: 3rem; }
  .cs-header .navigation > .ninjamenus {
    position: static; }
    .cs-header .navigation > .ninjamenus > .compare {
      position: absolute;
      top: 2.5rem;
      left: 1.5rem;
      width: 3rem;
      height: 3rem; }
      @media (min-width: 64em) {
        .cs-header .navigation > .ninjamenus > .compare {
          display: none; } }
      .cs-header .navigation > .ninjamenus > .compare .cs-header-user-nav__qty-counter--compare {
        top: -1rem;
        right: -1rem; }
      .cs-header .navigation > .ninjamenus > .compare .cs-header-user-nav__label {
        bottom: -15px; }
    .cs-header .navigation > .ninjamenus .magezon-builder {
      position: static; }
      .cs-header .navigation > .ninjamenus .magezon-builder > .level0 {
        padding-bottom: 2px; }
  @media (min-width: 64em) {
    .cs-header .navigation {
      padding: 0; }
      .cs-header .navigation .switcher,
      .cs-header .navigation .ninjamenus-close {
        display: none !important; }
      .cs-header .navigation div.nav-item.level0.active > a {
        border-color: #c1272f !important; }
      .cs-header .navigation div.nav-item.level0:hover > a {
        background: none !important;
        color: #c1272f !important; }
      .cs-header .navigation div.nav-item.level0.mega.mgz-element > a {
        border-bottom: 2px solid transparent;
        transition: 0.3s all; }
      .cs-header .navigation div.nav-item.level0.mega.mgz-element:hover > a {
        color: #c1272f !important;
        background: none !important;
        border-color: #c1272f; }
      .cs-header .navigation .nav-items-column > a {
        color: #333333 !important;
        transition: 0.3s color; }
        .cs-header .navigation .nav-items-column > a:hover {
          color: #c1272f !important; }
      .cs-header .navigation .nav-items-column .nav-item a {
        font-size: 1.4rem;
        font-weight: 300;
        color: #333333;
        line-height: 30px;
        transition: 0.3s color; }
        .cs-header .navigation .nav-items-column .nav-item a:hover {
          color: #c1272f; }
      .cs-header .navigation .mgz-element-heading-text {
        padding-block: 0.5rem; }
      .cs-header .navigation .mgz-tabs-nav .mgz-tabs-tab-title > a {
        display: flex;
        align-items: center;
        border-bottom: 1px solid #d5d5d5 !important;
        border-radius: 0;
        padding-inline: 0;
        transition: 0.3s all;
        min-width: 240px;
        font-size: 1.4rem; }
        .cs-header .navigation .mgz-tabs-nav .mgz-tabs-tab-title > a .mgz-fa-angle-right {
          margin-left: auto;
          padding-left: 2rem; }
      .cs-header .navigation .mgz-tabs-nav .mgz-tabs-tab-title.mgz-active > a {
        background: none !important;
        color: #c1272f !important;
        font-weight: 600; }
      .cs-header .navigation .bottom-links-outer {
        background-color: #f7f7f7; }
        .cs-header .navigation .bottom-links-outer .bottom-links ul {
          display: flex;
          align-items: center;
          margin: 0;
          padding: 0.5rem 0; }
          .cs-header .navigation .bottom-links-outer .bottom-links ul li {
            margin: 0;
            color: #878787;
            font-size: 1.6rem; }
            .cs-header .navigation .bottom-links-outer .bottom-links ul li a {
              display: block;
              font-weight: 600;
              color: #c1272f;
              padding-block: 0.5rem;
              font-size: 1.6rem; }
            .cs-header .navigation .bottom-links-outer .bottom-links ul li:nth-child(n + 2) {
              padding-inline: 2rem; }
            .cs-header .navigation .bottom-links-outer .bottom-links ul li:nth-child(2) {
              border-right: 1px solid #d5d5d5; } }
  @media (max-width: 63.99em) {
    .cs-header .navigation {
      margin: 0;
      padding-right: 0; }
      .cs-header .navigation > .ninjamenus-desktop {
        display: none; }
      .cs-header .navigation .ninjamenus-hamburger-trigger {
        background: none !important;
        display: block; }
        .cs-header .navigation .ninjamenus-hamburger-trigger .menu-trigger-inner {
          background-color: transparent;
          padding-inline: 5px; }
          .cs-header .navigation .ninjamenus-hamburger-trigger .menu-trigger-inner .trigger-icon {
            margin-right: 0; }
          .cs-header .navigation .ninjamenus-hamburger-trigger .menu-trigger-inner .label {
            display: none; }
          .cs-header .navigation .ninjamenus-hamburger-trigger .menu-trigger-inner .line {
            background-color: #333333 !important;
            height: 1px;
            margin-block: 5px;
            z-index: 9; }
      .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus {
        max-width: 100vw;
        background: #ffffff;
        position: fixed;
        z-index: 9;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        padding-top: 8rem; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus.active > .drilldown-root > .drilldown-root {
          display: none !important; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus.active,
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus.active .ninjamenus-drilldown-back {
          background-color: #f7f7f7 !important; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus.active > .drilldown-root > .mgz-element-inner {
          background-color: #ffffff;
          width: calc(100% + 3rem) !important;
          position: absolute;
          top: 7rem;
          right: 1.5rem;
          left: 1.5rem;
          max-width: 100%; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus.active > .drilldown-root > .mgz-element-inner > .mgz-element {
            background-color: #ffffff; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus.active .switcher {
          display: none; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer {
          background-color: #ffffff; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links {
            margin-block: 2rem 6rem; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links ul {
              padding: 0; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links ul li {
                display: flex;
                align-items: center;
                font-size: 1.4rem;
                font-weight: 400; }
                .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links ul li:first-child {
                  color: #333333;
                  margin-bottom: 2rem; }
                .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links ul li:nth-child(2)::before {
                  content: "";
                  display: block;
                  margin-right: 1rem;
                  width: 16px;
                  height: 16px;
                  background-repeat: no-repeat;
                  background-size: contain;
                  background-position: center;
                  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/promotion.svg"); }
                .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links ul li:nth-child(3)::before {
                  content: "";
                  display: block;
                  margin-right: 1rem;
                  width: 16px;
                  height: 16px;
                  background-repeat: no-repeat;
                  background-size: contain;
                  background-position: center;
                  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/new.svg"); }
                .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links ul li a {
                  font-weight: 600;
                  color: #000000 !important; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus > div {
          height: auto;
          padding-inline: 1.5rem; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root {
          width: 100% !important; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root > .mgz-element-inner {
            background-color: #f7f7f7;
            margin-inline: -1.5rem;
            padding-inline: 1.5rem;
            border: none; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root > .mgz-element-inner > .ninjamenus-drilldown-back {
              background-color: #ffffff;
              border: none;
              text-align: left;
              font-size: 1.6rem;
              font-weight: 300;
              text-transform: initial;
              margin-inline: -1.5rem;
              padding-inline: 5rem 1.5rem;
              width: calc(100% + 3rem) !important; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root > .mgz-element-inner > .ninjamenus-drilldown-back::before {
                left: 2.5rem !important; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root > .mgz-element-inner .mgz-element-inner {
              padding: 0;
              margin: 0; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root > .mgz-element-inner .mgz-element-inner .title {
                font-weight: 300;
                color: #333333; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root .nav-item {
            padding-inline: 0; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root .nav-item > a {
              padding: 2rem 0;
              border-bottom: 1px solid #d5d5d5;
              font-size: 1.6rem;
              font-weight: 300;
              color: #333333; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root .nav-item > a > .mgz-fa-angle-right {
                display: none; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root .nav-item > a:hover {
                color: #333333 !important;
                background: transparent !important; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root .nav-item .opener {
              top: 50%;
              transform: translateY(-50%); }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root .nav-item .opener::before {
                left: unset;
                right: 0;
                transform: translateY(-50%); }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language {
          display: block;
          margin: 0; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language span {
            text-indent: 0 !important;
            line-height: 26px;
            color: inherit; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language span img {
              margin-bottom: 0; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency,
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language {
          width: 100%; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency .actions,
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language .actions {
            width: 100%; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency .actions .action,
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language .actions .action {
              padding-inline: 0; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency .actions .action span,
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language .actions .action span {
                font-weight: 300 !important; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency .actions .mage-dropdown-dialog,
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language .actions .mage-dropdown-dialog {
              position: relative;
              top: 0; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency .actions .mage-dropdown-dialog > ul,
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language .actions .mage-dropdown-dialog > ul {
                border: none !important; }
                .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency .actions .mage-dropdown-dialog > ul a,
                .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language .actions .mage-dropdown-dialog > ul a {
                  padding-inline: 0;
                  font-weight: 300; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .ninjamenus-close {
          position: absolute;
          top: 2.5rem;
          right: 1rem;
          z-index: 2;
          background: none;
          border: none;
          padding: 0; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .ninjamenus-close .label {
            display: block;
            text-indent: -9999px;
            width: 0;
            height: 0;
            overflow: hidden;
            color: transparent;
            visibility: hidden; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .ninjamenus-close::after {
            content: "";
            display: inline-flex;
            background: center no-repeat url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/x.svg");
            background-size: contain;
            height: 3rem;
            width: 3rem; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-opener.drilldown-back {
          width: 100%; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-opener:hover {
          background-color: transparent; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-opener::before {
          font-size: 12px !important;
          transform: translate(0, -50%);
          left: 19px; }
      .cs-header .navigation .mgz-tabs-tab-content {
        display: block !important; }
        .cs-header .navigation .mgz-tabs-tab-content .mgz-element-inner {
          padding: 0 !important; }
      .cs-header .navigation .mgz-tabs .mgz-tabs-tab-content .mgz-single-image-wrapper,
      .cs-header .navigation .mgz-element-heading,
      .cs-header .navigation .links,
      .cs-header .navigation .mgz-tabs-tab-title {
        display: none !important; }
      .cs-header .navigation .nav-item.level0 .title {
        font-weight: 600 !important; } }
  .cs-header .navigation .nav-item.level0.active > a {
    background-color: transparent !important;
    color: #c1272f !important;
    border-bottom: 2px solid #c1272f; }
  .cs-header .navigation .nav-item.level0.mega.mgz-element:hover > a {
    background: none !important;
    color: #000000 !important; }
  .cs-header .navigation .nav-item.level0.mega:hover > a {
    color: #ffffff !important;
    background: #c1272f !important; }
  .cs-header .navigation .nav-item.level0 > a {
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 26px;
    padding-block: 2.7rem; }
    .cs-header .navigation .nav-item.level0 > a:hover {
      color: #c1272f;
      background: none; }
  .cs-header .navigation .block-title {
    font-size: 1.8rem;
    font-weight: 600;
    color: #333333;
    text-align: left;
    margin-bottom: 1rem; }
  .cs-header .navigation .product-items {
    padding: 0; }
    .cs-header .navigation .product-items .product-item {
      width: 100% !important;
      border: 1px solid #e5e5e5;
      border-radius: 8px;
      transition: 0.3s all;
      padding-bottom: 1rem;
      position: relative;
      min-height: 500px; }
      .cs-header .navigation .product-items .product-item:hover {
        box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.15); }
        .cs-header .navigation .product-items .product-item:hover .actions-secondary,
        .cs-header .navigation .product-items .product-item:hover .actions-primary {
          display: block; }
        .cs-header .navigation .product-items .product-item:hover .price-box,
        .cs-header .navigation .product-items .product-item:hover .product-item-name {
          display: none !important; }
      .cs-header .navigation .product-items .product-item-info {
        display: flex;
        flex-direction: column;
        width: 100%; }
        .cs-header .navigation .product-items .product-item-info .product-image-container {
          width: 100% !important; }
          .cs-header .navigation .product-items .product-item-info .product-image-container .product-image-wrapper {
            padding: 45% !important; }
            .cs-header .navigation .product-items .product-item-info .product-image-container .product-image-wrapper > img {
              margin: 0 auto !important; }
      .cs-header .navigation .product-items .product-item-details {
        display: flex;
        flex-direction: column;
        margin-top: 1rem;
        padding: 0 4rem 3rem; }
        .cs-header .navigation .product-items .product-item-details .price-box {
          padding-top: 3rem; }
          .cs-header .navigation .product-items .product-item-details .price-box .price-wrapper {
            position: relative; }
          .cs-header .navigation .product-items .product-item-details .price-box .special-price .price-excluding-tax {
            margin-left: -0.5rem; }
          .cs-header .navigation .product-items .product-item-details .price-box .old-price .price-including-tax .price {
            position: absolute;
            left: 9.5rem;
            bottom: -1.6rem; }
            @media (max-width: 29.99em) {
              .cs-header .navigation .product-items .product-item-details .price-box .old-price .price-including-tax .price {
                left: 9rem; } }
          .cs-header .navigation .product-items .product-item-details .price-box .old-price .price-excluding-tax .price {
            position: absolute;
            left: 9rem;
            top: -1.8rem; }
            @media (max-width: 30em) {
              .cs-header .navigation .product-items .product-item-details .price-box .old-price .price-excluding-tax .price {
                left: 8.5rem; } }
      .cs-header .navigation .product-items .product-item-name {
        text-align: center; }
      .cs-header .navigation .product-items .product-item-link {
        font-size: 16px;
        font-weight: 600;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        overflow: hidden; }
      .cs-header .navigation .product-items .product-item .badges {
        position: absolute;
        top: 1rem;
        left: 50%;
        transform: translateX(-50%);
        width: 19rem;
        justify-content: center; }
      .cs-header .navigation .product-items .product-item .product-reviews-summary.short {
        display: none; }
      .cs-header .navigation .product-items .product-item .special-price .price-container {
        height: 100%;
        justify-content: center; }
        .cs-header .navigation .product-items .product-item .special-price .price-container .price-excluding-tax .price {
          font-size: 1.8rem !important; }
      .cs-header .navigation .product-items .product-item .actions-primary {
        display: none;
        text-align: center; }
      .cs-header .navigation .product-items .product-item .tocart {
        cursor: pointer;
        background-color: #c1272f;
        border: none;
        width: 180px;
        text-align: center;
        font-weight: 500;
        font-size: 1.6rem;
        color: #ffffff;
        margin: auto;
        border-radius: 27px;
        transition: 0.3s all;
        display: block;
        padding: 1.25rem 2rem; }
        .cs-header .navigation .product-items .product-item .tocart:hover {
          background-color: #a20109; }
      .cs-header .navigation .product-items .product-item .actions-secondary {
        display: none;
        position: absolute;
        top: 2rem;
        right: 2rem;
        flex-direction: column;
        z-index: 1; }
        .cs-header .navigation .product-items .product-item .actions-secondary .action > span {
          text-indent: -9999px;
          overflow: hidden;
          width: 0;
          height: 0;
          visibility: hidden; }
        .cs-header .navigation .product-items .product-item .actions-secondary .action::before {
          content: "";
          display: block;
          width: 24px;
          height: 24px;
          margin-left: auto;
          background-size: contain;
          background-repeat: no-repeat; }
        .cs-header .navigation .product-items .product-item .actions-secondary .action.towishlist::before {
          background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/wishlist.svg"); }
        .cs-header .navigation .product-items .product-item .actions-secondary .action.tocompare::before {
          background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/compare.svg"); }

@media (min-width: 64.01em) {
  .navigation .nav-item.level0.active:after {
    border-bottom: 4px solid #c1272f;
    display: block;
    position: relative;
    top: -2px; }
    .navigation .nav-item.level0.active:after .title {
      color: #c1272f; }
  .cms-o-nas .navigation .nav-item.level0:nth-of-type(2) .title {
    color: #c1272f; }
  .cms-o-nas .navigation .nav-item.level0:nth-of-type(2):after {
    border-bottom: 4px solid #c1272f;
    display: block; }
  .cms-serwis .navigation .nav-item.level0:nth-of-type(3) .title {
    color: #c1272f; }
  .cms-serwis .navigation .nav-item.level0:nth-of-type(3):after {
    border-bottom: 4px solid #c1272f;
    display: block; }
  .cms-kontakt .navigation .nav-item.level0:nth-of-type(4) .title {
    color: #c1272f; }
  .cms-kontakt .navigation .nav-item.level0:nth-of-type(4):after {
    border-bottom: 4px solid #c1272f;
    display: block; } }

body.search-open {
  overflow-y: hidden !important;
  max-height: 100vh !important; }

.cms-kma-home-page .cs-container--header {
  border-bottom: none; }

.cms-kma-home-page .cs-container--top-bar + .cs-container--header {
  top: 40px; }

.cms-kma-home-page .cs-container--header {
  background: transparent;
  position: absolute; }

.cs-container--header {
  background-color: #ffffff;
  border-bottom: 1px solid #d5d5d5;
  position: relative;
  z-index: 202; }
  .cs-container--header .cs-container__inner {
    max-width: 160rem; }
  .cs-container--header > .cs-container__inner {
    position: static; }
  @media (max-width: 63.99em) {
    .cs-container--header {
      padding-left: 0;
      padding-right: 0; } }

.cs-header {
  height: 8rem;
  max-width: 100vw; }
  .cs-header__content {
    padding-inline: 4rem;
    background: none;
    border: none;
    height: 8rem;
    position: static;
    flex-wrap: nowrap; }
    @media (max-width: 64em) {
      .cs-header__content > .cs-topbar__item--currency,
      .cs-header__content .switcher.language {
        display: none; } }
    @media (max-width: 64em) {
      .cs-header__content {
        padding-inline: 0; } }
  @media (max-width: 64em) {
    .cs-header__logo {
      padding-left: 1.5rem; } }
  @media (max-width: 63.99em) {
    .cs-header .nav-sections {
      order: -1; } }
  .cs-header__search {
    display: none;
    position: fixed;
    margin-inline: 0 !important;
    max-width: 100vw; }
    .cs-header__search--active {
      display: block;
      top: 0;
      bottom: 0; }
    @media (max-width: 64em) {
      .cs-header__search {
        padding: 0; } }
  .cs-header-search {
    margin: 0;
    width: 100% !important;
    height: 100%;
    max-width: unset !important; }
    .cs-header-search__wrapper {
      background-color: #f7f7f7;
      padding-block: 8rem 4rem;
      max-width: 100vw; }
      @media (max-width: 64em) {
        .cs-header-search__wrapper {
          padding-inline: 1.5rem; } }
    .cs-header-search__most-searched {
      background-color: #ffffff;
      max-width: 77rem;
      margin: 4rem auto 1rem; }
      @media (max-width: 64em) {
        .cs-header-search__most-searched {
          padding-inline: 1.5rem; } }
      .cs-header-search__most-searched[style*="display: none"] ~ .search-autocomplete {
        display: block !important;
        padding-bottom: 2rem; }
      .cs-header-search__most-searched h3 {
        color: #333333;
        font-size: 1.8rem;
        letter-spacing: initial;
        margin: 0; }
      .cs-header-search__most-searched ul {
        margin: 4rem 0 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex-wrap: wrap; }
        .cs-header-search__most-searched ul li {
          display: flex;
          align-items: center;
          font-size: 1.6rem;
          font-weight: 300;
          flex-basis: 380px; }
          .cs-header-search__most-searched ul li a:hover {
            color: #c1272f;
            text-decoration: underline; }
          .cs-header-search__most-searched ul li::before {
            content: "";
            display: inline-block;
            width: 1.5rem;
            height: 1.5rem;
            background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+Y2hlY2s8L3RpdGxlPgogICAgPGcgaWQ9ImNoZWNrIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8cGF0aCBkPSJNMTEuOTE3MzA4MiwzLjcyMjY0OTkgQzEyLjA3MDQ4NDQsMy40OTI4ODU1NiAxMi4zODA5MTkxLDMuNDMwNzk4NjIgMTIuNjEwNjgzNCwzLjU4Mzk3NDg1IEMxMi44MTQ5MTg0LDMuNzIwMTMxNSAxMi44ODY2Njc1LDMuOTgwNTQxNzMgMTIuNzkyNTA5OCw0LjE5ODEwMDU3IEwxMi43NDkzNTg1LDQuMjc3MzUwMSBMNy40MTYwMjUxNSwxMi4yNzczNTAxIEM3LjI1ODUwNjQ0LDEyLjUxMzYyODIgNi45NDE4ODA3NiwxMi41NjcwNDgzIDYuNzE3NDg0NjQsMTIuNDEyNzIzNCBMNi42NDY0NDY2MSwxMi4zNTM1NTM0IEwyLjY0NjQ0NjYxLDguMzUzNTUzMzkgQzIuNDUxMTg0NDYsOC4xNTgyOTEyNCAyLjQ1MTE4NDQ2LDcuODQxNzA4NzYgMi42NDY0NDY2MSw3LjY0NjQ0NjYxIEMyLjgyMDAxMjk2LDcuNDcyODgwMjYgMy4wODk0MzczNiw3LjQ1MzU5NTExIDMuMjg0MzA1NSw3LjU4ODU5MTE2IEwzLjM1MzU1MzM5LDcuNjQ2NDQ2NjEgTDYuOTIyLDExLjIxNSBMMTEuOTE3MzA4MiwzLjcyMjY0OTkgWiIgaWQ9IlBhdGgiIGZpbGw9IiNDMTI3MkYiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4=");
            background-repeat: no-repeat;
            background-size: contain;
            margin-right: 10px; }
    .cs-header-search__field {
      margin-top: 9rem;
      max-width: 77rem;
      margin: auto; }
      .cs-header-search__field::before, .cs-header-search__field::after {
        display: none; }
      .cs-header-search__field input::-moz-placeholder {
        color: rgba(51, 51, 51, 0.5); }
      .cs-header-search__field input:-ms-input-placeholder {
        color: rgba(51, 51, 51, 0.5); }
      .cs-header-search__field input::placeholder {
        color: rgba(51, 51, 51, 0.5); }
    .cs-header-search__close {
      position: fixed;
      top: 6rem;
      right: 8rem; }
      .cs-header-search__close-icon {
        display: block !important;
        width: 4.3rem !important;
        height: 3.3rem !important;
        opacity: 1 !important;
        margin: 0 !important; }
      @media (max-width: 64em) {
        .cs-header-search__close {
          top: 2rem;
          right: 1rem; } }
    .cs-header-search__button {
      background: none !important;
      border: none !important;
      margin-right: 1rem !important; }
      .cs-header-search__button-icon--search path {
        fill: #000000 !important; }
      .cs-header-search__button-icon--loader {
        stroke: #000000 !important; }
    .cs-header-search__input {
      border: 1px solid #000000 !important;
      height: 6rem !important;
      background-color: transparent !important; }
      .cs-header-search__input::-moz-placeholder {
        color: #333333;
        font-size: 1.8rem;
        font-weight: 300; }
      .cs-header-search__input:-ms-input-placeholder {
        color: #333333;
        font-size: 1.8rem;
        font-weight: 300; }
      .cs-header-search__input::placeholder {
        color: #333333;
        font-size: 1.8rem;
        font-weight: 300; }
    .cs-header-search__autocomplete {
      position: static !important;
      bottom: 0;
      height: 100%;
      box-shadow: none !important;
      transform: none !important;
      left: 0 !important;
      height: calc(100vh - 180px);
      overflow-y: scroll; }
      @media (max-width: 64em) {
        .cs-header-search__autocomplete {
          width: 100% !important;
          padding-inline: 2rem; } }
      .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result {
        padding-top: 2rem;
        max-width: 77rem;
        margin: auto; }
        .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list-title {
          color: #333333;
          font-size: 1.8rem;
          letter-spacing: initial;
          text-transform: initial;
          margin: 0; }
        .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category {
          flex-wrap: wrap;
          align-items: flex-start; }
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd {
            position: relative; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd::before, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd::before {
              content: "\2713";
              color: #c1272f;
              margin-right: 10px;
              font-size: 2rem; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd .qs-option-name,
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd .category-mini-crumb, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd .qs-option-name,
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd .category-mini-crumb {
              font-size: 1.6rem; }
              .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd .qs-option-name strong,
              .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd .category-mini-crumb strong, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd .qs-option-name strong,
              .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd .category-mini-crumb strong {
                font-weight: 400; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd .category-mini-crumb, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd .category-mini-crumb {
              margin-right: 5px; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd .amount, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd .amount {
              font-weight: 400; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd:hover, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd:hover {
              background: transparent; }
              .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd:hover .qs-option-name, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd:hover .qs-option-name {
                color: #c1272f;
                text-decoration: underline; }
        @media (max-width: 48em) {
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd:last-child {
            padding-bottom: 9rem; } }
        .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product {
          border: none; }
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .product-image-box {
            width: 100px;
            height: 100px;
            margin-right: 2rem; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .product-image-box > img {
              width: 100%;
              height: 100%; }
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .product-name {
            color: #333333;
            font-size: 1.6rem; }
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .price-box .price-wrapper {
            display: flex;
            align-items: center;
            font-size: 1.4rem;
            position: relative; }
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .price-box .price-final_price {
            color: #333333;
            font-size: 1.6rem;
            font-weight: 400; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .price-box .price-final_price .price {
              color: #333333;
              font-size: 1.6rem;
              font-weight: 600; }
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item:hover {
            background-color: transparent; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item:hover .product-name {
              text-decoration: underline;
              color: #c1272f; }
  .cs-header .ninjamenus.ninjamenus-desktop .left_edge_menu_bar > .item-submenu {
    width: auto !important; }

.level0 > .item-submenu {
  position: absolute;
  left: 0 !important;
  right: 0;
  border-top: none !important;
  padding: 10px 0 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-header-search {
  width: 100%; }
  @media (min-width: 64em) {
    .cs-header-search {
      width: 50%; } }
  .cs-header-search--in-offcanvas {
    position: relative; }
  .cs-header-search__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__field {
    position: relative; }
    .cs-header-search__field:before, .cs-header-search__field:after {
      content: '';
      position: absolute;
      opacity: 0;
      transition: opacity 0.3s;
      left: -0.5rem;
      right: -0.5rem;
      background: #fff; }
    .cs-header-search__field:before {
      content: '';
      position: absolute;
      box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.17);
      top: -0.5rem;
      bottom: -0.5rem;
      border-radius: 5px 5px 0 0; }
    .cs-header-search__field:after {
      content: '';
      position: absolute;
      bottom: -1rem;
      top: 100%;
      z-index: 209; }
    .active-popup .cs-header-search__field:before, .active-popup .cs-header-search__field:after {
      opacity: 1; }
  .cs-header-search__input {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit;
    font-size: 1.6rem;
    position: relative;
    z-index: 210;
    margin: 0;
    -webkit-appearance: none; }
    .cs-header-search__input:hover:not([disabled]), .cs-header-search__input:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .cs-header-search__input.mage-error, .cs-header-search__input.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .cs-header-search__input.required-entry {
      margin-bottom: 0; }
    .cs-header-search__input::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-header-search__input:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-header-search__input::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-header-search__input[disabled] {
      opacity: 1; }
    @media (min-width: 30em) {
      .cs-header-search__input {
        font-size: 1.4rem; } }
    .ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--search {
      transform: translateX(100%);
      opacity: 0; }
    .ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--loader {
      transform: translateX(0);
      opacity: 1; }
  .cs-header-search__action {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 220;
    overflow: hidden;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top-right-radius: 24px;
    border-bottom-right-radius: 24px; }
  .cs-header-search__close-icon {
    width: 1.5rem;
    height: 1.5rem;
    margin-right: 1rem;
    display: block;
    opacity: 0.6;
    transition: opacity 0.3s linear; }
    .cs-header-search__close-icon:hover {
      cursor: pointer;
      opacity: 1; }
    @media (min-width: 64em) {
      .cs-header-search__close-icon {
        display: none; } }
    .cs-header-search__close-icon path {
      fill: #888; }
  .cs-header-search__close-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__button-container {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    transition: transform 0.5s cubic-bezier(0, 0.66, 0.32, 0.99), opacity 0.15s linear; }
    .cs-header-search__button-container--search {
      transform: translateX(0); }
    .cs-header-search__button-container--loader {
      transform: translateX(100%); }
  .cs-header-search__button {
    width: 5rem;
    height: 100%;
    overflow: hidden;
    position: relative;
    border-radius: 0 !important;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    transform: translateX(0.7rem); }
    .cs-header-search__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-header-search__button, .cs-header-search__button:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-header-search__button:hover:not([disabled]), .cs-header-search__button:focus:not([disabled]), .cs-header-search__button:active:not([disabled]), .cs-header-search__button:visited:hover:not([disabled]), .cs-header-search__button:visited:focus:not([disabled]), .cs-header-search__button:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-header-search__button[disabled], .cs-header-search__button:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    .cs-header-search__button[disabled] {
      opacity: 1; }
  .cs-header-search__button-icon {
    transform: translateX(-0.3rem); }
    .cs-header-search__button-icon--search {
      width: 2rem;
      height: 2rem; }
      .cs-header-search__button-icon--search path {
        fill: #fff; }
    .cs-header-search__button-icon--loader {
      stroke: #fff;
      width: 3.2rem;
      height: 3.2rem; }
  .cs-header-search__button-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__autocomplete {
    width: calc(100% - 1rem);
    left: 0.5rem;
    right: 0.5rem; }
    @media (max-width: 47.99em) {
      .cs-header-search__autocomplete {
        max-height: calc( 100vh - 5rem - 2.6rem - 7rem);
        overflow-y: auto; } }
    @media (min-width: 64em) {
      .cs-header-search__autocomplete {
        margin-top: 0.5rem;
        left: 50%;
        transform: translateX(-50%);
        box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.17);
        border: 0;
        width: 100%; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1rem;
  height: 100%; }
  @media (max-width: 23.115em) {
    .cs-header-user-nav {
      padding: 0 0.7rem; } }
  .cs-header-user-nav__item {
    margin-bottom: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 1 1 25%; }
    @media (min-width: 64em) {
      .cs-header-user-nav__item {
        flex: 1 1 33.33333%; } }
    @media (min-width: 64em) {
      .cs-header-user-nav__item--search {
        display: none; } }
  .cs-header-user-nav__link {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    position: relative;
    width: 100%;
    padding: 1rem; }
    .cs-header-user-nav__link:hover {
      text-decoration: none; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
        fill: #324dcf; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__label {
        color: #696969; }
    .cs-header-user-nav__link--search:hover {
      cursor: pointer; }
  .cs-header-user-nav__icon-wrapper {
    position: relative; }
  .cs-header-user-nav__icon {
    width: 2.6rem;
    height: 2.6rem;
    display: block;
    margin: 0 auto; }
    .cs-header-user-nav__icon path {
      fill: #324dcf; }
  .cs-header-user-nav__label {
    text-transform: uppercase;
    font-size: 1rem;
    font-weight: 300;
    margin-top: 0.3rem;
    color: #696969;
    text-decoration: none;
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    @media (min-width: 48em) {
      .cs-header-user-nav__label {
        clip: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        padding: 0;
        position: static;
        width: auto;
        white-space: normal; } }
  .cs-header-user-nav__qty-counter {
    display: inline-flex;
    background-color: #324dcf;
    color: #fff;
    border: 0;
    border-radius: 0.2rem;
    padding: 0 0.6rem;
    position: relative;
    justify-content: center;
    align-items: center;
    font-size: 1rem;
    line-height: 100%;
    font-weight: 700;
    height: 1.8em;
    background-clip: padding-box;
    position: absolute;
    right: -0.5rem;
    top: -0.5rem;
    opacity: 0;
    transition: opacity 0.3s; }
    @media (min-width: 48em) {
      .cs-header-user-nav__qty-counter {
        right: -1rem; } }
    .cs-header-user-nav__qty-counter--wishlist {
      background-color: #fed400;
      color: #000; }
    .cs-header-user-nav__qty-counter--minicart {
      background-color: #e41f12;
      color: #fff; }
    .cs-header-user-nav__qty-counter--compare {
      background-color: #fed400;
      color: #000; }
    .cs-header-user-nav__qty-counter--have-items {
      opacity: 1; }
  .cs-header-user-nav__qty-counter-span {
    min-width: 1ch; }

.cs-header-user-nav {
  flex: 0 1 15%;
  margin-left: auto; }
  @media (max-width: 30em) {
    .cs-header-user-nav {
      flex-grow: 1;
      padding-right: 1.5rem !important; } }
  @media (max-width: 23.125em) {
    .cs-header-user-nav {
      padding-right: 0 !important; } }
  .cs-header-user-nav__qty-counter--minicart, .cs-header-user-nav__qty-counter--wishlist, .cs-header-user-nav__qty-counter--compare {
    bottom: 3.5rem;
    top: unset;
    right: 0;
    border-radius: 100%;
    width: 2rem;
    height: 2rem;
    padding: 0;
    align-items: center;
    line-height: normal;
    text-align: center; }
  .cs-header-user-nav__qty-counter--compare {
    background-color: #003666;
    color: #ffffff; }
  .cs-header-user-nav__qty-counter--minicart {
    background-color: #c1272f; }
  .cs-header-user-nav__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
    text-align: center;
    bottom: -3px; }
  .cs-header-user-nav__item {
    height: 100%;
    position: relative;
    width: 43px;
    max-width: 43px; }
    .cs-header-user-nav__item--search {
      display: flex !important; }
  .cs-header-user-nav__link {
    position: static;
    height: 100%; }
    @media (max-width: 30em) {
      .cs-header-user-nav__link {
        padding: 0 0.5rem; } }
    @media (max-width: 23.125em) {
      .cs-header-user-nav__link {
        padding-inline: 0; } }
    .cs-header-user-nav__link .cs-header-user-nav__label {
      opacity: 0;
      transition: 0.3s opacity;
      transition-delay: 1s; }
    .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
      fill: #c1272f; }
    .cs-header-user-nav__link:hover .cs-header-user-nav__label {
      width: auto;
      height: auto;
      clip: unset;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      opacity: 1; }
  .cs-header-user-nav__icon {
    width: 2.3rem;
    height: 2.3rem; }
    .cs-header-user-nav__icon path {
      fill: #000000; }
    .cs-header-user-nav__icon-wrapper {
      position: static; }
  @media (max-width: 48em) {
    .cs-header-user-nav {
      padding: 0; } }

.lazyload,
.lazyloading,
.swiper-lazy {
  opacity: 0.001; }

.lazyloaded,
.swiper-lazy-loaded {
  opacity: 1;
  transition: opacity 0.2s; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-links-block-addto {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%; }
  .page-product-bundle .cs-links-block-addto {
    margin-top: 1rem; }
  .cs-product-tile__addon .cs-links-block-addto {
    padding-top: 0; }
  .cs-links-block-addto--centered {
    justify-content: center; }
  .cs-links-block-addto__item {
    margin: 0; }
    .cs-links-block-addto__item + .cs-links-block-addto__item {
      margin-top: 0.5rem; }
    .cs-links-block-addto__item:nth-child(2n) {
      text-align: right; }
      .cs-links-block-addto__item:nth-child(2n) .cs-links-block-addto__icon {
        order: 2;
        margin-left: 0.5rem; }
  .cs-links-block-addto__link {
    display: flex;
    align-items: center;
    font-size: 1.2rem;
    color: #142b9e;
    transition: color 0.15s linear; }
    .cs-links-block-addto__link:hover {
      color: #142b9e;
      text-decoration: none; }
  .cs-links-block-addto__icon {
    width: 1.375em;
    height: 1.375em;
    margin-right: 0.4rem; }
    .cs-links-block-addto__icon path {
      fill: #888; }
    .cs-links-block-addto__icon--wishlist path {
      fill: #e41f12; }
    .cs-links-block-addto__icon--compare path {
      fill: #324dcf; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-links-block-addto {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%; }
  .page-product-bundle .cs-links-block-addto {
    margin-top: 1rem; }
  .cs-product-tile__addon .cs-links-block-addto {
    padding-top: 0; }
  .cs-links-block-addto--centered {
    justify-content: center; }
  .cs-links-block-addto__item {
    margin: 0; }
    .cs-links-block-addto__item + .cs-links-block-addto__item {
      margin-top: 0; }
    .cs-links-block-addto__item:nth-child(2n) {
      text-align: right; }
      .cs-links-block-addto__item:nth-child(2n) .cs-links-block-addto__icon {
        order: 2;
        margin-left: 0.5rem; }
  .cs-links-block-addto__link {
    display: flex;
    align-items: center;
    font-size: 2.4rem;
    color: #c1272f;
    transition: color 0.15s linear; }
    .cs-links-block-addto__link:hover {
      color: #c1272f;
      text-decoration: none; }
  .cs-links-block-addto__icon {
    width: 2.4rem;
    height: 2.4rem;
    margin-right: 0.4rem; }
    .cs-links-block-addto__icon path {
      fill: #333333; }
    .cs-links-block-addto__icon--wishlist path {
      fill: #333333; }
    .cs-links-block-addto__icon--wishlist:hover path {
      fill: #c1272f !important; }
    .cs-links-block-addto__icon--compare path {
      fill: #333333; }
    .cs-links-block-addto__icon--compare:hover path {
      fill: #c1272f !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-logo {
  height: 100%; }
  .cs-logo__image {
    height: 100%; }
    .cs-logo__image--desktop {
      display: none; }
      .checkout-index-index .cs-logo__image--desktop {
        display: block; }
      @media (min-width: 48em) {
        .cs-logo__image--desktop {
          display: block; } }
    .cs-logo__image--mobile {
      display: block; }
      @media (min-width: 48em) {
        .cs-logo__image--mobile {
          display: none; } }
      .checkout-index-index .cs-logo__image--mobile {
        display: none; }

.cs-logo {
  display: flex;
  align-items: center; }
  .cs-logo__image {
    max-width: 20rem;
    height: auto; }
    @media (max-width: 48em) {
      .cs-logo__image {
        max-width: 13rem; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.messages {
  max-width: 120rem;
  margin: 0 auto; }

.cs-messages__message,
.message {
  margin: 1rem 0;
  padding: 1.8rem 1rem 1.8rem;
  border-radius: 24px;
  background-repeat: no-repeat;
  background-position: 1.2rem center;
  background-size: 2rem 2rem;
  padding-left: 4.3rem; }

.cs-messages__message--success,
.message.success {
  background-color: rgba(49, 136, 98, 0.1);
  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/messages/icon-success.svg");
  border: none; }

.cs-messages__message--notice,
.message.warning {
  background-color: #fdf4ca;
  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/messages/icon-warning.svg");
  border: none; }

.cs-messages__message--info,
.message.info,
.message.notice {
  background-color: rgba(0, 54, 102, 0.1);
  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/messages/icon-info.svg");
  border: none; }

.cs-messages__message--error,
.message.error {
  background-color: rgba(255, 0, 24, 0.1);
  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/messages/icon-error.svg");
  border: none; }

.cs-messages__text,
.message span {
  color: #696969;
  font-size: 1.4rem; }

.cs-messages--space-top {
  margin-top: 1.5rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* prettier-ignore */
.cs-minicart__close {
  display: inline-block;
  background: none;
  box-sizing: content-box;
  border: 0;
  box-shadow: none;
  line-height: inherit;
  margin: 0;
  padding: 0;
  text-decoration: none;
  text-shadow: none;
  font-weight: 400;
  position: absolute;
  right: -1.5rem;
  width: 5rem;
  height: 5rem;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  right: 0.5rem; }
  .cs-minicart__close:focus, .cs-minicart__close:active, .cs-minicart__close:hover {
    background: transparent;
    border: none;
    color: inherit; }

.cs-minicart__close-icon {
  position: relative;
  transform: rotate(45deg);
  width: 100%;
  height: 100%;
  display: inline-block; }
  .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
    content: '';
    position: absolute;
    top: 50%;
    width: 2rem;
    height: 0.2rem;
    left: auto;
    background-color: #484848;
    transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden; }
  .cs-minicart__close-icon:hover:before, .cs-minicart__close-icon:hover:after {
    background-color: #696969; }
  .cs-minicart__close-icon[aria-expanded="true"]:before, .cs-minicart__close-icon[aria-expanded="true"]:after {
    background-color: #888; }
  .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
    right: 1.5rem;
    transform: translate3d(0, -50%, 0) !important; }
  .cs-minicart__close-icon:after {
    transform: translate3d(0, -50%, 0) rotate(90deg) !important; }
  .cs-minicart__close-icon[aria-expanded="true"]:before {
    transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
    opacity: 0; }
  .cs-minicart__close-icon[aria-expanded="true"]:after {
    transform: translate3d(0, -50%, 0) rotate(0) !important; }

.cs-minicart__close-text {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

.cs-minicart__title-wrapper {
  position: relative;
  padding: 2rem 0;
  display: flex;
  color: #212121;
  font-weight: 700;
  font-size: 1.8rem;
  margin: 0;
  padding: 1rem 2rem;
  font-size: 2.1rem;
  text-transform: uppercase;
  border-bottom: 1px solid #dcdcdc; }

.cs-minicart__items-total {
  margin-left: 0.5rem;
  color: #696969;
  font-weight: 400; }
  .cs-minicart__items-total:not(.cs-minicart__items-total--empty):before {
    content: '('; }
  .cs-minicart__items-total:not(.cs-minicart__items-total--empty):after {
    content: ')'; }
  .cs-minicart__items-total--empty .count {
    display: none; }

.cs-minicart__edit-link {
  font-weight: 700; }
  .cs-minicart__edit-link .cs-link__icon {
    padding: 0 0 0 1rem; }

.cs-minicart__content {
  height: auto !important;
  background-color: #fff;
  position: relative; }
  .cs-minicart__content .load.indicator:before {
    height: unset; }

.cs-minicart__list {
  padding: 0;
  list-style: none;
  margin-bottom: 0; }
  .cs-minicart__list--scroll {
    height: auto !important;
    max-height: calc(100vh - 36rem);
    overflow-y: auto; }
    @media (min-width: 48em) {
      .cs-minicart__list--scroll {
        max-height: calc(100vh - 38rem); }
        .is-tablet .cs-minicart__list--scroll {
          max-height: calc(100vh - 43rem); } }

.cs-minicart__list-item {
  padding: 1.5rem;
  border-bottom: 1px solid #dcdcdc;
  margin-bottom: 0;
  padding: 1.5rem 2rem; }
  .cs-minicart__list-item:last-child {
    border-bottom: none; }

.cs-minicart__actions-wrapper {
  padding: 2rem 0;
  position: relative;
  padding: 1.5rem 2rem;
  box-shadow: 0 -5px 5px -5px rgba(0, 0, 0, 0.27); }

.cs-minicart__actions {
  margin-top: 1rem; }
  .cs-minicart__actions:first-child {
    margin-top: 0; }

.cs-minicart__empty {
  padding: 2rem 0;
  display: inline-block;
  font-size: 1.4rem;
  text-align: center; }

.cs-minicart__subtotal {
  font-weight: 700;
  font-size: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.2rem; }

.cs-minicart__subtotal-price .price {
  font-weight: 700;
  font-size: 1.5rem !important;
  font-size: 2.1rem !important; }

.cs-minicart__button-checkout {
  width: 100%; }
  .cs-minicart__button-checkout::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-checkout, .cs-minicart__button-checkout:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-minicart__button-checkout:hover:not([disabled]), .cs-minicart__button-checkout:focus:not([disabled]), .cs-minicart__button-checkout:active:not([disabled]), .cs-minicart__button-checkout:visited:hover:not([disabled]), .cs-minicart__button-checkout:visited:focus:not([disabled]), .cs-minicart__button-checkout:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    .cs-minicart__button-checkout[disabled], .cs-minicart__button-checkout:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  .cs-minicart__button-checkout-span {
    font-size: 1.6rem;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-checkout-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none;
    /* stylelint-disable-next-line */ }

.cs-minicart__button-viewcart {
  width: 100%; }
  .cs-minicart__button-viewcart::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-viewcart, .cs-minicart__button-viewcart:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-minicart__button-viewcart:hover:not([disabled]), .cs-minicart__button-viewcart:focus:not([disabled]), .cs-minicart__button-viewcart:active:not([disabled]), .cs-minicart__button-viewcart:visited:hover:not([disabled]), .cs-minicart__button-viewcart:visited:focus:not([disabled]), .cs-minicart__button-viewcart:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-minicart__button-viewcart[disabled], .cs-minicart__button-viewcart:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .cs-minicart__button-viewcart-span {
    font-size: 1.6rem;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-viewcart-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none;
    /* stylelint-disable-next-line */ }

.cs-minicart__button-carousel-wrapper {
  display: flex;
  justify-content: center;
  padding-top: 3rem;
  margin: 3rem 0;
  border-top: 1px solid #dcdcdc; }

.cs-minicart__button-carousel::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-minicart__button-carousel, .cs-minicart__button-carousel:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #333333;
  color: #333333;
  background-color: #fff; }
  .cs-minicart__button-carousel:hover:not([disabled]), .cs-minicart__button-carousel:focus:not([disabled]), .cs-minicart__button-carousel:active:not([disabled]), .cs-minicart__button-carousel:visited:hover:not([disabled]), .cs-minicart__button-carousel:visited:focus:not([disabled]), .cs-minicart__button-carousel:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #c1272f;
    color: #c1272f;
    background-color: #fff; }
  .cs-minicart__button-carousel[disabled], .cs-minicart__button-carousel:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #f7f7f7; }

.cs-minicart__button-carousel-span {
  font-size: 1.6rem;
  /* stylelint-disable-next-line */ }

.cs-minicart__button-carousel-icon {
  max-width: 1em;
  max-height: 1.6rem;
  z-index: 2;
  height: auto;
  width: 100%;
  display: none;
  /* stylelint-disable-next-line */ }

.cs-minicart__messages {
  padding: 0 2rem; }

.cs-minicart-offcanvas__wrapper {
  padding: 0; }

/* prettier-ignore */
.cs-minicart__carousel {
  position: relative;
  z-index: 10; }
  .cs-minicart__carousel-container {
    opacity: 0;
    transition: opacity 0.3s ease-in;
    background: #fff; }
    .cs-minicart__carousel-wrapper--ready .cs-minicart__carousel-container {
      opacity: 1; }
  .cs-minicart__carousel-wrapper {
    display: none;
    visibility: hidden;
    pointer-events: none;
    top: 50%;
    right: calc(40rem + 2rem);
    transform: translateY(-50%);
    width: calc(100vw - (40rem + (2 * 2rem)));
    max-width: 120rem;
    padding: 0;
    margin: 0;
    background: transparent; }
    .cs-minicart__carousel-wrapper--loading, .cs-minicart__carousel-wrapper--ready {
      visibility: visible;
      pointer-events: auto; }
    .drawer--visible .cs-minicart__carousel-wrapper {
      position: absolute; }
    @media (min-width: 48em) {
      .minicart-offcanvas-open .cs-minicart__carousel-wrapper {
        display: block; } }
    @media (min-width: 80em) {
      .cs-minicart__carousel-wrapper {
        max-height: 80vh; } }
    @media (min-width: 80em) {
      .cs-minicart__carousel-wrapper {
        right: calc(40rem + (2 * 2rem));
        width: calc(100vw - (40rem + (4 * 2rem))); } }
    .cs-minicart__carousel-wrapper .cs-headline {
      margin: 0 0 2rem;
      padding: 2rem 0 0; }
  .cs-minicart__carousel-spinner {
    opacity: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 11rem;
    height: 11rem;
    padding: 2rem 0;
    transform: translate3d(-50%, -50%, 0);
    transition: opacity 0.3s ease-in; }
    .cs-minicart__carousel-wrapper--loading .cs-minicart__carousel-spinner {
      opacity: 1;
      z-index: 10; }
  .cs-minicart__carousel .cs-products-carousel {
    margin: 0;
    background: #fff; }

.minicart-wrapper .ui-dialog {
  display: block !important; }

.cs-minicart {
  position: relative;
  z-index: 13; }
  .cs-minicart__wrapper {
    height: 100vh;
    display: flex;
    flex-direction: column; }
  .cs-minicart .update-cart-item {
    display: block;
    border: 1px solid #333333;
    background: none;
    border-radius: 24px !important;
    color: #333333;
    width: 100%; }
    .cs-minicart .update-cart-item:hover svg {
      filter: none; }
    .cs-minicart .update-cart-item svg {
      filter: invert(1);
      transition: 0.3s all; }
  .cs-minicart__close {
    display: inline-block;
    background: none;
    box-sizing: content-box;
    border: 0;
    box-shadow: none;
    line-height: inherit;
    margin: 0;
    padding: 0;
    text-decoration: none;
    text-shadow: none;
    font-weight: 400;
    position: absolute;
    right: -1.5rem;
    width: 5rem;
    height: 5rem;
    top: 70%;
    transform: translateY(-50%);
    cursor: pointer;
    right: 1.5rem; }
    .cs-minicart__close:focus, .cs-minicart__close:active, .cs-minicart__close:hover {
      background: transparent;
      border: none;
      color: inherit; }
  .cs-minicart__close-icon {
    position: relative;
    transform: rotate(45deg);
    width: 100%;
    height: 100%;
    display: inline-block; }
    .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
      content: '';
      position: absolute;
      top: 50%;
      width: 2.5rem;
      height: 0.2rem;
      left: auto;
      background-color: #484848;
      transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden; }
    .cs-minicart__close-icon:hover:before, .cs-minicart__close-icon:hover:after {
      background-color: #696969; }
    .cs-minicart__close-icon[aria-expanded="true"]:before, .cs-minicart__close-icon[aria-expanded="true"]:after {
      background-color: #888; }
    .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
      right: 1.5rem;
      transform: translate3d(0, -50%, 0) !important; }
    .cs-minicart__close-icon:after {
      transform: translate3d(0, -50%, 0) rotate(90deg) !important; }
    .cs-minicart__close-icon[aria-expanded="true"]:before {
      transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
      opacity: 0; }
    .cs-minicart__close-icon[aria-expanded="true"]:after {
      transform: translate3d(0, -50%, 0) rotate(0) !important; }
  .cs-minicart__close-text {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; }
  .cs-minicart__title-wrapper {
    position: relative;
    padding: 3rem 1.5rem 1.5rem;
    display: flex;
    color: #333333;
    font-weight: 700;
    font-size: 2.4rem;
    margin: 0;
    font-size: 2.4rem;
    text-transform: none;
    border-bottom: none; }
  .cs-minicart__items-total {
    margin-left: 0.5rem;
    color: #696969;
    font-weight: 400; }
    .cs-minicart__items-total:not(.cs-minicart__items-total--empty):before {
      content: "("; }
    .cs-minicart__items-total:not(.cs-minicart__items-total--empty):after {
      content: ")"; }
    .cs-minicart__items-total--empty .count {
      display: none; }
  .cs-minicart__edit-link {
    font-weight: 700; }
    .cs-minicart__edit-link .cs-link__icon {
      padding: 0 0 0 1rem; }
  .cs-minicart__content {
    height: auto !important;
    background-color: #fff;
    position: relative; }
    .cs-minicart__content-wrapper {
      position: relative;
      flex-grow: 1; }
      @media (max-width: 30em) {
        .cs-minicart__content-wrapper {
          padding-bottom: 270px; } }
    .cs-minicart__content .load.indicator:before {
      height: unset; }
  .cs-minicart__list {
    padding: 0 1.5rem;
    list-style: none;
    margin-bottom: 0; }
    .cs-minicart__list--scroll {
      height: auto !important;
      max-height: calc(100vh - 36rem);
      overflow-y: auto; }
      @media (min-width: 48em) {
        .cs-minicart__list--scroll {
          max-height: calc(100vh - 38rem); }
          .is-tablet .cs-minicart__list--scroll {
            max-height: calc(100vh - 43rem); } }
  .cs-minicart__list-item {
    padding: 3rem 0 3.5rem 0;
    border-bottom: 1px solid #d5d5d5;
    margin-bottom: 0;
    padding: 3rem 0 3.5rem 0; }
    .cs-minicart__list-item:last-child {
      border-bottom: none; }
      @media (max-width: 30em) {
        .cs-minicart__list-item:last-child {
          padding-bottom: 11rem; } }
  .cs-minicart__actions-wrapper {
    padding: 2rem 1.5rem;
    position: relative;
    background-color: #f7f7f7;
    min-height: 26rem;
    max-height: 26rem;
    box-shadow: 0 -5px 5px -5px rgba(0, 0, 0, 0.27); }
    @media (max-width: 30em) {
      .cs-minicart__actions-wrapper {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 3; } }
  .cs-minicart__actions {
    margin: 2rem auto;
    max-width: 240px; }
    .cs-minicart__actions:first-child {
      margin-top: 3rem; }
  .cs-minicart__empty {
    padding: 3rem 4rem;
    display: inline-block;
    font-size: 1.4rem;
    text-align: center; }
  .cs-minicart__subtotal {
    display: block; }
  .cs-minicart__subtotal-label {
    display: none; }
  .cs-minicart__subtotal-price .price-wrapper {
    width: 100%;
    display: flex;
    justify-content: space-between;
    font-size: 1.6rem;
    padding-bottom: 1rem;
    line-height: 2.6rem; }
    .cs-minicart__subtotal-price .price-wrapper::before {
      content: attr(data-label) ":";
      font-weight: 400;
      font-size: 1.6rem !important;
      width: auto !important; }
    .cs-minicart__subtotal-price .price-wrapper .price {
      font-weight: 700;
      font-size: 1.6rem !important;
      font-size: 1.6rem !important; }
    .cs-minicart__subtotal-price .price-wrapper.price-excluding-tax .price {
      font-weight: 700;
      font-size: 2.4rem !important;
      font-size: 2.4rem !important; }
    .cs-minicart__subtotal-price .price-wrapper.price-excluding-tax::before {
      font-weight: 700;
      font-size: 1.6rem !important;
      width: auto !important; }
  .cs-minicart__button-checkout {
    width: 100%; }
    .cs-minicart__button-checkout::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-minicart__button-checkout, .cs-minicart__button-checkout:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-minicart__button-checkout:hover:not([disabled]), .cs-minicart__button-checkout:focus:not([disabled]), .cs-minicart__button-checkout:active:not([disabled]), .cs-minicart__button-checkout:visited:hover:not([disabled]), .cs-minicart__button-checkout:visited:focus:not([disabled]), .cs-minicart__button-checkout:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-minicart__button-checkout[disabled], .cs-minicart__button-checkout:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    .cs-minicart__button-checkout-span {
      font-size: 1.6rem;
      /* stylelint-disable-next-line */ }
    .cs-minicart__button-checkout-icon {
      max-width: 1em;
      max-height: 1.6rem;
      z-index: 2;
      height: auto;
      width: 100%;
      display: none;
      /* stylelint-disable-next-line */ }
  .cs-minicart__button-viewcart {
    width: 100%; }
    .cs-minicart__button-viewcart::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-minicart__button-viewcart, .cs-minicart__button-viewcart:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #333333;
      color: #333333;
      background-color: #fff; }
      .cs-minicart__button-viewcart:hover:not([disabled]), .cs-minicart__button-viewcart:focus:not([disabled]), .cs-minicart__button-viewcart:active:not([disabled]), .cs-minicart__button-viewcart:visited:hover:not([disabled]), .cs-minicart__button-viewcart:visited:focus:not([disabled]), .cs-minicart__button-viewcart:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #c1272f;
        color: #c1272f;
        background-color: #fff; }
      .cs-minicart__button-viewcart[disabled], .cs-minicart__button-viewcart:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #f7f7f7; }
    .cs-minicart__button-viewcart-span {
      font-size: 1.6rem;
      /* stylelint-disable-next-line */ }
    .cs-minicart__button-viewcart-icon {
      max-width: 1em;
      max-height: 1.6rem;
      z-index: 2;
      height: auto;
      width: 100%;
      display: none;
      /* stylelint-disable-next-line */ }
  .cs-minicart__button-carousel-wrapper {
    display: flex;
    justify-content: center;
    padding-top: 0;
    margin: 3rem 0; }
  .cs-minicart__button-carousel::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-carousel, .cs-minicart__button-carousel:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-minicart__button-carousel:hover:not([disabled]), .cs-minicart__button-carousel:focus:not([disabled]), .cs-minicart__button-carousel:active:not([disabled]), .cs-minicart__button-carousel:visited:hover:not([disabled]), .cs-minicart__button-carousel:visited:focus:not([disabled]), .cs-minicart__button-carousel:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-minicart__button-carousel[disabled], .cs-minicart__button-carousel:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .cs-minicart__button-carousel-span {
    font-size: 1.6rem;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-carousel-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none;
    /* stylelint-disable-next-line */ }
  .cs-minicart__messages {
    padding: 0 2rem; }
  .cs-minicart-offcanvas__wrapper {
    padding: 0; }

/* prettier-ignore */
.cs-minicart__carousel {
  position: relative;
  z-index: 10; }
  .cs-minicart__carousel-container {
    opacity: 0;
    transition: opacity 0.3s ease-in;
    background: #fff;
    z-index: -1;
    overflow-x: hidden; }
    .cs-minicart__carousel-wrapper--ready .cs-minicart__carousel-container {
      opacity: 1; }
  .cs-minicart__carousel-wrapper {
    display: none;
    visibility: hidden;
    pointer-events: none;
    top: 50%;
    right: calc(50rem + 2rem + 2rem);
    transform: translateY(-50%);
    width: calc(100vw - (50rem + (2 * 2rem)));
    max-width: 120rem;
    padding: 0;
    margin: 0;
    background: transparent;
    overflow-y: auto;
    max-height: 100vh; }
    @media (max-width: 64em) {
      .cs-minicart__carousel-wrapper {
        display: none !important; } }
    .cs-minicart__carousel-wrapper .cs-product-tile__price--grid {
      padding-top: 2.5rem !important; }
    @media (max-width: 30em) {
      .cs-minicart__carousel-wrapper .cs-products-carousel__nav {
        display: none !important; } }
    .cs-minicart__carousel-wrapper--loading, .cs-minicart__carousel-wrapper--ready {
      visibility: visible;
      pointer-events: auto; }
    .drawer--visible .cs-minicart__carousel-wrapper {
      position: absolute; }
    @media (min-width: 80em) {
      .minicart-offcanvas-open .cs-minicart__carousel-wrapper {
        display: block; } }
    @media (min-width: 80em) {
      .cs-minicart__carousel-wrapper {
        max-height: 80vh; } }
    @media (min-width: 80em) {
      .cs-minicart__carousel-wrapper {
        right: calc(50rem + (2 * 2rem));
        width: calc(100vw - (50rem + (4 * 2rem))); } }
    .cs-minicart__carousel-wrapper .cs-headline {
      margin: 0 0 2rem;
      padding: 2rem 0 0; }
      .cs-minicart__carousel-wrapper .cs-headline::before, .cs-minicart__carousel-wrapper .cs-headline::after {
        display: none !important; }
  .cs-minicart__carousel-spinner {
    opacity: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 11rem;
    height: 11rem;
    padding: 2rem 0;
    transform: translate3d(-50%, -50%, 0);
    transition: opacity 0.3s ease-in; }
    .cs-minicart__carousel-wrapper--loading .cs-minicart__carousel-spinner {
      opacity: 1;
      z-index: 10; }
  .cs-minicart__carousel .cs-products-carousel {
    margin: 0;
    background: #fff; }

.minicart-wrapper .ui-dialog {
  display: block !important; }
  .minicart-wrapper .ui-dialog .drawer--visible {
    width: 100%; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-minicart-product {
  display: flex; }
  .cs-minicart-product__image-container {
    flex-shrink: 0;
    margin-right: 1rem; }
    .cs-minicart-product__image-container img {
      width: auto !important;
      height: auto !important; }
  .cs-minicart-product__image {
    max-height: 100%;
    width: auto; }
  .cs-minicart-product__overview {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline; }
  .cs-minicart-product__details {
    width: 100%; }
  .cs-minicart-product__brand-wrapper {
    text-align: left; }
  .cs-minicart-product__brand {
    font-size: 1.2rem;
    color: #888; }
  .cs-minicart-product__name-wrapper {
    flex-basis: 55%;
    padding-bottom: 1.2rem;
    text-align: left;
    font-size: 1.3rem;
    flex-basis: 100% !important; }
    @media (min-width: 30em) {
      .cs-minicart-product__name-wrapper {
        flex-basis: 70%; } }
  .cs-minicart-product__name {
    width: 100%;
    padding: 0;
    margin-top: 0;
    font-size: inherit;
    text-decoration: none;
    color: #212121;
    font-weight: 600;
    font-weight: 700;
    font-size: 1.4rem; }
    .cs-minicart-product__name:visited, .cs-minicart-product__name:hover {
      text-decoration: none;
      color: #212121; }
  .cs-minicart-product__item-pricing {
    order: 3; }
  .cs-minicart-product__price .price {
    font-size: 1.3rem;
    font-weight: 700;
    color: #212121; }
  .cs-minicart-product__price .price-including-tax,
  .cs-minicart-product__price .price-excluding-tax {
    font-size: 1.3rem; }
  .cs-minicart-product__price .price {
    font-weight: 400; }
  .cs-minicart-product__price-label, .cs-minicart-product__options-subtitle {
    display: none; }
  .cs-minicart-product__options-title {
    font-size: 1.2rem;
    color: #484848;
    cursor: pointer;
    font-size: 1.3rem;
    color: #212121; }
    .cs-minicart-product__options-title[aria-expanded='true'] > .cs-minicart-product__options-title-svg {
      transform: rotate(180deg);
      vertical-align: initial; }
  .cs-minicart-product__options-title-svg {
    width: 1rem;
    height: 1rem;
    margin-left: 0.5rem;
    transition: transform 0.3s cubic-bezier(0, 0.66, 0.32, 0.99);
    vertical-align: middle; }
  .cs-minicart-product__options-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    margin-top: -0.4rem;
    flex-basis: 100%;
    padding-bottom: 1.2rem; }
  .cs-minicart-product__options-group {
    margin: 0;
    width: 100%;
    display: flex;
    align-items: center; }
    .cs-minicart-product__options-group--qty {
      margin-top: 0.5rem; }
      .cs-minicart-product__options-wrapper + .cs-minicart-product__options-group--qty {
        margin-top: 1.5rem; }
  .cs-minicart-product__options-content {
    width: 100%;
    padding-top: 0.5rem; }
  .cs-minicart-product__options-label {
    font-size: 1.2rem;
    color: #888;
    font-weight: 400;
    margin-bottom: 0;
    text-align: left;
    padding-right: 0.5rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: #212121;
    text-transform: uppercase; }
    .cs-minicart-product__options-label:after {
      content: ':'; }
  .cs-minicart-product__options-value {
    font-size: 1.2rem;
    color: #888;
    margin-bottom: 0;
    width: 100%; }
    .cs-minicart-product__options-value__value {
      display: flex;
      justify-content: space-between;
      width: 100%; }
      .cs-minicart-product__options-value__value .price {
        color: #212121; }
  .cs-minicart-product__actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-top: 1.2rem; }
  .cs-minicart-product__action-wrapper {
    margin-left: 1rem; }
  .cs-minicart-product__qty,
  .cs-minicart-product .cs-qty-increment {
    display: flex;
    flex: 1 0 9rem;
    flex-wrap: nowrap; }
  .cs-minicart-product__qty-label {
    display: none; }
  .cs-minicart-product__qty-input {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit;
    padding: 0;
    text-align: center;
    box-sizing: border-box;
    margin-bottom: 0;
    height: 3rem;
    width: 4rem;
    max-width: 4rem;
    font-size: 1.2rem; }
    .cs-minicart-product__qty-input:hover:not([disabled]), .cs-minicart-product__qty-input:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .cs-minicart-product__qty-input.mage-error, .cs-minicart-product__qty-input.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .cs-minicart-product__qty-input.required-entry {
      margin-bottom: 0; }
    .cs-minicart-product__qty-input::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-minicart-product__qty-input:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-minicart-product__qty-input::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-minicart-product__qty-input[disabled] {
      opacity: 1; }
  .cs-minicart-product__qty-button {
    padding: 0;
    width: 3rem;
    height: 3rem;
    margin-left: 0.5rem; }
    .cs-minicart-product__qty-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-minicart-product__qty-button, .cs-minicart-product__qty-button:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-minicart-product__qty-button:hover:not([disabled]), .cs-minicart-product__qty-button:focus:not([disabled]), .cs-minicart-product__qty-button:active:not([disabled]), .cs-minicart-product__qty-button:visited:hover:not([disabled]), .cs-minicart-product__qty-button:visited:focus:not([disabled]), .cs-minicart-product__qty-button:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-minicart-product__qty-button[disabled], .cs-minicart-product__qty-button:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
  .cs-minicart-product__qty-button-span {
    font-size: 1.6rem; }
  .cs-minicart-product__qty-button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em; }
  .cs-minicart-product__action:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__action:hover .cs-minicart-product__action-icon *, .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__options-title:hover .cs-minicart-product__action-icon * {
    fill: #142b9e; }
  .cs-minicart-product__action-icon {
    width: 1.6rem;
    height: 1.6rem;
    width: 2rem;
    height: 2rem; }
  .cs-minicart-product__action-icon *, .cs-minicart-product__options-title-svg * {
    fill: #324dcf; }
  .cs-minicart-product__action-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg * {
    fill: #212121; }
  .cs-minicart-product__options-title-svg * {
    fill: #212121; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-minicart-product {
  display: flex;
  line-height: 24px;
  text-align: left;
  gap: 0 3rem; }
  .cs-minicart-product__image-container {
    flex-shrink: 0;
    margin-right: 1rem; }
    .cs-minicart-product__image-container img {
      width: auto !important;
      height: auto !important; }
  .cs-minicart-product__image {
    max-height: 100%;
    width: auto; }
  .cs-minicart-product__overview {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: 3px; }
  .cs-minicart-product__details {
    width: 100%; }
  .cs-minicart-product__name-wrapper {
    flex-basis: 55%;
    padding-bottom: 0;
    font-size: 1.6rem;
    flex-basis: 100% !important; }
    @media (min-width: 30em) {
      .cs-minicart-product__name-wrapper {
        flex-basis: 70%; } }
  .cs-minicart-product__options-group {
    display: block;
    margin-top: -5px; }
  .cs-minicart-product__options-wrapper {
    margin-top: 0.25rem !important; }
  .cs-minicart-product__name {
    width: 100%;
    padding: 0;
    margin-top: 0;
    font-size: 1.6rem;
    text-decoration: none;
    color: #333333;
    font-weight: 700;
    font-weight: 700;
    font-size: 1.6rem; }
    .cs-minicart-product__name:visited, .cs-minicart-product__name:hover {
      text-decoration: none;
      color: #333333; }
  .cs-minicart-product__sku-wrapper {
    line-height: 2.4rem;
    width: 100%;
    font-size: 1.4rem;
    font-weight: 300; }
  .cs-minicart-product__price {
    margin-top: 1rem; }
    .cs-minicart-product__price .price {
      font-size: 1.6rem;
      font-weight: 700;
      color: #212121; }
    .cs-minicart-product__price .price-wrapper {
      display: flex; }
    .cs-minicart-product__price .price-including-tax,
    .cs-minicart-product__price .price-excluding-tax {
      text-align: left;
      line-height: 2.4rem;
      font-size: 1.6rem; }
      .cs-minicart-product__price .price-including-tax::before,
      .cs-minicart-product__price .price-excluding-tax::before {
        content: attr(data-label) ":";
        font-size: 1.4rem;
        font-weight: 300; }
      .cs-minicart-product__price .price-including-tax .price,
      .cs-minicart-product__price .price-excluding-tax .price {
        font-weight: 700; }
    .cs-minicart-product__price .price-excluding-tax .price {
      font-weight: 700;
      font-size: 1.8rem; }
  .cs-minicart-product__actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-top: 1.2rem; }
  .cs-minicart-product__action-wrapper {
    margin-left: 3rem;
    margin-top: 1.4rem; }
  .cs-minicart-product__qty,
  .cs-minicart-product .cs-qty-increment {
    display: flex;
    flex: 1 0 9rem;
    flex-wrap: nowrap; }
    @media (max-width: 30em) {
      .cs-minicart-product__qty,
      .cs-minicart-product .cs-qty-increment {
        flex-direction: column;
        gap: 1rem; } }
  .cs-minicart-product__qty-label {
    display: none; }
  .cs-minicart-product__qty-input {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit;
    padding: 0;
    text-align: center;
    box-sizing: border-box;
    margin-bottom: 0;
    height: 4.8rem;
    width: 8rem;
    max-width: 8rem;
    font-size: 1.2rem; }
    .cs-minicart-product__qty-input:hover:not([disabled]), .cs-minicart-product__qty-input:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .cs-minicart-product__qty-input.mage-error, .cs-minicart-product__qty-input.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .cs-minicart-product__qty-input.required-entry {
      margin-bottom: 0; }
    .cs-minicart-product__qty-input::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-minicart-product__qty-input:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-minicart-product__qty-input::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-minicart-product__qty-input[disabled] {
      opacity: 1; }
  .cs-minicart-product__qty-button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart-product__qty-button, .cs-minicart-product__qty-button:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-minicart-product__qty-button:hover:not([disabled]), .cs-minicart-product__qty-button:focus:not([disabled]), .cs-minicart-product__qty-button:active:not([disabled]), .cs-minicart-product__qty-button:visited:hover:not([disabled]), .cs-minicart-product__qty-button:visited:focus:not([disabled]), .cs-minicart-product__qty-button:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    .cs-minicart-product__qty-button[disabled], .cs-minicart-product__qty-button:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  .cs-minicart-product__qty-button, .cs-minicart-product__qty-button:visited {
    border-radius: 3px !important;
    padding: 0;
    width: 4.8rem;
    height: 4.8rem;
    margin-left: 0.5rem; }
    .cs-minicart-product__qty-button-icon *, .cs-minicart-product__qty-button:visited-icon * {
      fill: #ffffff; }
  .cs-minicart-product__qty-button-span {
    font-size: 1.6rem; }
  .cs-minicart-product__qty-button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em; }
  .cs-minicart-product__action:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__action:hover .cs-minicart-product__action-icon *, .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__options-title:hover .cs-minicart-product__action-icon * {
    fill: #a20109; }
  .cs-minicart-product__action-icon {
    width: 2.4rem;
    height: 2.4rem;
    width: 2.4rem;
    height: 2.4rem; }
  .cs-minicart-product__action-icon *, .cs-minicart-product__options-title-svg * {
    fill: #333333; }
  .cs-minicart-product__action-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg * {
    fill: #878787; }
  .cs-minicart-product__options-title-svg * {
    fill: #333333; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-free-shipping-indicator__content {
  border-top: 1px solid #dcdcdc;
  padding: 1.5rem 2rem 2rem;
  color: #696969;
  font-size: 1.4rem;
  text-align: left; }

.cs-free-shipping-indicator__cell {
  padding-top: 1.4rem;
  padding-bottom: 1.4rem;
  padding-right: 0 !important; }

.cs-free-shipping-indicator__total-left-text span {
  font-weight: 700; }

.cs-free-shipping-indicator__total-fulfilled {
  padding-left: 2.8rem;
  background: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/messages/icon-success.svg") 0 50% no-repeat;
  background-size: 2rem; }

.cs-free-shipping-indicator__bar-wrapper {
  display: flex;
  align-items: center; }

.cs-free-shipping-indicator__bar-label {
  flex-shrink: 0;
  color: #37b841;
  font-weight: 700; }
  .cs-free-shipping-indicator__bar-label--start {
    margin-right: 1rem; }
  .cs-free-shipping-indicator__bar-label--end {
    margin-left: 1rem; }

.cs-free-shipping-indicator__bar {
  width: 100%;
  height: 2rem;
  padding: 0.4rem;
  border: 1px solid #b0b0b0;
  border-radius: 33.6px; }

.cs-free-shipping-indicator__bar-progress-wrapper {
  height: 100%;
  background: transparent;
  border-radius: 24px; }

.cs-free-shipping-indicator__bar-progress {
  height: 100%;
  width: 0;
  background: #37b841;
  border-radius: 24px;
  transition: width 0.55s cubic-bezier(0, 0.66, 0.32, 0.99); }

.cs-free-shipping-indicator__icon {
  flex-shrink: 0;
  width: 3.4rem;
  height: 2rem;
  margin: 0 0 0 2.5rem;
  fill: #888;
  transition: fill 0.3s; }
  .cs-free-shipping-indicator__bar-wrapper--free-shipping-active .cs-free-shipping-indicator__icon {
    fill: #37b841; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable no-descending-specificity */
.modal-slide.confirm .modal-inner-wrap,
.modal-popup.confirm .modal-inner-wrap,
.modal-custom.confirm .modal-inner-wrap {
  max-width: 50rem; }

.modal-slide .modal-inner-wrap,
.modal-popup .modal-inner-wrap,
.modal-custom .modal-inner-wrap {
  background: #fff;
  box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28);
  border-radius: 0;
  border: none; }

.modal-slide .modal-content,
.modal-popup .modal-content,
.modal-custom .modal-content {
  padding-top: 2rem;
  padding-bottom: 2rem;
  font-size: 1.6rem; }

.modal-slide .modal-header,
.modal-popup .modal-header,
.modal-custom .modal-header {
  padding: 0;
  margin: 0; }

.modal-slide .action-close,
.modal-popup .action-close,
.modal-custom .action-close {
  background: none;
  border: none;
  position: absolute;
  right: 0;
  top: 0;
  margin: 1.5rem;
  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/close.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
  width: 3rem;
  height: 3rem; }
  .modal-slide .action-close span,
  .modal-popup .action-close span,
  .modal-custom .action-close span {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .modal-slide .action-close:before,
  .modal-popup .action-close:before,
  .modal-custom .action-close:before {
    content: none; }

.modal-slide .modal-footer,
.modal-popup .modal-footer,
.modal-custom .modal-footer {
  padding: 2rem;
  border-top: 1px solid #dcdcdc;
  display: flex;
  justify-content: space-between; }
  @media (max-width: 29.99em) {
    .modal-slide .modal-footer,
    .modal-popup .modal-footer,
    .modal-custom .modal-footer {
      flex-wrap: wrap; } }
  .modal-slide .modal-footer .action-primary,
  .modal-slide .modal-footer .primary,
  .modal-popup .modal-footer .action-primary,
  .modal-popup .modal-footer .primary,
  .modal-custom .modal-footer .action-primary,
  .modal-custom .modal-footer .primary {
    min-width: 12rem; }
    .modal-slide .modal-footer .action-primary::-moz-focus-inner,
    .modal-slide .modal-footer .primary::-moz-focus-inner,
    .modal-popup .modal-footer .action-primary::-moz-focus-inner,
    .modal-popup .modal-footer .primary::-moz-focus-inner,
    .modal-custom .modal-footer .action-primary::-moz-focus-inner,
    .modal-custom .modal-footer .primary::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer .action-primary, .modal-slide .modal-footer .action-primary:visited,
    .modal-slide .modal-footer .primary,
    .modal-slide .modal-footer .primary:visited,
    .modal-popup .modal-footer .action-primary,
    .modal-popup .modal-footer .action-primary:visited,
    .modal-popup .modal-footer .primary,
    .modal-popup .modal-footer .primary:visited,
    .modal-custom .modal-footer .action-primary,
    .modal-custom .modal-footer .action-primary:visited,
    .modal-custom .modal-footer .primary,
    .modal-custom .modal-footer .primary:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .modal-slide .modal-footer .action-primary:hover:not([disabled]), .modal-slide .modal-footer .action-primary:focus:not([disabled]), .modal-slide .modal-footer .action-primary:active:not([disabled]), .modal-slide .modal-footer .action-primary:visited:hover:not([disabled]), .modal-slide .modal-footer .action-primary:visited:focus:not([disabled]), .modal-slide .modal-footer .action-primary:visited:active:not([disabled]),
      .modal-slide .modal-footer .primary:hover:not([disabled]),
      .modal-slide .modal-footer .primary:focus:not([disabled]),
      .modal-slide .modal-footer .primary:active:not([disabled]),
      .modal-slide .modal-footer .primary:visited:hover:not([disabled]),
      .modal-slide .modal-footer .primary:visited:focus:not([disabled]),
      .modal-slide .modal-footer .primary:visited:active:not([disabled]),
      .modal-popup .modal-footer .action-primary:hover:not([disabled]),
      .modal-popup .modal-footer .action-primary:focus:not([disabled]),
      .modal-popup .modal-footer .action-primary:active:not([disabled]),
      .modal-popup .modal-footer .action-primary:visited:hover:not([disabled]),
      .modal-popup .modal-footer .action-primary:visited:focus:not([disabled]),
      .modal-popup .modal-footer .action-primary:visited:active:not([disabled]),
      .modal-popup .modal-footer .primary:hover:not([disabled]),
      .modal-popup .modal-footer .primary:focus:not([disabled]),
      .modal-popup .modal-footer .primary:active:not([disabled]),
      .modal-popup .modal-footer .primary:visited:hover:not([disabled]),
      .modal-popup .modal-footer .primary:visited:focus:not([disabled]),
      .modal-popup .modal-footer .primary:visited:active:not([disabled]),
      .modal-custom .modal-footer .action-primary:hover:not([disabled]),
      .modal-custom .modal-footer .action-primary:focus:not([disabled]),
      .modal-custom .modal-footer .action-primary:active:not([disabled]),
      .modal-custom .modal-footer .action-primary:visited:hover:not([disabled]),
      .modal-custom .modal-footer .action-primary:visited:focus:not([disabled]),
      .modal-custom .modal-footer .action-primary:visited:active:not([disabled]),
      .modal-custom .modal-footer .primary:hover:not([disabled]),
      .modal-custom .modal-footer .primary:focus:not([disabled]),
      .modal-custom .modal-footer .primary:active:not([disabled]),
      .modal-custom .modal-footer .primary:visited:hover:not([disabled]),
      .modal-custom .modal-footer .primary:visited:focus:not([disabled]),
      .modal-custom .modal-footer .primary:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .modal-slide .modal-footer .action-primary[disabled], .modal-slide .modal-footer .action-primary:visited[disabled],
      .modal-slide .modal-footer .primary[disabled],
      .modal-slide .modal-footer .primary:visited[disabled],
      .modal-popup .modal-footer .action-primary[disabled],
      .modal-popup .modal-footer .action-primary:visited[disabled],
      .modal-popup .modal-footer .primary[disabled],
      .modal-popup .modal-footer .primary:visited[disabled],
      .modal-custom .modal-footer .action-primary[disabled],
      .modal-custom .modal-footer .action-primary:visited[disabled],
      .modal-custom .modal-footer .primary[disabled],
      .modal-custom .modal-footer .primary:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    @media (max-width: 29.99em) {
      .modal-slide .modal-footer .action-primary,
      .modal-slide .modal-footer .primary,
      .modal-popup .modal-footer .action-primary,
      .modal-popup .modal-footer .primary,
      .modal-custom .modal-footer .action-primary,
      .modal-custom .modal-footer .primary {
        width: 100%; } }
    .modal-slide .modal-footer .action-primary span,
    .modal-slide .modal-footer .primary span,
    .modal-popup .modal-footer .action-primary span,
    .modal-popup .modal-footer .primary span,
    .modal-custom .modal-footer .action-primary span,
    .modal-custom .modal-footer .primary span {
      font-size: 1.6rem; }
  .modal-slide .modal-footer .action-secondary,
  .modal-slide .modal-footer .secondary,
  .modal-popup .modal-footer .action-secondary,
  .modal-popup .modal-footer .secondary,
  .modal-custom .modal-footer .action-secondary,
  .modal-custom .modal-footer .secondary {
    min-width: 12rem; }
    .modal-slide .modal-footer .action-secondary::-moz-focus-inner,
    .modal-slide .modal-footer .secondary::-moz-focus-inner,
    .modal-popup .modal-footer .action-secondary::-moz-focus-inner,
    .modal-popup .modal-footer .secondary::-moz-focus-inner,
    .modal-custom .modal-footer .action-secondary::-moz-focus-inner,
    .modal-custom .modal-footer .secondary::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer .action-secondary, .modal-slide .modal-footer .action-secondary:visited,
    .modal-slide .modal-footer .secondary,
    .modal-slide .modal-footer .secondary:visited,
    .modal-popup .modal-footer .action-secondary,
    .modal-popup .modal-footer .action-secondary:visited,
    .modal-popup .modal-footer .secondary,
    .modal-popup .modal-footer .secondary:visited,
    .modal-custom .modal-footer .action-secondary,
    .modal-custom .modal-footer .action-secondary:visited,
    .modal-custom .modal-footer .secondary,
    .modal-custom .modal-footer .secondary:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #333333;
      color: #333333;
      background-color: #fff; }
      .modal-slide .modal-footer .action-secondary:hover:not([disabled]), .modal-slide .modal-footer .action-secondary:focus:not([disabled]), .modal-slide .modal-footer .action-secondary:active:not([disabled]), .modal-slide .modal-footer .action-secondary:visited:hover:not([disabled]), .modal-slide .modal-footer .action-secondary:visited:focus:not([disabled]), .modal-slide .modal-footer .action-secondary:visited:active:not([disabled]),
      .modal-slide .modal-footer .secondary:hover:not([disabled]),
      .modal-slide .modal-footer .secondary:focus:not([disabled]),
      .modal-slide .modal-footer .secondary:active:not([disabled]),
      .modal-slide .modal-footer .secondary:visited:hover:not([disabled]),
      .modal-slide .modal-footer .secondary:visited:focus:not([disabled]),
      .modal-slide .modal-footer .secondary:visited:active:not([disabled]),
      .modal-popup .modal-footer .action-secondary:hover:not([disabled]),
      .modal-popup .modal-footer .action-secondary:focus:not([disabled]),
      .modal-popup .modal-footer .action-secondary:active:not([disabled]),
      .modal-popup .modal-footer .action-secondary:visited:hover:not([disabled]),
      .modal-popup .modal-footer .action-secondary:visited:focus:not([disabled]),
      .modal-popup .modal-footer .action-secondary:visited:active:not([disabled]),
      .modal-popup .modal-footer .secondary:hover:not([disabled]),
      .modal-popup .modal-footer .secondary:focus:not([disabled]),
      .modal-popup .modal-footer .secondary:active:not([disabled]),
      .modal-popup .modal-footer .secondary:visited:hover:not([disabled]),
      .modal-popup .modal-footer .secondary:visited:focus:not([disabled]),
      .modal-popup .modal-footer .secondary:visited:active:not([disabled]),
      .modal-custom .modal-footer .action-secondary:hover:not([disabled]),
      .modal-custom .modal-footer .action-secondary:focus:not([disabled]),
      .modal-custom .modal-footer .action-secondary:active:not([disabled]),
      .modal-custom .modal-footer .action-secondary:visited:hover:not([disabled]),
      .modal-custom .modal-footer .action-secondary:visited:focus:not([disabled]),
      .modal-custom .modal-footer .action-secondary:visited:active:not([disabled]),
      .modal-custom .modal-footer .secondary:hover:not([disabled]),
      .modal-custom .modal-footer .secondary:focus:not([disabled]),
      .modal-custom .modal-footer .secondary:active:not([disabled]),
      .modal-custom .modal-footer .secondary:visited:hover:not([disabled]),
      .modal-custom .modal-footer .secondary:visited:focus:not([disabled]),
      .modal-custom .modal-footer .secondary:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #c1272f;
        color: #c1272f;
        background-color: #fff; }
      .modal-slide .modal-footer .action-secondary[disabled], .modal-slide .modal-footer .action-secondary:visited[disabled],
      .modal-slide .modal-footer .secondary[disabled],
      .modal-slide .modal-footer .secondary:visited[disabled],
      .modal-popup .modal-footer .action-secondary[disabled],
      .modal-popup .modal-footer .action-secondary:visited[disabled],
      .modal-popup .modal-footer .secondary[disabled],
      .modal-popup .modal-footer .secondary:visited[disabled],
      .modal-custom .modal-footer .action-secondary[disabled],
      .modal-custom .modal-footer .action-secondary:visited[disabled],
      .modal-custom .modal-footer .secondary[disabled],
      .modal-custom .modal-footer .secondary:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #f7f7f7; }
    @media (max-width: 29.99em) {
      .modal-slide .modal-footer .action-secondary,
      .modal-slide .modal-footer .secondary,
      .modal-popup .modal-footer .action-secondary,
      .modal-popup .modal-footer .secondary,
      .modal-custom .modal-footer .action-secondary,
      .modal-custom .modal-footer .secondary {
        width: 100%;
        margin-bottom: 1.5rem !important; } }
    .modal-slide .modal-footer .action-secondary span,
    .modal-slide .modal-footer .secondary span,
    .modal-popup .modal-footer .action-secondary span,
    .modal-popup .modal-footer .secondary span,
    .modal-custom .modal-footer .action-secondary span,
    .modal-custom .modal-footer .secondary span {
      font-size: 1.6rem; }
    body.checkout-index-index .modal-slide .modal-footer .action-secondary, body.checkout-index-index
    .modal-slide .modal-footer .secondary, body.checkout-index-index
    .modal-popup .modal-footer .action-secondary, body.checkout-index-index
    .modal-popup .modal-footer .secondary, body.checkout-index-index
    .modal-custom .modal-footer .action-secondary, body.checkout-index-index
    .modal-custom .modal-footer .secondary {
      min-width: 12rem; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-slide .modal-footer .secondary::-moz-focus-inner, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-popup .modal-footer .secondary::-moz-focus-inner, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-custom .modal-footer .secondary::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary, body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-slide .modal-footer .secondary, body.checkout-index-index
      .modal-slide .modal-footer .secondary:visited, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-popup .modal-footer .secondary, body.checkout-index-index
      .modal-popup .modal-footer .secondary:visited, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-custom .modal-footer .secondary, body.checkout-index-index
      .modal-custom .modal-footer .secondary:visited {
        display: inline-block;
        font-size: 1.6rem;
        font-weight: 700;
        text-align: center;
        position: relative;
        line-height: 2.6rem;
        margin: 0;
        text-transform: none;
        white-space: nowrap;
        padding: 1rem 2.3rem;
        box-sizing: border-box;
        transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
        vertical-align: middle;
        z-index: 5;
        cursor: pointer;
        border-radius: 24px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid #333333;
        color: #333333;
        background-color: #fff; }
        body.checkout-index-index .modal-slide .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited:hover:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited:focus:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited:active:not([disabled]), body.checkout-index-index
        .modal-slide .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
        .modal-slide .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
        .modal-slide .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
        .modal-slide .modal-footer .secondary:visited:hover:not([disabled]), body.checkout-index-index
        .modal-slide .modal-footer .secondary:visited:focus:not([disabled]), body.checkout-index-index
        .modal-slide .modal-footer .secondary:visited:active:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:visited:hover:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:visited:focus:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:visited:active:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .secondary:visited:hover:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .secondary:visited:focus:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .secondary:visited:active:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:visited:hover:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:visited:focus:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:visited:active:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .secondary:visited:hover:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .secondary:visited:focus:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .secondary:visited:active:not([disabled]) {
          box-shadow: none;
          outline: none;
          text-decoration: none;
          border: 1px solid #c1272f;
          color: #c1272f;
          background-color: #fff; }
        body.checkout-index-index .modal-slide .modal-footer .action-secondary[disabled], body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited[disabled], body.checkout-index-index
        .modal-slide .modal-footer .secondary[disabled], body.checkout-index-index
        .modal-slide .modal-footer .secondary:visited[disabled], body.checkout-index-index
        .modal-popup .modal-footer .action-secondary[disabled], body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:visited[disabled], body.checkout-index-index
        .modal-popup .modal-footer .secondary[disabled], body.checkout-index-index
        .modal-popup .modal-footer .secondary:visited[disabled], body.checkout-index-index
        .modal-custom .modal-footer .action-secondary[disabled], body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:visited[disabled], body.checkout-index-index
        .modal-custom .modal-footer .secondary[disabled], body.checkout-index-index
        .modal-custom .modal-footer .secondary:visited[disabled] {
          cursor: auto;
          border: 1px solid #e5e5e5;
          color: #878787;
          background-color: #f7f7f7; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary span, body.checkout-index-index
      .modal-slide .modal-footer .secondary span, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary span, body.checkout-index-index
      .modal-popup .modal-footer .secondary span, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary span, body.checkout-index-index
      .modal-custom .modal-footer .secondary span {
        font-size: 1.6rem; }
  .modal-slide .modal-footer button:only-child,
  .modal-popup .modal-footer button:only-child,
  .modal-custom .modal-footer button:only-child {
    min-width: 12rem; }
    .modal-slide .modal-footer button:only-child::-moz-focus-inner,
    .modal-popup .modal-footer button:only-child::-moz-focus-inner,
    .modal-custom .modal-footer button:only-child::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer button:only-child, .modal-slide .modal-footer button:only-child:visited,
    .modal-popup .modal-footer button:only-child,
    .modal-popup .modal-footer button:only-child:visited,
    .modal-custom .modal-footer button:only-child,
    .modal-custom .modal-footer button:only-child:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .modal-slide .modal-footer button:only-child:hover:not([disabled]), .modal-slide .modal-footer button:only-child:focus:not([disabled]), .modal-slide .modal-footer button:only-child:active:not([disabled]), .modal-slide .modal-footer button:only-child:visited:hover:not([disabled]), .modal-slide .modal-footer button:only-child:visited:focus:not([disabled]), .modal-slide .modal-footer button:only-child:visited:active:not([disabled]),
      .modal-popup .modal-footer button:only-child:hover:not([disabled]),
      .modal-popup .modal-footer button:only-child:focus:not([disabled]),
      .modal-popup .modal-footer button:only-child:active:not([disabled]),
      .modal-popup .modal-footer button:only-child:visited:hover:not([disabled]),
      .modal-popup .modal-footer button:only-child:visited:focus:not([disabled]),
      .modal-popup .modal-footer button:only-child:visited:active:not([disabled]),
      .modal-custom .modal-footer button:only-child:hover:not([disabled]),
      .modal-custom .modal-footer button:only-child:focus:not([disabled]),
      .modal-custom .modal-footer button:only-child:active:not([disabled]),
      .modal-custom .modal-footer button:only-child:visited:hover:not([disabled]),
      .modal-custom .modal-footer button:only-child:visited:focus:not([disabled]),
      .modal-custom .modal-footer button:only-child:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .modal-slide .modal-footer button:only-child[disabled], .modal-slide .modal-footer button:only-child:visited[disabled],
      .modal-popup .modal-footer button:only-child[disabled],
      .modal-popup .modal-footer button:only-child:visited[disabled],
      .modal-custom .modal-footer button:only-child[disabled],
      .modal-custom .modal-footer button:only-child:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    .modal-slide .modal-footer button:only-child span,
    .modal-popup .modal-footer button:only-child span,
    .modal-custom .modal-footer button:only-child span {
      font-size: 1.6rem; }

.modal-slide .modal-title,
.modal-popup .modal-title,
.modal-custom .modal-title {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.4rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem;
  padding: 2rem;
  border-bottom: 1px solid #dcdcdc;
  margin: 0; }

@media (max-width: 47.99em) {
  .modal-popup.modal-slide .modal-inner-wrap[class] {
    background-color: #fff; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer {
    flex-wrap: wrap; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-primary,
  .modal-slide .modal-footer .primary {
    width: 100%; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-secondary,
  .modal-slide .modal-footer .secondary {
    width: 100%;
    margin-bottom: 1.5rem !important; } }

.page-layout-checkout .modal-popup {
  pointer-events: auto; }

@media (min-width: 48em) {
  .page-layout-checkout .modal-slide {
    width: 80%;
    max-width: 65rem;
    left: 50%;
    transform: translateX(-50%); } }

.modals-overlay {
  background-color: rgba(0, 0, 0, 0.7); }

/* stylelint-enable */

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-navigation-teaser__figure {
  display: block;
  max-height: 100%;
  overflow: hidden; }

.cs-navigation-teaser__image {
  display: block; }

.cs-navigation-teaser__content-wrapper {
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 6rem 3rem; }

.cs-navigation-teaser__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  color: #212121;
  text-align: center; }

.cs-navigation-teaser__headline {
  margin: 0 0 1rem;
  font-size: 3rem;
  line-height: 1.15;
  font-weight: 700;
  color: #212121; }
  @media (min-width: 64em) {
    .cs-navigation-teaser__headline {
      font-size: 4.3rem;
      line-height: 1; } }

.cs-navigation-teaser__subheadline {
  margin: 0 0 1rem;
  font-size: 1.65rem;
  line-height: 1.15;
  font-weight: 400;
  color: #212121; }
  @media (min-width: 64em) {
    .cs-navigation-teaser__subheadline {
      font-size: 2.8rem;
      line-height: 1.25; } }

.cs-navigation-teaser__text {
  margin: 0 0 1rem;
  font-size: 1rem;
  line-height: 1.15;
  font-weight: 300;
  color: #212121; }
  @media (min-width: 64em) {
    .cs-navigation-teaser__text {
      font-size: 1.4rem; } }

.cs-navigation-teaser__cta {
  margin-top: 2rem; }

.cs-navigation-teaser__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-navigation-teaser__button, .cs-navigation-teaser__button:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #c1272f;
  color: #ffffff;
  background-color: #c1272f; }
  .cs-navigation-teaser__button:hover:not([disabled]), .cs-navigation-teaser__button:focus:not([disabled]), .cs-navigation-teaser__button:active:not([disabled]), .cs-navigation-teaser__button:visited:hover:not([disabled]), .cs-navigation-teaser__button:visited:focus:not([disabled]), .cs-navigation-teaser__button:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #a20109;
    color: #ffffff;
    background-color: #a20109; }
  .cs-navigation-teaser__button[disabled], .cs-navigation-teaser__button:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #e5e5e5; }

.cs-navigation-teaser__button-span {
  font-size: 1.6rem; }

.cs-navigation-teaser__button-icon {
  max-width: 1em;
  max-height: 1.6rem;
  z-index: 2;
  height: auto;
  width: 100%;
  display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Using psuedo elements to maintain an elements aspect ratio, even as it scales
 * It's using only for IE11 and Edge (version which doesn't support native CSS grid) browsers
 * For browsers which support native CSS grid, we are using mixins contain `reset` in mixin name
 * to override default mixins (progressive enhancement)
 * https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/
 * @param {number} $width: width of the element;
 * @param {number} $height: height of the element;
 * @param {string} $contentClass: class of the direct child element to be positioned absolutely;
 * @param {boolean} $autoposition: tells if item shall take 100% of parent size or if it can be wider/higher if needed;
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-navigation {
  box-sizing: border-box;
  font-size: 1rem; }
  .cs-navigation__list {
    list-style: none;
    padding: 0;
    margin: 0; }
    .cs-navigation__list--main {
      position: relative;
      display: flex;
      flex-wrap: nowrap;
      justify-content: space-between; }
    .cs-navigation__list--all-categories {
      width: 100%;
      -moz-columns: auto 1;
           columns: auto 1;
      -moz-column-gap: 0;
           column-gap: 0;
      flex: 1 0 auto; }
    .cs-navigation__list--level_1 {
      width: 100%;
      -moz-columns: auto 1;
           columns: auto 1;
      -moz-column-gap: 0;
           column-gap: 0;
      flex: 1 0 auto; }
    .cs-navigation__list--level_2 {
      flex-wrap: wrap; }
    .cs-navigation__list--hidden {
      display: none; }
      .cs-navigation__list--hidden + .cs-navigation__extras {
        display: none; }
    .cs-navigation__list .cs-navigation__item--no-children:nth-child(2) {
      padding-top: 1rem; }
    .cs-navigation__list .cs-navigation__item--no-children:last-of-type {
      padding-bottom: 1rem; }
  .cs-navigation__item {
    font-size: 0.9em;
    margin: 0;
    width: 100%; }
    .cs-navigation__item--active:not([data-category-identifier='all-categories']) > .cs-navigation__link, .cs-navigation__item.active:not([data-category-identifier='all-categories']) > .cs-navigation__link, .cs-navigation__item:hover:not([data-category-identifier='all-categories']) > .cs-navigation__link {
      color: #324dcf; }
    .cs-navigation__item--main {
      width: auto;
      font-size: 1.4em; }
      .cs-navigation__item--main:first-of-type > .cs-navigation__link:not(.cs-navigation__link--with-icon) {
        padding-left: 0; }
      .cs-navigation__item--main:last-of-type > .cs-navigation__link {
        padding-right: 0; }
    .cs-navigation__item--all-categories {
      padding: 1rem;
      page-break-inside: avoid;
      /* Theoretically FF 20+ */
      -moz-column-break-inside: avoid;
           break-inside: avoid-column;
      /* IE 11 */
      display: table; }
    .cs-navigation__item--level_1 {
      padding: 1rem;
      page-break-inside: avoid;
      /* Theoretically FF 20+ */
      -moz-column-break-inside: avoid;
           break-inside: avoid-column;
      /* IE 11 */
      display: table; }
    .cs-navigation__item--hidden {
      display: none; }
  .cs-navigation__link {
    display: block;
    text-transform: uppercase;
    padding: 0.9em 1.05em;
    width: 100%; }
    .cs-navigation__link, .cs-navigation__link:visited {
      color: #484848; }
    .cs-navigation__link:hover {
      text-decoration: none;
      color: #324dcf; }
      .cs-navigation__link:hover .cs-navigation__link-icon--svg path {
        fill: #324dcf; }
    .cs-navigation__link--main {
      font-weight: 700; }
    .cs-navigation__link--all-categories {
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding-bottom: 1.6em; }
    .cs-navigation__link--level_1 {
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding-bottom: 1.6em; }
    .cs-navigation__link--level_2 {
      text-transform: none;
      font-size: 1.25em; }
    .cs-navigation__link--with-icon {
      position: relative;
      padding-left: 3rem; }
    .cs-navigation__link-icon-wrapper {
      position: absolute;
      width: 2rem;
      height: 2rem;
      top: 0;
      left: 0;
      margin-top: 0.8em; }
    .cs-navigation__link-icon {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate3d(-50%, -50%, 0);
      height: 2rem;
      width: 2rem; }
      .cs-navigation__link--category .cs-navigation__link-icon {
        margin-top: -0.5rem; }
      .cs-navigation__link-icon--svg path {
        fill: #484848; }
    .cs-navigation__link-products-qty:before {
      content: '('; }
    .cs-navigation__link-products-qty:after {
      content: ')'; }
  .cs-navigation .cs-navigation__item--no-children {
    padding: 0; }
  .cs-navigation .cs-navigation__item--no-children > .cs-navigation__link--level_1 {
    text-transform: none;
    font-size: 1.12em;
    font-weight: 400;
    padding: 0.9em 1.5em;
    border: none;
    color: #484848; }
  .cs-navigation__flyout {
    position: absolute;
    display: none;
    background: #fff;
    left: 0;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    z-index: 1001;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.15);
    margin-top: -1px; }
    .cs-navigation__flyout--visible {
      display: flex; }
    .cs-navigation__flyout svg {
      pointer-events: none; }
    @supports (-ms-ime-align: auto) {
      .cs-navigation__flyout li {
        list-style: none;
        list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);
        list-style-type: none; } }
  .cs-navigation__extras {
    margin: 0; }
  .cs-navigation__teaser {
    position: relative;
    max-height: 100%;
    padding: 1em 0;
    overflow: hidden;
    margin-bottom: 0 !important; }
    .cs-navigation__teaser--hidden {
      display: none; }
    .cs-navigation__teaser .cs-image-teaser__figure {
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%); }
  .cs-navigation__products {
    padding: 0.5em 1em;
    min-width: 24rem; }
    .cs-navigation__products-header {
      display: block;
      color: #484848;
      text-transform: uppercase;
      width: 100%;
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding: 1.1em 1.05em 1.55em;
      font-size: 0.9em; }
    .cs-navigation__products-list {
      margin: 0;
      padding: 0;
      list-style: none; }
  .cs-navigation__product {
    position: relative; }
    .cs-navigation__product:before {
      display: block;
      content: '';
      width: 100%;
      padding-top: 170%; }
    .cs-navigation__product .cs-product-tile {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0; }
  .cs-navigation__overlay {
    display: none;
    position: absolute;
    z-index: 1000;
    background-color: #000;
    opacity: 0;
    left: 0;
    width: 100%;
    height: 0;
    transform: translate3d(0, 3rem, 0);
    transition: opacity 0.15s linear, transform 0.2s cubic-bezier(0, 0.97, 0.05, 0.99); }
    .cs-navigation__overlay--visible {
      opacity: 0.8;
      transform: translate3d(0, 0, 0); }
  .page-print .cs-navigation {
    display: none; }
  @supports (display: grid) and (grid-auto-flow: row) {
    .cs-navigation__product {
      position: relative; }
      .cs-navigation__product:before {
        content: none; }
      .cs-navigation__product .cs-product-tile {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        bottom: auto; } }

.cs-container--navigation {
  display: none; }
  @media (min-width: 64em) {
    .cs-container--navigation {
      display: block; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-newsletter {
  margin: 0;
  width: 100%; }
  @media (max-width: 47.99em) {
    .cs-newsletter {
      padding: 0 1.5rem; } }
  .cs-newsletter__form {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    overflow: hidden; }
    @media (min-width: 48em) {
      .cs-newsletter__form {
        max-width: 34rem; } }
    @media (min-width: 64em) {
      .cs-newsletter__form {
        max-width: 100%; } }
  .cs-newsletter__form-wrapper {
    display: flex;
    flex-basis: 100%; }
  .cs-newsletter__field {
    flex-basis: 100%; }
  .cs-newsletter__input {
    margin-top: 0 !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important; }
  .cs-newsletter__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-newsletter__actions {
    display: flex;
    align-items: stretch;
    height: 4rem; }
  .cs-newsletter__button {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important; }
    .cs-newsletter__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-newsletter__button, .cs-newsletter__button:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-newsletter__button:hover:not([disabled]), .cs-newsletter__button:focus:not([disabled]), .cs-newsletter__button:active:not([disabled]), .cs-newsletter__button:visited:hover:not([disabled]), .cs-newsletter__button:visited:focus:not([disabled]), .cs-newsletter__button:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-newsletter__button[disabled], .cs-newsletter__button:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
  .cs-newsletter__button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em;
    width: 0.8em;
    height: 0.8em;
    margin-right: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1rem;
  height: 100%; }
  @media (max-width: 23.115em) {
    .cs-header-user-nav {
      padding: 0 0.7rem; } }
  .cs-header-user-nav__item {
    margin-bottom: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 1 1 25%; }
    @media (min-width: 64em) {
      .cs-header-user-nav__item {
        flex: 1 1 33.33333%; } }
    @media (min-width: 64em) {
      .cs-header-user-nav__item--search {
        display: none; } }
  .cs-header-user-nav__link {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    position: relative;
    width: 100%;
    padding: 1rem; }
    .cs-header-user-nav__link:hover {
      text-decoration: none; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
        fill: #324dcf; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__label {
        color: #696969; }
    .cs-header-user-nav__link--search:hover {
      cursor: pointer; }
  .cs-header-user-nav__icon-wrapper {
    position: relative; }
  .cs-header-user-nav__icon {
    width: 2.6rem;
    height: 2.6rem;
    display: block;
    margin: 0 auto; }
    .cs-header-user-nav__icon path {
      fill: #324dcf; }
  .cs-header-user-nav__label {
    text-transform: uppercase;
    font-size: 1rem;
    font-weight: 300;
    margin-top: 0.3rem;
    color: #696969;
    text-decoration: none;
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    @media (min-width: 48em) {
      .cs-header-user-nav__label {
        clip: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        padding: 0;
        position: static;
        width: auto;
        white-space: normal; } }
  .cs-header-user-nav__qty-counter {
    display: inline-flex;
    background-color: #324dcf;
    color: #fff;
    border: 0;
    border-radius: 0.2rem;
    padding: 0 0.6rem;
    position: relative;
    justify-content: center;
    align-items: center;
    font-size: 1rem;
    line-height: 100%;
    font-weight: 700;
    height: 1.8em;
    background-clip: padding-box;
    position: absolute;
    right: -0.5rem;
    top: -0.5rem;
    opacity: 0;
    transition: opacity 0.3s; }
    @media (min-width: 48em) {
      .cs-header-user-nav__qty-counter {
        right: -1rem; } }
    .cs-header-user-nav__qty-counter--wishlist {
      background-color: #fed400;
      color: #000; }
    .cs-header-user-nav__qty-counter--minicart {
      background-color: #e41f12;
      color: #fff; }
    .cs-header-user-nav__qty-counter--compare {
      background-color: #fed400;
      color: #000; }
    .cs-header-user-nav__qty-counter--have-items {
      opacity: 1; }
  .cs-header-user-nav__qty-counter-span {
    min-width: 1ch; }

.cs-header-user-nav {
  flex: 0 1 15%;
  margin-left: auto; }
  @media (max-width: 30em) {
    .cs-header-user-nav {
      flex-grow: 1;
      padding-right: 1.5rem !important; } }
  @media (max-width: 23.125em) {
    .cs-header-user-nav {
      padding-right: 0 !important; } }
  .cs-header-user-nav__qty-counter--minicart, .cs-header-user-nav__qty-counter--wishlist, .cs-header-user-nav__qty-counter--compare {
    bottom: 3.5rem;
    top: unset;
    right: 0;
    border-radius: 100%;
    width: 2rem;
    height: 2rem;
    padding: 0;
    align-items: center;
    line-height: normal;
    text-align: center; }
  .cs-header-user-nav__qty-counter--compare {
    background-color: #003666;
    color: #ffffff; }
  .cs-header-user-nav__qty-counter--minicart {
    background-color: #c1272f; }
  .cs-header-user-nav__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
    text-align: center;
    bottom: -3px; }
  .cs-header-user-nav__item {
    height: 100%;
    position: relative;
    width: 43px;
    max-width: 43px; }
    .cs-header-user-nav__item--search {
      display: flex !important; }
  .cs-header-user-nav__link {
    position: static;
    height: 100%; }
    @media (max-width: 30em) {
      .cs-header-user-nav__link {
        padding: 0 0.5rem; } }
    @media (max-width: 23.125em) {
      .cs-header-user-nav__link {
        padding-inline: 0; } }
    .cs-header-user-nav__link .cs-header-user-nav__label {
      opacity: 0;
      transition: 0.3s opacity;
      transition-delay: 1s; }
    .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
      fill: #c1272f; }
    .cs-header-user-nav__link:hover .cs-header-user-nav__label {
      width: auto;
      height: auto;
      clip: unset;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      opacity: 1; }
  .cs-header-user-nav__icon {
    width: 2.3rem;
    height: 2.3rem; }
    .cs-header-user-nav__icon path {
      fill: #000000; }
    .cs-header-user-nav__icon-wrapper {
      position: static; }
  @media (max-width: 48em) {
    .cs-header-user-nav {
      padding: 0; } }

.cs-offcanvas-toggle {
  position: relative;
  display: flex;
  border: 0;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  align-self: stretch;
  height: 100%;
  width: 100%; }
  .cs-offcanvas-toggle, .cs-offcanvas-toggle:active, .cs-offcanvas-toggle:focus, .cs-offcanvas-toggle:hover {
    border: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0; }
  .cs-offcanvas-toggle:after {
    content: '';
    position: absolute;
    height: 2px;
    width: 100%;
    transform: scale(0);
    background: #324dcf;
    transition: transform 0.3s;
    bottom: 0;
    left: 0;
    transform-origin: left; }
  .cs-offcanvas-toggle--active, .cs-offcanvas-toggle--active:active, .cs-offcanvas-toggle--active:focus, .cs-offcanvas-toggle--active:hover {
    background: #324dcf; }
  .cs-offcanvas-toggle--active:after {
    transform: scale(1); }
  .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon {
    transform: rotate(-45deg); }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
      background: #fff; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
      transform: rotate(90deg); }
  .cs-offcanvas-toggle__icon {
    padding: 0;
    margin: 0;
    position: relative; }
    .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
      width: 1.8rem;
      height: 0.2rem;
      background: #324dcf;
      transition: background-color 0.3s, transform 0.3s; }
    .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
      content: '';
      display: block;
      position: absolute; }
    .cs-offcanvas-toggle__icon:before {
      transform: translateY(-250%);
      transform: translate3d(0, -250%, 0); }
    .cs-offcanvas-toggle__icon:after {
      transform: translateY(250%);
      transform: translate3d(0, 250%, 0); }
  .cs-offcanvas-toggle__text {
    position: absolute;
    bottom: 0.5rem;
    left: 0;
    width: 100%;
    text-align: center;
    font-size: 0.8rem;
    color: #212121;
    text-transform: uppercase;
    transition: color 0.3s; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__text {
      color: #fff; }
    @media (min-width: 48em) {
      .cs-offcanvas-toggle__text {
        bottom: 2rem; } }

.cs-offcanvas-toggle:after {
  content: "";
  background: #c1272f; }

.cs-offcanvas-toggle--active, .cs-offcanvas-toggle--active:active, .cs-offcanvas-toggle--active:focus, .cs-offcanvas-toggle--active:hover {
  background: none; }

.cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
  background: #000000; }

.cs-offcanvas-toggle__icon, .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
  background: #000000; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-offcanvas-navigation {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #fff; }
  .cs-offcanvas-navigation__list {
    z-index: 1;
    width: 100%;
    min-width: 100%;
    list-style: none;
    padding: 0;
    margin: 0;
    background-color: #fff;
    overflow-y: hidden;
    overflow-x: hidden;
    height: 100%;
    -webkit-overflow-scrolling: touch;
    display: none; }
    .cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--current, .cs-offcanvas-navigation__list--active {
      display: block; }
    .cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--current {
      overflow-y: auto; }
    .cs-offcanvas-navigation__list--current > .cs-offcanvas-navigation__item > .cs-offcanvas-navigation__list {
      display: block; }
    .cs-offcanvas-navigation__list .cs-offcanvas-navigation__list {
      position: absolute;
      left: 105%;
      height: 100%;
      top: 0;
      transition: transform 0.3s; }
      .cs-offcanvas-navigation__list .cs-offcanvas-navigation__list--active {
        transform: translateX(-105%);
        transform: translate3d(-105%, 0, 0); }
  .cs-offcanvas-navigation__item {
    width: 100%;
    display: flex;
    overflow: hidden;
    margin: 0; }
    .cs-offcanvas-navigation__item + .cs-offcanvas-navigation__item {
      border-top: 1px #dcdcdc solid; }
    .cs-offcanvas-navigation__item:last-of-type {
      border-bottom: 1px #dcdcdc solid; }
    .cs-offcanvas-navigation__item--with-icon .cs-offcanvas-navigation__text {
      position: relative;
      padding-left: 2rem; }
  .cs-offcanvas-navigation__link {
    min-width: 100%;
    width: 100%;
    display: flex;
    padding: 2.4rem 2rem;
    font-size: 1.4rem;
    align-items: center;
    text-transform: uppercase;
    font-weight: 700;
    position: relative; }
    .cs-offcanvas-navigation__link, .cs-offcanvas-navigation__link:visited {
      color: #212121; }
    .cs-offcanvas-navigation__link:hover {
      color: #212121; }
    .cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-out {
      padding-right: 5rem; }
      .cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-in:visited, .cs-offcanvas-navigation__link--sign-out, .cs-offcanvas-navigation__link--sign-out:visited {
        color: #324dcf; }
      .cs-offcanvas-navigation__link--sign-in:hover, .cs-offcanvas-navigation__link--sign-out:hover {
        color: #324dcf; }
        .cs-offcanvas-navigation__link--sign-in:hover .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out:hover .cs-offcanvas-navigation__icon path {
          fill: #324dcf; }
      .cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon {
        width: 2.3rem;
        height: 2.7rem;
        right: 2rem; }
        .cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon path {
          fill: #324dcf; }
    .cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
      width: 0.7rem;
      height: 0.1rem; }
    .cs-offcanvas-navigation__link--parent {
      padding-right: 5rem; }
      .cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon {
        right: 2rem; }
    .cs-offcanvas-navigation__link--return {
      padding-left: 5rem; }
      .cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
        left: 2rem; }
    .cs-offcanvas-navigation__link--next {
      position: relative; }
      .cs-offcanvas-navigation__link--next:before, .cs-offcanvas-navigation__link--next:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 0.1rem;
        left: auto;
        background-color: #324dcf;
        -webkit-backface-visibility: hidden;
                backface-visibility: hidden; }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:before, .cs-offcanvas-navigation__link--next[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-offcanvas-navigation__link--next:before {
        transform: rotate(135deg) translate3d(50%, 0, 0);
        right: 2rem; }
      .cs-offcanvas-navigation__link--next:after {
        right: 2rem;
        transform: rotate(-135deg) translate3d(50%, 0, 0); }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:before {
        transform: rotate(225deg) translate3d(0, 0, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:after {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: 2rem; }
    .cs-offcanvas-navigation__link--prev {
      position: relative; }
      .cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 0.1rem;
        left: auto;
        background-color: #324dcf;
        -webkit-backface-visibility: hidden;
                backface-visibility: hidden; }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:before, .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-offcanvas-navigation__link--prev:before {
        transform: rotate(45deg) translate3d(50%, -50%, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--prev:after {
        right: 0;
        transform: rotate(-45deg) translate3d(50%, 50%, 0); }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:before {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: auto; }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:after {
        transform: rotate(-135deg) translate3d(0, 0, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
        left: 2rem; }
  .cs-offcanvas-navigation .active > .cs-offcanvas-navigation__link {
    color: #324dcf; }
  .cs-offcanvas-navigation__icon {
    position: absolute;
    top: 50%;
    transform: translateY(-50%); }
    .cs-offcanvas-navigation__icon path {
      fill: #324dcf; }
  .cs-offcanvas-navigation__category-icon-wrapper {
    position: relative;
    width: 2rem;
    margin-right: 1rem; }
  .cs-offcanvas-navigation__category-icon {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate3d(0, -50%, 0);
    max-height: 2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-offcanvas {
  position: relative;
  z-index: 300; }
  .cs-offcanvas__drawer, .cs-offcanvas__overlay {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    top: 5rem; }
    @media (min-width: 48em) {
      .cs-offcanvas__drawer, .cs-offcanvas__overlay {
        top: 8.3rem;
        bottom: 0; } }
    @media (min-width: 64em) {
      .cs-offcanvas__drawer, .cs-offcanvas__overlay {
        display: none; } }
    .cs-offcanvas--mini-cart .cs-offcanvas__drawer, .cs-offcanvas--mini-cart .cs-offcanvas__overlay {
      display: block;
      top: 0; }
  .cs-offcanvas__overlay {
    width: 100%;
    height: calc(100% - 5rem);
    background-color: transparent;
    transition: background-color 0.3s, transform 1ms 0.3s;
    transform: scale(0);
    cursor: pointer; }
    @media (min-width: 48em) {
      .cs-offcanvas__overlay {
        height: 100%; } }
    .cs-offcanvas--mini-cart .cs-offcanvas__overlay {
      height: 100%; }
  .cs-offcanvas .overlay--visible {
    transform: scale(1);
    background: rgba(0, 0, 0, 0.7);
    transition: background-color 0.3s; }
  .cs-offcanvas__drawer {
    position: fixed;
    background: #fff;
    transition: transform 0.3s;
    width: 90%;
    max-width: 40rem; }
    .cs-offcanvas--side_left .cs-offcanvas__drawer {
      left: 0;
      right: auto;
      transform: translate3d(-105%, 0, 0); }
    .cs-offcanvas--side_right .cs-offcanvas__drawer {
      left: auto;
      right: 0;
      transform: translate3d(105%, 0, 0); }
    .cs-offcanvas__drawer--navigation {
      left: 0;
      right: auto;
      transform: translate3d(-105%, 0, 0); }
  .cs-offcanvas .drawer--visible {
    transform: translate3d(0, 0, 0) !important; }
  .cs-offcanvas__spinner {
    position: absolute;
    width: 6rem;
    height: 6rem;
    left: 50%;
    top: 20%;
    margin-left: -3rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-offcanvas__drawer {
  max-width: 48rem; }

.cs-offcanvas--mini-cart > .drawer {
  bottom: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.page-title {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 4.2rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem;
  text-transform: initial; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-page-bottom {
  padding: 1.5rem 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center; }
  @media (min-width: 48em) {
    .cs-page-bottom {
      flex-wrap: wrap;
      justify-content: flex-start; } }
  @media (min-width: 64em) {
    .cs-page-bottom {
      flex-wrap: nowrap;
      justify-content: space-between; } }
  .page-print .cs-page-bottom {
    display: none; }
  .cs-page-bottom__image {
    height: 3rem;
    width: auto; }
    .cs-page-bottom__image--circle {
      width: 4.7rem;
      height: 4.7rem;
      min-width: 4.7rem;
      min-height: 4.7rem;
      margin-right: 1rem; }
  .cs-page-bottom__text {
    font-size: 1.2rem;
    color: #696969;
    margin-bottom: 0;
    margin-right: 0.6rem; }
    .cs-page-bottom__text--small {
      font-size: 1rem; }
  .cs-page-bottom__group {
    display: flex;
    align-items: center;
    flex-grow: 1;
    flex-shrink: 1;
    justify-content: space-between; }
    @media (min-width: 48em) {
      .cs-page-bottom__group {
        width: 100%;
        padding: 1rem 0; } }
    @media (min-width: 64em) {
      .cs-page-bottom__group {
        width: auto;
        padding: 0; } }
    .cs-page-bottom__group--info {
      display: none;
      flex-direction: row-reverse; }
      @media (min-width: 48em) {
        .cs-page-bottom__group--info {
          display: flex;
          flex-basis: 40%;
          justify-content: flex-end;
          padding-right: 1.5rem; }
          .cs-page-bottom__group--info .cs-page-bottom__text {
            max-width: 20rem; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--info {
          flex-basis: 17%;
          padding-right: 0; }
          .cs-page-bottom__group--info .cs-page-bottom__text {
            max-width: 100%; } }
    .cs-page-bottom__group--shipping {
      display: none; }
      @media (min-width: 48em) {
        .cs-page-bottom__group--shipping {
          display: flex;
          flex-basis: 55%;
          padding-left: 1.5rem; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--shipping {
          flex-basis: 33%;
          padding-left: 4rem; } }
    .cs-page-bottom__group--payment {
      flex-basis: 50%; }
      @media (max-width: 47.99em) {
        .cs-page-bottom__group--payment .cs-page-bottom__text {
          display: none; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-page-bottom__group--payment {
    flex-basis: 100%; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--payment {
          padding-left: 4rem; } }
    @media (min-width: 64em) {
      .cs-page-bottom__group--shipping, .cs-page-bottom__group--payment {
        position: relative; }
        .cs-page-bottom__group--shipping:before, .cs-page-bottom__group--payment:before {
          margin: 0 1rem;
          content: '';
          position: absolute;
          left: 1rem;
          top: 50%;
          width: 0.2rem;
          height: 2rem;
          background: #dcdcdc;
          transform: translateY(-50%); } }
  .cs-page-bottom__logo {
    display: flex;
    flex-shrink: 1;
    height: 2rem; }
    @media (max-width: 63.99em) {
      .cs-page-bottom__logo {
        width: auto; } }
    .cs-page-bottom__logo--hermes {
      width: 12.2rem; }
    .cs-page-bottom__logo--dhl {
      height: auto;
      max-height: 2rem;
      min-width: 8.6rem;
      padding-left: 10px; }
    .cs-page-bottom__logo--paypal {
      width: 6.2rem; }
    .cs-page-bottom__logo--visa {
      height: auto;
      max-height: 2rem;
      min-width: 5.5rem; }
    .cs-page-bottom__logo--mastercard {
      width: 3.3rem; }
    .cs-page-bottom__logo--klarna-sofort {
      height: auto;
      max-height: 2.5rem;
      min-height: 2.5rem; }
    .cs-page-bottom__logo--klarna {
      width: 7rem; }
    .cs-page-bottom__logo--gls {
      width: 5rem; }
    .cs-page-bottom__logo--giropay {
      width: 4.8rem; }
    .cs-page-bottom__logo--ec {
      width: 1.8rem; }
    .cs-page-bottom__logo--paydirekt {
      width: 6rem; }
    .cs-page-bottom__logo--lastschrift {
      width: 6.15rem; }
    .cs-page-bottom__logo--vorkasse {
      width: 8.3rem; }
    .cs-page-bottom__logo--rechnung {
      width: 6.15rem; }
    .cs-page-bottom__logo:not(:last-child) {
      margin-right: 0.5rem; }

.cs-container--page-bottom {
  max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.price-box {
  display: inline-block; }
  .price-box .price {
    font-weight: 700;
    white-space: nowrap; }
    .price-box .price-label {
      display: none; }
  .price-box .old-price .price {
    font-size: 0.65rem;
    text-decoration: line-through; }
  .price-box .old-price.no-display {
    display: none; }
  .price-box .special-price .price {
    padding-left: 0.4em; }
  .price-box .price {
    color: #324dcf;
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0; }
    .price-box .price-label {
      color: #324dcf;
      display: none;
      font-size: 1.1rem;
      font-weight: 700;
      text-transform: uppercase;
      margin: 0 0.3rem 0.3rem 0; }
      .price-box .price-label:after {
        content: ':'; }
      body
p
.price-box .price-label {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
  .price-box .price-wrapper {
    display: flex; }
  .price-box .price-from,
  .price-box .price-to {
    display: inline-block;
    margin: 0;
    padding: 0; }
    .price-box .price-from > .price-container,
    .price-box .price-to > .price-container {
      font-size: 1.1rem; }
    .price-box .price-from .price-label,
    .price-box .price-to .price-label {
      display: inline-block;
      padding: 0; }
  .price-box .old-price .price {
    text-decoration: line-through;
    color: #696969;
    font-size: 1.5rem;
    font-weight: 700; }
  .price-box .special-price .price {
    padding-left: 0;
    color: #e41f12;
    font-size: 1.5rem;
    font-weight: 700; }
  .price-box .special-price.active .price {
    color: #e41f12; }
  .price-box .price-from {
    margin-right: 1rem; }
  .cs-price--pdp_dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
    display: none; }
  .price-box .price-container.price-final_price:not(:only-child) .price {
    color: #e41f12; }

.cs-bundle-box__add .price-as-configured {
  margin: 1rem 0 0; }

.minimal-price-link {
  margin-top: 0 !important;
  margin-right: 1.5rem;
  position: relative; }
  .minimal-price-link:after {
    color: #324dcf;
    display: block;
    content: '-';
    right: -1rem;
    top: 0;
    position: absolute; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.price-box {
  display: flex !important;
  flex-direction: row !important;
  position: relative; }
  .price-box .price-container {
    display: flex;
    flex-direction: column; }
  .price-box .price-including-tax .price {
    color: #333333 !important;
    font-weight: 600 !important;
    font-size: 1.4rem !important; }
  .price-box .price-excluding-tax {
    order: -1;
    margin-bottom: 1rem; }
    .price-box .price-excluding-tax .price {
      color: #c1272f !important;
      font-size: 2.2rem !important; }
  .price-box .price {
    color: #324dcf;
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0; }
    .price-box .price-label {
      color: #324dcf;
      display: none;
      font-size: 1.1rem;
      font-weight: 700;
      text-transform: uppercase;
      margin: 0 0.3rem 0.3rem 0; }
      .price-box .price-label:after {
        content: ":"; }
      body p .price-box .price-label {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
  .price-box .price-wrapper {
    display: flex;
    align-items: center; }
  .price-box .price-from,
  .price-box .price-to {
    display: inline-block;
    margin: 0;
    padding: 0; }
    .price-box .price-from > .price-container,
    .price-box .price-to > .price-container {
      font-size: 1.1rem; }
    .price-box .price-from .price-label,
    .price-box .price-to .price-label {
      display: inline-block;
      padding: 0; }
  .price-box .old-price {
    order: -1;
    text-decoration: none; }
    .price-box .old-price .price-container {
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      height: 100%;
      gap: 1rem; }
    .price-box .old-price .price-excluding-tax {
      order: -1;
      margin-block: 4px 0; }
    .price-box .old-price .price {
      text-decoration: line-through;
      color: #333333 !important;
      font-size: 1.4rem !important;
      font-weight: 300 !important; }
  .price-box .special-price .price-container {
    display: flex;
    flex-direction: column; }
  .price-box .special-price .price {
    padding-left: 0;
    color: #c1272f !important;
    font-size: 2.2rem !important;
    font-weight: 700; }
  .price-box .special-price .price-including-tax .price {
    color: #333333 !important;
    font-weight: 600 !important;
    font-size: 1.4rem !important; }
  .price-box .special-price .price-including-tax::before,
  .price-box .special-price .price-excluding-tax::before {
    display: none !important; }
  .price-box .special-price .price-excluding-tax {
    order: -1;
    margin-block: 0 1rem; }
  .price-box .special-price.active .price {
    color: #e41f12; }
  .price-box .price-from {
    margin-right: 1rem; }
  .cs-price--pdp_dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
    display: none; }
  .price-box .price-container.price-final_price:not(:only-child) .price {
    color: #e41f12; }

.cs-bundle-box__add .price-as-configured {
  margin: 1rem 0 0; }

.minimal-price-link {
  margin-top: 0 !important;
  margin-right: 1.5rem;
  position: relative; }
  .minimal-price-link:after {
    color: #324dcf;
    display: block;
    content: "-";
    right: -1rem;
    top: 0;
    position: absolute; }

.price-including-tax::before,
.price-excluding-tax::before {
  content: attr(data-label) ": " !important;
  display: block !important;
  font-size: 1.4rem !important;
  margin-right: 0.5rem;
  font-weight: 300;
  color: #333333;
  width: 9rem; }
  @media (max-width: 30em) {
    .price-including-tax::before,
    .price-excluding-tax::before {
      margin-right: 0; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/***
 * Using psuedo elements to maintain an elements aspect ratio, even as it scales
 * It's using only for IE11 and Edge (version which doesn't support native CSS grid) browsers
 * For browsers which support native CSS grid, we are using mixins contain `reset` in mixin name
 * to override default mixins (progressive enhancement)
 * https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/
 * @param {number} $width: width of the element;
 * @param {number} $height: height of the element;
 * @param {string} $contentClass: class of the direct child element to be positioned absolutely;
 * @param {boolean} $autoposition: tells if item shall take 100% of parent size or if it can be wider/higher if needed;
 */
/**
 * String to number converter
 * https://www.sassmeister.com/gist/9fa19d254864f33d4a80
 * @author Hugo Giraudel
 * @param {String | Number} $value - Value to be parsed
 * @return {Number}
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
@media (max-width: 48em) {
  body.cms-kma-home-page .cs-product-tile__name-link {
    -webkit-line-clamp: 2 !important; } }

@media (min-width: 48.01em) {
  body.cms-kma-home-page .cs-product-tile__name-link {
    -webkit-line-clamp: 2 !important; } }

@media (min-width: 64.01em) {
  body.cms-kma-home-page .cs-product-tile__name-link {
    -webkit-line-clamp: 3 !important; } }

.cs-product-tile {
  width: 100%;
  height: 100%;
  position: relative;
  border-radius: 8px;
  background-color: #fff; }
  @media (min-width: 64em) {
    .cs-product-tile:hover {
      z-index: 5; } }
  .cs-product-tile--clickable:hover {
    cursor: pointer; }
  .cs-product-tile--hidden .cs-product-tile__main,
  .cs-product-tile--hidden .cs-product-tile__addons {
    visibility: hidden !important; }
  .cs-product-tile--list {
    margin-bottom: 2rem; }
    .cs-product-tile--list:hover {
      box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12); }
  .cs-product-tile--grid.cs-product-tile--static .cs-product-tile__addons {
    display: none; }
  .cs-product-tile__container {
    display: flex;
    height: 100%;
    width: 100%; }
    .cs-product-tile--grid .cs-product-tile__container {
      flex-direction: column;
      padding: 1.5rem; }
      .cs-product-tile--grid .cs-product-tile__container .cs-product-tile__epoint-badges--list {
        display: none !important; }
      .cs-product-tile--grid .cs-product-tile__container .cs-product-tile__epoint-badges--grid {
        position: absolute;
        top: 1rem;
        left: 0;
        right: 0;
        z-index: 1; }
        .cs-product-tile--grid .cs-product-tile__container .cs-product-tile__epoint-badges--grid .badge {
          background-color: #ffffff; }

@media (max-width: 30em) and (min-width: 23.135em) {
  .cs-product-tile--grid .cs-product-tile__container .cs-product-tile__epoint-badges--grid {
    position: relative;
    top: 0;
    padding-bottom: 2rem; }
    .cs-product-tile--grid .cs-product-tile__container .cs-product-tile__epoint-badges--grid > .badges {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      z-index: 1; } }
      .cs-product-tile--grid .cs-product-tile__container .badges {
        padding: 0;
        justify-content: center;
        align-items: center;
        max-width: 70%;
        margin: auto; }
    .cs-product-tile--list .cs-product-tile__container {
      flex-direction: row;
      gap: 0 2rem;
      padding: 1.5rem 2.1rem 2.5rem 2.1rem;
      display: grid;
      grid-template-columns: 1fr 3fr;
      grid-template-rows: auto auto auto;
      grid-column-gap: 10px;
      grid-template-areas: "image content" "review content" "badge content"; }
      @media (max-width: 48em) {
        .cs-product-tile--list .cs-product-tile__container {
          grid-template-columns: 1fr 2fr;
          grid-row-gap: 1rem; } }
      .cs-product-tile--list .cs-product-tile__container .cs-product-tile__epoint-badges--grid {
        display: none !important; }
        @media (max-width: 48em) {
          .cs-product-tile--list .cs-product-tile__container .cs-product-tile__epoint-badges--grid {
            display: block !important;
            grid-area: unset; } }
        @media (min-width: 30.01em) {
          .cs-product-tile--list .cs-product-tile__container .cs-product-tile__epoint-badges--grid {
            grid-area: badge;
            padding-top: 1rem; } }
      @media (max-width: 48em) {
        .cs-product-tile--list .cs-product-tile__container .cs-product-tile__epoint-badges--list {
          display: none !important; } }
      @media (max-width: 48em) {
        .cs-product-tile--list .cs-product-tile__container .badges {
          align-items: center;
          flex-direction: column; } }
  .cs-product-tile--list .cs-product-tile__link {
    display: flex;
    width: 100%; }
  .cs-product-tile--grid .cs-product-tile__link {
    display: block;
    height: 100%; }
  .cs-product-tile__thumbnail {
    display: flex;
    grid-area: image; }
    @media (max-width: 30em) {
      .cs-product-tile__thumbnail {
        margin-bottom: -1rem; } }
    .cs-product-tile--list .cs-product-tile__thumbnail {
      flex: 1 1;
      justify-content: center; }
      @media (max-width: 23.125em) {
        .cs-product-tile--list .cs-product-tile__thumbnail {
          flex: initial; } }
  .cs-product-tile__thumbnail-link {
    display: block;
    position: relative;
    overflow: hidden; }
    .cs-product-tile--grid .cs-product-tile__thumbnail-link {
      width: 100%; }
    .cs-product-tile--list .cs-product-tile__thumbnail-link {
      padding: 0 4rem 0 0;
      height: 100%;
      flex-grow: initial; }
      @media (min-width: 48em) {
        .cs-product-tile--list .cs-product-tile__thumbnail-link {
          padding: 0; } }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__thumbnail-link {
        padding: 0; }
        @media (min-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__thumbnail-link {
            padding: 0; } }
    .cs-product-tile__thumbnail-link:hover, .cs-product-tile__thumbnail-link:visited {
      color: inherit;
      text-decoration: inherit; }
  .cs-product-tile__figure {
    position: initial;
    margin: 0;
    padding: 0;
    height: 100%;
    overflow: hidden; }
    .cs-product-tile__figure:before {
      content: none !important; }
    .cs-product-tile--grid .cs-product-tile__figure {
      width: 100%;
      justify-content: flex-start;
      align-items: center;
      top: 0;
      position: relative; }
      .cs-product-tile--grid .cs-product-tile__figure:before {
        display: block;
        content: '';
        width: 100%;
        padding-top: 125.71429%; }
      .cs-product-tile--grid .cs-product-tile__figure .cs-product-tile__thumbnail-link {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0; }
    .cs-product-tile--list .cs-product-tile__figure {
      width: 100%;
      min-width: 10rem;
      justify-content: center;
      align-items: flex-start;
      height: auto; }
      @media (max-width: 29.99em) {
        .cs-product-tile--list .cs-product-tile__figure {
          width: 100%; } }
      .cs-product-tile--list .cs-product-tile__figure:before {
        content: none; }
  .cs-product-tile__image {
    display: flex;
    justify-content: center;
    width: 100%;
    height: auto;
    max-width: 100%;
    margin: auto; }
  .cs-product-tile__img {
    width: auto;
    height: 230px;
    max-height: 230px;
    margin-bottom: 1rem; }
    @media (max-width: 48em) {
      .cs-product-tile__img {
        height: auto;
        min-height: 140px;
        max-height: 300px;
        height: 196px; } }
    .cs-product-tile--list .cs-product-tile__img {
      height: auto;
      margin-bottom: 0; }
      @media (max-width: 48em) {
        .cs-product-tile--list .cs-product-tile__img {
          height: auto; } }
  .cs-product-tile__badges {
    margin: 0;
    padding: 0;
    list-style: none;
    display: none;
    flex-wrap: wrap; }
    .cs-product-tile--list .cs-product-tile__badges--grid {
      display: none; }
    .cs-product-tile--grid .cs-product-tile__badges--list {
      display: none; }
    .cs-product-tile--grid .cs-product-tile__badges {
      position: absolute;
      z-index: 2;
      top: 0;
      left: 0.3rem;
      flex-direction: column; }
    .cs-product-tile--list .cs-product-tile__badges {
      margin: 0 0 0 0.3rem;
      justify-content: flex-start; }
  .cs-product-tile__badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #324dcf;
    color: #fff;
    border: 0;
    border-radius: 24px;
    padding: 0 0.7rem;
    font-size: 1.1rem;
    font-weight: 700;
    min-height: 2em;
    text-transform: uppercase; }

@media (min-width: 23.125em) and (max-width: 29.99em) {
  .cs-product-tile__badge {
    font-size: 0.9rem; } }
    .cs-product-tile__badge--discount {
      background-color: #e41f12;
      color: #fff; }
      .cs-product-tile__badge--discount .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--discount .cs-product-tile__badge-text + .cs-product-tile__badge--discount .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--new {
      background-color: #fed400;
      color: #000; }
      .cs-product-tile__badge--new .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--new .cs-product-tile__badge-text + .cs-product-tile__badge--new .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--free-shipping {
      background-color: #37b841;
      color: #fff; }
      .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text + .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--popular {
      background-color: #37b841;
      color: #fff; }
      .cs-product-tile__badge--popular .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--popular .cs-product-tile__badge-text + .cs-product-tile__badge--popular .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--dailydeal {
      background-color: #e41f12;
      color: #fff; }
      .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text + .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
  .cs-product-tile__badge-item {
    display: flex; }
    .cs-product-tile--grid .cs-product-tile__badge-item {
      margin: 0 0 0.5rem;
      width: 100%; }
    .cs-product-tile--list .cs-product-tile__badge-item {
      margin: 0 1rem 0.3rem 0; }
    .cs-product-tile__badge-item:empty {
      display: none; }
  .cs-product-tile__badge-text {
    line-height: normal; }
    .cs-product-tile__badge-text + .cs-product-tile__badge-text {
      margin-left: 0.5rem; }
  .cs-product-tile--list .cs-product-tile__gallery {
    display: none !important; }
  .cs-product-tile__content {
    padding: 0;
    display: flex;
    align-items: stretch;
    grid-area: content; }
    .cs-product-tile--grid .cs-product-tile__content {
      flex-direction: column;
      flex: auto;
      height: 27rem; }
      @media (max-width: 64em) {
        .cs-product-tile--grid .cs-product-tile__content {
          height: 27rem;
          padding-bottom: 6rem; } }
      @media (max-width: 48em) {
        .cs-product-tile--grid .cs-product-tile__content {
          height: 28rem;
          padding-bottom: 4rem; } }
      @media (max-width: 30em) {
        .cs-product-tile--grid .cs-product-tile__content {
          height: auto;
          padding-bottom: 5rem;
          min-height: 32rem;
          flex: 1 1; } }
    .cs-product-tile--list .cs-product-tile__content {
      position: relative;
      flex: 3 1;
      flex-direction: column; }
      @media (max-width: 23.125em) {
        .cs-product-tile--list .cs-product-tile__content {
          flex: initial; } }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__content {
        flex-direction: column; }
        @media (min-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__content {
            flex-direction: column; } }
  .cs-product-tile__addons {
    position: absolute;
    left: 0;
    z-index: 1;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    overflow: hidden;
    background: transparent;
    border-radius: 8px;
    min-height: 100%;
    background: linear-gradient(0deg, white 0%, white 10%, rgba(0, 212, 255, 0) 10%);
    pointer-events: none; }
    .cs-product-tile__addons-bottom, .cs-product-tile__addons-sides {
      pointer-events: auto; }
    @media (pointer: coarse) {
      .cs-product-tile__addons {
        opacity: 1 !important; } }
  @media (pointer: coarse) and (min-width: 48.01em) {
    .cs-product-tile__addons {
      padding-bottom: 1.5rem !important; } }
    @media (max-width: 48em) {
      .cs-product-tile__addons {
        height: 100%; } }
    .cs-product-tile--list .cs-product-tile__addons {
      padding: 0;
      margin: 1rem 0 0;
      position: relative;
      z-index: 1;
      opacity: initial;
      box-shadow: none;
      transform: none;
      overflow: visible;
      justify-content: space-between;
      align-items: center;
      flex-direction: row;
      min-height: unset; }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons {
        padding: 0;
        margin: 1rem 0 0;
        flex: 1 0 auto;
        border-left: none;
        flex-direction: row;
        align-items: center; }
        @media (max-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons {
            padding: 0;
            margin: 0;
            flex: 0 1;
            flex-direction: column;
            align-items: flex-start;
            gap: 1rem 0; }
            .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons-sides {
              padding: 0; } }
    .cs-product-tile--grid .cs-product-tile__addons {
      align-items: flex-end;
      opacity: 0;
      top: 30px;
      padding: 38.2rem 2.5rem 3rem;
      box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12);
      justify-content: center;
      transform: translate3d(0, -3rem, 0); }
      @media (max-width: 64em) {
        .cs-product-tile--grid .cs-product-tile__addons {
          padding-top: 47rem;
          opacity: 1 !important;
          overflow: visible !important;
          box-shadow: none !important;
          transform: translate3d(0, 0, 0) !important;
          top: 0; } }
      @media (max-width: 48em) {
        .cs-product-tile--grid .cs-product-tile__addons {
          padding-top: 44rem; } }
      @media (max-width: 23.125em) {
        .cs-product-tile--grid .cs-product-tile__addons {
          padding-top: 43rem; } }
    @media (min-width: 64em) {
      .cs-product-tile:hover .cs-product-tile__addons {
        opacity: 1;
        top: 0;
        transform: translate3d(0, 0, 0);
        transition: opacity 0.1s linear, transform 0.33s cubic-bezier(0, 0.66, 0.32, 0.99); } }
  @media (min-width: 64em) and (pointer: coarse) {
    .cs-product-tile:hover .cs-product-tile__addons {
      opacity: 0;
      transform: none; } }
    .cs-product-tile:hover .cs-product-tile__addons .cs-product-tile.no-transition,
    .cs-product-tile--static .cs-product-tile:hover .cs-product-tile__addons {
      transition: none; }
  .cs-product-tile__addons-top {
    width: 100%; }
    .cs-product-tile--list .cs-product-tile__addons-top {
      flex: 1 1;
      display: none; }
  .cs-product-tile__addons-sides {
    display: flex;
    width: auto;
    position: absolute;
    top: 1rem;
    right: 1rem; }
    .cs-product-tile--list .cs-product-tile__addons-sides {
      position: static; }
    @media (max-width: 64em) {
      .cs-product-tile__addons-sides {
        width: 100%;
        right: 0.2rem;
        top: 1.6rem;
        padding: 0 1rem; } }
    @media (max-width: 30em) {
      .cs-product-tile__addons-sides {
        padding: 0 0.5rem; } }
    @media (max-width: 23.125em) {
      .cs-product-tile__addons-sides {
        padding: 0 1.5rem; } }
  .cs-product-tile__addons-right {
    display: none; }
    .cs-product-tile--grid .cs-product-tile__addons-right {
      align-items: flex-end; }
    .cs-product-tile--list .cs-product-tile__addons-right {
      align-items: flex-start;
      padding-left: 0;
      order: -1; }
  .cs-product-tile__addons-bottom {
    width: auto; }
    .cs-product-tile--list .cs-product-tile__addons-bottom {
      display: none; }
      @media (min-width: 48em) {
        .cs-product-tile--list .cs-product-tile__addons-bottom {
          display: block; } }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons-bottom {
        display: block; }
        @media (min-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons-bottom {
            display: block; } }
  .cs-product-tile__addons-left {
    padding-right: 0;
    flex: 1 1 auto;
    display: flex;
    justify-content: flex-end;
    flex-direction: column; }
    .cs-product-tile--grid .cs-product-tile__addons-left {
      align-items: flex-start; }
    .cs-product-tile--list .cs-product-tile__addons-left {
      align-items: flex-start;
      padding-right: 0;
      order: 2; }
    .cs-product-tile__addons-left .cs-star-rating {
      display: none !important; }
  .cs-product-tile__review--grid {
    margin: 1rem 0 0; }
    .cs-product-tile--list .cs-product-tile__review--grid {
      display: none;
      display: block;
      grid-area: review;
      padding-bottom: 0;
      margin-top: 0; }
      .cs-product-tile--list .cs-product-tile__review--grid .cs-star-rating {
        max-width: 10rem;
        flex-wrap: wrap;
        row-gap: 1rem;
        justify-content: center;
        margin: auto; }
    .cs-product-tile--grid .cs-product-tile__review--grid {
      display: none !important; }
  .cs-product-tile__review--list {
    display: none !important;
    margin: 0 0 1rem; }
    @media (max-width: 48em) {
      .cs-product-tile__review--list {
        margin: 0; } }
    @media (min-width: 48em) {
      .cs-product-tile__review--list {
        position: absolute;
        top: 0;
        right: 2rem; }
        .cs-product-tile--list .cs-product-tile__review--list + .cs-product-tile__name {
          padding-right: 12rem; } }
    .cs-products-list--with-sidebar .cs-product-tile__review--list {
      position: relative;
      top: 0rem;
      right: initial;
      padding-top: 0.5rem; }
      .cs-products-list--with-sidebar .cs-product-tile__review--list .cs-star-rating__text {
        min-width: 2rem; }
      @media (min-width: 64em) {
        .cs-products-list--with-sidebar .cs-product-tile__review--list {
          position: absolute;
          top: 0.5rem;
          right: 9rem;
          margin: 0 0 1rem;
          padding-top: 0; }
          .cs-product-tile--list .cs-products-list--with-sidebar .cs-product-tile__review--list + .cs-product-tile__name {
            padding-right: 12rem; } }
      @media (max-width: 30em) {
        .cs-products-list--with-sidebar .cs-product-tile__review--list {
          display: none !important; } }
    .cs-product-tile--grid .cs-product-tile__review--list {
      display: none; }
  .cs-product-tile__review:empty {
    margin: 0 !important; }
  .cs-product-tile__stock {
    display: inline-block;
    white-space: nowrap;
    font-size: 1.3rem; }
    .cs-product-tile__stock--in {
      color: #37b841; }
    .cs-product-tile__stock--out {
      color: #e41f12; }
    .cs-product-tile--grid .cs-product-tile__stock {
      margin: 0; }
    .cs-product-tile--list .cs-product-tile__stock {
      margin: 0 1rem 0 0; }
  .cs-product-tile--list .cs-product-tile__dailydeal--grid {
    display: none !important; }
  .cs-product-tile__dailydeal--list {
    position: relative;
    width: auto;
    margin-bottom: 0; }
    .cs-product-tile--grid .cs-product-tile__dailydeal--list {
      display: none !important; }
    .cs-product-tile__dailydeal--list.cs-dailydeal--tile {
      position: relative;
      width: auto;
      bottom: 0; }
  .cs-product-tile--grid .cs-product-tile__dailydeal {
    margin: 0; }
  .cs-product-tile--list .cs-product-tile__dailydeal {
    margin: 1rem 0 0 0; }
  .cs-product-tile__qty {
    margin-bottom: 1rem;
    width: 11rem;
    margin-left: auto; }
  .cs-product-tile__main {
    position: relative;
    display: flex;
    align-items: stretch; }
    @media (max-width: 30em) {
      .cs-product-tile__main {
        flex-direction: column !important; } }
    .cs-product-tile--grid .cs-product-tile__main {
      flex-direction: column;
      height: 100%;
      justify-content: flex-start; }
    .cs-product-tile--list .cs-product-tile__main {
      flex-direction: row;
      flex: 1 1 100%; }
      @media (min-width: 48em) {
        .cs-product-tile--list .cs-product-tile__main {
          padding: 0; } }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__main {
        padding: 0; }
        @media (min-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__main {
            padding: 0; } }
  .cs-product-tile__details {
    flex-shrink: 0;
    text-align: center;
    text-decoration: none !important;
    overflow: hidden; }
    .cs-product-tile--list .cs-product-tile__details {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      flex: 1 1;
      padding: 0; }
    .cs-product-tile--grid .cs-product-tile__details {
      display: flex;
      flex-direction: column;
      height: 100%; }
  .cs-product-tile__swatches {
    display: none; }
    .cs-product-tile--grid .cs-product-tile__swatches {
      margin: 1.5rem 0 1rem;
      min-height: 2.6rem; }
      .cs-product-tile--grid .cs-product-tile__swatches,
      .cs-product-tile--grid .cs-product-tile__swatches .swatch-attribute-options {
        justify-content: center; }
    .cs-product-tile--list .cs-product-tile__swatches {
      width: 100%;
      margin: 0 0 0.5rem; }
      .cs-product-tile--list .cs-product-tile__swatches:empty {
        margin: 0; }
      .cs-product-tile--list .cs-product-tile__swatches,
      .cs-product-tile--list .cs-product-tile__swatches .swatch-attribute-options {
        justify-content: flex-start; }
    .cs-product-tile__swatches--list:empty {
      margin: 0 !important; }
  .cs-product-tile__brand {
    margin-top: 1rem;
    text-align: center;
    height: 2.2rem;
    min-height: 1.6rem; }
    @media (max-width: 30em) {
      .cs-product-tile__brand {
        margin-top: 0.5rem;
        height: 2rem; }
        .cs-product-tile--list .cs-product-tile__brand {
          width: calc(100% - 80px);
          text-align: left; } }
  .cs-product-tile__brand-text {
    font-size: 1.2rem;
    color: #333333;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    line-clamp: 1;
    overflow: hidden;
    word-break: break-word; }
  .cs-product-tile__name {
    line-height: 2.4rem;
    font-weight: 700;
    font-size: 1.6rem;
    margin-top: 1rem;
    overflow: hidden;
    width: 100%;
    padding: 0 1rem;
    min-height: 5rem; }
    .cs-product-tile--grid .cs-product-tile__details > .cs-product-tile__brand + .cs-product-tile__name {
      margin: 0.5rem 0 0.3rem 0; }
      @media (max-width: 47.99em) {
        .cs-product-tile--grid .cs-product-tile__details > .cs-product-tile__brand + .cs-product-tile__name {
          margin: 0.2rem 0 0.3rem 0;
          flex: 1 1; } }
      @media (max-width: 30em) {
        .cs-product-tile--grid .cs-product-tile__details > .cs-product-tile__brand + .cs-product-tile__name {
          margin-top: 0.2rem; } }
    .cs-product-tile--list .cs-product-tile__name {
      text-align: left;
      padding: 0;
      width: 100%; }
  .cs-product-tile__sku {
    padding: 0;
    text-align: center; }
    .cs-product-tile__sku-text {
      font-size: 1.4rem; }
    @media (max-width: 30em) {
      .cs-product-tile__sku {
        padding-bottom: 0; } }
    @media (max-width: 48em) {
      .cs-product-tile--grid .cs-product-tile__sku {
        margin-top: auto; } }
  .cs-product-tile__name-link {
    color: #333333;
    /* disabled because autoprefixer can't build this */
    /* stylelint-disable value-no-vendor-prefix */
    /* stylelint-disable property-no-vendor-prefix */
    /* autoprefixer: ignore next */
    display: -webkit-box;
    /* autoprefixer: ignore next */
    -webkit-box-orient: vertical;
    /* autoprefixer: ignore next */
    -webkit-line-clamp: 3;
    /* autoprefixer: ignore next */
    line-clamp: 3;
    max-width: 100%;
    /* stylelint-enable value-no-vendor-prefix */
    /* stylelint-enable property-no-vendor-prefix */ }
    .cs-product-tile__name-link:visited {
      color: #333333; }
    .cs-product-tile__name-link:hover {
      color: #333333 !important;
      text-decoration: none; }
  .cs-product-tile__description {
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 2.4rem;
    color: #333333;
    margin: 2.4rem 0 2rem;
    overflow: hidden; }
    .cs-product-tile--grid .cs-product-tile__description {
      display: none; }
    .cs-product-tile--grid:hover .cs-product-tile__description {
      /* autoprefixer: ignore next */
      display: -webkit-box !important;
      /* autoprefixer: ignore next */
      -webkit-box-orient: vertical;
      /* autoprefixer: ignore next */
      -webkit-line-clamp: 5;
      /* autoprefixer: ignore next */
      line-clamp: 5;
      max-height: 12rem; }
      @media (max-width: 48em) {
        .cs-product-tile--grid:hover .cs-product-tile__description {
          /* autoprefixer: ignore next */
          -webkit-line-clamp: 7;
          /* autoprefixer: ignore next */
          line-clamp: 7;
          max-height: 20rem; } }
    .cs-product-tile--list .cs-product-tile__description {
      width: 100%;
      margin: 1rem 0 2rem;
      text-align: left;
      /* autoprefixer: ignore next */
      display: -webkit-box;
      /* autoprefixer: ignore next */
      -webkit-box-orient: vertical;
      /* autoprefixer: ignore next */
      -webkit-line-clamp: 2;
      /* autoprefixer: ignore next */
      line-clamp: 2; }
      @media (max-width: 64em) {
        .cs-product-tile--list .cs-product-tile__description {
          display: none; } }
    .cs-product-tile__description:empty {
      margin: 0 !important; }
  .cs-product-tile__additional--list {
    margin: auto 0 0 0;
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: flex-end;
    order: -1;
    margin-bottom: -4.8rem;
    margin-top: 0;
    width: auto;
    right: 0;
    position: absolute; }
    @media (min-width: 48em) {
      .cs-product-tile__additional--list {
        display: flex;
        flex-direction: row;
        align-items: flex-end;
        justify-content: flex-end; } }
    .cs-products-list--with-sidebar .cs-product-tile__additional--list {
      flex-direction: row;
      align-items: flex-end;
      justify-content: flex-end; }
      @media (min-width: 64em) {
        .cs-products-list--with-sidebar .cs-product-tile__additional--list {
          flex-direction: row;
          align-items: flex-end;
          justify-content: flex-end; } }
    @media (max-width: 29.99em) {
      .cs-product-tile__additional--list {
        margin-bottom: -1rem; } }
  .cs-product-tile__addto-left {
    align-items: flex-end; }
  .cs-product-tile--list .cs-product-tile__addto--grid {
    display: none; }
  .cs-product-tile--grid .cs-product-tile__addto--grid {
    order: -1; }
    .cs-product-tile--grid .cs-product-tile__addto--grid .cs-links-block-addto {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 1rem; }
    @media (max-width: 64em) {
      .cs-product-tile--grid .cs-product-tile__addto--grid {
        width: 100%; }
        .cs-product-tile--grid .cs-product-tile__addto--grid .cs-links-block-addto {
          flex-direction: row; } }
  .cs-product-tile__addto--list {
    padding-bottom: 1.5rem;
    margin-top: 0 !important; }
    .cs-product-tile--grid .cs-product-tile__addto--list {
      display: none; }
  .cs-product-tile--list .cs-product-tile__addto {
    margin: 1rem 0 0; }
    .cs-product-tile--list .cs-product-tile__addto .cs-links-block-addto {
      gap: 0 1.5rem; }
  .cs-product-tile__addto .cs-links-block-addto__link {
    font-size: 1.3rem; }
    .cs-product-tile__addto .cs-links-block-addto__link-label {
      display: none; }
  .cs-dashboard__bottom-wishlist .cs-product-tile__addto,
  .cs-dashboard__wishlist-products-grid .cs-product-tile__addto {
    display: none; }
  .cs-product-tile__addto:empty {
    margin: 0 !important; }
  .cs-product-tile--grid .cs-product-tile__addtocart {
    margin: 1rem 0 0; }
  .cs-product-tile--list .cs-product-tile__addtocart {
    margin: 0; }
  .cs-product-tile__addtocart-button {
    width: 100%; }
    @media (max-width: 30em) {
      .cs-product-tile__addtocart-button {
        padding: 1rem; } }
  .cs-product-tile__wishlist-remove-icon {
    display: none !important;
    position: absolute;
    top: 0;
    right: 0;
    background: transparent;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1.5rem; }
    @media (pointer: fine) {
      .cs-product-tile__wishlist-remove-icon {
        display: none; } }
  .cs-product-tile__wishlist-remove-icon-image {
    width: 1.2rem;
    height: 1.2rem;
    fill: #888; }
  .cs-product-tile__wishlist-comment {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    .cs-product-tile--list .cs-product-tile__wishlist-comment {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      white-space: nowrap;
      /* 1 */ }
  .cs-product-tile__wishlist-actions {
    margin: 1rem 0 0;
    display: flex;
    justify-content: center;
    margin-top: 1.5rem; }
    @media (max-width: 48em) {
      .cs-product-tile__wishlist-actions {
        margin-top: 0.5rem; } }
    @media (max-width: 30em) {
      .cs-product-tile__wishlist-actions {
        align-items: center;
        background-color: #ffffff;
        margin: 1rem -1rem 0; } }
    @media (max-width: 23.125em) {
      .cs-product-tile__wishlist-actions {
        margin-top: 0.5rem; } }
    .cs-product-tile__wishlist-actions .cs-product-tile__wishlist-action:hover {
      color: #c1272f;
      text-decoration: underline; }
      .cs-product-tile__wishlist-actions .cs-product-tile__wishlist-action:hover span {
        text-decoration: underline; }
    .cs-product-tile__wishlist-actions .cs-product-tile__wishlist-action--remove {
      padding-left: 5px; }
      .cs-product-tile__wishlist-actions .cs-product-tile__wishlist-action--remove:hover {
        text-decoration: none !important; }
      .cs-product-tile__wishlist-actions .cs-product-tile__wishlist-action--remove::before {
        content: "|";
        color: black !important; }
  .cs-product-tile__price {
    line-height: 1.2; }
    .cs-product-tile--list .cs-product-tile__price--grid {
      display: none; }
    .cs-product-tile--grid .cs-product-tile__price--grid {
      display: flex;
      justify-content: center; }
      @media (max-width: 48em) {
        .cs-product-tile--grid .cs-product-tile__price--grid {
          padding-bottom: 4rem;
          height: 13rem; }
          .cs-product-tile--grid .cs-product-tile__price--grid .price-final_price .price-including-tax > .price {
            margin-top: 0; } }
      @media (min-width: 48.01em) {
        .cs-product-tile--grid .cs-product-tile__price--grid {
          padding-top: 1.5rem; } }
  @media (min-width: 48.01em) and (pointer: fine) {
    .cs-product-tile--grid .cs-product-tile__price--grid {
      margin-top: auto;
      margin-bottom: -2.5rem;
      padding-top: 1.5rem;
      padding-bottom: 3rem; } }
    .cs-product-tile__price--grid .old-price .price-including-tax > .price,
    .cs-product-tile__price--grid .old-price .price-excluding-tax > .price {
      left: 9.5rem; }
      @media (max-width: 48em) {
        .cs-product-tile__price--grid .old-price .price-including-tax > .price,
        .cs-product-tile__price--grid .old-price .price-excluding-tax > .price {
          left: 50% !important;
          transform: translateX(-50%); } }
    @media (max-width: 48em) {
      .cs-product-tile__price--grid .old-price .price-excluding-tax > .price {
        top: 1.95rem !important; } }
    @media (max-width: 48em) {
      .cs-product-tile__price--grid .old-price .price-including-tax::before {
        transform: translateY(-1.6rem); }
      .cs-product-tile__price--grid .old-price .price-including-tax > .price {
        bottom: 0 !important; } }
    @media (max-width: 47.99em) {
      .cs-product-tile__price--grid .price-box .price-wrapper {
        flex-direction: column !important;
        align-items: center !important; } }
    .cs-product-tile--grid .cs-product-tile__price--list {
      display: none; }
    @media (max-width: 48em) {
      .cs-product-tile__price--list .special-price .price-including-tax {
        transform: translateY(-1rem) !important; }
        .cs-product-tile__price--list .special-price .price-including-tax > .price {
          margin-top: 3px !important;
          transform: translateY(-3px); } }
    @media (max-width: 48em) {
      .cs-product-tile__price--list .special-price .price-excluding-tax {
        transform: translateY(-4.7rem) !important;
        margin-top: 0 !important; } }
    @media (max-width: 48em) {
      .cs-product-tile__price--list .old-price .price-including-tax > .price,
      .cs-product-tile__price--list .old-price .price-excluding-tax > .price {
        left: 0 !important;
        transform: none; } }
    @media (max-width: 48em) {
      .cs-product-tile__price--list .old-price .price-excluding-tax {
        margin-top: 0; }
        .cs-product-tile__price--list .old-price .price-excluding-tax > .price {
          top: 2rem !important; } }
    @media (max-width: 48em) {
      .cs-product-tile__price--list .old-price .price-including-tax > .price {
        bottom: 3rem !important; } }
    .cs-product-tile__price .price-box {
      margin-top: 2rem;
      display: flex;
      line-height: 2rem; }
      .cs-product-tile__price .price-box .price-excluding-tax .price {
        font-size: 1.8rem !important; }
      @media (max-width: 47.99em) {
        .cs-product-tile__price .price-box .price-wrapper {
          flex-direction: column !important;
          align-items: flex-start; } }
      .cs-product-tile__price .price-box .price-wrapper .price {
        font-size: 1.8rem;
        font-weight: 700;
        color: #333333; }
      .cs-product-tile__price .price-box .old-price {
        height: 100%; }
        @media (max-width: 48em) {
          .cs-product-tile__price .price-box .old-price > .price-container {
            gap: 5.5rem; } }
        .cs-product-tile__price .price-box .old-price .price {
          font-size: 1.4rem !important;
          font-weight: 400;
          color: #333333;
          text-decoration: line-through; }
        @media (max-width: 47.99em) {
          .cs-product-tile__price .price-box .old-price .price-including-tax {
            gap: 0; } }
        .cs-product-tile__price .price-box .old-price .price-including-tax > .price {
          position: absolute;
          bottom: -2rem;
          left: 9.5rem; }
        @media (max-width: 47.99em) {
          .cs-product-tile__price .price-box .old-price .price-excluding-tax {
            gap: 0; } }
        .cs-product-tile__price .price-box .old-price .price-excluding-tax > .price {
          position: absolute;
          top: -1.5rem;
          left: 9rem; }
      .cs-product-tile__price .price-box .special-price {
        height: 100%; }
        @media (max-width: 48em) {
          .cs-product-tile--grid .cs-product-tile__price .price-box .special-price {
            width: 100%;
            position: absolute; } }
        .cs-product-tile__price .price-box .special-price .price {
          font-weight: 700;
          color: #c1272f; }
        .cs-product-tile__price .price-box .special-price .price-excluding-tax {
          margin-left: -0.5rem; }
          @media (max-width: 47.99em) {
            .cs-product-tile__price .price-box .special-price .price-excluding-tax {
              margin-top: -2rem;
              margin-left: 0;
              transform: translateY(3.1rem); } }
          .cs-product-tile__price .price-box .special-price .price-excluding-tax .price {
            font-size: 1.8rem !important; }
        @media (max-width: 47.99em) {
          .cs-product-tile__price .price-box .special-price .price-including-tax {
            transform: translateY(3.9rem); } }
        .cs-product-tile__price .price-box .special-price .price-final_price {
          height: 100%;
          justify-content: space-evenly; }
      .cs-product-tile__price .price-box .minimal-price {
        margin: 0;
        display: flex; }
      .cs-product-tile--grid .cs-product-tile__price .price-box {
        margin: 0 0 2rem 0;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center; }
        @media (max-width: 30em) {
          .cs-product-tile--grid .cs-product-tile__price .price-box {
            margin: 0; } }
        .cs-product-tile--grid .cs-product-tile__price .price-box .old-price {
          order: -1;
          text-decoration: none; }
          @media (max-width: 48em) {
            .cs-product-tile--grid .cs-product-tile__price .price-box .old-price .price-wrapper::before {
              visibility: visible; } }
          .cs-product-tile--grid .cs-product-tile__price .price-box .old-price .price-wrapper .price {
            text-decoration: line-through; }
        @media (max-width: 48em) {
          .cs-product-tile--grid .cs-product-tile__price .price-box .special-price .price-wrapper::before {
            display: none; } }
        .cs-product-tile--grid .cs-product-tile__price .price-box .minimal-price {
          align-items: center; }
        .cs-product-tile--grid .cs-product-tile__price .price-box .old-price .price {
          margin-right: 0; }
        @media (max-width: 48em) {
          .cs-product-tile--grid .cs-product-tile__price .price-box {
            align-items: center; } }
      .cs-product-tile--list .cs-product-tile__price .price-box {
        justify-content: flex-end;
        margin: 0;
        text-align: left;
        flex-direction: column; }
        .cs-product-tile--list .cs-product-tile__price .price-box .old-price .price-wrapper {
          justify-content: flex-start; }
          .cs-product-tile--list .cs-product-tile__price .price-box .old-price .price-wrapper::before {
            display: none; }
        @media (max-width: 48em) {
          .cs-product-tile--list .cs-product-tile__price .price-box .old-price > .price-container {
            padding-top: 0.5rem;
            gap: 5rem; } }
        .cs-product-tile--list .cs-product-tile__price .price-box .old-price {
          order: -1;
          text-align: left;
          text-decoration: none; }
          .cs-product-tile--list .cs-product-tile__price .price-box .old-price .price-wrapper .price {
            text-decoration: line-through; }
        @media (max-width: 48em) {
          .cs-product-tile--list .cs-product-tile__price .price-box .special-price .price-wrapper::before {
            display: none; } }
        .cs-product-tile--list .cs-product-tile__price .price-box .price-from {
          margin-right: 0; }
        .cs-product-tile--list .cs-product-tile__price .price-box .minimal-price {
          flex-direction: column; }
    .cs-product-tile__price--dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
      display: none; }
    .cs-product-tile__price--dailydeal-countdown .price-box.price-box--visible {
      display: flex; }
  @media (max-width: 48em) {
    .cs-product-tile--list .cs-product-tile__price .price-box {
      flex-direction: column !important; } }
  @media (max-width: 48em) {
    .cs-product-tile--list .cs-product-tile__price .price-box .old-price .price-including-tax .price,
    .cs-product-tile--list .cs-product-tile__price .price-box .old-price .price-excluding-tax .price {
      transform: none; } }
  @media (max-width: 48em) {
    .cs-product-tile--list .cs-product-tile__price .price-box .special-price {
      margin: 0; } }
  @media (min-width: 48.01em) {
    .cs-product-tile--list .cs-product-tile__addons {
      gap: 3rem 0 !important;
      padding-top: 1rem !important; }
      .cs-product-tile--list .cs-product-tile__addons-sides {
        padding-bottom: 1rem; }
      .cs-product-tile--list .cs-product-tile__addons-bottom {
        margin-top: auto; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-products-list {
  margin: 0;
  padding: 0;
  list-style: none; }
  .cs-products-list__item {
    margin: 0; }
  .cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item {
    border-bottom: 1px solid #f0f0f0;
    padding: 0; }
    .cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item:last-child {
      border-bottom: 0; }
  @media (min-width: 48em) {
    .cs-products-list--carousel .cs-products-list__item {
      border-bottom: 1px solid #f0f0f0;
      padding: 0; }
      .cs-products-list--carousel .cs-products-list__item:last-child {
        border-bottom: 0; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-push-notification {
  display: none; }
  .cs-push-notification._active {
    display: block; }
  .cs-push-notification__content {
    position: relative;
    display: block;
    background: #fff;
    padding: 0;
    border: none;
    border-radius: 24px;
    box-shadow: none;
    margin: 1.5rem 0; }
    .cs-push-notification--shipping .cs-push-notification__content {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.1), -2px -2px 3px rgba(0, 0, 0, 0.1);
      padding: 2rem 1.5rem; }
  .cs-push-notification__icons {
    margin: 0; }
    @media (max-width: 29.99em) {
      .cs-push-notification__icons {
        display: none; } }
  .cs-push-notification__icon {
    width: 3.5rem;
    height: 3.5rem; }
    .cs-push-notification__icon--animate {
      -webkit-animation: ringing 6s infinite;
              animation: ringing 6s infinite; }
  .cs-push-notification__message-wrapper {
    margin: 0;
    flex: 1 1; }
    .cs-push-notification--shipping .cs-push-notification__message-wrapper {
      margin: 0 1.5rem; }
    @media (max-width: 63.99em) {
      .cs-push-notification__message-wrapper {
        padding-right: 0; } }
  .cs-push-notification__message {
    display: flex;
    flex-direction: column; }
    .cs-push-notification__message-title {
      font-size: 2rem;
      font-weight: 700; }
    .cs-push-notification__message-description {
      font-size: 1.4rem;
      font-weight: 400;
      color: #888; }
  .cs-push-notification__actions {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap; }
    .cs-push-notification--shipping .cs-push-notification__actions {
      justify-content: flex-start; }
    @media (max-width: 63.99em) {
      .cs-push-notification__actions {
        flex: 1 1 100%;
        margin-top: 0; } }
    @media (min-width: 30em) {
      .cs-push-notification__actions {
        flex-wrap: nowrap; } }
  @media (max-width: 29.99em) {
    .cs-push-notification__button {
      width: 100%; } }
  .cs-push-notification__button:first-of-type {
    margin: 0 0 0.5rem; }
    @media (min-width: 30em) {
      .cs-push-notification__button:first-of-type {
        margin: 0 0 0 0; }
        .cs-push-notification--shipping .cs-push-notification__button:first-of-type {
          margin: 0 1.5rem 0 0; } }
  .cs-push-notification__button--accept::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-push-notification__button--accept, .cs-push-notification__button--accept:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-push-notification__button--accept:hover:not([disabled]), .cs-push-notification__button--accept:focus:not([disabled]), .cs-push-notification__button--accept:active:not([disabled]), .cs-push-notification__button--accept:visited:hover:not([disabled]), .cs-push-notification__button--accept:visited:focus:not([disabled]), .cs-push-notification__button--accept:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-push-notification__button--accept[disabled], .cs-push-notification__button--accept:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .cs-push-notification__button--accept .cs-push-notification__button-span {
    font-size: 1.6rem; }
  .cs-push-notification__button--accept .cs-push-notification__button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }
  .cs-push-notification--shipping .cs-push-notification__button--accept::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-push-notification--shipping .cs-push-notification__button--accept, .cs-push-notification--shipping .cs-push-notification__button--accept:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-push-notification--shipping .cs-push-notification__button--accept:hover:not([disabled]), .cs-push-notification--shipping .cs-push-notification__button--accept:focus:not([disabled]), .cs-push-notification--shipping .cs-push-notification__button--accept:active:not([disabled]), .cs-push-notification--shipping .cs-push-notification__button--accept:visited:hover:not([disabled]), .cs-push-notification--shipping .cs-push-notification__button--accept:visited:focus:not([disabled]), .cs-push-notification--shipping .cs-push-notification__button--accept:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    .cs-push-notification--shipping .cs-push-notification__button--accept[disabled], .cs-push-notification--shipping .cs-push-notification__button--accept:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  .cs-push-notification--shipping .cs-push-notification__button--accept .cs-push-notification__button-span {
    font-size: 1.6rem; }
  .cs-push-notification--shipping .cs-push-notification__button--accept .cs-push-notification__button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }
  .cs-push-notification__button--decline::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-push-notification__button--decline, .cs-push-notification__button--decline:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-push-notification__button--decline:hover:not([disabled]), .cs-push-notification__button--decline:focus:not([disabled]), .cs-push-notification__button--decline:active:not([disabled]), .cs-push-notification__button--decline:visited:hover:not([disabled]), .cs-push-notification__button--decline:visited:focus:not([disabled]), .cs-push-notification__button--decline:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-push-notification__button--decline[disabled], .cs-push-notification__button--decline:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .cs-push-notification__button--decline .cs-push-notification__button-span {
    font-size: 1.6rem; }
  .cs-push-notification__button--decline .cs-push-notification__button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }
  .cs-push-notification__permission {
    display: flex;
    flex-direction: column;
    border: none;
    border-radius: 24px;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1), -2px -2px 5px rgba(0, 0, 0, 0.1);
    font-size: 1.2rem;
    color: #888;
    padding: 1rem 2rem; }
    .cs-push-notification__permission-icon {
      width: 1.2rem;
      height: 1.2rem;
      margin-right: 0.5rem; }
    .cs-push-notification__permission-button-wrapper {
      display: flex;
      justify-content: flex-end;
      margin-top: 1rem; }
    .cs-push-notification__permission-button {
      padding: 0.2rem 2rem;
      margin: 0 0.2rem;
      border: 1px solid #000;
      color: #000;
      font-size: 1.1rem; }
      .cs-push-notification__permission-button--block {
        opacity: 0.3; }
  .cs-push-notification__close {
    margin: 0 0 0 0;
    padding: 0; }
    .cs-push-notification--shipping .cs-push-notification__close {
      padding: 1.5rem; }
    @media (max-width: 63.99em) {
      .cs-push-notification__close {
        position: absolute;
        top: 1rem;
        right: 0; }
        .cs-push-notification--shipping .cs-push-notification__close {
          right: 1.5rem; } }
    .cs-push-notification__close-icon {
      display: block;
      width: 1.5rem;
      height: 1.5rem;
      fill: #888; }
    .cs-push-notification__close:hover .cs-push-notification__close-icon {
      fill: #000; }

@-webkit-keyframes ringing {
  0%,
  12% {
    transform: scale(1) rotate(0deg); }
  3%,
  7% {
    transform: scale(1.3) rotate(27deg); }
  5%,
  9% {
    transform: scale(1.3) rotate(-27deg); } }

@keyframes ringing {
  0%,
  12% {
    transform: scale(1) rotate(0deg); }
  3%,
  7% {
    transform: scale(1.3) rotate(27deg); }
  5%,
  9% {
    transform: scale(1.3) rotate(-27deg); } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-qty-increment {
  position: relative;
  display: flex;
  flex-wrap: wrap; }
  .cs-qty-increment--wishlist {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-qty-increment__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-qty-increment__input {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit;
    font-size: inherit;
    text-align: center;
    margin: 0;
    padding-left: 0.5em;
    padding-right: 0.5em;
    border-radius: 0;
    width: 0;
    min-width: 2ch;
    flex: 1 1;
    order: 2; }
    .cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .cs-qty-increment__input.mage-error, .cs-qty-increment__input.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .cs-qty-increment__input.required-entry {
      margin-bottom: 0; }
    .cs-qty-increment__input::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-qty-increment__input:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-qty-increment__input::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-qty-increment__input[disabled] {
      opacity: 1; }
    .cs-qty-increment__input, .cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
      border-left-width: 0;
      border-right-width: 0;
      border-color: #dcdcdc; }
    .cs-qty-increment__input.mage-error {
      border-color: #e41f12 !important; }
      .cs-qty-increment__input.mage-error ~ .cs-qty-increment__button {
        border-color: #e41f12 !important; }
    .cs-qty-increment__input + .mage-error {
      order: 3;
      width: 100%; }
  .cs-qty-increment__button {
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s;
    max-width: 3rem;
    background-color: transparent;
    flex: 1 1 2rem;
    position: relative;
    padding-left: 0.5em;
    padding-right: 0.5em;
    border-radius: 24px; }
    .cs-qty-increment__button, .cs-qty-increment__button:visited, .cs-qty-increment__button:focus {
      background-color: transparent;
      border: 1px solid #dcdcdc; }
      .cs-qty-increment__button *, .cs-qty-increment__button:visited *, .cs-qty-increment__button:focus * {
        fill: #324dcf; }
    .cs-qty-increment__button:hover, .cs-qty-increment__button:active {
      background-color: #324dcf;
      border: 1px solid #324dcf;
      cursor: pointer; }
      .cs-qty-increment__button:hover *, .cs-qty-increment__button:active * {
        fill: #fff; }
    .cs-qty-increment__button--decrement {
      order: 1;
      border-top-right-radius: 0;
      border-bottom-right-radius: 0; }
    .cs-qty-increment__button--increment {
      order: 2;
      border-top-left-radius: 0;
      border-bottom-left-radius: 0; }
    .cs-qty-increment__button--disabled {
      opacity: 1; }
      .cs-qty-increment__button--disabled, .cs-qty-increment__button--disabled:hover, .cs-qty-increment__button--disabled:visited, .cs-qty-increment__button--disabled:focus {
        background-color: transparent;
        border: 1px solid #dcdcdc;
        cursor: not-allowed; }
        .cs-qty-increment__button--disabled *, .cs-qty-increment__button--disabled:hover *, .cs-qty-increment__button--disabled:visited *, .cs-qty-increment__button--disabled:focus * {
          fill: #dcdcdc; }
  .cs-qty-increment__icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); }
    .cs-qty-increment__icon--decrement {
      width: 1.2rem;
      height: 0.3rem; }
    .cs-qty-increment__icon--increment {
      width: 1.2rem;
      height: 1.2rem; }

.cs-qty-increment__button:hover {
  background-color: #c1272f;
  border-color: #c1272f; }

.cs-qty-increment__button--disabled svg path {
  fill: #d5d5d5 !important; }

.cs-qty-increment svg path {
  fill: #000000; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.ui-slider-horizontal {
  background: #dcdcdc;
  height: 1rem;
  margin-left: 0.5rem;
  margin-right: 0.5rem;
  position: relative;
  border-radius: 1rem; }
  .ui-slider-horizontal .ui-slider-handle {
    width: 1rem;
    height: 1rem;
    background: #324dcf;
    transition: transform 0.3s, background 0.3s;
    cursor: pointer;
    position: absolute;
    border-radius: 50%;
    margin-left: -0.5rem; }
    .ui-slider-horizontal .ui-slider-handle.ui-state-hover, .ui-slider-horizontal .ui-slider-handle.ui-state-active, .ui-slider-horizontal .ui-slider-handle.ui-state-focus {
      transform: scale(1.5);
      background: #142b9e; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.ui-slider-horizontal {
  background: #dcdcdc;
  height: 0.4rem;
  margin-left: 0.65rem;
  margin-right: 0.65rem;
  position: relative;
  border-radius: 1.3rem; }
  .ui-slider-horizontal .ui-slider-handle {
    top: -1rem;
    width: 2.6rem;
    height: 2.6rem;
    background: #ffffff;
    border: 1px solid #333333;
    transition: transform 0.3s, background 0.3s;
    cursor: pointer;
    position: absolute;
    border-radius: 50%;
    margin-left: -1.3rem;
    display: flex;
    justify-content: center;
    align-items: center; }
    .ui-slider-horizontal .ui-slider-handle::after {
      content: '';
      position: absolute;
      top: 0.8rem;
      left: 0.7rem;
      display: block;
      border-top: 1px solid #333333;
      border-right: 1px solid #333333;
      width: 0.7rem;
      height: 0.7rem;
      transform: rotate(45deg); }
    .ui-slider-horizontal .ui-slider-handle:first-of-type::after {
      transform: rotate(-135deg);
      left: 1rem; }
    .ui-slider-horizontal .ui-slider-handle.ui-state-hover, .ui-slider-horizontal .ui-slider-handle.ui-state-active, .ui-slider-horizontal .ui-slider-handle.ui-state-focus {
      transform: scale(1);
      background: #ffffff; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-social-media-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  padding: 1.5rem 0 1.5rem;
  justify-content: center;
  align-items: center; }
  @media (min-width: 48em) {
    .cs-social-media-list {
      justify-content: flex-start; } }
  @media (min-width: 48em) {
    .cs-social-media-list {
      padding-bottom: 0;
      padding-top: 0; } }
  .cs-social-media-list__item {
    margin: 0 0.4em;
    padding: 0; }
  .cs-social-media-list__link {
    display: flex;
    position: relative;
    height: 3.5em;
    min-width: 4em;
    background: #212121;
    color: inherit;
    border-radius: 24px;
    transition: background-color 0.15s linear; }
    .cs-social-media-list__link:hover {
      background: #142b9e; }
  .cs-social-media-list__icon {
    position: absolute;
    transform: translate3d(-55%, -55%, 0);
    top: 50%;
    left: 55%; }
    .cs-social-media-list__item--fb .cs-social-media-list__icon {
      width: 0.9em;
      height: 1.8em; }
    .cs-social-media-list__item--tw .cs-social-media-list__icon {
      width: 2.5em;
      height: 2em; }
    .cs-social-media-list__item--yt .cs-social-media-list__icon {
      width: 1.8em;
      height: 2.1em; }
    .cs-social-media-list__item--gp .cs-social-media-list__icon {
      width: 2em;
      height: 2em;
      margin-top: 0.1em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-star-rating {
  display: flex;
  align-items: center; }
  .cs-star-rating__stars {
    display: inline-flex;
    padding: 0;
    width: 7.2rem;
    justify-content: space-between; }
    .cs-star-rating--summary .cs-star-rating__stars {
      width: 10rem;
      padding: 0; }
    .cs-star-rating--review .cs-star-rating__stars {
      width: 7.2rem;
      padding: 0; }
  .cs-star-rating__star {
    display: flex;
    width: 1.5rem;
    height: 100%;
    fill: #888; }
    .cs-star-rating__star--active {
      fill: #fcb739; }
    .cs-star-rating__star--half-active .star-left {
      fill: #fcb739; }
    .cs-star-rating__star--half-active .star-rigth {
      fill: #888; }
    .cs-star-rating--summary .cs-star-rating__star {
      width: 2rem; }
    .cs-star-rating--review .cs-star-rating__star {
      width: 1.5rem; }
    .cs-star-rating__star path {
      fill-opacity: 1;
      fill: inherit; }
  .cs-star-rating img {
    width: 1.5rem;
    height: 100%; }
  .cs-star-rating__form-stars {
    display: inline-flex;
    padding: 0; }
  .cs-star-rating__form-star {
    opacity: 1;
    fill: #888;
    width: 100%; }
    .cs-star-rating__form-star--active {
      fill: #fcb739; }
    .cs-star-rating__form-star path {
      fill-opacity: 1;
      fill: inherit; }
    .cs-star-rating__form-star:nth-last-of-type() {
      padding-right: 0; }
    .cs-star-rating__form-stars:hover .cs-star-rating__form-star {
      fill: #fcb739; }
    .cs-star-rating__form-stars label:hover ~ label .cs-star-rating__form-star {
      fill: #888; }
  .cs-star-rating__text {
    display: inline-block;
    color: #696969;
    padding-left: 0.5em;
    line-height: 1;
    padding-top: calc(1.5rem * 0.1); }
    .cs-star-rating__text--count:before {
      content: '('; }
    .cs-star-rating__text--count:after {
      content: ')'; }
    .cs-star-rating__text--empty {
      padding-left: 0; }
  .cs-star-rating__text-annotation {
    display: inline;
    line-height: 1; }
    .cs-product-tile .cs-star-rating__text-annotation {
      display: none; }
  .cs-star-rating__label {
    color: #212121;
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    padding-top: calc(1.5rem * 0.2); }

.review-control-vote {
  overflow: hidden; }
  .review-control-vote .rating-1 {
    z-index: 1; }
    .review-control-vote .rating-1:before {
      content: none; }
  .review-control-vote .rating-2 {
    z-index: 2; }
    .review-control-vote .rating-2:before {
      content: none; }
  .review-control-vote .rating-3 {
    z-index: 3; }
    .review-control-vote .rating-3:before {
      content: none; }
  .review-control-vote .rating-4 {
    z-index: 4; }
    .review-control-vote .rating-4:before {
      content: none; }
  .review-control-vote .rating-5 {
    z-index: 5; }
    .review-control-vote .rating-5:before {
      content: none; }
  .review-control-vote:before {
    content: none; }
  .review-control-vote label {
    position: static;
    cursor: pointer;
    display: block;
    width: 3rem;
    padding-right: 1rem;
    line-height: 0; }
    @media (min-width: 48em) {
      .review-control-vote label {
        width: 2.6rem;
        padding-right: 0.6rem; } }
    .review-control-vote label:last-child {
      width: 2rem;
      padding-right: 0; }
    .review-control-vote label span {
      clip: auto;
      height: auto;
      margin: 0;
      overflow: visible;
      padding: 0;
      position: static;
      width: auto;
      white-space: normal; }

.cs-star-rating__form-stars {
  margin-top: -3px; }

.cs-star-rating__form-star {
  fill: transparent;
  stroke: #333333; }
  .cs-star-rating__form-star--active {
    fill: #003666; }
  .cs-star-rating__form-star .star-right {
    stroke: none; }
  .cs-star-rating__form-stars:hover .cs-star-rating__form-star {
    fill: #003666; }
  .cs-star-rating__form-stars label:hover ~ label .cs-star-rating__form-star {
    fill: transparent; }

.cs-star-rating__stars {
  width: 9.2rem !important;
  margin-left: -0.5rem; }

.cs-star-rating__star {
  fill: transparent;
  stroke: #333333;
  margin-left: 5px;
  width: 2.5rem !important; }
  .cs-star-rating__star .star-right {
    stroke: none; }
  .cs-star-rating__star--active {
    fill: #003666; }
  .cs-star-rating__star--half-active .star-left {
    fill: rgba(0, 54, 102, 0.5); }

.cs-star-rating__text {
  min-width: 4rem;
  text-align: center;
  white-space: nowrap; }

.cs-star-rating__label {
  font-weight: 300 !important;
  text-transform: initial !important;
  font-size: 1.4rem !important;
  color: #878787 !important;
  margin-block: 0.25em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
[class^='swatch-opt-'] {
  font-size: 0.45em;
  min-height: calc( 1 * (2.8em + 8px));
  opacity: 1;
  transition: opacity 0.3s;
  pointer-events: none; }
  @media (min-width: 48.01em) {
    [class^='swatch-opt-'] {
      pointer-events: auto; } }
  [class^='swatch-opt-']:empty {
    opacity: 0; }

.swatch-opt {
  font-size: 0.9em; }
  .swatch-opt .mage-error {
    font-size: 1em;
    width: 100%;
    margin-left: calc(10rem + 1.5rem); }
    @media (min-width: 64em) {
      .swatch-opt .mage-error {
        margin-left: calc( 11rem + 1.5rem); } }

.swatch-attribute {
  display: flex;
  width: 100%;
  overflow: hidden;
  align-items: center !important;
  flex-wrap: wrap; }
  .swatch-attribute.swatch-layered {
    font-size: 0.8em; }
  .swatch-attribute + .swatch-attribute {
    margin-top: 0.8em; }

.swatch-attribute-label {
  text-transform: uppercase;
  line-height: calc( 2.8em - 6px + 0.1em);
  font-weight: 700;
  font-size: 1.1em;
  width: 10rem;
  margin-right: 1.5rem; }
  @media (min-width: 64em) {
    .swatch-attribute-label {
      width: 11rem; } }
  .swatch-attribute-label:after {
    content: ': ';
    line-height: calc( 2.8em - 6px + 0.1em); }

.swatch-attribute-selected-option {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */ }

.swatch-attribute-options {
  display: flex;
  flex-wrap: wrap;
  margin-left: -0.2em;
  margin-bottom: -0.4em;
  min-width: 100%;
  justify-content: center; }
  .swatch-attribute-options:focus {
    box-shadow: none; }
  .swatch-opt .swatch-attribute-options {
    min-width: 0;
    justify-content: flex-start;
    max-width: calc( 100% - 1.5rem - 10rem); }
    @media (min-width: 64em) {
      .swatch-opt .swatch-attribute-options {
        max-width: calc( 100% - 1.5rem - 11rem); } }

.swatch-option-link-layered {
  font-size: 1em; }
  .swatch-option-link-layered:hover {
    text-decoration: none; }

.swatch-option {
  font-weight: normal;
  position: relative;
  min-width: 3.2em;
  height: 2.8em;
  padding: 0 0.35em;
  margin: 1px calc( 1px + 0.2em) calc(1px + 0.4em);
  border-radius: 24px;
  background-color: #f0f0f0;
  border: 3px solid #f0f0f0;
  color: #696969;
  cursor: pointer;
  line-height: calc( 2.8em - 6px + 0.1em);
  text-align: center;
  transition: background-color 0.3s, border-color 0.3s, opacity 0.3s, color 0.3s;
  display: block !important; }
  .swatch-option:before {
    content: '';
    position: absolute;
    top: -4px;
    left: -4px;
    right: -4px;
    bottom: -4px;
    border: 1px solid #dcdcdc;
    border-radius: 24px;
    transition: border-color 0.3s; }
  .swatch-option:after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    background: url(../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/swatches/disabled.svg) rgba(220, 220, 220, 0.5) center no-repeat;
    transform: translate(-50%, -50%);
    width: calc(2.8em - 1.2em);
    height: calc(2.8em - 1.2em);
    background-size: 0.6em;
    transition: opacity 0.3s;
    opacity: 0; }
  .swatch-option.selected, .swatch-option.bis-selected {
    border: 3px solid #fff;
    background: #fff; }
    .swatch-option.selected:before, .swatch-option.bis-selected:before {
      border: 1px solid #142b9e; }
  .swatch-option.disabled:not(.back-in-stock-alert), .swatch-option[disabled]:not(.back-in-stock-alert) {
    cursor: not-allowed; }
    .swatch-option.disabled:not(.back-in-stock-alert).text, .swatch-option[disabled]:not(.back-in-stock-alert).text {
      opacity: 0.65;
      color: #888;
      background: #fff; }
      .swatch-option.disabled:not(.back-in-stock-alert).text:before, .swatch-option[disabled]:not(.back-in-stock-alert).text:before {
        border: 1px solid #dcdcdc; }
    .swatch-option.disabled:not(.back-in-stock-alert).image:after, .swatch-option.disabled:not(.back-in-stock-alert).color:after, .swatch-option[disabled]:not(.back-in-stock-alert).image:after, .swatch-option[disabled]:not(.back-in-stock-alert).color:after {
      opacity: 1; }
  .swatch-option.back-in-stock-alert:after {
    background: rgba(220, 220, 220, 0.55) url(../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/push-notification/icon_notification-outline.svg) center/64% no-repeat;
    opacity: 1; }
  .swatch-option.back-in-stock-alert.text {
    padding-right: 2em; }
    .swatch-option.back-in-stock-alert.text:after {
      left: auto;
      right: 0.35em;
      background-color: transparent;
      transform: translateY(-50%); }
  .swatch-option:not(.disabled):not(.selected):not([disabled]):hover, .swatch-option.back-in-stock-alert:hover {
    border: 3px solid #fff;
    background: #fff; }
    .swatch-option:not(.disabled):not(.selected):not([disabled]):hover:before, .swatch-option.back-in-stock-alert:hover:before {
      border: 1px solid #324dcf; }

.swatch-input {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
  left: -1000px;
  position: absolute;
  visibility: hidden; }

.swatch-more {
  display: none; }

.swatch-option-tooltip,
.swatch-option-tooltip-layered {
  display: none;
  position: absolute;
  margin: 0;
  z-index: 999;
  background: #fff;
  border-radius: 0.5rem;
  color: #888;
  font-size: 1.3rem;
  font-weight: 400;
  padding: 0.5rem;
  text-align: center;
  min-width: 2rem;
  border: 0.1rem solid #dcdcdc; }
  .swatch-option-tooltip .image,
  .swatch-option-tooltip-layered .image {
    display: block;
    margin: 0 auto;
    width: 110px;
    height: 110px; }
  .swatch-option-tooltip .corner:after,
  .swatch-option-tooltip-layered .corner:after {
    content: '';
    position: absolute;
    top: 100%;
    display: block;
    width: 1rem;
    height: 1rem;
    background-color: #fff;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    border-bottom: 0.1rem solid #dcdcdc;
    border-right: 0.1rem solid #dcdcdc;
    margin-top: calc( -0.5rem + 0.1rem); }

.swatch-option-tooltip {
  pointer-events: none; }

.missing-swatches-modal {
  max-width: 40rem;
  margin-left: auto; }
  .missing-swatches-modal .mage-error {
    padding-top: 0.8rem; }
  .missing-swatches-modal .swatch-attribute + .swatch-attribute {
    margin-top: 2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-topbar {
  background: transparent;
  display: none;
  width: 100%;
  font-size: 1.1rem; }
  @media (min-width: 64em) {
    .cs-topbar {
      display: flex;
      z-index: 302; } }
  .cs-topbar__wrapper {
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: center;
    height: 2.7rem; }
    @media (min-width: 64em) {
      .cs-topbar__wrapper {
        flex-wrap: nowrap; } }
  .cs-topbar__item {
    color: #212121;
    display: flex;
    flex: 0 0 auto;
    white-space: nowrap;
    height: 100%; }
    .cs-topbar__item--usps {
      margin-right: auto;
      display: none; }
      @media (min-width: 80em) {
        .cs-topbar__item--usps {
          display: flex; } }
    .cs-topbar__item--hotline {
      align-items: center;
      flex: 1 1;
      justify-content: flex-end; }
    .cs-topbar__item--language {
      height: 100%; }
  .cs-topbar__list,
  .cs-topbar__item > ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center; }
  .cs-topbar__list-item {
    margin-bottom: 0;
    height: 2.7rem;
    display: flex;
    align-items: center;
    position: relative; }
    .cs-topbar__list-item:not(:last-child) {
      margin-right: 0.9rem;
      padding: 0 0.3rem 0 0; }
    @media (min-width: 64em) {
      .cs-topbar__list-item {
        padding: 0 1.3rem 0 0;
        margin-right: 1.7rem; } }
    .cs-topbar__list-item:not(:last-child):before {
      position: absolute;
      top: 0;
      bottom: 0;
      right: 0;
      content: '';
      border-right: 0.2rem solid #fff; }
  .cs-topbar__text {
    color: #212121; }
  .cs-topbar__link {
    margin-right: 0.9rem; }
    .cs-topbar__link, .cs-topbar__link:visited {
      color: #324dcf;
      text-decoration: none; }
    .cs-topbar__link:hover, .cs-topbar__link:focus, .cs-topbar__link:active, .cs-topbar__link:visited:hover, .cs-topbar__link:visited:focus {
      color: #142b9e;
      text-decoration: none; }
  .cs-topbar__hotline {
    display: flex;
    align-items: center; }
  .cs-topbar__phone-number {
    font-weight: 700;
    margin-right: 0.9rem; }
    .cs-topbar__phone-number, .cs-topbar__phone-number:visited {
      color: #000;
      text-decoration: none; }
    .cs-topbar__phone-number:hover, .cs-topbar__phone-number:focus, .cs-topbar__phone-number:active, .cs-topbar__phone-number:visited:hover, .cs-topbar__phone-number:visited:focus {
      color: #000;
      text-decoration: none; }

.cs-container--top-bar {
  background-color: #f0f0f0;
  max-width: none; }

.cs-container--top-bar {
  background-color: #ffffff; }
  .cs-container--top-bar .cs-topbar {
    max-width: 160rem;
    z-index: 6; }
    @media (max-width: 79.99em) {
      .cs-container--top-bar .cs-topbar {
        display: block; } }
    .cs-container--top-bar .cs-topbar__wrapper {
      height: auto; }
    .cs-container--top-bar .cs-topbar__item {
      display: block;
      width: 100%;
      border-bottom: 1px solid #e5e5e5; }
      @media (max-width: 79.99em) {
        .cs-container--top-bar .cs-topbar__item {
          border-bottom: none; } }
    .cs-container--top-bar .cs-topbar div[data-content-type=text] p {
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0;
      padding: 10px 0;
      max-height: 40px; }
    .cs-container--top-bar .cs-topbar div[data-content-type=text] img {
      max-width: 30px;
      max-height: 30px;
      margin-bottom: 3px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
h1 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 5.6rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h2 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 4.2rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h3 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.4rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h4 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h5 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.1rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h6 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

a, a:visited {
  color: #333333;
  text-decoration: none; }

a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #333333;
  text-decoration: none; }

ul,
ol {
  margin: 0 0 2.5rem;
  padding: 0 0 0 4rem; }
  ul > li,
  ol > li {
    margin: 0 0 1rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
h1 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 5.6rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h2 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 4.2rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h3 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.4rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h4 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h5 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.1rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h6 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

a, a:visited {
  color: #333333;
  text-decoration: none; }

a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #333333;
  text-decoration: none; }

ul,
ol {
  margin: 0 0 2.5rem;
  padding: 0 0 0 4rem; }
  ul > li,
  ol > li {
    margin: 0 0 1rem; }

body {
  font-size: 1.6rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */ }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-select {
  min-width: 0.5px;
  position: absolute;
  bottom: 0;
  left: 50%;
  display: block;
  height: 100%;
  padding: 0;
  opacity: 0;
  border: none; }
  .cs-select--mobile {
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    z-index: 4; }

.cs-html-select {
  position: relative;
  display: block;
  min-width: 15rem;
  box-sizing: border-box;
  z-index: 2; }
  .cs-html-select.open {
    z-index: 99; }
  .cs-html-select__trigger {
    display: flex;
    align-items: center;
    position: relative;
    cursor: pointer;
    width: 100%;
    min-width: 13rem;
    text-align: left;
    z-index: 3;
    overflow: hidden;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid #d5d5d5;
    padding: 1rem 2.3rem;
    padding-right: 2.3em;
    border-radius: 24px;
    box-shadow: none;
    font-size: 1.6rem; }
    .cs-html-select__trigger--disabled {
      opacity: 1;
      cursor: not-allowed; }
    .cs-html-select--error .cs-html-select__trigger {
      border-color: #f46667;
      border-bottom-left-radius: 0;
      border-bottom-right-radius: 0; }
    .cs-html-select--open .cs-html-select__trigger,
    .cs-html-select.open .cs-html-select__trigger {
      border-bottom-left-radius: 0;
      border-bottom-right-radius: 0;
      border: 1px solid #324dcf;
      border-bottom: 1px solid #d5d5d5; }
  .cs-html-select__trigger-text {
    color: #333333;
    line-height: 2.6rem;
    font-weight: 400;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 1.6rem;
    margin-right: 2rem; }
  .cs-html-select__trigger-caret {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%); }
  .cs-html-select__trigger-caret-arrow {
    display: block;
    position: relative; }
    .cs-html-select__trigger-caret-arrow:before, .cs-html-select__trigger-caret-arrow:after {
      content: '';
      position: absolute;
      top: 50%;
      width: 0.7rem;
      height: 1px;
      left: auto;
      background-color: #dcdcdc;
      transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden; }
    .cs-html-select__trigger-caret-arrow:hover:before, .cs-html-select__trigger-caret-arrow:hover:after {
      background-color: #888; }
    .cs-html-select--open .cs-html-select__trigger-caret-arrow:before, .cs-html-select--open .cs-html-select__trigger-caret-arrow:after {
      background-color: #324dcf; }
    .cs-html-select__trigger-caret-arrow:before {
      transform: rotate(45deg) translate3d(0, 0, 0);
      right: 1.7rem; }
    .cs-html-select__trigger-caret-arrow:after {
      transform: rotate(-45deg) translate3d(0, 0, 0);
      right: 1.2rem; }
    .cs-html-select--open .cs-html-select__trigger-caret-arrow:before {
      transform: rotate(-45deg); }
    .cs-html-select--open .cs-html-select__trigger-caret-arrow:after {
      transform: rotate(45deg); }
  .cs-html-select__menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 5;
    display: none;
    border: 1px solid #324dcf;
    border-top: 1px solid #d5d5d5;
    border-bottom-left-radius: 24px;
    border-bottom-right-radius: 24px;
    background-color: #fff;
    box-shadow: 0 1px 5px 0 rgba(100, 100, 100, 0.2);
    margin-top: -1px;
    min-width: 100%;
    overflow: hidden;
    box-sizing: border-box;
    transform: translate3d(0, 0, 0); }
    .cs-html-select--open .cs-html-select__menu {
      display: block;
      opacity: 1; }
    .cs-html-select--autosuggest:not(.cs-html-select--open) .cs-html-select__menu {
      padding: 0;
      border: none; }
  .cs-html-select__menu-list {
    margin: 0;
    padding: 0;
    list-style: none; }
  .cs-html-select__menu-item {
    margin: 0;
    padding: 0;
    border-top: none; }
    .cs-html-select__menu-item--hidden {
      display: none; }
  .cs-html-select__menu-link {
    position: relative;
    display: flex;
    align-items: center;
    padding: 0 1em;
    height: 2.8em;
    color: #212121;
    background-color: #fff;
    cursor: pointer;
    transition: background-color 0.15s linear, color 0.15s linear; }
    .cs-html-select__menu-item--selected .cs-html-select__menu-link {
      color: #fff;
      background-color: #324dcf; }
    .cs-html-select__menu-link:hover, .cs-html-select__menu-link:focus,
    .cs-html-select__menu-item--focused .cs-html-select__menu-link {
      background-color: #324dcf;
      color: #fff;
      text-decoration: none;
      outline: none; }
  .cs-html-select__menu-item-text {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; }
  .cs-html-select__text-image-wrapper {
    display: flex;
    align-items: center; }
  .cs-html-select__thumbnail {
    width: 2.5rem;
    height: 2.5rem;
    display: block;
    margin-right: 1rem; }
  .cs-html-select--autosuggest {
    padding: 0; }
    .cs-html-select--autosuggest .cs-html-select__menu {
      overflow-y: hidden;
      max-height: 220px; }
    .cs-html-select--autosuggest .cs-html-select__menu-list {
      max-height: 220px; }
    .cs-html-select--autosuggest:not(.cs-html-select--animate) .cs-html-select__menu {
      padding: 0;
      border: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-html-select__menu-item--selected .cs-html-select__menu-link {
  background-color: #878787; }

.cs-html-select__menu-link:hover, .cs-html-select__menu-link:focus,
.cs-html-select__menu-item--focused .cs-html-select__menu-link {
  background-color: #878787; }

.cs-html-select__menu {
  border: 1px solid #d5d5d5; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
.cs-product-navigation {
  display: flex;
  align-items: center;
  margin: -4rem 0 0;
  height: calc( 1.1rem + ( 1rem ) + (1rem) + (0.5rem) + ( 0.5rem ) + 1px);
  border-bottom: 1px solid #dcdcdc; }
  .cs-product-navigation--initialized {
    height: auto; }
    .cs-product-navigation--initialized .cs-product-navigation__list {
      opacity: 1; }
  .cs-product-navigation__list {
    margin: 0;
    padding: 0;
    list-style: none;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 0;
    opacity: 0;
    transition: opacity 0.3s; }
  .cs-product-navigation__list-item {
    display: none;
    margin: 0; }
    .cs-product-navigation__list-item--active {
      display: block; }
  .cs-product-navigation__link {
    text-transform: uppercase;
    font-size: 1.1rem;
    line-height: 100%;
    font-weight: bold;
    padding: 0.5rem 2rem; }
    .cs-product-navigation__link--category, .cs-product-navigation__link--search, .cs-product-navigation__link--prev {
      text-align: left;
      position: relative; }
      .cs-product-navigation__link--category:before, .cs-product-navigation__link--category:after, .cs-product-navigation__link--search:before, .cs-product-navigation__link--search:after, .cs-product-navigation__link--prev:before, .cs-product-navigation__link--prev:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 1px;
        left: auto;
        background-color: #212121;
        transition: background-color 0 linear;
        -webkit-backface-visibility: hidden;
                backface-visibility: hidden; }
      .cs-product-navigation__link--category:hover:before, .cs-product-navigation__link--category:hover:after, .cs-product-navigation__link--search:hover:before, .cs-product-navigation__link--search:hover:after, .cs-product-navigation__link--prev:hover:before, .cs-product-navigation__link--prev:hover:after {
        background-color: #142b9e; }
      .cs-product-navigation__link--category[aria-expanded="true"]:before, .cs-product-navigation__link--category[aria-expanded="true"]:after, .cs-product-navigation__link--search[aria-expanded="true"]:before, .cs-product-navigation__link--search[aria-expanded="true"]:after, .cs-product-navigation__link--prev[aria-expanded="true"]:before, .cs-product-navigation__link--prev[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-product-navigation__link--category:before, .cs-product-navigation__link--search:before, .cs-product-navigation__link--prev:before {
        transform: rotate(45deg) translate3d(50%, -50%, 0);
        right: calc( 1.5rem + 1.2rem - 0.4rem); }
      .cs-product-navigation__link--category:after, .cs-product-navigation__link--search:after, .cs-product-navigation__link--prev:after {
        right: calc( 1.5rem + 1.2rem - 0.4rem);
        transform: rotate(-45deg) translate3d(50%, 50%, 0); }
      .cs-product-navigation__link--category[aria-expanded="true"]:before, .cs-product-navigation__link--search[aria-expanded="true"]:before, .cs-product-navigation__link--prev[aria-expanded="true"]:before {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: 1.5rem; }
      .cs-product-navigation__link--category[aria-expanded="true"]:after, .cs-product-navigation__link--search[aria-expanded="true"]:after, .cs-product-navigation__link--prev[aria-expanded="true"]:after {
        transform: rotate(-135deg) translate3d(0, 0, 0);
        right: calc( 1.5rem + 1.2rem - 0.4rem); }
      .cs-product-navigation__link--category:before, .cs-product-navigation__link--category:after, .cs-product-navigation__link--search:before, .cs-product-navigation__link--search:after, .cs-product-navigation__link--prev:before, .cs-product-navigation__link--prev:after {
        left: 0;
        right: auto; }
    .cs-product-navigation__link--next {
      text-align: right;
      position: relative; }
      .cs-product-navigation__link--next:before, .cs-product-navigation__link--next:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 1px;
        left: auto;
        background-color: #212121;
        transition: background-color 0 linear;
        -webkit-backface-visibility: hidden;
                backface-visibility: hidden; }
      .cs-product-navigation__link--next:hover:before, .cs-product-navigation__link--next:hover:after {
        background-color: #142b9e; }
      .cs-product-navigation__link--next[aria-expanded="true"]:before, .cs-product-navigation__link--next[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-product-navigation__link--next:before {
        transform: rotate(135deg) translate3d(50%, 0, 0);
        right: 0; }
      .cs-product-navigation__link--next:after {
        right: 0;
        transform: rotate(-135deg) translate3d(50%, 0, 0); }
      .cs-product-navigation__link--next[aria-expanded="true"]:before {
        transform: rotate(225deg) translate3d(0, 0, 0);
        right: calc( 1.5rem + 1.2rem - 0.4rem); }
      .cs-product-navigation__link--next[aria-expanded="true"]:after {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: 0; }
    .cs-product-navigation__link, .cs-product-navigation__link:visited {
      color: #212121; }

.cs-container--page-pdp-product-nav {
  margin-bottom: 2rem; }
  @media (min-width: 48.01em) {
    .cs-container--page-pdp-product-nav {
      margin-bottom: 0; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-pwa-notification._show {
  position: fixed;
  bottom: 0;
  top: auto;
  height: 15rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow-y: visible; }
  .cs-pwa-notification._show .modal-inner-wrap {
    width: 100%;
    margin: 0;
    background: #fff;
    box-shadow: 0 -0.3rem 0.5rem 0 rgba(0, 0, 0, 0.15); }

.cs-pwa-notification--ios-guide .modal-inner-wrap {
  display: flex;
  flex-direction: row;
  align-items: center;
  position: relative;
  padding: 0;
  line-height: 1.35; }
  .cs-pwa-notification--ios-guide .modal-inner-wrap:after {
    top: 100%;
    left: 50%;
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
    border-color: rgba(242, 242, 247, 0);
    border-top-color: #f2f2f7;
    border-width: 1.6rem;
    margin-left: -1.6rem; }

.cs-pwa-notification--ios-guide .modal-text-content {
  padding: 0.4rem 1.4rem 1.1rem; }

.cs-pwa-notification--ios-guide._show {
  height: auto;
  left: 1.5rem;
  width: calc(100% - 3rem);
  padding-bottom: 2rem; }
  .cs-pwa-notification--ios-guide._show .modal-inner-wrap {
    background: #f2f2f7;
    border-radius: 6px;
    filter: drop-shadow(0 0 0.5rem rgba(0, 0, 0, 0.1));
    box-shadow: none; }

.cs-pwa-notification--ios-guide.device-iPad {
  bottom: auto;
  top: 0;
  padding-bottom: 0;
  padding-top: 2rem;
  left: auto;
  right: 1.5rem;
  width: auto;
  max-width: 38rem; }
  .cs-pwa-notification--ios-guide.device-iPad .modal-inner-wrap:after {
    top: auto;
    bottom: 100%;
    border-top-color: transparent;
    border-bottom-color: #f2f2f7;
    left: auto;
    right: 12.8vw; }
    @media (min-width: 64em) {
      .cs-pwa-notification--ios-guide.device-iPad .modal-inner-wrap:after {
        right: 11vw; } }

.cs-pwa-notification__title {
  margin: 0;
  padding: 2rem;
  font-size: 2.4rem; }

.cs-pwa-notification__content {
  padding: 0.5rem 2rem 1rem; }

.cs-pwa-notification__ios-transfer-icon {
  width: 1.8rem;
  height: 2.4rem;
  margin: 0 0.3rem;
  vertical-align: bottom; }

.cs-pwa-notification__footer {
  padding: 0.5rem 2rem 2rem;
  display: flex;
  justify-content: flex-end; }
  .cs-pwa-notification--ios-guide .cs-pwa-notification__footer {
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 0;
    border-left: 1px solid #d9d9e7; }

.cs-pwa-notification__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-pwa-notification__button, .cs-pwa-notification__button:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #c1272f;
  color: #ffffff;
  background-color: #c1272f; }
  .cs-pwa-notification__button:hover:not([disabled]), .cs-pwa-notification__button:focus:not([disabled]), .cs-pwa-notification__button:active:not([disabled]), .cs-pwa-notification__button:visited:hover:not([disabled]), .cs-pwa-notification__button:visited:focus:not([disabled]), .cs-pwa-notification__button:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #a20109;
    color: #ffffff;
    background-color: #a20109; }
  .cs-pwa-notification__button[disabled], .cs-pwa-notification__button:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #e5e5e5; }

.cs-pwa-notification__button span {
  font-size: 1.6rem; }

.cs-pwa-notification__button-icon {
  width: 1.5rem;
  height: 1.5rem;
  fill: currentColor; }

.cs-pwa-notification__close-button {
  border: 0;
  background: transparent;
  margin: 0;
  padding: 1.8rem; }

.cs-pwa-notification + .modals-overlay {
  display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-dailydeal {
  display: none; }
  .cs-dailydeal__header {
    display: flex;
    width: 100%;
    margin: 0 0 0.5rem;
    font-size: 1.2rem;
    justify-content: space-between;
    align-items: flex-start; }
  .cs-dailydeal__title {
    margin: 0;
    text-transform: uppercase;
    font-weight: 600; }
  .cs-dailydeal__items-amount {
    font-weight: 600; }
  .cs-dailydeal__countdown {
    display: flex;
    margin: 0;
    justify-content: stretch;
    align-items: stretch; }
  .cs-dailydeal__countdown-element {
    position: relative;
    z-index: 3;
    width: 100%;
    padding: 0.3rem 0.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
    background: none;
    border-radius: 24px; }
    .cs-dailydeal__countdown-element--special {
      width: 50%;
      background: #e41f12;
      z-index: 5; }
    .cs-dailydeal--teaser .cs-dailydeal__countdown-element {
      min-height: 4rem; }
  .cs-dailydeal__countdown-icon {
    width: 1.9rem;
    height: 2.4rem;
    fill: #fff; }
  .cs-dailydeal__countdown-value {
    display: block;
    font-size: 1.5rem;
    font-weight: 600;
    color: #e41f12;
    padding: 2px 0 0; }
  .cs-dailydeal__countdown-label {
    display: block;
    font-size: 1.1rem;
    font-weight: inherit;
    color: #888;
    padding: 2px 0 0; }
  .cs-dailydeal--tile {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    z-index: 3; }
    .cs-dailydeal--tile .cs-dailydeal__availability {
      position: relative;
      background: #888;
      font-size: 1rem;
      color: #fff;
      padding: 2px 4px;
      z-index: 4;
      font-weight: 300;
      border-radius: 24px; }

@media (min-width: 23.125em) and (max-width: 599px) {
  .cs-dailydeal--tile .cs-dailydeal__countdown-element {
    margin-left: 0;
    margin-right: 0; }
    .cs-dailydeal--tile .cs-dailydeal__countdown-element:last-child:not(:only-child) {
      margin-left: 0; }
    .cs-dailydeal--tile .cs-dailydeal__countdown-element:last-child .cs-dailydeal__countdown-value:after {
      content: none; }
    .cs-dailydeal--tile .cs-dailydeal__countdown-element--special {
      width: auto; }
    .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special) {
      border-radius: 0;
      width: auto;
      padding: 0; }
      .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):before {
        transform: none; }
      .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):nth-child(2) {
        padding-left: 1.8rem;
        margin-left: -1rem !important; }
      .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):last-child {
        padding-right: 0.8rem;
        border-radius: 0 24px 24px 0; }
  .cs-dailydeal--tile .cs-dailydeal__countdown-value {
    font-size: 1.3rem; }
    .cs-dailydeal--tile .cs-dailydeal__countdown-value:after {
      content: ':'; }
  .cs-dailydeal--tile .cs-dailydeal__countdown-label {
    display: none; } }
  .cs-dailydeal__badge-pdp-icon {
    width: 1.5rem;
    height: 1.5rem;
    z-index: 10;
    fill: #fff; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-google-recaptcha {
  margin: 1rem 0; }
  .cs-google-recaptcha__badge--invisible .grecaptcha-badge {
    visibility: hidden;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden; }
  .cs-google-recaptcha__note {
    display: inline-block;
    margin: 0;
    font-size: 1.2rem;
    color: #696969; }
    .cs-google-recaptcha__note a, .cs-google-recaptcha__note a:visited {
      color: #324dcf;
      text-decoration: none; }
    .cs-google-recaptcha__note a:hover, .cs-google-recaptcha__note a:focus, .cs-google-recaptcha__note a:active, .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha__note a:visited:focus {
      color: #142b9e;
      text-decoration: none; }
  .cs-google-recaptcha--newsletter {
    display: none;
    margin: 1rem 0; }
    .cs-google-recaptcha--newsletter .cs-google-recaptcha__note {
      margin: 0;
      font-size: 1.2rem;
      color: #fff; }
      .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited {
        color: #fff;
        text-decoration: none; }
      .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:focus, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:active, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:focus {
        color: #fff;
        text-decoration: underline; }
  .cs-google-recaptcha--customer_create {
    margin-top: -2rem; }
  .cs-google-recaptcha--customer_login .g-recaptcha {
    margin-bottom: 0 !important; }

.loading-mask[data-role='main-css-loader'] {
  display: none !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Buybox custom vars
 */
@media (min-width: 48em) {
  .cs-page-product__top {
    display: flex;
    align-items: stretch; } }

.cs-page-product__gallery {
  position: relative; }
  @media (min-width: 48em) {
    .cs-page-product__gallery {
      width: calc(100% - 40%);
      margin-top: 3rem;
      margin-right: 3rem; } }

.cs-page-product__buybox {
  border-top: 1px solid #dcdcdc;
  margin-top: 1rem;
  padding-top: 1rem; }
  @media (min-width: 48em) {
    .cs-page-product__buybox {
      width: 40%;
      margin-top: 0;
      padding-top: 0;
      border-top: 0; } }

.cs-page-product__badges {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  position: absolute;
  z-index: 120;
  top: 0;
  right: 0; }

.cs-page-product__badge-item {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  margin-bottom: 1.5rem;
  margin-left: 1.5rem; }

.cs-page-product__badge {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  position: relative;
  background-color: #324dcf;
  color: #fff;
  border: 0;
  border-radius: 24px;
  padding: 0 0.7rem;
  font-size: 1.1rem;
  font-weight: 700;
  min-height: 2em;
  text-transform: uppercase; }
  .cs-page-product__badge--new {
    background-color: #fed400;
    color: #000; }
    .cs-page-product__badge--new .cs-page-product__badge-text {
      line-height: normal; }
      .cs-page-product__badge--new .cs-page-product__badge-text + .cs-page-product__badge--new .cs-page-product__badge-text {
        margin-left: 0.5rem; }
  .cs-page-product__badge--discount {
    background-color: #e41f12;
    color: #fff; }
    .cs-page-product__badge--discount .cs-page-product__badge-text {
      line-height: normal; }
      .cs-page-product__badge--discount .cs-page-product__badge-text + .cs-page-product__badge--discount .cs-page-product__badge-text {
        margin-left: 0.5rem; }
  .cs-page-product__badge--popular {
    background-color: #37b841;
    color: #fff; }
    .cs-page-product__badge--popular .cs-page-product__badge-text {
      line-height: normal; }
      .cs-page-product__badge--popular .cs-page-product__badge-text + .cs-page-product__badge--popular .cs-page-product__badge-text {
        margin-left: 0.5rem; }
  .cs-page-product__badge--free-shipping {
    background-color: #37b841;
    color: #fff; }
    .cs-page-product__badge--free-shipping .cs-page-product__badge-text {
      line-height: normal; }
      .cs-page-product__badge--free-shipping .cs-page-product__badge-text + .cs-page-product__badge--free-shipping .cs-page-product__badge-text {
        margin-left: 0.5rem; }
  .cs-page-product__badge--dailydeal-pdp {
    background-color: #e41f12;
    color: #fff; }
    .cs-page-product__badge--dailydeal-pdp .cs-page-product__badge-text {
      line-height: normal; }
      .cs-page-product__badge--dailydeal-pdp .cs-page-product__badge-text + .cs-page-product__badge--dailydeal-pdp .cs-page-product__badge-text {
        margin-left: 0.5rem; }

.cs-page-product__badge-text {
  line-height: normal; }
  .cs-page-product__badge-text + .cs-page-product__badge-text {
    margin-left: 0.5rem; }

/**
 * Bundle Product customization
 */
.cs-container--page-pdp-bundle-config {
  padding: 0;
  border: 1.5rem solid #f0f0f0;
  position: relative;
  z-index: 2; }

.cs-container--page-pdp-bundle-config-content {
  background: #fff;
  box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28); }
  .cs-container--page-pdp-bundle-config-content:after {
    content: '';
    position: absolute;
    width: 2rem;
    height: 2rem;
    top: 1px;
    left: 50%;
    border: 2rem solid transparent;
    border-color: #fff #fff transparent transparent;
    transform-origin: 0 0;
    transform: rotate(-45deg) translate3d(-2rem, -2rem, 0);
    box-shadow: 5px -5px 10px 0 rgba(33, 33, 33, 0.08); }

.page-product-bundle .price-box.price-final_price .price-container.price-final_price {
  order: 2; }
  .page-product-bundle .price-box.price-final_price .price-container.price-final_price:not(:only-child) .price {
    color: #e41f12; }

@media (min-width: 48em) {
  .page-product-bundle:not(.page-product-bundle-simplified) .product-add-form form {
    display: flex;
    align-items: stretch; } }

.page-product-bundle:not(.page-product-bundle-simplified) .bundle-options-wrapper {
  padding: 1.5rem;
  border-bottom: 1px solid #dcdcdc; }
  @media (min-width: 48em) {
    .page-product-bundle:not(.page-product-bundle-simplified) .bundle-options-wrapper {
      width: calc(100% - 40%);
      padding: 0;
      margin: 3rem;
      border-bottom: 0; } }

@media (min-width: 48em) {
  .page-product-bundle:not(.page-product-bundle-simplified) .block-bundle-summary {
    width: 40%; } }

.page-product-downloadable .product-options-bottom,
.page-product-downloadable .product-options-wrapper {
  float: none;
  width: 100%; }

.page-product-downloadable .product-add-form {
  margin-bottom: 0; }

.page-product-giftcard .product-info-wrapper {
  z-index: 2; }

@media (min-width: 64em) {
  .cs-container--pdp {
    padding-top: 0; } }

@media (max-width: 47.99em) {
  .cs-container--page-pdp-details-aw_pq_ajax_container {
    padding: 0; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .page-product-bundle .cs-container__main-column {
    width: 100%;
    margin-right: 0; } }

.cs-product-details__item--product-view-contact-seller #phone-contact-popup-modal {
  position: absolute; }

.cs-product-details__item--product-view-contact-seller .pagebuilder-mobile-hidden {
  display: none; }

.cs-product-details__item--product-view-contact-seller > div {
  background-color: #e5e9eb; }
  .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content {
    min-height: 75rem; }
    @media (max-width: 64em) {
      .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content {
        min-height: auto; } }
    .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div {
      width: 100%; }
      .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div {
        width: 100%;
        height: 100%; }
        .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row {
          width: 100%;
          height: 100%; }
          .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group {
            height: 100%; }
            .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__icon {
              padding-right: 1rem;
              vertical-align: top;
              align-self: self-start; }
              @media (max-width: 30em) {
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__icon {
                  display: block;
                  margin: 0 auto 1rem; } }
            .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__image {
              transform: translateX(-10rem);
              height: 100%;
              justify-content: flex-end !important; }
              .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__image img {
                -o-object-fit: none;
                   object-fit: none;
                vertical-align: top; }
              @media (max-width: 80em) {
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__image {
                  transform: translateX(-1.5rem); } }
              @media (max-width: 64em) {
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__image {
                  background: none;
                  display: none !important; } }
            .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__content {
              padding-block: 6rem; }
              @media (max-width: 80em) {
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__content {
                  padding-left: 2rem !important; } }
              @media (max-width: 64em) {
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__content {
                  padding-block: 3rem;
                  width: 100% !important; } }
              @media (max-width: 30em) {
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__content {
                  padding-inline: 0 !important; } }
            @media (max-width: 64em) {
              .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group h3 {
                text-align: center; } }
            @media (max-width: 30em) {
              .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group h3 {
                font-size: 2.4rem; } }
            .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__description {
              font-weight: 300;
              color: #333333;
              margin: 0; }
              @media (max-width: 64em) {
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__description {
                  text-align: center; } }
            .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__action__buttons {
              display: flex;
              gap: 3rem;
              padding-block: 3rem;
              max-width: 60rem; }
              @media (max-width: 80em) {
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__action__buttons {
                  flex-direction: column;
                  margin: auto;
                  align-items: center; } }
              .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__action__buttons .ask-about-button {
                width: 28rem;
                max-width: 100%;
                padding: 1.2rem 2rem;
                font-weight: 500;
                margin: 0;
                font-size: 1.6rem;
                border-radius: 27px;
                transition: 0.3s all;
                color: #c1272f;
                border: 1px solid #c1272f;
                background-color: transparent;
                font-weight: 600; }
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__action__buttons .ask-about-button:enabled {
                  cursor: pointer; }
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__action__buttons .ask-about-button:hover, .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__action__buttons .ask-about-button:focus {
                  background-color: #c1272f;
                  color: #ffffff; }
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__action__buttons .ask-about-button-primary {
                  width: 28rem;
                  max-width: 100%;
                  padding: 1.2rem 2rem;
                  font-weight: 500;
                  margin: 0;
                  font-size: 1.6rem;
                  border-radius: 27px;
                  transition: 0.3s all;
                  color: #ffffff;
                  border: 1px solid #c1272f;
                  background-color: #c1272f; }
                  .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__action__buttons .ask-about-button-primary:enabled {
                    cursor: pointer; }
                  .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__action__buttons .ask-about-button-primary:hover, .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__action__buttons .ask-about-button-primary:focus {
                    border-color: #c1272f;
                    background-color: #a20109; }
            .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__contact {
              position: relative;
              padding: 0 0 3.5rem 0;
              border-bottom: 1px solid #d5d5d5; }
              @media (max-width: 64em) {
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__contact {
                  padding: 4rem 0 2rem;
                  text-align: center; } }
              .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__contact p {
                margin-top: 1rem;
                padding-left: 4rem; }
                @media (max-width: 48em) {
                  .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__contact p {
                    padding: 0; } }
            .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__contact-mobile {
              position: relative;
              padding-left: 0;
              margin-top: 3.5rem;
              display: flex; }
              @media (max-width: 64em) {
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__contact-mobile {
                  padding: 4rem 0 0;
                  flex-direction: column;
                  align-items: center;
                  text-align: center; } }
              .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__contact-mobile > div {
                width: 50%; }
              .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__contact-mobile .seller__contact-national {
                display: flex;
                flex-direction: column;
                gap: 1rem; }
                @media (max-width: 64em) {
                  .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__contact-mobile .seller__contact-national {
                    flex-direction: row;
                    justify-content: center;
                    width: 100%; } }
            .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__email {
              font-weight: 600;
              color: #c1272f; }
            .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__flags {
              height: 2.3rem;
              margin-bottom: 1rem; }
              @media (max-width: 64em) {
                .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__flags {
                  margin-block: 2rem 1rem; } }
            .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__phone {
              font-weight: 600; }
              .cs-product-details__item--product-view-contact-seller > div .cs-product-details__content > div > div .seller__row .pagebuilder-column-group .seller__phone > span {
                font-weight: 300; }

.cs-page-product .cs-product-gallery {
  max-height: 680px; }

.cs-page-product__badges {
  display: none !important; }

.cs-page-product__gallery {
  overflow: hidden;
  grid-area: image;
  width: 100%;
  margin-top: 0;
  width: 780px;
  max-width: 105%;
  margin-left: -4vw;
  margin-right: -4vw; }
  @media (max-width: 80em) {
    .cs-page-product__gallery {
      margin-left: 0;
      margin-right: 0;
      width: auto;
      max-width: 100%; } }
  @media (max-width: 48em) {
    .cs-page-product__gallery {
      margin: 0 -1.5rem;
      max-width: unset; } }
  .cs-page-product__gallery .cs-product-gallery {
    height: auto; }
    @media (min-width: 64em) {
      .cs-page-product__gallery .cs-product-gallery {
        max-height: 673px; } }
  .cs-page-product__gallery .cs-product-gallery__placeholder-img {
    max-height: unset !important;
    margin: auto; }
    @media (max-width: 48em) {
      .cs-page-product__gallery .cs-product-gallery__placeholder-img {
        max-width: 100% !important;
        padding-bottom: 4rem; } }
  @media (min-width: 64em) {
    .cs-page-product__gallery .cs-product-gallery__placeholder-image {
      height: 673px !important;
      display: flex;
      align-items: center;
      background-color: #ffffff; } }
  .cs-page-product__gallery .fotorama {
    height: 100%; }
    .cs-page-product__gallery .fotorama .fotorama__wrap {
      height: 100%;
      min-height: 300px; }
      .cs-page-product__gallery .fotorama .fotorama__wrap .fotorama__stage {
        width: 100% !important; }
        @media (min-width: 64em) {
          .cs-page-product__gallery .fotorama .fotorama__wrap .fotorama__stage {
            height: 673px !important; } }
        .cs-page-product__gallery .fotorama .fotorama__wrap .fotorama__stage__frame {
          background-color: white; }
        .cs-page-product__gallery .fotorama .fotorama__wrap .fotorama__stage .fotorama__img {
          top: 50%;
          right: 0;
          left: 50%;
          transform: translateX(-50%) translateY(-50%); }
        .cs-page-product__gallery .fotorama .fotorama__wrap .fotorama__stage .fotorama__arr__arr {
          filter: brightness(0); }
      @media (max-width: 30em) {
        .cs-page-product__gallery .fotorama .fotorama__wrap .fotorama__nav--dots {
          padding-inline: 1.5rem; } }

.cs-page-product__top {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 2rem;
  grid-template-areas: "image buybox" "desc buybox"; }
  @media (max-width: 80em) {
    .cs-page-product__top {
      grid-template-columns: 50% 50%; } }
  @media (max-width: 47.99em) {
    .cs-page-product__top {
      grid-template-columns: 1fr;
      gap: 0px 0px;
      grid-template-areas: "image" "buybox" "desc"; } }
  @media (max-width: 30em) {
    .cs-page-product__top {
      padding-bottom: 0; } }
  .cs-page-product__top .cs-product-details-main__column--left {
    grid-area: desc;
    padding-right: 2rem; }
    @media (max-width: 30em) {
      .cs-page-product__top .cs-product-details-main__column--left {
        padding-right: 0; } }
    .cs-page-product__top .cs-product-details-main__column--left ul {
      padding-left: 2rem; }
    .cs-page-product__top .cs-product-details-main__column--left img {
      margin: 4rem 0; }
      @media (max-width: 48em) {
        .cs-page-product__top .cs-product-details-main__column--left img {
          display: block;
          margin: 2rem auto; } }
    .cs-page-product__top .cs-product-details-main__column--left p,
    .cs-page-product__top .cs-product-details-main__column--left span,
    .cs-page-product__top .cs-product-details-main__column--left li, .cs-page-product__top .cs-product-details-main__column--left {
      font-weight: 300; }

.cs-page-product__buybox {
  width: 100%;
  order: 2;
  position: sticky;
  top: 0;
  flex: 1 1;
  min-width: 520px;
  grid-area: buybox; }
  @media (max-width: 80em) {
    .cs-page-product__buybox {
      min-width: unset;
      max-width: 500px; } }
  @media (max-width: 48em) {
    .cs-page-product__buybox {
      position: relative;
      border: none;
      max-width: unset; } }
  @media (max-width: 30em) {
    .cs-page-product__buybox {
      margin-top: 0;
      padding-top: 0; } }

.product-thumbnail-description-photo {
  cursor: pointer; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-bundle-box {
  display: none;
  /*.product-add-form {
        display: none;
    }*/ }
  .cs-bundle-box.product-add-form {
    display: none; }
  .cs-bundle-box .fieldset {
    border: 0;
    margin: 0;
    padding: 0; }
  .cs-bundle-box .title {
    margin: 0 0 0.7143em;
    padding: 0;
    font-size: 1.5em; }
    .cs-bundle-box .title + br {
      display: none; }
  .cs-bundle-box .back.customization {
    display: none; }
  .cs-bundle-box__field:not(:last-child) {
    margin-bottom: 1em;
    padding-bottom: 1em;
    border-bottom: 1px solid #dcdcdc; }
  .cs-bundle-box__product-name {
    margin: 0 0 0.5em;
    font-size: 1.2em;
    font-weight: 600; }
  @media (min-width: 48em) {
    .cs-bundle-box__options-list {
      display: flex;
      flex-wrap: nowrap;
      justify-content: space-between; } }
  .cs-bundle-box__options-list .product-name {
    font-size: 1.2em; }
  .cs-bundle-box__product-option-name.label {
    font-weight: 400;
    font-size: 1em; }
  .cs-bundle-box__qty {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    align-self: flex-end;
    width: auto; }
    .cs-bundle-box__qty .qty {
      max-width: 11rem;
      margin-bottom: 0; }
    .cs-bundle-box__qty .cs-box-addtocart__label {
      margin-right: 0.5rem; }
  @media (min-width: 48em) {
    .cs-bundle-box__summary {
      border-left: 1px solid #dcdcdc; } }
  .cs-bundle-box__summary .price-configured_price .price-as-configured {
    margin: 0; }
  .cs-bundle-box__summary .price-configured_price .price {
    font-size: 1.5em; }
  .cs-bundle-box__summary-section {
    padding: 1.5rem; }
    @media (min-width: 48em) {
      .cs-bundle-box__summary-section {
        padding: 1.5rem;
        border-top: 1px solid #dcdcdc; }
        .cs-bundle-box__summary-section:first-child {
          border-top: none; } }
    @media (min-width: 64em) {
      .cs-bundle-box__summary-section {
        padding: 3rem; } }
    .cs-bundle-box__summary-section:empty, .cs-bundle-box__summary-section:blank {
      display: none; }
  .cs-bundle-box__summary-product-details {
    display: flex;
    align-items: center; }
  .cs-bundle-box__summary-product-name {
    margin: 0 0 0 1.5rem; }
  .cs-bundle-box__addtocart {
    margin: 1.5rem 0 0;
    font-size: 1em; }
  .cs-bundle-box__addtocart-button {
    height: 100%;
    width: 100%;
    font-size: 1.4rem; }
  .cs-bundle-box__bunde-items {
    font-size: 1.4rem; }
  .cs-bundle-box__bundle-item:last-child {
    margin-bottom: 1.5rem; }
  .cs-bundle-box__bunde-item-name {
    margin: 0;
    font-weight: 600; }
  .cs-bundle-box .fieldset > p.required {
    margin: 1.5rem 0 0;
    color: #e41f12; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
.cs-buybox {
  height: 100%;
  font-size: 1.2rem;
  line-height: 1.25;
  /* Default styling is for IN STOCK variant */
  /* Default styling is for IN STOCK variant */
  /**
     * Downloadable products
     */
  /**
     * Grouped products
     */ }
  @media (min-width: 48em) {
    .cs-buybox {
      border-left: 1px solid #dcdcdc; } }
  .cs-buybox__section {
    padding: 1.5rem 0;
    border-top: 1px solid #dcdcdc; }
    .cs-buybox__section:first-child {
      border-top: none; }
    @media (min-width: 48em) {
      .cs-buybox__section {
        padding: 1.5rem; } }
    @media (min-width: 64em) {
      .cs-buybox__section {
        padding: 3rem; } }
    .cs-buybox__section:empty, .cs-buybox__section:blank {
      display: none; }
  .cs-buybox__brand {
    display: inline-block; }
    .cs-buybox__brand:after {
      content: "/";
      font-size: 1.2rem;
      color: #888; }
  .cs-buybox__brand-text {
    font-size: 1.2rem;
    color: #888; }
  .cs-buybox__category {
    margin: 0;
    color: #888;
    font-size: 1.2rem;
    display: inline; }
  .cs-buybox__product-name {
    margin: 0;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: inherit; }
    .cs-buybox__product-name h1 {
      margin: 0;
      padding: 0;
      font-size: inherit;
      font-weight: inherit;
      line-height: inherit;
      text-transform: inherit; }
  .cs-buybox__reviews-summary, .cs-buybox__highlights, .cs-buybox__daily-deal {
    margin: 1.5rem 0 0; }
    .cs-buybox__reviews-summary:empty, .cs-buybox__reviews-summary:blank, .cs-buybox__highlights:empty, .cs-buybox__highlights:blank, .cs-buybox__daily-deal:empty, .cs-buybox__daily-deal:blank {
      margin: 0; }
  .cs-buybox__price {
    margin: 1.5rem 0 0; }
    .cs-buybox__price .price-box {
      display: flex;
      flex-direction: column-reverse;
      flex-wrap: nowrap;
      vertical-align: initial; }
      .cs-buybox__price .price-box .price {
        color: #324dcf;
        font-size: 1.8rem;
        font-weight: 700; }
        .cs-buybox__price .price-box .price.discounted-price {
          color: #e41f12; }
      .cs-buybox__price .price-box .old-price {
        text-decoration: none; }
        .cs-buybox__price .price-box .old-price .price {
          color: #696969;
          font-size: 1.3rem;
          font-weight: 700;
          text-decoration: line-through; }
      .cs-buybox__price .price-box .special-price .price {
        color: #e41f12;
        font-size: 1.8rem;
        font-weight: 700; }
  .cs-buybox .price-tier_price {
    display: block; }
  .cs-buybox .product.attribute.overview {
    margin-top: 1.5rem; }
  .cs-buybox__product-variants, .cs-buybox__addtocart,
  .cs-buybox .product-options-wrapper {
    margin-bottom: 2rem; }
    .cs-buybox__product-variants .page-product-bundle, .cs-buybox__addtocart .page-product-bundle,
    .cs-buybox .product-options-wrapper .page-product-bundle {
      margin-bottom: 0; }
  .cs-buybox__product-variants .cs-html-select {
    display: block !important; }
  .cs-buybox__product-variants .cs-html-select__trigger {
    height: 4em; }
  .cs-buybox__product-variants-label {
    display: inline-block;
    margin-bottom: 0.4em; }
  .cs-buybox__addtocart-fieldset {
    display: flex;
    justify-content: stretch;
    align-items: flex-start; }
  .cs-buybox__addtocart-actions {
    flex-grow: 10; }
  .cs-buybox__addtocart-button {
    width: 100%;
    height: 100%; }
    .cs-buybox__addtocart-button strong {
      font-size: 1.2rem; }
  .cs-buybox__qty-wrapper {
    width: 10rem;
    margin: 0 1.5rem 0 0;
    font-size: 1.4rem;
    /* Downloadable product modification - align with Magento Blank */ }
    @media (min-width: 64em) {
      .cs-buybox__qty-wrapper {
        width: 11rem; } }
    .page-product-downloadable .cs-buybox__qty-wrapper {
      display: none; }
  .cs-buybox__update {
    width: 100%; }
    .cs-buybox__update::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-buybox__update, .cs-buybox__update:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-buybox__update:hover:not([disabled]), .cs-buybox__update:focus:not([disabled]), .cs-buybox__update:active:not([disabled]), .cs-buybox__update:visited:hover:not([disabled]), .cs-buybox__update:visited:focus:not([disabled]), .cs-buybox__update:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-buybox__update[disabled], .cs-buybox__update:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
  .cs-buybox__update-span {
    font-size: 1.6rem; }
  .cs-buybox__update-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }
  .cs-buybox__stock {
    display: flex;
    align-items: center;
    margin: 0 0 1.5rem;
    color: #37b841; }
    .cs-buybox__stock--unavailable {
      color: #e41f12; }
  .cs-buybox__stock-icon {
    width: 2.4em;
    height: 1.8em;
    margin-right: 1rem;
    fill: currentColor; }
  .cs-buybox__stock-subscription {
    margin: 0 0 1.5rem !important; }
  .cs-buybox__addto-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center; }
  .cs-buybox__addto-item {
    margin: 0.5rem 2rem 0.5rem 0; }
    .cs-buybox__addto-item:last-child {
      margin-right: 0; }
  .cs-buybox__addto-link {
    display: inline-flex;
    color: inherit;
    text-decoration: inherit;
    transition: color 0.15s linear;
    align-items: center; }
    .cs-buybox__addto-link:hover {
      color: #324dcf; }
  .cs-buybox__addto-icon {
    height: 1.5rem;
    margin-right: 0.8rem;
    transition: fill 0.15s linear; }
    .cs-buybox__addto-icon--wishlist {
      width: 1.5rem;
      fill: #e41f12; }
    .cs-buybox__addto-icon--compare {
      width: 2rem;
      fill: #324dcf; }
  .cs-buybox__usps {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    justify-content: space-between;
    font-size: 1rem;
    color: #888;
    justify-content: space-between;
    align-items: flex-start; }
  .cs-buybox__usp {
    display: flex;
    align-items: center; }
  .cs-buybox__usp-icon {
    height: 2.2rem;
    margin: 1px 0.8rem 0 0;
    fill: currentColor; }
    .cs-buybox__usp-icon--1 {
      width: 2.2rem; }
    .cs-buybox__usp-icon--2 {
      width: 2rem; }
    .cs-buybox__usp-icon--3 {
      width: 2.3rem; }
  .cs-buybox__usp-label {
    width: -webkit-min-content;
    width: -moz-min-content;
    width: min-content; }
  .cs-buybox__downloadable-options .downloads > .label {
    margin: 0 0 0.7em; }
  .cs-buybox__downloadable-options .legend,
  .cs-buybox__downloadable-options .legend + br {
    display: none; }
  .cs-buybox__downloadable-options .choice {
    align-items: center;
    margin: 0 0 0.7em; }
    .cs-buybox__downloadable-options .choice:last-child {
      margin-bottom: 0; }
  .cs-buybox__downloadable-options input {
    margin: 0 0.7em 0 0; }
  .cs-buybox__downloadable-options .field .label {
    width: auto; }
  .page-product-downloadable .cs-buybox .product-options-bottom .price-final_price {
    display: none; }
  .cs-buybox .grouped {
    margin-bottom: 0; }
    .cs-buybox .grouped .col {
      vertical-align: middle; }
      .cs-buybox .grouped .col:first-child {
        padding-left: 0; }
      .cs-buybox .grouped .col:last-child {
        padding-right: 0; }
    .cs-buybox .grouped .qty {
      width: 10rem; }
    .cs-buybox .grouped .price-final_price {
      display: block;
      margin-top: 0.3em; }
  .cs-buybox #validation-message-box {
    margin: 0 0 1em; }
  .cs-buybox .customize {
    margin-bottom: 3rem; }
    .cs-buybox .customize::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-buybox .customize, .cs-buybox .customize:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-buybox .customize:hover:not([disabled]), .cs-buybox .customize:focus:not([disabled]), .cs-buybox .customize:active:not([disabled]), .cs-buybox .customize:visited:hover:not([disabled]), .cs-buybox .customize:visited:focus:not([disabled]), .cs-buybox .customize:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-buybox .customize[disabled], .cs-buybox .customize:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    .cs-buybox .customize span {
      font-size: 1.6rem; }

.cs-buybox {
  border: none;
  height: auto;
  position: sticky;
  top: 4rem; }
  .cs-buybox__section {
    position: relative;
    border: none;
    padding-block: 1em 0; }
    @media (min-width: 64em) {
      .cs-buybox__section {
        padding: 1rem 0; } }
    .cs-buybox__section:first-child {
      display: flex;
      flex-wrap: wrap;
      padding-top: 1.5rem; }
      .cs-buybox__section:first-child .cs-buybox__additional-data {
        order: 4;
        margin-top: 0.4rem;
        display: flex;
        flex-wrap: wrap; }
        .cs-buybox__section:first-child .cs-buybox__additional-data .additional-data {
          display: flex;
          font-weight: 300;
          font-size: 1.4rem; }
          .cs-buybox__section:first-child .cs-buybox__additional-data .additional-data:nth-child(n + 2) {
            margin-left: 1rem; }
            .cs-buybox__section:first-child .cs-buybox__additional-data .additional-data:nth-child(n + 2)::before {
              content: "|";
              margin-right: 1rem; }
      .cs-buybox__section:first-child--product-form {
        padding-bottom: 0; }
    .cs-buybox__section .grey {
      color: #878787; }
    .cs-buybox__section .cs-buybox__category {
      order: 2;
      margin-block: 0 2rem;
      width: 100%; }
      .cs-buybox__section .cs-buybox__category > a {
        display: flex;
        align-items: center; }
        .cs-buybox__section .cs-buybox__category > a::before {
          content: "";
          background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/arrow-long-right.svg");
          background-size: contain;
          transform: rotate(180deg);
          display: block;
          width: 16px;
          height: 16px;
          margin-right: 1.25rem; }
    .cs-buybox__section .cs-buybox__product-name {
      order: 3;
      width: 100%; }
      .cs-buybox__section .cs-buybox__product-name h1 {
        color: #000; }
    .cs-buybox__section .cs-buybox__price {
      order: 5;
      width: 100%;
      position: relative;
      z-index: 2; }
      .cs-buybox__section .cs-buybox__price .price-excluding-tax::before,
      .cs-buybox__section .cs-buybox__price .price-including-tax::before {
        width: auto;
        margin-right: 5px; }
    .cs-buybox__section .product-add-form {
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
      width: 100%; }
      @media (max-width: 48em) {
        .cs-buybox__section .product-add-form {
          gap: 2rem;
          justify-content: flex-start; } }
      @media (max-width: 30em) {
        .cs-buybox__section .product-add-form > form {
          width: 100%; } }
      @media (max-width: 30em) {
        .cs-buybox__section .product-add-form > div {
          width: 100%; } }
      .cs-buybox__section .product-add-form .ask-about-button {
        width: 100%;
        padding: 1.2rem 2rem;
        font-weight: 400;
        font-size: 1.6rem;
        margin-left: 0;
        cursor: pointer;
        font-size: 1.6rem;
        border-radius: 27px;
        transition: 0.3s all;
        color: #333333;
        border: 1px solid #333333;
        background-color: transparent; }
        .cs-buybox__section .product-add-form .ask-about-button:enabled {
          cursor: pointer; }
        .cs-buybox__section .product-add-form .ask-about-button:hover, .cs-buybox__section .product-add-form .ask-about-button:focus {
          border-color: #c1272f;
          color: #c1272f; }
    .cs-buybox__section .product-social-links {
      padding-top: 1em;
      border-top: 1px solid #d5d5d5; }
    .cs-buybox__section--extras {
      width: 100%;
      padding-bottom: 1rem;
      padding-top: 0.5rem; }
    .cs-buybox__section--product-form {
      width: 100%;
      padding-top: 0.5rem;
      padding-bottom: 0; }
      @media (max-width: 48em) {
        .cs-buybox__section--product-form {
          padding-top: 3.5rem; } }
  .cs-buybox__brand {
    order: 2;
    margin-bottom: 1rem;
    width: auto; }
    .cs-buybox__brand-text {
      font-size: 1.4rem;
      font-weight: 300;
      color: #333333; }
    .cs-buybox__brand::after {
      display: none; }
    .cs-buybox__brand ~ .product-info-price .special-price--badge {
      top: 6rem; }
  .cs-buybox__price .tooltiptext {
    width: 350px !important;
    left: -4rem !important;
    text-align: center;
    top: 6rem;
    bottom: unset; }
    @media (max-width: 48em) {
      .cs-buybox__price .tooltiptext {
        left: -2rem !important; } }
    @media (max-width: 30em) {
      .cs-buybox__price .tooltiptext {
        top: 6rem;
        bottom: unset;
        left: -1rem !important; }
        .cs-buybox__price .tooltiptext::after {
          left: 40%; } }
  .cs-buybox__price .special-price .price-container {
    padding-left: 0.5rem; }
  .cs-buybox__price .special-price--badge {
    position: absolute;
    top: 3.5rem;
    right: 0;
    display: flex;
    align-items: center;
    color: #ff7200;
    border-radius: 15px;
    border: 1px solid #ff7200;
    font-size: 1.2rem;
    font-weight: 600;
    padding: 0.5rem 0.65rem; }
    .cs-buybox__price .special-price--badge::before {
      content: "";
      width: 1.6rem;
      height: 1.6rem;
      background: no-repeat center url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/percentage.svg");
      background-size: contain;
      margin-right: 0.75rem; }
  .cs-buybox__addtocart {
    margin-bottom: 1rem;
    margin-right: 1rem; }
    @media (max-width: 30em) {
      .cs-buybox__addtocart {
        width: 100%; }
        .cs-buybox__addtocart .cs-addtocart__wrapper {
          width: 100%; } }
    .cs-buybox__addtocart-button {
      padding: 1.2rem 3.8rem; }
      .cs-buybox__addtocart-button strong {
        font-size: 1.6rem !important; }
  .cs-buybox__addto-link {
    line-height: 1;
    transition: 0.3s all; }
    .cs-buybox__addto-link:hover > span, .cs-buybox__addto-link:focus > span {
      color: #c1272f; }
    .cs-buybox__addto-link:hover svg path, .cs-buybox__addto-link:focus svg path {
      fill: #c1272f; }
  .cs-buybox__addto-label, .cs-buybox__addto-link-text {
    font-size: 1.4rem;
    font-weight: 300;
    color: #333333; }
  .cs-buybox__addto-list {
    gap: 1rem; }
    .cs-buybox__addto-list svg {
      width: 24px;
      height: 24px; }
    .cs-buybox__addto-list .cs-buybox__addto-icon--wishlist {
      transform: translateY(-1px); }
  .cs-buybox__addto-item {
    margin: 0; }
  .cs-buybox .catalogsellers_section {
    padding-block: 0; }
    .cs-buybox .catalogsellers_section + .installment_section {
      padding-top: 0;
      padding-bottom: 0; }
      .cs-buybox .catalogsellers_section + .installment_section .installment_title {
        background-color: #ffffff;
        font-size: 1.4rem;
        font-weight: 300; }
  .cs-buybox .catalogseller-print-button-container {
    margin-bottom: 0; }
    @media (max-width: 30em) {
      .cs-buybox .catalogseller-print-button-container {
        display: none; } }
  .cs-buybox .catalogseller-print-button:hover > span {
    color: #c1272f; }
  .cs-buybox .catalogseller-print-button-title {
    font-size: 1.4rem;
    font-weight: 300;
    color: #333333; }
  .cs-buybox .installment_section {
    width: 100%;
    padding-top: 1rem; }
    .cs-buybox .installment_section .installment_title {
      display: block;
      text-align: center;
      color: #c1272f;
      border-bottom-left-radius: 8px;
      border-bottom-right-radius: 8px;
      padding-bottom: 1rem;
      transition: 0.3s color; }
      @media (max-width: 30em) {
        .cs-buybox .installment_section .installment_title {
          font-size: 1.4rem; } }
      .cs-buybox .installment_section .installment_title:hover {
        color: #a20109; }
  @media (max-width: 80em) {
    .cs-buybox > .thumbnail-gallery {
      margin: 1rem 0 0;
      max-width: 100%; } }
  .cs-buybox > .thumbnail-gallery .swiper-slide img {
    display: flex; }
  .cs-buybox .badges {
    width: auto;
    margin-left: auto;
    order: 3;
    align-items: baseline; }
    @media (max-width: 30em) {
      .cs-buybox .badges {
        margin-bottom: 0.5rem;
        width: 100%; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-buybox-related-products {
  margin: 0 !important; }
  .cs-buybox-related-products__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 3rem; }
  .cs-buybox-related-products__headline.title {
    margin: 0; }
  .cs-buybox-related-products__actions {
    margin: 0 0 0 2rem; }
  .cs-buybox-related-products__select-all {
    padding: 0.4em 0.55em;
    font-weight: 400; }
    .cs-buybox-related-products__select-all::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-buybox-related-products__select-all, .cs-buybox-related-products__select-all:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #333333;
      color: #333333;
      background-color: #fff; }
      .cs-buybox-related-products__select-all:hover:not([disabled]), .cs-buybox-related-products__select-all:focus:not([disabled]), .cs-buybox-related-products__select-all:active:not([disabled]), .cs-buybox-related-products__select-all:visited:hover:not([disabled]), .cs-buybox-related-products__select-all:visited:focus:not([disabled]), .cs-buybox-related-products__select-all:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #c1272f;
        color: #c1272f;
        background-color: #fff; }
      .cs-buybox-related-products__select-all[disabled], .cs-buybox-related-products__select-all:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #f7f7f7; }
  .cs-buybox-related-products__list, .cs-buybox-related-products__item {
    margin: 0;
    padding: 0;
    list-style: none; }
  .cs-buybox-related-products__item {
    margin: 0 0 1rem;
    padding: 0 0 1rem;
    border-bottom: 1px solid #dcdcdc; }
    .cs-buybox-related-products__item:last-child {
      margin-bottom: 0;
      padding-bottom: 0;
      border-bottom: 0; }
  .cs-buybox-related-products__item-content {
    display: flex;
    justify-content: stretch;
    align-items: center; }
  .cs-buybox-related-products__checkbox-wrapper {
    width: auto;
    display: block;
    min-width: 7rem;
    margin: 0 2rem 0 0;
    text-align: center; }
    @media (min-width: 23.125em) {
      .cs-buybox-related-products__checkbox-wrapper {
        min-width: 7.6rem; } }
  .cs-buybox-related-products__checkbox {
    margin: 0 !important;
    width: 1.7em !important;
    height: 1.7em !important;
    background-size: 1.7em 1.7em !important; }
  .cs-buybox-related-products__checkbox-label {
    display: inline-block;
    width: 100%;
    margin-top: 0.5em;
    font-weight: 400 !important; }
  .cs-buybox-related-products__image {
    margin: 0 2rem 0 0; }
  .cs-buybox-related-products__item-details-wrapper {
    width: 100%; }
  .cs-buybox-related-products__item-details {
    margin: 0 0 0.6em;
    font-size: 1.2em; }
  .cs-buybox-related-products__item-name, .cs-buybox-related-products__item-name:visited {
    color: #212121; }
  .cs-buybox-related-products__item-actions {
    margin: 0 0 0 2rem; }
  .cs-buybox-related-products__atc-button {
    font-size: 1em;
    padding: 0.4em 0.7em; }
    .cs-buybox-related-products__atc-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-buybox-related-products__atc-button, .cs-buybox-related-products__atc-button:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-buybox-related-products__atc-button:hover:not([disabled]), .cs-buybox-related-products__atc-button:focus:not([disabled]), .cs-buybox-related-products__atc-button:active:not([disabled]), .cs-buybox-related-products__atc-button:visited:hover:not([disabled]), .cs-buybox-related-products__atc-button:visited:focus:not([disabled]), .cs-buybox-related-products__atc-button:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-buybox-related-products__atc-button[disabled], .cs-buybox-related-products__atc-button:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-form, .cs-form__fieldset {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-form__field + .cs-form__field {
  margin-top: 1em; }

.cs-form--disabled {
  opacity: 0.6; }

.cs-form__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-form__button, .cs-form__button:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #c1272f;
  color: #ffffff;
  background-color: #c1272f; }
  .cs-form__button:hover:not([disabled]), .cs-form__button:focus:not([disabled]), .cs-form__button:active:not([disabled]), .cs-form__button:visited:hover:not([disabled]), .cs-form__button:visited:focus:not([disabled]), .cs-form__button:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #a20109;
    color: #ffffff;
    background-color: #a20109; }
  .cs-form__button[disabled], .cs-form__button:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #e5e5e5; }

.cs-form__button-span {
  font-size: 1.6rem; }

.cs-form__button-icon {
  max-width: 1em;
  max-height: 1.6rem;
  z-index: 2;
  height: auto;
  width: 100%;
  display: none; }

.form,
.form .fieldset {
  border: 0;
  padding: 0;
  margin: 0; }

.form .field + .field {
  margin-top: 1em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-indicator-low-stock {
  position: relative;
  margin: -0.7rem 0 1rem;
  background: #f0f0f0;
  border-radius: 24px;
  padding: 0.5em;
  color: #324dcf; }
  .cs-indicator-low-stock:after {
    position: absolute;
    bottom: 100%;
    right: 1.3rem;
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    pointer-events: none;
    border-color: rgba(240, 240, 240, 0);
    border-bottom-color: #f0f0f0;
    border-width: 1rem;
    margin-left: -1rem; }
  .cs-indicator-low-stock__content {
    display: flex;
    align-items: center; }
  .cs-indicator-low-stock__icon {
    width: 2em;
    height: 1.8em;
    margin-right: 0.75em;
    fill: currentColor;
    -webkit-animation: ringing 6s infinite;
            animation: ringing 6s infinite; }
  .cs-indicator-low-stock__label span {
    font-weight: 600; }

@-webkit-keyframes ringing {
  0%,
  12% {
    transform: scale(1) rotate(0deg); }
  3%,
  7% {
    transform: scale(1.3) rotate(27deg); }
  5%,
  9% {
    transform: scale(1.3) rotate(-27deg); } }

@keyframes ringing {
  0%,
  12% {
    transform: scale(1) rotate(0deg); }
  3%,
  7% {
    transform: scale(1.3) rotate(27deg); }
  5%,
  9% {
    transform: scale(1.3) rotate(-27deg); } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-indicator-fast-shipping {
  display: flex;
  color: #37b841;
  align-items: center; }
  .cs-indicator-fast-shipping:not(:last-child) {
    margin: 0 0 1rem; }
  .cs-indicator-fast-shipping__content {
    display: flex;
    align-items: center; }
  .cs-indicator-fast-shipping__element {
    display: none; }
    .cs-indicator-fast-shipping__element--visible {
      display: flex;
      color: #37b841;
      align-items: center; }
  .cs-indicator-fast-shipping__icon {
    width: 2.4em;
    height: 1.8em;
    margin: 0 1rem 0 0;
    fill: currentColor; }
    .cs-indicator-fast-shipping__icon * {
      fill: currentColor; }
  .cs-indicator-fast-shipping__headline {
    text-transform: uppercase;
    font-weight: 600;
    color: inherit; }
  .cs-indicator-fast-shipping__text {
    display: block;
    color: #888; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-indicator-free-shipping {
  display: flex;
  color: #37b841;
  align-items: center; }
  .cs-indicator-free-shipping:not(:last-child) {
    margin: 0 0 1rem; }
  .cs-indicator-free-shipping__icon {
    width: 2.4em;
    height: 1.8em;
    margin: 0 1rem 0 0;
    fill: currentColor; }
    .cs-indicator-free-shipping__icon * {
      fill: currentColor; }
  .cs-indicator-free-shipping__headline {
    text-transform: uppercase;
    font-weight: 600;
    color: inherit; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-indicator-recently-bought:not(:last-child) {
  margin: 0 0 1rem; }

.cs-indicator-recently-bought__content {
  display: flex;
  color: #37b841;
  align-items: center; }

.cs-indicator-recently-bought__icon {
  width: 2.4em;
  height: 1.8em;
  margin: 0 1rem 0 0;
  fill: currentColor; }
  .cs-indicator-recently-bought__icon * {
    fill: currentColor; }

.cs-indicator-recently-bought__headline {
  text-transform: uppercase;
  font-weight: 600;
  color: inherit; }

.cs-indicator-recently-bought__text {
  display: block;
  color: #888; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-indicator-exp-delivery {
  width: 100%;
  display: flex;
  color: #37b841;
  align-items: center; }
  .cs-indicator-exp-delivery:not(:last-child) {
    margin: 0 0 1rem; }
  .cs-indicator-exp-delivery__element {
    display: flex;
    align-items: center; }
  .cs-indicator-exp-delivery__element-icon {
    width: 2.4em;
    height: 1.8em;
    margin: 0 1rem 0 0;
    fill: currentColor;
    vertical-align: middle; }
    .cs-indicator-exp-delivery__element-icon * {
      fill: currentColor; }
  .cs-indicator-exp-delivery__text {
    display: block;
    color: #888;
    display: none; }
    .cs-indicator-exp-delivery__text--visible {
      display: inline-block; }
    .cs-indicator-exp-delivery__text--date {
      font-weight: 700; }
  .cs-indicator-exp-delivery__placeholder {
    display: block;
    color: #888;
    display: inline-block;
    margin-top: 0.5rem; }
    .cs-indicator-exp-delivery__placeholder--hidden {
      display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * gradient-shadow mixin provides gradient shadow on given position
 * @param $x - x-axis position
 * @param $y - y-axis position
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-product-gallery__loading-mask {
  padding: 0 !important;
  position: static; }

.cs-product-gallery__placeholder-image {
  text-align: center; }

.cs-product-gallery__placeholder-img {
  width: auto;
  height: auto;
  max-height: 500px; }

.cs-product-gallery__loader {
  position: relative;
  width: 100%; }
  @media (min-width: 64em) {
    .cs-product-gallery__loader {
      height: 500px;
      padding-bottom: 0 !important; } }
  .cs-product-gallery__loader source,
  .cs-product-gallery__loader img {
    transform: translate(-50%, -50%);
    left: 50%;
    top: 50%;
    position: absolute; }

.fotorama {
  /**
     * Stage navigation (arrows)
     */
  /**
     * Thumbnails
     */
  /**
     * Thumbnails slider
     */
  /*
     * Bullet pagination (dots)
     */
  /**
     * Our custom spinner
     */ }
  .fotorama .fotorama__stage {
    margin-bottom: 0.4rem; }
    .fotorama .fotorama__stage.fotorama__shadows--left:before {
      background-image: linear-gradient(transparent, rgba(240, 240, 240, 0.4) 25%, rgba(240, 240, 240, 0.5) 75%, transparent), radial-gradient(farthest-side at 0 50%, rgba(240, 240, 240, 0.7), transparent); }
    .fotorama .fotorama__stage.fotorama__shadows--right:after {
      background-image: linear-gradient(transparent, rgba(240, 240, 240, 0.4) 25%, rgba(240, 240, 240, 0.5) 75%, transparent), radial-gradient(farthest-side at 100% 50%, rgba(240, 240, 240, 0.7), transparent); }
  .fotorama .fotorama__arr {
    background-color: transparent;
    width: 4.2rem;
    height: 5.4rem;
    top: 50%;
    bottom: auto;
    margin-top: -2.7rem; }
    .fotorama .fotorama__arr:active {
      background-color: #f0f0f0; }
    .fotorama .fotorama__arr .fotorama__arr__arr {
      width: 1.4rem;
      height: 2.7rem; }
    .fotorama .fotorama__arr--prev .fotorama__arr__arr, .fotorama .fotorama__arr--next .fotorama__arr__arr {
      background-position: 0 0;
      background-size: 100%; }
    .fotorama .fotorama__arr--prev .fotorama__arr__arr {
      background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/fotorama/fotorama-arrow-prev.svg"); }
    .fotorama .fotorama__arr--next .fotorama__arr__arr {
      background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/fotorama/fotorama-arrow-next.svg"); }
  .fotorama .fotorama__nav-wrap {
    text-align: center; }
  .fotorama .fotorama__nav--thumbs .fotorama__nav__frame {
    padding-left: 0 !important; }
    .fotorama .fotorama__nav--thumbs .fotorama__nav__frame:last-child {
      padding-right: 0 !important; }
  .fotorama .fotorama__nav__frame--thumb {
    padding: 0 !important;
    border: 1px solid #dcdcdc;
    border-radius: 24px;
    overflow: hidden;
    transition: border-color 0.15s linear;
    text-align: left;
    box-sizing: border-box;
    margin: 0.4rem; }
    .fotorama .fotorama__nav__frame--thumb:not(.fotorama__active):hover {
      border-color: #888; }
    .fotorama .fotorama__nav__frame--thumb.fotorama__active {
      border-color: #324dcf; }
  .fotorama .fotorama__thumb {
    cursor: pointer;
    background-color: #fff;
    background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/fotorama/fotorama-spinner.svg");
    background-size: 50%;
    background-repeat: no-repeat;
    background-position: 50% 50%; }
    .fotorama .fotorama__thumb.fotorama__loaded--img {
      background-image: none; }
  .fotorama .fotorama__thumb-border {
    display: none; }
  .fotorama .fotorama__thumb__arr {
    transition: all 0.3s ease-in-out; }
    .fotorama .fotorama__thumb__arr, .fotorama .fotorama__thumb__arr:hover {
      background: #fff;
      box-shadow: 0 0 1rem 1rem;
      color: #fff; }
    .fotorama .fotorama__thumb__arr:active {
      background: #f0f0f0;
      color: #f0f0f0; }
    .fotorama .fotorama__thumb__arr.fotorama__arr--disabled, .fotorama .fotorama__thumb__arr--disabled {
      display: none !important; }
    .fotorama .fotorama__thumb__arr .fotorama__thumb--icon {
      padding: 0;
      width: 1.4rem !important;
      height: 2.7rem; }
    .fotorama .fotorama__thumb__arr--left .fotorama__thumb--icon, .fotorama .fotorama__thumb__arr--right .fotorama__thumb--icon {
      background-position: 0 0;
      background-size: 100%; }
    .fotorama .fotorama__thumb__arr--left .fotorama__thumb--icon {
      background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/fotorama/fotorama-arrow-prev.svg"); }
    .fotorama .fotorama__thumb__arr--right .fotorama__thumb--icon {
      background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/fotorama/fotorama-arrow-next.svg"); }
  .fotorama .fotorama__nav--dots .fotorama__nav__shaft {
    margin: 0;
    padding: 0;
    list-style: none;
    margin: 0;
    padding: 0.5rem 0 0;
    min-height: 3rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    color: #696969;
    z-index: 200; }
    .fotorama .fotorama__nav--dots .fotorama__nav__shaft--hidden {
      display: none; }
  .fotorama .fotorama__nav--dots .fotorama__nav__frame--dot {
    position: relative;
    margin: 0.4rem;
    border-radius: 2px;
    background: #f0f0f0;
    width: 2.2rem;
    height: 0.9rem;
    border: none;
    transition: all 0.15s; }
    .fotorama .fotorama__nav--dots .fotorama__nav__frame--dot:hover {
      background: #dcdcdc; }
    .fotorama .fotorama__nav--dots .fotorama__nav__frame--dot.fotorama__active, .fotorama .fotorama__nav--dots .fotorama__nav__frame--dot.fotorama__active:hover {
      background: #fed400; }
  .fotorama .fotorama__dot {
    position: absolute;
    top: 0;
    left: 0;
    font-size: 0;
    opacity: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    margin: 0;
    cursor: pointer; }
  .fotorama .fotorama-grab-cursor,
  .fotorama .fotorama__wrap .fotorama__grab {
    cursor: pointer; }
  .fotorama .fotorama__spinner {
    -webkit-animation: none !important;
            animation: none !important;
    background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/fotorama/fotorama-spinner.svg");
    background-color: #fff;
    border-radius: 24px; }
  .fotorama:not(.fotorama--fullscreen) .fotorama__nav {
    width: auto !important;
    display: inline-block; }
  .fotorama:not(.fotorama--fullscreen) .fotorama__nav-wrap {
    margin-left: -0.4rem;
    margin-right: -0.4rem; }
    .fotorama:not(.fotorama--fullscreen) .fotorama__nav-wrap--horizontal .fotorama__nav {
      height: auto !important; }
    .fotorama:not(.fotorama--fullscreen) .fotorama__nav-wrap--horizontal .fotorama__thumb__arr {
      width: 3rem; }
  .fotorama:not(.fotorama--fullscreen) .fotorama__nav__shaft {
    text-align: center; }
    .fotorama:not(.fotorama--fullscreen) .fotorama__nav__shaft.fotorama__grab {
      cursor: default; }

/*
* Styles only for fullscreeen
*/
/* stylelint-disable */
.fotorama.fotorama--fullscreen .fotorama__stage {
  padding-bottom: 0.8rem; }

.fotorama.fotorama--fullscreen .fotorama__nav__frame--thumb {
  margin: 0 0.4rem; }

.fotorama.fotorama--fullscreen .fotorama__nav {
  padding-left: calc(0.8rem / 2 + 2px);
  padding-right: calc(0.8rem / 2 + 2px); }

/* stylelint-enable */
.fotorama__nav--dots .fotorama__nav__frame--dot {
  width: 0.8rem !important;
  height: 0.8rem !important;
  border-radius: 50% !important;
  background: none !important;
  padding: 5px !important;
  border: 1px solid transparent !important; }
  .fotorama__nav--dots .fotorama__nav__frame--dot > div {
    opacity: 1 !important;
    width: 1rem !important;
    height: 1rem !important;
    background: #d5d5d5 !important;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%); }
  .fotorama__nav--dots .fotorama__nav__frame--dot.fotorama__active {
    background: none !important;
    border-color: #c1272f !important; }
    .fotorama__nav--dots .fotorama__nav__frame--dot.fotorama__active > div {
      background: #c1272f !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-product-details__item {
  background: #fff; }
  @media (min-width: 48em) {
    .cs-product-details__item {
      background: linear-gradient(to bottom, #f8f8f8 0%, #ffffff 50%); } }
  @media (max-width: 47.99em) {
    .cs-product-details__item:not(:first-child) {
      border-top: 1px solid #dcdcdc; } }
  .cs-product-details__item--main {
    background: #f0f0f0 url("../../frontend/Creativestyle/theme-kma/pl_PL/images/background.png"); }
  .cs-product-details__item--reviews {
    scroll-margin-top: 5rem; }
    @media (min-width: 48em) {
      .cs-product-details__item--reviews {
        scroll-margin-top: 8.3rem; } }
    @media (min-width: 80em) {
      .cs-product-details__item--reviews {
        scroll-margin-top: 11rem; } }
    .cs-product-details__item--reviews .cs-product-details__content {
      display: flex;
      flex-flow: row wrap; }
      @media (max-width: 47.99em) {
        .cs-product-details__item--reviews .cs-product-details__content {
          margin-top: 2.5rem; } }
  .cs-product-details__item--related, .cs-product-details__item--upsell, .cs-product-details__item--content-constructor {
    background: transparent; }
  .cs-product-details__item--content-constructor .cs-product-details__headline {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-product-details__item--aw_pq_ajax_container {
    background: #fff;
    margin-bottom: 2.5rem; }
    .cs-product-details__item--aw_pq_ajax_container .cs-product-details__headline,
    .cs-product-details__item--aw_pq_ajax_container .aw-pq-question-sort {
      padding-left: 1.5rem;
      padding-right: 1.5rem; }
      .cs-product-details__item--aw_pq_ajax_container .cs-product-details__headline[tabindex]:before, .cs-product-details__item--aw_pq_ajax_container .cs-product-details__headline[tabindex]:after,
      .cs-product-details__item--aw_pq_ajax_container .aw-pq-question-sort[tabindex]:before,
      .cs-product-details__item--aw_pq_ajax_container .aw-pq-question-sort[tabindex]:after {
        right: 3rem; }
    @media (max-width: 47.99em) {
      .cs-product-details__item--aw_pq_ajax_container .cs-product-details__content {
        margin-top: 2.5rem; } }

.cs-product-details__headline {
  font-size: 1rem;
  clear: both;
  padding: 2em 0;
  margin: 2em 0;
  font-size: 0.6rem;
  position: relative; }
  @media (min-width: 48em) {
    .cs-product-details__headline {
      font-size: 1rem; } }
  .cs-product-details__headline[tabindex] {
    position: relative; }
    .cs-product-details__headline[tabindex]:before, .cs-product-details__headline[tabindex]:after {
      content: '';
      position: absolute;
      top: 50%;
      width: 1.2rem;
      height: 0.2rem;
      left: auto;
      background-color: #888;
      transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden; }
    .cs-product-details__headline[tabindex]:before, .cs-product-details__headline[tabindex]:after {
      right: 1.5rem;
      transform: translate3d(0, -50%, 0) !important; }
    .cs-product-details__headline[tabindex]:after {
      transform: translate3d(0, -50%, 0) rotate(90deg) !important; }
    .cs-product-details__headline[tabindex][aria-expanded="true"]:before {
      transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
      opacity: 0; }
    .cs-product-details__headline[tabindex][aria-expanded="true"]:after {
      transform: translate3d(0, -50%, 0) rotate(0) !important; }
  @media (max-width: 47.99em) {
    .cs-product-details__headline {
      background: #f0f0f0;
      box-shadow: 0 2em 0 #f0f0f0, 0 -2em 0 #f0f0f0, 1.5rem 0 0 2em #f0f0f0, -1.5rem 0 0 2em #f0f0f0; } }

.cs-product-details__headline-title {
  display: block;
  text-align: center;
  align-items: center;
  margin: 0;
  font-size: 2.4rem;
  font-weight: 700;
  color: #212121;
  text-transform: none;
  text-align: left; }
  @media (min-width: 48em) {
    .cs-product-details__headline-title {
      display: flex; } }
  .cs-product-details__headline-title:before, .cs-product-details__headline-title:after {
    content: '';
    display: none;
    height: 1px;
    flex-grow: 1;
    background-color: #dcdcdc; }
    @media (min-width: 48em) {
      .cs-product-details__headline-title:before, .cs-product-details__headline-title:after {
        display: flex; } }
  .cs-product-details__headline-title:before {
    margin-right: 0.6em; }
  .cs-product-details__headline-title:after {
    margin-left: 0.6em; }
  @media (min-width: 48em) {
    .cs-product-details__headline-title {
      display: block;
      text-align: center;
      align-items: center;
      margin: 0;
      font-size: 4.2rem;
      font-weight: 700;
      color: #212121;
      text-transform: none;
      text-align: center; } }
  @media (min-width: 48em) and (min-width: 48em) {
    .cs-product-details__headline-title {
      display: flex; } }
  @media (min-width: 48em) {
      .cs-product-details__headline-title:before, .cs-product-details__headline-title:after {
        content: '';
        display: none;
        height: 1px;
        flex-grow: 1;
        background-color: #dcdcdc; } }
    @media (min-width: 48em) and (min-width: 48em) {
      .cs-product-details__headline-title:before, .cs-product-details__headline-title:after {
        display: flex; } }
  @media (min-width: 48em) {
      .cs-product-details__headline-title:before {
        margin-right: 0.6em; }
      .cs-product-details__headline-title:after {
        margin-left: 0.6em; } }
  .cs-product-details__headline-title .counter {
    display: none; }
  .cs-product-details__headline-title .counter {
    display: inline;
    margin-left: 0.2em; }
    .cs-product-details__headline-title .counter:before {
      content: ' ('; }
    .cs-product-details__headline-title .counter:after {
      content: ')'; }

.cs-product-details__headline-subtitle {
  display: none; }
  @media (min-width: 48em) {
    .cs-product-details__headline-subtitle {
      color: #888;
      font-size: 1.3rem;
      font-weight: 400;
      text-transform: none;
      margin: 0;
      display: none;
      text-align: center; } }
  @media (min-width: 48em) and (min-width: 48em) {
    .cs-product-details__headline-subtitle {
      display: block; } }

.cs-product-details__no-reviews-message {
  width: 100%; }

@media (max-width: 30em) {
  .detail__hidden {
    display: none !important; } }

.content__toggler {
  border: none;
  background: none;
  width: 100%; }
  @media (max-width: 30em) {
    .content__toggler {
      display: flex;
      justify-content: space-between;
      font-size: 2.4rem !important;
      color: #333333 !important;
      font-weight: 600 !important;
      padding-block: 1.5rem;
      padding-inline: 0;
      margin-block: 0 !important; }
      .content__toggler::before {
        content: "";
        position: absolute;
        top: 0;
        left: -1.5rem;
        right: -1.5rem;
        width: calc(100% + 3rem);
        height: 1px;
        background-color: #d5d5d5; }
      .content__toggler::after {
        content: "+";
        font-size: 2.6rem;
        font-weight: 400; }
      .content__toggler-active::after {
        content: "\2012"; } }

.cs-product-details {
  overflow: hidden; }
  .cs-product-details-main__content .thumbnail-gallery-description {
    display: flex;
    justify-content: space-between; }
    .cs-product-details-main__content .thumbnail-gallery-description .product-thumbnail-description-photo {
      max-width: calc(50% - 15px); }
  @media (max-width: 48em) {
    .cs-product-details__item {
      border: none !important; } }
  .cs-product-details__item--related, .cs-product-details__item--product-view-brand-details, .cs-product-details__item--product-info-crosssell, .cs-product-details__item--product-info-upsell {
    max-width: unset; }
    .cs-product-details__item--related .cs-product-details__content, .cs-product-details__item--product-view-brand-details .cs-product-details__content, .cs-product-details__item--product-info-crosssell .cs-product-details__content, .cs-product-details__item--product-info-upsell .cs-product-details__content {
      width: 100%;
      padding-block: 8rem; }
      @media (max-width: 64em) {
        .cs-product-details__item--related .cs-product-details__content, .cs-product-details__item--product-view-brand-details .cs-product-details__content, .cs-product-details__item--product-info-crosssell .cs-product-details__content, .cs-product-details__item--product-info-upsell .cs-product-details__content {
          padding-block: 4rem;
          padding-inline: 1.5rem; } }
      @media (max-width: 48em) {
        .cs-product-details__item--related .cs-product-details__content > div, .cs-product-details__item--product-view-brand-details .cs-product-details__content > div, .cs-product-details__item--product-info-crosssell .cs-product-details__content > div, .cs-product-details__item--product-info-upsell .cs-product-details__content > div {
          padding-bottom: 2rem; } }
      @media (max-width: 30em) {
        .cs-product-details__item--related .cs-product-details__content, .cs-product-details__item--product-view-brand-details .cs-product-details__content, .cs-product-details__item--product-info-crosssell .cs-product-details__content, .cs-product-details__item--product-info-upsell .cs-product-details__content {
          padding-block: 0;
          overflow-x: hidden; }
          .cs-product-details__item--related .cs-product-details__content > div, .cs-product-details__item--product-view-brand-details .cs-product-details__content > div, .cs-product-details__item--product-info-crosssell .cs-product-details__content > div, .cs-product-details__item--product-info-upsell .cs-product-details__content > div {
            padding-bottom: 0; } }
  .cs-product-details__item--product-info-crosssell,
  .cs-product-details__item--product-info-crosssell > div,
  .cs-product-details__item--product-info-crosssell .cs-container--products-carousel, .cs-product-details__item--product-info-upsell,
  .cs-product-details__item--product-info-upsell > div,
  .cs-product-details__item--product-info-upsell .cs-container--products-carousel {
    background: #ffffff !important; }
  .cs-product-details__item--product-info-crosssell .cs-product-details__content, .cs-product-details__item--product-info-upsell .cs-product-details__content {
    display: block; }
  .cs-product-details__item--product-info-crosssell .cs-products-carousel, .cs-product-details__item--product-info-upsell .cs-products-carousel {
    margin: 0 !important; }
  .cs-product-details__item--product-view-3Dview {
    max-width: unset; }
    .cs-product-details__item--product-view-3Dview .cs-product-details__content {
      width: 100%;
      padding-block: 4rem; }
      @media (max-width: 64em) {
        .cs-product-details__item--product-view-3Dview .cs-product-details__content {
          padding-block: 3rem; } }
      @media (max-width: 30em) {
        .cs-product-details__item--product-view-3Dview .cs-product-details__content {
          padding-block: 0; } }
  .cs-product-details__item--related {
    padding-inline: 0;
    background-color: #f7f7f7; }
    .cs-product-details__item--related .cs-product-details__content {
      display: block; }
  .cs-product-details__item--reviews .cs-product-details__content {
    flex-direction: column; }
    .cs-product-details__item--reviews .cs-product-details__content .opinion-title {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between; }
      .cs-product-details__item--reviews .cs-product-details__content .opinion-title .cs-star-rating__stars {
        width: 14rem !important; }
        .cs-product-details__item--reviews .cs-product-details__content .opinion-title .cs-star-rating__stars .cs-star-rating__text {
          min-width: 5rem; }
  .cs-product-details__item--reviews {
    scroll-margin-top: 0 !important; }
  .cs-product-details .pdp-details-3dview {
    width: 100%; }
    .cs-product-details .pdp-details-3dview .cs-product-details__content {
      justify-content: center; }
  .cs-product-details .cs-container--products-carousel {
    padding-inline: 0; }
    @media (max-width: 30em) {
      .cs-product-details .cs-container--products-carousel {
        padding-bottom: 2rem !important; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-product-details-nav {
  display: none;
  font-size: 1.1rem; }
  @media (min-width: 48em) {
    .cs-product-details-nav {
      display: block; } }
  .cs-product-details-nav__title {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-product-details-nav__list {
    margin: 0;
    padding: 0;
    list-style: none;
    overflow: hidden;
    display: flex;
    padding: 2em 0; }
  .cs-product-details-nav__item {
    margin: 0;
    padding: 0;
    font-size: 1em; }
    .cs-product-details-nav__item:first-child {
      margin-left: -2em; }
    .cs-product-details-nav__item:last-child {
      margin-right: -2em; }
    .cs-product-details-nav__item + .cs-product-details-nav__item {
      border-left: 1px solid #dcdcdc; }
  .cs-product-details-nav__link {
    display: block;
    text-transform: uppercase;
    font-weight: bold;
    padding: 0.5em 2em; }
    .cs-product-details-nav__link, .cs-product-details-nav__link:visited {
      color: #212121;
      text-decoration: none; }
    .cs-product-details-nav__link:hover, .cs-product-details-nav__link:focus, .cs-product-details-nav__link:active, .cs-product-details-nav__link:visited:hover, .cs-product-details-nav__link:visited:focus {
      color: #212121;
      text-decoration: none; }
  .cs-product-details-nav .counter:before {
    content: '('; }
  .cs-product-details-nav .counter:after {
    content: ')'; }

.cs-container--page-pdp-details-nav {
  background: #fff;
  box-shadow: 0px 0px 5px 0px rgba(33, 33, 33, 0.2); }

.cs-product-details-nav__list {
  gap: 2.5em; }

.cs-product-details-nav__item {
  margin: 0 !important;
  border-left: none !important; }

.cs-product-details-nav__link {
  display: inline-block;
  padding: 2.5rem 0;
  color: #333333;
  font-weight: 300;
  font-size: 1.6rem;
  text-transform: initial;
  border-bottom: 2px solid transparent; }
  .cs-product-details-nav__link .counter {
    color: #878787; }
  .cs-product-details-nav__link::before {
    display: block;
    content: attr(title);
    font-weight: bold;
    height: 0;
    overflow: hidden;
    visibility: hidden; }
  .cs-product-details-nav__link:hover,
  .cs-product-details-nav__link:hover span {
    font-weight: 600;
    color: #c1272f !important;
    border-bottom-color: #a20109; }

.cs-container--page-pdp-details-nav {
  box-shadow: none; }

.cs-container--page-pdp-details-description {
  padding: 0; }

/**
 * Styles for default table with attribute displayed on product page.
 **/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.additional-attributes-wrapper {
  margin-bottom: 0; }

.additional-attributes tbody > tr {
  border: 1px solid #dcdcdc;
  border-left: 0;
  border-right: 0;
  border-collapse: collapse; }
  .additional-attributes tbody > tr + tr {
    border-top: 0; }
  .additional-attributes tbody > tr > th {
    font-weight: 700;
    padding: 1em 1.5em 1em 0 !important; }
  .additional-attributes tbody > tr > td {
    padding: 1em 1.5em 1em 0 !important; }

.additional-attributes__badge {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  position: relative;
  background-color: #324dcf;
  color: #fff;
  border: 0;
  border-radius: 24px;
  padding: 0 0.7rem;
  font-size: 1.1rem;
  font-weight: 700;
  min-height: 2em;
  text-transform: uppercase;
  margin: 0 0 0 0.9em;
  top: -0.01em; }
  .additional-attributes__badge--top {
    background-color: #324dcf;
    color: #fff; }
    .additional-attributes__badge--top .additional-attributes__badge-text {
      line-height: normal; }
      .additional-attributes__badge--top .additional-attributes__badge-text + .additional-attributes__badge--top .additional-attributes__badge-text {
        margin-left: 0.5rem; }

.cs-container--page-pdp-details-additional {
  padding: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-product-details-main {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding-bottom: 2em; }
  .cs-product-details-main--column {
    flex-direction: column; }
  .cs-product-details-main__column {
    flex: 1 1 100%; }
    @media (min-width: 48em) {
      .cs-product-details-main__column--left {
        flex: 0 0 65%; } }
    .cs-product-details-main__column--right {
      margin-top: 2em; }
      @media (min-width: 48em) {
        .cs-product-details-main__column--right {
          margin-top: 0;
          flex-grow: 0;
          flex-shrink: 0;
          flex-basis: calc(35% - 2em); } }
  .cs-product-details-main__headline {
    position: relative; }
    .cs-product-details-main__headline[tabindex] {
      position: relative; }
      .cs-product-details-main__headline[tabindex]:before, .cs-product-details-main__headline[tabindex]:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 1.2rem;
        height: 0.2rem;
        left: auto;
        background-color: #888;
        transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
        -webkit-backface-visibility: hidden;
                backface-visibility: hidden; }
      .cs-product-details-main__headline[tabindex]:before, .cs-product-details-main__headline[tabindex]:after {
        right: 1.5rem;
        transform: translate3d(0, -50%, 0) !important; }
      .cs-product-details-main__headline[tabindex]:after {
        transform: translate3d(0, -50%, 0) rotate(90deg) !important; }
      .cs-product-details-main__headline[tabindex][aria-expanded="true"]:before {
        transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
        opacity: 0; }
      .cs-product-details-main__headline[tabindex][aria-expanded="true"]:after {
        transform: translate3d(0, -50%, 0) rotate(0) !important; }
  .cs-product-details-main__headline-title {
    font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 1.8rem;
    line-height: 1.1;
    color: #333333;
    font-weight: 700;
    text-transform: none;
    margin: 1rem 0 2rem; }
    @media (min-width: 48em) {
      .cs-product-details-main__headline-title {
        font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
        font-size: 2.4rem;
        line-height: 1.1;
        color: #333333;
        font-weight: 700;
        text-transform: none;
        margin: 1rem 0 2rem; } }
  .cs-product-details-main__item {
    width: 100%; }
    .cs-product-details-main__item + .cs-product-details-main__item {
      margin-top: 2em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-review {
  font-size: 1.4rem; }
  .cs-review__title {
    font-weight: 700;
    margin: 0 0 0.7rem;
    color: #212121; }
  .cs-review__rating, .cs-review__ratings {
    margin: 0 0 2rem;
    padding: 0; }
  .cs-review__compound-rating {
    list-style-type: none;
    display: flex;
    justify-content: space-between;
    max-width: 20rem;
    margin-bottom: 0.3em; }
    .cs-review__compound-rating:last-child {
      margin-bottom: 0; }
  .cs-review__meta {
    margin: 0 0 2rem;
    font-size: 0.9em; }
    .cs-review__meta--variant-support {
      display: flex;
      align-items: center; }
  .cs-review__meta-item {
    vertical-align: middle;
    padding: 0 1rem;
    line-height: 1em;
    border-right: 1px solid #dcdcdc; }
    .cs-review__meta-item:first-child {
      padding-left: 0; }
    .cs-review__meta-item:last-child {
      border-right: none; }
  .cs-review__author {
    color: #212121; }
  .cs-review__date {
    margin-left: -4px;
    color: #888; }
  .cs-review__variant {
    flex-grow: 1;
    padding: 0 1rem; }
    .cs-review__variant .swatch-attribute-options {
      margin-bottom: 0; }
    .cs-review__variant .swatch-option {
      cursor: default; }
  .cs-review__content {
    margin: 0;
    color: #888; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-review {
  display: flex; }
  @media (max-width: 63.99em) {
    .cs-review {
      flex-direction: column; } }
  .cs-review__compound-rating {
    max-width: 24rem;
    flex-direction: column; }
  .cs-review__rating, .cs-review__ratings {
    flex-basis: 200px; }
  .cs-review__content_wrapper {
    flex-basis: 80%;
    padding-top: 8px; }
  .cs-review__title {
    font-size: 1.6rem;
    margin-bottom: 1.2em; }
  .cs-review__content {
    font-size: 1.6rem;
    color: #333333;
    font-weight: 300; }
  .cs-review__meta {
    display: flex;
    align-items: center;
    margin: 15px 0 0;
    font-size: 1.4rem;
    font-weight: 300;
    color: #878787; }
    @media (max-width: 63.99em) {
      .cs-review__meta {
        margin-top: 1em; } }
  .cs-review__author, .cs-review__date {
    margin-left: 0;
    color: #333333; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-reviews {
  flex: 1 1; }
  @media (max-width: 63.99em) {
    .cs-reviews {
      border-bottom: 1px solid #dcdcdc; } }
  .cs-reviews__title {
    background: #f0f0f0; }
    @media (min-width: 48em) {
      .cs-reviews__title {
        background: none;
        padding: 0; } }
  .cs-reviews__list {
    list-style: none;
    margin: 0;
    padding: 0; }
  .cs-reviews__label {
    float: left;
    line-height: 4rem; }
  .cs-reviews__item {
    padding: 0 0 2.5rem;
    margin: 0 0 2.5rem;
    border-bottom: 1px solid #dcdcdc;
    list-style: none; }
    .cs-reviews__item:last-of-type {
      border-bottom: 0;
      margin-bottom: 0; }
  .cs-reviews__form {
    width: 100%;
    display: flex;
    flex-flow: row wrap;
    margin: 2.5rem 0; }
    @media (min-width: 64em) {
      .cs-reviews__form {
        background: #f0f0f0;
        padding: 3rem; } }
    .cs-reviews__form .swatch-opt {
      margin-bottom: 1.5em;
      font-size: 1.6rem;
      width: 100%; }
      .cs-reviews__form .swatch-opt .swatch-attribute {
        flex-direction: column;
        align-items: flex-start !important; }
      .cs-reviews__form .swatch-opt .swatch-attribute-label {
        font-weight: 400;
        font-size: 1.4rem;
        width: 100%;
        text-transform: none;
        color: inherit;
        padding: 4px 0; }
        .cs-reviews__form .swatch-opt .swatch-attribute-label:after {
          content: ' *'; }
      .cs-reviews__form .swatch-opt .swatch-attribute-options {
        margin-bottom: 0; }
  .cs-reviews__headline {
    width: 100%;
    margin: 0 0 1.4em;
    text-align: left;
    font-size: 2.4rem; }
  .cs-reviews__product-name {
    font-weight: 200; }
  .cs-reviews__rating-item:not(:first-of-type) {
    margin-top: 1em; }
  .cs-reviews__options {
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 1.5em;
    font-size: 1.6rem; }
    @media (min-width: 64em) {
      .cs-reviews__options {
        width: 50%;
        padding-right: 3rem;
        border-right: 1px solid #dcdcdc; } }
  .cs-reviews__ratings {
    width: 100%; }
  .cs-reviews__fieldset {
    width: 100%;
    margin-bottom: 1.5em;
    text-align: left;
    box-sizing: border-box; }
    @media (min-width: 64em) {
      .cs-reviews__fieldset {
        width: 50%;
        padding-left: 3rem; } }
  .cs-reviews__submit {
    width: 100%;
    display: flex;
    justify-content: flex-start; }
    @media (min-width: 64em) {
      .cs-reviews__submit {
        justify-content: center; } }
  .cs-reviews__submit-button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-reviews__submit-button, .cs-reviews__submit-button:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-reviews__submit-button:hover:not([disabled]), .cs-reviews__submit-button:focus:not([disabled]), .cs-reviews__submit-button:active:not([disabled]), .cs-reviews__submit-button:visited:hover:not([disabled]), .cs-reviews__submit-button:visited:focus:not([disabled]), .cs-reviews__submit-button:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    .cs-reviews__submit-button[disabled], .cs-reviews__submit-button:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  @media (max-width: 30em) {
    .cs-reviews__submit-button {
      width: 100%; } }
  .cs-reviews__rating-control {
    box-sizing: content-box;
    border: 1px solid #d5d5d5;
    border-radius: 24px;
    padding: 1rem 2.3rem;
    height: 2.6rem;
    background: transparent;
    margin: 0 0 0.2em;
    display: flex;
    align-items: center; }
    .cs-reviews__rating-control input[type='radio'],
    .cs-reviews__rating-control .cs-reviews__rate-stars span {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      white-space: nowrap;
      /* 1 */ }
  .cs-reviews__rate-stars {
    box-sizing: border-box;
    order: 0; }
  .cs-reviews__rate-feedback {
    order: 1;
    font-size: 0.85em;
    line-height: 0.9em;
    color: #888;
    font-weight: 700;
    margin-left: 1.5rem;
    display: flex;
    align-items: center; }
  .cs-reviews__review-field {
    min-height: 10rem;
    resize: vertical; }
  .cs-reviews .cs-pagination__content {
    justify-content: center;
    margin: 2.5rem 0; }

.cs-container--page-pdp-details-reviews {
  padding-block: 7rem; }
  @media (max-width: 64em) {
    .cs-container--page-pdp-details-reviews {
      padding-block: 3rem; } }

.cs-reviews-summary {
  display: none !important; }

.cs-reviews__item {
  padding: 3em;
  background-color: #ffffff;
  border-radius: 8px;
  border: none; }

.cs-reviews__form {
  padding: 50px 200px;
  background-color: #ffffff;
  border-radius: 8px; }
  .cs-reviews__form label {
    font-weight: 300;
    color: #333333; }

@media (max-width: 63.99em) {
  .cs-reviews__item, .cs-reviews__form {
    padding-inline: 30px; } }

@media (max-width: 30em) {
  .cs-reviews__item, .cs-reviews__form {
    padding: 30px 15px; } }

.cs-reviews__headline {
  font-size: 1.6rem;
  color: #333333;
  font-weight: 300; }

.cs-reviews__product-name {
  font-weight: 700; }
  @media (max-width: 30em) {
    .cs-reviews__product-name {
      display: block;
      margin-top: 0.5em; } }

.cs-reviews__options {
  border: none; }

.cs-reviews__rating-item {
  display: flex;
  align-items: center;
  margin: 0 !important; }
  .cs-reviews__rating-item .cs-field {
    width: 70px !important; }

.cs-reviews__rating-control {
  border: none;
  padding: 0.5rem 1rem;
  margin: 0; }

.cs-reviews__rate-feedback {
  display: none; }

.cs-reviews__fieldset {
  width: 100%;
  padding: 0; }

.cs-reviews__submit {
  justify-content: flex-end; }
  @media (max-width: 30em) {
    .cs-reviews__submit {
      justify-content: center; } }
  .cs-reviews__submit-button {
    background-color: #ffffff;
    padding: 12px 45px;
    font-weight: 400;
    font-size: 1.6rem;
    color: #000000;
    border-color: #000000; }
    .cs-reviews__submit-button:not([disabled]):hover, .cs-reviews__submit-button:not([disabled]):focus {
      color: #a20109 !important;
      border-color: #a20109 !important;
      background-color: transparent !important; }

.cs-reviews__review-field {
  border-radius: 8px; }

.cs-reviews__content {
  flex-direction: column; }

.cs-reviews .opinion-title > .cs-star-rating {
  display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-reviews-summary {
  line-height: 1;
  display: flex;
  margin-bottom: 3rem;
  flex-wrap: wrap;
  flex: 1 0 100%;
  border-bottom: 1px solid #dcdcdc; }
  @media (min-width: 64em) {
    .cs-reviews-summary {
      flex: 0 0 35rem;
      margin-bottom: 0;
      margin-right: 2.5rem;
      padding-right: 2.5rem;
      border-right: 1px solid #dcdcdc;
      border-bottom: 0;
      align-content: flex-start; } }
  .cs-reviews-summary__note {
    font-size: 4rem;
    line-height: 100%;
    color: #212121;
    font-weight: 300;
    margin-bottom: 0.5rem; }
  .cs-reviews-summary__note-right {
    color: #696969; }
  .cs-reviews-summary__all-count {
    width: 100%;
    margin: 1rem 0 2rem; }
  .cs-reviews-summary__button-wrapper {
    width: 100%;
    margin-top: 2.5rem;
    padding: 2.5rem 0;
    border-top: 1px solid #dcdcdc; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-reviews-summary__button-wrapper {
    margin-top: 0;
    border-top: 0; } }
  .cs-reviews-summary__button {
    font-size: 1.4rem; }
    .cs-reviews-summary__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-reviews-summary__button, .cs-reviews-summary__button:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-reviews-summary__button:hover:not([disabled]), .cs-reviews-summary__button:focus:not([disabled]), .cs-reviews-summary__button:active:not([disabled]), .cs-reviews-summary__button:visited:hover:not([disabled]), .cs-reviews-summary__button:visited:focus:not([disabled]), .cs-reviews-summary__button:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-reviews-summary__button[disabled], .cs-reviews-summary__button:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    @media (max-width: 29.99em) {
      .cs-reviews-summary__button {
        width: 100%; } }
  .cs-reviews-summary__button-span {
    font-size: 1.6rem; }
  .cs-reviews-summary__button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }
  .cs-reviews-summary__stars {
    margin-right: 1rem;
    flex: 1 0 auto; }
    @media (min-width: 23.125em) {
      .cs-reviews-summary__stars {
        flex: 0 1 auto;
        margin-right: 4rem; } }
    @media (min-width: 48em) {
      .cs-reviews-summary__stars {
        flex: 0 1 100%; } }
  .cs-reviews-summary__bars {
    font-size: 1.4rem;
    list-style: none inside none;
    padding: 0;
    margin: 2.5rem 0 0;
    flex-grow: 1;
    color: #696969;
    max-width: 40rem;
    width: 100%; }
    @media (min-width: 23.125em) {
      .cs-reviews-summary__bars {
        margin-top: 0;
        width: auto; } }
    @media (min-width: 48em) {
      .cs-reviews-summary__bars {
        margin-top: 2.5rem; } }
  .cs-reviews-summary__bar {
    position: relative;
    vertical-align: bottom;
    display: flex;
    align-items: center;
    margin: 0 0 1rem 0; }
    .cs-reviews-summary__bar:last-child {
      margin-bottom: 0; }
    .cs-reviews-summary__bar-label {
      flex: 0 1 3.5em; }
    .cs-reviews-summary__bar-count {
      width: 1.5em;
      text-align: right; }
    .cs-reviews-summary__bar-progress {
      flex: 1 0 auto;
      position: relative;
      display: inline-block;
      min-width: 9rem;
      height: 0.9em;
      margin: 0 0.8rem 0 0.7rem;
      background: #f0f0f0; }
      .cs-reviews-summary__bar-progress-inner {
        position: absolute;
        left: 0;
        top: 0;
        height: inherit;
        background: #fedfa4; }
  .cs-reviews-summary__ratings-averages {
    list-style-type: none;
    width: 100%;
    margin: 2.5rem 0 0;
    padding: 2.5rem 0 0;
    border-top: 1px solid #dcdcdc;
    line-height: 1.43; }
    .cs-reviews-summary__ratings-averages-item {
      width: 100%;
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      margin-bottom: 0.3em; }
      @media (min-width: 23.125em) {
        .cs-reviews-summary__ratings-averages-item {
          max-width: 25rem; } }
      @media (min-width: 48em) {
        .cs-reviews-summary__ratings-averages-item {
          max-width: 40rem; } }
      .cs-reviews-summary__ratings-averages-item:last-child {
        margin-bottom: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-tabs {
  box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28); }
  .cs-tabs--store-pickup {
    width: 100%;
    margin: 0;
    box-shadow: none;
    position: relative; }
    @media (max-width: 47.99em) {
      .cs-tabs--store-pickup:after {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28);
        z-index: -1;
        content: ""; } }
  .cs-tabs--bar {
    margin: 0 0 0 -1.5rem;
    padding: 0 1.5rem;
    border-bottom: 1px solid #dcdcdc;
    box-shadow: none; }
  .cs-tabs__triggers {
    display: flex;
    overflow: hidden;
    justify-content: space-between; }
    .cs-tabs--bar .cs-tabs__triggers {
      justify-content: flex-start; }
    #store-pickup ~ #shipping .cs-tabs__triggers {
      display: none; }
  .cs-tabs__title {
    flex-basis: 50%;
    background: #f0f0f0;
    box-shadow: inset 0 0 5px 0 #696969;
    margin-top: -1px;
    margin-right: -1px;
    padding-top: 0.2rem;
    padding-left: 0.2rem; }
    .cs-tabs__title--active {
      background: #fff;
      box-shadow: none;
      margin: 0;
      padding: 0; }
      .cs-tabs__title--active .cs-tabs__title-link {
        cursor: default;
        color: #000000 !important; }
        .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link {
          color: #212121;
          box-shadow: none; }
          .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link:after {
            position: absolute;
            bottom: -1px;
            left: 0;
            width: 100%;
            height: 1px;
            background-color: #fff;
            content: "";
            z-index: 3; }
          .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link:visited, .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link:hover {
            color: #212121; }
        .cs-tabs__title--active .cs-tabs__title-link:visited, .cs-tabs__title--active .cs-tabs__title-link:hover, .cs-tabs__title--active .cs-tabs__title-link:active {
          color: #000000 !important; }
          .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link:visited, .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link:hover, .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link:active {
            color: #212121; }
    .cs-tabs--bar .cs-tabs__title {
      margin: 0;
      padding: 0;
      flex-basis: auto;
      text-align: center;
      border: 1px solid #dcdcdc;
      border-bottom: none;
      border-left-width: 0;
      box-shadow: none;
      transition: background-color 0.15s linear, color 0.15s linear; }
      .cs-tabs--bar .cs-tabs__title:not(.cs-tabs__title--active):hover {
        background-color: #fdfdfd; }
      .cs-tabs--bar .cs-tabs__title:first-child {
        border-left-width: 1px;
        border-top-left-radius: 5px; }
      .cs-tabs--bar .cs-tabs__title:last-child {
        border-top-right-radius: 5px; }
  .cs-tabs__title-link {
    color: #888;
    text-decoration: none;
    line-height: 4rem;
    height: 4rem;
    padding: 0.1rem 1rem;
    display: block;
    position: relative;
    z-index: 2;
    font-weight: 600;
    font-size: 1.2rem;
    cursor: pointer; }
    @media (min-width: 30em) {
      .cs-tabs__title-link {
        padding: 0.1rem 2rem; } }
    @media (min-width: 48em) {
      .cs-tabs__title-link {
        font-size: 1.8rem;
        line-height: 5.5rem;
        height: 5.5rem; } }
    .cs-tabs__title-link:hover, .cs-tabs__title-link:active, .cs-tabs__title-link:focus, .cs-tabs__title-link:visited {
      color: #888; }
    .cs-tabs__title-link:hover {
      text-decoration: none; }
    .cs-tabs--bar .cs-tabs__title-link {
      position: relative;
      height: auto;
      line-height: 120%;
      font-size: 1.2rem;
      padding: 0.6rem 0.5rem;
      font-weight: 300;
      white-space: nowrap; }
      @media (min-width: 30em) {
        .cs-tabs--bar .cs-tabs__title-link {
          padding: 0.8rem 1.5rem; } }
      .cs-tabs--bar .cs-tabs__title-link:hover, .cs-tabs--bar .cs-tabs__title-link:active, .cs-tabs--bar .cs-tabs__title-link:focus, .cs-tabs--bar .cs-tabs__title-link:visited {
        color: #212121; }
  .cs-tabs--bar .cs-tabs__title-span:not(:empty):before {
    content: "("; }
  .cs-tabs--bar .cs-tabs__title-span:not(:empty):after {
    content: ")"; }
  .cs-tabs__content {
    padding: 2rem; }

#store-pickup ~ #shipping #tab-customer {
  display: none; }

/** Styles form _tables.less of theme blank are moved here.
   * For some tables there is mobile layout applied also for tablet resolutions
   * Variables for typograpy, colors, border etc. are added
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable no-descending-specificity */
.table-wrapper {
  margin-bottom: 2rem; }
  @media (max-width: 47.99em) {
    .table-wrapper {
      border: none;
      display: block; } }
  @media (min-width: 48em) {
    .table-wrapper.cart .table-wrapper.cart {
      border-top: none; } }
  .table-wrapper.grouped tbody:last-child td {
    border-bottom: none; }

.table {
  border-bottom: 1px solid #dcdcdc;
  max-width: 100%;
  width: 100%;
  background: transparent; }
  .table > caption {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .table:not(.totals):not(.table-totals) {
    border: none; }
    .table:not(.totals):not(.table-totals) td {
      border: none;
      padding: 0.8rem 1rem; }
    .table:not(.totals):not(.table-totals) thead {
      border-bottom: 2px solid #dcdcdc; }
      .table:not(.totals):not(.table-totals) thead th {
        font-size: 1.1rem;
        text-transform: uppercase;
        color: #212121; }
    .table:not(.totals):not(.table-totals) tbody td {
      font-size: 1.6rem;
      color: #212121;
      font-weight: 300;
      border-bottom: 1px solid #dcdcdc;
      border-left: none; }
      @media (max-width: 47.99em) {
        .table:not(.totals):not(.table-totals) tbody td.actions {
          border-bottom: 1px solid #dcdcdc; } }
      .table:not(.totals):not(.table-totals) tbody td.actions a + a:before {
        margin: 0 0.7rem 0 0.5rem;
        content: '';
        display: inline-block;
        width: 1px;
        height: 1.6rem;
        border-right: 2px solid #dcdcdc;
        vertical-align: middle; }
      .table:not(.totals):not(.table-totals) tbody td:first-child {
        border-left: none; }
    @media (max-width: 63.99em) {
      .account .table:not(.totals):not(.table-totals) tbody tr:first-child td {
        padding-top: 0; } }
    .table:not(.totals):not(.table-totals) tbody tr:nth-child(even) {
      background: transparent; }
    .table:not(.totals):not(.table-totals) tfoot {
      font-size: 1.6rem; }
      @media (max-width: 47.99em) {
        .table:not(.totals):not(.table-totals) tfoot {
          background: #f0f0f0; } }
      .table:not(.totals):not(.table-totals) tfoot .mark {
        text-align: right; }
      @media (max-width: 47.99em) {
        .table:not(.totals):not(.table-totals) tfoot .amount {
          text-align: right; } }
  .table .price-excluding-tax,
  .table .price-including-tax,
  .table .items-qty,
  .table .product-item-name {
    font-size: 1.6rem;
    line-height: inherit; }

@media (max-width: 47.99em) {
  .table-wrapper {
    overflow-x: auto;
    overflow-y: hidden;
    width: 100%;
    position: relative; }
    .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) {
      border: none;
      font-size: 1.4rem;
      padding: 0; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals):last-child {
        padding-bottom: 1.2rem; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) thead {
        display: none; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td {
        border: none;
        display: block;
        font-size: 1.4rem;
        padding: 0.2rem; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:first-child {
          padding-top: 2rem; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:last-child {
          padding-bottom: 1rem; } }
      @media (max-width: 47.99em) and (max-width: 63.99em) {
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:before {
          padding-right: 10px;
          content: attr(data-th) ": ";
          display: inline-block;
          color: #212121;
          font-weight: 700;
          vertical-align: top; } }
      @media (max-width: 47.99em) and (max-width: 63.99em) {
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td.actions {
          border-bottom: 1px solid #dcdcdc; } }
      @media (max-width: 47.99em) and (max-width: 63.99em) {
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td.actions:before {
          border: 0;
          clip: rect(0 0 0 0);
          height: 1px;
          margin: -1px;
          overflow: hidden;
          padding: 0;
          position: absolute;
          width: 1px;
          white-space: nowrap;
          /* 1 */ } }

@media (max-width: 47.99em) {
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot {
        display: block; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot th {
          box-sizing: border-box;
          float: left;
          padding-left: 0;
          padding-right: 0;
          text-align: left;
          width: 70%; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot td {
          box-sizing: border-box;
          float: left;
          padding-left: 0;
          padding-right: 0;
          text-align: right;
          width: 30%; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr {
          display: block; }
          .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr:first-child th,
          .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr:first-child td {
            padding-top: 2rem; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals).additional-attributes tbody th {
        display: none; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals).additional-attributes tbody td:last-child {
        border: none;
        padding: 0 0 0.5rem; }
  .data-table-definition-list thead {
    display: none; }
  .data-table-definition-list tbody th {
    padding-bottom: 0; }
  .data-table-definition-list tbody th,
  .data-table-definition-list tbody td {
    display: block;
    padding-left: 0;
    padding-right: 0; } }

.table-wrapper.cart,
.account .table-wrapper {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  position: relative; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .table-wrapper.cart .table,
  .account .table-wrapper .table {
    border: none;
    font-size: 1.4rem;
    padding: 0; }
    .table-wrapper.cart .table:last-child,
    .account .table-wrapper .table:last-child {
      padding-bottom: 1.2rem; }
    .table-wrapper.cart .table thead,
    .account .table-wrapper .table thead {
      display: none; }
    .table-wrapper.cart .table tbody td,
    .account .table-wrapper .table tbody td {
      border: none;
      display: block;
      font-size: 1.4rem;
      padding: 0.2rem; }
      .table-wrapper.cart .table tbody td:first-child,
      .account .table-wrapper .table tbody td:first-child {
        padding-top: 2rem; }
      .table-wrapper.cart .table tbody td:last-child,
      .account .table-wrapper .table tbody td:last-child {
        padding-bottom: 1rem; } }
    @media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
      .table-wrapper.cart .table tbody td:before,
      .account .table-wrapper .table tbody td:before {
        padding-right: 10px;
        content: attr(data-th) ": ";
        display: inline-block;
        color: #212121;
        font-weight: 700;
        vertical-align: top; } }
    @media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
      .table-wrapper.cart .table tbody td.actions,
      .account .table-wrapper .table tbody td.actions {
        border-bottom: 1px solid #dcdcdc; } }
    @media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
      .table-wrapper.cart .table tbody td.actions:before,
      .account .table-wrapper .table tbody td.actions:before {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ } }

@media (min-width: 48em) and (max-width: 63.99em) {
    .table-wrapper.cart .table tfoot,
    .account .table-wrapper .table tfoot {
      display: block; }
      .table-wrapper.cart .table tfoot th,
      .account .table-wrapper .table tfoot th {
        box-sizing: border-box;
        float: left;
        padding-left: 0;
        padding-right: 0;
        text-align: left;
        width: 70%; }
      .table-wrapper.cart .table tfoot td,
      .account .table-wrapper .table tfoot td {
        box-sizing: border-box;
        float: left;
        padding-left: 0;
        padding-right: 0;
        text-align: right;
        width: 30%; }
      .table-wrapper.cart .table tfoot tr,
      .account .table-wrapper .table tfoot tr {
        display: block; }
        .table-wrapper.cart .table tfoot tr:first-child th,
        .table-wrapper.cart .table tfoot tr:first-child td,
        .account .table-wrapper .table tfoot tr:first-child th,
        .account .table-wrapper .table tfoot tr:first-child td {
          padding-top: 2rem; } }

/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.table-wrapper .actions {
  flex-direction: column; }
  .table-wrapper .actions .action {
    margin-right: 0 !important; }
    @media (min-width: 48em) {
      .table-wrapper .actions .action::before {
        display: none !important; } }

.hdmx__tickets .message.info.empty {
  padding: 1.1rem 4.5rem 1.1rem; }

.hdmx__ticket-reply .actions-toolbar {
  display: flex;
  justify-content: space-between;
  flex-direction: row-reverse; }
  @media (max-width: 30em) {
    .hdmx__ticket-reply .actions-toolbar {
      flex-direction: column;
      gap: 20px;
      align-items: center; } }

.hdmx__ticket-reply .secondary > button {
  float: left !important;
  margin: 0 !important;
  padding: 1.2rem !important;
  font-size: 1.6rem;
  border-radius: 27px;
  transition: 0.3s all;
  color: #333333;
  border: 1px solid #333333;
  background-color: transparent;
  min-width: 12rem; }
  .hdmx__ticket-reply .secondary > button:enabled {
    cursor: pointer; }
  .hdmx__ticket-reply .secondary > button:hover, .hdmx__ticket-reply .secondary > button:focus {
    border-color: #c1272f;
    color: #c1272f; }
  .wishlist-index-index .hdmx__ticket-reply .secondary > button {
    z-index: 1; }

.hdmx__ticket-reply > button.action.update {
  display: none; }

.hdmx__ticket-summary {
  table-layout: fixed;
  width: 65%; }
  @media (max-width: 48em) {
    .hdmx__ticket-summary {
      width: 100%; } }
  .hdmx__ticket-summary th {
    width: 50%; }
  .hdmx__ticket-summary td {
    width: 50%;
    word-break: break-word; }

.hdmx__message {
  box-shadow: 0px 0px 5px 3px #e5e5e5;
  background-color: #ffffff;
  padding: 1.5rem; }

.hdmx-message__body {
  background-color: #ffffff !important;
  border: none !important;
  padding: 0.5rem 0 !important; }

.hdmx__tickets-table {
  margin-top: 3rem; }
  .hdmx__tickets-table tr {
    border-bottom: 1px solid #878787; }
    .hdmx__tickets-table tr:last-child {
      border-bottom: none; }
  @media (max-width: 64em) {
    .hdmx__tickets-table td {
      margin-bottom: 1rem; } }
  .hdmx__tickets-table .subject {
    width: 185px; }
    @media (max-width: 64em) {
      .hdmx__tickets-table .subject {
        width: 100%; } }
  .hdmx__tickets-table .details {
    width: 150px; }
    @media (max-width: 64em) {
      .hdmx__tickets-table .details::before {
        content: none !important; } }
    .hdmx__tickets-table .details a {
      font-size: 1.6rem;
      transition: 0.3s all;
      color: #c1272f;
      font-weight: 300;
      margin-right: 45px;
      position: relative; }
      .hdmx__tickets-table .details a:hover {
        border-bottom: 1px solid #c1272f;
        text-decoration: none; }
      .hdmx__tickets-table .details a::after {
        content: url("data:image/svg+xml,%3Csvg width='34' height='24' fill='%23c1272f' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' clip-rule='evenodd'%3E%3Cpath d='M31.883 12l-7.527 6.235.644.765 9-7.521-9-7.479-.645.764 7.529 6.236h-31.884v1h21.883z'/%3E%3C/svg%3E");
        width: 34px;
        height: 24px;
        position: absolute;
        width: 34px;
        height: 24px;
        top: 50%;
        transform: translateY(-50%);
        right: -45px; }

.hdmx__ticket-view .back-link a {
  font-size: 1.6rem;
  transition: 0.3s all;
  color: #c1272f;
  font-weight: 300;
  margin-right: 45px;
  position: relative; }
  .hdmx__ticket-view .back-link a:hover {
    border-bottom: 1px solid #c1272f;
    text-decoration: none; }
  .hdmx__ticket-view .back-link a::after {
    content: url("data:image/svg+xml,%3Csvg width='34' height='24' fill='%23c1272f' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' clip-rule='evenodd'%3E%3Cpath d='M31.883 12l-7.527 6.235.644.765 9-7.521-9-7.479-.645.764 7.529 6.236h-31.884v1h21.883z'/%3E%3C/svg%3E");
    width: 34px;
    height: 24px;
    position: absolute;
    width: 34px;
    height: 24px;
    top: 50%;
    transform: translateY(-50%);
    right: -45px; }
  .hdmx__ticket-view .back-link a small {
    display: none; }

.card__action button[type="submit"] {
  color: #c1272f !important;
  cursor: pointer; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-toolbar {
  font-size: 1.2rem;
  font-weight: inherit;
  text-transform: uppercase; }
  @media (min-width: 48em) {
    .cs-toolbar {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      flex-wrap: wrap !important; } }
  .cs-toolbar__item {
    margin: 0 0 1.5rem; }
    @media (min-width: 48em) {
      .cs-toolbar__item {
        margin: 0 0 1.5rem;
        padding: 0; }
        .cs-toolbar__item:first-child {
          padding-left: 0; }
        .cs-toolbar__item:last-child {
          padding-right: 0; } }
    @media (min-width: 64em) {
      .cs-toolbar__item--pagination {
        margin-left: auto; } }
    .cs-toolbar__item--limiter {
      display: flex;
      align-items: center; }
    .cs-toolbar__item--offcanvas {
      margin-right: 3rem;
      z-index: 1; }
  .cs-toolbar .field .label {
    font-weight: inherit;
    width: auto; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-toolbar .cs-html-select {
    max-width: 20rem; } }
  .cs-toolbar .cs-html-select__trigger {
    min-height: 3.5rem; }
  .cs-toolbar__filters-button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-toolbar__filters-button, .cs-toolbar__filters-button:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-toolbar__filters-button:hover:not([disabled]), .cs-toolbar__filters-button:focus:not([disabled]), .cs-toolbar__filters-button:active:not([disabled]), .cs-toolbar__filters-button:visited:hover:not([disabled]), .cs-toolbar__filters-button:visited:focus:not([disabled]), .cs-toolbar__filters-button:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-toolbar__filters-button[disabled], .cs-toolbar__filters-button:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .cs-toolbar__filters-button svg {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-left: 0;
    left: 2.3rem;
    max-width: 2.3rem;
    max-height: 2.3rem; }
  .cs-toolbar__filters-button-label {
    font-size: 1.6rem; }

.toolbar-amount {
  margin: 0;
  white-space: nowrap; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-sorter {
  display: flex;
  align-items: center; }
  @media (max-width: 48em) {
    .cs-sorter {
      border-bottom: 1px solid #d5d5d5; } }
  .cs-sorter__label {
    padding: 0 1rem 0 0;
    white-space: nowrap; }
  .cs-sorter__select {
    width: 0px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-limiter {
  display: flex;
  position: relative;
  margin: 0 1rem 0 0;
  align-items: center;
  flex-wrap: nowrap; }
  .cs-limiter__label,
  .field .cs-limiter__label {
    white-space: nowrap; }
    .cs-limiter__label--prefix,
    .field .cs-limiter__label--prefix {
      padding: 0 1rem 0 1rem; }
    .cs-limiter__label--suffix,
    .field .cs-limiter__label--suffix {
      padding: 0 0 0 1rem; }
  .cs-limiter__pagination {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: stretch; }
  .cs-limiter__pagination-item {
    margin: 0;
    padding: 0;
    border: 1px solid #dcdcdc;
    text-align: center;
    margin-left: -1px;
    overflow: hidden; }
    .cs-limiter__pagination-item:first-child {
      border-top-left-radius: 24px;
      border-bottom-left-radius: 24px; }
    .cs-limiter__pagination-item:last-child {
      border-top-right-radius: 24px;
      border-bottom-right-radius: 24px; }
  .cs-limiter__pagination-number {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    min-height: 3.5rem;
    border: 0;
    margin: 0;
    padding: 0.3em;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    font-size: 1.2rem;
    font-weight: 400;
    transition: color 0.15s linear; }
    .cs-limiter__pagination-number, .cs-limiter__pagination-number:visited {
      color: #333333;
      text-decoration: none; }
    .cs-limiter__pagination-number:hover, .cs-limiter__pagination-number:focus, .cs-limiter__pagination-number:active {
      border: 0;
      color: #212121;
      background: inherit;
      text-decoration: inherit; }
    .cs-limiter__pagination-item--current .cs-limiter__pagination-number {
      color: #000000 !important; }
      .cs-limiter__pagination-item--current .cs-limiter__pagination-number, .cs-limiter__pagination-item--current .cs-limiter__pagination-number:hover, .cs-limiter__pagination-item--current .cs-limiter__pagination-number:focus, .cs-limiter__pagination-item--current .cs-limiter__pagination-number:active {
        color: #324dcf;
        background: #f0f0f0;
        cursor: default; }
  .cs-limiter .cs-html-select,
  .cs-limiter .cs-html-select__trigger,
  .cs-limiter select {
    min-width: 3rem;
    min-height: 3.5rem; }

.cs-dashboard .limiter-label,
.cs-dashboard .limiter-text {
  font-weight: 400;
  font-size: 1.4rem;
  margin-right: 0.5rem; }

.cs-dashboard .limiter-text {
  white-space: nowrap; }

.cs-dashboard .limiter-options {
  margin-right: 0.5rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-pagination {
  /**
     * Input mode
     */
  /**
     * Bullet points mode
     */ }
  .cs-pagination__content {
    display: flex;
    align-items: center; }
  .cs-pagination__prefix-label {
    margin: 0;
    padding: 0 1rem 0 0; }
  .cs-pagination__page-provider {
    display: flex;
    flex-wrap: nowrap;
    white-space: nowrap;
    align-items: center;
    width: auto;
    gap: 0 0.5rem; }
  .cs-pagination__page-provider-input.input-text {
    margin: 0;
    max-height: 3.5rem;
    width: 4.5em;
    text-align: center;
    font-size: 0.85em; }
  .cs-pagination__page-provider-label {
    padding-left: 1rem;
    width: auto !important; }
  .cs-pagination__items {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: stretch; }
  .cs-pagination__item {
    margin: 0;
    padding: 0;
    border: 1px solid #dcdcdc;
    text-align: center;
    margin-left: -1px;
    overflow: hidden; }
    .cs-pagination__item:first-child {
      border-top-left-radius: 24px;
      border-bottom-left-radius: 24px; }
    .cs-pagination__item:last-child {
      border-top-right-radius: 24px;
      border-bottom-right-radius: 24px; }
  .cs-pagination__number {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    min-height: 3.5rem;
    border: 0;
    margin: 0;
    padding: 0.3em;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    font-size: 1.2rem;
    font-weight: 400;
    transition: color 0.15s linear; }
    .cs-pagination__number, .cs-pagination__number:visited {
      color: #333333;
      text-decoration: none; }
    .cs-pagination__number:hover, .cs-pagination__number:focus, .cs-pagination__number:active {
      border: 0;
      color: #212121;
      background: inherit;
      text-decoration: inherit; }
    .cs-pagination__item--current .cs-pagination__number, .cs-pagination__item--current .cs-pagination__number:hover, .cs-pagination__item--current .cs-pagination__number:focus, .cs-pagination__item--current .cs-pagination__number:active {
      color: #324dcf;
      background: #f0f0f0;
      cursor: default; }
  .cs-pagination__prev {
    margin-right: 1.5rem; }
  .cs-pagination__next {
    margin-left: 1.5rem; }
  .cs-pagination__action {
    display: flex;
    min-width: 3.5rem;
    min-height: 3.5rem;
    align-items: center;
    justify-content: center; }
  .cs-pagination__action-icon {
    width: 2.5rem;
    height: 2rem;
    fill: #333333;
    transition: fill 0.15s linear; }
    .cs-pagination__action--disabled .cs-pagination__action-icon * {
      fill: #878787; }
    .cs-pagination__action:not(.cs-pagination__action--disabled):hover .cs-pagination__action-icon *,
    .cs-pagination__action:not(.cs-pagination__action--disabled):focus .cs-pagination__action-icon *,
    .cs-pagination__action:not(.cs-pagination__action--disabled):active .cs-pagination__action-icon * {
      fill: #c1272f; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-viewmode-switcher {
  display: flex;
  align-items: center; }
  .cs-viewmode-switcher__label {
    margin: 0;
    padding: 0 1rem 0 0; }
  .cs-viewmode-switcher__modes {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: stretch; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-viewmode-switcher__modes {
    padding-left: 1rem; } }
  .cs-viewmode-switcher__mode {
    margin: 0;
    padding: 0;
    border: 1px solid #dcdcdc;
    text-align: center;
    margin-left: -1px;
    overflow: hidden; }
    .cs-viewmode-switcher__mode:first-child {
      border-top-left-radius: 24px;
      border-bottom-left-radius: 24px; }
    .cs-viewmode-switcher__mode:last-child {
      border-top-right-radius: 24px;
      border-bottom-right-radius: 24px; }
  .cs-viewmode-switcher__mode-action {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    min-height: 3.5rem;
    border: 0;
    margin: 0;
    padding: 0.3em;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    font-size: 1.2rem;
    font-weight: 400;
    transition: color 0.15s linear;
    height: 100%;
    padding-left: 0.7em;
    padding-right: 0.7em; }
    .cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode-action:visited {
      color: #333333;
      text-decoration: none; }
    .cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode-action:active {
      border: 0;
      color: #212121;
      background: inherit;
      text-decoration: inherit; }
    .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:active {
      color: #324dcf;
      background: #f0f0f0;
      cursor: default; }
  .cs-viewmode-switcher__mode-icon {
    fill: currentColor; }
    .cs-viewmode-switcher__mode-icon--grid {
      width: 1.5rem;
      height: 1.1rem; }
    .cs-viewmode-switcher__mode-icon--list {
      width: 1.5rem;
      height: 1.1rem; }
    .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-icon {
      fill: #324dcf; }
    .cs-viewmode-switcher__mode-icon + .cs-viewmode-switcher__mode-label {
      padding-left: 0.7rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-viewmode-switcher {
  display: flex;
  align-items: center; }
  @media (max-width: 48em) {
    .cs-viewmode-switcher {
      justify-content: flex-end; } }
  .cs-viewmode-switcher__label {
    margin: 0;
    padding: 0 1rem 0 0; }
  .cs-viewmode-switcher__modes {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: stretch;
    gap: 0 1rem; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-viewmode-switcher__modes {
    padding-left: 1rem; } }
  .cs-viewmode-switcher__mode {
    margin: 0;
    padding: 0;
    border: 1px solid #dcdcdc;
    text-align: center;
    margin-left: -1px;
    overflow: hidden;
    border: none;
    background-color: transparent !important; }
    .cs-viewmode-switcher__mode:first-child {
      border-top-left-radius: 24px;
      border-bottom-left-radius: 24px; }
    .cs-viewmode-switcher__mode:last-child {
      border-top-right-radius: 24px;
      border-bottom-right-radius: 24px; }
  .cs-viewmode-switcher__mode-action {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    min-height: 3.5rem;
    border: 0;
    margin: 0;
    padding: 0.3em;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    font-size: 1.2rem;
    font-weight: 400;
    transition: color 0.15s linear;
    background-color: transparent !important;
    height: 100%;
    padding-left: 0.7em;
    padding-right: 0.7em; }
    .cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode-action:visited {
      color: #333333;
      text-decoration: none; }
    .cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode-action:active {
      border: 0;
      color: #212121;
      background: inherit;
      text-decoration: inherit; }
    .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:active {
      color: #324dcf;
      background: #f0f0f0;
      cursor: default; }
  .cs-viewmode-switcher__mode-icon path {
    fill: #333333; }
  .cs-viewmode-switcher__mode-icon--grid {
    width: 2.4rem;
    height: 2.4rem; }
  .cs-viewmode-switcher__mode-icon--list {
    width: 2.4rem;
    height: 2.4rem; }
  .cs-viewmode-switcher__mode-icon:hover path,
  .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-icon path {
    fill: #c1272f; }
  .cs-viewmode-switcher__mode-icon + .cs-viewmode-switcher__mode-label {
    padding-left: 0.7rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-toolbar {
  font-size: 1.6rem;
  font-weight: 400;
  text-transform: none; }
  @media (min-width: 48em) {
    .cs-toolbar {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      flex-wrap: wrap !important; } }
  .cs-toolbar__item {
    margin: 0 0 1.5rem; }
    @media (min-width: 48em) {
      .cs-toolbar__item {
        margin: 0 0 1.5rem;
        padding: 0; }
        .cs-toolbar__item:first-child {
          padding-left: 0; } }
    @media (min-width: 64em) {
      .cs-toolbar__item--pagination {
        margin-left: 0; } }
    .cs-toolbar__item--limiter {
      display: flex;
      align-items: center; }
    .cs-toolbar__item--offcanvas {
      margin-right: 3rem;
      z-index: 1; }
  .cs-toolbar .field .label {
    font-weight: 400;
    width: auto;
    text-transform: none; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-toolbar .cs-html-select {
    max-width: 20rem; } }
  @media (max-width: 48em) {
    .cs-toolbar .cs-html-select {
      max-width: 100%;
      width: 100%; } }
  .cs-toolbar .cs-html-select__trigger {
    min-height: 3.5rem;
    background-color: transparent;
    border: none !important;
    padding: 1rem 0.8rem 1rem 0;
    padding-right: 0.8rem !important; }
    .cs-toolbar .cs-html-select__trigger-caret-arrow {
      right: -1.2rem; }
      .cs-toolbar .cs-html-select__trigger-caret-arrow::before, .cs-toolbar .cs-html-select__trigger-caret-arrow::after {
        background-color: black;
        width: 0.9rem;
        height: 2px; }
  .cs-toolbar__filters-button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-toolbar__filters-button, .cs-toolbar__filters-button:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-toolbar__filters-button:hover:not([disabled]), .cs-toolbar__filters-button:focus:not([disabled]), .cs-toolbar__filters-button:active:not([disabled]), .cs-toolbar__filters-button:visited:hover:not([disabled]), .cs-toolbar__filters-button:visited:focus:not([disabled]), .cs-toolbar__filters-button:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-toolbar__filters-button[disabled], .cs-toolbar__filters-button:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .cs-toolbar__filters-button svg {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-left: 0;
    left: 2.3rem;
    max-width: 2.3rem;
    max-height: 2.3rem; }
  .cs-toolbar__filters-button-label {
    font-size: 1.6rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-captcha__image-controls {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-top: 1.5rem; }
  .cs-dashboard .cs-captcha__image-controls {
    flex-direction: column;
    align-items: flex-start; }
    @media (min-width: 30em) {
      .cs-dashboard .cs-captcha__image-controls {
        flex-direction: row;
        align-items: flex-end; } }
  @media (max-width: 48em) {
    .cs-captcha__image-controls {
      flex-wrap: wrap; } }

.cs-captcha__image {
  margin-right: 1rem; }

.cs-captcha__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-captcha__button, .cs-captcha__button:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #333333;
  color: #333333;
  background-color: #fff; }
  .cs-captcha__button:hover:not([disabled]), .cs-captcha__button:focus:not([disabled]), .cs-captcha__button:active:not([disabled]), .cs-captcha__button:visited:hover:not([disabled]), .cs-captcha__button:visited:focus:not([disabled]), .cs-captcha__button:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #c1272f;
    color: #c1272f;
    background-color: #fff; }
  .cs-captcha__button[disabled], .cs-captcha__button:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #f7f7f7; }

.cs-dashboard .cs-captcha__button {
  margin-top: 2rem; }
  @media (min-width: 30em) {
    .cs-dashboard .cs-captcha__button {
      margin-top: 0; } }

.cs-captcha__button-span {
  font-size: 1.6rem; }

.cs-captcha__note {
  display: block;
  font-size: 0.85em;
  padding: 4px 0;
  color: #696969;
  margin-top: -1rem; }

.cs-dashboard .cs-captcha__wrapper {
  width: 100%;
  margin-bottom: 2rem; }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL3BkcC5jc3MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb25maWcvYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYmFzZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29uZmlnL2Jhc2Uuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy9mb250LWZhbWlseS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2dldC12YWx1ZS1mcm9tLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2J1dHRvbi9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbmZpZy9iYXNlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvYnV0dG9uL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2J1bmRsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy91dGlsaXR5LWNsYXNzZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2NvbnRhaW5lci9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2NvbnRhaW5lci9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvY29udGFpbmVyL2NvbnRhaW5lci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2NvbnRhaW5lci9jb250YWluZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3R5cG9ncmFwaHkvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL01hZ2VudG9fVGhlbWUvd2ViL2Nzcy9zb3VyY2UvX2xheW91dC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvTWFnZW50b19UaGVtZS93ZWIvY3NzL3NvdXJjZS9fbGF5b3V0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvYmFkZ2VzL2JhZGdlcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9idW5kbGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYXV0aG9yaXphdGlvbi1saW5rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9hdXRob3JpemF0aW9uLWxpbmsvYXV0aG9yaXphdGlvbi1saW5rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2FkZHRvY2FydC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYWRkdG9jYXJ0L2FkZHRvY2FydC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYnV0dG9uL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2F1dG9jb21wbGV0ZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYmFkZ2UvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3ByaWNlLWJveC92YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9iYWRnZS9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9icmVhZGNydW1icy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvYnJlYWRjcnVtYnMvYnJlYWRjcnVtYnMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYnV0dG9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvY29tcG9uZW50LXNwYWNpbmcuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vY29udGFpbmVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Nvb2tpZS1tZXNzYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9jb29raWUtbWVzc2FnZS9jb29raWUtbWVzc2FnZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9kaXNwbGF5LWNvbnRyb2xsZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2Rpc3BsYXktY29udHJvbGxlci9kaXNwbGF5LWNvbnRyb2xsZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZHJvcGRvd24tc3dpdGNoZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3BzZXVkb2ljb24vaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZHJvcGRvd24tc3dpdGNoZXIvZHJvcGRvd24tc3dpdGNoZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9kcm9wZG93bi1zd2l0Y2hlci9kcm9wZG93bi1zd2l0Y2hlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9maWVsZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZmllbGQvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZmllbGQvbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2ZpZWxkL2ZpZWxkLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZmllbGQvbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9maWVsZC9maWVsZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZm9vdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvdmlzdWFsbHktaGlkZGVuLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Zvb3Rlci1saW5rcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXItbGlua3Muc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vaGVhZGxpbmUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9oZWFkbGluZS9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvaGVhZGxpbmUvaGVhZGxpbmUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9oZWFkbGluZS9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9oZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9oZWFkZXIvbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc2VhcmNoLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9oZWFkZXIvc2VhcmNoL3NlYXJjaC5zY3NzIiwid2VicGFjazovL1tuYW1lXS91c2VyLW5hdi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcXR5LWNvdW50ZXIvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvaGVhZGVyL3VzZXItbmF2L3VzZXItbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9xdHktY291bnRlci9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2hlYWRlci91c2VyLW5hdi91c2VyLW5hdi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbGF6eWxvYWQvbGF6eWxvYWQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbGlua3MtYmxvY2stYWRkdG8uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2xpbmtzLWJsb2NrLWFkZHRvL2xpbmtzLWJsb2NrLWFkZHRvLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvbGlua3MtYmxvY2stYWRkdG8vbGlua3MtYmxvY2stYWRkdG8uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbG9nby5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbG9nby9sb2dvLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvbG9nby9sb2dvLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21lc3NhZ2VzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvbWVzc2FnZXMvbWVzc2FnZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbWluaWNhcnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL21pbmljYXJ0L21pbmljYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvbWluaWNhcnQvbWluaWNhcnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbWluaWNhcnQtcHJvZHVjdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbWluaWNhcnQtcHJvZHVjdC9taW5pY2FydC1wcm9kdWN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvbWluaWNhcnQtcHJvZHVjdC9taW5pY2FydC1wcm9kdWN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2ZyZWUtc2hpcHBpbmctaW5kaWNhdG9yLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9mcmVlLXNoaXBwaW5nLWluZGljYXRvci9mcmVlLXNoaXBwaW5nLWluZGljYXRvci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9tb2RhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vdGVhc2VyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9uYXZpZ2F0aW9uL3RlYXNlci90ZWFzZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2FzcGVjdC1yYXRpby5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL25ld3NsZXR0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL25ld3NsZXR0ZXIvbmV3c2xldHRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9vZmZjYW52YXMtdG9nZ2xlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMtdG9nZ2xlL29mZmNhbnZhcy10b2dnbGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMtdG9nZ2xlL29mZmNhbnZhcy10b2dnbGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vb2ZmY2FudmFzLW5hdmlnYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL29mZmNhbnZhcy1uYXZpZ2F0aW9uL29mZmNhbnZhcy1uYXZpZ2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL29mZmNhbnZhcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvb2ZmY2FudmFzL29mZmNhbnZhcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL29mZmNhbnZhcy9vZmZjYW52YXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcGFnZS10aXRsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3BhZ2UtdGl0bGUvcGFnZS10aXRsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wYWdlLWJvdHRvbS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcGFnZS1ib3R0b20vcGFnZS1ib3R0b20uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcHJpY2UtYm94LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wcmljZS1ib3gvcHJpY2UtYm94LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcHJpY2UtYm94L21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcHJpY2UtYm94L3ByaWNlLWJveC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wcm9kdWN0LXRpbGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy9zdHJpbmctdG8tbnVtYmVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcHJvZHVjdC10aWxlL3Byb2R1Y3QtdGlsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wcm9kdWN0cy1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcHJvZHVjdHMtbGlzdC9wcm9kdWN0cy1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3B1c2gtbm90aWZpY2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wdXNoLW5vdGlmaWNhdGlvbi9wdXNoLW5vdGlmaWNhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9xdHktaW5jcmVtZW50LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9xdHktaW5jcmVtZW50L3F0eS1pbmNyZW1lbnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9xdHktaW5jcmVtZW50L3F0eS1pbmNyZW1lbnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc2xpZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9zbGlkZXIvc2xpZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zb2NpYWwtbWVkaWEtbGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvc29jaWFsLW1lZGlhLWxpc3Qvc29jaWFsLW1lZGlhLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc3Rhci1yYXRpbmcuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3N0YXItcmF0aW5nL3N0YXItcmF0aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc3dhdGNoZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3N3YXRjaGVzL3N3YXRjaGVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3RvcGJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdG9wYmFyL3RvcGJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3RvcGJhci90b3BiYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdHlwb2dyYXBoeS90eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdHlwb2dyYXBoeS90eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Zpc3VhbGx5LWhpZGRlbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3Zpc3VhbGx5LWhpZGRlbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zZWxlY3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb2R1Y3QtbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHJvZHVjdC1uYXZpZ2F0aW9uL3Byb2R1Y3QtbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wd2Etbm90aWZpY2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wd2Etbm90aWZpY2F0aW9uL3B3YS1ub3RpZmljYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZGFpbHlkZWFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9kYWlseWRlYWwvZGFpbHlkZWFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2dvb2dsZS1yZWNhcHRjaGEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2dvb2dsZS1yZWNhcHRjaGEvZ29vZ2xlLXJlY2FwdGNoYS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbm9uLWNyaXRpY2FsL25vbi1jcml0aWNhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wcm9kdWN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvcGFnZXMvcHJvZHVjdC9wcm9kdWN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL3BhZ2VzL3Byb2R1Y3QvcHJvZHVjdC1jb250YWN0LXNlbGxlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb25maWcvbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL3BhZ2VzL3Byb2R1Y3QvcHJvZHVjdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9idW5kbGUtYm94LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9idW5kbGUtYm94L2J1bmRsZS1ib3guc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYnV5Ym94LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9idXlib3gvYnV5Ym94LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvYnV5Ym94L2J1eWJveC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9yZWxhdGVkLXByb2R1Y3RzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9idXlib3gvcmVsYXRlZC1wcm9kdWN0cy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9mb3JtL2Zvcm0uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbG93LXN0b2NrLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9pbmRpY2F0b3JzL2xvdy1zdG9jay5zY3NzIiwid2VicGFjazovL1tuYW1lXS9mYXN0LXNoaXBwaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9pbmRpY2F0b3JzL2Zhc3Qtc2hpcHBpbmcuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2luZGljYXRvcnMvbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2ZyZWUtc2hpcHBpbmcuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2luZGljYXRvcnMvZnJlZS1zaGlwcGluZy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9yZWNlbnRseS1ib3VnaHQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2luZGljYXRvcnMvcmVjZW50bHktYm91Z2h0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2V4cGVjdGVkLWRlbGl2ZXJ5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9pbmRpY2F0b3JzL2V4cGVjdGVkLWRlbGl2ZXJ5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb2R1Y3QtZ2FsbGVyeS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHJvZHVjdC1nYWxsZXJ5L21peGlucy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdGVhc2VyL2hvb2tzL3BhZ2luYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Byb2R1Y3QtZ2FsbGVyeS9wcm9kdWN0LWdhbGxlcnkuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3RlYXNlci9taXhpbnMvcGFnaW5hdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Byb2R1Y3QtZ2FsbGVyeS9wcm9kdWN0LWdhbGxlcnkuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcHJvZHVjdC1kZXRhaWxzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wcm9kdWN0LWRldGFpbHMvcHJvZHVjdC1kZXRhaWxzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWxzL3Byb2R1Y3QtZGV0YWlscy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9uYXYuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Byb2R1Y3QtZGV0YWlscy9uYXYvbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWxzL25hdi9uYXYuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Byb2R1Y3QtZGV0YWlscy9kZXNjcmlwdGlvbi9kZXNjcmlwdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWxzL2FkZGl0aW9uYWwvYWRkaXRpb25hbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9hZGRpdGlvbmFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21haW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Byb2R1Y3QtZGV0YWlscy9tYWluL21haW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcmV2aWV3LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9yZXZpZXcvcmV2aWV3LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcmV2aWV3L3Jldmlldy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9yZXZpZXdzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9yZXZpZXdzL3Jldmlld3Muc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9yZXZpZXdzL3Jldmlld3Muc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcmV2aWV3cy1zdW1tYXJ5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9yZXZpZXdzLXN1bW1hcnkvcmV2aWV3cy1zdW1tYXJ5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3RhYnMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90YWJzL3RhYnMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3RhYmxlL3RhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3RhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy90YWJsZS9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy90YWJsZS9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3RhYmxlL3RhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Rvb2xiYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvdG9vbGJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvYW1vdW50LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9vbGJhci9zb3J0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90b29sYmFyL2hvb2tzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9vbGJhci9saW1pdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9vbGJhci9taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90b29sYmFyL3BhZ2luYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvdmlld21vZGUtc3dpdGNoZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90b29sYmFyL3ZpZXdtb2RlLXN3aXRjaGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2NhcHRjaGEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2NhcHRjaGEvY2FwdGNoYS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4vLyBCcmVha3BvaW50cyBpbXBvcnQgZnJvbSB2aWV3LnhtbCBbcHhdXG4kYnJlYWtwb2ludHNfcHg6IGRlZXAtZ2V0KCR2aWV3LXhtbCwgdmFycywgTWFnZW50b19UaGVtZSwgYnJlYWtwb2ludHMpO1xuJGJyZWFrcG9pbnRzX2VtOiAoKTtcblxuQHVzZSBcInNhc3M6bWFwXCI7XG5cbkBmdW5jdGlvbiBjYWxjdWxhdGUtYnJlYWtwb2ludHMoJGJyZWFrcG9pbnRzX2VtLCAkYnJlYWtwb2ludHNfcHgpIHtcbiAgICAkcmVzdWx0OiAkYnJlYWtwb2ludHNfZW07XG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRicmVha3BvaW50c19weCB7XG4gICAgICAgICRyZXN1bHQ6IG1hcC1tZXJnZShcbiAgICAgICAgICAgICRyZXN1bHQsXG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgdW5xdW90ZSgka2V5KTogJHZhbHVlIC8gMTYgKiAxZW0sXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cblxuJGJyZWFrcG9pbnRzOiBjYWxjdWxhdGUtYnJlYWtwb2ludHMoJGJyZWFrcG9pbnRzX2VtLCAkYnJlYWtwb2ludHNfcHgpICFkZWZhdWx0O1xuXG4vLyBwaG9uZTogMjMuMTI1ZW0gLSAzNzBweFxuLy8gcGhvbmVMZzogMzBlbSAtIDQ4MHB4LFxuLy8gdGFibGV0OiA0OGVtIC0gNzY4cHgsXG4vLyBsYXB0b3A6IDY0ZW0gLSAxMDI0cHgsXG4vLyBsYXB0b3BMZzogODBlbSAtIDEyODBweCxcbi8vIGRlc2t0b3A6IDkwZW0gLSAxNDQwcHgsXG4vLyB0djogMTIwZW0gLSAxOTIwcHgsXG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogNjIuNSU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGZvbnQtZGlzcGxheTogc3dhcDsgfVxuXG5idXR0b24sXG5pbnB1dCxcbnRleHRhcmVhLFxuc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cblxuLyogSGlkZSBIVE1MNSBVcCBhbmQgRG93biBhcnJvd3MuICovXG5pbnB1dFt0eXBlPSdudW1iZXInXSB7XG4gIGFwcGVhcmFuY2U6IHRleHRmaWVsZDsgfVxuICBpbnB1dFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW46IDA7IH1cblxuLyogSGlkZSBIVE1MNSAnWCcgaW4gc2VhcmNoIGlucHV0ICovXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIC8qIENsZWFycyB0aGUgJ1gnIGZyb20gSW50ZXJuZXQgRXhwbG9yZXIgKi9cbiAgLyogQ2xlYXJzIHRoZSAnWCcgZnJvbSBDaHJvbWUgKi8gfVxuICBpbnB1dFt0eXBlPSdzZWFyY2gnXTo6LW1zLWNsZWFyLCBpbnB1dFt0eXBlPSdzZWFyY2gnXTo6LW1zLXJldmVhbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7IH1cbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sIGlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBpbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sIGlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5ib2R5IHtcbiAgd2lkdGg6IDEwMHZ3O1xuICBtYXgtd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDZweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiAjZDVkNWQ1O1xuICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6ICMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjODc4Nzg3OyB9XG5cbi5hY3Rpb24uY3JlYXRlLnByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4uYWN0aW9uLmNyZWF0ZS5wcmltYXJ5LCAuYWN0aW9uLmNyZWF0ZS5wcmltYXJ5OnZpc2l0ZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gIC5hY3Rpb24uY3JlYXRlLnByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuYWN0aW9uLmNyZWF0ZS5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmFjdGlvbi5jcmVhdGUucHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuYWN0aW9uLmNyZWF0ZS5wcmltYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuYWN0aW9uLmNyZWF0ZS5wcmltYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuYWN0aW9uLmNyZWF0ZS5wcmltYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgLmFjdGlvbi5jcmVhdGUucHJpbWFyeVtkaXNhYmxlZF0sIC5hY3Rpb24uY3JlYXRlLnByaW1hcnk6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiIsIi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkBmdW5jdGlvbiBkZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuICAgIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgICAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICAgIH1cbiAgICBAcmV0dXJuICRtYXA7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL2ZvbnQtZmFtaWx5JztcblxuJGlucHV0X3JlbW92ZS1udW1iZXItYXBwZWFyYW5jZTogdHJ1ZSAhZGVmYXVsdDtcbiRpbnB1dF9yZW1vdmUtc2VhcmNoLWFwcGVhcmFuY2U6IHRydWUgIWRlZmF1bHQ7XG5cbmh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiA2Mi41JTtcbiAgICBiYWNrZ3JvdW5kOiAkcGFnZV9iYWNrZ3JvdW5kO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuOyAvLyBoaWRlcyBob3Jpem9udGFsIHNjcm9sbGJhciBvbiBFZGdlIGFuZCBJRVxuICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gICAgQGluY2x1ZGUgZm9udC1mYW1pbHkoJGZvbnRfZmFtaWx5LXByaW1hcnkpO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5idXR0b24sXG5pbnB1dCxcbnRleHRhcmVhLFxuc2VsZWN0IHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuLyogSGlkZSBIVE1MNSBVcCBhbmQgRG93biBhcnJvd3MuICovXG5AaWYgJGlucHV0X3JlbW92ZS1udW1iZXItYXBwZWFyYW5jZSB7XG4gICAgaW5wdXRbdHlwZT0nbnVtYmVyJ10ge1xuICAgICAgICBhcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG5cbiAgICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbiAgICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIEhpZGUgSFRNTDUgJ1gnIGluIHNlYXJjaCBpbnB1dCAqL1xuQGlmICRpbnB1dF9yZW1vdmUtc2VhcmNoLWFwcGVhcmFuY2Uge1xuICAgIGlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgICAgICAgLyogQ2xlYXJzIHRoZSAnWCcgZnJvbSBJbnRlcm5ldCBFeHBsb3JlciAqL1xuICAgICAgICAmOjotbXMtY2xlYXIsXG4gICAgICAgICY6Oi1tcy1yZXZlYWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogQ2xlYXJzIHRoZSAnWCcgZnJvbSBDaHJvbWUgKi9cbiAgICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbixcbiAgICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgICAgICY6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbkBtaXhpbiBmb250LWZhbWlseSgkZm9udHMuLi4pIHtcbiAgICBAaWYgJGZvbnRzIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250cywgJGZvbnQtZmFtaWx5LWZhbGxiYWNrO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWZhbGxiYWNrO1xuICAgIH1cbn1cbiIsIi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cblxuQGZ1bmN0aW9uIGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlLCAkc2lkZSkge1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdmFyaWFibGUpO1xuXG4gICAgQGlmICgkbGVuZ3RoID09IDEpIHtcbiAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAxKTtcbiAgICB9IEBlbHNlIGlmICgkbGVuZ3RoID09IDIpIHtcbiAgICAgICAgQGlmICgkc2lkZSA9PSAndXAnKSBPUiAoJHNpZGUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDEpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAnbGVmdCcpIE9SICgkc2lkZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDIpO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAoJGxlbmd0aCA9PSAzKSB7XG4gICAgICAgIEBpZiAoJHNpZGUgPT0gJ2xlZnQnKSBPUiAoJHNpZGUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAyKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ3VwJykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAxKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDMpO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAoJGxlbmd0aCA9PSA0KSB7XG4gICAgICAgIEBpZiAoJHNpZGUgPT0gJ3VwJykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAxKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAyKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDMpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgNCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGJ1dHRvbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpIHtcbn1cblxuQG1peGluIGJ1dHRvbl9zcGFuLWhvb2soJHR5cGUsICRpY29uX3Bvcykge1xufVxuXG5AbWl4aW4gYnV0dG9uX2ljb24taG9vaygkdHlwZSwgJGljb25fcG9zKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb25maWcvYmFzZVwiO1xuQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2J1dHRvbi9taXhpblwiO1xuXG5ib2R5IHtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgbWF4LXdpZHRoOiAxMDB2dyAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIGJhY2tncm91bmQ6ICRrbWFfY29sb3JfZ3JleS0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGttYV9jb2xvcl9ncmV5LTUwMDtcbiAgICB9XG59XG5cbi5hY3Rpb24uY3JlYXRlLnByaW1hcnkge1xuICAgIEBpbmNsdWRlIGJ1dHRvbigkdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUsICRpY29uX3BvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zKTtcbn1cbiIsIkBpbXBvcnQgJ35DcmVhdGl2ZXNob3AvY29tcG9uZW50cy9idXR0b24vbWl4aW4uc2Nzcyc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuLy8gRGVmaW5lIGRlZmF1bHQgcG9zaXRpb24gZm9yIGljb25zIGluIGJ1dHRvbi4gWW91IGNhbiBvdmVycmlkZSBpdCBpbmRpdmlkdWFsbHkgcGVyIGJ1dHRvbiBpbiBlYWNoIGNvbXBvbmVudFxuLy8gVmFyaWFudHM6IGxlZnQgfCByaWdodCB8IG5vLWljb24gfCBvbmx5LWljb25cbiRidXR0b25fZGVmYXVsdC1pY29uLXBvczogJ25vbmUnO1xuXG4vLyBHZW5lcmFsIHN0eWxlcyBmb3IgYnV0dG9uc1xuJGJ1dHRvbl9mb250LXNpemU6IDEuNnJlbTtcbiRidXR0b25fZm9udC13ZWlnaHQ6IDcwMDtcbiRidXR0b25fYm9yZGVyLXNpemU6IDFweDtcbiRidXR0b25fcGFkZGluZzogMXJlbSAyLjNyZW07XG4kYnV0dG9uX2xpbmUtaGVpZ2h0OiAyLjZyZW07XG4kYnV0dG9uX2JvcmRlci1yYWRpdXM6IDI0cHg7XG5cbi8vIFN0eWxlcyBmb3IgYHByaW1hcnlgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX3ByaW1hcnktYmFja2dyb3VuZDogJGttYV9jb2xvcl9zZWNvbmRhcnktNTAwO1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kOiAka21hX2NvbG9yX3NlY29uZGFyeS04MDA7XG4kYnV0dG9uX3ByaW1hcnktLWRpc2FibGVkLWJhY2tncm91bmQ6ICRrbWFfY29sb3JfZ3JleS0yMDA7XG5cbiRidXR0b25fcHJpbWFyeS1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgJGttYV9jb2xvcl9zZWNvbmRhcnktNTAwO1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgJGttYV9jb2xvcl9zZWNvbmRhcnktODAwO1xuJGJ1dHRvbl9wcmltYXJ5LS1kaXNhYmxlZC1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgJGttYV9jb2xvcl9ncmV5LTIwMDtcblxuJGJ1dHRvbl9wcmltYXJ5LWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1jb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiRidXR0b25fcHJpbWFyeS0tZGlzYWJsZWQtY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS01MDA7XG5cbi8vIFN0eWxlcyBmb3IgYHNlY29uZGFyeWAgYnV0dG9uIHR5cGVcbiRidXR0b25fc2Vjb25kYXJ5LWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCAka21hX2NvbG9yX3NlY29uZGFyeS01MDA7XG4kYnV0dG9uX3NlY29uZGFyeS0tZGlzYWJsZWQtYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkICRrbWFfY29sb3JfZ3JleS0yMDA7XG5cbiRidXR0b25fc2Vjb25kYXJ5LWJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZTtcbiRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGU7XG4kYnV0dG9uX3NlY29uZGFyeS0tZGlzYWJsZWQtYmFja2dyb3VuZDogJGttYV9jb2xvcl9ncmV5LTEwMDtcblxuJGJ1dHRvbl9zZWNvbmRhcnktY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kYnV0dG9uX3NlY29uZGFyeS0taG92ZXItY29sb3I6ICRrbWFfY29sb3Jfc2Vjb25kYXJ5LTUwMDtcbiRidXR0b25fc2Vjb25kYXJ5LS1kaXNhYmxlZC1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTUwMDtcblxuXG5cbkBtaXhpbiBidXR0b25fc3BhbihcbiAgICAkdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUsXG4gICAgJGljb25fcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3Ncbikge1xuICAgIGZvbnQtc2l6ZTogJGJ1dHRvbl9mb250LXNpemU7XG59XG5cbkBtaXhpbiBidXR0b24oXG4gICAgJHR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlLFxuICAgICRpY29uX3BvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zXG4pIHtcbiAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJixcbiAgICAmOnZpc2l0ZWQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJGJ1dHRvbl9mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkYnV0dG9uX2ZvbnQtd2VpZ2h0O1xuICAgICAgICB0ZXh0LWFsaWduOiAkYnV0dG9uX3RleHQtYWxpZ247XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRidXR0b25fbGluZS1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRidXR0b25fdGV4dC10cmFuc2Zvcm07XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgQGlmICgkdHlwZSAhPSAnbGluaycpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRidXR0b25fcGFkZGluZztcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRidXR0b25fYW5pbWF0aW9uLXRpbWUsXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yICRidXR0b25fYW5pbWF0aW9uLXRpbWUsIGZpbGwgJGJ1dHRvbl9hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgICAgICBjb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYnV0dG9uX2JvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ3ByaW1hcnknKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fcHJpbWFyeS1ib3JkZXI7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9wcmltYXJ5LWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09ICdzZWNvbmRhcnknKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fc2Vjb25kYXJ5LWJvcmRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICAgICAgQGlmICgkdHlwZSAhPSAnbGluaycpIHtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0gJ3ByaW1hcnknKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAnc2Vjb25kYXJ5Jykge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGN1cnNvcjogYXV0bztcblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAncHJpbWFyeScpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRidXR0b25fcHJpbWFyeS0tZGlzYWJsZWQtYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fcHJpbWFyeS0tZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAnc2Vjb25kYXJ5Jykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zZWNvbmRhcnktLWRpc2FibGVkLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvb2soJHR5cGUsICRpY29uX3Bvcyk7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5AbWVkaWEgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtYXgtd2lkdGg6IDc5Ljk5ZW0pIHtcbiAgLmNzLWhpZGUtbGFwdG9wIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi8gfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtaGlkZS10YWJsZXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqLyB9IH1cblxuLmNzLW5vLWRpc3BsYXkge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovIH1cblxuLmNzLWFzcGVjdC1yYXRpbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy10b3A6IDU2LjI1JTsgfVxuICAuY3MtYXNwZWN0LXJhdGlvX19jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogMDsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbi5jcy1jb250YWluZXIge1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogMTIwcmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1jb250YWluZXJfX2lubmVyOmJlZm9yZSwgLmNzLWNvbnRhaW5lcl9faW5uZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiA0MCU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAzMiU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAzMCU7IH0gfVxuICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgd2lkdGg6IDU2JTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNjUlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNjclOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uLS1zcGFjZS10b3Age1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTsgfSB9XG4gIC5jcy1jb250YWluZXItLWNvbnRyYXN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXItLWNvbnRyYXN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2JhY2tncm91bmQucG5nXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tc3BhY2lvdXMge1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXItLXNwYWNpb3VzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtOyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tbm9zY3JvbGwge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmNzLWNvbnRhaW5lci0tb250b3Age1xuICAgIHotaW5kZXg6IDMwMTsgfVxuICAuY3MtY29udGFpbmVyLS12aWV3cG9ydC13aWR0aCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuY3MtY29udGFpbmVyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiAxMjByZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLWNvbnRhaW5lcl9faW5uZXI6YmVmb3JlLCAuY3MtY29udGFpbmVyX19pbm5lcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDQwJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDMyJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDI1JTsgfSB9XG4gIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICB3aWR0aDogNTYlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgICAgIHdpZHRoOiA2NSU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgICAgIHdpZHRoOiA3MiU7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4tLXNwYWNlLXRvcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtOyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tY29udHJhc3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lci0tY29udHJhc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvYmFja2dyb3VuZC5wbmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH0gfVxuICAuY3MtY29udGFpbmVyLS1zcGFjaW91cyB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lci0tc3BhY2lvdXMge1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07IH0gfVxuICAuY3MtY29udGFpbmVyLS1ub3Njcm9sbCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuY3MtY29udGFpbmVyLS1vbnRvcCB7XG4gICAgei1pbmRleDogMzAxOyB9XG4gIC5jcy1jb250YWluZXItLXZpZXdwb3J0LXdpZHRoIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuYm9keSxcbmh0bWwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwdnc7IH1cblxuLm5vLXNjcm9sbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoOyB9XG5cbi5uby1zY3JvbGwtY2hpbGQge1xuICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuXG4jbWFpbmNvbnRlbnQge1xuICBmbGV4OiAxIDAgYXV0bzsgfVxuXG4ucGFnZS13cmFwcGVyIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYWdlLXdyYXBwZXIge1xuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OyB9IH1cblxuLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDRyZW0gMCAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwcmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgICAgIHBhZGRpbmc6IDRyZW0gMCAwOyB9IH1cblxuLmNtcy1ob21lIC5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY21zLWhvbWUgLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuXG4ucGFnZS1sYXlvdXQtMWNvbHVtbiAucHJvZHVjdC1pbmZvLXdyYXBwZXIge1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYWdlLWxheW91dC0xY29sdW1uIC5wcm9kdWN0LWluZm8td3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiA0MCU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5wYWdlLWxheW91dC0xY29sdW1uIC5wcm9kdWN0LWluZm8td3JhcHBlciB7XG4gICAgICB3aWR0aDogMzAlOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnBhZ2UtbGF5b3V0LTJjb2x1bW5zLWxlZnQgLnNpZGViYXItbWFpbixcbiAgLnBhZ2UtbGF5b3V0LTJjb2x1bW5zLWxlZnQgLnNpZGViYXItYWRkaXRpb25hbCB7XG4gICAgd2lkdGg6IDIyLjUlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2YwZjBmMDsgfSB9XG5cbmEsIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjMzI0ZGNmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuYTpob3ZlciwgYTpmb2N1cywgYTphY3RpdmUsIGE6dmlzaXRlZDpob3ZlciwgYTp2aXNpdGVkOmZvY3VzIHtcbiAgY29sb3I6ICMxNDJiOWU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uZ2lmdC1vcHRpb25zLWNhcnQtaXRlbSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnBheXBhbC1leHByZXNzLXJldmlldyAucGFnZS10aXRsZS13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwIDEuNXJlbTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5wYXlwYWwtcmV2aWV3LnZpZXcgLmNzLWNhcnQtaXRlbV9fcHJpY2Uge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyB9XG4gIC5wYXlwYWwtcmV2aWV3LnZpZXcgLmNzLWNhcnQtaXRlbV9fc3VidG90YWwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wYXlwYWwtcmV2aWV3LnZpZXcge1xuICAgIHBhZGRpbmc6IDAgMS41cmVtOyB9IH1cblxuLnBheXBhbC1leHByZXNzLWluLWNvbnRleHQtbWluaS1jYXJ0LWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDFyZW07IH1cblxuLnBheXBhbC1yZXZpZXctZGlzY291bnQge1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi5hbWF6b24tYnV0dG9uLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgei1pbmRleDogMzAzOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmFtYXpvbi1idXR0b24tY29udGFpbmVyIHtcbiAgICAgIG1heC13aWR0aDogMzJyZW07IH0gfVxuICAuYW1hem9uLWJ1dHRvbi1jb250YWluZXIgaW1nIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsOm50aC1jaGlsZCgyKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1pbi13aWR0aDogM3JlbTtcbiAgICBsZWZ0OiBjYWxjKDEwMCUgKyAwLjZyZW0pO1xuICAgIHRvcDogMS45cmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjExNWVtKSB7XG4gICAgICAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGw6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgbGVmdDogY2FsYygxMDAlICsgMC44cmVtKTsgfSB9XG4gIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICB3aWR0aDogMjVyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTcpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBwYWRkaW5nOiAwLjhyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQge1xuICAgICAgICB3aWR0aDogMjhyZW07IH0gfVxuICAgIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSB7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM4ODg7IH1cbiAgICAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudCxcbiAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIGJvdHRvbTogNDJweDtcbiAgICAgIGxlZnQ6IC0yMTBweDtcbiAgICAgIHJpZ2h0OiBhdXRvOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudCxcbiAgICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XG4gICAgICAgICAgbGVmdDogLTI1MHB4OyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50LFxuICAgICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICAgICAgICBsZWZ0OiAtMjMycHg7IH0gfVxuICAgICAgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLCAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDphZnRlcixcbiAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLFxuICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDphZnRlciB7XG4gICAgICAgIHRvcDogY2FsYygxMDAlICsgMnJlbSk7XG4gICAgICAgIGxlZnQ6IDIxMHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTsgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAgIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSwgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIsXG4gICAgICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsXG4gICAgICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDphZnRlciB7XG4gICAgICAgICAgICBib3R0b206IC0xMHB4O1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMjUwcHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOyB9IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyLFxuICAgICAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLFxuICAgICAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIge1xuICAgICAgICAgICAgbGVmdDogMjMycHg7IH0gfVxuICAgICAgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLFxuICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUge1xuICAgICAgICBsZWZ0OiAyMTBweDsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAgIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSxcbiAgICAgICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsXG4gICAgICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUge1xuICAgICAgICAgICAgbGVmdDogMjUxcHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOyB9IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsXG4gICAgICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUge1xuICAgICAgICAgICAgbGVmdDogMjMzcHg7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIsXG4gICAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSwgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDphZnRlciB7XG4gICAgICAgIHRvcDogY2FsYygxMDAlICsgMnJlbSk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH0gfVxuXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG5ib2R5Ll9oYXMtbW9kYWwge1xuICBoZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICBib2R5LmNhdGFsb2ctcHJvZHVjdC12aWV3IHtcbiAgICBvdmVyZmxvdzogdW5zZXQgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gIGJvZHkuY2F0YWxvZy1wcm9kdWN0LXZpZXcuX2hhcy1tb2RhbCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDsgfSB9XG5cbmJvZHkuY21zLWttYS1ob21lLXBhZ2UgI21haW5jb250ZW50LFxuYm9keS5jbXMtbm8tcm91dGUgI21haW5jb250ZW50LFxuYm9keS5icmFuZHMtaW5kZXgtYWxsICNtYWluY29udGVudCB7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDg1cHggKyAyMHB4KTsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICBib2R5LmNtcy1rbWEtaG9tZS1wYWdlICNtYWluY29udGVudCAuY3MtY29udGFpbmVyLS1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3BhZ2luYXRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDRyZW07IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICBib2R5LmNtcy1rbWEtaG9tZS1wYWdlICNtYWluY29udGVudCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH0gfVxuXG5ib2R5LmNtcy1uby1yb3V0ZSAuY3MtY29udGFpbmVyLS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbmJvZHkuY21zLW5vLXJvdXRlICNtYWluY29udGVudCAuY3MtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBib2R5LmNtcy1uby1yb3V0ZSAjbWFpbmNvbnRlbnQgLmNzLWNvbnRhaW5lcjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDY1JTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogNDYlOyB9XG4gIGJvZHkuY21zLW5vLXJvdXRlICNtYWluY29udGVudCAuY3MtY29udGFpbmVyIGgzICsgcCB7XG4gICAgbWF4LXdpZHRoOiAzODBweDtcbiAgICBtYXJnaW46IGF1dG87IH1cbiAgYm9keS5jbXMtbm8tcm91dGUgI21haW5jb250ZW50IC5jcy1jb250YWluZXIgLmFjdGlvbi5jcmVhdGUucHJpbWFyeSB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBwYWRkaW5nLWlubGluZTogNHJlbTtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG5cbmJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLXJhdGUgI21haW5jb250ZW50LFxuYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tZm9ybSAjbWFpbmNvbnRlbnQge1xuICBwYWRkaW5nLWJsb2NrOiA1cmVtIDE0cmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tcmF0ZSAjbWFpbmNvbnRlbnQsXG4gICAgYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tZm9ybSAjbWFpbmNvbnRlbnQge1xuICAgICAgcGFkZGluZy1ibG9jazogNXJlbTsgfSB9XG4gIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLXJhdGUgI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLWZvcm0gI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1yYXRlICNtYWluY29udGVudCAuYWN0aW9uLnN1Ym1pdC5wcmltYXJ5LCBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1yYXRlICNtYWluY29udGVudCAuYWN0aW9uLnN1Ym1pdC5wcmltYXJ5OnZpc2l0ZWQsXG4gIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLWZvcm0gI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnksXG4gIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLWZvcm0gI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6dmlzaXRlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLXJhdGUgI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1yYXRlICNtYWluY29udGVudCAuYWN0aW9uLnN1Ym1pdC5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tcmF0ZSAjbWFpbmNvbnRlbnQgLmFjdGlvbi5zdWJtaXQucHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1yYXRlICNtYWluY29udGVudCAuYWN0aW9uLnN1Ym1pdC5wcmltYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1yYXRlICNtYWluY29udGVudCAuYWN0aW9uLnN1Ym1pdC5wcmltYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1yYXRlICNtYWluY29udGVudCAuYWN0aW9uLnN1Ym1pdC5wcmltYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1mb3JtICNtYWluY29udGVudCAuYWN0aW9uLnN1Ym1pdC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1mb3JtICNtYWluY29udGVudCAuYWN0aW9uLnN1Ym1pdC5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1mb3JtICNtYWluY29udGVudCAuYWN0aW9uLnN1Ym1pdC5wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tZm9ybSAjbWFpbmNvbnRlbnQgLmFjdGlvbi5zdWJtaXQucHJpbWFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1mb3JtICNtYWluY29udGVudCAuYWN0aW9uLnN1Ym1pdC5wcmltYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLWZvcm0gI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLXJhdGUgI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnlbZGlzYWJsZWRdLCBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1yYXRlICNtYWluY29udGVudCAuYWN0aW9uLnN1Ym1pdC5wcmltYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLFxuICAgIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLWZvcm0gI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnlbZGlzYWJsZWRdLFxuICAgIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLWZvcm0gI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuXG4uY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctbmF2LFxuLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LW5hdiA+IGRpdiwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LXBhcmFtZXRlcnMsXG4uY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctcGFyYW1ldGVycyA+IGRpdiwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LTNEdmlldyxcbi5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy0zRHZpZXcgPiBkaXYsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1icmFuZC1kZXRhaWxzLFxuLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWJyYW5kLWRldGFpbHMgPiBkaXYsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3QtaW5mby1jcm9zc3NlbGwsXG4uY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LWluZm8tY3Jvc3NzZWxsID4gZGl2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuXG4uY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1yZWxhdGVkLFxuLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcmVsYXRlZCA+IGRpdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3ZjcgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1yZWxhdGVkIC5ibG9jay5wcm9kdWN0cy1yZWxhdGVkIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3QtaW5mby1jcm9zc3NlbGwgPiBkaXYsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3QtaW5mby11cHNlbGwgPiBkaXYge1xuICAgIHBhZGRpbmctaW5saW5lOiAwOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tY3Jvc3NzZWxsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQge1xuICAgIHBhZGRpbmctaW5saW5lOiAwOyB9XG4gICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tY3Jvc3NzZWxsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgLmJsb2NrLnByb2R1Y3RzLWNyb3Nzc2VsbCB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1icmFuZC1kZXRhaWxzID4gZGl2IHtcbiAgICBwYWRkaW5nLWlubGluZTogMDsgfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctYnJhbmQtZGV0YWlscyAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwIDEuNXJlbSAhaW1wb3J0YW50OyB9XG4gICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWJyYW5kLWRldGFpbHMgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCAucGRwLWRldGFpbHMtY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuYm9keS5jbXMta29udGFrdCAjbWFpbmNvbnRlbnQge1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7IH1cblxuYm9keS5jbXMta29udGFrdCAuZmllbGQgLmlucHV0LXRleHQucmVxdWlyZWQtZW50cnkge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmJvZHkuY21zLWtvbnRha3QgLmZpZWxkLXJlY2FwdGNoYSB7XG4gIG1hcmdpbi10b3A6IDFyZW07IH1cblxuYm9keS5jbXMta29udGFrdCAuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXIua21hX2NvbnRhY3RfX2luZm8gLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIHBhZGRpbmctdG9wOiA4MHB4OyB9XG5cbmJvZHkuY21zLWtvbnRha3QgLmttYV9jb250YWN0X2Fib3V0X3VzX19pbmZvIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlciB7XG4gIGhlaWdodDogMTA1JTsgfVxuXG4jcGhvbmUtY29udGFjdC1yZXF1ZXN0LWZvcm0gLmZpZWxkIC5pbnB1dC10ZXh0LnJlcXVpcmVkLWVudHJ5IHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4jcGhvbmUtY29udGFjdC1yZXF1ZXN0LWZvcm0gLmZpZWxkLXJlY2FwdGNoYSB7XG4gIG1hcmdpbi10b3A6IDJyZW07IH1cblxuLmNzLWNhdGVnb3J5LXBpbGxzX19saW5rIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50OyB9XG4gIC5jcy1jYXRlZ29yeS1waWxsc19fbGluazpob3ZlcixcbiAgLmNzLWNhdGVnb3J5LXBpbGxzX19saW5rOmhvdmVyIC5jcy1jYXRlZ29yeS1waWxsc19fcXR5IHtcbiAgICBjb2xvcjogI2MxMjcyZiAhaW1wb3J0YW50OyB9XG4gIC5jcy1jYXRlZ29yeS1waWxsc19fbGluayAuY3MtY2F0ZWdvcnktcGlsbHNfX3F0eSB7XG4gICAgbWFyZ2luLWlubGluZTogMDsgfVxuXG4uY3MtY2F0ZWdvcnktcGlsbHNfX2J1dHRvbiB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDVkNWQ1OyB9XG5cbi5jcy1jYXRlZ29yeS1waWxscy1idXR0b24tY29udGFpbmVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XG4gIGhlaWdodDogMXB4O1xuICB0b3A6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMS41cmVtO1xuICByaWdodDogMS41cmVtO1xuICBiYWNrZ3JvdW5kOiAjZDVkNWQ1OyB9XG5cbi5jcy1jYXRlZ29yeS1waWxscy1idXR0b24td3JhcHBlciB7XG4gIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uY3MtY2F0ZWdvcnktcGlsbHMtc2Nyb2xsLWJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAubW9kYWwtcG9wdXAge1xuICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDQ0cHgpO1xuICAgIHJpZ2h0OiAwOyB9IH1cblxuLmNzLWNvbnRhaW5lci0tcHJvZHVjdHMtY2Fyb3VzZWwge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmJhZGdlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAwLjVyZW07IH1cblxuLmJhZGdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgbWF4LXdpZHRoOiAxMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgcGFkZGluZzogMnB4IDAuNXJlbTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmJhZGdlIHN2ZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cbiAgLmJhZGdlLWJlc3RzZWxsZXIge1xuICAgIGJvcmRlci1jb2xvcjogIzAwMzY2NjtcbiAgICBjb2xvcjogIzAwMzY2NjsgfVxuICAuYmFkZ2UtbmV3IHtcbiAgICBib3JkZXItY29sb3I6ICMzMTg4NjI7XG4gICAgY29sb3I6ICMzMTg4NjI7IH1cbiAgLmJhZGdlLXByb21vIHtcbiAgICBib3JkZXItY29sb3I6ICNmZjcyMDA7XG4gICAgY29sb3I6ICNmZjcyMDA7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvUG9wcGlucy1MaWdodC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvUG9wcGlucy1SZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9Qb3BwaW5zLVNlbWlCb2xkLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgIGh0dHBzOi8vZWR1YXJkb2JvdWNhcy5naXRodWIuaW8vaW5jbHVkZS1tZWRpYVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBLaXR0eSBHaXJhdWRlbCAoQGtpdHR5Z2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuICAgIH1cblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGlnaXRzOiAxO1xuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4vLyBUT0RPOiBSZW1vdmUgYWZ0ZXIgZ2V0dGluZyByaWQgb2YgdGhlc2UgZnJvbSB0ZW1wbGF0ZXNcbi5jcy1oaWRlLWxhcHRvcCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJywgJzxsYXB0b3BMZycpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqL1xuICAgIH1cbn1cblxuLmNzLWhpZGUtdGFibGV0IHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqL1xuICAgIH1cbn1cblxuLmNzLW5vLWRpc3BsYXkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbn1cblxuLmNzLWFzcGVjdC1yYXRpbyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy10b3A6IDU2LjI1JTtcblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG5AbWl4aW4gY29udGFpbmVyKCRob3Jpem9udGFsLXBhZGRpbmc6ICRwYWdlX2VkZ2UtZ3V0dGVyKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAkaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRob3Jpem9udGFsLXBhZGRpbmc7XG59XG5cbi8qKlxuICogTmVnYXRlcyBwYXJlbnQgY29udGFpbmVyJ3MgcGFkZGluZyBhbmQgc2V0cyBpdCBvd24uXG4gKiBTb21ldGhpbWVzIHRoaXMgaGFzIHRvIGJlIGRvbmUgdG8gbWFrZSBiYWNrZ3JvdW5kIGV2ZW4gdG8gb3RoZXIgY29udGFpbmVycycgY29udGVudC5cbiAqL1xuQG1peGluIGNvbnRhaW5lci1uZWdhdGVkKCRob3Jpem9udGFsLXBhZGRpbmc6ICRwYWdlX2VkZ2UtZ3V0dGVyKSB7XG4gICAgQGluY2x1ZGUgY29udGFpbmVyKCRob3Jpem9udGFsLXBhZGRpbmcpO1xuICAgIG1hcmdpbi1sZWZ0OiAtJGhvcml6b250YWwtcGFkZGluZztcbiAgICBtYXJnaW4tcmlnaHQ6IC0kaG9yaXpvbnRhbC1wYWRkaW5nO1xufVxuXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG5AbWl4aW4gY29udGFpbmVyLXdyYXBwZXIoJG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoKSB7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuIiwiQGltcG9ydCAnfkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL2NvbnRhaW5lci9taXhpbi5zY3NzJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG5AbWl4aW4gY29udGFpbmVyKCRob3Jpem9udGFsLXBhZGRpbmc6ICRwYWdlX2VkZ2UtZ3V0dGVyKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAkaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRob3Jpem9udGFsLXBhZGRpbmc7XG59XG5cbi8qKlxuICogTmVnYXRlcyBwYXJlbnQgY29udGFpbmVyJ3MgcGFkZGluZyBhbmQgc2V0cyBpdCBvd24uXG4gKiBTb21ldGhpbWVzIHRoaXMgaGFzIHRvIGJlIGRvbmUgdG8gbWFrZSBiYWNrZ3JvdW5kIGV2ZW4gdG8gb3RoZXIgY29udGFpbmVycycgY29udGVudC5cbiAqL1xuQG1peGluIGNvbnRhaW5lci1uZWdhdGVkKCRob3Jpem9udGFsLXBhZGRpbmc6ICRwYWdlX2VkZ2UtZ3V0dGVyKSB7XG4gICAgQGluY2x1ZGUgY29udGFpbmVyKCRob3Jpem9udGFsLXBhZGRpbmcpO1xuICAgIG1hcmdpbi1sZWZ0OiAtJGhvcml6b250YWwtcGFkZGluZztcbiAgICBtYXJnaW4tcmlnaHQ6IC0kaG9yaXpvbnRhbC1wYWRkaW5nO1xufVxuXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG5AbWl4aW4gY29udGFpbmVyLXdyYXBwZXIoJG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoKSB7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jb250YWluZXIvbWl4aW4nO1xuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigpO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAmX19pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lci13cmFwcGVyKCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogMzIlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tYWluLWNvbHVtbiB7XG4gICAgICAgIHdpZHRoOiA1NiU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogNjUlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiA2NyU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlLXRvcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jb250cmFzdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9nYWxsZXJ5O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2JhY2tncm91bmQucG5nJyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXNwYWNpb3VzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1ub3Njcm9sbCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJi0tb250b3Age1xuICAgICAgICB6LWluZGV4OiAzMDE7XG4gICAgfVxuXG4gICAgJi0tdmlld3BvcnQtd2lkdGgge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnfkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL2NvbnRhaW5lci9jb250YWluZXIuc2Nzcyc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX2JhY2tncm91bmQtMTAwO1xuXG4gICAgQGluY2x1ZGUgY29udGFpbmVyKCk7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICZfX2lubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLXdyYXBwZXIoKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMiU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDU2JTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiA2NSU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDcyJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2UtdG9wIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNvbnRyYXN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2dhbGxlcnk7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvYmFja2dyb3VuZC5wbmcnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc3BhY2lvdXMge1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLW5vc2Nyb2xsIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAmLS1vbnRvcCB7XG4gICAgICAgIHotaW5kZXg6IDMwMTtcbiAgICB9XG5cbiAgICAmLS12aWV3cG9ydC13aWR0aCB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGhlYWRsaW5lX2hvb2soJGxldmVsKSB7XG59XG5cbkBtaXhpbiBsaW5rX2hvb2soKSB7XG59XG5cbkBtaXhpbiBsaXN0X2hvb2soKSB7XG59XG5cbkBtaXhpbiBsaXN0LWl0ZW1faG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbXBvbmVudHMvY29udGFpbmVyL2NvbnRhaW5lcic7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRuczogJ2NzLSc7XG5cbmJvZHksXG5odG1sIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDB2dztcbn1cblxuLm5vLXNjcm9sbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDEwMHZoO1xufVxuXG4ubm8tc2Nyb2xsLWNoaWxkIHtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDsgLy8gT3ZlcmZsb3cgaGFzIGJlZW4gbW92ZWQgdG8gY2hpbGQgZWxlbWVudCBpbiBvcmRlciB0byBtYWludGFpbiB2aXNpYmlsaXR5IG9mIGl0ZW1zIGluIHRoZSBiYWNrZ3JvdW5kXG59XG5cbiNtYWluY29udGVudCB7XG4gICAgZmxleDogMSAwIGF1dG87XG59XG5cbi5wYWdlLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBwYWRkaW5nOiAkbWFpbi1jb2x1bW5fcGFkZGluZy1tb2JpbGU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAkbWFpbi1jb2x1bW5fcGFkZGluZztcbiAgICB9XG59XG5cbi5jbXMtaG9tZSAuY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgIHBhZGRpbmc6ICRob21lcGFnZS1tYWluLWNvbHVtbl9wYWRkaW5nLW1vYmlsZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgcGFkZGluZzogJGhvbWVwYWdlLW1haW4tY29sdW1uX3BhZGRpbmc7XG4gICAgfVxufVxuXG4ucGFnZS1sYXlvdXQtMWNvbHVtbiB7XG4gICAgLnByb2R1Y3QtaW5mby13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgIC5wYWdlLWxheW91dC0yY29sdW1ucy1sZWZ0IHtcbiAgICAgICAgLnNpZGViYXItbWFpbixcbiAgICAgICAgLnNpZGViYXItYWRkaXRpb25hbCB7XG4gICAgICAgICAgICB3aWR0aDogMjIuNSU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yX2dhbGxlcnk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmEge1xuICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICRjb2xvcjogJGxpbmstY29sb3JfYmFzZSxcbiAgICAgICAgJGNvbG9yLWhvdmVyOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyXG4gICAgKTtcbn1cblxuLmdpZnQtb3B0aW9ucy1jYXJ0LWl0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vUGF5cGFsIG1vZHVsZVxuLnBheXBhbC1leHByZXNzLXJldmlldyAucGFnZS10aXRsZS13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICAgIH1cbn1cblxuLnBheXBhbC1yZXZpZXcudmlldyB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgIC4jeyRuc31jYXJ0LWl0ZW1fX3ByaWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLiN7JG5zfWNhcnQtaXRlbV9fc3VidG90YWwge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICB9XG59XG5cbi5wYXlwYWwtZXhwcmVzcy1pbi1jb250ZXh0LW1pbmktY2FydC1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4vL0FtYXpvbiBQYXkgbG9naW4gYnV0dG9uXG5cbi8vVGhlIGhpZ2hlc3Qgb2YgYWxsIGFtYXpvbiBwYXkgY29udGFpbmVyc1xuLy9TaG91bGQgbm90IGJlIHRvbyBsb25nXG4vL2luIG1pbmljYXJ0LCBzYWxlIGJsb2NrLCBjaGVja291dCBzdW1tYXJ5IGl0IHNob3VsZCBiZSBjZW50ZXJcbi5hbWF6b24tYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAyNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIHotaW5kZXg6IDMwMztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgbWF4LXdpZHRoOiAzMnJlbTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICZfX2NlbGwge1xuICAgICAgICAvL0luZm8gc2lnbiBlbGVtZW50IC0gaXMgcGxhY2VkIGFic29sdXRlbHkgdG8gbm90IHRha2UgcGxhY2Ugd2hlbiBidXR0b24gaXMgY2VudGVyZWRcbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAzcmVtO1xuICAgICAgICAgICAgbGVmdDogY2FsYygxMDAlICsgMC42cmVtKTtcbiAgICAgICAgICAgIHRvcDogMS45cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lJykge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoMTAwJSArIDAuOHJlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvL1Rvb2x0aXAgc3R5bGUgYW5kIHBvc2l0aW9uXG4gICAgICAgIC8vQXJyb3cgcG9zaXRpb25cbiAgICAgICAgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XG4gICAgICAgICAgICB3aWR0aDogMjVyZW07XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAycHggcmdiYSgwLCAwLCAwLCAwLjE3KTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMC44cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyOHJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGNvbG9yX2dyYXk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vTW92ZSB0b29sdGlwIGZyb20gcmlnaHQgdG8gdG9wIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3BhY2UgaW4gb3VyIHNob3BzIG9uIHRoZSByaWdodFxuICAgICAgICAgICAgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgJixcbiAgICAgICAgICAgIC4jeyRuc31jYXJ0LXN1bW1hcnkgJiB7XG4gICAgICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogNDJweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAtMjEwcHg7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IC0yNTBweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IC0yMzJweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBjYWxjKDEwMCUgKyAycmVtKTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMjEwcHg7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyNTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyMzJweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMjEwcHg7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDI1MXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDIzM3B4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIENhcnQgc3VtbWFyeSB0b29sdGlwIG5lZWRzIHNtYWxsIGFkanVzdG1lbnRzXG4gICAgICAgICAgICAuI3skbnN9Y2FydC1zdW1tYXJ5ICYge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDJyZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35DcmVhdGl2ZXNob3AvY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluLnNjc3MnO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbiR0eXBvZ3JhcGh5X2hlYWRsaW5lLWZvbnQtZmFtaWx5OiAkZm9udF9mYW1pbHktcHJpbWFyeTtcbiR0eXBvZ3JhcGh5X2hlYWRsaW5lLWNvbG9yOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuXG4kdHlwb2dyYXBoeV9saW5rLWNvbG9yOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuJHR5cG9ncmFwaHlfbGluay0taG92ZXItY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kdHlwb2dyYXBoeV9saW5rLXRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiR0eXBvZ3JhcGh5X2xpbmstLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogJHR5cG9ncmFwaHlfbGluay10ZXh0LWRlY29yYXRpb24gIWRlZmF1bHQ7XG5cblxuXG5AbWl4aW4gaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTIpIHtcbiAgICBAaW5jbHVkZSBmb250LWZhbWlseSgkdHlwb2dyYXBoeV9oZWFkbGluZS1mb250LWZhbWlseSk7XG5cbiAgICBmb250LXNpemU6ICRsZXZlbDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAkdHlwb2dyYXBoeV9oZWFkbGluZS1jb2xvcjtcbiAgICBmb250LXdlaWdodDogJHR5cG9ncmFwaHlfaGVhZGxpbmUtZm9udC13ZWlnaHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbWFyZ2luOiAkdHlwb2dyYXBoeV9oZWFkbGluZS1tYXJnaW5zO1xuXG4gICAgQGluY2x1ZGUgaGVhZGxpbmVfaG9vaygkbGV2ZWwpO1xufVxuXG5AbWl4aW4gbGluayhcbiAgICAkY29sb3I6ICR0eXBvZ3JhcGh5X2xpbmstY29sb3IsXG4gICAgJGNvbG9yLWhvdmVyOiAkdHlwb2dyYXBoeV9saW5rLS1ob3Zlci1jb2xvcixcbiAgICAkZGVjb3JhdGlvbjogJHR5cG9ncmFwaHlfbGluay10ZXh0LWRlY29yYXRpb24sXG4gICAgJGRlY29yYXRpb24taG92ZXI6ICR0eXBvZ3JhcGh5X2xpbmstLWhvdmVyLXRleHQtZGVjb3JhdGlvblxuKSB7XG4gICAgJixcbiAgICAmOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRkZWNvcmF0aW9uO1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAmOnZpc2l0ZWQ6aG92ZXIsXG4gICAgJjp2aXNpdGVkOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5rX2hvb2soKTtcbn1cblxuQG1peGluIGxpc3QoKSB7XG4gICAgbWFyZ2luOiAkdHlwb2dyYXBoeV9saXN0LW1hcmdpbjtcbiAgICBwYWRkaW5nOiAkdHlwb2dyYXBoeV9saXN0LXBhZGRpbmc7XG5cbiAgICBAaW5jbHVkZSBsaXN0X2hvb2soKTtcbn1cblxuQG1peGluIGxpc3QtaXRlbSgpIHtcbiAgICBtYXJnaW46ICR0eXBvZ3JhcGh5X2xpc3QtaXRlbS1tYXJnaW47XG5cbiAgICBAaW5jbHVkZSBsaXN0LWl0ZW1faG9vaygpO1xufVxuIiwiQGltcG9ydCBcIn5DcmVhdGl2ZXNob3AvTWFnZW50b19UaGVtZS93ZWIvY3NzL3NvdXJjZS9sYXlvdXRcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2J1dHRvbi9taXhpblwiO1xuXG4uY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgIHBhZGRpbmctdG9wOiAwO1xufVxuXG5ib2R5Ll9oYXMtbW9kYWwge1xuICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkuY2F0YWxvZy1wcm9kdWN0LXZpZXcge1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1waG9uZUxnXCIpIHtcbiAgICAgICAgb3ZlcmZsb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICYuX2hhcy1tb2RhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYm9keS5jbXMta21hLWhvbWUtcGFnZSxcbmJvZHkuY21zLW5vLXJvdXRlLFxuYm9keS5icmFuZHMtaW5kZXgtYWxsIHtcbiAgICAjbWFpbmNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygjeyRrbWFfZm9vdGVyLXBhZGRpbmd9ICsgMjBweCk7XG4gICAgfVxufVxuXG5ib2R5LmNtcy1rbWEtaG9tZS1wYWdlIHtcbiAgICAjbWFpbmNvbnRlbnQge1xuICAgICAgICAuY3MtY29udGFpbmVyLS1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgICAgICAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3BhZ2luYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYm9keS5jbXMtbm8tcm91dGUge1xuICAgIC5jcy1jb250YWluZXItLWhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfZ3JleS0xMDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICAgICNtYWluY29udGVudCB7XG4gICAgICAgIC4jeyRuc31jb250YWluZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9ncmV5LTEwMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogNjUlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0NiU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoMyArIHAge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzgwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmFjdGlvbi5jcmVhdGUucHJpbWFyeSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogNHJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5ib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1yYXRlLFxuYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tZm9ybSB7XG4gICAgI21haW5jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy1ibG9jazogNXJlbSAxNHJlbTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiA1cmVtO1xuICAgICAgICB9XG4gICAgICAgIC5hY3Rpb24uc3VibWl0LnByaW1hcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiBcInNlY29uZGFyeVwiKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JG5zfXByb2R1Y3QtZGV0YWlscyB7XG4gICAgJl9faXRlbSB7XG4gICAgICAgICYtLXByb2R1Y3Qtdmlldy1uYXYsXG4gICAgICAgICYtLXByb2R1Y3Qtdmlldy1wYXJhbWV0ZXJzLFxuICAgICAgICAmLS1wcm9kdWN0LXZpZXctM0R2aWV3LFxuICAgICAgICAmLS1wcm9kdWN0LXZpZXctYnJhbmQtZGV0YWlscyxcbiAgICAgICAgJi0tcHJvZHVjdC1pbmZvLWNyb3Nzc2VsbCB7XG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLS1yZWxhdGVkIHtcbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX2dyZXktMTAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYmxvY2sucHJvZHVjdHMtcmVsYXRlZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi0tcHJvZHVjdC1pbmZvLWNyb3Nzc2VsbCxcbiAgICAgICAgJi0tcHJvZHVjdC1pbmZvLXVwc2VsbCB7XG4gICAgICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLS1jcm9zc3NlbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgICAgICAgICAgICAgLmJsb2NrLnByb2R1Y3RzLWNyb3Nzc2VsbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLS1wcm9kdWN0LXZpZXctYnJhbmQtZGV0YWlscyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuI3skbnN9cHJvZHVjdC1kZXRhaWxzX19jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAxLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgLnBkcC1kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuYm9keS5jbXMta29udGFrdCB7XG4gICAgI21haW5jb250ZW50IHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuZmllbGQgLmlucHV0LXRleHQucmVxdWlyZWQtZW50cnkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICAuZmllbGQtcmVjYXB0Y2hhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG4gICAgLmNzLWNvbnRhaW5lci0taW1hZ2UtdGVhc2VyLmttYV9jb250YWN0X19pbmZvIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nLXRvcDogODBweDtcbiAgICB9XG4gICAgLmttYV9jb250YWN0X2Fib3V0X3VzX19pbmZvIHtcbiAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTA1JTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI3Bob25lLWNvbnRhY3QtcmVxdWVzdC1mb3JtIHtcbiAgICAuZmllbGQgLmlucHV0LXRleHQucmVxdWlyZWQtZW50cnkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICAuZmllbGQtcmVjYXB0Y2hhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICB9XG59XG5cbi8vIGNhdGVnb3J5IHBpbGxzXG5cbi4jeyRuc31jYXRlZ29yeS1waWxscyB7XG4gICAgJl9fbGluayB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgLiN7JG5zfWNhdGVnb3J5LXBpbGxzX19xdHkge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuI3skbnN9Y2F0ZWdvcnktcGlsbHNfX3F0eSB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lOiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAka21hX2NvbG9yX2dyZXktMzAwO1xuICAgIH1cbiAgICAmLWJ1dHRvbi1jb250YWluZXIge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzcmVtKTtcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRrbWFfY29sb3JfZ3JleS0zMDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi1idXR0b24td3JhcHBlciB7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJi1zY3JvbGwtYnV0dG9uIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cblxuLy8gTW9kYWwgZml4XG5cbi5tb2RhbC1wb3B1cCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSA0NHB4KTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxufSIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5cbi5iYWRnZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMC41cmVtO1xufVxuXG4uYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIG1heC13aWR0aDogMTFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgIHBhZGRpbmc6IDJweCAwLjVyZW07XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBzdmcge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICB9XG4gICAgJi1iZXN0c2VsbGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAka21hX2NvbG9yX2JsdWU7XG4gICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2JsdWU7XG4gICAgfVxuICAgICYtbmV3IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAka21hX2NvbG9yX2dyZWVuO1xuICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmVlbjtcbiAgICB9XG4gICAgJi1wcm9tbyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGttYV9jb2xvcl9vcmFuZ2U7XG4gICAgICAgIGNvbG9yOiAka21hX2NvbG9yX29yYW5nZTtcbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXN5bmNocm9ub3VzbHkgbG9hZGVkIGJ1bmRsZSBlbnRyeSBwb2ludC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29uZmlnc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWZW5kb3JzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFV0aWxpdGllc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkBpbXBvcnQgXCJ1dGlscy91dGlsaXR5LWNsYXNzZXNcIjtcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWl4aW5zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTGF5b3V0IC0gb3ZlcnJpZGUgTTIgdGhlbWUgc3R5bGVzIGJ5IHRoZWlyIGNsYXNzZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5AaW1wb3J0IFwiTWFnZW50b19UaGVtZS93ZWIvY3NzL3NvdXJjZS9sYXlvdXRcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2JhZGdlcy9iYWRnZXNcIjtcblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICBzcmM6IHVybChcIi4uL2ZvbnRzL1BvcHBpbnMtTGlnaHQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJQb3BwaW5zXCI7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvUG9wcGlucy1SZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICBzcmM6IHVybChcIi4uL2ZvbnRzL1BvcHBpbnMtU2VtaUJvbGQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtYXV0aG9yaXphdGlvbi1saW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogMC45cmVtO1xuICBwYWRkaW5nOiAwIDAgMCAwLjNyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rIHtcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDEuM3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxLjdyZW07IH0gfVxuICAuY3MtYXV0aG9yaXphdGlvbi1saW5rOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdDogMC4ycmVtIHNvbGlkICNmZmY7IH1cbiAgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluaywgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazpob3ZlciwgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazpmb2N1cywgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazphY3RpdmUsIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2xpbms6dmlzaXRlZDpob3ZlciwgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazp2aXNpdGVkOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjMTQyYjllO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazpob3ZlciAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzg4ODsgfVxuICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19pY29uIHtcbiAgICB3aWR0aDogMS44cmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzg4ODsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJGF1dGhvcml6YXRpb24tbGlua19pdGVtLWJvcmRlcjogMC4ycmVtIHNvbGlkICRjb2xvcl9ib3JkZXItMTAwICFkZWZhdWx0O1xuJGF1dGhvcml6YXRpb24tbGlua19jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGF1dGhvcml6YXRpb24tbGlua19jb2xvci1ob3ZlcjogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGF1dGhvcml6YXRpb24tbGlua19kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGF1dGhvcml6YXRpb24tbGlua19ob3Zlci1kZWNvcmF0aW9uOiAkYXV0aG9yaXphdGlvbi1saW5rX2RlY29yYXRpb24gIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2ljb24tY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRhdXRob3JpemF0aW9uLWxpbmtfaWNvbi1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuXG4uI3skbnN9YXV0aG9yaXphdGlvbi1saW5rIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IDAuOXJlbTtcbiAgICBwYWRkaW5nOiAwIDAgMCAwLjNyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwIDEuM3JlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuN3JlbTtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBib3JkZXItbGVmdDogJGF1dGhvcml6YXRpb24tbGlua19pdGVtLWJvcmRlcjtcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICRjb2xvcjogJGF1dGhvcml6YXRpb24tbGlua19jb2xvcixcbiAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGF1dGhvcml6YXRpb24tbGlua19jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uOiAkYXV0aG9yaXphdGlvbi1saW5rX2RlY29yYXRpb24sXG4gICAgICAgICAgICAkZGVjb3JhdGlvbi1ob3ZlcjogJGF1dGhvcml6YXRpb24tbGlua19ob3Zlci1kZWNvcmF0aW9uXG4gICAgICAgICk7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGF1dGhvcml6YXRpb24tbGlua19pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogMS44cmVtO1xuICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRhdXRob3JpemF0aW9uLWxpbmtfaWNvbi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWFkZHRvY2FydCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuICAuY3MtYWRkdG9jYXJ0X193cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgQHN1cHBvcnRzIChjbGlwLXBhdGg6IGluc2V0KDAgMCAwIDAgcm91bmQgMjRweCkpIHtcbiAgICAgIC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIge1xuICAgICAgICBjbGlwLXBhdGg6IGluc2V0KDAgMCAwIDAgcm91bmQgMjRweCk7IH0gfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b24sIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtYWRkdG9jYXJ0X19idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbltkaXNhYmxlZF0sIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IGF1dG87XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG4gIC5jcy1hZGR0b2NhcnRfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3ZlciAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19idXR0b246Zm9jdXMgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmFjdGl2ZSAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3ZlciAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWljb24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiAqIHtcbiAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2J1dHRvbiAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19idXR0b246aG92ZXIgLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjphY3RpdmUgLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCB7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246aG92ZXIgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpmb2N1cyAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmFjdGl2ZSAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24gKiB7XG4gICAgZmlsbDogI2ZmZjsgfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b24tbGFiZWwsIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgLmNzLWFkZHRvY2FydF9fY29uZmlndXJlLWljb24sIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1pY29uLCAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWljb24sIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS42cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgd2lkdGg6IDIuMnJlbTtcbiAgICBoZWlnaHQ6IDIuMnJlbTtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuICAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhciwgdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTsgfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b24tbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhciwgdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fbG9hZGluZy1iYWxsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICBib3R0b206IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19sb2FkaW5nLWJhbGwtLTEge1xuICAgICAgICBsZWZ0OiAwOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19sb2FkaW5nLWJhbGwtLTIge1xuICAgICAgICBsZWZ0OiAxNXB4O1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuMTVzICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmctYmFsbC0tMyB7XG4gICAgICAgIGxlZnQ6IDMwcHg7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zcyAhaW1wb3J0YW50OyB9XG4gIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTFlbTtcbiAgICB0b3A6IC0xcHg7XG4gICAgYm90dG9tOiAtMXB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAyLjVlbSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4wMSwgMC42NSwgMC4zOCwgMSk7XG4gICAgYmFja2dyb3VuZDogIzMxYTQzYTsgfVxuICAgIC5jcy1hZGR0b2NhcnQtLW5vLXRyYW5zaXRpb25zIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1mYWlsIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICAgIGJhY2tncm91bmQ6ICNjYzFjMTA7IH1cbiAgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIGhlaWdodDogMS43MjVlbTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzOyB9XG4gIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSB0cmFuc2xhdGVYKC0yZW0pO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzLjVyZW07IH1cbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS1zdGlja3ksIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS11bnN0aWNrIHtcbiAgICAgIG1heC13aWR0aDogMTIwcmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgIHotaW5kZXg6IDQwMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tc3RpY2t5IC51aS1kaWFsb2csIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS11bnN0aWNrIC51aS1kaWFsb2cge1xuICAgICAgICByaWdodDogMCAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tc3RpY2t5IC5ibG9jay1taW5pY2FydDphZnRlciwgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXVuc3RpY2sgLmJsb2NrLW1pbmljYXJ0OmFmdGVyIHtcbiAgICAgICAgcmlnaHQ6IDMuMnJlbSAhaW1wb3J0YW50OyB9XG4gIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS1zdGlja3kgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtbGluayxcbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXVuc3RpY2sgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtbGluayB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDIuNXJlbSAxcmVtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMXB4IDNweCA0LjVyZW0gMCByZ2JhKDMwLCA0OCwgNjcsIDAuMzQpO1xuICAgIGFuaW1hdGlvbjogbWluaWNhcnQtaW4gMXMgY3ViaWMtYmV6aWVyKDAsIDAuNzcsIDAuMTgsIDEpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tdW5zdGljayAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1saW5rIHtcbiAgICBhbmltYXRpb246IG1pbmljYXJ0LW91dCAwLjVzIGN1YmljLWJlemllcigwLjU1LCAwLjIsIDAuODksIDAuNDUpOyB9XG4gIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LWxpbms6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IDYwMDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45MyksIGxlZnQgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlci0tYW5pbWF0aW5nIHtcbiAgICAgIGFuaW1hdGlvbjogbW92ZS1xdHktYmFkZ2UgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6IDAuNXJlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXItLWFuaW1hdGluZyB7XG4gICAgICAgICAgdG9wOiAxLjNyZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXItLWFuaW1hdGluZyB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNS4zcmVtOyB9IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyLS1hbmltYXRpbmcuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlci0tbWluaWNhcnQtc3RpY2t5IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDEuOHJlbTsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1sb2FkaW5nIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1sYWJlbCwgLmNzLWFkZHRvY2FydC0tZG9uZSAuY3MtYWRkdG9jYXJ0X19idXR0b24tbGFiZWwge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyZW0sIDAsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWxvYWRpbmcgLmNzLWFkZHRvY2FydF9fbG9hZGluZyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApIHRyYW5zbGF0ZVgoLTEuMjVlbSk7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1sb2FkaW5nIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmctYmFsbCB7XG4gICAgICBhbmltYXRpb246IGJhbGwtaW4gMXMgaW5maW5pdGU7IH1cbiAgLmNzLWFkZHRvY2FydC0tZG9uZSAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbiB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuY3MtYWRkdG9jYXJ0LS1kb25lIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gICAgLmNzLWFkZHRvY2FydC0tZG9uZSAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZzphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01LjNyZW0sIDAsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnQtLXN1Y2Nlc3MgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1hZGR0b2NhcnQtLXN1Y2Nlc3MgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWZhaWwgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWZhaWwgLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1sYWJlbCxcbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWljb24ge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuNXM7IH1cbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmcge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZywgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmc6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgY3ViaWMtYmV6aWVyKDAuODYsIDAuMDEsIDAuODMsIDAuNTEpOyB9XG4gICAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmc6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMDsgfVxuICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLFxuICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cyBsaW5lYXIsIHRyYW5zZm9ybSAwLjZzIGN1YmljLWJlemllcigwLjg2LCAwLjAxLCAwLjgzLCAwLjUxKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbixcbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwOyB9XG5cbkBrZXlmcmFtZXMgYmFsbC1pbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyBtaW5pY2FydC1pbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9IH1cblxuQGtleWZyYW1lcyBtaW5pY2FydC1vdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTsgfSB9XG5cbkBrZXlmcmFtZXMgbW92ZS1xdHktYmFkZ2Uge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxNSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgODAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuICAuY3MtYWRkdG9jYXJ0IC5ibG9jay1taW5pY2FydCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NvbnRhaW5lci9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kYWRkdG9jYXJ0X2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb246ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9idXR0b24taWNvbi13aWR0aDogMi4ycmVtICFkZWZhdWx0O1xuJGFkZHRvY2FydF9idXR0b24taWNvbi1oZWlnaHQ6ICRhZGR0b2NhcnRfYnV0dG9uLWljb24td2lkdGggIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2J1dHRvbi1pY29uLWVkZ2UtZ3V0dGVyOiAwLjhlbSAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9idXR0b24tc2tld2VkLWJhY2tncm91bmQtd2lkdGg6IDUuMXJlbSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLXBhZGRpbmctbGVmdDogMXJlbSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLXBhZGRpbmctcmlnaHQ6IDQuNXJlbSAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtc2l6ZTogMTBweCAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtYmctcHJpbWFyeTogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtYmctc2Vjb25kYXJ5OiAkY29sb3Jfc3VjY2Vzcy02MDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1jb2xvcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtZmlsbDogJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtY29sb3IgIWRlZmF1bHQ7XG5cbiRhZGR0b2NhcnRfYWpheC1mYWlsLWJnLXByaW1hcnk6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtZmFpbC1iZy1zZWNvbmRhcnk6ICRjb2xvcl9lcnJvci02MDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtZmFpbC1jb2xvcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGFkZHRvY2FydF9hamF4LWZhaWwtZmlsbDogJGFkZHRvY2FydF9hamF4LWZhaWwtY29sb3IgIWRlZmF1bHQ7XG5cbi4jeyRuc31hZGR0b2NhcnQge1xuICAgICRyb290OiAmO1xuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIC8vIGJlY2F1c2UgYnV0dG9uIGNhbid0IGhhdmUgb3ZlcmZsb3csIHdlIG5lZWQgdG8gYWRkIGl0IG9uIGJ1dHRvbiB3cmFwcGVyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgQGlmICgkYnV0dG9uX2JvcmRlci1yYWRpdXMgPiAwKSB7XG4gICAgICAgICAgICBAc3VwcG9ydHMgKGNsaXAtcGF0aDogaW5zZXQoMCAwIDAgMCByb3VuZCAkYnV0dG9uX2JvcmRlci1yYWRpdXMpKSB7XG4gICAgICAgICAgICAgICAgY2xpcC1wYXRoOiBpbnNldCgwIDAgMCAwIHJvdW5kICRidXR0b25fYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGFkZHRvY2FydF9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvblxuICAgICAgICApO1xuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAjeyRyb290fV9fc3VjY2Vzcy1sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhZGR0b2NhcnRfYWpheC1zdWNjZXNzLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fc3VjY2Vzcy1pY29uIHtcbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19mYWlsLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFkZHRvY2FydF9hamF4LWZhaWwtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19mYWlsLWljb24ge1xuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYWRkdG9jYXJ0X2FqYXgtZmFpbC1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1sYWJlbCxcbiAgICAmX19zdWNjZXNzLWxhYmVsLFxuICAgICZfX2ZhaWwtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkYWRkdG9jYXJ0X2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXBvc2l0aW9uXG4gICAgICAgICk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJl9fY29uZmlndXJlLWljb24sXG4gICAgJl9fYnV0dG9uLWljb24sXG4gICAgJl9fc3VjY2Vzcy1pY29uLFxuICAgICZfX2ZhaWwtaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRhZGR0b2NhcnRfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb25cbiAgICAgICAgKTtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgICB3aWR0aDogJGFkZHRvY2FydF9idXR0b24taWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLWhlaWdodDtcblxuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICAgICAgICBAaWYgKCRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb24gPT0gJ3JpZ2h0Jykgb3IgKCRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb24gPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAjeyRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb259OiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLWVkZ2UtZ3V0dGVyO1xuICAgICAgICB9XG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICB9XG5cbiAgICAmX19mYWlsLWljb24ge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1sYWJlbCxcbiAgICAmX19zdWNjZXNzLWxhYmVsIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXIsXG4gICAgICAgICAgICB0cmFuc2Zvcm0gMXMgY3ViaWMtYmV6aWVyKDAsIDAuNzcsIDAuMTgsIDEpO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB9XG5cbiAgICAmX19sb2FkaW5nIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApIHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgICAgICB3aWR0aDogJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLXNpemUgKiA0O1xuICAgICAgICBoZWlnaHQ6ICRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1zaXplO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcixcbiAgICAgICAgICAgIHRyYW5zZm9ybSAxcyBjdWJpYy1iZXppZXIoMCwgMC43NywgMC4xOCwgMSk7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG5cbiAgICAgICAgJi1iYWxsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtc2l6ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgICAgICAgICAgJi0tMSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tMiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMTVweDtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuMTVzICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLTMge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjNzICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19mZWVkYmFjay1iZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTFlbTtcbiAgICAgICAgdG9wOiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgYm90dG9tOiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDIuNWVtKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjAxLCAwLjY1LCAwLjM4LCAxKTtcbiAgICAgICAgYmFja2dyb3VuZDogJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtYmctc2Vjb25kYXJ5O1xuXG4gICAgICAgICN7JHJvb3R9LS1uby10cmFuc2l0aW9ucyAmIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tZmFpbCAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhZGR0b2NhcnRfYWpheC1mYWlsLWJnLXNlY29uZGFyeTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1Y2Nlc3MtbGFiZWwsXG4gICAgJl9fc3VjY2Vzcy1pY29uLFxuICAgICZfX2ZhaWwtbGFiZWwsXG4gICAgJl9fZmFpbC1pY29uIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAmX19zdWNjZXNzLWljb24sXG4gICAgJl9fZmFpbC1pY29uIHtcbiAgICAgICAgaGVpZ2h0OiAxLjcyNWVtO1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xuICAgIH1cblxuICAgICZfX3N1Y2Nlc3MtbGFiZWwsXG4gICAgJl9fZmFpbC1sYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSB0cmFuc2xhdGVYKC0yZW0pOyAvLyBjYWxjKCkgZG9lc24ndCB3b3JrIGluIElFIHNvIGkgaGFkIHRvIGR1cGxpY2F0ZSB0cmFuc2xhdGVYKCkgdHJhbnNmb3JtIHRvIGFkanVzdCBYIHBvc2l0aW9uXG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICN7JGFkZHRvY2FydF9idXR0b24tcGFkZGluZy1yaWdodCAtXG4gICAgICAgICAgICAkYWRkdG9jYXJ0X2J1dHRvbi1wYWRkaW5nLWxlZnR9O1xuICAgIH1cblxuICAgICZfX21pbmljYXJ0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmLS1zdGlja3ksXG4gICAgICAgICYtLXVuc3RpY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLXdyYXBwZXIoKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgICAgICAgIHotaW5kZXg6IDQwMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAudWktZGlhbG9nIHtcbiAgICAgICAgICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYmxvY2stbWluaWNhcnQge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMy4ycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWluaWNhcnQtbGluayB7XG4gICAgICAgICN7JHJvb3R9X19taW5pY2FydC0tc3RpY2t5ICYsXG4gICAgICAgICN7JHJvb3R9X19taW5pY2FydC0tdW5zdGljayAmIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMXB4IDNweCA0LjVyZW0gMCByZ2JhKDMwLCA0OCwgNjcsIDAuMzQpO1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBtaW5pY2FydC1pbiAxcyBjdWJpYy1iZXppZXIoMCwgMC43NywgMC4xOCwgMSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fbWluaWNhcnQtLXVuc3RpY2sgJiB7XG4gICAgICAgICAgICBhbmltYXRpb246IG1pbmljYXJ0LW91dCAwLjVzIGN1YmljLWJlemllcigwLjU1LCAwLjIsIDAuODksIDAuNDUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXIge1xuICAgICAgICAkYmFkZ2Utd3JhcHBlcjogJjtcblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHotaW5kZXg6IDYwMDtcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuOXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpLFxuICAgICAgICAgICAgbGVmdCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgJi0tYW5pbWF0aW5nIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbW92ZS1xdHktYmFkZ2UgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHRvcDogMS4zcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNS4zcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skYmFkZ2Utd3JhcHBlcn0tLW1pbmljYXJ0LXN0aWNreSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgICAgIHRvcDogMS44cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX21pbmljYXJ0LXF0eS1iYWRnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWxvYWRpbmcsXG4gICAgJi0tZG9uZSB7XG4gICAgICAgICN7JHJvb3R9X19idXR0b24tbGFiZWwge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMmVtLCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWxvYWRpbmcge1xuICAgICAgICAjeyRyb290fV9fbG9hZGluZyB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSB0cmFuc2xhdGVYKC0xLjI1ZW0pOyAvLyBjYWxjKCkgZG9lc24ndCB3b3JrIGluIElFIHNvIGkgaGFkIHRvIGR1cGxpY2F0ZSB0cmFuc2xhdGVYKCkgdHJhbnNmb3JtIHRvIGFkanVzdCBYIHBvc2l0aW9uXG5cbiAgICAgICAgICAgICYtYmFsbCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBiYWxsLWluIDFzIGluZmluaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tZG9uZSB7XG4gICAgICAgICN7JHJvb3R9X19idXR0b24taWNvbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2ZlZWRiYWNrLWJnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoXG4gICAgICAgICAgICAgICAgICAgIC0jeyRhZGR0b2NhcnRfYnV0dG9uLXNrZXdlZC1iYWNrZ3JvdW5kLXdpZHRoICsgMC4yfSxcbiAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zdWNjZXNzIHtcbiAgICAgICAgI3skcm9vdH1fX3N1Y2Nlc3MtaWNvbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX3N1Y2Nlc3MtbGFiZWwge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1mYWlsIHtcbiAgICAgICAgI3skcm9vdH1fX2ZhaWwtaWNvbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2ZhaWwtbGFiZWwge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1hbmltYXRpb24tZG9uZSB7XG4gICAgICAgICN7JHJvb3R9X19idXR0b24tbGFiZWwsXG4gICAgICAgICN7JHJvb3R9X19idXR0b24taWNvbiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2ZlZWRiYWNrLWJnIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC44NiwgMC4wMSwgMC44MywgMC41MSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fc3VjY2Vzcy1sYWJlbCxcbiAgICAgICAgI3skcm9vdH1fX2ZhaWwtaWNvbiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnMgbGluZWFyLFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjZzIGN1YmljLWJlemllcigwLjg2LCAwLjAxLCAwLjgzLCAwLjUxKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fc3VjY2Vzcy1pY29uLFxuICAgICAgICAjeyRyb290fV9fZmFpbC1pY29uIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICAgIEBrZXlmcmFtZXMgYmFsbC1pbiB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICAgICAgNTAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBtaW5pY2FydC1pbiB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgICAgICB9XG4gICAgICAgIDEwMCUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgbWluaWNhcnQtb3V0IHtcbiAgICAgICAgMCUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgfVxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBtb3ZlLXF0eS1iYWRnZSB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgMTUlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgICAgODAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgICAgIH1cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbiAgICAuYmxvY2stbWluaWNhcnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ3V0aWxzL2dldC12YWx1ZS1mcm9tLWxpc3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vYW5pbWF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL2hvb2snO1xuXG4vLyBEZWZpbmUgZGVmYXVsdCB0eXBlIGZvciBidXR0b25zLiBZb3UgY2FuIG92ZXJyaWRlIGl0IGluZGl2aWR1YWxseSBwZXIgYnV0dG9uIGluIGVhY2ggY29tcG9uZW50XG4vLyBWYXJpYW50czogcHJpbWFyeSB8IHNlY29uZGFyeSB8IGxpbmsgfCBzdWNjZXNzIHwgZXJyb3JcbiRidXR0b25fZGVmYXVsdC10eXBlOiAncHJpbWFyeScgIWRlZmF1bHQ7XG5cbi8vIERlZmluZSBkZWZhdWx0IHBvc2l0aW9uIGZvciBpY29ucyBpbiBidXR0b24uIFlvdSBjYW4gb3ZlcnJpZGUgaXQgaW5kaXZpZHVhbGx5IHBlciBidXR0b24gaW4gZWFjaCBjb21wb25lbnRcbi8vIFZhcmlhbnRzOiBsZWZ0IHwgcmlnaHQgfCBuby1pY29uIHwgb25seS1pY29uXG4kYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3M6ICdyaWdodCcgIWRlZmF1bHQ7XG5cbi8vIEdlbmVyYWwgc3R5bGVzIGZvciBidXR0b25zXG4kYnV0dG9uX2ZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJGJ1dHRvbl9mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJGJ1dHRvbl9ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJGJ1dHRvbl9wYWRkaW5nOiAwLjc1ZW0gMWVtICFkZWZhdWx0O1xuJGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbjogM2VtICFkZWZhdWx0O1xuJGJ1dHRvbl9saW5lLWhlaWdodDogMS4yNzVlbSAhZGVmYXVsdDtcbiRidXR0b25fYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRidXR0b25fYW5pbWF0aW9uLXRpbWU6IDAuNXMgIWRlZmF1bHQ7XG4kYnV0dG9uX2FuaW1hdGlvbi1iZWZvcmUtd2lkdGg6IDMuNGVtICFkZWZhdWx0O1xuJGJ1dHRvbl9hbmltYXRpb24tYWZ0ZXItd2lkdGg6IDNlbSAhZGVmYXVsdDtcbiRidXR0b25fdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kYnV0dG9uX3RleHQtbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCAhZGVmYXVsdDtcbiRidXR0b25fdGV4dC1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuXG4vLyBTdHlsZXMgZm9yIGBwcmltYXJ5YCBidXR0b24gdHlwZVxuJGJ1dHRvbl9wcmltYXJ5LWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS0taG92ZXItYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktZW5hYmxlLWFuaW1hdGlvbjogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gU3R5bGVzIGZvciBgc2Vjb25kYXJ5YCBidXR0b24gdHlwZVxuJGJ1dHRvbl9zZWNvbmRhcnktYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktYmFja2dyb3VuZDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LWZpbGw6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS1lbmFibGUtYW5pbWF0aW9uOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gU3R5bGUgZm9yIGBsaW5rYCBidXR0b24gdHlwZVxuJGJ1dHRvbl9saW5rLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2xpbmstLWhvdmVyLWNvbG9yOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2xpbmstaWNvbi1wYWRkaW5nOiAycmVtICFkZWZhdWx0O1xuXG4vLyBTdHlsZXMgZm9yIGBzdWNjZXNzYCBidXR0b24gdHlwZVxuJGJ1dHRvbl9zdWNjZXNzLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy0taG92ZXItYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtZW5hYmxlLWFuaW1hdGlvbjogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFN0eWxlcyBmb3IgYGVycm9yYCBidXR0b24gdHlwZVxuJGJ1dHRvbl9lcnJvci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLWJhY2tncm91bmQ6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfZXJyb3ItNjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci0taG92ZXItZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci1lbmFibGUtYW5pbWF0aW9uOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRGVmaW5lcyBob3cgbXVjaCBidXR0b24gaWNvbiBzaG91bGQgYmUgcHVsbGVkIHZlcnRpY2FsbHkgdG8gY2VudGVyIGl0LlxuLy8gU2hvdWxkIGJlIGRlZmluZWQgaW4gZW0gdG8gbWFrZSBpdCByZWxhdGl2ZSB0byBidXR0b24ncyBmb250IHNpemUuXG4kYnV0dG9uX3NwYW4tZm9udC1vZmZzZXQ6IDAgIWRlZmF1bHQ7XG5cbi8vIERlZmluZXMgaG93IG11Y2ggYnV0dG9uIGljb24gc2hvdWxkIGJlIHB1bGxlZCB2ZXJ0aWNhbGx5IHRvIGNlbnRlciBpdCBvbiBpY29uIGJ1dHRvbi5cbi8vIFNob3VsZCBiZSBkZWZpbmVkIGluIGVtIHRvIG1ha2UgaXQgcmVsYXRpdmUgdG8gYnV0dG9uJ3MgZm9udCBzaXplLlxuJGJ1dHRvbl9pY29uLW9mZnNldDogMC4xZW0gIWRlZmF1bHQ7XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNhbGMtbm8tdW5zcGFjZWQtb3BlcmF0b3JcblxuQG1peGluIGJ1dHRvbihcbiAgICAkdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUsXG4gICAgJGljb25fcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3Ncbikge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6ICRidXR0b25fZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkYnV0dG9uX2ZvbnQtd2VpZ2h0O1xuICAgIHRleHQtYWxpZ246ICRidXR0b25fdGV4dC1hbGlnbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6ICRidXR0b25fbGluZS1oZWlnaHQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiAkYnV0dG9uX3RleHQtdHJhbnNmb3JtO1xuXG4gICAgQGlmICgkdHlwZSAhPSAnbGluaycpIHtcbiAgICAgICAgcGFkZGluZzogJGJ1dHRvbl9wYWRkaW5nO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRidXR0b25fYW5pbWF0aW9uLXRpbWUsXG4gICAgICAgICAgICBib3JkZXItY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSwgZmlsbCAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgei1pbmRleDogNTtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdwcmltYXJ5Jykge1xuICAgICAgICBAaWYgKCRidXR0b25fcHJpbWFyeS1lbmFibGUtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fYW5pbWF0aW9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAncHJpbWFyeScsXG4gICAgICAgICAgICAgICAgJGNvbG9yX3N0YXJ0OiAkYnV0dG9uX3ByaW1hcnktYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykgb3IgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ3NlY29uZGFyeScpIHtcbiAgICAgICAgQGlmICgkYnV0dG9uX3NlY29uZGFyeS1lbmFibGUtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fYW5pbWF0aW9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgICAgICAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fc2Vjb25kYXJ5LWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZDogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykgb3IgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ2xpbmsnKSB7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yICRidXR0b25fYW5pbWF0aW9uLXRpbWUsIGZpbGwgJGJ1dHRvbl9hbmltYXRpb24tdGltZTtcblxuICAgICAgICAqIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yICRidXR0b25fYW5pbWF0aW9uLXRpbWUsXG4gICAgICAgICAgICAgICAgZmlsbCAkYnV0dG9uX2FuaW1hdGlvbi10aW1lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnc3VjY2VzcycpIHtcbiAgICAgICAgQGlmICgkYnV0dG9uX3N1Y2Nlc3MtZW5hYmxlLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2FuaW1hdGlvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICRjb2xvcl9zdGFydDogJGJ1dHRvbl9zdWNjZXNzLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZDogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGljb25fcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnZXJyb3InKSB7XG4gICAgICAgIEBpZiAoJGJ1dHRvbl9lcnJvci1lbmFibGUtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fYW5pbWF0aW9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICRjb2xvcl9zdGFydDogJGJ1dHRvbl9lcnJvci1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQ6ICRidXR0b25fZXJyb3ItLWhvdmVyLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmLFxuICAgICY6dmlzaXRlZCB7XG4gICAgICAgIEBpZiAoJHR5cGUgIT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYnV0dG9uX2JvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ3ByaW1hcnknKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fcHJpbWFyeS1ib3JkZXI7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9wcmltYXJ5LWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktY29sb3I7XG4gICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9wcmltYXJ5LWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09ICdzZWNvbmRhcnknKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fc2Vjb25kYXJ5LWJvcmRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX3NlY29uZGFyeS1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSAnbGluaycpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2xpbmstY29sb3I7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2xpbmstY29sb3I7XG4gICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9saW5rLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zdWNjZXNzLWJvcmRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc3VjY2Vzcy1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX3N1Y2Nlc3MtZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ2Vycm9yJykge1xuICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX2Vycm9yLWJvcmRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9lcnJvci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9lcnJvci1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX2Vycm9yLWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gc3R5bGVsaW50LWVuYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBAaWYgKCR0eXBlICE9ICdsaW5rJykge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0gJ3ByaW1hcnknKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fcHJpbWFyeS0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fcHJpbWFyeS0taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0gJ3NlY29uZGFyeScpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay0taG92ZXItY29sb3I7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fbGluay0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09ICdlcnJvcicpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRidXR0b25fZXJyb3ItLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9lcnJvci0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9lcnJvci0taG92ZXItYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9lcnJvci0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fZXJyb3ItLWhvdmVyLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvb2soJHR5cGUsICRpY29uX3Bvcyk7XG59XG5cbkBtaXhpbiBidXR0b25fc3BhbihcbiAgICAkdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUsXG4gICAgJGljb25fcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3Ncbikge1xuICAgIG1hcmdpbi10b3A6ICRidXR0b25fc3Bhbi1mb250LW9mZnNldDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiAkYnV0dG9uX2ZvbnQtd2VpZ2h0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6ICRidXR0b25fbGluZS1oZWlnaHQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6ICRidXR0b25fdGV4dC1sZXR0ZXItc3BhY2luZztcblxuICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYnV0dG9uX2xpbmstaWNvbi1wYWRkaW5nO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgdW5pdCgkYnV0dG9uX3BhZGRpbmctd2hlbi1pY29uKSA9PVxuICAgICAgICAgICAgICAgICAgICB1bml0KFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRidXR0b25fcGFkZGluZy13aGVuLWljb24gK1xuICAgICAgICAgICAgICAgICAgICBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICAjeyRidXR0b25fcGFkZGluZy13aGVuLWljb259ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICN7Z2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSAnbGluaycpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGJ1dHRvbl9saW5rLWljb24tcGFkZGluZztcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgIHVuaXQoJGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbikgPT1cbiAgICAgICAgICAgICAgICAgICAgdW5pdChcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNpZGU6ICRpY29uX3Bvc1xuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRidXR0b25fcGFkZGluZy13aGVuLWljb24gK1xuICAgICAgICAgICAgICAgICAgICBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgICN7JGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbn0gK1xuICAgICAgICAgICAgICAgICAgICAgICAgI3tnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgKCRpY29uX3BvcyA9PSAnb25seS1pY29uJykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuLWhvb2soJHR5cGUsICRpY29uX3Bvcyk7XG59XG5cbkBtaXhpbiBidXR0b25faWNvbihcbiAgICAkdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUsXG4gICAgJGljb25fcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3Ncbikge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6ICRidXR0b25fZm9udC1zaXplO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykgb3IgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICB9XG5cbiAgICBAaWYgKCRpY29uX3BvcyA9PSAnb25seS1pY29uJykge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogJGJ1dHRvbl9pY29uLW9mZnNldDtcblxuICAgICAgICBAaWYgKCR0eXBlID09ICdsaW5rJykge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRidXR0b25fbGluay1pY29uLXBhZGRpbmcgLyAyO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkYnV0dG9uX2xpbmstaWNvbi1wYWRkaW5nIC8gMjtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSB7XG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICByaWdodDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICBAaWYgKCR0eXBlID09ICdsaW5rJykge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIGxlZnQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgJHNpZGU6ICRpY29uX3Bvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uLWhvb2soJHR5cGUsICRpY29uX3Bvcyk7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLypcbiAqIEJlY2F1c2UgcHJpY2UtYm94IGlzIHVzZWQgaW4gbXVsdGlwbGUgY29tcG9uZW50cyBsaWtlIHRpbGUsIGJ1eWJveCBldGMsXG4gKiB3ZSBuZWVkIHRvIG1vdmUgdmFyaWFibGVzIHRvIHNlcGFyYXRlIGZpbGUgdG8gaGF2ZSBwb3NzaWJpbGl0eSB0byBpbmNsdWRlIHRoZW1cbiAqIGluIGVhY2ggY29tcG9uZW50IHdpdGhvdXQgZ2VuZXJhdGUgcHJpY2UtYm94IGNvbXBvbmVudCBzdHlsZXMgbXVsdGlwbGUgdGltZXNcbiovXG4uY3MtYXV0b2NvbXBsZXRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xNyk7XG4gIHotaW5kZXg6IDIwMDtcbiAgbWFyZ2luLXRvcDogLTFweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0LnByb2R1Y3QgZGQ6bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogOXJlbTsgfSB9XG4gIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgZm9udC1zaXplOiAxLjI5cmVtOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZCwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbSB7XG4gICAgcGFkZGluZzogMXJlbTsgfSB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQ6aG92ZXIsIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLnNlbGVjdGVkLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtOmhvdmVyLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLnNlbGVjdGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZDpsYXN0LWNoaWxkLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWltYWdlLWNvbnRhaW5lciwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1pbWFnZS1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWltYWdlLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLWltYWdlIHtcbiAgICAgIHdpZHRoOiA0LjVyZW07XG4gICAgICBoZWlnaHQ6IDQuNXJlbTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWRldGFpbHMsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tZGV0YWlscyB7XG4gICAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmctYmxvY2s6IDJyZW07IH1cbiAgICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWRldGFpbHMgLmYtZml4LCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLWRldGFpbHMgLmYtZml4IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtZGV0YWlscyBpbWcsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tZGV0YWlscyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWJyYW5kLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLWJyYW5kIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZC1uYW1lLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLW5hbWUge1xuICAgICAgZm9udC1zaXplOiAxLjI5cmVtO1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtcHJpY2UsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tcHJpY2Uge1xuICAgICAgbWFyZ2luOiAwLjNyZW0gMCAwO1xuICAgICAgcGFkZGluZy1ibG9jazogMXJlbTsgfVxuICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggPiAucHJpY2Uge1xuICAgICAgY29sb3I6ICMzMjRkY2Y7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07IH0gfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCAub2xkLXByaWNlID4gLnByaWNlIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgY29sb3I6ICM2OTY5Njk7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCA+IC5wcmljZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDkuNXJlbTtcbiAgICAgICAgICBib3R0b206IC0ycmVtOyB9XG4gICAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCA+IC5wcmljZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDlyZW07XG4gICAgICAgICAgdG9wOiAtMnJlbTsgfSB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlID4gLnByaWNlIHtcbiAgICAgIGNvbG9yOiAjZTQxZjEyO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCAub2xkLXByaWNlIHtcbiAgICAgIG9yZGVyOiAtMTsgfVxuICAgICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlcyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMjRkY2Y7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgcGFkZGluZzogMCAwLjdyZW07XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtaW4taGVpZ2h0OiAyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlICsgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2Uge1xuICAgICAgbWFyZ2luLXRvcDogMC41cmVtOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLXBvcHVsYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM3Yjg0MTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tcG9wdWxhciAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tcG9wdWxhciAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0ICsgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLXBvcHVsYXIgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLS1mcmVlLXNoaXBwaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzN2I4NDE7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCArIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLS1mcmVlLXNoaXBwaW5nIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQgKyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9IH1cblxuLmF1dG9jb21wbGV0ZS1saXN0IHtcbiAgbWFyZ2luOiAtMXB4IDAgMXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgLmF1dG9jb21wbGV0ZS1saXN0OmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wOiAwOyB9XG4gIC5hdXRvY29tcGxldGUtbGlzdDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5hdXRvY29tcGxldGUtbGlzdCAuYW1vdW50IHtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6IDEuMjlyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmF1dG9jb21wbGV0ZS1saXN0IC5hbW91bnQ6bm90KDplbXB0eSk6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIpXCI7IH1cbiAgICAuYXV0b2NvbXBsZXRlLWxpc3QgLmFtb3VudDpub3QoOmVtcHR5KTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCIoXCI7IH1cblxuLmF1dG9jb21wbGV0ZS1saXN0LXRpdGxlIHtcbiAgcGFkZGluZzogMS4ycmVtIDNyZW0gMXJlbSAxcmVtO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxLjI5cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBtYXJnaW46IDA7IH1cbiAgLmF1dG9jb21wbGV0ZS1saXN0LXRpdGxlOmhvdmVyLCAuYXV0b2NvbXBsZXRlLWxpc3QtdGl0bGUuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5hdXRvY29tcGxldGUtbGlzdC10aXRsZTpub3QoOmVtcHR5KTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogdHJhbnNwYXJlbnQ7IH1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gYmFkZ2VfaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gYmFkZ2VfdHlwZS1ob29rKCR0eXBlKSB7XG59XG5cbkBtaXhpbiBiYWRnZV9zcGFuLWhvb2soJHR5cGUpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIi8qXG4gKiBCZWNhdXNlIHByaWNlLWJveCBpcyB1c2VkIGluIG11bHRpcGxlIGNvbXBvbmVudHMgbGlrZSB0aWxlLCBidXlib3ggZXRjLFxuICogd2UgbmVlZCB0byBtb3ZlIHZhcmlhYmxlcyB0byBzZXBhcmF0ZSBmaWxlIHRvIGhhdmUgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSB0aGVtXG4gKiBpbiBlYWNoIGNvbXBvbmVudCB3aXRob3V0IGdlbmVyYXRlIHByaWNlLWJveCBjb21wb25lbnQgc3R5bGVzIG11bHRpcGxlIHRpbWVzXG4qL1xuXG4kcHJpY2UtYm94X25vcm1hbC1wcmljZS1jb2xvcjogJHByaWNlX2NvbG9yICFkZWZhdWx0O1xuJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuXG4kcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3I6ICRwcmljZV9zcGVjaWFsLWNvbG9yICFkZWZhdWx0O1xuJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC1zaXplICFkZWZhdWx0O1xuJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcblxuJHByaWNlLWJveF9vbGQtcHJpY2UtY29sb3I6ICRwcmljZV9vbGQtY29sb3IgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X29sZC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRwcmljZS1ib3hfb2xkLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRwcmljZS1ib3hfb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoICFkZWZhdWx0O1xuXG4kcHJpY2UtYm94X2xhYmVsLWNvbG9yOiAkcHJpY2VfY29sb3IgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X2xhYmVsLWZvbnQtc2l6ZTogMS4xcmVtICFkZWZhdWx0O1xuJHByaWNlLWJveF9sYWJlbC1mb250LXdlaWdodDogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X2xhYmVsLWRpc3BsYXktY29sb246IHRydWUgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X2xhYmVsLW1hcmdpbjogMC4zcmVtICFkZWZhdWx0O1xuXG4kcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzOiAxcmVtICFkZWZhdWx0O1xuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ2ZW5kb3JzL2luY2x1ZGUtbWVkaWFcIjtcblxuQGltcG9ydCBcImNvbXBvbmVudHMvYmFkZ2UvbWl4aW5cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3ByaWNlLWJveC92YXJpYWJsZXNcIjtcblxuJGF1dG9jb21wbGV0ZV9saXN0LWJhY2tncm91bmQ6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfbGlzdC1ib3JkZXItcmFkaXVzOiAzcHggIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2xpc3QtYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2xpc3QtYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKCRjb2xvcl90ZXh0LTkwMCwgMC4xNykgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfdGl0bGUtcGFkZGluZzogMS4ycmVtIDNyZW0gMXJlbSAxcmVtICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX3RpdGxlLWJvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfdGl0bGUtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfdGl0bGUtZm9udC1zaXplOiAxLjI5cmVtICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuXG4kYXV0b2NvbXBsZXRlX2l0ZW0taGVpZ2h0OiBhdXRvICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXBhZGRpbmc6IDAuNXJlbSAxcmVtICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1iYWNrZ3JvdW5kOiAkYXV0b2NvbXBsZXRlX2xpc3QtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tdGh1bWJuYWlsLXdpZHRoOiA0LjVyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tdGh1bWJuYWlsLWhlaWdodDogNC41cmVtICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtc2l6ZTogMS4yOXJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW5hbWUtY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcblxuJGF1dG9jb21wbGV0ZV9pdGVtX2JyYW5kLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtX2JyYW5kLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbS1wcmljZS1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXByaWNlLWZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tcXVhbnRpdHktY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuJGF1dG9jb21wbGV0ZV9pdGVtX2Rpc3BsYXktb2xkLXByaWNlLWZpcnN0OiB0cnVlICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW5vcm1hbC1wcmljZS1jb2xvcjogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW5vcm1hbC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLWNvbG9yOiAkcHJpY2UtYm94X29sZC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtZm9udC1zaXplOiAkcHJpY2UtYm94X29sZC1wcmljZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X29sZC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uOiAkcHJpY2UtYm94X29sZC1wcmljZS10ZXh0LWRlY29yYXRpb24gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tc3BlY2lhbC1wcmljZS1jb2xvcjogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXNwZWNpYWwtcHJpY2UtZm9udC1zaXplOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXNwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcblxuLiN7JG5zfWF1dG9jb21wbGV0ZSB7XG4gICAgJHJvb3Q6ICY7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0b2NvbXBsZXRlX2xpc3QtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkYXV0b2NvbXBsZXRlX2xpc3QtYm9yZGVyLXJhZGl1cztcbiAgICBib3gtc2hhZG93OiAkYXV0b2NvbXBsZXRlX2xpc3QtYm94LXNoYWRvdztcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgbWFyZ2luLXRvcDogLTFweDtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPCN7JGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMtYnJlYWtwb2ludH1cIikge1xuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXV0b2NvbXBsZXRlLWxpc3QucHJvZHVjdCBkZCB7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogOXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hdXRvY29tcGxldGUtbGlzdCBkZCxcbiAgICAmX19pdGVtIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGF1dG9jb21wbGV0ZV9pdGVtLWJhY2tncm91bmQ7XG4gICAgICAgIHBhZGRpbmc6ICRhdXRvY29tcGxldGVfaXRlbS1wYWRkaW5nO1xuICAgICAgICBtYXJnaW46ICRhdXRvY29tcGxldGVfaXRlbS1tYXJnaW47XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRhdXRvY29tcGxldGVfaXRlbS1ib3JkZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyO1xuICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbS1mb250LXNpemU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiLCBcIjxsYXB0b3BcIikge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLWltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAkYXV0b2NvbXBsZXRlX2l0ZW0tdGh1bWJuYWlsLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tdGh1bWJuYWlsLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtZGV0YWlscyB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDJyZW07XG5cbiAgICAgICAgICAgIC5mLWZpeCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0taGVpZ2h0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtYnJhbmQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW1fYnJhbmQtZm9udC1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtbmFtZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbS1mb250LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLW5hbWUtY29sb3I7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi1wcmljZSB7XG4gICAgICAgICAgICBtYXJnaW46IDAuM3JlbSAwIDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLWJveCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgPiAucHJpY2Uge1xuICAgICAgICAgICAgY29sb3I6ICRhdXRvY29tcGxldGVfaXRlbS1ub3JtYWwtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbS1ub3JtYWwtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgPiAucHJpY2Uge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS10ZXh0LWRlY29yYXRpb247XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAmID4gLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDkuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTJyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICYgPiAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogOXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogLTJyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLXNwZWNpYWwtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGF1dG9jb21wbGV0ZV9pdGVtX2Rpc3BsYXktb2xkLXByaWNlLWZpcnN0KSB7XG4gICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG5cbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2VzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgfVxuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZSgpO1xuXG4gICAgICAgICYgKyAmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBvcHVsYXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZShcInBvcHVsYXJcIik7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKFwicG9wdWxhclwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZyZWUtc2hpcHBpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZShcImZyZWUtc2hpcHBpbmdcIik7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKFwiZnJlZS1zaGlwcGluZ1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlLXRleHQge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCk7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lXCIpIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5hdXRvY29tcGxldGUtbGlzdCB7XG4gICAgbWFyZ2luOiAtMXB4IDAgMXJlbTtcbiAgICBib3JkZXItdG9wOiAkYXV0b2NvbXBsZXRlX2xpc3QtYm9yZGVyO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYW1vdW50IHtcbiAgICAgICAgY29sb3I6ICRhdXRvY29tcGxldGVfaXRlbS1xdWFudGl0eS1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtd2VpZ2h0O1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuXG4gICAgICAgICY6bm90KDplbXB0eSkge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIpXCI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIihcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmF1dG9jb21wbGV0ZS1saXN0LXRpdGxlIHtcbiAgICBwYWRkaW5nOiAkYXV0b2NvbXBsZXRlX3RpdGxlLXBhZGRpbmc7XG4gICAgYm9yZGVyLWJvdHRvbTogJGF1dG9jb21wbGV0ZV90aXRsZS1ib3JkZXI7XG4gICAgY29sb3I6ICRhdXRvY29tcGxldGVfdGl0bGUtY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6ICRhdXRvY29tcGxldGVfdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfdGl0bGUtZm9udC1zaXplO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgbWFyZ2luOiAkYXV0b2NvbXBsZXRlX3RpdGxlLW1hcmdpbjtcblxuICAgICY6aG92ZXIsXG4gICAgJi5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICY6bm90KDplbXB0eSkge1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlL2hvb2snO1xuXG4kYmFkZ2VfZm9udC1zaXplOiAxLjFyZW0gIWRlZmF1bHQ7XG4kYmFkZ2VfZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRiYWRnZV9oZWlnaHQ6IDJlbSAhZGVmYXVsdDtcbiRiYWRnZV9wYWRkaW5nOiAwIDAuN3JlbSAhZGVmYXVsdDtcbiRiYWRnZV9ib3JkZXI6IDAgIWRlZmF1bHQ7XG4kYmFkZ2VfYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRiYWRnZV90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuXG4kYmFkZ2UtLWRlZmF1bHQtYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1kZWZhdWx0LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tbmV3LWJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnktNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1uZXctY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1kaXNjb3VudC1iYWNrZ3JvdW5kOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1kaXNjb3VudC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLWZyZWUtYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1mcmVlLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tZnJlZS1zaGlwcGluZy1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLWZyZWUtc2hpcHBpbmctY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1wb3B1bGFyLWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tcG9wdWxhci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLXJlY2VudGx5LWJvdWdodC1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLXJlY2VudGx5LWJvdWdodC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLWRhaWx5ZGVhbC1iYWNrZ3JvdW5kOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1kYWlseWRlYWwtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS10b3AtYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJhZGdlLS10b3AtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuQG1peGluIGJhZGdlKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJhZGdlLS1kZWZhdWx0LWNvbG9yO1xuICAgIGJvcmRlcjogJGJhZGdlX2JvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkYmFkZ2VfYm9yZGVyLXJhZGl1cztcbiAgICBwYWRkaW5nOiAkYmFkZ2VfcGFkZGluZztcbiAgICBmb250LXNpemU6ICRiYWRnZV9mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRiYWRnZV9mb250LXdlaWdodDtcbiAgICBtaW4taGVpZ2h0OiAkYmFkZ2VfaGVpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiAkYmFkZ2VfdGV4dC10cmFuc2Zvcm07XG5cbiAgICBAaW5jbHVkZSBiYWRnZV9ob29rKCR0eXBlKTtcbn1cblxuQG1peGluIGJhZGdlX3R5cGUoJHR5cGU6ICdkZWZhdWx0Jykge1xuICAgIEBpZiAoJHR5cGUgPT0gJ25ldycpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1uZXctYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tbmV3LWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ2ZyZWUnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZnJlZS1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1mcmVlLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ2ZyZWUtc2hpcHBpbmcnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZnJlZS1zaGlwcGluZy1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1mcmVlLXNoaXBwaW5nLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ3BvcHVsYXInKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tcG9wdWxhci1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1wb3B1bGFyLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Rpc2NvdW50Jykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLWRpc2NvdW50LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLWRpc2NvdW50LWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ3JlY2VudGx5LWJvdWdodCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1yZWNlbnRseS1ib3VnaHQtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tcmVjZW50bHktYm91Z2h0LWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ2RhaWx5ZGVhbCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1kYWlseWRlYWwtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tZGFpbHlkZWFsLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ2RhaWx5ZGVhbC1wZHAnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZGFpbHlkZWFsLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLWRhaWx5ZGVhbC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICd0b3AnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tdG9wLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLXRvcC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBiYWRnZV90eXBlLWhvb2soJHR5cGUpO1xufVxuXG5AbWl4aW4gYmFkZ2Vfc3BhbigkdHlwZTogJ2RlZmF1bHQnKSB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAgICYgKyAmIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBiYWRnZV9zcGFuLWhvb2soJHR5cGUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLmNzLWJyZWFkY3J1bWJzIHtcbiAgcGFkZGluZy10b3A6IDEuM3JlbTtcbiAgcGFkZGluZy1ib3R0b206IDEuM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX2xpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmNzLWJyZWFkY3J1bWJzX19pdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDEuOTVlbSAwIDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtOyB9XG4gICAgLmNzLWJyZWFkY3J1bWJzX19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gICAgLmNzLWJyZWFkY3J1bWJzX19pdGVtOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICByaWdodDogMC44ZW07XG4gICAgICBjb250ZW50OiBcIuKBhFwiO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX2xpbmsge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICM4ODg7IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2xpbms6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5jcy1icmVhZGNydW1ic19fbGluazpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogIzIxMjEyMTsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX3NlcGFyYXRvci1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDAuNWVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB3aWR0aDogMC44ZW07XG4gICAgaGVpZ2h0OiAwLjhlbTtcbiAgICBmaWxsOiAjODg4OyB9XG5cbi5jcy1jb250YWluZXItLWJyZWFkY3J1bWJzIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kOiAjZjBmMGYwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWNvbnRhaW5lci0tYnJlYWRjcnVtYnMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwIHVybChcIi4uL2ltYWdlcy9icmVhZGNydW1icy5wbmdcIikgbm8tcmVwZWF0IHJpZ2h0L2F1dG8gNi44cmVtOyB9IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtYnJlYWRjcnVtYnMge1xuICBwYWRkaW5nLXRvcDogMS4zcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4zcmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwOyB9XG4gIC5jcy1icmVhZGNydW1ic19fbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMC45NWVtIDAgMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjNyZW07IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW06bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgY29udGVudDogXCLigYRcIjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgY29sb3I6ICM4ODg7IH1cbiAgLmNzLWJyZWFkY3J1bWJzX19saW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiAjMzMzMzMzOyB9XG4gICAgLmNzLWJyZWFkY3J1bWJzX19saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMzMzMzMzM7IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2xpbms6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6ICMzMzMzMzM7IH1cbiAgLmNzLWJyZWFkY3J1bWJzX19zZXBhcmF0b3ItaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAwLjVlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IDAuOGVtO1xuICAgIGhlaWdodDogMC44ZW07XG4gICAgZmlsbDogIzg4ODsgfVxuXG4uY3MtY29udGFpbmVyLS1icmVhZGNydW1icyB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtY29udGFpbmVyLS1icmVhZGNydW1icyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9IH1cblxuLmNtcy1zZXJ3aXMgLmNzLWNvbnRhaW5lci0tYnJlYWRjcnVtYnMsIC5jbXMta29udGFrdCAuY3MtY29udGFpbmVyLS1icmVhZGNydW1icywgLmNtcy1vLW5hcyAuY3MtY29udGFpbmVyLS1icmVhZGNydW1icyB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuIiwiLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4kYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWN1c3RvbS1zaG93OiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX1RoZW1lLFxuICAgIGJyZWFkY3J1bWJzLFxuICAgIGN1c3RvbV9zZXBhcmF0b3IsXG4gICAgZGlzcGxheVxuKSAhZGVmYXVsdDtcblxuJGJyZWFkY3J1bWJzX2JhY2tncm91bmQtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19iYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9icmVhZGNydW1icy5wbmcnKSAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19iYWNrZ3JvdW5kOiAkYnJlYWRjcnVtYnNfYmFja2dyb3VuZC1jb2xvclxuICAgICRicmVhZGNydW1ic19iYWNrZ3JvdW5kLWltYWdlIG5vLXJlcGVhdCByaWdodCAvIGF1dG8gNi44cmVtICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYnNfaXRlbS1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19pdGVtLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfaXRlbS1ob3Zlci1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzX2l0ZW0tdmlzaXRlZC1jb2xvcjogJGJyZWFkY3J1bWJzX2l0ZW0tY29sb3IgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfbGFzdC1pdGVtLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG5cbiRicmVhZGNydW1ic19zZXBhcmF0b3ItY29sb3I6ICRicmVhZGNydW1ic19pdGVtLWNvbG9yICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb250ZW50OiAnXFwyMDQ0JyAhZGVmYXVsdDtcblxuJGJyZWFkY3J1bWJzX3ZlcnRpY2FsLXNwYWNlOiAxLjNyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31icmVhZGNydW1icyB7XG4gICAgJHJvb3Q6ICY7XG4gICAgcGFkZGluZy10b3A6ICRicmVhZGNydW1ic192ZXJ0aWNhbC1zcGFjZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGJyZWFkY3J1bWJzX3ZlcnRpY2FsLXNwYWNlO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwIDEuOTVlbSAwIDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnNfaXRlbS1mb250LXNpemU7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX2xhc3QtaXRlbS1jb2xvcjtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjhlbTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRicmVhZGNydW1ic19zZXBhcmF0b3ItY29udGVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19zZXBhcmF0b3ItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRicmVhZGNydW1ic19zZXBhcmF0b3ItY3VzdG9tLXNob3cpIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnNfaXRlbS1jb2xvcjtcblxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19pdGVtLXZpc2l0ZWQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnNfaXRlbS1ob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NlcGFyYXRvci1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgcmlnaHQ6IDAuNWVtO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIHdpZHRoOiAwLjhlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjhlbTtcbiAgICAgICAgZmlsbDogJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb2xvcjtcbiAgICB9XG59XG5cbi5jcy1jb250YWluZXIge1xuICAgICYtLWJyZWFkY3J1bWJzIHtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYnJlYWRjcnVtYnNfYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRicmVhZGNydW1ic19iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIn5DcmVhdGl2ZXNob3AvY29tcG9uZW50cy9icmVhZGNydW1icy9icmVhZGNydW1icy5zY3NzXCI7XG5AaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuXG4kYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWN1c3RvbS1zaG93OiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX1RoZW1lLFxuICAgIGJyZWFkY3J1bWJzLFxuICAgIGN1c3RvbV9zZXBhcmF0b3IsXG4gICAgZGlzcGxheVxuKSAhZGVmYXVsdDtcblxuJGJyZWFkY3J1bWJzX2l0ZW0tZm9udC1zaXplOiAxLjNyZW07XG4kYnJlYWRjcnVtYnNfaXRlbS1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRicmVhZGNydW1ic19pdGVtLWhvdmVyLWNvbG9yOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuJGJyZWFkY3J1bWJzX2l0ZW0tdmlzaXRlZC1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRicmVhZGNydW1ic19sYXN0LWl0ZW0tY29sb3I6ICRrbWFfY29sb3JfZ3JleS01MDA7XG5cbiRicmVhZGNydW1ic19zZXBhcmF0b3ItY29sb3I6ICRicmVhZGNydW1ic19pdGVtLWNvbG9yICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb250ZW50OiBcIlxcMjA0NFwiICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYnNfdmVydGljYWwtc3BhY2U6IDEuM3JlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWJyZWFkY3J1bWJzIHtcbiAgICAkcm9vdDogJjtcbiAgICBwYWRkaW5nLXRvcDogJGJyZWFkY3J1bWJzX3ZlcnRpY2FsLXNwYWNlO1xuICAgIHBhZGRpbmctYm90dG9tOiAkYnJlYWRjcnVtYnNfdmVydGljYWwtc3BhY2U7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTA7XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwIDAuOTVlbSAwIDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnNfaXRlbS1mb250LXNpemU7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX2xhc3QtaXRlbS1jb2xvcjtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgY29udGVudDogJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb250ZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jdXN0b20tc2hvdykge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19pdGVtLWNvbG9yO1xuXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX2l0ZW0tdmlzaXRlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VwYXJhdG9yLWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByaWdodDogMC41ZW07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgd2lkdGg6IDAuOGVtO1xuICAgICAgICBoZWlnaHQ6IDAuOGVtO1xuICAgICAgICBmaWxsOiAkYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWNvbG9yO1xuICAgIH1cbn1cblxuLmNzLWNvbnRhaW5lciB7XG4gICAgJi0tYnJlYWRjcnVtYnMge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNtcy1zZXJ3aXMsIC5jbXMta29udGFrdCwgLmNtcy1vLW5hcyB7XG4gIC5jcy1jb250YWluZXItLWJyZWFkY3J1bWJzIHtcbiAgICBkaXNwbGF5OiBub25lIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cblxuLmNzLWJ1dHRvbiwgLmNzLWJ1dHRvbjp2aXNpdGVkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gIG1hcmdpbjogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHotaW5kZXg6IDU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAuY3MtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbjp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gIC5jcy1idXR0b25bZGlzYWJsZWRdLCAuY3MtYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICBjb2xvcjogIzg3ODc4NztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG5cbi5jcy1idXR0b25fX3NwYW4ge1xuICBmb250LXNpemU6IDEuNnJlbTsgfVxuXG4uY3MtYnV0dG9uX19pY29uIHtcbiAgbWF4LXdpZHRoOiAxZW07XG4gIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgei1pbmRleDogMjtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3MtYnV0dG9uLWNvbXBvbmVudCB7XG4gIG1hcmdpbjogMCAwIDNyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudCwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6dmlzaXRlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgIC5jcy1idXR0b24tY29tcG9uZW50OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV0dG9uLWNvbXBvbmVudDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV0dG9uLWNvbXBvbmVudDp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1idXR0b24tY29tcG9uZW50OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAuY3MtYnV0dG9uLWNvbXBvbmVudFtkaXNhYmxlZF0sIC5jcy1idXR0b24tY29tcG9uZW50OnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtYnV0dG9uLWNvbXBvbmVudCB7XG4gICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQtLXNraXAtc3BhY2luZyB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50X19zcGFuIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudF9faWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS42cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnRfX2Ftb3VudDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcoJzsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudF9fYW1vdW50OmFmdGVyIHtcbiAgICBjb250ZW50OiAnKSc7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvY29tcG9uZW50LXNwYWNpbmcnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuXG4kYnV0dG9uLWZhbGxiYWNrX3R5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGJ1dHRvbi1mYWxsYmFja19pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4kYnV0dG9uLWNvbXBvbmVudF90eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRidXR0b24tY29tcG9uZW50X2ljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG4kYnV0dG9uLWNvbXBvbmVudF9ob3Jpem9udGFsLXBvc2l0aW9uOiA1MCUgIWRlZmF1bHQ7XG4kYnV0dG9uLWNvbXBvbmVudF9ob3Jpem9udGFsLXRyYW5zbGF0aW9uOiB0cmFuc2xhdGVYKC01MCUpICFkZWZhdWx0O1xuXG4uI3skbnN9YnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICR0eXBlOiAkYnV0dG9uLWZhbGxiYWNrX3R5cGUsXG4gICAgICAgICRpY29uX3BvczogJGJ1dHRvbi1mYWxsYmFja19pY29uLXBvc1xuICAgICk7XG5cbiAgICAmX19zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJGJ1dHRvbi1mYWxsYmFja190eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWZhbGxiYWNrX2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRidXR0b24tZmFsbGJhY2tfdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGJ1dHRvbi1mYWxsYmFja19pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cbn1cblxuLiN7JG5zfWJ1dHRvbi1jb21wb25lbnQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgJHR5cGU6ICRidXR0b24tY29tcG9uZW50X3R5cGUsXG4gICAgICAgICRpY29uX3BvczogJGJ1dHRvbi1jb21wb25lbnRfaWNvbi1wb3NcbiAgICApO1xuICAgIEBpbmNsdWRlIGNvbXBvbmVudC1zcGFjaW5nKCk7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogJGJ1dHRvbi1jb21wb25lbnRfaG9yaXpvbnRhbC1wb3NpdGlvbjtcbiAgICB0cmFuc2Zvcm06ICRidXR0b24tY29tcG9uZW50X2hvcml6b250YWwtdHJhbnNsYXRpb247XG5cbiAgICAmX19zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJGJ1dHRvbi1jb21wb25lbnRfdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGJ1dHRvbi1jb21wb25lbnRfaWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJGJ1dHRvbi1jb21wb25lbnRfdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGJ1dHRvbi1jb21wb25lbnRfaWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19hbW91bnQge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG5AbWl4aW4gY29tcG9uZW50LXNwYWNpbmcoJG1hcmdpbnMtY29uZmlnOiAkY29tcG9uZW50LXNwYWNpbmctY29uZmlndXJhdGlvbikge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkbWFyZ2lucy1jb25maWcsIGRlZmF1bHQpIHtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRtYXJnaW5zLWNvbmZpZywgZGVmYXVsdCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIERlZmF1bHQgY29tcG9uZW50IG1hcmdpbiB2YWx1ZVxuICAgICAgICBtYXJnaW46IDAgMCAzcmVtO1xuICAgIH1cblxuICAgIEBpZiBtYXAtaGFzLWtleSgkbWFyZ2lucy1jb25maWcsIHJlc3BvbnNpdmUpIHtcbiAgICAgICAgLy8gQWRkaW5nIG1hcmdpbiBydWxlcyBmb3IgZWFjaCBwYXNzZWQgYnJlYWtwb2ludFxuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJG1hcmdpbiBpbiBtYXAtZ2V0KCRtYXJnaW5zLWNvbmZpZywgcmVzcG9uc2l2ZSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoI3skYnJlYWtwb2ludH0pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46ICRtYXJnaW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1za2lwLXNwYWNpbmcge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBNaXhpbnMgZm9yIGZsZXhpYmxlIGNvbnRhaW5lcnMgZGVjbGFyYXRpb24uXG4gKi9cbi8qKlxuICogRGVmaW5lcyBwYWdlIGNvbnRhaW5lci4gVGhpcyBtaXhpbiBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGFsd2F5cyBlcXVhbCBwYWRkaW5nXG4gKiBmb3IgbW9iaWxlIHNjcmVlbnMgb24gYm90aCBzaXplIG9mIHRoZSBkZXZpY2UuXG4gKi9cbi8qKlxuICogTmVnYXRlcyBwYXJlbnQgY29udGFpbmVyJ3MgcGFkZGluZyBhbmQgc2V0cyBpdCBvd24uXG4gKiBTb21ldGhpbWVzIHRoaXMgaGFzIHRvIGJlIGRvbmUgdG8gbWFrZSBiYWNrZ3JvdW5kIGV2ZW4gdG8gb3RoZXIgY29udGFpbmVycycgY29udGVudC5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIGNvbnRhaW5lciB3cmFwcGVyIHRoYXQgbWFrZXMgc3VyZSBjb250bmV0IGRvZXNuJ3QgZXh0ZW5kIGFib3ZlIGNlcnRhaW4gd2lkdGggYW5kIGlzIGFsd2F5cyBjZW50ZXJlZC5cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4uY3MtY29udGFpbmVyIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6IDEyMHJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtY29udGFpbmVyX19pbm5lcjpiZWZvcmUsIC5jcy1jb250YWluZXJfX2lubmVyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogNDAlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMzIlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMzAlOyB9IH1cbiAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgIHdpZHRoOiA1NiU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDY1JTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDY3JTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbi0tc3BhY2UtdG9wIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07IH0gfVxuICAuY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9iYWNrZ3JvdW5kLnBuZ1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfSB9XG4gIC5jcy1jb250YWluZXItLXNwYWNpb3VzIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyLS1zcGFjaW91cyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTsgfSB9XG4gIC5jcy1jb250YWluZXItLW5vc2Nyb2xsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5jcy1jb250YWluZXItLW9udG9wIHtcbiAgICB6LWluZGV4OiAzMDE7IH1cbiAgLmNzLWNvbnRhaW5lci0tdmlld3BvcnQtd2lkdGgge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogMTIwcmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1jb250YWluZXJfX2lubmVyOmJlZm9yZSwgLmNzLWNvbnRhaW5lcl9faW5uZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiA0MCU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAzMiU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAyNSU7IH0gfVxuICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgd2lkdGg6IDU2JTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNjUlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNzIlOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uLS1zcGFjZS10b3Age1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTsgfSB9XG4gIC5jcy1jb250YWluZXItLWNvbnRyYXN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXItLWNvbnRyYXN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2JhY2tncm91bmQucG5nXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tc3BhY2lvdXMge1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXItLXNwYWNpb3VzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtOyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tbm9zY3JvbGwge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmNzLWNvbnRhaW5lci0tb250b3Age1xuICAgIHotaW5kZXg6IDMwMTsgfVxuICAuY3MtY29udGFpbmVyLS12aWV3cG9ydC13aWR0aCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1jb29raWUtbWVzc2FnZSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDEuMnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICMwMDA7XG4gIGJveC1zaGFkb3c6IDAgLTAuM3JlbSAwLjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBmb250LXNpemU6IDg1JTtcbiAgei1pbmRleDogOTg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTEwJSwgMCk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCwgb3BhY2l0eSAwLjE4cyBsaW5lYXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1jb29raWUtbWVzc2FnZS0tc2hvd24ge1xuICAgIHotaW5kZXg6IDIwMjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogOHJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2lubmVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uLXdyYXBwZXIge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24td3JhcHBlciB7XG4gICAgICAgIGFsaWduLXNlbGY6IHVuc2V0OyB9IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IC5ibG9jay1jbXMtbGluay53aWRnZXQsXG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZGlzcGxheTogaW5saW5lOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGEsIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCBhOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMzMjRkY2Y7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgYTpob3ZlciwgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6Zm9jdXMsIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCBhOmFjdGl2ZSwgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6dmlzaXRlZDpob3ZlciwgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6dmlzaXRlZDpmb2N1cyB7XG4gICAgICBjb2xvcjogIzE0MmI5ZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwLjVyZW07XG4gICAgd2lkdGg6IDUuNXJlbTtcbiAgICBoZWlnaHQ6IDUuNXJlbTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvb2tpZS1tZXNzYWdlX19pY29uIHtcbiAgICAgICAgdG9wOiAtMy41cmVtO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBtYXJnaW4tdG9wOiAxLjJyZW07IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24sIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b25bZGlzYWJsZWRdLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMS4ycmVtOyB9IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24tc3BhbiB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24taWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS42cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJGNvb2tpZS1tZXNzYWdlX2JhY2tncm91bmQtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRjb29raWUtbWVzc2FnZV9mb250LXNpemU6IDg1JSAhZGVmYXVsdDtcbiRjb29raWUtbWVzc2FnZV9mb250LWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfbGluay1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGNvb2tpZS1tZXNzYWdlX2xpbmstY29sb3ItLWhvdmVyOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfaWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludDogJ3RhYmxldCcgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1hbGlnbjogZmxleC1zdGFydCAhZGVmYXVsdDtcblxuLiN7JG5zfWNvb2tpZS1tZXNzYWdlIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDEuMnJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29va2llLW1lc3NhZ2VfYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogJGNvb2tpZS1tZXNzYWdlX2ZvbnQtY29sb3I7XG4gICAgYm94LXNoYWRvdzogMCAtMC4zcmVtIDAuNXJlbSAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgZm9udC1zaXplOiAkY29va2llLW1lc3NhZ2VfZm9udC1zaXplO1xuICAgIHotaW5kZXg6IDk4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTEwJSwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQsIG9wYWNpdHkgMC4xOHMgbGluZWFyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICBib3R0b206ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc2hvd24ge1xuICAgICAgICB6LWluZGV4OiAyMDI7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJl9faW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDhyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1icmVha3BvaW50fScpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24td3JhcHBlciB7XG4gICAgICAgIGFsaWduLXNlbGY6ICRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWFsaWduO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAuYmxvY2stY21zLWxpbmsud2lkZ2V0LFxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICAgICAkY29sb3I6ICRjb29raWUtbWVzc2FnZV9saW5rLWNvbG9yLFxuICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGNvb2tpZS1tZXNzYWdlX2xpbmstY29sb3ItLWhvdmVyXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICB3aWR0aDogNS41cmVtO1xuICAgICAgICBoZWlnaHQ6IDUuNXJlbTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgdG9wOiAtMy41cmVtO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGNvb2tpZS1tZXNzYWdlX2ljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgbWFyZ2luLXRvcDogMS4ycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkY29va2llLW1lc3NhZ2VfaWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGNvb2tpZS1tZXNzYWdlX2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5jcy1kaXNwbGF5LWNvbnRyb2xsZXItLWhpZGRlbi1tb2JpbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAuY3MtZGlzcGxheS1jb250cm9sbGVyLS1oaWRkZW4tZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi4jeyRuc31kaXNwbGF5LWNvbnRyb2xsZXIge1xuICAgICYtLWhpZGRlbi1tb2JpbGUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1oaWRkZW4tZGVza3RvcCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1kcm9wZG93bi1zd2l0Y2hlciB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXIgLm1hZ2UtZHJvcGRvd24tZGlhbG9nIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgIGxlZnQ6IDFyZW07IH0gfVxuICAuY3MtZHJvcGRvd24tc3dpdGNoZXItLWN1cnJlbmN5IC5tYWdlLWRyb3Bkb3duLWRpYWxvZyB7XG4gICAgcmlnaHQ6IC0xcmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXgtc2hyaW5rOiAwOyB9XG4gICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXI6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMS4zcmVtO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDAuMnJlbSBzb2xpZCAjZmZmO1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyLS1zdG9yZXM6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX29wdGlvbi1pY29uIHtcbiAgICBtaW4td2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNnJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlci0tbGFuZ3VhZ2UgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19vcHRpb24taWNvbiB7XG4gICAgICAgIHdpZHRoOiAxLjVyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlciAuc3dpdGNoZXItb3B0aW9ucyB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyIHtcbiAgICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCAjZGNkY2RjIHNvbGlkO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXI6YmVmb3JlLCAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzI0ZGNmO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciwgcmlnaHQgMC4xNXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgcmlnaHQ6IDNyZW07IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXI6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgIHJpZ2h0OiAyLjVyZW07IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIuYWN0aXZlOmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyLmFjdGl2ZTphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbSAwIDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXI6YmVmb3JlLCAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXI6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB3aWR0aDogMC43cmVtO1xuICAgICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyLCByaWdodCAwLjE1cyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyO1xuICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXI6YmVmb3JlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgcmlnaHQ6IDAuNXJlbTsgfVxuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXI6YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyLmFjdGl2ZTpiZWZvcmUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH1cbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyLmFjdGl2ZTphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIuYWN0aXZlIHtcbiAgICAgICAgICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7IH0gfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci1zcGFuIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjZjBmMGYwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlOyB9IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0LWl0ZW0tbGluayB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGNvbG9yOiAjMjEyMTIxICFpbXBvcnRhbnQ7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0LWl0ZW0tbGluazpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0LWl0ZW0tbGluayB7XG4gICAgICAgICAgcGFkZGluZzogMS40cmVtIDJyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0LWl0ZW0tbGluayB7XG4gICAgICAgICAgcGFkZGluZzogMC42cmVtIDEuOHJlbTtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsgfSB9XG5cbi5jcy1kcm9wZG93bi1zd2l0Y2hlciB7XG4gIHdpZHRoOiB1bnNldDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBmb250LXdlaWdodDogNDAwOyB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlcjo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlci0tbGFuZ3VhZ2U6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICMzMzMzMzM7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIGxlZnQ6IDFyZW07IH1cbiAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyLS1sYW5ndWFnZSAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXItc3BhbiB7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHdpZHRoOiAxOHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyLS1sYW5ndWFnZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH0gfVxuICAuY3MtZHJvcGRvd24tc3dpdGNoZXItLWN1cnJlbmN5IC5tYWdlLWRyb3Bkb3duLWRpYWxvZyB7XG4gICAgbGVmdDogLTFyZW0gIWltcG9ydGFudDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXItLWN1cnJlbmN5IC5tYWdlLWRyb3Bkb3duLWRpYWxvZyB7XG4gICAgICAgIGxlZnQ6IHVuc2V0ICFpbXBvcnRhbnQ7IH0gfVxuICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX29wdGlvbi1pY29uLS1hY3RpdmUge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjdmN2Y3OyB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC43NXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIgc3BhbiB7XG4gICAgICBsaW5lLWhlaWdodDogMTsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlciNzd2l0Y2hlci1jdXJyZW5jeS10cmlnZ2VyLXRvcGJhciB7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjo6YmVmb3JlLCAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgICB3aWR0aDogMC41cmVtOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOjpiZWZvcmUge1xuICAgICAgcmlnaHQ6IDAuMzVyZW07IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXI6OmFmdGVyIHtcbiAgICAgIHJpZ2h0OiAwOyB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlciAuc3dpdGNoZXItb3B0aW9ucyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAuY3MtZHJvcGRvd24tc3dpdGNoZXIgLm1hZ2UtZHJvcGRvd24tZGlhbG9nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1cmVtO1xuICAgIGxlZnQ6IC02cmVtO1xuICAgIHJpZ2h0OiAtMXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlciAubWFnZS1kcm9wZG93bi1kaWFsb2cge1xuICAgICAgICBsZWZ0OiB1bnNldDtcbiAgICAgICAgcmlnaHQ6IDA7IH0gfVxuICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbS1saW5rIHtcbiAgICBwYWRkaW5nOiAwLjZyZW0gMC44cmVtOyB9XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIHBzZXVkb2ljb25fYmVmb3JlLWhvb2soJHR5cGUpIHtcbn1cblxuQG1peGluIHBzZXVkb2ljb25fYWZ0ZXItaG9vaygkdHlwZSkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4nO1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtYm90dG9tLWJvcmRlcjogMXB4ICRjb2xvcl9ib3JkZXItNTAwIHNvbGlkICFkZWZhdWx0O1xuXG4vLyBPZmZjYW52YXMgdHJpZ2dlciBvcHRpb25zXG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItZW5hYmxlZDogdHJ1ZSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLS1ob3ZlcjogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLS1hY3RpdmU6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci10eXBlOiAnYXJyb3cnICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LWRlZmF1bHQ6ICdkb3duJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1hY3RpdmU6ICd1cCcgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItd2lkdGg6IDAuN3JlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1oZWlnaHQ6IDAuMXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1vZmZzZXQ6IDNyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItcG9zaXRpb24tc2lkZS1vZmZzZXQ6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8gRHJvcGRvd24gdHJpZ2dlciBvcHRpb25zXG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1lbmFibGVkOiB0cnVlICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTgwMCAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yLS1ob3ZlcjogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvci0tYWN0aXZlOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXR5cGU6ICdhcnJvdycgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1kZWZhdWx0OiAnZG93bicgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1hY3RpdmU6ICd1cCcgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci13aWR0aDogMC43cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItaGVpZ2h0OiAwLjFyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1vZmZzZXQ6IDAuNXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXBvc2l0aW9uLXNpZGUtb2Zmc2V0OiAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1ib3JkZXItY29sb3I6ICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX2xpc3QtYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX2xpc3QtaXRlbS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfaG92ZXItYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfdG9wYmFyLXNlcGFyYXRvci1ib3JkZXI6IDAuMnJlbSBzb2xpZCAkY29sb3JfYm9yZGVyLTEwMCAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLXN3aXRjaGVyX2JvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLXdpZHRoOiAxLjVyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfbGFuZ3VhZ2UtZmxhZy1oZWlnaHQ6IDEuNXJlbSAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1wcmltYXJ5OiAxLjRyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXNlY29uZGFyeTogMS4xcmVtICFkZWZhdWx0O1xuXG4uI3skbnN9ZHJvcGRvd24tc3dpdGNoZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIC5tYWdlLWRyb3Bkb3duLWRpYWxvZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgICAgICBsZWZ0OiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY3VycmVuY3kge1xuICAgICAgICAubWFnZS1kcm9wZG93bi1kaWFsb2cge1xuICAgICAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXNocmluazogMDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAxLjNyZW07XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkZHJvcGRvd24tc3dpdGNoZXJfdG9wYmFyLXNlcGFyYXRvci1ib3JkZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXN0b3JlcyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3B0aW9uIHtcbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJGRyb3Bkb3duLXN3aXRjaGVyX2xhbmd1YWdlLWZsYWctd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLWhlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4ycmVtO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAjeyRyb290fS0tbGFuZ3VhZ2UgJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJGRyb3Bkb3duLXN3aXRjaGVyX2xhbmd1YWdlLWZsYWctd2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN3aXRjaGVyLW9wdGlvbnMge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdHJpZ2dlciB7XG4gICAgICAgIHBhZGRpbmc6IDIuNHJlbSAycmVtO1xuICAgICAgICBmb250LXNpemU6ICRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtcHJpbWFyeTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy1ib3R0b20tYm9yZGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGlmICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1lbmFibGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci10eXBlLFxuICAgICAgICAgICAgICAgICRhcnJvdy1kZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItYXJyb3ctZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAkYXJyb3ctYWN0aXZlOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItYXJyb3ctYWN0aXZlLFxuICAgICAgICAgICAgICAgICR3aWR0aDogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLXdpZHRoLFxuICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1oZWlnaHQsXG4gICAgICAgICAgICAgICAgJGFycm93LW9mZnNldDogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LW9mZnNldCxcbiAgICAgICAgICAgICAgICAkcG9zaXRpb24tc2lkZS1vZmZzZXQ6XG4gICAgICAgICAgICAgICAgICAgICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1wb3NpdGlvbi1zaWRlLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkY29sb3I6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1jb2xvcixcbiAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1jb2xvci0taG92ZXIsXG4gICAgICAgICAgICAgICAgJGNvbG9yLWV4cGFuZGVkOlxuICAgICAgICAgICAgICAgICAgICAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3ItLWFjdGl2ZSxcbiAgICAgICAgICAgICAgICAkYWN0aXZlLXNlbGVjdG9yOiAnJi5hY3RpdmUnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gICAgICAgICAgICBmb250LXNpemU6ICRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtc2Vjb25kYXJ5O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMS41cmVtIDAgMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG5cbiAgICAgICAgICAgIEBpZiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1lbmFibGVkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LWRlZmF1bHQ6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LWRlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgICRhcnJvdy1hY3RpdmU6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LWFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgJHdpZHRoOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci13aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgJGhlaWdodDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctb2Zmc2V0OiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDpcbiAgICAgICAgICAgICAgICAgICAgICAgICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXBvc2l0aW9uLXNpZGUtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAkY29sb3I6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRkcm9wZG93bi1zd2l0Y2hlci10cmlnZ2VyLWNvbG9yLS1ob3ZlcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWV4cGFuZGVkOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvci0tYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAkYWN0aXZlLXNlbGVjdG9yOiAnJi5hY3RpdmUnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGRyb3Bkb3duLXN3aXRjaGVyX2JvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGRyb3Bkb3duLXN3aXRjaGVyX2JvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMi40cmVtIDJyZW07XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAkZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXNlY29uZGFyeTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGRyb3Bkb3duLXN3aXRjaGVyX2JvcmRlci1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAxcHggMXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmLWl0ZW0tbGluayB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1pdGVtLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLXN3aXRjaGVyX2hvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjRyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtcHJpbWFyeTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNnJlbSAxLjhyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXNlY29uZGFyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wc2V1ZG9pY29uL2hvb2snO1xuXG4kcHNldWRvaWNvbi10eXBlOiAncGx1cycgIWRlZmF1bHQ7IC8vIHBsdXMgKGRlZmF1bHQpIG9yIGFycm93XG4vLyBBbmltYXRpb24gZm9yIGFycm93cyB3b3JrcyBvbmx5IGlmIGRlZmF1bHQgYW5kIGFjdGl2ZSBkaXJlY3Rpb24gYXJlIG9wcG9zaXRlXG4kcHNldWRvaWNvbi1hbmltYXRlOiB0cnVlICFkZWZhdWx0O1xuJHBzZXVkb2ljb24tYW5pbWF0aW9uLXRpbWU6IDAuMTVzICFkZWZhdWx0O1xuJHBzZXVkb2ljb24tY29sb3I6ICRjb2xvcl9ib3JkZXItNzAwICFkZWZhdWx0O1xuJHBzZXVkb2ljb24taG92ZXItY29sb3I6ICRjb2xvcl9ib3JkZXItNzAwICFkZWZhdWx0O1xuJHBzZXVkb2ljb24tZXhwYW5kZWQtY29sb3I6ICRjb2xvcl9ib3JkZXItNzAwICFkZWZhdWx0O1xuJHBzZXVkb2ljb24td2lkdGg6IDEuMnJlbSAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWhlaWdodDogMC4ycmVtICFkZWZhdWx0O1xuJHBzZXVkb2ljb24tcG9zaXRpb24tc2lkZS1vZmZzZXQ6ICRwYWdlX2VkZ2UtZ3V0dGVyICFkZWZhdWx0O1xuXG4vLyBBZGRpdGlvbmFsIHNldHRpbmdzIGZvciBhcnJvd3NcbiRwc2V1ZG9pY29uLWFycm93LWRlZmF1bHQtZGlyZWN0aW9uOiAndXAnICFkZWZhdWx0O1xuJHBzZXVkb2ljb24tYXJyb3ctYWN0aXZlLWRpcmVjdGlvbjogJ2Rvd24nICFkZWZhdWx0O1xuLy8gSW4gc29tZSBjYXNlcyAoaXQgZGVwZW5kcyBvbiAkcHNldWRvaWNvbi13aWR0aC9oZWlnaHQgdmFsdWUpLCB3ZSBuZWVkIHRvIGZpeCBvZmZzZXQgZm9yIGxlZnQgcGFydCBvZiBpY29uXG4kcHNldWRvaWNvbi1hcnJvdy1sZWZ0LW9mZnNldDogY2FsYyhcbiAgICAjeyRwc2V1ZG9pY29uLXBvc2l0aW9uLXNpZGUtb2Zmc2V0fSArICN7JHBzZXVkb2ljb24td2lkdGh9IC0gI3syICpcbiAgICAgICAgJHBzZXVkb2ljb24taGVpZ2h0fVxuKSAhZGVmYXVsdDtcblxuJHBzZXVkb2ljb24tYWN0aXZlLXNlbGVjdG9yOiAnJlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXScgIWRlZmF1bHQ7XG5cbkBtaXhpbiBwc2V1ZG9pY29uKFxuICAgICR0eXBlOiAkcHNldWRvaWNvbi10eXBlLFxuICAgICRhbmltYXRlZDogJHBzZXVkb2ljb24tYW5pbWF0ZSxcbiAgICAkYW5pbWF0aW9uLXRpbWU6ICRwc2V1ZG9pY29uLWFuaW1hdGlvbi10aW1lLFxuICAgICRjb2xvcjogJHBzZXVkb2ljb24tY29sb3IsXG4gICAgJGNvbG9yLWhvdmVyOiAkcHNldWRvaWNvbi1ob3Zlci1jb2xvcixcbiAgICAkY29sb3ItZXhwYW5kZWQ6ICRwc2V1ZG9pY29uLWV4cGFuZGVkLWNvbG9yLFxuICAgICR3aWR0aDogJHBzZXVkb2ljb24td2lkdGgsXG4gICAgJGhlaWdodDogJHBzZXVkb2ljb24taGVpZ2h0LFxuICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDogJHBzZXVkb2ljb24tcG9zaXRpb24tc2lkZS1vZmZzZXQsXG4gICAgJGFycm93LWRlZmF1bHQ6ICRwc2V1ZG9pY29uLWFycm93LWRlZmF1bHQtZGlyZWN0aW9uLFxuICAgICRhcnJvdy1hY3RpdmU6ICRwc2V1ZG9pY29uLWFycm93LWFjdGl2ZS1kaXJlY3Rpb24sXG4gICAgJGFycm93LW9mZnNldDogJHBzZXVkb2ljb24tYXJyb3ctbGVmdC1vZmZzZXQsXG4gICAgJGFjdGl2ZS1zZWxlY3RvcjogJHBzZXVkb2ljb24tYWN0aXZlLXNlbGVjdG9yXG4pIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuXG4gICAgICAgIEBpZiAoJGFuaW1hdGVkKSB7XG4gICAgICAgICAgICBAaWYgKCR0eXBlID09ICdhcnJvdycpIHtcbiAgICAgICAgICAgICAgICBAaWYgKCgkYXJyb3ctZGVmYXVsdCA9PSAndXAnKSBhbmQgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSkgb3JcbiAgICAgICAgICAgICAgICAgICAgKCgkYXJyb3ctZGVmYXVsdCA9PSAnZG93bicpIGFuZCAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSkgb3JcbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgKCRhcnJvdy1kZWZhdWx0ID09ICdsZWZ0JykgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0JylcbiAgICAgICAgICAgICAgICAgICAgKSBvclxuICAgICAgICAgICAgICAgICAgICAoKCRhcnJvdy1kZWZhdWx0ID09ICdyaWdodCcpIGFuZCAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpKVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRhbmltYXRpb24tdGltZSBsaW5lYXIsXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodCAkYW5pbWF0aW9uLXRpbWUgbGluZWFyLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkYW5pbWF0aW9uLXRpbWUgbGluZWFyO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRhbmltYXRpb24tdGltZSBsaW5lYXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICgyICogJGFuaW1hdGlvbi10aW1lKSBlYXNlLW91dCxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSAkYW5pbWF0aW9uLXRpbWUgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJGFuaW1hdGlvbi10aW1lIGxpbmVhcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRjb2xvci1ob3ZlciAhPSAkY29sb3IpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRhbmltYXRpb24tdGltZSBsaW5lYXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgQGlmICgkY29sb3ItaG92ZXIgIT0gJGNvbG9yKSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRhY3RpdmUtc2VsZWN0b3J9IHtcbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGlmICgkY29sb3ItZXhwYW5kZWQgIT0gJGNvbG9yKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWV4cGFuZGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnYXJyb3cnKSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgLTUwJSwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctZGVmYXVsdCA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDUwJSwgMCk7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctZGVmYXVsdCA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRhY3RpdmUtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTIyNWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDkwZGVnKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skYWN0aXZlLXNlbGVjdG9yfSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoLTkwZGVnKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDApICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb25fYmVmb3JlLWhvb2soJHR5cGUpO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uX2FmdGVyLWhvb2soJHR5cGUpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL2Ryb3Bkb3duLXN3aXRjaGVyL2Ryb3Bkb3duLXN3aXRjaGVyLnNjc3NcIjtcblxuLiN7JG5zfWRyb3Bkb3duLXN3aXRjaGVyIHtcbiAgICAkcm9vdDogJjtcbiAgICB3aWR0aDogdW5zZXQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgJi0tbGFuZ3VhZ2Uge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIGxlZnQ6IDFyZW07XG4gICAgICAgIH1cbiAgICAgICAgI3skcm9vdH1fX3RyaWdnZXIge1xuICAgICAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLS1jdXJyZW5jeSB7XG4gICAgICAgIC5tYWdlLWRyb3Bkb3duLWRpYWxvZyB7XG4gICAgICAgICAgICBsZWZ0OiAtMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgbGVmdDogdW5zZXQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19vcHRpb24ge1xuICAgICAgICAmLWljb24tLWFjdGl2ZSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAka21hX2NvbG9yX2dyZXktMTAwO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX3RyaWdnZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgfVxuICAgICAgICAmI3N3aXRjaGVyLWN1cnJlbmN5LXRyaWdnZXItdG9wYmFyIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9ibGFjaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjM1cmVtO1xuICAgICAgICB9XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5zd2l0Y2hlci1vcHRpb25zIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICAgIC5tYWdlLWRyb3Bkb3duLWRpYWxvZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1cmVtO1xuICAgICAgICBsZWZ0OiAtNnJlbTtcbiAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgIGxlZnQ6IHVuc2V0O1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fbGlzdC1pdGVtLWxpbmsge1xuICAgICAgICBwYWRkaW5nOiAwLjZyZW0gMC44cmVtO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5jcy1maWVsZCxcbi5jcy1pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuICAuY3MtZmllbGRfX2NvbnRyb2wsXG4gIC5jcy1pbnB1dF9fY29udHJvbCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLWZpZWxkX19sYWJlbCxcbiAgLmNzLWlucHV0X19sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBwYWRkaW5nOiA0cHggMDsgfVxuICAgIC5yZXF1aXJlZCAuY3MtZmllbGRfX2xhYmVsOmFmdGVyLCAucmVxdWlyZWRcbiAgICAuY3MtaW5wdXRfX2xhYmVsOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiICpcIjtcbiAgICAgIGNvbG9yOiAjZmYwMDE4O1xuICAgICAgcGFkZGluZzogNHB4IDA7IH1cbiAgLmNzLWZpZWxkX19pbnB1dCwgLmNzLWZpZWxkX190ZXh0YXJlYSxcbiAgLmNzLWlucHV0X19pbnB1dCxcbiAgLmNzLWlucHV0X190ZXh0YXJlYSB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNC44cmVtO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cbiAgICAuY3MtZmllbGRfX2lucHV0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZpZWxkX19pbnB1dDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1maWVsZF9fdGV4dGFyZWE6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZmllbGRfX3RleHRhcmVhOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX2lucHV0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX2lucHV0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX3RleHRhcmVhOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX3RleHRhcmVhOmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICAgIC5jcy1maWVsZF9faW5wdXQubWFnZS1lcnJvciwgLmNzLWZpZWxkX19pbnB1dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpLCAuY3MtZmllbGRfX3RleHRhcmVhLm1hZ2UtZXJyb3IsIC5jcy1maWVsZF9fdGV4dGFyZWEubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSxcbiAgICAuY3MtaW5wdXRfX2lucHV0Lm1hZ2UtZXJyb3IsXG4gICAgLmNzLWlucHV0X19pbnB1dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWEubWFnZS1lcnJvcixcbiAgICAuY3MtaW5wdXRfX3RleHRhcmVhLm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAxODsgfVxuICAgIC5jcy1maWVsZF9faW5wdXQucmVxdWlyZWQtZW50cnksIC5jcy1maWVsZF9fdGV4dGFyZWEucmVxdWlyZWQtZW50cnksXG4gICAgLmNzLWlucHV0X19pbnB1dC5yZXF1aXJlZC1lbnRyeSxcbiAgICAuY3MtaW5wdXRfX3RleHRhcmVhLnJlcXVpcmVkLWVudHJ5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuY3MtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlciwgLmNzLWZpZWxkX190ZXh0YXJlYTo6cGxhY2Vob2xkZXIsXG4gICAgLmNzLWlucHV0X19pbnB1dDo6cGxhY2Vob2xkZXIsXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7IH1cbiAgICAuY3MtZmllbGRfX2lucHV0W2Rpc2FibGVkXSwgLmNzLWZpZWxkX190ZXh0YXJlYVtkaXNhYmxlZF0sXG4gICAgLmNzLWlucHV0X19pbnB1dFtkaXNhYmxlZF0sXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYVtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5jcy1maWVsZF9faW5wdXQubWFnZS1lcnJvciwgLmNzLWZpZWxkX19pbnB1dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpLCAuY3MtZmllbGRfX3RleHRhcmVhLm1hZ2UtZXJyb3IsIC5jcy1maWVsZF9fdGV4dGFyZWEubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSxcbiAgICAuY3MtaW5wdXRfX2lucHV0Lm1hZ2UtZXJyb3IsXG4gICAgLmNzLWlucHV0X19pbnB1dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWEubWFnZS1lcnJvcixcbiAgICAuY3MtaW5wdXRfX3RleHRhcmVhLm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAxODsgfVxuICAuY3MtZmllbGRfX3NlbGVjdCxcbiAgLmNzLWlucHV0X19zZWxlY3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgcGFkZGluZy1yaWdodDogMi4zZW07XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjNkNWQ1ZDUnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC44ZW0gdG9wIDUyJSwgMCAwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMC43ZW0gYXV0bywgMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41czsgfVxuICAgIC5jcy1maWVsZF9fc2VsZWN0Lm1hZ2UtZXJyb3IsIC5jcy1maWVsZF9fc2VsZWN0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cyksXG4gICAgLmNzLWlucHV0X19zZWxlY3QubWFnZS1lcnJvcixcbiAgICAuY3MtaW5wdXRfX3NlbGVjdC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjAwMTg7IH1cbiAgICAuY3MtZmllbGRfX3NlbGVjdC5yZXF1aXJlZC1lbnRyeSxcbiAgICAuY3MtaW5wdXRfX3NlbGVjdC5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgLmNzLWZpZWxkX19zZWxlY3Q6LW1vei1mb2N1c3JpbmcsIC5jcy1maWVsZF9fc2VsZWN0OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0Oi1tb3otZm9jdXNyaW5nLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1maWVsZF9fc2VsZWN0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZpZWxkX19zZWxlY3Q6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX3NlbGVjdDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggNnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzMzMzMzMzJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7IH1cbiAgICAuY3MtZmllbGRfX3NlbGVjdFtkaXNhYmxlZF0sXG4gICAgLmNzLWlucHV0X19zZWxlY3RbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuY3MtZmllbGRfX3NlbGVjdCBvcHRpb24sXG4gICAgLmNzLWlucHV0X19zZWxlY3Qgb3B0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBjb2xvcjogaW5pdGlhbDsgfVxuICAuY3MtZmllbGRfX3JhZGlvLFxuICAuY3MtaW5wdXRfX3JhZGlvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxLjlyZW07XG4gICAgd2lkdGg6IDEuOXJlbTtcbiAgICBtYXJnaW46IC0wLjA2MjVlbSBjYWxjKDAuNWVtICsgMXB4KSAwIDA7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgICAuY3MtZmllbGRfX3JhZGlvOjotbW96LWZvY3VzLWlubmVyLCAuY3MtZmllbGRfX3JhZGlvOi1tb3otZm9jdXNyaW5nLFxuICAgIC5jcy1pbnB1dF9fcmFkaW86Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLmNzLWlucHV0X19yYWRpbzotbW96LWZvY3VzcmluZyB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtZmllbGRfX3JhZGlvOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZpZWxkX19yYWRpbzpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19yYWRpbzpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19yYWRpbzpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5jcy1maWVsZF9fcmFkaW86Y2hlY2tlZCxcbiAgICAuY3MtaW5wdXRfX3JhZGlvOmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY2NpcmNsZSBmaWxsPSclMjMzMzMzMzMnIHI9JzQnIGN5PSc3JyBjeD0nNycvJTNlJTNjL3N2ZyUzZVwiKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiAgICAgIC5jcy1maWVsZF9fcmFkaW86Y2hlY2tlZCwgLmNzLWZpZWxkX19yYWRpbzpjaGVja2VkOmhvdmVyLCAuY3MtZmllbGRfX3JhZGlvOmNoZWNrZWQ6Zm9jdXMsXG4gICAgICAuY3MtaW5wdXRfX3JhZGlvOmNoZWNrZWQsXG4gICAgICAuY3MtaW5wdXRfX3JhZGlvOmNoZWNrZWQ6aG92ZXIsXG4gICAgICAuY3MtaW5wdXRfX3JhZGlvOmNoZWNrZWQ6Zm9jdXMge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5jcy1maWVsZF9fcmFkaW9bZGlzYWJsZWRdLFxuICAgIC5jcy1maWVsZF9fcmFkaW9bZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgIC5jcy1maWVsZF9fcmFkaW9bZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCxcbiAgICAuY3MtaW5wdXRfX3JhZGlvW2Rpc2FibGVkXSxcbiAgICAuY3MtaW5wdXRfX3JhZGlvW2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAuY3MtaW5wdXRfX3JhZGlvW2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY3MtZmllbGRfX2NoZWNrYm94LFxuICAuY3MtaW5wdXRfX2NoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxLjlyZW07XG4gICAgd2lkdGg6IDEuOXJlbTtcbiAgICBtYXJnaW46IC0wLjA2MjVlbSBjYWxjKDAuNWVtICsgMXB4KSAwIDA7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5jcy1maWVsZF9fY2hlY2tib3g6Oi1tb3otZm9jdXMtaW5uZXIsIC5jcy1maWVsZF9fY2hlY2tib3g6LW1vei1mb2N1c3JpbmcsXG4gICAgLmNzLWlucHV0X19jaGVja2JveDo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94Oi1tb3otZm9jdXNyaW5nIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1maWVsZF9fY2hlY2tib3g6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZmllbGRfX2NoZWNrYm94OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveDpjaGVja2VkLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjY2lyY2xlIGZpbGw9JyUyMzMzMzMzMycgcj0nNCcgY3k9JzcnIGN4PSc3Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICAgICAgLmNzLWZpZWxkX19jaGVja2JveDpjaGVja2VkLCAuY3MtZmllbGRfX2NoZWNrYm94OmNoZWNrZWQ6aG92ZXIsIC5jcy1maWVsZF9fY2hlY2tib3g6Y2hlY2tlZDpmb2N1cyxcbiAgICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Y2hlY2tlZCxcbiAgICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Y2hlY2tlZDpob3ZlcixcbiAgICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveFtkaXNhYmxlZF0sXG4gICAgLmNzLWZpZWxkX19jaGVja2JveFtkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgLmNzLWZpZWxkX19jaGVja2JveFtkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3hbZGlzYWJsZWRdLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3hbZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3hbZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveDpjaGVja2VkLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjcGF0aCBmaWxsPSclMjMzMzMzMzMnIGQ9J001LjMxMyAxMC4xMDhINS4yNGExLjA2NCAxLjAwNSAwIDAgMS0uNzUtLjQxbC0xLjk0Ny0yLjU1YTEuMDY0IDEuMDA1IDAgMCAxIDEuNzIzLTEuMTc1TDUuNDYzIDcuNTYgOS4wNiA0LjE5YTEuMDY0IDEuMDA1IDAgMCAxIC43NS0uMjk3aC44NDZhMS4wNjQgMS4wMDUgMCAwIDEgMCAyLjAwNGgtLjQ1TDYuMDY0IDkuODFhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LjI5OHonLyUzZSUzYy9zdmclM2VcIik7IH1cbiAgICAuY3MtZmllbGRfX2NoZWNrYm94Lm1hZ2UtZXJyb3IsIC5jcy1maWVsZF9fY2hlY2tib3gubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94Lm1hZ2UtZXJyb3IsXG4gICAgLmNzLWlucHV0X19jaGVja2JveC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjAwMTg7IH1cbiAgLmNzLWZpZWxkX19pY29uLFxuICAuY3MtaW5wdXRfX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMS4zZW07XG4gICAgaGVpZ2h0OiAxLjNlbTtcbiAgICByaWdodDogMC44ZW07XG4gICAgdG9wOiAwLjhlbTtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1maWVsZF9fbm90ZSxcbiAgLmNzLWlucHV0X19ub3RlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICBwYWRkaW5nOiA0cHggMDtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuICAuY3MtZmllbGRfX2Vycm9yLFxuICAuY3MtaW5wdXRfX2Vycm9yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICBwYWRkaW5nOiA0cHggMDtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICBjb2xvcjogI2ZmMDAxODsgfVxuXG4uZmllbGQge1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmZpZWxkLl9zdWNjZXNzOm5vdCguX3dhcm4pIC5jb250cm9sIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuZmllbGQuX3N1Y2Nlc3M6bm90KC5fd2FybikgLmNvbnRyb2w6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEuM2VtO1xuICAgICAgaGVpZ2h0OiAxLjNlbTtcbiAgICAgIHJpZ2h0OiAwLjhlbTtcbiAgICAgIHRvcDogMC44ZW07XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2NoZWNrLWdyZWVuLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlci9jb250YWluO1xuICAgICAgY29udGVudDogJyc7IH1cbiAgLmZpZWxkIC5jb250cm9sIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiA0LjhyZW07XG4gICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cbiAgICAgIC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWE6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICAgICAgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWEubWFnZS1lcnJvciwgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWEubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjAwMTg7IH1cbiAgICAgIC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhLnJlcXVpcmVkLWVudHJ5IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7IH1cbiAgICAgIC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmZpZWxkIC5sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBwYWRkaW5nOiA0cHggMDsgfVxuICAuZmllbGQucmVxdWlyZWQgPiAubGFiZWw6YWZ0ZXIsIC5maWVsZC5fcmVxdWlyZWQgPiAubGFiZWw6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiICpcIjtcbiAgICBjb2xvcjogI2ZmMDAxODtcbiAgICBwYWRkaW5nOiA0cHggMDsgfVxuICAuZmllbGQucmVxdWlyZWQgLl9yZXF1aXJlZCA+IC5sYWJlbDphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuZmllbGQgLmlucHV0LXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQuOHJlbTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5pbnB1dC10ZXh0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICAgIC5maWVsZCAuaW5wdXQtdGV4dC5tYWdlLWVycm9yLCAuZmllbGQgLmlucHV0LXRleHQubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmYwMDE4OyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0LnJlcXVpcmVkLWVudHJ5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuZmllbGQgLmlucHV0LXRleHQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0Lm1hZ2UtZXJyb3IsIC5maWVsZCAuaW5wdXQtdGV4dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjAwMTg7IH1cbiAgICAuZmllbGQgLmlucHV0LXRleHQucmVxdWlyZWQtZW50cnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAuZmllbGQgLnNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyUyM2Q1ZDVkNSclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjhlbSB0b3AgNTIlLCAwIDA7XG4gICAgYmFja2dyb3VuZC1zaXplOiAwLjdlbSBhdXRvLCAxMDAlO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzOyB9XG4gICAgLmZpZWxkIC5zZWxlY3QubWFnZS1lcnJvciwgLmZpZWxkIC5zZWxlY3QubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmYwMDE4OyB9XG4gICAgLmZpZWxkIC5zZWxlY3QucmVxdWlyZWQtZW50cnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAgIC5maWVsZCAuc2VsZWN0Oi1tb3otZm9jdXNyaW5nLCAuZmllbGQgLnNlbGVjdDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuZmllbGQgLnNlbGVjdDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZCAuc2VsZWN0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjMzMzMzMzMnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTsgfVxuICAgIC5maWVsZCAuc2VsZWN0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmZpZWxkIC5zZWxlY3Qgb3B0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBjb2xvcjogaW5pdGlhbDsgfVxuICAuZmllbGQgLmNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxLjlyZW07XG4gICAgd2lkdGg6IDEuOXJlbTtcbiAgICBtYXJnaW46IC0wLjA2MjVlbSBjYWxjKDAuNWVtICsgMXB4KSAwIDA7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICAgIC5maWVsZCAuY2hlY2tib3g6Oi1tb3otZm9jdXMtaW5uZXIsIC5maWVsZCAuY2hlY2tib3g6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmZpZWxkIC5jaGVja2JveDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZCAuY2hlY2tib3g6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94OmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY2NpcmNsZSBmaWxsPSclMjMzMzMzMzMnIHI9JzQnIGN5PSc3JyBjeD0nNycvJTNlJTNjL3N2ZyUzZVwiKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiAgICAgIC5maWVsZCAuY2hlY2tib3g6Y2hlY2tlZCwgLmZpZWxkIC5jaGVja2JveDpjaGVja2VkOmhvdmVyLCAuZmllbGQgLmNoZWNrYm94OmNoZWNrZWQ6Zm9jdXMge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5maWVsZCAuY2hlY2tib3hbZGlzYWJsZWRdLFxuICAgIC5maWVsZCAuY2hlY2tib3hbZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgIC5maWVsZCAuY2hlY2tib3hbZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmZpZWxkIC5jaGVja2JveDpjaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NwYXRoIGZpbGw9JyUyMzMzMzMzMycgZD0nTTUuMzEzIDEwLjEwOEg1LjI0YTEuMDY0IDEuMDA1IDAgMCAxLS43NS0uNDFsLTEuOTQ3LTIuNTVhMS4wNjQgMS4wMDUgMCAwIDEgMS43MjMtMS4xNzVMNS40NjMgNy41NiA5LjA2IDQuMTlhMS4wNjQgMS4wMDUgMCAwIDEgLjc1LS4yOTdoLjg0NmExLjA2NCAxLjAwNSAwIDAgMSAwIDIuMDA0aC0uNDVMNi4wNjQgOS44MWExLjA2NCAxLjAwNSAwIDAgMS0uNzUuMjk4eicvJTNlJTNjL3N2ZyUzZVwiKTsgfVxuICAgIC5maWVsZCAuY2hlY2tib3gubWFnZS1lcnJvciwgLmZpZWxkIC5jaGVja2JveC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjAwMTg7IH1cbiAgLmZpZWxkIC5yYWRpbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMS45cmVtO1xuICAgIHdpZHRoOiAxLjlyZW07XG4gICAgbWFyZ2luOiAtMC4wNjI1ZW0gY2FsYygwLjVlbSArIDFweCkgMCAwO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzOyB9XG4gICAgLmZpZWxkIC5yYWRpbzo6LW1vei1mb2N1cy1pbm5lciwgLmZpZWxkIC5yYWRpbzotbW96LWZvY3VzcmluZyB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuZmllbGQgLnJhZGlvOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5yYWRpbzpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5maWVsZCAucmFkaW86Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjY2lyY2xlIGZpbGw9JyUyMzMzMzMzMycgcj0nNCcgY3k9JzcnIGN4PSc3Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICAgICAgLmZpZWxkIC5yYWRpbzpjaGVja2VkLCAuZmllbGQgLnJhZGlvOmNoZWNrZWQ6aG92ZXIsIC5maWVsZCAucmFkaW86Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmZpZWxkIC5yYWRpb1tkaXNhYmxlZF0sXG4gICAgLmZpZWxkIC5yYWRpb1tkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgLmZpZWxkIC5yYWRpb1tkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyUyM2Q1ZDVkNSclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjhlbSB0b3AgNTIlLCAwIDA7XG4gICAgYmFja2dyb3VuZC1zaXplOiAwLjdlbSBhdXRvLCAxMDAlO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzOyB9XG4gICAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdC5tYWdlLWVycm9yLCAuZmllbGQuY3VzdG9tZXItbmFtZS1wcmVmaXggc2VsZWN0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAxODsgfVxuICAgIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3QucmVxdWlyZWQtZW50cnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAgIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Q6LW1vei1mb2N1c3JpbmcsIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Q6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Q6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyUyMzMzMzMzMyclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpOyB9XG4gICAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Qgb3B0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBjb2xvcjogaW5pdGlhbDsgfVxuICAuZmllbGQuZmllbGQtZG9iIGlucHV0IHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0LjhyZW07XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgaW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQuZmllbGQtZG9iIGlucHV0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgaW5wdXQubWFnZS1lcnJvciwgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjAwMTg7IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGlucHV0LnJlcXVpcmVkLWVudHJ5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgaW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGlucHV0Lm1hZ2UtZXJyb3IsIC5maWVsZC5maWVsZC1kb2IgaW5wdXQubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmYwMDE4OyB9XG4gIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b24sIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b25bZGlzYWJsZWRdLCAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IGF1dG87XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG4gIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5maWVsZC5fZXJyb3IgLmlucHV0LXRleHQsIC5maWVsZC5fZXJyb3IgLmlucHV0LXRleHQ6aG92ZXI6bm90KDpmb2N1cyksXG4gIC5maWVsZC5fZXJyb3IgLmNoZWNrYm94LFxuICAuZmllbGQuX2Vycm9yIC5jaGVja2JveDpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAxODsgfVxuICAuZmllbGQgLmNvbnRyb2wuX3dpdGgtdG9vbHRpcCBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5maWVsZCAuZmllbGQtdG9vbHRpcCB7XG4gICAgcG9zaXRpb246IHN0YXRpYzsgfVxuICAgIC5maWVsZCAuZmllbGQtdG9vbHRpcCAubGFiZWwsXG4gICAgLmZpZWxkIC5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWFjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmZpZWxkIC5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgICBjb2xvcjogIzY5Njk2OTtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtOyB9XG4gICAgICAuZmllbGQgLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsIC5maWVsZCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuZmllbGQgLm5vdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHBhZGRpbmc6IDRweCAwO1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIG1hcmdpbi10b3A6IC0xcmVtOyB9XG5cbmRpdi5tYWdlLWVycm9yLFxuZGl2LmZpZWxkLWVycm9yIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBwYWRkaW5nOiA0cHggMDtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIG1hcmdpbi10b3A6IC0xcmVtO1xuICBjb2xvcjogI2ZmMDAxODsgfVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uZmllbGQ6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmZpZWxkIHRleHRhcmVhIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA4MHB4O1xuICBtaW4td2lkdGg6IDEwMCU7IH1cblxuLmZpZWxkIC5tYWdlLWVycm9yIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4uZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGZpZWxkLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1lcnJvci1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtbGFiZWwtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWxhYmVsLXJlcXVpcmVkLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1jb250cm9sLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1pbnB1dC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQtZXJyb3ItaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWljb24taG9vaygkdHlwZTogJycpIHtcbn1cblxuQG1peGluIGZpZWxkLW5vdGUtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC13YXJuaW5nLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1zZWxlY3QtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLXJhZGlvLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1yYWRpby1sYWJlbC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtY2hlY2tib3gtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWNoZWNrYm94LWxhYmVsLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1kb2ItaG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvdXJpLWZyaWVuZGx5LWhleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL2hvb2snO1xuXG4kZmllbGRfZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kZmllbGRfdHJhbnNpdGlvbi10aW1lOiAwLjVzICFkZWZhdWx0O1xuXG4kZmllbGRfbGFiZWwtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC1mb250LXNpemU6IDAuODVlbSAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcblxuJGZpZWxkX2lucHV0LWZvbnQtc2l6ZTogMWVtICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWxpbmUtaGVpZ2h0OiAkYnV0dG9uX2xpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LXBhZGRpbmc6ICRidXR0b25fcGFkZGluZyAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1ib3JkZXItYWN0aXZlOiAxcHggc29saWQgJGNvbG9yLXByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYm94LXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1ib3gtc2hhZG93LWFjdGl2ZTogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1kaXNhYmxlZC1vcGFjaXR5OiAwLjY1ICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiRmaWVsZF9lcnJvci1mb250LXNpemU6ICRmaWVsZF9sYWJlbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZmllbGRfZXJyb3ItaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcblxuJGZpZWxkX25vdGUtZm9udC1zaXplOiAkZmllbGRfbGFiZWwtZm9udC1zaXplICFkZWZhdWx0O1xuJGZpZWxkX25vdGUtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcblxuJGZpZWxkX2Vycm9yLWNvbG9yOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuXG4kZmllbGRfd2FybmluZy1jb2xvcjogJGNvbG9yX3dhcm5pbmctNTAwICFkZWZhdWx0O1xuLy8gQmFzZWQgb24gaHR0cHM6Ly93d3cuZmlsYW1lbnRncm91cC5jb20vbGFiL3NlbGVjdC1jc3MuaHRtbFxuJGZpZWxkX3NlbGVjdC1mb250LXNpemU6ICRmaWVsZF9pbnB1dC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWxpbmUtaGVpZ2h0OiAkZmllbGRfaW5wdXQtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LXBhZGRpbmc6ICRmaWVsZF9pbnB1dC1wYWRkaW5nICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1wYWRkaW5nLXJpZ2h0OiAyLjNlbSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcblxuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjhlbSB0b3AgNTIlLCAwIDAgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtc2l6ZTogMC43ZW0gYXV0bywgMTAwJSAhZGVmYXVsdDtcblxuLy8gTm90ZSB0aGF0IHNlbGVjdCBiYWNrZ3JvdW5kIG5lZWRzIHRvIGJlIGRlZmluZWQgYXMgYmFja2dyb3VuZC1pbWFnZSB0byBwcmV2ZW50XG4vLyBvcHRpb24gZWxlbWVudHMgZnJvbSBpbmhlcml0aW5nIGl0IG9uIHNvbWUgYnJvd3NlcnMuXG4kZmllbGRfc2VsZWN0LWljb24tZmlsbDogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWljb24tZmlsbC1hY3RpdmU6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfc2VsZWN0LWljb24tZmlsbCl9JyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksXG4gICAgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1hY3RpdmU6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPScje3VyaS1mcmllbmRseS1oZXgoJGZpZWxkX3NlbGVjdC1pY29uLWZpbGwtYWN0aXZlKX0nJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpICFkZWZhdWx0O1xuXG4kZmllbGRfc2VsZWN0LWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3JkZXItYWN0aXZlOiAxcHggc29saWQgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93OiBub25lICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93LWFjdGl2ZTogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX2lucHV0LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWRpc2FibGVkLW9wYWNpdHk6ICRmaWVsZF9pbnB1dC1kaXNhYmxlZC1vcGFjaXR5ICFkZWZhdWx0O1xuXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuJGZpZWxkX3JhZGlvLWZvbnQtc2l6ZTogMWVtICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLXNpemU6IDFlbSAhZGVmYXVsdDtcbi8vIExldHMgeW91IGFkanVzdCBib3RoIHJhZGlvIGFuZCBjaGVja2JveCBhbGlnbm1lbnQgYmFzZWQgb24gZm9udCB5b3UndmUgY2hvc2VuLlxuJGZpZWxkX3JhZGlvLW9mZnNldDogLTAuMDYyNWVtICFkZWZhdWx0O1xuLy8gQWxpZ25pbmcgYW55dGhpbmcgdGhhdCBjb21lcyBhZnRlciB3aXRoIGlucHV0IHBhZGRpbmdzLCB0aGlzIDFweCBzdGFuZHMgZm9yIGlucHV0J3MgYm9yZGVyIHdpZHRoLlxuJGZpZWxkX3JhZGlvLW1hcmdpbjogJGZpZWxkX3JhZGlvLW9mZnNldFxuICAgIGNhbGMoI3sxLjVlbSAtICRmaWVsZC1yYWRpby1zaXplfSArIDFweCkgMCAwICFkZWZhdWx0O1xuXG4kZmllbGRfcmFkaW8tYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItYWN0aXZlOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWljb24tZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY2NpcmNsZSBmaWxsPScje3VyaS1mcmllbmRseS1oZXgoJGZpZWxkX3JhZGlvLWljb24tZmlsbCl9JyByPSc0JyBjeT0nNycgY3g9JzcnLyUzZSUzYy9zdmclM2VcIikgIWRlZmF1bHQ7XG5cbiRmaWVsZF9yYWRpby1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1ib3JkZXItYWN0aXZlOiAxcHggc29saWQgJGNvbG9yLXByaW1hcnktODAwICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJvcmRlci1jaGVja2VkOiAxcHggc29saWQgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJveC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYm94LXNoYWRvdy1hY3RpdmU6IG5vbmUgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYm94LXNoYWRvdy1jaGVja2VkOiBub25lICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWRpc2FibGVkLW9wYWNpdHk6ICRmaWVsZF9pbnB1dC1kaXNhYmxlZC1vcGFjaXR5ICFkZWZhdWx0O1xuXG4kZmllbGRfY2hlY2tib3gtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRmaWVsZF9jaGVja2JveC1iYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW0gIWRlZmF1bHQ7XG4kZmllbGRfY2hlY2tib3gtaWNvbi1maWxsOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZmllbGRfY2hlY2tib3gtYmFja2dyb3VuZC1pbWFnZS1jaGVja2VkOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjcGF0aCBmaWxsPScje3VyaS1mcmllbmRseS1oZXgoJGZpZWxkX2NoZWNrYm94LWljb24tZmlsbCl9JyBkPSdNNS4zMTMgMTAuMTA4SDUuMjRhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LS40MWwtMS45NDctMi41NWExLjA2NCAxLjAwNSAwIDAgMSAxLjcyMy0xLjE3NUw1LjQ2MyA3LjU2IDkuMDYgNC4xOWExLjA2NCAxLjAwNSAwIDAgMSAuNzUtLjI5N2guODQ2YTEuMDY0IDEuMDA1IDAgMCAxIDAgMi4wMDRoLS40NUw2LjA2NCA5LjgxYTEuMDY0IDEuMDA1IDAgMCAxLS43NS4yOTh6Jy8lM2UlM2Mvc3ZnJTNlXCIpICFkZWZhdWx0O1xuXG4kZmllbGRfaWNvbi13aWR0aDogMS4zZW0gIWRlZmF1bHQ7XG4kZmllbGRfaWNvbi1oZWlnaHQ6IDEuM2VtICFkZWZhdWx0O1xuJGZpZWxkX2ljb24tc3VjY2Vzcy1iYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9jaGVjay1ncmVlbi5zdmcnKSBuby1yZXBlYXRcbiAgICBjZW50ZXIgY2VudGVyIC8gY29udGFpbiAhZGVmYXVsdDtcblxuJGZpZWxkX2RvYi1idXR0b24tdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kZmllbGRfZG9iLWJ1dHRvbi1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGQoKSB7XG4gICAgZm9udC1zaXplOiAkZmllbGRfZm9udC1zaXplO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1lcnJvcigpIHtcbiAgICBmb250LXNpemU6ICRmaWVsZF9lcnJvci1mb250LXNpemU7XG4gICAgY29sb3I6ICRjb2xvcl9lcnJvci01MDA7XG4gICAgbWFyZ2luLXRvcDogMC4yZW07XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1lcnJvci1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1sYWJlbCgpIHtcbiAgICBmb250LXdlaWdodDogJGZpZWxkX2xhYmVsLWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX2xhYmVsLWZvbnQtc2l6ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGZpZWxkX2xhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgIGNvbG9yOiAkZmllbGRfbGFiZWwtY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1sYWJlbC1yZXF1aXJlZCgpIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyAqJztcbiAgICAgICAgY29sb3I6ICRjb2xvcl9lcnJvci01MDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtbGFiZWwtcmVxdWlyZWQtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtY29udHJvbCgpIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGZpZWxkLWNvbnRyb2wtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQoKSB7XG4gICAgZm9udC1zaXplOiAkZmllbGRfaW5wdXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkZmllbGRfaW5wdXQtbGluZS1oZWlnaHQ7XG4gICAgcGFkZGluZzogJGZpZWxkX2lucHV0LXBhZGRpbmc7XG4gICAgY29sb3I6ICRmaWVsZF9pbnB1dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkZmllbGRfaW5wdXQtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkZmllbGRfaW5wdXQtYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXI6ICRmaWVsZF9pbnB1dC1ib3JkZXI7XG4gICAgYm94LXNoYWRvdzogJGZpZWxkX2lucHV0LWJveC1zaGFkb3c7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWU7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07IC8vIEFkZCBzcGFjaW5nIHVuZGVyIGxhYmVsLiBUaGlzIGNhbid0IGJlIGFkZGVkIHRvIGxhYmVsIGl0c2VsZiBiZWNhdXNlIHRoZXkgYXJlIHNvbWV0aW1lcyByZW5kZXJlZCBlbXB0eS5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyAvLyBSZW1vdmVzIGRyb3Agc2hhZG93IGZyb20gaW5wdXRzIG9uIGlPUy5cbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX2lucHV0LWJvcmRlci1hY3RpdmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkZmllbGRfaW5wdXQtYm94LXNoYWRvdy1hY3RpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAkZmllbGRfaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAkZmllbGRfaW5wdXQtZGlzYWJsZWQtb3BhY2l0eTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1pbnB1dC1lcnJvcigpIHtcbiAgICAmLFxuICAgICY6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgICBib3JkZXI6ICRmaWVsZF9lcnJvci1pbnB1dC1ib3JkZXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3ItaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtaWNvbigkdHlwZTogJycpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6ICRmaWVsZF9pY29uLXdpZHRoO1xuICAgIGhlaWdodDogJGZpZWxkX2ljb24taGVpZ2h0O1xuICAgIHJpZ2h0OiAwLjhlbTtcbiAgICB0b3A6IDAuOGVtO1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAaWYgKCR0eXBlID09ICdzdWNjZXNzJykge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZmllbGRfaWNvbi1zdWNjZXNzLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtaWNvbi1ob29rKCR0eXBlKTtcbn1cblxuQG1peGluIGZpZWxkLW5vdGUoKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkZmllbGRfbm90ZS1mb250LXNpemU7XG4gICAgcGFkZGluZzogMC4zZW0gMCAwO1xuICAgIGNvbG9yOiAkZmllbGRfbm90ZS1jb2xvcjtcblxuICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtZXJyb3IoKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtbm90ZSgpO1xuXG4gICAgY29sb3I6ICRmaWVsZF9lcnJvci1jb2xvcjtcblxuICAgIEBpbmNsdWRlIGZpZWxkLWVycm9yLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLXdhcm5pbmcoKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtbm90ZSgpO1xuXG4gICAgY29sb3I6ICRmaWVsZF93YXJuaW5nLWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgZmllbGQtd2FybmluZy1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1zZWxlY3QoKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkZmllbGRfc2VsZWN0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGZpZWxkX3NlbGVjdC1saW5lLWhlaWdodDtcbiAgICBwYWRkaW5nOiAkZmllbGRfc2VsZWN0LXBhZGRpbmc7XG4gICAgcGFkZGluZy1yaWdodDogJGZpZWxkX3NlbGVjdC1wYWRkaW5nLXJpZ2h0O1xuICAgIGNvbG9yOiAkZmllbGRfc2VsZWN0LWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmaWVsZF9zZWxlY3QtYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXI6ICRmaWVsZF9zZWxlY3QtYm9yZGVyO1xuICAgIGJveC1zaGFkb3c6ICRmaWVsZF9zZWxlY3QtYm94LXNoYWRvdztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07IC8vIEFkZCBzcGFjaW5nIHVuZGVyIGxhYmVsLiBUaGlzIGNhbid0IGJlIGFkZGVkIHRvIGxhYmVsIGl0c2VsZiBiZWNhdXNlIHRoZXkgYXJlIHNvbWV0aW1lcyByZW5kZXJlZCBlbXB0eS5cbiAgICBvdXRsaW5lOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1pbWFnZTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLXBvc2l0aW9uO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLXNpemU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWU7XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG4gICAgJjotbW96LWZvY3VzcmluZyxcbiAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgYm9yZGVyOiAkZmllbGRfc2VsZWN0LWJvcmRlci1hY3RpdmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkZmllbGRfc2VsZWN0LWJveC1zaGFkb3ctYWN0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogJGZpZWxkX3NlbGVjdC1kaXNhYmxlZC1vcGFjaXR5O1xuICAgIH1cblxuICAgIG9wdGlvbiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGNvbG9yOiBpbml0aWFsO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1yYWRpby1sYWJlbCgpIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1yYWRpby1sYWJlbC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1yYWRpbygpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAkZmllbGRfcmFkaW8tc2l6ZTtcbiAgICB3aWR0aDogJGZpZWxkX3JhZGlvLXNpemU7XG4gICAgbWFyZ2luOiAkZmllbGRfcmFkaW8tbWFyZ2luO1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX3JhZGlvLWZvbnQtc2l6ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBmbGV4OiAwIDAgYXV0bzsgLy8gUHJldmVudCBmbGV4IHBhcmVudCBmcm9tIGJyZWFraW5nIGRpbWVuc2lvbnMuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgYm9yZGVyOiAkZmllbGRfcmFkaW8tYm9yZGVyO1xuICAgIGJveC1zaGFkb3c6ICRmaWVsZF9yYWRpby1ib3gtc2hhZG93O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLXNpemU7XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkZmllbGRfdHJhbnNpdGlvbi10aW1lLFxuICAgICAgICBib3JkZXItY29sb3IgJGZpZWxkX3RyYW5zaXRpb24tdGltZTtcblxuICAgICY6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX3JhZGlvLWJvcmRlci1hY3RpdmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkZmllbGRfcmFkaW8tYm94LXNoYWRvdy1hY3RpdmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmNoZWNrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkZmllbGRfcmFkaW8tYmFja2dyb3VuZC1pbWFnZS1jaGVja2VkO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyOiAkZmllbGRfcmFkaW8tYm9yZGVyLWNoZWNrZWQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvci1jaGVja2VkO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctY2hlY2tlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGlzYWJsZWRdLFxuICAgICZbZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgICZbZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCB7XG4gICAgICAgIG9wYWNpdHk6ICRmaWVsZF9yYWRpby1kaXNhYmxlZC1vcGFjaXR5O1xuICAgIH1cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcblxuICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWNoZWNrYm94LWxhYmVsKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94LWxhYmVsLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWNoZWNrYm94KCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvKCk7XG5cbiAgICBib3JkZXItcmFkaXVzOiAkZmllbGRfY2hlY2tib3gtYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRmaWVsZF9jaGVja2JveC1iYWNrZ3JvdW5kLXNpemU7XG5cbiAgICAmOmNoZWNrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkZmllbGRfY2hlY2tib3gtYmFja2dyb3VuZC1pbWFnZS1jaGVja2VkO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94LWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWRvYigpIHtcbiAgICBpbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGZpZWxkX2RvYi1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGZpZWxkX2RvYi1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkZmllbGRfZG9iLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGZpZWxkX2RvYi1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1kb2ItaG9vaygpO1xufVxuIiwiQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblxuLy8gT3VyIEJFTSBjb21wb25lbnQuXG4uY3MtZmllbGQsXG4vLyBMZWZ0IGZvciBub3cgZm9yIGNvbXBhdGliaWxpdHkgc2FrZS5cbi5jcy1pbnB1dCB7XG4gICAgQGluY2x1ZGUgZmllbGQoKTtcblxuICAgICZfX2NvbnRyb2wge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1jb250cm9sKCk7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbCgpO1xuXG4gICAgICAgIC5yZXF1aXJlZCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsLXJlcXVpcmVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbnB1dCxcbiAgICAmX190ZXh0YXJlYSB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZWxlY3Qge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1zZWxlY3QoKTtcbiAgICB9XG5cbiAgICAmX19yYWRpbyB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvKCk7XG5cbiAgICAgICAgLy8gVG8gcmV3cml0ZSB0byBwcm9wZXIgc2NzcyBzeW50YXggYWZ0ZXIgZ2V0dGluZyByaWQgb2YgLmNzLWlucHV0IGNsYXNzXG4gICAgICAgICYgKyAuY3MtaW5wdXRfX2xhYmVsLFxuICAgICAgICAmICsgLmNzLWZpZWxkX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1yYWRpby1sYWJlbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2hlY2tib3gge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1jaGVja2JveCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVG8gcmV3cml0ZSB0byBwcm9wZXIgc2NzcyBzeW50YXggYWZ0ZXIgZ2V0dGluZyByaWQgb2YgLmNzLWlucHV0IGNsYXNzXG4gICAgICAgICYgKyAuY3MtaW5wdXRfX2xhYmVsLFxuICAgICAgICAmICsgLmNzLWZpZWxkX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1jaGVja2JveC1sYWJlbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWljb24oKTtcbiAgICB9XG5cbiAgICAmX19ub3RlIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtbm90ZSgpO1xuICAgIH1cblxuICAgICZfX2Vycm9yIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtZXJyb3IoKTtcbiAgICB9XG59XG4vLyBNYWdlbnRvIGNsYXNzZXMgdXNlZCBpbiBjaGVja291dCwgbG9naW4vcmVnaXN0ZXIgZm9ybXMgZXRjLlxuLmZpZWxkIHtcbiAgICBAaW5jbHVkZSBmaWVsZCgpO1xuXG4gICAgJi5fc3VjY2Vzczpub3QoLl93YXJuKSB7XG4gICAgICAgIC5jb250cm9sIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaWNvbignc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvbnRyb2wge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1jb250cm9sKCk7XG5cbiAgICAgICAgPiB0ZXh0YXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwoKTtcbiAgICB9XG5cbiAgICAmLnJlcXVpcmVkLFxuICAgICYuX3JlcXVpcmVkIHtcbiAgICAgICAgPiAubGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwtcmVxdWlyZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucmVxdWlyZWQge1xuICAgICAgICAuX3JlcXVpcmVkIHtcbiAgICAgICAgICAgID4gLmxhYmVsIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSGlkZSBhc3Rlcmlza3MgZm9yIGxhYmVscyBpbnNpZGUgZmllbGRzZXRzIGFzIHRoZXkgYXJlIHVzdWFsbHkgcmVuZGVyZWQgZW1wdHkuXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlucHV0LXRleHQge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlbGVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdCgpO1xuICAgIH1cblxuICAgIC5jaGVja2JveCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94KCk7XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICAmICsgLmxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94LWxhYmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmFkaW8ge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1yYWRpbygpO1xuXG4gICAgICAgICYgKyAubGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtcmFkaW8tbGFiZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuY3VzdG9tZXItbmFtZS1wcmVmaXgge1xuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmZpZWxkLWRvYiB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWRvYigpO1xuICAgIH1cblxuICAgICYuX2Vycm9yIHtcbiAgICAgICAgLmlucHV0LXRleHQsXG4gICAgICAgIC5jaGVja2JveCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV2ZXJ0aW5nIHN0eWxlcyBmb3IgaW5wdXQgd2l0aCB0b29sdGlwLlxuICAgIC5jb250cm9sLl93aXRoLXRvb2x0aXAgaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgICAvLyBSZXZlcnRpbmcgaW5mbyB0b29sdGlwIHN0eWxlcyB0byBtYWtlIGl0IGFwcGVhciBhcyBub3RlIGJlbG93IHRoZSBpbnB1dC5cbiAgICAuZmllbGQtdG9vbHRpcCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG5cbiAgICAgICAgLmxhYmVsLFxuICAgICAgICAuZmllbGQtdG9vbHRpcC1hY3Rpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWVsZC10b29sdGlwLWNvbnRlbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5vdGUge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG4gICAgfVxufVxuLy8gSGFzIHRvIGJlIHNjb3BlZCB0byBkaXYsIG90aGVyd2lzZSBpdCBjb2xsaWRlcyB3aXRoIGlucHV0IGNsYXNzLlxuZGl2Lm1hZ2UtZXJyb3IsXG5kaXYuZmllbGQtZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZpZWxkLWVycm9yKCk7XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvZmllbGQvbWl4aW4uc2Nzc1wiO1xuQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcblxuJGZpZWxkX2ZvbnQtc2l6ZTogMS42cmVtO1xuXG4kZmllbGRfbGFiZWwtZm9udC13ZWlnaHQ6IDQwMDtcbiRmaWVsZF9sYWJlbC1mb250LXNpemU6IDEuNHJlbTtcbiRmaWVsZF9sYWJlbC1wYWRkaW5nOiA0cHggMDtcblxuJGZpZWxkX2lucHV0LWZvbnQtc2l6ZTogMS42cmVtO1xuJGZpZWxkX2lucHV0LWxpbmUtaGVpZ2h0OiAkYnV0dG9uX2xpbmUtaGVpZ2h0O1xuJGZpZWxkX2lucHV0LXBhZGRpbmc6ICRidXR0b25fcGFkZGluZztcbiRmaWVsZF9pbnB1dC1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcblxuJGZpZWxkX2lucHV0LWJhY2tncm91bmQ6ICRrbWFfY29sb3Jfd2hpdGU7XG4kZmllbGRfaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGttYV9jb2xvcl9ncmV5LTEwMDtcblxuJGZpZWxkX2lucHV0LWJvcmRlcjogMXB4IHNvbGlkICRrbWFfY29sb3JfZ3JleS0zMDA7XG4kZmllbGRfaW5wdXQtYm9yZGVyLWFjdGl2ZTogMXB4IHNvbGlkICRrbWFfY29sb3JfZ3JleS04MDA7XG4kZmllbGRfaW5wdXQtYm9yZGVyLWRpc2FibGVkOiAxcHggc29saWQgJGttYV9jb2xvcl9ncmV5LTMwMDtcblxuJGZpZWxkX2lucHV0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG5cbiRmaWVsZF9pbnB1dC1ib3gtc2hhZG93OiBub25lO1xuJGZpZWxkX2lucHV0LWJveC1zaGFkb3ctYWN0aXZlOiAwcHggMHB4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuJGZpZWxkX2lucHV0LWRpc2FibGVkLW9wYWNpdHk6IDE7XG4kZmllbGRfaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG5cbiRmaWVsZF9lcnJvci1pbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAka21hX2NvbG9yX2Vycm9yLTUwMDtcblxuJGZpZWxkX2Vycm9yLWNvbG9yOiAka21hX2NvbG9yX2Vycm9yLTUwMDtcblxuJGZpZWxkX3dhcm5pbmctY29sb3I6ICRjb2xvcl93YXJuaW5nLTUwMDtcblxuLy8gQmFzZWQgb24gaHR0cHM6Ly93d3cuZmlsYW1lbnRncm91cC5jb20vbGFiL3NlbGVjdC1jc3MuaHRtbFxuJGZpZWxkX3NlbGVjdC1mb250LXNpemU6ICRmaWVsZF9pbnB1dC1mb250LXNpemU7XG4kZmllbGRfc2VsZWN0LWxpbmUtaGVpZ2h0OiAkZmllbGRfaW5wdXQtbGluZS1oZWlnaHQ7XG4kZmllbGRfc2VsZWN0LXBhZGRpbmc6ICRmaWVsZF9pbnB1dC1wYWRkaW5nO1xuJGZpZWxkX3NlbGVjdC1wYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiRmaWVsZF9zZWxlY3QtY29sb3I6ICRmaWVsZF9pbnB1dC1jb2xvcjtcblxuLy8gTm90ZSB0aGF0IHNlbGVjdCBiYWNrZ3JvdW5kIG5lZWRzIHRvIGJlIGRlZmluZWQgYXMgYmFja2dyb3VuZC1pbWFnZSB0byBwcmV2ZW50XG4vLyBvcHRpb24gZWxlbWVudHMgZnJvbSBpbmhlcml0aW5nIGl0IG9uIHNvbWUgYnJvd3NlcnMuXG4kZmllbGRfc2VsZWN0LWljb24tZmlsbDogJGttYV9jb2xvcl9ncmV5LTMwMDtcbiRmaWVsZF9zZWxlY3QtaWNvbi1maWxsLWFjdGl2ZTogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiRmaWVsZF9zZWxlY3QtaWNvbi1maWxsLWRpc2FibGVkOiAka21hX2NvbG9yX2dyZXktNTAwO1xuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nI3t1cmktZnJpZW5kbHktaGV4KCRmaWVsZF9zZWxlY3QtaWNvbi1maWxsKX0nJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWFjdGl2ZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfc2VsZWN0LWljb24tZmlsbC1hY3RpdmUpfSclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLFxuICAgIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtZGlzYWJsZWQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPScje3VyaS1mcmllbmRseS1oZXgoJGZpZWxkX3NlbGVjdC1pY29uLWZpbGwtZGlzYWJsZWQpfSclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLFxuICAgIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG5cbiRmaWVsZF9zZWxlY3QtYm9yZGVyOiAkZmllbGRfaW5wdXQtYm9yZGVyO1xuJGZpZWxkX3NlbGVjdC1ib3JkZXItYWN0aXZlOiAkZmllbGRfaW5wdXQtYm9yZGVyLWFjdGl2ZTtcbiRmaWVsZF9zZWxlY3QtYm9yZGVyLWRpc2FibGVkOiAkZmllbGRfaW5wdXQtYm9yZGVyLWRpc2FibGVkO1xuXG4kZmllbGRfc2VsZWN0LWJvcmRlci1yYWRpdXM6ICRmaWVsZF9pbnB1dC1ib3JkZXItcmFkaXVzO1xuXG4kZmllbGRfc2VsZWN0LWJveC1zaGFkb3c6ICRmaWVsZF9pbnB1dC1ib3gtc2hhZG93O1xuJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93LWFjdGl2ZTogJGZpZWxkX2lucHV0LWJveC1zaGFkb3ctYWN0aXZlO1xuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yOiAkZmllbGRfaW5wdXQtYmFja2dyb3VuZDtcbiRmaWVsZF9zZWxlY3QtZGlzYWJsZWQtb3BhY2l0eTogJGZpZWxkX2lucHV0LWRpc2FibGVkLW9wYWNpdHk7XG5cbiRmaWVsZF9lcnJvci1zZWxlY3QtYm9yZGVyOiAkZmllbGRfZXJyb3ItaW5wdXQtYm9yZGVyO1xuXG4kZmllbGRfcmFkaW8taWNvbi1maWxsOiAka21hX2NvbG9yX2dyZXktODAwO1xuJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY2NpcmNsZSBmaWxsPScje3VyaS1mcmllbmRseS1oZXgoJGZpZWxkX3JhZGlvLWljb24tZmlsbCl9JyByPSc0JyBjeT0nNycgY3g9JzcnLyUzZSUzYy9zdmclM2VcIik7XG5cbi8vICRmaWVsZF9yYWRpby1mb250LXNpemU6IDJlbTtcbiRmaWVsZF9yYWRpby1zaXplOiAxLjlyZW07XG4kZmllbGRfcmFkaW8tYm9yZGVyOiAkZmllbGRfaW5wdXQtYm9yZGVyO1xuJGZpZWxkX3JhZGlvLWJvcmRlci1hY3RpdmU6ICRmaWVsZF9pbnB1dC1ib3JkZXItYWN0aXZlO1xuJGZpZWxkX3JhZGlvLWJvcmRlci1jaGVja2VkOiAkZmllbGRfaW5wdXQtYm9yZGVyLWFjdGl2ZTtcbiRmaWVsZF9yYWRpby1ib3JkZXItZGlzYWJsZWQ6ICRmaWVsZF9pbnB1dC1ib3JkZXItZGlzYWJsZWQ7XG4kZmllbGRfcmFkaW8tYm94LXNoYWRvdzogbm9uZTtcbiRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWFjdGl2ZTogbm9uZTtcbiRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWNoZWNrZWQ6IG5vbmU7XG4kZmllbGRfcmFkaW8tZGlzYWJsZWQtb3BhY2l0eTogJGZpZWxkX2lucHV0LWRpc2FibGVkLW9wYWNpdHk7XG5cbiRmaWVsZF9jaGVja2JveC1ib3JkZXItcmFkaXVzOiAwO1xuJGZpZWxkX2NoZWNrYm94LWljb24tZmlsbDogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiRmaWVsZF9jaGVja2JveC1iYWNrZ3JvdW5kLWltYWdlLWNoZWNrZWQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NwYXRoIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfY2hlY2tib3gtaWNvbi1maWxsKX0nIGQ9J001LjMxMyAxMC4xMDhINS4yNGExLjA2NCAxLjAwNSAwIDAgMS0uNzUtLjQxbC0xLjk0Ny0yLjU1YTEuMDY0IDEuMDA1IDAgMCAxIDEuNzIzLTEuMTc1TDUuNDYzIDcuNTYgOS4wNiA0LjE5YTEuMDY0IDEuMDA1IDAgMCAxIC43NS0uMjk3aC44NDZhMS4wNjQgMS4wMDUgMCAwIDEgMCAyLjAwNGgtLjQ1TDYuMDY0IDkuODFhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LjI5OHonLyUzZSUzYy9zdmclM2VcIik7XG5cbkBtaXhpbiBmaWVsZCgpIHtcbiAgICBmb250LXNpemU6ICRmaWVsZF9mb250LXNpemU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGZpZWxkLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yKCkge1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX2Vycm9yLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGttYV9jb2xvcl9lcnJvci01MDA7XG4gICAgbWFyZ2luLXRvcDogMC4yZW07XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1lcnJvci1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1sYWJlbCgpIHtcbiAgICBmb250LXdlaWdodDogJGZpZWxkX2xhYmVsLWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX2xhYmVsLWZvbnQtc2l6ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGZpZWxkX2xhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgIGNvbG9yOiAkZmllbGRfbGFiZWwtY29sb3I7XG4gICAgcGFkZGluZzogJGZpZWxkX2xhYmVsLXBhZGRpbmc7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1sYWJlbC1yZXF1aXJlZCgpIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgKlwiO1xuICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9lcnJvci01MDA7XG4gICAgICAgIHBhZGRpbmc6ICRmaWVsZF9sYWJlbC1wYWRkaW5nO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsLXJlcXVpcmVkLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWNvbnRyb2woKSB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1jb250cm9sLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWlucHV0KCkge1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX2lucHV0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGZpZWxkX2lucHV0LWxpbmUtaGVpZ2h0O1xuICAgIHBhZGRpbmc6ICRmaWVsZF9pbnB1dC1wYWRkaW5nO1xuICAgIGNvbG9yOiAkZmllbGRfaW5wdXQtY29sb3I7XG4gICAgYmFja2dyb3VuZDogJGZpZWxkX2lucHV0LWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGZpZWxkX2lucHV0LWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyOiAkZmllbGRfaW5wdXQtYm9yZGVyO1xuICAgIGJveC1zaGFkb3c6ICRmaWVsZF9pbnB1dC1ib3gtc2hhZG93O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkZmllbGRfdHJhbnNpdGlvbi10aW1lO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtOyAvLyBBZGQgc3BhY2luZyB1bmRlciBsYWJlbC4gVGhpcyBjYW4ndCBiZSBhZGRlZCB0byBsYWJlbCBpdHNlbGYgYmVjYXVzZSB0aGV5IGFyZSBzb21ldGltZXMgcmVuZGVyZWQgZW1wdHkuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0LjhyZW07XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsgLy8gUmVtb3ZlcyBkcm9wIHNoYWRvdyBmcm9tIGlucHV0cyBvbiBpT1MuXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9pbnB1dC1ib3JkZXItYWN0aXZlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX2lucHV0LWJveC1zaGFkb3ctYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICB9XG5cbiAgICAmLnJlcXVpcmVkLWVudHJ5IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgIGNvbG9yOiAkZmllbGRfaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6ICRmaWVsZF9pbnB1dC1kaXNhYmxlZC1vcGFjaXR5O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWlucHV0LWVycm9yKCkge1xuICAgICYsXG4gICAgJjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICAgIGJvcmRlcjogJGZpZWxkX2Vycm9yLWlucHV0LWJvcmRlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvci1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1pY29uKCR0eXBlOiBcIlwiKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAkZmllbGRfaWNvbi13aWR0aDtcbiAgICBoZWlnaHQ6ICRmaWVsZF9pY29uLWhlaWdodDtcbiAgICByaWdodDogMC44ZW07XG4gICAgdG9wOiAwLjhlbTtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGlmICgkdHlwZSA9PSBcInN1Y2Nlc3NcIikge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZmllbGRfaWNvbi1zdWNjZXNzLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtaWNvbi1ob29rKCR0eXBlKTtcbn1cblxuQG1peGluIGZpZWxkLW5vdGUoKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkZmllbGRfbm90ZS1mb250LXNpemU7XG4gICAgcGFkZGluZzogJGZpZWxkX2xhYmVsLXBhZGRpbmc7XG4gICAgY29sb3I6ICRmaWVsZF9ub3RlLWNvbG9yO1xuICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuXG4gICAgQGluY2x1ZGUgZmllbGQtbm90ZS1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1lcnJvcigpIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG5cbiAgICBjb2xvcjogJGZpZWxkX2Vycm9yLWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgZmllbGQtZXJyb3ItaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtd2FybmluZygpIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG5cbiAgICBjb2xvcjogJGZpZWxkX3dhcm5pbmctY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC13YXJuaW5nLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLXNlbGVjdCgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRmaWVsZF9zZWxlY3QtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkZmllbGRfc2VsZWN0LWxpbmUtaGVpZ2h0O1xuICAgIHBhZGRpbmc6ICRmaWVsZF9zZWxlY3QtcGFkZGluZztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkZmllbGRfc2VsZWN0LXBhZGRpbmctcmlnaHQ7XG4gICAgY29sb3I6ICRmaWVsZF9zZWxlY3QtY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogJGZpZWxkX3NlbGVjdC1ib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlcjogJGZpZWxkX3NlbGVjdC1ib3JkZXI7XG4gICAgYm94LXNoYWRvdzogJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtOyAvLyBBZGQgc3BhY2luZyB1bmRlciBsYWJlbC4gVGhpcyBjYW4ndCBiZSBhZGRlZCB0byBsYWJlbCBpdHNlbGYgYmVjYXVzZSB0aGV5IGFyZSBzb21ldGltZXMgcmVuZGVyZWQgZW1wdHkuXG4gICAgb3V0bGluZTogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtaW1hZ2U7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1wb3NpdGlvbjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1zaXplO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkZmllbGRfdHJhbnNpdGlvbi10aW1lO1xuXG4gICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICB9XG5cbiAgICAmLnJlcXVpcmVkLWVudHJ5IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG4gICAgJjotbW96LWZvY3VzcmluZyxcbiAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgYm9yZGVyOiAkZmllbGRfc2VsZWN0LWJvcmRlci1hY3RpdmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkZmllbGRfc2VsZWN0LWJveC1zaGFkb3ctYWN0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogJGZpZWxkX3NlbGVjdC1kaXNhYmxlZC1vcGFjaXR5O1xuICAgIH1cblxuICAgIG9wdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGNvbG9yOiBpbml0aWFsO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1zZWxlY3QtZXJyb3IoKSB7XG4gICAgJixcbiAgICAmOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgICAgYm9yZGVyOiAkZmllbGRfZXJyb3ItaW5wdXQtYm9yZGVyO1xuICAgIH1cbn1cblxuQG1peGluIGZpZWxkLXJhZGlvLWxhYmVsKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvLWxhYmVsLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLXJhZGlvKCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6ICRmaWVsZF9yYWRpby1zaXplO1xuICAgIHdpZHRoOiAkZmllbGRfcmFkaW8tc2l6ZTtcbiAgICBtYXJnaW46ICRmaWVsZF9yYWRpby1tYXJnaW47XG4gICAgZm9udC1zaXplOiAkZmllbGRfcmFkaW8tZm9udC1zaXplO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGZsZXg6IDAgMCBhdXRvOyAvLyBQcmV2ZW50IGZsZXggcGFyZW50IGZyb20gYnJlYWtpbmcgZGltZW5zaW9ucy5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBib3JkZXI6ICRmaWVsZF9yYWRpby1ib3JkZXI7XG4gICAgYm94LXNoYWRvdzogJGZpZWxkX3JhZGlvLWJveC1zaGFkb3c7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtc2l6ZTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWUsXG4gICAgICAgIGJvcmRlci1jb2xvciAkZmllbGRfdHJhbnNpdGlvbi10aW1lO1xuXG4gICAgJjo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgYm9yZGVyOiAkZmllbGRfcmFkaW8tYm9yZGVyLWFjdGl2ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWFjdGl2ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6Y2hlY2tlZCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWltYWdlLWNoZWNrZWQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9yYWRpby1ib3JkZXItY2hlY2tlZDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkZmllbGRfcmFkaW8tYm94LXNoYWRvdy1jaGVja2VkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0sXG4gICAgJltkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgJltkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICAgICAgb3BhY2l0eTogJGZpZWxkX3JhZGlvLWRpc2FibGVkLW9wYWNpdHk7XG4gICAgfVxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuXG4gICAgQGluY2x1ZGUgZmllbGQtcmFkaW8taG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtY2hlY2tib3gtbGFiZWwoKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3gtbGFiZWwtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtY2hlY2tib3goKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtcmFkaW8oKTtcblxuICAgIGJvcmRlci1yYWRpdXM6ICRmaWVsZF9jaGVja2JveC1ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtc2l6ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuXG4gICAgJjpjaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1jaGVja2JveC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1kb2IoKSB7XG4gICAgaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiAkZmllbGRfZG9iLWJ1dHRvbi10eXBlLCAkaWNvbl9wb3M6ICRmaWVsZF9kb2ItYnV0dG9uLWljb24tcG9zKTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKCR0eXBlOiAkZmllbGRfZG9iLWJ1dHRvbi10eXBlLCAkaWNvbl9wb3M6ICRmaWVsZF9kb2ItYnV0dG9uLWljb24tcG9zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWRvYi1ob29rKCk7XG59XG4iLCJAaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL2ZpZWxkL2ZpZWxkLnNjc3NcIjtcblxuLmZpZWxkIHtcbiAgICAmOmVtcHR5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogODBweDtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAubWFnZS1lcnJvciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICAgICYtdG9vbHRpcCB7XG4gICAgICAgICYtY29udGVudCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEZvb3RlciBjb21wb25lbnQgY3VzdG9taXphdGlvbi5cbiAqIEBzZWUgL01hZ2VudG9fVGhlbWUvdGVtcGxhdGVzL2Zvb3Rlci9jb2x1bW5zLnBodG1sIGZvciB0ZW1wbGF0ZXMuXG4gKi9cbkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwidmVuZG9ycy9pbmNsdWRlLW1lZGlhXCI7XG5AaW1wb3J0IFwidXRpbHMvdmlzdWFsbHktaGlkZGVuXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9wc2V1ZG9pY29uL21peGluXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluXCI7XG5cbiRmb290ZXJfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC04MDAgIWRlZmF1bHQ7XG4kZm9vdGVyX2VkZ2UtZ3V0dGVyOiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLWVkZ2UtZ3V0dGVyOiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi12ZXJ0aWNhbC1vZmZzZXQ6IDJlbSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLXNlcGFyYXRvci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfZ3JheSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLWhlYWRsaW5lLWxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTQgIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtcGFkZGluZzogJGZvb3Rlcl9zZWN0aW9uLXZlcnRpY2FsLW9mZnNldCAkZm9vdGVyX3NlY3Rpb24tZWRnZS1ndXR0ZXIgIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtY29sb3I6ICRjb2xvcl9ncmF5ICFkZWZhdWx0O1xuJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLWZvbnQtc2l6ZTogMS4yZW0gIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG5cbiRmb290ZXJfc2VjdGlvbi1wc2V1ZG9pY29uLWluY2x1ZGU6IHRydWUgIWRlZmF1bHQ7XG5cbiRmb290ZXJfcHJvbW8tZGlzcGxheS1vbi1tb2JpbGU6IGZhbHNlICFkZWZhdWx0O1xuJGZvb3Rlcl9sb2dvLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuJGZvb3Rlcl9sb2dvLXdpZHRoOiAxMy41ZW0gIWRlZmF1bHQ7XG4kZm9vdGVyX2xvZ28taGVpZ2h0OiAyLjNlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWZvb3RlciB7XG4gICRyb290OiAmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiA4MHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMyNzI3MjcgMCUsICM0MjQyNDIgMTAwJSk7XG4gIC5jbXMta29udGFrdCAmLFxuICAuY21zLXNlcndpcyAme1xuICAgIG1hcmdpbi10b3A6IDc1cHg7XG4gIH1cbiAgLmNtcy1vLW5hcyAmIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgbWFyZ2luLXRvcDogMjYwcHg7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTI2MHB4O1xuICAgICAgbGVmdDogMDtcbiAgICAgIGhlaWdodDogMjYwcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfZ3JleS0xMDA7XG4gICAgfVxuICB9XG4gXG4gIC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjM2MzYzNjIDAlLCAjNDI0MjQyIDEwMCUpO1xuICAgICAgcmlnaHQ6IGNhbGMoLTc1JSAtIDE1cHgpO1xuICAgICAgdG9wOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIHRvcDogdW5zZXQ7XG4gICAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgICBsZWZ0OiAtMTVweDtcbiAgICAgICAgaGVpZ2h0OiAzOTBweDtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDMwcHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLmZvb3RlciB7XG4gICAgJl9fYWRkaXRpb25hbF9pbmZvX3dyYXBwZXIge1xuICAgICAgcGFkZGluZzogMjlweCA1MHB4IDIzcHggNTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgdG9wOiAtNzVweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICB0b3A6IDEwcHg7XG4gICAgICB9XG4gICAgfVxuICAgICZfX2FkZGl0aW9uYWxfaW5mb190aXRsZSB7XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG4gICAgJl9fYWRkaXRpb25hbF9pbmZvX2l0ZW1zIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgICAmX19hZGR0aW9uYWxfaW5mb19pdGVtIHtcbiAgICAgIHdpZHRoOiAzMyU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctbGVmdDogODhweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDY0cHg7XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLXRvcDogODhweDtcbiAgICAgICAgbWluLWhlaWdodDogODhweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7XG4gICAgICB9XG4gICAgICAmLS1hdmFpbGFiaWxpdHksXG4gICAgICAmLS1kZWxpdmVyeSxcbiAgICAgICYtLWxhdW5jaCB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgIHdpZHRoOiA2NHB4O1xuICAgICAgICAgIGhlaWdodDogNjRweDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9vdGVyL0Rvc3RlcG5vc2Muc3ZnXCIpO1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogdW5zZXQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLS1kZWxpdmVyeSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9vdGVyL1N6eWJrYV93eXN5bGthLnN2Z1wiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi0tbGF1bmNoIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb290ZXIvQXV0b21hdHlrLnN2Z1wiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi10aXRsZSB7XG4gICAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgICAmX193cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMzcwcHg7XG4gICAgICB9XG4gICAgfVxuICAgICZfX21haW4tbGlzdCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgcGFkZGluZy1ib3R0b206IDQwcHg7XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuICAgICAgJi1saW5rcy13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcCxcbiAgICAgICAgYSB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIzcHg7XG4gICAgICAgIH1cbiAgICAgICAgYSB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYtY29udGFjdC1pdGVtIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICAgIH1cbiAgICAgICYtbGlua3MtaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHdpZHRoOiAyMSU7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4Nzg3ODc7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi1saW5rcy10aXRsZSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIitcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiLVwiO1xuICAgICAgICAgICAgICByaWdodDogNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi1hZGRyZXNzLXdyYXBwZXIsXG4gICAgICAmLXBob25lLXdyYXBwZXIsXG4gICAgICAmLW1haWwtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIC5mb290ZXJfX21haW4tbGlzdC1jb250YWN0LWljb24td3JhcHBlciB7XG4gICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9vdGVyL3NpZWR6aWJhLnN2Z1wiKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi1hZGRyZXNzLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgfVxuICAgICAgJi1tYWlsLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICAuZm9vdGVyX19tYWluLWxpc3QtY29udGFjdC1pY29uLXdyYXBwZXIge1xuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9vdGVyL21haWwuc3ZnXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjNweDtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi1waG9uZS13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNDJweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiA4MnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvb3Rlcl9fbWFpbi1saXN0LWNvbnRhY3QtaWNvbi13cmFwcGVyIHtcbiAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvb3Rlci9pbmZvbGluaWEuc3ZnXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuZm9vdGVyX19tYWluLWxpc3QtY29udGFjdC10ZXh0LXdyYXBwZXIge1xuICAgICAgICAgIHAge1xuICAgICAgICAgICAgY29sb3I6ICNkNWQ1ZDU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLWNvbnRhY3QtdGV4dC13cmFwcGVyIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICAgICAgfVxuICAgICAgJi1waG9uZS10ZXh0IHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgICAgfVxuICAgIH1cbiAgICAmX190ZXh0LS1ib2xkIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICAgICZfX2luZm8tbGlzdCB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzk3OTc5NztcbiAgICAgIHBhZGRpbmc6IDI0cHggMCA0NHB4IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgICYtbGlua3Mge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYtbGlua3MgYSxcbiAgICAgICYtY29weSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMjNweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICAgICYtbGlua3MgYSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmZmY7XG4gICAgICAgICAgcmlnaHQ6IC03cHg7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgICAgICY6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3ICYge1xuICAgIG1hcmdpbi10b3A6IDEwNXB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICBtYXJnaW4tdG9wOiAyNjBweDtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDExMHB4O1xuICAgICAgYmFja2dyb3VuZDogI2Y3ZjdmNztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTExMHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBGb290ZXIgY29tcG9uZW50IGN1c3RvbWl6YXRpb24uXG4gKiBAc2VlIC9NYWdlbnRvX1RoZW1lL3RlbXBsYXRlcy9mb290ZXIvY29sdW1ucy5waHRtbCBmb3IgdGVtcGxhdGVzLlxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1mb290ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiA4MHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMyNzI3MjcgMCUsICM0MjQyNDIgMTAwJSk7IH1cbiAgLmNtcy1rb250YWt0IC5jcy1mb290ZXIsXG4gIC5jbXMtc2Vyd2lzIC5jcy1mb290ZXIge1xuICAgIG1hcmdpbi10b3A6IDc1cHg7IH1cbiAgLmNtcy1vLW5hcyAuY3MtZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLWZvb3RlciB7XG4gICAgICBtYXJnaW4tdG9wOiAyNjBweDsgfVxuICAgICAgLmNzLWZvb3RlcjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTI2MHB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBoZWlnaHQ6IDI2MHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfSB9XG4gIC5jcy1mb290ZXIgLmNzLWNvbnRhaW5lcl9faW5uZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzNjM2MzYyAwJSwgIzQyNDI0MiAxMDAlKTtcbiAgICByaWdodDogY2FsYygtNzUlIC0gMTVweCk7XG4gICAgdG9wOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1mb290ZXIgLmNzLWNvbnRhaW5lcl9faW5uZXI6YWZ0ZXIge1xuICAgICAgdG9wOiB1bnNldDtcbiAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgbGVmdDogLTE1cHg7XG4gICAgICBoZWlnaHQ6IDM5MHB4O1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDMwcHgpOyB9IH1cbiAgLmNzLWZvb3RlciBwIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLWZvb3RlciAuZm9vdGVyX19hZGRpdGlvbmFsX2luZm9fd3JhcHBlciB7XG4gICAgcGFkZGluZzogMjlweCA1MHB4IDIzcHggNTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRvcDogLTc1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX2FkZGl0aW9uYWxfaW5mb193cmFwcGVyIHtcbiAgICAgICAgdG9wOiAxMHB4OyB9IH1cbiAgLmNzLWZvb3RlciAuZm9vdGVyX19hZGRpdGlvbmFsX2luZm9fdGl0bGUge1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIC5jcy1mb290ZXIgLmZvb3Rlcl9fYWRkaXRpb25hbF9pbmZvX2l0ZW1zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX2FkZGl0aW9uYWxfaW5mb19pdGVtcyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0gfVxuICAuY3MtZm9vdGVyIC5mb290ZXJfX2FkZHRpb25hbF9pbmZvX2l0ZW0ge1xuICAgIHdpZHRoOiAzMyU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDg4cHg7XG4gICAgbWluLWhlaWdodDogNjRweDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX2FkZHRpb25hbF9pbmZvX2l0ZW0ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLXRvcDogODhweDtcbiAgICAgICAgbWluLWhlaWdodDogODhweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7IH0gfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fYWRkdGlvbmFsX2luZm9faXRlbS0tYXZhaWxhYmlsaXR5OmJlZm9yZSwgLmNzLWZvb3RlciAuZm9vdGVyX19hZGR0aW9uYWxfaW5mb19pdGVtLS1kZWxpdmVyeTpiZWZvcmUsIC5jcy1mb290ZXIgLmZvb3Rlcl9fYWRkdGlvbmFsX2luZm9faXRlbS0tbGF1bmNoOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgd2lkdGg6IDY0cHg7XG4gICAgICBoZWlnaHQ6IDY0cHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9vdGVyL0Rvc3RlcG5vc2Muc3ZnXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fYWRkdGlvbmFsX2luZm9faXRlbS0tYXZhaWxhYmlsaXR5OmJlZm9yZSwgLmNzLWZvb3RlciAuZm9vdGVyX19hZGR0aW9uYWxfaW5mb19pdGVtLS1kZWxpdmVyeTpiZWZvcmUsIC5jcy1mb290ZXIgLmZvb3Rlcl9fYWRkdGlvbmFsX2luZm9faXRlbS0tbGF1bmNoOmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGxlZnQ6IHVuc2V0OyB9IH1cbiAgICAuY3MtZm9vdGVyIC5mb290ZXJfX2FkZHRpb25hbF9pbmZvX2l0ZW0tLWRlbGl2ZXJ5OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9vdGVyL1N6eWJrYV93eXN5bGthLnN2Z1wiKTsgfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fYWRkdGlvbmFsX2luZm9faXRlbS0tbGF1bmNoOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9vdGVyL0F1dG9tYXR5ay5zdmdcIik7IH1cbiAgICAuY3MtZm9vdGVyIC5mb290ZXJfX2FkZHRpb25hbF9pbmZvX2l0ZW0tdGl0bGUge1xuICAgICAgY29sb3I6ICMzMzM7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmNzLWZvb3RlciAuZm9vdGVyX193cmFwcGVyIHtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDM3MHB4OyB9IH1cbiAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG4gICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtbGlua3Mtd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtbGlua3Mtd3JhcHBlciBwLFxuICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtbGlua3Mtd3JhcHBlciBhIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4OyB9XG4gICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1saW5rcy13cmFwcGVyIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1saW5rcy13cmFwcGVyIGEge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4OyB9IH1cbiAgICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtbGlua3Mtd3JhcHBlciBhOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWNvbnRhY3QtaXRlbSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4OyB9XG4gICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtbGlua3MtaXRlbSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIHdpZHRoOiAyMSU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWxpbmtzLWl0ZW0ge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODc4Nzg3O1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7IH0gfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWxpbmtzLXRpdGxlIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1saW5rcy10aXRsZSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWxpbmtzLXRpdGxlOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiK1wiO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgICAgICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1saW5rcy10aXRsZS5hY3RpdmUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuICAgICAgICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtbGlua3MtdGl0bGUuYWN0aXZlOmFmdGVyIHtcbiAgICAgICAgICAgICAgY29udGVudDogXCItXCI7XG4gICAgICAgICAgICAgIHJpZ2h0OiA1cHg7IH0gfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWFkZHJlc3Mtd3JhcHBlciwgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtcGhvbmUtd3JhcHBlciwgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtbWFpbC13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWFkZHJlc3Mtd3JhcHBlciAuZm9vdGVyX19tYWluLWxpc3QtY29udGFjdC1pY29uLXdyYXBwZXIsIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LXBob25lLXdyYXBwZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWNvbnRhY3QtaWNvbi13cmFwcGVyLCAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1tYWlsLXdyYXBwZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWNvbnRhY3QtaWNvbi13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWFkZHJlc3Mtd3JhcHBlciAuZm9vdGVyX19tYWluLWxpc3QtY29udGFjdC1pY29uLXdyYXBwZXI6YmVmb3JlLCAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1waG9uZS13cmFwcGVyIC5mb290ZXJfX21haW4tbGlzdC1jb250YWN0LWljb24td3JhcHBlcjpiZWZvcmUsIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LW1haWwtd3JhcHBlciAuZm9vdGVyX19tYWluLWxpc3QtY29udGFjdC1pY29uLXdyYXBwZXI6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9vdGVyL3NpZWR6aWJhLnN2Z1wiKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cbiAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1hZGRyZXNzLXdyYXBwZXIge1xuICAgICAgbWFyZ2luLXRvcDogMjRweDsgfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LW1haWwtd3JhcHBlciB7XG4gICAgICBtYXJnaW4tdG9wOiAxNnB4OyB9XG4gICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1tYWlsLXdyYXBwZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWNvbnRhY3QtaWNvbi13cmFwcGVyOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9vdGVyL21haWwuc3ZnXCIpOyB9XG4gICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1tYWlsLXdyYXBwZXIgYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMjNweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1waG9uZS13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDQycHg7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LXBob25lLXdyYXBwZXIge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDgycHg7IH0gfVxuICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtcGhvbmUtd3JhcHBlciAuZm9vdGVyX19tYWluLWxpc3QtY29udGFjdC1pY29uLXdyYXBwZXI6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb290ZXIvaW5mb2xpbmlhLnN2Z1wiKTsgfVxuICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtcGhvbmUtd3JhcHBlciAuZm9vdGVyX19tYWluLWxpc3QtY29udGFjdC10ZXh0LXdyYXBwZXIgcCB7XG4gICAgICAgIGNvbG9yOiAjZDVkNWQ1OyB9XG4gICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1waG9uZS13cmFwcGVyIC5mb290ZXJfX21haW4tbGlzdC1jb250YWN0LXRleHQtd3JhcHBlciBzcGFuIHtcbiAgICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1jb250YWN0LXRleHQtd3JhcHBlciB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4OyB9XG4gICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtcGhvbmUtdGV4dCB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OyB9XG4gIC5jcy1mb290ZXIgLmZvb3Rlcl9fdGV4dC0tYm9sZCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAuY3MtZm9vdGVyIC5mb290ZXJfX2luZm8tbGlzdCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5Nzk3OTc7XG4gICAgcGFkZGluZzogMjRweCAwIDQ0cHggMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX2luZm8tbGlzdCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX2luZm8tbGlzdC1saW5rcyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH0gfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9faW5mby1saXN0LWxpbmtzIGEsIC5jcy1mb290ZXIgLmZvb3Rlcl9faW5mby1saXN0LWNvcHkge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICBsaW5lLWhlaWdodDogMjNweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9faW5mby1saXN0LWxpbmtzIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9faW5mby1saXN0LWxpbmtzIGE6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDFweDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmZmY7XG4gICAgICByaWdodDogLTdweDtcbiAgICAgIHRvcDogMDsgfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9faW5mby1saXN0LWxpbmtzIGE6bGFzdC1jaGlsZDo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNzLWZvb3RlciB7XG4gICAgbWFyZ2luLXRvcDogMTA1cHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5jcy1mb290ZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNjBweDsgfSB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5jcy1mb290ZXI6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMTBweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmN2Y3Zjc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0xMTBweDsgfVxuIiwiLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuXG5AbWl4aW4gdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIDEgKi9cbn1cblxuQG1peGluIHZpc3VhbGx5LXZpc2libGUge1xuICAgIGNsaXA6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtZm9vdGVyLWxpbmtzIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5jcy1mb290ZXItbGlua3NfX2l0ZW0ge1xuICAgIG1hcmdpbjogMCAwIDAuM2VtOyB9XG4gIC5jcy1mb290ZXItbGlua3MgYSwgLmNzLWZvb3Rlci1saW5rcyBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtZm9vdGVyLWxpbmtzIGE6aG92ZXIsIC5jcy1mb290ZXItbGlua3MgYTpmb2N1cywgLmNzLWZvb3Rlci1saW5rcyBhOmFjdGl2ZSwgLmNzLWZvb3Rlci1saW5rcyBhOnZpc2l0ZWQ6aG92ZXIsIC5jcy1mb290ZXItbGlua3MgYTp2aXNpdGVkOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuY3MtZm9vdGVyLWxpbmtzIGEsIC5jcy1mb290ZXItbGlua3MgYTp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjVlbSAwO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZm9vdGVyLWxpbmtzIGEsIC5jcy1mb290ZXItbGlua3MgYTp2aXNpdGVkIHtcbiAgICAgICAgcGFkZGluZzogMC4zNWVtIDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRmb290ZXItbGlua3NfbGlzdC1pdGVtLW1hcmdpbjogMCAwIDAuM2VtICFkZWZhdWx0O1xuXG4kZm9vdGVyLWxpbmtzX2xpbmstZm9udC1zaXplOiBpbmhlcml0ICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kZm9vdGVyLWxpbmtzX2xpbmstaG92ZXItY29sb3I6ICRmb290ZXItbGlua3NfbGluay1jb2xvciAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLWhvdmVyLWRlY29yYXRpb246IHVuZGVybGluZSAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLW1vYmlsZTogMC41ZW0gMCAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLWRlc2t0b3A6IDAuMzVlbSAwICFkZWZhdWx0O1xuXG4uI3skbnN9Zm9vdGVyLWxpbmtzIHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBtYXJnaW46ICRmb290ZXItbGlua3NfbGlzdC1pdGVtLW1hcmdpbjtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICRjb2xvcjogJGZvb3Rlci1saW5rc19saW5rLWNvbG9yLFxuICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkZm9vdGVyLWxpbmtzX2xpbmstaG92ZXItY29sb3IsXG4gICAgICAgICAgICAkZGVjb3JhdGlvbjogJGZvb3Rlci1saW5rc19saW5rLWRlY29yYXRpb24sXG4gICAgICAgICAgICAkZGVjb3JhdGlvbi1ob3ZlcjogJGZvb3Rlci1saW5rc19saW5rLWhvdmVyLWRlY29yYXRpb25cbiAgICAgICAgKTtcblxuICAgICAgICAmLFxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZm9vdGVyLWxpbmtzX2xpbmstcGFkZGluZy1tb2JpbGU7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb290ZXItbGlua3NfbGluay1mb250LXNpemU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkZm9vdGVyLWxpbmtzX2xpbmstcGFkZGluZy1kZXNrdG9wO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1oZWFkbGluZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY2xlYXI6IGJvdGg7XG4gIHBhZGRpbmc6IDJlbSAwO1xuICBtYXJnaW46IDJlbSAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMCAwIDNyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtaGVhZGxpbmUge1xuICAgICAgbWFyZ2luOiAwIDAgNHJlbTsgfSB9XG4gIC5jcy1oZWFkbGluZS0tc2tpcC1zcGFjaW5nIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLWhlYWRsaW5lX190aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMi42ZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzIxMjEyMTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGxpbmVfX3RpdGxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gICAgLmNzLWhlYWRsaW5lX190aXRsZTpiZWZvcmUsIC5jcy1oZWFkbGluZV9fdGl0bGU6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtaGVhZGxpbmVfX3RpdGxlOmJlZm9yZSwgLmNzLWhlYWRsaW5lX190aXRsZTphZnRlciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gICAgLmNzLWhlYWRsaW5lX190aXRsZTpiZWZvcmUge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjZlbTsgfVxuICAgIC5jcy1oZWFkbGluZV9fdGl0bGU6YWZ0ZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNmVtOyB9XG4gIC5jcy1oZWFkbGluZV9fc3VidGl0bGUge1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRsaW5lX19zdWJ0aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLmNtcy1rbWEtaG9tZS1wYWdlIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1oZWFkbGluZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7IH0gfVxuXG4uY21zLWttYS1ob21lLXBhZ2UgaDIuY3MtaGVhZGxpbmVfX3RpdGxlLFxuLmNtcy1rbWEtaG9tZS1wYWdlIGgzLmNzLWhlYWRsaW5lX190aXRsZSxcbi5jbXMta21hLWhvbWUtcGFnZSBoNC5jcy1oZWFkbGluZV9fdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIjtcbiAgZm9udC1zaXplOiA0MnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gIG1hcmdpbi1ib3R0b206IDZweDtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuY21zLWttYS1ob21lLXBhZ2UgaDIuY3MtaGVhZGxpbmVfX3RpdGxlOjpiZWZvcmUsIC5jbXMta21hLWhvbWUtcGFnZSBoMi5jcy1oZWFkbGluZV9fdGl0bGU6OmFmdGVyLFxuICAuY21zLWttYS1ob21lLXBhZ2UgaDMuY3MtaGVhZGxpbmVfX3RpdGxlOjpiZWZvcmUsXG4gIC5jbXMta21hLWhvbWUtcGFnZSBoMy5jcy1oZWFkbGluZV9fdGl0bGU6OmFmdGVyLFxuICAuY21zLWttYS1ob21lLXBhZ2UgaDQuY3MtaGVhZGxpbmVfX3RpdGxlOjpiZWZvcmUsXG4gIC5jbXMta21hLWhvbWUtcGFnZSBoNC5jcy1oZWFkbGluZV9fdGl0bGU6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5jbXMta21hLWhvbWUtcGFnZSBoMi5jcy1oZWFkbGluZV9fdGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDQycHg7IH0gfVxuXG4uY21zLWttYS1ob21lLXBhZ2UgaDMuY3MtaGVhZGxpbmVfX3RpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNtcy1rbWEtaG9tZS1wYWdlIGgzLmNzLWhlYWRsaW5lX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICBsaW5lLWhlaWdodDogNDJweDsgfSB9XG5cbi5jbXMta21hLWhvbWUtcGFnZSBoNC5jcy1oZWFkbGluZV9fdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5OyB9XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGhlYWRsaW5lLWhvb2soKSB7XG59XG5cbkBtaXhpbiBoZWFkbGluZS10aXRsZS1ob29rKCkge1xufVxuXG5AbWl4aW4gaGVhZGxpbmUtc3VidGl0bGUtaG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwidmVuZG9ycy9pbmNsdWRlLW1lZGlhXCI7XG5AaW1wb3J0IFwidXRpbHMvY29tcG9uZW50LXNwYWNpbmdcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2hlYWRsaW5lL21peGluXCI7XG5cbi4jeyRuc31oZWFkbGluZSB7XG4gIEBpbmNsdWRlIGhlYWRsaW5lKCk7XG5cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuXG4gIEBpbmNsdWRlIGNvbXBvbmVudC1zcGFjaW5nKCk7XG5cbiAgJl9fdGl0bGUge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lLXRpdGxlKCk7XG4gIH1cblxuICAmX19zdWJ0aXRsZSB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUtc3VidGl0bGUoKTtcbiAgfVxufVxuXG4uY21zLWttYS1ob21lLXBhZ2Uge1xuICAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0taGVhZGxpbmUge1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICB9XG4gIGgyLFxuICBoMyxcbiAgaDQge1xuICAgICYuI3skbnN9aGVhZGxpbmVfX3RpdGxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICBmb250LWZhbWlseTogJGZvbnRfZmFtaWx5LXByaW1hcnk7XG4gICAgICBmb250LXNpemU6IDQycHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICBsaW5lLWhlaWdodDogNjBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGgyIHtcbiAgICAmLiN7JG5zfWhlYWRsaW5lX190aXRsZSB7XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQycHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vaDMgaXMgbGlrZSBoMiwgYnV0IGNlbnRlcmluZ1xuICBoMyB7XG4gICAgJi4jeyRuc31oZWFkbGluZV9fdGl0bGUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNDJweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy9zbWFsbCBjZW50ZXJpbmcgaGVhZGxpbmUgdGl0bGVcbiAgaDQge1xuICAgICYuI3skbnN9aGVhZGxpbmVfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDk7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlYWRsaW5lL2hvb2snO1xuXG4kaGVhZGxpbmVfdGl0bGUtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRoZWFkbGluZV90aXRsZS1mb250LXNpemU6IDIuNmVtICFkZWZhdWx0O1xuJGhlYWRsaW5lX3RpdGxlLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kaGVhZGxpbmVfdGl0bGUtdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4vLyBTaG93IGZsZXhpYmxlIGRlY29yYXRpb24gbGluZXMgYXQgdGhlIHNpZGVzIG9mIHRoZSB0aXRsZS5cbiRoZWFkbGluZV90aXRsZS1saW5lcy1lbmFibGVkOiB0cnVlICFkZWZhdWx0O1xuJGhlYWRsaW5lX3RpdGxlLWxpbmVzLWNvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuJGhlYWRsaW5lX3N1YnRpdGxlLWNvbG9yOiAkY29sb3JfYm9yZGVyLTcwMCAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS1mb250LXNpemU6IDEuM2VtICFkZWZhdWx0O1xuJGhlYWRsaW5lX3N1YnRpdGxlLWZvbnQtd2VpZ2h0OiA0MDAgIWRlZmF1bHQ7XG4kaGVhZGxpbmVfc3VidGl0bGUtdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kaGVhZGxpbmVfc3VidGl0bGUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG5AbWl4aW4gaGVhZGxpbmUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBwYWRkaW5nOiAyZW0gMDtcbiAgICBtYXJnaW46IDJlbSAwO1xuXG4gICAgQGluY2x1ZGUgaGVhZGxpbmUtaG9vaygpO1xufVxuXG5AbWl4aW4gaGVhZGxpbmUtdGl0bGUoXG4gICAgJGNvbG9yOiAkaGVhZGxpbmVfdGl0bGUtY29sb3IsXG4gICAgJGZvbnQtc2l6ZTogJGhlYWRsaW5lX3RpdGxlLWZvbnQtc2l6ZSxcbiAgICAkZm9udC13ZWlnaHQ6ICRoZWFkbGluZV90aXRsZS1mb250LXdlaWdodCxcbiAgICAkdGV4dC10cmFuc2Zvcm06ICRoZWFkbGluZV90aXRsZS10ZXh0LXRyYW5zZm9ybSxcbiAgICAkbGluZXMtZW5hYmxlZDogJGhlYWRsaW5lX3RpdGxlLWxpbmVzLWVuYWJsZWQsXG4gICAgJGxpbmVzLWNvbG9yOiAkaGVhZGxpbmVfdGl0bGUtbGluZXMtY29sb3Jcbikge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIHRleHQtdHJhbnNmb3JtOiAkdGV4dC10cmFuc2Zvcm07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgQGlmICRsaW5lcy1lbmFibGVkIHtcbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluZXMtY29sb3I7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjZlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaGVhZGxpbmUtdGl0bGUtaG9vaygpO1xufVxuXG5AbWl4aW4gaGVhZGxpbmUtc3VidGl0bGUoXG4gICAgJGNvbG9yOiAkaGVhZGxpbmVfc3VidGl0bGUtY29sb3IsXG4gICAgJGZvbnQtc2l6ZTogJGhlYWRsaW5lX3N1YnRpdGxlLWZvbnQtc2l6ZSxcbiAgICAkZm9udC13ZWlnaHQ6ICRoZWFkbGluZV9zdWJ0aXRsZS1mb250LXdlaWdodCxcbiAgICAkdGV4dC10cmFuc2Zvcm06ICRoZWFkbGluZV9zdWJ0aXRsZS10ZXh0LXRyYW5zZm9ybVxuKSB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJHRleHQtdHJhbnNmb3JtO1xuICAgIG1hcmdpbjogJGhlYWRsaW5lX3N1YnRpdGxlLW1hcmdpbjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaGVhZGxpbmUtc3VidGl0bGUtaG9vaygpO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuICogVmFyaWFibGVzIHJlbGF0ZWQgdG8gc3RpY2t5IGhlYWRlciBhbmQgdG9wYmFyIG9uIG1vYmlsZSBkZXZpY2VzLlxuICogdG8gcHJldmVudCBwYWdlIGp1bXBpbmcgd2hlbiBvZmZhY252YXMgKGZpeGVkIHBvc2l0aW9uZWQpIGlzIG9wZW5lZFxuICogSWYgeW91IGhhdmUgbW9yZSBlbGVtZW50cyBvbiB0b3AsIHlvdSBoYXZlIHRvIGluY2x1ZGUgdGhlaXIgaGVpZ2h0LlxuICovXG5AbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtY29udGFpbmVyLS1oZWFkZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cblxuLyoqXG4gICAgICogU3R5bGVzIHJlbGF0ZWQgdG8gc3RpY2t5IGhlYWRlciBhbmQgdG9wYmFyIG9uIG1vYmlsZSBkZXZpY2VzLlxuICAgICAqIHRvIHByZXZlbnQgcGFnZSBqdW1waW5nIHdoZW4gb2ZmYWNudmFzIChmaXhlZCBwb3NpdGlvbmVkKSBpcyBvcGVuZWRcbiAgICAgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5uYXZpZ2F0aW9uLW9mZmNhbnZhcy1vcGVuIC5wYWdlLXdyYXBwZXIubm8tc2Nyb2xsLWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogOC4zcmVtOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLm5hdmlnYXRpb24tb2ZmY2FudmFzLW9wZW4gLnBhZ2Utd3JhcHBlci5uby1zY3JvbGwtY2hpbGQge1xuICAgIHBhZGRpbmctdG9wOiA1cmVtOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWNvbnRhaW5lci0taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHotaW5kZXg6IDgwMDtcbiAgICB0b3A6IDA7XG4gICAgLyoqXG4gICAgICAgICAgICAgICAgICogRml4ZWQgcG9zaXRpb25pbmcgcmVxdWlyZWQgdG8gd29yayB3aXRoIG9mZmNhbnZhcyBlbGVtZW50cy5cbiAgICAgICAgICAgICAgICAgKiBBbHNvLCBhcyBhIGZhbGxiYWNrIGZvciBJRSB3aGljaCBkb2VzIG5vdCBzdXBwb3J0IHN0aWNreS5cbiAgICAgICAgICAgICAgICAgKi8gfVxuICAgIC5uYXZpZ2F0aW9uLW9mZmNhbnZhcy1vcGVuLm5vLXNjcm9sbCAuY3MtY29udGFpbmVyLS1oZWFkZXIsXG4gICAgLmNzLWNvbnRhaW5lci0taGVhZGVyIC5pZTExIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5jcy1jb250YWluZXItLWhlYWRlciB7XG4gICAgdG9wOiAwOyB9IH1cblxuLmNzLWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgaGVpZ2h0OiA1cmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWhlYWRlciB7XG4gICAgICBoZWlnaHQ6IDguM3JlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgLmNzLWhlYWRlciB7XG4gICAgICBoZWlnaHQ6IDExcmVtOyB9IH1cbiAgLmNzLWhlYWRlcl9fY29udGVudCB7XG4gICAgaGVpZ2h0OiA1cmVtO1xuICAgIHotaW5kZXg6IDMwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDEwMHZ3OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6IDguM3JlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2NvbnRlbnQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiAxMXJlbTsgfSB9XG4gIC5jcy1oZWFkZXJfX29mZmNhbnZhcy10b2dnbGUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmbGV4OiAwIDEgNHJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19vZmZjYW52YXMtdG9nZ2xlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jcy1oZWFkZXJfX2xvZ28ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDAuN3JlbSAwIDAuN3JlbSAwLjdyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2xvZ28ge1xuICAgICAgICBwYWRkaW5nOiAwLjdyZW0gMCAwLjdyZW0gMS41cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fbG9nbyB7XG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAucGFnZS1wcmludCAuY3MtaGVhZGVyX19sb2dvIHtcbiAgICAgIG1heC13aWR0aDogMTIwcmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDJyZW0gMDsgfVxuICAgICAgLnBhZ2UtcHJpbnQgLmNzLWhlYWRlcl9fbG9nbzphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLmNzLWhlYWRlcl9fc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAzMDA7XG4gICAgdG9wOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX3NlYXJjaCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICBtYXJnaW4tbGVmdDogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfSB9XG4gICAgLmNzLWhlYWRlcl9fc2VhcmNoLS1hY3RpdmUge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19zZWFyY2gge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fc2VhcmNoIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0b3A6IGluaXRpYWw7IH0gfVxuICAuY3MtaGVhZGVyX191c2VyLW5hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGZsZXg6IDAgMSAzMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fdXNlci1uYXYge1xuICAgICAgICBmbGV4OiAwIDEgMjUlOyB9IH1cbiAgLmNzLWhlYWRlcl9fYmFjay1idXR0b24ge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiA0cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbiB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS41cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fYmFjay1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNzLWhlYWRlcl9fYmFjay1idXR0b24taWNvbiB7XG4gICAgZmlsbDogIzg4ODtcbiAgICBoZWlnaHQ6IDIuNXJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMTVlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fYmFjay1idXR0b24taWNvbiB7XG4gICAgICAgIGhlaWdodDogMnJlbTsgfSB9XG5cbi5jcy1oZWFkZXIgLm5hdmlnYXRpb24ge1xuICBtYXJnaW4tbGVmdDogM3JlbTsgfVxuICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uID4gLm5pbmphbWVudXMge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uID4gLm5pbmphbWVudXMgPiAuY29tcGFyZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDIuNXJlbTtcbiAgICAgIGxlZnQ6IDEuNXJlbTtcbiAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgaGVpZ2h0OiAzcmVtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uID4gLm5pbmphbWVudXMgPiAuY29tcGFyZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uID4gLm5pbmphbWVudXMgPiAuY29tcGFyZSAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tY29tcGFyZSB7XG4gICAgICAgIHRvcDogLTFyZW07XG4gICAgICAgIHJpZ2h0OiAtMXJlbTsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiA+IC5uaW5qYW1lbnVzID4gLmNvbXBhcmUgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgICBib3R0b206IC0xNXB4OyB9XG4gICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiA+IC5uaW5qYW1lbnVzIC5tYWdlem9uLWJ1aWxkZXIge1xuICAgICAgcG9zaXRpb246IHN0YXRpYzsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiA+IC5uaW5qYW1lbnVzIC5tYWdlem9uLWJ1aWxkZXIgPiAubGV2ZWwwIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAuc3dpdGNoZXIsXG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5uaW5qYW1lbnVzLWNsb3NlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIGRpdi5uYXYtaXRlbS5sZXZlbDAuYWN0aXZlID4gYSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2MxMjcyZiAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIGRpdi5uYXYtaXRlbS5sZXZlbDA6aG92ZXIgPiBhIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogI2MxMjcyZiAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIGRpdi5uYXYtaXRlbS5sZXZlbDAubWVnYS5tZ3otZWxlbWVudCA+IGEge1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IDAuM3MgYWxsOyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIGRpdi5uYXYtaXRlbS5sZXZlbDAubWVnYS5tZ3otZWxlbWVudDpob3ZlciA+IGEge1xuICAgICAgICBjb2xvcjogI2MxMjcyZiAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubmF2LWl0ZW1zLWNvbHVtbiA+IGEge1xuICAgICAgICBjb2xvcjogIzMzMzMzMyAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjNzIGNvbG9yOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm5hdi1pdGVtcy1jb2x1bW4gPiBhOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogI2MxMjcyZiAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5uYXYtaXRlbXMtY29sdW1uIC5uYXYtaXRlbSBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4zcyBjb2xvcjsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5uYXYtaXRlbXMtY29sdW1uIC5uYXYtaXRlbSBhOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubWd6LWVsZW1lbnQtaGVhZGluZy10ZXh0IHtcbiAgICAgICAgcGFkZGluZy1ibG9jazogMC41cmVtOyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5tZ3otdGFicy1uYXYgLm1nei10YWJzLXRhYi10aXRsZSA+IGEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q1ZDVkNSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4zcyBhbGw7XG4gICAgICAgIG1pbi13aWR0aDogMjQwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm1nei10YWJzLW5hdiAubWd6LXRhYnMtdGFiLXRpdGxlID4gYSAubWd6LWZhLWFuZ2xlLXJpZ2h0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm1nei10YWJzLW5hdiAubWd6LXRhYnMtdGFiLXRpdGxlLm1nei1hY3RpdmUgPiBhIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogI2MxMjcyZiAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5ib3R0b20tbGlua3Mtb3V0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLmJvdHRvbS1saW5rcy1vdXRlciAuYm90dG9tLWxpbmtzIHVsIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwOyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAuYm90dG9tLWxpbmtzLW91dGVyIC5ib3R0b20tbGlua3MgdWwgbGkge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAuYm90dG9tLWxpbmtzLW91dGVyIC5ib3R0b20tbGlua3MgdWwgbGkgYSB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogMC41cmVtO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAuYm90dG9tLWxpbmtzLW91dGVyIC5ib3R0b20tbGlua3MgdWwgbGk6bnRoLWNoaWxkKG4gKyAyKSB7XG4gICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAycmVtOyB9XG4gICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5ib3R0b20tbGlua3Mtb3V0ZXIgLmJvdHRvbS1saW5rcyB1bCBsaTpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZDVkNWQ1OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gPiAubmluamFtZW51cy1kZXNrdG9wIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubmluamFtZW51cy1oYW1idXJnZXItdHJpZ2dlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubmluamFtZW51cy1oYW1idXJnZXItdHJpZ2dlciAubWVudS10cmlnZ2VyLWlubmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBwYWRkaW5nLWlubGluZTogNXB4OyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubmluamFtZW51cy1oYW1idXJnZXItdHJpZ2dlciAubWVudS10cmlnZ2VyLWlubmVyIC50cmlnZ2VyLWljb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubmluamFtZW51cy1oYW1idXJnZXItdHJpZ2dlciAubWVudS10cmlnZ2VyLWlubmVyIC5sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubmluamFtZW51cy1oYW1idXJnZXItdHJpZ2dlciAubWVudS10cmlnZ2VyLWlubmVyIC5saW5lIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzMgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiA1cHg7XG4gICAgICAgICAgICB6LWluZGV4OiA5OyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyB7XG4gICAgICAgIG1heC13aWR0aDogMTAwdnc7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgei1pbmRleDogOTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogOHJlbTsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cy5hY3RpdmUgPiAuZHJpbGxkb3duLXJvb3QgPiAuZHJpbGxkb3duLXJvb3Qge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cy5hY3RpdmUsXG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzLmFjdGl2ZSAubmluamFtZW51cy1kcmlsbGRvd24tYmFjayB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNyAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzLmFjdGl2ZSA+IC5kcmlsbGRvd24tcm9vdCA+IC5tZ3otZWxlbWVudC1pbm5lciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgM3JlbSkgIWltcG9ydGFudDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiA3cmVtO1xuICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgbGVmdDogMS41cmVtO1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzLmFjdGl2ZSA+IC5kcmlsbGRvd24tcm9vdCA+IC5tZ3otZWxlbWVudC1pbm5lciA+IC5tZ3otZWxlbWVudCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzLmFjdGl2ZSAuc3dpdGNoZXIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmJvdHRvbS1saW5rcy1vdXRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5ib3R0b20tbGlua3Mtb3V0ZXIgLmJvdHRvbS1saW5rcyB7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2s6IDJyZW0gNnJlbTsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmJvdHRvbS1saW5rcy1vdXRlciAuYm90dG9tLWxpbmtzIHVsIHtcbiAgICAgICAgICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuYm90dG9tLWxpbmtzLW91dGVyIC5ib3R0b20tbGlua3MgdWwgbGkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwOyB9XG4gICAgICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmJvdHRvbS1saW5rcy1vdXRlciAuYm90dG9tLWxpbmtzIHVsIGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgICAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5ib3R0b20tbGlua3Mtb3V0ZXIgLmJvdHRvbS1saW5rcyB1bCBsaTpudGgtY2hpbGQoMik6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcHJvbW90aW9uLnN2Z1wiKTsgfVxuICAgICAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5ib3R0b20tbGlua3Mtb3V0ZXIgLmJvdHRvbS1saW5rcyB1bCBsaTpudGgtY2hpbGQoMyk6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbmV3LnN2Z1wiKTsgfVxuICAgICAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5ib3R0b20tbGlua3Mtb3V0ZXIgLmJvdHRvbS1saW5rcyB1bCBsaSBhIHtcbiAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzID4gZGl2IHtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDEuNXJlbTsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuZHJpbGxkb3duLXJvb3Qge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuZHJpbGxkb3duLXJvb3QgPiAubWd6LWVsZW1lbnQtaW5uZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IC0xLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lOyB9XG4gICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuZHJpbGxkb3duLXJvb3QgPiAubWd6LWVsZW1lbnQtaW5uZXIgPiAubmluamFtZW51cy1kcmlsbGRvd24tYmFjayB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgICAgICAgICAgICBtYXJnaW4taW5saW5lOiAtMS41cmVtO1xuICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogNXJlbSAxLjVyZW07XG4gICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAzcmVtKSAhaW1wb3J0YW50OyB9XG4gICAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5kcmlsbGRvd24tcm9vdCA+IC5tZ3otZWxlbWVudC1pbm5lciA+IC5uaW5qYW1lbnVzLWRyaWxsZG93bi1iYWNrOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDIuNXJlbSAhaW1wb3J0YW50OyB9XG4gICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuZHJpbGxkb3duLXJvb3QgPiAubWd6LWVsZW1lbnQtaW5uZXIgLm1nei1lbGVtZW50LWlubmVyIHtcbiAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5kcmlsbGRvd24tcm9vdCA+IC5tZ3otZWxlbWVudC1pbm5lciAubWd6LWVsZW1lbnQtaW5uZXIgLnRpdGxlIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmRyaWxsZG93bi1yb290IC5uYXYtaXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmRyaWxsZG93bi1yb290IC5uYXYtaXRlbSA+IGEge1xuICAgICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDVkNWQ1O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7IH1cbiAgICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmRyaWxsZG93bi1yb290IC5uYXYtaXRlbSA+IGEgPiAubWd6LWZhLWFuZ2xlLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5kcmlsbGRvd24tcm9vdCAubmF2LWl0ZW0gPiBhOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzMzMzMzMyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5kcmlsbGRvd24tcm9vdCAubmF2LWl0ZW0gLm9wZW5lciB7XG4gICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmRyaWxsZG93bi1yb290IC5uYXYtaXRlbSAub3BlbmVyOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGxlZnQ6IHVuc2V0O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuc3dpdGNoZXItbGFuZ3VhZ2Uge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5zd2l0Y2hlci1sYW5ndWFnZSBzcGFuIHtcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0OyB9XG4gICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuc3dpdGNoZXItbGFuZ3VhZ2Ugc3BhbiBpbWcge1xuICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5zd2l0Y2hlci5jdXJyZW5jeSxcbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLnN3aXRjaGVyLWxhbmd1YWdlIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5zd2l0Y2hlci5jdXJyZW5jeSAuYWN0aW9ucyxcbiAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuc3dpdGNoZXItbGFuZ3VhZ2UgLmFjdGlvbnMge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5zd2l0Y2hlci5jdXJyZW5jeSAuYWN0aW9ucyAuYWN0aW9uLFxuICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLnN3aXRjaGVyLWxhbmd1YWdlIC5hY3Rpb25zIC5hY3Rpb24ge1xuICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDsgfVxuICAgICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuc3dpdGNoZXIuY3VycmVuY3kgLmFjdGlvbnMgLmFjdGlvbiBzcGFuLFxuICAgICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuc3dpdGNoZXItbGFuZ3VhZ2UgLmFjdGlvbnMgLmFjdGlvbiBzcGFuIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5zd2l0Y2hlci5jdXJyZW5jeSAuYWN0aW9ucyAubWFnZS1kcm9wZG93bi1kaWFsb2csXG4gICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuc3dpdGNoZXItbGFuZ3VhZ2UgLmFjdGlvbnMgLm1hZ2UtZHJvcGRvd24tZGlhbG9nIHtcbiAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICB0b3A6IDA7IH1cbiAgICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLnN3aXRjaGVyLmN1cnJlbmN5IC5hY3Rpb25zIC5tYWdlLWRyb3Bkb3duLWRpYWxvZyA+IHVsLFxuICAgICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuc3dpdGNoZXItbGFuZ3VhZ2UgLmFjdGlvbnMgLm1hZ2UtZHJvcGRvd24tZGlhbG9nID4gdWwge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLnN3aXRjaGVyLmN1cnJlbmN5IC5hY3Rpb25zIC5tYWdlLWRyb3Bkb3duLWRpYWxvZyA+IHVsIGEsXG4gICAgICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLnN3aXRjaGVyLWxhbmd1YWdlIC5hY3Rpb25zIC5tYWdlLWRyb3Bkb3duLWRpYWxvZyA+IHVsIGEge1xuICAgICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5uaW5qYW1lbnVzLWNsb3NlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAyLjVyZW07XG4gICAgICAgICAgcmlnaHQ6IDFyZW07XG4gICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLm5pbmphbWVudXMtY2xvc2UgLmxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAubmluamFtZW51cy1jbG9zZTo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogY2VudGVyIG5vLXJlcGVhdCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMveC5zdmdcIik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB3aWR0aDogM3JlbTsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuZHJpbGxkb3duLW9wZW5lci5kcmlsbGRvd24tYmFjayB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmRyaWxsZG93bi1vcGVuZXI6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5kcmlsbGRvd24tb3BlbmVyOjpiZWZvcmUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgICAgICAgIGxlZnQ6IDE5cHg7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm1nei10YWJzLXRhYi1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5tZ3otdGFicy10YWItY29udGVudCAubWd6LWVsZW1lbnQtaW5uZXIge1xuICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubWd6LXRhYnMgLm1nei10YWJzLXRhYi1jb250ZW50IC5tZ3otc2luZ2xlLWltYWdlLXdyYXBwZXIsXG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5tZ3otZWxlbWVudC1oZWFkaW5nLFxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubGlua3MsXG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5tZ3otdGFicy10YWItdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm5hdi1pdGVtLmxldmVsMCAudGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7IH0gfVxuICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5uYXYtaXRlbS5sZXZlbDAuYWN0aXZlID4gYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2MxMjcyZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjYzEyNzJmOyB9XG4gIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm5hdi1pdGVtLmxldmVsMC5tZWdhLm1nei1lbGVtZW50OmhvdmVyID4gYSB7XG4gICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubmF2LWl0ZW0ubGV2ZWwwLm1lZ2E6aG92ZXIgPiBhIHtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNjMTI3MmYgIWltcG9ydGFudDsgfVxuICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5uYXYtaXRlbS5sZXZlbDAgPiBhIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgIHBhZGRpbmctYmxvY2s6IDIuN3JlbTsgfVxuICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm5hdi1pdGVtLmxldmVsMCA+IGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLmJsb2NrLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtIHtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgdHJhbnNpdGlvbjogMC4zcyBhbGw7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1pbi1oZWlnaHQ6IDUwMHB4OyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW06aG92ZXIge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMTJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtOmhvdmVyIC5hY3Rpb25zLXNlY29uZGFyeSxcbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtOmhvdmVyIC5hY3Rpb25zLXByaW1hcnkge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbTpob3ZlciAucHJpY2UtYm94LFxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW06aG92ZXIgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbS1pbmZvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLWluZm8gLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLWluZm8gLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIC5wcm9kdWN0LWltYWdlLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogNDUlICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbS1pbmZvIC5wcm9kdWN0LWltYWdlLWNvbnRhaW5lciAucHJvZHVjdC1pbWFnZS13cmFwcGVyID4gaW1nIHtcbiAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLWRldGFpbHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDRyZW0gM3JlbTsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tZGV0YWlscyAucHJpY2UtYm94IHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTsgfVxuICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIC5wcmljZS1ib3ggLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLWRldGFpbHMgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTsgfVxuICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCAucHJpY2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogOS41cmVtO1xuICAgICAgICAgICAgYm90dG9tOiAtMS42cmVtOyB9XG4gICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAgICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tZGV0YWlscyAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggLnByaWNlIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiA5cmVtOyB9IH1cbiAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tZGV0YWlscyAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDlyZW07XG4gICAgICAgICAgICB0b3A6IC0xLjhyZW07IH1cbiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDguNXJlbTsgfSB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLWxpbmsge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgIGxpbmUtY2xhbXA6IDI7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbSAuYmFkZ2VzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDFyZW07XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB3aWR0aDogMTlyZW07XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0gLnByb2R1Y3QtcmV2aWV3cy1zdW1tYXJ5LnNob3J0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtIC5zcGVjaWFsLXByaWNlIC5wcmljZS1jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbSAuc3BlY2lhbC1wcmljZSAucHJpY2UtY29udGFpbmVyIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjhyZW0gIWltcG9ydGFudDsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtIC5hY3Rpb25zLXByaW1hcnkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbSAudG9jYXJ0IHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjdweDtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4zcyBhbGw7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIDJyZW07IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtIC50b2NhcnQ6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbSAuYWN0aW9ucy1zZWNvbmRhcnkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMnJlbTtcbiAgICAgICAgcmlnaHQ6IDJyZW07XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHotaW5kZXg6IDE7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtIC5hY3Rpb25zLXNlY29uZGFyeSAuYWN0aW9uID4gc3BhbiB7XG4gICAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbSAuYWN0aW9ucy1zZWNvbmRhcnkgLmFjdGlvbjo6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0gLmFjdGlvbnMtc2Vjb25kYXJ5IC5hY3Rpb24udG93aXNobGlzdDo6YmVmb3JlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvd2lzaGxpc3Quc3ZnXCIpOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbSAuYWN0aW9ucy1zZWNvbmRhcnkgLmFjdGlvbi50b2NvbXBhcmU6OmJlZm9yZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NvbXBhcmUuc3ZnXCIpOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NC4wMWVtKSB7XG4gIC5uYXZpZ2F0aW9uIC5uYXYtaXRlbS5sZXZlbDAuYWN0aXZlOmFmdGVyIHtcbiAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgI2MxMjcyZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMnB4OyB9XG4gICAgLm5hdmlnYXRpb24gLm5hdi1pdGVtLmxldmVsMC5hY3RpdmU6YWZ0ZXIgLnRpdGxlIHtcbiAgICAgIGNvbG9yOiAjYzEyNzJmOyB9XG4gIC5jbXMtby1uYXMgLm5hdmlnYXRpb24gLm5hdi1pdGVtLmxldmVsMDpudGgtb2YtdHlwZSgyKSAudGl0bGUge1xuICAgIGNvbG9yOiAjYzEyNzJmOyB9XG4gIC5jbXMtby1uYXMgLm5hdmlnYXRpb24gLm5hdi1pdGVtLmxldmVsMDpudGgtb2YtdHlwZSgyKTphZnRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNjMTI3MmY7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNtcy1zZXJ3aXMgLm5hdmlnYXRpb24gLm5hdi1pdGVtLmxldmVsMDpudGgtb2YtdHlwZSgzKSAudGl0bGUge1xuICAgIGNvbG9yOiAjYzEyNzJmOyB9XG4gIC5jbXMtc2Vyd2lzIC5uYXZpZ2F0aW9uIC5uYXYtaXRlbS5sZXZlbDA6bnRoLW9mLXR5cGUoMyk6YWZ0ZXIge1xuICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAjYzEyNzJmO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5jbXMta29udGFrdCAubmF2aWdhdGlvbiAubmF2LWl0ZW0ubGV2ZWwwOm50aC1vZi10eXBlKDQpIC50aXRsZSB7XG4gICAgY29sb3I6ICNjMTI3MmY7IH1cbiAgLmNtcy1rb250YWt0IC5uYXZpZ2F0aW9uIC5uYXYtaXRlbS5sZXZlbDA6bnRoLW9mLXR5cGUoNCk6YWZ0ZXIge1xuICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAjYzEyNzJmO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuYm9keS5zZWFyY2gtb3BlbiB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50OyB9XG5cbi5jbXMta21hLWhvbWUtcGFnZSAuY3MtY29udGFpbmVyLS1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi5jbXMta21hLWhvbWUtcGFnZSAuY3MtY29udGFpbmVyLS10b3AtYmFyICsgLmNzLWNvbnRhaW5lci0taGVhZGVyIHtcbiAgdG9wOiA0MHB4OyB9XG5cbi5jbXMta21hLWhvbWUtcGFnZSAuY3MtY29udGFpbmVyLS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi5jcy1jb250YWluZXItLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDVkNWQ1O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDIwMjsgfVxuICAuY3MtY29udGFpbmVyLS1oZWFkZXIgLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogMTYwcmVtOyB9XG4gIC5jcy1jb250YWluZXItLWhlYWRlciA+IC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgICBwb3NpdGlvbjogc3RhdGljOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmNzLWNvbnRhaW5lci0taGVhZGVyIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuXG4uY3MtaGVhZGVyIHtcbiAgaGVpZ2h0OiA4cmVtO1xuICBtYXgtd2lkdGg6IDEwMHZ3OyB9XG4gIC5jcy1oZWFkZXJfX2NvbnRlbnQge1xuICAgIHBhZGRpbmctaW5saW5lOiA0cmVtO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGhlaWdodDogOHJlbTtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2NvbnRlbnQgPiAuY3MtdG9wYmFyX19pdGVtLS1jdXJyZW5jeSxcbiAgICAgIC5jcy1oZWFkZXJfX2NvbnRlbnQgLnN3aXRjaGVyLmxhbmd1YWdlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLWlubGluZTogMDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWhlYWRlcl9fbG9nbyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmNzLWhlYWRlciAubmF2LXNlY3Rpb25zIHtcbiAgICAgIG9yZGVyOiAtMTsgfSB9XG4gIC5jcy1oZWFkZXJfX3NlYXJjaCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbWFyZ2luLWlubGluZTogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwdnc7IH1cbiAgICAuY3MtaGVhZGVyX19zZWFyY2gtLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19zZWFyY2gge1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgLmNzLWhlYWRlci1zZWFyY2gge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fd3JhcHBlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICAgICAgcGFkZGluZy1ibG9jazogOHJlbSA0cmVtO1xuICAgICAgbWF4LXdpZHRoOiAxMDB2dzsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX3dyYXBwZXIge1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAxLjVyZW07IH0gfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19tb3N0LXNlYXJjaGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICBtYXgtd2lkdGg6IDc3cmVtO1xuICAgICAgbWFyZ2luOiA0cmVtIGF1dG8gMXJlbTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX21vc3Qtc2VhcmNoZWQge1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAxLjVyZW07IH0gfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX21vc3Qtc2VhcmNoZWRbc3R5bGUqPVwiZGlzcGxheTogbm9uZVwiXSB+IC5zZWFyY2gtYXV0b2NvbXBsZXRlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19tb3N0LXNlYXJjaGVkIGgzIHtcbiAgICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogaW5pdGlhbDtcbiAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fbW9zdC1zZWFyY2hlZCB1bCB7XG4gICAgICAgIG1hcmdpbjogNHJlbSAwIDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fbW9zdC1zZWFyY2hlZCB1bCBsaSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgZmxleC1iYXNpczogMzgwcHg7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fbW9zdC1zZWFyY2hlZCB1bCBsaSBhOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fbW9zdC1zZWFyY2hlZCB1bCBsaTo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaVB6NEtQSE4yWnlCM2FXUjBhRDBpTVRad2VDSWdhR1ZwWjJoMFBTSXhObkI0SWlCMmFXVjNRbTk0UFNJd0lEQWdNVFlnTVRZaUlIWmxjbk5wYjI0OUlqRXVNU0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JaUI0Yld4dWN6cDRiR2x1YXowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzk0YkdsdWF5SStDaUFnSUNBOGRHbDBiR1UrWTJobFkyczhMM1JwZEd4bFBnb2dJQ0FnUEdjZ2FXUTlJbU5vWldOcklpQnpkSEp2YTJVOUltNXZibVVpSUhOMGNtOXJaUzEzYVdSMGFEMGlNU0lnWm1sc2JEMGlibTl1WlNJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lqNEtJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5NVEV1T1RFM016QTRNaXd6TGpjeU1qWTBPVGtnUXpFeUxqQTNNRFE0TkRRc015NDBPVEk0T0RVMU5pQXhNaTR6T0RBNU1Ua3hMRE11TkRNd056azROaklnTVRJdU5qRXdOamd6TkN3ekxqVTRNemszTkRnMUlFTXhNaTQ0TVRRNU1UZzBMRE11TnpJd01UTXhOU0F4TWk0NE9EWTJOamMxTERNdU9UZ3dOVFF4TnpNZ01USXVOemt5TlRBNU9DdzBMakU1T0RFd01EVTNJRXd4TWk0M05Ea3pOVGcxTERRdU1qYzNNelV3TVNCTU55NDBNVFl3TWpVeE5Td3hNaTR5Tnpjek5UQXhJRU0zTGpJMU9EVXdOalEwTERFeUxqVXhNell5T0RJZ05pNDVOREU0T0RBM05pd3hNaTQxTmpjd05EZ3pJRFl1TnpFM05EZzBOalFzTVRJdU5ERXlOekl6TkNCTU5pNDJORFkwTkRZMk1Td3hNaTR6TlRNMU5UTTBJRXd5TGpZME5qUTBOall4TERndU16VXpOVFV6TXprZ1F6SXVORFV4TVRnME5EWXNPQzR4TlRneU9URXlOQ0F5TGpRMU1URTRORFEyTERjdU9EUXhOekE0TnpZZ01pNDJORFkwTkRZMk1TdzNMalkwTmpRME5qWXhJRU15TGpneU1EQXhNamsyTERjdU5EY3lPRGd3TWpZZ015NHdPRGswTXpjek5pdzNMalExTXpVNU5URXhJRE11TWpnME16QTFOU3czTGpVNE9EVTVNVEUySUV3ekxqTTFNelUxTXpNNUxEY3VOalEyTkRRMk5qRWdURFl1T1RJeUxERXhMakl4TlNCTU1URXVPVEUzTXpBNE1pd3pMamN5TWpZME9Ua2dXaUlnYVdROUlsQmhkR2dpSUdacGJHdzlJaU5ETVRJM01rWWlJR1pwYkd3dGNuVnNaVDBpYm05dWVtVnlieUkrUEM5d1lYUm9QZ29nSUNBZ1BDOW5QZ284TDNOMlp6ND1cIik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDlyZW07XG4gICAgICBtYXgtd2lkdGg6IDc3cmVtO1xuICAgICAgbWFyZ2luOiBhdXRvOyB9XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6OmJlZm9yZSwgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZCBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogcmdiYSg1MSwgNTEsIDUxLCAwLjUpOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2Nsb3NlIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogNnJlbTtcbiAgICAgIHJpZ2h0OiA4cmVtOyB9XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2UtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiA0LjNyZW0gIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAzLjNyZW0gIWltcG9ydGFudDtcbiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2Nsb3NlIHtcbiAgICAgICAgICB0b3A6IDJyZW07XG4gICAgICAgICAgcmlnaHQ6IDFyZW07IH0gfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24ge1xuICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDsgfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1pY29uLS1zZWFyY2ggcGF0aCB7XG4gICAgICAgIGZpbGw6ICMwMDAwMDAgIWltcG9ydGFudDsgfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1pY29uLS1sb2FkZXIge1xuICAgICAgICBzdHJva2U6ICMwMDAwMDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IDZyZW0gIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTgwcHgpO1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIHtcbiAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAycmVtOyB9IH1cbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgIG1heC13aWR0aDogNzdyZW07XG4gICAgICAgIG1hcmdpbjogYXV0bzsgfVxuICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QtdGl0bGUge1xuICAgICAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QudGVybSwgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LmNhdGVnb3J5IHtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QudGVybSBkZCwgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LmNhdGVnb3J5IGRkIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnRlcm0gZGQ6OmJlZm9yZSwgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LmNhdGVnb3J5IGRkOjpiZWZvcmUge1xuICAgICAgICAgICAgICBjb250ZW50OiBcIlxcMjcxM1wiO1xuICAgICAgICAgICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07IH1cbiAgICAgICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC50ZXJtIGRkIC5xcy1vcHRpb24tbmFtZSxcbiAgICAgICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC50ZXJtIGRkIC5jYXRlZ29yeS1taW5pLWNydW1iLCAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QuY2F0ZWdvcnkgZGQgLnFzLW9wdGlvbi1uYW1lLFxuICAgICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LmNhdGVnb3J5IGRkIC5jYXRlZ29yeS1taW5pLWNydW1iIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgICAgICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnRlcm0gZGQgLnFzLW9wdGlvbi1uYW1lIHN0cm9uZyxcbiAgICAgICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnRlcm0gZGQgLmNhdGVnb3J5LW1pbmktY3J1bWIgc3Ryb25nLCAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QuY2F0ZWdvcnkgZGQgLnFzLW9wdGlvbi1uYW1lIHN0cm9uZyxcbiAgICAgICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LmNhdGVnb3J5IGRkIC5jYXRlZ29yeS1taW5pLWNydW1iIHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnRlcm0gZGQgLmNhdGVnb3J5LW1pbmktY3J1bWIsIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC5jYXRlZ29yeSBkZCAuY2F0ZWdvcnktbWluaS1jcnVtYiB7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XG4gICAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QudGVybSBkZCAuYW1vdW50LCAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QuY2F0ZWdvcnkgZGQgLmFtb3VudCB7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAgICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC50ZXJtIGRkOmhvdmVyLCAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QuY2F0ZWdvcnkgZGQ6aG92ZXIge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgICAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QudGVybSBkZDpob3ZlciAucXMtb3B0aW9uLW5hbWUsIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC5jYXRlZ29yeSBkZDpob3ZlciAucXMtb3B0aW9uLW5hbWUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LmNhdGVnb3J5IGRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDlyZW07IH0gfVxuICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QucHJvZHVjdCB7XG4gICAgICAgICAgYm9yZGVyOiBub25lOyB9XG4gICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnByb2R1Y3QgLnByb2R1Y3QtaXRlbSAucHJvZHVjdC1pbWFnZS1ib3gge1xuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnJlbTsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnByb2R1Y3QgLnByb2R1Y3QtaXRlbSAucHJvZHVjdC1pbWFnZS1ib3ggPiBpbWcge1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnByb2R1Y3QgLnByb2R1Y3QtaXRlbSAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QucHJvZHVjdCAucHJvZHVjdC1pdGVtIC5wcmljZS1ib3ggLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC5wcm9kdWN0IC5wcm9kdWN0LWl0ZW0gLnByaWNlLWJveCAucHJpY2UtZmluYWxfcHJpY2Uge1xuICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAgICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC5wcm9kdWN0IC5wcm9kdWN0LWl0ZW0gLnByaWNlLWJveCAucHJpY2UtZmluYWxfcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnByb2R1Y3QgLnByb2R1Y3QtaXRlbTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnByb2R1Y3QgLnByb2R1Y3QtaXRlbTpob3ZlciAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgIGNvbG9yOiAjYzEyNzJmOyB9XG4gIC5jcy1oZWFkZXIgLm5pbmphbWVudXMubmluamFtZW51cy1kZXNrdG9wIC5sZWZ0X2VkZ2VfbWVudV9iYXIgPiAuaXRlbS1zdWJtZW51IHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OyB9XG5cbi5sZXZlbDAgPiAuaXRlbS1zdWJtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAwO1xuICBib3JkZXItdG9wOiBub25lICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDEwcHggMCAwOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NvbnRhaW5lci9taXhpbic7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcblxuJGhlYWRlcl9mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyX2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTIwMCAhZGVmYXVsdDtcblxuJGhlYWRlcl9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbi8vIEhvcml6b250YWwgYWxpZ24gb2YgdGhlIHNlYXJjaGJveCBpZiBpdCdzIGRpc3BsYXllZCBhcyBhIGxheWVyIC0gYCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50YFxuJGhlYWRlcl9zZWFyY2hib3gtanVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWRlZmF1bHQ7XG5cbi8vIElmIHlvdSB3YW50IHRvIGNvdmVyICdzZWFyY2gnIGl0ZW0gaW4gaGVhZGVyIGJ5IHNlYXJjaGJveCwgcHJvdmlkZSBwcm9wZXIgbmVnYXRpdmUgbWFyZ2luIGJhc2VkIG9uIHlvdXIgZGVzaWduXG4vLyBJdCB3b3JrcyBvbmx5IGlmICckZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCcgaGFzIHZhbGlkIGJyZWFrcG9pbnQgYW5kIGAkaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnRgID0gZmxleC1lbmRcbiRoZWFkZXJfc2VhcmNoYm94LW1hcmdpbi10by1jb3Zlci1zZWFyY2gtaXRlbTogLTYuOHJlbSAhZGVmYXVsdDtcblxuLy8gQ2hhbmdlIGluIGV0Yy92aWV3LnhtbCBpZiBuZWNlc3NhcnlcbiRoZWFkZXJfaXMtc3RpY2t5LW9uLW1vYmlsZTogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19UaGVtZSxcbiAgICBoZWFkZXIsXG4gICAgbW9iaWxlX2lzX3N0aWNreVxuKSAhZGVmYXVsdDtcblxuJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLW1vYmlsZTogMCAhZGVmYXVsdDtcbiRoZWFkZXJfc3RpY2t5LXRvcC1wb3NpdGlvbi10YWJsZXQ6ICRoZWFkZXJfc3RpY2t5LXRvcC1wb3NpdGlvbi1tb2JpbGUgIWRlZmF1bHQ7XG5cbi8qKlxuICogVmFyaWFibGVzIHJlbGF0ZWQgdG8gc3RpY2t5IGhlYWRlciBhbmQgdG9wYmFyIG9uIG1vYmlsZSBkZXZpY2VzLlxuICogdG8gcHJldmVudCBwYWdlIGp1bXBpbmcgd2hlbiBvZmZhY252YXMgKGZpeGVkIHBvc2l0aW9uZWQpIGlzIG9wZW5lZFxuICogSWYgeW91IGhhdmUgbW9yZSBlbGVtZW50cyBvbiB0b3AsIHlvdSBoYXZlIHRvIGluY2x1ZGUgdGhlaXIgaGVpZ2h0LlxuICovXG4kc3RpY2t5LWhlYWRlci1wYWdlLXdyYXBwZXItb2Zmc2V0LW1vYmlsZTogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZSAhZGVmYXVsdDtcbiRzdGlja3ktaGVhZGVyLXBhZ2Utd3JhcHBlci1vZmZzZXQtdGFibGV0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0ICFkZWZhdWx0O1xuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1oZWFkZXIge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpZiAoXG4gICAgJGhlYWRlcl9pcy1zdGlja3ktb24tbW9iaWxlIGFuZCAkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlICE9IHRydWVcbikge1xuICAgIC8qKlxuICAgICAqIFN0eWxlcyByZWxhdGVkIHRvIHN0aWNreSBoZWFkZXIgYW5kIHRvcGJhciBvbiBtb2JpbGUgZGV2aWNlcy5cbiAgICAgKiB0byBwcmV2ZW50IHBhZ2UganVtcGluZyB3aGVuIG9mZmFjbnZhcyAoZml4ZWQgcG9zaXRpb25lZCkgaXMgb3BlbmVkXG4gICAgICovXG4gICAgLm5hdmlnYXRpb24tb2ZmY2FudmFzLW9wZW4gLnBhZ2Utd3JhcHBlci5uby1zY3JvbGwtY2hpbGQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkc3RpY2t5LWhlYWRlci1wYWdlLXdyYXBwZXItb2Zmc2V0LXRhYmxldDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRzdGlja3ktaGVhZGVyLXBhZ2Utd3JhcHBlci1vZmZzZXQtbW9iaWxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgICAgICYtLWhlYWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDgwMDtcbiAgICAgICAgICAgICAgICB0b3A6ICRoZWFkZXJfc3RpY2t5LXRvcC1wb3NpdGlvbi10YWJsZXQ7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGaXhlZCBwb3NpdGlvbmluZyByZXF1aXJlZCB0byB3b3JrIHdpdGggb2ZmY2FudmFzIGVsZW1lbnRzLlxuICAgICAgICAgICAgICAgICAqIEFsc28sIGFzIGEgZmFsbGJhY2sgZm9yIElFIHdoaWNoIGRvZXMgbm90IHN1cHBvcnQgc3RpY2t5LlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIC5uYXZpZ2F0aW9uLW9mZmNhbnZhcy1vcGVuLm5vLXNjcm9sbCAmLFxuICAgICAgICAgICAgICAgIC5pZTExIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAkaGVhZGVyX3N0aWNreS10b3AtcG9zaXRpb24tbW9iaWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9aGVhZGVyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGZvbnQtc2l6ZTogJGhlYWRlcl9mb250LXNpemU7XG5cbiAgICBAaWYgKCRoZWFkZXJfaXMtc3RpY2t5LW9uLW1vYmlsZSkge1xuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgaGVpZ2h0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtZGVza3RvcDtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlO1xuICAgICAgICB6LWluZGV4OiAzMDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyX2JhY2tncm91bmQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDB2dztcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LXRhYmxldDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXJfYm9yZGVyLWJvdHRvbTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1kZXNrdG9wO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb2ZmY2FudmFzLXRvZ2dsZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZmxleDogMCAxIDRyZW07XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1tb2JpbGUtbWVudS1pcy1yaWdodCkge1xuICAgICAgICAgICAgb3JkZXI6IDQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDEgMTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwLjdyZW0gMCAwLjdyZW0gMC43cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJykge1xuICAgICAgICAgICAgcGFkZGluZzogMC43cmVtIDAgMC43cmVtIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wYWdlLXByaW50ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLXdyYXBwZXIoKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZWFyY2gge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlcl9iYWNrZ3JvdW5kO1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAzMDA7XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlKSB7XG4gICAgICAgICAgICBib3R0b206ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRoZWFkZXJfc2VhcmNoYm94LWp1c3RpZnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKFxuICAgICAgICAgICAgJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgYW5kXG4gICAgICAgICAgICAgICAgJGhlYWRlcl9zZWFyY2hib3gtanVzdGlmeS1jb250ZW50ID09XG4gICAgICAgICAgICAgICAgJ2ZsZXgtZW5kJ1xuICAgICAgICApIHtcbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGhlYWRlcl9zZWFyY2hib3gtbWFyZ2luLXRvLWNvdmVyLXNlYXJjaC1pdGVtO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgICAgICRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmICgkaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnQgPT0gJ2ZsZXgtZW5kJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGhlYWRlcl9zZWFyY2hib3gtbWFyZ2luLXRvLWNvdmVyLXNlYXJjaC1pdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdXNlci1uYXYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBmbGV4OiAwIDEgMzAlO1xuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMSAyNSU7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAgICAgJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMCAxIDI1JTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWNrLWJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogNHJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZScpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhY2stYnV0dG9uLWljb24ge1xuICAgICAgICBmaWxsOiAkY29sb3JfYm9yZGVyLTcwMDtcbiAgICAgICAgaGVpZ2h0OiAyLjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZScpIHtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBtaXhpbiBtb2JpbGVMaW5rc0ljb24ge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG59XG5cbi4jeyRuc31oZWFkZXIge1xuICAgIC5uYXZpZ2F0aW9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDNyZW07XG4gICAgICAgICYgPiAubmluamFtZW51cyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgJiA+IC5jb21wYXJlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAyLjVyZW07XG4gICAgICAgICAgICAgICAgbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLiN7JG5zfWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWNvbXBhcmUge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IC0xcmVtO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC4jeyRuc31oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMTVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubWFnZXpvbi1idWlsZGVyIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgICAgICYgPiAubGV2ZWwwIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDJweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgLnN3aXRjaGVyLFxuICAgICAgICAgICAgLm5pbmphbWVudXMtY2xvc2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpdi5uYXYtaXRlbS5sZXZlbDAge1xuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAka21hX2NvbG9yX3JlZC01MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGl2Lm5hdi1pdGVtLmxldmVsMC5tZWdhLm1nei1lbGVtZW50IHtcbiAgICAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJGttYV90cmFuc2l0aW9uX3RpbWUgYWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubmF2LWl0ZW1zLWNvbHVtbiB7XG4gICAgICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAka21hX3RyYW5zaXRpb25fdGltZSBjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm5hdi1pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJGttYV90cmFuc2l0aW9uX3RpbWUgY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLm1nei1lbGVtZW50LWhlYWRpbmctdGV4dCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLm1nei10YWJzLW5hdiB7XG4gICAgICAgICAgICAgICAgLm1nei10YWJzLXRhYi10aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRrbWFfY29sb3JfZ3JleS0zMDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICRrbWFfdHJhbnNpdGlvbl90aW1lIGFsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjQwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tZ3otZmEtYW5nbGUtcmlnaHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmLm1nei1hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5ib3R0b20tbGlua3Mtb3V0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfZ3JleS0xMDA7XG4gICAgICAgICAgICAgICAgLmJvdHRvbS1saW5rcyB7XG4gICAgICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktNTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKG4gKyAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRrbWFfY29sb3JfZ3JleS0zMDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPGxhcHRvcFwiKSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgJiA+IC5uaW5qYW1lbnVzLWRlc2t0b3Age1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubmluamFtZW51cy1oYW1idXJnZXItdHJpZ2dlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIC5tZW51LXRyaWdnZXItaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgLnRyaWdnZXItaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLmxpbmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYmxvY2s6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgLm5pbmphbWVudXMge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDk7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDhyZW07XG4gICAgICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYgPiAuZHJpbGxkb3duLXJvb3QgPiAuZHJpbGxkb3duLXJvb3Qge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICYsXG4gICAgICAgICAgICAgICAgICAgICAgICAubmluamFtZW51cy1kcmlsbGRvd24tYmFjayB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9ncmV5LTEwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJiA+IC5kcmlsbGRvd24tcm9vdCA+IC5tZ3otZWxlbWVudC1pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgM3JlbSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA3cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmID4gLm1nei1lbGVtZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAuc3dpdGNoZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLmJvdHRvbS1saW5rcy1vdXRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLmJvdHRvbS1saW5rcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiAycmVtIDZyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbW9iaWxlTGlua3NJY29uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcHJvbW90aW9uLnN2Z1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbW9iaWxlTGlua3NJY29uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbmV3LnN2Z1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2JsYWNrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMS41cmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5kcmlsbGRvd24tcm9vdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgJiA+IC5tZ3otZWxlbWVudC1pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9ncmV5LTEwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lOiAtMS41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgPiAubmluamFtZW51cy1kcmlsbGRvd24tYmFjayB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IC0xLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiA1cmVtIDEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDNyZW0pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWd6LWVsZW1lbnQtaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAubmF2LWl0ZW0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGttYV9jb2xvcl9ncmV5LTMwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgPiAubWd6LWZhLWFuZ2xlLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHVuc2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLnN3aXRjaGVyLWxhbmd1YWdlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuc3dpdGNoZXIuY3VycmVuY3ksXG4gICAgICAgICAgICAgICAgICAgIC5zd2l0Y2hlci1sYW5ndWFnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hY3Rpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWN0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYWdlLWRyb3Bkb3duLWRpYWxvZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmID4gdWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5uaW5qYW1lbnVzLWNsb3NlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMi41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBjZW50ZXIgbm8tcmVwZWF0IHVybChcIi4uL2ltYWdlcy9pY29ucy94LnN2Z1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5kcmlsbGRvd24tb3BlbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYuZHJpbGxkb3duLWJhY2sge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDE5cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubWd6LXRhYnMtdGFiLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgLm1nei1lbGVtZW50LWlubmVyIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5tZ3otdGFicyAubWd6LXRhYnMtdGFiLWNvbnRlbnQgLm1nei1zaW5nbGUtaW1hZ2Utd3JhcHBlcixcbiAgICAgICAgICAgIC5tZ3otZWxlbWVudC1oZWFkaW5nLFxuICAgICAgICAgICAgLmxpbmtzLFxuICAgICAgICAgICAgLm1nei10YWJzLXRhYi10aXRsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLm5hdi1pdGVtLmxldmVsMCAudGl0bGUge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAubmF2LWl0ZW0ubGV2ZWwwIHtcbiAgICAgICAgICAgICYuYWN0aXZlID4gYSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYubWVnYS5tZ3otZWxlbWVudDpob3ZlciB7XG4gICAgICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2JsYWNrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5tZWdhIHtcbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3doaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRrbWFfY29sb3JfcmVkLTUwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogMi43cmVtO1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuYmxvY2stdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuICAgICAgICAucHJvZHVjdC1pdGVtcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgLnByb2R1Y3QtaXRlbSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAka21hX2NvbG9yX2dyZXktMjAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAka21hX3RyYW5zaXRpb25fdGltZSBhbGw7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTJweCAwIHJnYmEoJGttYV9jb2xvcl9ibGFjaywgMC4xNSk7XG4gICAgICAgICAgICAgICAgICAgIC5hY3Rpb25zLXNlY29uZGFyeSxcbiAgICAgICAgICAgICAgICAgICAgLmFjdGlvbnMtcHJpbWFyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAucHJpY2UtYm94LFxuICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYtaW5mbyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1pbWFnZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcm9kdWN0LWltYWdlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDQ1JSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgPiBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLWRldGFpbHMge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDRyZW0gM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgLnByaWNlLWJveCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA5LjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xLjZyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxwaG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA5cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDlyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IC0xLjhyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogOC41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYtbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi1saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWNsYW1wOiAyO1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuYmFkZ2VzIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTlyZW07XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkuc2hvcnQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmFjdGlvbnMtcHJpbWFyeSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnRvY2FydCB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyN3B4O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAka21hX3RyYW5zaXRpb25fdGltZSBhbGw7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIDJyZW07XG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9yZWQtODAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5hY3Rpb25zLXNlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgICAgICAgICAgLmFjdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICYudG93aXNobGlzdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3dpc2hsaXN0LnN2Z1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmLnRvY29tcGFyZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NvbXBhcmUuc3ZnXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEoXCI+bGFwdG9wXCIpIHtcbiAgICAubmF2aWdhdGlvbiB7XG4gICAgICAgIC5uYXYtaXRlbS5sZXZlbDAuYWN0aXZlIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHRvcDogLTJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuY21zLW8tbmFzIHtcbiAgICAgICAgLm5hdmlnYXRpb24ge1xuICAgICAgICAgICAgLm5hdi1pdGVtLmxldmVsMCB7XG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgICAgICAgICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5jbXMtc2Vyd2lzIHtcbiAgICAgICAgLm5hdmlnYXRpb24ge1xuICAgICAgICAgICAgLm5hdi1pdGVtLmxldmVsMCB7XG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAgICAgICAgICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5jbXMta29udGFrdCB7XG4gICAgICAgIC5uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIC5uYXYtaXRlbS5sZXZlbDAge1xuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoNCkge1xuICAgICAgICAgICAgICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuc2Nzc1wiO1xuQGltcG9ydCBcIi4vbmF2aWdhdGlvblwiO1xuXG4ka21hX2hlYWRlcl9oZWlnaHQ6IDhyZW07XG5cbiRrbWFfc2VhcmNoX21vZGFsX3dyYXBwZXJfc2l6ZTogNzdyZW07XG5cbmJvZHkuc2VhcmNoLW9wZW4ge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XG59XG5cbi5jbXMta21hLWhvbWUtcGFnZSB7XG4gICAgLiN7JG5zfWNvbnRhaW5lci0taGVhZGVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG4gICAgLiN7JG5zfWNvbnRhaW5lci0tdG9wLWJhciArIC4jeyRuc31jb250YWluZXItLWhlYWRlciB7XG4gICAgICAgIHRvcDogNDBweDtcbiAgICB9XG4gICAgLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgICAgICYtLWhlYWRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJi0taGVhZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjAyO1xuICAgICAgICAuI3skbnN9Y29udGFpbmVyX19pbm5lciB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRrbWFfY29udGFpbmVyX3NpemUtZnVsbDtcbiAgICAgICAgfVxuICAgICAgICAmID4gLiN7JG5zfWNvbnRhaW5lcl9faW5uZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BcIikge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JG5zfWhlYWRlciB7XG4gICAgJHJvb3Q6ICY7XG4gICAgaGVpZ2h0OiAka21hX2hlYWRlcl9oZWlnaHQ7XG4gICAgbWF4LXdpZHRoOiAxMDB2dztcbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IDRyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgaGVpZ2h0OiAka21hX2hlYWRlcl9oZWlnaHQ7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9bGFwdG9wXCIpIHtcbiAgICAgICAgICAgICYgPiAuI3skbnN9dG9wYmFyX19pdGVtLS1jdXJyZW5jeSxcbiAgICAgICAgICAgIC5zd2l0Y2hlci5sYW5ndWFnZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2xvZ28ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5uYXYtc2VjdGlvbnMge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BcIikge1xuICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX3NlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgbWFyZ2luLWlubGluZTogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgICYtc2VhcmNoIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogdW5zZXQgIWltcG9ydGFudDtcbiAgICAgICAgJl9fd3JhcHBlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX2dyZXktMTAwO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jazogOHJlbSA0cmVtO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDB2dztcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJl9fbW9zdC1zZWFyY2hlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAka21hX3NlYXJjaF9tb2RhbF93cmFwcGVyX3NpemU7XG4gICAgICAgICAgICBtYXJnaW46IDRyZW0gYXV0byAxcmVtO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICZbc3R5bGUqPVwiZGlzcGxheTogbm9uZVwiXSB+IC5zZWFyY2gtYXV0b2NvbXBsZXRlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS00O1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDRyZW0gMCAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDM4MHB4O1xuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaVB6NEtQSE4yWnlCM2FXUjBhRDBpTVRad2VDSWdhR1ZwWjJoMFBTSXhObkI0SWlCMmFXVjNRbTk0UFNJd0lEQWdNVFlnTVRZaUlIWmxjbk5wYjI0OUlqRXVNU0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JaUI0Yld4dWN6cDRiR2x1YXowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzk0YkdsdWF5SStDaUFnSUNBOGRHbDBiR1UrWTJobFkyczhMM1JwZEd4bFBnb2dJQ0FnUEdjZ2FXUTlJbU5vWldOcklpQnpkSEp2YTJVOUltNXZibVVpSUhOMGNtOXJaUzEzYVdSMGFEMGlNU0lnWm1sc2JEMGlibTl1WlNJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lqNEtJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5NVEV1T1RFM016QTRNaXd6TGpjeU1qWTBPVGtnUXpFeUxqQTNNRFE0TkRRc015NDBPVEk0T0RVMU5pQXhNaTR6T0RBNU1Ua3hMRE11TkRNd056azROaklnTVRJdU5qRXdOamd6TkN3ekxqVTRNemszTkRnMUlFTXhNaTQ0TVRRNU1UZzBMRE11TnpJd01UTXhOU0F4TWk0NE9EWTJOamMxTERNdU9UZ3dOVFF4TnpNZ01USXVOemt5TlRBNU9DdzBMakU1T0RFd01EVTNJRXd4TWk0M05Ea3pOVGcxTERRdU1qYzNNelV3TVNCTU55NDBNVFl3TWpVeE5Td3hNaTR5Tnpjek5UQXhJRU0zTGpJMU9EVXdOalEwTERFeUxqVXhNell5T0RJZ05pNDVOREU0T0RBM05pd3hNaTQxTmpjd05EZ3pJRFl1TnpFM05EZzBOalFzTVRJdU5ERXlOekl6TkNCTU5pNDJORFkwTkRZMk1Td3hNaTR6TlRNMU5UTTBJRXd5TGpZME5qUTBOall4TERndU16VXpOVFV6TXprZ1F6SXVORFV4TVRnME5EWXNPQzR4TlRneU9URXlOQ0F5TGpRMU1URTRORFEyTERjdU9EUXhOekE0TnpZZ01pNDJORFkwTkRZMk1TdzNMalkwTmpRME5qWXhJRU15TGpneU1EQXhNamsyTERjdU5EY3lPRGd3TWpZZ015NHdPRGswTXpjek5pdzNMalExTXpVNU5URXhJRE11TWpnME16QTFOU3czTGpVNE9EVTVNVEUySUV3ekxqTTFNelUxTXpNNUxEY3VOalEyTkRRMk5qRWdURFl1T1RJeUxERXhMakl4TlNCTU1URXVPVEUzTXpBNE1pd3pMamN5TWpZME9Ua2dXaUlnYVdROUlsQmhkR2dpSUdacGJHdzlJaU5ETVRJM01rWWlJR1pwYkd3dGNuVnNaVDBpYm05dWVtVnlieUkrUEM5d1lYUm9QZ29nSUNBZ1BDOW5QZ284TDNOMlp6ND1cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDlyZW07XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRrbWFfc2VhcmNoX21vZGFsX3dyYXBwZXJfc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgka21hX2NvbG9yX2dyZXktODAwLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogNnJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiA4cmVtO1xuICAgICAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0LjNyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMuM3JlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgIHRvcDogMnJlbTtcbiAgICAgICAgICAgICAgICByaWdodDogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICAgICAgJi0tc2VhcmNoIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAka21hX2NvbG9yX2JsYWNrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi0tbG9hZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiAka21hX2NvbG9yX2JsYWNrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRrbWFfY29sb3JfYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogNnJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtNDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICZfX2F1dG9jb21wbGV0ZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDE4MHB4KTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogJGttYV9zZWFyY2hfbW9kYWxfd3JhcHBlcl9zaXplO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICAuYXV0b2NvbXBsZXRlLWxpc3QtdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTQ7XG4gICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuYXV0b2NvbXBsZXRlLWxpc3Qge1xuICAgICAgICAgICAgICAgICAgICAmLnRlcm0sXG4gICAgICAgICAgICAgICAgICAgICYuY2F0ZWdvcnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyNzEzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucXMtb3B0aW9uLW5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGVnb3J5LW1pbmktY3J1bWIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0ZWdvcnktbWluaS1jcnVtYiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYW1vdW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucXMtb3B0aW9uLW5hbWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYuY2F0ZWdvcnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA5cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmLnByb2R1Y3Qge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtaW1hZ2UtYm94IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgPiBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2UtYm94IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2UtZmluYWxfcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm5pbmphbWVudXMubmluamFtZW51cy1kZXNrdG9wIC5sZWZ0X2VkZ2VfbWVudV9iYXIgPiAuaXRlbS1zdWJtZW51IHtcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgLy8gcXVpY2tmaXhcbiAgICB9XG59XG4ubGV2ZWwwID4gLml0ZW0tc3VibWVudSB7XG4gICAgLy8gZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgLy9kZWxcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAxMHB4IDAgMDtcbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtaGVhZGVyLXNlYXJjaCB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWhlYWRlci1zZWFyY2gge1xuICAgICAgd2lkdGg6IDUwJTsgfSB9XG4gIC5jcy1oZWFkZXItc2VhcmNoLS1pbi1vZmZjYW52YXMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fbGFiZWwge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6YmVmb3JlLCAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgICAgbGVmdDogLTAuNXJlbTtcbiAgICAgIHJpZ2h0OiAtMC41cmVtO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xNyk7XG4gICAgICB0b3A6IC0wLjVyZW07XG4gICAgICBib3R0b206IC0wLjVyZW07XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogLTFyZW07XG4gICAgICB0b3A6IDEwMCU7XG4gICAgICB6LWluZGV4OiAyMDk7IH1cbiAgICAuYWN0aXZlLXBvcHVwIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDpiZWZvcmUsIC5hY3RpdmUtcG9wdXAgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkOmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0IHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0LjhyZW07XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjEwO1xuICAgIG1hcmdpbjogMDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0Lm1hZ2UtZXJyb3IsIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjAwMTg7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQucmVxdWlyZWQtZW50cnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0IHtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07IH0gfVxuICAgIC5hamF4LWxvYWRpbmcgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0OmZvY3VzICsgLmNzLWhlYWRlci1zZWFyY2hfX2FjdGlvbiAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWNvbnRhaW5lci0tc2VhcmNoIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgIG9wYWNpdHk6IDA7IH1cbiAgICAuYWpheC1sb2FkaW5nIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dDpmb2N1cyArIC5jcy1oZWFkZXItc2VhcmNoX19hY3Rpb24gLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1jb250YWluZXItLWxvYWRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19hY3Rpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDIyMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDI0cHg7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDI0cHg7IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2Nsb3NlLWljb24ge1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgbGluZWFyOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2Nsb3NlLWljb246aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2UtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19jbG9zZS1pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzg4ODsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2UtbGFiZWwge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLjY2LCAwLjMyLCAwLjk5KSwgb3BhY2l0eSAwLjE1cyBsaW5lYXI7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWNvbnRhaW5lci0tc2VhcmNoIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24tY29udGFpbmVyLS1sb2FkZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24ge1xuICAgIHdpZHRoOiA1cmVtO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwLjdyZW0pOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbiwgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjp2aXNpdGVkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b25bZGlzYWJsZWRdLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1pY29uIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTAuM3JlbSk7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWljb24tLXNlYXJjaCB7XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICAgIGhlaWdodDogMnJlbTsgfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1pY29uLS1zZWFyY2ggcGF0aCB7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWljb24tLWxvYWRlciB7XG4gICAgICBzdHJva2U6ICNmZmY7XG4gICAgICB3aWR0aDogMy4ycmVtO1xuICAgICAgaGVpZ2h0OiAzLjJyZW07IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgbGVmdDogMC41cmVtO1xuICAgIHJpZ2h0OiAwLjVyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoIDEwMHZoIC0gNXJlbSAtIDIuNnJlbSAtIDdyZW0pO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTcpO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuXG4kaGVhZGVyLXNlYXJjaF9mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbi8vIE9uIGlPUyB0aGUgc2VhcmNoIGlucHV0IGhhcyB0byBiZSBhdCBsZWFzdCAxNnB4IGxhcmdlLFxuLy8gb3RoZXJ3aXNlIGl0IHdpbGwgbmVlZGxlc3NseSB0cmlnZ2VyIHBhZ2Ugem9vbSBvbmNlIHRoZSBpbnB1dCBpcyBmb2N1c2VkLlxuLy8gLSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yOTg5MjYzL2Rpc2FibGUtYXV0by16b29tLWluLWlucHV0LXRleHQtdGFnLXNhZmFyaS1vbi1pcGhvbmVcbi8vIC0gaHR0cHM6Ly93d3cud2FycmVuY2hhbmRsZXIuY29tLzIwMTkvMDQvMDIvc3RvcC1pcGhvbmVzLWZyb20tem9vbWluZy1pbi1vbi1mb3JtLWZpZWxkcy9cbiRoZWFkZXItc2VhcmNoX2ZvbnQtc2l6ZS1tb2JpbGU6IDEuNnJlbSAhZGVmYXVsdDtcblxuLy8gV2lkdGggb2YgdGhlIHNlYXJjaCBmaWVsZC4gV29ya3Mgb25seSBmb3IgYCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50YCBicmVha3BvaW50LCBpbiBvdGhlciBjYXNlIGl0J3MgYWx3YXlzIDEwMCVcbiRoZWFkZXItc2VhcmNoLXdpZHRoLWFzLWxheWVyOiA1MCUgIWRlZmF1bHQ7XG5cbiRoZWFkZXItc2VhcmNoX2Nsb3NlLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiRoZWFkZXItc2VhcmNoX2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2J1dHRvbi13aWR0aDogNXJlbSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2J1dHRvbi1ib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQgIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9idXR0b24tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAuN3JlbSkgIWRlZmF1bHQ7XG5cbiRoZWFkZXItc2VhcmNoX2ljb24tc2VhcmNoLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9pY29uLXNlYXJjaC1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfaWNvbi1sb2FkZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2ljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0wLjNyZW0pICFkZWZhdWx0O1xuXG4kaGVhZGVyLXNlYXJjaF9idXR0b24tY29udGFpbmVyLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzXG4gICAgICAgICR0cmFuc2l0aW9uLWVhc2luZ19zbG93ZG93bi05MDAsXG4gICAgb3BhY2l0eSAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbiRoZWFkZXItc2VhcmNoX2F1dG9jb21wbGV0ZS1ib3gtc2hhZG93OiAwIDRweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE3KSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2F1dG9jb21wbGV0ZS1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31oZWFkZXItc2VhcmNoIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgd2lkdGg6ICRoZWFkZXItc2VhcmNoLXdpZHRoLWFzLWxheWVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0taW4tb2ZmY2FudmFzIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgJl9fZmllbGQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgICAgICAgICAgbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAtMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGhlYWRlci1zZWFyY2hfYXV0b2NvbXBsZXRlLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE3KTtcbiAgICAgICAgICAgIHRvcDogLTAuNXJlbTtcbiAgICAgICAgICAgIGJvdHRvbTogLTAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogLTFyZW07XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICB6LWluZGV4OiAyMDk7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAuYWN0aXZlLXBvcHVwICYge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2lucHV0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcblxuICAgICAgICBmb250LXNpemU6ICRoZWFkZXItc2VhcmNoX2ZvbnQtc2l6ZS1tb2JpbGU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjEwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkaGVhZGVyLXNlYXJjaF9mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICsgI3skcm9vdH1fX2FjdGlvbiB7XG4gICAgICAgICAgICAgICAgLmFqYXgtbG9hZGluZyAmIHtcbiAgICAgICAgICAgICAgICAgICAgI3skcm9vdH1fX2J1dHRvbi1jb250YWluZXItLXNlYXJjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgI3skcm9vdH1fX2J1dHRvbi1jb250YWluZXItLWxvYWRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHotaW5kZXg6IDIyMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgfVxuXG4gICAgJl9fY2xvc2UtaWNvbiB7XG4gICAgICAgIHdpZHRoOiAxLjVyZW07XG4gICAgICAgIGhlaWdodDogMS41cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGhlYWRlci1zZWFyY2hfY2xvc2UtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jbG9zZS1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRyYW5zaXRpb246ICRoZWFkZXItc2VhcmNoX2J1dHRvbi1jb250YWluZXItdHJhbnNpdGlvbjtcblxuICAgICAgICAmLS1zZWFyY2gge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbG9hZGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkaGVhZGVyLXNlYXJjaF9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJ29ubHktaWNvbidcbiAgICAgICAgKTtcblxuICAgICAgICB3aWR0aDogJGhlYWRlci1zZWFyY2hfYnV0dG9uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGhlYWRlci1zZWFyY2hfYnV0dG9uLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgdHJhbnNmb3JtOiAkaGVhZGVyLXNlYXJjaF9idXR0b24tdHJhbnNmb3JtO1xuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIHRyYW5zZm9ybTogJGhlYWRlci1zZWFyY2hfaWNvbi10cmFuc2Zvcm07XG5cbiAgICAgICAgJi0tc2VhcmNoIHtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuXG4gICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXNlYXJjaF9pY29uLXNlYXJjaC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxvYWRlciB7XG4gICAgICAgICAgICBzdHJva2U6ICRoZWFkZXItc2VhcmNoX2ljb24tbG9hZGVyLWNvbG9yO1xuICAgICAgICAgICAgd2lkdGg6IDMuMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMy4ycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgJl9fYXV0b2NvbXBsZXRlIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgIHJpZ2h0OiAwLjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKFxuICAgICAgICAgICAgICAgIDEwMHZoIC0gI3skZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlfSAtICN7JGZpZWxkX3NlbGVjdC1saW5lLWhlaWdodH0gLVxuICAgICAgICAgICAgICAgICAgICA3cmVtXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogJGhlYWRlci1zZWFyY2hfYXV0b2NvbXBsZXRlLWJveC1zaGFkb3c7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBoZWlnaHQ6IDEwMCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjExNWVtKSB7XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gICAgICBwYWRkaW5nOiAwIDAuN3JlbTsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZsZXg6IDEgMSAyNSU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbSB7XG4gICAgICAgIGZsZXg6IDEgMSAzMy4zMzMzMyU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1zZWFyY2gge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDFyZW07IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHBhdGgge1xuICAgICAgICBmaWxsOiAjMzI0ZGNmOyB9XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICAgICAgY29sb3I6ICM2OTY5Njk7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rLS1zZWFyY2g6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24td3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24ge1xuICAgIHdpZHRoOiAyLjZyZW07XG4gICAgaGVpZ2h0OiAyLjZyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzMyNGRjZjsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBtYXJnaW4tdG9wOiAwLjNyZW07XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgICBjbGlwOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMjRkY2Y7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMnJlbTtcbiAgICBwYWRkaW5nOiAwIDAuNnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBoZWlnaHQ6IDEuOGVtO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtMC41cmVtO1xuICAgIHRvcDogLTAuNXJlbTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlciB7XG4gICAgICAgIHJpZ2h0OiAtMXJlbTsgfSB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWQ0MDA7XG4gICAgICBjb2xvcjogIzAwMDsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1taW5pY2FydCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQxZjEyO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tY29tcGFyZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVkNDAwO1xuICAgICAgY29sb3I6ICMwMDA7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0taGF2ZS1pdGVtcyB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLXNwYW4ge1xuICAgIG1pbi13aWR0aDogMWNoOyB9XG5cbi5jcy1oZWFkZXItdXNlci1uYXYge1xuICBmbGV4OiAwIDEgMTUlO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgIC5jcy1oZWFkZXItdXNlci1uYXYge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1taW5pY2FydCwgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0LCAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tY29tcGFyZSB7XG4gICAgYm90dG9tOiAzLjVyZW07XG4gICAgdG9wOiB1bnNldDtcbiAgICByaWdodDogMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWNvbXBhcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDM2NjY7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLW1pbmljYXJ0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgYm9yZGVyOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3R0b206IC0zcHg7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogNDNweDtcbiAgICBtYXgtd2lkdGg6IDQzcHg7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1zZWFyY2gge1xuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsge1xuICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7IH0gfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IDAuM3Mgb3BhY2l0eTtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHBhdGgge1xuICAgICAgZmlsbDogI2MxMjcyZjsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBjbGlwOiB1bnNldDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiB7XG4gICAgd2lkdGg6IDIuM3JlbTtcbiAgICBoZWlnaHQ6IDIuM3JlbTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjMDAwMDAwOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbi13cmFwcGVyIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiBxdHktY291bnRlcl9ob29rKCR0eXBlKSB7XG59XG5cbkBtaXhpbiBxdHktY291bnRlcl90eXBlLWhvb2soJHR5cGUpIHtcbn1cblxuQG1peGluIHF0eS1jb3VudGVyX3NwYW4taG9vaygkdHlwZSkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9xdHktY291bnRlci9taXhpbic7XG5cbiRoZWFkZXItdXNlci1uYXZfaXRlbXM6IDMgIWRlZmF1bHQ7IC8vIG51bWJlciBvZiBpdGVtcyBpbiBoZWFkZXIgdXNlciBuYXYgKHdpdGhvdXQgc2VhcmNoIGl0ZW0pXG5cbiRoZWFkZXItdXNlci1uYXZfaWNvbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9pY29uLWNvbG9yLWhvdmVyOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2ljb24td2lkdGg6IDIuNnJlbSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfaWNvbi1oZWlnaHQ6ICRoZWFkZXItdXNlci1uYXZfaWNvbi13aWR0aCAhZGVmYXVsdDtcblxuLy8gU2V0IHVwIHdoZW4gbGFiZWwgaW4gaGVhZGVyIHVzZXIgbmF2IHNob3VsZCBiZSB2aXNpYmxlXG4vLyBTdXBwb3J0ZWQgdmFsdWVzOiB0cnVlIChhbHdheXMpIHwgZmFsc2UgKG5ldmVyKSB8IGJyZWFrcG9pbnRcbiRoZWFkZXItdXNlci1uYXZfbGFiZWwtdmlzaWJsZTogJz49dGFibGV0JyAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfbGFiZWwtZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC1mb250LXdlaWdodDogMzAwICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC1tYXJnaW4tdG9wOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItY29tcGFyZS1zaG93LWVtcHR5OiBmYWxzZSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItd2lzaGxpc3Qtc2hvdy1lbXB0eTogZmFsc2UgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLW1pbmljYXJ0LXNob3ctZW1wdHk6IGZhbHNlICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1hbmltYXRpb24tc2hvdzogdHJ1ZSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItYW5pbWF0aW9uLXRpbWU6ICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZSAhZGVmYXVsdDtcblxuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci10b3Atb2Zmc2V0OiAtMC41cmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtbW9iaWxlOiAtMC41cmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtdGFibGV0OiAtMXJlbSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LWRlc2t0b3A6IC0xcmVtICFkZWZhdWx0O1xuXG4uI3skbnN9aGVhZGVyLXVzZXItbmF2IHtcbiAgICAkcm9vdDogJjtcblxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lJykge1xuICAgICAgICBwYWRkaW5nOiAwIDAuN3JlbTtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09IHRydWUpIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSAoMTAwJSAvICRoZWFkZXItdXNlci1uYXZfaXRlbXMpO1xuICAgICAgICB9IEBlbHNlIGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PSBmYWxzZSlcbiAgICAgICAge1xuICAgICAgICAgICAgZmxleDogMSAxICgxMDAlIC8gKCRoZWFkZXItdXNlci1uYXZfaXRlbXMgKyAxKSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgZmxleDogMSAxICgxMDAlIC8gKCRoZWFkZXItdXNlci1uYXZfaXRlbXMgKyAxKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICN7JGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnR9XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAxIDEgKDEwMCUgLyAkaGVhZGVyLXVzZXItbmF2X2l0ZW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlYXJjaCB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT0gdHJ1ZVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50XG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMXJlbTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VhcmNoIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24td3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgd2lkdGg6ICRoZWFkZXItdXNlci1uYXZfaWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkaGVhZGVyLXVzZXItbmF2X2ljb24taGVpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICBmb250LXNpemU6ICRoZWFkZXItdXNlci1uYXZfbGFiZWwtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1mb250LXdlaWdodDtcbiAgICAgICAgbWFyZ2luLXRvcDogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1tYXJnaW4tdG9wO1xuICAgICAgICBjb2xvcjogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1jb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9sYWJlbC12aXNpYmxlID09IHRydWUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9IEBlbHNlIGlmICgkaGVhZGVyLXVzZXItbmF2X2xhYmVsLXZpc2libGUgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbihcblxuICAgICAgICAgICAgKTsgLy8gTGFiZWwgaXMgbm90IGRpc3BsYXllZCBvbiBzY3JlZW4gYnV0IGFjY2Vzc2libGUgZm9yIHNjcmVlbiByZWFkZXJzXG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCN7JGhlYWRlci11c2VyLW5hdl9sYWJlbC12aXNpYmxlfSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LXZpc2libGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3F0eS1jb3VudGVyIHtcbiAgICAgICAgQGluY2x1ZGUgcXR5LWNvdW50ZXIoKTtcblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC1tb2JpbGU7XG4gICAgICAgIHRvcDogJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci10b3Atb2Zmc2V0O1xuICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICAgIEBpZiAoXG4gICAgICAgICAgICAkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC1tb2JpbGUgIT1cbiAgICAgICAgICAgICAgICAkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC10YWJsZXRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LXRhYmxldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoXG4gICAgICAgICAgICAkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC10YWJsZXQgIT1cbiAgICAgICAgICAgICAgICAkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC1kZXNrdG9wXG4gICAgICAgICkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LWRlc2t0b3A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItYW5pbWF0aW9uLXNob3cpIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1hbmltYXRpb24tdGltZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpc2hsaXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyX3R5cGUoJ3dpc2hsaXN0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW5pY2FydCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcl90eXBlKCdtaW5pY2FydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY29tcGFyZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcl90eXBlKCdjb21wYXJlJyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXZlLWl0ZW1zIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAmI3skcm9vdH1fX3F0eS1jb3VudGVyLS13aXNobGlzdCB7XG4gICAgICAgICAgICAgICAgQGlmICgkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXdpc2hsaXN0LXNob3ctZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYjeyRyb290fV9fcXR5LWNvdW50ZXItLW1pbmljYXJ0IHtcbiAgICAgICAgICAgICAgICBAaWYgKCRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItbWluaWNhcnQtc2hvdy1lbXB0eSkge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiN7JHJvb3R9X19xdHktY291bnRlci0tY29tcGFyZSB7XG4gICAgICAgICAgICAgICAgQGlmICgkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLWNvbXBhcmUtc2hvdy1lbXB0eSkge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3F0eS1jb3VudGVyLXNwYW4ge1xuICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcl9zcGFuKCk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3F0eS1jb3VudGVyL2hvb2snO1xuXG4kcXR5LWNvdW50ZXJfZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyX2ZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXJfaGVpZ2h0OiAxLjhlbSAhZGVmYXVsdDtcbiRxdHktY291bnRlcl9wYWRkaW5nOiAwIDAuNnJlbSAhZGVmYXVsdDtcbiRxdHktY291bnRlcl9ib3JkZXI6IDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXJfYm9yZGVyLXJhZGl1czogMC4ycmVtICFkZWZhdWx0O1xuXG4kcXR5LWNvdW50ZXItLWRlZmF1bHQtYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyLS1kZWZhdWx0LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRxdHktY291bnRlci0tbWluaWNhcnQtYmFja2dyb3VuZDogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRxdHktY291bnRlci0tbWluaWNhcnQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJHF0eS1jb3VudGVyLS1jb21wYXJlLWJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnktNTAwICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyLS1jb21wYXJlLWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG5cbiRxdHktY291bnRlci0td2lzaGxpc3QtYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXItLXdpc2hsaXN0LWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG5cbkBtaXhpbiBxdHktY291bnRlcigkdHlwZTogJ2RlZmF1bHQnKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1jb3VudGVyLS1kZWZhdWx0LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRxdHktY291bnRlci0tZGVmYXVsdC1jb2xvcjtcbiAgICBib3JkZXI6ICRxdHktY291bnRlcl9ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJHF0eS1jb3VudGVyX2JvcmRlci1yYWRpdXM7XG4gICAgcGFkZGluZzogJHF0eS1jb3VudGVyX3BhZGRpbmc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAkcXR5LWNvdW50ZXJfZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiAkcXR5LWNvdW50ZXJfZm9udC13ZWlnaHQ7XG4gICAgaGVpZ2h0OiAkcXR5LWNvdW50ZXJfaGVpZ2h0O1xuICAgIC8vIFByZXZlbnQgSUUxMSBhbmQgRWRnZSBidWcgd2l0aCBiYWNrZ3JvdW5kIGFuZCByb3VuZCBib3JkZXJzXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyX2hvb2soJHR5cGUpO1xufVxuXG5AbWl4aW4gcXR5LWNvdW50ZXJfdHlwZSgkdHlwZTogJ2RlZmF1bHQnKSB7XG4gICAgQGlmICgkdHlwZSA9PSAnd2lzaGxpc3QnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktY291bnRlci0td2lzaGxpc3QtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRxdHktY291bnRlci0td2lzaGxpc3QtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnbWluaWNhcnQnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktY291bnRlci0tbWluaWNhcnQtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRxdHktY291bnRlci0tbWluaWNhcnQtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnY29tcGFyZScpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1jb3VudGVyLS1jb21wYXJlLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkcXR5LWNvdW50ZXItLWNvbXBhcmUtY29sb3I7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfdHlwZS1ob29rKCR0eXBlKTtcbn1cblxuQG1peGluIHF0eS1jb3VudGVyX3NwYW4oJHR5cGU6ICdkZWZhdWx0Jykge1xuICAgIG1pbi13aWR0aDogMWNoO1xuXG4gICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfc3Bhbi1ob29rKCR0eXBlKTtcbn1cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL2hlYWRlci91c2VyLW5hdi91c2VyLW5hdi5zY3NzXCI7XG5cbi4jeyRuc31oZWFkZXItdXNlci1uYXYge1xuICAgICRyb290OiAmO1xuXG4gICAgZmxleDogMCAxIDE1JTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZVwiKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJl9fcXR5LWNvdW50ZXIge1xuICAgICAgICAmLS1taW5pY2FydCxcbiAgICAgICAgJi0td2lzaGxpc3QsXG4gICAgICAgICYtLWNvbXBhcmUge1xuICAgICAgICAgICAgYm90dG9tOiAzLjVyZW07XG4gICAgICAgICAgICB0b3A6IHVuc2V0O1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgJi0tY29tcGFyZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX2JsdWU7XG4gICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAmLS1taW5pY2FydCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3NlY29uZGFyeS01MDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3R0b206IC0zcHg7XG4gICAgfVxuICAgICZfX2l0ZW0ge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDQzcHg7XG4gICAgICAgIG1heC13aWR0aDogNDNweDtcbiAgICAgICAgJi0tc2VhcmNoIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19saW5rIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgICAgIH1cbiAgICAgICAgI3skcm9vdH1fX2xhYmVsIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAka21hX3RyYW5zaXRpb25fdGltZSBvcGFjaXR5O1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAjeyRyb290fV9fbGFiZWwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBjbGlwOiB1bnNldDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogMi4zcmVtO1xuICAgICAgICBoZWlnaHQ6IDIuM3JlbTtcbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAka21hX2NvbG9yX2JsYWNrO1xuICAgICAgICB9XG4gICAgICAgICYtd3JhcHBlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbn1cbiIsIi5sYXp5bG9hZCxcbi5sYXp5bG9hZGluZyxcbi5zd2lwZXItbGF6eSB7XG4gICAgLy8gQWRkZWQgdG8gcHJldmVudCBsYXp5U2l6ZXMgZnJvbSBkZWxheWluZyBpbWFnZXMgbG9hZC5cbiAgICBvcGFjaXR5OiAwLjAwMTtcbn1cblxuLmxhenlsb2FkZWQsXG4uc3dpcGVyLWxhenktbG9hZGVkIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnBhZ2UtcHJvZHVjdC1idW5kbGUgLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9uIC5jcy1saW5rcy1ibG9jay1hZGR0byB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cbiAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvLS1jZW50ZXJlZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0gKyAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0ge1xuICAgICAgbWFyZ2luLXRvcDogMC41cmVtOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtOm50aC1jaGlsZCgybikge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbTpudGgtY2hpbGQoMm4pIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbiB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjMTQyYjllO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogIzE0MmI5ZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2ljb24ge1xuICAgIHdpZHRoOiAxLjM3NWVtO1xuICAgIGhlaWdodDogMS4zNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNHJlbTsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICM4ODg7IH1cbiAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2ljb24tLXdpc2hsaXN0IHBhdGgge1xuICAgICAgZmlsbDogI2U0MWYxMjsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbi0tY29tcGFyZSBwYXRoIHtcbiAgICAgIGZpbGw6ICMzMjRkY2Y7IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTsgfVxuICAucGFnZS1wcm9kdWN0LWJ1bmRsZSAuY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb24gLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAuY3MtbGlua3MtYmxvY2stYWRkdG8tLWNlbnRlcmVkIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0ge1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbSArIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbSB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtOm50aC1jaGlsZCgybikge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbTpudGgtY2hpbGQoMm4pIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbiB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2ljb24ge1xuICAgIHdpZHRoOiAyLjRyZW07XG4gICAgaGVpZ2h0OiAyLjRyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjRyZW07IH1cbiAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjMzMzMzMzOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pY29uLS13aXNobGlzdCBwYXRoIHtcbiAgICAgIGZpbGw6ICMzMzMzMzM7IH1cbiAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2ljb24tLXdpc2hsaXN0OmhvdmVyIHBhdGgge1xuICAgICAgZmlsbDogI2MxMjcyZiAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pY29uLS1jb21wYXJlIHBhdGgge1xuICAgICAgZmlsbDogIzMzMzMzMzsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbi0tY29tcGFyZTpob3ZlciBwYXRoIHtcbiAgICAgIGZpbGw6ICNjMTI3MmYgIWltcG9ydGFudDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbiRsaW5rcy1ibG9jay1hZGR0b193aXNobGlzdC1pY29uLWNvbG9yOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2NvbXBhcmUtaWNvbi1jb2xvcjogJGxpbmstY29sb3JfYmFzZSAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2hvdmVyLWNvbG9yOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2ZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24td2lkdGg6IDEuMzc1ZW0gIWRlZmF1bHQ7XG4kbGlua3MtYmxvY2stYWRkdG9faWNvbi1oZWlnaHQ6IDEuMzc1ZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31saW5rcy1ibG9jay1hZGR0byB7XG4gICAgJHJvb3Q6ICY7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAucGFnZS1wcm9kdWN0LWJ1bmRsZSAmIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICAuI3skbnN9cHJvZHVjdC10aWxlX19hZGRvbiAmIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgJi0tY2VudGVyZWQge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICsgI3skcm9vdH1fX2l0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6ICRsaW5rcy1ibG9jay1hZGR0b19mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkbGlua3MtYmxvY2stYWRkdG9faG92ZXItY29sb3I7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbGlua3MtYmxvY2stYWRkdG9faG92ZXItY29sb3I7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgd2lkdGg6ICRsaW5rcy1ibG9jay1hZGR0b19pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRsaW5rcy1ibG9jay1hZGR0b19pY29uLWhlaWdodDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjRyZW07XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkY29sb3JfZ3JheTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpc2hsaXN0IHtcbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRsaW5rcy1ibG9jay1hZGR0b193aXNobGlzdC1pY29uLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY29tcGFyZSB7XG4gICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkbGlua3MtYmxvY2stYWRkdG9fY29tcGFyZS1pY29uLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIn5DcmVhdGl2ZXNob3AvY29tcG9uZW50cy9saW5rcy1ibG9jay1hZGR0by9saW5rcy1ibG9jay1hZGR0by5zY3NzXCI7XG5AaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuXG4kbGlua3MtYmxvY2stYWRkdG9fd2lzaGxpc3QtaWNvbi1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRsaW5rcy1ibG9jay1hZGR0b19jb21wYXJlLWljb24tY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kbGlua3MtYmxvY2stYWRkdG9fY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kbGlua3MtYmxvY2stYWRkdG9faG92ZXItY29sb3I6ICRrbWFfY29sb3Jfc2Vjb25kYXJ5LTUwMDtcbiRsaW5rcy1ibG9jay1hZGR0b19mb250LXNpemU6ICRrbWFfaWNvbl9zaXplLTUwMDtcbiRsaW5rcy1ibG9jay1hZGR0b19pY29uLXdpZHRoOiAka21hX2ljb25fc2l6ZS01MDA7XG4kbGlua3MtYmxvY2stYWRkdG9faWNvbi1oZWlnaHQ6ICRrbWFfaWNvbl9zaXplLTUwMDtcblxuLiN7JG5zfWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgICAkcm9vdDogJjtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5wYWdlLXByb2R1Y3QtYnVuZGxlICYge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cblxuICAgIC4jeyRuc31wcm9kdWN0LXRpbGVfX2FkZG9uICYge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICAmLS1jZW50ZXJlZCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgKyAjeyRyb290fV9faXRlbSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6ICRsaW5rcy1ibG9jay1hZGR0b19mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkbGlua3MtYmxvY2stYWRkdG9faG92ZXItY29sb3I7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbGlua3MtYmxvY2stYWRkdG9faG92ZXItY29sb3I7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgd2lkdGg6ICRsaW5rcy1ibG9jay1hZGR0b19pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRsaW5rcy1ibG9jay1hZGR0b19pY29uLWhlaWdodDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjRyZW07XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkbGlua3MtYmxvY2stYWRkdG9fd2lzaGxpc3QtaWNvbi1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpc2hsaXN0IHtcbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRsaW5rcy1ibG9jay1hZGR0b193aXNobGlzdC1pY29uLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNvbXBhcmUge1xuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGxpbmtzLWJsb2NrLWFkZHRvX2NvbXBhcmUtaWNvbi1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkbGlua3MtYmxvY2stYWRkdG9faG92ZXItY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtbG9nbyB7XG4gIGhlaWdodDogMTAwJTsgfVxuICAuY3MtbG9nb19faW1hZ2Uge1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAgIC5jcy1sb2dvX19pbWFnZS0tZGVza3RvcCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAuY2hlY2tvdXQtaW5kZXgtaW5kZXggLmNzLWxvZ29fX2ltYWdlLS1kZXNrdG9wIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1sb2dvX19pbWFnZS0tZGVza3RvcCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAgIC5jcy1sb2dvX19pbWFnZS0tbW9iaWxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtbG9nb19faW1hZ2UtLW1vYmlsZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgICAuY2hlY2tvdXQtaW5kZXgtaW5kZXggLmNzLWxvZ29fX2ltYWdlLS1tb2JpbGUge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5jcy1sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtbG9nb19faW1hZ2Uge1xuICAgIG1heC13aWR0aDogMjByZW07XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1sb2dvX19pbWFnZSB7XG4gICAgICAgIG1heC13aWR0aDogMTNyZW07IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4uI3skbnN9bG9nbyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IC8vIEZpeGVzIGhlaWdodDogYXV0byBidWcgb24gY2hyb21lLlxuXG4gICAgICAgICYtLWRlc2t0b3Age1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgLmNoZWNrb3V0LWluZGV4LWluZGV4ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tb2JpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY2hlY2tvdXQtaW5kZXgtaW5kZXggJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL2xvZ28vbG9nby5zY3NzXCI7XG5cbi4jeyRuc31sb2dvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBtYXgtd2lkdGg6IDIwcmVtO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxM3JlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLm1lc3NhZ2VzIHtcbiAgbWF4LXdpZHRoOiAxMjByZW07XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi5jcy1tZXNzYWdlc19fbWVzc2FnZSxcbi5tZXNzYWdlIHtcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIHBhZGRpbmc6IDEuOHJlbSAxcmVtIDEuOHJlbTtcbiAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMS4ycmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAycmVtIDJyZW07XG4gIHBhZGRpbmctbGVmdDogNC4zcmVtOyB9XG5cbi5jcy1tZXNzYWdlc19fbWVzc2FnZS0tc3VjY2Vzcyxcbi5tZXNzYWdlLnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQ5LCAxMzYsIDk4LCAwLjEpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi1zdWNjZXNzLnN2Z1wiKTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5jcy1tZXNzYWdlc19fbWVzc2FnZS0tbm90aWNlLFxuLm1lc3NhZ2Uud2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGY0Y2E7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLXdhcm5pbmcuc3ZnXCIpO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLmNzLW1lc3NhZ2VzX19tZXNzYWdlLS1pbmZvLFxuLm1lc3NhZ2UuaW5mbyxcbi5tZXNzYWdlLm5vdGljZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgNTQsIDEwMiwgMC4xKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24taW5mby5zdmdcIik7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4uY3MtbWVzc2FnZXNfX21lc3NhZ2UtLWVycm9yLFxuLm1lc3NhZ2UuZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMjQsIDAuMSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLWVycm9yLnN2Z1wiKTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5jcy1tZXNzYWdlc19fdGV4dCxcbi5tZXNzYWdlIHNwYW4ge1xuICBjb2xvcjogIzY5Njk2OTtcbiAgZm9udC1zaXplOiAxLjRyZW07IH1cblxuLmNzLW1lc3NhZ2VzLS1zcGFjZS10b3Age1xuICBtYXJnaW4tdG9wOiAxLjVyZW07IH1cbiIsIkBpbXBvcnQgJy4uLy4uL2NvbmZpZy92YXJpYWJsZXMnO1xuLy8gQGltcG9ydCAnLi4vLi4vdmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJG1lc3NhZ2VzX3N1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvcjogJGttYV9tZXNzYWdlc19zdWNjZXNzLWJhY2tncm91bmQtY29sb3IgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfaW5mby1iYWNrZ3JvdW5kLWNvbG9yOiAka21hX21lc3NhZ2VzX2luZm8tYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcbiRtZXNzYWdlc19ub3RpY2UtYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3dhcm5pbmctMjAwICFkZWZhdWx0O1xuJG1lc3NhZ2VzX2Vycm9yLWJhY2tncm91bmQtY29sb3I6ICRrbWFfbWVzc2FnZXNfZXJyb3ItYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcblxuJG1lc3NhZ2VzX3N1Y2Nlc3MtYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJG1lc3NhZ2VzX2luZm8tYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJG1lc3NhZ2VzX25vdGljZS1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfZXJyb3ItYm9yZGVyOiBub25lICFkZWZhdWx0O1xuXG4kbWVzc2FnZXNfYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRtZXNzYWdlc19wYWRkaW5nOiAxLjhyZW0gMXJlbSAxLjhyZW0gIWRlZmF1bHQ7XG4kbWVzc2FnZXNfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJG1lc3NhZ2VfaWNvbi13aWR0aDogMnJlbSAhZGVmYXVsdDtcbiRtZXNzYWdlX2ljb24taGVpZ2h0OiAkbWVzc2FnZV9pY29uLXdpZHRoICFkZWZhdWx0O1xuXG4ubWVzc2FnZXMge1xuICAgIG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoO1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uI3skbnN9bWVzc2FnZXNfX21lc3NhZ2UsXG4ubWVzc2FnZSB7XG4gICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgcGFkZGluZzogJG1lc3NhZ2VzX3BhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJG1lc3NhZ2VzX2JvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxLjJyZW0gY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJG1lc3NhZ2VfaWNvbi13aWR0aCAkbWVzc2FnZV9pY29uLWhlaWdodDtcbiAgICBwYWRkaW5nLWxlZnQ6IDQuM3JlbTtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX19tZXNzYWdlLS1zdWNjZXNzLFxuLm1lc3NhZ2Uuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lc3NhZ2VzX3N1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLXN1Y2Nlc3Muc3ZnJyk7XG4gICAgYm9yZGVyOiAkbWVzc2FnZXNfc3VjY2Vzcy1ib3JkZXI7XG59XG5cbi4jeyRuc31tZXNzYWdlc19fbWVzc2FnZS0tbm90aWNlLFxuLm1lc3NhZ2Uud2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lc3NhZ2VzX25vdGljZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24td2FybmluZy5zdmcnKTtcbiAgICBib3JkZXI6ICRtZXNzYWdlc19ub3RpY2UtYm9yZGVyO1xufVxuXG4uI3skbnN9bWVzc2FnZXNfX21lc3NhZ2UtLWluZm8sXG4ubWVzc2FnZS5pbmZvLFxuLm1lc3NhZ2Uubm90aWNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVzc2FnZXNfaW5mby1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24taW5mby5zdmcnKTtcbiAgICBib3JkZXI6ICRtZXNzYWdlc19pbmZvLWJvcmRlcjtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX19tZXNzYWdlLS1lcnJvcixcbi5tZXNzYWdlLmVycm9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVzc2FnZXNfZXJyb3ItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLWVycm9yLnN2ZycpO1xuICAgIGJvcmRlcjogJG1lc3NhZ2VzX2Vycm9yLWJvcmRlcjtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX190ZXh0LFxuLm1lc3NhZ2Ugc3BhbiB7XG4gICAgY29sb3I6ICRtZXNzYWdlc190ZXh0LWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuXG4uI3skbnN9bWVzc2FnZXMge1xuICAgICRyb290OiAmO1xuXG4gICAgJi0tc3BhY2UtdG9wIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIHByZXR0aWVyLWlnbm9yZSAqL1xuLmNzLW1pbmljYXJ0X19jbG9zZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJvcmRlcjogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTEuNXJlbTtcbiAgd2lkdGg6IDVyZW07XG4gIGhlaWdodDogNXJlbTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICByaWdodDogMC41cmVtOyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2U6Zm9jdXMsIC5jcy1taW5pY2FydF9fY2xvc2U6YWN0aXZlLCAuY3MtbWluaWNhcnRfX2Nsb3NlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cblxuLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246YmVmb3JlLCAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDAuMnJlbTtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ODQ4NDg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQsIG9wYWNpdHkgMC4xNXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246aG92ZXI6YmVmb3JlLCAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246aG92ZXI6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2OTY5Njk7IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSwgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4OyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjpiZWZvcmUsIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjphZnRlciB7XG4gICAgcmlnaHQ6IDEuNXJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSg5MGRlZykgIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgtOTBkZWcpICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDApICFpbXBvcnRhbnQ7IH1cblxuLmNzLW1pbmljYXJ0X19jbG9zZS10ZXh0IHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7IH1cblxuLmNzLW1pbmljYXJ0X190aXRsZS13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAycmVtIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gIGZvbnQtc2l6ZTogMi4xcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYzsgfVxuXG4uY3MtbWluaWNhcnRfX2l0ZW1zLXRvdGFsIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbDpub3QoLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbC0tZW1wdHkpOmJlZm9yZSB7XG4gICAgY29udGVudDogJygnOyB9XG4gIC5jcy1taW5pY2FydF9faXRlbXMtdG90YWw6bm90KC5jcy1taW5pY2FydF9faXRlbXMtdG90YWwtLWVtcHR5KTphZnRlciB7XG4gICAgY29udGVudDogJyknOyB9XG4gIC5jcy1taW5pY2FydF9faXRlbXMtdG90YWwtLWVtcHR5IC5jb3VudCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3MtbWluaWNhcnRfX2VkaXQtbGluayB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLmNzLW1pbmljYXJ0X19lZGl0LWxpbmsgLmNzLWxpbmtfX2ljb24ge1xuICAgIHBhZGRpbmc6IDAgMCAwIDFyZW07IH1cblxuLmNzLW1pbmljYXJ0X19jb250ZW50IHtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3MtbWluaWNhcnRfX2NvbnRlbnQgLmxvYWQuaW5kaWNhdG9yOmJlZm9yZSB7XG4gICAgaGVpZ2h0OiB1bnNldDsgfVxuXG4uY3MtbWluaWNhcnRfX2xpc3Qge1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jcy1taW5pY2FydF9fbGlzdC0tc2Nyb2xsIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzZyZW0pO1xuICAgIG92ZXJmbG93LXk6IGF1dG87IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19saXN0LS1zY3JvbGwge1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzhyZW0pOyB9XG4gICAgICAgIC5pcy10YWJsZXQgLmNzLW1pbmljYXJ0X19saXN0LS1zY3JvbGwge1xuICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0M3JlbSk7IH0gfVxuXG4uY3MtbWluaWNhcnRfX2xpc3QtaXRlbSB7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6IDEuNXJlbSAycmVtOyB9XG4gIC5jcy1taW5pY2FydF9fbGlzdC1pdGVtOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLmNzLW1pbmljYXJ0X19hY3Rpb25zLXdyYXBwZXIge1xuICBwYWRkaW5nOiAycmVtIDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMS41cmVtIDJyZW07XG4gIGJveC1zaGFkb3c6IDAgLTVweCA1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMjcpOyB9XG5cbi5jcy1taW5pY2FydF9fYWN0aW9ucyB7XG4gIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgLmNzLW1pbmljYXJ0X19hY3Rpb25zOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG5cbi5jcy1taW5pY2FydF9fZW1wdHkge1xuICBwYWRkaW5nOiAycmVtIDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uY3MtbWluaWNhcnRfX3N1YnRvdGFsIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMS4ycmVtOyB9XG5cbi5jcy1taW5pY2FydF9fc3VidG90YWwtcHJpY2UgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAyLjFyZW0gIWltcG9ydGFudDsgfVxuXG4uY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dCB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQsIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXRbZGlzYWJsZWRdLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IGF1dG87XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0LXNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0LWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG5cbi5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0IHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydCwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6dmlzaXRlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydFtkaXNhYmxlZF0sIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQtc3BhbiB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQtaWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS42cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cblxuLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgbWFyZ2luOiAzcmVtIDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjOyB9XG5cbi5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cblxuLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwsIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOnZpc2l0ZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWxbZGlzYWJsZWRdLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuXG4uY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbC1zcGFuIHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG5cbi5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsLWljb24ge1xuICBtYXgtd2lkdGg6IDFlbTtcbiAgbWF4LWhlaWdodDogMS42cmVtO1xuICB6LWluZGV4OiAyO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBub25lO1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuXG4uY3MtbWluaWNhcnRfX21lc3NhZ2VzIHtcbiAgcGFkZGluZzogMCAycmVtOyB9XG5cbi5jcy1taW5pY2FydC1vZmZjYW52YXNfX3dyYXBwZXIge1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qIHByZXR0aWVyLWlnbm9yZSAqL1xuLmNzLW1pbmljYXJ0X19jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTA7IH1cbiAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC1jb250YWluZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW47XG4gICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlci0tcmVhZHkgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC1jb250YWluZXIge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiBjYWxjKDQwcmVtICsgMnJlbSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gKDQwcmVtICsgKDIgKiAycmVtKSkpO1xuICAgIG1heC13aWR0aDogMTIwcmVtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyLS1sb2FkaW5nLCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXItLXJlYWR5IHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuICAgIC5kcmF3ZXItLXZpc2libGUgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAubWluaWNhcnQtb2ZmY2FudmFzLW9wZW4gLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgICAgICBtYXgtaGVpZ2h0OiA4MHZoOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIHtcbiAgICAgICAgcmlnaHQ6IGNhbGMoNDByZW0gKyAoMiAqIDJyZW0pKTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoNDByZW0gKyAoNCAqIDJyZW0pKSk7IH0gfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciAuY3MtaGVhZGxpbmUge1xuICAgICAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMCAwOyB9XG4gIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtc3Bpbm5lciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAxMXJlbTtcbiAgICBoZWlnaHQ6IDExcmVtO1xuICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLWluOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyLS1sb2FkaW5nIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtc3Bpbm5lciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgei1pbmRleDogMTA7IH1cbiAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG5cbi5taW5pY2FydC13cmFwcGVyIC51aS1kaWFsb2cge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5jcy1taW5pY2FydCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTM7IH1cbiAgLmNzLW1pbmljYXJ0X193cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAuY3MtbWluaWNhcnQgLnVwZGF0ZS1jYXJ0LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtbWluaWNhcnQgLnVwZGF0ZS1jYXJ0LWl0ZW06aG92ZXIgc3ZnIHtcbiAgICAgIGZpbHRlcjogbm9uZTsgfVxuICAgIC5jcy1taW5pY2FydCAudXBkYXRlLWNhcnQtaXRlbSBzdmcge1xuICAgICAgZmlsdGVyOiBpbnZlcnQoMSk7XG4gICAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbDsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC0xLjVyZW07XG4gICAgd2lkdGg6IDVyZW07XG4gICAgaGVpZ2h0OiA1cmVtO1xuICAgIHRvcDogNzAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcmlnaHQ6IDEuNXJlbTsgfVxuICAgIC5jcy1taW5pY2FydF9fY2xvc2U6Zm9jdXMsIC5jcy1taW5pY2FydF9fY2xvc2U6YWN0aXZlLCAuY3MtbWluaWNhcnRfX2Nsb3NlOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246YmVmb3JlLCAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHdpZHRoOiAyLjVyZW07XG4gICAgICBoZWlnaHQ6IDAuMnJlbTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDg0ODQ4O1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQsIG9wYWNpdHkgMC4xNXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyO1xuICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmhvdmVyOmJlZm9yZSwgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmhvdmVyOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2OTY5Njk7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlLCAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODsgfVxuICAgIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjpiZWZvcmUsIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjphZnRlciB7XG4gICAgICByaWdodDogMS41cmVtO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSAhaW1wb3J0YW50OyB9XG4gICAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDkwZGVnKSAhaW1wb3J0YW50OyB9XG4gICAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgtOTBkZWcpICFpbXBvcnRhbnQ7XG4gICAgICBvcGFjaXR5OiAwOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDApICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZS10ZXh0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4OyB9XG4gIC5jcy1taW5pY2FydF9fdGl0bGUtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDNyZW0gMS41cmVtIDEuNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBmb250LXdlaWdodDogNDAwOyB9XG4gICAgLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbDpub3QoLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbC0tZW1wdHkpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIihcIjsgfVxuICAgIC5jcy1taW5pY2FydF9faXRlbXMtdG90YWw6bm90KC5jcy1taW5pY2FydF9faXRlbXMtdG90YWwtLWVtcHR5KTphZnRlciB7XG4gICAgICBjb250ZW50OiBcIilcIjsgfVxuICAgIC5jcy1taW5pY2FydF9faXRlbXMtdG90YWwtLWVtcHR5IC5jb3VudCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1taW5pY2FydF9fZWRpdC1saW5rIHtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmNzLW1pbmljYXJ0X19lZGl0LWxpbmsgLmNzLWxpbmtfX2ljb24ge1xuICAgICAgcGFkZGluZzogMCAwIDAgMXJlbTsgfVxuICAuY3MtbWluaWNhcnRfX2NvbnRlbnQge1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jb250ZW50LXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxleC1ncm93OiAxOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgICAuY3MtbWluaWNhcnRfX2NvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDI3MHB4OyB9IH1cbiAgICAuY3MtbWluaWNhcnRfX2NvbnRlbnQgLmxvYWQuaW5kaWNhdG9yOmJlZm9yZSB7XG4gICAgICBoZWlnaHQ6IHVuc2V0OyB9XG4gIC5jcy1taW5pY2FydF9fbGlzdCB7XG4gICAgcGFkZGluZzogMCAxLjVyZW07XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmNzLW1pbmljYXJ0X19saXN0LS1zY3JvbGwge1xuICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzZyZW0pO1xuICAgICAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLW1pbmljYXJ0X19saXN0LS1zY3JvbGwge1xuICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzOHJlbSk7IH1cbiAgICAgICAgICAuaXMtdGFibGV0IC5jcy1taW5pY2FydF9fbGlzdC0tc2Nyb2xsIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0M3JlbSk7IH0gfVxuICAuY3MtbWluaWNhcnRfX2xpc3QtaXRlbSB7XG4gICAgcGFkZGluZzogM3JlbSAwIDMuNXJlbSAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDVkNWQ1O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZzogM3JlbSAwIDMuNXJlbSAwOyB9XG4gICAgLmNzLW1pbmljYXJ0X19saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgICAuY3MtbWluaWNhcnRfX2xpc3QtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTFyZW07IH0gfVxuICAuY3MtbWluaWNhcnRfX2FjdGlvbnMtd3JhcHBlciB7XG4gICAgcGFkZGluZzogMnJlbSAxLjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gICAgbWluLWhlaWdodDogMjZyZW07XG4gICAgbWF4LWhlaWdodDogMjZyZW07XG4gICAgYm94LXNoYWRvdzogMCAtNXB4IDVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yNyk7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19hY3Rpb25zLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDM7IH0gfVxuICAuY3MtbWluaWNhcnRfX2FjdGlvbnMge1xuICAgIG1hcmdpbjogMnJlbSBhdXRvO1xuICAgIG1heC13aWR0aDogMjQwcHg7IH1cbiAgICAuY3MtbWluaWNhcnRfX2FjdGlvbnM6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogM3JlbTsgfVxuICAuY3MtbWluaWNhcnRfX2VtcHR5IHtcbiAgICBwYWRkaW5nOiAzcmVtIDRyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuY3MtbWluaWNhcnRfX3N1YnRvdGFsIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY3MtbWluaWNhcnRfX3N1YnRvdGFsLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1taW5pY2FydF9fc3VidG90YWwtcHJpY2UgLnByaWNlLXdyYXBwZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07IH1cbiAgICAuY3MtbWluaWNhcnRfX3N1YnRvdGFsLXByaWNlIC5wcmljZS13cmFwcGVyOjpiZWZvcmUge1xuICAgICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKSBcIjpcIjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBmb250LXNpemU6IDEuNnJlbSAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgfVxuICAgIC5jcy1taW5pY2FydF9fc3VidG90YWwtcHJpY2UgLnByaWNlLXdyYXBwZXIgLnByaWNlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBmb250LXNpemU6IDEuNnJlbSAhaW1wb3J0YW50O1xuICAgICAgZm9udC1zaXplOiAxLjZyZW0gIWltcG9ydGFudDsgfVxuICAgIC5jcy1taW5pY2FydF9fc3VidG90YWwtcHJpY2UgLnByaWNlLXdyYXBwZXIucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGZvbnQtc2l6ZTogMi40cmVtICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXNpemU6IDIuNHJlbSAhaW1wb3J0YW50OyB9XG4gICAgLmNzLW1pbmljYXJ0X19zdWJ0b3RhbC1wcmljZSAucHJpY2Utd3JhcHBlci5wcmljZS1leGNsdWRpbmctdGF4OjpiZWZvcmUge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0IHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dCwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6dmlzaXRlZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHotaW5kZXg6IDU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gICAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dFtkaXNhYmxlZF0sIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0LXNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0LWljb24ge1xuICAgICAgbWF4LXdpZHRoOiAxZW07XG4gICAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0LCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDp2aXNpdGVkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0W2Rpc2FibGVkXSwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQtc3BhbiB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQtaWNvbiB7XG4gICAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIG1hcmdpbjogM3JlbSAwOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwsIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWxbZGlzYWJsZWRdLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IGF1dG87XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsLXNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsLWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG4gIC5jcy1taW5pY2FydF9fbWVzc2FnZXMge1xuICAgIHBhZGRpbmc6IDAgMnJlbTsgfVxuICAuY3MtbWluaWNhcnQtb2ZmY2FudmFzX193cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi8qIHByZXR0aWVyLWlnbm9yZSAqL1xuLmNzLW1pbmljYXJ0X19jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTA7IH1cbiAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC1jb250YWluZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW47XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXItLXJlYWR5IC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtY29udGFpbmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogY2FsYyg1MHJlbSArIDJyZW0gKyAycmVtKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoNTByZW0gKyAoMiAqIDJyZW0pKSk7XG4gICAgbWF4LXdpZHRoOiAxMjByZW07XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAxMDB2aDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tZ3JpZCB7XG4gICAgICBwYWRkaW5nLXRvcDogMi41cmVtICFpbXBvcnRhbnQ7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fbmF2IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXItLWxvYWRpbmcsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlci0tcmVhZHkge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gICAgLmRyYXdlci0tdmlzaWJsZSAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5taW5pY2FydC1vZmZjYW52YXMtb3BlbiAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDgwdmg7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgICAgICByaWdodDogY2FsYyg1MHJlbSArICgyICogMnJlbSkpO1xuICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtICg1MHJlbSArICg0ICogMnJlbSkpKTsgfSB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIC5jcy1oZWFkbGluZSB7XG4gICAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgICAgcGFkZGluZzogMnJlbSAwIDA7IH1cbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciAuY3MtaGVhZGxpbmU6OmJlZm9yZSwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIC5jcy1oZWFkbGluZTo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC1zcGlubmVyIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDExcmVtO1xuICAgIGhlaWdodDogMTFyZW07XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW47IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXItLWxvYWRpbmcgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC1zcGlubmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB6LWluZGV4OiAxMDsgfVxuICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cblxuLm1pbmljYXJ0LXdyYXBwZXIgLnVpLWRpYWxvZyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLm1pbmljYXJ0LXdyYXBwZXIgLnVpLWRpYWxvZyAuZHJhd2VyLS12aXNpYmxlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5cbiRtaW5pY2FydC1vZmZjYW52YXM6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2hlY2tvdXQsXG4gICAgbWluaWNhcnRfb2ZmY2FudmFzLFxuICAgIGVuYWJsZWRcbikgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWw6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2hlY2tvdXQsXG4gICAgbWluaWNhcnRfb2ZmY2FudmFzLFxuICAgIHByb2R1Y3RzX2Nhcm91c2VsLFxuICAgIGVuYWJsZWRcbikgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9vZmZjYW52YXMtd3JhcHBlcjogMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtcGFkZGluZzogMS41cmVtIDJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLXRpdGxlLXBhZGRpbmc6IDFyZW0gMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtaXRlbS1wYWRkaW5nOiAxLjVyZW0gMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3I6IGZhbHNlICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1vZmZzZXQtaXBob25lLWZpeDogNDByZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9fY2xvc2UtaW5jbHVkZS1wc2V1ZG9pY29uOiB0cnVlICFkZWZhdWx0O1xuJG1pbmljYXJ0X19jbG9zZS1wc2V1ZG9pY29uLXR5cGU6ICdwbHVzJyAhZGVmYXVsdDtcbiRtaW5pY2FydF9fY2xvc2Utd2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfX2Nsb3NlLWxpbmUtd2lkdGg6IDAuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9fY2xvc2UtY29sb3I6ICRjb2xvcl90ZXh0LTYwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9fY2xvc2UtY29sb3ItaG92ZXI6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmc6IDJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uOiAnY2VudGVyJyAhZGVmYXVsdDsgLy8gRGVmYXVsdCB2YWx1ZTogY2VudGVyLiBQb3NzaWJsZSB2YWx1ZXM6IGNlbnRlciAvIHRvcCAvIGJvdHRvbVxuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbi1vZmZzZXQ6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZyAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXBvc2l0aW9uOiAnY2VudGVyJyAhZGVmYXVsdDsgLy8gRGVmYXVsdCB2YWx1ZTogY2VudGVyLiBQb3NzaWJsZSB2YWx1ZXM6IGNlbnRlciAvIGxlZnQgLyByaWdodFxuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1zcGFjaW5nOiAzcmVtICFkZWZhdWx0O1xuLyogcHJldHRpZXItaWdub3JlICovXG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lIGVhc2UtaW4gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwaW5uZXItc2l6ZTogMTFyZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9wYWRkaW5nOiAycmVtIDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9jbG9zZS1idXR0b24tY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X2l0ZW0tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfaXRlbS1oZWFkbGluZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X2l0ZW0tcGFkZGluZzogMS41cmVtICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X2JveC1zaGFkb3c6IDAgMCAyMXB4IDAgcmdiYSgkY29sb3JfYmFja2dyb3VuZC04MDAsIDAuMjcpICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfd2lkdGg6IDQwcmVtICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfY29udGVudC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYWN0aW9uLXdyYXBwZXJfYm94LXNoYWRvdzogMCAtNXB4IDVweCAtNXB4XG4gICAgcmdiYSgkY29sb3JfYmFja2dyb3VuZC04MDAsIDAuMjcpICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4uI3skbnN9bWluaWNhcnQge1xuICAgICRyb290OiAmO1xuXG4gICAgJl9fY2xvc2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0xLjVyZW07XG4gICAgICAgIHdpZHRoOiA1cmVtO1xuICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nsb3NlLWljb24ge1xuICAgICAgICBAaWYgKCRtaW5pY2FydF9fY2xvc2UtaW5jbHVkZS1wc2V1ZG9pY29uKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfX2Nsb3NlLXBzZXVkb2ljb24tdHlwZSxcbiAgICAgICAgICAgICAgICAkY29sb3I6ICRtaW5pY2FydF9fY2xvc2UtY29sb3IsXG4gICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkbWluaWNhcnRfX2Nsb3NlLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICR3aWR0aDogJG1pbmljYXJ0X19jbG9zZS13aWR0aCxcbiAgICAgICAgICAgICAgICAkaGVpZ2h0OiAkbWluaWNhcnRfX2Nsb3NlLWxpbmUtd2lkdGhcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAmX19jbG9zZS10ZXh0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X3BhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnRfaXRlbS1oZWFkbGluZS1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLXRpdGxlLXBhZGRpbmc7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuMXJlbTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkbWluaWNhcnRfaXRlbS1ib3JkZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtcy10b3RhbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cbiAgICAgICAgJjpub3QoI3skcm9vdH1fX2l0ZW1zLXRvdGFsLS1lbXB0eSkge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcoJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgLmNvdW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTUwMDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19lZGl0LWxpbmsge1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgIC4jeyRuc31saW5rX19pY29uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtaW5pY2FydF9jb250ZW50LWJhY2tncm91bmQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAubG9hZC5pbmRpY2F0b3I6YmVmb3JlIHtcbiAgICAgICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmLS1zY3JvbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzZyZW0pO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzOHJlbSk7XG5cbiAgICAgICAgICAgICAgICAuaXMtdGFibGV0ICYge1xuICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDNyZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICRtaW5pY2FydF9vZmZjYW52YXMtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3Ige1xuICAgICAgICAgICAgICAgIC8qIGlQaG9uZSBYIGFuZCBYcyBNYXggKi9cbiAgICAgICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW5cbiAgICAgICAgICAgICAgICBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IDM3NXB4KVxuICAgICAgICAgICAgICAgIGFuZCAobWluLWRldmljZS1oZWlnaHQ6IDgxMnB4KVxuICAgICAgICAgICAgICAgIGFuZCAoLXdlYmtpdC1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpXG4gICAgICAgICAgICAgICAgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtICN7JG1pbmljYXJ0X29mZmNhbnZhcy1vZmZzZXQtaXBob25lLWZpeH0pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyogaVBob25lIFhSICovXG4gICAgICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuXG4gICAgICAgICAgICAgICAgYW5kIChtaW4tZGV2aWNlLXdpZHRoOiA0MTRweClcbiAgICAgICAgICAgICAgICBhbmQgKG1pbi1kZXZpY2UtaGVpZ2h0OiA4OTZweClcbiAgICAgICAgICAgICAgICBhbmQgKC13ZWJraXQtZGV2aWNlLXBpeGVsLXJhdGlvOiAyKVxuICAgICAgICAgICAgICAgIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRtaW5pY2FydF9vZmZjYW52YXMtb2Zmc2V0LWlwaG9uZS1maXh9KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3QtaXRlbSB7XG4gICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9pdGVtLXBhZGRpbmc7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRtaW5pY2FydF9pdGVtLWJvcmRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtaXRlbS1wYWRkaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucy13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X3BhZGRpbmc7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLXBhZGRpbmc7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkbWluaWNhcnRfYWN0aW9uLXdyYXBwZXJfYm94LXNoYWRvdztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2VtcHR5IHtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X3BhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19zdWJ0b3RhbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuMnJlbTtcbiAgICB9XG5cbiAgICAmX19zdWJ0b3RhbC1wcmljZSB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW0gIWltcG9ydGFudDtcblxuICAgICAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4xcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tY2hlY2tvdXQge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi12aWV3Y2FydCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtaWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWNhcm91c2VsIHtcbiAgICAgICAgJi13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1zcGFjaW5nO1xuICAgICAgICAgICAgbWFyZ2luOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1zcGFjaW5nIDA7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1wb3NpdGlvbiA9PSAnbGVmdCcge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tcG9zaXRpb24gPT0gJ3JpZ2h0JyB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtaWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWVzc2FnZXMge1xuICAgICAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgfVxuXG4gICAgJi1vZmZjYW52YXNfX3dyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLXdyYXBwZXI7XG4gICAgfVxufVxuXG5AaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyBhbmQgJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbCB7XG4gICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgLiN7JG5zfW1pbmljYXJ0X19jYXJvdXNlbCB7XG4gICAgICAgICRyb290OiAmO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgICYtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXRyYW5zaXRpb247XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICN7JHJvb3R9LXdyYXBwZXItLXJlYWR5ICYge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogY2FsYygjeyRtaW5pY2FydF93aWR0aH0gKyAjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZ30pO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoI3skbWluaWNhcnRfd2lkdGh9ICsgKDIgKiAjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZ30pKSk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEyMHJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAgICAgJi0tbG9hZGluZyxcbiAgICAgICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAYXQtcm9vdCAuZHJhd2VyLS12aXNpYmxlICYge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1pbmljYXJ0LW9mZmNhbnZhcy1vcGVuICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA4MHZoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICByaWdodDogY2FsYygjeyRtaW5pY2FydF93aWR0aH0gKyAoMiAqICN7JG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nfSkpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gKCN7JG1pbmljYXJ0X3dpZHRofSArICg0ICogI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmd9KSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbiA9PSAndG9wJyB7XG4gICAgICAgICAgICAgICAgdG9wOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uLW9mZnNldDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uID09ICdib3R0b20nIHtcbiAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgYm90dG9tOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uLW9mZnNldDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skbnN9aGVhZGxpbmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmcgMCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1zcGlubmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwaW5uZXItc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGlubmVyLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmcgMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXRyYW5zaXRpb247XG5cbiAgICAgICAgICAgICN7JHJvb3R9LXdyYXBwZXItLWxvYWRpbmcgJiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyRuc31wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG59IEBlbHNlIHtcbiAgICAuI3skbnN9bWluaWNhcnRfX2Nhcm91c2VsIHtcbiAgICAgICAgJi1zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpZiAkbWluaWNhcnQtb2ZmY2FudmFzICE9IHRydWUge1xuICAgIC5taW5pY2FydC13cmFwcGVyIHtcbiAgICAgICAgLnVpLWRpYWxvZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgei1pbmRleDogOTk5OTk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGVpZ2h0LWRlc2t0b3AgPiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0KSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIDEwMCUgLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JGdsb2JhbF9oZWFkZXItaGVpZ2h0LWRlc2t0b3B9IC0gI3skZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvIDJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJsb2NrLW1pbmljYXJ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtaW5pY2FydF9iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJG1pbmljYXJ0X2JveC1zaGFkb3c7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMzFyZW07XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMnJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJG1pbmljYXJ0X3dpZHRoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1pbmljYXJ0X2JhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgIHRvcDogLTAuOHJlbTtcbiAgICAgICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiA0LjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSBAZWxzZSB7XG4gICAgLm1pbmljYXJ0LXdyYXBwZXIge1xuICAgICAgICAudWktZGlhbG9nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuXG5AaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL21pbmljYXJ0L21pbmljYXJ0LnNjc3NcIjtcblxuJG1pbmljYXJ0X29mZmNhbnZhcy10aXRsZS1wYWRkaW5nOiAzcmVtIDRyZW0gMS41cmVtIDRyZW07XG5cbiRtaW5pY2FydF9fY2xvc2Utd2lkdGg6IDIuNXJlbTtcblxuJG1pbmljYXJ0X3BhZGRpbmc6IDNyZW0gNHJlbTtcblxuJG1pbmljYXJ0X2l0ZW0tYm9yZGVyOiAka21hX2JvcmRlcl9iYXNlO1xuJG1pbmljYXJ0X2l0ZW0taGVhZGxpbmUtY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kbWluaWNhcnRfaXRlbS1wYWRkaW5nOiAzcmVtIDAgMy41cmVtIDA7XG4kbWluaWNhcnRfd2lkdGg6IDUwcmVtO1xuXG4uI3skbnN9bWluaWNhcnQge1xuICAgICRyb290OiAmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxMztcblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC51cGRhdGUtY2FydC1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgZmlsdGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmaWx0ZXI6IGludmVydCgxKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDAuM3MgYWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2xvc2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0xLjVyZW07XG4gICAgICAgIHdpZHRoOiA1cmVtO1xuICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIHRvcDogNzAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nsb3NlLWljb24ge1xuICAgICAgICBAaWYgKCRtaW5pY2FydF9fY2xvc2UtaW5jbHVkZS1wc2V1ZG9pY29uKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfX2Nsb3NlLXBzZXVkb2ljb24tdHlwZSxcbiAgICAgICAgICAgICAgICAkY29sb3I6ICRtaW5pY2FydF9fY2xvc2UtY29sb3IsXG4gICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkbWluaWNhcnRfX2Nsb3NlLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICR3aWR0aDogJG1pbmljYXJ0X19jbG9zZS13aWR0aCxcbiAgICAgICAgICAgICAgICAkaGVpZ2h0OiAkbWluaWNhcnRfX2Nsb3NlLWxpbmUtd2lkdGhcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAmX19jbG9zZS10ZXh0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogM3JlbSAxLjVyZW0gMS41cmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjb2xvcjogJG1pbmljYXJ0X2l0ZW0taGVhZGxpbmUtY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtcy10b3RhbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cbiAgICAgICAgJjpub3QoI3skcm9vdH1fX2l0ZW1zLXRvdGFsLS1lbXB0eSkge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiKFwiO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIilcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgIC5jb3VudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC01MDA7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZWRpdC1saW5rIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcblxuICAgICAgICAuI3skbnN9bGlua19faWNvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWluaWNhcnRfY29udGVudC1iYWNrZ3JvdW5kO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJi13cmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjcwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubG9hZC5pbmRpY2F0b3I6YmVmb3JlIHtcbiAgICAgICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgcGFkZGluZzogMCAxLjVyZW07XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgJi0tc2Nyb2xsIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDM2cmVtKTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzOHJlbSk7XG5cbiAgICAgICAgICAgICAgICAuaXMtdGFibGV0ICYge1xuICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDNyZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICRtaW5pY2FydF9vZmZjYW52YXMtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3Ige1xuICAgICAgICAgICAgICAgIC8qIGlQaG9uZSBYIGFuZCBYcyBNYXggKi9cbiAgICAgICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW5cbiAgICAgICAgICAgICAgICBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IDM3NXB4KVxuICAgICAgICAgICAgICAgIGFuZCAobWluLWRldmljZS1oZWlnaHQ6IDgxMnB4KVxuICAgICAgICAgICAgICAgIGFuZCAoLXdlYmtpdC1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpXG4gICAgICAgICAgICAgICAgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtICN7JG1pbmljYXJ0X29mZmNhbnZhcy1vZmZzZXQtaXBob25lLWZpeH0pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyogaVBob25lIFhSICovXG4gICAgICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuXG4gICAgICAgICAgICAgICAgYW5kIChtaW4tZGV2aWNlLXdpZHRoOiA0MTRweClcbiAgICAgICAgICAgICAgICBhbmQgKG1pbi1kZXZpY2UtaGVpZ2h0OiA4OTZweClcbiAgICAgICAgICAgICAgICBhbmQgKC13ZWJraXQtZGV2aWNlLXBpeGVsLXJhdGlvOiAyKVxuICAgICAgICAgICAgICAgIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRtaW5pY2FydF9vZmZjYW52YXMtb2Zmc2V0LWlwaG9uZS1maXh9KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3QtaXRlbSB7XG4gICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9pdGVtLXBhZGRpbmc7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRtaW5pY2FydF9pdGVtLWJvcmRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfaXRlbS1wYWRkaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucy13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogMnJlbSAxLjVyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9iYWNrZ3JvdW5kLTEwMDtcbiAgICAgICAgbWluLWhlaWdodDogMjZyZW07XG4gICAgICAgIG1heC1oZWlnaHQ6IDI2cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkbWluaWNhcnRfYWN0aW9uLXdyYXBwZXJfYm94LXNoYWRvdztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBtYXJnaW46IDJyZW0gYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAyNDBweDtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19lbXB0eSB7XG4gICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9wYWRkaW5nO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fc3VidG90YWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmX19zdWJ0b3RhbC1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fc3VidG90YWwtcHJpY2Uge1xuICAgICAgICAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpIFwiOlwiO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0zICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTMgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWNoZWNrb3V0IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LXR5cGUsICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC1pY29uLXBvcyk7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKCR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LXR5cGUsICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC1pY29uLXBvcyk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbigkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC10eXBlLCAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtaWNvbi1wb3MpO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tdmlld2NhcnQge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZSwgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zKTtcblxuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oJHR5cGU6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZSwgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKCR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LXR5cGUsICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC1pY29uLXBvcyk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1jYXJvdXNlbCB7XG4gICAgICAgICYtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbjogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tc3BhY2luZyAwO1xuXG4gICAgICAgICAgICBAaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tcG9zaXRpb24gPT0gXCJsZWZ0XCIge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tcG9zaXRpb24gPT0gXCJyaWdodFwiIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLXR5cGUsICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC1pY29uLXBvcyk7XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKCR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLXR5cGUsICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC1pY29uLXBvcyk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbigkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC10eXBlLCAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtaWNvbi1wb3MpO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tZXNzYWdlcyB7XG4gICAgICAgIHBhZGRpbmc6IDAgMnJlbTtcbiAgICB9XG5cbiAgICAmLW9mZmNhbnZhc19fd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtd3JhcHBlcjtcbiAgICB9XG59XG5cbkBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIGFuZCAkbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsIHtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAuI3skbnN9bWluaWNhcnRfX2Nhcm91c2VsIHtcbiAgICAgICAgJHJvb3Q6ICY7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTA7XG5cbiAgICAgICAgJi1jb250YWluZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAjeyRyb290fS13cmFwcGVyLS1yZWFkeSAmIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IGNhbGMoI3skbWluaWNhcnRfd2lkdGh9ICsgI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmd9ICsgMnJlbSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtICgjeyRtaW5pY2FydF93aWR0aH0gKyAoMiAqICN7JG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nfSkpKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTIwcmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9bGFwdG9wXCIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMi41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fbmF2IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWxvYWRpbmcsXG4gICAgICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGF0LXJvb3QgLmRyYXdlci0tdmlzaWJsZSAmIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5taW5pY2FydC1vZmZjYW52YXMtb3BlbiAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA4MHZoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICByaWdodDogY2FsYygjeyRtaW5pY2FydF93aWR0aH0gKyAoMiAqICN7JG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nfSkpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gKCN7JG1pbmljYXJ0X3dpZHRofSArICg0ICogI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmd9KSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbiA9PSAndG9wJyB7XG4gICAgICAgICAgICAgICAgdG9wOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uLW9mZnNldDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uID09ICdib3R0b20nIHtcbiAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgYm90dG9tOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uLW9mZnNldDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skbnN9aGVhZGxpbmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmcgMCAwO1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1zcGlubmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwaW5uZXItc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGlubmVyLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmcgMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXRyYW5zaXRpb247XG5cbiAgICAgICAgICAgICN7JHJvb3R9LXdyYXBwZXItLWxvYWRpbmcgJiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyRuc31wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG59IEBlbHNlIHtcbiAgICAuI3skbnN9bWluaWNhcnRfX2Nhcm91c2VsIHtcbiAgICAgICAgJi1zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpZiAkbWluaWNhcnQtb2ZmY2FudmFzICE9IHRydWUge1xuICAgIC5taW5pY2FydC13cmFwcGVyIHtcbiAgICAgICAgLnVpLWRpYWxvZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgei1pbmRleDogOTk5OTk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oZWlnaHQtZGVza3RvcCA+ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wTGdcIikge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSAtICgoI3skZ2xvYmFsX2hlYWRlci1oZWlnaHQtZGVza3RvcH0gLSAjeyRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXR9KSAvIDIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYmxvY2stbWluaWNhcnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1pbmljYXJ0X2JhY2tncm91bmQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkbWluaWNhcnRfYm94LXNoYWRvdztcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAzMXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAycmVtO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRtaW5pY2FydF93aWR0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1pbmljYXJ0X2JhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgIHRvcDogLTAuOHJlbTtcbiAgICAgICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDQuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IEBlbHNlIHtcbiAgICAubWluaWNhcnQtd3JhcHBlciB7XG4gICAgICAgIC51aS1kaWFsb2cge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC5kcmF3ZXItLXZpc2libGUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi5jcy1taW5pY2FydC1wcm9kdWN0IHtcbiAgZGlzcGxheTogZmxleDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faW1hZ2UtY29udGFpbmVyIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faW1hZ2UtY29udGFpbmVyIGltZyB7XG4gICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2ltYWdlIHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vdmVydmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fZGV0YWlscyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2JyYW5kLXdyYXBwZXIge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2JyYW5kIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBjb2xvcjogIzg4ODsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fbmFtZS13cmFwcGVyIHtcbiAgICBmbGV4LWJhc2lzOiA1NSU7XG4gICAgcGFkZGluZy1ib3R0b206IDEuMnJlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgZmxleC1iYXNpczogNzAlOyB9IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19uYW1lOnZpc2l0ZWQsIC5jcy1taW5pY2FydC1wcm9kdWN0X19uYW1lOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19pdGVtLXByaWNpbmcge1xuICAgIG9yZGVyOiAzOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2Uge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlLWxhYmVsLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1zdWJ0aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGVbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLCAwLjY2LCAwLjMyLCAwLjk5KTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbi10b3A6IC0wLjRyZW07XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWdyb3VwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtZ3JvdXAtLXF0eSB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXdyYXBwZXIgKyAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1ncm91cC0tcXR5IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1sYWJlbDphZnRlciB7XG4gICAgICBjb250ZW50OiAnOic7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjODg4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy12YWx1ZV9fdmFsdWUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy12YWx1ZV9fdmFsdWUgLnByaWNlIHtcbiAgICAgICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDEuMnJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLXdyYXBwZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHksXG4gIC5jcy1taW5pY2FydC1wcm9kdWN0IC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMCA5cmVtO1xuICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dCB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNC44cmVtO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGhlaWdodDogM3JlbTtcbiAgICB3aWR0aDogNHJlbTtcbiAgICBtYXgtd2lkdGg6IDRyZW07XG4gICAgZm9udC1zaXplOiAxLjJyZW07IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggNnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0Lm1hZ2UtZXJyb3IsIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmYwMDE4OyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dC5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAzcmVtO1xuICAgIGhlaWdodDogM3JlbTtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjp2aXNpdGVkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uW2Rpc2FibGVkXSwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uLXNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uLWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjFlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uOmhvdmVyIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyAqLFxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uOmhvdmVyIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24taWNvbiAqLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZTpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKixcbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGU6aG92ZXIgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1pY29uICoge1xuICAgIGZpbGw6ICMxNDJiOWU7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1pY29uIHtcbiAgICB3aWR0aDogMS42cmVtO1xuICAgIGhlaWdodDogMS42cmVtO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLWljb24gKiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnICoge1xuICAgIGZpbGw6ICMzMjRkY2Y7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZTpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKiB7XG4gICAgZmlsbDogIzIxMjEyMTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKiB7XG4gICAgZmlsbDogIzIxMjEyMTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1taW5pY2FydC1wcm9kdWN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGdhcDogMCAzcmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19pbWFnZS1jb250YWluZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19pbWFnZS1jb250YWluZXIgaW1nIHtcbiAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faW1hZ2Uge1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX292ZXJ2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGdhcDogM3B4OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19kZXRhaWxzIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fbmFtZS13cmFwcGVyIHtcbiAgICBmbGV4LWJhc2lzOiA1NSU7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19uYW1lLXdyYXBwZXIge1xuICAgICAgICBmbGV4LWJhc2lzOiA3MCU7IH0gfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1ncm91cCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogLTVweDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy13cmFwcGVyIHtcbiAgICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWU6dmlzaXRlZCwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWU6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6ICMzMzMzMzM7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3NrdS13cmFwcGVyIHtcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZSB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBjb2xvcjogIzIxMjEyMTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2Utd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNHJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXg6OmJlZm9yZSxcbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKSBcIjpcIjtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCAucHJpY2UsXG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGZvbnQtc2l6ZTogMS44cmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAxLjJyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi13cmFwcGVyIHtcbiAgICBtYXJnaW4tbGVmdDogM3JlbTtcbiAgICBtYXJnaW4tdG9wOiAxLjRyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eSxcbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3QgLmNzLXF0eS1pbmNyZW1lbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAwIDlyZW07XG4gICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eSxcbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0IC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxcmVtOyB9IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1sYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0IHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0LjhyZW07XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgaGVpZ2h0OiA0LjhyZW07XG4gICAgd2lkdGg6IDhyZW07XG4gICAgbWF4LXdpZHRoOiA4cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dC5tYWdlLWVycm9yLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAxODsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQucmVxdWlyZWQtZW50cnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uW2Rpc2FibGVkXSwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246dmlzaXRlZCB7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogNC44cmVtO1xuICAgIGhlaWdodDogNC44cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbi1pY29uICosIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOnZpc2l0ZWQtaWNvbiAqIHtcbiAgICAgIGZpbGw6ICNmZmZmZmY7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b24tc3BhbiB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b24taWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS42cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuMWVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb246aG92ZXIgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnICosXG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb246aG92ZXIgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1pY29uICosIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlOmhvdmVyIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyAqLFxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZTpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLWljb24gKiB7XG4gICAgZmlsbDogI2EyMDEwOTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLWljb24ge1xuICAgIHdpZHRoOiAyLjRyZW07XG4gICAgaGVpZ2h0OiAyLjRyZW07XG4gICAgd2lkdGg6IDIuNHJlbTtcbiAgICBoZWlnaHQ6IDIuNHJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLWljb24gKiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnICoge1xuICAgIGZpbGw6ICMzMzMzMzM7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZTpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKiB7XG4gICAgZmlsbDogIzg3ODc4NzsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKiB7XG4gICAgZmlsbDogIzMzMzMzMzsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcblxuJG1pbmljYXJ0LW9mZmNhbnZhczogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19DaGVja291dCxcbiAgICBtaW5pY2FydF9vZmZjYW52YXMsXG4gICAgZW5hYmxlZFxuKSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yLWhvdmVyOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yLS1ob3ZlcjogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtcHJvZHVjdF9icmFuZC1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9icmFuZC1hbGlnbm1lbnQ6IGxlZnQgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0X292ZXJ2aWV3LWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1wYWRkaW5nOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9uYW1lLWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnMtdGl0bGUtY29sb3I6ICRjb2xvcl90ZXh0LTYwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWxhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLXZhbHVlLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zX3RvZ2dsZS1wYWRkaW5nOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdC1vcHRpb25zX3RvZ2dsZS1kaXNhYmxlOiBmYWxzZSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0LW9wdGlvbnMtdGl0bGUtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9vcHRpb25zLXRpdGxlLWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X29wdGlvbnMtbGFiZWwtZm9udC1zaXplOiAxLjFyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy1sYWJlbC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0LW9wdGlvbnMtbGFiZWwtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLXNpemU6IDJyZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0X3ByaWNlLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0X3F0eS1lbmFibGU6IHRydWUgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9xdHktaGVpZ2h0OiAzcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3M6ICdvbmx5LWljb24nICFkZWZhdWx0O1xuXG4uI3skbnN9bWluaWNhcnQtcHJvZHVjdCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgJl9faW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAmX19vdmVydmlldyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgfVxuXG4gICAgJl9fZGV0YWlscyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2JyYW5kLXdyYXBwZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiAkbWluaWNhcnQtcHJvZHVjdF9icmFuZC1hbGlnbm1lbnQ7XG4gICAgfVxuXG4gICAgJl9fYnJhbmQge1xuICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWNvbG9yO1xuICAgIH1cblxuICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDU1JTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRtaW5pY2FydC1wcm9kdWN0X25hbWUtcGFkZGluZztcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDcwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX25hbWUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9uYW1lLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1mb250LXdlaWdodDtcblxuICAgICAgICAmOnZpc2l0ZWQsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X25hbWUtY29sb3ItaG92ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtLXByaWNpbmcge1xuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBvcmRlcjogMztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3ByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3Rfb3ZlcnZpZXctZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9wcmljZS1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3Rfb3ZlcnZpZXctZm9udC1zaXplO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wcmljZS1sYWJlbCxcbiAgICAmX19vcHRpb25zLXN1YnRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmX19vcHRpb25zLXRpdGxlIHtcbiAgICAgICAgQGlmICgkbWluaWNhcnQtcHJvZHVjdC1vcHRpb25zX3RvZ2dsZS1kaXNhYmxlKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy1mb250LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3Qtb3B0aW9ucy10aXRsZS1jb2xvcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJlthcmlhLWV4cGFuZGVkPSd0cnVlJ10ge1xuICAgICAgICAgICAgICAgID4gI3skcm9vdH1fX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Rfb3B0aW9ucy10aXRsZS1mb250LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0LW9wdGlvbnMtdGl0bGUtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWVcbiAgICAgICAgICAgICR0cmFuc2l0aW9uLWVhc2luZ19zbG93ZG93bi05MDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IC0wLjRyZW07XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnNfdG9nZ2xlLXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zLWdyb3VwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAmLS1xdHkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fb3B0aW9ucy13cmFwcGVyICsgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy1jb250ZW50IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGlmICgkbWluaWNhcnQtcHJvZHVjdC1vcHRpb25zX3RvZ2dsZS1kaXNhYmxlKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtbGFiZWwge1xuICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy1sYWJlbC1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJzonO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Rfb3B0aW9ucy1sYWJlbC1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0LW9wdGlvbnMtbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBjb2xvcjogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0LW9wdGlvbnMtbGFiZWwtY29sb3I7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy12YWx1ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLXZhbHVlLWNvbG9yO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX192YWx1ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X3ByaWNlLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zX3RvZ2dsZS1wYWRkaW5nO1xuICAgIH1cblxuICAgICZfX2FjdGlvbi13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgfVxuXG4gICAgQGlmICgkbWluaWNhcnQtcHJvZHVjdF9xdHktZW5hYmxlKSB7XG4gICAgICAgICZfX3F0eSxcbiAgICAgICAgLmNzLXF0eS1pbmNyZW1lbnQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXg6IDEgMCA5cmVtO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1oZWlnaHQ7XG4gICAgICAgICAgICB3aWR0aDogNHJlbTtcbiAgICAgICAgICAgIG1heC13aWR0aDogNHJlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWZvbnQtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1oZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWJ1dHRvbi1zcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWJ1dHRvbi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICZfX3F0eSxcbiAgICAgICAgLmNzLXF0eS1pbmNyZW1lbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbixcbiAgICAmX19vcHRpb25zLXRpdGxlIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAjeyRyb290fV9fb3B0aW9ucy10aXRsZS1zdmcsXG4gICAgICAgICAgICAjeyRyb290fV9fYWN0aW9uLWljb24ge1xuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkbWluaWNhcnQtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb24taWNvbiB7XG4gICAgICAgIHdpZHRoOiAxLjZyZW07XG4gICAgICAgIGhlaWdodDogMS42cmVtO1xuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHdpZHRoOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLXNpemU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb24taWNvbixcbiAgICAmX19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICAgICoge1xuICAgICAgICAgICAgZmlsbDogJG1pbmljYXJ0LXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb24tbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICZfX29wdGlvbnMtdGl0bGUge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3ItLWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIn5DcmVhdGl2ZXNob3AvY29tcG9uZW50cy9taW5pY2FydC1wcm9kdWN0L21pbmljYXJ0LXByb2R1Y3Quc2Nzc1wiO1xuQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcblxuJG1pbmljYXJ0LXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kbWluaWNhcnQtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvci1ob3ZlcjogJGttYV9jb2xvcl9wcmltYXJ5LTUwMDtcbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1zaXplOiAka21hX2ljb25fc2l6ZS01MDA7XG5cbiRtaW5pY2FydC1wcm9kdWN0X3Jvdy1saW5lLWhlaWdodDogMjRweDtcblxuJG1pbmljYXJ0LXByb2R1Y3Rfb3ZlcnZpZXctZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiRtaW5pY2FydC1wcm9kdWN0X25hbWUtY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kbWluaWNhcnQtcHJvZHVjdF9uYW1lLWNvbG9yLWhvdmVyOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1wYWRkaW5nOiAwO1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1mb250LXdlaWdodDogNzAwO1xuXG4kbWluaWNhcnQtcHJvZHVjdF9xdHktd2lkdGg6IDhyZW07XG4kbWluaWNhcnQtcHJvZHVjdF9xdHktaGVpZ2h0OiA0LjhyZW07XG5cbi4jeyRuc31taW5pY2FydC1wcm9kdWN0IHtcbiAgICAkcm9vdDogJjtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbGluZS1oZWlnaHQ6ICRtaW5pY2FydC1wcm9kdWN0X3Jvdy1saW5lLWhlaWdodDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGdhcDogMCAzcmVtO1xuXG4gICAgJl9faW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAmX19vdmVydmlldyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgIGdhcDogM3B4O1xuICAgIH1cblxuICAgICZfX2RldGFpbHMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICBmbGV4LWJhc2lzOiA1NSU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkbWluaWNhcnQtcHJvZHVjdF9uYW1lLXBhZGRpbmc7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3Rfb3ZlcnZpZXctZm9udC1zaXplO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDcwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogLTVweDtcbiAgICB9XG5cbiAgICAmX19vcHRpb25zLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJl9fbmFtZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9uYW1lLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1mb250LXdlaWdodDtcblxuICAgICAgICAmOnZpc2l0ZWQsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X25hbWUtY29sb3ItaG92ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NrdS13cmFwcGVyIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNHJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsO1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgIH1cblxuICAgICZfX3ByaWNlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3Rfb3ZlcnZpZXctZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9wcmljZS1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCxcbiAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKSBcIjpcIjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaC0tc21hbGw7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zX3RvZ2dsZS1wYWRkaW5nO1xuICAgIH1cblxuICAgICZfX2FjdGlvbi13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDNyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDEuNHJlbTtcbiAgICB9XG5cbiAgICBAaWYgKCRtaW5pY2FydC1wcm9kdWN0X3F0eS1lbmFibGUpIHtcbiAgICAgICAgJl9fcXR5LFxuICAgICAgICAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleDogMSAwIDlyZW07XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWlucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG5cbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWhlaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktd2lkdGg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS13aWR0aDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWZvbnQtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktYnV0dG9uLXR5cGUsICRpY29uX3BvczogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi1pY29uLXBvcyk7XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQuOHJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktYnV0dG9uLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktYnV0dG9uLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJl9fcXR5LFxuICAgICAgICAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLFxuICAgICZfX29wdGlvbnMtdGl0bGUge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19vcHRpb25zLXRpdGxlLXN2ZyxcbiAgICAgICAgICAgICN7JHJvb3R9X19hY3Rpb24taWNvbiB7XG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRrbWFfY29sb3Jfc2Vjb25kYXJ5LTgwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb24taWNvbiB7XG4gICAgICAgIHdpZHRoOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tc2l6ZTtcblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICB3aWR0aDogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1zaXplO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLWljb24sXG4gICAgJl9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICAqIHtcbiAgICAgICAgICAgIGZpbGw6ICRtaW5pY2FydC1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAmX19vcHRpb25zLXRpdGxlIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICN7JHJvb3R9X19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJG1pbmljYXJ0LXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbiAgcGFkZGluZzogMS41cmVtIDJyZW0gMnJlbTtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5jcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvcl9fY2VsbCB7XG4gIHBhZGRpbmctdG9wOiAxLjRyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxLjRyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuXG4uY3MtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfX3RvdGFsLWxlZnQtdGV4dCBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4uY3MtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfX3RvdGFsLWZ1bGZpbGxlZCB7XG4gIHBhZGRpbmctbGVmdDogMi44cmVtO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi1zdWNjZXNzLnN2Z1wiKSAwIDUwJSBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMnJlbTsgfVxuXG4uY3MtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfX2Jhci13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uY3MtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfX2Jhci1sYWJlbCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogIzM3Yjg0MTtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAuY3MtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfX2Jhci1sYWJlbC0tc3RhcnQge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAuY3MtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfX2Jhci1sYWJlbC0tZW5kIHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuXG4uY3MtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfX2JhciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDJyZW07XG4gIHBhZGRpbmc6IDAuNHJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2IwYjBiMDtcbiAgYm9yZGVyLXJhZGl1czogMzMuNnB4OyB9XG5cbi5jcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvcl9fYmFyLXByb2dyZXNzLXdyYXBwZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAyNHB4OyB9XG5cbi5jcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvcl9fYmFyLXByb2dyZXNzIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMDtcbiAgYmFja2dyb3VuZDogIzM3Yjg0MTtcbiAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC41NXMgY3ViaWMtYmV6aWVyKDAsIDAuNjYsIDAuMzIsIDAuOTkpOyB9XG5cbi5jcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvcl9faWNvbiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMy40cmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIG1hcmdpbjogMCAwIDAgMi41cmVtO1xuICBmaWxsOiAjODg4O1xuICB0cmFuc2l0aW9uOiBmaWxsIDAuM3M7IH1cbiAgLmNzLWZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX19iYXItd3JhcHBlci0tZnJlZS1zaGlwcGluZy1hY3RpdmUgLmNzLWZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX19pY29uIHtcbiAgICBmaWxsOiAjMzdiODQxOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX3BhZGRpbmc6IDEuNXJlbSAycmVtIDJyZW0gIWRlZmF1bHQ7XG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3Jfc2VwYXJhdG9yOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9wcmljZS1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuXG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfZnVsZmlsbGVkLWljb24tdXJsOiAnLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24tc3VjY2Vzcy5zdmcnICFkZWZhdWx0O1xuJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Z1bGZpbGxlZC1pY29uLXNpemU6IDJyZW0gIWRlZmF1bHQ7IC8vIGJhY2tncm91bmQtc2l6ZSBmb3JtYXQgKDJyZW0gMXJlbSBvciAycmVtID09PSAycmVtIDJyZW0pXG5cbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItbGFiZWwtY29sb3I6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItbGFiZWwtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItbGFiZWwtc3BhY2luZzogMXJlbSAhZGVmYXVsdDtcblxuJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLXBhZGRpbmc6IDAuNHJlbSAhZGVmYXVsdDtcbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX3NpbHZlci1jaGFsaWNlICFkZWZhdWx0O1xuJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICogMS40ICFkZWZhdWx0O1xuXG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLXByb2dyZXNzLXdyYXBwZXItYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLXByb2dyZXNzLWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItcHJvZ3Jlc3MtdHJhbnNpdGlvbjogd2lkdGggMC41NXNcbiAgICAkdHJhbnNpdGlvbi1lYXNpbmdfc2xvd2Rvd24tOTAwICFkZWZhdWx0O1xuXG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfaWNvbi13aWR0aDogMy40cmVtICFkZWZhdWx0O1xuJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2ljb24taGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2ljb24tbWFyZ2luOiAwIDAgMCAyLjVyZW0gIWRlZmF1bHQ7XG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfaWNvbi1jb2xvcjogJGNvbG9yX2dyYXkgIWRlZmF1bHQ7XG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfaWNvbi1jb2xvci0tZnJlZS1zaGlwcGluZy1hcHBsaWVkOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31mcmVlLXNoaXBwaW5nLWluZGljYXRvciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgYm9yZGVyLXRvcDogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX3NlcGFyYXRvcjtcbiAgICAgICAgcGFkZGluZzogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX3BhZGRpbmc7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC01MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2ZvbnQtc2l6ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICAmX19jZWxsIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEuNHJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuNHJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICZfX3RvdGFsLWxlZnQtdGV4dCB7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RvdGFsLWZ1bGZpbGxlZCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMi44cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Z1bGZpbGxlZC1pY29uLXVybCkgMCA1MCVcbiAgICAgICAgICAgIG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfZnVsZmlsbGVkLWljb24tc2l6ZTtcbiAgICB9XG5cbiAgICAmX19iYXItd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fYmFyLWxhYmVsIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGNvbG9yOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLWxhYmVsLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1sYWJlbC1mb250LXdlaWdodDtcblxuICAgICAgICAmLS1zdGFydCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItbGFiZWwtc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVuZCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1sYWJlbC1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1oZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6ICRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItcGFkZGluZztcbiAgICAgICAgYm9yZGVyOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1ib3JkZXItcmFkaXVzO1xuICAgIH1cblxuICAgICZfX2Jhci1wcm9ncmVzcy13cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLXByb2dyZXNzLXdyYXBwZXItYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1wcm9ncmVzcy1ib3JkZXItcmFkaXVzO1xuICAgIH1cblxuICAgICZfX2Jhci1wcm9ncmVzcyB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItcHJvZ3Jlc3MtYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1wcm9ncmVzcy1ib3JkZXItcmFkaXVzO1xuICAgICAgICB0cmFuc2l0aW9uOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLXByb2dyZXNzLXRyYW5zaXRpb247XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICB3aWR0aDogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2ljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2ljb24taGVpZ2h0O1xuICAgICAgICBtYXJnaW46ICRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9pY29uLW1hcmdpbjtcbiAgICAgICAgZmlsbDogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2ljb24tY29sb3I7XG4gICAgICAgIHRyYW5zaXRpb246IGZpbGwgJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lO1xuXG4gICAgICAgICN7JHJvb3R9X19iYXItd3JhcHBlci0tZnJlZS1zaGlwcGluZy1hY3RpdmUgJiB7XG4gICAgICAgICAgICBmaWxsOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfaWNvbi1jb2xvci0tZnJlZS1zaGlwcGluZy1hcHBsaWVkO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4ubW9kYWwtc2xpZGUuY29uZmlybSAubW9kYWwtaW5uZXItd3JhcCxcbi5tb2RhbC1wb3B1cC5jb25maXJtIC5tb2RhbC1pbm5lci13cmFwLFxuLm1vZGFsLWN1c3RvbS5jb25maXJtIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgbWF4LXdpZHRoOiA1MHJlbTsgfVxuXG4ubW9kYWwtc2xpZGUgLm1vZGFsLWlubmVyLXdyYXAsXG4ubW9kYWwtcG9wdXAgLm1vZGFsLWlubmVyLXdyYXAsXG4ubW9kYWwtY3VzdG9tIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMXB4IDNweCAzcmVtIDAgcmdiYSgzMywgMzMsIDMzLCAwLjI4KTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtY29udGVudCxcbi5tb2RhbC1wb3B1cCAubW9kYWwtY29udGVudCxcbi5tb2RhbC1jdXN0b20gLm1vZGFsLWNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gIGZvbnQtc2l6ZTogMS42cmVtOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtaGVhZGVyLFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1oZWFkZXIsXG4ubW9kYWwtY3VzdG9tIC5tb2RhbC1oZWFkZXIge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cblxuLm1vZGFsLXNsaWRlIC5hY3Rpb24tY2xvc2UsXG4ubW9kYWwtcG9wdXAgLmFjdGlvbi1jbG9zZSxcbi5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBtYXJnaW46IDEuNXJlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Nsb3NlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDFyZW0gMXJlbTtcbiAgd2lkdGg6IDNyZW07XG4gIGhlaWdodDogM3JlbTsgfVxuICAubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZSBzcGFuLFxuICAubW9kYWwtcG9wdXAgLmFjdGlvbi1jbG9zZSBzcGFuLFxuICAubW9kYWwtY3VzdG9tIC5hY3Rpb24tY2xvc2Ugc3BhbiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZTpiZWZvcmUsXG4gIC5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlOmJlZm9yZSxcbiAgLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlOmJlZm9yZSB7XG4gICAgY29udGVudDogbm9uZTsgfVxuXG4ubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3Rlcixcbi5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyLFxuLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIHtcbiAgcGFkZGluZzogMnJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH0gfVxuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnkge1xuICAgIG1pbi13aWR0aDogMTJyZW07IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnlbZGlzYWJsZWRdLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZFtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZFtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnlbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSBzcGFuLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5IHNwYW4sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5IHNwYW4sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnkgc3BhbixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5IHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5IHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LFxuICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHtcbiAgICBtaW4td2lkdGg6IDEycmVtOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHotaW5kZXg6IDU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5W2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeVtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5W2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5W2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfSB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbixcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHNwYW4sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5IHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgc3BhbiB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkge1xuICAgICAgbWluLXdpZHRoOiAxMnJlbTsgfVxuICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5W2Rpc2FibGVkXSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkW2Rpc2FibGVkXSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5W2Rpc2FibGVkXSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkW2Rpc2FibGVkXSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeVtkaXNhYmxlZF0sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSBzcGFuLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHNwYW4sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5IHNwYW4sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgc3BhbiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5IHNwYW4sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQsXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCB7XG4gICAgbWluLXdpZHRoOiAxMnJlbTsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQsIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWQsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkW2Rpc2FibGVkXSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZFtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZFtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZFtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQgc3BhbixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCBzcGFuLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtdGl0bGUsXG4ubW9kYWwtcG9wdXAgLm1vZGFsLXRpdGxlLFxuLm1vZGFsLWN1c3RvbSAubW9kYWwtdGl0bGUge1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDIuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtO1xuICBwYWRkaW5nOiAycmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgbWFyZ2luOiAwOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5tb2RhbC1wb3B1cC5tb2RhbC1zbGlkZSAubW9kYWwtaW5uZXItd3JhcFtjbGFzc10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeSB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH0gfVxuXG4ucGFnZS1sYXlvdXQtY2hlY2tvdXQgLm1vZGFsLXBvcHVwIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnBhZ2UtbGF5b3V0LWNoZWNrb3V0IC5tb2RhbC1zbGlkZSB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBtYXgtd2lkdGg6IDY1cmVtO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH0gfVxuXG4ubW9kYWxzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7IH1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRtb2RhbF90aXRsZS1mb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtMyAhZGVmYXVsdDtcbiRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcbiRtb2RhbF9pbnNpZGUtYm9yZGVyczogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJG1vZGFsX2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRtb2RhbF9zbGlkZS1tb2JpbGUtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJG1vZGFsX2JveC1zaGFkb3c6ICRib3gtc2hhZG93X2Jhc2UgIWRlZmF1bHQ7XG4kbW9kYWxfYm9yZGVyLXJhZGl1czogMCAhZGVmYXVsdDtcbiRtb2RhbC1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kbW9kYWxfdGV4dC1mb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoICFkZWZhdWx0O1xuJG1vZGFsX3ByaW1hcnktYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJG1vZGFsX3ByaW1hcnktYnV0dG9uLWljb24tcG9zOiAnbm8taWNvbicgIWRlZmF1bHQ7XG4kbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zOiAnbm8taWNvbicgIWRlZmF1bHQ7XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblxuLm1vZGFsLXNsaWRlLFxuLm1vZGFsLXBvcHVwLFxuLm1vZGFsLWN1c3RvbSB7XG4gICAgJi5jb25maXJtIHtcbiAgICAgICAgLm1vZGFsLWlubmVyLXdyYXAge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA1MHJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgICAgICAgYmFja2dyb3VuZDogJG1vZGFsX2JhY2tncm91bmQ7XG4gICAgICAgIGJveC1zaGFkb3c6ICRtb2RhbF9ib3gtc2hhZG93O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbW9kYWxfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm9yZGVyOiAkbW9kYWwtYm9yZGVyO1xuICAgIH1cblxuICAgIC5tb2RhbC1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICBmb250LXNpemU6ICRtb2RhbF90ZXh0LWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAubW9kYWwtaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5hY3Rpb24tY2xvc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbWFyZ2luOiAxLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL2Nsb3NlLnN2ZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMXJlbSAxcmVtO1xuICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgaGVpZ2h0OiAzcmVtO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1vZGFsLWZvb3RlciB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIGJvcmRlci10b3A6ICRtb2RhbF9pbnNpZGUtYm9yZGVycztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24tcHJpbWFyeSxcbiAgICAgICAgLnByaW1hcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfcHJpbWFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfcHJpbWFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfcHJpbWFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi1zZWNvbmRhcnksXG4gICAgICAgIC5zZWNvbmRhcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEycmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zcGFuKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3NlY29uZGFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFN0eWxlIGZvciBjaGVja291dCBtb2RhbHMgaGF2ZSB2ZXJ5IGhpZ2ggc3BlY2lmaWNpdHkgaW4gbWFnZW50b1xuICAgICAgICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDEycmVtO1xuXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zcGFuKFxuICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uOm9ubHktY2hpbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfcHJpbWFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zcGFuKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3ByaW1hcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3ByaW1hcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tb2RhbC10aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJG1vZGFsX3RpdGxlLWZvbnQtc2l6ZSk7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRtb2RhbF9pbnNpZGUtYm9yZGVycztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLm1vZGFsLXBvcHVwLm1vZGFsLXNsaWRlIHtcbiAgICAubW9kYWwtaW5uZXItd3JhcFtjbGFzc10ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtb2RhbF9zbGlkZS1tb2JpbGUtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1vZGFsLXNsaWRlIHtcbiAgICAubW9kYWwtZm9vdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi1wcmltYXJ5LFxuICAgICAgICAucHJpbWFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgICAgLnNlY29uZGFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wYWdlLWxheW91dC1jaGVja291dCB7XG4gICAgLm1vZGFsLXBvcHVwIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuXG4gICAgLm1vZGFsLXNsaWRlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogNjVyZW07XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5tb2RhbHMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1vZGFsc19vdmVybGF5LWJhY2tncm91bmQ7XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2ZpZ3VyZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9faW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiA2cmVtIDNyZW07IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogIzIxMjEyMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9faGVhZGxpbmUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBmb250LXNpemU6IDNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogIzIxMjEyMTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9faGVhZGxpbmUge1xuICAgICAgZm9udC1zaXplOiA0LjNyZW07XG4gICAgICBsaW5lLWhlaWdodDogMTsgfSB9XG5cbi5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fc3ViaGVhZGxpbmUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBmb250LXNpemU6IDEuNjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzIxMjEyMTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fc3ViaGVhZGxpbmUge1xuICAgICAgZm9udC1zaXplOiAyLjhyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4yNTsgfSB9XG5cbi5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fdGV4dCB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGNvbG9yOiAjMjEyMTIxOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLW5hdmlnYXRpb24tdGVhc2VyX190ZXh0IHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX19jdGEge1xuICBtYXJnaW4tdG9wOiAycmVtOyB9XG5cbi5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b24sIC5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fYnV0dG9uOnZpc2l0ZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gIC5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fYnV0dG9uOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b25bZGlzYWJsZWRdLCAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuXG4uY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbi1zcGFuIHtcbiAgZm9udC1zaXplOiAxLjZyZW07IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b24taWNvbiB7XG4gIG1heC13aWR0aDogMWVtO1xuICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gIHotaW5kZXg6IDI7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuXG4kdGVhc2VyX2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiR0ZWFzZXJfYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbi4jeyRuc31uYXZpZ2F0aW9uLXRlYXNlciB7XG4gICAgJl9fZmlndXJlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmX19jb250ZW50LXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogNnJlbSAzcmVtO1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfbWluZXNoYWZ0O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9faGVhZGxpbmUge1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogJGNvbG9yX21pbmVzaGFmdDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDQuM3JlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3ViaGVhZGxpbmUge1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgICAgICBmb250LXNpemU6IDEuNjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBjb2xvcjogJGNvbG9yX21pbmVzaGFmdDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuOHJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfbWluZXNoYWZ0O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY3RhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJHRlYXNlcl9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJHRlYXNlcl9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24tc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICR0ZWFzZXJfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICR0ZWFzZXJfYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkdGVhc2VyX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkdGVhc2VyX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogVXNpbmcgcHN1ZWRvIGVsZW1lbnRzIHRvIG1haW50YWluIGFuIGVsZW1lbnRzIGFzcGVjdCByYXRpbywgZXZlbiBhcyBpdCBzY2FsZXNcbiAqIEl0J3MgdXNpbmcgb25seSBmb3IgSUUxMSBhbmQgRWRnZSAodmVyc2lvbiB3aGljaCBkb2Vzbid0IHN1cHBvcnQgbmF0aXZlIENTUyBncmlkKSBicm93c2Vyc1xuICogRm9yIGJyb3dzZXJzIHdoaWNoIHN1cHBvcnQgbmF0aXZlIENTUyBncmlkLCB3ZSBhcmUgdXNpbmcgbWl4aW5zIGNvbnRhaW4gYHJlc2V0YCBpbiBtaXhpbiBuYW1lXG4gKiB0byBvdmVycmlkZSBkZWZhdWx0IG1peGlucyAocHJvZ3Jlc3NpdmUgZW5oYW5jZW1lbnQpXG4gKiBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL3Nhc3MvbWFpbnRhaW4tYXNwZWN0LXJhdGlvLW1peGluL1xuICogQHBhcmFtIHtudW1iZXJ9ICR3aWR0aDogd2lkdGggb2YgdGhlIGVsZW1lbnQ7XG4gKiBAcGFyYW0ge251bWJlcn0gJGhlaWdodDogaGVpZ2h0IG9mIHRoZSBlbGVtZW50O1xuICogQHBhcmFtIHtzdHJpbmd9ICRjb250ZW50Q2xhc3M6IGNsYXNzIG9mIHRoZSBkaXJlY3QgY2hpbGQgZWxlbWVudCB0byBiZSBwb3NpdGlvbmVkIGFic29sdXRlbHk7XG4gKiBAcGFyYW0ge2Jvb2xlYW59ICRhdXRvcG9zaXRpb246IHRlbGxzIGlmIGl0ZW0gc2hhbGwgdGFrZSAxMDAlIG9mIHBhcmVudCBzaXplIG9yIGlmIGl0IGNhbiBiZSB3aWRlci9oaWdoZXIgaWYgbmVlZGVkO1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1uYXZpZ2F0aW9uIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5jcy1uYXZpZ2F0aW9uX19saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2xpc3QtLW1haW4ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2xpc3QtLWFsbC1jYXRlZ29yaWVzIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgY29sdW1uczogYXV0byAxO1xuICAgICAgY29sdW1uLWdhcDogMDtcbiAgICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzEge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjb2x1bW5zOiBhdXRvIDE7XG4gICAgICBjb2x1bW4tZ2FwOiAwO1xuICAgICAgZmxleDogMSAwIGF1dG87IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMiB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fbGlzdC0taGlkZGVuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5jcy1uYXZpZ2F0aW9uX19saXN0LS1oaWRkZW4gKyAuY3MtbmF2aWdhdGlvbl9fZXh0cmFzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19saXN0IC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1uby1jaGlsZHJlbjpudGgtY2hpbGQoMikge1xuICAgICAgcGFkZGluZy10b3A6IDFyZW07IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fbGlzdCAuY3MtbmF2aWdhdGlvbl9faXRlbS0tbm8tY2hpbGRyZW46bGFzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOyB9XG4gIC5jcy1uYXZpZ2F0aW9uX19pdGVtIHtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1hY3RpdmU6bm90KFtkYXRhLWNhdGVnb3J5LWlkZW50aWZpZXI9J2FsbC1jYXRlZ29yaWVzJ10pID4gLmNzLW5hdmlnYXRpb25fX2xpbmssIC5jcy1uYXZpZ2F0aW9uX19pdGVtLmFjdGl2ZTpub3QoW2RhdGEtY2F0ZWdvcnktaWRlbnRpZmllcj0nYWxsLWNhdGVnb3JpZXMnXSkgPiAuY3MtbmF2aWdhdGlvbl9fbGluaywgLmNzLW5hdmlnYXRpb25fX2l0ZW06aG92ZXI6bm90KFtkYXRhLWNhdGVnb3J5LWlkZW50aWZpZXI9J2FsbC1jYXRlZ29yaWVzJ10pID4gLmNzLW5hdmlnYXRpb25fX2xpbmsge1xuICAgICAgY29sb3I6ICMzMjRkY2Y7IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9faXRlbS0tbWFpbiB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGZvbnQtc2l6ZTogMS40ZW07IH1cbiAgICAgIC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1tYWluOmZpcnN0LW9mLXR5cGUgPiAuY3MtbmF2aWdhdGlvbl9fbGluazpub3QoLmNzLW5hdmlnYXRpb25fX2xpbmstLXdpdGgtaWNvbikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAgIC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1tYWluOmxhc3Qtb2YtdHlwZSA+IC5jcy1uYXZpZ2F0aW9uX19saW5rIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1hbGwtY2F0ZWdvcmllcyB7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgLyogVGhlb3JldGljYWxseSBGRiAyMCsgKi9cbiAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAgICAgLyogSUUgMTEgKi9cbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2l0ZW0tLWxldmVsXzEge1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgIC8qIFRoZW9yZXRpY2FsbHkgRkYgMjArICovXG4gICAgICBicmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgICAgIC8qIElFIDExICovXG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1oaWRkZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtbmF2aWdhdGlvbl9fbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nOiAwLjllbSAxLjA1ZW07XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fbGluaywgLmNzLW5hdmlnYXRpb25fX2xpbms6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzQ4NDg0ODsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmOyB9XG4gICAgICAuY3MtbmF2aWdhdGlvbl9fbGluazpob3ZlciAuY3MtbmF2aWdhdGlvbl9fbGluay1pY29uLS1zdmcgcGF0aCB7XG4gICAgICAgIGZpbGw6ICMzMjRkY2Y7IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fbGluay0tbWFpbiB7XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2xpbmstLWFsbC1jYXRlZ29yaWVzIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxLjZlbTsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLS1sZXZlbF8xIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxLjZlbTsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLS1sZXZlbF8yIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgZm9udC1zaXplOiAxLjI1ZW07IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fbGluay0td2l0aC1pY29uIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctbGVmdDogM3JlbTsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLWljb24td3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAwLjhlbTsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLWljb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgd2lkdGg6IDJyZW07IH1cbiAgICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLS1jYXRlZ29yeSAuY3MtbmF2aWdhdGlvbl9fbGluay1pY29uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTsgfVxuICAgICAgLmNzLW5hdmlnYXRpb25fX2xpbmstaWNvbi0tc3ZnIHBhdGgge1xuICAgICAgICBmaWxsOiAjNDg0ODQ4OyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2xpbmstcHJvZHVjdHMtcXR5OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnKCc7IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fbGluay1wcm9kdWN0cy1xdHk6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyknOyB9XG4gIC5jcy1uYXZpZ2F0aW9uIC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1uby1jaGlsZHJlbiB7XG4gICAgcGFkZGluZzogMDsgfVxuICAuY3MtbmF2aWdhdGlvbiAuY3MtbmF2aWdhdGlvbl9faXRlbS0tbm8tY2hpbGRyZW4gPiAuY3MtbmF2aWdhdGlvbl9fbGluay0tbGV2ZWxfMSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjEyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBwYWRkaW5nOiAwLjllbSAxLjVlbTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICM0ODQ4NDg7IH1cbiAgLmNzLW5hdmlnYXRpb25fX2ZseW91dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIGJveC1zaGFkb3c6IDJweCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgbWFyZ2luLXRvcDogLTFweDsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19mbHlvdXQtLXZpc2libGUge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19mbHlvdXQgc3ZnIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAuY3MtbmF2aWdhdGlvbl9fZmx5b3V0IGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbGlzdC1zdHlsZS1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBUUFBQUMxSEF3Q0FBQUFDMGxFUVZSNDJtTmtZQUFBQUFZQUFqQ0IwQzhBQUFBQVNVVk9SSzVDWUlJPSk7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfSB9XG4gIC5jcy1uYXZpZ2F0aW9uX19leHRyYXMge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtbmF2aWdhdGlvbl9fdGVhc2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAxZW0gMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX190ZWFzZXItLWhpZGRlbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX3RlYXNlciAuY3MtaW1hZ2UtdGVhc2VyX19maWd1cmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfVxuICAuY3MtbmF2aWdhdGlvbl9fcHJvZHVjdHMge1xuICAgIHBhZGRpbmc6IDAuNWVtIDFlbTtcbiAgICBtaW4td2lkdGg6IDI0cmVtOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX3Byb2R1Y3RzLWhlYWRlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgICAgcGFkZGluZzogMS4xZW0gMS4wNWVtIDEuNTVlbTtcbiAgICAgIGZvbnQtc2l6ZTogMC45ZW07IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fcHJvZHVjdHMtbGlzdCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuY3MtbmF2aWdhdGlvbl9fcHJvZHVjdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX3Byb2R1Y3Q6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAxNzAlOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX3Byb2R1Y3QgLmNzLXByb2R1Y3QtdGlsZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7IH1cbiAgLmNzLW5hdmlnYXRpb25fX292ZXJsYXkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgM3JlbSwgMCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXIsIHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLCAwLjk3LCAwLjA1LCAwLjk5KTsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19vdmVybGF5LS12aXNpYmxlIHtcbiAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cbiAgLnBhZ2UtcHJpbnQgLmNzLW5hdmlnYXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSBhbmQgKGdyaWQtYXV0by1mbG93OiByb3cpIHtcbiAgICAuY3MtbmF2aWdhdGlvbl9fcHJvZHVjdCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5jcy1uYXZpZ2F0aW9uX19wcm9kdWN0OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgICAgIC5jcy1uYXZpZ2F0aW9uX19wcm9kdWN0IC5jcy1wcm9kdWN0LXRpbGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGJvdHRvbTogYXV0bzsgfSB9XG5cbi5jcy1jb250YWluZXItLW5hdmlnYXRpb24ge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWNvbnRhaW5lci0tbmF2aWdhdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4iLCIvKioqXG4gKiBVc2luZyBwc3VlZG8gZWxlbWVudHMgdG8gbWFpbnRhaW4gYW4gZWxlbWVudHMgYXNwZWN0IHJhdGlvLCBldmVuIGFzIGl0IHNjYWxlc1xuICogSXQncyB1c2luZyBvbmx5IGZvciBJRTExIGFuZCBFZGdlICh2ZXJzaW9uIHdoaWNoIGRvZXNuJ3Qgc3VwcG9ydCBuYXRpdmUgQ1NTIGdyaWQpIGJyb3dzZXJzXG4gKiBGb3IgYnJvd3NlcnMgd2hpY2ggc3VwcG9ydCBuYXRpdmUgQ1NTIGdyaWQsIHdlIGFyZSB1c2luZyBtaXhpbnMgY29udGFpbiBgcmVzZXRgIGluIG1peGluIG5hbWVcbiAqIHRvIG92ZXJyaWRlIGRlZmF1bHQgbWl4aW5zIChwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudClcbiAqIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9tYWludGFpbi1hc3BlY3QtcmF0aW8tbWl4aW4vXG4gKiBAcGFyYW0ge251bWJlcn0gJHdpZHRoOiB3aWR0aCBvZiB0aGUgZWxlbWVudDtcbiAqIEBwYXJhbSB7bnVtYmVyfSAkaGVpZ2h0OiBoZWlnaHQgb2YgdGhlIGVsZW1lbnQ7XG4gKiBAcGFyYW0ge3N0cmluZ30gJGNvbnRlbnRDbGFzczogY2xhc3Mgb2YgdGhlIGRpcmVjdCBjaGlsZCBlbGVtZW50IHRvIGJlIHBvc2l0aW9uZWQgYWJzb2x1dGVseTtcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gJGF1dG9wb3NpdGlvbjogdGVsbHMgaWYgaXRlbSBzaGFsbCB0YWtlIDEwMCUgb2YgcGFyZW50IHNpemUgb3IgaWYgaXQgY2FuIGJlIHdpZGVyL2hpZ2hlciBpZiBuZWVkZWQ7XG4gKi9cblxuQGZ1bmN0aW9uIGdldC1hc3BlY3QtcmF0aW8tcGFkZGluZy12YWx1ZSgkd2lkdGgsICRoZWlnaHQpIHtcbiAgICBAcmV0dXJuICgkaGVpZ2h0IC8gJHdpZHRoKSAqIDEwMCU7XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8oJHdpZHRoLCAkaGVpZ2h0LCAkY2hpbGRDbGFzcywgJGF1dG9wb3NpdGlvbjogdHJ1ZSkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6IGdldC1hc3BlY3QtcmF0aW8tcGFkZGluZy12YWx1ZSgkd2lkdGgsICRoZWlnaHQpO1xuICAgIH1cblxuICAgIC4jeyRjaGlsZENsYXNzfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgIEBpZiAkYXV0b3Bvc2l0aW9uIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvLXJlc2V0KCRjaGlsZENsYXNzLCAkYXV0b3Bvc2l0aW9uOiB0cnVlKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgIH1cblxuICAgIC4jeyRjaGlsZENsYXNzfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuXG4gICAgICAgIEBpZiAkYXV0b3Bvc2l0aW9uIHtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvLWNoaWxkLXBvc2l0aW9uKCRhdXRvcG9zaXRpb246IHRydWUpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBAaWYgJGF1dG9wb3NpdGlvbiB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvLW92ZXJyaWRlKCR3aWR0aCwgJGhlaWdodCkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IGdldC1hc3BlY3QtcmF0aW8tcGFkZGluZy12YWx1ZSgkd2lkdGgsICRoZWlnaHQpO1xuICAgIH1cbn1cblxuQG1peGluIGFzcGVjdC1yYXRpby1vdmVycmlkZS1yZXNldCgpIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvYXNwZWN0LXJhdGlvJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRuYXZpZ2F0aW9uX2ZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuJG5hdmlnYXRpb25fb3ZlcmxheS1zaG93OiBmYWxzZSAhZGVmYXVsdDtcbi8vIEJveCBzaGFkb3cgZWZmZWN0IGFwcGxpZWQgZm9yIHRoZSBmbHlvdXQuXG4kbmF2aWdhdGlvbl9mbHlvdXQtYm94LXNoYWRvdzogMnB4IDJweCA1cHggcmdiYSgkY29sb3JfYmFja2dyb3VuZC04MDAsIDAuMTUpICFkZWZhdWx0O1xuLy8gRmx5b3V0IGJhY2tncm91bmQgY29sb3IuXG4kbmF2aWdhdGlvbl9mbHlvdXQtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuLy8gQ29sb3Igb2YgdGhlIGxpbmsuXG4kbmF2aWdhdGlvbl9saW5rLWNvbG9yOiAkY29sb3JfdGV4dC02MDAgIWRlZmF1bHQ7XG4vLyBDb2xvciBvZiB0aGUgbGluayBpbiB0aGUgZmx5b3V0IG9uIGhvdmVyLlxuJG5hdmlnYXRpb25fbGluay1jb2xvci1ob3ZlcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuLy8gQm90dG9tIGJvcmRlciBjb25maWd1cmF0aW9uIGZvciBmbHlvdXQgY2F0ZWdvcnkgbGlua3MuXG4kbmF2aWdhdGlvbl9saW5rLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJG5hdmlnYXRpb25fbGlzdHMtbWFyay1wYXJlbnQtb24taG92ZXI6IHRydWUgIWRlZmF1bHQ7XG5cbiRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLXdpZHRoOiAycmVtICFkZWZhdWx0O1xuJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtaGVpZ2h0OiAkbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS13aWR0aCAhZGVmYXVsdDtcbi8vIHdvcmtzIG9ubHkgZm9yIHN2ZyBpY29uc1xuJG5hdmlnYXRpb25fbGluay1pY29uLWNvbG9yOiAkY29sb3JfdGV4dC02MDAgIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbl9saW5rLWljb24tY29sb3ItLWhvdmVyOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31uYXZpZ2F0aW9uIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAkbmF2aWdhdGlvbl9mb250LXNpemU7XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxsLWNhdGVnb3JpZXMge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2x1bW5zOiBhdXRvIDE7XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiAwO1xuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sZXZlbCB7XG4gICAgICAgICAgICAmXzEge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGNvbHVtbnM6IGF1dG8gMTtcbiAgICAgICAgICAgICAgICBjb2x1bW4tZ2FwOiAwO1xuICAgICAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmXzIge1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmICsgLiN7JG5zfW5hdmlnYXRpb25fX2V4dHJhcyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19pdGVtLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpZiAoJG5hdmlnYXRpb25fbGlzdHMtbWFyay1wYXJlbnQtb24taG92ZXIpIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgICAgICYuYWN0aXZlLFxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgJjpub3QoW2RhdGEtY2F0ZWdvcnktaWRlbnRpZmllcj0nYWxsLWNhdGVnb3JpZXMnXSkge1xuICAgICAgICAgICAgICAgICAgICA+ICN7JHJvb3R9X19saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJi5hY3RpdmUsXG4gICAgICAgICAgICAgICAgJiN7JHJvb3R9X19pdGVtLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAmOm5vdChbZGF0YS1jYXRlZ29yeS1pZGVudGlmaWVyPSdhbGwtY2F0ZWdvcmllcyddKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA+ICN7JHJvb3R9X19saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNGVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgID4gI3skcm9vdH1fX2xpbms6bm90KCN7JHJvb3R9X19saW5rLS13aXRoLWljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgID4gI3skcm9vdH1fX2xpbmsge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsbC1jYXRlZ29yaWVzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAvLyBQcmV2ZW50cyBlbGVtZW50IGJyZWFraW5nIGJlY2F1c2Ugb2YgY29sdW1uIGxheW91dC5cbiAgICAgICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgLyogVGhlb3JldGljYWxseSBGRiAyMCsgKi9cbiAgICAgICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uOyAvKiBJRSAxMSAqL1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sZXZlbCB7XG4gICAgICAgICAgICAmXzEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgLy8gUHJldmVudHMgZWxlbWVudCBicmVha2luZyBiZWNhdXNlIG9mIGNvbHVtbiBsYXlvdXQuXG4gICAgICAgICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyAvKiBUaGVvcmV0aWNhbGx5IEZGIDIwKyAqL1xuICAgICAgICAgICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uOyAvKiBJRSAxMSAqL1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIHBhZGRpbmc6IDAuOWVtIDEuMDVlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvci1ob3ZlcjtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2xpbmstaWNvbi0tc3ZnIHtcbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJG5hdmlnYXRpb25fbGluay1pY29uLWNvbG9yLS1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tYWluIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGwtY2F0ZWdvcmllcyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG5hdmlnYXRpb25fbGluay1ib3JkZXI7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS42ZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sZXZlbCB7XG4gICAgICAgICAgICAmXzEge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRuYXZpZ2F0aW9uX2xpbmstYm9yZGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjZlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl8yIHtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMjVlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtaWNvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLXdpZHRoICsgMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbi13cmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtaGVpZ2h0O1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuOGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgICAgIGhlaWdodDogJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtaGVpZ2h0O1xuXG4gICAgICAgICAgICAjeyRyb290fV9fbGluay0tY2F0ZWdvcnkgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3ZnIHtcbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJG5hdmlnYXRpb25fbGluay1pY29uLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtcHJvZHVjdHMtcXR5IHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vU3R5bGluZyBmb3IgY2F0ZWdvcmllcyBsZXZlbF8xIHdpdGggbm8gc3ViY2F0ZWdvcmllc1xuICAgICN7JHJvb3R9X19pdGVtLS1uby1jaGlsZHJlbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgICN7JHJvb3R9X19pdGVtLS1uby1jaGlsZHJlbiA+ICN7JHJvb3R9X19saW5rLS1sZXZlbF8xIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMmVtO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBwYWRkaW5nOiAwLjllbSAxLjVlbTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19mbHlvdXQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRuYXZpZ2F0aW9uX2ZseW91dC1iYWNrZ3JvdW5kO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHotaW5kZXg6IDEwMDE7IC8vIE1ha2Ugc3VyZSBmbHlvdXRzIGNvdmVyIGdhbGxlcnkgbmF2LlxuICAgICAgICBib3gtc2hhZG93OiAkbmF2aWdhdGlvbl9mbHlvdXQtYm94LXNoYWRvdztcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcblxuICAgICAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBAc3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQVFBQUFDMUhBd0NBQUFBQzBsRVFWUjQybU5rWUFBQUFBWUFBakNCMEM4QUFBQUFTVVZPUks1Q1lJST0pO1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2V4dHJhcyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmX190ZWFzZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDFlbSAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuI3skbnN9aW1hZ2UtdGVhc2VyX19maWd1cmUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3Byb2R1Y3RzIHtcbiAgICAgICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgICAgICBtaW4td2lkdGg6IDI0cmVtO1xuXG4gICAgICAgICYtaGVhZGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRuYXZpZ2F0aW9uX2xpbmstY29sb3I7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG5hdmlnYXRpb25fbGluay1ib3JkZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjFlbSAxLjA1ZW0gMS41NWVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8oXG4gICAgICAgICAgICAkd2lkdGg6ICR0aWxlX2FzcGVjdC1yYXRpby13aWR0aCxcbiAgICAgICAgICAgICRoZWlnaHQ6ICR0aWxlX2FzcGVjdC1yYXRpby1oZWlnaHQsXG4gICAgICAgICAgICAkY2hpbGRDbGFzczogI3skbnN9cHJvZHVjdC10aWxlLFxuICAgICAgICAgICAgJGF1dG9wb3NpdGlvbjogdHJ1ZVxuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX292ZXJsYXkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgM3JlbSwgMCk7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAsIDAuOTcsIDAuMDUsIDAuOTkpO1xuXG4gICAgICAgIEBpZiAkbmF2aWdhdGlvbl9vdmVybGF5LXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlzaWJsZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2UtcHJpbnQgJiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSBhbmQgKGdyaWQtYXV0by1mbG93OiByb3cpIHtcbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8tcmVzZXQoXG4gICAgICAgICAgICAgICAgJGNoaWxkQ2xhc3M6ICN7JG5zfXByb2R1Y3QtdGlsZSxcbiAgICAgICAgICAgICAgICAkYXV0b3Bvc2l0aW9uOiB0cnVlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1uYXZpZ2F0aW9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtbmV3c2xldHRlciB7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtbmV3c2xldHRlciB7XG4gICAgICBwYWRkaW5nOiAwIDEuNXJlbTsgfSB9XG4gIC5jcy1uZXdzbGV0dGVyX19mb3JtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtbmV3c2xldHRlcl9fZm9ybSB7XG4gICAgICAgIG1heC13aWR0aDogMzRyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtbmV3c2xldHRlcl9fZm9ybSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIC5jcy1uZXdzbGV0dGVyX19mb3JtLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1iYXNpczogMTAwJTsgfVxuICAuY3MtbmV3c2xldHRlcl9fZmllbGQge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2lucHV0IHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50OyB9XG4gIC5jcy1uZXdzbGV0dGVyX19sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtbmV3c2xldHRlcl9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBoZWlnaHQ6IDRyZW07IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbiB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b24sIC5jcy1uZXdzbGV0dGVyX19idXR0b246dmlzaXRlZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHotaW5kZXg6IDU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gICAgICAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1uZXdzbGV0dGVyX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgICAuY3MtbmV3c2xldHRlcl9fYnV0dG9uW2Rpc2FibGVkXSwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC4xZW07XG4gICAgd2lkdGg6IDAuOGVtO1xuICAgIGhlaWdodDogMC44ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRpbnB1dF9wYWRkaW5nOiAwLjcxNWVtIDFlbSAhZGVmYXVsdDtcbiRpbnB1dF9ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYWx0byAhZGVmYXVsdDtcbiRpbnB1dF9ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuXG4kbmV3c2xldHRlcl9tYXJnaW46IDAgIWRlZmF1bHQ7XG4kbmV3c2xldHRlcl9wYWRkaW5nOiAwIDEuNXJlbSAhZGVmYXVsdDtcblxuJG5ld3NsZXR0ZXJfZm9ybS1tYXgtd2lkdGg6IDM0cmVtICFkZWZhdWx0O1xuJG5ld3NsZXR0ZXJfZm9ybS1oZWlnaHQ6IDRyZW0gIWRlZmF1bHQ7XG5cbiRuZXdzbGV0dGVyX2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLXBvczogJ29ubHktaWNvbicgIWRlZmF1bHQ7XG5cbiRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLXdpZHRoOiAwLjhlbSAhZGVmYXVsdDtcbiRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLWhlaWdodDogMC44ZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31uZXdzbGV0dGVyIHtcbiAgICBtYXJnaW46ICRuZXdzbGV0dGVyX21hcmdpbjtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAkbmV3c2xldHRlcl9wYWRkaW5nO1xuICAgIH1cblxuICAgICZfX2Zvcm0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRuZXdzbGV0dGVyX2Zvcm0tbWF4LXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZm9ybS13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICB9XG5cbiAgICAmX19maWVsZCB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9faW5wdXQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIGhlaWdodDogJG5ld3NsZXR0ZXJfZm9ybS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRuZXdzbGV0dGVyX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbmV3c2xldHRlcl9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRuZXdzbGV0dGVyX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbmV3c2xldHRlcl9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICB3aWR0aDogJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24taGVpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBoZWlnaHQ6IDEwMCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjExNWVtKSB7XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gICAgICBwYWRkaW5nOiAwIDAuN3JlbTsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZsZXg6IDEgMSAyNSU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbSB7XG4gICAgICAgIGZsZXg6IDEgMSAzMy4zMzMzMyU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1zZWFyY2gge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDFyZW07IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHBhdGgge1xuICAgICAgICBmaWxsOiAjMzI0ZGNmOyB9XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICAgICAgY29sb3I6ICM2OTY5Njk7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rLS1zZWFyY2g6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24td3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24ge1xuICAgIHdpZHRoOiAyLjZyZW07XG4gICAgaGVpZ2h0OiAyLjZyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzMyNGRjZjsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBtYXJnaW4tdG9wOiAwLjNyZW07XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgICBjbGlwOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMjRkY2Y7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMnJlbTtcbiAgICBwYWRkaW5nOiAwIDAuNnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBoZWlnaHQ6IDEuOGVtO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtMC41cmVtO1xuICAgIHRvcDogLTAuNXJlbTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlciB7XG4gICAgICAgIHJpZ2h0OiAtMXJlbTsgfSB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWQ0MDA7XG4gICAgICBjb2xvcjogIzAwMDsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1taW5pY2FydCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQxZjEyO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tY29tcGFyZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVkNDAwO1xuICAgICAgY29sb3I6ICMwMDA7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0taGF2ZS1pdGVtcyB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLXNwYW4ge1xuICAgIG1pbi13aWR0aDogMWNoOyB9XG5cbi5jcy1oZWFkZXItdXNlci1uYXYge1xuICBmbGV4OiAwIDEgMTUlO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgIC5jcy1oZWFkZXItdXNlci1uYXYge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1taW5pY2FydCwgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0LCAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tY29tcGFyZSB7XG4gICAgYm90dG9tOiAzLjVyZW07XG4gICAgdG9wOiB1bnNldDtcbiAgICByaWdodDogMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWNvbXBhcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDM2NjY7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLW1pbmljYXJ0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgYm9yZGVyOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3R0b206IC0zcHg7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogNDNweDtcbiAgICBtYXgtd2lkdGg6IDQzcHg7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1zZWFyY2gge1xuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsge1xuICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7IH0gfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IDAuM3Mgb3BhY2l0eTtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHBhdGgge1xuICAgICAgZmlsbDogI2MxMjcyZjsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBjbGlwOiB1bnNldDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiB7XG4gICAgd2lkdGg6IDIuM3JlbTtcbiAgICBoZWlnaHQ6IDIuM3JlbTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjMDAwMDAwOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbi13cmFwcGVyIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuXG4uY3Mtb2ZmY2FudmFzLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMS41cmVtO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1vZmZjYW52YXMtdG9nZ2xlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZTphY3RpdmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlOmZvY3VzLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZTpob3ZlciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgYmFja2dyb3VuZDogIzMyNGRjZjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0OyB9XG4gIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmU6YWN0aXZlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlOmZvY3VzLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMzI0ZGNmOyB9XG4gIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmU6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24sIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmJlZm9yZSwgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24ge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgICAgIHdpZHRoOiAxLjhyZW07XG4gICAgICBoZWlnaHQ6IDAuMnJlbTtcbiAgICAgIGJhY2tncm91bmQ6ICMzMjRkY2Y7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIHRyYW5zZm9ybSAwLjNzOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwJSk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yNTAlLCAwKTsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTAlKTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjUwJSwgMCk7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX3RleHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDAuNXJlbTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICBjb2xvcjogIzIxMjEyMTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX190ZXh0IHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX190ZXh0IHtcbiAgICAgICAgYm90dG9tOiAycmVtOyB9IH1cblxuLmNzLW9mZmNhbnZhcy10b2dnbGU6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kOiAjYzEyNzJmOyB9XG5cbi5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmU6YWN0aXZlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlOmZvY3VzLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbm9uZTsgfVxuXG4uY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmJlZm9yZSwgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjphZnRlciB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7IH1cblxuLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24sIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmJlZm9yZSwgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlYWRlci91c2VyLW5hdi91c2VyLW5hdic7XG5cbiRvZmZjYW52YXMtdG9nZ2xlX2ljb24tYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWJhY2tncm91bmQtYWN0aXZlOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWNvbG9yLWFjdGl2ZTogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfaWNvbi10cmFuc2l0aW9uLXRpbWU6ICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX2FuaW1hdGlvbi1kaXJlY3Rpb246ICdsZWZ0JyAhZGVmYXVsdDsgLy8gJ2xlZnQnIG9yICdyaWdodCdcbiRvZmZjYW52YXMtdG9nZ2xlX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX3RleHQtY29sb3ItYWN0aXZlOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXRvZ2dsZV90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuXG4uI3skbnN9b2ZmY2FudmFzLXRvZ2dsZSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBib3JkZXI6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzKSB7XG4gICAgICAgIHdpZHRoOiA1LjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAnPj0jeyRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzLWJyZWFrcG9pbnR9J1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tYmFja2dyb3VuZDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10b2dnbGVfaWNvbi10cmFuc2l0aW9uLXRpbWU7XG4gICAgICAgIGJvdHRvbTogMDtcblxuICAgICAgICBAaWYgKCRvZmZjYW52YXMtdG9nZ2xlX2FuaW1hdGlvbi1kaXJlY3Rpb24gPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICYsXG4gICAgICAgICY6YWN0aXZlLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgd2lkdGg6IDEuOHJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4ycmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1jb2xvcjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJG9mZmNhbnZhcy10b2dnbGVfaWNvbi10cmFuc2l0aW9uLXRpbWUsXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tdHJhbnNpdGlvbi10aW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwJSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yNTAlLCAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI1MCUpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNTAlLCAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICc+PSN7JGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMtYnJlYWtwb2ludH0nXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH0tLWFjdGl2ZSAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgY29sb3I6ICRvZmZjYW52YXMtdG9nZ2xlX3RleHQtY29sb3I7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkb2ZmY2FudmFzLXRvZ2dsZV90ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcztcblxuICAgICAgICAjeyRyb290fS0tYWN0aXZlICYge1xuICAgICAgICAgICAgY29sb3I6ICRvZmZjYW52YXMtdG9nZ2xlX3RleHQtY29sb3ItYWN0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgYm90dG9tOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcykge1xuICAgICAgICAmX19tZW51LXNlYXJjaC1pY29uIHtcbiAgICAgICAgICAgIGZpbGw6ICRoZWFkZXItdXNlci1uYXZfaWNvbi1jb2xvcjtcbiAgICAgICAgICAgIHdpZHRoOiAyLjZyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDIuNnJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgJz49I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRoZWFkZXItdXNlci1uYXZfaWNvbi1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH0tLWFjdGl2ZSAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvb2ZmY2FudmFzLXRvZ2dsZS9vZmZjYW52YXMtdG9nZ2xlLnNjc3NcIjtcblxuLiN7JG5zfW9mZmNhbnZhcy10b2dnbGUge1xuICAgICRyb290OiAmO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQ6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICB9XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgICAmLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgJixcbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGttYV9jb2xvcl9ibGFjaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICAmLFxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAka21hX2NvbG9yX2JsYWNrO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3Qge1xuICAgIHotaW5kZXg6IDE7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1jdXJyZW50LCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1jdXJyZW50IHtcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWN1cnJlbnQgPiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW0gPiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDEwNSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zczsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tYWN0aXZlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDUlKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTA1JSwgMCwgMCk7IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pdGVtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pdGVtICsgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pdGVtIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCAjZGNkY2RjIHNvbGlkOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pdGVtOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggI2RjZGNkYyBzb2xpZDsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faXRlbS0td2l0aC1pY29uIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fdGV4dCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rIHtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmssIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1pbiwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluOnZpc2l0ZWQsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1vdXQsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1vdXQ6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAjMzI0ZGNmOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW46aG92ZXIsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1vdXQ6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzMyNGRjZjsgfVxuICAgICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW46aG92ZXIgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHBhdGgsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1vdXQ6aG92ZXIgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHBhdGgge1xuICAgICAgICAgIGZpbGw6ICMzMjRkY2Y7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1pbiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24sIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1vdXQgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHtcbiAgICAgICAgd2lkdGg6IDIuM3JlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjdyZW07XG4gICAgICAgIHJpZ2h0OiAycmVtOyB9XG4gICAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1pbiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24gcGF0aCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24gcGF0aCB7XG4gICAgICAgICAgZmlsbDogIzMyNGRjZjsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcGFyZW50IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1yZXR1cm4gLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHtcbiAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICBoZWlnaHQ6IDAuMXJlbTsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcGFyZW50IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcGFyZW50IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiB7XG4gICAgICAgIHJpZ2h0OiAycmVtOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1yZXR1cm4ge1xuICAgICAgcGFkZGluZy1sZWZ0OiA1cmVtOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXJldHVybiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24ge1xuICAgICAgICBsZWZ0OiAycmVtOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0OmJlZm9yZSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzI0ZGNmO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4ODg7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dDpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgIHJpZ2h0OiAycmVtOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHQ6YWZ0ZXIge1xuICAgICAgICByaWdodDogMnJlbTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHJpZ2h0OiAwOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHRbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICByaWdodDogMnJlbTsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogMC43cmVtO1xuICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMyNGRjZjtcbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXZbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXZbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4OyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXY6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgLTUwJSwgMCk7XG4gICAgICAgIHJpZ2h0OiAwOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXY6YWZ0ZXIge1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDUwJSwgMCk7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICByaWdodDogYXV0bzsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHJpZ2h0OiAwOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXY6YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXY6YWZ0ZXIge1xuICAgICAgICBsZWZ0OiAycmVtOyB9XG4gIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbiAuYWN0aXZlID4gLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rIHtcbiAgICBjb2xvcjogIzMyNGRjZjsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjMzI0ZGNmOyB9XG4gIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fY2F0ZWdvcnktaWNvbi13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDJyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fY2F0ZWdvcnktaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXgtaGVpZ2h0OiAycmVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9nZXQtdmFsdWUtZnJvbS1saXN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYmFja2dyb3VuZDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2JhY2tncm91bmQgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faXRlbS1ib3JkZXI6IDFweCAkY29sb3JfYWx0byBzb2xpZCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX3NlYXJjaC1lbmFibGVkOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX1RoZW1lLFxuICAgIGhlYWRlcixcbiAgICBtb2JpbGVfc2VhcmNoX2luX29mZmNhbnZhc1xuKSAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX3NlYXJjaC1lbmFibGVkLWxpc3QtbGV2ZWwxLXRvcC1wb3NpdGlvbjogMTQlICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstY29sb3ItLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1jb2xvciAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXNpZ24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXNpZ24tY29sb3ItLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1zaWduLWNvbG9yICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstYWN0aXZlLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nOiAyLjRyZW0gMnJlbSAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tdXNlLXBzZXVkb2ljb24taW5zdGVhZC1zdmc6IHRydWUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi13aWR0aDogMC43cmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24taGVpZ2h0OiAwLjFyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3ItLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvciAhZGVmYXVsdDtcbi8vIEJlbG93IG5hdmlnYXRpb25faWNvbiBzZXR0aW5ncyBhcmUgdXNhYmxlIG9ubHkgaWYgeW91IHVzZSBwc2V1ZG9pY29uXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi10eXBlOiAnYXJyb3cnICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tZGVmYXVsdC0tbmV4dDogJ3JpZ2h0JyAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWRlZmF1bHQtLXByZXY6ICdsZWZ0JyAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWFuaW1hdGlvbjogZmFsc2UgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1hcnJvdy1sZWZ0LW9mZnNldDogMCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tc2lnbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tc2lnbi1jb2xvci0taG92ZXI6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXNpZ24tY29sb3IgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9jYXRlZ29yeS1pY29uX21heC1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fY2F0ZWdvcnktaWNvbl9tYXJnaW4tcmlnaHQ6IDFyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31vZmZjYW52YXMtbmF2aWdhdGlvbiB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2JhY2tncm91bmQ7XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgJi0tbGV2ZWxfMCxcbiAgICAgICAgJi0tY3VycmVudCxcbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGV2ZWxfMCxcbiAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICA+ICN7JHJvb3R9X19pdGVtIHtcbiAgICAgICAgICAgICAgICA+ICN7JHJvb3R9X19saXN0IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDEwNSU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcblxuICAgICAgICAgICAgLy8gUHJldmVudCBvdmVybGFwcGluZyBvZiBzZWFyY2ggb24gbmF2aWdhdGlvbiBsaXN0XG4gICAgICAgICAgICBAaWYgKCRvZmZjYW52YXMtbmF2aWdhdGlvbl9zZWFyY2gtZW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHRvcDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX3NlYXJjaC1lbmFibGVkLWxpc3QtbGV2ZWwxLXRvcC1wb3NpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJiArICYge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1pY29uIHtcbiAgICAgICAgICAgICN7JHJvb3R9X190ZXh0IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAnbGVmdCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmc7XG4gICAgICAgIGZvbnQtc2l6ZTogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstZm9udC1zaXplO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstZm9udC13ZWlnaHQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLFxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstY29sb3ItLWhvdmVyO1xuXG4gICAgICAgICAgICBAaWYgbm90KCRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXVzZS1wc2V1ZG9pY29uLWluc3RlYWQtc3ZnKSB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLS1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNpZ24taW4sXG4gICAgICAgICYtLXNpZ24tb3V0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1zaWduLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstc2lnbi1jb2xvci0taG92ZXI7XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tc2lnbi1jb2xvci0taG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMi4zcmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMi43cmVtO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1zaWduLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBhcmVudCxcbiAgICAgICAgJi0tcmV0dXJuIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wYXJlbnQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXJlbTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJldHVybiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVyZW07XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAnbGVmdCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi11c2UtcHNldWRvaWNvbi1pbnN0ZWFkLXN2Zykge1xuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRhbmltYXRlZDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYW5pbWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tZGVmYXVsdC0tbmV4dCxcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LW9mZnNldDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYXJyb3ctbGVmdC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICR3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvci0taG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRhbmltYXRlZDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYW5pbWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tZGVmYXVsdC0tcHJldixcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LW9mZnNldDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYXJyb3ctbGVmdC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICR3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvci0taG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDogYXV0b1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbGVmdCdcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aXZlIHtcbiAgICAgICAgPiAjeyRyb290fV9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2F0ZWdvcnktaWNvbi13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2NhdGVnb3J5LWljb25fbWF4LWhlaWdodDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fY2F0ZWdvcnktaWNvbl9tYXJnaW4tcmlnaHQ7XG4gICAgfVxuXG4gICAgJl9fY2F0ZWdvcnktaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICAgIG1heC1oZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9jYXRlZ29yeS1pY29uX21heC1oZWlnaHQ7XG4gICAgfVxuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcykge1xuICAgICAgICAmX19zZWFyY2gge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZzogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pdGVtLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgJz49I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLW9mZmNhbnZhcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMzAwOyB9XG4gIC5jcy1vZmZjYW52YXNfX2RyYXdlciwgLmNzLW9mZmNhbnZhc19fb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB0b3A6IDVyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLW9mZmNhbnZhc19fZHJhd2VyLCAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICAgICAgdG9wOiA4LjNyZW07XG4gICAgICAgIGJvdHRvbTogMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXNfX2RyYXdlciwgLmNzLW9mZmNhbnZhc19fb3ZlcmxheSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5jcy1vZmZjYW52YXMtLW1pbmktY2FydCAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIsIC5jcy1vZmZjYW52YXMtLW1pbmktY2FydCAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdG9wOiAwOyB9XG4gIC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gNXJlbSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzLCB0cmFuc2Zvcm0gMW1zIDAuM3M7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLW9mZmNhbnZhc19fb3ZlcmxheSB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgfSB9XG4gICAgLmNzLW9mZmNhbnZhcy0tbWluaS1jYXJ0IC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5jcy1vZmZjYW52YXMgLm92ZXJsYXktLXZpc2libGUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zczsgfVxuICAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWF4LXdpZHRoOiA0MHJlbTsgfVxuICAgIC5jcy1vZmZjYW52YXMtLXNpZGVfbGVmdCAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTA1JSwgMCwgMCk7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLS1zaWRlX3JpZ2h0IC5jcy1vZmZjYW52YXNfX2RyYXdlciB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwNSUsIDAsIDApOyB9XG4gICAgLmNzLW9mZmNhbnZhc19fZHJhd2VyLS1uYXZpZ2F0aW9uIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApOyB9XG4gIC5jcy1vZmZjYW52YXMgLmRyYXdlci0tdmlzaWJsZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSAhaW1wb3J0YW50OyB9XG4gIC5jcy1vZmZjYW52YXNfX3NwaW5uZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogNnJlbTtcbiAgICBoZWlnaHQ6IDZyZW07XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogMjAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtM3JlbTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1vZmZjYW52YXNfX2RyYXdlciB7XG4gIG1heC13aWR0aDogNDhyZW07IH1cblxuLmNzLW9mZmNhbnZhcy0tbWluaS1jYXJ0ID4gLmRyYXdlciB7XG4gIGJvdHRvbTogMDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kb2ZmY2FudmFzX3ZlcnRpY2FsLW9mZnNldC1tb2JpbGU6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGUgIWRlZmF1bHQ7IC8vIE1vdmUgYmVsb3cgdGhlIG5hdmlnYXRpb24gb24gbW9iaWxlLlxuJG9mZmNhbnZhc190b3Atb2Zmc2V0LXRhYmxldDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LXRhYmxldCAhZGVmYXVsdDsgLy8gTW92ZSBiZWxvdyB0aGUgbmF2aWdhdGlvbiBvbiB0YWJsZXQuXG4kb2ZmY2FudmFzX3RyYW5zaXRpb24tdGltZTogJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzX292ZXJsYXktYmFja2dyb3VuZDogJG1vZGFsc19vdmVybGF5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXNfZHJhd2VyLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhc19zcGlubmVyLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31vZmZjYW52YXMge1xuICAgICRyb290OiAmO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDMwMDtcblxuICAgICZfX2RyYXdlcixcbiAgICAmX19vdmVybGF5IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgIGJvdHRvbTogJG9mZmNhbnZhc192ZXJ0aWNhbC1vZmZzZXQtbW9iaWxlO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHRvcDogJG9mZmNhbnZhc192ZXJ0aWNhbC1vZmZzZXQtbW9iaWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgdG9wOiAkb2ZmY2FudmFzX3RvcC1vZmZzZXQtdGFibGV0O1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1taW5pLWNhcnQgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX292ZXJsYXkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAjeyRvZmZjYW52YXNfdmVydGljYWwtb2Zmc2V0LW1vYmlsZX0pO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgLy8gU2V0dGluZyAxbXMgYmVjYXVzZSAwIGRvZXNuJ3Qgc2VlbSB0byB3b3JrIGFuZCB3ZSBuZWVkIHNlYW1sZXNzIHRyYW5zaXRpb24gZm9yIHNjYWxlIGhlcmUuXG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJG9mZmNhbnZhc190cmFuc2l0aW9uLXRpbWUsXG4gICAgICAgICAgICB0cmFuc2Zvcm0gMW1zICRvZmZjYW52YXNfdHJhbnNpdGlvbi10aW1lO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLW1pbmktY2FydCAmIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5vdmVybGF5IHtcbiAgICAgICAgJi0tdmlzaWJsZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhc19vdmVybGF5LWJhY2tncm91bmQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRvZmZjYW52YXNfdHJhbnNpdGlvbi10aW1lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZHJhd2VyIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzX2RyYXdlci1iYWNrZ3JvdW5kO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhc190cmFuc2l0aW9uLXRpbWU7XG4gICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgIG1heC13aWR0aDogNDByZW07XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlKSB7XG4gICAgICAgICAgICBib3R0b206ICRvZmZjYW52YXNfdmVydGljYWwtb2Zmc2V0LW1vYmlsZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1zaWRlX2xlZnQgJiB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1zaWRlX3JpZ2h0ICYge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDUlLCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5hdmlnYXRpb24ge1xuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1tb2JpbGUtbWVudS1pcy1yaWdodCkge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDUlLCAwLCAwKTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTA1JSwgMCwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZHJhd2VyIHtcbiAgICAgICAgJi0tdmlzaWJsZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zcGlubmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogNnJlbTtcbiAgICAgICAgaGVpZ2h0OiA2cmVtO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRvcDogMjAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTNyZW07XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIn5DcmVhdGl2ZXNob3AvY29tcG9uZW50cy9vZmZjYW52YXMvb2ZmY2FudmFzLnNjc3NcIjtcbkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5cbi4jeyRuc31vZmZjYW52YXMge1xuICAgICRyb290OiAmO1xuXG4gICAgJl9fZHJhd2VyIHtcbiAgICAgICAgbWF4LXdpZHRoOiA0OHJlbTtcbiAgICB9XG4gICAgJi0tbWluaS1jYXJ0IHtcbiAgICAgICAgJiA+IC5kcmF3ZXIge1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnBhZ2UtdGl0bGUge1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDQuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG4kcGFnZS10aXRsZV9mb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtMjtcblxuXG4kcGFnZS10aXRsZV9zcGFuLWNvbG9yOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuXG4ucGFnZS10aXRsZSB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkcGFnZS10aXRsZV9mb250LXNpemUpO1xuICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1wYWdlLWJvdHRvbSB7XG4gIHBhZGRpbmc6IDEuNXJlbSAwO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcGFnZS1ib3R0b20ge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtcGFnZS1ib3R0b20ge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuICAucGFnZS1wcmludCAuY3MtcGFnZS1ib3R0b20ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXBhZ2UtYm90dG9tX19pbWFnZSB7XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19pbWFnZS0tY2lyY2xlIHtcbiAgICAgIHdpZHRoOiA0LjdyZW07XG4gICAgICBoZWlnaHQ6IDQuN3JlbTtcbiAgICAgIG1pbi13aWR0aDogNC43cmVtO1xuICAgICAgbWluLWhlaWdodDogNC43cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5jcy1wYWdlLWJvdHRvbV9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNnJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fdGV4dC0tc21hbGwge1xuICAgICAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1zaHJpbms6IDE7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1pbmZvIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLWluZm8ge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1iYXNpczogNDAlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG4gICAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0taW5mbyAuY3MtcGFnZS1ib3R0b21fX3RleHQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMHJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1pbmZvIHtcbiAgICAgICAgICBmbGV4LWJhc2lzOiAxNyU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLWluZm8gLmNzLXBhZ2UtYm90dG9tX190ZXh0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tc2hpcHBpbmcge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tc2hpcHBpbmcge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1iYXNpczogNTUlO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXNoaXBwaW5nIHtcbiAgICAgICAgICBmbGV4LWJhc2lzOiAzMyU7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtOyB9IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1wYXltZW50IHtcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tcGF5bWVudCAuY3MtcGFnZS1ib3R0b21fX3RleHQge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tcGF5bWVudCB7XG4gICAgZmxleC1iYXNpczogMTAwJTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1wYXltZW50IHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1zaGlwcGluZywgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tcGF5bWVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1zaGlwcGluZzpiZWZvcmUsIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXBheW1lbnQ6YmVmb3JlIHtcbiAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogMXJlbTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB3aWR0aDogMC4ycmVtO1xuICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZGNkY2RjO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfSB9XG4gIC5jcy1wYWdlLWJvdHRvbV9fbG9nbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMTtcbiAgICBoZWlnaHQ6IDJyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvIHtcbiAgICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0taGVybWVzIHtcbiAgICAgIHdpZHRoOiAxMi4ycmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1kaGwge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LWhlaWdodDogMnJlbTtcbiAgICAgIG1pbi13aWR0aDogOC42cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1wYXlwYWwge1xuICAgICAgd2lkdGg6IDYuMnJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tdmlzYSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtaGVpZ2h0OiAycmVtO1xuICAgICAgbWluLXdpZHRoOiA1LjVyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLW1hc3RlcmNhcmQge1xuICAgICAgd2lkdGg6IDMuM3JlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0ta2xhcm5hLXNvZm9ydCB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtaGVpZ2h0OiAyLjVyZW07XG4gICAgICBtaW4taGVpZ2h0OiAyLjVyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWtsYXJuYSB7XG4gICAgICB3aWR0aDogN3JlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tZ2xzIHtcbiAgICAgIHdpZHRoOiA1cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1naXJvcGF5IHtcbiAgICAgIHdpZHRoOiA0LjhyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWVjIHtcbiAgICAgIHdpZHRoOiAxLjhyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLXBheWRpcmVrdCB7XG4gICAgICB3aWR0aDogNnJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tbGFzdHNjaHJpZnQge1xuICAgICAgd2lkdGg6IDYuMTVyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLXZvcmthc3NlIHtcbiAgICAgIHdpZHRoOiA4LjNyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLXJlY2hudW5nIHtcbiAgICAgIHdpZHRoOiA2LjE1cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuLmNzLWNvbnRhaW5lci0tcGFnZS1ib3R0b20ge1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJHBhZ2UtYm90dG9tX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRwYWdlLWJvdHRvbV9kaXZpZGVyLWNvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfXBhZ2UtYm90dG9tIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuICAgIC5wYWdlLXByaW50ICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB3aWR0aDogYXV0bztcblxuICAgICAgICAmLS1jaXJjbGUge1xuICAgICAgICAgICAgd2lkdGg6IDQuN3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogNC43cmVtO1xuICAgICAgICAgICAgbWluLXdpZHRoOiA0LjdyZW07XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA0LjdyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgIGNvbG9yOiAkcGFnZS1ib3R0b21fdGV4dC1jb2xvcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjZyZW07XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmZvIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDQwJTtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X190ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyMHJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAxNyU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X190ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNoaXBwaW5nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDU1JTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDMzJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wYXltZW50IHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDUwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX3RleHQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNoaXBwaW5nLFxuICAgICAgICAmLS1wYXltZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcGFnZS1ib3R0b21fZGl2aWRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xvZ28ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgaGVpZ2h0OiAycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oZXJtZXMge1xuICAgICAgICAgICAgd2lkdGg6IDEyLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaGwge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogOC42cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGF5cGFsIHtcbiAgICAgICAgICAgIHdpZHRoOiA2LjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aXNhIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBtaW4td2lkdGg6IDUuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1hc3RlcmNhcmQge1xuICAgICAgICAgICAgd2lkdGg6IDMuM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWtsYXJuYS1zb2ZvcnQge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMi41cmVtO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0ta2xhcm5hIHtcbiAgICAgICAgICAgIHdpZHRoOiA3cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZ2xzIHtcbiAgICAgICAgICAgIHdpZHRoOiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZ2lyb3BheSB7XG4gICAgICAgICAgICB3aWR0aDogNC44cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZWMge1xuICAgICAgICAgICAgd2lkdGg6IDEuOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBheWRpcmVrdCB7XG4gICAgICAgICAgICB3aWR0aDogNnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxhc3RzY2hyaWZ0IHtcbiAgICAgICAgICAgIHdpZHRoOiA2LjE1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdm9ya2Fzc2Uge1xuICAgICAgICAgICAgd2lkdGg6IDguM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlY2hudW5nIHtcbiAgICAgICAgICAgIHdpZHRoOiA2LjE1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1wYWdlLWJvdHRvbSB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qXG4gKiBCZWNhdXNlIHByaWNlLWJveCBpcyB1c2VkIGluIG11bHRpcGxlIGNvbXBvbmVudHMgbGlrZSB0aWxlLCBidXlib3ggZXRjLFxuICogd2UgbmVlZCB0byBtb3ZlIHZhcmlhYmxlcyB0byBzZXBhcmF0ZSBmaWxlIHRvIGhhdmUgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSB0aGVtXG4gKiBpbiBlYWNoIGNvbXBvbmVudCB3aXRob3V0IGdlbmVyYXRlIHByaWNlLWJveCBjb21wb25lbnQgc3R5bGVzIG11bHRpcGxlIHRpbWVzXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLnByaWNlLWJveCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAucHJpY2UtYm94IC5wcmljZSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtbGFiZWwge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICBmb250LXNpemU6IDAuNjVyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cbiAgLnByaWNlLWJveCAub2xkLXByaWNlLm5vLWRpc3BsYXkge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2Uge1xuICAgIHBhZGRpbmctbGVmdDogMC40ZW07IH1cbiAgLnByaWNlLWJveCAucHJpY2Uge1xuICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtbGFiZWwge1xuICAgICAgY29sb3I6ICMzMjRkY2Y7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIG1hcmdpbjogMCAwLjNyZW0gMC4zcmVtIDA7IH1cbiAgICAgIC5wcmljZS1ib3ggLnByaWNlLWxhYmVsOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJzonOyB9XG4gICAgICBib2R5XG5wXG4ucHJpY2UtYm94IC5wcmljZS1sYWJlbCB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAvKiAxICovIH1cbiAgLnByaWNlLWJveCAucHJpY2Utd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAucHJpY2UtYm94IC5wcmljZS1mcm9tLFxuICAucHJpY2UtYm94IC5wcmljZS10byB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtZnJvbSA+IC5wcmljZS1jb250YWluZXIsXG4gICAgLnByaWNlLWJveCAucHJpY2UtdG8gPiAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtZnJvbSAucHJpY2UtbGFiZWwsXG4gICAgLnByaWNlLWJveCAucHJpY2UtdG8gLnByaWNlLWxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGNvbG9yOiAjZTQxZjEyO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZS5hY3RpdmUgLnByaWNlIHtcbiAgICBjb2xvcjogI2U0MWYxMjsgfVxuICAucHJpY2UtYm94IC5wcmljZS1mcm9tIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLmNzLXByaWNlLS1wZHBfZGFpbHlkZWFsLWNvdW50ZG93biAucHJpY2UtYm94Om5vdCgucHJpY2UtZmluYWxfcHJpY2Vfd2l0aG91dF9kYWlseV9kZWFsKSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIucHJpY2UtZmluYWxfcHJpY2U6bm90KDpvbmx5LWNoaWxkKSAucHJpY2Uge1xuICAgIGNvbG9yOiAjZTQxZjEyOyB9XG5cbi5jcy1idW5kbGUtYm94X19hZGQgLnByaWNlLWFzLWNvbmZpZ3VyZWQge1xuICBtYXJnaW46IDFyZW0gMCAwOyB9XG5cbi5taW5pbWFsLXByaWNlLWxpbmsge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMS41cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLm1pbmltYWwtcHJpY2UtbGluazphZnRlciB7XG4gICAgY29sb3I6ICMzMjRkY2Y7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogJy0nO1xuICAgIHJpZ2h0OiAtMXJlbTtcbiAgICB0b3A6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4ucHJpY2UtYm94IHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAucHJpY2UtYm94IC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgY29sb3I6ICMzMzMzMzMgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxLjRyZW0gIWltcG9ydGFudDsgfVxuICAucHJpY2UtYm94IC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICBvcmRlcjogLTE7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAgIC5wcmljZS1ib3ggLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlIHtcbiAgICAgIGNvbG9yOiAjYzEyNzJmICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXNpemU6IDIuMnJlbSAhaW1wb3J0YW50OyB9XG4gIC5wcmljZS1ib3ggLnByaWNlIHtcbiAgICBjb2xvcjogIzMyNGRjZjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5wcmljZS1ib3ggLnByaWNlLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBtYXJnaW46IDAgMC4zcmVtIDAuM3JlbSAwOyB9XG4gICAgICAucHJpY2UtYm94IC5wcmljZS1sYWJlbDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiOlwiOyB9XG4gICAgICBib2R5IHAgLnByaWNlLWJveCAucHJpY2UtbGFiZWwge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgLyogMSAqLyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAucHJpY2UtYm94IC5wcmljZS1mcm9tLFxuICAucHJpY2UtYm94IC5wcmljZS10byB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtZnJvbSA+IC5wcmljZS1jb250YWluZXIsXG4gICAgLnByaWNlLWJveCAucHJpY2UtdG8gPiAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtZnJvbSAucHJpY2UtbGFiZWwsXG4gICAgLnByaWNlLWJveCAucHJpY2UtdG8gLnByaWNlLWxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgLnByaWNlLWJveCAub2xkLXByaWNlIHtcbiAgICBvcmRlcjogLTE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBnYXA6IDFyZW07IH1cbiAgICAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgb3JkZXI6IC0xO1xuICAgICAgbWFyZ2luLWJsb2NrOiA0cHggMDsgfVxuICAgIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICBjb2xvcjogIzMzMzMzMyAhaW1wb3J0YW50O1xuICAgICAgZm9udC1zaXplOiAxLjRyZW0gIWltcG9ydGFudDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDsgfVxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGNvbG9yOiAjYzEyNzJmICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAyLjJyZW0gIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggLnByaWNlIHtcbiAgICBjb2xvcjogIzMzMzMzMyAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEuNHJlbSAhaW1wb3J0YW50OyB9XG4gIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXg6OmJlZm9yZSxcbiAgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgb3JkZXI6IC0xO1xuICAgIG1hcmdpbi1ibG9jazogMCAxcmVtOyB9XG4gIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UuYWN0aXZlIC5wcmljZSB7XG4gICAgY29sb3I6ICNlNDFmMTI7IH1cbiAgLnByaWNlLWJveCAucHJpY2UtZnJvbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5jcy1wcmljZS0tcGRwX2RhaWx5ZGVhbC1jb3VudGRvd24gLnByaWNlLWJveDpub3QoLnByaWNlLWZpbmFsX3ByaWNlX3dpdGhvdXRfZGFpbHlfZGVhbCkge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyLnByaWNlLWZpbmFsX3ByaWNlOm5vdCg6b25seS1jaGlsZCkgLnByaWNlIHtcbiAgICBjb2xvcjogI2U0MWYxMjsgfVxuXG4uY3MtYnVuZGxlLWJveF9fYWRkIC5wcmljZS1hcy1jb25maWd1cmVkIHtcbiAgbWFyZ2luOiAxcmVtIDAgMDsgfVxuXG4ubWluaW1hbC1wcmljZS1saW5rIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5taW5pbWFsLXByaWNlLWxpbms6YWZ0ZXIge1xuICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6IFwiLVwiO1xuICAgIHJpZ2h0OiAtMXJlbTtcbiAgICB0b3A6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi5wcmljZS1pbmNsdWRpbmctdGF4OjpiZWZvcmUsXG4ucHJpY2UtZXhjbHVkaW5nLXRheDo6YmVmb3JlIHtcbiAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKSBcIjogXCIgIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjRyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB3aWR0aDogOXJlbTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgIC5wcmljZS1pbmNsdWRpbmctdGF4OjpiZWZvcmUsXG4gICAgLnByaWNlLWV4Y2x1ZGluZy10YXg6OmJlZm9yZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3ByaWNlLWJveC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3ByaWNlLWJveC92YXJpYWJsZXMuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG5cbiRjb25maWd1cmFibGUtcHJvZHVjdHMtc2hvdy1mcm9tLXByaWNlLWxhYmVsOiBmYWxzZTtcblxuLnByaWNlLWJveCB7XG4gICAgJHJvb3Q6ICY7XG4gICAgQGluY2x1ZGUgcHJpY2VCb3goKTtcblxuICAgIC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICYtbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfbGFiZWwtY29sb3I7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X2xhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X2xhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAkcHJpY2UtYm94X2xhYmVsLW1hcmdpbiAkcHJpY2UtYm94X2xhYmVsLW1hcmdpbiAwO1xuXG4gICAgICAgICAgICBAaWYgKCRwcmljZS1ib3hfbGFiZWwtZGlzcGxheS1jb2xvbikge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBib2R5Om5vdCgucGFnZS1wcm9kdWN0LWJ1bmRsZSwgLnBhZ2UtcHJvZHVjdC1ncm91cGVkKVxuICAgICAgICAgICAgICAgIHA6bm90KC5wcmljZS1mcm9tLCAucHJpY2UtdG8pXG4gICAgICAgICAgICAgICAgJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGNvbmZpZ3VyYWJsZS1wcm9kdWN0cy1zaG93LWZyb20tcHJpY2UtbGFiZWwge1xuICAgICAgICAubm9ybWFsLXByaWNlIHtcbiAgICAgICAgICAgIC5wcmljZS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIC5wcmljZS1mcm9tLFxuICAgIC5wcmljZS10byB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgID4gLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbGFiZWwtZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByaWNlLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub2xkLXByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfb2xkLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X29sZC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1mcm9tIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgIH1cblxuICAgIC4jeyRuc31wcmljZS0tcGRwX2RhaWx5ZGVhbC1jb3VudGRvd24gJiB7XG4gICAgICAgICY6bm90KC5wcmljZS1maW5hbF9wcmljZV93aXRob3V0X2RhaWx5X2RlYWwpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2UtY29udGFpbmVyLnByaWNlLWZpbmFsX3ByaWNlIHtcbiAgICAgICAgJjpub3QoOm9ubHktY2hpbGQpIC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9YnVuZGxlLWJveF9fYWRkIHtcbiAgICAucHJpY2UtYXMtY29uZmlndXJlZCB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgfVxufVxuXG4ubWluaW1hbC1wcmljZS1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICctJztcbiAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG59XG4iLCIvLyBwcmljZS1ib3hcbi8vIFRoaXMgY29tcG9uZW50IGlzIHJlc3BvbnNpYmxlIGZvciBzdHlsaW5nIHByaWNlcyBieSBtYXJrdXAgcHJvdmlkZWQgYnkgTWFnZW50bzJcbi8vXG4vLyBTZWUgaHR0cDovL3dhcnBzcGlyZS5jb20va3NzLyBmb3IgZG9jdW1lbnRhdGlvbiBndWlkZWxpbmVzLlxuLy8gVmVyc2lvbiAwLjAuMVxuQG1peGluIHByaWNlQm94KCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIC5wcmljZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgJi1sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm9sZC1wcmljZSB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuNjVyZW07XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9sZCBwcmljZSBzaG91bGQgbm90IGJlIGRpc3BsYXllZCBmb3IgcHJpY2VzIHdoZXJlIG5vcm1hbCBwcmljZSBpcyBcIkFzIGxvdyBhcyB7cHJpY2V9XCJcbiAgICAgICAgJi5uby1kaXNwbGF5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3BlY2lhbC1wcmljZSAucHJpY2Uge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNGVtO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvcHJpY2UtYm94L3ByaWNlLWJveC5zY3NzXCI7XG5AaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcInZlbmRvcnMvaW5jbHVkZS1tZWRpYVwiO1xuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG5cbiRjb25maWd1cmFibGUtcHJvZHVjdHMtc2hvdy1mcm9tLXByaWNlLWxhYmVsOiBmYWxzZTtcblxuLnByaWNlLWJveCB7XG4gICAgJHJvb3Q6ICY7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAucHJpY2UtaW5jbHVkaW5nLXRheCB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaC0tc21hbGwgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICYtbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfbGFiZWwtY29sb3I7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X2xhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X2xhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAkcHJpY2UtYm94X2xhYmVsLW1hcmdpbiAkcHJpY2UtYm94X2xhYmVsLW1hcmdpbiAwO1xuXG4gICAgICAgICAgICBAaWYgKCRwcmljZS1ib3hfbGFiZWwtZGlzcGxheS1jb2xvbikge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIjpcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJvZHk6bm90KC5wYWdlLXByb2R1Y3QtYnVuZGxlLCAucGFnZS1wcm9kdWN0LWdyb3VwZWQpIHA6bm90KC5wcmljZS1mcm9tLCAucHJpY2UtdG8pICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRjb25maWd1cmFibGUtcHJvZHVjdHMtc2hvdy1mcm9tLXByaWNlLWxhYmVsIHtcbiAgICAgICAgLm5vcm1hbC1wcmljZSB7XG4gICAgICAgICAgICAucHJpY2UtbGFiZWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAucHJpY2UtZnJvbSxcbiAgICAucHJpY2UtdG8ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICA+IC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X2xhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmljZS1sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm9sZC1wcmljZSB7XG4gICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICB9XG4gICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jazogNHB4IDA7XG4gICAgICAgIH1cbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgIC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaC0tc21hbGwgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCxcbiAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiAwIDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2UtZnJvbSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICB9XG5cbiAgICAuI3skbnN9cHJpY2UtLXBkcF9kYWlseWRlYWwtY291bnRkb3duICYge1xuICAgICAgICAmOm5vdCgucHJpY2UtZmluYWxfcHJpY2Vfd2l0aG91dF9kYWlseV9kZWFsKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLWNvbnRhaW5lci5wcmljZS1maW5hbF9wcmljZSB7XG4gICAgICAgICY6bm90KDpvbmx5LWNoaWxkKSAucHJpY2Uge1xuICAgICAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JG5zfWJ1bmRsZS1ib3hfX2FkZCB7XG4gICAgLnByaWNlLWFzLWNvbmZpZ3VyZWQge1xuICAgICAgICBtYXJnaW46IDFyZW0gMCAwO1xuICAgIH1cbn1cblxuLm1pbmltYWwtcHJpY2UtbGluayB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMS41cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb2xvcjogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtY29sb3I7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb250ZW50OiBcIi1cIjtcbiAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG59XG5cbi5wcmljZS1pbmNsdWRpbmctdGF4OjpiZWZvcmUsXG4ucHJpY2UtZXhjbHVkaW5nLXRheDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpIFwiOiBcIiAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaC0tc21hbGwgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgIHdpZHRoOiA5cmVtO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKlxuICogQmVjYXVzZSBwcmljZS1ib3ggaXMgdXNlZCBpbiBtdWx0aXBsZSBjb21wb25lbnRzIGxpa2UgdGlsZSwgYnV5Ym94IGV0YyxcbiAqIHdlIG5lZWQgdG8gbW92ZSB2YXJpYWJsZXMgdG8gc2VwYXJhdGUgZmlsZSB0byBoYXZlIHBvc3NpYmlsaXR5IHRvIGluY2x1ZGUgdGhlbVxuICogaW4gZWFjaCBjb21wb25lbnQgd2l0aG91dCBnZW5lcmF0ZSBwcmljZS1ib3ggY29tcG9uZW50IHN0eWxlcyBtdWx0aXBsZSB0aW1lc1xuKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKipcbiAqIFVzaW5nIHBzdWVkbyBlbGVtZW50cyB0byBtYWludGFpbiBhbiBlbGVtZW50cyBhc3BlY3QgcmF0aW8sIGV2ZW4gYXMgaXQgc2NhbGVzXG4gKiBJdCdzIHVzaW5nIG9ubHkgZm9yIElFMTEgYW5kIEVkZ2UgKHZlcnNpb24gd2hpY2ggZG9lc24ndCBzdXBwb3J0IG5hdGl2ZSBDU1MgZ3JpZCkgYnJvd3NlcnNcbiAqIEZvciBicm93c2VycyB3aGljaCBzdXBwb3J0IG5hdGl2ZSBDU1MgZ3JpZCwgd2UgYXJlIHVzaW5nIG1peGlucyBjb250YWluIGByZXNldGAgaW4gbWl4aW4gbmFtZVxuICogdG8gb3ZlcnJpZGUgZGVmYXVsdCBtaXhpbnMgKHByb2dyZXNzaXZlIGVuaGFuY2VtZW50KVxuICogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9zYXNzL21haW50YWluLWFzcGVjdC1yYXRpby1taXhpbi9cbiAqIEBwYXJhbSB7bnVtYmVyfSAkd2lkdGg6IHdpZHRoIG9mIHRoZSBlbGVtZW50O1xuICogQHBhcmFtIHtudW1iZXJ9ICRoZWlnaHQ6IGhlaWdodCBvZiB0aGUgZWxlbWVudDtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkY29udGVudENsYXNzOiBjbGFzcyBvZiB0aGUgZGlyZWN0IGNoaWxkIGVsZW1lbnQgdG8gYmUgcG9zaXRpb25lZCBhYnNvbHV0ZWx5O1xuICogQHBhcmFtIHtib29sZWFufSAkYXV0b3Bvc2l0aW9uOiB0ZWxscyBpZiBpdGVtIHNoYWxsIHRha2UgMTAwJSBvZiBwYXJlbnQgc2l6ZSBvciBpZiBpdCBjYW4gYmUgd2lkZXIvaGlnaGVyIGlmIG5lZWRlZDtcbiAqL1xuLyoqXG4gKiBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuICogaHR0cHM6Ly93d3cuc2Fzc21laXN0ZXIuY29tL2dpc3QvOWZhMTlkMjU0ODY0ZjMzZDRhODBcbiAqIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuICogQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuICogQHJldHVybiB7TnVtYmVyfVxuICovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gIGJvZHkuY21zLWttYS1ob21lLXBhZ2UgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZS1saW5rIHtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDIgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gIGJvZHkuY21zLWttYS1ob21lLXBhZ2UgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZS1saW5rIHtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDIgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NC4wMWVtKSB7XG4gIGJvZHkuY21zLWttYS1ob21lLXBhZ2UgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZS1saW5rIHtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDMgIWltcG9ydGFudDsgfSB9XG5cbi5jcy1wcm9kdWN0LXRpbGUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1wcm9kdWN0LXRpbGU6aG92ZXIge1xuICAgICAgei1pbmRleDogNTsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGUtLWNsaWNrYWJsZTpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGUtLWhpZGRlbiAuY3MtcHJvZHVjdC10aWxlX19tYWluLFxuICAuY3MtcHJvZHVjdC10aWxlLS1oaWRkZW4gLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdDpob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDEycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZC5jcy1wcm9kdWN0LXRpbGUtLXN0YXRpYyAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBwYWRkaW5nOiAxLjVyZW07IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIC5jcy1wcm9kdWN0LXRpbGVfX2Vwb2ludC1iYWRnZXMtLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIC5jcy1wcm9kdWN0LXRpbGVfX2Vwb2ludC1iYWRnZXMtLWdyaWQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDE7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXIgLmNzLXByb2R1Y3QtdGlsZV9fZXBvaW50LWJhZGdlcy0tZ3JpZCAuYmFkZ2Uge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIGFuZCAobWluLXdpZHRoOiAyMy4xMzVlbSkge1xuICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciAuY3MtcHJvZHVjdC10aWxlX19lcG9pbnQtYmFkZ2VzLS1ncmlkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXIgLmNzLXByb2R1Y3QtdGlsZV9fZXBvaW50LWJhZGdlcy0tZ3JpZCA+IC5iYWRnZXMge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgei1pbmRleDogMTsgfSB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciAuYmFkZ2VzIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1heC13aWR0aDogNzAlO1xuICAgICAgICBtYXJnaW46IGF1dG87IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZ2FwOiAwIDJyZW07XG4gICAgICBwYWRkaW5nOiAxLjVyZW0gMi4xcmVtIDIuNXJlbSAyLjFyZW07XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgM2ZyO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG8gYXV0bztcbiAgICAgIGdyaWQtY29sdW1uLWdhcDogMTBweDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwiaW1hZ2UgY29udGVudFwiIFwicmV2aWV3IGNvbnRlbnRcIiBcImJhZGdlIGNvbnRlbnRcIjsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXIge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDJmcjtcbiAgICAgICAgICBncmlkLXJvdy1nYXA6IDFyZW07IH0gfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXIgLmNzLXByb2R1Y3QtdGlsZV9fZXBvaW50LWJhZGdlcy0tZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIC5jcy1wcm9kdWN0LXRpbGVfX2Vwb2ludC1iYWRnZXMtLWdyaWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogdW5zZXQ7IH0gfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzAuMDFlbSkge1xuICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIC5jcy1wcm9kdWN0LXRpbGVfX2Vwb2ludC1iYWRnZXMtLWdyaWQge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBiYWRnZTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxcmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIC5jcy1wcm9kdWN0LXRpbGVfX2Vwb2ludC1iYWRnZXMtLWxpc3Qge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciAuYmFkZ2VzIHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2xpbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdyaWQtYXJlYTogaW1hZ2U7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTFyZW07IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsIHtcbiAgICAgICAgICBmbGV4OiBpbml0aWFsOyB9IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwtbGluayB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbmsge1xuICAgICAgcGFkZGluZzogMCA0cmVtIDAgMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGZsZXgtZ3JvdzogaW5pdGlhbDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwtbGluayB7XG4gICAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbmsge1xuICAgICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbC1saW5rIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbC1saW5rOmhvdmVyLCAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwtbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2ZpZ3VyZSB7XG4gICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19maWd1cmU6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fZmlndXJlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHRvcDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19maWd1cmU6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6IDEyNS43MTQyOSU7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fZmlndXJlIC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbC1saW5rIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2ZpZ3VyZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1pbi13aWR0aDogMTByZW07XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2ZpZ3VyZSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19maWd1cmU6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19pbWFnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogYXV0bzsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19pbWcge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogMjMwcHg7XG4gICAgbWF4LWhlaWdodDogMjMwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19pbWcge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDE0MHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgaGVpZ2h0OiAxOTZweDsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19pbWcge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19pbWcge1xuICAgICAgICAgIGhlaWdodDogYXV0bzsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlcyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2VzLS1ncmlkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlcy0tbGlzdCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZXMge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDAuM3JlbTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlcyB7XG4gICAgICBtYXJnaW46IDAgMCAwIDAuM3JlbTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMyNGRjZjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBwYWRkaW5nOiAwIDAuN3JlbTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1pbi1oZWlnaHQ6IDJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkgYW5kIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2Uge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtOyB9IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGlzY291bnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U0MWYxMjtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGlzY291bnQgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRpc2NvdW50IC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQgKyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGlzY291bnQgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1uZXcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZDQwMDtcbiAgICAgIGNvbG9yOiAjMDAwOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tbmV3IC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1uZXcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1uZXcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1mcmVlLXNoaXBwaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzN2I4NDE7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1mcmVlLXNoaXBwaW5nIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tcG9wdWxhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdiODQxO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQgKyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tcG9wdWxhciAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRhaWx5ZGVhbCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQxZjEyO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1kYWlseWRlYWwgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRhaWx5ZGVhbCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0ICsgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRhaWx5ZGVhbCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLWl0ZW0ge1xuICAgICAgbWFyZ2luOiAwIDAgMC41cmVtO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLWl0ZW0ge1xuICAgICAgbWFyZ2luOiAwIDFyZW0gMC4zcmVtIDA7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS1pdGVtOmVtcHR5IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQgKyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19nYWxsZXJ5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fY29udGVudCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdyaWQtYXJlYTogY29udGVudDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fY29udGVudCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleDogYXV0bztcbiAgICAgIGhlaWdodDogMjdyZW07IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fY29udGVudCB7XG4gICAgICAgICAgaGVpZ2h0OiAyN3JlbTtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNnJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRlbnQge1xuICAgICAgICAgIGhlaWdodDogMjhyZW07XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDRyZW07IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDVyZW07XG4gICAgICAgICAgbWluLWhlaWdodDogMzJyZW07XG4gICAgICAgICAgZmxleDogMTsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsZXg6IDM7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICAgICAgICBmbGV4OiBpbml0aWFsOyB9IH1cbiAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgd2hpdGUgMCUsIHdoaXRlIDEwJSwgcmdiYSgwLCAyMTIsIDI1NSwgMCkgMTAlKTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1ib3R0b20sIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1zaWRlcyB7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuICAgIEBtZWRpYSAocG9pbnRlcjogY29hcnNlKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSkgYW5kIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBvcGFjaXR5OiBpbml0aWFsO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBtaW4taGVpZ2h0OiB1bnNldDsgfVxuICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZsZXg6IDA7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBnYXA6IDFyZW0gMDsgfVxuICAgICAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1zaWRlcyB7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0b3A6IDMwcHg7XG4gICAgICBwYWRkaW5nOiAzOC4ycmVtIDIuNXJlbSAzcmVtO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAxMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zcmVtLCAwKTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiA0N3JlbTtcbiAgICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSAhaW1wb3J0YW50O1xuICAgICAgICAgIHRvcDogMDsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDQ0cmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDQzcmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZTpob3ZlciAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBsaW5lYXIsIHRyYW5zZm9ybSAwLjMzcyBjdWJpYy1iZXppZXIoMCwgMC42NiwgMC4zMiwgMC45OSk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkgYW5kIChwb2ludGVyOiBjb2Fyc2UpIHtcbiAgICAuY3MtcHJvZHVjdC10aWxlOmhvdmVyIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlOmhvdmVyIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyAuY3MtcHJvZHVjdC10aWxlLm5vLXRyYW5zaXRpb24sXG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tc3RhdGljIC5jcy1wcm9kdWN0LXRpbGU6aG92ZXIgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLXRvcCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy10b3Age1xuICAgICAgZmxleDogMTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLXNpZGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDFyZW07XG4gICAgcmlnaHQ6IDFyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1zaWRlcyB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1zaWRlcyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICByaWdodDogMC4ycmVtO1xuICAgICAgICB0b3A6IDEuNnJlbTtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLXNpZGVzIHtcbiAgICAgICAgcGFkZGluZzogMCAwLjVyZW07IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLXNpZGVzIHtcbiAgICAgICAgcGFkZGluZzogMCAxLjVyZW07IH0gfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtcmlnaHQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1yaWdodCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1yaWdodCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIG9yZGVyOiAtMTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtYm90dG9tIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLWJvdHRvbSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1ib3R0b20ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtYm90dG9tIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLWJvdHRvbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1sZWZ0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtbGVmdCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLWxlZnQge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgb3JkZXI6IDI7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtbGVmdCAuY3Mtc3Rhci1yYXRpbmcge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tZ3JpZCB7XG4gICAgbWFyZ2luOiAxcmVtIDAgMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3LS1ncmlkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGdyaWQtYXJlYTogcmV2aWV3O1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tZ3JpZCAuY3Mtc3Rhci1yYXRpbmcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwcmVtO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIHJvdy1nYXA6IDFyZW07XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW46IGF1dG87IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tZ3JpZCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3LS1saXN0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19yZXZpZXctLWxpc3Qge1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19yZXZpZXctLWxpc3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDJyZW07IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19yZXZpZXctLWxpc3QgKyAuY3MtcHJvZHVjdC10aWxlX19uYW1lIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMnJlbTsgfSB9XG4gICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlX19yZXZpZXctLWxpc3Qge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAwcmVtO1xuICAgICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgICBwYWRkaW5nLXRvcDogMC41cmVtOyB9XG4gICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tbGlzdCAuY3Mtc3Rhci1yYXRpbmdfX3RleHQge1xuICAgICAgICBtaW4td2lkdGg6IDJyZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3LS1saXN0IHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAwLjVyZW07XG4gICAgICAgICAgcmlnaHQ6IDlyZW07XG4gICAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlX19yZXZpZXctLWxpc3QgKyAuY3MtcHJvZHVjdC10aWxlX19uYW1lIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3LS1saXN0IHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3LS1saXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3OmVtcHR5IHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19zdG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC1zaXplOiAxLjNyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19zdG9jay0taW4ge1xuICAgICAgY29sb3I6ICMzN2I4NDE7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19zdG9jay0tb3V0IHtcbiAgICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19zdG9jayB7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3N0b2NrIHtcbiAgICAgIG1hcmdpbjogMCAxcmVtIDAgMDsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2RhaWx5ZGVhbC0tZ3JpZCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2RhaWx5ZGVhbC0tbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2RhaWx5ZGVhbC0tbGlzdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19kYWlseWRlYWwtLWxpc3QuY3MtZGFpbHlkZWFsLS10aWxlIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgYm90dG9tOiAwOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fZGFpbHlkZWFsIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19kYWlseWRlYWwge1xuICAgIG1hcmdpbjogMXJlbSAwIDAgMDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19xdHkge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgd2lkdGg6IDExcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX21haW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX21haW4ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fbWFpbiB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19tYWluIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBmbGV4OiAxIDEgMTAwJTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19tYWluIHtcbiAgICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19tYWluIHtcbiAgICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19tYWluIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAuY3MtcHJvZHVjdC10aWxlX19kZXRhaWxzIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZmxleDogMTtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2RldGFpbHMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fc3dhdGNoZXMge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3N3YXRjaGVzIHtcbiAgICAgIG1hcmdpbjogMS41cmVtIDAgMXJlbTtcbiAgICAgIG1pbi1oZWlnaHQ6IDIuNnJlbTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyxcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fc3dhdGNoZXMgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMCAwIDAuNXJlbTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlczplbXB0eSB7XG4gICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyxcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fc3dhdGNoZXMgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3N3YXRjaGVzLS1saXN0OmVtcHR5IHtcbiAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JyYW5kIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDIuMnJlbTtcbiAgICBtaW4taGVpZ2h0OiAxLjZyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYnJhbmQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgIGhlaWdodDogMnJlbTsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2JyYW5kIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gODBweCk7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JyYW5kLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuICAgIGxpbmUtY2xhbXA6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUge1xuICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIG1pbi1oZWlnaHQ6IDVyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2RldGFpbHMgPiAuY3MtcHJvZHVjdC10aWxlX19icmFuZCArIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUge1xuICAgICAgbWFyZ2luOiAwLjVyZW0gMCAwLjNyZW0gMDsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19kZXRhaWxzID4gLmNzLXByb2R1Y3QtdGlsZV9fYnJhbmQgKyAuY3MtcHJvZHVjdC10aWxlX19uYW1lIHtcbiAgICAgICAgICBtYXJnaW46IDAuMnJlbSAwIDAuM3JlbSAwO1xuICAgICAgICAgIGZsZXg6IDE7IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19kZXRhaWxzID4gLmNzLXByb2R1Y3QtdGlsZV9fYnJhbmQgKyAuY3MtcHJvZHVjdC10aWxlX19uYW1lIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwLjJyZW07IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3NrdSB7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19za3UtdGV4dCB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19za3Uge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fc2t1IHtcbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUtbGluayB7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgLyogZGlzYWJsZWQgYmVjYXVzZSBhdXRvcHJlZml4ZXIgY2FuJ3QgYnVpbGQgdGhpcyAqL1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHZhbHVlLW5vLXZlbmRvci1wcmVmaXggKi9cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgIGxpbmUtY2xhbXA6IDM7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC8qIHN0eWxlbGludC1lbmFibGUgdmFsdWUtbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgIC8qIHN0eWxlbGludC1lbmFibGUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeCAqLyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZS1saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMzMzMzMzM7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19uYW1lLWxpbms6aG92ZXIge1xuICAgICAgY29sb3I6ICMzMzMzMzMgIWltcG9ydGFudDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19kZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMi40cmVtO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIG1hcmdpbjogMi40cmVtIDAgMnJlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19kZXNjcmlwdGlvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZDpob3ZlciAuY3MtcHJvZHVjdC10aWxlX19kZXNjcmlwdGlvbiB7XG4gICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xuICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogNTtcbiAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgIGxpbmUtY2xhbXA6IDU7XG4gICAgICBtYXgtaGVpZ2h0OiAxMnJlbTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZDpob3ZlciAuY3MtcHJvZHVjdC10aWxlX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogNztcbiAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgbGluZS1jbGFtcDogNztcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMHJlbTsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19kZXNjcmlwdGlvbiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMXJlbSAwIDJyZW07XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgbGluZS1jbGFtcDogMjsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fZGVzY3JpcHRpb246ZW1wdHkge1xuICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkaXRpb25hbC0tbGlzdCB7XG4gICAgbWFyZ2luOiBhdXRvIDAgMCAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBvcmRlcjogLTE7XG4gICAgbWFyZ2luLWJvdHRvbTogLTQuOHJlbTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19hZGRpdGlvbmFsLS1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9IH1cbiAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGVfX2FkZGl0aW9uYWwtLWxpc3Qge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZV9fYWRkaXRpb25hbC0tbGlzdCB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZGl0aW9uYWwtLWxpc3Qge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMXJlbTsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvLWxlZnQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvLS1ncmlkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8tLWdyaWQge1xuICAgIG9yZGVyOiAtMTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8tLWdyaWQgLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogMXJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvLS1ncmlkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19hZGR0by0tZ3JpZCAuY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH0gfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGR0by0tbGlzdCB7XG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvLS1saXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGR0byB7XG4gICAgbWFyZ2luOiAxcmVtIDAgMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8gLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgICAgIGdhcDogMCAxLjVyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8gLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rIHtcbiAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluay1sYWJlbCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1kYXNoYm9hcmRfX2JvdHRvbS13aXNobGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGR0byxcbiAgLmNzLWRhc2hib2FyZF9fd2lzaGxpc3QtcHJvZHVjdHMtZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19hZGR0byB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGR0bzplbXB0eSB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQge1xuICAgIG1hcmdpbjogMXJlbSAwIDA7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQtYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQtYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogMXJlbTsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LXJlbW92ZS1pY29uIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMS41cmVtOyB9XG4gICAgQG1lZGlhIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1yZW1vdmUtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1yZW1vdmUtaWNvbi1pbWFnZSB7XG4gICAgd2lkdGg6IDEuMnJlbTtcbiAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICBmaWxsOiAjODg4OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LWNvbW1lbnQge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LWNvbW1lbnQge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMXB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIC8qIDEgKi8gfVxuICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb25zIHtcbiAgICBtYXJnaW46IDFyZW0gMCAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LWFjdGlvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb25zIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgbWFyZ2luOiAxcmVtIC0xcmVtIDA7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtYWN0aW9ucyAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb246aG92ZXIge1xuICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtYWN0aW9ucyAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb246aG92ZXIgc3BhbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtYWN0aW9ucyAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb24tLXJlbW92ZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtYWN0aW9ucyAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb24tLXJlbW92ZTpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb25zIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LWFjdGlvbi0tcmVtb3ZlOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcInxcIjtcbiAgICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2Uge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tZ3JpZCB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDRyZW07XG4gICAgICAgICAgaGVpZ2h0OiAxM3JlbTsgfVxuICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWdyaWQgLnByaWNlLWZpbmFsX3ByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4ID4gLnByaWNlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tZ3JpZCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDEuNXJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIHtcbiAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiAtMi41cmVtO1xuICAgICAgcGFkZGluZy10b3A6IDEuNXJlbTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtOyB9IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tZ3JpZCAub2xkLXByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4ID4gLnByaWNlLFxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIC5vbGQtcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXggPiAucHJpY2Uge1xuICAgICAgbGVmdDogOS41cmVtOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tZ3JpZCAub2xkLXByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4ID4gLnByaWNlLFxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tZ3JpZCAub2xkLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4ID4gLnByaWNlIHtcbiAgICAgICAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tZ3JpZCAub2xkLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4ID4gLnByaWNlIHtcbiAgICAgICAgdG9wOiAxLjk1cmVtICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tZ3JpZCAub2xkLXByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4OjpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNnJlbSk7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIC5vbGQtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggPiAucHJpY2Uge1xuICAgICAgICBib3R0b206IDAgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIC5wcmljZS1ib3ggLnByaWNlLXdyYXBwZXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tbGlzdCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1saXN0IC5zcGVjaWFsLXByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcmVtKSAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1saXN0IC5zcGVjaWFsLXByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4ID4gLnByaWNlIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzcHggIWltcG9ydGFudDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tbGlzdCAuc3BlY2lhbC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNC43cmVtKSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tbGlzdCAub2xkLXByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4ID4gLnByaWNlLFxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWxpc3QgLm9sZC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCA+IC5wcmljZSB7XG4gICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWxpc3QgLm9sZC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWxpc3QgLm9sZC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCA+IC5wcmljZSB7XG4gICAgICAgICAgdG9wOiAycmVtICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tbGlzdCAub2xkLXByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4ID4gLnByaWNlIHtcbiAgICAgICAgYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3gge1xuICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBsaW5lLWhlaWdodDogMnJlbTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xuICAgICAgICBmb250LXNpemU6IDEuOHJlbSAhaW1wb3J0YW50OyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH0gfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAucHJpY2Utd3JhcHBlciAucHJpY2Uge1xuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6ICMzMzMzMzM7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSA+IC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgZ2FwOiA1LjVyZW07IH0gfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgICAgICAgICAgZ2FwOiAwOyB9IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4ID4gLnByaWNlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYm90dG9tOiAtMnJlbTtcbiAgICAgICAgICBsZWZ0OiA5LjVyZW07IH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgZ2FwOiAwOyB9IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4ID4gLnByaWNlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAtMS41cmVtO1xuICAgICAgICAgIGxlZnQ6IDlyZW07IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2Uge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH0gfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICBjb2xvcjogI2MxMjcyZjsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTsgfVxuICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJyZW07XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMy4xcmVtKTsgfSB9XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW0gIWltcG9ydGFudDsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMuOXJlbSk7IH0gfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZS1maW5hbF9wcmljZSB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5OyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3gge1xuICAgICAgICBtYXJnaW46IDAgMCAycmVtIDA7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7IH0gfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSB7XG4gICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Utd3JhcHBlcjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfSB9XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLXdyYXBwZXIgLnByaWNlIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZS13cmFwcGVyOjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAubWluaW1hbC1wcmljZSB7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLXdyYXBwZXI6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgPiAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBnYXA6IDVyZW07IH0gfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSB7XG4gICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLXdyYXBwZXIgLnByaWNlIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZS13cmFwcGVyOjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAucHJpY2UtZnJvbSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAubWluaW1hbC1wcmljZSB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1kYWlseWRlYWwtY291bnRkb3duIC5wcmljZS1ib3g6bm90KC5wcmljZS1maW5hbF9wcmljZV93aXRob3V0X2RhaWx5X2RlYWwpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tZGFpbHlkZWFsLWNvdW50ZG93biAucHJpY2UtYm94LnByaWNlLWJveC0tdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggLnByaWNlLFxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSB7XG4gICAgICBtYXJnaW46IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICAgIGdhcDogM3JlbSAwICFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1zaWRlcyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1ib3R0b20ge1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOyB9IH1cbiIsIi8qKlxuICogU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbiAqIGh0dHBzOi8vd3d3LnNhc3NtZWlzdGVyLmNvbS9naXN0LzlmYTE5ZDI1NDg2NGYzM2Q0YTgwXG4gKiBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbiAqIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqL1xuXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgICBAcmV0dXJuICR2YWx1ZTtcbiAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgICAgICRfOiBsb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gICAgfVxuXG4gICAgJHJlc3VsdDogMDtcbiAgICAkZGlnaXRzOiAwO1xuICAgICRtaW51czogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSkgPT0gJy0nO1xuICAgICRudW1iZXJzOiAoXG4gICAgICAgICcwJzogMCxcbiAgICAgICAgJzEnOiAxLFxuICAgICAgICAnMic6IDIsXG4gICAgICAgICczJzogMyxcbiAgICAgICAgJzQnOiA0LFxuICAgICAgICAnNSc6IDUsXG4gICAgICAgICc2JzogNixcbiAgICAgICAgJzcnOiA3LFxuICAgICAgICAnOCc6IDgsXG4gICAgICAgICc5JzogOSxcbiAgICApO1xuXG4gICAgQGZvciAkaSBmcm9tIGlmKCRtaW51cywgMiwgMSkgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgICAgIEBpZiBub3QoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgICAgICAgQHJldHVybiB0by1sZW5ndGgoXG4gICAgICAgICAgICAgICAgaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksXG4gICAgICAgICAgICAgICAgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgICAgICAgJGRpZ2l0czogMTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJGRpZ2l0cyA9PSAwKSB7XG4gICAgICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwidmVuZG9ycy9pbmNsdWRlLW1lZGlhXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9iYWRnZS9taXhpblwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvcHJpY2UtYm94L3ZhcmlhYmxlcy5zY3NzXCI7XG5AaW1wb3J0IFwiZXRjL3ZpZXcuc2Nzc1wiO1xuQGltcG9ydCBcInV0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3NcIjtcbkBpbXBvcnQgXCJ1dGlscy9hc3BlY3QtcmF0aW9cIjtcbkBpbXBvcnQgXCJ1dGlscy9zdHJpbmctdG8tbnVtYmVyXCI7XG5AaW1wb3J0IFwidXRpbHMvcmVzZXQtbGlzdC1zdHlsZVwiO1xuQGltcG9ydCBcInV0aWxzL3Zpc3VhbGx5LWhpZGRlblwiO1xuXG4vLyBHZW5lcmFsXG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXI6IDEuNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXI6IDJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtYmFja2dyb3VuZDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2JveDtcbiRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1mb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuJHByb2R1Y3QtdGlsZS1ncmlkX2hvdmVyLWFuaW1hdGlvbjogdHJ1ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9ob3Zlci1hbmltYXRpb24tYnJlYWtwb2ludDogXCI+PWxhcHRvcFwiICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2hvdmVyLWJveC1zaGFkb3c6ICRrYW1fYm94X3NoYWRvdztcbiRwcm9kdWN0LXRpbGUtZ3JpZF9wYWRkaW5nOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfYWxpZ25tZW50OiBjZW50ZXIgIWRlZmF1bHQ7IC8vIGxlZnQgfCBjZW50ZXIgfCByaWdodFxuJHByb2R1Y3QtdGlsZS1saXN0X2hvdmVyLWVmZmVjdHM6IGZhbHNlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2hvdmVyLWVmZmVjdHMtYnJlYWtwb2ludDogXCI+PWxhcHRvcFwiICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2hvdmVyLWJveC1zaGFkb3c6ICRrYW1fYm94X3NoYWRvdztcbiRwcm9kdWN0LXRpbGUtbGlzdF9wYWRkaW5nOiAxLjVyZW0gMi4xcmVtO1xuJHByb2R1Y3QtdGlsZS1saXN0X2FsaWdubWVudDogbGVmdCAhZGVmYXVsdDsgLy8gbGVmdCB8IGNlbnRlciB8IHJpZ2h0XG4kcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi1icmVha3BvaW50OiBcInRhYmxldFwiICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4td2hlbi1zaWRlYmFyLWJyZWFrcG9pbnQ6IFwibGFwdG9wXCIgIWRlZmF1bHQ7XG5cbi8vIFByb2R1Y3QgbmFtZVxuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZm9udC1zaXplICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtZm9udC13ZWlnaHQ6IDcwMDtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5OiAzO1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluZS1oZWlnaHQ6IDIuNHJlbTtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yLXZpc2l0ZWQ6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yLWhvdmVyOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfcHJvZHVjdC1uYW1lLW1hcmdpbjogMXJlbSAwIDAuNXJlbSAwO1xuJHByb2R1Y3QtdGlsZS1ncmlkX3Byb2R1Y3QtbmFtZS1hbGlnbm1lbnQ6ICRwcm9kdWN0LXRpbGUtZ3JpZF9hbGlnbm1lbnQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfcHJvZHVjdC1uYW1lLW1hcmdpbjogMCAwICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvIDJ9ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X3Byb2R1Y3QtbmFtZS1hbGlnbm1lbnQ6ICRwcm9kdWN0LXRpbGUtbGlzdF9hbGlnbm1lbnQgIWRlZmF1bHQ7XG5cbi8vIEJhZGdlc1xuJHByb2R1Y3QtdGlsZV9iYWRnZXMtei1pbmRleDogMiAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMtZGlyZWN0aW9uOiBcInZlcnRpY2FsXCIgIWRlZmF1bHQ7IC8vIHZlcnRpY2FsIG9yIGhvcml6b250YWxcbiRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMteS1hc2lzLXBvc2l0aW9uLXByb3A6IHRvcCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXByb3A6IGxlZnQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfYmFkZ2VzLXktYXNpcy1wb3NpdGlvbi12YWx1ZTogMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXZhbHVlOiAwLjNyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfYmFkZ2VzLWl0ZW0tbWFyZ2luOiAwIDAgI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gNH0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfYmFkZ2VzLWRpcmVjdGlvbjogXCJob3Jpem9udGFsXCIgIWRlZmF1bHQ7IC8vIHZlcnRpY2FsIG9yIGhvcml6b250YWxcbiRwcm9kdWN0LXRpbGUtbGlzdF9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXByb3A6IGxlZnQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfYmFkZ2VzLW1hcmdpbjogMCAwIDAgMC4zcmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2JhZGdlcy1pdGVtLW1hcmdpbjogMCAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwLjNyZW0gMCAhZGVmYXVsdDtcblxuLy8gU3dhdGNoZXNcbiRwcm9kdWN0LXRpbGUtZ3JpZF9zd2F0Y2hlcy1jb250YWluZXItbWluLWhlaWdodDogMi42cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX3N3YXRjaGVzLW1hcmdpbjogMS41cmVtIDAgI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gMn0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfc3dhdGNoZXMtYWxpZ25tZW50OiAkcHJvZHVjdC10aWxlLWdyaWRfYWxpZ25tZW50ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X3N3YXRjaGVzLW1hcmdpbjogMCAwIDAuNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9zd2F0Y2hlcy1hbGlnbm1lbnQ6ICRwcm9kdWN0LXRpbGUtbGlzdF9hbGlnbm1lbnQgIWRlZmF1bHQ7XG5cbi8vIEJyYW5kXG4kcHJvZHVjdC10aWxlX2JyYW5kLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9icmFuZC1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRwcm9kdWN0LXRpbGVfYnJhbmQtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2JyYW5kLWFsaWdubWVudDogY2VudGVyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2JyYW5kLWFsaWdubWVudDogbGVmdCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9icmFuZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfYnJhbmQtb3JkZXI6IC0yICFkZWZhdWx0O1xuXG4vLyBBZGRvbnNcbiRwcm9kdWN0LXRpbGVfYWRkb25zLWJhY2tncm91bmQ6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9hZGRvbnMtYm9yZGVyLXJhZGl1czogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2FkZG9ucy16aW5kZXgtaG92ZXI6IDUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2FkZG9ucy1ob3Jpem9udGFsLXBhZGRpbmc6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2FkZG9ucy1zaG93LWZvci1zdGF0aWMtdGlsZTogZmFsc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfYWRkb25zLWhlaWdodC1vbi1ob3ZlcjogMzguMnJlbSAyLjVyZW0gM3JlbTtcbiRwcm9kdWN0LXRpbGUtbGlzdF9hZGRvbnMtd2lkdGg6IDI1cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2FkZG9ucy1ib3JkZXItbGVmdDogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2FkZG9ucy1vbmUtY29sdW1uLW1hcmdpbjogI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gMn0gMCAwICFkZWZhdWx0O1xuXG4vLyBBZGRpdGlvbmFsIHNlY3Rpb25cbiRwcm9kdWN0LXRpbGUtbGlzdF9hZGRpdGlvbmFsLW1hcmdpbjogYXV0byAwIDAgMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9hZGRpdGlvbmFsLWFsaWdubWVudDogJHByb2R1Y3QtdGlsZS1saXN0X2FsaWdubWVudCAhZGVmYXVsdDtcblxuLy8gUmV2aWV3XG4kcHJvZHVjdC10aWxlLWdyaWRfcmV2aWV3LW1hcmdpbjogI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gMn0gMCAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X3Jldmlldy1tYXJnaW46IDAgMCAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAhZGVmYXVsdDtcblxuLy8gQWRkdG9cbiRwcm9kdWRjdC10aWxlX2FkZHRvLWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2FkZHRvLW1hcmdpbjogI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gMn0gMCAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2FkZHRvLW1hcmdpbjogI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gMn0gMCAwICFkZWZhdWx0O1xuXG4vLyBRdHkgc3dpY3RoZXJcbiRwcm9kdWRjdC10aWxlX3F0eS1zd2l0Y2hlci13aWR0aDogMTFyZW0gIWRlZmF1bHQ7XG4kcHJvZHVkY3QtdGlsZV9xdHktc3dpdGNoZXItc3BhY2UtYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLyBBZGR0b2NhcnRcbiRwcm9kdWN0LXRpbGUtZ3JpZF9hZGR0b2NhcnQtbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfYWRkdG9jYXJ0LW1hcmdpbjogI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gNH0gMCAwICFkZWZhdWx0O1xuXG4vLyBTdG9ja1xuJHByb2R1Y3QtdGlsZV9zdG9jay1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3RvY2staW4tY29sb3I6ICRjb2xvcl9hcHBsZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3RvY2stb3V0LW9mLWNvbG9yOiAkY29sb3JfY3JpbXNvbiAhZGVmYXVsdDtcblxuJHByb2R1Y3QtdGlsZS1ncmlkX3N0b2NrLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9zdG9jay1tYXJnaW46IDAgI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gMn0gMCAwICFkZWZhdWx0O1xuXG4vLyBEYWlseSBEZWFsXG4kcHJvZHVjdC10aWxlLWdyaWRfZGFpbHlkZWFsLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9kYWlseWRlYWwtbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgMCAhZGVmYXVsdDtcblxuLy8gV2lzaGxpc3RcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtY29tbWVudC12aXNpYmxlOiBmYWxzZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtY29tbWVudC10ZXh0YXJlYS1oZWlnaHQ6IDVyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LWFjdGlvbnMtbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LWFjdGlvbnMtZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLWZpbGw6ICRjb2xvcl9ib3JkZXItNzAwICFkZWZhdWx0O1xuXG4vLyBEZXNjcmlwdGlvblxuJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1mb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1mb250LXdlaWdodDogNDAwO1xuJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1saW5lLWhlaWdodDogMi40cmVtO1xuXG4kcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWNvbG9yOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1tYXJnaW46IDAgMCAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAhZGVmYXVsdDtcblxuJHByb2R1Y3QtdGlsZS1saXN0X2Rlc2NyaXB0aW9uLXRleHQtYWxpZ246ICRwcm9kdWN0LXRpbGUtbGlzdF9hbGlnbm1lbnQgIWRlZmF1bHQ7XG5cbi8vIFRodW1ibmFpbFxuJHByb2R1Y3QtdGlsZS1ncmlkX2xpbWl0LWNvbnRhaW5lci10by1pbWFnZS1zaXplOiBmYWxzZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF90aHVtYm5haWwtYm94LXdpZHRoOiAyMy40cmVtO1xuJHByb2R1Y3QtdGlsZS1saXN0X3RodW1ibmFpbC1ib3gtd2lkdGgtbW9iaWxlOiAjeyRwcm9kdWN0LXRpbGUtbGlzdF90aHVtYm5haWwtYm94LXdpZHRoIC8gMn0gIWRlZmF1bHQ7XG5cbi8vIFByaWNlc1xuJHByb2R1Y3QtdGlsZV9ub3JtYWwtcHJpY2UtY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1mb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtNDtcbiRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0OiA3MDA7XG4kcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiRwcm9kdWN0LXRpbGVfc3BlY2lhbC1wcmljZS1mb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtNDtcbiRwcm9kdWN0LXRpbGVfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDogNzAwO1xuJHByb2R1Y3QtdGlsZV9vbGQtcHJpY2UtY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kcHJvZHVjdC10aWxlX29sZC1wcmljZS1mb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtd2VpZ2h0OiA0MDA7XG4kcHJvZHVjdC10aWxlX29sZC1wcmljZS10ZXh0LWRlY29yYXRpb246ICRwcmljZS1ib3hfb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbiAhZGVmYXVsdDtcblxuJHByb2R1Y3QtdGlsZS1ncmlkX3ByaWNlcy1kaXJlY3Rpb246IFwiaG9yaXpvbnRhbFwiICFkZWZhdWx0OyAvLyB2ZXJ0aWNhbCBvciBob3Jpem9udGFsXG4kcHJvZHVjdC10aWxlLWdyaWRfcHJpY2VzLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9kaXNwbGF5LW9sZC1wcmljZS1maXJzdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9wcmljZXMtYWxpZ25tZW50OiAkcHJvZHVjdC10aWxlLWdyaWRfYWxpZ25tZW50ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X3ByaWNlcy1kaXJlY3Rpb246IFwidmVydGljYWxcIiAhZGVmYXVsdDsgLy8gdmVydGljYWwgb3IgaG9yaXpvbnRhbFxuJHByb2R1Y3QtdGlsZS1saXN0X3ByaWNlcy1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfZGlzcGxheS1vbGQtcHJpY2UtZmlyc3Q6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIEhlbHBlcnMgKGRvbid0IGVkaXQpXG4kcHJvZHVjdC10aWxlLWxpc3RfZnVsbC1jb2x1bW4tYnJlYWtwb2ludC1taW46IFwiPj0jeyRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLWJyZWFrcG9pbnR9XCI7XG4kcHJvZHVjdC10aWxlLWxpc3RfZnVsbC1jb2x1bW4tYnJlYWtwb2ludC1tYXg6IFwiPCN7JHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4tYnJlYWtwb2ludH1cIjtcbiRwcm9kdWN0LXRpbGUtbGlzdF9zaWRlYmFyLWNvbHVtbi1icmVha3BvaW50LW1pbjogXCI+PSN7JHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4td2hlbi1zaWRlYmFyLWJyZWFrcG9pbnR9XCI7XG4kcHJvZHVjdC10aWxlLWxpc3Rfc2lkZWJhci1jb2x1bW4tYnJlYWtwb2ludC1tYXg6IFwiPCN7JHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4td2hlbi1zaWRlYmFyLWJyZWFrcG9pbnR9XCI7XG5cbiRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlOiBkZWVwLWdldCgkdmlldy14bWwsIG1lZGlhLCBpbWFnZXMsIGltYWdlLCBjYXRlZ29yeV9wYWdlX2dyaWQpO1xuJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2Utd2lkdGg6IHRvLW51bWJlcigje21hcC1nZXQoJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2UsIHdpZHRoKX0pO1xuJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2UtaGVpZ2h0OiB0by1udW1iZXIoI3ttYXAtZ2V0KCRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLCBoZWlnaHQpfSk7XG5cbmJvZHkuY21zLWttYS1ob21lLXBhZ2Uge1xuICAgIC4jeyRuc31wcm9kdWN0LXRpbGVfX25hbWUtbGluayB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMiAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPmxhcHRvcFwiKSB7XG4gICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDMgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JG5zfXByb2R1Y3QtdGlsZSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1iYWNrZ3JvdW5kO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1ncmlkX2hvdmVyLWFuaW1hdGlvbi1icmVha3BvaW50KSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHByb2R1Y3QtdGlsZV9hZGRvbnMtemluZGV4LWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY2xpY2thYmxlIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1oaWRkZW4ge1xuICAgICAgICAjeyRyb290fV9fbWFpbixcbiAgICAgICAgI3skcm9vdH1fX2FkZG9ucyB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWxpc3Qge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9ob3Zlci1lZmZlY3RzKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWxpc3RfaG92ZXItZWZmZWN0cy1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlcjtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwICN7LSRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlcn07XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAyICogI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXJ9KTtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogJHByb2R1Y3QtdGlsZS1saXN0X2hvdmVyLWJveC1zaGFkb3c7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJHByb2R1Y3QtdGlsZS1saXN0X2hvdmVyLWJveC1zaGFkb3c7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1ncmlkIHtcbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfYWRkb25zLXNob3ctZm9yLXN0YXRpYy10aWxlID09IGZhbHNlKSB7XG4gICAgICAgICAgICAmI3skcm9vdH0tLXN0YXRpYyB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2FkZG9ucyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdC10aWxlLWdyaWRfcGFkZGluZztcbiAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGVfX2Vwb2ludC1iYWRnZXMtLWxpc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGVfX2Vwb2ludC1iYWRnZXMtLWdyaWQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgIC5iYWRnZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIsIFwiPnBob25lXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICAmID4gLmJhZGdlcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmJhZGdlcyB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNzAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGdhcDogMCAycmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMS41cmVtIDIuMXJlbSAyLjVyZW0gMi4xcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDNmcjtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIGF1dG87XG4gICAgICAgICAgICBncmlkLWNvbHVtbi1nYXA6IDEwcHg7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgICAgICAgICAgICAgIFwiaW1hZ2UgY29udGVudFwiXG4gICAgICAgICAgICAgICAgXCJyZXZpZXcgY29udGVudFwiXG4gICAgICAgICAgICAgICAgXCJiYWRnZSBjb250ZW50XCI7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyZnI7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3ctZ2FwOiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZV9fZXBvaW50LWJhZGdlcy0tZ3JpZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBncmlkLWFyZWE6IHVuc2V0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1hcmVhOiBiYWRnZTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZV9fZXBvaW50LWJhZGdlcy0tbGlzdCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYmFkZ2VzIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ3JpZC1hcmVhOiBpbWFnZTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTFyZW07XG4gICAgICAgIH1cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuICAgICAgICAgICAgICAgIGZsZXg6IGluaXRpYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aHVtYm5haWwtbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgcGFkZGluZzogMCA0cmVtIDAgMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogaW5pdGlhbDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1saXN0X2Z1bGwtY29sdW1uLWJyZWFrcG9pbnQtbWluKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi1icmVha3BvaW50ICE9ICRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLXdoZW4tc2lkZWJhci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAmIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWxpc3Rfc2lkZWJhci1jb2x1bW4tYnJlYWtwb2ludC1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19maWd1cmUge1xuICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47IC8vIElFMTEgLSBwcmV2ZW50cyBmcm9tIGV4Y2Vzc2l2ZSB0cmFuc2l0aW9uIGVmZmVjdFxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IC8vIElFMTEgZG8gbm90IHJlc3BlY3QgY2VudGVyIHZhbHVlIHVudGlsIHBhcmVudCBoYXMgZmxleC1kaXJlY3Rpb24gc2V0IHRvIGNvbHVtbi5cbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB0b3A6IDA7XG5cbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1ncmlkX2xpbWl0LWNvbnRhaW5lci10by1pbWFnZS1zaXplKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAoJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2Utd2lkdGggLyAxMCkgKiAxcmVtO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6ICgkcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZS1oZWlnaHQgLyAxMCkgKiAxcmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBc3BlY3QgcmF0aW8gZm9yIHRpbGUgdGh1bWJuYWlsIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gaW1hZ2UgJ2NhdGVnb3J5X3BhZ2VfZ3JpZCcgc2l6ZXMgaW4gZXRjL3ZpZXcueG1sXG4gICAgICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8oXG4gICAgICAgICAgICAgICAgJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2Utd2lkdGgsXG4gICAgICAgICAgICAgICAgJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2UtaGVpZ2h0LFxuICAgICAgICAgICAgICAgICN7JG5zfXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbmtcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMHJlbTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvLyBJRTExIGRvIG5vdCByZXNwZWN0IGNlbnRlciB2YWx1ZSB1bnRpbCBwYXJlbnQgaGFzIGZsZXgtZGlyZWN0aW9uIHNldCB0byBjb2x1bW4uXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuXG4gICAgJl9faW1nIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogMjMwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIzMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDE0MHB4O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE5NnB4O1xuICAgICAgICB9XG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlcyB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgJi0tZ3JpZCB7XG4gICAgICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGlzdCB7XG4gICAgICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkcHJvZHVjdC10aWxlX2JhZGdlcy16LWluZGV4O1xuXG4gICAgICAgICAgICAjeyRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMteS1hc2lzLXBvc2l0aW9uLXByb3B9OiAkcHJvZHVjdC10aWxlLWdyaWRfYmFkZ2VzLXktYXNpcy1wb3NpdGlvbi12YWx1ZTtcbiAgICAgICAgICAgICN7JHByb2R1Y3QtdGlsZS1ncmlkX2JhZGdlcy14LWFzaXMtcG9zaXRpb24tcHJvcH06ICRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXZhbHVlO1xuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMtZGlyZWN0aW9uID09IFwidmVydGljYWxcIikge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X2JhZGdlcy1tYXJnaW47XG5cbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X2JhZGdlcy14LWFzaXMtcG9zaXRpb24tcHJvcCA9PSBcInJpZ2h0XCIpIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X2JhZGdlcy14LWFzaXMtcG9zaXRpb24tcHJvcCA9PSBcImNlbnRlclwiKSB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X2JhZGdlcy1kaXJlY3Rpb24gPT0gXCJ2ZXJ0aWNhbFwiKSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlIHtcbiAgICAgICAgQGluY2x1ZGUgYmFkZ2UoKTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lXCIsIFwiPHBob25lTGdcIikge1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNjb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKFwiZGlzY291bnRcIik7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKFwiZGlzY291bnRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uZXcge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZShcIm5ld1wiKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oXCJuZXdcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mcmVlLXNoaXBwaW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoXCJmcmVlLXNoaXBwaW5nXCIpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbihcImZyZWUtc2hpcHBpbmdcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wb3B1bGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoXCJwb3B1bGFyXCIpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbihcInBvcHVsYXJcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYWlseWRlYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZShcImRhaWx5ZGVhbFwiKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oXCJkYWlseWRlYWxcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZS1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1ncmlkX2JhZGdlcy1pdGVtLW1hcmdpbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAvLyBTZXQgd2lkdGggZXhwbGljaXRseSB0byBhdm9pZCBFZGdlIGJ1Z3NcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3RfYmFkZ2VzLWl0ZW0tbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oKTtcbiAgICB9XG5cbiAgICAmX19nYWxsZXJ5IHtcbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIGdyaWQtYXJlYTogY29udGVudDtcblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4OiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiAyN3JlbTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjdyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDZyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDI4cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzMnJlbTtcbiAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBmbGV4OiAzO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcbiAgICAgICAgICAgICAgICBmbGV4OiBpbml0aWFsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLWJyZWFrcG9pbnQgIT0gJHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4td2hlbi1zaWRlYmFyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyICYge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9zaWRlYmFyLWNvbHVtbi1icmVha3BvaW50LW1pbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZG9ucyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9kdWN0LXRpbGVfYWRkb25zLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIDBkZWcsXG4gICAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpIDAlLFxuICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSAxMCUsXG4gICAgICAgICAgICByZ2JhKDAsIDIxMiwgMjU1LCAwKSAxMCVcbiAgICAgICAgKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgJi1ib3R0b20sXG4gICAgICAgICYtc2lkZXMge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAgICAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X2FkZG9ucy1vbmUtY29sdW1uLW1hcmdpbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBvcGFjaXR5OiBpbml0aWFsO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiB1bnNldDtcblxuICAgICAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAmIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X2FkZG9ucy1vbmUtY29sdW1uLW1hcmdpbjtcbiAgICAgICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9bGFwdG9wXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAwO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiAxcmVtIDA7XG5cbiAgICAgICAgICAgICAgICAgICAgJi1zaWRlcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdG9wOiAzMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogJHByb2R1Y3QtdGlsZS1ncmlkX2FkZG9ucy1oZWlnaHQtb24taG92ZXI7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkcHJvZHVjdC10aWxlLWdyaWRfaG92ZXItYm94LXNoYWRvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfaG92ZXItYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtM3JlbSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9bGFwdG9wXCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNDdyZW07XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNDRyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0M3JlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9OmhvdmVyICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1ncmlkX2hvdmVyLWFuaW1hdGlvbi1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9ob3Zlci1hbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSAwLjFzIGxpbmVhcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAwLjMzcyAkdHJhbnNpdGlvbi1lYXNpbmdfc2xvd2Rvd24tOTAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vZGlzYWJsaW5nIGhvdmVyIGVmZmVjdCBvbiBpcGFkc1xuICAgICAgICAgICAgICAgIEBtZWRpYSAocG9pbnRlcjogY29hcnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9Lm5vLXRyYW5zaXRpb24sXG4gICAgICAgICAgICAjeyRyb290fS0tc3RhdGljICYge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGRvbnMtdG9wIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZG9ucy1zaWRlcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgcmlnaHQ6IDFyZW07XG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICByaWdodDogMC4ycmVtO1xuICAgICAgICAgICAgdG9wOiAxLjZyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkb25zLXJpZ2h0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGRvbnMtYm90dG9tIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWxpc3RfZnVsbC1jb2x1bW4tYnJlYWtwb2ludC1taW4pIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi1icmVha3BvaW50ICE9ICRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLXdoZW4tc2lkZWJhci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAmIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1saXN0X3NpZGViYXItY29sdW1uLWJyZWFrcG9pbnQtbWluKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZG9ucy1sZWZ0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgIH1cblxuICAgICAgICAuY3Mtc3Rhci1yYXRpbmcge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcmV2aWV3IHtcbiAgICAgICAgJi0tZ3JpZCB7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtZ3JpZF9yZXZpZXctbWFyZ2luO1xuXG4gICAgICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGdyaWQtYXJlYTogcmV2aWV3O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgLiN7JG5zfXN0YXItcmF0aW5nIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMHJlbTtcbiAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICAgICAgICByb3ctZ2FwOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtbGlzdF9yZXZpZXctbWFyZ2luO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9mdWxsLWNvbHVtbi1icmVha3BvaW50LW1pbikge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXI7XG5cbiAgICAgICAgICAgICAgICArIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUge1xuICAgICAgICAgICAgICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLWJyZWFrcG9pbnQgIT0gJHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4td2hlbi1zaWRlYmFyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyICYge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMHJlbTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgLiN7JG5zfXN0YXItcmF0aW5nX190ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9zaWRlYmFyLWNvbHVtbi1icmVha3BvaW50LW1pbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogOXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X3Jldmlldy1tYXJnaW47XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICsgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3RvY2sge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9zdG9jay1mb250LXNpemU7XG5cbiAgICAgICAgJi0taW4ge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfc3RvY2staW4tY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXQge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfc3RvY2stb3V0LW9mLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtZ3JpZF9zdG9jay1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X3N0b2NrLW1hcmdpbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2RhaWx5ZGVhbCB7XG4gICAgICAgICYtLWdyaWQge1xuICAgICAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGlzdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5jcy1kYWlseWRlYWwtLXRpbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1ncmlkX2RhaWx5ZGVhbC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X2RhaWx5ZGVhbC1tYXJnaW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19xdHkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVkY3QtdGlsZV9xdHktc3dpdGNoZXItc3BhY2UtYm90dG9tO1xuICAgICAgICB3aWR0aDogJHByb2R1ZGN0LXRpbGVfcXR5LXN3aXRjaGVyLXdpZHRoO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmX19tYWluIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBmbGV4OiAxIDEgMTAwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1saXN0X2Z1bGwtY29sdW1uLWJyZWFrcG9pbnQtbWluKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi1icmVha3BvaW50ICE9ICRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLXdoZW4tc2lkZWJhci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAmIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWxpc3Rfc2lkZWJhci1jb2x1bW4tYnJlYWtwb2ludC1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19kZXRhaWxzIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3dhdGNoZXMge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWdyaWRfc3dhdGNoZXMtbWFyZ2luO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtdGlsZS1ncmlkX3N3YXRjaGVzLWNvbnRhaW5lci1taW4taGVpZ2h0O1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfc3dhdGNoZXMtYWxpZ25tZW50ID09IFwibGVmdFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkcHJvZHVjdC10aWxlLWdyaWRfc3dhdGNoZXMtYWxpZ25tZW50ID09IFwicmlnaHRcIikge1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3Rfc3dhdGNoZXMtbWFyZ2luO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9zd2F0Y2hlcy1hbGlnbm1lbnQgPT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9zd2F0Y2hlcy1hbGlnbm1lbnQgPT0gXCJyaWdodFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpc3Qge1xuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19icmFuZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAyLjJyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuNnJlbTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA4MHB4KTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JyYW5kLXRleHQge1xuICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfYnJhbmQtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9icmFuZC1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMTtcbiAgICAgICAgbGluZS1jbGFtcDogMTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmUtaGVpZ2h0O1xuICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtZm9udC13ZWlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtZm9udC1zaXplO1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiA1cmVtO1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICN7JHJvb3R9X19kZXRhaWxzID4gI3skcm9vdH1fX2JyYW5kICsgJiB7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwIDAuM3JlbSAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAuMnJlbSAwIDAuM3JlbSAwO1xuICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2t1IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAmLXRleHQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaC0tc21hbGw7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbmFtZS1saW5rIHtcbiAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3I7XG5cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yICE9ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3ItaG92ZXIpIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGRpc2FibGVkIGJlY2F1c2UgYXV0b3ByZWZpeGVyIGNhbid0IGJ1aWxkIHRoaXMgKi9cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgdmFsdWUtbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbWF4LWxpbmVzLWRpc3BsYXkgPiAxKSB7XG4gICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5O1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgbGluZS1jbGFtcDogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbWF4LWxpbmVzLWRpc3BsYXk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSB2YWx1ZS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeCAqL1xuXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci12aXNpdGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci1ob3ZlciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tZm9udC13ZWlnaHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWxpbmUtaGVpZ2h0O1xuICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1jb2xvcjtcbiAgICAgICAgbWFyZ2luOiAyLjRyZW0gMCAycmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkOmhvdmVyICYge1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3ggIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDU7XG4gICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICBsaW5lLWNsYW1wOiA1O1xuICAgICAgICAgICAgLy8gbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEycmVtO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogNztcbiAgICAgICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICAgICAgbGluZS1jbGFtcDogNztcbiAgICAgICAgICAgICAgICAvLyBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMXJlbSAwIDJyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkcHJvZHVjdC10aWxlLWxpc3RfZGVzY3JpcHRpb24tdGV4dC1hbGlnbjtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGxpbmUtY2xhbXA6IDI7XG4gICAgICAgICAgICAvLyBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGRpdGlvbmFsIHtcbiAgICAgICAgJi0tbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtbGlzdF9hZGRpdGlvbmFsLW1hcmdpbjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC00LjhyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1saXN0X2Z1bGwtY29sdW1uLWJyZWFrcG9pbnQtbWluKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLWJyZWFrcG9pbnQgIT0gJHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4td2hlbi1zaWRlYmFyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyICYge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1saXN0X3NpZGViYXItY29sdW1uLWJyZWFrcG9pbnQtbWluKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGR0byB7XG4gICAgICAgICYtbGVmdCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cbiAgICAgICAgJi0tZ3JpZCB7XG4gICAgICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgICAgICAgIC5jcy1saW5rcy1ibG9jay1hZGR0byB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9bGFwdG9wXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAgICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saXN0IHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtbGlzdF9hZGR0by1tYXJnaW47XG4gICAgICAgICAgICAuY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICAgICAgICAgICAgICAgIGdhcDogMCAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2xpbmsge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJvZHVkY3QtdGlsZV9hZGR0by1mb250LXNpemU7XG4gICAgICAgICAgICAmLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0ICYsXG4gICAgICAgIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LXByb2R1Y3RzLWdyaWQgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZHRvY2FydCB7XG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWdyaWRfYWRkdG9jYXJ0LW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkdG9jYXJ0LWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtcmVtb3ZlLWljb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdC10aWxlLWdyaWRfcGFkZGluZztcblxuICAgICAgICBAbWVkaWEgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1yZW1vdmUtaWNvbi1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1zaXplO1xuICAgICAgICBmaWxsOiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLWZpbGw7XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtY29tbWVudCB7XG4gICAgICAgIEBpZiBub3QoJHByb2R1Y3QtdGlsZV93aXNobGlzdC1jb21tZW50LXZpc2libGUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3dpc2hsaXN0LWFjdGlvbnMge1xuICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1tYXJnaW47XG4gICAgICAgIGRpc3BsYXk6ICRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1kaXNwbGF5O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW46IDFyZW0gLTFyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZVwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBAaWYgKCRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1kaXNwbGF5ID09IGZsZXgpIHtcbiAgICAgICAgLy8gICAgIGp1c3RpZnktY29udGVudDogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWp1c3RpZnktY29udGVudDtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGVfX3dpc2hsaXN0IHtcbiAgICAgICAgICAgICYtYWN0aW9uIHtcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi0tcmVtb3ZlIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwifFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wcmljZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgICAgICAgJi0tZ3JpZCB7XG4gICAgICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgLnByaWNlLWZpbmFsX3ByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmID4gLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTIuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXggPiAucHJpY2UsXG4gICAgICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXggPiAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA5LjVyZW07XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgICAgICAmID4gLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMS45NXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS42cmVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICYgPiAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJpY2UtYm94IC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saXN0IHtcbiAgICAgICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXJlbSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICYgPiAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDNweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00LjdyZW0pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCA+IC5wcmljZSxcbiAgICAgICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgJiA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYgPiAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByaWNlLWJveCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuXG4gICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycmVtKTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9ub3JtYWwtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGlsZV9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAmID4gLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiA1LjVyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX29sZC1wcmljZS1mb250LXNpemUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9vbGQtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHByb2R1Y3QtdGlsZV9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJiA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBQcmljZSBib3R0b20gcHJvbW9cbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA5LjVyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYgPiAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJpY2UgdG9wIHByb21vXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IC0xLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA5cmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMuMXJlbSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgICAgICAvLyBtYXJnaW4tYm90dG9tOiAtMC43cmVtO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMuOXJlbSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByaWNlLWZpbmFsX3ByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMnJlbSAwO1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfZGlzcGxheS1vbGQtcHJpY2UtZmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuc3BlY2lhbC1wcmljZSAucHJpY2Utd3JhcHBlcjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfcHJpY2VzLWRpcmVjdGlvbiA9PSBcInZlcnRpY2FsXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgICAgICAgICAucHJpY2UtZnJvbSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubWluaW1hbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfcHJpY2VzLWFsaWdubWVudCA9PSBcImxlZnRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9wcmljZXMtYWxpZ25tZW50ID09IFwicmlnaHRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9kaXNwbGF5LW9sZC1wcmljZS1maXJzdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAubWluaW1hbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPiAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfcHJpY2VzLWFsaWdubWVudCA9PSBcImxlZnRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkcHJvZHVjdC10aWxlLWdyaWRfcHJpY2VzLWFsaWdubWVudCA9PSBcInJpZ2h0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3RfcHJpY2VzLW1hcmdpbjtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmID4gLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X2Rpc3BsYXktb2xkLXByaWNlLWZpcnN0KSB7XG4gICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuc3BlY2lhbC1wcmljZSAucHJpY2Utd3JhcHBlcjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWxpc3RfcHJpY2VzLWRpcmVjdGlvbiA9PSBcInZlcnRpY2FsXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgICAgICAgICAucHJpY2UtZnJvbSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubWluaW1hbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWxpc3RfZGlzcGxheS1vbGQtcHJpY2UtZmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLnNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnByaWNlLWZyb20sXG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS10byB7XG4gICAgICAgICAgICAgICAgICAgICAgICAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAucHJpY2UtbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhaWx5ZGVhbC1jb3VudGRvd24gLnByaWNlLWJveCB7XG4gICAgICAgICAgICAmOm5vdCgucHJpY2UtZmluYWxfcHJpY2Vfd2l0aG91dF9kYWlseV9kZWFsKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wcmljZS1ib3gtLXZpc2libGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi0tbGlzdCB7XG4gICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGVfX3ByaWNlIHtcbiAgICAgICAgICAgIC5wcmljZS1ib3gge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCAucHJpY2UsXG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuI3skbnN9cHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBnYXA6IDNyZW0gMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgJi1zaWRlcyB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLWJvdHRvbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLXByb2R1Y3RzLWxpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3RzLWxpc3RfX2l0ZW0ge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtcHJvZHVjdHMtbGlzdDpub3QoLmNzLXByb2R1Y3RzLWxpc3QtLWNhcm91c2VsKSAuY3MtcHJvZHVjdHMtbGlzdF9faXRlbSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIC5jcy1wcm9kdWN0cy1saXN0Om5vdCguY3MtcHJvZHVjdHMtbGlzdC0tY2Fyb3VzZWwpIC5jcy1wcm9kdWN0cy1saXN0X19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wcm9kdWN0cy1saXN0LS1jYXJvdXNlbCAuY3MtcHJvZHVjdHMtbGlzdF9faXRlbSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS1jYXJvdXNlbCAuY3MtcHJvZHVjdHMtbGlzdF9faXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfSB9XG4iLCJAaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcInV0aWxzL3Jlc2V0LWxpc3Qtc3R5bGVcIjtcbkBpbXBvcnQgXCJ2ZW5kb3JzL2luY2x1ZGUtbWVkaWFcIjtcblxuJHByb2R1Y3RfbGlzdC1pdGVtLWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTIwMCAhZGVmYXVsdDtcbiRwcm9kdWN0X2xpc3QtaXRlbS1wYWRkaW5nOiAwICFkZWZhdWx0O1xuJHByb2R1Y3RfbGlzdC1jYXJvdXNlbC1icmVha3BvaW50OiBcIj49dGFibGV0XCIgIWRlZmF1bHQ7XG5cbi4jeyRuc31wcm9kdWN0cy1saXN0IHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJjpub3QoI3skcm9vdH0tLWNhcm91c2VsKSB7XG4gICAgICAgICN7JHJvb3R9X19pdGVtIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRwcm9kdWN0X2xpc3QtaXRlbS1ib3JkZXItYm90dG9tO1xuICAgICAgICAgICAgcGFkZGluZzogJHByb2R1Y3RfbGlzdC1pdGVtLXBhZGRpbmc7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNhcm91c2VsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3RfbGlzdC1jYXJvdXNlbC1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAjeyRyb290fV9faXRlbSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHByb2R1Y3RfbGlzdC1pdGVtLWJvcmRlci1ib3R0b207XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJHByb2R1Y3RfbGlzdC1pdGVtLXBhZGRpbmc7XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtcHVzaC1ub3RpZmljYXRpb24ge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbi5fYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBtYXJnaW46IDEuNXJlbSAwOyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2NvbnRlbnQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBib3gtc2hhZG93OiAycHggMnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIC0ycHggLTJweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgcGFkZGluZzogMnJlbSAxLjVyZW07IH1cbiAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19pY29ucyB7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9faWNvbnMge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19pY29uIHtcbiAgICB3aWR0aDogMy41cmVtO1xuICAgIGhlaWdodDogMy41cmVtOyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19pY29uLS1hbmltYXRlIHtcbiAgICAgIGFuaW1hdGlvbjogcmluZ2luZyA2cyBpbmZpbml0ZTsgfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX21lc3NhZ2Utd3JhcHBlciB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZsZXg6IDE7IH1cbiAgICAuY3MtcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fbWVzc2FnZS13cmFwcGVyIHtcbiAgICAgIG1hcmdpbjogMCAxLjVyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19tZXNzYWdlLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19tZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX21lc3NhZ2UtdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fbWVzc2FnZS1kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmcgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19hY3Rpb25zIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2FjdGlvbnMge1xuICAgICAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYWN0aW9ucyB7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbiB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbjogMCAwIDAuNXJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAwOyB9XG4gICAgICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmcgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b246Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWFyZ2luOiAwIDEuNXJlbSAwIDA7IH0gfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdCwgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdDp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHRbZGlzYWJsZWRdLCAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0OnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cbiAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdCAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi1zcGFuIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0IC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmcgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmcgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdCwgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0OnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAuY3MtcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1wdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmcgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdDp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0W2Rpc2FibGVkXSwgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0OnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0IC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLXNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmcgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdCAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tZGVjbGluZTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1kZWNsaW5lLCAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tZGVjbGluZTp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWRlY2xpbmU6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tZGVjbGluZTpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1kZWNsaW5lOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1kZWNsaW5lOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tZGVjbGluZTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWRlY2xpbmU6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1kZWNsaW5lW2Rpc2FibGVkXSwgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWRlY2xpbmU6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tZGVjbGluZSAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi1zcGFuIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tZGVjbGluZSAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX3Blcm1pc3Npb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBib3gtc2hhZG93OiAycHggMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMSksIC0ycHggLTJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjODg4O1xuICAgIHBhZGRpbmc6IDFyZW0gMnJlbTsgfVxuICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fcGVybWlzc2lvbi1pY29uIHtcbiAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtOyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19wZXJtaXNzaW9uLWJ1dHRvbi13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fcGVybWlzc2lvbi1idXR0b24ge1xuICAgICAgcGFkZGluZzogMC4ycmVtIDJyZW07XG4gICAgICBtYXJnaW46IDAgMC4ycmVtO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgZm9udC1zaXplOiAxLjFyZW07IH1cbiAgICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fcGVybWlzc2lvbi1idXR0b24tLWJsb2NrIHtcbiAgICAgICAgb3BhY2l0eTogMC4zOyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fY2xvc2Uge1xuICAgIG1hcmdpbjogMCAwIDAgMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2Nsb3NlIHtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2Nsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDFyZW07XG4gICAgICAgIHJpZ2h0OiAwOyB9XG4gICAgICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmcgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19jbG9zZSB7XG4gICAgICAgICAgcmlnaHQ6IDEuNXJlbTsgfSB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19jbG9zZS1pY29uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgIGhlaWdodDogMS41cmVtO1xuICAgICAgZmlsbDogIzg4ODsgfVxuICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fY2xvc2U6aG92ZXIgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19jbG9zZS1pY29uIHtcbiAgICAgIGZpbGw6ICMwMDA7IH1cblxuQGtleWZyYW1lcyByaW5naW5nIHtcbiAgMCUsXG4gIDEyJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMGRlZyk7IH1cbiAgMyUsXG4gIDclIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMykgcm90YXRlKDI3ZGVnKTsgfVxuICA1JSxcbiAgOSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKSByb3RhdGUoLTI3ZGVnKTsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAndXRpbHMvZ2V0LXZhbHVlLWZyb20tbGlzdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRwdXNoLW5vdGlmaWNhdGlvbl9ndXR0ZXI6IDAgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nX2d1dHRlcjogMCAxLjVyZW0gIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fYmFja2dyb3VuZDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX2JvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX2JveC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nX2JveC1zaGFkb3c6IDJweCAycHggM3B4IHJnYmEoJGNvbG9yX2JsYWNrLCAwLjEpLFxuICAgIC0ycHggLTJweCAzcHggcmdiYSgkY29sb3JfYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fcGFkZGluZzogMCAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfcGFkZGluZzogMnJlbSAxLjVyZW0gIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fbWFyZ2luOiAxLjVyZW0gMCAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfZGlzcGxheTogZmxleCAhZGVmYXVsdDtcblxuJHB1c2gtbm90aWZpY2F0aW9uX2ljb24tc3RhdHVzLXdpZHRoOiAzLjVyZW0gIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25faWNvbi1zdGF0dXMtaGVpZ2h0OiAzLjVyZW0gIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25faWNvbi1zdGF0dXMtYW5pbWF0aW9uOiB0cnVlICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX2ljb24tc3RhdHVzLWFuaW1hdGlvbi1yZXBlYXQ6IDZzICFkZWZhdWx0O1xuXG4kcHVzaC1ub3RpZmljYXRpb25fbWVzc2FnZS10aXRsZS1mb250LXNpemU6IDJyZW0gIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fbWVzc2FnZS10aXRsZS1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX21lc3NhZ2UtdGl0bGUtcmVxdWVzdC1jb2xvcjogJGNvbG9yX2JsYWNrICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX21lc3NhZ2UtdGl0bGUtYnJvd3Nlci1jb2xvcjogJGNvbG9yX2JsYWNrICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX21lc3NhZ2UtdGl0bGUtZW5hYmxlZC1jb2xvcjogJGNvbG9yX3N1Y2Nlc3MtNjAwICFkZWZhdWx0O1xuXG4kcHVzaC1ub3RpZmljYXRpb25fbWVzc2FnZS1kZXNjcmlwdGlvbi1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9tZXNzYWdlLWRlc2NyaXB0aW9uLWZvbnQtd2VpZ2h0OiA0MDAgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fbWVzc2FnZS1kZXNjcmlwdGlvbi1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuXG4kcHVzaC1ub3RpZmljYXRpb25fYWN0aW9ucy1mbGV4LWp1c3RpZnk6IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nX2FjdGlvbnMtZmxleC1qdXN0aWZ5OiBmbGV4LXN0YXJ0ICFkZWZhdWx0O1xuXG4kcHVzaC1ub3RpZmljYXRpb25fYnV0dG9uLWFjY2VwdC10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfYnV0dG9uLWFjY2VwdC10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9idXR0b24tYWNjZXB0LWljb24tcG9zOiAnbm8taWNvbicgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nX2J1dHRvbi1hY2NlcHQtaWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcblxuJHB1c2gtbm90aWZpY2F0aW9uX2J1dHRvbi1kZWNsaW5lLXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX2J1dHRvbi1kZWNsaW5lLWljb24tcG9zOiAnbm8taWNvbicgIWRlZmF1bHQ7XG5cbiRwdXNoLW5vdGlmaWNhdGlvbl9wZXJtaXNzaW9uLWJvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9wZXJtaXNzaW9uLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1ib3gtc2hhZG93OiAycHggMnB4IDVweCByZ2JhKCRjb2xvcl9ibGFjaywgMC4xKSxcbiAgICAtMnB4IC0ycHggNXB4IHJnYmEoJGNvbG9yX2JsYWNrLCAwLjEpICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24tZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1wYWRkaW5nOiAxcmVtIDJyZW0gIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24tYnV0dG9uLWZvbnQtc2l6ZTogMS4xcmVtICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24tYnV0dG9uLXBhZGRpbmc6IDAuMnJlbSAycmVtICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24tYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ibGFjayAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9wZXJtaXNzaW9uLWJ1dHRvbi1jb2xvcjogJGNvbG9yX2JsYWNrICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24taWNvbi13aWR0aDogMS4ycmVtICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24taWNvbi1oZWlnaHQ6IDEuMnJlbSAhZGVmYXVsdDtcblxuJHB1c2gtbm90aWZpY2F0aW9uX2ljb24tY2xvc2Utd2lkdGg6IDEuNXJlbSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9pY29uLWNsb3NlLWhlaWdodDogMS41cmVtICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX2ljb24tY2xvc2UtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9pY29uLWNsb3NlLWNvbG9yLS1ob3ZlcjogJGNvbG9yX2JsYWNrICFkZWZhdWx0O1xuXG4uI3skbnN9cHVzaC1ub3RpZmljYXRpb24ge1xuICAgICRyb290OiAmO1xuXG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYuX2FjdGl2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6ICRwdXNoLW5vdGlmaWNhdGlvbl9kaXNwbGF5O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHVzaC1ub3RpZmljYXRpb25fYmFja2dyb3VuZDtcbiAgICAgICAgcGFkZGluZzogJHB1c2gtbm90aWZpY2F0aW9uX3BhZGRpbmc7XG4gICAgICAgIGJvcmRlcjogJHB1c2gtbm90aWZpY2F0aW9uX2JvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHB1c2gtbm90aWZpY2F0aW9uX2JvcmRlci1yYWRpdXM7XG4gICAgICAgIGJveC1zaGFkb3c6ICRwdXNoLW5vdGlmaWNhdGlvbl9ib3gtc2hhZG93O1xuICAgICAgICBtYXJnaW46ICRwdXNoLW5vdGlmaWNhdGlvbl9tYXJnaW47XG5cbiAgICAgICAgI3skcm9vdH0tLXNoaXBwaW5nICYge1xuICAgICAgICAgICAgZGlzcGxheTogJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19kaXNwbGF5O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfYm94LXNoYWRvdztcbiAgICAgICAgICAgIHBhZGRpbmc6ICRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfcGFkZGluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb25zIHtcbiAgICAgICAgbWFyZ2luOiAkcHVzaC1ub3RpZmljYXRpb25fZ3V0dGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgd2lkdGg6ICRwdXNoLW5vdGlmaWNhdGlvbl9pY29uLXN0YXR1cy13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkcHVzaC1ub3RpZmljYXRpb25faWNvbi1zdGF0dXMtaGVpZ2h0O1xuXG4gICAgICAgICYtLWFuaW1hdGUge1xuICAgICAgICAgICAgQGlmICRwdXNoLW5vdGlmaWNhdGlvbl9pY29uLXN0YXR1cy1hbmltYXRpb24ge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcmluZ2luZ1xuICAgICAgICAgICAgICAgICAgICAkcHVzaC1ub3RpZmljYXRpb25faWNvbi1zdGF0dXMtYW5pbWF0aW9uLXJlcGVhdFxuICAgICAgICAgICAgICAgICAgICBpbmZpbml0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lc3NhZ2Utd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbjogJHB1c2gtbm90aWZpY2F0aW9uX2d1dHRlcjtcbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICAjeyRyb290fS0tc2hpcHBpbmcgJiB7XG4gICAgICAgICAgICBtYXJnaW46ICRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfZ3V0dGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyICpcbiAgICAgICAgICAgICAgICAoZ2V0LXZhbHVlLWZyb20tbGlzdCgkcHVzaC1ub3RpZmljYXRpb25fcGFkZGluZywgJ3JpZ2h0JykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWVzc2FnZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJi10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwdXNoLW5vdGlmaWNhdGlvbl9tZXNzYWdlLXRpdGxlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHVzaC1ub3RpZmljYXRpb25fbWVzc2FnZS10aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHVzaC1ub3RpZmljYXRpb25fbWVzc2FnZS1kZXNjcmlwdGlvbi1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHB1c2gtbm90aWZpY2F0aW9uX21lc3NhZ2UtZGVzY3JpcHRpb24tZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBjb2xvcjogJHB1c2gtbm90aWZpY2F0aW9uX21lc3NhZ2UtZGVzY3JpcHRpb24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiAkcHVzaC1ub3RpZmljYXRpb25fYWN0aW9ucy1mbGV4LWp1c3RpZnk7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICAjeyRyb290fS0tc2hpcHBpbmcgJiB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfYWN0aW9ucy1mbGV4LWp1c3RpZnk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogZ2V0LXZhbHVlLWZyb20tbGlzdCgkcHVzaC1ub3RpZmljYXRpb25fcGFkZGluZywgJ3VwJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwXG4gICAgICAgICAgICAgICAgICAgIGdldC12YWx1ZS1mcm9tLWxpc3QoJHB1c2gtbm90aWZpY2F0aW9uX2d1dHRlciwgJ3JpZ2h0JykgMCAwO1xuXG4gICAgICAgICAgICAgICAgI3skcm9vdH0tLXNoaXBwaW5nICYge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDBcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19ndXR0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0J1xuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgMCAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjY2VwdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRwdXNoLW5vdGlmaWNhdGlvbl9idXR0b24tYWNjZXB0LXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkcHVzaC1ub3RpZmljYXRpb25fYnV0dG9uLWFjY2VwdC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRwdXNoLW5vdGlmaWNhdGlvbl9idXR0b24tYWNjZXB0LXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJHB1c2gtbm90aWZpY2F0aW9uX2J1dHRvbi1hY2NlcHQtaWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fYnV0dG9uLWljb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJHB1c2gtbm90aWZpY2F0aW9uX2J1dHRvbi1hY2NlcHQtdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkcHVzaC1ub3RpZmljYXRpb25fYnV0dG9uLWFjY2VwdC1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1zaGlwcGluZyAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nX2J1dHRvbi1hY2NlcHQtdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOlxuICAgICAgICAgICAgICAgICAgICAgICAgJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19idXR0b24tYWNjZXB0LWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X19idXR0b24tc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfYnV0dG9uLWFjY2VwdC10eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfYnV0dG9uLWFjY2VwdC1pY29uLXBvc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X19idXR0b24taWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfYnV0dG9uLWFjY2VwdC10eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfYnV0dG9uLWFjY2VwdC1pY29uLXBvc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkcHVzaC1ub3RpZmljYXRpb25fYnV0dG9uLWRlY2xpbmUtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRwdXNoLW5vdGlmaWNhdGlvbl9idXR0b24tZGVjbGluZS1pY29uLXBvc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRwdXNoLW5vdGlmaWNhdGlvbl9idXR0b24tZGVjbGluZS10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRwdXNoLW5vdGlmaWNhdGlvbl9idXR0b24tZGVjbGluZS1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19idXR0b24taWNvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkcHVzaC1ub3RpZmljYXRpb25fYnV0dG9uLWRlY2xpbmUtdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkcHVzaC1ub3RpZmljYXRpb25fYnV0dG9uLWRlY2xpbmUtaWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcGVybWlzc2lvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGJvcmRlcjogJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24tYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1ib3JkZXItcmFkaXVzO1xuICAgICAgICBib3gtc2hhZG93OiAkcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1ib3gtc2hhZG93O1xuICAgICAgICBmb250LXNpemU6ICRwdXNoLW5vdGlmaWNhdGlvbl9wZXJtaXNzaW9uLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRwdXNoLW5vdGlmaWNhdGlvbl9wZXJtaXNzaW9uLWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAkcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1wYWRkaW5nO1xuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24taWNvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24taWNvbi1oZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtYnV0dG9uLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1idXR0b24ge1xuICAgICAgICAgICAgcGFkZGluZzogJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24tYnV0dG9uLXBhZGRpbmc7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC4ycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAkcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1idXR0b24tYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRwdXNoLW5vdGlmaWNhdGlvbl9wZXJtaXNzaW9uLWJ1dHRvbi1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24tYnV0dG9uLWZvbnQtc2l6ZTtcblxuICAgICAgICAgICAgJi0tYmxvY2sge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nsb3NlIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCBnZXQtdmFsdWUtZnJvbS1saXN0KCRwdXNoLW5vdGlmaWNhdGlvbl9wYWRkaW5nLCAncmlnaHQnKTtcbiAgICAgICAgcGFkZGluZzogZ2V0LXZhbHVlLWZyb20tbGlzdCgkcHVzaC1ub3RpZmljYXRpb25fcGFkZGluZywgJ3JpZ2h0Jyk7XG5cbiAgICAgICAgI3skcm9vdH0tLXNoaXBwaW5nICYge1xuICAgICAgICAgICAgcGFkZGluZzogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAkcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgJ3JpZ2h0J1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxcmVtO1xuICAgICAgICAgICAgcmlnaHQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoJHB1c2gtbm90aWZpY2F0aW9uX3BhZGRpbmcsICdyaWdodCcpO1xuXG4gICAgICAgICAgICAjeyRyb290fS0tc2hpcHBpbmcgJiB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHB1c2gtbm90aWZpY2F0aW9uX2ljb24tY2xvc2Utd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwdXNoLW5vdGlmaWNhdGlvbl9pY29uLWNsb3NlLWhlaWdodDtcbiAgICAgICAgICAgIGZpbGw6ICRwdXNoLW5vdGlmaWNhdGlvbl9pY29uLWNsb3NlLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAjeyRyb290fV9fY2xvc2UtaWNvbiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHB1c2gtbm90aWZpY2F0aW9uX2ljb24tY2xvc2UtY29sb3ItLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJpbmdpbmcge1xuICAgIDAlLFxuICAgIDEyJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICAzJSxcbiAgICA3JSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKSByb3RhdGUoMjdkZWcpO1xuICAgIH1cbiAgICA1JSxcbiAgICA5JSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKSByb3RhdGUoLTI3ZGVnKTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4uY3MtcXR5LWluY3JlbWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5jcy1xdHktaW5jcmVtZW50LS13aXNobGlzdCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtcXR5LWluY3JlbWVudF9fbGFiZWwge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0IHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0LjhyZW07XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgbWluLXdpZHRoOiAyY2g7XG4gICAgZmxleDogMTtcbiAgICBvcmRlcjogMjsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggNnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQubWFnZS1lcnJvciwgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAxODsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dC5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dCwgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1jb2xvcjogI2RjZGNkYzsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dC5tYWdlLWVycm9yIHtcbiAgICAgIGJvcmRlci1jb2xvcjogI2U0MWYxMiAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQubWFnZS1lcnJvciB+IC5jcy1xdHktaW5jcmVtZW50X19idXR0b24ge1xuICAgICAgICBib3JkZXItY29sb3I6ICNlNDFmMTIgIWltcG9ydGFudDsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dCArIC5tYWdlLWVycm9yIHtcbiAgICAgIG9yZGVyOiAzO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbiB7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzO1xuICAgIG1heC13aWR0aDogM3JlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmbGV4OiAxIDEgMnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4OyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjp2aXNpdGVkLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAgICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbiAqLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOnZpc2l0ZWQgKiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjpmb2N1cyAqIHtcbiAgICAgICAgZmlsbDogIzMyNGRjZjsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246aG92ZXIsIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMjRkY2Y7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzI0ZGNmO1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOmhvdmVyICosIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246YWN0aXZlICoge1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGVjcmVtZW50IHtcbiAgICAgIG9yZGVyOiAxO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWluY3JlbWVudCB7XG4gICAgICBvcmRlcjogMjtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQsIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkOmhvdmVyLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZDp2aXNpdGVkLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZDpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkICosIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkOmhvdmVyICosIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkOnZpc2l0ZWQgKiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6Zm9jdXMgKiB7XG4gICAgICAgICAgZmlsbDogI2RjZGNkYzsgfVxuICAuY3MtcXR5LWluY3JlbWVudF9faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pY29uLS1kZWNyZW1lbnQge1xuICAgICAgd2lkdGg6IDEuMnJlbTtcbiAgICAgIGhlaWdodDogMC4zcmVtOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2ljb24tLWluY3JlbWVudCB7XG4gICAgICB3aWR0aDogMS4ycmVtO1xuICAgICAgaGVpZ2h0OiAxLjJyZW07IH1cblxuLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7XG4gIGJvcmRlci1jb2xvcjogI2MxMjcyZjsgfVxuXG4uY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZCBzdmcgcGF0aCB7XG4gIGZpbGw6ICNkNWQ1ZDUgIWltcG9ydGFudDsgfVxuXG4uY3MtcXR5LWluY3JlbWVudCBzdmcgcGF0aCB7XG4gIGZpbGw6ICMwMDAwMDA7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuJHF0eS1pbmNyZW1lbnQtLWluLXdpc2hsaXN0X2hpZGU6IHRydWUgIWRlZmF1bHQ7XG5cbiRxdHktaW5jcmVtZW50X2lucHV0LWZvbnQtc2l6ZTogaW5oZXJpdCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2lucHV0LXRleHQtYWxpZ246IGNlbnRlciAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2lucHV0LS1lcnJvci1ib3JkZXItY29sb3I6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pbnB1dC0taG92ZXItYm9yZGVyOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLXBvc2l0aW9uLW9mZnNldDogMXB4ICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLXdpZHRoOiAzcmVtICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi0taG92ZXItYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWFuaW1hdGlvbi10aW1lOiAwLjVzICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1iYWNrZ3JvdW5kOiAkcXR5LWluY3JlbWVudF9idXR0b24tYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtYm9yZGVyOiAkcXR5LWluY3JlbWVudF9idXR0b24tYm9yZGVyICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1vcGFjaXR5OiAxICFkZWZhdWx0O1xuXG4kcXR5LWluY3JlbWVudF9pY29uLWZpbGw6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2ljb24tLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2ljb24tLWRpc2FibGVkLWZpbGw6ICRjb2xvcl9iYWNrZ3JvdW5kLTYwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2ljb24tLWRlY3JlbWVudC13aWR0aDogMS4ycmVtICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGVjcmVtZW50LWhlaWdodDogMC4zcmVtICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0taW5jcmVtZW50LXdpZHRoOiAkcXR5LWluY3JlbWVudF9pY29uLS1kZWNyZW1lbnQtd2lkdGggIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pY29uLS1pbmNyZW1lbnQtaGVpZ2h0OiAkcXR5LWluY3JlbWVudF9pY29uLS1pbmNyZW1lbnQtd2lkdGggIWRlZmF1bHQ7XG5cbi4jeyRuc31xdHktaW5jcmVtZW50IHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIEBpZiAkcXR5LWluY3JlbWVudC0taW4td2lzaGxpc3RfaGlkZSB7XG4gICAgICAgICYtLXdpc2hsaXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmX19pbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJHF0eS1pbmNyZW1lbnRfaW5wdXQtZm9udC1zaXplO1xuICAgICAgICB0ZXh0LWFsaWduOiAkcXR5LWluY3JlbWVudF9pbnB1dC10ZXh0LWFsaWduO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgbWluLXdpZHRoOiAyY2g7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG9yZGVyOiAyO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgICAmOmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHF0eS1pbmNyZW1lbnRfaW5wdXQtLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRxdHktaW5jcmVtZW50X2lucHV0LS1lcnJvci1ib3JkZXItY29sb3IgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgfiAjeyRyb290fV9fYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRxdHktaW5jcmVtZW50X2lucHV0LS1lcnJvci1ib3JkZXItY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICsgLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWFuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yICRxdHktaW5jcmVtZW50X2J1dHRvbi1hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgIGZpbGwgJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWFuaW1hdGlvbi10aW1lO1xuICAgICAgICBtYXgtd2lkdGg6ICRxdHktaW5jcmVtZW50X2J1dHRvbi13aWR0aDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIGZsZXg6IDEgMSAoI3skcXR5LWluY3JlbWVudF9idXR0b24td2lkdGggLSAxfSk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6dmlzaXRlZCxcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWluY3JlbWVudF9idXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJvcmRlcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJvcmRlcjtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHF0eS1pbmNyZW1lbnRfaWNvbi1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyOiAkcXR5LWluY3JlbWVudF9idXR0b24tLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHF0eS1pbmNyZW1lbnRfaWNvbi0taG92ZXItZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY3JlbWVudCB7XG4gICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmNyZW1lbnQge1xuICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtb3BhY2l0eTtcblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOnZpc2l0ZWQsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRxdHktaW5jcmVtZW50X2ljb24tLWRpc2FibGVkLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cbiAgICAgICAgJi0tZGVjcmVtZW50IHtcbiAgICAgICAgICAgIHdpZHRoOiAkcXR5LWluY3JlbWVudF9pY29uLS1kZWNyZW1lbnQtd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRxdHktaW5jcmVtZW50X2ljb24tLWRlY3JlbWVudC1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmNyZW1lbnQge1xuICAgICAgICAgICAgd2lkdGg6ICRxdHktaW5jcmVtZW50X2ljb24tLWluY3JlbWVudC13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHF0eS1pbmNyZW1lbnRfaWNvbi0taW5jcmVtZW50LWhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL3F0eS1pbmNyZW1lbnQvcXR5LWluY3JlbWVudFwiO1xuXG4uI3skbnN9cXR5LWluY3JlbWVudCB7XG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgfVxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBzdmcgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGttYV9jb2xvcl9ncmV5LTMwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHN2ZyBwYXRoIHtcbiAgICAgICAgZmlsbDogJGttYV9jb2xvcl9ibGFjaztcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi51aS1zbGlkZXItaG9yaXpvbnRhbCB7XG4gIGJhY2tncm91bmQ6ICNkY2RjZGM7XG4gIGhlaWdodDogMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogMXJlbTsgfVxuICAudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGUge1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjMzI0ZGNmO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCBiYWNrZ3JvdW5kIDAuM3M7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07IH1cbiAgICAudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtaG92ZXIsIC51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1hY3RpdmUsIC51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1cyB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgICBiYWNrZ3JvdW5kOiAjMTQyYjllOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnVpLXNsaWRlci1ob3Jpem9udGFsIHtcbiAgYmFja2dyb3VuZDogI2RjZGNkYztcbiAgaGVpZ2h0OiAwLjRyZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjY1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogMS4zcmVtOyB9XG4gIC51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZSB7XG4gICAgdG9wOiAtMXJlbTtcbiAgICB3aWR0aDogMi42cmVtO1xuICAgIGhlaWdodDogMi42cmVtO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcywgYmFja2dyb3VuZCAwLjNzO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMS4zcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZTo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDAuOHJlbTtcbiAgICAgIGxlZnQ6IDAuN3JlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgIGhlaWdodDogMC43cmVtO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG4gICAgLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlOmZpcnN0LW9mLXR5cGU6OmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICAgICAgbGVmdDogMXJlbTsgfVxuICAgIC51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1ob3ZlciwgLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWFjdGl2ZSwgLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWZvY3VzIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuJHNsaWRlci0taG9yaXpvbnRhbF9oZWlnaHQ6IDFyZW0gIWRlZmF1bHQ7XG4kc2xpZGVyLS1ob3Jpem9udGFsX2JhY2tncm91bmQ6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLWJhY2tncm91bmQtYWN0aXZlOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbi51aS1zbGlkZXItaG9yaXpvbnRhbCB7XG4gICAgYmFja2dyb3VuZDogJHNsaWRlci0taG9yaXpvbnRhbF9iYWNrZ3JvdW5kO1xuICAgIGhlaWdodDogJHNsaWRlci0taG9yaXpvbnRhbF9oZWlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6ICgkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplIC8gMik7XG4gICAgbWFyZ2luLXJpZ2h0OiAoJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZSAvIDIpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLS1ob3Jpem9udGFsX2hlaWdodDtcblxuICAgIC51aS1zbGlkZXItaGFuZGxlIHtcbiAgICAgICAgd2lkdGg6ICRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtYmFja2dyb3VuZDtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MsIGJhY2tncm91bmQgMC4zcztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0oJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZSAvIDIpO1xuXG4gICAgICAgICYudWktc3RhdGUtaG92ZXIsXG4gICAgICAgICYudWktc3RhdGUtYWN0aXZlLFxuICAgICAgICAmLnVpLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnfkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL3NsaWRlci9zbGlkZXIuc2Nzcyc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuJHNsaWRlci0taG9yaXpvbnRhbF9oZWlnaHQ6IDEuM3JlbTtcbiRzbGlkZXItLWhvcml6b250YWxfYmFja2dyb3VuZDogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplOiAxLjNyZW07XG4kc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1iYWNrZ3JvdW5kLWFjdGl2ZTogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuXG4udWktc2xpZGVyLWhvcml6b250YWwge1xuICAgIGJhY2tncm91bmQ6ICRzbGlkZXItLWhvcml6b250YWxfYmFja2dyb3VuZDtcbiAgICBoZWlnaHQ6IDAuNHJlbTtcbiAgICBtYXJnaW4tbGVmdDogKCRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLXNpemUgLyAyKTtcbiAgICBtYXJnaW4tcmlnaHQ6ICgkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplIC8gMik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItLWhvcml6b250YWxfaGVpZ2h0O1xuXG4gICAgLnVpLXNsaWRlci1oYW5kbGUge1xuICAgICAgICB0b3A6IC0xcmVtO1xuICAgICAgICB3aWR0aDogKCRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLXNpemUgKiAyKTtcbiAgICAgICAgaGVpZ2h0OiAoJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZSAqIDIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcywgYmFja2dyb3VuZCAwLjNzO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLSRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjhyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjdyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgICAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuN3JlbTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnVpLXN0YXRlLWhvdmVyLFxuICAgICAgICAmLnVpLXN0YXRlLWFjdGl2ZSxcbiAgICAgICAgJi51aS1zdGF0ZS1mb2N1cyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi5jcy1zb2NpYWwtbWVkaWEtbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMS41cmVtIDAgMS41cmVtO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pdGVtIHtcbiAgICBtYXJnaW46IDAgMC40ZW07XG4gICAgcGFkZGluZzogMDsgfVxuICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2xpbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMy41ZW07XG4gICAgbWluLXdpZHRoOiA0ZW07XG4gICAgYmFja2dyb3VuZDogIzIxMjEyMTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyOyB9XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19saW5rOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMxNDJiOWU7IH1cbiAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTUlLCAtNTUlLCAwKTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1NSU7IH1cbiAgICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2l0ZW0tLWZiIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faWNvbiB7XG4gICAgICB3aWR0aDogMC45ZW07XG4gICAgICBoZWlnaHQ6IDEuOGVtOyB9XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pdGVtLS10dyAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2ljb24ge1xuICAgICAgd2lkdGg6IDIuNWVtO1xuICAgICAgaGVpZ2h0OiAyZW07IH1cbiAgICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2l0ZW0tLXl0IC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faWNvbiB7XG4gICAgICB3aWR0aDogMS44ZW07XG4gICAgICBoZWlnaHQ6IDIuMWVtOyB9XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pdGVtLS1ncCAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2ljb24ge1xuICAgICAgd2lkdGg6IDJlbTtcbiAgICAgIGhlaWdodDogMmVtO1xuICAgICAgbWFyZ2luLXRvcDogMC4xZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuXG4kc29jaWFsLW1lZGlhLWxpc3RfZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9mbGV4LWp1c3RpZnktY29udGVudDogY2VudGVyICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2ZsZXgtYWxpZ24taXRlbXM6IGNlbnRlciAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9wYWRkaW5nOiAkcGFnZV9lZGdlLWd1dHRlciAwICRwYWdlX2VkZ2UtZ3V0dGVyICFkZWZhdWx0O1xuXG4kc29jaWFsLW1lZGlhLWxpc3RfbGlzdC1pdGVtLW1hcmdpbjogMCAwLjRlbSAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saXN0LWl0ZW0tcGFkZGluZzogMCAhZGVmYXVsdDtcblxuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhlaWdodDogMy41ZW0gIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1taW4td2lkdGg6IDRlbSAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJhY2tncm91bmQ6ICRjb2xvcl9taW5lc2hhZnQgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXBvc2l0aW9uOiBhYnNvbHV0ZSAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTU1JSwgLTU1JSwgMCkgIWRlZmF1bHQ7XG5cbkBpZiAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1wb3NpdGlvbiA9PSBhYnNvbHV0ZSB7XG4gICAgJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSAhZGVmYXVsdDtcbn1cblxuLiN7JG5zfXNvY2lhbC1tZWRpYS1saXN0IHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgIGRpc3BsYXk6ICRzb2NpYWwtbWVkaWEtbGlzdF9kaXNwbGF5O1xuICAgIHBhZGRpbmc6ICRzb2NpYWwtbWVkaWEtbGlzdF9wYWRkaW5nO1xuXG4gICAgQGlmICRzb2NpYWwtbWVkaWEtbGlzdF9kaXNwbGF5ID09XG4gICAgICAgIGZsZXggb3JcbiAgICAgICAgJHNvY2lhbC1tZWRpYS1saXN0X2Rpc3BsYXkgPT1cbiAgICAgICAgaW5saW5lLWZsZXhcbiAgICB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogJHNvY2lhbC1tZWRpYS1saXN0X2ZsZXgtanVzdGlmeS1jb250ZW50O1xuICAgICAgICBhbGlnbi1pdGVtczogJHNvY2lhbC1tZWRpYS1saXN0X2ZsZXgtYWxpZ24taXRlbXM7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogJHNvY2lhbC1tZWRpYS1saXN0X2xpc3QtaXRlbS1tYXJnaW47XG4gICAgICAgIHBhZGRpbmc6ICRzb2NpYWwtbWVkaWEtbGlzdF9saXN0LWl0ZW0tcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstZGlzcGxheTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhlaWdodDtcbiAgICAgICAgbWluLXdpZHRoOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1taW4td2lkdGg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1ib3JkZXItcmFkaXVzO1xuICAgICAgICB0cmFuc2l0aW9uOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay10cmFuc2l0aW9uO1xuXG4gICAgICAgIEBpZiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1ob3Zlci1iYWNrZ3JvdW5kICE9XG4gICAgICAgICAgICAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1iYWNrZ3JvdW5kXG4gICAgICAgIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgcG9zaXRpb246ICRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXBvc2l0aW9uO1xuICAgICAgICB0cmFuc2Zvcm06ICRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXRyYW5zZm9ybTtcblxuICAgICAgICBAaWYgJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tcG9zaXRpb24gPT0gYWJzb2x1dGUge1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1NSU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0tZmIgJiB7XG4gICAgICAgICAgICB3aWR0aDogMC45ZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuOGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLXR3ICYge1xuICAgICAgICAgICAgd2lkdGg6IDIuNWVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAyZW07XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0teXQgJiB7XG4gICAgICAgICAgICB3aWR0aDogMS44ZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDIuMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLWdwICYge1xuICAgICAgICAgICAgd2lkdGg6IDJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMmVtO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLmNzLXN0YXItcmF0aW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXJzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA3LjJyZW07XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nLS1zdW1tYXJ5IC5jcy1zdGFyLXJhdGluZ19fc3RhcnMge1xuICAgICAgd2lkdGg6IDEwcmVtO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgIC5jcy1zdGFyLXJhdGluZy0tcmV2aWV3IC5jcy1zdGFyLXJhdGluZ19fc3RhcnMge1xuICAgICAgd2lkdGg6IDcuMnJlbTtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgLmNzLXN0YXItcmF0aW5nX19zdGFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZpbGw6ICM4ODg7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXItLWFjdGl2ZSB7XG4gICAgICBmaWxsOiAjZmNiNzM5OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19zdGFyLS1oYWxmLWFjdGl2ZSAuc3Rhci1sZWZ0IHtcbiAgICAgIGZpbGw6ICNmY2I3Mzk7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXItLWhhbGYtYWN0aXZlIC5zdGFyLXJpZ3RoIHtcbiAgICAgIGZpbGw6ICM4ODg7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmctLXN1bW1hcnkgLmNzLXN0YXItcmF0aW5nX19zdGFyIHtcbiAgICAgIHdpZHRoOiAycmVtOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nLS1yZXZpZXcgLmNzLXN0YXItcmF0aW5nX19zdGFyIHtcbiAgICAgIHdpZHRoOiAxLjVyZW07IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXIgcGF0aCB7XG4gICAgICBmaWxsLW9wYWNpdHk6IDE7XG4gICAgICBmaWxsOiBpbmhlcml0OyB9XG4gIC5jcy1zdGFyLXJhdGluZyBpbWcge1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFycyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcGFkZGluZzogMDsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBmaWxsOiAjODg4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXItLWFjdGl2ZSB7XG4gICAgICBmaWxsOiAjZmNiNzM5OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXIgcGF0aCB7XG4gICAgICBmaWxsLW9wYWNpdHk6IDE7XG4gICAgICBmaWxsOiBpbmhlcml0OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXI6bnRoLWxhc3Qtb2YtdHlwZSgpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhcnM6aG92ZXIgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXIge1xuICAgICAgZmlsbDogI2ZjYjczOTsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFycyBsYWJlbDpob3ZlciB+IGxhYmVsIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFyIHtcbiAgICAgIGZpbGw6ICM4ODg7IH1cbiAgLmNzLXN0YXItcmF0aW5nX190ZXh0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nLXRvcDogY2FsYygxLjVyZW0gKiAwLjEpOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX190ZXh0LS1jb3VudDpiZWZvcmUge1xuICAgICAgY29udGVudDogJygnOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX190ZXh0LS1jb3VudDphZnRlciB7XG4gICAgICBjb250ZW50OiAnKSc7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3RleHQtLWVtcHR5IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX3RleHQtYW5ub3RhdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZSAuY3Mtc3Rhci1yYXRpbmdfX3RleHQtYW5ub3RhdGlvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fbGFiZWwge1xuICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nLXRvcDogY2FsYygxLjVyZW0gKiAwLjIpOyB9XG5cbi5yZXZpZXctY29udHJvbC12b3RlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTEge1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTE6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0yIHtcbiAgICB6LWluZGV4OiAyOyB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0yOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBub25lOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMyB7XG4gICAgei1pbmRleDogMzsgfVxuICAgIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMzpiZWZvcmUge1xuICAgICAgY29udGVudDogbm9uZTsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTQge1xuICAgIHotaW5kZXg6IDQ7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTQ6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy01IHtcbiAgICB6LWluZGV4OiA1OyB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy01OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBub25lOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlOmJlZm9yZSB7XG4gICAgY29udGVudDogbm9uZTsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbCB7XG4gICAgICAgIHdpZHRoOiAyLjZyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNnJlbTsgfSB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgbGFiZWw6bGFzdC1jaGlsZCB7XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbCBzcGFuIHtcbiAgICAgIGNsaXA6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG5cbi5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFycyB7XG4gIG1hcmdpbi10b3A6IC0zcHg7IH1cblxuLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXIge1xuICBmaWxsOiB0cmFuc3BhcmVudDtcbiAgc3Ryb2tlOiAjMzMzMzMzOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFyLS1hY3RpdmUge1xuICAgIGZpbGw6ICMwMDM2NjY7IH1cbiAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXIgLnN0YXItcmlnaHQge1xuICAgIHN0cm9rZTogbm9uZTsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhcnM6aG92ZXIgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXIge1xuICAgIGZpbGw6ICMwMDM2NjY7IH1cbiAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXJzIGxhYmVsOmhvdmVyIH4gbGFiZWwgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXIge1xuICAgIGZpbGw6IHRyYW5zcGFyZW50OyB9XG5cbi5jcy1zdGFyLXJhdGluZ19fc3RhcnMge1xuICB3aWR0aDogOS4ycmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAtMC41cmVtOyB9XG5cbi5jcy1zdGFyLXJhdGluZ19fc3RhciB7XG4gIGZpbGw6IHRyYW5zcGFyZW50O1xuICBzdHJva2U6ICMzMzMzMzM7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIHdpZHRoOiAyLjVyZW0gIWltcG9ydGFudDsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXIgLnN0YXItcmlnaHQge1xuICAgIHN0cm9rZTogbm9uZTsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXItLWFjdGl2ZSB7XG4gICAgZmlsbDogIzAwMzY2NjsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXItLWhhbGYtYWN0aXZlIC5zdGFyLWxlZnQge1xuICAgIGZpbGw6IHJnYmEoMCwgNTQsIDEwMiwgMC41KTsgfVxuXG4uY3Mtc3Rhci1yYXRpbmdfX3RleHQge1xuICBtaW4td2lkdGg6IDRyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uY3Mtc3Rhci1yYXRpbmdfX2xhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuNHJlbSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzg3ODc4NyAhaW1wb3J0YW50O1xuICBtYXJnaW4tYmxvY2s6IDAuMjVlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuJHN0YXItcmF0aW5nX2NvbG9yLWFjdGl2ZTogJGNvbG9yX3Jldmlldy1hY3RpdmUgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfY29sb3ItaW5hY3RpdmU6ICRjb2xvcl9yZXZpZXctaW5hY3RpdmUgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWFjdGl2ZTogJGNvbG9yX3Jldmlldy1hY3RpdmUgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWluYWN0aXZlOiAkY29sb3JfcmV2aWV3LWNvbnRyb2wtaW5hY3RpdmUgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyBmbGV4IGp1c3RpZmljYXRpb24gb2Ygc3RhcnNcbiRzdGFyLXJhdGluZ19qdXN0aWZ5OiBzcGFjZS1iZXR3ZWVuICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyB3aWR0aCBvZiBhIHNpbmdsZSBzdGFyXG4kc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0OiAxLjVyZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXdzLXN1bW1hcnk6IDJyZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXc6IDEuNXJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldy1mb3JtOiAycmVtICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyB3aWR0aCBvZiByZXZpZXcgc3RhcnMgY29udGFpbmVyXG4kc3Rhci1yYXRpbmdfY29udGFpbmVyLXdpZHRoLWRlZmF1bHQ6IDcuMnJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtcmV2aWV3cy1zdW1tYXJ5OiAxMHJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtcmV2aWV3OiA3LjJyZW0gIWRlZmF1bHQ7XG4vLyBQYWRkaW5nIGZvciByZXZpZXcgZm9ybSBzdGFyc1xuJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybTogMC42cmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybS1tb2JpbGU6IDFyZW0gIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIHBhZGRpbmcgcnVsZXNldFxuJHN0YXItcmF0aW5nX3BhZGRpbmctZGVmYXVsdDogMCAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlld3Mtc3VtbWFyeTogMCAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlldzogMCAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlldy1mb3JtOiAwICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyBzY29yZSBhbmQgY291bnQgdGV4dGZpZWxkIGRpc3BsYXkgcnVsZXNldFxuJHN0YXItcmF0aW5nX2hpZGUtdGV4dC1wZHA6IGZhbHNlICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2hpZGUtdGV4dC10aWxlOiBmYWxzZSAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgZGlzcGxheSBydWxlc2V0IGZvciBcInJldmlld1wiIGFubm90YXRpb25cbiRzdGFyLXJhdGluZ19oaWRlLWFubm90YXRpb24tcGRwOiBmYWxzZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19oaWRlLWFubm90YXRpb24tdGlsZTogdHJ1ZSAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgcmF0aW5nIGxhYmVsIGRldGFpbHNcbiRzdGFyLXJhdGluZ19sYWJlbC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2xhYmVsLWZvbnQtc2l6ZTogMC43NWVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2xhYmVsLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfbGFiZWwtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuLiN7JG5zfXN0YXItcmF0aW5nIHtcbiAgICAkcm9vdDogJjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmX19zdGFycyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBwYWRkaW5nOiAkc3Rhci1yYXRpbmdfcGFkZGluZy1kZWZhdWx0O1xuICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1kZWZhdWx0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRzdGFyLXJhdGluZ19qdXN0aWZ5O1xuXG4gICAgICAgICN7JHJvb3R9LS1zdW1tYXJ5ICYge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtcmV2aWV3cy1zdW1tYXJ5O1xuICAgICAgICAgICAgcGFkZGluZzogJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3cy1zdW1tYXJ5O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXJldmlldyAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfY29udGFpbmVyLXdpZHRoLXJldmlldztcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlldztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N0YXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtZGVmYXVsdDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfY29sb3ItaW5hY3RpdmU7XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYWxmLWFjdGl2ZSB7XG4gICAgICAgICAgICAuc3Rhci1sZWZ0IHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc3Rhci1yaWd0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2NvbG9yLWluYWN0aXZlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXN1bW1hcnkgJiB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3cy1zdW1tYXJ5O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXJldmlldyAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXc7XG4gICAgICAgIH1cblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGwtb3BhY2l0eTogMTtcbiAgICAgICAgICAgIGZpbGw6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtZGVmYXVsdDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICZfX2Zvcm0tc3RhcnMge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgcGFkZGluZzogJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3LWZvcm07XG4gICAgfVxuXG4gICAgJl9fZm9ybS1zdGFyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1pbmFjdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19mb3JtLXN0YXItY29sb3ItYWN0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsLW9wYWNpdHk6IDE7XG4gICAgICAgICAgICBmaWxsOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtbGFzdC1vZi10eXBlKCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19mb3JtLXN0YXJzOmhvdmVyICYge1xuICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fZm9ybS1zdGFycyBsYWJlbDpob3ZlciB+IGxhYmVsICYge1xuICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1pbmFjdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkc3Rhci1yYXRpbmdfdGV4dC1jb2xvcjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHBhZGRpbmctdG9wOiBjYWxjKCN7JHN0YXItcmF0aW5nX3N0YXItd2lkdGgtZGVmYXVsdH0gKiAwLjEpO1xuXG4gICAgICAgICYtLWNvdW50IHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkc3Rhci1yYXRpbmdfaGlkZS10ZXh0LXBkcCB7XG4gICAgICAgICAgICAuI3skbnN9YnV5Ym94ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHN0YXItcmF0aW5nX2hpZGUtdGV4dC10aWxlIHtcbiAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQtYW5ub3RhdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgICAgICBAaWYgJHN0YXItcmF0aW5nX2hpZGUtYW5ub3RhdGlvbi1wZHAge1xuICAgICAgICAgICAgLiN7JG5zfWJ1eWJveCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRzdGFyLXJhdGluZ19oaWRlLWFubm90YXRpb24tdGlsZSB7XG4gICAgICAgICAgICAuI3skbnN9cHJvZHVjdC10aWxlICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBjb2xvcjogJHN0YXItcmF0aW5nX2xhYmVsLWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRzdGFyLXJhdGluZ19sYWJlbC1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkc3Rhci1yYXRpbmdfbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkc3Rhci1yYXRpbmdfbGFiZWwtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgIHBhZGRpbmctdG9wOiBjYWxjKCN7JHN0YXItcmF0aW5nX3N0YXItd2lkdGgtZGVmYXVsdH0gKiAwLjIpO1xuICAgIH1cbn1cblxuLnJldmlldy1jb250cm9sLXZvdGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDUge1xuICAgICAgICAucmF0aW5nLSN7JGl9IHtcbiAgICAgICAgICAgIHotaW5kZXg6ICN7JGl9O1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogbm9uZTtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXctZm9ybSArXG4gICAgICAgICAgICAkc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtLW1vYmlsZTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybS1tb2JpbGU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXctZm9ybSArXG4gICAgICAgICAgICAgICAgJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzdGFyLXJhdGluZ19zdGFyLXBhZGRpbmctcmV2aWV3LWZvcm07XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldy1mb3JtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktdmlzaWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIn5DcmVhdGl2ZXNob3AvY29tcG9uZW50cy9zdGFyLXJhdGluZy9zdGFyLXJhdGluZy5zY3NzXCI7XG5cbi4jeyRuc31zdGFyLXJhdGluZyB7XG4gICAgJHJvb3Q6ICY7XG4gICAgJl9fZm9ybS1zdGFycyB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgfVxuICAgICZfX2Zvcm0tc3RhciB7XG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBmaWxsOiAka21hX2NvbG9yX2JsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHN0cm9rZTogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgLnN0YXItcmlnaHQge1xuICAgICAgICAgICAgc3Ryb2tlOiBub25lO1xuICAgICAgICB9XG4gICAgICAgICN7JHJvb3R9X19mb3JtLXN0YXJzOmhvdmVyICYge1xuICAgICAgICAgICAgZmlsbDogJGttYV9jb2xvcl9ibHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2Zvcm0tc3RhcnMgbGFiZWw6aG92ZXIgfiBsYWJlbCAmIHtcbiAgICAgICAgICAgIGZpbGw6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX3N0YXJzIHtcbiAgICAgICAgd2lkdGg6IDkuMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICB9XG4gICAgJl9fc3RhciB7XG4gICAgICAgIGZpbGw6IHRyYW5zcGFyZW50O1xuICAgICAgICBzdHJva2U6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIHdpZHRoOiAyLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgLnN0YXItcmlnaHQge1xuICAgICAgICAgICAgc3Ryb2tlOiBub25lO1xuICAgICAgICB9XG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBmaWxsOiAka21hX2NvbG9yX2JsdWU7XG4gICAgICAgIH1cbiAgICAgICAgJi0taGFsZi1hY3RpdmUge1xuICAgICAgICAgICAgLnN0YXItbGVmdCB7XG4gICAgICAgICAgICAgICAgZmlsbDogcmdiYSgka21hX2NvbG9yX2JsdWUsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fdGV4dCB7XG4gICAgICAgIG1pbi13aWR0aDogNHJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaC0tc21hbGwgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS01MDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWJsb2NrOiAwLjI1ZW07XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbltjbGFzc149J3N3YXRjaC1vcHQtJ10ge1xuICBmb250LXNpemU6IDAuNDVlbTtcbiAgbWluLWhlaWdodDogY2FsYyggMSAqICgyLjhlbSArIDhweCkpO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSB7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfSB9XG4gIFtjbGFzc149J3N3YXRjaC1vcHQtJ106ZW1wdHkge1xuICAgIG9wYWNpdHk6IDA7IH1cblxuLnN3YXRjaC1vcHQge1xuICBmb250LXNpemU6IDAuOWVtOyB9XG4gIC5zd2F0Y2gtb3B0IC5tYWdlLWVycm9yIHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygxMHJlbSArIDEuNXJlbSk7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnN3YXRjaC1vcHQgLm1hZ2UtZXJyb3Ige1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyggMTFyZW0gKyAxLjVyZW0pOyB9IH1cblxuLnN3YXRjaC1hdHRyaWJ1dGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnN3YXRjaC1hdHRyaWJ1dGUuc3dhdGNoLWxheWVyZWQge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07IH1cbiAgLnN3YXRjaC1hdHRyaWJ1dGUgKyAuc3dhdGNoLWF0dHJpYnV0ZSB7XG4gICAgbWFyZ2luLXRvcDogMC44ZW07IH1cblxuLnN3YXRjaC1hdHRyaWJ1dGUtbGFiZWwge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogY2FsYyggMi44ZW0gLSA2cHggKyAwLjFlbSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG4gIHdpZHRoOiAxMHJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc3dhdGNoLWF0dHJpYnV0ZS1sYWJlbCB7XG4gICAgICB3aWR0aDogMTFyZW07IH0gfVxuICAuc3dhdGNoLWF0dHJpYnV0ZS1sYWJlbDphZnRlciB7XG4gICAgY29udGVudDogJzogJztcbiAgICBsaW5lLWhlaWdodDogY2FsYyggMi44ZW0gLSA2cHggKyAwLjFlbSk7IH1cblxuLnN3YXRjaC1hdHRyaWJ1dGUtc2VsZWN0ZWQtb3B0aW9uIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8qIDEgKi8gfVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tbGVmdDogLTAuMmVtO1xuICBtYXJnaW4tYm90dG9tOiAtMC40ZW07XG4gIG1pbi13aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9uczpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAuc3dhdGNoLW9wdCAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIG1heC13aWR0aDogY2FsYyggMTAwJSAtIDEuNXJlbSAtIDEwcmVtKTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc3dhdGNoLW9wdCAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKCAxMDAlIC0gMS41cmVtIC0gMTFyZW0pOyB9IH1cblxuLnN3YXRjaC1vcHRpb24tbGluay1sYXllcmVkIHtcbiAgZm9udC1zaXplOiAxZW07IH1cbiAgLnN3YXRjaC1vcHRpb24tbGluay1sYXllcmVkOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLnN3YXRjaC1vcHRpb24ge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi13aWR0aDogMy4yZW07XG4gIGhlaWdodDogMi44ZW07XG4gIHBhZGRpbmc6IDAgMC4zNWVtO1xuICBtYXJnaW46IDFweCBjYWxjKCAxcHggKyAwLjJlbSkgY2FsYygxcHggKyAwLjRlbSk7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gIGJvcmRlcjogM3B4IHNvbGlkICNmMGYwZjA7XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKCAyLjhlbSAtIDZweCArIDAuMWVtKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIGJvcmRlci1jb2xvciAwLjNzLCBvcGFjaXR5IDAuM3MsIGNvbG9yIDAuM3M7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLnN3YXRjaC1vcHRpb246YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtNHB4O1xuICAgIGxlZnQ6IC00cHg7XG4gICAgcmlnaHQ6IC00cHg7XG4gICAgYm90dG9tOiAtNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zczsgfVxuICAuc3dhdGNoLW9wdGlvbjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29ucy9zd2F0Y2hlcy9kaXNhYmxlZC5zdmcpIHJnYmEoMjIwLCAyMjAsIDIyMCwgMC41KSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIHdpZHRoOiBjYWxjKDIuOGVtIC0gMS4yZW0pO1xuICAgIGhlaWdodDogY2FsYygyLjhlbSAtIDEuMmVtKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDAuNmVtO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5zd2F0Y2gtb3B0aW9uLnNlbGVjdGVkLCAuc3dhdGNoLW9wdGlvbi5iaXMtc2VsZWN0ZWQge1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICNmZmY7XG4gICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgIC5zd2F0Y2gtb3B0aW9uLnNlbGVjdGVkOmJlZm9yZSwgLnN3YXRjaC1vcHRpb24uYmlzLXNlbGVjdGVkOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMTQyYjllOyB9XG4gIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCksIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXTpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS50ZXh0LCAuc3dhdGNoLW9wdGlvbltkaXNhYmxlZF06bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS50ZXh0IHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjb2xvcjogIzg4ODtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkudGV4dDpiZWZvcmUsIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXTpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLnRleHQ6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAgIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkuaW1hZ2U6YWZ0ZXIsIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkuY29sb3I6YWZ0ZXIsIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXTpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLmltYWdlOmFmdGVyLCAuc3dhdGNoLW9wdGlvbltkaXNhYmxlZF06bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS5jb2xvcjphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5zd2F0Y2gtb3B0aW9uLmJhY2staW4tc3RvY2stYWxlcnQ6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjIwLCAyMjAsIDIyMCwgMC41NSkgdXJsKC4uL2ltYWdlcy9pY29ucy9wdXNoLW5vdGlmaWNhdGlvbi9pY29uX25vdGlmaWNhdGlvbi1vdXRsaW5lLnN2ZykgY2VudGVyLzY0JSBuby1yZXBlYXQ7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuc3dhdGNoLW9wdGlvbi5iYWNrLWluLXN0b2NrLWFsZXJ0LnRleHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDJlbTsgfVxuICAgIC5zd2F0Y2gtb3B0aW9uLmJhY2staW4tc3RvY2stYWxlcnQudGV4dDphZnRlciB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDAuMzVlbTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIC5zd2F0Y2gtb3B0aW9uOm5vdCguZGlzYWJsZWQpOm5vdCguc2VsZWN0ZWQpOm5vdChbZGlzYWJsZWRdKTpob3ZlciwgLnN3YXRjaC1vcHRpb24uYmFjay1pbi1zdG9jay1hbGVydDpob3ZlciB7XG4gICAgYm9yZGVyOiAzcHggc29saWQgI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgLnN3YXRjaC1vcHRpb246bm90KC5kaXNhYmxlZCk6bm90KC5zZWxlY3RlZCk6bm90KFtkaXNhYmxlZF0pOmhvdmVyOmJlZm9yZSwgLnN3YXRjaC1vcHRpb24uYmFjay1pbi1zdG9jay1hbGVydDpob3ZlcjpiZWZvcmUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMyNGRjZjsgfVxuXG4uc3dhdGNoLWlucHV0IHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8qIDEgKi9cbiAgbGVmdDogLTEwMDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnN3YXRjaC1tb3JlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwLFxuLnN3YXRjaC1vcHRpb24tdG9vbHRpcC1sYXllcmVkIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIHotaW5kZXg6IDk5OTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtaW4td2lkdGg6IDJyZW07XG4gIGJvcmRlcjogMC4xcmVtIHNvbGlkICNkY2RjZGM7IH1cbiAgLnN3YXRjaC1vcHRpb24tdG9vbHRpcCAuaW1hZ2UsXG4gIC5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAtbGF5ZXJlZCAuaW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiAxMTBweDtcbiAgICBoZWlnaHQ6IDExMHB4OyB9XG4gIC5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAgLmNvcm5lcjphZnRlcixcbiAgLnN3YXRjaC1vcHRpb24tdG9vbHRpcC1sYXllcmVkIC5jb3JuZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgIGJvcmRlci1ib3R0b206IDAuMXJlbSBzb2xpZCAjZGNkY2RjO1xuICAgIGJvcmRlci1yaWdodDogMC4xcmVtIHNvbGlkICNkY2RjZGM7XG4gICAgbWFyZ2luLXRvcDogY2FsYyggLTAuNXJlbSArIDAuMXJlbSk7IH1cblxuLnN3YXRjaC1vcHRpb24tdG9vbHRpcCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5taXNzaW5nLXN3YXRjaGVzLW1vZGFsIHtcbiAgbWF4LXdpZHRoOiA0MHJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLm1pc3Npbmctc3dhdGNoZXMtbW9kYWwgLm1hZ2UtZXJyb3Ige1xuICAgIHBhZGRpbmctdG9wOiAwLjhyZW07IH1cbiAgLm1pc3Npbmctc3dhdGNoZXMtbW9kYWwgLnN3YXRjaC1hdHRyaWJ1dGUgKyAuc3dhdGNoLWF0dHJpYnV0ZSB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd1dGlscy9nZXQtdmFsdWUtZnJvbS1saXN0LnNjc3MnO1xuXG4kc3dhdGNoZXMtLWNsaWNrYWJsZTogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19DYXRhbG9nLFxuICAgIGNvbmZpZ3VyYWJsZV90aWxlX3N3YXRjaGVzLFxuICAgIGVuYWJsZWRcbikgIWRlZmF1bHQ7XG5cbi8vIEtlZXAgaW4gc3luYyB3aXRoIHF1YW50aXR5IHdyYXBwZXIgaW4gYnV5Ym94LlxuJHN3YXRjaGVzX2xhYmVsLXdpZHRoOiAxMHJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19sYWJlbC13aWR0aC1sYXB0b3AtdXA6IDExcmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX2xhYmVsLWd1dHRlcjogMS41cmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX2xhYmVsLWZvbnQtc2l6ZTogMS4xZW0gIWRlZmF1bHQ7XG4vLyBLZWVwIGluIHN5bmMgd2lkdGggcXVhbnRpdHkgd3JhcHBlciBpbiBidXlib3ggZW5kLlxuXG4vLyBTY2VuYXJpbyB3aXRoIHN3YXRjaGVzIGJlbG93IGxhYmVsLCB3aGljaCBpcyAxMDAlIHdpZGVcbi8vIHdpdGggdGhpcyB2YXJpYWJsZSBzZXQgdG8gdHJ1ZSAkc3dhdGNoZXNfbGFiZWwtd2lkdGhcbi8vIGFuZCAkc3dhdGNoZXNfbGFiZWwtd2lkdGgtbGFwdG9wLXVwIHdpbGwgYmUgb3ZlcnJpZGVuIC0gYWx3YXlzIDEwMCUgd2lkdGhcbiRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsOiBmYWxzZSAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX2Rpc2FibGUtc2hvdy1tb3JlOiB0cnVlICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXI6IDAuNGVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1oZWlnaHQ6IDIuOGVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC13aWR0aDogMy4yZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLXBhZGRpbmc6IDAgMC4zNWVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC10ZXh0LW9mZnNldDogMC4xZW0gIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19zd2F0Y2gtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0tc2VsZWN0ZWQtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfc3dhdGNoLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aDogM3B4ICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoIHNvbGlkXG4gICAgJHN3YXRjaGVzX3N3YXRjaC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0taG92ZXItYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aCBzb2xpZFxuICAgICRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1ib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoIHNvbGlkXG4gICAgJHN3YXRjaGVzX3N3YXRjaC0tc2VsZWN0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1vcGFjaXR5OiAwLjY1ICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfc3dhdGNoLS1iYWNraW5zdG9jay1iYWNrZ3JvdW5kOiByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTYwMCwgMC41NSlcbiAgICB1cmwoLi4vaW1hZ2VzL2ljb25zL3B1c2gtbm90aWZpY2F0aW9uL2ljb25fbm90aWZpY2F0aW9uLW91dGxpbmUuc3ZnKVxuICAgIGNlbnRlci82NCUgbm8tcmVwZWF0ICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQ6IChcbiAgICAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aCArICRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aFxuKSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZTogJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRoIHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0taG92ZXItb3V0bGluZTogJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRoIHNvbGlkXG4gICAgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0tc2VsZWN0ZWQtb3V0bGluZTogJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRoIHNvbGlkXG4gICAgJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfcm93cy1ndXR0ZXI6ICRzd2F0Y2hlc19zd2F0Y2gtZ3V0dGVyICogMiAhZGVmYXVsdDtcblxuJHN3YXRjaGVzLS10aWxlX2ZvbnQtc2l6ZTogMC40NWVtICFkZWZhdWx0O1xuLy8gVGVsbHMgaG93IG1hbnkgcm93cyBvZiBzd2F0Y2hlcyB3aWxsIGJlIGRpc3BsYXllZCBpbnNpZGUgdGlsZSBjb21wb25lbnQuXG4kc3dhdGNoZXMtLXRpbGVfbnVtLW9mLXJvd3M6IDEgIWRlZmF1bHQ7XG4vLyBDYWxjdWxhdGVzIGhvdyBtdWNoIHNwYWNlIHNob3VsZCBiZSByZXNlcnZlZCBpbiB0aWxlIGZvciBzd2F0Y2hlcyB0byBwcmV2ZW50IGNvbnRlbnQgZnJvbSBqdW1waW5nLlxuJHN3YXRjaGVzLS10aWxlX21pbi1oZWlnaHQ6IGNhbGMoXG4gICAgI3skc3dhdGNoZXMtLXRpbGVfbnVtLW9mLXJvd3N9ICogKCN7JHN3YXRjaGVzX3N3YXRjaC1oZWlnaHR9ICsgI3skc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtb2Zmc2V0ICpcbiAgICAgICAgICAgICAgICAyfSlcbikgIWRlZmF1bHQ7XG4kc3dhdGNoZXMtLXBkcF9mb250LXNpemU6IDAuOWVtICFkZWZhdWx0O1xuJHN3YXRjaGVzLS1maWx0ZXJzX2ZvbnQtc2l6ZTogMC44ZW0gIWRlZmF1bHQ7XG5cbi8vIFRvb2x0aXBzIGZvciBzd2F0Y2hlc1xuJHN3YXRjaGVzX3Rvb2x0aXAtYmFja2dyb3VuZDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXJhZGl1czogMC41cmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemU6IDAuMXJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1jb2xvcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtZm9udC1zaXplOiAxLjNyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1mb250LXdlaWdodDogNDAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtbWFyZ2luOiAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtbWluLXdpZHRoOiAycmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2hvdzogdHJ1ZSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWFycm93LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1vZmZzZXQteDogNTAlICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtdGV4dC1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtZGF0YTogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIG1lZGlhLFxuICAgIGltYWdlcyxcbiAgICBpbWFnZSxcbiAgICBzd2F0Y2hfdGh1bWJcbikgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC13aWR0aDogI3ttYXAtZ2V0KFxuICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtZGF0YSxcbiAgICAgICAgd2lkdGhcbiAgICApfSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC1oZWlnaHQ6ICN7bWFwLWdldChcbiAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLWRhdGEsXG4gICAgICAgIGhlaWdodFxuICAgICl9ICFkZWZhdWx0O1xuXG4vLyBDb250YWluZXIgc2VsZWN0b3IgZm9yIHN3YXRjaGVzIGluIHRpbGUgYW5kIGRhaWx5IGRlYWwgdGVhc2VyLlxuW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSB7XG4gICAgZm9udC1zaXplOiAkc3dhdGNoZXMtLXRpbGVfZm9udC1zaXplO1xuICAgIG1pbi1oZWlnaHQ6ICRzd2F0Y2hlcy0tdGlsZV9taW4taGVpZ2h0O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgQGlmICRzd2F0Y2hlcy0tY2xpY2thYmxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6ZW1wdHkge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuLy8gQ29udGFpbmVyIHNlbGVjdG9yIGZvciBzd2F0Y2hlcyBvbiBQRFBcbi5zd2F0Y2gtb3B0IHtcbiAgICBmb250LXNpemU6ICRzd2F0Y2hlcy0tcGRwX2ZvbnQtc2l6ZTtcblxuICAgIC8vIFNlbGVjdG9yIGZvciBlcnJvciBjb250YWluZXIgd2hlbiBzd2F0Y2hlcyBhcmUgcmVxdWlyZWQgYnV0IG5vdCBzZWxlY3RlZC5cbiAgICAubWFnZS1lcnJvciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoI3skc3dhdGNoZXNfbGFiZWwtd2lkdGh9ICsgI3skc3dhdGNoZXNfbGFiZWwtZ3V0dGVyfSk7XG5cbiAgICAgICAgQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKFxuICAgICAgICAgICAgICAgICN7JHN3YXRjaGVzX2xhYmVsLXdpZHRoLWxhcHRvcC11cH0gKyAjeyRzd2F0Y2hlc19sYWJlbC1ndXR0ZXJ9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaWYgKCRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnN3YXRjaC1hdHRyaWJ1dGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLy8gVGhlIG9ubHkgc2VsZWN0b3Igd2UgaGF2ZSB0byB0ZWxsIHRoYXQgc3dhdGNoZXMgYXJlIGluc2lkZSBhZnRlcnNlYXJjaCBuYXZpZ2F0aW9uLlxuICAgICYuc3dhdGNoLWxheWVyZWQge1xuICAgICAgICBmb250LXNpemU6ICRzd2F0Y2hlcy0tZmlsdGVyc19mb250LXNpemU7XG4gICAgfVxuXG4gICAgJiArICYge1xuICAgICAgICBtYXJnaW4tdG9wOiAkc3dhdGNoZXNfcm93cy1ndXR0ZXI7XG4gICAgfVxufVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1sYWJlbCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsaW5lLWhlaWdodDogY2FsYyhcbiAgICAgICAgI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gLSAjeyRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoICogMn0gKyAjeyRzd2F0Y2hlc19zd2F0Y2gtdGV4dC1vZmZzZXR9XG4gICAgKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogJHN3YXRjaGVzX2xhYmVsLWZvbnQtc2l6ZTtcbiAgICB3aWR0aDogJHN3YXRjaGVzX2xhYmVsLXdpZHRoO1xuICAgIG1hcmdpbi1yaWdodDogJHN3YXRjaGVzX2xhYmVsLWd1dHRlcjtcblxuICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT0gdHJ1ZSkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIHdpZHRoOiAkc3dhdGNoZXNfbGFiZWwtd2lkdGgtbGFwdG9wLXVwO1xuXG4gICAgICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJzogJztcbiAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoXG4gICAgICAgICAgICAjeyRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0fSAtICN7JHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggKiAyfSArXG4gICAgICAgICAgICAgICAgI3skc3dhdGNoZXNfc3dhdGNoLXRleHQtb2Zmc2V0fVxuICAgICAgICApO1xuICAgIH1cbn1cblxuLnN3YXRjaC1hdHRyaWJ1dGUtc2VsZWN0ZWQtb3B0aW9uIHtcbiAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbn1cblxuLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWFyZ2luLWxlZnQ6IC0jeyRzd2F0Y2hlc19zd2F0Y2gtZ3V0dGVyIC8gMn07XG4gICAgbWFyZ2luLWJvdHRvbTogLSN7JHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXJ9O1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIC5zd2F0Y2gtb3B0ICYge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKFxuICAgICAgICAgICAgMTAwJSAtICN7JHN3YXRjaGVzX2xhYmVsLWd1dHRlcn0gLSAjeyRzd2F0Y2hlc19sYWJlbC13aWR0aH1cbiAgICAgICAgKTtcblxuICAgICAgICBAaWYgKCRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsID09IHRydWUpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogY2FsYyhcbiAgICAgICAgICAgICAgICAxMDAlIC0gI3skc3dhdGNoZXNfbGFiZWwtZ3V0dGVyfSAtICN7JHN3YXRjaGVzX2xhYmVsLXdpZHRoLWxhcHRvcC11cH1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gRWxlbWVudCBhZGRlZCBhcyBhIHBhcmVudCBvZiAuc3dhdGNoLW9wdGlvbiBpbiBmaWx0ZXJzLlxuLnN3YXRjaC1vcHRpb24tbGluay1sYXllcmVkIHtcbiAgICBmb250LXNpemU6IDFlbTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxufVxuXG4uc3dhdGNoLW9wdGlvbiB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLXdpZHRoOiAkc3dhdGNoZXNfc3dhdGNoLXdpZHRoO1xuICAgIGhlaWdodDogJHN3YXRjaGVzX3N3YXRjaC1oZWlnaHQ7XG4gICAgcGFkZGluZzogJHN3YXRjaGVzX3N3YXRjaC1wYWRkaW5nO1xuICAgIG1hcmdpbjogI3skc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGh9IGNhbGMoXG4gICAgICAgICAgICAjeyRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aH0gKyAjeyRzd2F0Y2hlc19zd2F0Y2gtZ3V0dGVyIC8gMn1cbiAgICAgICAgKSBjYWxjKCN7JHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRofSArICN7JHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXJ9KTtcbiAgICBib3JkZXItcmFkaXVzOiAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHN3YXRjaGVzX3N3YXRjaC1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXI7XG4gICAgY29sb3I6ICRzd2F0Y2hlc19zd2F0Y2gtY29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKFxuICAgICAgICAjeyRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0fSAtICN7JHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggKiAyfSArICN7JHN3YXRjaGVzX3N3YXRjaC10ZXh0LW9mZnNldH1cbiAgICApO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIGJvcmRlci1jb2xvciAwLjNzLCBvcGFjaXR5IDAuM3MsXG4gICAgICAgIGNvbG9yIDAuM3M7XG5cbiAgICBAaWYgJHN3YXRjaGVzX2Rpc2FibGUtc2hvdy1tb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLSRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQ7XG4gICAgICAgIGxlZnQ6IC0kc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtb2Zmc2V0O1xuICAgICAgICByaWdodDogLSRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQ7XG4gICAgICAgIGJvdHRvbTogLSRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQ7XG4gICAgICAgIGJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbnMvc3dhdGNoZXMvZGlzYWJsZWQuc3ZnKVxuICAgICAgICAgICAgcmdiYSgkY29sb3JfYmFja2dyb3VuZC02MDAsIDAuNSkgY2VudGVyIG5vLXJlcGVhdDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiBjYWxjKCN7JHN3YXRjaGVzX3N3YXRjaC1oZWlnaHR9IC0gMS4yZW0pO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gLSAxLjJlbSk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMC42ZW07XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAmLnNlbGVjdGVkLFxuICAgICYuYmlzLXNlbGVjdGVkIHtcbiAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1ib3JkZXI7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLWJhY2tncm91bmQ7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1vdXRsaW5lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZDpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLFxuICAgICZbZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICYudGV4dCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LW9wYWNpdHk7XG4gICAgICAgICAgICBjb2xvcjogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1ib3JkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmltYWdlLFxuICAgICAgICAmLmNvbG9yIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmJhY2staW4tc3RvY2stYWxlcnQge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc19zd2F0Y2gtLWJhY2tpbnN0b2NrLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi50ZXh0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJlbTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICByaWdodDogZ2V0LXZhbHVlLWZyb20tbGlzdCgkc3dhdGNoZXNfc3dhdGNoLXBhZGRpbmcsICdyaWdodCcpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5kaXNhYmxlZCk6bm90KC5zZWxlY3RlZCk6bm90KFtkaXNhYmxlZF0pLFxuICAgICYuYmFjay1pbi1zdG9jay1hbGVydCB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1vdXRsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3dhdGNoLWlucHV0IHtcbiAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcblxuICAgIC8vIFJlc3RvcmUgb3JpZ2luYWwgc3R5bGVzIGZyb20gTWFnZW50by5cbiAgICAvLyBJdCBwcmV2ZW50cyBrZXlib2FyZCBvbiBtb2JpbGUgdG8gYmUgc2hvd24gYWZ0ZXIgc3dhdGNoIGlzIGNsaWNrZWRcbiAgICBsZWZ0OiAtMTAwMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zd2F0Y2gtbW9yZSB7XG4gICAgQGlmICRzd2F0Y2hlc19kaXNhYmxlLXNob3ctbW9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwLFxuLnN3YXRjaC1vcHRpb24tdG9vbHRpcC1sYXllcmVkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBtYXJnaW46ICRzd2F0Y2hlc190b29sdGlwLW1hcmdpbjtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3Rvb2x0aXAtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItcmFkaXVzO1xuICAgIGNvbG9yOiAkc3dhdGNoZXNfdG9vbHRpcC1jb2xvcjtcbiAgICBmb250LXNpemU6ICRzd2F0Y2hlc190b29sdGlwLWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJHN3YXRjaGVzX3Rvb2x0aXAtZm9udC13ZWlnaHQ7XG4gICAgcGFkZGluZzogJHN3YXRjaGVzX3Rvb2x0aXAtcGFkZGluZztcbiAgICB0ZXh0LWFsaWduOiAkc3dhdGNoZXNfdG9vbHRpcC10ZXh0LWFsaWduO1xuICAgIG1pbi13aWR0aDogJHN3YXRjaGVzX3Rvb2x0aXAtbWluLXdpZHRoO1xuXG4gICAgQGlmIChcbiAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemUgIT1cbiAgICAgICAgICAgIDAgYW5kXG4gICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZSAhPVxuICAgICAgICAgICAgJ25vbmUnXG4gICAgKSB7XG4gICAgICAgIGJvcmRlcjogJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemVcbiAgICAgICAgICAgIHNvbGlkXG4gICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLmltYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLXdpZHRoICsgJ3B4JztcbiAgICAgICAgaGVpZ2h0OiAkc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtaGVpZ2h0ICsgJ3B4JztcbiAgICB9XG5cbiAgICAuY29ybmVyIHtcbiAgICAgICAgQGlmICgkc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaG93KSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaXplO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3dhdGNoZXNfdG9vbHRpcC1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIGxlZnQ6ICRzd2F0Y2hlc190b29sdGlwLWFycm93LW9mZnNldC14O1xuICAgICAgICAgICAgICAgIEBpZiAodW5pdCgkc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1vZmZzZXQteCkgPT0gJyUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtI3skc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1vZmZzZXQteH0pXG4gICAgICAgICAgICAgICAgICAgICAgICByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemUgIT1cbiAgICAgICAgICAgICAgICAgICAgICAgIDAgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZSAhPVxuICAgICAgICAgICAgICAgICAgICAgICAgJ25vbmUnXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplXG4gICAgICAgICAgICAgICAgICAgICAgICBzb2xpZFxuICAgICAgICAgICAgICAgICAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplXG4gICAgICAgICAgICAgICAgICAgICAgICBzb2xpZFxuICAgICAgICAgICAgICAgICAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZVxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICAgICAgLSN7JHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2l6ZSAvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMn0gK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemV9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0jeyRzd2F0Y2hlc190b29sdGlwLWFycm93LXNpemUgLyAyfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm1pc3Npbmctc3dhdGNoZXMtbW9kYWwge1xuICAgIG1heC13aWR0aDogNDByZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgXG4gICAgLm1hZ2UtZXJyb3Ige1xuICAgICAgICBwYWRkaW5nLXRvcDogMC44cmVtO1xuICAgIH1cblxuICAgIC5zd2F0Y2gtYXR0cmlidXRlICsgLnN3YXRjaC1hdHRyaWJ1dGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4uY3MtdG9wYmFyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEuMXJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy10b3BiYXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHotaW5kZXg6IDMwMjsgfSB9XG4gIC5jcy10b3BiYXJfX3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMi43cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy10b3BiYXJfX3dyYXBwZXIge1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfSB9XG4gIC5jcy10b3BiYXJfX2l0ZW0ge1xuICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAuY3MtdG9wYmFyX19pdGVtLS11c3BzIHtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAgIC5jcy10b3BiYXJfX2l0ZW0tLXVzcHMge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAgIC5jcy10b3BiYXJfX2l0ZW0tLWhvdGxpbmUge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLmNzLXRvcGJhcl9faXRlbS0tbGFuZ3VhZ2Uge1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5jcy10b3BiYXJfX2xpc3QsXG4gIC5jcy10b3BiYXJfX2l0ZW0gPiB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy10b3BiYXJfX2xpc3QtaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDIuN3JlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLXRvcGJhcl9fbGlzdC1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjlyZW07XG4gICAgICBwYWRkaW5nOiAwIDAuM3JlbSAwIDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLXRvcGJhcl9fbGlzdC1pdGVtIHtcbiAgICAgICAgcGFkZGluZzogMCAxLjNyZW0gMCAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuN3JlbTsgfSB9XG4gICAgLmNzLXRvcGJhcl9fbGlzdC1pdGVtOm5vdCg6bGFzdC1jaGlsZCk6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBib3JkZXItcmlnaHQ6IDAuMnJlbSBzb2xpZCAjZmZmOyB9XG4gIC5jcy10b3BiYXJfX3RleHQge1xuICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gIC5jcy10b3BiYXJfX2xpbmsge1xuICAgIG1hcmdpbi1yaWdodDogMC45cmVtOyB9XG4gICAgLmNzLXRvcGJhcl9fbGluaywgLmNzLXRvcGJhcl9fbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLXRvcGJhcl9fbGluazpob3ZlciwgLmNzLXRvcGJhcl9fbGluazpmb2N1cywgLmNzLXRvcGJhcl9fbGluazphY3RpdmUsIC5jcy10b3BiYXJfX2xpbms6dmlzaXRlZDpob3ZlciwgLmNzLXRvcGJhcl9fbGluazp2aXNpdGVkOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjMTQyYjllO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy10b3BiYXJfX2hvdGxpbmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtdG9wYmFyX19waG9uZS1udW1iZXIge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjlyZW07IH1cbiAgICAuY3MtdG9wYmFyX19waG9uZS1udW1iZXIsIC5jcy10b3BiYXJfX3Bob25lLW51bWJlcjp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyOmhvdmVyLCAuY3MtdG9wYmFyX19waG9uZS1udW1iZXI6Zm9jdXMsIC5jcy10b3BiYXJfX3Bob25lLW51bWJlcjphY3RpdmUsIC5jcy10b3BiYXJfX3Bob25lLW51bWJlcjp2aXNpdGVkOmhvdmVyLCAuY3MtdG9wYmFyX19waG9uZS1udW1iZXI6dmlzaXRlZDpmb2N1cyB7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uY3MtY29udGFpbmVyLS10b3AtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi5jcy1jb250YWluZXItLXRvcC1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gIC5jcy1jb250YWluZXItLXRvcC1iYXIgLmNzLXRvcGJhciB7XG4gICAgbWF4LXdpZHRoOiAxNjByZW07XG4gICAgei1pbmRleDogNjsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3OS45OWVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyLS10b3AtYmFyIC5jcy10b3BiYXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgLmNzLWNvbnRhaW5lci0tdG9wLWJhciAuY3MtdG9wYmFyX193cmFwcGVyIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5jcy1jb250YWluZXItLXRvcC1iYXIgLmNzLXRvcGJhcl9faXRlbSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3OS45OWVtKSB7XG4gICAgICAgIC5jcy1jb250YWluZXItLXRvcC1iYXIgLmNzLXRvcGJhcl9faXRlbSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfSB9XG4gICAgLmNzLWNvbnRhaW5lci0tdG9wLWJhciAuY3MtdG9wYmFyIGRpdltkYXRhLWNvbnRlbnQtdHlwZT10ZXh0XSBwIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICBtYXgtaGVpZ2h0OiA0MHB4OyB9XG4gICAgLmNzLWNvbnRhaW5lci0tdG9wLWJhciAuY3MtdG9wYmFyIGRpdltkYXRhLWNvbnRlbnQtdHlwZT10ZXh0XSBpbWcge1xuICAgICAgbWF4LXdpZHRoOiAzMHB4O1xuICAgICAgbWF4LWhlaWdodDogMzBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDNweDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuXG4kdG9wYmFyX2JhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHRvcGJhcl9oZWlnaHQ6IDIuN3JlbSAhZGVmYXVsdDtcblxuJHRvcGJhcl9pdGVtLWZvbnQtc2l6ZTogMS4xcmVtICFkZWZhdWx0O1xuJHRvcGJhcl9pdGVtLXRleHQtY29sb3I6ICRjb2xvcl9taW5lc2hhZnQgIWRlZmF1bHQ7XG4kdG9wYmFyX2VuYWJsZS1ib3JkZXJzOiB0cnVlICFkZWZhdWx0O1xuJHRvcGJhcl9pdGVtLWJvcmRlcjogMC4ycmVtIHNvbGlkICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiR0b3BiYXJfaXRlbS1waG9uZV9udW1iZXItY29sb3I6ICRjb2xvcl9ibGFjayAhZGVmYXVsdDtcblxuJHRvcGJhcl9saW5rLWNvbG9yOiAkbGluay1jb2xvcl9iYXNlICFkZWZhdWx0O1xuJHRvcGJhcl9saW5rLWNvbG9yLWhvdmVyOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyICFkZWZhdWx0O1xuJHRvcGJhcl9saW5rLWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kdG9wYmFyX2xpbmstaG92ZXItZGVjb3JhdGlvbjogJHRvcGJhcl9saW5rLWRlY29yYXRpb24gIWRlZmF1bHQ7XG5cbiRjb250YWluZXJfYmFja2dyb3VuZC10b3AtYmFyOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc310b3BiYXIge1xuICAgICRyb290OiAmO1xuXG4gICAgYmFja2dyb3VuZDogJHRvcGJhcl9iYWNrZ3JvdW5kO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAkdG9wYmFyX2l0ZW0tZm9udC1zaXplO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB6LWluZGV4OiAzMDI7XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6ICR0b3BiYXJfaGVpZ2h0O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGNvbG9yOiAkdG9wYmFyX2l0ZW0tdGV4dC1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAmLS11c3BzIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob3RsaW5lIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxhbmd1YWdlIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3QsXG4gICAgJl9faXRlbSA+IHVsIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19saXN0LWl0ZW0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBoZWlnaHQ6ICR0b3BiYXJfaGVpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC45cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjNyZW0gMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxLjNyZW0gMCAwO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjdyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0b3BiYXJfZW5hYmxlLWJvcmRlcnMpIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHRvcGJhcl9pdGVtLWJvcmRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgY29sb3I6ICR0b3BiYXJfaXRlbS10ZXh0LWNvbG9yO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgJGNvbG9yOiAkdG9wYmFyX2xpbmstY29sb3IsXG4gICAgICAgICAgICAkY29sb3ItaG92ZXI6ICR0b3BiYXJfbGluay1jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uOiAkdG9wYmFyX2xpbmstZGVjb3JhdGlvbixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOiAkdG9wYmFyX2xpbmstaG92ZXItZGVjb3JhdGlvblxuICAgICAgICApO1xuXG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45cmVtO1xuICAgIH1cblxuICAgICZfX2hvdGxpbmUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3Bob25lLW51bWJlciB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICAgICAkY29sb3I6ICR0b3BiYXJfaXRlbS1waG9uZV9udW1iZXItY29sb3IsXG4gICAgICAgICAgICAkY29sb3ItaG92ZXI6ICR0b3BiYXJfaXRlbS1waG9uZV9udW1iZXItY29sb3JcbiAgICAgICAgKTtcblxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOXJlbTtcbiAgICB9XG59XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLXRvcC1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29udGFpbmVyX2JhY2tncm91bmQtdG9wLWJhcjtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL3RvcGJhci90b3BiYXIuc2Nzc1wiO1xuXG4uI3skbnN9Y29udGFpbmVyLS10b3AtYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuXG4gICAgLiN7JG5zfXRvcGJhciB7XG4gICAgICAgIG1heC13aWR0aDogJGttYV9jb250YWluZXJfc2l6ZS1mdWxsO1xuICAgICAgICB6LWluZGV4OiA2O1xuICAgIFxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BMZ1wiKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3dyYXBwZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAka21hX2NvbG9yX2dyZXktMjAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8bGFwdG9wTGdcIikge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkaXZbZGF0YS1jb250ZW50LXR5cGU9dGV4dF0ge1xuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogNDBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5oMSB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogNS42cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuaDIge1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDQuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmgzIHtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5oNCB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuaDUge1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuYSwgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5hOmhvdmVyLCBhOmZvY3VzLCBhOmFjdGl2ZSwgYTp2aXNpdGVkOmhvdmVyLCBhOnZpc2l0ZWQ6Zm9jdXMge1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbnVsLFxub2wge1xuICBtYXJnaW46IDAgMCAyLjVyZW07XG4gIHBhZGRpbmc6IDAgMCAwIDRyZW07IH1cbiAgdWwgPiBsaSxcbiAgb2wgPiBsaSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5oMSB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogNS42cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuaDIge1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDQuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmgzIHtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5oNCB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuaDUge1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuYSwgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5hOmhvdmVyLCBhOmZvY3VzLCBhOmFjdGl2ZSwgYTp2aXNpdGVkOmhvdmVyLCBhOnZpc2l0ZWQ6Zm9jdXMge1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbnVsLFxub2wge1xuICBtYXJnaW46IDAgMCAyLjVyZW07XG4gIHBhZGRpbmc6IDAgMCAwIDRyZW07IH1cbiAgdWwgPiBsaSxcbiAgb2wgPiBsaSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuXG5ib2R5IHtcbiAgZm9udC1zaXplOiAxLjZyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuaDEge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS0xKTtcbn1cblxuaDIge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS0yKTtcbn1cblxuaDMge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS0zKTtcbn1cblxuaDQge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS00KTtcbn1cblxuaDUge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS01KTtcbn1cblxuaDYge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS02KTtcbn1cblxuYSB7XG4gICAgQGluY2x1ZGUgbGluaygpO1xufVxuXG51bCxcbm9sIHtcbiAgICBAaW5jbHVkZSBsaXN0KCk7XG5cbiAgICA+IGxpIHtcbiAgICAgICAgQGluY2x1ZGUgbGlzdC1pdGVtKCk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnfkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL3R5cG9ncmFwaHkvdHlwb2dyYXBoeS5zY3NzJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuaDEge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS0xKTtcbn1cblxuaDIge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS0yKTtcbn1cblxuaDMge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS0zKTtcbn1cblxuaDQge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS00KTtcbn1cblxuaDUge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS01KTtcbn1cblxuaDYge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS02KTtcbn1cblxuYSB7XG4gICAgQGluY2x1ZGUgbGluaygpO1xufVxuXG51bCxcbm9sIHtcbiAgICBAaW5jbHVkZSBsaXN0KCk7XG5cbiAgICA+IGxpIHtcbiAgICAgICAgQGluY2x1ZGUgbGlzdC1pdGVtKCk7XG4gICAgfVxufVxuXG5ib2R5IHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4uY3MtdmlzdWFsbHktaGlkZGVuIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8qIDEgKi8gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4uI3skbnN9dmlzdWFsbHktaGlkZGVuIHtcbiAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW47XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3Mtc2VsZWN0IHtcbiAgbWluLXdpZHRoOiAwLjVweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDUwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgb3BhY2l0eTogMDtcbiAgYm9yZGVyOiBub25lOyB9XG4gIC5jcy1zZWxlY3QtLW1vYmlsZSB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogNDsgfVxuXG4uY3MtaHRtbC1zZWxlY3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4td2lkdGg6IDE1cmVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB6LWluZGV4OiAyOyB9XG4gIC5jcy1odG1sLXNlbGVjdC5vcGVuIHtcbiAgICB6LWluZGV4OiA5OTsgfVxuICAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMTNyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB6LWluZGV4OiAzO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgcGFkZGluZy1yaWdodDogMi4zZW07XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyLS1kaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgIC5jcy1odG1sLXNlbGVjdC0tZXJyb3IgLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogI2Y0NjY2NztcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsgfVxuICAgIC5jcy1odG1sLXNlbGVjdC0tb3BlbiAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXIsXG4gICAgLmNzLWh0bWwtc2VsZWN0Lm9wZW4gLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyIHtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMjRkY2Y7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q1ZDVkNTsgfVxuICAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItdGV4dCB7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDJyZW07IH1cbiAgLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyLWNhcmV0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIC5jcy1odG1sLXNlbGVjdF9fdHJpZ2dlci1jYXJldC1hcnJvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyLWNhcmV0LWFycm93OmJlZm9yZSwgLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyLWNhcmV0LWFycm93OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB3aWR0aDogMC43cmVtO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYztcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIsIHJpZ2h0IDAuMTVzIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItY2FyZXQtYXJyb3c6aG92ZXI6YmVmb3JlLCAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItY2FyZXQtYXJyb3c6aG92ZXI6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODsgfVxuICAgIC5jcy1odG1sLXNlbGVjdC0tb3BlbiAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItY2FyZXQtYXJyb3c6YmVmb3JlLCAuY3MtaHRtbC1zZWxlY3QtLW9wZW4gLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyLWNhcmV0LWFycm93OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMjRkY2Y7IH1cbiAgICAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItY2FyZXQtYXJyb3c6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgIHJpZ2h0OiAxLjdyZW07IH1cbiAgICAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItY2FyZXQtYXJyb3c6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgIHJpZ2h0OiAxLjJyZW07IH1cbiAgICAuY3MtaHRtbC1zZWxlY3QtLW9wZW4gLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyLWNhcmV0LWFycm93OmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyB9XG4gICAgLmNzLWh0bWwtc2VsZWN0LS1vcGVuIC5jcy1odG1sLXNlbGVjdF9fdHJpZ2dlci1jYXJldC1hcnJvdzphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cbiAgLmNzLWh0bWwtc2VsZWN0X19tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogNTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMjRkY2Y7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMjRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMjRweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCAwIHJnYmEoMTAwLCAxMDAsIDEwMCwgMC4yKTtcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAgIC5jcy1odG1sLXNlbGVjdC0tb3BlbiAuY3MtaHRtbC1zZWxlY3RfX21lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmNzLWh0bWwtc2VsZWN0LS1hdXRvc3VnZ2VzdDpub3QoLmNzLWh0bWwtc2VsZWN0LS1vcGVuKSAuY3MtaHRtbC1zZWxlY3RfX21lbnUge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAuY3MtaHRtbC1zZWxlY3RfX21lbnUtbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuY3MtaHRtbC1zZWxlY3RfX21lbnUtaXRlbSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLXRvcDogbm9uZTsgfVxuICAgIC5jcy1odG1sLXNlbGVjdF9fbWVudS1pdGVtLS1oaWRkZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtaHRtbC1zZWxlY3RfX21lbnUtbGluayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwIDFlbTtcbiAgICBoZWlnaHQ6IDIuOGVtO1xuICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyLCBjb2xvciAwLjE1cyBsaW5lYXI7IH1cbiAgICAuY3MtaHRtbC1zZWxlY3RfX21lbnUtaXRlbS0tc2VsZWN0ZWQgLmNzLWh0bWwtc2VsZWN0X19tZW51LWxpbmsge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzI0ZGNmOyB9XG4gICAgLmNzLWh0bWwtc2VsZWN0X19tZW51LWxpbms6aG92ZXIsIC5jcy1odG1sLXNlbGVjdF9fbWVudS1saW5rOmZvY3VzLFxuICAgIC5jcy1odG1sLXNlbGVjdF9fbWVudS1pdGVtLS1mb2N1c2VkIC5jcy1odG1sLXNlbGVjdF9fbWVudS1saW5rIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMjRkY2Y7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLmNzLWh0bWwtc2VsZWN0X19tZW51LWl0ZW0tdGV4dCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XG4gIC5jcy1odG1sLXNlbGVjdF9fdGV4dC1pbWFnZS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLWh0bWwtc2VsZWN0X190aHVtYm5haWwge1xuICAgIHdpZHRoOiAyLjVyZW07XG4gICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5jcy1odG1sLXNlbGVjdC0tYXV0b3N1Z2dlc3Qge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuY3MtaHRtbC1zZWxlY3QtLWF1dG9zdWdnZXN0IC5jcy1odG1sLXNlbGVjdF9fbWVudSB7XG4gICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgICBtYXgtaGVpZ2h0OiAyMjBweDsgfVxuICAgIC5jcy1odG1sLXNlbGVjdC0tYXV0b3N1Z2dlc3QgLmNzLWh0bWwtc2VsZWN0X19tZW51LWxpc3Qge1xuICAgICAgbWF4LWhlaWdodDogMjIwcHg7IH1cbiAgICAuY3MtaHRtbC1zZWxlY3QtLWF1dG9zdWdnZXN0Om5vdCguY3MtaHRtbC1zZWxlY3QtLWFuaW1hdGUpIC5jcy1odG1sLXNlbGVjdF9fbWVudSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiBub25lOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWh0bWwtc2VsZWN0X19tZW51LWl0ZW0tLXNlbGVjdGVkIC5jcy1odG1sLXNlbGVjdF9fbWVudS1saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg3ODc4NzsgfVxuXG4uY3MtaHRtbC1zZWxlY3RfX21lbnUtbGluazpob3ZlciwgLmNzLWh0bWwtc2VsZWN0X19tZW51LWxpbms6Zm9jdXMsXG4uY3MtaHRtbC1zZWxlY3RfX21lbnUtaXRlbS0tZm9jdXNlZCAuY3MtaHRtbC1zZWxlY3RfX21lbnUtbGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4Nzg3ODc7IH1cblxuLmNzLWh0bWwtc2VsZWN0X19tZW51IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbi5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wc2V1ZG9pY29uL21peGluJztcblxuJGh0bWwtc2VsZWN0X3RyaWdnZXItZm9udC1zaXplOiAkZmllbGRfc2VsZWN0LWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF90cmlnZ2VyLWxpbmUtaGVpZ2h0OiAkZmllbGRfc2VsZWN0LWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X3RyaWdnZXItZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF90cmlnZ2VyLXNlbGVjdF9jb2xvcjogJGZpZWxkX3NlbGVjdC1jb2xvciAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF90cmlnZ2VyLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF90cmlnZ2VyLXBhZGRpbmc6ICRmaWVsZF9zZWxlY3QtcGFkZGluZyAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF90cmlnZ2VyLXBhZGRpbmctcmlnaHQ6ICRmaWVsZF9zZWxlY3QtcGFkZGluZy1yaWdodCAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF90cmlnZ2VyLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kaHRtbC1zZWxlY3RfdHJpZ2dlci1ib3JkZXI6ICRmaWVsZF9zZWxlY3QtYm9yZGVyICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X3RyaWdnZXItYm9yZGVyLWFjdGl2ZTogMXB4IHNvbGlkICRjb2xvci1wcmltYXJ5XzUwMCAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF90cmlnZ2VyLWJveC1zaGFkb3c6ICRmaWVsZF9zZWxlY3QtYm94LXNoYWRvdyAhZGVmYXVsdDtcblxuJGh0bWwtc2VsZWN0X2NhcmV0LWNvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF9jYXJldC1hY3RpdmUtY29sb3I6ICRjb2xvci1wcmltYXJ5XzUwMCAhZGVmYXVsdDtcblxuJGh0bWwtc2VsZWN0X2l0ZW0tYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X2l0ZW0tY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF9pdGVtLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF9pdGVtLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kaHRtbC1zZWxlY3RfaXRlbS1zZWxlY3RlZC1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kaHRtbC1zZWxlY3RfaXRlbS1zZWxlY3RlZC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kaHRtbC1zZWxlY3RfbWVudS1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kaHRtbC1zZWxlY3RfbWVudS1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X21lbnUtYm94LXNoYWRvdzogMCAxcHggNXB4IDAgcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjIpICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X21lbnUtYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuXG4kaHRtbC1zZWxlY3RfaXRlbS1ib3JkZXItdG9wOiBub25lICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X2l0ZW0taGVpZ2h0OiAyLjhlbSAhZGVmYXVsdDtcblxuJGh0bWwtc2VsZWN0X2Rpc2FibGVkLW9wYWNpdHk6ICRmaWVsZF9zZWxlY3QtZGlzYWJsZWQtb3BhY2l0eSAhZGVmYXVsdDtcblxuLy8gc2VsZWN0XG4vLyBDdXN0b20gSFRNTCBzZWxlY3QgdmVyc2lvbiBvZiBuYXRpdmUgc2VsZWN0IHdpdGggbmF0aXZlIGZhbGxiYWNrIG9uIG1vYmlsZXNcbi8vXG4vLyBTZWUgaHR0cDovL3dhcnBzcGlyZS5jb20va3NzLyBmb3IgZG9jdW1lbnRhdGlvbiBndWlkZWxpbmVzLlxuLy8gVmVyc2lvbiAwLjAuMVxuXG4uI3skbnN9c2VsZWN0IHtcbiAgICBtaW4td2lkdGg6IDAuNXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuXG4gICAgJi0tbW9iaWxlIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgfVxufVxuXG4uI3skbnN9aHRtbC1zZWxlY3Qge1xuICAgICRyb290OiAmO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1pbi13aWR0aDogMTVyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgJi5vcGVuIHtcbiAgICAgICAgei1pbmRleDogOTk7XG4gICAgfVxuXG4gICAgJl9fdHJpZ2dlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAxM3JlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZDogJGh0bWwtc2VsZWN0X3RyaWdnZXItYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyOiAkaHRtbC1zZWxlY3RfdHJpZ2dlci1ib3JkZXI7XG4gICAgICAgIHBhZGRpbmc6ICRodG1sLXNlbGVjdF90cmlnZ2VyLXBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRodG1sLXNlbGVjdF90cmlnZ2VyLXBhZGRpbmctcmlnaHQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRodG1sLXNlbGVjdF90cmlnZ2VyLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJveC1zaGFkb3c6ICRodG1sLXNlbGVjdF90cmlnZ2VyLWJveC1zaGFkb3c7XG4gICAgICAgIGZvbnQtc2l6ZTogJGh0bWwtc2VsZWN0X3RyaWdnZXItZm9udC1zaXplO1xuXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRodG1sLXNlbGVjdF9kaXNhYmxlZC1vcGFjaXR5O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1lcnJvciAmIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2Y0NjY2NztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1vcGVuICYsXG4gICAgICAgICN7JHJvb3R9Lm9wZW4gJiB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXI6ICRodG1sLXNlbGVjdF90cmlnZ2VyLWJvcmRlci1hY3RpdmU7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkaHRtbC1zZWxlY3RfdHJpZ2dlci1ib3JkZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190cmlnZ2VyLXRleHQge1xuICAgICAgICBjb2xvcjogJGh0bWwtc2VsZWN0X3RyaWdnZXItc2VsZWN0X2NvbG9yO1xuICAgICAgICBsaW5lLWhlaWdodDogJGh0bWwtc2VsZWN0X3RyaWdnZXItbGluZS1oZWlnaHQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkaHRtbC1zZWxlY3RfdHJpZ2dlci1mb250LXdlaWdodDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZpZWxkX3NlbGVjdC1mb250LXNpemU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMnJlbTtcbiAgICB9XG5cbiAgICAmX190cmlnZ2VyLWNhcmV0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG5cbiAgICAmX190cmlnZ2VyLWNhcmV0LWFycm93IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICR0eXBlOiAnYXJyb3cnLFxuICAgICAgICAgICAgJGNvbG9yOiAkaHRtbC1zZWxlY3RfY2FyZXQtY29sb3IsXG4gICAgICAgICAgICAkY29sb3ItZXhwYW5kZWQ6ICRodG1sLXNlbGVjdF9jYXJldC1hY3RpdmUtY29sb3IsXG4gICAgICAgICAgICAkd2lkdGg6IDAuN3JlbSxcbiAgICAgICAgICAgICRoZWlnaHQ6IDFweCxcbiAgICAgICAgICAgICRhcnJvdy1kZWZhdWx0OiAnZG93bicsXG4gICAgICAgICAgICAkYXJyb3ctYWN0aXZlOiAndXAnLFxuICAgICAgICAgICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OiAxLjJyZW0sXG4gICAgICAgICAgICAkYXJyb3ctb2Zmc2V0OiAxLjdyZW0sXG4gICAgICAgICAgICAkYWN0aXZlLXNlbGVjdG9yOiAnI3skcm9vdH0tLW9wZW4gJidcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19tZW51IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogJGh0bWwtc2VsZWN0X21lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItdG9wOiAkaHRtbC1zZWxlY3RfdHJpZ2dlci1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRodG1sLXNlbGVjdF9tZW51LWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkaHRtbC1zZWxlY3RfbWVudS1ib3JkZXItcmFkaXVzO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaHRtbC1zZWxlY3RfbWVudS1iYWNrZ3JvdW5kO1xuICAgICAgICBib3gtc2hhZG93OiAkaHRtbC1zZWxlY3RfbWVudS1ib3gtc2hhZG93O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cbiAgICAgICAgI3skcm9vdH0tLW9wZW4gJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tYXV0b3N1Z2dlc3Q6bm90KCN7JHJvb3R9LS1vcGVuKSAmIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tZW51LWxpc3Qge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG4gICAgfVxuXG4gICAgJl9fbWVudS1pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXItdG9wOiAkaHRtbC1zZWxlY3RfaXRlbS1ib3JkZXItdG9wO1xuXG4gICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWVudS1saW5rIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwIDFlbTtcbiAgICAgICAgaGVpZ2h0OiAkaHRtbC1zZWxlY3RfaXRlbS1oZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkaHRtbC1zZWxlY3RfaXRlbS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGh0bWwtc2VsZWN0X2l0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhciwgY29sb3IgMC4xNXMgbGluZWFyO1xuXG4gICAgICAgICN7JHJvb3R9X19tZW51LWl0ZW0tLXNlbGVjdGVkICYge1xuICAgICAgICAgICAgY29sb3I6ICRodG1sLXNlbGVjdF9pdGVtLXNlbGVjdGVkLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGh0bWwtc2VsZWN0X2l0ZW0tc2VsZWN0ZWQtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICN7JHJvb3R9X19tZW51LWl0ZW0tLWZvY3VzZWQgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaHRtbC1zZWxlY3RfaXRlbS1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgY29sb3I6ICRodG1sLXNlbGVjdF9pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lbnUtaXRlbS10ZXh0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cblxuICAgICZfX3RleHQtaW1hZ2Utd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgd2lkdGg6IDIuNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgfVxuXG4gICAgJi0tYXV0b3N1Z2dlc3Qge1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICN7JHJvb3R9X19tZW51IHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX21lbnUtbGlzdCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KCN7JHJvb3R9LS1hbmltYXRlKSAjeyRyb290fV9fbWVudSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnfkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3Quc2Nzcyc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuJGh0bWwtc2VsZWN0X2l0ZW0taG92ZXItYmFja2dyb3VuZDogJGttYV9jb2xvcl9wcmltYXJ5LTUwMDtcbiRodG1sLXNlbGVjdF9pdGVtLXNlbGVjdGVkLWJhY2tncm91bmQ6ICRrbWFfY29sb3JfcHJpbWFyeS01MDA7XG5cbi4jeyRuc31odG1sLXNlbGVjdCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX19tZW51LWxpbmsge1xuICAgICAgICAjeyRyb290fV9fbWVudS1pdGVtLS1zZWxlY3RlZCAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRodG1sLXNlbGVjdF9pdGVtLXNlbGVjdGVkLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAjeyRyb290fV9fbWVudS1pdGVtLS1mb2N1c2VkICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGh0bWwtc2VsZWN0X2l0ZW0taG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lbnUge1xuICAgICAgICBib3JkZXI6ICRrbWFfYm9yZGVyX2Jhc2U7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLmNzLXByb2R1Y3QtbmF2aWdhdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogLTRyZW0gMCAwO1xuICBoZWlnaHQ6IGNhbGMoIDEuMXJlbSArICggMXJlbSApICsgKDFyZW0pICsgKDAuNXJlbSkgKyAoIDAuNXJlbSApICsgMXB4KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbi0taW5pdGlhbGl6ZWQge1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5jcy1wcm9kdWN0LW5hdmlnYXRpb24tLWluaXRpYWxpemVkIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpc3Qge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzOyB9XG4gIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpc3QtaXRlbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saXN0LWl0ZW0tLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAycmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluay0tY2F0ZWdvcnksIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLXNlYXJjaCwgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluay0tcHJldiB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1jYXRlZ29yeTpiZWZvcmUsIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLWNhdGVnb3J5OmFmdGVyLCAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1zZWFyY2g6YmVmb3JlLCAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1zZWFyY2g6YWZ0ZXIsIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLXByZXY6YmVmb3JlLCAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAgbGluZWFyO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAgIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLWNhdGVnb3J5OmhvdmVyOmJlZm9yZSwgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluay0tY2F0ZWdvcnk6aG92ZXI6YWZ0ZXIsIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLXNlYXJjaDpob3ZlcjpiZWZvcmUsIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLXNlYXJjaDpob3ZlcjphZnRlciwgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluay0tcHJldjpob3ZlcjpiZWZvcmUsIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLXByZXY6aG92ZXI6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQyYjllOyB9XG4gICAgICAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1jYXRlZ29yeVthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUsIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLWNhdGVnb3J5W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyLCAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1zZWFyY2hbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlLCAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1zZWFyY2hbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIsIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLXByZXZbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlLCAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1wcmV2W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODsgfVxuICAgICAgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluay0tY2F0ZWdvcnk6YmVmb3JlLCAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1zZWFyY2g6YmVmb3JlLCAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIC01MCUsIDApO1xuICAgICAgICByaWdodDogY2FsYyggMS41cmVtICsgMS4ycmVtIC0gMC40cmVtKTsgfVxuICAgICAgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluay0tY2F0ZWdvcnk6YWZ0ZXIsIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLXNlYXJjaDphZnRlciwgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluay0tcHJldjphZnRlciB7XG4gICAgICAgIHJpZ2h0OiBjYWxjKCAxLjVyZW0gKyAxLjJyZW0gLSAwLjRyZW0pO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgNTAlLCAwKTsgfVxuICAgICAgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluay0tY2F0ZWdvcnlbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlLCAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1zZWFyY2hbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlLCAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1wcmV2W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHJpZ2h0OiAxLjVyZW07IH1cbiAgICAgIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLWNhdGVnb3J5W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyLCAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1zZWFyY2hbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIsIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLXByZXZbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IGNhbGMoIDEuNXJlbSArIDEuMnJlbSAtIDAuNHJlbSk7IH1cbiAgICAgIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLWNhdGVnb3J5OmJlZm9yZSwgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluay0tY2F0ZWdvcnk6YWZ0ZXIsIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLXNlYXJjaDpiZWZvcmUsIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLXNlYXJjaDphZnRlciwgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluay0tcHJldjpiZWZvcmUsIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLXByZXY6YWZ0ZXIge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogYXV0bzsgfVxuICAgIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLW5leHQge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLW5leHQ6YmVmb3JlLCAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1uZXh0OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAgbGluZWFyO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAgIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLW5leHQ6aG92ZXI6YmVmb3JlLCAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1uZXh0OmhvdmVyOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE0MmI5ZTsgfVxuICAgICAgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluay0tbmV4dFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUsIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLW5leHRbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4OyB9XG4gICAgICAuY3MtcHJvZHVjdC1uYXZpZ2F0aW9uX19saW5rLS1uZXh0OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgIC5jcy1wcm9kdWN0LW5hdmlnYXRpb25fX2xpbmstLW5leHQ6YWZ0ZXIge1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTsgfVxuICAgICAgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluay0tbmV4dFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICByaWdodDogY2FsYyggMS41cmVtICsgMS4ycmVtIC0gMC40cmVtKTsgfVxuICAgICAgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluay0tbmV4dFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHJpZ2h0OiAwOyB9XG4gICAgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluaywgLmNzLXByb2R1Y3QtbmF2aWdhdGlvbl9fbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjMjEyMTIxOyB9XG5cbi5jcy1jb250YWluZXItLXBhZ2UtcGRwLXByb2R1Y3QtbmF2IHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgIC5jcy1jb250YWluZXItLXBhZ2UtcGRwLXByb2R1Y3QtbmF2IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvZ2V0LXZhbHVlLWZyb20tbGlzdCc7XG5cbiRwcm9kdWN0LW5hdmlnYXRpb25fbWFyZ2luOiAtNHJlbSAwIDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC1uYXZpZ2F0aW9uX2ZvbnQtc2l6ZTogMS4xcmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtbmF2aWdhdGlvbl9ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRwcm9kdWN0LW5hdmlnYXRpb25fYm9yZGVyOiAkcHJvZHVjdC1uYXZpZ2F0aW9uX2JvcmRlci13aWR0aCBzb2xpZFxuICAgICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHByb2R1Y3QtbmF2aWdhdGlvbl9saXN0LXBhZGRpbmc6IDFyZW0gMCAhZGVmYXVsdDtcbiRwcm9kdWN0LW5hdmlnYXRpb25fbGlzdC1pdGVtLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwcm9kdWN0LW5hdmlnYXRpb25fbGluay1wYWRkaW5nOiAwLjVyZW0gMnJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LW5hdmlnYXRpb25fbGluay1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHByb2R1Y3QtbmF2aWdhdGlvbl9saW5rLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC1uYXZpZ2F0aW9uX2xpbmstZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LW5hdmlnYXRpb25fbGluay1pY29uLXNob3c6IHRydWUgIWRlZmF1bHQ7XG4kcHJvZHVjdC1uYXZpZ2F0aW9uX2xpbmstaWNvbi13aWR0aDogMC43cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtbmF2aWdhdGlvbl9saW5rLWljb24taGVpZ2h0OiAxcHggIWRlZmF1bHQ7XG4kcHJvZHVjdC1uYXZpZ2F0aW9uX2xpbmstaWNvbi1jb2xvcjogJHByb2R1Y3QtbmF2aWdhdGlvbl9saW5rLWNvbG9yICFkZWZhdWx0O1xuJHByb2R1Y3QtbmF2aWdhdGlvbl9saW5rLWljb24tY29sb3ItaG92ZXI6ICRsaW5rLWNvbG9yX2Jhc2UtaG92ZXIgIWRlZmF1bHQ7XG4kcHJvZHVjdC1uYXZpZ2F0aW9uX2xpbmstaWNvbi10eXBlOiAnYXJyb3cnICFkZWZhdWx0O1xuXG4vLyBQbGFjZWhvbGRlciBoZWlnaHQgdG8gcHJldmVudCBqdW1wIGFmdGVyIGluaXRpYWxpemF0aW9uXG4kcHJvZHVjdC1uYXZpZ2F0aW9uX2hlaWdodDogY2FsYyhcbiAgICAjeyRwcm9kdWN0LW5hdmlnYXRpb25fZm9udC1zaXplfSArIChcbiAgICAgICAgICAgICN7Z2V0LXZhbHVlLWZyb20tbGlzdCgkcHJvZHVjdC1uYXZpZ2F0aW9uX2xpc3QtcGFkZGluZywgJ3VwJyl9XG4gICAgICAgICkgKyAoI3tnZXQtdmFsdWUtZnJvbS1saXN0KCRwcm9kdWN0LW5hdmlnYXRpb25fbGlzdC1wYWRkaW5nLCAnZG93bicpfSkgK1xuICAgICAgICAoI3tnZXQtdmFsdWUtZnJvbS1saXN0KCRwcm9kdWN0LW5hdmlnYXRpb25fbGluay1wYWRkaW5nLCAndXAnKX0pICsgKFxuICAgICAgICAgICAgI3tnZXQtdmFsdWUtZnJvbS1saXN0KCRwcm9kdWN0LW5hdmlnYXRpb25fbGluay1wYWRkaW5nLCAnZG93bicpfVxuICAgICAgICApICsgI3skcHJvZHVjdC1uYXZpZ2F0aW9uX2JvcmRlci13aWR0aH1cbik7XG5cbi4jeyRuc31wcm9kdWN0LW5hdmlnYXRpb24ge1xuICAgICRyb290OiAmO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbjogJHByb2R1Y3QtbmF2aWdhdGlvbl9tYXJnaW47XG4gICAgaGVpZ2h0OiAkcHJvZHVjdC1uYXZpZ2F0aW9uX2hlaWdodDtcbiAgICBib3JkZXItYm90dG9tOiAkcHJvZHVjdC1uYXZpZ2F0aW9uX2JvcmRlcjtcblxuICAgICYtLWluaXRpYWxpemVkIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgICN7JHJvb3R9X19saXN0IHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdC1uYXZpZ2F0aW9uX2xpc3QtcGFkZGluZztcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgIH1cblxuICAgICZfX2xpc3QtaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtbmF2aWdhdGlvbl9saXN0LWl0ZW0tbWFyZ2luO1xuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJHByb2R1Y3QtbmF2aWdhdGlvbl9saW5rLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LW5hdmlnYXRpb25fZm9udC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LW5hdmlnYXRpb25fbGluay1mb250LXdlaWdodDtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3QtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmc7XG5cbiAgICAgICAgJi0tY2F0ZWdvcnksXG4gICAgICAgICYtLXNlYXJjaCxcbiAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICBAaWYgJHByb2R1Y3QtbmF2aWdhdGlvbl9saW5rLWljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHdpZHRoOiAkcHJvZHVjdC1uYXZpZ2F0aW9uX2xpbmstaWNvbi13aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgJGhlaWdodDogJHByb2R1Y3QtbmF2aWdhdGlvbl9saW5rLWljb24taGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAkY29sb3I6ICRwcm9kdWN0LW5hdmlnYXRpb25fbGluay1pY29uLWNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRwcm9kdWN0LW5hdmlnYXRpb25fbGluay1pY29uLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogJ2xlZnQnLFxuICAgICAgICAgICAgICAgICAgICAkYW5pbWF0aW9uLXRpbWU6IDAsXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkcHJvZHVjdC1uYXZpZ2F0aW9uX2xpbmstaWNvbi10eXBlXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgICAgICBAaWYgJHByb2R1Y3QtbmF2aWdhdGlvbl9saW5rLWljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHdpZHRoOiAkcHJvZHVjdC1uYXZpZ2F0aW9uX2xpbmstaWNvbi13aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgJGhlaWdodDogJHByb2R1Y3QtbmF2aWdhdGlvbl9saW5rLWljb24taGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAkY29sb3I6ICRwcm9kdWN0LW5hdmlnYXRpb25fbGluay1pY29uLWNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRwcm9kdWN0LW5hdmlnYXRpb25fbGluay1pY29uLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogJ3JpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgJGFuaW1hdGlvbi10aW1lOiAwLFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJHByb2R1Y3QtbmF2aWdhdGlvbl9saW5rLWljb24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OiAwXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYsXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtbmF2aWdhdGlvbl9saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1wYWdlLXBkcC1wcm9kdWN0LW5hdiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtcHdhLW5vdGlmaWNhdGlvbi5fc2hvdyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICB0b3A6IGF1dG87XG4gIGhlaWdodDogMTVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIG92ZXJmbG93LXk6IHZpc2libGU7IH1cbiAgLmNzLXB3YS1ub3RpZmljYXRpb24uX3Nob3cgLm1vZGFsLWlubmVyLXdyYXAge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgLTAuM3JlbSAwLjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUgLm1vZGFsLWlubmVyLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1OyB9XG4gIC5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUgLm1vZGFsLWlubmVyLXdyYXA6YWZ0ZXIge1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiAnJztcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNDIsIDI0MiwgMjQ3LCAwKTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZjJmMmY3O1xuICAgIGJvcmRlci13aWR0aDogMS42cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMS42cmVtOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUgLm1vZGFsLXRleHQtY29udGVudCB7XG4gIHBhZGRpbmc6IDAuNHJlbSAxLjRyZW0gMS4xcmVtOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUuX3Nob3cge1xuICBoZWlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEuNXJlbTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDNyZW0pO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAuY3MtcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlLl9zaG93IC5tb2RhbC1pbm5lci13cmFwIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjJmMmY3O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAwLjVyZW0gcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUuZGV2aWNlLWlQYWQge1xuICBib3R0b206IGF1dG87XG4gIHRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMS41cmVtO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAzOHJlbTsgfVxuICAuY3MtcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlLmRldmljZS1pUGFkIC5tb2RhbC1pbm5lci13cmFwOmFmdGVyIHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmMmYyZjc7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTIuOHZ3OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUuZGV2aWNlLWlQYWQgLm1vZGFsLWlubmVyLXdyYXA6YWZ0ZXIge1xuICAgICAgICByaWdodDogMTF2dzsgfSB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uX190aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMnJlbTtcbiAgZm9udC1zaXplOiAyLjRyZW07IH1cblxuLmNzLXB3YS1ub3RpZmljYXRpb25fX2NvbnRlbnQge1xuICBwYWRkaW5nOiAwLjVyZW0gMnJlbSAxcmVtOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uX19pb3MtdHJhbnNmZXItaWNvbiB7XG4gIHdpZHRoOiAxLjhyZW07XG4gIGhlaWdodDogMi40cmVtO1xuICBtYXJnaW46IDAgMC4zcmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uX19mb290ZXIge1xuICBwYWRkaW5nOiAwLjVyZW0gMnJlbSAycmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUgLmNzLXB3YS1ub3RpZmljYXRpb25fX2Zvb3RlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkOWQ5ZTc7IH1cblxuLmNzLXB3YS1ub3RpZmljYXRpb25fX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uX19idXR0b24sIC5jcy1wd2Etbm90aWZpY2F0aW9uX19idXR0b246dmlzaXRlZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMi42cmVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgLmNzLXB3YS1ub3RpZmljYXRpb25fX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1wd2Etbm90aWZpY2F0aW9uX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtcHdhLW5vdGlmaWNhdGlvbl9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1wd2Etbm90aWZpY2F0aW9uX19idXR0b246dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1wd2Etbm90aWZpY2F0aW9uX19idXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1wd2Etbm90aWZpY2F0aW9uX19idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAuY3MtcHdhLW5vdGlmaWNhdGlvbl9fYnV0dG9uW2Rpc2FibGVkXSwgLmNzLXB3YS1ub3RpZmljYXRpb25fX2J1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuXG4uY3MtcHdhLW5vdGlmaWNhdGlvbl9fYnV0dG9uIHNwYW4ge1xuICBmb250LXNpemU6IDEuNnJlbTsgfVxuXG4uY3MtcHdhLW5vdGlmaWNhdGlvbl9fYnV0dG9uLWljb24ge1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgZmlsbDogY3VycmVudENvbG9yOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uX19jbG9zZS1idXR0b24ge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDEuOHJlbTsgfVxuXG4uY3MtcHdhLW5vdGlmaWNhdGlvbiArIC5tb2RhbHMtb3ZlcmxheSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRwd2Etbm90aWZpY2F0aW9uX2JveC1zaGFkb3c6IDAgLTAuM3JlbSAwLjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpICFkZWZhdWx0O1xuJHB3YS1ub3RpZmljYXRpb25fYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHB3YS1ub3RpZmljYXRpb25fYnV0dG9uLXR5cGU6ICdwcmltYXJ5JyAhZGVmYXVsdDtcbiRwd2Etbm90aWZpY2F0aW9uX2hpZGUtbW9kYWwtb3ZlcmxheTogdHJ1ZSAhZGVmYXVsdDtcbiRwd2Etbm90aWZpY2F0aW9uX2hlYWRsaW5lLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0zICFkZWZhdWx0O1xuXG4kcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2JhY2tncm91bmQ6ICNmMmYyZjcgIWRlZmF1bHQ7IC8vIGlvcy1saWtlIHN5c3RlbSBiYWNrZ3JvdW5kIGNvbG9yXG4kcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2ZpbHRlci1zaGFkb3c6IDAgMCAwLjVyZW0gcmdiYSgwLCAwLCAwLCAwLjEpICFkZWZhdWx0O1xuJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9ib3JkZXItcmFkaXVzOiA2cHggIWRlZmF1bHQ7XG4kcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2xvY2FsaXphdGlvbi1hcnJvdy1zaXplOiAxLjZyZW0gIWRlZmF1bHQ7XG4kcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX21vZGFsLWVkZ2UtcGFkZGluZzogMnJlbSAhZGVmYXVsdDtcbiRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfY29udGVudC1wYWRkaW5nOiAwLjRyZW0gMS40cmVtIDEuMXJlbSAhZGVmYXVsdDtcbiRwd2Etbm90aWZpY2F0aW9uLS1pb3MtdHJhbnNmZXItaWNvbi13aWR0aDogMS44cmVtICFkZWZhdWx0O1xuJHB3YS1ub3RpZmljYXRpb24tLWlvcy10cmFuc2Zlci1pY29uLWhlaWdodDogMi40cmVtICFkZWZhdWx0O1xuJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9zZXBhcmF0b3ItY29sb3I6IGRhcmtlbihcbiAgICAkcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2JhY2tncm91bmQsXG4gICAgOCVcbikgIWRlZmF1bHQ7XG4kcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2Nsb3NlLWJ1dHRvbi1wYWRkaW5nOiAxLjhyZW0gIWRlZmF1bHQ7XG4kcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2Nsb3NlLWljb24td2lkdGg6IDEuNXJlbSAhZGVmYXVsdDtcbiRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfY2xvc2UtaWNvbi1oZWlnaHQ6ICRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfY2xvc2UtaWNvbi13aWR0aCAhZGVmYXVsdDtcblxuLiN7JG5zfXB3YS1ub3RpZmljYXRpb24ge1xuICAgICRyb290OiAmO1xuXG4gICAgJi5fc2hvdyB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG5cbiAgICAgICAgLm1vZGFsLWlubmVyLXdyYXAge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHdhLW5vdGlmaWNhdGlvbl9iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJHB3YS1ub3RpZmljYXRpb25fYm94LXNoYWRvdztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWlvcy1ndWlkZSB7XG4gICAgICAgIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfYmFja2dyb3VuZCwgMCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9sb2NhbGl6YXRpb24tYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLSN7JHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9sb2NhbGl6YXRpb24tYXJyb3ctc2l6ZX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubW9kYWwtdGV4dC1jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfY29udGVudC1wYWRkaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5fc2hvdyB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsZWZ0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9tb2RhbC1lZGdlLXBhZGRpbmc7XG5cbiAgICAgICAgICAgIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2JhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9maWx0ZXItc2hhZG93KTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5kZXZpY2UtaVBhZCB7XG4gICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX21vZGFsLWVkZ2UtcGFkZGluZztcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM4cmVtO1xuXG4gICAgICAgICAgICAubW9kYWwtaW5uZXItd3JhcDphZnRlciB7XG4gICAgICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMTAwJTtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2JhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICByaWdodDogMTIuOHZ3O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMTF2dztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiAkcHdhLW5vdGlmaWNhdGlvbl9oZWFkbGluZS1mb250LXNpemU7XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAycmVtIDFyZW07XG4gICAgfVxuXG4gICAgJl9faW9zLXRyYW5zZmVyLWljb24ge1xuICAgICAgICB3aWR0aDogJHB3YS1ub3RpZmljYXRpb24tLWlvcy10cmFuc2Zlci1pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRwd2Etbm90aWZpY2F0aW9uLS1pb3MtdHJhbnNmZXItaWNvbi1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbjogMCAwLjNyZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgfVxuXG4gICAgJl9fZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDJyZW0gMnJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAjeyRyb290fS0taW9zLWd1aWRlICYge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRwd2Etbm90aWZpY2F0aW9uX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkcHdhLW5vdGlmaWNhdGlvbl9idXR0b24tdHlwZVxuICAgICAgICApO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRwd2Etbm90aWZpY2F0aW9uX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJHB3YS1ub3RpZmljYXRpb25fYnV0dG9uLXR5cGVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6ICRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfY2xvc2UtaWNvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9jbG9zZS1pY29uLWhlaWdodDtcbiAgICAgICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nsb3NlLWJ1dHRvbiB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9jbG9zZS1idXR0b24tcGFkZGluZztcbiAgICB9XG5cbiAgICBAaWYgKCRwd2Etbm90aWZpY2F0aW9uX2hpZGUtbW9kYWwtb3ZlcmxheSA9PSB0cnVlKSB7XG4gICAgICAgICYgKyAubW9kYWxzLW92ZXJsYXkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1kYWlseWRlYWwge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1kYWlseWRlYWxfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwLjVyZW07XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gIC5jcy1kYWlseWRlYWxfX3RpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIC5jcy1kYWlseWRlYWxfX2l0ZW1zLWFtb3VudCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDM7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMC4zcmVtIDAuNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7IH1cbiAgICAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbCB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgYmFja2dyb3VuZDogI2U0MWYxMjtcbiAgICAgIHotaW5kZXg6IDU7IH1cbiAgICAuY3MtZGFpbHlkZWFsLS10ZWFzZXIgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQge1xuICAgICAgbWluLWhlaWdodDogNHJlbTsgfVxuICAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24taWNvbiB7XG4gICAgd2lkdGg6IDEuOXJlbTtcbiAgICBoZWlnaHQ6IDIuNHJlbTtcbiAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi12YWx1ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogI2U0MWYxMjtcbiAgICBwYWRkaW5nOiAycHggMCAwOyB9XG4gIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICM4ODg7XG4gICAgcGFkZGluZzogMnB4IDAgMDsgfVxuICAuY3MtZGFpbHlkZWFsLS10aWxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMzsgfVxuICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fYXZhaWxhYmlsaXR5IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQ6ICM4ODg7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHBhZGRpbmc6IDJweCA0cHg7XG4gICAgICB6LWluZGV4OiA0O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudDpsYXN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50Omxhc3QtY2hpbGQgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLXZhbHVlOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudDpub3QoLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQ6bm90KC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsKTpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQ6bm90KC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsKTpudGgtY2hpbGQoMikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuOHJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQ6bm90KC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC44cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDI0cHggMjRweCAwOyB9XG4gIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLXZhbHVlIHtcbiAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLXZhbHVlOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICc6JzsgfVxuICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1sYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jcy1kYWlseWRlYWxfX2JhZGdlLXBkcC1pY29uIHtcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIGZpbGw6ICNmZmY7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRkYWlseWRlYWwtLXRpbGUtcG9zaXRpb246IGFic29sdXRlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1ib3R0b206IDAgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWxlZnQ6IDAgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfaGVhZGVyLWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2hlYWRlci1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2hlYWRlci1hbGlnbi1pdGVtczogZmxleC1zdGFydCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfaGVhZGVyLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9oZWFkZXItbWFyZ2luOiAwIDAgMC41cmVtICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX3RpdGxlLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX3RpdGxlLWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWNvbG9yOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1iYWNrZ3JvdW5kOiAkY29sb3JfZ3JheSAhZGVmYXVsdDtcbiRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LXBhZGRpbmc6IDJweCA0cHggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1mb250LXdlaWdodDogMzAwICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9pdGVtcy1hbW91bnQtZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9jb3VudGRvd24tZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWp1c3RpZnktY29udGVudDogc3RyZXRjaCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWFsaWduLWl0ZW1zOiBzdHJldGNoICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LW1hcmdpbi1mYWN0b3I6IDNweCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtLXRpbGUtbWFyZ2luLWZhY3RvcjogMXB4ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1mbGV4LWRpcmVjdGlvbjogY29sdW1uICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC13aWR0aDogMTAwJSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtcGFkZGluZzogMC4zcmVtIDAuNXJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtbGluZS1oZWlnaHQ6IDEgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWJhY2tncm91bmQ6IG5vbmUgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsLXdpZHRoOiA1MCUgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsLWJhY2tncm91bmQ6ICRjb2xvcl9jcmltc29uICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2NvdW50ZG93bi1pY29uLXdpZHRoOiAxLjlyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1pY29uLWhlaWdodDogMi40cmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi1maWxsOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtZm9udC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtY29sb3I6ICRjb2xvcl9jcmltc29uICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtcGFkZGluZzogMnB4IDAgMCAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1mb250LXNpemU6IDEuMXJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWZvbnQtd2VpZ2h0OiBpbmhlcml0ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtY29sb3I6ICRjb2xvcl9ncmF5ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtcGFkZGluZzogJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtcGFkZGluZyAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG5cbiRkYWlseS1kZWFsLXRlYXNlcl9wcm9kdWN0LWRkLWNvdW50ZXItbWluLWhlaWdodDogNHJlbSAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9wZHAtYmFkZ2UtaWNvbi13aWR0aDogMS41cmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9wZHAtYmFkZ2UtaWNvbi1oZWlnaHQ6IDEuNXJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24tZmlsbC1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuXG4vLyBCZWNhdXNlIHRoZXJlIGlzbid0IGVub3VnaCBzcGFjZSBmb3IgZGlzcGxheSBmdWxsIGNvdW50ZXIgb24gbW9iaWxlIChkZXBlbmRzIG9uIGRlc2luZyksIHdlIGNhbiBkaXNwbGF5IGNvdW50ZXIgaW4gbGlnaHRlciB2ZXJzaW9uIChvbmx5IG9uIHRpbGUpXG4vLyBTZXQgYGZhbHNlYCB0byBpZ25vcmUgbGlnaHRlciB2ZXJzaW9uXG4kZGFpbHlkZWFsX2Z1bGwtY291bnRlci1saWdodGVyLXZlcnNpb24tYnJlYWtwb2ludDogJz49cGhvbmUnLCAnPDYwMHB4JyAhZGVmYXVsdDtcblxuLiN7JG5zfWRhaWx5ZGVhbCB7XG4gICAgJHJvb3Q6ICY7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6ICRkYWlseWRlYWxfaGVhZGVyLWRpc3BsYXk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46ICRkYWlseWRlYWxfaGVhZGVyLW1hcmdpbjtcbiAgICAgICAgZm9udC1zaXplOiAkZGFpbHlkZWFsX2hlYWRlci1mb250LXNpemU7XG5cbiAgICAgICAgQGlmICRkYWlseWRlYWxfaGVhZGVyLWRpc3BsYXkgPT1cbiAgICAgICAgICAgIGZsZXggb3JcbiAgICAgICAgICAgICRkYWlseWRlYWxfaGVhZGVyLWRpc3BsYXkgPT1cbiAgICAgICAgICAgIGlubGluZS1mbGV4XG4gICAgICAgIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJGRhaWx5ZGVhbF9oZWFkZXItanVzdGlmeS1jb250ZW50O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6ICRkYWlseWRlYWxfaGVhZGVyLWFsaWduLWl0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZGFpbHlkZWFsX3RpdGxlLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICBmb250LXdlaWdodDogJGRhaWx5ZGVhbF90aXRsZS1mb250LXdlaWdodDtcbiAgICB9XG5cbiAgICAmX19pdGVtcy1hbW91bnQge1xuICAgICAgICBmb250LXdlaWdodDogJGRhaWx5ZGVhbF9pdGVtcy1hbW91bnQtZm9udC13ZWlnaHQ7XG4gICAgfVxuXG4gICAgJl9fY291bnRkb3duIHtcbiAgICAgICAgZGlzcGxheTogJGRhaWx5ZGVhbF9jb3VudGRvd24tZGlzcGxheTtcbiAgICAgICAgbWFyZ2luOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1tYXJnaW47XG5cbiAgICAgICAgQGlmICRkYWlseWRlYWxfY291bnRkb3duLWRpc3BsYXkgPT1cbiAgICAgICAgICAgIGZsZXggb3JcbiAgICAgICAgICAgICRkYWlseWRlYWxfY291bnRkb3duLWRpc3BsYXkgPT1cbiAgICAgICAgICAgIGlubGluZS1mbGV4XG4gICAgICAgIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJGRhaWx5ZGVhbF9jb3VudGRvd24tanVzdGlmeS1jb250ZW50O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6ICRkYWlseWRlYWxfY291bnRkb3duLWFsaWduLWl0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY291bnRkb3duLWVsZW1lbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIHdpZHRoOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LXdpZHRoO1xuICAgICAgICBwYWRkaW5nOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LXBhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtZGlzcGxheTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtZmxleC1kaXJlY3Rpb247XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1saW5lLWhlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1iYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWJvcmRlci1yYWRpdXM7XG5cbiAgICAgICAgJi0tc3BlY2lhbCB7XG4gICAgICAgICAgICB3aWR0aDogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbC13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tdGVhc2VyICYge1xuICAgICAgICAgICAgbWluLWhlaWdodDogJGRhaWx5LWRlYWwtdGVhc2VyX3Byb2R1Y3QtZGQtY291bnRlci1taW4taGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY291bnRkb3duLWljb24ge1xuICAgICAgICB3aWR0aDogJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1pY29uLWhlaWdodDtcbiAgICAgICAgZmlsbDogJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi1maWxsO1xuICAgIH1cblxuICAgICZfX2NvdW50ZG93bi12YWx1ZSB7XG4gICAgICAgIGRpc3BsYXk6ICRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWRpc3BsYXk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19jb3VudGRvd24tbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1kaXNwbGF5O1xuICAgICAgICBmb250LXNpemU6ICRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtY29sb3I7XG4gICAgICAgIHBhZGRpbmc6ICRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgJi0tdGlsZSB7XG4gICAgICAgIHBvc2l0aW9uOiAkZGFpbHlkZWFsLS10aWxlLXBvc2l0aW9uO1xuICAgICAgICBsZWZ0OiAkZGFpbHlkZWFsLS10aWxlLWxlZnQ7XG4gICAgICAgIGJvdHRvbTogJGRhaWx5ZGVhbC0tdGlsZS1ib3R0b207XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAzO1xuXG4gICAgICAgICN7JHJvb3R9X19hdmFpbGFiaWxpdHkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktZm9udC1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWNvbG9yO1xuICAgICAgICAgICAgcGFkZGluZzogJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktcGFkZGluZztcbiAgICAgICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZGFpbHlkZWFsX2Z1bGwtY291bnRlci1saWdodGVyLXZlcnNpb24tYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgJGRhaWx5ZGVhbF9mdWxsLWNvdW50ZXItbGlnaHRlci12ZXJzaW9uLWJyZWFrcG9pbnQuLi5cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICN7JHJvb3R9X19jb3VudGRvd24tZWxlbWVudCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICN7JHJvb3R9X19jb3VudGRvd24tdmFsdWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYtLXNwZWNpYWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOm5vdCguY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS44cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOHJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtYm9yZGVyLXJhZGl1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWJvcmRlci1yYWRpdXMgMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X19jb3VudGRvd24tdmFsdWUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X19jb3VudGRvd24tbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFBEUFxuICAgICZfX2JhZGdlLXBkcC1pY29uIHtcbiAgICAgICAgd2lkdGg6ICRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGRhaWx5ZGVhbF9wZHAtYmFkZ2UtaWNvbi1oZWlnaHQ7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBmaWxsOiAkZGFpbHlkZWFsX3BkcC1iYWRnZS1pY29uLWZpbGwtY29sb3I7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWdvb2dsZS1yZWNhcHRjaGEge1xuICBtYXJnaW46IDFyZW0gMDsgfVxuICAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fYmFkZ2UtLWludmlzaWJsZSAuZ3JlY2FwdGNoYS1iYWRnZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAgIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGEsIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzMyNGRjZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6aG92ZXIsIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6Zm9jdXMsIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6YWN0aXZlLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQ6aG92ZXIsIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6dmlzaXRlZDpmb2N1cyB7XG4gICAgICBjb2xvcjogIzE0MmI5ZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW46IDFyZW0gMDsgfVxuICAgIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGEsIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAgIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6aG92ZXIsIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6Zm9jdXMsIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6YWN0aXZlLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQ6aG92ZXIsIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6dmlzaXRlZDpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tY3VzdG9tZXJfY3JlYXRlIHtcbiAgICBtYXJnaW4tdG9wOiAtMnJlbTsgfVxuICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tY3VzdG9tZXJfbG9naW4gLmctcmVjYXB0Y2hhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJGdvb2dsZS1yZWNhcHRjaGFfbWFyZ2luOiAxcmVtIDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LW1hcmdpbjogMCAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX3RleHQtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWNvbG9yOiAkbGluay1jb2xvcl9iYXNlICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbGluay1jb2xvci1ob3ZlcjogJGxpbmstY29sb3JfYmFzZS1ob3ZlciAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX2xpbmstZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX2xpbmstZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8gbmV3c2xldHRlclxuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1tYXJnaW46IDFyZW0gMCAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItdGV4dC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItdGV4dC1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1jb2xvcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWNvbG9yLWhvdmVyOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1kZWNvcmF0aW9uLWhvdmVyOiB1bmRlcmxpbmUgIWRlZmF1bHQ7XG5cbi4jeyRuc31nb29nbGUtcmVjYXB0Y2hhIHtcbiAgICAkcm9vdDogJjtcblxuICAgIG1hcmdpbjogJGdvb2dsZS1yZWNhcHRjaGFfbWFyZ2luO1xuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICAmLS1pbnZpc2libGUge1xuICAgICAgICAgICAgLmdyZWNhcHRjaGEtYmFkZ2Uge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ub3RlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46ICRnb29nbGUtcmVjYXB0Y2hhX3RleHQtbWFyZ2luO1xuICAgICAgICBmb250LXNpemU6ICRnb29nbGUtcmVjYXB0Y2hhX3RleHQtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJGdvb2dsZS1yZWNhcHRjaGFfdGV4dC1jb2xvcjtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICAgICAgICAgJGNvbG9yOiAkZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWNvbG9yLFxuICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGdvb2dsZS1yZWNhcHRjaGFfbGluay1jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICAgICAkZGVjb3JhdGlvbjogJGdvb2dsZS1yZWNhcHRjaGFfbGluay1kZWNvcmF0aW9uLFxuICAgICAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOiAkZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWRlY29yYXRpb24taG92ZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1uZXdzbGV0dGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLW1hcmdpbjtcblxuICAgICAgICAjeyRyb290fV9fbm90ZSB7XG4gICAgICAgICAgICBtYXJnaW46ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItdGV4dC1tYXJnaW47XG4gICAgICAgICAgICBmb250LXNpemU6ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItdGV4dC1mb250LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci10ZXh0LWNvbG9yO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgICAgICAgICAkY29sb3I6ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstY29sb3ItaG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICRkZWNvcmF0aW9uOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstZGVjb3JhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgJGRlY29yYXRpb24taG92ZXI6XG4gICAgICAgICAgICAgICAgICAgICAgICAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstZGVjb3JhdGlvbi1ob3ZlclxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jdXN0b21lcl9jcmVhdGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMnJlbTtcbiAgICB9XG5cbiAgICAmLS1jdXN0b21lcl9sb2dpbiB7XG4gICAgICAgIC5nLXJlY2FwdGNoYSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIubG9hZGluZy1tYXNrIHtcbiAgICAmW2RhdGEtcm9sZT0nbWFpbi1jc3MtbG9hZGVyJ10ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKipcbiAqIEJ1eWJveCBjdXN0b20gdmFyc1xuICovXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAuY3MtcGFnZS1wcm9kdWN0X190b3Age1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH0gfVxuXG4uY3MtcGFnZS1wcm9kdWN0X19nYWxsZXJ5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXBhZ2UtcHJvZHVjdF9fZ2FsbGVyeSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDAlKTtcbiAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNyZW07IH0gfVxuXG4uY3MtcGFnZS1wcm9kdWN0X19idXlib3gge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgcGFkZGluZy10b3A6IDFyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcGFnZS1wcm9kdWN0X19idXlib3gge1xuICAgICAgd2lkdGg6IDQwJTtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIGJvcmRlci10b3A6IDA7IH0gfVxuXG4uY3MtcGFnZS1wcm9kdWN0X19iYWRnZXMge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMjA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7IH1cblxuLmNzLXBhZ2UtcHJvZHVjdF9fYmFkZ2UtaXRlbSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBtYXJnaW4tbGVmdDogMS41cmVtOyB9XG5cbi5jcy1wYWdlLXByb2R1Y3RfX2JhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMjRkY2Y7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIHBhZGRpbmc6IDAgMC43cmVtO1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWluLWhlaWdodDogMmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5jcy1wYWdlLXByb2R1Y3RfX2JhZGdlLS1uZXcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWQ0MDA7XG4gICAgY29sb3I6ICMwMDA7IH1cbiAgICAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS0tbmV3IC5jcy1wYWdlLXByb2R1Y3RfX2JhZGdlLXRleHQge1xuICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgLmNzLXBhZ2UtcHJvZHVjdF9fYmFkZ2UtLW5ldyAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS10ZXh0ICsgLmNzLXBhZ2UtcHJvZHVjdF9fYmFkZ2UtLW5ldyAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS10ZXh0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS0tZGlzY291bnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNDFmMTI7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS0tZGlzY291bnQgLmNzLXBhZ2UtcHJvZHVjdF9fYmFkZ2UtdGV4dCB7XG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS0tZGlzY291bnQgLmNzLXBhZ2UtcHJvZHVjdF9fYmFkZ2UtdGV4dCArIC5jcy1wYWdlLXByb2R1Y3RfX2JhZGdlLS1kaXNjb3VudCAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS10ZXh0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS0tcG9wdWxhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM3Yjg0MTtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1wYWdlLXByb2R1Y3RfX2JhZGdlLS1wb3B1bGFyIC5jcy1wYWdlLXByb2R1Y3RfX2JhZGdlLXRleHQge1xuICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgLmNzLXBhZ2UtcHJvZHVjdF9fYmFkZ2UtLXBvcHVsYXIgLmNzLXBhZ2UtcHJvZHVjdF9fYmFkZ2UtdGV4dCArIC5jcy1wYWdlLXByb2R1Y3RfX2JhZGdlLS1wb3B1bGFyIC5jcy1wYWdlLXByb2R1Y3RfX2JhZGdlLXRleHQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gIC5jcy1wYWdlLXByb2R1Y3RfX2JhZGdlLS1mcmVlLXNoaXBwaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdiODQxO1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLXBhZ2UtcHJvZHVjdF9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLXBhZ2UtcHJvZHVjdF9fYmFkZ2UtdGV4dCB7XG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS10ZXh0ICsgLmNzLXBhZ2UtcHJvZHVjdF9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLXBhZ2UtcHJvZHVjdF9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgLmNzLXBhZ2UtcHJvZHVjdF9fYmFkZ2UtLWRhaWx5ZGVhbC1wZHAge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNDFmMTI7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS0tZGFpbHlkZWFsLXBkcCAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS10ZXh0IHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgIC5jcy1wYWdlLXByb2R1Y3RfX2JhZGdlLS1kYWlseWRlYWwtcGRwIC5jcy1wYWdlLXByb2R1Y3RfX2JhZGdlLXRleHQgKyAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS0tZGFpbHlkZWFsLXBkcCAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS10ZXh0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuXG4uY3MtcGFnZS1wcm9kdWN0X19iYWRnZS10ZXh0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAuY3MtcGFnZS1wcm9kdWN0X19iYWRnZS10ZXh0ICsgLmNzLXBhZ2UtcHJvZHVjdF9fYmFkZ2UtdGV4dCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuXG4vKipcbiAqIEJ1bmRsZSBQcm9kdWN0IGN1c3RvbWl6YXRpb25cbiAqL1xuLmNzLWNvbnRhaW5lci0tcGFnZS1wZHAtYnVuZGxlLWNvbmZpZyB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMS41cmVtIHNvbGlkICNmMGYwZjA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjsgfVxuXG4uY3MtY29udGFpbmVyLS1wYWdlLXBkcC1idW5kbGUtY29uZmlnLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiAxcHggM3B4IDNyZW0gMCByZ2JhKDMzLCAzMywgMzMsIDAuMjgpOyB9XG4gIC5jcy1jb250YWluZXItLXBhZ2UtcGRwLWJ1bmRsZS1jb25maWctY29udGVudDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICB0b3A6IDFweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm9yZGVyOiAycmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZiAjZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKC0ycmVtLCAtMnJlbSwgMCk7XG4gICAgYm94LXNoYWRvdzogNXB4IC01cHggMTBweCAwIHJnYmEoMzMsIDMzLCAzMywgMC4wOCk7IH1cblxuLnBhZ2UtcHJvZHVjdC1idW5kbGUgLnByaWNlLWJveC5wcmljZS1maW5hbF9wcmljZSAucHJpY2UtY29udGFpbmVyLnByaWNlLWZpbmFsX3ByaWNlIHtcbiAgb3JkZXI6IDI7IH1cbiAgLnBhZ2UtcHJvZHVjdC1idW5kbGUgLnByaWNlLWJveC5wcmljZS1maW5hbF9wcmljZSAucHJpY2UtY29udGFpbmVyLnByaWNlLWZpbmFsX3ByaWNlOm5vdCg6b25seS1jaGlsZCkgLnByaWNlIHtcbiAgICBjb2xvcjogI2U0MWYxMjsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAucGFnZS1wcm9kdWN0LWJ1bmRsZTpub3QoLnBhZ2UtcHJvZHVjdC1idW5kbGUtc2ltcGxpZmllZCkgLnByb2R1Y3QtYWRkLWZvcm0gZm9ybSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfSB9XG5cbi5wYWdlLXByb2R1Y3QtYnVuZGxlOm5vdCgucGFnZS1wcm9kdWN0LWJ1bmRsZS1zaW1wbGlmaWVkKSAuYnVuZGxlLW9wdGlvbnMtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFnZS1wcm9kdWN0LWJ1bmRsZTpub3QoLnBhZ2UtcHJvZHVjdC1idW5kbGUtc2ltcGxpZmllZCkgLmJ1bmRsZS1vcHRpb25zLXdyYXBwZXIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwJSk7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAzcmVtO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wYWdlLXByb2R1Y3QtYnVuZGxlOm5vdCgucGFnZS1wcm9kdWN0LWJ1bmRsZS1zaW1wbGlmaWVkKSAuYmxvY2stYnVuZGxlLXN1bW1hcnkge1xuICAgIHdpZHRoOiA0MCU7IH0gfVxuXG4ucGFnZS1wcm9kdWN0LWRvd25sb2FkYWJsZSAucHJvZHVjdC1vcHRpb25zLWJvdHRvbSxcbi5wYWdlLXByb2R1Y3QtZG93bmxvYWRhYmxlIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciB7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTsgfVxuXG4ucGFnZS1wcm9kdWN0LWRvd25sb2FkYWJsZSAucHJvZHVjdC1hZGQtZm9ybSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLnBhZ2UtcHJvZHVjdC1naWZ0Y2FyZCAucHJvZHVjdC1pbmZvLXdyYXBwZXIge1xuICB6LWluZGV4OiAyOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jcy1jb250YWluZXItLXBkcCB7XG4gICAgcGFkZGluZy10b3A6IDA7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAuY3MtY29udGFpbmVyLS1wYWdlLXBkcC1kZXRhaWxzLWF3X3BxX2FqYXhfY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5wYWdlLXByb2R1Y3QtYnVuZGxlIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4uY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgI3Bob25lLWNvbnRhY3QtcG9wdXAtbW9kYWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cblxuLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyIC5wYWdlYnVpbGRlci1tb2JpbGUtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlOWViOyB9XG4gIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50IHtcbiAgICBtaW4taGVpZ2h0OiA3NXJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87IH0gfVxuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiA+IGRpdiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiA+IGRpdiAuc2VsbGVyX19yb3cgLnBhZ2VidWlsZGVyLWNvbHVtbi1ncm91cCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2ID4gZGl2IC5zZWxsZXJfX3JvdyAucGFnZWJ1aWxkZXItY29sdW1uLWdyb3VwIC5zZWxsZXJfX2ljb24ge1xuICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBzZWxmLXN0YXJ0OyB9XG4gICAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9faWNvbiB7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDFyZW07IH0gfVxuICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9faW1hZ2Uge1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcmVtKTtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9faW1hZ2UgaW1nIHtcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBub25lO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDgwZW0pIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiA+IGRpdiAuc2VsbGVyX19yb3cgLnBhZ2VidWlsZGVyLWNvbHVtbi1ncm91cCAuc2VsbGVyX19pbWFnZSB7XG4gICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEuNXJlbSk7IH0gfVxuICAgICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgICAgICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2ID4gZGl2IC5zZWxsZXJfX3JvdyAucGFnZWJ1aWxkZXItY29sdW1uLWdyb3VwIC5zZWxsZXJfX2ltYWdlIHtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9fY29udGVudCB7XG4gICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDZyZW07IH1cbiAgICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDgwZW0pIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiA+IGRpdiAuc2VsbGVyX19yb3cgLnBhZ2VidWlsZGVyLWNvbHVtbi1ncm91cCAuc2VsbGVyX19jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbSAhaW1wb3J0YW50OyB9IH1cbiAgICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiA+IGRpdiAuc2VsbGVyX19yb3cgLnBhZ2VidWlsZGVyLWNvbHVtbi1ncm91cCAuc2VsbGVyX19jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDNyZW07XG4gICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cbiAgICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiA+IGRpdiAuc2VsbGVyX19yb3cgLnBhZ2VidWlsZGVyLWNvbHVtbi1ncm91cCAuc2VsbGVyX19jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwICFpbXBvcnRhbnQ7IH0gfVxuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgaDMge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiA+IGRpdiAuc2VsbGVyX19yb3cgLnBhZ2VidWlsZGVyLWNvbHVtbi1ncm91cCBoMyB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjRyZW07IH0gfVxuICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgICAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgICAgICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2ID4gZGl2IC5zZWxsZXJfX3JvdyAucGFnZWJ1aWxkZXItY29sdW1uLWdyb3VwIC5zZWxsZXJfX2FjdGlvbl9fYnV0dG9ucyB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGdhcDogM3JlbTtcbiAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogM3JlbTtcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2MHJlbTsgfVxuICAgICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogODBlbSkge1xuICAgICAgICAgICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2ID4gZGl2IC5zZWxsZXJfX3JvdyAucGFnZWJ1aWxkZXItY29sdW1uLWdyb3VwIC5zZWxsZXJfX2FjdGlvbl9fYnV0dG9ucyB7XG4gICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfSB9XG4gICAgICAgICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2ID4gZGl2IC5zZWxsZXJfX3JvdyAucGFnZWJ1aWxkZXItY29sdW1uLWdyb3VwIC5zZWxsZXJfX2FjdGlvbl9fYnV0dG9ucyAuYXNrLWFib3V0LWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI4cmVtO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjJyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyN3B4O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuM3MgYWxsO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgICAgICAgICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2ID4gZGl2IC5zZWxsZXJfX3JvdyAucGFnZWJ1aWxkZXItY29sdW1uLWdyb3VwIC5zZWxsZXJfX2FjdGlvbl9fYnV0dG9ucyAuYXNrLWFib3V0LWJ1dHRvbjplbmFibGVkIHtcbiAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICAgICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2ID4gZGl2IC5zZWxsZXJfX3JvdyAucGFnZWJ1aWxkZXItY29sdW1uLWdyb3VwIC5zZWxsZXJfX2FjdGlvbl9fYnV0dG9ucyAuYXNrLWFib3V0LWJ1dHRvbjpob3ZlciwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9fYWN0aW9uX19idXR0b25zIC5hc2stYWJvdXQtYnV0dG9uOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgICAgICAgICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2ID4gZGl2IC5zZWxsZXJfX3JvdyAucGFnZWJ1aWxkZXItY29sdW1uLWdyb3VwIC5zZWxsZXJfX2FjdGlvbl9fYnV0dG9ucyAuYXNrLWFib3V0LWJ1dHRvbi1wcmltYXJ5IHtcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAyOHJlbTtcbiAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuMnJlbSAycmVtO1xuICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjdweDtcbiAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuM3MgYWxsO1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9fYWN0aW9uX19idXR0b25zIC5hc2stYWJvdXQtYnV0dG9uLXByaW1hcnk6ZW5hYmxlZCB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9fYWN0aW9uX19idXR0b25zIC5hc2stYWJvdXQtYnV0dG9uLXByaW1hcnk6aG92ZXIsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2ID4gZGl2IC5zZWxsZXJfX3JvdyAucGFnZWJ1aWxkZXItY29sdW1uLWdyb3VwIC5zZWxsZXJfX2FjdGlvbl9fYnV0dG9ucyAuYXNrLWFib3V0LWJ1dHRvbi1wcmltYXJ5OmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjYzEyNzJmO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiA+IGRpdiAuc2VsbGVyX19yb3cgLnBhZ2VidWlsZGVyLWNvbHVtbi1ncm91cCAuc2VsbGVyX19jb250YWN0IHtcbiAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMy41cmVtIDA7XG4gICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDVkNWQ1OyB9XG4gICAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9fY29udGFjdCB7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiA0cmVtIDAgMnJlbTtcbiAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gICAgICAgICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2ID4gZGl2IC5zZWxsZXJfX3JvdyAucGFnZWJ1aWxkZXItY29sdW1uLWdyb3VwIC5zZWxsZXJfX2NvbnRhY3QgcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07IH1cbiAgICAgICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9fY29udGFjdCBwIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gICAgICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiA+IGRpdiAuc2VsbGVyX19yb3cgLnBhZ2VidWlsZGVyLWNvbHVtbi1ncm91cCAuc2VsbGVyX19jb250YWN0LW1vYmlsZSB7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzLjVyZW07XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiA+IGRpdiAuc2VsbGVyX19yb3cgLnBhZ2VidWlsZGVyLWNvbHVtbi1ncm91cCAuc2VsbGVyX19jb250YWN0LW1vYmlsZSB7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiA0cmVtIDAgMDtcbiAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9fY29udGFjdC1tb2JpbGUgPiBkaXYge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9fY29udGFjdC1tb2JpbGUgLnNlbGxlcl9fY29udGFjdC1uYXRpb25hbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGdhcDogMXJlbTsgfVxuICAgICAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiA+IGRpdiAuc2VsbGVyX19yb3cgLnBhZ2VidWlsZGVyLWNvbHVtbi1ncm91cCAuc2VsbGVyX19jb250YWN0LW1vYmlsZSAuc2VsbGVyX19jb250YWN0LW5hdGlvbmFsIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICAgICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2ID4gZGl2IC5zZWxsZXJfX3JvdyAucGFnZWJ1aWxkZXItY29sdW1uLWdyb3VwIC5zZWxsZXJfX2VtYWlsIHtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgY29sb3I6ICNjMTI3MmY7IH1cbiAgICAgICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1jb250YWN0LXNlbGxlciA+IGRpdiAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2ID4gZGl2IC5zZWxsZXJfX3JvdyAucGFnZWJ1aWxkZXItY29sdW1uLWdyb3VwIC5zZWxsZXJfX2ZsYWdzIHtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyLjNyZW07XG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiA+IGRpdiAuc2VsbGVyX19yb3cgLnBhZ2VidWlsZGVyLWNvbHVtbi1ncm91cCAuc2VsbGVyX19mbGFncyB7XG4gICAgICAgICAgICAgICAgICBtYXJnaW4tYmxvY2s6IDJyZW0gMXJlbTsgfSB9XG4gICAgICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctY29udGFjdC1zZWxsZXIgPiBkaXYgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiA+IGRpdiAuc2VsbGVyX19yb3cgLnBhZ2VidWlsZGVyLWNvbHVtbi1ncm91cCAuc2VsbGVyX19waG9uZSB7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAgICAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyID4gZGl2IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYgPiBkaXYgLnNlbGxlcl9fcm93IC5wYWdlYnVpbGRlci1jb2x1bW4tZ3JvdXAgLnNlbGxlcl9fcGhvbmUgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwOyB9XG5cbi5jcy1wYWdlLXByb2R1Y3QgLmNzLXByb2R1Y3QtZ2FsbGVyeSB7XG4gIG1heC1oZWlnaHQ6IDY4MHB4OyB9XG5cbi5jcy1wYWdlLXByb2R1Y3RfX2JhZGdlcyB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uY3MtcGFnZS1wcm9kdWN0X19nYWxsZXJ5IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZ3JpZC1hcmVhOiBpbWFnZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHdpZHRoOiA3ODBweDtcbiAgbWF4LXdpZHRoOiAxMDUlO1xuICBtYXJnaW4tbGVmdDogLTR2dztcbiAgbWFyZ2luLXJpZ2h0OiAtNHZ3OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA4MGVtKSB7XG4gICAgLmNzLXBhZ2UtcHJvZHVjdF9fZ2FsbGVyeSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcGFnZS1wcm9kdWN0X19nYWxsZXJ5IHtcbiAgICAgIG1hcmdpbjogMCAtMS41cmVtO1xuICAgICAgbWF4LXdpZHRoOiB1bnNldDsgfSB9XG4gIC5jcy1wYWdlLXByb2R1Y3RfX2dhbGxlcnkgLmNzLXByb2R1Y3QtZ2FsbGVyeSB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1wYWdlLXByb2R1Y3RfX2dhbGxlcnkgLmNzLXByb2R1Y3QtZ2FsbGVyeSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDY3M3B4OyB9IH1cbiAgLmNzLXBhZ2UtcHJvZHVjdF9fZ2FsbGVyeSAuY3MtcHJvZHVjdC1nYWxsZXJ5X19wbGFjZWhvbGRlci1pbWcge1xuICAgIG1heC1oZWlnaHQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiBhdXRvOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wYWdlLXByb2R1Y3RfX2dhbGxlcnkgLmNzLXByb2R1Y3QtZ2FsbGVyeV9fcGxhY2Vob2xkZXItaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtcGFnZS1wcm9kdWN0X19nYWxsZXJ5IC5jcy1wcm9kdWN0LWdhbGxlcnlfX3BsYWNlaG9sZGVyLWltYWdlIHtcbiAgICAgIGhlaWdodDogNjczcHggIWltcG9ydGFudDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfSB9XG4gIC5jcy1wYWdlLXByb2R1Y3RfX2dhbGxlcnkgLmZvdG9yYW1hIHtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAuY3MtcGFnZS1wcm9kdWN0X19nYWxsZXJ5IC5mb3RvcmFtYSAuZm90b3JhbWFfX3dyYXAge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogMzAwcHg7IH1cbiAgICAgIC5jcy1wYWdlLXByb2R1Y3RfX2dhbGxlcnkgLmZvdG9yYW1hIC5mb3RvcmFtYV9fd3JhcCAuZm90b3JhbWFfX3N0YWdlIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAgIC5jcy1wYWdlLXByb2R1Y3RfX2dhbGxlcnkgLmZvdG9yYW1hIC5mb3RvcmFtYV9fd3JhcCAuZm90b3JhbWFfX3N0YWdlIHtcbiAgICAgICAgICAgIGhlaWdodDogNjczcHggIWltcG9ydGFudDsgfSB9XG4gICAgICAgIC5jcy1wYWdlLXByb2R1Y3RfX2dhbGxlcnkgLmZvdG9yYW1hIC5mb3RvcmFtYV9fd3JhcCAuZm90b3JhbWFfX3N0YWdlX19mcmFtZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cbiAgICAgICAgLmNzLXBhZ2UtcHJvZHVjdF9fZ2FsbGVyeSAuZm90b3JhbWEgLmZvdG9yYW1hX193cmFwIC5mb3RvcmFtYV9fc3RhZ2UgLmZvdG9yYW1hX19pbWcge1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgICAgICAuY3MtcGFnZS1wcm9kdWN0X19nYWxsZXJ5IC5mb3RvcmFtYSAuZm90b3JhbWFfX3dyYXAgLmZvdG9yYW1hX19zdGFnZSAuZm90b3JhbWFfX2Fycl9fYXJyIHtcbiAgICAgICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMCk7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAgIC5jcy1wYWdlLXByb2R1Y3RfX2dhbGxlcnkgLmZvdG9yYW1hIC5mb3RvcmFtYV9fd3JhcCAuZm90b3JhbWFfX25hdi0tZG90cyB7XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDEuNXJlbTsgfSB9XG5cbi5jcy1wYWdlLXByb2R1Y3RfX3RvcCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgZ2FwOiAxcmVtIDJyZW07XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwiaW1hZ2UgYnV5Ym94XCIgXCJkZXNjIGJ1eWJveFwiOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA4MGVtKSB7XG4gICAgLmNzLXBhZ2UtcHJvZHVjdF9fdG9wIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTAlIDUwJTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLXBhZ2UtcHJvZHVjdF9fdG9wIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgZ2FwOiAwcHggMHB4O1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJpbWFnZVwiIFwiYnV5Ym94XCIgXCJkZXNjXCI7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgIC5jcy1wYWdlLXByb2R1Y3RfX3RvcCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfSB9XG4gIC5jcy1wYWdlLXByb2R1Y3RfX3RvcCAuY3MtcHJvZHVjdC1kZXRhaWxzLW1haW5fX2NvbHVtbi0tbGVmdCB7XG4gICAgZ3JpZC1hcmVhOiBkZXNjO1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLXBhZ2UtcHJvZHVjdF9fdG9wIC5jcy1wcm9kdWN0LWRldGFpbHMtbWFpbl9fY29sdW1uLS1sZWZ0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gICAgLmNzLXBhZ2UtcHJvZHVjdF9fdG9wIC5jcy1wcm9kdWN0LWRldGFpbHMtbWFpbl9fY29sdW1uLS1sZWZ0IHVsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMnJlbTsgfVxuICAgIC5jcy1wYWdlLXByb2R1Y3RfX3RvcCAuY3MtcHJvZHVjdC1kZXRhaWxzLW1haW5fX2NvbHVtbi0tbGVmdCBpbWcge1xuICAgICAgbWFyZ2luOiA0cmVtIDA7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1wYWdlLXByb2R1Y3RfX3RvcCAuY3MtcHJvZHVjdC1kZXRhaWxzLW1haW5fX2NvbHVtbi0tbGVmdCBpbWcge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMnJlbSBhdXRvOyB9IH1cbiAgICAuY3MtcGFnZS1wcm9kdWN0X190b3AgLmNzLXByb2R1Y3QtZGV0YWlscy1tYWluX19jb2x1bW4tLWxlZnQgcCxcbiAgICAuY3MtcGFnZS1wcm9kdWN0X190b3AgLmNzLXByb2R1Y3QtZGV0YWlscy1tYWluX19jb2x1bW4tLWxlZnQgc3BhbixcbiAgICAuY3MtcGFnZS1wcm9kdWN0X190b3AgLmNzLXByb2R1Y3QtZGV0YWlscy1tYWluX19jb2x1bW4tLWxlZnQgbGksIC5jcy1wYWdlLXByb2R1Y3RfX3RvcCAuY3MtcHJvZHVjdC1kZXRhaWxzLW1haW5fX2NvbHVtbi0tbGVmdCB7XG4gICAgICBmb250LXdlaWdodDogMzAwOyB9XG5cbi5jcy1wYWdlLXByb2R1Y3RfX2J1eWJveCB7XG4gIHdpZHRoOiAxMDAlO1xuICBvcmRlcjogMjtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDUyMHB4O1xuICBncmlkLWFyZWE6IGJ1eWJveDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogODBlbSkge1xuICAgIC5jcy1wYWdlLXByb2R1Y3RfX2J1eWJveCB7XG4gICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgbWF4LXdpZHRoOiA1MDBweDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXBhZ2UtcHJvZHVjdF9fYnV5Ym94IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIG1heC13aWR0aDogdW5zZXQ7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgIC5jcy1wYWdlLXByb2R1Y3RfX2J1eWJveCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuXG4ucHJvZHVjdC10aHVtYm5haWwtZGVzY3JpcHRpb24tcGhvdG8ge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UvbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5cbiRwYWdlLXByb2R1Y3RfdG9wLTJjb2wtYnJlYWtwb2ludDogJz49dGFibGV0JyAhZGVmYXVsdDtcbiRwYWdlLXByb2R1Y3RfdG9wLTJjb2wtY29sdW1ucy1ndXR0ZXItbW9iaWxlLW9ubHk6IDJyZW0gIWRlZmF1bHQ7XG4kcGFnZS1wcm9kdWN0X3RvcC0yY29sLWNvbHVtbnMtZ3V0dGVyOiAzcmVtICFkZWZhdWx0O1xuJHBhZ2UtcHJvZHVjdF90b3AtMmNvbC1tb2JpbGUtYm9yZGVyLXNlcGFyYXRvcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuXG4kcGFnZS1wcm9kdWN0X2J1eWJveC1jb2x1bW4td2lkdGg6IDQwJSAhZGVmYXVsdDtcblxuJHBhZ2UtcHJvZHVjdF9iYWRnZXMtZmxleC1kaXJlY3Rpb246IHJvdyAhZGVmYXVsdDtcbiRwYWdlLXByb2R1Y3RfYmFkZ2VzLXotaW5kZXg6IDEyMCAhZGVmYXVsdDsgLy8gdG8gbWFrZSBzdXJlIGdhbGxlcnkgaXRlbXMgd29uJ3Qgb3ZlcmxhcFxuJHBhZ2UtcHJvZHVjdF9iYWRnZXMteS1heGlzLXBsYWNlbWVudDogdG9wICFkZWZhdWx0O1xuJHBhZ2UtcHJvZHVjdF9iYWRnZXMteC1heGlzLXBsYWNlbWVudDogcmlnaHQgIWRlZmF1bHQ7XG4kcGFnZS1wcm9kdWN0X2JhZGdlcy15LWF4aXMtcG9zaXRpb246IDAgIWRlZmF1bHQ7XG4kcGFnZS1wcm9kdWN0X2JhZGdlcy14LWF4aXMtcG9zaXRpb246IDAgIWRlZmF1bHQ7XG4kcGFnZS1wcm9kdWN0X2JhZGdlcy1ndXR0ZXI6IDEuNXJlbSAhZGVmYXVsdDtcblxuLyoqXG4gKiBCdXlib3ggY3VzdG9tIHZhcnNcbiAqL1xuJHBhZ2UtcHJvZHVjdC0tYnVuZGxlLW9wdGlvbnMtd3JhcHBlci1ib3JkZXI6ICRwYWdlLXByb2R1Y3RfdG9wLTJjb2wtbW9iaWxlLWJvcmRlci1zZXBhcmF0b3IgIWRlZmF1bHQ7XG4kcGFnZS1wcm9kdWN0LS1idW5kbGUtY29udGFpbmVyLWJveC1zaGFkb3c6ICRib3gtc2hhZG93X2Jhc2UgIWRlZmF1bHQ7XG4kcGFnZS1wcm9kdWN0LS1idW5kbGUtY29udGFpbmVyLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRwYWdlLXByb2R1Y3QtLWJ1bmRsZS1jb250YWluZXItYm9yZGVyOiAkcGFnZV9lZGdlLWd1dHRlciBzb2xpZFxuICAgICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuXG4kcGFnZS1wcm9kdWN0LS1idW5kbGUtc2hvdy10b3AtYXJyb3ctb24tY29udGFpbmVyOiB0cnVlICFkZWZhdWx0O1xuJHBhZ2UtcHJvZHVjdC0tYnVuZGxlLXNob3ctdG9wLWFycm93LXNpemU6IDJyZW0gIWRlZmF1bHQ7XG4kcGFnZS1wcm9kdWN0LS1idW5kbGUtc2hvdy10b3AtYXJyb3ctc2hhZG93OiA1cHggLTVweCAxMHB4IDAgcmdiYSgkY29sb3JfbWluZXNoYWZ0LCAwLjA4KSAhZGVmYXVsdDtcblxuJHBhZ2UtcHJvZHVjdC0tYnVuZGxlLXNwZWNpYWwtcHJpY2UtY29sb3I6ICRwcmljZV9zcGVjaWFsLWNvbG9yICFkZWZhdWx0O1xuXG4uI3skbnN9cGFnZS1wcm9kdWN0IHtcbiAgICAkcm9vdDogJjtcblxuICAgICZfX3RvcCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCN7JHBhZ2UtcHJvZHVjdF90b3AtMmNvbC1icmVha3BvaW50fSkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZ2FsbGVyeSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgjeyRwYWdlLXByb2R1Y3RfdG9wLTJjb2wtYnJlYWtwb2ludH0pIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRwYWdlLXByb2R1Y3RfYnV5Ym94LWNvbHVtbi13aWR0aH0pO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHBhZ2UtcHJvZHVjdF90b3AtMmNvbC1jb2x1bW5zLWd1dHRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHBhZ2UtcHJvZHVjdF90b3AtMmNvbC1jb2x1bW5zLWd1dHRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1eWJveCB7XG4gICAgICAgIGJvcmRlci10b3A6ICRwYWdlLXByb2R1Y3RfdG9wLTJjb2wtbW9iaWxlLWJvcmRlci1zZXBhcmF0b3I7XG4gICAgICAgIG1hcmdpbi10b3A6ICRwYWdlLXByb2R1Y3RfdG9wLTJjb2wtY29sdW1ucy1ndXR0ZXItbW9iaWxlLW9ubHkgLyAyO1xuICAgICAgICBwYWRkaW5nLXRvcDogJHBhZ2UtcHJvZHVjdF90b3AtMmNvbC1jb2x1bW5zLWd1dHRlci1tb2JpbGUtb25seSAvIDI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoI3skcGFnZS1wcm9kdWN0X3RvcC0yY29sLWJyZWFrcG9pbnR9KSB7XG4gICAgICAgICAgICB3aWR0aDogJHBhZ2UtcHJvZHVjdF9idXlib3gtY29sdW1uLXdpZHRoO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlcyB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHBhZ2UtcHJvZHVjdF9iYWRnZXMtZmxleC1kaXJlY3Rpb247XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogJHBhZ2UtcHJvZHVjdF9iYWRnZXMtei1pbmRleDtcbiAgICAgICAgI3skcGFnZS1wcm9kdWN0X2JhZGdlcy15LWF4aXMtcGxhY2VtZW50fTogJHBhZ2UtcHJvZHVjdF9iYWRnZXMteS1heGlzLXBvc2l0aW9uO1xuICAgICAgICAjeyRwYWdlLXByb2R1Y3RfYmFkZ2VzLXgtYXhpcy1wbGFjZW1lbnR9OiAkcGFnZS1wcm9kdWN0X2JhZGdlcy14LWF4aXMtcG9zaXRpb247XG4gICAgfVxuXG4gICAgJl9fYmFkZ2UtaXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHBhZ2UtcHJvZHVjdF9iYWRnZXMtZ3V0dGVyO1xuXG4gICAgICAgIEBpZiAkcGFnZS1wcm9kdWN0X2JhZGdlcy14LWF4aXMtcGxhY2VtZW50ID09IGxlZnQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcGFnZS1wcm9kdWN0X2JhZGdlcy1ndXR0ZXI7XG4gICAgICAgIH0gQGVsc2UgaWYgJHBhZ2UtcHJvZHVjdF9iYWRnZXMteC1heGlzLXBsYWNlbWVudCA9PSByaWdodCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHBhZ2UtcHJvZHVjdF9iYWRnZXMtZ3V0dGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZSgpO1xuXG4gICAgICAgICYtLW5ldyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKCduZXcnKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oJ25ldycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzY291bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgnZGlzY291bnQnKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oJ2Rpc2NvdW50Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wb3B1bGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ3BvcHVsYXInKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oJ3BvcHVsYXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZyZWUtc2hpcHBpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgnZnJlZS1zaGlwcGluZycpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbignZnJlZS1zaGlwcGluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFpbHlkZWFsLXBkcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKCdkYWlseWRlYWwtcGRwJyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCdkYWlseWRlYWwtcGRwJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZS10ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBCdW5kbGUgUHJvZHVjdCBjdXN0b21pemF0aW9uXG4gKi9cbi4jeyRuc31jb250YWluZXItLXBhZ2UtcGRwLWJ1bmRsZS1jb25maWcge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAkcGFnZS1wcm9kdWN0LS1idW5kbGUtY29udGFpbmVyLWJvcmRlcjtcblxuICAgIEBpZiAkcGFnZS1wcm9kdWN0LS1idW5kbGUtc2hvdy10b3AtYXJyb3ctb24tY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgIH1cbn1cblxuLiN7JG5zfWNvbnRhaW5lci0tcGFnZS1wZHAtYnVuZGxlLWNvbmZpZy1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAkcGFnZS1wcm9kdWN0LS1idW5kbGUtY29udGFpbmVyLWJhY2tncm91bmQ7XG4gICAgYm94LXNoYWRvdzogJHBhZ2UtcHJvZHVjdC0tYnVuZGxlLWNvbnRhaW5lci1ib3gtc2hhZG93O1xuXG4gICAgQGlmICRwYWdlLXByb2R1Y3QtLWJ1bmRsZS1zaG93LXRvcC1hcnJvdy1vbi1jb250YWluZXIge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6ICRwYWdlLXByb2R1Y3QtLWJ1bmRsZS1zaG93LXRvcC1hcnJvdy1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcGFnZS1wcm9kdWN0LS1idW5kbGUtc2hvdy10b3AtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIHRvcDogMXB4O1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgYm9yZGVyOiAkcGFnZS1wcm9kdWN0LS1idW5kbGUtc2hvdy10b3AtYXJyb3ctc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHBhZ2UtcHJvZHVjdC0tYnVuZGxlLWNvbnRhaW5lci1iYWNrZ3JvdW5kXG4gICAgICAgICAgICAgICAgJHBhZ2UtcHJvZHVjdC0tYnVuZGxlLWNvbnRhaW5lci1iYWNrZ3JvdW5kXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnRcbiAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZylcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGUzZChcbiAgICAgICAgICAgICAgICAgICAgLSN7JHBhZ2UtcHJvZHVjdC0tYnVuZGxlLXNob3ctdG9wLWFycm93LXNpemV9LFxuICAgICAgICAgICAgICAgICAgICAtI3skcGFnZS1wcm9kdWN0LS1idW5kbGUtc2hvdy10b3AtYXJyb3ctc2l6ZX0sXG4gICAgICAgICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaWYgJHBhZ2UtcHJvZHVjdC0tYnVuZGxlLWNvbnRhaW5lci1ib3gtc2hhZG93ICE9XG4gICAgICAgICAgICAgICAgbm9uZSBhbmRcbiAgICAgICAgICAgICAgICAkcGFnZS1wcm9kdWN0LS1idW5kbGUtc2hvdy10b3AtYXJyb3ctc2hhZG93ICE9XG4gICAgICAgICAgICAgICAgbm9uZVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6ICRwYWdlLXByb2R1Y3QtLWJ1bmRsZS1zaG93LXRvcC1hcnJvdy1zaGFkb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEEgcGllY2Ugb2YgY29kZSB0byBzdHlsZSBwcm9wZXJseSBzcGVjaWFsIHByaWNlcyBmb3IgYnVuZGxlIHByb2R1Y3RzXG4vLyBPdGhlciB0eXBlcyBvZiBwcm9kdWN0IGhhdmUgZGlmZmVyZW50IGNvbWJpbmF0aW9uIG9mIGNsYXNzZXMgLSB0aGV5IHVzZSAuc3BlY2lhbC1wcmljZSwgYnV0IG5vdCBidW5kbGVzLlxuLnBhZ2UtcHJvZHVjdC1idW5kbGUge1xuICAgIC5wcmljZS1ib3gucHJpY2UtZmluYWxfcHJpY2UgLnByaWNlLWNvbnRhaW5lci5wcmljZS1maW5hbF9wcmljZSB7XG4gICAgICAgIG9yZGVyOiAyO1xuXG4gICAgICAgICY6bm90KDpvbmx5LWNoaWxkKSAucHJpY2Uge1xuICAgICAgICAgICAgY29sb3I6ICRwYWdlLXByb2R1Y3QtLWJ1bmRsZS1zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucGFnZS1wcm9kdWN0LWJ1bmRsZTpub3QoLnBhZ2UtcHJvZHVjdC1idW5kbGUtc2ltcGxpZmllZCkge1xuICAgIC5wcm9kdWN0LWFkZC1mb3JtIGZvcm0ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgjeyRwYWdlLXByb2R1Y3RfdG9wLTJjb2wtYnJlYWtwb2ludH0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5idW5kbGUtb3B0aW9ucy13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogJHBhZ2UtcHJvZHVjdF90b3AtMmNvbC1jb2x1bW5zLWd1dHRlciAvIDI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRwYWdlLXByb2R1Y3QtLWJ1bmRsZS1vcHRpb25zLXdyYXBwZXItYm9yZGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCN7JHBhZ2UtcHJvZHVjdF90b3AtMmNvbC1icmVha3BvaW50fSkge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JHBhZ2UtcHJvZHVjdF9idXlib3gtY29sdW1uLXdpZHRofSk7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAkcGFnZS1wcm9kdWN0X3RvcC0yY29sLWNvbHVtbnMtZ3V0dGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9jay1idW5kbGUtc3VtbWFyeSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCN7JHBhZ2UtcHJvZHVjdF90b3AtMmNvbC1icmVha3BvaW50fSkge1xuICAgICAgICAgICAgd2lkdGg6ICRwYWdlLXByb2R1Y3RfYnV5Ym94LWNvbHVtbi13aWR0aDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnBhZ2UtcHJvZHVjdC1kb3dubG9hZGFibGUge1xuICAgIC5wcm9kdWN0LW9wdGlvbnMtYm90dG9tLFxuICAgIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1hZGQtZm9ybSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIHtcbiAgICAucHJvZHVjdC1pbmZvLXdyYXBwZXIge1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgIH1cbn1cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLXBkcCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tcGFnZS1wZHAtZGV0YWlscy1hd19wcV9hamF4X2NvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21haW4tY29sdW1uIHtcbiAgICAgICAgLy8gQnVuZGxlIHByb2R1Y3RzIGRvIG5vdCBoYXZlIHN0aWNreSBidXlib3ggYW5kIHNob3VsZCBoYXZlIGFub3RoZXIgbGF5b3V0LlxuICAgICAgICAvLyBPbiB0YWJsZXQgZ2FsbGVyeSBjb3ZlcmVkIGJ1eWJveCBhbmQgYXMgYSByZXN1bHQgaXQgd2FzIGltcG9zc2libGUgdG8gY2xpY2sgYXQgYW55dGhpbmcgdGhlcmUuXG4gICAgICAgIC8vIENvZGUgYmVsb3cgc2hvdWxkIGJlIHJldmlld2VkIGR1cmluZyByZWZhY3RvcmluZyBjb250YWluZXJzIGFuZCBwZHAgKFBEUCAyLjApXG4gICAgICAgIC5wYWdlLXByb2R1Y3QtYnVuZGxlICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcImNvbmZpZy9taXhpbnNcIjtcblxuJHJvb3Q6IFwic2VsbGVyX19cIjtcblxuQG1peGluIGFjdGlvbkJ1dHRvbiB7XG4gICAgd2lkdGg6IDI4cmVtO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxLjJyZW0gMnJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLiN7JG5zfXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWNvbnRhY3Qtc2VsbGVyIHtcbiAgICAjcGhvbmUtY29udGFjdC1wb3B1cC1tb2RhbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gICAgLnBhZ2VidWlsZGVyLW1vYmlsZS1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAmID4gZGl2IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9ncmV5LTQwMDtcbiAgICAgICAgLiN7JG5zfXByb2R1Y3QtZGV0YWlsc19fY29udGVudCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA3NXJlbTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgLiN7JHJvb3R9cm93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLnBhZ2VidWlsZGVyLWNvbHVtbi1ncm91cCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4jeyRyb290fWljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBzZWxmLXN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLiN7JHJvb3R9aW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcmVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9bGFwdG9wTGdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xLjVyZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuI3skcm9vdH1jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogNnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcExnXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4jeyRyb290fWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLiN7JHJvb3R9YWN0aW9uX19idXR0b25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiAzcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAzcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDYwcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9bGFwdG9wTGdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFzay1hYm91dC1idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWN0aW9uQnV0dG9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUga21hLWJ1dHRvbi0tZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYtcHJpbWFyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYWN0aW9uQnV0dG9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGttYS1idXR0b24tLXByaW1hcnk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLiN7JHJvb3R9Y29udGFjdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDMuNXJlbSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGttYV9jb2xvcl9ncmV5LTMwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA0cmVtIDAgMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4jeyRyb290fWNvbnRhY3QtbW9iaWxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDMuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA0cmVtIDAgMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgPiBkaXYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuI3skcm9vdH1jb250YWN0LW5hdGlvbmFsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuI3skcm9vdH1lbWFpbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4jeyRyb290fWZsYWdzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyLjNyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiAycmVtIDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLiN7JHJvb3R9cGhvbmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gIyMjIEJVVFRPTiAjIyMgXFxcXFxuXG5AbWl4aW4ga21hLWJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICBib3JkZXItcmFkaXVzOiAyN3B4O1xuICAgIHRyYW5zaXRpb246ICRrbWFfdHJhbnNpdGlvbl90aW1lIGFsbDtcbiAgICAmOmVuYWJsZWQge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuXG5AbWl4aW4ga21hLWJ1dHRvbi0tZGVmYXVsdCB7XG4gICAgQGluY2x1ZGUga21hLWJ1dHRvbjtcbiAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgfVxufVxuXG5AbWl4aW4ga21hLWJ1dHRvbi0tcHJpbWFyeSB7XG4gICAgQGluY2x1ZGUga21hLWJ1dHRvbjtcbiAgICBjb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3JlZC04MDA7XG4gICAgfVxufVxuXG5AbWl4aW4ga21hLWJ1dHRvbi0tc2Vjb25kYXJ5IHtcbiAgICBAaW5jbHVkZSBrbWEtYnV0dG9uO1xuICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgfVxufVxuXG4vLyAjIyMgTElOSyAjIyMgXFxcXFxuQG1peGluIGttYS1saW5rKCRhcnJvd0xlZnQ6IGZhbHNlKSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICB0cmFuc2l0aW9uOiAka21hX3RyYW5zaXRpb25fdGltZSBhbGw7XG4gICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIG1hcmdpbi1yaWdodDogNDVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMzQnIGhlaWdodD0nMjQnIGZpbGw9JyUyM2MxMjcyZicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGNsaXAtcnVsZT0nZXZlbm9kZCclM0UlM0NwYXRoIGQ9J00zMS44ODMgMTJsLTcuNTI3IDYuMjM1LjY0NC43NjUgOS03LjUyMS05LTcuNDc5LS42NDUuNzY0IDcuNTI5IDYuMjM2aC0zMS44ODR2MWgyMS44ODN6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIHJpZ2h0OiAtNDVweDtcbiAgICB9XG59XG5cbi8vICMjIyBcXFxcXFxcbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9wYWdlcy9wcm9kdWN0L3Byb2R1Y3RcIjtcbkBpbXBvcnQgXCIuL3Byb2R1Y3QtY29udGFjdC1zZWxsZXJcIjtcblxuLiN7JG5zfXBhZ2UtcHJvZHVjdCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAuI3skbnN9cHJvZHVjdC1nYWxsZXJ5IHtcbiAgICAgICAgbWF4LWhlaWdodDogNjgwcHg7XG4gICAgfVxuXG4gICAgJl9fYmFkZ2VzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICZfX2dhbGxlcnkge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBncmlkLWFyZWE6IGltYWdlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgd2lkdGg6IDc4MHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwNSU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNHZ3O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC00dnc7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BMZ1wiKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0xLjVyZW07XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICAgIC4jeyRuc31wcm9kdWN0LWdhbGxlcnkge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogNjczcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLiN7JG5zfXByb2R1Y3QtZ2FsbGVyeV9fcGxhY2Vob2xkZXItaW1nIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuI3skbnN9cHJvZHVjdC1nYWxsZXJ5X19wbGFjZWhvbGRlci1pbWFnZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDY3M3B4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmZvdG9yYW1hIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIC5mb3RvcmFtYV9fd3JhcCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICAgICAgICAgIC5mb3RvcmFtYV9fc3RhZ2Uge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNjczcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmX19mcmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuZm90b3JhbWFfX2ltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuZm90b3JhbWFfX2Fycl9fYXJyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuZm90b3JhbWFfX25hdi0tZG90cyB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fdG9wIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICBnYXA6IDFyZW0gMnJlbTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgICAgICAgIFwiaW1hZ2UgYnV5Ym94XCJcbiAgICAgICAgICAgIFwiZGVzYyBidXlib3hcIjtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcExnXCIpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTAlIDUwJTtcbiAgICAgICAgICAgIC8vIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDEwLjVmcjtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgICAgICAvLyBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byBhdXRvO1xuICAgICAgICAgICAgZ2FwOiAwcHggMHB4O1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgICAgICAgICAgICBcImltYWdlXCJcbiAgICAgICAgICAgICAgICBcImJ1eWJveFwiXG4gICAgICAgICAgICAgICAgXCJkZXNjXCI7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgLiN7JG5zfXByb2R1Y3QtZGV0YWlscy1tYWluX19jb2x1bW4tLWxlZnQge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBkZXNjO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiA0cmVtIDA7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDJyZW0gYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLFxuICAgICAgICAgICAgc3BhbixcbiAgICAgICAgICAgIGxpLFxuICAgICAgICAgICAgJiB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1eWJveCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDUyMHB4O1xuICAgICAgICBncmlkLWFyZWE6IGJ1eWJveDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcExnXCIpIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4ucHJvZHVjdC10aHVtYm5haWwtZGVzY3JpcHRpb24tcGhvdG8ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8gZXhjZXB0aW9uIC0gZG8gbm90IHJldXNlXG4vLyBib2R5LmNhdGFsb2ctcHJvZHVjdC12aWV3IHtcbi8vICAgICBmb290ZXIucGFnZS1mb290ZXIgeyBcbi8vICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vICAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuLy8gICAgICAgICBwYWRkaW5nLXRvcDogMzByZW0gIWltcG9ydGFudDtcbi8vICAgICAgICAgJjo6YmVmb3JlIHtcbi8vICAgICAgICAgICAgIHRvcDogMCAhaW1wb3J0YW50O1xuLy8gICAgICAgICAgICAgbGVmdDogMDtcbi8vICAgICAgICAgfVxuLy8gICAgIH1cbi8vIH1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtYnVuZGxlLWJveCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIC8qLnByb2R1Y3QtYWRkLWZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH0qLyB9XG4gIC5jcy1idW5kbGUtYm94LnByb2R1Y3QtYWRkLWZvcm0ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWJ1bmRsZS1ib3ggLmZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLmNzLWJ1bmRsZS1ib3ggLnRpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAwLjcxNDNlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07IH1cbiAgICAuY3MtYnVuZGxlLWJveCAudGl0bGUgKyBiciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1idW5kbGUtYm94IC5iYWNrLmN1c3RvbWl6YXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWJ1bmRsZS1ib3hfX2ZpZWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gIC5jcy1idW5kbGUtYm94X19wcm9kdWN0LW5hbWUge1xuICAgIG1hcmdpbjogMCAwIDAuNWVtO1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1idW5kbGUtYm94X19vcHRpb25zLWxpc3Qge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9IH1cbiAgLmNzLWJ1bmRsZS1ib3hfX29wdGlvbnMtbGlzdCAucHJvZHVjdC1uYW1lIHtcbiAgICBmb250LXNpemU6IDEuMmVtOyB9XG4gIC5jcy1idW5kbGUtYm94X19wcm9kdWN0LW9wdGlvbi1uYW1lLmxhYmVsIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc2l6ZTogMWVtOyB9XG4gIC5jcy1idW5kbGUtYm94X19xdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5jcy1idW5kbGUtYm94X19xdHkgLnF0eSB7XG4gICAgICBtYXgtd2lkdGg6IDExcmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5jcy1idW5kbGUtYm94X19xdHkgLmNzLWJveC1hZGR0b2NhcnRfX2xhYmVsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWJ1bmRsZS1ib3hfX3N1bW1hcnkge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGNkY2RjOyB9IH1cbiAgLmNzLWJ1bmRsZS1ib3hfX3N1bW1hcnkgLnByaWNlLWNvbmZpZ3VyZWRfcHJpY2UgLnByaWNlLWFzLWNvbmZpZ3VyZWQge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtYnVuZGxlLWJveF9fc3VtbWFyeSAucHJpY2UtY29uZmlndXJlZF9wcmljZSAucHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogMS41ZW07IH1cbiAgLmNzLWJ1bmRsZS1ib3hfX3N1bW1hcnktc2VjdGlvbiB7XG4gICAgcGFkZGluZzogMS41cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1idW5kbGUtYm94X19zdW1tYXJ5LXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gICAgICAgIC5jcy1idW5kbGUtYm94X19zdW1tYXJ5LXNlY3Rpb246Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtYnVuZGxlLWJveF9fc3VtbWFyeS1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogM3JlbTsgfSB9XG4gICAgLmNzLWJ1bmRsZS1ib3hfX3N1bW1hcnktc2VjdGlvbjplbXB0eSwgLmNzLWJ1bmRsZS1ib3hfX3N1bW1hcnktc2VjdGlvbjpibGFuayB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1idW5kbGUtYm94X19zdW1tYXJ5LXByb2R1Y3QtZGV0YWlscyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1idW5kbGUtYm94X19zdW1tYXJ5LXByb2R1Y3QtbmFtZSB7XG4gICAgbWFyZ2luOiAwIDAgMCAxLjVyZW07IH1cbiAgLmNzLWJ1bmRsZS1ib3hfX2FkZHRvY2FydCB7XG4gICAgbWFyZ2luOiAxLjVyZW0gMCAwO1xuICAgIGZvbnQtc2l6ZTogMWVtOyB9XG4gIC5jcy1idW5kbGUtYm94X19hZGR0b2NhcnQtYnV0dG9uIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgLmNzLWJ1bmRsZS1ib3hfX2J1bmRlLWl0ZW1zIHtcbiAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuICAuY3MtYnVuZGxlLWJveF9fYnVuZGxlLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gIC5jcy1idW5kbGUtYm94X19idW5kZS1pdGVtLW5hbWUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIC5jcy1idW5kbGUtYm94IC5maWVsZHNldCA+IHAucmVxdWlyZWQge1xuICAgIG1hcmdpbjogMS41cmVtIDAgMDtcbiAgICBjb2xvcjogI2U0MWYxMjsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4uc2Nzcyc7XG5cbiRidW5kbGUtYm94X3NlY3Rpb24tdGl0bGUtbWFyZ2luOiAwIDAgMC43MTQzZW0gIWRlZmF1bHQ7IC8vIDE1cHggZnJvbSBib3R0b20gYmFzZWQgb24gZW0gZm9udC1zaXppbmcgKDEuNWVtKVxuJGJ1bmRsZS1ib3hfc2VjdGlvbi10aXRsZS1mb250LXNpemU6IDEuNWVtICFkZWZhdWx0O1xuXG4kYnVuZGxlLWJveF9zaG93LWJhY2stYnV0dG9uOiBmYWxzZSAhZGVmYXVsdDtcblxuJGJ1bmRsZS1ib3hfc3VtbWFyeS1zZXBhcmF0b3ItYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kYnVuZGxlLWJveF9zdW1tYXJ5LWVsZW1lbnRzLWd1dHRlcjogMS41cmVtICFkZWZhdWx0O1xuXG4kYnVuZGxlLWJveF9zdW1tYXJ5LXNlY3Rpb24tcGFkZGluZy1tb2JpbGU6ICRidW5kbGUtYm94X3N1bW1hcnktZWxlbWVudHMtZ3V0dGVyICFkZWZhdWx0O1xuJGJ1bmRsZS1ib3hfc3VtbWFyeS1zZWN0aW9uLXBhZGRpbmctdGFibGV0OiAkYnVuZGxlLWJveF9zdW1tYXJ5LWVsZW1lbnRzLWd1dHRlciAhZGVmYXVsdDtcbiRidW5kbGUtYm94X3N1bW1hcnktc2VjdGlvbi1wYWRkaW5nLWxhcHRvcC11cDogMiAqXG4gICAgJGJ1bmRsZS1ib3hfc3VtbWFyeS1lbGVtZW50cy1ndXR0ZXIgIWRlZmF1bHQ7XG4kYnVuZGxlLWJveF9zdW1tYXJ5LXNlY3Rpb24tYm9yZGVyOiAkYnVuZGxlLWJveF9zdW1tYXJ5LXNlcGFyYXRvci1ib3JkZXIgIWRlZmF1bHQ7XG5cbiRidW5kbGUtYm94X3N1bW1hcnktY29uZmlndXJlZC1wcmljZS1mb250LXNpemU6ICRidW5kbGUtYm94X3NlY3Rpb24tdGl0bGUtZm9udC1zaXplICFkZWZhdWx0O1xuXG4kYnVuZGxlLWJveF9hZGR0b2NhcnQtbWFyZ2luOiAkYnVuZGxlLWJveF9zdW1tYXJ5LWVsZW1lbnRzLWd1dHRlciAwIDAgIWRlZmF1bHQ7XG4kYnVuZGxlLWJveF9hZGR0b2NhcnQtZm9udC1zaXplOiAxZW0gIWRlZmF1bHQ7XG5cbiRidW5kbGUtYm94X3N1bW1hcnktYnVuZGxlLWl0ZW1zLWZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJGJ1bmRsZS1ib3hfc3VtbWFyeS1idW5kbGUtaXRlbS1uYW1lLWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG5cbiRidW5kbGUtYm94X3JlcXVpcmVkLW1hcmstY29sb3I6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31idW5kbGUtYm94IHtcbiAgICAkcm9vdDogJjtcblxuICAgIC8vIFdob2xlIHNlY3Rpb24gaXMgaW5pdGlhbGx5IGhpZGRlbi4gJ0N1c3RvbWl6ZScgYnV0dG9uIGluIGJ1eWJveCBjb250cm9sbHMgZGlzcGxheSBvZiB0aGlzIHNlY3Rpb25cbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgLy8gV2hvbGUgc2VjdGlvbiBpcyBpbml0aWFsbHkgaGlkZGVuLiAnQ3VzdG9taXplJyBidXR0b24gaW4gYnV5Ym94IGNvbnRyb2xscyBkaXNwbGF5IG9mIHRoaXMgc2VjdGlvblxuICAgIC8qLnByb2R1Y3QtYWRkLWZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH0qL1xuICAgIC8vIFdob2xlIHNlY3Rpb24gaXMgaW5pdGlhbGx5IGhpZGRlbi4gJ0N1c3RvbWl6ZScgYnV0dG9uIGluIGJ1eWJveCBjb250cm9sbHMgZGlzcGxheSBvZiB0aGlzIHNlY3Rpb25cbiAgICAmLnByb2R1Y3QtYWRkLWZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5maWVsZHNldCB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICAgIG1hcmdpbjogJGJ1bmRsZS1ib3hfc2VjdGlvbi10aXRsZS1tYXJnaW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGJ1bmRsZS1ib3hfc2VjdGlvbi10aXRsZS1mb250LXNpemU7XG5cbiAgICAgICAgKyBiciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJhY2suY3VzdG9taXphdGlvbiB7XG4gICAgICAgIEBpZiAkYnVuZGxlLWJveF9zaG93LWJhY2stYnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19maWVsZCB7XG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdC1uYW1lIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMC41ZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy1saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdC1vcHRpb24tbmFtZS5sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIH1cblxuICAgICZfX3F0eSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgLnF0eSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDExcmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyRuc31ib3gtYWRkdG9jYXJ0X19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1bW1hcnkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJGJ1bmRsZS1ib3hfc3VtbWFyeS1zZXBhcmF0b3ItYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByaWNlLWNvbmZpZ3VyZWRfcHJpY2Uge1xuICAgICAgICAgICAgLnByaWNlLWFzLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRidW5kbGUtYm94X3N1bW1hcnktY29uZmlndXJlZC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdW1tYXJ5LXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiAkYnVuZGxlLWJveF9zdW1tYXJ5LXNlY3Rpb24tcGFkZGluZy1tb2JpbGU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgcGFkZGluZzogJGJ1bmRsZS1ib3hfc3VtbWFyeS1zZWN0aW9uLXBhZGRpbmctdGFibGV0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJGJ1bmRsZS1ib3hfc3VtbWFyeS1zZWN0aW9uLWJvcmRlcjtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRidW5kbGUtYm94X3N1bW1hcnktc2VjdGlvbi1wYWRkaW5nLWxhcHRvcC11cDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6ZW1wdHksXG4gICAgICAgICY6Ymxhbmsge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1bW1hcnktcHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19zdW1tYXJ5LXByb2R1Y3QtbmFtZSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgJGJ1bmRsZS1ib3hfc3VtbWFyeS1lbGVtZW50cy1ndXR0ZXI7XG4gICAgfVxuXG4gICAgJl9fYWRkdG9jYXJ0IHtcbiAgICAgICAgbWFyZ2luOiAkYnVuZGxlLWJveF9hZGR0b2NhcnQtbWFyZ2luO1xuICAgICAgICBmb250LXNpemU6ICRidW5kbGUtYm94X2FkZHRvY2FydC1mb250LXNpemU7XG4gICAgfVxuXG4gICAgJl9fYWRkdG9jYXJ0LWJ1dHRvbiB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZvbnQtc2l6ZTogJGJ1bmRsZS1ib3hfc3VtbWFyeS1idW5kbGUtaXRlbXMtZm9udC1zaXplO1xuICAgIH1cblxuICAgICZfX2J1bmRlLWl0ZW1zIHtcbiAgICAgICAgZm9udC1zaXplOiAkYnVuZGxlLWJveF9zdW1tYXJ5LWJ1bmRsZS1pdGVtcy1mb250LXNpemU7XG4gICAgfVxuXG4gICAgJl9fYnVuZGxlLWl0ZW0ge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGJ1bmRsZS1ib3hfc3VtbWFyeS1lbGVtZW50cy1ndXR0ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idW5kZS1pdGVtLW5hbWUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkYnVuZGxlLWJveF9zdW1tYXJ5LWJ1bmRsZS1pdGVtLW5hbWUtZm9udC13ZWlnaHQ7XG4gICAgfVxuXG4gICAgLmZpZWxkc2V0ID4gcC5yZXF1aXJlZCB7XG4gICAgICAgIG1hcmdpbjogJGJ1bmRsZS1ib3hfc3VtbWFyeS1lbGVtZW50cy1ndXR0ZXIgMCAwO1xuICAgICAgICBjb2xvcjogJGJ1bmRsZS1ib3hfcmVxdWlyZWQtbWFyay1jb2xvcjtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogQmVjYXVzZSBwcmljZS1ib3ggaXMgdXNlZCBpbiBtdWx0aXBsZSBjb21wb25lbnRzIGxpa2UgdGlsZSwgYnV5Ym94IGV0YyxcbiAqIHdlIG5lZWQgdG8gbW92ZSB2YXJpYWJsZXMgdG8gc2VwYXJhdGUgZmlsZSB0byBoYXZlIHBvc3NpYmlsaXR5IHRvIGluY2x1ZGUgdGhlbVxuICogaW4gZWFjaCBjb21wb25lbnQgd2l0aG91dCBnZW5lcmF0ZSBwcmljZS1ib3ggY29tcG9uZW50IHN0eWxlcyBtdWx0aXBsZSB0aW1lc1xuKi9cbi5jcy1idXlib3gge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgLyogRGVmYXVsdCBzdHlsaW5nIGlzIGZvciBJTiBTVE9DSyB2YXJpYW50ICovXG4gIC8qIERlZmF1bHQgc3R5bGluZyBpcyBmb3IgSU4gU1RPQ0sgdmFyaWFudCAqL1xuICAvKipcbiAgICAgKiBEb3dubG9hZGFibGUgcHJvZHVjdHNcbiAgICAgKi9cbiAgLyoqXG4gICAgICogR3JvdXBlZCBwcm9kdWN0c1xuICAgICAqLyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWJ1eWJveCB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkY2RjZGM7IH0gfVxuICAuY3MtYnV5Ym94X19zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAgIC5jcy1idXlib3hfX3NlY3Rpb246Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtYnV5Ym94X19zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMS41cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWJ1eWJveF9fc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDNyZW07IH0gfVxuICAgIC5jcy1idXlib3hfX3NlY3Rpb246ZW1wdHksIC5jcy1idXlib3hfX3NlY3Rpb246Ymxhbmsge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtYnV5Ym94X19icmFuZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLmNzLWJ1eWJveF9fYnJhbmQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIvXCI7XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gIC5jcy1idXlib3hfX2JyYW5kLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjODg4OyB9XG4gIC5jcy1idXlib3hfX2NhdGVnb3J5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICM4ODg7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgZGlzcGxheTogaW5saW5lOyB9XG4gIC5jcy1idXlib3hfX3Byb2R1Y3QtbmFtZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cbiAgICAuY3MtYnV5Ym94X19wcm9kdWN0LW5hbWUgaDEge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDsgfVxuICAuY3MtYnV5Ym94X19yZXZpZXdzLXN1bW1hcnksIC5jcy1idXlib3hfX2hpZ2hsaWdodHMsIC5jcy1idXlib3hfX2RhaWx5LWRlYWwge1xuICAgIG1hcmdpbjogMS41cmVtIDAgMDsgfVxuICAgIC5jcy1idXlib3hfX3Jldmlld3Mtc3VtbWFyeTplbXB0eSwgLmNzLWJ1eWJveF9fcmV2aWV3cy1zdW1tYXJ5OmJsYW5rLCAuY3MtYnV5Ym94X19oaWdobGlnaHRzOmVtcHR5LCAuY3MtYnV5Ym94X19oaWdobGlnaHRzOmJsYW5rLCAuY3MtYnV5Ym94X19kYWlseS1kZWFsOmVtcHR5LCAuY3MtYnV5Ym94X19kYWlseS1kZWFsOmJsYW5rIHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAuY3MtYnV5Ym94X19wcmljZSB7XG4gICAgbWFyZ2luOiAxLjVyZW0gMCAwOyB9XG4gICAgLmNzLWJ1eWJveF9fcHJpY2UgLnByaWNlLWJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDsgfVxuICAgICAgLmNzLWJ1eWJveF9fcHJpY2UgLnByaWNlLWJveCAucHJpY2Uge1xuICAgICAgICBjb2xvcjogIzMyNGRjZjtcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICAgICAgLmNzLWJ1eWJveF9fcHJpY2UgLnByaWNlLWJveCAucHJpY2UuZGlzY291bnRlZC1wcmljZSB7XG4gICAgICAgICAgY29sb3I6ICNlNDFmMTI7IH1cbiAgICAgIC5jcy1idXlib3hfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgICAuY3MtYnV5Ym94X19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICBjb2xvcjogIzY5Njk2OTtcbiAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyB9XG4gICAgICAuY3MtYnV5Ym94X19wcmljZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAjZTQxZjEyO1xuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAuY3MtYnV5Ym94IC5wcmljZS10aWVyX3ByaWNlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY3MtYnV5Ym94IC5wcm9kdWN0LmF0dHJpYnV0ZS5vdmVydmlldyB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4gIC5jcy1idXlib3hfX3Byb2R1Y3QtdmFyaWFudHMsIC5jcy1idXlib3hfX2FkZHRvY2FydCxcbiAgLmNzLWJ1eWJveCAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICAuY3MtYnV5Ym94X19wcm9kdWN0LXZhcmlhbnRzIC5wYWdlLXByb2R1Y3QtYnVuZGxlLCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLnBhZ2UtcHJvZHVjdC1idW5kbGUsXG4gICAgLmNzLWJ1eWJveCAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLnBhZ2UtcHJvZHVjdC1idW5kbGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY3MtYnV5Ym94X19wcm9kdWN0LXZhcmlhbnRzIC5jcy1odG1sLXNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuY3MtYnV5Ym94X19wcm9kdWN0LXZhcmlhbnRzIC5jcy1odG1sLXNlbGVjdF9fdHJpZ2dlciB7XG4gICAgaGVpZ2h0OiA0ZW07IH1cbiAgLmNzLWJ1eWJveF9fcHJvZHVjdC12YXJpYW50cy1sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNGVtOyB9XG4gIC5jcy1idXlib3hfX2FkZHRvY2FydC1maWVsZHNldCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0LWFjdGlvbnMge1xuICAgIGZsZXgtZ3JvdzogMTA7IH1cbiAgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0LWJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0LWJ1dHRvbiBzdHJvbmcge1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07IH1cbiAgLmNzLWJ1eWJveF9fcXR5LXdyYXBwZXIge1xuICAgIHdpZHRoOiAxMHJlbTtcbiAgICBtYXJnaW46IDAgMS41cmVtIDAgMDtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAvKiBEb3dubG9hZGFibGUgcHJvZHVjdCBtb2RpZmljYXRpb24gLSBhbGlnbiB3aXRoIE1hZ2VudG8gQmxhbmsgKi8gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtYnV5Ym94X19xdHktd3JhcHBlciB7XG4gICAgICAgIHdpZHRoOiAxMXJlbTsgfSB9XG4gICAgLnBhZ2UtcHJvZHVjdC1kb3dubG9hZGFibGUgLmNzLWJ1eWJveF9fcXR5LXdyYXBwZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtYnV5Ym94X191cGRhdGUge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLWJ1eWJveF9fdXBkYXRlOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtYnV5Ym94X191cGRhdGUsIC5jcy1idXlib3hfX3VwZGF0ZTp2aXNpdGVkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAgIC5jcy1idXlib3hfX3VwZGF0ZTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1idXlib3hfX3VwZGF0ZTpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1idXlib3hfX3VwZGF0ZTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV5Ym94X191cGRhdGU6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1idXlib3hfX3VwZGF0ZTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1eWJveF9fdXBkYXRlOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAgIC5jcy1idXlib3hfX3VwZGF0ZVtkaXNhYmxlZF0sIC5jcy1idXlib3hfX3VwZGF0ZTp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgLmNzLWJ1eWJveF9fdXBkYXRlLXNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5jcy1idXlib3hfX3VwZGF0ZS1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtYnV5Ym94X19zdG9jayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbjogMCAwIDEuNXJlbTtcbiAgICBjb2xvcjogIzM3Yjg0MTsgfVxuICAgIC5jcy1idXlib3hfX3N0b2NrLS11bmF2YWlsYWJsZSB7XG4gICAgICBjb2xvcjogI2U0MWYxMjsgfVxuICAuY3MtYnV5Ym94X19zdG9jay1pY29uIHtcbiAgICB3aWR0aDogMi40ZW07XG4gICAgaGVpZ2h0OiAxLjhlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgZmlsbDogY3VycmVudENvbG9yOyB9XG4gIC5jcy1idXlib3hfX3N0b2NrLXN1YnNjcmlwdGlvbiB7XG4gICAgbWFyZ2luOiAwIDAgMS41cmVtICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWJ1eWJveF9fYWRkdG8tbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtYnV5Ym94X19hZGR0by1pdGVtIHtcbiAgICBtYXJnaW46IDAuNXJlbSAycmVtIDAuNXJlbSAwOyB9XG4gICAgLmNzLWJ1eWJveF9fYWRkdG8taXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAuY3MtYnV5Ym94X19hZGR0by1saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuY3MtYnV5Ym94X19hZGR0by1saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmOyB9XG4gIC5jcy1idXlib3hfX2FkZHRvLWljb24ge1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC44cmVtO1xuICAgIHRyYW5zaXRpb246IGZpbGwgMC4xNXMgbGluZWFyOyB9XG4gICAgLmNzLWJ1eWJveF9fYWRkdG8taWNvbi0td2lzaGxpc3Qge1xuICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgIGZpbGw6ICNlNDFmMTI7IH1cbiAgICAuY3MtYnV5Ym94X19hZGR0by1pY29uLS1jb21wYXJlIHtcbiAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgZmlsbDogIzMyNGRjZjsgfVxuICAuY3MtYnV5Ym94X191c3BzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgLmNzLWJ1eWJveF9fdXNwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLWJ1eWJveF9fdXNwLWljb24ge1xuICAgIGhlaWdodDogMi4ycmVtO1xuICAgIG1hcmdpbjogMXB4IDAuOHJlbSAwIDA7XG4gICAgZmlsbDogY3VycmVudENvbG9yOyB9XG4gICAgLmNzLWJ1eWJveF9fdXNwLWljb24tLTEge1xuICAgICAgd2lkdGg6IDIuMnJlbTsgfVxuICAgIC5jcy1idXlib3hfX3VzcC1pY29uLS0yIHtcbiAgICAgIHdpZHRoOiAycmVtOyB9XG4gICAgLmNzLWJ1eWJveF9fdXNwLWljb24tLTMge1xuICAgICAgd2lkdGg6IDIuM3JlbTsgfVxuICAuY3MtYnV5Ym94X191c3AtbGFiZWwge1xuICAgIHdpZHRoOiBtaW4tY29udGVudDsgfVxuICAuY3MtYnV5Ym94X19kb3dubG9hZGFibGUtb3B0aW9ucyAuZG93bmxvYWRzID4gLmxhYmVsIHtcbiAgICBtYXJnaW46IDAgMCAwLjdlbTsgfVxuICAuY3MtYnV5Ym94X19kb3dubG9hZGFibGUtb3B0aW9ucyAubGVnZW5kLFxuICAuY3MtYnV5Ym94X19kb3dubG9hZGFibGUtb3B0aW9ucyAubGVnZW5kICsgYnIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWJ1eWJveF9fZG93bmxvYWRhYmxlLW9wdGlvbnMgLmNob2ljZSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW46IDAgMCAwLjdlbTsgfVxuICAgIC5jcy1idXlib3hfX2Rvd25sb2FkYWJsZS1vcHRpb25zIC5jaG9pY2U6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jcy1idXlib3hfX2Rvd25sb2FkYWJsZS1vcHRpb25zIGlucHV0IHtcbiAgICBtYXJnaW46IDAgMC43ZW0gMCAwOyB9XG4gIC5jcy1idXlib3hfX2Rvd25sb2FkYWJsZS1vcHRpb25zIC5maWVsZCAubGFiZWwge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5wYWdlLXByb2R1Y3QtZG93bmxvYWRhYmxlIC5jcy1idXlib3ggLnByb2R1Y3Qtb3B0aW9ucy1ib3R0b20gLnByaWNlLWZpbmFsX3ByaWNlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1idXlib3ggLmdyb3VwZWQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuY3MtYnV5Ym94IC5ncm91cGVkIC5jb2wge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgICAgLmNzLWJ1eWJveCAuZ3JvdXBlZCAuY29sOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgICAuY3MtYnV5Ym94IC5ncm91cGVkIC5jb2w6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAuY3MtYnV5Ym94IC5ncm91cGVkIC5xdHkge1xuICAgICAgd2lkdGg6IDEwcmVtOyB9XG4gICAgLmNzLWJ1eWJveCAuZ3JvdXBlZCAucHJpY2UtZmluYWxfcHJpY2Uge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiAwLjNlbTsgfVxuICAuY3MtYnV5Ym94ICN2YWxpZGF0aW9uLW1lc3NhZ2UtYm94IHtcbiAgICBtYXJnaW46IDAgMCAxZW07IH1cbiAgLmNzLWJ1eWJveCAuY3VzdG9taXplIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtOyB9XG4gICAgLmNzLWJ1eWJveCAuY3VzdG9taXplOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtYnV5Ym94IC5jdXN0b21pemUsIC5jcy1idXlib3ggLmN1c3RvbWl6ZTp2aXNpdGVkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAgIC5jcy1idXlib3ggLmN1c3RvbWl6ZTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1idXlib3ggLmN1c3RvbWl6ZTpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1idXlib3ggLmN1c3RvbWl6ZTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV5Ym94IC5jdXN0b21pemU6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1idXlib3ggLmN1c3RvbWl6ZTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1eWJveCAuY3VzdG9taXplOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAgIC5jcy1idXlib3ggLmN1c3RvbWl6ZVtkaXNhYmxlZF0sIC5jcy1idXlib3ggLmN1c3RvbWl6ZTp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgICAuY3MtYnV5Ym94IC5jdXN0b21pemUgc3BhbiB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuXG4uY3MtYnV5Ym94IHtcbiAgYm9yZGVyOiBub25lO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogNHJlbTsgfVxuICAuY3MtYnV5Ym94X19zZWN0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmctYmxvY2s6IDFlbSAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1idXlib3hfX3NlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7IH0gfVxuICAgIC5jcy1idXlib3hfX3NlY3Rpb246Zmlyc3QtY2hpbGQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07IH1cbiAgICAgIC5jcy1idXlib3hfX3NlY3Rpb246Zmlyc3QtY2hpbGQgLmNzLWJ1eWJveF9fYWRkaXRpb25hbC1kYXRhIHtcbiAgICAgICAgb3JkZXI6IDQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNHJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICAgIC5jcy1idXlib3hfX3NlY3Rpb246Zmlyc3QtY2hpbGQgLmNzLWJ1eWJveF9fYWRkaXRpb25hbC1kYXRhIC5hZGRpdGlvbmFsLWRhdGEge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuICAgICAgICAgIC5jcy1idXlib3hfX3NlY3Rpb246Zmlyc3QtY2hpbGQgLmNzLWJ1eWJveF9fYWRkaXRpb25hbC1kYXRhIC5hZGRpdGlvbmFsLWRhdGE6bnRoLWNoaWxkKG4gKyAyKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAgICAgICAgICAgLmNzLWJ1eWJveF9fc2VjdGlvbjpmaXJzdC1jaGlsZCAuY3MtYnV5Ym94X19hZGRpdGlvbmFsLWRhdGEgLmFkZGl0aW9uYWwtZGF0YTpudGgtY2hpbGQobiArIDIpOjpiZWZvcmUge1xuICAgICAgICAgICAgICBjb250ZW50OiBcInxcIjtcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gICAgICAuY3MtYnV5Ym94X19zZWN0aW9uOmZpcnN0LWNoaWxkLS1wcm9kdWN0LWZvcm0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAgIC5jcy1idXlib3hfX3NlY3Rpb24gLmdyZXkge1xuICAgICAgY29sb3I6ICM4Nzg3ODc7IH1cbiAgICAuY3MtYnV5Ym94X19zZWN0aW9uIC5jcy1idXlib3hfX2NhdGVnb3J5IHtcbiAgICAgIG9yZGVyOiAyO1xuICAgICAgbWFyZ2luLWJsb2NrOiAwIDJyZW07XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmNzLWJ1eWJveF9fc2VjdGlvbiAuY3MtYnV5Ym94X19jYXRlZ29yeSA+IGEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAgIC5jcy1idXlib3hfX3NlY3Rpb24gLmNzLWJ1eWJveF9fY2F0ZWdvcnkgPiBhOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Fycm93LWxvbmctcmlnaHQuc3ZnXCIpO1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMjVyZW07IH1cbiAgICAuY3MtYnV5Ym94X19zZWN0aW9uIC5jcy1idXlib3hfX3Byb2R1Y3QtbmFtZSB7XG4gICAgICBvcmRlcjogMztcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuY3MtYnV5Ym94X19zZWN0aW9uIC5jcy1idXlib3hfX3Byb2R1Y3QtbmFtZSBoMSB7XG4gICAgICAgIGNvbG9yOiAjMDAwOyB9XG4gICAgLmNzLWJ1eWJveF9fc2VjdGlvbiAuY3MtYnV5Ym94X19wcmljZSB7XG4gICAgICBvcmRlcjogNTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMjsgfVxuICAgICAgLmNzLWJ1eWJveF9fc2VjdGlvbiAuY3MtYnV5Ym94X19wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheDo6YmVmb3JlLFxuICAgICAgLmNzLWJ1eWJveF9fc2VjdGlvbiAuY3MtYnV5Ym94X19wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheDo6YmVmb3JlIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XG4gICAgLmNzLWJ1eWJveF9fc2VjdGlvbiAucHJvZHVjdC1hZGQtZm9ybSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1idXlib3hfX3NlY3Rpb24gLnByb2R1Y3QtYWRkLWZvcm0ge1xuICAgICAgICAgIGdhcDogMnJlbTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLmNzLWJ1eWJveF9fc2VjdGlvbiAucHJvZHVjdC1hZGQtZm9ybSA+IGZvcm0ge1xuICAgICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAgIC5jcy1idXlib3hfX3NlY3Rpb24gLnByb2R1Y3QtYWRkLWZvcm0gPiBkaXYge1xuICAgICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICAgIC5jcy1idXlib3hfX3NlY3Rpb24gLnByb2R1Y3QtYWRkLWZvcm0gLmFzay1hYm91dC1idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMS4ycmVtIDJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjdweDtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4zcyBhbGw7XG4gICAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgICAgICAuY3MtYnV5Ym94X19zZWN0aW9uIC5wcm9kdWN0LWFkZC1mb3JtIC5hc2stYWJvdXQtYnV0dG9uOmVuYWJsZWQge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICAuY3MtYnV5Ym94X19zZWN0aW9uIC5wcm9kdWN0LWFkZC1mb3JtIC5hc2stYWJvdXQtYnV0dG9uOmhvdmVyLCAuY3MtYnV5Ym94X19zZWN0aW9uIC5wcm9kdWN0LWFkZC1mb3JtIC5hc2stYWJvdXQtYnV0dG9uOmZvY3VzIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICNjMTI3MmY7XG4gICAgICAgICAgY29sb3I6ICNjMTI3MmY7IH1cbiAgICAuY3MtYnV5Ym94X19zZWN0aW9uIC5wcm9kdWN0LXNvY2lhbC1saW5rcyB7XG4gICAgICBwYWRkaW5nLXRvcDogMWVtO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkNWQ1ZDU7IH1cbiAgICAuY3MtYnV5Ym94X19zZWN0aW9uLS1leHRyYXMge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07IH1cbiAgICAuY3MtYnV5Ym94X19zZWN0aW9uLS1wcm9kdWN0LWZvcm0ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1idXlib3hfX3NlY3Rpb24tLXByb2R1Y3QtZm9ybSB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDMuNXJlbTsgfSB9XG4gIC5jcy1idXlib3hfX2JyYW5kIHtcbiAgICBvcmRlcjogMjtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmNzLWJ1eWJveF9fYnJhbmQtdGV4dCB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAgIC5jcy1idXlib3hfX2JyYW5kOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLWJ1eWJveF9fYnJhbmQgfiAucHJvZHVjdC1pbmZvLXByaWNlIC5zcGVjaWFsLXByaWNlLS1iYWRnZSB7XG4gICAgICB0b3A6IDZyZW07IH1cbiAgLmNzLWJ1eWJveF9fcHJpY2UgLnRvb2x0aXB0ZXh0IHtcbiAgICB3aWR0aDogMzUwcHggIWltcG9ydGFudDtcbiAgICBsZWZ0OiAtNHJlbSAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0b3A6IDZyZW07XG4gICAgYm90dG9tOiB1bnNldDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtYnV5Ym94X19wcmljZSAudG9vbHRpcHRleHQge1xuICAgICAgICBsZWZ0OiAtMnJlbSAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWJ1eWJveF9fcHJpY2UgLnRvb2x0aXB0ZXh0IHtcbiAgICAgICAgdG9wOiA2cmVtO1xuICAgICAgICBib3R0b206IHVuc2V0O1xuICAgICAgICBsZWZ0OiAtMXJlbSAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5jcy1idXlib3hfX3ByaWNlIC50b29sdGlwdGV4dDo6YWZ0ZXIge1xuICAgICAgICAgIGxlZnQ6IDQwJTsgfSB9XG4gIC5jcy1idXlib3hfX3ByaWNlIC5zcGVjaWFsLXByaWNlIC5wcmljZS1jb250YWluZXIge1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtOyB9XG4gIC5jcy1idXlib3hfX3ByaWNlIC5zcGVjaWFsLXByaWNlLS1iYWRnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMy41cmVtO1xuICAgIHJpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZmNzIwMDtcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjcyMDA7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42NXJlbTsgfVxuICAgIC5jcy1idXlib3hfX3ByaWNlIC5zcGVjaWFsLXByaWNlLS1iYWRnZTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB3aWR0aDogMS42cmVtO1xuICAgICAgaGVpZ2h0OiAxLjZyZW07XG4gICAgICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQgY2VudGVyIHVybChcIi4uL2ltYWdlcy9pY29ucy9wZXJjZW50YWdlLnN2Z1wiKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTsgfVxuICAuY3MtYnV5Ym94X19hZGR0b2NhcnQge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1idXlib3hfX2FkZHRvY2FydCB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAgIC5jcy1idXlib3hfX2FkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X193cmFwcGVyIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gICAgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0LWJ1dHRvbiB7XG4gICAgICBwYWRkaW5nOiAxLjJyZW0gMy44cmVtOyB9XG4gICAgICAuY3MtYnV5Ym94X19hZGR0b2NhcnQtYnV0dG9uIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWJ1eWJveF9fYWRkdG8tbGluayB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdHJhbnNpdGlvbjogMC4zcyBhbGw7IH1cbiAgICAuY3MtYnV5Ym94X19hZGR0by1saW5rOmhvdmVyID4gc3BhbiwgLmNzLWJ1eWJveF9fYWRkdG8tbGluazpmb2N1cyA+IHNwYW4ge1xuICAgICAgY29sb3I6ICNjMTI3MmY7IH1cbiAgICAuY3MtYnV5Ym94X19hZGR0by1saW5rOmhvdmVyIHN2ZyBwYXRoLCAuY3MtYnV5Ym94X19hZGR0by1saW5rOmZvY3VzIHN2ZyBwYXRoIHtcbiAgICAgIGZpbGw6ICNjMTI3MmY7IH1cbiAgLmNzLWJ1eWJveF9fYWRkdG8tbGFiZWwsIC5jcy1idXlib3hfX2FkZHRvLWxpbmstdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAuY3MtYnV5Ym94X19hZGR0by1saXN0IHtcbiAgICBnYXA6IDFyZW07IH1cbiAgICAuY3MtYnV5Ym94X19hZGR0by1saXN0IHN2ZyB7XG4gICAgICB3aWR0aDogMjRweDtcbiAgICAgIGhlaWdodDogMjRweDsgfVxuICAgIC5jcy1idXlib3hfX2FkZHRvLWxpc3QgLmNzLWJ1eWJveF9fYWRkdG8taWNvbi0td2lzaGxpc3Qge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyB9XG4gIC5jcy1idXlib3hfX2FkZHRvLWl0ZW0ge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtYnV5Ym94IC5jYXRhbG9nc2VsbGVyc19zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWJsb2NrOiAwOyB9XG4gICAgLmNzLWJ1eWJveCAuY2F0YWxvZ3NlbGxlcnNfc2VjdGlvbiArIC5pbnN0YWxsbWVudF9zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgICAgIC5jcy1idXlib3ggLmNhdGFsb2dzZWxsZXJzX3NlY3Rpb24gKyAuaW5zdGFsbG1lbnRfc2VjdGlvbiAuaW5zdGFsbG1lbnRfdGl0bGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAuY3MtYnV5Ym94IC5jYXRhbG9nc2VsbGVyLXByaW50LWJ1dHRvbi1jb250YWluZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWJ1eWJveCAuY2F0YWxvZ3NlbGxlci1wcmludC1idXR0b24tY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jcy1idXlib3ggLmNhdGFsb2dzZWxsZXItcHJpbnQtYnV0dG9uOmhvdmVyID4gc3BhbiB7XG4gICAgY29sb3I6ICNjMTI3MmY7IH1cbiAgLmNzLWJ1eWJveCAuY2F0YWxvZ3NlbGxlci1wcmludC1idXR0b24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgY29sb3I6ICMzMzMzMzM7IH1cbiAgLmNzLWJ1eWJveCAuaW5zdGFsbG1lbnRfc2VjdGlvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDFyZW07IH1cbiAgICAuY3MtYnV5Ym94IC5pbnN0YWxsbWVudF9zZWN0aW9uIC5pbnN0YWxsbWVudF90aXRsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgdHJhbnNpdGlvbjogMC4zcyBjb2xvcjsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLmNzLWJ1eWJveCAuaW5zdGFsbG1lbnRfc2VjdGlvbiAuaW5zdGFsbG1lbnRfdGl0bGUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9IH1cbiAgICAgIC5jcy1idXlib3ggLmluc3RhbGxtZW50X3NlY3Rpb24gLmluc3RhbGxtZW50X3RpdGxlOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNhMjAxMDk7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDgwZW0pIHtcbiAgICAuY3MtYnV5Ym94ID4gLnRodW1ibmFpbC1nYWxsZXJ5IHtcbiAgICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICAuY3MtYnV5Ym94ID4gLnRodW1ibmFpbC1nYWxsZXJ5IC5zd2lwZXItc2xpZGUgaW1nIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5jcy1idXlib3ggLmJhZGdlcyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgb3JkZXI6IDM7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1idXlib3ggLmJhZGdlcyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2luZGljYXRvcnMvbWl4aW5zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJpY2UtYm94L3ZhcmlhYmxlcyc7XG5cbi8vIFNvbWUgZ2xvYmFsc1xuJGJ1eWJveF9mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRidXlib3hfbGluZS1oZWlnaHQ6IDEuMjUgIWRlZmF1bHQ7XG4kYnV5Ym94X3NlY3Rpb24tZWxlbWVudHMtZ3V0dGVyOiAxLjVyZW0gIWRlZmF1bHQ7IC8vIG1hcmdpbiBiZXR3ZWVuIGNvbXBvbmVudHMgaW5zaWRlIHNlY3Rpb25zLCBub3Qgc2VjdGlvbnMgaXRzZWxmXG5cbiRidXlib3hfc2VwYXJhdG9yLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuXG4kYnV5Ym94X3NlY3Rpb24tYm9yZGVyOiAkYnV5Ym94X3NlcGFyYXRvci1ib3JkZXIgIWRlZmF1bHQ7XG4kYnV5Ym94X3NlY3Rpb24tcGFkZGluZy1tb2JpbGU6IDEuNXJlbSAwICFkZWZhdWx0O1xuJGJ1eWJveF9zZWN0aW9uLXBhZGRpbmctdGFibGV0OiAxLjVyZW0gIWRlZmF1bHQ7XG4kYnV5Ym94X3NlY3Rpb24tcGFkZGluZy1sYXB0b3AtdXA6IDNyZW0gIWRlZmF1bHQ7XG5cbiRidXlib3hfY2F0ZWdvcnktbWFyZ2luOiAwICFkZWZhdWx0O1xuJGJ1eWJveF9jYXRlZ29yeS1uYW1lLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kYnV5Ym94X2NhdGVnb3J5LW5hbWUtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbiRidXlib3hfYnJhbmQtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kYnV5Ym94X2JyYW5kLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kYnV5Ym94X2JyYW5kLWVuYWJsZS1zZXBhcmF0b3I6IHRydWUgIWRlZmF1bHQ7XG4kYnV5Ym94X2JyYW5kLXNlcGFyYXRvci1jb250ZW50OiAnLycgIWRlZmF1bHQ7XG5cbiRidXlib3hfcHJvZHVjdC1uYW1lLWZvbnQtc2l6ZTogMi40cmVtICFkZWZhdWx0O1xuJGJ1eWJveF9wcm9kdWN0LW5hbWUtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRidXlib3hfcHJvZHVjdC1uYW1lLWxpbmUtaGVpZ2h0OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4kYnV5Ym94X3ByaWNlLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhZGVmYXVsdDsgLy8gd2hlbiAyIHByaWNlcyBhcmUgZGlzcGxheWVkLCB0aGV5J3JlIHVzaW5nIGZsZXggZm9yIGFycmFuZ2VtZW50XG4kYnV5Ym94X3ByaWNlLWZsZXgtd3JhcDogbm93cmFwICFkZWZhdWx0O1xuXG4kYnV5Ym94X3ByaWNlLW5vcm1hbC1wcmljZS1jb2xvcjogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kYnV5Ym94X3ByaWNlLW5vcm1hbC1wcmljZS1mb250LXNpemU6IDEuOHJlbSAhZGVmYXVsdDtcbiRidXlib3hfcHJpY2Utbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcblxuJGJ1eWJveF9wcmljZS1vbGQtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfb2xkLXByaWNlLWNvbG9yICFkZWZhdWx0O1xuJGJ1eWJveF9wcmljZS1vbGQtcHJpY2UtZm9udC1zaXplOiAxLjNyZW0gIWRlZmF1bHQ7XG4kYnV5Ym94X3ByaWNlLW9sZC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kYnV5Ym94X3ByaWNlLW9sZC1wcmljZS1mb250LXRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uICFkZWZhdWx0O1xuXG4kYnV5Ym94X3ByaWNlLXNwZWNpYWwtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRidXlib3hfcHJpY2Utc3BlY2lhbC1wcmljZS1mb250LXNpemU6IDEuOHJlbSAhZGVmYXVsdDtcbiRidXlib3hfcHJpY2Utc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuXG4kYnV5Ym94X3Byb2R1Y3QtdmFyaWFudHMtc2VsZWN0LWhlaWdodDogNGVtICFkZWZhdWx0O1xuXG4kYnV5Ym94X2FkZHRvY2FydC1maWVsZHNldC1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJGJ1eWJveF9hZGR0b2NhcnQtZmllbGRzZXQtanVzdGlmeS1jb250ZW50OiBzdHJldGNoICFkZWZhdWx0O1xuJGJ1eWJveF9hZGR0b2NhcnQtZmllbGRzZXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG4kYnV5Ym94X2FkZHRvY2FydC1hY3Rpb25zLWZsZXgtZ3JvdzogMTAgIWRlZmF1bHQ7IC8vIGJ1dHRvbiB3aWxsIGZpbGwgbWF4IHBvc3NpYmxlIGZyZWUgc3BhY2VcbiRidXlib3hfYWRkdG9jYXJ0LWJ1dHRvbi1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcblxuJGJ1eWJveF9xdHktd3JhcHBlci13aWR0aDogMTByZW0gIWRlZmF1bHQ7XG4kYnV5Ym94X3F0eS13cmFwcGVyLXdpZHRoLWxhcHRvcC11cDogMTFyZW0gIWRlZmF1bHQ7XG4kYnV5Ym94X3F0eS13cmFwcGVyLW1hcmdpbjogMCAxLjVyZW0gMCAwICFkZWZhdWx0O1xuJGJ1eWJveF9xdHktd3JhcHBlci1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcblxuJGJ1eWJveF9zdG9jay1tYXJnaW46IDAgMCAkYnV5Ym94X3NlY3Rpb24tZWxlbWVudHMtZ3V0dGVyICFkZWZhdWx0O1xuJGJ1eWJveF9zdG9jay1jb2xvcjogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJ1eWJveF9zdG9jay0tdW5hdmFpbGFibGUtY29sb3I6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kYnV5Ym94X3N0b2NrLWljb24td2lkdGg6ICRpbmRpY2F0b3JfaWNvbi13aWR0aCAhZGVmYXVsdDsgLy8gdGFrZW4gZnJvbSBjb21wb25lbnQvaW5kaWNhdG9ycy9taXhpbnMuc2Nzc1xuJGJ1eWJveF9zdG9jay1pY29uLWhlaWdodDogJGluZGljYXRvcl9pY29uLWhlaWdodCAhZGVmYXVsdDsgLy8gdGFrZW4gZnJvbSBjb21wb25lbnQvaW5kaWNhdG9ycy9taXhpbnMuc2Nzc1xuXG4kYnV5Ym94X3N0b2NrLXN1YnNjcmlwdGlvbi1tYXJnaW46IDAgMCAkYnV5Ym94X3NlY3Rpb24tZWxlbWVudHMtZ3V0dGVyICFkZWZhdWx0O1xuXG4kYnV5Ym94X2FkZHRvLWxpc3QtZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRidXlib3hfYWRkdG8tbGlzdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWRlZmF1bHQ7XG4kYnV5Ym94X2FkZHRvLWl0ZW0taXRlbXMtZ3V0dGVyOiAycmVtICFkZWZhdWx0O1xuJGJ1eWJveF9hZGR0by1saW5rLWRpc3BsYXk6IGlubGluZS1mbGV4ICFkZWZhdWx0O1xuJGJ1eWJveF9hZGR0by1saW5rLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuJGJ1eWJveF9hZGR0by1saW5rLXRleHQtZGVjb3JhdGlvbjogaW5oZXJpdCAhZGVmYXVsdDtcbiRidXlib3hfYWRkdG8tbGluay0taG92ZXItY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXlib3hfYWRkdG8taWNvbi1oZWlnaHQ6IDEuNXJlbSAhZGVmYXVsdDtcbiRidXlib3hfYWRkdG8taWNvbi0td2lzaGxpc3Qtd2lkdGg6ICRidXlib3hfYWRkdG8taWNvbi1oZWlnaHQgIWRlZmF1bHQ7XG4kYnV5Ym94X2FkZHRvLWljb24tLWNvbXBhcmUtd2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4vLyBpZiB5b3Ugd2FudCB0byBrZWVwIHRoZSBzYW1lIGZpbGwtY29sb3IgdGhhdCBsaW5rIGhhcywgcGxlYXNlIHVzZSAnY3VycmVudENvbG9yJyBmb3IgaWNvbnMgJ2ZpbGwnIHByb3AuIEl0IHdpbGwgYWxzbyBiZSBhbmltYXRlZCBieSBkZWZhdWx0LlxuJGJ1eWJveF9hZGR0by1pY29uLS13aXNobGlzdC1maWxsOiAkY29sb3JfY3JpbXNvbiAhZGVmYXVsdDtcbiRidXlib3hfYWRkdG8taWNvbi0tY29tcGFyZS1maWxsOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG5cbiRidXlib3hfdXNwcy1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJGJ1eWJveF91c3BzLWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhZGVmYXVsdDtcbiRidXlib3hfdXNwcy1hbGlnbi1pdGVtczogZmxleC1zdGFydCAhZGVmYXVsdDtcbiRidXlib3hfdXNwcy1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kYnV5Ym94X3VzcHMtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRidXlib3hfdXNwLWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kYnV5Ym94X3VzcC1pY29uLWhlaWdodDogMi4ycmVtICFkZWZhdWx0O1xuJGJ1eWJveF91c3AtaWNvbi1tYXJnaW46IDFweCAwLjhyZW0gMCAwICFkZWZhdWx0O1xuJGJ1eWJveF91c3AtaWNvbi1maWxsOiBjdXJyZW50Q29sb3IgIWRlZmF1bHQ7XG4kYnV5Ym94X3VzcC1pY29uLS0xLXdpZHRoOiAkYnV5Ym94X3VzcC1pY29uLWhlaWdodCAhZGVmYXVsdDtcbiRidXlib3hfdXNwLWljb24tLTItd2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4kYnV5Ym94X3VzcC1pY29uLS0zLXdpZHRoOiAyLjNyZW0gIWRlZmF1bHQ7XG4kYnV5Ym94X3VzcC1sYWJlbC13aWR0aDogbWluLWNvbnRlbnQgIWRlZmF1bHQ7IC8vIHRoaXMgdmFsdWUgd2lsbCBtYWtlIHN1cmUgaXQgd2lsbCBicmVhY2ggYWZ0ZXIgZWFjaCB3b3JkLlxuXG4vLyBEb3dubG9hZGFibGUgcHJvZHVjdHNcbiRidXlib3hfZG93bmxvYWRhYmxlLW9wdGlvbi1tYXJnaW46IDAgMCAwLjdlbSAhZGVmYXVsdDtcbiRidXlib3hfZG93bmxvYWRhYmxlLWhpZGUtZHVwbGljYXRlZC1wcmljZS1ib3g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIFVwZGF0ZSBidXR0b25cbiRidXlib3hfdXBkYXRlLWJ1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRidXlib3hfdXBkYXRlLWJ1dHRvbi1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4vLyBDdXN0b21pemUgYnV0dG9uXG4kYnV5Ym94X2N1c3RvbWl6ZS1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kYnV5Ym94X2N1c3RvbWl6ZS1idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcblxuLiN7JG5zfWJ1eWJveCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogJGJ1eWJveF9mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRidXlib3hfbGluZS1oZWlnaHQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYnV5Ym94X3NlcGFyYXRvci1ib3JkZXI7XG4gICAgfVxuXG4gICAgJl9fc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6ICRidXlib3hfc2VjdGlvbi1wYWRkaW5nLW1vYmlsZTtcbiAgICAgICAgYm9yZGVyLXRvcDogJGJ1eWJveF9zZWN0aW9uLWJvcmRlcjtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkYnV5Ym94X3NlY3Rpb24tcGFkZGluZy10YWJsZXQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkYnV5Ym94X3NlY3Rpb24tcGFkZGluZy1sYXB0b3AtdXA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmVtcHR5LFxuICAgICAgICAmOmJsYW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19icmFuZCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICBAaWYgJGJ1eWJveF9icmFuZC1lbmFibGUtc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICRidXlib3hfYnJhbmQtc2VwYXJhdG9yLWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkYnV5Ym94X2JyYW5kLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1eWJveF9icmFuZC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JyYW5kLXRleHQge1xuICAgICAgICBmb250LXNpemU6ICRidXlib3hfYnJhbmQtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJGJ1eWJveF9icmFuZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19jYXRlZ29yeSB7XG4gICAgICAgIG1hcmdpbjogJGJ1eWJveF9jYXRlZ29yeS1tYXJnaW47XG4gICAgICAgIGNvbG9yOiAkYnV5Ym94X2NhdGVnb3J5LW5hbWUtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJGJ1eWJveF9jYXRlZ29yeS1uYW1lLWZvbnQtc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cblxuICAgICZfX3Byb2R1Y3QtbmFtZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAkYnV5Ym94X3Byb2R1Y3QtbmFtZS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkYnV5Ym94X3Byb2R1Y3QtbmFtZS1mb250LXdlaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRidXlib3hfcHJvZHVjdC1uYW1lLWxpbmUtaGVpZ2h0O1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19yZXZpZXdzLXN1bW1hcnksXG4gICAgJl9faGlnaGxpZ2h0cyxcbiAgICAmX19kYWlseS1kZWFsIHtcbiAgICAgICAgbWFyZ2luOiAkYnV5Ym94X3NlY3Rpb24tZWxlbWVudHMtZ3V0dGVyIDAgMDtcblxuICAgICAgICAmOmVtcHR5LFxuICAgICAgICAmOmJsYW5rIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3ByaWNlIHtcbiAgICAgICAgbWFyZ2luOiAkYnV5Ym94X3NlY3Rpb24tZWxlbWVudHMtZ3V0dGVyIDAgMDtcblxuICAgICAgICAucHJpY2UtYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJGJ1eWJveF9wcmljZS1mbGV4LWRpcmVjdGlvbjtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogJGJ1eWJveF9wcmljZS1mbGV4LXdyYXA7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDtcblxuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1eWJveF9wcmljZS1ub3JtYWwtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkYnV5Ym94X3ByaWNlLW5vcm1hbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRidXlib3hfcHJpY2Utbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuXG4gICAgICAgICAgICAgICAgJi5kaXNjb3VudGVkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXlib3hfcHJpY2Utc3BlY2lhbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV5Ym94X3ByaWNlLW9sZC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkYnV5Ym94X3ByaWNlLW9sZC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYnV5Ym94X3ByaWNlLW9sZC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYnV5Ym94X3ByaWNlLW9sZC1wcmljZS1mb250LXRleHQtZGVjb3JhdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJ1eWJveF9wcmljZS1zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRidXlib3hfcHJpY2Utc3BlY2lhbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYnV5Ym94X3ByaWNlLXNwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRidXlib3hfcHJpY2UtZmxleC1kaXJlY3Rpb24gPT0gJ3JvdycpIHtcbiAgICAgICAgICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkYnV5Ym94X3ByaWNlLWZsZXgtZGlyZWN0aW9uID09ICdyb3ctcmV2ZXJzZScpIHtcbiAgICAgICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS10aWVyX3ByaWNlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLy8gU2hvcnQgZGVzY3JpcHRpb25cbiAgICAucHJvZHVjdC5hdHRyaWJ1dGUub3ZlcnZpZXcge1xuICAgICAgICBtYXJnaW4tdG9wOiAkYnV5Ym94X3NlY3Rpb24tZWxlbWVudHMtZ3V0dGVyO1xuICAgIH1cblxuICAgICZfX3Byb2R1Y3QtdmFyaWFudHMsXG4gICAgJl9fYWRkdG9jYXJ0LFxuICAgIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICAgICAgLy8gUmVzZXQgbWFyZ2luIGZvciBidW5kbGUgcHJvZHVjdHNcbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1idW5kbGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3Byb2R1Y3QtdmFyaWFudHMge1xuICAgICAgICAvLyBGaXggZm9yIGRpc2FwcGVhcmluZyBodG1sIHNlbGVjdFxuICAgICAgICAuI3skbnN9aHRtbC1zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyRuc31odG1sLXNlbGVjdF9fdHJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRidXlib3hfcHJvZHVjdC12YXJpYW50cy1zZWxlY3QtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdC12YXJpYW50cy1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC40ZW07XG4gICAgfVxuXG4gICAgJl9fYWRkdG9jYXJ0LWZpZWxkc2V0IHtcbiAgICAgICAgZGlzcGxheTogJGJ1eWJveF9hZGR0b2NhcnQtZmllbGRzZXQtZGlzcGxheTtcblxuICAgICAgICBAaWYgJGJ1eWJveF9hZGR0b2NhcnQtZmllbGRzZXQtZGlzcGxheSA9PVxuICAgICAgICAgICAgZmxleCBvclxuICAgICAgICAgICAgJGJ1eWJveF9hZGR0b2NhcnQtZmllbGRzZXQtZGlzcGxheSA9PVxuICAgICAgICAgICAgaW5saW5lLWZsZXhcbiAgICAgICAge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkYnV5Ym94X2FkZHRvY2FydC1maWVsZHNldC1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogJGJ1eWJveF9hZGR0b2NhcnQtZmllbGRzZXQtYWxpZ24taXRlbXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGR0b2NhcnQtYWN0aW9ucyB7XG4gICAgICAgIGZsZXgtZ3JvdzogJGJ1eWJveF9hZGR0b2NhcnQtYWN0aW9ucy1mbGV4LWdyb3c7XG4gICAgfVxuXG4gICAgJl9fYWRkdG9jYXJ0LWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGJ1eWJveF9hZGR0b2NhcnQtYnV0dG9uLWZvbnQtc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3F0eS13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6ICRidXlib3hfcXR5LXdyYXBwZXItd2lkdGg7XG4gICAgICAgIG1hcmdpbjogJGJ1eWJveF9xdHktd3JhcHBlci1tYXJnaW47XG4gICAgICAgIGZvbnQtc2l6ZTogJGJ1eWJveF9xdHktd3JhcHBlci1mb250LXNpemU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6ICRidXlib3hfcXR5LXdyYXBwZXItd2lkdGgtbGFwdG9wLXVwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogRG93bmxvYWRhYmxlIHByb2R1Y3QgbW9kaWZpY2F0aW9uIC0gYWxpZ24gd2l0aCBNYWdlbnRvIEJsYW5rICovXG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZG93bmxvYWRhYmxlICYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3VwZGF0ZSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV5Ym94X3VwZGF0ZS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGJ1eWJveF91cGRhdGUtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fdXBkYXRlLXNwYW4ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV5Ym94X3VwZGF0ZS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGJ1eWJveF91cGRhdGUtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fdXBkYXRlLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV5Ym94X3VwZGF0ZS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGJ1eWJveF91cGRhdGUtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyogRGVmYXVsdCBzdHlsaW5nIGlzIGZvciBJTiBTVE9DSyB2YXJpYW50ICovXG4gICAgJl9fc3RvY2sge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46ICRidXlib3hfc3RvY2stbWFyZ2luO1xuICAgICAgICBjb2xvcjogJGJ1eWJveF9zdG9jay1jb2xvcjtcblxuICAgICAgICAmLS11bmF2YWlsYWJsZSB7XG4gICAgICAgICAgICBjb2xvcjogJGJ1eWJveF9zdG9jay0tdW5hdmFpbGFibGUtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBEZWZhdWx0IHN0eWxpbmcgaXMgZm9yIElOIFNUT0NLIHZhcmlhbnQgKi9cbiAgICAmX19zdG9jay1pY29uIHtcbiAgICAgICAgd2lkdGg6ICRidXlib3hfc3RvY2staWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkYnV5Ym94X3N0b2NrLWljb24taGVpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICB9XG5cbiAgICAmX19zdG9jay1zdWJzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW46ICRidXlib3hfc3RvY2stc3Vic2NyaXB0aW9uLW1hcmdpbiAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICZfX2FkZHRvLWxpc3Qge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG4gICAgICAgIGRpc3BsYXk6ICRidXlib3hfYWRkdG8tbGlzdC1kaXNwbGF5O1xuXG4gICAgICAgIEBpZiAkYnV5Ym94X2FkZHRvLWxpc3QtZGlzcGxheSA9PVxuICAgICAgICAgICAgZmxleCBvclxuICAgICAgICAgICAgJGJ1eWJveF9hZGR0by1saXN0LWRpc3BsYXkgPT1cbiAgICAgICAgICAgIGlubGluZS1mbGV4XG4gICAgICAgIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJGJ1eWJveF9hZGR0by1saXN0LWp1c3RpZnktY29udGVudDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGR0by1pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW0gJGJ1eWJveF9hZGR0by1pdGVtLWl0ZW1zLWd1dHRlciAwLjVyZW0gMDtcblxuICAgICAgICBAaWYgJGJ1eWJveF9hZGR0by1pdGVtLWl0ZW1zLWd1dHRlciAhPSAwIHtcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkdG8tbGluayB7XG4gICAgICAgIGRpc3BsYXk6ICRidXlib3hfYWRkdG8tbGluay1kaXNwbGF5O1xuICAgICAgICBjb2xvcjogJGJ1eWJveF9hZGR0by1saW5rLWNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRidXlib3hfYWRkdG8tbGluay10ZXh0LWRlY29yYXRpb247XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjtcblxuICAgICAgICBAaWYgJGJ1eWJveF9hZGR0by1saW5rLWRpc3BsYXkgPT1cbiAgICAgICAgICAgIGZsZXggb3JcbiAgICAgICAgICAgICRidXlib3hfYWRkdG8tbGluay1kaXNwbGF5ID09XG4gICAgICAgICAgICBpbmxpbmUtZmxleFxuICAgICAgICB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGJ1eWJveF9hZGR0by1saW5rLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZHRvLWljb24ge1xuICAgICAgICBoZWlnaHQ6ICRidXlib3hfYWRkdG8taWNvbi1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC44cmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBmaWxsIDAuMTVzIGxpbmVhcjtcblxuICAgICAgICAmLS13aXNobGlzdCB7XG4gICAgICAgICAgICB3aWR0aDogJGJ1eWJveF9hZGR0by1pY29uLS13aXNobGlzdC13aWR0aDtcbiAgICAgICAgICAgIGZpbGw6ICRidXlib3hfYWRkdG8taWNvbi0td2lzaGxpc3QtZmlsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNvbXBhcmUge1xuICAgICAgICAgICAgd2lkdGg6ICRidXlib3hfYWRkdG8taWNvbi0tY29tcGFyZS13aWR0aDtcbiAgICAgICAgICAgIGZpbGw6ICRidXlib3hfYWRkdG8taWNvbi0tY29tcGFyZS1maWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdXNwcyB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcbiAgICAgICAgZGlzcGxheTogJGJ1eWJveF91c3BzLWRpc3BsYXk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZm9udC1zaXplOiAkYnV5Ym94X3VzcHMtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJGJ1eWJveF91c3BzLWNvbG9yO1xuXG4gICAgICAgIEBpZiAkYnV5Ym94X3VzcHMtZGlzcGxheSA9PSBmbGV4IG9yICRidXlib3hfdXNwcy1kaXNwbGF5ID09IGlubGluZS1mbGV4XG4gICAgICAgIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJGJ1eWJveF91c3BzLWp1c3RpZnktY29udGVudDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiAkYnV5Ym94X3VzcHMtYWxpZ24taXRlbXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX191c3Age1xuICAgICAgICBkaXNwbGF5OiAkYnV5Ym94X3VzcC1kaXNwbGF5O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3VzcC1pY29uIHtcbiAgICAgICAgaGVpZ2h0OiAkYnV5Ym94X3VzcC1pY29uLWhlaWdodDtcbiAgICAgICAgbWFyZ2luOiAkYnV5Ym94X3VzcC1pY29uLW1hcmdpbjtcbiAgICAgICAgZmlsbDogJGJ1eWJveF91c3AtaWNvbi1maWxsO1xuXG4gICAgICAgICYtLTEge1xuICAgICAgICAgICAgd2lkdGg6ICRidXlib3hfdXNwLWljb24tLTEtd2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAmLS0yIHtcbiAgICAgICAgICAgIHdpZHRoOiAkYnV5Ym94X3VzcC1pY29uLS0yLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tMyB7XG4gICAgICAgICAgICB3aWR0aDogJGJ1eWJveF91c3AtaWNvbi0tMy13aWR0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3VzcC1sYWJlbCB7XG4gICAgICAgIHdpZHRoOiAkYnV5Ym94X3VzcC1sYWJlbC13aWR0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEb3dubG9hZGFibGUgcHJvZHVjdHNcbiAgICAgKi9cbiAgICAmX19kb3dubG9hZGFibGUtb3B0aW9ucyB7XG4gICAgICAgIC8vIEdsb2JhbCBcIkRvd25sb2Fkc1wiIGxhYmVsXG4gICAgICAgIC5kb3dubG9hZHMgPiAubGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luOiAkYnV5Ym94X2Rvd25sb2FkYWJsZS1vcHRpb24tbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9ybSBsZWdlbmQgKGFjdHVhbGx5IGl0J3MgZHVwbGljYXRlZCAuZG93bmxvYWRzID4gbGFiZWwpLlxuICAgICAgICAvLyBBZnRlciBsZWdlbmQgdGhlcmUncyBhIGxpbmUtYnJlYWsgd2hpY2ggaXMgYWxzbyBoaWRkZW4gaGVyZVxuICAgICAgICAubGVnZW5kIHtcbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmICsgYnIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaW5nbGUgb3B0aW9uIHdyYXBwZXJcbiAgICAgICAgLmNob2ljZSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luOiAkYnV5Ym94X2Rvd25sb2FkYWJsZS1vcHRpb24tbWFyZ2luO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPcHRpb24gY2hlY2tib3hcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuN2VtIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9wdGlvbiBsYWJlbFxuICAgICAgICAuZmllbGQgLmxhYmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRG93bmxvYWRhYmxlIHByb2R1Y3RzIGhhdmUgZHVwbGljYXRlZCBwcmljZSBib3ggaW5zaWRlIHRoZSBvcHRpb25zXG4gICAgLy8gSXQgYmVoYXZlcyBleGFjbHR5IHRoZSBzYW1lIHdheSBvcmlnaW5hbCBkb2VzLiBDaG9vc2luZyBhbiBvcHRpb24gdXBkYXRlcyBib3RoIG9mIHRoZW1cbiAgICBAaWYgJGJ1eWJveF9kb3dubG9hZGFibGUtaGlkZS1kdXBsaWNhdGVkLXByaWNlLWJveCB7XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZG93bmxvYWRhYmxlICYge1xuICAgICAgICAgICAgLnByb2R1Y3Qtb3B0aW9ucy1ib3R0b20gLnByaWNlLWZpbmFsX3ByaWNlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR3JvdXBlZCBwcm9kdWN0c1xuICAgICAqL1xuICAgIC5ncm91cGVkIHtcbiAgICAgICAgLy8gUmVzZXQgbWFyZ2luIGJldHdlZW4gcHJvZHVjdCBvcHRpb25zIChxdHkgY2hvb3NlcnMpIGFuZCBhZGQtdG8tY2FydCBidXR0b25cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAvLyBBbGlnbiBjb2x1bW5zIHRvIHRoZSBjZW50ZXIgYW5kIHJlc2V0IHBhZGRpbmcgZm9yIGZpcnN0IGFuZCBsYXN0IGNvbHVtbnMgb2YgdGhlIHRhYmxlc1xuICAgICAgICAuY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXBwbHkgcXR5LXN3aXRjaGVyIHdpZHRoIChmb3Igd2hvbGUgdGFibGUgY29sdW1uKVxuICAgICAgICAucXR5IHtcbiAgICAgICAgICAgIHdpZHRoOiAkYnV5Ym94X3F0eS13cmFwcGVyLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGlzcGxheSBwcmljZSBiZWxvdyBwcm9kdWN0IG9wdGlvbiBhbmQgbWFrZSBzb21lIHNwYWNpbmcgYmV0d2VlbiBvcHRpb24ncyBuYW1lIGFuZCBwcmljZVxuICAgICAgICAucHJpY2UtZmluYWxfcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjNlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEdyb3VwZWQgcHJvZHVjdHMgdmFsaWRhdGUgaWYgYXQgbGVhc3Qgb25lIG9mIHRoZW0gaGFzIHF0eSA+IDAuXG4gICAgLy8gQWRkIHNwYWNpbmcgYmVldHdlZW4gdmFsaWRhdGlvbiBlcnJvciBhbmQgYWRkLXRvLWNhcnQgYnV0dG9uLlxuICAgICN2YWxpZGF0aW9uLW1lc3NhZ2UtYm94IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMWVtO1xuICAgIH1cblxuICAgIC5jdXN0b21pemUge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGJ1eWJveF9jdXN0b21pemUtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRidXlib3hfY3VzdG9taXplLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyICogJGJ1eWJveF9zZWN0aW9uLWVsZW1lbnRzLWd1dHRlcjtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkYnV5Ym94X2N1c3RvbWl6ZS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRidXlib3hfY3VzdG9taXplLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiY29uZmlnL21peGluc1wiO1xuQGltcG9ydCBcIn5DcmVhdGl2ZXNob3AvY29tcG9uZW50cy9idXlib3gvYnV5Ym94LnNjc3NcIjtcblxuJGJ1eWJveF9hZGR0b2NhcnQtYnV0dG9uLWZvbnQtc2l6ZTogMS42cmVtO1xuXG4uI3skbnN9YnV5Ym94IHtcbiAgICAkcm9vdDogJjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiA0cmVtO1xuICAgICZfX3NlY3Rpb24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZy1ibG9jazogMWVtIDA7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICB9XG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07XG4gICAgICAgICAgICAjeyRyb290fV9fYWRkaXRpb25hbC1kYXRhIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogNDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjRyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgLmFkZGl0aW9uYWwtZGF0YSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsO1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChuICsgMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwifFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYtLXByb2R1Y3QtZm9ybSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmdyZXkge1xuICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS01MDA7XG4gICAgICAgIH1cbiAgICAgICAgI3skcm9vdH1fX2NhdGVnb3J5IHtcbiAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiAwIDJyZW07XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Fycm93LWxvbmctcmlnaHQuc3ZnXCIpO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICN7JHJvb3R9X19wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAjeyRyb290fV9fcHJpY2Uge1xuICAgICAgICAgICAgb3JkZXI6IDU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCxcbiAgICAgICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5wcm9kdWN0LWFkZC1mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGdhcDogMnJlbTtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmID4gZm9ybSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5hc2stYWJvdXQtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjJyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBrbWEtYnV0dG9uLS1zZWNvbmRhcnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnByb2R1Y3Qtc29jaWFsLWxpbmtzIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGttYV9jb2xvcl9ncmV5LTMwMDtcbiAgICAgICAgfVxuICAgICAgICAmLS1leHRyYXMge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgJi0tcHJvZHVjdC1mb3JtIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDMuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19icmFuZCB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgJi10ZXh0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgICAgICB9XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJiB+IC5wcm9kdWN0LWluZm8tcHJpY2Uge1xuICAgICAgICAgICAgLnNwZWNpYWwtcHJpY2UtLWJhZGdlIHtcbiAgICAgICAgICAgICAgICB0b3A6IDZyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fcHJpY2Uge1xuICAgICAgICAudG9vbHRpcHRleHQge1xuICAgICAgICAgICAgd2lkdGg6IDM1MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBsZWZ0OiAtNHJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdG9wOiA2cmVtO1xuICAgICAgICAgICAgYm90dG9tOiB1bnNldDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0ycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgdG9wOiA2cmVtO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogdW5zZXQ7XG4gICAgICAgICAgICAgICAgbGVmdDogLTFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDQwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnNwZWNpYWwtcHJpY2UtLWJhZGdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMy41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX29yYW5nZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAka21hX2NvbG9yX29yYW5nZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjY1cmVtO1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLjZyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm8tcmVwZWF0IGNlbnRlciB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGVyY2VudGFnZS5zdmdcIik7IC8vdG9kbzogY2hhbmdlIHRvIG5ldyBpY29uIHdoZW4gaXQgYXJyaXZlc1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fYWRkdG9jYXJ0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIC4jeyRuc31hZGR0b2NhcnRfX3dyYXBwZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtYnV0dG9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuMnJlbSAzLjhyZW07XG4gICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGJ1eWJveF9hZGR0b2NhcnQtYnV0dG9uLWZvbnQtc2l6ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIEBtaXhpbiBhY3Rpb25MYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsO1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICB9XG4gICAgJl9fYWRkdG8ge1xuICAgICAgICAmLWxpbmsge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAka21hX3RyYW5zaXRpb25fdGltZSBhbGw7XG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgJiA+IHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLWxhYmVsLFxuICAgICAgICAmLWxpbmstdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhY3Rpb25MYWJlbDtcbiAgICAgICAgfVxuICAgICAgICAmLWxpc3Qge1xuICAgICAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuI3skbnN9YnV5Ym94X19hZGR0by1pY29uLS13aXNobGlzdCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNhdGFsb2dzZWxsZXJzX3NlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICAgICAgICAmICsgLmluc3RhbGxtZW50X3NlY3Rpb24ge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIC5pbnN0YWxsbWVudF90aXRsZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5jYXRhbG9nc2VsbGVyLXByaW50LWJ1dHRvbi1jb250YWluZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jYXRhbG9nc2VsbGVyLXByaW50LWJ1dHRvbiB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJiA+IHNwYW4ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi10aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhY3Rpb25MYWJlbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuaW5zdGFsbG1lbnRfc2VjdGlvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICAgICAgLmluc3RhbGxtZW50X3RpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRrbWFfdHJhbnNpdGlvbl90aW1lIGNvbG9yO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTgwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmID4gLnRodW1ibmFpbC1nYWxsZXJ5IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcExnXCIpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLnN3aXBlci1zbGlkZSBpbWcge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYmFkZ2VzIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBvcmRlcjogMztcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogQmVjYXVzZSBwcmljZS1ib3ggaXMgdXNlZCBpbiBtdWx0aXBsZSBjb21wb25lbnRzIGxpa2UgdGlsZSwgYnV5Ym94IGV0YyxcbiAqIHdlIG5lZWQgdG8gbW92ZSB2YXJpYWJsZXMgdG8gc2VwYXJhdGUgZmlsZSB0byBoYXZlIHBvc3NpYmlsaXR5IHRvIGluY2x1ZGUgdGhlbVxuICogaW4gZWFjaCBjb21wb25lbnQgd2l0aG91dCBnZW5lcmF0ZSBwcmljZS1ib3ggY29tcG9uZW50IHN0eWxlcyBtdWx0aXBsZSB0aW1lc1xuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzIHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luOiAwIDAgM3JlbTsgfVxuICAuY3MtYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfX2hlYWRsaW5lLnRpdGxlIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19hY3Rpb25zIHtcbiAgICBtYXJnaW46IDAgMCAwIDJyZW07IH1cbiAgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19zZWxlY3QtYWxsIHtcbiAgICBwYWRkaW5nOiAwLjRlbSAwLjU1ZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgIC5jcy1idXlib3gtcmVsYXRlZC1wcm9kdWN0c19fc2VsZWN0LWFsbDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19zZWxlY3QtYWxsLCAuY3MtYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfX3NlbGVjdC1hbGw6dmlzaXRlZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHotaW5kZXg6IDU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfX3NlbGVjdC1hbGw6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfX3NlbGVjdC1hbGw6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfX3NlbGVjdC1hbGw6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19zZWxlY3QtYWxsOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfX3NlbGVjdC1hbGw6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1idXlib3gtcmVsYXRlZC1wcm9kdWN0c19fc2VsZWN0LWFsbDp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfX3NlbGVjdC1hbGxbZGlzYWJsZWRdLCAuY3MtYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfX3NlbGVjdC1hbGw6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG4gIC5jcy1idXlib3gtcmVsYXRlZC1wcm9kdWN0c19fbGlzdCwgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19pdGVtIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5jcy1idXlib3gtcmVsYXRlZC1wcm9kdWN0c19faXRlbSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICBwYWRkaW5nOiAwIDAgMXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAgIC5jcy1idXlib3gtcmVsYXRlZC1wcm9kdWN0c19faXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7IH1cbiAgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19pdGVtLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19jaGVja2JveC13cmFwcGVyIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtaW4td2lkdGg6IDdyZW07XG4gICAgbWFyZ2luOiAwIDJyZW0gMCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19jaGVja2JveC13cmFwcGVyIHtcbiAgICAgICAgbWluLXdpZHRoOiA3LjZyZW07IH0gfVxuICAuY3MtYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfX2NoZWNrYm94IHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMS43ZW0gIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDEuN2VtICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxLjdlbSAxLjdlbSAhaW1wb3J0YW50OyB9XG4gIC5jcy1idXlib3gtcmVsYXRlZC1wcm9kdWN0c19fY2hlY2tib3gtbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19pbWFnZSB7XG4gICAgbWFyZ2luOiAwIDJyZW0gMCAwOyB9XG4gIC5jcy1idXlib3gtcmVsYXRlZC1wcm9kdWN0c19faXRlbS1kZXRhaWxzLXdyYXBwZXIge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1idXlib3gtcmVsYXRlZC1wcm9kdWN0c19faXRlbS1kZXRhaWxzIHtcbiAgICBtYXJnaW46IDAgMCAwLjZlbTtcbiAgICBmb250LXNpemU6IDEuMmVtOyB9XG4gIC5jcy1idXlib3gtcmVsYXRlZC1wcm9kdWN0c19faXRlbS1uYW1lLCAuY3MtYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfX2l0ZW0tbmFtZTp2aXNpdGVkIHtcbiAgICBjb2xvcjogIzIxMjEyMTsgfVxuICAuY3MtYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfX2l0ZW0tYWN0aW9ucyB7XG4gICAgbWFyZ2luOiAwIDAgMCAycmVtOyB9XG4gIC5jcy1idXlib3gtcmVsYXRlZC1wcm9kdWN0c19fYXRjLWJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgcGFkZGluZzogMC40ZW0gMC43ZW07IH1cbiAgICAuY3MtYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfX2F0Yy1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1idXlib3gtcmVsYXRlZC1wcm9kdWN0c19fYXRjLWJ1dHRvbiwgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19hdGMtYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19hdGMtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19hdGMtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19hdGMtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1idXlib3gtcmVsYXRlZC1wcm9kdWN0c19fYXRjLWJ1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19hdGMtYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfX2F0Yy1idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgICAgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19hdGMtYnV0dG9uW2Rpc2FibGVkXSwgLmNzLWJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX19hdGMtYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4uc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3ByaWNlLWJveC92YXJpYWJsZXMuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcblxuJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX21hcmdpbjogMCAhZGVmYXVsdDtcbiRidXlib3gtcmVsYXRlZC1wcm9kdWN0c19oZWFkZXItbWFyZ2luOiAwIDAgM3JlbSAhZGVmYXVsdDtcbiRidXlib3gtcmVsYXRlZC1wcm9kdWN0c19tYWtlLXNlbGVjdC1hbGwtYnV0dG9uLXNtYWxsZXI6IHRydWUgIWRlZmF1bHQ7XG4kYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfc2VsZWN0LWFsbC1idXR0b24tdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfc2VsZWN0LWFsbC1idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcblxuJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX2l0ZW1zLXNlcGFyYXRvcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX2l0ZW1zLW1hcmdpbjogMCAwIDFyZW0gIWRlZmF1bHQ7XG4kYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfaXRlbXMtcGFkZGluZzogMCAwIDFyZW0gIWRlZmF1bHQ7XG5cbiRidXlib3gtcmVsYXRlZC1wcm9kdWN0c19pdGVtLWdlbmVyYWwtZ3V0dGVyOiAycmVtICFkZWZhdWx0O1xuJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX2l0ZW0tY2hlY2tib3gtd2lkdGg6IDEuN2VtICFkZWZhdWx0O1xuJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX2l0ZW0tY2hlY2tib3gtaGVpZ2h0OiAkYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfaXRlbS1jaGVja2JveC13aWR0aCAhZGVmYXVsdDtcbiRidXlib3gtcmVsYXRlZC1wcm9kdWN0c19pdGVtLWNoZWNrYm94LS1jaGVja2VkLWJnLXNpemU6ICRidXlib3gtcmVsYXRlZC1wcm9kdWN0c19pdGVtLWNoZWNrYm94LXdpZHRoXG4gICAgJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX2l0ZW0tY2hlY2tib3gtaGVpZ2h0ICFkZWZhdWx0O1xuXG4kYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfaXRlbS1kZXRhaWxzLWZvbnQtc2l6ZTogMS4yZW0gIWRlZmF1bHQ7XG4kYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfaXRlbS1saW5rLWNvbG9yOiAkY29sb3JfbWluZXNoYWZ0ICFkZWZhdWx0O1xuXG4kYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfYXRjLWJ1dHRvbi10eXBlOiAncHJpbWFyeScgIWRlZmF1bHQ7XG4kYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfYXRjLWJ1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX21ha2UtYXRjLWJ1dHRvbi1zbWFsbGVyOiB0cnVlICFkZWZhdWx0O1xuXG4uI3skbnN9YnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHMge1xuICAgICRyb290OiAmO1xuXG4gICAgbWFyZ2luOiAkYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfbWFyZ2luICFpbXBvcnRhbnQ7XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIG1hcmdpbjogJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX2hlYWRlci1tYXJnaW47XG4gICAgfVxuXG4gICAgJl9faGVhZGxpbmUudGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX2l0ZW0tZ2VuZXJhbC1ndXR0ZXI7XG4gICAgfVxuXG4gICAgJl9fc2VsZWN0LWFsbCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfc2VsZWN0LWFsbC1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX3NlbGVjdC1hbGwtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgQGlmICRidXlib3gtcmVsYXRlZC1wcm9kdWN0c19tYWtlLXNlbGVjdC1hbGwtYnV0dG9uLXNtYWxsZXIge1xuICAgICAgICAgICAgcGFkZGluZzogMC40ZW0gMC41NWVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3QsXG4gICAgJl9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAkYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfaXRlbXMtbWFyZ2luO1xuICAgICAgICBwYWRkaW5nOiAkYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfaXRlbXMtcGFkZGluZztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX2l0ZW1zLXNlcGFyYXRvcjtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0tY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19jaGVja2JveC13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtaW4td2lkdGg6IDdyZW07XG4gICAgICAgIG1hcmdpbjogMCAkYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfaXRlbS1nZW5lcmFsLWd1dHRlciAwIDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZScpIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNy42cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2hlY2tib3gge1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6ICRidXlib3gtcmVsYXRlZC1wcm9kdWN0c19pdGVtLWNoZWNrYm94LXdpZHRoICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX2l0ZW0tY2hlY2tib3gtaGVpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX2l0ZW0tY2hlY2tib3gtLWNoZWNrZWQtYmctc2l6ZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICZfX2NoZWNrYm94LWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogMC41ZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIG1hcmdpbjogMCAkYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfaXRlbS1nZW5lcmFsLWd1dHRlciAwIDA7XG4gICAgfVxuXG4gICAgJl9faXRlbS1kZXRhaWxzLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19pdGVtLWRldGFpbHMge1xuICAgICAgICBtYXJnaW46IDAgMCAwLjZlbTtcbiAgICAgICAgZm9udC1zaXplOiAkYnV5Ym94LXJlbGF0ZWQtcHJvZHVjdHNfaXRlbS1kZXRhaWxzLWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAmX19pdGVtLW5hbWUge1xuICAgICAgICAmLFxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRidXlib3gtcmVsYXRlZC1wcm9kdWN0c19pdGVtLWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtLWFjdGlvbnMge1xuICAgICAgICBtYXJnaW46IDAgMCAwICRidXlib3gtcmVsYXRlZC1wcm9kdWN0c19pdGVtLWdlbmVyYWwtZ3V0dGVyO1xuICAgIH1cblxuICAgICZfX2F0Yy1idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX2F0Yy1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX2F0Yy1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICBAaWYgJGJ1eWJveC1yZWxhdGVkLXByb2R1Y3RzX21ha2UtYXRjLWJ1dHRvbi1zbWFsbGVyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICAgICAgcGFkZGluZzogMC40ZW0gMC43ZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1mb3JtLCAuY3MtZm9ybV9fZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4uY3MtZm9ybV9fZmllbGQgKyAuY3MtZm9ybV9fZmllbGQge1xuICBtYXJnaW4tdG9wOiAxZW07IH1cblxuLmNzLWZvcm0tLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC42OyB9XG5cbi5jcy1mb3JtX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4uY3MtZm9ybV9fYnV0dG9uLCAuY3MtZm9ybV9fYnV0dG9uOnZpc2l0ZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gIC5jcy1mb3JtX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZm9ybV9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZvcm1fX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtZm9ybV9fYnV0dG9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZm9ybV9fYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtZm9ybV9fYnV0dG9uOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgLmNzLWZvcm1fX2J1dHRvbltkaXNhYmxlZF0sIC5jcy1mb3JtX19idXR0b246dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cblxuLmNzLWZvcm1fX2J1dHRvbi1zcGFuIHtcbiAgZm9udC1zaXplOiAxLjZyZW07IH1cblxuLmNzLWZvcm1fX2J1dHRvbi1pY29uIHtcbiAgbWF4LXdpZHRoOiAxZW07XG4gIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgei1pbmRleDogMjtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm9ybSxcbi5mb3JtIC5maWVsZHNldCB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG5cbi5mb3JtIC5maWVsZCArIC5maWVsZCB7XG4gIG1hcmdpbi10b3A6IDFlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRmb3JtX2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRmb3JtX2J1dHRvbi1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4uI3skbnN9Zm9ybSB7XG4gICAgJixcbiAgICAmX19maWVsZHNldCB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICZfX2ZpZWxkIHtcbiAgICAgICAgJiArICYge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRmb3JtX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkZm9ybV9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24tc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRmb3JtX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkZm9ybV9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRmb3JtX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkZm9ybV9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbi5mb3JtIHtcbiAgICAmLFxuICAgIC5maWVsZHNldCB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5maWVsZCB7XG4gICAgICAgICsgLmZpZWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWluZGljYXRvci1sb3ctc3RvY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogLTAuN3JlbSAwIDFyZW07XG4gIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBjb2xvcjogIzMyNGRjZjsgfVxuICAuY3MtaW5kaWNhdG9yLWxvdy1zdG9jazphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICByaWdodDogMS4zcmVtO1xuICAgIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29udGVudDogJyc7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHdpZHRoOiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNDAsIDI0MCwgMjQwLCAwKTtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZjBmMGYwO1xuICAgIGJvcmRlci13aWR0aDogMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTFyZW07IH1cbiAgLmNzLWluZGljYXRvci1sb3ctc3RvY2tfX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtaW5kaWNhdG9yLWxvdy1zdG9ja19faWNvbiB7XG4gICAgd2lkdGg6IDJlbTtcbiAgICBoZWlnaHQ6IDEuOGVtO1xuICAgIG1hcmdpbi1yaWdodDogMC43NWVtO1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICBhbmltYXRpb246IHJpbmdpbmcgNnMgaW5maW5pdGU7IH1cbiAgLmNzLWluZGljYXRvci1sb3ctc3RvY2tfX2xhYmVsIHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuQGtleWZyYW1lcyByaW5naW5nIHtcbiAgMCUsXG4gIDEyJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMGRlZyk7IH1cbiAgMyUsXG4gIDclIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMykgcm90YXRlKDI3ZGVnKTsgfVxuICA1JSxcbiAgOSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKSByb3RhdGUoLTI3ZGVnKTsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2luZGljYXRvcnMvbWl4aW5zJztcblxuJGluZGljYXRvci1sb3ctc3RvY2tfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJGluZGljYXRvci1sb3ctc3RvY2tfYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRpbmRpY2F0b3ItbG93LXN0b2NrX2NvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kaW5kaWNhdG9yLWxvdy1zdG9ja19wYWRkaW5nOiAwLjVlbSAhZGVmYXVsdDtcblxuJGluZGljYXRvci1sb3ctc3RvY2tfZGlzcGxheS10b3AtYXJyb3c6IHRydWUgIWRlZmF1bHQ7XG4kaW5kaWNhdG9yLWxvdy1zdG9ja190b3AtYXJyb3ctZnJvbS1yaWdodDogMS4zcmVtICFkZWZhdWx0O1xuJGluZGljYXRvci1sb3ctc3RvY2tfdG9wLWFycm93LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG5cbiRpbmRpY2F0b3ItbG93LXN0b2NrX2ljb24td2lkdGg6IDJlbSAhZGVmYXVsdDtcbiRpbmRpY2F0b3ItbG93LXN0b2NrX2ljb24taGVpZ2h0OiAkaW5kaWNhdG9yX2ljb24taGVpZ2h0ICFkZWZhdWx0OyAvLyB0YWtlbiBmcm9tIC4vbWl4aW5zLnNjc3NcbiRpbmRpY2F0b3ItbG93LXN0b2NrX2ljb24tZmlsbDogY3VycmVudENvbG9yICFkZWZhdWx0O1xuJGluZGljYXRvci1sb3ctc3RvY2tfaWNvbi1hcHBseS1yaW5naW5nLWFuaW1hdGlvbjogdHJ1ZSAhZGVmYXVsdDtcbiRpbmRpY2F0b3ItbG93LXN0b2NrX2ljb24tcmluZ2luZy1hbmltYXRpb24tcmVwZWF0OiA2cyAhZGVmYXVsdDtcblxuJGluZGljYXRvci1sb3ctc3RvY2tfbGFiZWwtbWFrZS1rZXl3b3Jkcy1ib2xkOiB0cnVlICFkZWZhdWx0O1xuJGluZGljYXRvci1sb3ctc3RvY2tfbGFiZWwta2V5d29yZHMtZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcblxuLiN7JG5zfWluZGljYXRvci1sb3ctc3RvY2sge1xuICAgICRyb290OiAmO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogLTAuN3JlbSAwIDFyZW07XG4gICAgYmFja2dyb3VuZDogJGluZGljYXRvci1sb3ctc3RvY2tfYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkaW5kaWNhdG9yLWxvdy1zdG9ja19ib3JkZXItcmFkaXVzO1xuICAgIHBhZGRpbmc6ICRpbmRpY2F0b3ItbG93LXN0b2NrX3BhZGRpbmc7XG4gICAgY29sb3I6ICRpbmRpY2F0b3ItbG93LXN0b2NrX2NvbG9yO1xuXG4gICAgQGlmICRpbmRpY2F0b3ItbG93LXN0b2NrX2Rpc3BsYXktdG9wLWFycm93IHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgICAgICByaWdodDogJGluZGljYXRvci1sb3ctc3RvY2tfdG9wLWFycm93LWZyb20tcmlnaHQ7XG4gICAgICAgICAgICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRpbmRpY2F0b3ItbG93LXN0b2NrX2JhY2tncm91bmQsIDApO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGluZGljYXRvci1sb3ctc3RvY2tfYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogJGluZGljYXRvci1sb3ctc3RvY2tfdG9wLWFycm93LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSN7JGluZGljYXRvci1sb3ctc3RvY2tfdG9wLWFycm93LXNpemV9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAkaW5kaWNhdG9yLWxvdy1zdG9ja19pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRpbmRpY2F0b3ItbG93LXN0b2NrX2ljb24taGVpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVlbTtcbiAgICAgICAgZmlsbDogJGluZGljYXRvci1sb3ctc3RvY2tfaWNvbi1maWxsO1xuXG4gICAgICAgIEBpZiAkaW5kaWNhdG9yLWxvdy1zdG9ja19pY29uLWFwcGx5LXJpbmdpbmctYW5pbWF0aW9uIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogcmluZ2luZ1xuICAgICAgICAgICAgICAgICRpbmRpY2F0b3ItbG93LXN0b2NrX2ljb24tcmluZ2luZy1hbmltYXRpb24tcmVwZWF0XG4gICAgICAgICAgICAgICAgaW5maW5pdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGluZGljYXRvci1sb3ctc3RvY2tfbGFiZWwtbWFrZS1rZXl3b3Jkcy1ib2xkIHtcbiAgICAgICAgJl9fbGFiZWwgc3BhbiB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGluZGljYXRvci1sb3ctc3RvY2tfbGFiZWwta2V5d29yZHMtZm9udC13ZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgcmluZ2luZyB7XG4gICAgMCUsXG4gICAgMTIlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMGRlZyk7XG4gICAgfVxuICAgIDMlLFxuICAgIDclIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpIHJvdGF0ZSgyN2RlZyk7XG4gICAgfVxuICAgIDUlLFxuICAgIDklIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpIHJvdGF0ZSgtMjdkZWcpO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWluZGljYXRvci1mYXN0LXNoaXBwaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgY29sb3I6ICMzN2I4NDE7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLWluZGljYXRvci1mYXN0LXNoaXBwaW5nOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbjogMCAwIDFyZW07IH1cbiAgLmNzLWluZGljYXRvci1mYXN0LXNoaXBwaW5nX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLWluZGljYXRvci1mYXN0LXNoaXBwaW5nX19lbGVtZW50IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLWluZGljYXRvci1mYXN0LXNoaXBwaW5nX19lbGVtZW50LS12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBjb2xvcjogIzM3Yjg0MTtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLWluZGljYXRvci1mYXN0LXNoaXBwaW5nX19pY29uIHtcbiAgICB3aWR0aDogMi40ZW07XG4gICAgaGVpZ2h0OiAxLjhlbTtcbiAgICBtYXJnaW46IDAgMXJlbSAwIDA7XG4gICAgZmlsbDogY3VycmVudENvbG9yOyB9XG4gICAgLmNzLWluZGljYXRvci1mYXN0LXNoaXBwaW5nX19pY29uICoge1xuICAgICAgZmlsbDogY3VycmVudENvbG9yOyB9XG4gIC5jcy1pbmRpY2F0b3ItZmFzdC1zaGlwcGluZ19faGVhZGxpbmUge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuICAuY3MtaW5kaWNhdG9yLWZhc3Qtc2hpcHBpbmdfX3RleHQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjODg4OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2luZGljYXRvcnMvbWl4aW5zJztcblxuJGluZGljYXRvci1mYXN0LXNoaXBwaW5nX2d1dHRlcjogMXJlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWluZGljYXRvci1mYXN0LXNoaXBwaW5nIHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpZiAkaW5kaWNhdG9yLWZhc3Qtc2hpcHBpbmdfZ3V0dGVyICE9IDAge1xuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgJGluZGljYXRvci1mYXN0LXNoaXBwaW5nX2d1dHRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGluZGljYXRvcigpO1xuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fZWxlbWVudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgJi0tdmlzaWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpbmRpY2F0b3IoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSBpbmRpY2F0b3ItaWNvbigpO1xuICAgIH1cblxuICAgICZfX2hlYWRsaW5lIHtcbiAgICAgICAgQGluY2x1ZGUgaW5kaWNhdG9yLWhlYWRsaW5lKCk7XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGluZGljYXRvci10ZXh0KCk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kaW5kaWNhdG9yX2Rpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kaW5kaWNhdG9yX2FsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG4kaW5kaWNhdG9yX2NvbG9yOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG4kaW5kaWNhdG9yX2ljb24td2lkdGg6IDIuNGVtICFkZWZhdWx0O1xuJGluZGljYXRvcl9pY29uLWhlaWdodDogMS44ZW0gIWRlZmF1bHQ7XG4kaW5kaWNhdG9yX2ljb24tbWFyZ2luOiAwIDFyZW0gMCAwICFkZWZhdWx0O1xuJGluZGljYXRvcl9pY29uLWZpbGw6IGN1cnJlbnRDb2xvciAhZGVmYXVsdDtcbiRpbmRpY2F0b3JfaGVhZGxpbmUtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcbiRpbmRpY2F0b3JfaGVhZGxpbmUtZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcbiRpbmRpY2F0b3JfaGVhZGxpbmUtY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG4kaW5kaWNhdG9yX3RleHQtZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG4kaW5kaWNhdG9yX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuQG1peGluIGluZGljYXRvciB7XG4gICAgZGlzcGxheTogJGluZGljYXRvcl9kaXNwbGF5O1xuICAgIGNvbG9yOiAkaW5kaWNhdG9yX2NvbG9yO1xuXG4gICAgQGlmICRpbmRpY2F0b3JfZGlzcGxheSA9PSBmbGV4IG9yICRpbmRpY2F0b3JfZGlzcGxheSA9PSBpbmxpbmUtZmxleCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiAkaW5kaWNhdG9yX2FsaWduLWl0ZW1zO1xuICAgIH1cbn1cblxuQG1peGluIGluZGljYXRvci1pY29uIHtcbiAgICB3aWR0aDogJGluZGljYXRvcl9pY29uLXdpZHRoO1xuICAgIGhlaWdodDogJGluZGljYXRvcl9pY29uLWhlaWdodDtcbiAgICBtYXJnaW46ICRpbmRpY2F0b3JfaWNvbi1tYXJnaW47XG4gICAgZmlsbDogJGluZGljYXRvcl9pY29uLWZpbGw7XG5cbiAgICAqIHtcbiAgICAgICAgZmlsbDogJGluZGljYXRvcl9pY29uLWZpbGw7XG4gICAgfVxufVxuXG5AbWl4aW4gaW5kaWNhdG9yLWhlYWRsaW5lIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGluZGljYXRvcl9oZWFkbGluZS10ZXh0LXRyYW5zZm9ybTtcbiAgICBmb250LXdlaWdodDogJGluZGljYXRvcl9oZWFkbGluZS1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGluZGljYXRvcl9oZWFkbGluZS1jb2xvcjtcbn1cblxuQG1peGluIGluZGljYXRvci10ZXh0IHtcbiAgICBkaXNwbGF5OiAkaW5kaWNhdG9yX3RleHQtZGlzcGxheTtcbiAgICBjb2xvcjogJGluZGljYXRvcl90ZXh0LWNvbG9yO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtaW5kaWNhdG9yLWZyZWUtc2hpcHBpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBjb2xvcjogIzM3Yjg0MTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtaW5kaWNhdG9yLWZyZWUtc2hpcHBpbmc6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuICAuY3MtaW5kaWNhdG9yLWZyZWUtc2hpcHBpbmdfX2ljb24ge1xuICAgIHdpZHRoOiAyLjRlbTtcbiAgICBoZWlnaHQ6IDEuOGVtO1xuICAgIG1hcmdpbjogMCAxcmVtIDAgMDtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cbiAgICAuY3MtaW5kaWNhdG9yLWZyZWUtc2hpcHBpbmdfX2ljb24gKiB7XG4gICAgICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cbiAgLmNzLWluZGljYXRvci1mcmVlLXNoaXBwaW5nX19oZWFkbGluZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2luZGljYXRvcnMvbWl4aW5zJztcblxuJGluZGljYXRvci1mcmVlLXNoaXBwaW5nX2d1dHRlcjogMXJlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWluZGljYXRvci1mcmVlLXNoaXBwaW5nIHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpZiAkaW5kaWNhdG9yLWZyZWUtc2hpcHBpbmdfZ3V0dGVyICE9IDAge1xuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgJGluZGljYXRvci1mcmVlLXNoaXBwaW5nX2d1dHRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGluZGljYXRvcigpO1xuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGluZGljYXRvci1pY29uKCk7XG4gICAgfVxuXG4gICAgJl9faGVhZGxpbmUge1xuICAgICAgICBAaW5jbHVkZSBpbmRpY2F0b3ItaGVhZGxpbmUoKTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1pbmRpY2F0b3ItcmVjZW50bHktYm91Z2h0Om5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW46IDAgMCAxcmVtOyB9XG5cbi5jcy1pbmRpY2F0b3ItcmVjZW50bHktYm91Z2h0X19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgY29sb3I6ICMzN2I4NDE7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLmNzLWluZGljYXRvci1yZWNlbnRseS1ib3VnaHRfX2ljb24ge1xuICB3aWR0aDogMi40ZW07XG4gIGhlaWdodDogMS44ZW07XG4gIG1hcmdpbjogMCAxcmVtIDAgMDtcbiAgZmlsbDogY3VycmVudENvbG9yOyB9XG4gIC5jcy1pbmRpY2F0b3ItcmVjZW50bHktYm91Z2h0X19pY29uICoge1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuXG4uY3MtaW5kaWNhdG9yLXJlY2VudGx5LWJvdWdodF9faGVhZGxpbmUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogaW5oZXJpdDsgfVxuXG4uY3MtaW5kaWNhdG9yLXJlY2VudGx5LWJvdWdodF9fdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogIzg4ODsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9pbmRpY2F0b3JzL21peGlucyc7XG5cbiRpbmRpY2F0b3ItcmVjZW50bHktYm91Z2h0X2d1dHRlcjogMXJlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWluZGljYXRvci1yZWNlbnRseS1ib3VnaHQge1xuICAgICRyb290OiAmO1xuXG4gICAgQGlmICRpbmRpY2F0b3ItcmVjZW50bHktYm91Z2h0X2d1dHRlciAhPSAwIHtcbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwICRpbmRpY2F0b3ItcmVjZW50bHktYm91Z2h0X2d1dHRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBpbmRpY2F0b3IoKTtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgaW5kaWNhdG9yLWljb24oKTtcbiAgICB9XG5cbiAgICAmX19oZWFkbGluZSB7XG4gICAgICAgIEBpbmNsdWRlIGluZGljYXRvci1oZWFkbGluZSgpO1xuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBAaW5jbHVkZSBpbmRpY2F0b3ItdGV4dCgpO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWluZGljYXRvci1leHAtZGVsaXZlcnkge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgY29sb3I6ICMzN2I4NDE7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLWluZGljYXRvci1leHAtZGVsaXZlcnk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuICAuY3MtaW5kaWNhdG9yLWV4cC1kZWxpdmVyeV9fZWxlbWVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1pbmRpY2F0b3ItZXhwLWRlbGl2ZXJ5X19lbGVtZW50LWljb24ge1xuICAgIHdpZHRoOiAyLjRlbTtcbiAgICBoZWlnaHQ6IDEuOGVtO1xuICAgIG1hcmdpbjogMCAxcmVtIDAgMDtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgIC5jcy1pbmRpY2F0b3ItZXhwLWRlbGl2ZXJ5X19lbGVtZW50LWljb24gKiB7XG4gICAgICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cbiAgLmNzLWluZGljYXRvci1leHAtZGVsaXZlcnlfX3RleHQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtaW5kaWNhdG9yLWV4cC1kZWxpdmVyeV9fdGV4dC0tdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAuY3MtaW5kaWNhdG9yLWV4cC1kZWxpdmVyeV9fdGV4dC0tZGF0ZSB7XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC5jcy1pbmRpY2F0b3ItZXhwLWRlbGl2ZXJ5X19wbGFjZWhvbGRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICM4ODg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbTsgfVxuICAgIC5jcy1pbmRpY2F0b3ItZXhwLWRlbGl2ZXJ5X19wbGFjZWhvbGRlci0taGlkZGVuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaW5kaWNhdG9ycy9taXhpbnMnO1xuXG4kaW5kaWNhdG9yLWV4cGVjdGVkLWRlbGl2ZXJ5X2d1dHRlcjogMXJlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWluZGljYXRvci1leHAtZGVsaXZlcnkge1xuICAgICRyb290OiAmO1xuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBpbmRpY2F0b3IoKTtcblxuICAgIEBpZiAkaW5kaWNhdG9yLWV4cGVjdGVkLWRlbGl2ZXJ5X2d1dHRlciAhPSAwIHtcbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwICRpbmRpY2F0b3ItZXhwZWN0ZWQtZGVsaXZlcnlfZ3V0dGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZWxlbWVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fZWxlbWVudC1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgaW5kaWNhdG9yLWljb24oKTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5kaWNhdG9yLXRleHQoKTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhdGUge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3BsYWNlaG9sZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaW5kaWNhdG9yLXRleHQoKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIGdyYWRpZW50LXNoYWRvdyBtaXhpbiBwcm92aWRlcyBncmFkaWVudCBzaGFkb3cgb24gZ2l2ZW4gcG9zaXRpb25cbiAqIEBwYXJhbSAkeCAtIHgtYXhpcyBwb3NpdGlvblxuICogQHBhcmFtICR5IC0geS1heGlzIHBvc2l0aW9uXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLmNzLXByb2R1Y3QtZ2FsbGVyeV9fbG9hZGluZy1tYXNrIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogc3RhdGljOyB9XG5cbi5jcy1wcm9kdWN0LWdhbGxlcnlfX3BsYWNlaG9sZGVyLWltYWdlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5jcy1wcm9kdWN0LWdhbGxlcnlfX3BsYWNlaG9sZGVyLWltZyB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDUwMHB4OyB9XG5cbi5jcy1wcm9kdWN0LWdhbGxlcnlfX2xvYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtcHJvZHVjdC1nYWxsZXJ5X19sb2FkZXIge1xuICAgICAgaGVpZ2h0OiA1MDBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH0gfVxuICAuY3MtcHJvZHVjdC1nYWxsZXJ5X19sb2FkZXIgc291cmNlLFxuICAuY3MtcHJvZHVjdC1nYWxsZXJ5X19sb2FkZXIgaW1nIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiA1MCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi5mb3RvcmFtYSB7XG4gIC8qKlxuICAgICAqIFN0YWdlIG5hdmlnYXRpb24gKGFycm93cylcbiAgICAgKi9cbiAgLyoqXG4gICAgICogVGh1bWJuYWlsc1xuICAgICAqL1xuICAvKipcbiAgICAgKiBUaHVtYm5haWxzIHNsaWRlclxuICAgICAqL1xuICAvKlxuICAgICAqIEJ1bGxldCBwYWdpbmF0aW9uIChkb3RzKVxuICAgICAqL1xuICAvKipcbiAgICAgKiBPdXIgY3VzdG9tIHNwaW5uZXJcbiAgICAgKi8gfVxuICAuZm90b3JhbWEgLmZvdG9yYW1hX19zdGFnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC40cmVtOyB9XG4gICAgLmZvdG9yYW1hIC5mb3RvcmFtYV9fc3RhZ2UuZm90b3JhbWFfX3NoYWRvd3MtLWxlZnQ6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjQpIDI1JSwgcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjUpIDc1JSwgdHJhbnNwYXJlbnQpLCByYWRpYWwtZ3JhZGllbnQoZmFydGhlc3Qtc2lkZSBhdCAwIDUwJSwgcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjcpLCB0cmFuc3BhcmVudCk7IH1cbiAgICAuZm90b3JhbWEgLmZvdG9yYW1hX19zdGFnZS5mb3RvcmFtYV9fc2hhZG93cy0tcmlnaHQ6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDI0MCwgMjQwLCAyNDAsIDAuNCkgMjUlLCByZ2JhKDI0MCwgMjQwLCAyNDAsIDAuNSkgNzUlLCB0cmFuc3BhcmVudCksIHJhZGlhbC1ncmFkaWVudChmYXJ0aGVzdC1zaWRlIGF0IDEwMCUgNTAlLCByZ2JhKDI0MCwgMjQwLCAyNDAsIDAuNyksIHRyYW5zcGFyZW50KTsgfVxuICAuZm90b3JhbWEgLmZvdG9yYW1hX19hcnIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHdpZHRoOiA0LjJyZW07XG4gICAgaGVpZ2h0OiA1LjRyZW07XG4gICAgdG9wOiA1MCU7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IC0yLjdyZW07IH1cbiAgICAuZm90b3JhbWEgLmZvdG9yYW1hX19hcnI6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7IH1cbiAgICAuZm90b3JhbWEgLmZvdG9yYW1hX19hcnIgLmZvdG9yYW1hX19hcnJfX2FyciB7XG4gICAgICB3aWR0aDogMS40cmVtO1xuICAgICAgaGVpZ2h0OiAyLjdyZW07IH1cbiAgICAuZm90b3JhbWEgLmZvdG9yYW1hX19hcnItLXByZXYgLmZvdG9yYW1hX19hcnJfX2FyciwgLmZvdG9yYW1hIC5mb3RvcmFtYV9fYXJyLS1uZXh0IC5mb3RvcmFtYV9fYXJyX19hcnIge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlOyB9XG4gICAgLmZvdG9yYW1hIC5mb3RvcmFtYV9fYXJyLS1wcmV2IC5mb3RvcmFtYV9fYXJyX19hcnIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2ZvdG9yYW1hL2ZvdG9yYW1hLWFycm93LXByZXYuc3ZnXCIpOyB9XG4gICAgLmZvdG9yYW1hIC5mb3RvcmFtYV9fYXJyLS1uZXh0IC5mb3RvcmFtYV9fYXJyX19hcnIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2ZvdG9yYW1hL2ZvdG9yYW1hLWFycm93LW5leHQuc3ZnXCIpOyB9XG4gIC5mb3RvcmFtYSAuZm90b3JhbWFfX25hdi13cmFwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmZvdG9yYW1hIC5mb3RvcmFtYV9fbmF2LS10aHVtYnMgLmZvdG9yYW1hX19uYXZfX2ZyYW1lIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAgIC5mb3RvcmFtYSAuZm90b3JhbWFfX25hdi0tdGh1bWJzIC5mb3RvcmFtYV9fbmF2X19mcmFtZTpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuICAuZm90b3JhbWEgLmZvdG9yYW1hX19uYXZfX2ZyYW1lLS10aHVtYiB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbjogMC40cmVtOyB9XG4gICAgLmZvdG9yYW1hIC5mb3RvcmFtYV9fbmF2X19mcmFtZS0tdGh1bWI6bm90KC5mb3RvcmFtYV9fYWN0aXZlKTpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICM4ODg7IH1cbiAgICAuZm90b3JhbWEgLmZvdG9yYW1hX19uYXZfX2ZyYW1lLS10aHVtYi5mb3RvcmFtYV9fYWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzMyNGRjZjsgfVxuICAuZm90b3JhbWEgLmZvdG9yYW1hX190aHVtYiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2ZvdG9yYW1hL2ZvdG9yYW1hLXNwaW5uZXIuc3ZnXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogNTAlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTsgfVxuICAgIC5mb3RvcmFtYSAuZm90b3JhbWFfX3RodW1iLmZvdG9yYW1hX19sb2FkZWQtLWltZyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyB9XG4gIC5mb3RvcmFtYSAuZm90b3JhbWFfX3RodW1iLWJvcmRlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuZm90b3JhbWEgLmZvdG9yYW1hX190aHVtYl9fYXJyIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDsgfVxuICAgIC5mb3RvcmFtYSAuZm90b3JhbWFfX3RodW1iX19hcnIsIC5mb3RvcmFtYSAuZm90b3JhbWFfX3RodW1iX19hcnI6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxcmVtIDFyZW07XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5mb3RvcmFtYSAuZm90b3JhbWFfX3RodW1iX19hcnI6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gICAgICBjb2xvcjogI2YwZjBmMDsgfVxuICAgIC5mb3RvcmFtYSAuZm90b3JhbWFfX3RodW1iX19hcnIuZm90b3JhbWFfX2Fyci0tZGlzYWJsZWQsIC5mb3RvcmFtYSAuZm90b3JhbWFfX3RodW1iX19hcnItLWRpc2FibGVkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgIC5mb3RvcmFtYSAuZm90b3JhbWFfX3RodW1iX19hcnIgLmZvdG9yYW1hX190aHVtYi0taWNvbiB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgd2lkdGg6IDEuNHJlbSAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiAyLjdyZW07IH1cbiAgICAuZm90b3JhbWEgLmZvdG9yYW1hX190aHVtYl9fYXJyLS1sZWZ0IC5mb3RvcmFtYV9fdGh1bWItLWljb24sIC5mb3RvcmFtYSAuZm90b3JhbWFfX3RodW1iX19hcnItLXJpZ2h0IC5mb3RvcmFtYV9fdGh1bWItLWljb24ge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlOyB9XG4gICAgLmZvdG9yYW1hIC5mb3RvcmFtYV9fdGh1bWJfX2Fyci0tbGVmdCAuZm90b3JhbWFfX3RodW1iLS1pY29uIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3RvcmFtYS9mb3RvcmFtYS1hcnJvdy1wcmV2LnN2Z1wiKTsgfVxuICAgIC5mb3RvcmFtYSAuZm90b3JhbWFfX3RodW1iX19hcnItLXJpZ2h0IC5mb3RvcmFtYV9fdGh1bWItLWljb24ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2ZvdG9yYW1hL2ZvdG9yYW1hLWFycm93LW5leHQuc3ZnXCIpOyB9XG4gIC5mb3RvcmFtYSAuZm90b3JhbWFfX25hdi0tZG90cyAuZm90b3JhbWFfX25hdl9fc2hhZnQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwIDA7XG4gICAgbWluLWhlaWdodDogM3JlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIHotaW5kZXg6IDIwMDsgfVxuICAgIC5mb3RvcmFtYSAuZm90b3JhbWFfX25hdi0tZG90cyAuZm90b3JhbWFfX25hdl9fc2hhZnQtLWhpZGRlbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5mb3RvcmFtYSAuZm90b3JhbWFfX25hdi0tZG90cyAuZm90b3JhbWFfX25hdl9fZnJhbWUtLWRvdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMC40cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgIHdpZHRoOiAyLjJyZW07XG4gICAgaGVpZ2h0OiAwLjlyZW07XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsgfVxuICAgIC5mb3RvcmFtYSAuZm90b3JhbWFfX25hdi0tZG90cyAuZm90b3JhbWFfX25hdl9fZnJhbWUtLWRvdDpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZGNkY2RjOyB9XG4gICAgLmZvdG9yYW1hIC5mb3RvcmFtYV9fbmF2LS1kb3RzIC5mb3RvcmFtYV9fbmF2X19mcmFtZS0tZG90LmZvdG9yYW1hX19hY3RpdmUsIC5mb3RvcmFtYSAuZm90b3JhbWFfX25hdi0tZG90cyAuZm90b3JhbWFfX25hdl9fZnJhbWUtLWRvdC5mb3RvcmFtYV9fYWN0aXZlOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZWQ0MDA7IH1cbiAgLmZvdG9yYW1hIC5mb3RvcmFtYV9fZG90IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmZvdG9yYW1hIC5mb3RvcmFtYS1ncmFiLWN1cnNvcixcbiAgLmZvdG9yYW1hIC5mb3RvcmFtYV9fd3JhcCAuZm90b3JhbWFfX2dyYWIge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuZm90b3JhbWEgLmZvdG9yYW1hX19zcGlubmVyIHtcbiAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm90b3JhbWEvZm90b3JhbWEtc3Bpbm5lci5zdmdcIik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4OyB9XG4gIC5mb3RvcmFtYTpub3QoLmZvdG9yYW1hLS1mdWxsc2NyZWVuKSAuZm90b3JhbWFfX25hdiB7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmZvdG9yYW1hOm5vdCguZm90b3JhbWEtLWZ1bGxzY3JlZW4pIC5mb3RvcmFtYV9fbmF2LXdyYXAge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC40cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTAuNHJlbTsgfVxuICAgIC5mb3RvcmFtYTpub3QoLmZvdG9yYW1hLS1mdWxsc2NyZWVuKSAuZm90b3JhbWFfX25hdi13cmFwLS1ob3Jpem9udGFsIC5mb3RvcmFtYV9fbmF2IHtcbiAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG4gICAgLmZvdG9yYW1hOm5vdCguZm90b3JhbWEtLWZ1bGxzY3JlZW4pIC5mb3RvcmFtYV9fbmF2LXdyYXAtLWhvcml6b250YWwgLmZvdG9yYW1hX190aHVtYl9fYXJyIHtcbiAgICAgIHdpZHRoOiAzcmVtOyB9XG4gIC5mb3RvcmFtYTpub3QoLmZvdG9yYW1hLS1mdWxsc2NyZWVuKSAuZm90b3JhbWFfX25hdl9fc2hhZnQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5mb3RvcmFtYTpub3QoLmZvdG9yYW1hLS1mdWxsc2NyZWVuKSAuZm90b3JhbWFfX25hdl9fc2hhZnQuZm90b3JhbWFfX2dyYWIge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qXG4qIFN0eWxlcyBvbmx5IGZvciBmdWxsc2NyZWVlblxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG4uZm90b3JhbWEuZm90b3JhbWEtLWZ1bGxzY3JlZW4gLmZvdG9yYW1hX19zdGFnZSB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjhyZW07IH1cblxuLmZvdG9yYW1hLmZvdG9yYW1hLS1mdWxsc2NyZWVuIC5mb3RvcmFtYV9fbmF2X19mcmFtZS0tdGh1bWIge1xuICBtYXJnaW46IDAgMC40cmVtOyB9XG5cbi5mb3RvcmFtYS5mb3RvcmFtYS0tZnVsbHNjcmVlbiAuZm90b3JhbWFfX25hdiB7XG4gIHBhZGRpbmctbGVmdDogY2FsYygwLjhyZW0gLyAyICsgMnB4KTtcbiAgcGFkZGluZy1yaWdodDogY2FsYygwLjhyZW0gLyAyICsgMnB4KTsgfVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uZm90b3JhbWFfX25hdi0tZG90cyAuZm90b3JhbWFfX25hdl9fZnJhbWUtLWRvdCB7XG4gIHdpZHRoOiAwLjhyZW0gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAwLjhyZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogNXB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cbiAgLmZvdG9yYW1hX19uYXYtLWRvdHMgLmZvdG9yYW1hX19uYXZfX2ZyYW1lLS1kb3QgPiBkaXYge1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMXJlbSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNkNWQ1ZDUgIWltcG9ydGFudDtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLmZvdG9yYW1hX19uYXYtLWRvdHMgLmZvdG9yYW1hX19uYXZfX2ZyYW1lLS1kb3QuZm90b3JhbWFfX2FjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogI2MxMjcyZiAhaW1wb3J0YW50OyB9XG4gICAgLmZvdG9yYW1hX19uYXYtLWRvdHMgLmZvdG9yYW1hX19uYXZfX2ZyYW1lLS1kb3QuZm90b3JhbWFfX2FjdGl2ZSA+IGRpdiB7XG4gICAgICBiYWNrZ3JvdW5kOiAjYzEyNzJmICFpbXBvcnRhbnQ7IH1cbiIsIi8qKlxuICogZ3JhZGllbnQtc2hhZG93IG1peGluIHByb3ZpZGVzIGdyYWRpZW50IHNoYWRvdyBvbiBnaXZlbiBwb3NpdGlvblxuICogQHBhcmFtICR4IC0geC1heGlzIHBvc2l0aW9uXG4gKiBAcGFyYW0gJHkgLSB5LWF4aXMgcG9zaXRpb25cbiAqL1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbiRncmFkaWVudC1zaGFkb3ctYmFzZS1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtNTAwO1xuXG5AbWl4aW4gZ3JhZGllbnQtc2hhZG93KCR4LCAkeSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIHRyYW5zcGFyZW50LFxuICAgICAgICAgICAgcmdiYSgkZ3JhZGllbnQtc2hhZG93LWJhc2UtY29sb3IsIDAuNCkgMjUlLFxuICAgICAgICAgICAgcmdiYSgkZ3JhZGllbnQtc2hhZG93LWJhc2UtY29sb3IsIDAuNSkgNzUlLFxuICAgICAgICAgICAgdHJhbnNwYXJlbnRcbiAgICAgICAgKSxcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICAgICAgZmFydGhlc3Qtc2lkZSBhdCAkeCAkeSxcbiAgICAgICAgICAgIHJnYmEoJGdyYWRpZW50LXNoYWRvdy1iYXNlLWNvbG9yLCAwLjcpLFxuICAgICAgICAgICAgdHJhbnNwYXJlbnRcbiAgICAgICAgKTtcbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5cbkBtaXhpbiBidWxsZXQtcGFnaW5hdGlvbi1saXN0LWhvb2soKSB7XG59XG5cbkBtaXhpbiBidWxsZXQtcGFnaW5hdGlvbi1pdGVtLWhvb2soKSB7XG59XG5cbkBtaXhpbiBidWxsZXQtcGFnaW5hdGlvbi1pdGVtLS1hY3RpdmUtaG9vaygpIHtcbn1cblxuQG1peGluIGJ1bGxldC1wYWdpbmF0aW9uLWJ1dHRvbi1ob29rKCkge1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9kdWN0LWdhbGxlcnkvbWl4aW5zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGVhc2VyL21peGlucy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbiRwcm9kdWN0LWdhbGxlcnlfYmFzZS1pbWFnZS1kYXRhOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgbWVkaWEsXG4gICAgaW1hZ2VzLFxuICAgIGltYWdlLFxuICAgIHByb2R1Y3RfcGFnZV9pbWFnZV9tZWRpdW1fbm9fZnJhbWVcbikgIWRlZmF1bHQ7XG4kcHJvZHVjdC1nYWxsZXJ5X2RhdGE6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2F0YWxvZyxcbiAgICBnYWxsZXJ5XG4pICFkZWZhdWx0O1xuJHByb2R1Y3QtZ2FsbGVyeV9zY2VuZS1tYXgtaGVpZ2h0OiAje21hcC1nZXQoJHByb2R1Y3QtZ2FsbGVyeV9kYXRhLCBtYXhoZWlnaHQpfSAhZGVmYXVsdDtcbiRwcm9kdWN0LWdhbGxlcnlfaW1hZ2UtbWF4LWhlaWdodDogI3ttYXAtZ2V0KFxuICAgICAgICAkcHJvZHVjdC1nYWxsZXJ5X2Jhc2UtaW1hZ2UtZGF0YSxcbiAgICAgICAgbWF4aGVpZ2h0XG4gICAgKX0gIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWdhbGxlcnlfbmF2LWFycm93cy1zaG93OiB0cnVlICFkZWZhdWx0O1xuJHByb2R1Y3QtZ2FsbGVyeV9uYXYtYXJyb3ctd3JhcHBlci1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRwcm9kdWN0LWdhbGxlcnlfbmF2LWFycm93LXdyYXBwZXItLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC1nYWxsZXJ5X25hdi1hcnJvdy13aWR0aDogMS40cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtZ2FsbGVyeV9uYXYtYXJyb3ctaGVpZ2h0OiAyLjdyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC1nYWxsZXJ5X25hdi1hcnJvdy13cmFwcGVyLXdpZHRoOiAzICogJHByb2R1Y3QtZ2FsbGVyeV9uYXYtYXJyb3ctd2lkdGggIWRlZmF1bHQ7XG4kcHJvZHVjdC1nYWxsZXJ5X25hdi1hcnJvdy13cmFwcGVyLWhlaWdodDogMiAqICRwcm9kdWN0LWdhbGxlcnlfbmF2LWFycm93LWhlaWdodCAhZGVmYXVsdDtcbiRwcm9kdWN0LWdhbGxlcnlfbmF2LWFycm93LS1wcmV2LXVybDogJy4uL2ltYWdlcy9pY29ucy9mb3RvcmFtYS9mb3RvcmFtYS1hcnJvdy1wcmV2LnN2ZycgIWRlZmF1bHQ7XG4kcHJvZHVjdC1nYWxsZXJ5X25hdi1hcnJvdy0tbmV4dC11cmw6ICcuLi9pbWFnZXMvaWNvbnMvZm90b3JhbWEvZm90b3JhbWEtYXJyb3ctbmV4dC5zdmcnICFkZWZhdWx0O1xuXG4vLyBUaHVtYm5haWxzXG4kcHJvZHVjdC1nYWxsZXJ5X3RodW1icy1ndXR0ZXI6IDAuOHJlbSAhZGVmYXVsdDsgLy8gdXNlIHJlbS9weCBhcyBmb250LXNpemUgaXMgc2V0IHRvIDAgYnkgZm90b3JhbWEuIERvbid0IGV4Y2VlZCAyMDAlIG9mICRwYWdlLWd1dHRlciB2YWx1ZSBvciBob3Jpem9udGFsIHNjcm9sbGJhciB3aWxsIGFwcGVhci5cbiRwcm9kdWN0LWdhbGxlcnlfdGh1bWItYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC1nYWxsZXJ5X3RodW1iLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC1nYWxsZXJ5X3RodW1iLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC1nYWxsZXJ5X3RodW1iLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LWdhbGxlcnlfdGh1bWItLWhvdmVyLWJvcmRlci1jb2xvcjogJGNvbG9yX2JvcmRlci03MDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC1nYWxsZXJ5X3RodW1iLS1hY3RpdmUtYm9yZGVyLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG5cbi8vIFRodW1ibmFpbHMgYXJyb3cgKHNsaWRlcilcbiRwcm9kdWN0LWdhbGxlcnlfc2hvdy10aHVtYi1hcnJvd3M6IGZhbHNlICFkZWZhdWx0OyAvLyBEb2VzIG5vdCBhcHBseSBmb3IgZnVsbHNjcmVlbiBtb2RlXG4kcHJvZHVjdC1nYWxsZXJ5X3RodW1iLWFycm93LXdyYXBwZXItd2lkdGg6IDNyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC1nYWxsZXJ5X3RodW1iLWFycm93LXdyYXBwZXItYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHByb2R1Y3QtZ2FsbGVyeV90aHVtYi1hcnJvdy13cmFwcGVyLS1hY3RpdmUtYmFja2dyb3VuZDogJHByb2R1Y3QtZ2FsbGVyeV9uYXYtYXJyb3ctd3JhcHBlci0tYWN0aXZlLWJhY2tncm91bmQtY29sb3IgIWRlZmF1bHQ7XG4kcHJvZHVjdC1nYWxsZXJ5X3RodW1iLWFycm93LXdyYXBwZXItYm94LXNoYWRvdy1zaXplOiAwIDAgMXJlbSAxcmVtICFkZWZhdWx0OyAvLyBjb2xvciBpcyBpbmhlcml0ZWQgZnJvbSBiYWNrZ3JvdW5kXG4kcHJvZHVjdC1nYWxsZXJ5X3RodW1iLWFycm93LXdpZHRoOiAkcHJvZHVjdC1nYWxsZXJ5X25hdi1hcnJvdy13aWR0aCAhZGVmYXVsdDtcbiRwcm9kdWN0LWdhbGxlcnlfdGh1bWItYXJyb3ctaGVpZ2h0OiAkcHJvZHVjdC1nYWxsZXJ5X25hdi1hcnJvdy1oZWlnaHQgIWRlZmF1bHQ7XG4kcHJvZHVjdC1nYWxsZXJ5X3RodW1iLWFycm93LS1wcmV2LXVybDogJHByb2R1Y3QtZ2FsbGVyeV9uYXYtYXJyb3ctLXByZXYtdXJsICFkZWZhdWx0O1xuJHByb2R1Y3QtZ2FsbGVyeV90aHVtYi1hcnJvdy0tbmV4dC11cmw6ICRwcm9kdWN0LWdhbGxlcnlfbmF2LWFycm93LS1uZXh0LXVybCAhZGVmYXVsdDtcblxuLy8gU3Bpbm5lclxuJHByb2R1Y3QtZ2FsbGVyeV9zcGlubmVyLWltYWdlLXVybDogJy4uL2ltYWdlcy9pY29ucy9mb3RvcmFtYS9mb3RvcmFtYS1zcGlubmVyLnN2ZycgIWRlZmF1bHQ7XG4kcHJvZHVjdC1nYWxsZXJ5X3NwaW5uZXItYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHByb2R1Y3QtZ2FsbGVyeV9zcGlubmVyLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG5cbi4jeyRuc31wcm9kdWN0LWdhbGxlcnkge1xuICAgICZfX2xvYWRpbmctbWFzayB7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsgLy8gb3ZlcnJpZGVzIGRlZXAgY2FzY2FkZVxuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIH1cblxuICAgICZfX3BsYWNlaG9sZGVyLWltYWdlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3BsYWNlaG9sZGVyLWltZyB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1heC1oZWlnaHQ6ICRwcm9kdWN0LWdhbGxlcnlfc2NlbmUtbWF4LWhlaWdodDtcbiAgICB9XG5cbiAgICAmX19sb2FkZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtZ2FsbGVyeV9zY2VuZS1tYXgtaGVpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsgLy8gb3ZlcnJpZGVzIGlubGluZSBzdHlsZVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2VudGVyIHBsYWNlaG9sZGVyIGltYWdlXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAkcHJvZHVjdC1nYWxsZXJ5X2ltYWdlLW1heC1oZWlnaHQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEV4aXRpbmcgZnJvbSBjb21wb25lbnQgdG8gYXBwbHkgc3R5bGluZyBhbHNvIGZvciBmdWxsc2NyZWVuIG1vZGVcbi5mb3RvcmFtYSB7XG4gICAgLmZvdG9yYW1hX19zdGFnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWdhbGxlcnlfdGh1bWJzLWd1dHRlciAvIDI7XG5cbiAgICAgICAgLy8gRm90b3JhbWEgcHJvdmlkZXMgc2hhZG93IGJvdW5kcyBpbmRpY2F0b3JzIHdoaWxlIHN3aXBpbmcgZ2FsbGVyeSBsZWZ0L3JpZ2h0LiBXZSBjdXN0b21pemUgY29sb3JzIGEgYml0XG4gICAgICAgICYuZm90b3JhbWFfX3NoYWRvd3MtLWxlZnQ6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyYWRpZW50LXNoYWRvdygwLCA1MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5mb3RvcmFtYV9fc2hhZG93cy0tcmlnaHQ6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtc2hhZG93KDEwMCUsIDUwJSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdGFnZSBuYXZpZ2F0aW9uIChhcnJvd3MpXG4gICAgICovXG4gICAgLy8gQXJyb3cgd3JhcHBlclxuICAgIC5mb3RvcmFtYV9fYXJyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2R1Y3QtZ2FsbGVyeV9uYXYtYXJyb3ctd3JhcHBlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtZ2FsbGVyeV9uYXYtYXJyb3ctd3JhcHBlci13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1nYWxsZXJ5X25hdi1hcnJvdy13cmFwcGVyLWhlaWdodDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogLSN7JHByb2R1Y3QtZ2FsbGVyeV9uYXYtYXJyb3ctd3JhcHBlci1oZWlnaHQgLyAyfTtcblxuICAgICAgICBAaWYgJHByb2R1Y3QtZ2FsbGVyeV9uYXYtYXJyb3dzLXNob3cgPT0gZmFsc2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2R1Y3QtZ2FsbGVyeV9uYXYtYXJyb3ctd3JhcHBlci0tYWN0aXZlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcnJvdy4gTmVzdGVkIHRvIGhhbmRsZSBmb3RvcmFtYXMnIGNhc2NhZGVcbiAgICAgICAgLmZvdG9yYW1hX19hcnJfX2FyciB7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtZ2FsbGVyeV9uYXYtYXJyb3ctd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWdhbGxlcnlfbmF2LWFycm93LWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXByZXYsXG4gICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgLmZvdG9yYW1hX19hcnJfX2FyciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgLmZvdG9yYW1hX19hcnJfX2FyciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCRwcm9kdWN0LWdhbGxlcnlfbmF2LWFycm93LS1wcmV2LXVybCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgIC5mb3RvcmFtYV9fYXJyX19hcnIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkcHJvZHVjdC1nYWxsZXJ5X25hdi1hcnJvdy0tbmV4dC11cmwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGh1bWJuYWlsc1xuICAgICAqL1xuICAgIC5mb3RvcmFtYV9fbmF2LXdyYXAge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IC8vIGFsaWduIGV2ZXJ5dGhpbmcgdG8gY2VudGVyXG4gICAgfVxuXG4gICAgLy8gU2luZ2xlIHRodW1ibmFpbCB3cmFwcGVyXG4gICAgLmZvdG9yYW1hX19uYXYtLXRodW1icyAuZm90b3JhbWFfX25hdl9fZnJhbWUge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwcm9kdWN0LWdhbGxlcnlfdGh1bWItcGFkZGluZyAhaW1wb3J0YW50O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcHJvZHVjdC1nYWxsZXJ5X3RodW1iLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb3RvcmFtYV9fbmF2X19mcmFtZS0tdGh1bWIge1xuICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdC1nYWxsZXJ5X3RodW1iLXBhZGRpbmcgIWltcG9ydGFudDsgLy8gb3ZlcnJpZGVzIGRlZXAgY2FzY2FkZVxuICAgICAgICBib3JkZXI6ICRwcm9kdWN0LWdhbGxlcnlfdGh1bWItYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZHVjdC1nYWxsZXJ5X3RodW1iLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgQGlmICRwcm9kdWN0LWdhbGxlcnlfdGh1bWJzLWd1dHRlciAhPSAwIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtZ2FsbGVyeV90aHVtYnMtZ3V0dGVyIC8gMjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5mb3RvcmFtYV9fYWN0aXZlKTpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcm9kdWN0LWdhbGxlcnlfdGh1bWItLWhvdmVyLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtZ2FsbGVyeV90aHVtYi1wYWRkaW5nICE9IDApIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFjdGl2ZSB0aHVtYm5haWxcbiAgICAgICAgJi5mb3RvcmFtYV9fYWN0aXZlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByb2R1Y3QtZ2FsbGVyeV90aHVtYi0tYWN0aXZlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb3RvcmFtYV9fdGh1bWIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9kdWN0LWdhbGxlcnlfdGh1bWItYmFja2dyb3VuZDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCRwcm9kdWN0LWdhbGxlcnlfc3Bpbm5lci1pbWFnZS11cmwpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcblxuICAgICAgICAmLmZvdG9yYW1hX19sb2FkZWQtLWltZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSGlkZSBhY3RpdmUgdGh1bWJuYWlsIGZsb2F0aW5nIGJvcmRlclxuICAgIC5mb3RvcmFtYV9fdGh1bWItYm9yZGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaHVtYm5haWxzIHNsaWRlclxuICAgICAqL1xuXG4gICAgLy8gQXJyb3cncyB3cmFwcGVyXG4gICAgLmZvdG9yYW1hX190aHVtYl9fYXJyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJvZHVjdC1nYWxsZXJ5X3RodW1iLWFycm93LXdyYXBwZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRwcm9kdWN0LWdhbGxlcnlfdGh1bWItYXJyb3ctd3JhcHBlci1ib3gtc2hhZG93LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtZ2FsbGVyeV90aHVtYi1hcnJvdy13cmFwcGVyLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJvZHVjdC1nYWxsZXJ5X3RodW1iLWFycm93LXdyYXBwZXItLWFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LWdhbGxlcnlfdGh1bWItYXJyb3ctd3JhcHBlci0tYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLmZvdG9yYW1hX19hcnItLWRpc2FibGVkLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IC8vIGhpZGUgYXJyb3dzIHdoZW4gbm90IG5lZWRlZCwgb3ZlcnJpZGVzIGlubGluZSBzdHlsZVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXJyb3dcbiAgICAgICAgLmZvdG9yYW1hX190aHVtYi0taWNvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWdhbGxlcnlfdGh1bWItYXJyb3ctd2lkdGggIWltcG9ydGFudDsgLy8gb3ZlcnJpZGVzIGRlZXAgY2FzY2FkZVxuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1nYWxsZXJ5X3RodW1iLWFycm93LWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxlZnQsXG4gICAgICAgICYtLXJpZ2h0IHtcbiAgICAgICAgICAgIC5mb3RvcmFtYV9fdGh1bWItLWljb24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sZWZ0IHtcbiAgICAgICAgICAgIC5mb3RvcmFtYV9fdGh1bWItLWljb24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkcHJvZHVjdC1nYWxsZXJ5X3RodW1iLWFycm93LS1wcmV2LXVybCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yaWdodCB7XG4gICAgICAgICAgICAuZm90b3JhbWFfX3RodW1iLS1pY29uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHByb2R1Y3QtZ2FsbGVyeV90aHVtYi1hcnJvdy0tbmV4dC11cmwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBCdWxsZXQgcGFnaW5hdGlvbiAoZG90cylcbiAgICAgKi9cbiAgICAvLyBCdWxsZXRzIHdyYXBwZXJcbiAgICAuZm90b3JhbWFfX25hdi0tZG90cyAuZm90b3JhbWFfX25hdl9fc2hhZnQge1xuICAgICAgICBAaW5jbHVkZSBidWxsZXQtcGFnaW5hdGlvbi1saXN0KCk7XG4gICAgfVxuXG4gICAgLy8gU2luZ2xlIGRvdCB3cmFwcGVyXG4gICAgLmZvdG9yYW1hX19uYXYtLWRvdHMgLmZvdG9yYW1hX19uYXZfX2ZyYW1lLS1kb3Qge1xuICAgICAgICBAaW5jbHVkZSBidWxsZXQtcGFnaW5hdGlvbi1pdGVtKCk7XG5cbiAgICAgICAgJi5mb3RvcmFtYV9fYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1bGxldC1wYWdpbmF0aW9uLWl0ZW0tLWFjdGl2ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZvdG9yYW1hX19kb3Qge1xuICAgICAgICBAaW5jbHVkZSBidWxsZXQtcGFnaW5hdGlvbi1idXR0b24oKTtcbiAgICB9XG5cbiAgICAuZm90b3JhbWEtZ3JhYi1jdXJzb3IsXG4gICAgLmZvdG9yYW1hX193cmFwIC5mb3RvcmFtYV9fZ3JhYiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjsgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGdyYWIgYW5kIG1vdmUgZ2FsbGVyeSBiZWNhdXNlIGluIGV2ZXJ5IGNhc2UgZnVsbHNjcmVlbiBpcyBvcGVuZWRcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPdXIgY3VzdG9tIHNwaW5uZXJcbiAgICAgKi9cbiAgICAuZm90b3JhbWFfX3NwaW5uZXIge1xuICAgICAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsgLy8gb3ZlcnJpZGVzIGRlZXAgY2FzY2FkZVxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHByb2R1Y3QtZ2FsbGVyeV9zcGlubmVyLWltYWdlLXVybCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9kdWN0LWdhbGxlcnlfc3Bpbm5lci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZHVjdC1nYWxsZXJ5X3NwaW5uZXItYm9yZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICAvLyBUaHVtYm5haWxzL0RvdHMgd3JhcHBlclxuICAgICY6bm90KC5mb3RvcmFtYS0tZnVsbHNjcmVlbikge1xuICAgICAgICAvLyBUaHVtYm5haWxzL0RvdHMgbGlzdFxuICAgICAgICAuZm90b3JhbWFfX25hdiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OyAvLyBvdmVycmlkZXMgaW5saW5lIHN0eWxlXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8vIG1ha2VzIHN1cmUgaXQncyBub3QgMTAwJSB3aWR0aFxuICAgICAgICB9XG5cbiAgICAgICAgLmZvdG9yYW1hX19uYXYtd3JhcCB7XG4gICAgICAgICAgICBAaWYgJHByb2R1Y3QtZ2FsbGVyeV90aHVtYnMtZ3V0dGVyICE9IDAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtI3skcHJvZHVjdC1nYWxsZXJ5X3RodW1icy1ndXR0ZXIgLyAyfTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0jeyRwcm9kdWN0LWdhbGxlcnlfdGh1bWJzLWd1dHRlciAvIDJ9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgICAgICAvLyBUaHVtYm5haWxzL0RvdHMgbGlzdFxuICAgICAgICAgICAgICAgIC5mb3RvcmFtYV9fbmF2IHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IC8vIG92ZXJyaWRlcyBpbmxpbmUgc3R5bGVcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBBcnJvdydzIHdyYXBwZXJcbiAgICAgICAgICAgICAgICAuZm90b3JhbWFfX3RodW1iX19hcnIge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtZ2FsbGVyeV90aHVtYi1hcnJvdy13cmFwcGVyLXdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3RvcmFtYV9fbmF2X19zaGFmdCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICYuZm90b3JhbWFfX2dyYWIge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLypcbiogU3R5bGVzIG9ubHkgZm9yIGZ1bGxzY3JlZWVuXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbi5mb3RvcmFtYS5mb3RvcmFtYS0tZnVsbHNjcmVlbiB7XG4gICAgLmZvdG9yYW1hX19zdGFnZSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkcHJvZHVjdC1nYWxsZXJ5X3RodW1icy1ndXR0ZXI7XG4gICAgfVxuXG4gICAgLmZvdG9yYW1hX19uYXZfX2ZyYW1lLS10aHVtYiB7XG4gICAgICAgIEBpZiAkcHJvZHVjdC1nYWxsZXJ5X3RodW1icy1ndXR0ZXIgIT0gMCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgJHByb2R1Y3QtZ2FsbGVyeV90aHVtYnMtZ3V0dGVyIC8gMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb3RvcmFtYV9fbmF2IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKCN7JHByb2R1Y3QtZ2FsbGVyeV90aHVtYnMtZ3V0dGVyfSAvIDIgKyAycHgpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtZ2FsbGVyeV90aHVtYnMtZ3V0dGVyfSAvIDIgKyAycHgpO1xuICAgIH1cbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbXBvbmVudHMvdGVhc2VyL2hvb2tzL3BhZ2luYXRpb24uc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcblxuLy8gTmF2IGJ1dHRvbnNcbiR0ZWFzZXJfaGlkZS1uYXYtYnV0dG9ucy1vbi1tb2JpbGU6IHRydWUgIWRlZmF1bHQ7XG4kdGVhc2VyX25hdi1idXR0b24tcG9zaXRpb246IGFic29sdXRlICFkZWZhdWx0O1xuJHRlYXNlcl9uYXYtYnV0dG9uLXBvc2l0aW9uLXRvcDogNTAlICFkZWZhdWx0OyAvLyAycmVtIHJlY29tcGVuc2VzIGhlaWdodCBvZiB0aGUgYnVsbGV0LXBhZ2luYXRpb25cbiR0ZWFzZXJfbmF2LWJ1dHRvbi16LWluZGV4OiAyMDEgIWRlZmF1bHQ7XG4kdGVhc2VyX25hdi1idXR0b24tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSAhZGVmYXVsdDtcbiR0ZWFzZXJfbmF2LWJ1dHRvbi10cmFuc2l0aW9uOiBhbGwgMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuJHRlYXNlcl9uYXYtYnV0dG9uLXdpZHRoOiA1LjVyZW0gIWRlZmF1bHQ7XG4kdGVhc2VyX25hdi1idXR0b24taGVpZ2h0OiAkdGVhc2VyX25hdi1idXR0b24td2lkdGggIWRlZmF1bHQ7XG4kdGVhc2VyX25hdi1idXR0b24tYm9yZGVyOiAwICFkZWZhdWx0O1xuJHRlYXNlcl9uYXYtYnV0dG9uLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiR0ZWFzZXJfbmF2LWJ1dHRvbi1ib3gtc2hhZG93OiAxcHggMXB4IDJweCAwIHJnYmEoJGNvbG9yX2JsYWNrLCAwLjI1KSAhZGVmYXVsdDtcbiR0ZWFzZXJfbmF2LWJ1dHRvbi1ib3JkZXItcmFkaXVzOiAyICogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiR0ZWFzZXJfbmF2LWJ1dHRvbi1wYWRkaW5nOiAwICFkZWZhdWx0O1xuJHRlYXNlcl9uYXYtYnV0dG9uLWRpc2FibGVkLWRpc3BsYXk6IG5vbmUgIWRlZmF1bHQ7XG4kdGVhc2VyX25hdi1idXR0b24tZGlzYWJsZWQtb3BhY2l0eTogMSAhZGVmYXVsdDtcbiR0ZWFzZXJfbmF2LWJ1dHRvbi1ob3Jpem9udGFsLXBvc2l0aW9uOiAxLjVyZW0gIWRlZmF1bHQ7XG4kdGVhc2VyX25hdi1idXR0b24taG9yaXpvbnRhbC1vZmZzZXQtYnJlYWtwb2ludDogJz49bGFwdG9wTGcnICFkZWZhdWx0O1xuJHRlYXNlcl9uYXYtYnV0dG9uLWhvcml6b250YWwtb2Zmc2V0LWRlc2t0b3A6IC0jeyR0ZWFzZXJfbmF2LWJ1dHRvbi13aWR0aCAvIDJ9ICFkZWZhdWx0O1xuLy8gSG92ZXJcbiR0ZWFzZXJfbmF2LWJ1dHRvbi0taG92ZXItYm94LXNoYWRvdzogMXB4IDFweCAxMHB4IDAgcmdiYSgkY29sb3JfYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuJHRlYXNlcl9uYXYtYnV0dG9uLS1ob3Zlci1ib3JkZXI6ICR0ZWFzZXJfbmF2LWJ1dHRvbi1ib3JkZXIgIWRlZmF1bHQ7XG4kdGVhc2VyX25hdi1idXR0b24tLWhvdmVyLWJhY2tncm91bmQ6ICR0ZWFzZXJfbmF2LWJ1dHRvbi1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHRlYXNlcl9uYXYtYnV0dG9uLS1ob3Zlci1hZGRpdGlvbmFsLXRyYW5zZm9ybTogJycgIWRlZmF1bHQ7XG5cbi8vIE5hdiBidXR0b25zIGljb25zXG4kdGVhc2VyX25hdi1idXR0b24taWNvbi13aWR0aDogMS40cmVtICFkZWZhdWx0O1xuJHRlYXNlcl9uYXYtYnV0dG9uLWljb24taGVpZ2h0OiAyLjdyZW0gIWRlZmF1bHQ7XG4kdGVhc2VyX25hdi1idXR0b24taWNvbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuLy8gSG92ZXJcbiR0ZWFzZXJfbmF2LWJ1dHRvbi1pY29uLS1ob3Zlci1jb2xvcjogJHRlYXNlcl9uYXYtYnV0dG9uLWljb24tY29sb3IgIWRlZmF1bHQ7XG5cbi8vIEZyYWN0aW9uIHBhZ2luYXRpb24gKG51bWJlciBwYWdpbmF0aW9uKVxuJHRlYXNlcl9wYWdpbmF0aW9uLW51bWJlcnMtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiR0ZWFzZXJfcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQtY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcblxuLy8gUGFnaW5hdGlvbiBsaXN0XG4kdGVhc2VyX3BhZ2luYXRpb24tbWFyZ2luOiAwICFkZWZhdWx0O1xuJHRlYXNlcl9wYWdpbmF0aW9uLXBhZGRpbmc6IDAuNXJlbSAwIDAgIWRlZmF1bHQ7XG4kdGVhc2VyX3BhZ2luYXRpb24tbWluLWhlaWdodDogM3JlbSAhZGVmYXVsdDtcbiR0ZWFzZXJfcGFnaW5hdGlvbi1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhZGVmYXVsdDtcbiR0ZWFzZXJfcGFnaW5hdGlvbi1hbGlnbi1pdGVtczogY2VudGVyICFkZWZhdWx0O1xuJHRlYXNlcl9wYWdpbmF0aW9uLXRleHQtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDsgLy8gdXNlZCBmb3IgXCJmcmFjdGlvblwiIHBhZ2luYXRpb24gKG51bWJlcnMpXG4kdGVhc2VyX3BhZ2luYXRpb24tei1pbmRleDogMjAwICFkZWZhdWx0O1xuXG5AbWl4aW4gYnVsbGV0LXBhZ2luYXRpb24tbGlzdCB7XG4gICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuICAgIG1hcmdpbjogJHRlYXNlcl9wYWdpbmF0aW9uLW1hcmdpbjtcbiAgICBwYWRkaW5nOiAkdGVhc2VyX3BhZ2luYXRpb24tcGFkZGluZztcbiAgICBtaW4taGVpZ2h0OiAkdGVhc2VyX3BhZ2luYXRpb24tbWluLWhlaWdodDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR0ZWFzZXJfcGFnaW5hdGlvbi1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgYWxpZ24taXRlbXM6ICR0ZWFzZXJfcGFnaW5hdGlvbi1hbGlnbi1pdGVtcztcbiAgICBjb2xvcjogJHRlYXNlcl9wYWdpbmF0aW9uLXRleHQtY29sb3I7XG4gICAgei1pbmRleDogJHRlYXNlcl9wYWdpbmF0aW9uLXotaW5kZXg7XG5cbiAgICAmLS1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1bGxldC1wYWdpbmF0aW9uLWxpc3QtaG9vaygpO1xufVxuXG4vLyBQYWdpbmF0aW9uIGl0ZW1cbiR0ZWFzZXJfcGFnaW5hdGlvbi1pdGVtLW1hcmdpbjogMC40cmVtICFkZWZhdWx0O1xuJHRlYXNlcl9wYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1czogMnB4ICFkZWZhdWx0O1xuJHRlYXNlcl9wYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZDogJGNvbG9yX2dhbGxlcnkgIWRlZmF1bHQ7XG4kdGVhc2VyX3BhZ2luYXRpb24taXRlbS13aWR0aDogMi4ycmVtICFkZWZhdWx0O1xuJHRlYXNlcl9wYWdpbmF0aW9uLWl0ZW0taGVpZ2h0OiAwLjlyZW0gIWRlZmF1bHQ7XG4kdGVhc2VyX3BhZ2luYXRpb24taXRlbS1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kdGVhc2VyX3BhZ2luYXRpb24taXRlbS10cmFuc2l0aW9uOiBhbGwgMC4xNXMgIWRlZmF1bHQ7XG4kdGVhc2VyX3BhZ2luYXRpb24taXRlbS0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX2FsdG8gIWRlZmF1bHQ7XG5cbkBtaXhpbiBidWxsZXQtcGFnaW5hdGlvbi1pdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAkdGVhc2VyX3BhZ2luYXRpb24taXRlbS1tYXJnaW47XG4gICAgYm9yZGVyLXJhZGl1czogJHRlYXNlcl9wYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiAkdGVhc2VyX3BhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kO1xuICAgIHdpZHRoOiAkdGVhc2VyX3BhZ2luYXRpb24taXRlbS13aWR0aDtcbiAgICBoZWlnaHQ6ICR0ZWFzZXJfcGFnaW5hdGlvbi1pdGVtLWhlaWdodDtcbiAgICBib3JkZXI6ICR0ZWFzZXJfcGFnaW5hdGlvbi1pdGVtLWJvcmRlcjtcbiAgICB0cmFuc2l0aW9uOiAkdGVhc2VyX3BhZ2luYXRpb24taXRlbS10cmFuc2l0aW9uO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR0ZWFzZXJfcGFnaW5hdGlvbi1pdGVtLS1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1bGxldC1wYWdpbmF0aW9uLWl0ZW0taG9vaygpO1xufVxuXG4kdGVhc2VyX3BhZ2luYXRpb24taXRlbS0tYWN0aXZlLWJhY2tncm91bmQ6ICRjb2xvcl9nb2xkICFkZWZhdWx0O1xuQG1peGluIGJ1bGxldC1wYWdpbmF0aW9uLWl0ZW0tLWFjdGl2ZSB7XG4gICAgJixcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHRlYXNlcl9wYWdpbmF0aW9uLWl0ZW0tLWFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1bGxldC1wYWdpbmF0aW9uLWl0ZW0tLWFjdGl2ZS1ob29rKCk7XG59XG5cbkBtaXhpbiBidWxsZXQtcGFnaW5hdGlvbi1idXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBmb250LXNpemU6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIEBpbmNsdWRlIGJ1bGxldC1wYWdpbmF0aW9uLWJ1dHRvbi1ob29rKCk7XG59XG4iLCJAaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIn5DcmVhdGl2ZXNob3AvY29tcG9uZW50cy9wcm9kdWN0LWdhbGxlcnkvcHJvZHVjdC1nYWxsZXJ5LnNjc3NcIjtcblxuLmZvdG9yYW1hIHtcbiAgICAkcm9vdDogJjtcbiAgICAmX19uYXYge1xuICAgICAgICAmLS1kb3RzIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19uYXYge1xuICAgICAgICAgICAgICAgICZfX2ZyYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgJi0tZG90IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAwLjhyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMC44cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICYgPiBkaXYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRrbWFfY29sb3JfZ3JleS0zMDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmLmZvdG9yYW1hX19hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgPiBkaXYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAka21hX2NvbG9yX3JlZC01MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4uY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtIHtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0ge1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2Y4ZjhmOCAwJSwgI2ZmZmZmZiA1MCUpOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjOyB9IH1cbiAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tbWFpbiB7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMCB1cmwoXCIuLi9pbWFnZXMvYmFja2dyb3VuZC5wbmdcIik7IH1cbiAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcmV2aWV3cyB7XG4gICAgc2Nyb2xsLW1hcmdpbi10b3A6IDVyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcmV2aWV3cyB7XG4gICAgICAgIHNjcm9sbC1tYXJnaW4tdG9wOiA4LjNyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1yZXZpZXdzIHtcbiAgICAgICAgc2Nyb2xsLW1hcmdpbi10b3A6IDExcmVtOyB9IH1cbiAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1yZXZpZXdzIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXJldmlld3MgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMi41cmVtOyB9IH1cbiAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcmVsYXRlZCwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tdXBzZWxsLCAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1jb250ZW50LWNvbnN0cnVjdG9yIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1jb250ZW50LWNvbnN0cnVjdG9yIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLWF3X3BxX2FqYXhfY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLWF3X3BxX2FqYXhfY29udGFpbmVyIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lLFxuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLWF3X3BxX2FqYXhfY29udGFpbmVyIC5hdy1wcS1xdWVzdGlvbi1zb3J0IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG4gICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1hd19wcV9hamF4X2NvbnRhaW5lciAuY3MtcHJvZHVjdC1kZXRhaWxzX19oZWFkbGluZVt0YWJpbmRleF06YmVmb3JlLCAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1hd19wcV9hamF4X2NvbnRhaW5lciAuY3MtcHJvZHVjdC1kZXRhaWxzX19oZWFkbGluZVt0YWJpbmRleF06YWZ0ZXIsXG4gICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1hd19wcV9hamF4X2NvbnRhaW5lciAuYXctcHEtcXVlc3Rpb24tc29ydFt0YWJpbmRleF06YmVmb3JlLFxuICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tYXdfcHFfYWpheF9jb250YWluZXIgLmF3LXBxLXF1ZXN0aW9uLXNvcnRbdGFiaW5kZXhdOmFmdGVyIHtcbiAgICAgICAgcmlnaHQ6IDNyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tYXdfcHFfYWpheF9jb250YWluZXIgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTsgfSB9XG5cbi5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjbGVhcjogYm90aDtcbiAgcGFkZGluZzogMmVtIDA7XG4gIG1hcmdpbjogMmVtIDA7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19oZWFkbGluZSB7XG4gICAgICBmb250LXNpemU6IDFyZW07IH0gfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzX19oZWFkbGluZVt0YWJpbmRleF0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lW3RhYmluZGV4XTpiZWZvcmUsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lW3RhYmluZGV4XTphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgd2lkdGg6IDEuMnJlbTtcbiAgICAgIGhlaWdodDogMC4ycmVtO1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4ODg7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dCwgb3BhY2l0eSAwLjE1cyBlYXNlLW91dCwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19oZWFkbGluZVt0YWJpbmRleF06YmVmb3JlLCAuY3MtcHJvZHVjdC1kZXRhaWxzX19oZWFkbGluZVt0YWJpbmRleF06YWZ0ZXIge1xuICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgIWltcG9ydGFudDsgfVxuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lW3RhYmluZGV4XTphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSg5MGRlZykgIWltcG9ydGFudDsgfVxuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lW3RhYmluZGV4XVthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoLTkwZGVnKSAhaW1wb3J0YW50O1xuICAgICAgb3BhY2l0eTogMDsgfVxuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lW3RhYmluZGV4XVthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgwKSAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faGVhZGxpbmUge1xuICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMmVtIDAgI2YwZjBmMCwgMCAtMmVtIDAgI2YwZjBmMCwgMS41cmVtIDAgMCAyZW0gI2YwZjBmMCwgLTEuNXJlbSAwIDAgMmVtICNmMGYwZjA7IH0gfVxuXG4uY3MtcHJvZHVjdC1kZXRhaWxzX19oZWFkbGluZS10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lLXRpdGxlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzX19oZWFkbGluZS10aXRsZTpiZWZvcmUsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lLXRpdGxlOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lLXRpdGxlOmJlZm9yZSwgLmNzLXByb2R1Y3QtZGV0YWlsc19faGVhZGxpbmUtdGl0bGU6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgLmNzLXByb2R1Y3QtZGV0YWlsc19faGVhZGxpbmUtdGl0bGU6YmVmb3JlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNmVtOyB9XG4gIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lLXRpdGxlOmFmdGVyIHtcbiAgICBtYXJnaW4tbGVmdDogMC42ZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19oZWFkbGluZS10aXRsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LXNpemU6IDQuMnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBjb2xvcjogIzIxMjEyMTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faGVhZGxpbmUtdGl0bGUge1xuICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19oZWFkbGluZS10aXRsZTpiZWZvcmUsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lLXRpdGxlOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkY2RjZGM7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faGVhZGxpbmUtdGl0bGU6YmVmb3JlLCAuY3MtcHJvZHVjdC1kZXRhaWxzX19oZWFkbGluZS10aXRsZTphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faGVhZGxpbmUtdGl0bGU6YmVmb3JlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjZlbTsgfVxuICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faGVhZGxpbmUtdGl0bGU6YWZ0ZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMC42ZW07IH0gfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzX19oZWFkbGluZS10aXRsZSAuY291bnRlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzX19oZWFkbGluZS10aXRsZSAuY291bnRlciB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lLXRpdGxlIC5jb3VudGVyOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnICgnOyB9XG4gICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faGVhZGxpbmUtdGl0bGUgLmNvdW50ZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyknOyB9XG5cbi5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lLXN1YnRpdGxlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2hlYWRsaW5lLXN1YnRpdGxlIHtcbiAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faGVhZGxpbmUtc3VidGl0bGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4uY3MtcHJvZHVjdC1kZXRhaWxzX19uby1yZXZpZXdzLW1lc3NhZ2Uge1xuICB3aWR0aDogMTAwJTsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAuZGV0YWlsX19oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5jb250ZW50X190b2dnbGVyIHtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgIC5jb250ZW50X190b2dnbGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBmb250LXNpemU6IDIuNHJlbSAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6ICMzMzMzMzMgIWltcG9ydGFudDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctYmxvY2s6IDEuNXJlbTtcbiAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgbWFyZ2luLWJsb2NrOiAwICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jb250ZW50X190b2dnbGVyOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogLTEuNXJlbTtcbiAgICAgICAgcmlnaHQ6IC0xLjVyZW07XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAzcmVtKTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkNWQ1ZDU7IH1cbiAgICAgIC5jb250ZW50X190b2dnbGVyOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiK1wiO1xuICAgICAgICBmb250LXNpemU6IDIuNnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgICAgLmNvbnRlbnRfX3RvZ2dsZXItYWN0aXZlOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFwyMDEyXCI7IH0gfVxuXG4uY3MtcHJvZHVjdC1kZXRhaWxzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzLW1haW5fX2NvbnRlbnQgLnRodW1ibmFpbC1nYWxsZXJ5LWRlc2NyaXB0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIC5jcy1wcm9kdWN0LWRldGFpbHMtbWFpbl9fY29udGVudCAudGh1bWJuYWlsLWdhbGxlcnktZGVzY3JpcHRpb24gLnByb2R1Y3QtdGh1bWJuYWlsLWRlc2NyaXB0aW9uLXBob3RvIHtcbiAgICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAxNXB4KTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0ge1xuICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1yZWxhdGVkLCAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctYnJhbmQtZGV0YWlscywgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLWNyb3Nzc2VsbCwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLXVwc2VsbCB7XG4gICAgbWF4LXdpZHRoOiB1bnNldDsgfVxuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXJlbGF0ZWQgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWJyYW5kLWRldGFpbHMgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLWNyb3Nzc2VsbCAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50LCAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LWluZm8tdXBzZWxsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLWJsb2NrOiA4cmVtOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1yZWxhdGVkIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1icmFuZC1kZXRhaWxzIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3QtaW5mby1jcm9zc3NlbGwgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLXVwc2VsbCAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50IHtcbiAgICAgICAgICBwYWRkaW5nLWJsb2NrOiA0cmVtO1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAxLjVyZW07IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcmVsYXRlZCAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2LCAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctYnJhbmQtZGV0YWlscyAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2LCAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LWluZm8tY3Jvc3NzZWxsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3QtaW5mby11cHNlbGwgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcmVsYXRlZCAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50LCAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctYnJhbmQtZGV0YWlscyAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50LCAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LWluZm8tY3Jvc3NzZWxsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3QtaW5mby11cHNlbGwgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCB7XG4gICAgICAgICAgcGFkZGluZy1ibG9jazogMDtcbiAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47IH1cbiAgICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1yZWxhdGVkIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1icmFuZC1kZXRhaWxzIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgPiBkaXYsIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3QtaW5mby1jcm9zc3NlbGwgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCA+IGRpdiwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLXVwc2VsbCAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50ID4gZGl2IHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9IH1cbiAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLWNyb3Nzc2VsbCxcbiAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLWNyb3Nzc2VsbCA+IGRpdixcbiAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLWNyb3Nzc2VsbCAuY3MtY29udGFpbmVyLS1wcm9kdWN0cy1jYXJvdXNlbCwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLXVwc2VsbCxcbiAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLXVwc2VsbCA+IGRpdixcbiAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLXVwc2VsbCAuY3MtY29udGFpbmVyLS1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZiAhaW1wb3J0YW50OyB9XG4gIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3QtaW5mby1jcm9zc3NlbGwgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLXVwc2VsbCAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LWluZm8tY3Jvc3NzZWxsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLXVwc2VsbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG4gIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy0zRHZpZXcge1xuICAgIG1heC13aWR0aDogdW5zZXQ7IH1cbiAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctM0R2aWV3IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLWJsb2NrOiA0cmVtOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctM0R2aWV3IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQge1xuICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDNyZW07IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LTNEdmlldyAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50IHtcbiAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwOyB9IH1cbiAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcmVsYXRlZCB7XG4gICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXJlbGF0ZWQgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1yZXZpZXdzIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1yZXZpZXdzIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgLm9waW5pb24tdGl0bGUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgICAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcmV2aWV3cyAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50IC5vcGluaW9uLXRpdGxlIC5jcy1zdGFyLXJhdGluZ19fc3RhcnMge1xuICAgICAgICB3aWR0aDogMTRyZW0gIWltcG9ydGFudDsgfVxuICAgICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1yZXZpZXdzIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgLm9waW5pb24tdGl0bGUgLmNzLXN0YXItcmF0aW5nX19zdGFycyAuY3Mtc3Rhci1yYXRpbmdfX3RleHQge1xuICAgICAgICAgIG1pbi13aWR0aDogNXJlbTsgfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1yZXZpZXdzIHtcbiAgICBzY3JvbGwtbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XG4gIC5jcy1wcm9kdWN0LWRldGFpbHMgLnBkcC1kZXRhaWxzLTNkdmlldyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtcHJvZHVjdC1kZXRhaWxzIC5wZHAtZGV0YWlscy0zZHZpZXcgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzIC5jcy1jb250YWluZXItLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICBwYWRkaW5nLWlubGluZTogMDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzIC5jcy1jb250YWluZXItLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW0gIWltcG9ydGFudDsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVhZGxpbmUvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wc2V1ZG9pY29uL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbiRwcm9kdWN0LWRlc2NyaXB0aW9uX2l0ZW0tYmFja2dyb3VuZC1tb2JpbGU6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LWRlc2NyaXB0aW9uX2l0ZW0tYmFja2dyb3VuZC1kZXNrdG9wOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgdG8gYm90dG9tLFxuICAgICNmOGY4ZjggMCUsXG4gICAgI2ZmZmZmZiA1MCVcbikgIWRlZmF1bHQ7XG4kcHJvZHVjdC1kZXNjcmlwdGlvbl9pdGVtLW1haW4tYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwXG4gICAgdXJsKCcuLi9pbWFnZXMvYmFja2dyb3VuZC5wbmcnKSAhZGVmYXVsdDtcblxuJHByb2R1Y3QtZGVzY3JpcHRpb25faXRlbS1zZXBhcmF0b3ItYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWRlc2NyaXB0aW9uLS1tb2JpbGVfaGVhZGxpbmUtZm9udC1zaXplOiAwLjZyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC1kZXNjcmlwdGlvbl9oZWFkbGluZS1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC1kZXNjcmlwdGlvbi0tbW9iaWxlX2hlYWRsaW5lLXRpdGxlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0zICFkZWZhdWx0O1xuJHByb2R1Y3QtZGVzY3JpcHRpb25faGVhZGxpbmUtdGl0bGUtZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTIgIWRlZmF1bHQ7XG4kcHJvZHVjdC1kZXNjcmlwdGlvbl9oZWFkbGluZS10aXRsZS1jb3VudGVyLXZpc2libGU6IHRydWUgIWRlZmF1bHQ7XG4kcHJvZHVjdC1kZXNjcmlwdGlvbl9oZWFkbGluZS1iYWNrZ3JvdW5kOiAkY29sb3JfZ2FsbGVyeSAhZGVmYXVsdDtcbiRwcm9kdWN0LWRlc2NyaXB0aW9uX3N1YmhlYWRsaW5lLXRpdGxlLWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuXG4vLyBTaG93L2hpZGUgaGVhZGxpbmUgZm9yIGNvbnRlbnQgY29uc3RydWN0b3Igc2VjdGlvblxuJHByb2R1Y3QtZGVzY3JpcHRpb25faGVhZGxpbmUtY2MtdmlzaWJsZTogZmFsc2UgIWRlZmF1bHQ7XG5cbi4jeyRuc31wcm9kdWN0LWRldGFpbHMge1xuICAgICRyb290OiAmO1xuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcm9kdWN0LWRlc2NyaXB0aW9uX2l0ZW0tYmFja2dyb3VuZC1tb2JpbGU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByb2R1Y3QtZGVzY3JpcHRpb25faXRlbS1iYWNrZ3JvdW5kLWRlc2t0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6ICRwcm9kdWN0LWRlc2NyaXB0aW9uX2l0ZW0tc2VwYXJhdG9yLWJvcmRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByb2R1Y3QtZGVzY3JpcHRpb25faXRlbS1tYWluLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZXZpZXdzIHtcbiAgICAgICAgICAgIC8vIEFkZCBzY3JvbGwgdG9wIG1hcmdpbiB0byBzaG93IHJldmlldyBzZWN0aW9uIGJlbG93IHN0aWNreSBoZWFkZXIgd2hlbiBzY3JvbGxlZFxuICAgICAgICAgICAgLy8gUHJvamVjdHMgd2l0aG91dCBzdGlja3kgaGVhZGVyIGFsc28gd2lsbCByZWNlaXZlIHNjcm9sbCBtYXJnaW4sIGJ1dCBpdCBpcyBiZXR0ZXIgdG9cbiAgICAgICAgICAgIC8vIHNjcm9sbCBhIGJpdCBsb3dlciB0aGFuIGhhdmUgcmV2aWV3IGNvdmVyZWQgYnkgaGVhZGVyXG4gICAgICAgICAgICBzY3JvbGwtbWFyZ2luLXRvcDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHNjcm9sbC1tYXJnaW4tdG9wOiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICBzY3JvbGwtbWFyZ2luLXRvcDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LWRlc2t0b3A7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMi41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlbGF0ZWQsXG4gICAgICAgICYtLXVwc2VsbCxcbiAgICAgICAgJi0tY29udGVudC1jb25zdHJ1Y3RvciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNvbnRlbnQtY29uc3RydWN0b3Ige1xuICAgICAgICAgICAgI3skcm9vdH1fX2hlYWRsaW5lIHtcbiAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LWRlc2NyaXB0aW9uX2hlYWRsaW5lLWNjLXZpc2libGUgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXdfcHFfYWpheF9jb250YWluZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByb2R1Y3QtZGVzY3JpcHRpb25faXRlbS1iYWNrZ3JvdW5kLW1vYmlsZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcblxuICAgICAgICAgICAgLy8gQWRqdXN0IGNoaWxkcmVuIHNwYWNpbmdzIGFmdGVyIHJlc2V0dGluZyBjb250YWluZXIgcGFkZGluZ1xuICAgICAgICAgICAgI3skcm9vdH1fX2hlYWRsaW5lLFxuICAgICAgICAgICAgLmF3LXBxLXF1ZXN0aW9uLXNvcnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcblxuICAgICAgICAgICAgICAgICZbdGFiaW5kZXhdOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmW3RhYmluZGV4XTphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGxpbmUge1xuICAgICAgICBAaW5jbHVkZSBoZWFkbGluZSgpO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtZGVzY3JpcHRpb24tLW1vYmlsZV9oZWFkbGluZS1mb250LXNpemU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LWRlc2NyaXB0aW9uX2hlYWRsaW5lLWZvbnQtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgYXR0cmlidXRlIGlzIGFkZGVkIHdoZW4gZWxlbWVudCBpcyBjb2xsYXBzaWJsZS5cbiAgICAgICAgJlt0YWJpbmRleF0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJvZHVjdC1kZXNjcmlwdGlvbl9oZWFkbGluZS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgLy8gRXh0ZW5kIFwiYmFja2dyb3VuZFwiIGJleW9uZCBwYWRkaW5nIGFuZCBtYXJnaW4gdGhyb3VnaCBib3gtc2hhZG93XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDJlbSAwICRwcm9kdWN0LWRlc2NyaXB0aW9uX2hlYWRsaW5lLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgMCAtMmVtIDAgJHByb2R1Y3QtZGVzY3JpcHRpb25faGVhZGxpbmUtYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkcGFnZV9lZGdlLWd1dHRlciAwIDAgMmVtXG4gICAgICAgICAgICAgICAgICAgICRwcm9kdWN0LWRlc2NyaXB0aW9uX2hlYWRsaW5lLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgLSRwYWdlX2VkZ2UtZ3V0dGVyIDAgMCAyZW0gJHByb2R1Y3QtZGVzY3JpcHRpb25faGVhZGxpbmUtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRsaW5lLXRpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUtdGl0bGUoXG4gICAgICAgICAgICAkZm9udC1zaXplOiAkcHJvZHVjdC1kZXNjcmlwdGlvbi0tbW9iaWxlX2hlYWRsaW5lLXRpdGxlLWZvbnQtc2l6ZVxuICAgICAgICApO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lLXRpdGxlKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICRwcm9kdWN0LWRlc2NyaXB0aW9uX2hlYWRsaW5lLXRpdGxlLWZvbnQtc2l6ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb3VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHByb2R1Y3QtZGVzY3JpcHRpb25faGVhZGxpbmUtdGl0bGUtY291bnRlci12aXNpYmxlIHtcbiAgICAgICAgICAgIC5jb3VudGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMmVtO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnICgnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGxpbmUtc3VidGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lLXN1YnRpdGxlKFxuICAgICAgICAgICAgICAgICRmb250LXNpemU6ICRwcm9kdWN0LWRlc2NyaXB0aW9uX3N1YmhlYWRsaW5lLXRpdGxlLWZvbnQtc2l6ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX25vLXJldmlld3MtbWVzc2FnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL3Byb2R1Y3QtZGV0YWlscy9wcm9kdWN0LWRldGFpbHNcIjtcblxuLmRldGFpbF9faGlkZGVuIHtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5jb250ZW50X190b2dnbGVyIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTMgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDAgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiAxLjVyZW07XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgICBtYXJnaW4tYmxvY2s6IDAgIWltcG9ydGFudDtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAtMS41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IC0xLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgM3JlbSk7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfZ3JleS0zMDA7XG4gICAgICAgIH1cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCIrXCI7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuNnJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cbiAgICAgICAgJi1hY3RpdmUge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDEyXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRuc31wcm9kdWN0LWRldGFpbHMge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgJHJvb3Q6ICY7XG4gICAgJi1tYWluIHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICAudGh1bWJuYWlsLWdhbGxlcnktZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgIC5wcm9kdWN0LXRodW1ibmFpbC1kZXNjcmlwdGlvbi1waG90byB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAxNXB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgJi0tcmVsYXRlZCxcbiAgICAgICAgJi0tcHJvZHVjdC12aWV3LWJyYW5kLWRldGFpbHMsXG4gICAgICAgICYtLXByb2R1Y3QtaW5mby1jcm9zc3NlbGwsXG4gICAgICAgICYtLXByb2R1Y3QtaW5mby11cHNlbGwge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgICN7JHJvb3R9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiA4cmVtO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiA0cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMS41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLS1wcm9kdWN0LWluZm8tY3Jvc3NzZWxsLFxuICAgICAgICAmLS1wcm9kdWN0LWluZm8tdXBzZWxsIHtcbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmID4gZGl2LFxuICAgICAgICAgICAgLiN7JG5zfWNvbnRhaW5lci0tcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRrbWFfY29sb3Jfd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICN7JHJvb3R9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi0tcHJvZHVjdC12aWV3LTNEdmlldyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgICAgICAgICAgI3skcm9vdH1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDRyZW07XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDNyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi0tcmVsYXRlZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfZ3JleS0xMDA7XG4gICAgICAgICAgICAjeyRyb290fV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi0tcmV2aWV3cyB7XG4gICAgICAgICAgICAjeyRyb290fV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAub3Bpbmlvbi10aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgICAgICAuI3skbnN9c3Rhci1yYXRpbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgJl9fc3RhcnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNHJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4jeyRuc31zdGFyLXJhdGluZ19fdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi0tcmV2aWV3cyB7XG4gICAgICAgICAgICBzY3JvbGwtbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5wZHAtZGV0YWlscy0zZHZpZXcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgLiN7JG5zfXByb2R1Y3QtZGV0YWlsc19fY29udGVudCB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuI3skbnN9Y29udGFpbmVyLS1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLXByb2R1Y3QtZGV0YWlscy1uYXYge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXNpemU6IDEuMXJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wcm9kdWN0LWRldGFpbHMtbmF2IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgLmNzLXByb2R1Y3QtZGV0YWlscy1uYXZfX3RpdGxlIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1wcm9kdWN0LWRldGFpbHMtbmF2X19saXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiAyZW0gMDsgfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzLW5hdl9faXRlbSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiAxZW07IH1cbiAgICAuY3MtcHJvZHVjdC1kZXRhaWxzLW5hdl9faXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tbGVmdDogLTJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LWRldGFpbHMtbmF2X19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtZGV0YWlscy1uYXZfX2l0ZW0gKyAuY3MtcHJvZHVjdC1kZXRhaWxzLW5hdl9faXRlbSB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgLmNzLXByb2R1Y3QtZGV0YWlscy1uYXZfX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZzogMC41ZW0gMmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtZGV0YWlscy1uYXZfX2xpbmssIC5jcy1wcm9kdWN0LWRldGFpbHMtbmF2X19saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMyMTIxMjE7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtcHJvZHVjdC1kZXRhaWxzLW5hdl9fbGluazpob3ZlciwgLmNzLXByb2R1Y3QtZGV0YWlscy1uYXZfX2xpbms6Zm9jdXMsIC5jcy1wcm9kdWN0LWRldGFpbHMtbmF2X19saW5rOmFjdGl2ZSwgLmNzLXByb2R1Y3QtZGV0YWlscy1uYXZfX2xpbms6dmlzaXRlZDpob3ZlciwgLmNzLXByb2R1Y3QtZGV0YWlscy1uYXZfX2xpbms6dmlzaXRlZDpmb2N1cyB7XG4gICAgICBjb2xvcjogIzIxMjEyMTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzLW5hdiAuY291bnRlcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcoJzsgfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzLW5hdiAuY291bnRlcjphZnRlciB7XG4gICAgY29udGVudDogJyknOyB9XG5cbi5jcy1jb250YWluZXItLXBhZ2UtcGRwLWRldGFpbHMtbmF2IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMHB4IDBweCA1cHggMHB4IHJnYmEoMzMsIDMzLCAzMywgMC4yKTsgfVxuXG4uY3MtcHJvZHVjdC1kZXRhaWxzLW5hdl9fbGlzdCB7XG4gIGdhcDogMi41ZW07IH1cblxuLmNzLXByb2R1Y3QtZGV0YWlscy1uYXZfX2l0ZW0ge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWxlZnQ6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uY3MtcHJvZHVjdC1kZXRhaWxzLW5hdl9fbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMi41cmVtIDA7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzLW5hdl9fbGluayAuY291bnRlciB7XG4gICAgY29sb3I6ICM4Nzg3ODc7IH1cbiAgLmNzLXByb2R1Y3QtZGV0YWlscy1uYXZfX2xpbms6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogYXR0cih0aXRsZSk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5jcy1wcm9kdWN0LWRldGFpbHMtbmF2X19saW5rOmhvdmVyLFxuICAuY3MtcHJvZHVjdC1kZXRhaWxzLW5hdl9fbGluazpob3ZlciBzcGFuIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjYzEyNzJmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2EyMDEwOTsgfVxuXG4uY3MtY29udGFpbmVyLS1wYWdlLXBkcC1kZXRhaWxzLW5hdiB7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRwcm9kdWN0LWRldGFpbHMtbmF2X2ZvbnQtc2l6ZTogMS4xcmVtICFkZWZhdWx0O1xuXG4kcHJvZHVjdC1kZXRhaWxzLW5hdl9pdGVtLXNlcGFyYXRvci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuJHByb2R1Y3QtZGV0YWlscy1uYXZfbGlzdC1wYWRkaW5nOiAyZW0gMCAhZGVmYXVsdDtcbiRwcm9kdWN0LWRldGFpbHMtbmF2X2xpbmstZ3V0dGVyOiAyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC1kZXRhaWxzLW5hdl9saW5rLXBhZGRpbmc6IDAuNWVtICRwcm9kdWN0LWRldGFpbHMtbmF2X2xpbmstZ3V0dGVyICFkZWZhdWx0O1xuJHByb2R1Y3QtZGV0YWlscy1uYXZfbGluay1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHByb2R1Y3QtZGV0YWlscy1uYXZfbGluay1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuXG4kcHJvZHVjdC1kZXRhaWxzLW5hdl9jb250YWluZXItYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHByb2R1Y3QtZGV0YWlscy1uYXZfY29udGFpbmVyLWJveC1zaGFkb3c6IDBweCAwcHggNXB4IDBweFxuICAgIHJnYmEoJGNvbG9yX2JhY2tncm91bmQtNzAwLCAwLjIpICFkZWZhdWx0O1xuXG4uI3skbnN9cHJvZHVjdC1kZXRhaWxzLW5hdiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmb250LXNpemU6ICRwcm9kdWN0LWRldGFpbHMtbmF2X2ZvbnQtc2l6ZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LWRldGFpbHMtbmF2X2xpc3QtcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmb250LXNpemU6IDFlbTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHByb2R1Y3QtZGV0YWlscy1uYXZfbGluay1ndXR0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHByb2R1Y3QtZGV0YWlscy1uYXZfbGluay1ndXR0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmICsgJiB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJHByb2R1Y3QtZGV0YWlscy1uYXZfaXRlbS1zZXBhcmF0b3ItYm9yZGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICAgICAkcHJvZHVjdC1kZXRhaWxzLW5hdl9saW5rLWNvbG9yLFxuICAgICAgICAgICAgJHByb2R1Y3QtZGV0YWlscy1uYXZfbGluay1jb2xvci1ob3ZlclxuICAgICAgICApO1xuXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3QtZGV0YWlscy1uYXZfbGluay1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5jb3VudGVyIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJygnO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jcy1jb250YWluZXIge1xuICAgICYtLXBhZ2UtcGRwLWRldGFpbHMtbmF2IHtcbiAgICAgICAgYmFja2dyb3VuZDogJHByb2R1Y3QtZGV0YWlscy1uYXZfY29udGFpbmVyLWJhY2tncm91bmQ7XG4gICAgICAgIGJveC1zaGFkb3c6ICRwcm9kdWN0LWRldGFpbHMtbmF2X2NvbnRhaW5lci1ib3gtc2hhZG93O1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL3Byb2R1Y3QtZGV0YWlscy9uYXYvbmF2XCI7XG5cbi4jeyRuc31wcm9kdWN0LWRldGFpbHMtbmF2IHtcbiAgICAmX19saXN0IHtcbiAgICAgICAgZ2FwOiAyLjVlbTtcbiAgICB9XG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAyLjVyZW0gMDtcbiAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIC5jb3VudGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktNTAwO1xuICAgICAgICB9XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIodGl0bGUpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJixcbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRrbWFfY29sb3JfcmVkLTgwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNzLWNvbnRhaW5lciB7XG4gICAgJi0tcGFnZS1wZHAtZGV0YWlscy1uYXYge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbn1cbiIsIi5jcy1jb250YWluZXIge1xuICAgICYtLXBhZ2UtcGRwLWRldGFpbHMtZGVzY3JpcHRpb24ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbn1cbiIsIi8qKlxuICogU3R5bGVzIGZvciBkZWZhdWx0IHRhYmxlIHdpdGggYXR0cmlidXRlIGRpc3BsYXllZCBvbiBwcm9kdWN0IHBhZ2UuXG4gKiovXG5cbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UvbWl4aW4nO1xuXG4kYWRkaXRpb25hbC1hdHRyaWJ1dGVzX3RoLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kYWRkaXRpb25hbC1hdHRyaWJ1dGVzX3RyLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGFkZGl0aW9uYWwtYXR0cmlidXRlc19jZWxsLXBhZGRpbmc6IDFlbSAxLjVlbSAxZW0gMCAhaW1wb3J0YW50ICFkZWZhdWx0O1xuXG4kYWRkaXRpb25hbC1hdHRyaWJ1dGVzX2JhZGdlLW1hcmdpbjogMCAwIDAgMC45ZW0gIWRlZmF1bHQ7XG4kYWRkaXRpb25hbC1hdHRyaWJ1dGVzX3RvcC1hbGlnbjogLTAuMDFlbSAhZGVmYXVsdDtcblxuLmFkZGl0aW9uYWwtYXR0cmlidXRlcyB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC8vIEJlbG93IGNhc2NhZGUgaXMgdW5mb3J0dW5hdGVseSByZXF1aXJlZCBiZWNhdXNlIG9mIE1hZ2VudG8gc3R5bGVzLlxuICAgIHRib2R5IHtcbiAgICAgICAgPiB0ciB7XG4gICAgICAgICAgICBib3JkZXI6ICRhZGRpdGlvbmFsLWF0dHJpYnV0ZXNfdHItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXG4gICAgICAgICAgICAmICsgdHIge1xuICAgICAgICAgICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiBib3JkZXItY29sbGFwc2UgZG9lc24ndCB3b3JrIHdlbGwgb24gbW9iaWxlIEZpcmVGb3guXG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiB0aCB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRhZGRpdGlvbmFsLWF0dHJpYnV0ZXNfdGgtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJGFkZGl0aW9uYWwtYXR0cmlidXRlc19jZWxsLXBhZGRpbmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gdGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRhZGRpdGlvbmFsLWF0dHJpYnV0ZXNfY2VsbC1wYWRkaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZSgpO1xuXG4gICAgICAgIG1hcmdpbjogJGFkZGl0aW9uYWwtYXR0cmlidXRlc19iYWRnZS1tYXJnaW47XG4gICAgICAgIHRvcDogJGFkZGl0aW9uYWwtYXR0cmlidXRlc190b3AtYWxpZ247XG5cbiAgICAgICAgJi0tdG9wIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ3RvcCcpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigndG9wJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jcy1jb250YWluZXIge1xuICAgICYtLXBhZ2UtcGRwLWRldGFpbHMtYWRkaXRpb25hbCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBTdHlsZXMgZm9yIGRlZmF1bHQgdGFibGUgd2l0aCBhdHRyaWJ1dGUgZGlzcGxheWVkIG9uIHByb2R1Y3QgcGFnZS5cbiAqKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uYWRkaXRpb25hbC1hdHRyaWJ1dGVzLXdyYXBwZXIge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5hZGRpdGlvbmFsLWF0dHJpYnV0ZXMgdGJvZHkgPiB0ciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1sZWZ0OiAwO1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IH1cbiAgLmFkZGl0aW9uYWwtYXR0cmlidXRlcyB0Ym9keSA+IHRyICsgdHIge1xuICAgIGJvcmRlci10b3A6IDA7IH1cbiAgLmFkZGl0aW9uYWwtYXR0cmlidXRlcyB0Ym9keSA+IHRyID4gdGgge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgcGFkZGluZzogMWVtIDEuNWVtIDFlbSAwICFpbXBvcnRhbnQ7IH1cbiAgLmFkZGl0aW9uYWwtYXR0cmlidXRlcyB0Ym9keSA+IHRyID4gdGQge1xuICAgIHBhZGRpbmc6IDFlbSAxLjVlbSAxZW0gMCAhaW1wb3J0YW50OyB9XG5cbi5hZGRpdGlvbmFsLWF0dHJpYnV0ZXNfX2JhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMjRkY2Y7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIHBhZGRpbmc6IDAgMC43cmVtO1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWluLWhlaWdodDogMmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDAgMCAwIDAuOWVtO1xuICB0b3A6IC0wLjAxZW07IH1cbiAgLmFkZGl0aW9uYWwtYXR0cmlidXRlc19fYmFkZ2UtLXRvcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMyNGRjZjtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5hZGRpdGlvbmFsLWF0dHJpYnV0ZXNfX2JhZGdlLS10b3AgLmFkZGl0aW9uYWwtYXR0cmlidXRlc19fYmFkZ2UtdGV4dCB7XG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAuYWRkaXRpb25hbC1hdHRyaWJ1dGVzX19iYWRnZS0tdG9wIC5hZGRpdGlvbmFsLWF0dHJpYnV0ZXNfX2JhZGdlLXRleHQgKyAuYWRkaXRpb25hbC1hdHRyaWJ1dGVzX19iYWRnZS0tdG9wIC5hZGRpdGlvbmFsLWF0dHJpYnV0ZXNfX2JhZGdlLXRleHQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG5cbi5jcy1jb250YWluZXItLXBhZ2UtcGRwLWRldGFpbHMtYWRkaXRpb25hbCB7XG4gIHBhZGRpbmc6IDA7IH1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLXByb2R1Y3QtZGV0YWlscy1tYWluIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmctYm90dG9tOiAyZW07IH1cbiAgLmNzLXByb2R1Y3QtZGV0YWlscy1tYWluLS1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmNzLXByb2R1Y3QtZGV0YWlscy1tYWluX19jb2x1bW4ge1xuICAgIGZsZXg6IDEgMSAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHMtbWFpbl9fY29sdW1uLS1sZWZ0IHtcbiAgICAgICAgZmxleDogMCAwIDY1JTsgfSB9XG4gICAgLmNzLXByb2R1Y3QtZGV0YWlscy1tYWluX19jb2x1bW4tLXJpZ2h0IHtcbiAgICAgIG1hcmdpbi10b3A6IDJlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtZGV0YWlscy1tYWluX19jb2x1bW4tLXJpZ2h0IHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIGZsZXg6IDAgMCBjYWxjKDM1JSAtIDJlbSk7IH0gfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzLW1haW5fX2hlYWRsaW5lIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtcHJvZHVjdC1kZXRhaWxzLW1haW5fX2hlYWRsaW5lW3RhYmluZGV4XSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHMtbWFpbl9faGVhZGxpbmVbdGFiaW5kZXhdOmJlZm9yZSwgLmNzLXByb2R1Y3QtZGV0YWlscy1tYWluX19oZWFkbGluZVt0YWJpbmRleF06YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6IDEuMnJlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjJyZW07XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4ODg7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMTVzIGVhc2Utb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzLW1haW5fX2hlYWRsaW5lW3RhYmluZGV4XTpiZWZvcmUsIC5jcy1wcm9kdWN0LWRldGFpbHMtbWFpbl9faGVhZGxpbmVbdGFiaW5kZXhdOmFmdGVyIHtcbiAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzLW1haW5fX2hlYWRsaW5lW3RhYmluZGV4XTphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDkwZGVnKSAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtcHJvZHVjdC1kZXRhaWxzLW1haW5fX2hlYWRsaW5lW3RhYmluZGV4XVthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgtOTBkZWcpICFpbXBvcnRhbnQ7XG4gICAgICAgIG9wYWNpdHk6IDA7IH1cbiAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHMtbWFpbl9faGVhZGxpbmVbdGFiaW5kZXhdW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoMCkgIWltcG9ydGFudDsgfVxuICAuY3MtcHJvZHVjdC1kZXRhaWxzLW1haW5fX2hlYWRsaW5lLXRpdGxlIHtcbiAgICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LWRldGFpbHMtbWFpbl9faGVhZGxpbmUtdGl0bGUge1xuICAgICAgICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICAgICAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBtYXJnaW46IDFyZW0gMCAycmVtOyB9IH1cbiAgLmNzLXByb2R1Y3QtZGV0YWlscy1tYWluX19pdGVtIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1wcm9kdWN0LWRldGFpbHMtbWFpbl9faXRlbSArIC5jcy1wcm9kdWN0LWRldGFpbHMtbWFpbl9faXRlbSB7XG4gICAgICBtYXJnaW4tdG9wOiAyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kcHJvZHVjdC1kZXRhaWxzLW1haW5faXRlbS1ndXR0ZXI6IDJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LWRldGFpbHMtbWFpbl9jb2x1bW4tYnJlYWtwb2ludDogJz49dGFibGV0JyAhZGVmYXVsdDtcbiRwcm9kdWN0LWRldGFpbHMtbWFpbl9sZWZ0LWNvbHVtbi1mbGV4OiAwIDAgNjUlICFkZWZhdWx0O1xuJHByb2R1Y3QtZGV0YWlscy1tYWluX3JpZ2h0LWNvbHVtbi1mbGV4OiAwIDBcbiAgICBjYWxjKDM1JSAtICN7JHByb2R1Y3QtZGV0YWlscy1tYWluX2l0ZW0tZ3V0dGVyfSkgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWRldGFpbHMtbWFpbi0tbW9iaWxlX2hlYWRsaW5lLWxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTQgIWRlZmF1bHQ7XG4kcHJvZHVjdC1kZXRhaWxzLW1haW5faGVhZGxpbmUtbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMyAhZGVmYXVsdDtcblxuLiN7JG5zfXByb2R1Y3QtZGV0YWlscy1tYWluIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHByb2R1Y3QtZGV0YWlscy1tYWluX2l0ZW0tZ3V0dGVyO1xuXG4gICAgJi0tY29sdW1uIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAmX19jb2x1bW4ge1xuICAgICAgICBmbGV4OiAxIDEgMTAwJTtcblxuICAgICAgICAmLS1sZWZ0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCN7JHByb2R1Y3QtZGV0YWlscy1tYWluX2NvbHVtbi1icmVha3BvaW50fSkge1xuICAgICAgICAgICAgICAgIGZsZXg6ICRwcm9kdWN0LWRldGFpbHMtbWFpbl9sZWZ0LWNvbHVtbi1mbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmlnaHQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHByb2R1Y3QtZGV0YWlscy1tYWluX2l0ZW0tZ3V0dGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgjeyRwcm9kdWN0LWRldGFpbHMtbWFpbl9jb2x1bW4tYnJlYWtwb2ludH0pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIGZsZXg6ICRwcm9kdWN0LWRldGFpbHMtbWFpbl9yaWdodC1jb2x1bW4tZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRsaW5lIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZbdGFiaW5kZXhdIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRsaW5lLXRpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkcHJvZHVjdC1kZXRhaWxzLW1haW4tLW1vYmlsZV9oZWFkbGluZS1sZXZlbCk7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkcHJvZHVjdC1kZXRhaWxzLW1haW5faGVhZGxpbmUtbGV2ZWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICYgKyAmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRwcm9kdWN0LWRldGFpbHMtbWFpbl9pdGVtLWd1dHRlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtcmV2aWV3IHtcbiAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgLmNzLXJldmlld19fdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgMC43cmVtO1xuICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gIC5jcy1yZXZpZXdfX3JhdGluZywgLmNzLXJldmlld19fcmF0aW5ncyB7XG4gICAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5jcy1yZXZpZXdfX2NvbXBvdW5kLXJhdGluZyB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1heC13aWR0aDogMjByZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC4zZW07IH1cbiAgICAuY3MtcmV2aWV3X19jb21wb3VuZC1yYXRpbmc6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jcy1yZXZpZXdfX21ldGEge1xuICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgZm9udC1zaXplOiAwLjllbTsgfVxuICAgIC5jcy1yZXZpZXdfX21ldGEtLXZhcmlhbnQtc3VwcG9ydCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtcmV2aWV3X19tZXRhLWl0ZW0ge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAgIC5jcy1yZXZpZXdfX21ldGEtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAuY3MtcmV2aWV3X19tZXRhLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7IH1cbiAgLmNzLXJldmlld19fYXV0aG9yIHtcbiAgICBjb2xvcjogIzIxMjEyMTsgfVxuICAuY3MtcmV2aWV3X19kYXRlIHtcbiAgICBtYXJnaW4tbGVmdDogLTRweDtcbiAgICBjb2xvcjogIzg4ODsgfVxuICAuY3MtcmV2aWV3X192YXJpYW50IHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgcGFkZGluZzogMCAxcmVtOyB9XG4gICAgLmNzLXJldmlld19fdmFyaWFudCAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuY3MtcmV2aWV3X192YXJpYW50IC5zd2F0Y2gtb3B0aW9uIHtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAuY3MtcmV2aWV3X19jb250ZW50IHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICM4ODg7IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtcmV2aWV3IHtcbiAgZGlzcGxheTogZmxleDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5jcy1yZXZpZXcge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG4gIC5jcy1yZXZpZXdfX2NvbXBvdW5kLXJhdGluZyB7XG4gICAgbWF4LXdpZHRoOiAyNHJlbTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5jcy1yZXZpZXdfX3JhdGluZywgLmNzLXJldmlld19fcmF0aW5ncyB7XG4gICAgZmxleC1iYXNpczogMjAwcHg7IH1cbiAgLmNzLXJldmlld19fY29udGVudF93cmFwcGVyIHtcbiAgICBmbGV4LWJhc2lzOiA4MCU7XG4gICAgcGFkZGluZy10b3A6IDhweDsgfVxuICAuY3MtcmV2aWV3X190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMS4yZW07IH1cbiAgLmNzLXJldmlld19fY29udGVudCB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAuY3MtcmV2aWV3X19tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAxNXB4IDAgMDtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGNvbG9yOiAjODc4Nzg3OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdfX21ldGEge1xuICAgICAgICBtYXJnaW4tdG9wOiAxZW07IH0gfVxuICAuY3MtcmV2aWV3X19hdXRob3IsIC5jcy1yZXZpZXdfX2RhdGUge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGNvbG9yOiAjMzMzMzMzOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuJHJldmlld19mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRyZXZpZXdfdGl0bGUtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRyZXZpZXdfdGl0bGUtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRyZXZpZXdfYXV0aG9yLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kcmV2aWV3X2NvbnRlbnQtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRyZXZpZXdfZGF0ZS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHJldmlld19tZXRhLWl0ZW0tZm9udC1zaXplOiAwLjllbSAhZGVmYXVsdDtcbiRyZXZpZXdfbWV0YS1pdGVtLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHJldmlld19tZXRhLWl0ZW0tcGFkZGluZzogMCAxcmVtICFkZWZhdWx0O1xuJHJldmlld19oaWRlLWNvbXBvdW5kLXJhdGluZ3M6IGZhbHNlICFkZWZhdWx0O1xuXG4uI3skbnN9cmV2aWV3IHtcbiAgICBmb250LXNpemU6ICRyZXZpZXdfZm9udC1zaXplO1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogJHJldmlld190aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgbWFyZ2luOiAwIDAgMC43cmVtO1xuICAgICAgICBjb2xvcjogJHJldmlld190aXRsZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19yYXRpbmcsXG4gICAgJl9fcmF0aW5ncyB7XG4gICAgICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJl9fY29tcG91bmQtcmF0aW5nIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIG1heC13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuM2VtO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkcmV2aWV3X2hpZGUtY29tcG91bmQtcmF0aW5ncykge1xuICAgICAgICAmX19jb21wb3VuZC1yYXRpbmcge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgJiAuY3Mtc3Rhci1yYXRpbmdfX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3ZlcmFsbC1yYXRpbmcge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21ldGEge1xuICAgICAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgICAgICBmb250LXNpemU6ICRyZXZpZXdfbWV0YS1pdGVtLWZvbnQtc2l6ZTtcblxuICAgICAgICAmLS12YXJpYW50LXN1cHBvcnQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tZXRhLWl0ZW0ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBwYWRkaW5nOiAkcmV2aWV3X21ldGEtaXRlbS1wYWRkaW5nO1xuICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgICBib3JkZXItcmlnaHQ6ICRyZXZpZXdfbWV0YS1pdGVtLWJvcmRlcjtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hdXRob3Ige1xuICAgICAgICBjb2xvcjogJHJldmlld19hdXRob3ItY29sb3I7XG4gICAgfVxuXG4gICAgJl9fZGF0ZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgICAgICBjb2xvcjogJHJldmlld19kYXRlLWNvbG9yO1xuICAgIH1cblxuICAgICZfX3ZhcmlhbnQge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIHBhZGRpbmc6ICRyZXZpZXdfbWV0YS1pdGVtLXBhZGRpbmc7XG5cbiAgICAgICAgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnN3YXRjaC1vcHRpb24ge1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6ICRyZXZpZXdfY29udGVudC1jb2xvcjtcbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIn5DcmVhdGl2ZXNob3AvY29tcG9uZW50cy9yZXZpZXcvcmV2aWV3LnNjc3NcIjtcbkBpbXBvcnQgXCJ2ZW5kb3JzL2luY2x1ZGUtbWVkaWFcIjtcblxuLiN7JG5zfXJldmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BcIikge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICAmX19jb21wb3VuZCB7XG4gICAgICAgICYtcmF0aW5nIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjRyZW07XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX3JhdGluZyxcbiAgICAmX19yYXRpbmdzIHtcbiAgICAgICAgZmxleC1iYXNpczogMjAwcHg7XG4gICAgICB9XG4gICAgICAmX19jb250ZW50X3dyYXBwZXIge1xuICAgICAgICBmbGV4LWJhc2lzOiA4MCU7XG4gICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgfVxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4yZW07XG4gICAgfVxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB9XG4gICAgJl9fbWV0YSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMTVweCAwIDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsO1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTUwMDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19hdXRob3IsXG4gICAgJl9fZGF0ZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4uY3MtcmV2aWV3cyB7XG4gIGZsZXg6IDEgMSAwOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmNzLXJldmlld3Mge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7IH0gfVxuICAuY3MtcmV2aWV3c19fdGl0bGUge1xuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXJldmlld3NfX3RpdGxlIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gIC5jcy1yZXZpZXdzX19saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5jcy1yZXZpZXdzX19sYWJlbCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbGluZS1oZWlnaHQ6IDRyZW07IH1cbiAgLmNzLXJldmlld3NfX2l0ZW0ge1xuICAgIHBhZGRpbmc6IDAgMCAyLjVyZW07XG4gICAgbWFyZ2luOiAwIDAgMi41cmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgICAuY3MtcmV2aWV3c19faXRlbTpsYXN0LW9mLXR5cGUge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNzLXJldmlld3NfX2Zvcm0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBtYXJnaW46IDIuNXJlbSAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzX19mb3JtIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICAgICAgcGFkZGluZzogM3JlbTsgfSB9XG4gICAgLmNzLXJldmlld3NfX2Zvcm0gLnN3YXRjaC1vcHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuY3MtcmV2aWV3c19fZm9ybSAuc3dhdGNoLW9wdCAuc3dhdGNoLWF0dHJpYnV0ZSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1yZXZpZXdzX19mb3JtIC5zd2F0Y2gtb3B0IC5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwOyB9XG4gICAgICAgIC5jcy1yZXZpZXdzX19mb3JtIC5zd2F0Y2gtb3B0IC5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnIConOyB9XG4gICAgICAuY3MtcmV2aWV3c19fZm9ybSAuc3dhdGNoLW9wdCAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY3MtcmV2aWV3c19faGVhZGxpbmUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDEuNGVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAyLjRyZW07IH1cbiAgLmNzLXJldmlld3NfX3Byb2R1Y3QtbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDsgfVxuICAuY3MtcmV2aWV3c19fcmF0aW5nLWl0ZW06bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgbWFyZ2luLXRvcDogMWVtOyB9XG4gIC5jcy1yZXZpZXdzX19vcHRpb25zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzX19vcHRpb25zIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYzsgfSB9XG4gIC5jcy1yZXZpZXdzX19yYXRpbmdzIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtcmV2aWV3c19fZmllbGRzZXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcmV2aWV3c19fZmllbGRzZXQge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH0gfVxuICAuY3MtcmV2aWV3c19fc3VibWl0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcmV2aWV3c19fc3VibWl0IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuICAuY3MtcmV2aWV3c19fc3VibWl0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uLCAuY3MtcmV2aWV3c19fc3VibWl0LWJ1dHRvbjp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gICAgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtcmV2aWV3c19fc3VibWl0LWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtcmV2aWV3c19fc3VibWl0LWJ1dHRvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uW2Rpc2FibGVkXSwgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b246dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmNzLXJldmlld3NfX3JhdGluZy1jb250cm9sIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1O1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgaGVpZ2h0OiAyLjZyZW07XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmNzLXJldmlld3NfX3JhdGluZy1jb250cm9sIGlucHV0W3R5cGU9J3JhZGlvJ10sXG4gICAgLmNzLXJldmlld3NfX3JhdGluZy1jb250cm9sIC5jcy1yZXZpZXdzX19yYXRlLXN0YXJzIHNwYW4ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMXB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIC8qIDEgKi8gfVxuICAuY3MtcmV2aWV3c19fcmF0ZS1zdGFycyB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvcmRlcjogMDsgfVxuICAuY3MtcmV2aWV3c19fcmF0ZS1mZWVkYmFjayB7XG4gICAgb3JkZXI6IDE7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDAuOWVtO1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLXJldmlld3NfX3Jldmlldy1maWVsZCB7XG4gICAgbWluLWhlaWdodDogMTByZW07XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDsgfVxuICAuY3MtcmV2aWV3cyAuY3MtcGFnaW5hdGlvbl9fY29udGVudCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luOiAyLjVyZW0gMDsgfVxuXG4uY3MtY29udGFpbmVyLS1wYWdlLXBkcC1kZXRhaWxzLXJldmlld3Mge1xuICBwYWRkaW5nLWJsb2NrOiA3cmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWNvbnRhaW5lci0tcGFnZS1wZHAtZGV0YWlscy1yZXZpZXdzIHtcbiAgICAgIHBhZGRpbmctYmxvY2s6IDNyZW07IH0gfVxuXG4uY3MtcmV2aWV3cy1zdW1tYXJ5IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5jcy1yZXZpZXdzX19pdGVtIHtcbiAgcGFkZGluZzogM2VtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4uY3MtcmV2aWV3c19fZm9ybSB7XG4gIHBhZGRpbmc6IDUwcHggMjAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDhweDsgfVxuICAuY3MtcmV2aWV3c19fZm9ybSBsYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBjb2xvcjogIzMzMzMzMzsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtcmV2aWV3c19faXRlbSwgLmNzLXJldmlld3NfX2Zvcm0ge1xuICAgIHBhZGRpbmctaW5saW5lOiAzMHB4OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgLmNzLXJldmlld3NfX2l0ZW0sIC5jcy1yZXZpZXdzX19mb3JtIHtcbiAgICBwYWRkaW5nOiAzMHB4IDE1cHg7IH0gfVxuXG4uY3MtcmV2aWV3c19faGVhZGxpbmUge1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuLmNzLXJldmlld3NfX3Byb2R1Y3QtbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAuY3MtcmV2aWV3c19fcHJvZHVjdC1uYW1lIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXRvcDogMC41ZW07IH0gfVxuXG4uY3MtcmV2aWV3c19fb3B0aW9ucyB7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4uY3MtcmV2aWV3c19fcmF0aW5nLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuICAuY3MtcmV2aWV3c19fcmF0aW5nLWl0ZW0gLmNzLWZpZWxkIHtcbiAgICB3aWR0aDogNzBweCAhaW1wb3J0YW50OyB9XG5cbi5jcy1yZXZpZXdzX19yYXRpbmctY29udHJvbCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIG1hcmdpbjogMDsgfVxuXG4uY3MtcmV2aWV3c19fcmF0ZS1mZWVkYmFjayB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNzLXJldmlld3NfX2ZpZWxkc2V0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7IH1cblxuLmNzLXJldmlld3NfX3N1Ym1pdCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAuY3MtcmV2aWV3c19fc3VibWl0IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbiAgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgcGFkZGluZzogMTJweCA0NXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwOyB9XG4gICAgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b246bm90KFtkaXNhYmxlZF0pOmhvdmVyLCAuY3MtcmV2aWV3c19fc3VibWl0LWJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6Zm9jdXMge1xuICAgICAgY29sb3I6ICNhMjAxMDkgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlci1jb2xvcjogI2EyMDEwOSAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuXG4uY3MtcmV2aWV3c19fcmV2aWV3LWZpZWxkIHtcbiAgYm9yZGVyLXJhZGl1czogOHB4OyB9XG5cbi5jcy1yZXZpZXdzX19jb250ZW50IHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG4uY3MtcmV2aWV3cyAub3Bpbmlvbi10aXRsZSA+IC5jcy1zdGFyLXJhdGluZyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuJHJldmlld3MtYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kcmV2aWV3cy1zcGFjaW5nOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbi8vIFJldmlld3MgZm9ybSBzdHlsaW5nXG4kcmV2aWV3c19mb3JtLXBhZGRpbmctZGVza3RvcDogM3JlbSAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0tdHdvLWNvbHVtbnMtZGVza3RvcDogdHJ1ZSAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0tdHdvLWNvbHVtbnMtc3BhY2luZzogJHJldmlld3NfZm9ybS1wYWRkaW5nLWRlc2t0b3AgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLWJhY2tncm91bmQtZGVza3RvcDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuXG4kcmV2aWV3c19mb3JtLWJ1dHRvbi1hbGlnbjogZmxleC1zdGFydCAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0tYnV0dG9uLWFsaWduLWRlc2t0b3A6IGNlbnRlciAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0taGVhZGxpbmUtZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTMgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXByb2R1Y3QtbmFtZS1mb250LXdlaWdodDogMjAwICFkZWZhdWx0O1xuJHJldmlld3NfZm9ybS1yYXRpbmctY29udHJvbC1wYWRkaW5nOiAkZmllbGRfaW5wdXQtcGFkZGluZyAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0tcmF0aW5nLWNvbnRyb2wtY29udGVudC1oZWlnaHQ6ICRmaWVsZF9pbnB1dC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0tcmF0aW5nLWNvbnRyb2wtYm9yZGVyOiAkZmllbGRfaW5wdXQtYm9yZGVyICFkZWZhdWx0O1xuJHJldmlld3NfZm9ybS1yYXRpbmctY29udHJvbC1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0tZmVkYmFjay10ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLWZlZGJhY2stZm9udC1zaXplOiAwLjg1ZW0gIWRlZmF1bHQ7XG5cbiRyZXZpZXdzX2Zvcm0tc3VibWl0LWJ1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0tc3VibWl0LWJ1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuXG4uI3skbnN9cmV2aWV3cyB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBmbGV4OiAxIDEgMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkcmV2aWV3cy1ib3JkZXI7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfZ2FsbGVyeTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDRyZW07XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAkcmV2aWV3cy1zcGFjaW5nO1xuICAgICAgICBtYXJnaW46IDAgMCAkcmV2aWV3cy1zcGFjaW5nO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkcmV2aWV3cy1ib3JkZXI7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19mb3JtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgIG1hcmdpbjogJHJldmlld3Mtc3BhY2luZyAwO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRyZXZpZXdzX2Zvcm0tYmFja2dyb3VuZC1kZXNrdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogJHJldmlld3NfZm9ybS1wYWRkaW5nLWRlc2t0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdHlsZXMgb2YgdmFyaW5hbnQgc2VsZWN0IGZvciByZXZpZXcgKGRpc3BsYXllZCBpZiBlbmFibGVkIGluIGNvbmZpZ3VyYXRpb24pXG4gICAgICAgIC5zd2F0Y2gtb3B0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZmllbGRfZm9udC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIC5zd2F0Y2gtYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbCgpO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcgKic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGxpbmUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMS40ZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJHJldmlld3NfZm9ybS1oZWFkbGluZS1mb250LXNpemU7XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdC1uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRyZXZpZXdzX2Zvcm0tcHJvZHVjdC1uYW1lLWZvbnQtd2VpZ2h0O1xuICAgIH1cblxuICAgICZfX3JhdGluZy1pdGVtOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICAgICAgZm9udC1zaXplOiAkZmllbGRfZm9udC1zaXplO1xuXG4gICAgICAgIEBpZiAoJHJldmlld3NfZm9ybS10d28tY29sdW1ucy1kZXNrdG9wKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcmV2aWV3c19mb3JtLXR3by1jb2x1bW5zLXNwYWNpbmc7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkcmV2aWV3cy1ib3JkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19yYXRpbmdzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fZmllbGRzZXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgQGlmICgkcmV2aWV3c19mb3JtLXR3by1jb2x1bW5zLWRlc2t0b3ApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHJldmlld3NfZm9ybS10d28tY29sdW1ucy1zcGFjaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3VibWl0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogJHJldmlld3NfZm9ybS1idXR0b24tYWxpZ247XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkcmV2aWV3c19mb3JtLWJ1dHRvbi1hbGlnbi1kZXNrdG9wO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3VibWl0LWJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkcmV2aWV3c19mb3JtLXN1Ym1pdC1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJHJldmlld3NfZm9ybS1zdWJtaXQtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmVMZycpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcmF0aW5nLWNvbnRyb2wge1xuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgYm9yZGVyOiAkcmV2aWV3c19mb3JtLXJhdGluZy1jb250cm9sLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgcGFkZGluZzogJHJldmlld3NfZm9ybS1yYXRpbmctY29udHJvbC1wYWRkaW5nO1xuICAgICAgICBoZWlnaHQ6ICRyZXZpZXdzX2Zvcm0tcmF0aW5nLWNvbnRyb2wtY29udGVudC1oZWlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRyZXZpZXdzX2Zvcm0tcmF0aW5nLWNvbnRyb2wtYmFja2dyb3VuZDtcbiAgICAgICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgaW5wdXRbdHlwZT0ncmFkaW8nXSxcbiAgICAgICAgI3skcm9vdH1fX3JhdGUtc3RhcnMgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3JhdGUtc3RhcnMge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBvcmRlcjogMDtcbiAgICB9XG5cbiAgICAmX19yYXRlLWZlZWRiYWNrIHtcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgIGZvbnQtc2l6ZTogJHJldmlld3NfZm9ybS1mZWRiYWNrLWZvbnQtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDAuOWVtO1xuICAgICAgICBjb2xvcjogJHJldmlld3NfZm9ybS1mZWRiYWNrLXRleHQtY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fcmV2aWV3LWZpZWxkIHtcbiAgICAgICAgbWluLWhlaWdodDogMTByZW07XG4gICAgICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgfVxuXG4gICAgLmNzLXBhZ2luYXRpb25fX2NvbnRlbnQge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiAkcmV2aWV3cy1zcGFjaW5nIDA7XG4gICAgfVxufVxuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvcmV2aWV3cy9yZXZpZXdzLnNjc3NcIjtcblxuLiN7JG5zfWNvbnRhaW5lci0tcGFnZS1wZHAtZGV0YWlscy1yZXZpZXdzIHtcbiAgICBwYWRkaW5nLWJsb2NrOiA3cmVtO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiAzcmVtO1xuICAgIH1cbn1cblxuLiN7JG5zfXJldmlld3Mge1xuICAgICYtc3VtbWFyeSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJl9faXRlbSB7XG4gICAgICAgIHBhZGRpbmc6IDNlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYm94O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuICAgICZfX2Zvcm0ge1xuICAgICAgICBwYWRkaW5nOiA1MHB4IDIwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19ib3g7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19pdGVtLFxuICAgICZfX2Zvcm0ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BcIikge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDMwcHg7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgcGFkZGluZzogMzBweCAxNXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2hlYWRsaW5lIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgfVxuICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAmLW5hbWUge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19vcHRpb25zIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbiAgICAmX19yYXRpbmcge1xuICAgICAgICAmLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW46IDAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLmNzLWZpZWxkIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNzBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtY29udHJvbCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19yYXRlIHtcbiAgICAgICAgJi1mZWVkYmFjayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2ZpZWxkc2V0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgICZfX3N1Ym1pdCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgICYtYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDQ1cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2JsYWNrO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAka21hX2NvbG9yX2JsYWNrO1xuICAgICAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC04MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAka21hX2NvbG9yX3JlZC04MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fcmV2aWV3IHtcbiAgICAgICAgJi1maWVsZCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19ib3g7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICAgIC5vcGluaW9uLXRpdGxlIHtcbiAgICAgICAgJiA+IC4jeyRuc31zdGFyLXJhdGluZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1yZXZpZXdzLXN1bW1hcnkge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4OiAxIDAgMTAwJTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5IHtcbiAgICAgIGZsZXg6IDAgMCAzNXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDsgfSB9XG4gIC5jcy1yZXZpZXdzLXN1bW1hcnlfX25vdGUge1xuICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBjb2xvcjogIzIxMjEyMTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19ub3RlLXJpZ2h0IHtcbiAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19hbGwtY291bnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cbiAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uLXdyYXBwZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcbiAgICBwYWRkaW5nOiAyLjVyZW0gMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYzsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uLXdyYXBwZXIge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgYm9yZGVyLXRvcDogMDsgfSB9XG4gIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbiwgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uW2Rpc2FibGVkXSwgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbi1zcGFuIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b24taWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS42cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXJldmlld3Mtc3VtbWFyeV9fc3RhcnMge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fc3RhcnMge1xuICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fc3RhcnMge1xuICAgICAgICBmbGV4OiAwIDEgMTAwJTsgfSB9XG4gIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2JhcnMge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmUgaW5zaWRlIG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDIuNXJlbSAwIDA7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIG1heC13aWR0aDogNDByZW07XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2JhcnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB3aWR0aDogYXV0bzsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2JhcnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAyLjVyZW07IH0gfVxuICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19iYXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW46IDAgMCAxcmVtIDA7IH1cbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19iYXI6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYmFyLWxhYmVsIHtcbiAgICAgIGZsZXg6IDAgMSAzLjVlbTsgfVxuICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2Jhci1jb3VudCB7XG4gICAgICB3aWR0aDogMS41ZW07XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2Jhci1wcm9ncmVzcyB7XG4gICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1pbi13aWR0aDogOXJlbTtcbiAgICAgIGhlaWdodDogMC45ZW07XG4gICAgICBtYXJnaW46IDAgMC44cmVtIDAgMC43cmVtO1xuICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDsgfVxuICAgICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYmFyLXByb2dyZXNzLWlubmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZlZGZhNDsgfVxuICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19yYXRpbmdzLWF2ZXJhZ2VzIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAyLjVyZW0gMCAwO1xuICAgIHBhZGRpbmc6IDIuNXJlbSAwIDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDM7IH1cbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19yYXRpbmdzLWF2ZXJhZ2VzLWl0ZW0ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4zZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19yYXRpbmdzLWF2ZXJhZ2VzLWl0ZW0ge1xuICAgICAgICAgIG1heC13aWR0aDogMjVyZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fcmF0aW5ncy1hdmVyYWdlcy1pdGVtIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDQwcmVtOyB9IH1cbiAgICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX3JhdGluZ3MtYXZlcmFnZXMtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kcmV2aWV3cy1zdW1tYXJ5X2JvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9zcGFjaW5nOiAyLjVyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2Rlc2t0b3Atd2lkdGg6IDM1cmVtICFkZWZhdWx0O1xuXG4kcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9idXR0b24taWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuJHJldmlld3Mtc3VtbWFyeV9iYXJzLWZsZXgtZ3JvdzogMSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfYmFycy1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfYmFycy1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9iYXItbWF4LXdpZHRoOiA0MHJlbSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfYmFyLWhlaWdodDogMS4ycmVtICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9iYXItbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfcHJvZ3Jlc3MtYmFyLW1pbi13aWR0aDogOXJlbSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfcHJvZ3Jlc3MtYmFyLWhlaWdodDogMC45ZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X3Byb2dyZXNzLWJhci1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X3Byb2dyZXNzLWJhci1maWxsLWJhY2tncm91bmQ6ICRjb2xvcl9yZXZpZXctYmFyLWFjdGl2ZSAhZGVmYXVsdDtcblxuJHJldmlld3Mtc3VtbWFyeV9ub3RlLWZvbnQtc2l6ZTogNHJlbSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfbm90ZS1sZWZ0LWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X25vdGUtcmlnaHQtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcblxuJHJldmlld3MtcmF0aW5ncy1hdmVyYWdlc19oaWRlOiBmYWxzZSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfYXZlcmFnZXNfbWF4LXdpZHRoOiA0MHJlbSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfYXZlcmFnZXNfbWF4LXdpZHRoLW1vYmlsZTogMjVyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31yZXZpZXdzLXN1bW1hcnkge1xuICAgICRyb290OiAmO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleDogMSAwIDEwMCU7XG4gICAgYm9yZGVyLWJvdHRvbTogJHJldmlld3Mtc3VtbWFyeV9ib3JkZXI7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIGZsZXg6IDAgMCAkcmV2aWV3cy1zdW1tYXJ5X2Rlc2t0b3Atd2lkdGg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHJldmlld3Mtc3VtbWFyeV9zcGFjaW5nO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcmV2aWV3cy1zdW1tYXJ5X3NwYWNpbmc7XG4gICAgICAgIGJvcmRlci1yaWdodDogJHJldmlld3Mtc3VtbWFyeV9ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgJl9fbm90ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHJldmlld3Mtc3VtbWFyeV9ub3RlLWZvbnQtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIGNvbG9yOiAkcmV2aWV3cy1zdW1tYXJ5X25vdGUtbGVmdC1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgIH1cblxuICAgICZfX25vdGUtcmlnaHQge1xuICAgICAgICBjb2xvcjogJHJldmlld3Mtc3VtbWFyeV9ub3RlLXJpZ2h0LWNvbG9yO1xuICAgIH1cblxuICAgICZfX2FsbC1jb3VudCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDFyZW0gMCAycmVtO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi10b3A6ICRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZztcbiAgICAgICAgcGFkZGluZzogJHJldmlld3Mtc3VtbWFyeV9zcGFjaW5nIDA7XG4gICAgICAgIGJvcmRlci10b3A6ICRyZXZpZXdzLXN1bW1hcnlfYm9yZGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJHJldmlld3Mtc3VtbWFyeV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJHJldmlld3Mtc3VtbWFyeV9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICBmb250LXNpemU6ICRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLWZvbnQtc2l6ZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJHJldmlld3Mtc3VtbWFyeV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJHJldmlld3Mtc3VtbWFyeV9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fc3RhcnMge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJykge1xuICAgICAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhcnMge1xuICAgICAgICBmb250LXNpemU6ICRyZXZpZXdzLXN1bW1hcnlfYmFycy1mb250LXNpemU7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmUgaW5zaWRlIG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogJHJldmlld3Mtc3VtbWFyeV9zcGFjaW5nIDAgMDtcbiAgICAgICAgZmxleC1ncm93OiAkcmV2aWV3cy1zdW1tYXJ5X2JhcnMtZmxleC1ncm93O1xuICAgICAgICBjb2xvcjogJHJldmlld3Mtc3VtbWFyeV9iYXJzLWNvbG9yO1xuICAgICAgICBtYXgtd2lkdGg6ICRyZXZpZXdzLXN1bW1hcnlfYmFyLW1heC13aWR0aDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmUnKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkcmV2aWV3cy1zdW1tYXJ5X3NwYWNpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMCAwICRyZXZpZXdzLXN1bW1hcnlfYmFyLW1hcmdpbi1ib3R0b20gMDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtbGFiZWwge1xuICAgICAgICAgICAgZmxleDogMCAxIDMuNWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1jb3VudCB7XG4gICAgICAgICAgICB3aWR0aDogMS41ZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtcHJvZ3Jlc3Mge1xuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRyZXZpZXdzLXN1bW1hcnlfcHJvZ3Jlc3MtYmFyLW1pbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHJldmlld3Mtc3VtbWFyeV9wcm9ncmVzcy1iYXItaGVpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuOHJlbSAwIDAuN3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRyZXZpZXdzLXN1bW1hcnlfcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHJldmlld3Mtc3VtbWFyeV9wcm9ncmVzcy1iYXItZmlsbC1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcmF0aW5ncy1hdmVyYWdlcyB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogJHJldmlld3Mtc3VtbWFyeV9zcGFjaW5nIDAgMDtcbiAgICAgICAgcGFkZGluZzogJHJldmlld3Mtc3VtbWFyeV9zcGFjaW5nIDAgMDtcbiAgICAgICAgYm9yZGVyLXRvcDogJHJldmlld3Mtc3VtbWFyeV9ib3JkZXI7XG4gICAgICAgIEBpZiAoJHJldmlld3MtcmF0aW5ncy1hdmVyYWdlc19oaWRlKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuXG4gICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjNlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmUnKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAkcmV2aWV3cy1zdW1tYXJ5X2F2ZXJhZ2VzX21heC13aWR0aC1tb2JpbGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6ICRyZXZpZXdzLXN1bW1hcnlfYXZlcmFnZXNfbWF4LXdpZHRoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLXRhYnMge1xuICBib3gtc2hhZG93OiAxcHggM3B4IDNyZW0gMCByZ2JhKDMzLCAzMywgMzMsIDAuMjgpOyB9XG4gIC5jcy10YWJzLS1zdG9yZS1waWNrdXAge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtdGFicy0tc3RvcmUtcGlja3VwOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJveC1zaGFkb3c6IDFweCAzcHggM3JlbSAwIHJnYmEoMzMsIDMzLCAzMywgMC4yOCk7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICBjb250ZW50OiBcIlwiOyB9IH1cbiAgLmNzLXRhYnMtLWJhciB7XG4gICAgbWFyZ2luOiAwIDAgMCAtMS41cmVtO1xuICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgLmNzLXRhYnNfX3RyaWdnZXJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdHJpZ2dlcnMge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgI3N0b3JlLXBpY2t1cCB+ICNzaGlwcGluZyAuY3MtdGFic19fdHJpZ2dlcnMge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtdGFic19fdGl0bGUge1xuICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA1cHggMCAjNjk2OTY5O1xuICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xuICAgIHBhZGRpbmctdG9wOiAwLjJyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjJyZW07IH1cbiAgICAuY3MtdGFic19fdGl0bGUtLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIC5jcy10YWJzX190aXRsZS0tYWN0aXZlIC5jcy10YWJzX190aXRsZS1saW5rIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RpdGxlLS1hY3RpdmUgLmNzLXRhYnNfX3RpdGxlLWxpbmsge1xuICAgICAgICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAgICAgICAuY3MtdGFicy0tYmFyIC5jcy10YWJzX190aXRsZS0tYWN0aXZlIC5jcy10YWJzX190aXRsZS1saW5rOmFmdGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICB6LWluZGV4OiAzOyB9XG4gICAgICAgICAgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdGl0bGUtLWFjdGl2ZSAuY3MtdGFic19fdGl0bGUtbGluazp2aXNpdGVkLCAuY3MtdGFicy0tYmFyIC5jcy10YWJzX190aXRsZS0tYWN0aXZlIC5jcy10YWJzX190aXRsZS1saW5rOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gICAgICAgIC5jcy10YWJzX190aXRsZS0tYWN0aXZlIC5jcy10YWJzX190aXRsZS1saW5rOnZpc2l0ZWQsIC5jcy10YWJzX190aXRsZS0tYWN0aXZlIC5jcy10YWJzX190aXRsZS1saW5rOmhvdmVyLCAuY3MtdGFic19fdGl0bGUtLWFjdGl2ZSAuY3MtdGFic19fdGl0bGUtbGluazphY3RpdmUge1xuICAgICAgICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICAuY3MtdGFicy0tYmFyIC5jcy10YWJzX190aXRsZS0tYWN0aXZlIC5jcy10YWJzX190aXRsZS1saW5rOnZpc2l0ZWQsIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RpdGxlLS1hY3RpdmUgLmNzLXRhYnNfX3RpdGxlLWxpbms6aG92ZXIsIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RpdGxlLS1hY3RpdmUgLmNzLXRhYnNfX3RpdGxlLWxpbms6YWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gICAgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdGl0bGUge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyLCBjb2xvciAwLjE1cyBsaW5lYXI7IH1cbiAgICAgIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RpdGxlOm5vdCguY3MtdGFic19fdGl0bGUtLWFjdGl2ZSk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmZGZkOyB9XG4gICAgICAuY3MtdGFicy0tYmFyIC5jcy10YWJzX190aXRsZTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDsgfVxuICAgICAgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdGl0bGU6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7IH1cbiAgLmNzLXRhYnNfX3RpdGxlLWxpbmsge1xuICAgIGNvbG9yOiAjODg4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogNHJlbTtcbiAgICBoZWlnaHQ6IDRyZW07XG4gICAgcGFkZGluZzogMC4xcmVtIDFyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLXRhYnNfX3RpdGxlLWxpbmsge1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMnJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy10YWJzX190aXRsZS1saW5rIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1LjVyZW07XG4gICAgICAgIGhlaWdodDogNS41cmVtOyB9IH1cbiAgICAuY3MtdGFic19fdGl0bGUtbGluazpob3ZlciwgLmNzLXRhYnNfX3RpdGxlLWxpbms6YWN0aXZlLCAuY3MtdGFic19fdGl0bGUtbGluazpmb2N1cywgLmNzLXRhYnNfX3RpdGxlLWxpbms6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5jcy10YWJzX190aXRsZS1saW5rOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RpdGxlLWxpbmsge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbGluZS1oZWlnaHQ6IDEyMCU7XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIHBhZGRpbmc6IDAuNnJlbSAwLjVyZW07XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdGl0bGUtbGluayB7XG4gICAgICAgICAgcGFkZGluZzogMC44cmVtIDEuNXJlbTsgfSB9XG4gICAgICAuY3MtdGFicy0tYmFyIC5jcy10YWJzX190aXRsZS1saW5rOmhvdmVyLCAuY3MtdGFicy0tYmFyIC5jcy10YWJzX190aXRsZS1saW5rOmFjdGl2ZSwgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdGl0bGUtbGluazpmb2N1cywgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdGl0bGUtbGluazp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdGl0bGUtc3Bhbjpub3QoOmVtcHR5KTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiKFwiOyB9XG4gIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RpdGxlLXNwYW46bm90KDplbXB0eSk6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiKVwiOyB9XG4gIC5jcy10YWJzX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiAycmVtOyB9XG5cbiNzdG9yZS1waWNrdXAgfiAjc2hpcHBpbmcgI3RhYi1jdXN0b21lciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwidmVuZG9ycy9pbmNsdWRlLW1lZGlhXCI7XG5cbiR0YWJzX2JveC1zaGFkb3c6ICRib3gtc2hhZG93X2Jhc2UgIWRlZmF1bHQ7XG4kdGFic19pbnNldC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNXB4IDAgJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJHRhYnNfYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kdGFic190YWItdGl0bGUtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJHRhYnNfdGFiLXRpdGxlLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kdGFic190YWItdGl0bGUtZm9udC1zaXplOiAxLjhyZW0gIWRlZmF1bHQ7XG4kdGFic190YWItdGl0bGUtZm9udC1zaXplLW1vYmlsZTogMS4ycmVtICFkZWZhdWx0O1xuJHRhYnNfdGFiLWFjdGl2ZS10aXRsZS1jb2xvcjogJGttYV9jb2xvcl9ibGFjayAhaW1wb3J0YW50ICFkZWZhdWx0O1xuJHRhYnNfdGFiLXRpdGxlLWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG4kdGFic190YWItYWN0aXZlLWJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuJHRhYnNfY29udGVudC1wYWRkaW5nOiAycmVtICFkZWZhdWx0O1xuXG4kdGFic19oZWlnaHQ6IDUuNXJlbSAhZGVmYXVsdDtcbiR0YWJzX2hlaWdodC1tb2JpbGU6IDRyZW0gIWRlZmF1bHQ7XG5cbiR0YWJzLS1iYXJfbWFyZ2luOiAwIDAgMCAtI3skcGFnZV9lZGdlLWd1dHRlcn0gIWRlZmF1bHQ7XG4kdGFicy0tYmFyX3BhZGRpbmc6IDAgJHBhZ2VfZWRnZS1ndXR0ZXIgIWRlZmF1bHQ7XG4kdGFicy0tYmFyX3RhYi10aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHRhYnMtLWJhcl90YWItdGl0bGUtZm9udC13ZWlnaHQ6IDMwMCAhZGVmYXVsdDtcbiR0YWJzLS1iYXJfdGFiLXRpdGxlLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJHRhYnMtLWJhcl90YWItYm9yZGVyLXRvcC1yYWRpdXM6IDVweCAhZGVmYXVsdDtcblxuLiN7JG5zfXRhYnMge1xuICAgICRyb290OiAmO1xuICAgIGJveC1zaGFkb3c6ICR0YWJzX2JveC1zaGFkb3c7XG5cbiAgICAmLS1zdG9yZS1waWNrdXAge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGlmICR0YWJzX2JveC1zaGFkb3cgIT0gbm9uZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogJHRhYnNfYm94LXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tYmFyIHtcbiAgICAgICAgbWFyZ2luOiAkdGFicy0tYmFyX21hcmdpbjtcbiAgICAgICAgcGFkZGluZzogJHRhYnMtLWJhcl9wYWRkaW5nO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkdGFic19ib3JkZXI7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fdHJpZ2dlcnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgI3skcm9vdH0tLWJhciAmIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgICNzdG9yZS1waWNrdXAgfiAjc2hpcHBpbmcgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICR0YWJzX3RhYi10aXRsZS1iYWNrZ3JvdW5kO1xuICAgICAgICBib3gtc2hhZG93OiAkdGFic19pbnNldC1ib3gtc2hhZG93O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwLjJyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC4ycmVtO1xuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdGFic190YWItYWN0aXZlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgI3skcm9vdH1fX3RpdGxlLWxpbmsge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRhYnNfdGFiLWFjdGl2ZS10aXRsZS1jb2xvcjtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9LS1iYXIgJiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdGFicy0tYmFyX3RhYi10aXRsZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnNfdGFiLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOnZpc2l0ZWQsXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0YWJzLS1iYXJfdGFiLXRpdGxlLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjp2aXNpdGVkLFxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRhYnNfdGFiLWFjdGl2ZS10aXRsZS1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICAjeyRyb290fS0tYmFyICYge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0YWJzLS1iYXJfdGFiLXRpdGxlLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWJhciAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyOiAkdGFic19ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXIsIGNvbG9yIDAuMTVzIGxpbmVhcjtcblxuICAgICAgICAgICAgJjpub3QoI3skcm9vdH1fX3RpdGxlLS1hY3RpdmUpOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCR0YWJzX3RhYi10aXRsZS1iYWNrZ3JvdW5kLCA1JSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHRhYnMtLWJhcl90YWItYm9yZGVyLXRvcC1yYWRpdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICR0YWJzLS1iYXJfdGFiLWJvcmRlci10b3AtcmFkaXVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUtbGluayB7XG4gICAgICAgIGNvbG9yOiAkdGFic190YWItdGl0bGUtY29sb3I7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR0YWJzX2hlaWdodC1tb2JpbGU7XG4gICAgICAgIGhlaWdodDogJHRhYnNfaGVpZ2h0LW1vYmlsZTtcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDFyZW07XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkdGFic190YWItdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRhYnNfdGFiLXRpdGxlLWZvbnQtc2l6ZS1tb2JpbGU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjFyZW0gJHRhYnNfY29udGVudC1wYWRkaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICR0YWJzX3RhYi10aXRsZS1mb250LXNpemU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHRhYnNfaGVpZ2h0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkdGFic19oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkdGFic190YWItdGl0bGUtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1iYXIgJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTIwJTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRhYnMtLWJhcl90YWItdGl0bGUtZm9udC1zaXplO1xuICAgICAgICAgICAgcGFkZGluZzogMC42cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdGFicy0tYmFyX3RhYi10aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjhyZW0gMS41cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRhYnMtLWJhcl90YWItdGl0bGUtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZS1zcGFuOm5vdCg6ZW1wdHkpIHtcbiAgICAgICAgI3skcm9vdH0tLWJhciAmIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIihcIjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIpXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogJHRhYnNfY29udGVudC1wYWRkaW5nO1xuICAgIH1cbn1cblxuI3N0b3JlLXBpY2t1cCB+ICNzaGlwcGluZyAjdGFiLWN1c3RvbWVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiLyoqIFN0eWxlcyBmb3JtIF90YWJsZXMubGVzcyBvZiB0aGVtZSBibGFuayBhcmUgbW92ZWQgaGVyZS5cbiAgICogRm9yIHNvbWUgdGFibGVzIHRoZXJlIGlzIG1vYmlsZSBsYXlvdXQgYXBwbGllZCBhbHNvIGZvciB0YWJsZXQgcmVzb2x1dGlvbnNcbiAgICogVmFyaWFibGVzIGZvciB0eXBvZ3JhcHksIGNvbG9ycywgYm9yZGVyIGV0Yy4gYXJlIGFkZGVkXG4qL1xuXG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUvbWl4aW4nO1xuXG4kdGFibGVfYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdGFibGVfYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuXG4kdGFibGVfcm93LWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHRhYmxlX2NvbHVtbi1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kdGFibGVfZXZlbi1yb3ctYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbiR0YWJsZV9oZWFkLWJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiR0YWJsZV9oZWFkLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kdGFibGVfaGVhZC1mb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtNSAhZGVmYXVsdDtcbiR0YWJsZV9oZWFkLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kdGFibGVfaGVhZF9mb250LXNpemUtLW1vYmlsZTogMS40cmVtICFkZWZhdWx0O1xuJHRhYmxlX2hlYWRfbW92ZS1vbi1tb2JpbGU6IHRydWUgIWRlZmF1bHQ7XG5cbiR0YWJsZV9pdGVtLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kdGFibGVfaXRlbS1mb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoICFkZWZhdWx0O1xuJHRhYmxlX2l0ZW0tZm9udC13ZWlnaHQ6IDMwMCAhZGVmYXVsdDtcbiR0YWJsZV9pdGVtLWxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuJHRhYmxlX2l0ZW0tcGFkZGluZzogMC44cmVtIDFyZW0gIWRlZmF1bHQ7XG4kdGFibGVfYWN0aW9ucy1saW5rcy1zZXBhcmF0b3I6IDJweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuLyogc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXG4udGFibGUtd3JhcHBlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYuY2FydCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgJiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZ3JvdXBlZCB7XG4gICAgICAgIHRib2R5Omxhc3QtY2hpbGQge1xuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi50YWJsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlX2JvcmRlci1ib3R0b207XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZV9iYWNrZ3JvdW5kO1xuXG4gICAgJiA+IGNhcHRpb24ge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogJHRhYmxlX2l0ZW0tcGFkZGluZztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICR0YWJsZV9oZWFkLWJvcmRlci1ib3R0b207XG5cbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICR0YWJsZV9oZWFkLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJHRhYmxlX2hlYWQtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0YWJsZV9oZWFkLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHkge1xuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlX2l0ZW0tZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGFibGVfaXRlbS1jb2xvcjtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHRhYmxlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlX3Jvdy1ib3JkZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICR0YWJsZV9jb2x1bW4tYm9yZGVyO1xuXG4gICAgICAgICAgICAgICAgJi5hY3Rpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkdGFibGVfcm93LWJvcmRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGEgKyBhOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC43cmVtIDAgMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkdGFibGVfaXRlbS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR0YWJsZV9hY3Rpb25zLWxpbmtzLXNlcGFyYXRvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgICAgICAgICAgICAgLmFjY291bnQgJiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0YWJsZV9ldmVuLXJvdy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRmb290IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlX2l0ZW0tZm9udC1zaXplO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfZ2FsbGVyeTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1hcmsge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAuYW1vdW50IHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLWV4Y2x1ZGluZy10YXgsXG4gICAgLnByaWNlLWluY2x1ZGluZy10YXgsXG4gICAgLml0ZW1zLXF0eSxcbiAgICAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgICAgICBmb250LXNpemU6ICR0YWJsZV9pdGVtLWZvbnQtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR0YWJsZV9pdGVtLWxpbmUtaGVpZ2h0O1xuICAgIH1cbn1cblxuLy8gIE1vYmlsZSBsYXlvdXRcbkBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgIC50YWJsZS13cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdGFibGUtd3JhcHBlci1tb2JpbGUtbGF5b3V0KCk7XG5cbiAgICAgICAgLnRhYmxlIHtcbiAgICAgICAgICAgICY6bm90KC5jb21wYXJpc29uKSB7XG4gICAgICAgICAgICAgICAgJjpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGFibGUtbW9iaWxlLWxheW91dChcbiAgICAgICAgICAgICAgICAgICAgICAgICRoZWFkX2NvbG9yOiAkdGFibGVfaGVhZC1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICRoZWFkX21vdmUtb24tbW9iaWxlOiAkdGFibGVfaGVhZF9tb3ZlLW9uLW1vYmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRoZWFkX2ZvbnQtc2l6ZS0tbW9iaWxlOiAkdGFibGVfaGVhZF9mb250LXNpemUtLW1vYmlsZVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJHRhYmxlX2hlYWRfbW92ZS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYuYWRkaXRpb25hbC1hdHRyaWJ1dGVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Ym9keSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHtcbiAgICAgICAgdGhlYWQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5IHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHkgdGgsXG4gICAgICAgIHRib2R5IHRkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gU29tZSB0YWJsZXMgZGlzcGxheSBtb2JpbGUgbGF5b3V0IGFsc28gb24gdGFibGV0IHJlc29sdXRpb25cbi50YWJsZS13cmFwcGVyLmNhcnQsXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgdGFibGUtd3JhcHBlci1tb2JpbGUtbGF5b3V0KCk7XG5cbiAgICAudGFibGUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRhYmxlLW1vYmlsZS1sYXlvdXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiLyoqIFN0eWxlcyBmb3JtIF90YWJsZXMubGVzcyBvZiB0aGVtZSBibGFuayBhcmUgbW92ZWQgaGVyZS5cbiAgICogRm9yIHNvbWUgdGFibGVzIHRoZXJlIGlzIG1vYmlsZSBsYXlvdXQgYXBwbGllZCBhbHNvIGZvciB0YWJsZXQgcmVzb2x1dGlvbnNcbiAgICogVmFyaWFibGVzIGZvciB0eXBvZ3JhcHksIGNvbG9ycywgYm9yZGVyIGV0Yy4gYXJlIGFkZGVkXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4udGFibGUtd3JhcHBlciB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAudGFibGUtd3JhcHBlciB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUtd3JhcHBlci5jYXJ0IHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7IH0gfVxuICAudGFibGUtd3JhcHBlci5ncm91cGVkIHRib2R5Omxhc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLnRhYmxlIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC50YWJsZSA+IGNhcHRpb24ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykge1xuICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRkIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDAuOHJlbSAxcmVtOyB9XG4gICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGhlYWQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNkY2RjZGM7IH1cbiAgICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRoZWFkIHRoIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBjb2xvcjogIzIxMjEyMTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZC5hY3Rpb25zIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYzsgfSB9XG4gICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZC5hY3Rpb25zIGEgKyBhOmJlZm9yZSB7XG4gICAgICAgIG1hcmdpbjogMCAwLjdyZW0gMCAwLjVyZW07XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMS42cmVtO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5hY2NvdW50IC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRmb290IHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDsgfSB9XG4gICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCAubWFyayB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCAuYW1vdW50IHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9XG4gIC50YWJsZSAucHJpY2UtZXhjbHVkaW5nLXRheCxcbiAgLnRhYmxlIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAudGFibGUgLml0ZW1zLXF0eSxcbiAgLnRhYmxlIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLnRhYmxlLXdyYXBwZXIge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtOyB9XG4gICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRoZWFkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjJyZW07IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDJyZW07IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZDpiZWZvcmUge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKSBcIjogXCI7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZC5hY3Rpb25zIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYzsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZC5hY3Rpb25zOmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgIC8qIDEgKi8gfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRmb290IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB0aCB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIHdpZHRoOiA3MCU7IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB0ZCB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICB3aWR0aDogMzAlOyB9XG4gICAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGZvb3QgdHIge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgICAgICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRmb290IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtOyB9XG4gICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpLmFkZGl0aW9uYWwtYXR0cmlidXRlcyB0Ym9keSB0aCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykuYWRkaXRpb25hbC1hdHRyaWJ1dGVzIHRib2R5IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwLjVyZW07IH1cbiAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5kYXRhLXRhYmxlLWRlZmluaXRpb24tbGlzdCB0Ym9keSB0aCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHRib2R5IHRoLFxuICAuZGF0YS10YWJsZS1kZWZpbml0aW9uLWxpc3QgdGJvZHkgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cblxuLnRhYmxlLXdyYXBwZXIuY2FydCxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSxcbiAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgcGFkZGluZzogMDsgfVxuICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlOmxhc3QtY2hpbGQsXG4gICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuMnJlbTsgfVxuICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRoZWFkLFxuICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGJvZHkgdGQsXG4gICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRib2R5IHRkIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBwYWRkaW5nOiAwLjJyZW07IH1cbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxkLFxuICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07IH1cbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRib2R5IHRkOmxhc3QtY2hpbGQsXG4gICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGJvZHkgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Ym9keSB0ZDpiZWZvcmUsXG4gICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGJvZHkgdGQ6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKSBcIjogXCI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICMyMTIxMjE7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRib2R5IHRkLmFjdGlvbnMsXG4gICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGJvZHkgdGQuYWN0aW9ucyB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Ym9keSB0ZC5hY3Rpb25zOmJlZm9yZSxcbiAgICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB0Ym9keSB0ZC5hY3Rpb25zOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAvKiAxICovIH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Zm9vdCxcbiAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGZvb3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRmb290IHRoLFxuICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRmb290IHRoIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgd2lkdGg6IDcwJTsgfVxuICAgICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGZvb3QgdGQsXG4gICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGZvb3QgdGQge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgd2lkdGg6IDMwJTsgfVxuICAgICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGZvb3QgdHIsXG4gICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGZvb3QgdHIge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgICAgICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgdGQsXG4gICAgICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRmb290IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTsgfSB9XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC50YWJsZS13cmFwcGVyIC5hY3Rpb25zIC5hY3Rpb24ge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC50YWJsZS13cmFwcGVyIC5hY3Rpb25zIC5hY3Rpb246OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5oZG14X190aWNrZXRzIC5tZXNzYWdlLmluZm8uZW1wdHkge1xuICBwYWRkaW5nOiAxLjFyZW0gNC41cmVtIDEuMXJlbTsgfVxuXG4uaGRteF9fdGlja2V0LXJlcGx5IC5hY3Rpb25zLXRvb2xiYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgIC5oZG14X190aWNrZXQtcmVwbHkgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiAyMHB4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfSB9XG5cbi5oZG14X190aWNrZXQtcmVwbHkgLnNlY29uZGFyeSA+IGJ1dHRvbiB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAxLjJyZW0gIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGJvcmRlci1yYWRpdXM6IDI3cHg7XG4gIHRyYW5zaXRpb246IDAuM3MgYWxsO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG1pbi13aWR0aDogMTJyZW07IH1cbiAgLmhkbXhfX3RpY2tldC1yZXBseSAuc2Vjb25kYXJ5ID4gYnV0dG9uOmVuYWJsZWQge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuaGRteF9fdGlja2V0LXJlcGx5IC5zZWNvbmRhcnkgPiBidXR0b246aG92ZXIsIC5oZG14X190aWNrZXQtcmVwbHkgLnNlY29uZGFyeSA+IGJ1dHRvbjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjYzEyNzJmO1xuICAgIGNvbG9yOiAjYzEyNzJmOyB9XG4gIC53aXNobGlzdC1pbmRleC1pbmRleCAuaGRteF9fdGlja2V0LXJlcGx5IC5zZWNvbmRhcnkgPiBidXR0b24ge1xuICAgIHotaW5kZXg6IDE7IH1cblxuLmhkbXhfX3RpY2tldC1yZXBseSA+IGJ1dHRvbi5hY3Rpb24udXBkYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uaGRteF9fdGlja2V0LXN1bW1hcnkge1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB3aWR0aDogNjUlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgLmhkbXhfX3RpY2tldC1zdW1tYXJ5IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmhkbXhfX3RpY2tldC1zdW1tYXJ5IHRoIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5oZG14X190aWNrZXQtc3VtbWFyeSB0ZCB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOyB9XG5cbi5oZG14X19tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCA1cHggM3B4ICNlNWU1ZTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDEuNXJlbTsgfVxuXG4uaGRteC1tZXNzYWdlX19ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC41cmVtIDAgIWltcG9ydGFudDsgfVxuXG4uaGRteF9fdGlja2V0cy10YWJsZSB7XG4gIG1hcmdpbi10b3A6IDNyZW07IH1cbiAgLmhkbXhfX3RpY2tldHMtdGFibGUgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODc4Nzg3OyB9XG4gICAgLmhkbXhfX3RpY2tldHMtdGFibGUgdHI6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgLmhkbXhfX3RpY2tldHMtdGFibGUgdGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfSB9XG4gIC5oZG14X190aWNrZXRzLXRhYmxlIC5zdWJqZWN0IHtcbiAgICB3aWR0aDogMTg1cHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgLmhkbXhfX3RpY2tldHMtdGFibGUgLnN1YmplY3Qge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5oZG14X190aWNrZXRzLXRhYmxlIC5kZXRhaWxzIHtcbiAgICB3aWR0aDogMTUwcHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgLmhkbXhfX3RpY2tldHMtdGFibGUgLmRldGFpbHM6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gICAgLmhkbXhfX3RpY2tldHMtdGFibGUgLmRldGFpbHMgYSB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIHRyYW5zaXRpb246IDAuM3MgYWxsO1xuICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0NXB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuaGRteF9fdGlja2V0cy10YWJsZSAuZGV0YWlscyBhOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgLmhkbXhfX3RpY2tldHMtdGFibGUgLmRldGFpbHMgYTo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPSczNCcgaGVpZ2h0PScyNCcgZmlsbD0nJTIzYzEyNzJmJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGwtcnVsZT0nZXZlbm9kZCcgY2xpcC1ydWxlPSdldmVub2RkJyUzRSUzQ3BhdGggZD0nTTMxLjg4MyAxMmwtNy41MjcgNi4yMzUuNjQ0Ljc2NSA5LTcuNTIxLTktNy40NzktLjY0NS43NjQgNy41MjkgNi4yMzZoLTMxLjg4NHYxaDIxLjg4M3onLyUzRSUzQy9zdmclM0VcIik7XG4gICAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgcmlnaHQ6IC00NXB4OyB9XG5cbi5oZG14X190aWNrZXQtdmlldyAuYmFjay1saW5rIGEge1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgdHJhbnNpdGlvbjogMC4zcyBhbGw7XG4gIGNvbG9yOiAjYzEyNzJmO1xuICBmb250LXdlaWdodDogMzAwO1xuICBtYXJnaW4tcmlnaHQ6IDQ1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaGRteF9fdGlja2V0LXZpZXcgLmJhY2stbGluayBhOmhvdmVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmhkbXhfX3RpY2tldC12aWV3IC5iYWNrLWxpbmsgYTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzM0JyBoZWlnaHQ9JzI0JyBmaWxsPSclMjNjMTI3MmYnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnJTNFJTNDcGF0aCBkPSdNMzEuODgzIDEybC03LjUyNyA2LjIzNS42NDQuNzY1IDktNy41MjEtOS03LjQ3OS0uNjQ1Ljc2NCA3LjUyOSA2LjIzNmgtMzEuODg0djFoMjEuODgzeicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgcmlnaHQ6IC00NXB4OyB9XG4gIC5oZG14X190aWNrZXQtdmlldyAuYmFjay1saW5rIGEgc21hbGwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNhcmRfX2FjdGlvbiBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIGNvbG9yOiAjYzEyNzJmICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiB0YWJsZS1tb2JpbGUtbGF5b3V0LWhvb2soKSB7XG59XG5cbkBtaXhpbiB0YWJsZS13cmFwcGVyLW1vYmlsZS1sYXlvdXQtaG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUvaG9vayc7XG5cbiRoZWFkX2NvbG9yOiAkY29sb3JfbWluZXNoYWZ0ICFkZWZhdWx0O1xuJGhlYWRfbW92ZS1vbi1tb2JpbGU6IHRydWUgIWRlZmF1bHQ7XG4kaGVhZF9mb250LXNpemUtLW1vYmlsZTogMS40cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gdGFibGUtbW9iaWxlLWxheW91dChcbiAgICAkaGVhZF9jb2xvcjogJGhlYWRfY29sb3IsXG4gICAgJGhlYWRfbW92ZS1vbi1tb2JpbGU6ICRoZWFkX21vdmUtb24tbW9iaWxlLFxuICAgICRoZWFkX2ZvbnQtc2l6ZS0tbW9iaWxlOiAkaGVhZF9mb250LXNpemUtLW1vYmlsZVxuKSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtO1xuICAgIH1cblxuICAgIHRoZWFkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICB0Ym9keSB0ZCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJGhlYWRfZm9udC1zaXplLS1tb2JpbGU7XG4gICAgICAgIHBhZGRpbmc6IDAuMnJlbTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaGVhZF9tb3ZlLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtdGgpICc6ICc7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRoZWFkX2NvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yX2FsdG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRmb290IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICB9XG4gICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzdHlsZWxpbnQtZW5hYmxlXG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHRhYmxlLW1vYmlsZS1sYXlvdXQtaG9vaygpO1xufVxuXG5AbWl4aW4gdGFibGUtd3JhcHBlci1tb2JpbGUtbGF5b3V0KCkge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gVG8gaGlkZSB1bm5lY2Vzc2FyeSBob3Jpem9udGFsIHNjcm9sbGJhciBpbiBTYWZhcmlcblxuICAgIEBpbmNsdWRlIHRhYmxlLXdyYXBwZXItbW9iaWxlLWxheW91dC1ob29rKCk7XG59XG4iLCJAaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL3RhYmxlL3RhYmxlLnNjc3NcIjtcbkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiY29uZmlnL2NvbG9yc1wiO1xuQGltcG9ydCBcImNvbmZpZy9taXhpbnNcIjtcblxuLnRhYmxlLXdyYXBwZXIge1xuICAuYWN0aW9ucyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAuYWN0aW9uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFpnxYJvc3plbmlhIC0gcHJvZmlsIHXFvHl0a293bmlrYVxuLmhkbXgge1xuICAmX190aWNrZXRzIHtcbiAgICAubWVzc2FnZS5pbmZvLmVtcHR5IHtcbiAgICAgIHBhZGRpbmc6IDEuMXJlbSA0LjVyZW0gMS4xcmVtO1xuICAgIH1cbiAgfVxuXG4gICZfX3RpY2tldC1yZXBseSB7XG4gICAgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMjBweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2Vjb25kYXJ5ID4gYnV0dG9uIHtcbiAgICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmc6IDEuMnJlbSAhaW1wb3J0YW50O1xuICAgICAgQGluY2x1ZGUga21hLWJ1dHRvbi0tc2Vjb25kYXJ5O1xuICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgLndpc2hsaXN0LWluZGV4LWluZGV4ICYge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gYnV0dG9uLmFjdGlvbi51cGRhdGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX190aWNrZXQtc3VtbWFyeSB7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICB3aWR0aDogNjUlO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIHRoIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuICAgIHRkIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cbiAgfVxuXG4gICZfX21lc3NhZ2Uge1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggNXB4IDNweCAka21hX2NvbG9yX2dyZXktMjAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgcGFkZGluZzogMS41cmVtO1xuICB9XG5cbiAgJi1tZXNzYWdlX19ib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMC41cmVtIDAgIWltcG9ydGFudDtcbiAgfVxuXG4gICZfX3RpY2tldHMtdGFibGUge1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG5cbiAgICB0ciB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGttYV9jb2xvcl9ncmV5LTUwMDtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICB9XG4gICAgfVxuICAgIC5zdWJqZWN0IHtcbiAgICAgIHdpZHRoOiAxODVweDtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmRldGFpbHMge1xuICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUga21hLWxpbms7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fdGlja2V0LXZpZXcge1xuICAgIC5iYWNrLWxpbmsgYSB7XG4gICAgICBAaW5jbHVkZSBrbWEtbGluaztcblxuICAgICAgc21hbGwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uY2FyZF9fYWN0aW9uIGJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMCAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtdG9vbGJhciB7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy10b29sYmFyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7IH0gfVxuICAuY3MtdG9vbGJhcl9faXRlbSB7XG4gICAgbWFyZ2luOiAwIDAgMS41cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy10b29sYmFyX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMS41cmVtO1xuICAgICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAgIC5jcy10b29sYmFyX19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAgICAgLmNzLXRvb2xiYXJfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy10b29sYmFyX19pdGVtLS1wYWdpbmF0aW9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH0gfVxuICAgIC5jcy10b29sYmFyX19pdGVtLS1saW1pdGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmNzLXRvb2xiYXJfX2l0ZW0tLW9mZmNhbnZhcyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNyZW07XG4gICAgICB6LWluZGV4OiAxOyB9XG4gIC5jcy10b29sYmFyIC5maWVsZCAubGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIHdpZHRoOiBhdXRvOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtdG9vbGJhciAuY3MtaHRtbC1zZWxlY3Qge1xuICAgIG1heC13aWR0aDogMjByZW07IH0gfVxuICAuY3MtdG9vbGJhciAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXIge1xuICAgIG1pbi1oZWlnaHQ6IDMuNXJlbTsgfVxuICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b24sIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbltkaXNhYmxlZF0sIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IGF1dG87XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG4gIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbiBzdmcge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBsZWZ0OiAyLjNyZW07XG4gICAgbWF4LXdpZHRoOiAyLjNyZW07XG4gICAgbWF4LWhlaWdodDogMi4zcmVtOyB9XG4gIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbi1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cblxuLnRvb2xiYXItYW1vdW50IHtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1zb3J0ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXNvcnRlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q1ZDVkNTsgfSB9XG4gIC5jcy1zb3J0ZXJfX2xhYmVsIHtcbiAgICBwYWRkaW5nOiAwIDFyZW0gMCAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgLmNzLXNvcnRlcl9fc2VsZWN0IHtcbiAgICB3aWR0aDogMHB4OyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1saW1pdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMXJlbSAwIDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5jcy1saW1pdGVyX19sYWJlbCxcbiAgLmZpZWxkIC5jcy1saW1pdGVyX19sYWJlbCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgIC5jcy1saW1pdGVyX19sYWJlbC0tcHJlZml4LFxuICAgIC5maWVsZCAuY3MtbGltaXRlcl9fbGFiZWwtLXByZWZpeCB7XG4gICAgICBwYWRkaW5nOiAwIDFyZW0gMCAxcmVtOyB9XG4gICAgLmNzLWxpbWl0ZXJfX2xhYmVsLS1zdWZmaXgsXG4gICAgLmZpZWxkIC5jcy1saW1pdGVyX19sYWJlbC0tc3VmZml4IHtcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDFyZW07IH1cbiAgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1pdGVtIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24taXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAyNHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMjRweDsgfVxuICAgIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyNHB4OyB9XG4gIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLW51bWJlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMy41cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDMuNXJlbTtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAuM2VtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyOyB9XG4gICAgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyLCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1udW1iZXI6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLW51bWJlcjpob3ZlciwgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyOmZvY3VzLCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1udW1iZXI6YWN0aXZlIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsgfVxuICAgIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLWl0ZW0tLWN1cnJlbnQgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyIHtcbiAgICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLWl0ZW0tLWN1cnJlbnQgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyLCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1pdGVtLS1jdXJyZW50IC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLW51bWJlcjpob3ZlciwgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24taXRlbS0tY3VycmVudCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1udW1iZXI6Zm9jdXMsIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLWl0ZW0tLWN1cnJlbnQgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgLmNzLWxpbWl0ZXIgLmNzLWh0bWwtc2VsZWN0LFxuICAuY3MtbGltaXRlciAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXIsXG4gIC5jcy1saW1pdGVyIHNlbGVjdCB7XG4gICAgbWluLXdpZHRoOiAzcmVtO1xuICAgIG1pbi1oZWlnaHQ6IDMuNXJlbTsgfVxuXG4uY3MtZGFzaGJvYXJkIC5saW1pdGVyLWxhYmVsLFxuLmNzLWRhc2hib2FyZCAubGltaXRlci10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIG1hcmdpbi1yaWdodDogMC41cmVtOyB9XG5cbi5jcy1kYXNoYm9hcmQgLmxpbWl0ZXItdGV4dCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLmNzLWRhc2hib2FyZCAubGltaXRlci1vcHRpb25zIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLXBhZ2luYXRpb24ge1xuICAvKipcbiAgICAgKiBJbnB1dCBtb2RlXG4gICAgICovXG4gIC8qKlxuICAgICAqIEJ1bGxldCBwb2ludHMgbW9kZVxuICAgICAqLyB9XG4gIC5jcy1wYWdpbmF0aW9uX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLXBhZ2luYXRpb25fX3ByZWZpeC1sYWJlbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMXJlbSAwIDA7IH1cbiAgLmNzLXBhZ2luYXRpb25fX3BhZ2UtcHJvdmlkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGdhcDogMCAwLjVyZW07IH1cbiAgLmNzLXBhZ2luYXRpb25fX3BhZ2UtcHJvdmlkZXItaW5wdXQuaW5wdXQtdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC1oZWlnaHQ6IDMuNXJlbTtcbiAgICB3aWR0aDogNC41ZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtOyB9XG4gIC5jcy1wYWdpbmF0aW9uX19wYWdlLXByb3ZpZGVyLWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgfVxuICAuY3MtcGFnaW5hdGlvbl9faXRlbXMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuY3MtcGFnaW5hdGlvbl9faXRlbSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5jcy1wYWdpbmF0aW9uX19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDI0cHg7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAyNHB4OyB9XG4gICAgLmNzLXBhZ2luYXRpb25fX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyNHB4OyB9XG4gIC5jcy1wYWdpbmF0aW9uX19udW1iZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDMuNXJlbTtcbiAgICBtaW4taGVpZ2h0OiAzLjVyZW07XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwLjNlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjsgfVxuICAgIC5jcy1wYWdpbmF0aW9uX19udW1iZXIsIC5jcy1wYWdpbmF0aW9uX19udW1iZXI6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy1wYWdpbmF0aW9uX19udW1iZXI6aG92ZXIsIC5jcy1wYWdpbmF0aW9uX19udW1iZXI6Zm9jdXMsIC5jcy1wYWdpbmF0aW9uX19udW1iZXI6YWN0aXZlIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsgfVxuICAgIC5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IC5jcy1wYWdpbmF0aW9uX19udW1iZXIsIC5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IC5jcy1wYWdpbmF0aW9uX19udW1iZXI6aG92ZXIsIC5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IC5jcy1wYWdpbmF0aW9uX19udW1iZXI6Zm9jdXMsIC5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IC5jcy1wYWdpbmF0aW9uX19udW1iZXI6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAuY3MtcGFnaW5hdGlvbl9fcHJldiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmNzLXBhZ2luYXRpb25fX25leHQge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07IH1cbiAgLmNzLXBhZ2luYXRpb25fX2FjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtaW4td2lkdGg6IDMuNXJlbTtcbiAgICBtaW4taGVpZ2h0OiAzLjVyZW07XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uLWljb24ge1xuICAgIHdpZHRoOiAyLjVyZW07XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIGZpbGw6ICMzMzMzMzM7XG4gICAgdHJhbnNpdGlvbjogZmlsbCAwLjE1cyBsaW5lYXI7IH1cbiAgICAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uLS1kaXNhYmxlZCAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uLWljb24gKiB7XG4gICAgICBmaWxsOiAjODc4Nzg3OyB9XG4gICAgLmNzLXBhZ2luYXRpb25fX2FjdGlvbjpub3QoLmNzLXBhZ2luYXRpb25fX2FjdGlvbi0tZGlzYWJsZWQpOmhvdmVyIC5jcy1wYWdpbmF0aW9uX19hY3Rpb24taWNvbiAqLFxuICAgIC5jcy1wYWdpbmF0aW9uX19hY3Rpb246bm90KC5jcy1wYWdpbmF0aW9uX19hY3Rpb24tLWRpc2FibGVkKTpmb2N1cyAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uLWljb24gKixcbiAgICAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uOm5vdCguY3MtcGFnaW5hdGlvbl9fYWN0aW9uLS1kaXNhYmxlZCk6YWN0aXZlIC5jcy1wYWdpbmF0aW9uX19hY3Rpb24taWNvbiAqIHtcbiAgICAgIGZpbGw6ICNjMTI3MmY7IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLXZpZXdtb2RlLXN3aXRjaGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX2xhYmVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAxcmVtIDAgMDsgfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGVzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZXMge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTsgfSB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZTpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAyNHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMjRweDsgfVxuICAgIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZTpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyNHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDI0cHg7IH1cbiAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMy41cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDMuNXJlbTtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAuM2VtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuN2VtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuN2VtOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbiwgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjpob3ZlciwgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjpmb2N1cywgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjphY3RpdmUge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6ICMyMTIxMjE7XG4gICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0OyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLS1jdXJyZW50IC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1hY3Rpb24sIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS0tY3VycmVudCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOmhvdmVyLCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtLWN1cnJlbnQgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjpmb2N1cywgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLS1jdXJyZW50IC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1hY3Rpb246YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtaWNvbiB7XG4gICAgZmlsbDogY3VycmVudENvbG9yOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWljb24tLWdyaWQge1xuICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgIGhlaWdodDogMS4xcmVtOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWljb24tLWxpc3Qge1xuICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgIGhlaWdodDogMS4xcmVtOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLS1jdXJyZW50IC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uIHtcbiAgICAgIGZpbGw6ICMzMjRkY2Y7IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtaWNvbiArIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1sYWJlbCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLXZpZXdtb2RlLXN3aXRjaGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgIC5jcy12aWV3bW9kZS1zd2l0Y2hlciB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9IH1cbiAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19sYWJlbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMXJlbSAwIDA7IH1cbiAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlcyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdhcDogMCAxcmVtOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGVzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07IH0gfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGU6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMjRweDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDI0cHg7IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGU6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyNHB4OyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1hY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDMuNXJlbTtcbiAgICBtaW4taGVpZ2h0OiAzLjVyZW07XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwLjNlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuN2VtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuN2VtOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbiwgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjpob3ZlciwgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjpmb2N1cywgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjphY3RpdmUge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6ICMyMTIxMjE7XG4gICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0OyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLS1jdXJyZW50IC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1hY3Rpb24sIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS0tY3VycmVudCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOmhvdmVyLCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtLWN1cnJlbnQgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjpmb2N1cywgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLS1jdXJyZW50IC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1hY3Rpb246YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtaWNvbiBwYXRoIHtcbiAgICBmaWxsOiAjMzMzMzMzOyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uLS1ncmlkIHtcbiAgICB3aWR0aDogMi40cmVtO1xuICAgIGhlaWdodDogMi40cmVtOyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uLS1saXN0IHtcbiAgICB3aWR0aDogMi40cmVtO1xuICAgIGhlaWdodDogMi40cmVtOyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uOmhvdmVyIHBhdGgsXG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS0tY3VycmVudCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtaWNvbiBwYXRoIHtcbiAgICBmaWxsOiAjYzEyNzJmOyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uICsgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy10b29sYmFyIHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXRvb2xiYXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsgfSB9XG4gIC5jcy10b29sYmFyX19pdGVtIHtcbiAgICBtYXJnaW46IDAgMCAxLjVyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXRvb2xiYXJfX2l0ZW0ge1xuICAgICAgICBtYXJnaW46IDAgMCAxLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgICAgLmNzLXRvb2xiYXJfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy10b29sYmFyX19pdGVtLS1wYWdpbmF0aW9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuICAgIC5jcy10b29sYmFyX19pdGVtLS1saW1pdGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmNzLXRvb2xiYXJfX2l0ZW0tLW9mZmNhbnZhcyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNyZW07XG4gICAgICB6LWluZGV4OiAxOyB9XG4gIC5jcy10b29sYmFyIC5maWVsZCAubGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy10b29sYmFyIC5jcy1odG1sLXNlbGVjdCB7XG4gICAgbWF4LXdpZHRoOiAyMHJlbTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXRvb2xiYXIgLmNzLWh0bWwtc2VsZWN0IHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmNzLXRvb2xiYXIgLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyIHtcbiAgICBtaW4taGVpZ2h0OiAzLjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMXJlbSAwLjhyZW0gMXJlbSAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOHJlbSAhaW1wb3J0YW50OyB9XG4gICAgLmNzLXRvb2xiYXIgLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyLWNhcmV0LWFycm93IHtcbiAgICAgIHJpZ2h0OiAtMS4ycmVtOyB9XG4gICAgICAuY3MtdG9vbGJhciAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItY2FyZXQtYXJyb3c6OmJlZm9yZSwgLmNzLXRvb2xiYXIgLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyLWNhcmV0LWFycm93OjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgICB3aWR0aDogMC45cmVtO1xuICAgICAgICBoZWlnaHQ6IDJweDsgfVxuICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b24sIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbltkaXNhYmxlZF0sIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IGF1dG87XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG4gIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbiBzdmcge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBsZWZ0OiAyLjNyZW07XG4gICAgbWF4LXdpZHRoOiAyLjNyZW07XG4gICAgbWF4LWhlaWdodDogMi4zcmVtOyB9XG4gIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbi1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiR0b29sYmFyX2Rpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kdG9vbGJhcl9mbGV4LWFsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG4kdG9vbGJhcl9mbGV4LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhZGVmYXVsdDtcbiR0b29sYmFyX2ZsZXgtd3JhcDogd3JhcCAhZGVmYXVsdDtcbiR0b29sYmFyX2ZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJHRvb2xiYXJfZm9udC13ZWlnaHQ6IGluaGVyaXQgIWRlZmF1bHQ7XG4kdG9vbGJhcl90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuXG4kdG9vbGJhcl9lbGVtZW50cy1wYWRkaW5nLXRhYmxldC11cDogMCAhZGVmYXVsdDtcbiR0b29sYmFyX2VsZW1lbnRzLW1hcmdpbjogMCAwIDEuNXJlbSAhZGVmYXVsdDtcbiR0b29sYmFyX2VsZW1lbnRzLW1hcmdpbi10YWJsZXQtdXA6IDAgMCAxLjVyZW0gIWRlZmF1bHQ7XG5cbiR0b29sYmFyX3NlbGVjdC1taW4taGVpZ2h0OiAzLjVyZW0gIWRlZmF1bHQ7XG4kdG9vbGJhcl9pbnB1dC1tYXgtaGVpZ2h0OiAkdG9vbGJhcl9zZWxlY3QtbWluLWhlaWdodCAhZGVmYXVsdDtcblxuJHRvb2xiYXJfc2VsZWN0cy1tYXgtd2lkdGgtdGFibGV0OiAyMHJlbSAhZGVmYXVsdDsgLy8gc2V0ICdub25lJyB0byBkaXNhYmxlXG5cbiR0b29sYmFyX2NvbXBvbmVudHMtYWxpZ25tZW50OiAoXG4gICAgYW1vdW50OiBsZWZ0LFxuICAgIHNvcnRlcjogbGVmdCxcbiAgICBsaW1pdGVyOiBsZWZ0LFxuICAgIHZpZXdtb2RlLXN3aXRjaGVyOiBsZWZ0LFxuICAgIHBhZ2luYXRpb246IHJpZ2h0LFxuKSAhZGVmYXVsdDtcblxuJHRvb2xiYXJfYW1vdW50LWFsaWduOiBsZWZ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfc29ydGVyLWFsaWduOiBsZWZ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfbGltaXRlci1hbGlnbjogbGVmdCAhZGVmYXVsdDtcbiR0b29sYmFyX3ZpZXdtb2RlLXN3aXRjaGVyLWFsaWduOiBsZWZ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfcGFnaW5hdGlvbi1hbGlnbjogcmlnaHQgIWRlZmF1bHQ7XG5cbiR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJHRvb2xiYXJfZmlsdGVycy1idXR0b24taWNvbi1wb3M6ICdsZWZ0JyAhZGVmYXVsdDtcblxuLiN7JG5zfXRvb2xiYXIge1xuICAgICRyb290OiAmO1xuXG4gICAgZm9udC1zaXplOiAkdG9vbGJhcl9mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICR0b29sYmFyX2ZvbnQtd2VpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiAkdG9vbGJhcl90ZXh0LXRyYW5zZm9ybTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogJHRvb2xiYXJfZGlzcGxheTtcblxuICAgICAgICBAaWYgJHRvb2xiYXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdG9vbGJhcl9mbGV4LWFsaWduLWl0ZW1zO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdG9vbGJhcl9mbGV4LWp1c3RpZnktY29udGVudDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogJHRvb2xiYXJfZmxleC13cmFwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAkdG9vbGJhcl9lbGVtZW50cy1tYXJnaW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWFyZ2luOiAkdG9vbGJhcl9lbGVtZW50cy1tYXJnaW4tdGFibGV0LXVwO1xuICAgICAgICAgICAgcGFkZGluZzogJHRvb2xiYXJfZWxlbWVudHMtcGFkZGluZy10YWJsZXQtdXA7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG1vZGlmaWVyLCAkdmFsdWUgaW4gJHRvb2xiYXJfY29tcG9uZW50cy1hbGlnbm1lbnQge1xuICAgICAgICAgICAgQGlmICR2YWx1ZSA9PSByaWdodCB7XG4gICAgICAgICAgICAgICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICR0b29sYmFyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW1pdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogM3JlbTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZmllbGQgLmxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR0b29sYmFyX2ZvbnQtd2VpZ2h0O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAuI3skbnN9aHRtbC1zZWxlY3Qge1xuICAgICAgICBAaWYgJHRvb2xiYXJfc2VsZWN0cy1tYXgtd2lkdGgtdGFibGV0ICE9IG5vbmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAkdG9vbGJhcl9zZWxlY3RzLW1heC13aWR0aC10YWJsZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190cmlnZ2VyIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICR0b29sYmFyX3NlbGVjdC1taW4taGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZmlsdGVycy1idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJHRvb2xiYXJfZmlsdGVycy1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJHRvb2xiYXJfZmlsdGVycy1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgbWF4LXdpZHRoOiAyLjNyZW07XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyLjNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19maWx0ZXJzLWJ1dHRvbi1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvYW1vdW50LnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL3NvcnRlci5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbGJhci9saW1pdGVyLnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL3BhZ2luYXRpb24uc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvdmlld21vZGUtc3dpdGNoZXIuc2Nzcyc7XG4iLCIudG9vbGJhci1hbW91bnQge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJHNvcnRlcl9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHNvcnRlcl9mbGV4LWFsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbiRzb3J0ZXJfbGFiZWwtcGFkZGluZzogMCAxcmVtIDAgMCAhZGVmYXVsdDtcbiRzb3J0ZXJfbGFiZWwtd2hpdGUtc3BhY2U6IG5vd3JhcCAhZGVmYXVsdDtcblxuLiN7JG5zfXNvcnRlciB7XG4gICAgZGlzcGxheTogJHNvcnRlcl9kaXNwbGF5O1xuXG4gICAgQGlmICRzb3J0ZXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgYWxpZ24taXRlbXM6ICRzb3J0ZXJfZmxleC1hbGlnbi1pdGVtcztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRrbWFfYm9yZGVyX2Jhc2U7XG4gICAgfVxuXG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIHBhZGRpbmc6ICRzb3J0ZXJfbGFiZWwtcGFkZGluZztcbiAgICAgICAgd2hpdGUtc3BhY2U6ICRzb3J0ZXJfbGFiZWwtd2hpdGUtc3BhY2U7XG4gICAgfVxuXG4gICAgJl9fc2VsZWN0IHtcbiAgICAgICAgd2lkdGg6IDBweDtcbiAgICB9XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIHBhZ2luYXRpb24tbGlzdC1ob29rKCkge1xufVxuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWhvb2soKSB7XG59XG5cbkBtaXhpbiBwYWdpbmF0aW9uLW51bWJlci1ob29rKCkge1xufVxuXG5AbWl4aW4gcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQtaG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiY29uZmlnL2JyZWFrcG9pbnRzXCI7XG5AaW1wb3J0IFwidmVuZG9ycy9pbmNsdWRlLW1lZGlhXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90b29sYmFyL21peGlucy5zY3NzXCI7XG5cbiRsaW1pdGVyX2Rpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kbGltaXRlcl9mbGV4LWFsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbiRsaW1pdGVyX2xhYmVscy13aGl0ZS1zcGFjZTogbm93cmFwICFkZWZhdWx0O1xuJGxpbWl0ZXJfbWFyZ2luOiAwIDFyZW0gMCAwO1xuJGxpbWl0ZXJfcHJlZml4LWxhYmVsLXBhZGRpbmc6IDAgMXJlbSAwIDFyZW0gIWRlZmF1bHQ7XG4kbGltaXRlcl9zdWZmaXgtbGFiZWwtcGFkZGluZzogMCAwIDAgMXJlbSAhZGVmYXVsdDtcblxuJHNvcnRlcl9zZWxlY3QtbWluLWhlaWdodDogJHRvb2xiYXJfc2VsZWN0LW1pbi1oZWlnaHQgIWRlZmF1bHQ7XG5cbi4jeyRuc31saW1pdGVyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGRpc3BsYXk6ICRsaW1pdGVyX2Rpc3BsYXk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogJGxpbWl0ZXJfbWFyZ2luO1xuXG4gICAgQGlmICRsaW1pdGVyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiAkbGltaXRlcl9mbGV4LWFsaWduLWl0ZW1zO1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgICYsXG4gICAgICAgIC5maWVsZCAmIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiAkbGltaXRlcl9sYWJlbHMtd2hpdGUtc3BhY2U7XG5cbiAgICAgICAgICAgICYtLXByZWZpeCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJGxpbWl0ZXJfcHJlZml4LWxhYmVsLXBhZGRpbmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXN1ZmZpeCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJGxpbWl0ZXJfc3VmZml4LWxhYmVsLXBhZGRpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wYWdpbmF0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1saXN0KCk7XG4gICAgfVxuXG4gICAgJl9fcGFnaW5hdGlvbi1pdGVtIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtKCk7XG4gICAgfVxuXG4gICAgJl9fcGFnaW5hdGlvbi1udW1iZXIge1xuICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlcigpO1xuXG4gICAgICAgICN7JHJvb3R9X19wYWdpbmF0aW9uLWl0ZW0tLWN1cnJlbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudCgpO1xuICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC4jeyRuc31odG1sLXNlbGVjdCxcbiAgICAuI3skbnN9aHRtbC1zZWxlY3RfX3RyaWdnZXIsXG4gICAgc2VsZWN0IHtcbiAgICAgICAgbWluLXdpZHRoOiAzcmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAkc29ydGVyX3NlbGVjdC1taW4taGVpZ2h0O1xuICAgIH1cbn1cblxuLy91c2VyIGFyZWEgbGltaXRlciBhZnRlciByZWZhY3RvclxuXG4uI3skbnN9ZGFzaGJvYXJkIHtcbiAgICAubGltaXRlci1sYWJlbCxcbiAgICAubGltaXRlci10ZXh0IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIH1cblxuICAgIC5saW1pdGVyLXRleHQge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIC5saW1pdGVyLW9wdGlvbnMge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvaG9va3Muc2Nzcyc7XG5cbiRwYWdpbmF0aW9uLWxpc3RfZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpc3RfZmxleC1hbGlnbi1pdGVtczogc3RyZXRjaCAhZGVmYXVsdDtcbkBtaXhpbiBwYWdpbmF0aW9uLWxpc3Qge1xuICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcbiAgICBkaXNwbGF5OiAkcGFnaW5hdGlvbi1saXN0X2Rpc3BsYXk7XG5cbiAgICBAaWYgJGxpbWl0ZXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgYWxpZ24taXRlbXM6ICRwYWdpbmF0aW9uLWxpc3RfZmxleC1hbGlnbi1pdGVtcztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWxpc3QtaG9vaygpO1xufVxuXG4kcGFnaW5hdGlvbi1pdGVtX21hcmdpbjogMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW1fcGFkZGluZzogMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW1fYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtX2JvcmRlci1jb2xvcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtX2JvcmRlcjogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItd2lkdGggc29saWRcbiAgICAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW1fcm91bmQtZWRnZXM6IHRydWUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW1fYXMtY2lyY2xlOiBmYWxzZSAhZGVmYXVsdDtcblxuQG1peGluIHBhZ2luYXRpb24taXRlbSB7XG4gICAgbWFyZ2luOiAkcGFnaW5hdGlvbi1pdGVtX21hcmdpbjtcbiAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtX3BhZGRpbmc7XG4gICAgYm9yZGVyOiAkcGFnaW5hdGlvbi1pdGVtX2JvcmRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJHBhZ2luYXRpb24taXRlbV9tYXJnaW4gPT1cbiAgICAgICAgMCBhbmRcbiAgICAgICAgJHBhZ2luYXRpb24taXRlbV9ib3JkZXItd2lkdGggIT1cbiAgICAgICAgMCBhbmRcbiAgICAgICAgJHBhZ2luYXRpb24taXRlbV9ib3JkZXIgIT1cbiAgICAgICAgbm9uZVxuICAgIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0jeyRwYWdpbmF0aW9uLWl0ZW1fYm9yZGVyLXdpZHRofTtcbiAgICB9XG5cbiAgICBAaWYgJHBhZ2luYXRpb24taXRlbV9yb3VuZC1lZGdlcyB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW1fcm91bmQtZWRnZXMtcmFkaXVzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzLXJhZGl1cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtX2FzLWNpcmNsZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0taG9vaygpO1xufVxuXG4kcGFnaW5hdGlvbi1udW1iZXJfbWluLXdpZHRoOiAzLjVyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfbWluLWhlaWdodDogJHBhZ2luYXRpb24tbnVtYmVyX21pbi13aWR0aCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlcl9wYWRkaW5nOiAwLjNlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlcl9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlcl9jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRwYWdpbmF0aW9uLW51bWJlcl90ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl9jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl9iYWNrZ3JvdW5kOiBpbmhlcml0ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl90ZXh0LWRlY29yYXRpb246IGluaGVyaXQgIWRlZmF1bHQ7XG5AbWl4aW4gcGFnaW5hdGlvbi1udW1iZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6ICRwYWdpbmF0aW9uLW51bWJlcl9taW4td2lkdGg7XG4gICAgbWluLWhlaWdodDogJHBhZ2luYXRpb24tbnVtYmVyX21pbi1oZWlnaHQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1udW1iZXJfcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1udW1iZXJfYmFja2dyb3VuZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1zaXplOiAkcGFnaW5hdGlvbi1udW1iZXJfZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkcGFnaW5hdGlvbi1udW1iZXJfZm9udC13ZWlnaHQ7XG4gICAgdHJhbnNpdGlvbjogJHBhZ2luYXRpb24tbnVtYmVyX3RyYW5zaXRpb247XG5cbiAgICAmLFxuICAgICY6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1udW1iZXJfY29sb3I7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHBhZ2luYXRpb24tbnVtYmVyX3RleHQtZGVjb3JhdGlvbjtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1udW1iZXItLWhvdmVyX2NvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1udW1iZXItLWhvdmVyX2JhY2tncm91bmQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl90ZXh0LWRlY29yYXRpb247XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1udW1iZXItaG9vaygpO1xufVxuXG4kcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnRfY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudF9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG5AbWl4aW4gcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQge1xuICAgICYsXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudF9jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHBhZ2luYXRpb24tbnVtYmVyLS1jdXJyZW50X2JhY2tncm91bmQ7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudC1ob29rKCk7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvbWl4aW5zLnNjc3MnO1xuXG4kcGFnaW5hdGlvbl9jb250ZW50LWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbl9jb250ZW50LWZsZXgtYWxpZ24taXRlbXM6IGNlbnRlciAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb25fcHJlZml4LWxhYmVsLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX3ByZWZpeC1sYWJlbC1wYWRkaW5nOiAwIDFyZW0gMCAwICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbl9wYWdlLXByb3ZpZGVyLWlucHV0LXdpZHRoOiA0LjVlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX3BhZ2UtcHJvdmlkZXItaW5wdXQtZm9udC1zaXplOiAwLjg1ZW0gIWRlZmF1bHQ7XG5cbi8vIHByZXYvbmV4dCBhcnJvd3NcbiRwYWdpbmF0aW9uX2FjdGlvbi1ndXR0ZXI6IDEuNXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLXdpZHRoOiAyLjVyZW07XG4kcGFnaW5hdGlvbl9hY3Rpb24taWNvbi1oZWlnaHQ6IDJyZW07XG4kcGFnaW5hdGlvbl9hY3Rpb24taWNvbi1maWxsOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuJHBhZ2luYXRpb25fYWN0aW9uLWljb24tdHJhbnNpdGlvbjogZmlsbCAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1hY3Rpb24tLWhvdmVyX2ljb24tZmlsbDogJGttYV9jb2xvcl9zZWNvbmRhcnktNTAwO1xuJHBhZ2luYXRpb24tYWN0aW9uLS1kaXNhYmxlZF9pY29uLWZpbGw6ICRrbWFfY29sb3JfZ3JleS01MDA7XG5cbi4jeyRuc31wYWdpbmF0aW9uIHtcbiAgICAkcm9vdDogJjtcblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiAkcGFnaW5hdGlvbl9jb250ZW50LWRpc3BsYXk7XG5cbiAgICAgICAgQGlmICRsaW1pdGVyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogJHBhZ2luYXRpb25fY29udGVudC1mbGV4LWFsaWduLWl0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJlZml4LWxhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAkcGFnaW5hdGlvbl9wcmVmaXgtbGFiZWwtbWFyZ2luO1xuICAgICAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbl9wcmVmaXgtbGFiZWwtcGFkZGluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnB1dCBtb2RlXG4gICAgICovXG4gICAgJl9fcGFnZS1wcm92aWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZ2FwOiAwIDAuNXJlbTtcbiAgICB9XG5cbiAgICAmX19wYWdlLXByb3ZpZGVyLWlucHV0LmlucHV0LXRleHQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6ICR0b29sYmFyX2lucHV0LW1heC1oZWlnaHQ7IC8vIHZhciBpbmhlcml0ZWQgZnJvbSAuL3Rvb2xiYXJcbiAgICAgICAgd2lkdGg6ICRwYWdpbmF0aW9uX3BhZ2UtcHJvdmlkZXItaW5wdXQtd2lkdGg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAkcGFnaW5hdGlvbl9wYWdlLXByb3ZpZGVyLWlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAmX19wYWdlLXByb3ZpZGVyLWxhYmVsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJ1bGxldCBwb2ludHMgbW9kZVxuICAgICAqL1xuICAgICZfX2l0ZW1zIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1saXN0KCk7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbSgpO1xuICAgIH1cblxuICAgICZfX251bWJlciB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbnVtYmVyKCk7XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLWN1cnJlbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJldiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHBhZ2luYXRpb25fYWN0aW9uLWd1dHRlcjtcbiAgICB9XG5cbiAgICAmX19uZXh0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRwYWdpbmF0aW9uX2FjdGlvbi1ndXR0ZXI7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWluLXdpZHRoOiAkcGFnaW5hdGlvbi1udW1iZXJfbWluLXdpZHRoOyAvLyB2YXIgaW5oZXJpdGVkIGZyb20gLi9taXhpbnNcbiAgICAgICAgbWluLWhlaWdodDogJHBhZ2luYXRpb24tbnVtYmVyX21pbi1oZWlnaHQ7IC8vIHZhciBpbmhlcml0ZWQgZnJvbSAuL21peGluc1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19hY3Rpb24taWNvbiB7XG4gICAgICAgIHdpZHRoOiAkcGFnaW5hdGlvbl9hY3Rpb24taWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkcGFnaW5hdGlvbl9hY3Rpb24taWNvbi1oZWlnaHQ7XG4gICAgICAgIGZpbGw6ICRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLWZpbGw7XG4gICAgICAgIHRyYW5zaXRpb246ICRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLXRyYW5zaXRpb247XG5cbiAgICAgICAgI3skcm9vdH1fX2FjdGlvbi0tZGlzYWJsZWQgJiB7XG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkcGFnaW5hdGlvbi1hY3Rpb24tLWRpc2FibGVkX2ljb24tZmlsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2FjdGlvbjpub3QoI3skcm9vdH1fX2FjdGlvbi0tZGlzYWJsZWQpOmhvdmVyICYsXG4gICAgICAgICN7JHJvb3R9X19hY3Rpb246bm90KCN7JHJvb3R9X19hY3Rpb24tLWRpc2FibGVkKTpmb2N1cyAmLFxuICAgICAgICAjeyRyb290fV9fYWN0aW9uOm5vdCgjeyRyb290fV9fYWN0aW9uLS1kaXNhYmxlZCk6YWN0aXZlICYge1xuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHBhZ2luYXRpb24tYWN0aW9uLS1ob3Zlcl9pY29uLWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL21peGlucy5zY3NzJztcblxuJHZpZXdtb2RlLXN3aXRjaGVyX2Rpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kdmlld21vZGUtc3dpdGNoZXJfZmxleC1hbGlnbi1pdGVtczogY2VudGVyICFkZWZhdWx0O1xuJHZpZXdtb2RlLXN3aXRjaGVyX2NvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiR2aWV3bW9kZS1zd2l0Y2hlcl9sYWJlbC1wYWRkaW5nOiAwIDFyZW0gMCAwICFkZWZhdWx0O1xuXG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLXgtYXhpcy1wYWRkaW5nOiAwLjdlbSAhZGVmYXVsdDtcblxuJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWZpbGw6IGN1cnJlbnRDb2xvciAhZGVmYXVsdDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi0tY3VycmVudC1maWxsOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG5cbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLXdpZHRoOiAxLjVyZW0gIWRlZmF1bHQ7XG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC1oZWlnaHQ6IDEuMXJlbSAhZGVmYXVsdDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1saXN0LXdpZHRoOiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC13aWR0aCAhZGVmYXVsdDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1saXN0LWhlaWdodDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWdyaWQtaGVpZ2h0ICFkZWZhdWx0O1xuXG4uI3skbnN9dmlld21vZGUtc3dpdGNoZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgZGlzcGxheTogJHZpZXdtb2RlLXN3aXRjaGVyX2Rpc3BsYXk7XG5cbiAgICBAaWYgJHNvcnRlcl9kaXNwbGF5ID09IGZsZXgge1xuICAgICAgICBhbGlnbi1pdGVtczogJHZpZXdtb2RlLXN3aXRjaGVyX2ZsZXgtYWxpZ24taXRlbXM7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6ICR2aWV3bW9kZS1zd2l0Y2hlcl9sYWJlbC1wYWRkaW5nO1xuICAgIH1cblxuICAgICZfX21vZGVzIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWxpc3QoKTtcbiAgICB9XG5cbiAgICAmX19tb2RlIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtKCk7XG4gICAgfVxuXG4gICAgJl9fbW9kZS1hY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlcigpO1xuXG4gICAgICAgIGhlaWdodDogMTAwJTsgLy8gc2V0IGhlaWdodCBleHBsaWNpdGx5IGZvciBJRVxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24teC1heGlzLXBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24teC1heGlzLXBhZGRpbmc7XG5cbiAgICAgICAgI3skcm9vdH1fX21vZGUtLWN1cnJlbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbW9kZS1pY29uIHtcbiAgICAgICAgZmlsbDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWZpbGw7XG5cbiAgICAgICAgJi0tZ3JpZCB7XG4gICAgICAgICAgICB3aWR0aDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWdyaWQtd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1saXN0LXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tbGlzdC1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fbW9kZS0tY3VycmVudCAmIHtcbiAgICAgICAgICAgIGZpbGw6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi0tY3VycmVudC1maWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgKyAjeyRyb290fV9fbW9kZS1sYWJlbCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvdG9vbGJhci92aWV3bW9kZS1zd2l0Y2hlci5zY3NzXCI7XG5AaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImNvbmZpZy9icmVha3BvaW50c1wiO1xuXG4kdmlld21vZGUtc3dpdGNoZXJfZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9mbGV4LWFsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG4kdmlld21vZGUtc3dpdGNoZXJfY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuJHZpZXdtb2RlLXN3aXRjaGVyX2xhYmVsLXBhZGRpbmc6IDAgMXJlbSAwIDAgIWRlZmF1bHQ7XG5cbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24teC1heGlzLXBhZGRpbmc6IDAuN2VtICFkZWZhdWx0O1xuXG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZmlsbDogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi0tY3VycmVudC1maWxsOiAka21hX2NvbG9yX3NlY29uZGFyeS01MDA7XG5cbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLXdpZHRoOiAka21hX2ljb25fc2l6ZS01MDA7XG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC1oZWlnaHQ6ICRrbWFfaWNvbl9zaXplLTUwMDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1saXN0LXdpZHRoOiAka21hX2ljb25fc2l6ZS01MDA7XG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tbGlzdC1oZWlnaHQ6ICRrbWFfaWNvbl9zaXplLTUwMDtcblxuLiN7JG5zfXZpZXdtb2RlLXN3aXRjaGVyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGRpc3BsYXk6ICR2aWV3bW9kZS1zd2l0Y2hlcl9kaXNwbGF5O1xuXG4gICAgQGlmICRzb3J0ZXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgYWxpZ24taXRlbXM6ICR2aWV3bW9kZS1zd2l0Y2hlcl9mbGV4LWFsaWduLWl0ZW1zO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAkdmlld21vZGUtc3dpdGNoZXJfbGFiZWwtcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19tb2RlcyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIiwgXCI8bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbGlzdCgpO1xuICAgICAgICBnYXA6IDAgMXJlbTtcbiAgICB9XG5cbiAgICAmX19tb2RlIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtKCk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmX19tb2RlLWFjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbnVtYmVyKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMTAwJTsgLy8gc2V0IGhlaWdodCBleHBsaWNpdGx5IGZvciBJRVxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24teC1heGlzLXBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24teC1heGlzLXBhZGRpbmc7XG5cbiAgICAgICAgI3skcm9vdH1fX21vZGUtLWN1cnJlbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbW9kZS1pY29uIHtcbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZmlsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWdyaWQge1xuICAgICAgICAgICAgd2lkdGg6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tbGlzdC13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWxpc3QtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICN7JHJvb3R9X19tb2RlLS1jdXJyZW50ICYge1xuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLS1jdXJyZW50LWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICArICN7JHJvb3R9X19tb2RlLWxhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnfkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL3Rvb2xiYXIvdG9vbGJhci5zY3NzJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kdG9vbGJhcl9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHRvb2xiYXJfZmxleC1hbGlnbi1pdGVtczogY2VudGVyICFkZWZhdWx0O1xuJHRvb2xiYXJfZmxleC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG4kdG9vbGJhcl9mbGV4LXdyYXA6IHdyYXAgIWRlZmF1bHQ7XG4kdG9vbGJhcl9mb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuJHRvb2xiYXJfZm9udC13ZWlnaHQ6IDQwMDtcbiR0b29sYmFyX3RleHQtdHJhbnNmb3JtOiBub25lO1xuXG4kdG9vbGJhcl9lbGVtZW50cy1wYWRkaW5nLXRhYmxldC11cDogMCAhZGVmYXVsdDtcbiR0b29sYmFyX2VsZW1lbnRzLW1hcmdpbjogMCAwIDEuNXJlbSAhZGVmYXVsdDtcbiR0b29sYmFyX2VsZW1lbnRzLW1hcmdpbi10YWJsZXQtdXA6IDAgMCAxLjVyZW0gIWRlZmF1bHQ7XG5cbiR0b29sYmFyX3NlbGVjdC1taW4taGVpZ2h0OiAzLjVyZW0gIWRlZmF1bHQ7XG4kdG9vbGJhcl9pbnB1dC1tYXgtaGVpZ2h0OiAkdG9vbGJhcl9zZWxlY3QtbWluLWhlaWdodCAhZGVmYXVsdDtcblxuJHRvb2xiYXJfc2VsZWN0cy1tYXgtd2lkdGgtdGFibGV0OiAyMHJlbSAhZGVmYXVsdDsgLy8gc2V0ICdub25lJyB0byBkaXNhYmxlXG5cbiR0b29sYmFyX2NvbXBvbmVudHMtYWxpZ25tZW50OiAoXG4gICAgYW1vdW50OiBsZWZ0LFxuICAgIHNvcnRlcjogbGVmdCxcbiAgICBsaW1pdGVyOiBsZWZ0LFxuICAgIHZpZXdtb2RlLXN3aXRjaGVyOiBsZWZ0LFxuICAgIHBhZ2luYXRpb246IHJpZ2h0LFxuKSAhZGVmYXVsdDtcblxuJHRvb2xiYXJfYW1vdW50LWFsaWduOiBsZWZ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfc29ydGVyLWFsaWduOiBsZWZ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfbGltaXRlci1hbGlnbjogbGVmdCAhZGVmYXVsdDtcbiR0b29sYmFyX3ZpZXdtb2RlLXN3aXRjaGVyLWFsaWduOiBsZWZ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfcGFnaW5hdGlvbi1hbGlnbjogcmlnaHQgIWRlZmF1bHQ7XG5cbiR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJHRvb2xiYXJfZmlsdGVycy1idXR0b24taWNvbi1wb3M6ICdsZWZ0JyAhZGVmYXVsdDtcblxuLiN7JG5zfXRvb2xiYXIge1xuICAgICRyb290OiAmO1xuXG4gICAgZm9udC1zaXplOiAkdG9vbGJhcl9mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICR0b29sYmFyX2ZvbnQtd2VpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiAkdG9vbGJhcl90ZXh0LXRyYW5zZm9ybTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogJHRvb2xiYXJfZGlzcGxheTtcblxuICAgICAgICBAaWYgJHRvb2xiYXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdG9vbGJhcl9mbGV4LWFsaWduLWl0ZW1zO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdG9vbGJhcl9mbGV4LWp1c3RpZnktY29udGVudDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogJHRvb2xiYXJfZmxleC13cmFwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAkdG9vbGJhcl9lbGVtZW50cy1tYXJnaW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWFyZ2luOiAkdG9vbGJhcl9lbGVtZW50cy1tYXJnaW4tdGFibGV0LXVwO1xuICAgICAgICAgICAgcGFkZGluZzogJHRvb2xiYXJfZWxlbWVudHMtcGFkZGluZy10YWJsZXQtdXA7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIC8vICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgLy8gICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRtb2RpZmllciwgJHZhbHVlIGluICR0b29sYmFyX2NvbXBvbmVudHMtYWxpZ25tZW50IHtcbiAgICAgICAgICAgIEBpZiAkdmFsdWUgPT0gcmlnaHQge1xuICAgICAgICAgICAgICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkdG9vbGJhcl9kaXNwbGF5ID09IGZsZXgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGltaXRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDNyZW07XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkIC5sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkdG9vbGJhcl9mb250LXdlaWdodDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC4jeyRuc31odG1sLXNlbGVjdCB7XG4gICAgICAgIEBpZiAkdG9vbGJhcl9zZWxlY3RzLW1heC13aWR0aC10YWJsZXQgIT0gbm9uZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6ICR0b29sYmFyX3NlbGVjdHMtbWF4LXdpZHRoLXRhYmxldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RyaWdnZXIge1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHRvb2xiYXJfc2VsZWN0LW1pbi1oZWlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjhyZW0gMXJlbSAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC44cmVtICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICYtY2FyZXQtYXJyb3cge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMS4ycmVtO1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMC45cmVtO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19maWx0ZXJzLWJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJHRvb2xiYXJfZmlsdGVycy1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIuM3JlbTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIuM3JlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZpbHRlcnMtYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJHRvb2xiYXJfZmlsdGVycy1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJHRvb2xiYXJfZmlsdGVycy1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWNhcHRjaGFfX2ltYWdlLWNvbnRyb2xzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IDEuNXJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC5jcy1jYXB0Y2hhX19pbWFnZS1jb250cm9scyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC5jcy1jYXB0Y2hhX19pbWFnZS1jb250cm9scyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWNhcHRjaGFfX2ltYWdlLWNvbnRyb2xzIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG5cbi5jcy1jYXB0Y2hhX19pbWFnZSB7XG4gIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuXG4uY3MtY2FwdGNoYV9fYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cblxuLmNzLWNhcHRjaGFfX2J1dHRvbiwgLmNzLWNhcHRjaGFfX2J1dHRvbjp2aXNpdGVkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gIG1hcmdpbjogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHotaW5kZXg6IDU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAuY3MtY2FwdGNoYV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNhcHRjaGFfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1jYXB0Y2hhX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNhcHRjaGFfX2J1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNhcHRjaGFfX2J1dHRvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNhcHRjaGFfX2J1dHRvbjp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICBjb2xvcjogI2MxMjcyZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIC5jcy1jYXB0Y2hhX19idXR0b25bZGlzYWJsZWRdLCAuY3MtY2FwdGNoYV9fYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICBjb2xvcjogIzg3ODc4NztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG5cbi5jcy1kYXNoYm9hcmQgLmNzLWNhcHRjaGFfX2J1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAuY3MtZGFzaGJvYXJkIC5jcy1jYXB0Y2hhX19idXR0b24ge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG5cbi5jcy1jYXB0Y2hhX19idXR0b24tc3BhbiB7XG4gIGZvbnQtc2l6ZTogMS42cmVtOyB9XG5cbi5jcy1jYXB0Y2hhX19ub3RlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBwYWRkaW5nOiA0cHggMDtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIG1hcmdpbi10b3A6IC0xcmVtOyB9XG5cbi5jcy1kYXNoYm9hcmQgLmNzLWNhcHRjaGFfX3dyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5cbiRjYXB0Y2hhX2J1dHRvbi10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRjYXB0Y2hhX2J1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuXG4uI3skbnN9Y2FwdGNoYSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX19pbWFnZS1jb250cm9scyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG5cbiAgICAgICAgLiN7JG5zfWRhc2hib2FyZCAmIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkY2FwdGNoYV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGNhcHRjaGFfYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgLiN7JG5zfWRhc2hib2FyZCAmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJGNhcHRjaGFfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRjYXB0Y2hhX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX25vdGUge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIC4jeyRuc31kYXNoYm9hcmQgJiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBOztBQ0VBO0FDRkE7OztBRE1BO0FESUE7QUFnQkE7O0FDaEJBO0FEVkE7O0FDYUE7QUNiQTs7O0FEaUJBO0FEUEE7QUFnQkE7O0FDTEE7QUVmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7OztBQUdBO0FBQ0E7QUFFQTtBQ2pCQTtBRG1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7Ozs7QUFJQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQURBO0FBS0E7QUFDQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0FBUUE7QUFUQTtBQUlBO0FBQ0E7QUFDQTtBQU5BO0FBY0E7QUFDQTtBSGxFQTs7QUNvRUE7QUNwRUE7OztBRHdFQTtBRDlEQTtBQWdCQTs7QUNrREE7QUk1RUE7Ozs7Ozs7O0FKcUZBO0FLckZBO0FBU0E7QU5UQTs7QUMwRkE7QUMxRkE7OztBRDhGQTtBRHBGQTtBQWdCQTs7QUN3RUE7QU05RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUdBO0FDMkJBO0FBQ0E7QUFDQTtBQUNBO0FEOUJBO0FDa0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FEOURBO0FDNEVBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBRHBGQTtBQ2dHQTtBQUdBO0FBQ0E7QUFDQTs7QVJqSUE7O0FTRUE7QVBGQTs7O0FPTUE7QVRJQTtBQWdCQTs7QVNoQkE7QUNtaUJBO0FDMWlCQTtBQUVBO0FBQUE7QUFDQTtBRHVpQkE7QUNwaUJBO0FBRUE7QUFBQTtBQUNBO0FBR0E7QUFDQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QVgvQkE7O0FTdUNBO0FQdkNBOzs7QU8yQ0E7QVRqQ0E7QUFnQkE7O0FTcUJBO0FUL0NBOztBU2tEQTtBUGxEQTs7O0FPc0RBO0FUNUNBO0FBZ0JBOztBU2dDQTtBVDFEQTs7QVM2REE7QVA3REE7OztBT2lFQTtBVHZEQTtBQWdCQTs7QVMyQ0E7QUduRUE7O0FIc0VBO0FHbEVBOzs7QUhzRUE7QUc3REE7OztBSGlFQTtBR3ZEQTs7QUgwREE7QVRuRkE7O0FTc0ZBO0FQdEZBOzs7QU8wRkE7QVRoRkE7QUFnQkE7O0FTb0VBO0FJM0ZBOztBSjhGQTtBSTFGQTs7O0FKOEZBO0FJckZBOzs7QUp5RkE7QUkvRUE7O0FKa0ZBO0FLeEdBO0FEUUE7QUFDQTtBQ0xBO0FBQ0E7QUFDQTtBQUVBO0FEa0JBO0FBQ0E7QUFDQTtBQ2xCQTtBQUZBO0FBTUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBSm9oQkE7QUlyaEJBO0FBSUE7QUppaEJBO0FJcmhCQTtBQVFBO0FKNmdCQTtBSXJoQkE7QUFZQTtBQUlBO0FBQ0E7QUFDQTtBSm1nQkE7QUlyZ0JBO0FBS0E7QUpnZ0JBO0FJcmdCQTtBQVNBO0FKNGZBO0FJcmdCQTtBQWFBO0FBQ0E7QUp1ZkE7QUlwZkE7QUFFQTtBQUtBO0FBQ0E7QUo0ZUE7QUk3ZUE7QUFJQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUppZUE7QUluZUE7QUFLQTtBQUNBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QWQ5RkE7O0FTOEtBO0FQOUtBOzs7QU9rTEE7QVR4S0E7QUFnQkE7O0FTNEpBO0FNbkxBO0FBR0E7QUZNQTtBQUNBO0FFSkE7QUFDQTtBQUNBO0FBRUE7QUZpQkE7QUFDQTtBQUNBO0FFakJBO0FBRkE7QUFNQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FMbWhCQTtBS3BoQkE7QUFJQTtBTGdoQkE7QUtwaEJBO0FBUUE7QUw0Z0JBO0FLcGhCQTtBQVlBO0FBSUE7QUFDQTtBQUNBO0FMa2dCQTtBS3BnQkE7QUFLQTtBTCtmQTtBS3BnQkE7QUFTQTtBTDJmQTtBS3BnQkE7QUFhQTtBQUNBO0FMc2ZBO0FLbmZBO0FBRUE7QUFLQTtBQUNBO0FMMmVBO0FLNWVBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FMZ2VBO0FLbGVBO0FBS0E7QUFDQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FmL0ZBOztBU3lQQTtBUHpQQTs7O0FPNlBBO0FUblBBO0FBZ0JBOztBU3VPQTtBVGpRQTs7QVNvUUE7QVBwUUE7OztBT3dRQTtBVDlQQTtBQWdCQTs7QVNrUEE7QU81UUE7QUFZQTtBaEJaQTs7QVNpUkE7QVBqUkE7OztBT3FSQTtBVDNRQTtBQWdCQTs7QVMrUEE7QVR6UkE7O0FTNFJBO0FQNVJBOzs7QU9nU0E7QVR0UkE7QUFnQkE7O0FTMFFBO0FROVJBOztBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QVBpaEJBO0FPbmhCQTtBQUtBO0FBQ0E7QUFDQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QVA2ZkE7QU9qZ0JBO0FBT0E7QUFDQTtBQUdBO0FBQ0E7QVBxZkE7QU90ZkE7QUFJQTtBQUNBO0FBR0E7QUFFQTtBUDRlQTtBTzllQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FQc2VBO0FPOWVBO0FBWUE7QUFDQTtBUGllQTtBTzVkQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FDekRBO0FBQ0E7QUFDQTtBRHVEQTtBQ2hEQTtBQUNBO0FBQ0E7QURxREE7QUFDQTtBQUNBO0FQeWNBO0FPdGNBO0FBRUE7QUFDQTtBUG1jQTtBT2hjQTtBQUdBO0FBSEE7QUFPQTtBQUNBO0FQd2JBO0FPaGNBO0FBWUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBUDhaQTtBT25hQTtBQVFBO0FBUkE7QUFZQTtBQUNBO0FBR0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBUDZZQTtBT25aQTtBQVNBO0FBVEE7QUFnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FQOFhBO0FPblpBO0FBd0JBO0FBeEJBO0FBNEJBO0FBSUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QVA4V0E7QU9uWEE7O0FBUUE7QVAyV0E7QU9uWEE7O0FBWUE7QUFaQTs7O0FBaUJBO0FBQ0E7QUFDQTtBUGdXQTtBT25YQTs7O0FBc0JBO0FBQ0E7QUFDQTtBQUNBO0FQMFZBO0FPblhBOzs7QUE2QkE7QUE3QkE7O0FBa0NBO0FQaVZBO0FPblhBOztBQW9DQTtBUCtVQTtBT25YQTs7QUF3Q0E7QUFDQTtBUDBVQTtBT25YQTs7QUE2Q0E7QVBzVUE7QU9uWEE7O0FBbURBO0FQZ1VBO0FPMVRBO0FBSUE7QUFDQTtBQUNBO0FaelBBOzs7Ozs7OztBSWdlQTtBSGhlQTtBQVNBO0FOVEE7O0FTcWVBO0FQcmVBOzs7QU95ZUE7QVQvZEE7QUFnQkE7O0FTbWRBO0FVMWVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FUbWlCQTtBU2ppQkE7QUFFQTtBQUNBO0FUOGhCQTtBU2ppQkE7QUFNQTtBQUNBO0FBQ0E7QUFJQTs7O0FBSUE7QUFDQTtBVGdoQkE7QVM3Z0JBO0FBS0E7QUFDQTtBVHVnQkE7QVM3Z0JBO0FBVUE7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBUkE7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBakJBO0FBb0JBO0FBQ0E7QUFyQkE7QUF3QkE7QUFDQTtBQUNBO0FBQ0E7QUFLQTs7QUFHQTtBVDJkQTtBUzlkQTs7QUFLQTtBQUxBOztBWHhCQTtBQUNBO0FBQ0E7QVdzQkE7OztBWGpCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBV2pCQTs7Ozs7OztBWHlCQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QVd2Q0E7OztBWDZDQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FXMUNBOzs7Ozs7QUFPQTtBQUNBO0FBRUE7O0FBR0E7QUFDQTtBVGljQTtBU3JjQTtBQU9BO0FBQ0E7QVQ2YkE7QVMxYkE7QUFJQTtBQUNBO0FUcWJBO0FTbGJBO0FBR0E7QUFIQTtBQUtBO0FBQ0E7QVQ0YUE7QVN4YUE7QUFHQTtBQUhBO0FBTUE7QUFOQTtBQVFBO0FBQ0E7QUFPQTtBQUVBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFOQTtBQVFBO0FBQ0E7QUFUQTtBQVdBO0FBQ0E7QUFDQTtBQWJBO0FBZ0JBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFNQTtBQUNBO0FBREE7O0FBS0E7QUFMQTtBQVNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBVHVWQTtBU2xWQTtBQUVBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBbkJyT0E7O0FTMHJCQTtBUDFyQkE7OztBTzhyQkE7QVRwckJBO0FBZ0JBOztBU3dxQkE7QVdoc0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQTtBQVdBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBckI3Q0E7O0FzQkVBO0FwQkZBOzs7QW9CTUE7QXRCSUE7QUFnQkE7O0FzQmhCQTtBdEJWQTs7QXNCYUE7QXBCYkE7OztBb0JpQkE7QXRCUEE7QUFnQkE7O0FzQkxBO0F0QnJCQTs7QXNCd0JBO0FwQnhCQTs7O0FvQjRCQTtBdEJsQkE7QUFnQkE7O0FzQk1BO0FOaENBO0FBWUE7QWhCWkE7O0FzQnFDQTtBcEJyQ0E7OztBb0J5Q0E7QXRCL0JBO0FBZ0JBOztBc0JtQkE7QXRCN0NBOztBc0JnREE7QXBCaERBOzs7QW9Cb0RBO0F0QjFDQTtBQWdCQTs7QXNCOEJBO0FDNUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBYjBoQkE7QWFqaUJBO0FBVUE7QUFDQTtBQVhBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFRQTtBQUNBO0FBVEE7QUxEQTtBQUNBO0FLQUE7QUxRQTtBQUNBO0FLVEE7QUFjQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTs7QXZCN0RBOztBd0JFQTtBdEJGQTs7O0FzQk1BO0F4QklBO0FBZ0JBOztBd0JoQkE7QXhCVkE7O0F3QmFBO0F0QmJBOzs7QXNCaUJBO0F4QlBBO0FBZ0JBOztBd0JMQTtBWm5CQTs7QVlzQkE7QVpsQkE7OztBWXNCQTtBWmJBOzs7QVlpQkE7QVpQQTs7QVlVQTtBeEJuQ0E7O0F3QnNDQTtBdEJ0Q0E7OztBc0IwQ0E7QXhCaENBO0FBZ0JBOztBd0JvQkE7QVgzQ0E7O0FXOENBO0FYMUNBOzs7QVc4Q0E7QVhyQ0E7OztBV3lDQTtBWC9CQTs7QVdrQ0E7QW5CNURBOzs7Ozs7OztBbUJxRUE7QWxCckVBO0FBU0E7QU5UQTs7QXdCMEVBO0F0QjFFQTs7O0FzQjhFQTtBeEJwRUE7QUFnQkE7O0F3QndEQTtBeEJsRkE7O0F3QnFGQTtBdEJyRkE7OztBc0J5RkE7QXhCL0VBO0FBZ0JBOztBd0JtRUE7QUNoRUE7QUFrV0E7QUErQ0E7QUE5WUE7QUFFQTtBQUdBO0FBTEE7QUFNQTtBQUFBO0FBS0E7QWpCWUE7QUFDQTtBQUNBO0FpQmRBO0FqQm1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBaUIvQ0E7QWpCNkRBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBaUJyRUE7QWpCaUZBO0FBR0E7QUFDQTtBQUNBO0FpQnRGQTtBQU9BO0FBUEE7QUFlQTtBQWZBO0FBb0JBO0FBcEJBO0FBeUJBO0FBekJBO0FBOEJBO0FBTUE7QWpCaENBO0FpQnVDQTtBQUdBO0FDMFRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7QUQzVkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUlBO0FBR0E7QUFDQTtBQUdBO0FBRUE7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQUE7QUFHQTtBQUNBO0FBQ0E7QUFBQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBQUlBO0FBR0E7QUFFQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FacExBO0FBQ0E7QUFDQTtBWXFMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVpBO0FBZUE7QUFmQTtBQW9CQTtBQU9BOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBR0E7QUFDQTtBQUFBO0FBWkE7QUFnQkE7QUFJQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FmZ1NBO0FlblNBO0FBTUE7QWY2UkE7QWVuU0E7QUFVQTtBQUNBO0FBWEE7QUFlQTtBQUNBO0FBMUJBO0FBK0JBO0FBQ0E7QUFJQTtBQUdBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFIQTtBQU1BO0FBQUE7QUFLQTtBQUVBO0FBRkE7QUFNQTtBQU5BO0FBU0E7QUFTQTtBQUVBO0FBRkE7QUFNQTtBQUNBO0FBSUE7QUFFQTtBQUZBO0FBTUE7QUFDQTtBQUlBOztBQUdBO0FBSEE7QUFPQTtBQVBBO0FBV0E7QUFYQTtBQWVBO0FBZkE7O0FBcUJBO0FBRUE7QUF2QkE7O0FBNEJBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBVEE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQU5BO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQU5BO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQWRBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUE5WUE7QUFvWkE7O0F6QmpiQTs7QTJCRUE7QXpCRkE7OztBeUJNQTtBM0JJQTtBQWdCQTs7QTJCaEJBO0EzQlZBOztBMkJhQTtBekJiQTs7O0F5QmlCQTtBM0JQQTtBQWdCQTs7QTJCTEE7QTNCckJBOztBMkJ3QkE7QXpCeEJBOzs7QXlCNEJBO0EzQmxCQTtBQWdCQTs7QTJCTUE7QUNoQ0E7QUFTQTtBQ1RBOzs7O0FGdUNBO0FHVUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBCa2ZBO0FvQjVmQTtBQXdCQTtBQXhCQTtBQStCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBCcWRBO0FvQjVmQTtBQXlDQTtBQXpDQTtBQThDQTtBQUNBO0FBL0NBO0FBbURBO0FBbkRBO0FBdURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTVEQTtBQWdFQTtBQUNBO0FBakVBO0FBcUVBO0FBQ0E7QUFDQTtBQXZFQTtBQTBFQTtBQUNBO0FBQ0E7QUFDQTtBQTdFQTtBQWlGQTtBQWpGQTtBQXNGQTtBQUNBO0FBdkZBO0FBMkZBO0FBQ0E7QUFDQTtBQTdGQTtBQWlHQTtBQUNBO0FBbEdBO0FBdUdBO0FBdkdBO0FBMEdBO0FBQ0E7QUFDQTtBQUNBO0FwQitZQTtBb0I1ZkE7QUFtSEE7QUFuSEE7QUEwSEE7QUFDQTtBQUNBO0FBQ0E7QXBCK1hBO0FvQjVmQTtBQWlJQTtBQWpJQTtBQW9JQTtBQXBJQTtBQXNJQTtBQUNBO0FBQ0E7QUF4SUE7QUE0SUE7QUE1SUE7QUE4SUE7QUFDQTtBQUNBO0FBaEpBO0FBd0pBO0FBQ0E7QUFDQTtBQTFKQTtBQStKQTtBQS9KQTtBQW9LQTtBQXBLQTtBQXVLQTtBQVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQ3BNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRHdMQTtBQUlBO0FBR0E7QUN6S0E7QUFDQTtBRHdLQTtBQ3hJQTtBRHdJQTtBQ3JJQTtBRDZJQTtBQ3RMQTtBQUNBO0FEcUxBO0FDaEpBO0FEZ0pBO0FDN0lBO0FEc0pBO0FDekpBO0FEeUpBO0FDdEpBO0FyQmdjQTtBb0IxU0E7QUFJQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUxBO0FBU0E7QUFUQTtBQWFBO0FBQ0E7QUFDQTtBQUNBO0FBaEJBO0FBb0JBO0FBcEJBO0FBd0JBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQVlBO0FBWkE7QUFpQkE7O0FFM1RBO0FoQ0FBOztBZ0NHQTtBOUJIQTs7O0E4Qk9BO0FoQ0dBO0FBZ0JBOztBZ0NmQTtBaENYQTs7QWdDY0E7QTlCZEE7OztBOEJrQkE7QWhDUkE7QUFnQkE7O0FnQ0pBO0FDdEJBOztBRHlCQTtBOUJ6QkE7OztBOEI2QkE7QUVFQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FEaENBO0FBQ0E7QUFDQTtBQ2tDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBU0E7QUFDQTtBQUNBO0FBWEE7QUFlQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQU5BO0FBVUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0F4QnVjQTtBd0IxY0E7QUFNQTtBQUNBO0FBQ0E7QWxDM0dBOztBZ0NzRkE7QTlCdEZBOzs7QThCMEZBO0FoQ2hGQTtBQWdCQTs7QWdDb0VBO0FHdkVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FGMUJBO0FBQ0E7QUFDQTtBRTRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBU0E7QUFDQTtBQUNBO0FBWEE7QUFlQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQU5BO0FBVUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0F6QjZjQTtBeUJoZEE7QUFNQTtBQUNBO0FBQ0E7QUFJQTtBQUVBOztBbkMzR0E7O0FvQ0VBO0FsQ0ZBOzs7QWtDTUE7QXBDSUE7QUFnQkE7O0FvQ2hCQTtBcENWQTs7QW9DYUE7QWxDYkE7OztBa0NpQkE7QXBDUEE7QUFnQkE7O0FvQ0xBO0FwQ3JCQTs7QW9Dd0JBO0FsQ3hCQTs7O0FrQzRCQTtBcENsQkE7QUFnQkE7O0FvQ01BO0FwQ2hDQTs7QW9DbUNBO0FsQ25DQTs7O0FrQ3VDQTtBcEM3QkE7QUFnQkE7O0FvQ2lCQTtBL0IzQ0E7Ozs7Ozs7O0ErQm9EQTtBOUJwREE7QUFTQTtBTlRBOztBb0N5REE7QWxDekRBOzs7QWtDNkRBO0FwQ25EQTtBQWdCQTs7QW9DdUNBO0FDckRBO0E3QjJDQTtBQUNBO0FBQ0E7QUFDQTtBNkI5Q0E7QTdCa0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E2QjlFQTtBN0I0RkE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E2QnBHQTtBN0JnSEE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBNkJoSEE7QTdCNkJBO0FBQ0E7QTZCdkJBO0FYMFhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7QUFDQTtBVzVaQTtBQzNCQTtBRGtDQTtBQUNBO0FBQ0E7QUFUQTtBN0JzQkE7QUFDQTtBQUNBO0E2QnhCQTtBN0I2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTZCekRBO0E3QnVFQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTZCL0VBO0E3QjJGQTtBQUdBO0FBQ0E7QUFDQTtBRTRhQTtBMkI1Z0JBO0FDakJBO0FBS0E7QUFDQTtBRHNCQTtBN0JHQTtBNkJJQTtBWGdXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBO0FXbFlBO0FBRUE7QUFGQTtBQUtBOztBckMvREE7O0F1Q0VBO0FyQ0ZBOzs7QXFDTUE7QXZDSUE7QUFnQkE7O0F1Q2hCQTtBdkNWQTs7QXVDYUE7QXJDYkE7OztBcUNpQkE7QXZDUEE7QUFnQkE7O0F1Q0xBO0F2Q3JCQTs7QXVDd0JBO0FyQ3hCQTs7O0FxQzRCQTtBdkNsQkE7QUFnQkE7O0F1Q01BO0EzQjlCQTs7QTJCaUNBO0EzQjdCQTs7O0EyQmlDQTtBM0J4QkE7OztBMkI0QkE7QTNCbEJBOztBMkJxQkE7QXZDOUNBOztBdUNpREE7QXJDakRBOzs7QXFDcURBO0F2QzNDQTtBQWdCQTs7QXVDK0JBO0ExQnREQTs7QTBCeURBO0ExQnJEQTs7O0EwQnlEQTtBMUJoREE7OztBMEJvREE7QTFCMUNBOztBMEI2Q0E7QXpCbkVBO0FEUUE7QUFDQTtBQ0xBO0FBQ0E7QUFDQTtBQUVBO0FEa0JBO0FBQ0E7QUFDQTtBQ2xCQTtBQUZBO0FBTUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBSm9oQkE7QUlyaEJBO0FBSUE7QUppaEJBO0FJcmhCQTtBQVFBO0FKNmdCQTtBSXJoQkE7QUFZQTtBQUlBO0FBQ0E7QUFDQTtBSm1nQkE7QUlyZ0JBO0FBS0E7QUpnZ0JBO0FJcmdCQTtBQVNBO0FKNGZBO0FJcmdCQTtBQWFBO0FBQ0E7QUp1ZkE7QUlwZkE7QUFFQTtBQUtBO0FBQ0E7QUo0ZUE7QUk3ZUE7QUFJQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUppZUE7QUluZUE7QUFLQTtBQUNBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QWQ5RkE7O0F1Q3lJQTtBckN6SUE7OztBcUM2SUE7QXZDbklBO0FBZ0JBOztBdUN1SEE7QXhCOUlBO0FBR0E7QUZNQTtBQUNBO0FFSkE7QUFDQTtBQUNBO0FBRUE7QUZpQkE7QUFDQTtBQUNBO0FFakJBO0FBRkE7QUFNQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FMbWhCQTtBS3BoQkE7QUFJQTtBTGdoQkE7QUtwaEJBO0FBUUE7QUw0Z0JBO0FLcGhCQTtBQVlBO0FBSUE7QUFDQTtBQUNBO0FMa2dCQTtBS3BnQkE7QUFLQTtBTCtmQTtBS3BnQkE7QUFTQTtBTDJmQTtBS3BnQkE7QUFhQTtBQUNBO0FMc2ZBO0FLbmZBO0FBRUE7QUFLQTtBQUNBO0FMMmVBO0FLNWVBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FMZ2VBO0FLbGVBO0FBS0E7QUFDQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTs7QWY5RkE7O0F3Q0VBO0F0Q0ZBOzs7QXNDTUE7QXhDSUE7QUFnQkE7O0F3Q2hCQTtBeENWQTs7QXdDYUE7QXRDYkE7OztBc0NpQkE7QXhDUEE7QUFnQkE7O0F3Q0xBO0FuQ3JCQTs7Ozs7Ozs7QW1DOEJBO0FsQzlCQTtBQVNBO0FOVEE7O0F3Q21DQTtBdENuQ0E7OztBc0N1Q0E7QXhDN0JBO0FBZ0JBOztBd0NpQkE7QXhDM0NBOztBd0M4Q0E7QXRDOUNBOzs7QXNDa0RBO0F4Q3hDQTtBQWdCQTs7QXdDNEJBO0F4QnREQTtBQVlBO0FoQlpBOztBd0MyREE7QXRDM0RBOzs7QXNDK0RBO0F4Q3JEQTtBQWdCQTs7QXdDeUNBO0F4Q25FQTs7QXdDc0VBO0F0Q3RFQTs7O0FzQzBFQTtBeENoRUE7QUFnQkE7O0F3Q29EQTtBQzVEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QS9CaWZBO0ErQnZmQTtBQVNBO0FBSUE7QUFDQTtBL0J5ZUE7QStCMWVBO0FBSUE7QUFJQTtBQUNBO0FBQ0E7QUFGQTs7QUFNQTtBQUNBO0FBUEE7QXZCekNBO0FBQ0E7QXVCd0NBO0F2QmhDQTtBQUNBO0F1QmlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0IwY0E7QStCaGRBO0FBU0E7QUFDQTtBQUlBO0FBTUE7QUFDQTtBQVBBO0FqQ3BEQTtBQUNBO0FBQ0E7QWlDa0RBO0FqQzdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBaUNpQkE7QWpDSEE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpQ0xBO0FqQ2lCQTtBQUdBO0FBQ0E7QUFDQTtBRTRhQTtBK0JsY0E7QUFVQTtBQUNBO0FBSUE7QWpDM0VBO0FpQ2tGQTtBZmtSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBOztBMUI1YkE7O0EwQ0VBO0F4Q0ZBOzs7QXdDTUE7QTFDSUE7QUFnQkE7O0EwQ2hCQTtBMUNWQTs7QTBDYUE7QXhDYkE7OztBd0NpQkE7QTFDUEE7QUFnQkE7O0EwQ0xBO0FoQ3doQkE7QWlDemlCQTtBQUVBO0FBQ0E7QWpDc2lCQTtBaUNuaUJBO0FBRUE7O0EzQ1pBOztBNENFQTtBMUNGQTs7O0EwQ01BO0E1Q0lBO0FBZ0JBOztBNENoQkE7QTVDVkE7O0E0Q2FBO0ExQ2JBOzs7QTBDaUJBO0E1Q1BBO0FBZ0JBOztBNENMQTtBNUNyQkE7O0E0Q3dCQTtBMUN4QkE7OztBMEM0QkE7QTVDbEJBO0FBZ0JBOztBNENNQTtBWGhDQTs7QVdtQ0E7QTVDbkNBOztBNENzQ0E7QTFDdENBOzs7QTBDMENBO0E1Q2hDQTtBQWdCQTs7QTRDb0JBO0FDOUNBO0FBTUE7QUM0Q0E7QUFHQTtBQUNBO0FBQ0E7QXBDc2ZBO0FvQzNmQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFFQTtBcEN5ZUE7QW9DM2ZBO0FBdUJBO0FBQ0E7QUFDQTtBQUNBO0FBMUJBO0FBNkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FwQ3dkQTtBb0NwZEE7QUFHQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcENzY0E7QW9DcGNBO0FBRUE7QXBDa2NBO0FvQzNmQTtBQWlFQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3BGQTtBRCtFQTtBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVlBO0FBaUJBO0FBQUE7QUR3Q0E7QUNiQTtBQUNBO0FEWUE7QUNHQTtBQUNBO0FESkE7QUNvREE7QURwREE7QUNnRUE7QXJDc1hBO0FvQ3RiQTtBQTJCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDakhBO0FEK0VBO0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWUE7QUFpQkE7QUFBQTtBRHdDQTtBQ2JBO0FBQ0E7QURZQTtBQ0dBO0FBQ0E7QURKQTtBQ29EQTtBRHBEQTtBQ2dFQTtBRGhFQTtBQTREQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBDcVhBO0FvQ3RiQTtBQW9FQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QWJqTUE7QUFDQTtBQUNBO0FhaU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEM2VkE7QW9DdldBO0FBYUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QXBDeVVBO0FvQ2pWQTtBQVlBO0FBQ0E7QXBDb1VBO0FvQ2pWQTtBQWlCQTtBQUNBO0FBQ0E7QUU1T0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQVNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVJBO0FBWUE7QUFDQTtBQUNBO0F0Q2loQkE7QXNDL2hCQTtBQWtCQTtBQUdBO0FBRUE7QXRDd2dCQTtBc0MxZ0JBO0FBSUE7QUFLQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBdEN5ZkE7QXNDNWZBO0FBS0E7QUFDQTtBQU5BO0FBU0E7QUFUQTtBQVlBO0FBWkE7QUFnQkE7QUFDQTtBQWpCQTtBQW9CQTtBQXBCQTtBQXVCQTtBQXJFQTtBQXlFQTtBQUNBO0FBMUVBO0FBNkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRDeWRBO0FzQzFpQkE7QUFtRkE7QUFDQTtBQUdBO0FBQ0E7O0FoRDNGQTs7QWlERUE7QS9DRkE7OztBK0NNQTtBakRJQTtBQWdCQTs7QWlEaEJBO0E1Q1ZBOzs7Ozs7OztBNENtQkE7QTNDbkJBO0FBU0E7QU5UQTs7QWlEd0JBO0EvQ3hCQTs7O0ErQzRCQTtBakRsQkE7QUFnQkE7O0FpRE1BO0FDaENBO0FBbURBO0FDV0E7QW5EOURBOztBaURzQ0E7QS9DdENBOzs7QStDMENBO0FqRGhDQTtBQWdCQTs7QWlEb0JBO0FHNUNBO0FBR0E7O0FDZ0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRG5GQTs7QUNzSEE7QURsSEE7O0FDNkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRC9GQTs7QUNzR0E7QUFDQTtBQUNBO0FEbkdBOzs7QUNnSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRDdIQTs7Ozs7QUNrSUE7QUFDQTtBRG5JQTs7Ozs7QUNnS0E7QURoS0E7OztBQzRJQTtBRDVJQTtBQ2dKQTtBQUNBO0FBQ0E7QUFDQTtBRG5KQTtBQ2dKQTtBQUNBO0FBQ0E7QUFDQTtBRG5KQTs7O0FDZ0pBO0FBQ0E7QUFDQTtBQUNBO0FEbkpBOzs7QUN1SkE7QUR2SkE7Ozs7O0FDZ0tBO0FEdkpBOztBQ3VNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRDNOQTs7O0FDdUpBO0FEdkpBOztBQ2tPQTtBRGxPQTs7O0FDd09BO0FBQ0E7QUR6T0E7OztBQytPQTtBQUNBO0FBQ0E7QURqUEE7O0FDc1BBO0FEdFBBOztBQzBQQTtBQUNBO0FEdlBBOztBQ3lRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUQ1UkE7OztBQ2tTQTtBQUNBO0FEblNBOzs7QUN5U0E7QUFDQTtBQUNBO0FEM1NBOztBQ2dUQTtBQUNBO0FEalRBOzs7O0FDc1RBO0FBQ0E7QUFDQTtBRHhUQTs7Ozs7O0FDK1RBO0FEclRBOztBQytQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFpREE7QUFDQTtBQUNBO0FEclVBOzs7QUN3UkE7QUFDQTtBRHpSQTs7O0FDK1JBO0FBQ0E7QUFDQTtBRGpTQTs7QUNzU0E7QUFDQTtBRHZTQTs7OztBQzRTQTtBQUNBO0FBQ0E7QUQ5U0E7Ozs7OztBQ3FUQTtBRHJUQTs7QUN3VUE7QUR4VUE7OztBQ3lJQTtBRDNIQTs7QUNrSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEbklBOztBQzZJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEN0lBOztBQ3lJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUUE7QUFDQTtBRGpKQTtBQ2FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRHJCQTtBQUtBO0FBTEE7QUNxSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QURwSEE7QUFUQTtBQ3dEQTtBRHhEQTtBQzhEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEM0VBO0FDZ0ZBO0FBQ0E7QURqRkE7QUM4R0E7QUQ5R0E7QUMwRkE7QUQxRkE7QUM4RkE7QUFDQTtBQUNBO0FBQ0E7QURqR0E7QUM4RkE7QUFDQTtBQUNBO0FBQ0E7QURqR0E7QUM4RkE7QUFDQTtBQUNBO0FBQ0E7QURqR0E7QUNxR0E7QURyR0E7QUNtQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEeENBO0FDK0NBO0FBQ0E7QUFDQTtBRGpEQTtBQXNDQTtBQXRDQTtBQzhEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEM0VBO0FDZ0ZBO0FBQ0E7QURqRkE7QUM4R0E7QUQ5R0E7QUMwRkE7QUQxRkE7QUM4RkE7QUFDQTtBQUNBO0FBQ0E7QURqR0E7QUM4RkE7QUFDQTtBQUNBO0FBQ0E7QURqR0E7QUM4RkE7QUFDQTtBQUNBO0FBQ0E7QURqR0E7QUNxR0E7QURyR0E7QUM4R0E7QUQ5R0E7QUFvREE7QUFwREE7QUM4SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURsTEE7QUM4R0E7QUQ5R0E7QUN5TEE7QUR6TEE7QUMrTEE7QUFDQTtBRGhNQTtBQ3NNQTtBQUNBO0FBQ0E7QUR4TUE7QUM2TUE7QUQ3TUE7QUNpTkE7QUFDQTtBRGxOQTtBQ29PQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFpREE7QUFDQTtBQUNBO0FEMVNBO0FDNlBBO0FBQ0E7QUQ5UEE7QUNvUUE7QUFDQTtBQUNBO0FEdFFBO0FDMlFBO0FBQ0E7QUQ1UUE7QUNpUkE7QUFDQTtBQUNBO0FEblJBOzs7QUMwUkE7QUQxUkE7QUM2U0E7QUQ3U0E7QUM4R0E7QUQ5R0E7QUNvT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEdlBBO0FDNlBBO0FBQ0E7QUQ5UEE7QUNvUUE7QUFDQTtBQUNBO0FEdFFBO0FDMlFBO0FBQ0E7QUQ1UUE7QUNpUkE7QUFDQTtBQUNBO0FEblJBOzs7QUMwUkE7QUQxUkE7QUM4SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURsTEE7QUM4R0E7QUQ5R0E7QUN5TEE7QUR6TEE7QUMrTEE7QUFDQTtBRGhNQTtBQ3NNQTtBQUNBO0FBQ0E7QUR4TUE7QUM2TUE7QUQ3TUE7QUNpTkE7QUFDQTtBRGxOQTtBQzhEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEM0VBO0FDZ0ZBO0FBQ0E7QURqRkE7QUM4R0E7QUQ5R0E7QUMwRkE7QUQxRkE7QUM4RkE7QUFDQTtBQUNBO0FBQ0E7QURqR0E7QUM4RkE7QUFDQTtBQUNBO0FBQ0E7QURqR0E7QUM4RkE7QUFDQTtBQUNBO0FBQ0E7QURqR0E7QUNxR0E7QURyR0E7QUM4R0E7QUQ5R0E7QTVDakJBO0FBQ0E7QUFDQTtBNENlQTtBNUNWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBNEN4QkE7QTVDZ0NBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBNEM5Q0E7QTVDb0RBO0FBU0E7QUFDQTtBQUNBO0E0Qy9EQTtBNUN6QkE7QTRDeUJBOzs7QUM4R0E7QUQ5R0E7QUFtR0E7QUFDQTtBQXBHQTtBQXdHQTtBQXhHQTs7QUE0R0E7QUE1R0E7QUFnSEE7QUFDQTtBQUNBO0FDa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUR4SUE7QUF3SEE7QUF4SEE7QUNvSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEUEE7O0FDRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVFBO0FBQ0E7QURWQTtBRTdNQTtBQUVBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBUkE7QUFVQTtBQUNBO0FBRUE7QUFDQTs7QUNoQkE7OztBQ0dBO0F4REhBOztBd0RNQTtBdEROQTs7O0FzRFVBO0F4REFBO0FBZ0JBOztBd0RaQTtBeERkQTs7QXdEaUJBO0F0RGpCQTs7O0FzRHFCQTtBeERYQTtBQWdCQTs7QXdEREE7QUN6QkE7Ozs7Ozs7OztBRG1DQTtBeERuQ0E7O0F3RHNDQTtBdER0Q0E7OztBc0QwQ0E7QXhEaENBO0FBZ0JBOztBd0RvQkE7QVg5Q0E7QUFNQTtBN0NOQTs7QXdEbURBO0F0RG5EQTs7O0FzRHVEQTtBeEQ3Q0E7QUFnQkE7O0F3RGlDQTtBeEMzREE7QUFZQTtBaEJaQTs7QXdEZ0VBO0F0RGhFQTs7O0FzRG9FQTtBeEQxREE7QUFnQkE7O0F3RDhDQTtBeER4RUE7O0F3RDJFQTtBdEQzRUE7OztBc0QrRUE7QXhEckVBO0FBZ0JBOztBd0R5REE7QURuREE7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUVBO0FBQ0E7QTdDbWdCQTtBNkM3Z0JBO0FBYUE7QUFiQTtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBckJBO0FBMkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdDMmVBO0E2QzdnQkE7QUFzQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTFDQTtBQStDQTtBQS9DQTtBQW1EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdDa2RBO0E2QzdnQkE7QUE2REE7QUE3REE7QUFpRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF2RUE7QUEwRUE7QUFDQTtBN0NrY0E7QTZDN2dCQTtBQTZFQTtBQUNBO0FBOUVBO0FBa0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0NzYkE7QTZDN2dCQTtBQXlGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaEdBO0FBc0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0MrWkE7QTZDN2dCQTtBQWdIQTtBQUNBO0FBakhBO0FBdUhBO0FBdkhBO0FBNEhBO0FBNUhBO0FBZ0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdElBO0FBMElBO0FBQ0E7QUFDQTtBN0NpWUE7QTZDN2dCQTtBQThJQTtBQTlJQTtBQWtKQTtBQUNBO0FBQ0E7QTdDeVhBO0E2QzdnQkE7QUFzSkE7QUF0SkE7QUF5SkE7QUFDQTtBQTFKQTs7QUE2SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWpLQTtBQW9LQTtBN0N5V0E7QTZDN2dCQTtBQXNLQTtBQXRLQTtBQXlLQTtBQUNBO0FBMUtBO0FBK0tBO0FBL0tBO0FBa0xBO0FBQ0E7QUFDQTtBN0N5VkE7QTZDN2dCQTtBQXNMQTtBQUNBO0FBQ0E7QUFDQTtBQXpMQTtBQTZMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0MwVUE7QTZDN2dCQTtBQXFNQTtBQXJNQTtBQXVNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTdNQTtBQWdOQTtBQWhOQTtBQWtOQTtBQUNBO0FBbk5BO0FBMk5BO0FBM05BO0FBNk5BO0FBQ0E7QUFDQTtBQS9OQTtBQWlPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF6T0E7QUE4T0E7QUE5T0E7QUFpUEE7QUFqUEE7QUFvUEE7QUFwUEE7QUF3UEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBN1BBO0FBaVFBO0E3QzRRQTtBNkM3Z0JBO0FBbVFBO0FBblFBO0FBd1FBO0FBeFFBO0FBNlFBO0FBN1FBO0FBZ1JBO0FBaFJBO0FBcVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF6UkE7QUE0UkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhTQTtBQW9TQTtBQXBTQTtBQXVTQTtBQUNBO0FBQ0E7QUFDQTtBN0NtT0E7QTZDN2dCQTtBQTRTQTtBQUNBO0E3Q2dPQTtBNkM3Z0JBO0FBaVRBO0FBalRBO0FBc1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE3VEE7QUFpVUE7QUFDQTtBQWxVQTtBQXFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBNVVBO0FBK1VBO0FBS0E7QUFDQTtBN0N3TEE7QTZDekxBO0FBR0E7QUFIQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBdkRoWUE7O0EwREVBO0F4REZBOzs7QXdETUE7QTFESUE7QUFnQkE7O0EwRGhCQTtBMURWQTs7QTBEYUE7QXhEYkE7OztBd0RpQkE7QTFEUEE7QUFnQkE7O0EwRExBO0F6QnJCQTs7QXlCd0JBO0ExRHhCQTs7QTBEMkJBO0F4RDNCQTs7O0F3RCtCQTtBMURyQkE7QUFnQkE7O0EwRFNBO0ExQ25DQTtBQVlBO0FoQlpBOztBMER3Q0E7QXhEeENBOzs7QXdENENBO0ExRGxDQTtBQWdCQTs7QTBEc0JBO0ExRGhEQTs7QTBEbURBO0F4RG5EQTs7O0F3RHVEQTtBMUQ3Q0E7QUFnQkE7O0EwRGlDQTtBQzVDQTtBMUJWQTtBQUNBO0FBQ0E7QTBCYUE7QUFDQTtBQU5BO0F6Q21CQTtBQUNBO0F5Q3BCQTtBekM0QkE7QUFDQTtBeUM3QkE7QUFtQkE7QUFDQTtBQUNBO0FqRHlnQkE7QWlEOWhCQTtBQXdCQTtBQUNBOztBM0R4Q0E7O0E0REVBO0ExREZBOzs7QTBETUE7QTVESUE7QUFnQkE7O0E0RGhCQTtBNURWQTs7QTREYUE7QTFEYkE7OztBMERpQkE7QTVEUEE7QUFnQkE7O0E0RExBO0E1RHJCQTs7QTREd0JBO0ExRHhCQTs7O0EwRDRCQTtBNURsQkE7QUFnQkE7O0E0RE1BO0E1RGhDQTs7QTREbUNBO0ExRG5DQTs7O0EwRHVDQTtBNUQ3QkE7QUFnQkE7O0E0RGlCQTtBNUQzQ0E7O0E0RDhDQTtBMUQ5Q0E7OztBMERrREE7QTVEeENBO0FBZ0JBOztBNEQ0QkE7QTVEdERBOztBNER5REE7QTFEekRBOzs7QTBENkRBO0E1RG5EQTtBQWdCQTs7QTREdUNBO0E1RGpFQTs7QTREb0VBO0ExRHBFQTs7O0EwRHdFQTtBNUQ5REE7QUFnQkE7O0E0RGtEQTtBQzVFQTtBQVNBO0FDSkE7QUNjQTtBQUNBO0FBQ0E7QUFDQTtBRGRBO0FBQ0E7QXhCSEE7QTVCdWlCQTtBb0R4aUJBO0F4QldBO0FBS0E7QUFDQTtBd0JUQTtBQ3NCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRG1nQkE7QW9EaGlCQTtBQ2dDQTtBRGhDQTtBQ3NDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRHNmQTtBb0RoaUJBO0FDNkNBO0FEN0NBO0FDa0RBO0FEbERBO0FDc0RBO0FEbERBO0FDK0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRHVkQTtBb0Q1aEJBO0FDd0VBO0FBQ0E7QXJEbWRBO0FvRHZoQkE7QUFJQTtBQUNBO0FBQ0E7QUFOQTs7O0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcEJBOzs7OztBQXVCQTtBQUNBO0FwRCtmQTtBb0R2aEJBO0FBOEJBO0FBQ0E7QUFDQTtBQUNBO0FBakNBO0FBdUNBO0FwRGdmQTtBb0R2aEJBO0FBeUNBO0FBQ0E7QUFDQTtBQTNDQTtBQWlEQTtBQUNBO0FBQ0E7QUFDQTs7QTlEMUVBOztBZ0VFQTtBOURGQTs7O0E4RE1BO0FoRUlBO0FBZ0JBOztBZ0VoQkE7QWhFVkE7O0FnRWFBO0E5RGJBOzs7QThEaUJBO0FoRVBBO0FBZ0JBOztBZ0VMQTtBaEVyQkE7O0FnRXdCQTtBOUR4QkE7OztBOEQ0QkE7QWhFbEJBO0FBZ0JBOztBZ0VNQTtBaEVoQ0E7O0FnRW1DQTtBOURuQ0E7OztBOER1Q0E7QWhFN0JBO0FBZ0JBOztBZ0VpQkE7QXBEekNBOztBb0Q0Q0E7QXBEeENBOzs7QW9ENENBO0FwRG5DQTs7O0FvRHVDQTtBcEQ3QkE7O0FvRGdDQTtBaEV6REE7O0FnRTREQTtBOUQ1REE7OztBOERnRUE7QWhFdERBO0FBZ0JBOztBZ0UwQ0E7QW5EakVBOztBbURvRUE7QW5EaEVBOzs7QW1Eb0VBO0FuRDNEQTs7O0FtRCtEQTtBbkRyREE7O0FtRHdEQTtBOURsRkE7OztBOERzRkE7QUN6REE7Ozs7QUQ4REE7QXREa2RBO0F1RHZnQkE7QUFFQTtBQUNBO0FBQ0E7QUFPQTs7O0FEbURBO0F0RHljQTtBdUR4ZkE7QUFFQTtBQUNBO0F2RHFmQTtBdUR4ZkE7QUFNQTtBQUNBO0F2RGlmQTtBdUQ3ZUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTs7O0FEK0NBO0FDM0NBOztBQUVBO0FBQ0E7QXZEZ2VBO0F1RDdlQTtBQWlCQTtBQUNBO0FBS0E7QUFHQTtBQU1BO0F2RDZjQTtBdUR0ZEE7QUFhQTtBdkR5Y0E7QXVEdGRBO0FBa0JBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZEd2JBO0F1RGpjQTtBQXFCQTtBdkQ0YUE7QXVEamNBO0FBeUJBO0FBQ0E7QXZEdWFBO0F1RGpjQTtBQThCQTtBQUlBO0FBQ0E7QUFDQTtBdkQ2WkE7QXVEL1pBO0FBU0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZENllBO0F1RGxaQTtBQVFBO0F2RDBZQTtBdURsWkE7QUFZQTtBQUNBO0FBR0E7QXBEN0lBO0FBQ0E7QUFDQTtBb0Q2SUE7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBdkRrV0E7QXVEcFhBO0FBdUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVlBO0FBQ0E7QXZEMlVBO0F1RHBYQTtBQW1EQTtBdkRpVUE7QXVEcFhBO0FBMERBO0FBQ0E7QUFDQTtBQTZCQTtBQUNBO0FBQ0E7QUFDQTtBdkR3UkE7QXVEM1JBO0FBWUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2RGtRQTtBdUR6UUE7QUFVQTtBdkQrUEE7QXVEelFBO0FBY0E7QUFJQTtBQUNBO0FBQ0E7QXZEcVBBO0F1RHZQQTtBQUtBO0FBQ0E7QUNqVEE7QUFFQTtBQUZBO0FBSUE7QUFKQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXhEd2hCQTtBd0RsaUJBO0FBWUE7QUFaQTtBQWVBO0FBQ0E7QUFoQkE7QUFtQkE7QUFuQkE7QUF1QkE7QUF2QkE7QUF5QkE7QXhEeWdCQTtBd0RsaUJBO0FBOEJBO0FBOUJBOztBQWlDQTtBQWpDQTtBQXNDQTtBQXRDQTtBQTJDQTtBQUNBO0FBNUNBO0FBa0RBO0FBQ0E7QUFuREE7QUF1REE7QUFDQTtBQUNBO0FBekRBO0FBK0RBO0FBQ0E7QUFoRUE7QUFrRUE7QUFsRUE7QUF1RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTNFQTtBQTZFQTtBQTdFQTtBQW1GQTtBQW5GQTtBQXdGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBL0ZBO0FBaUdBO0FBQ0E7QUFsR0E7QUF1R0E7QUFDQTtBQUNBO0FBekdBO0FBK0dBO0FBL0dBO0FBa0hBO0FBQ0E7QUFDQTtBQUNBO0FBckhBO0FBdUhBO0FBQ0E7QUFDQTtBQXpIQTtBQTJIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBL0hBO0FBa0lBO0FBbElBO0FBcUlBO0F4RDZaQTtBd0RsaUJBO0FBNklBO0FBQ0E7QUE5SUE7QUFnSkE7QUFoSkE7QUFtSkE7QUFDQTtBQXBKQTtBQXNKQTtBQUNBO0FBdkpBO0FBeUpBO0FBekpBO0FBNEpBO0FBNUpBO0FBK0pBO0FBQ0E7QUFDQTtBQUNBO0FBbEtBO0FBd0tBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhMQTtBQW1MQTtBQW5MQTs7QUF1TEE7QUF2TEE7QUEwTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoTUE7QUFrTUE7QUFsTUE7QUFzTUE7QUF0TUE7QUEwTUE7QUExTUE7QUE0TUE7QUE1TUE7QUE4TUE7QUE5TUE7QUFnTkE7QUFDQTtBQUNBO0FBQ0E7QUFuTkE7QUFxTkE7QUFDQTtBQXROQTtBQVZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE4TkE7QUEzTkE7QUFWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBb09BO0FBak9BO0FBcU9BO0FBQ0E7QUF0T0E7QUE2T0E7QUFDQTtBQTlPQTtBQWlQQTtBQWpQQTtBQW1QQTtBQUNBO0FBQ0E7QUFDQTtBQXRQQTtBQXdQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoUUE7QUFrUUE7QUFsUUE7QUFzUUE7QUFDQTtBQXZRQTtBQXlRQTtBQUNBO0FBMVFBO0FBK1FBO0FBL1FBO0FBaVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFyUkE7QUF1UkE7QUF2UkE7QUEwUkE7QUFDQTtBQTNSQTtBQStSQTtBQUNBO0FBaFNBO0FBa1NBO0FBQ0E7QUFDQTtBQXBTQTtBQTBTQTtBQUNBO0FBM1NBO0FBNlNBO0FBQ0E7QUFDQTtBQS9TQTtBQWlUQTtBQWpUQTs7QUF1VEE7QUF2VEE7O0FBeVRBO0FBelRBOztBQTJUQTtBQTNUQTs7QUE2VEE7QUE3VEE7O0FBaVVBO0FBQ0E7QUFsVUE7O0FBb1VBO0FBcFVBOztBQXNVQTtBQUNBO0FBdlVBO0FBOFVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcFZBO0FBc1ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBNVZBO0FBK1ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXBXQTtBQXlXQTtBQXpXQTtBQTRXQTtBQTVXQTtBQStXQTtBQUNBO0FBQ0E7QUFqWEE7QUF1WEE7QUF2WEE7QUF5WEE7QUF6WEE7Ozs7QUFnWUE7QUFoWUE7QUFtWUE7QUFuWUE7QUF3WUE7QUFDQTtBQUNBO0FBMVlBO0FBOFlBO0FBQ0E7QUEvWUE7QUFvWkE7QUFDQTtBQXJaQTtBQXlaQTtBQUNBO0FBQ0E7QUFDQTtBQTVaQTtBQThaQTtBQUNBO0FBL1pBO0FBb2FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF4YUE7QUEyYUE7QUEzYUE7QUE2YUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFuYkE7QUFxYkE7QUFyYkE7O0FBd2JBO0FBeGJBOztBQTRiQTtBQTViQTtBQWdjQTtBQUNBO0FBQ0E7QUFsY0E7QUFvY0E7QUFwY0E7QUFzY0E7QUF0Y0E7QUF3Y0E7QUF4Y0E7QUE4Y0E7QUFDQTtBQUNBO0FBQ0E7QUFqZEE7QUFtZEE7QUFuZEE7QUFxZEE7QUFyZEE7QUF5ZEE7QUF6ZEE7QUErZEE7QUFDQTtBQUNBO0F4RGlFQTtBd0RsaUJBO0FBbWVBO0FBbmVBO0FBeWVBO0FBQ0E7QUFDQTtBeER1REE7QXdEbGlCQTtBQTZlQTtBQTdlQTtBQXFmQTtBQXJmQTtBQXdmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTlmQTtBQWlnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdGdCQTtBQXlnQkE7QUF6Z0JBO0FBNmdCQTtBQUNBO0FBOWdCQTtBQWloQkE7QUFqaEJBO0FBdWhCQTtBQUNBO0FBeGhCQTtBQTJoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF2aUJBO0FBeWlCQTtBQXppQkE7QUE2aUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWxqQkE7QUFxakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF6akJBO0FBNGpCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWxrQkE7QUFza0JBO0FBdGtCQTtBQTJrQkE7QUFDQTtBeEQxQ0E7QXdEb0RBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFUQTtBQUlBO0FBU0E7QUFLQTtBQUxBO0FBUUE7QUFDQTtBQU1BO0FBS0E7QUFMQTtBQVFBO0FBQ0E7QUFNQTtBQUtBO0FBTEE7QUFRQTtBQUNBO0FBQ0E7QUM5b0JBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBSEE7QUFLQTtBQUNBO0FBTkE7QUFTQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFNQTtBQU5BO0FBU0E7QXpEdWdCQTtBeURoaEJBO0FBWUE7QUFDQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpEb2ZBO0F5RDFmQTs7QUFVQTtBekRnZkE7QXlEMWZBO0FBY0E7QXpENGVBO0F5RHplQTtBQUVBO0F6RHVlQTtBeUQ5ZkE7QUE0QkE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpEdWRBO0F5RC9kQTtBQVdBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6RHljQTtBeUQ1Y0E7QUFLQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0F6RGljQTtBeURwY0E7QUFLQTtBQUxBO0FBUUE7QUFDQTtBQVRBO0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFmQTtBQWtCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdEJBO0FBd0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE1QkE7QUErQkE7QUFDQTtBQWhDQTtBQW9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBTkE7QUFTQTtBQVRBO0FBU0E7QUFUQTtBQVNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpEK1hBO0F5RHhZQTtBQVlBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFHQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFDQTtBQVBBO0FBS0E7QUFDQTtBQUNBO0FBUEE7QUFLQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpEdVZBO0F5RC9WQTtBQVVBO0FBQ0E7QUFYQTtBQWNBO0FBQ0E7QUFDQTtBQWhCQTtBQWtCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdEJBO0FBMkJBO0FBQ0E7QUE1QkE7QUE4QkE7QUE5QkE7QUFnQ0E7QUFDQTtBQUNBO0FBQ0E7QUFuQ0E7OztBQXVDQTtBQXZDQTs7O0FBeUNBO0FBekNBO0FBNkNBO0FBN0NBO0FBZ0RBO0FBaERBO0FBbURBO0FBbkRBO0FBcURBO0FBQ0E7QXpEeVNBO0F5RC9WQTtBQThEQTtBQTlEQTtBQW1FQTtBQW5FQTtBQXNFQTtBQUNBO0FBQ0E7QUF4RUE7QUEwRUE7QUFDQTtBQTNFQTtBQStFQTtBQUNBO0FBaEZBO0FBb0ZBO0FBQ0E7QUFDQTtBQUNBO0FBdkZBO0FBMEZBO0FBQ0E7QUFDQTtBQTVGQTtBQThGQTtBQUNBO0FBQ0E7QUFoR0E7QUFxR0E7QUFyR0E7QUF1R0E7QUFDQTtBQXZRQTtBQWlSQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBbkV6VUE7O0FvRUVBO0FsRUZBOzs7QWtFTUE7QXBFSUE7QUFnQkE7O0FvRWhCQTtBcEVWQTs7QW9FYUE7QWxFYkE7OztBa0VpQkE7QXBFUEE7QUFnQkE7O0FvRUxBO0FYckJBOzs7Ozs7Ozs7QVcrQkE7QXBFL0JBOztBb0VrQ0E7QWxFbENBOzs7QWtFc0NBO0FwRTVCQTtBQWdCQTs7QW9FZ0JBO0EvRDFDQTs7Ozs7Ozs7QStEbURBO0E5RG5EQTtBQVNBO0FOVEE7O0FvRXdEQTtBbEV4REE7OztBa0U0REE7QXBFbERBO0FBZ0JBOztBb0VzQ0E7QWxCaEVBO0FBbURBO0FDV0E7QW5EOURBOztBb0VzRUE7QWxFdEVBOzs7QWtFMEVBO0FwRWhFQTtBQWdCQTs7QW9Fb0RBO0EvRDlFQTs7Ozs7Ozs7QStEdUZBO0E5RHZGQTtBQVNBO0FOVEE7O0FvRTRGQTtBbEU1RkE7OztBa0VnR0E7QXBFdEZBO0FBZ0JBOztBb0UwRUE7QUNoRUE7QUFHQTtBM0RzZ0JBO0EyRHpnQkE7QUFPQTtBQUlBO0FBQ0E7QUFHQTtBWnZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBWW1DQTtBQUNBO0FBREE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcEJBO0FBd0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUdBO0FBTUE7QWhCc0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWdCaERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBaEJ3REE7QUFDQTtBZ0J6REE7QWhCc0ZBO0FnQnRGQTtBaEJrRUE7QWdCbEVBO0FoQnNFQTtBQUNBO0FBQ0E7QUFDQTtBZ0J6RUE7QWhCc0VBO0FBQ0E7QUFDQTtBQUNBO0FnQnpFQTtBaEJzRUE7QUFDQTtBQUNBO0FBQ0E7QWdCekVBO0FoQjZFQTtBM0NnWUE7QTJEN2NBO0FBVUE7QUFLQTtBQUVBO0FBQ0E7QUFIQTtBQU9BO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBU0E7QUFDQTtBM0R1WkE7QTJEamFBO0FBb0JBO0FBcEJBO0FBMEJBO0FBSUE7QVo5SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QVkwSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQVpBO0E3RDNJQTtBQUNBO0FBQ0E7QTZEeUlBO0E3RHBJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBNkR3R0E7QTdEMUZBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBNkRrRkE7QTdEdEVBO0FBR0E7QUFDQTtBQUNBO0E2RGlFQTtBQWVBO0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FaNU5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FZd05BO0FBQ0E7QUFDQTtBQUNBO0EzRDhUQTtBMkRqVUE7QUFNQTtBQUlBO0EzRHVUQTtBMkRqVUE7QUFlQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FyRWhRQTs7QXNFRUE7QXBFRkE7OztBb0VNQTtBdEVJQTtBQWdCQTs7QXNFaEJBO0F0RVZBOztBc0VhQTtBcEViQTs7O0FvRWlCQTtBdEVQQTtBQWdCQTs7QXNFTEE7QXRFckJBOztBc0V3QkE7QXBFeEJBOzs7QW9FNEJBO0F0RWxCQTtBQWdCQTs7QXNFTUE7QWJoQ0E7Ozs7Ozs7OztBYTBDQTtBdEUxQ0E7O0FzRTZDQTtBcEU3Q0E7OztBb0VpREE7QXRFdkNBO0FBZ0JBOztBc0UyQkE7QUNyREE7QUFTQTtBQ3lCQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0E5RHFnQkE7QThEM2dCQTtBQVNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFRQTtBOURpZkE7QThEL2ZBO0FBbUJBO0E5RDRlQTtBOER4ZUE7QUFVQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQVVBO0FBVkE7QUFjQTtBQWRBO0FBbUJBO0FBSUE7QUFFQTtBQUtBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FmN0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0EvQ3loQkE7QThEMWFBO0FmM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWUySEE7QUNuSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBRHdIQTtBQUNBO0FBQ0E7QUFDQTtBQXFCQTtBOUR3WEE7QThEblpBO0FBYUE7QUFpQkE7QUM1SUE7QUFDQTtBRCtJQTtBQzNJQTtBQUNBO0FEOElBO0FDMUlBO0FBQ0E7QUQ2SUE7QUFDQTtBQXdCQTtBQy9KQTtBQUNBO0FDNURBO0FBR0E7QUFDQTtBaEVzaUJBO0FnRTFpQkE7QUFNQTtBQUNBO0FoRW1pQkE7QWdFMWlCQTtBQVVBO0FBR0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QWhFZ2ZBO0FnRWxmQTtBQUlBO0FoRThlQTtBZ0VsZkE7QUFPQTtBQVBBO0FBVUE7QUFDQTtBQUNBO0FBWkE7QUFpQkE7QUFqQkE7QUFxQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBRUE7QUFDQTtBaEU0Y0E7QWdFMWlCQTtBQWtHQTs7QUNyR0E7OztBQUlBO0FBQ0E7QUFFQTs7QUFFQTtBQUNBOztBM0VWQTs7QTRFRUE7QTFFRkE7OztBMEVNQTtBNUVJQTtBQWdCQTs7QTRFaEJBO0FDQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQUlBO0FBSkE7QUFRQTtBQVJBO0FBV0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBUUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUdBO0FBRUE7QUFJQTtBQUVBO0FBQ0E7QTdFaEZBOztBNEV3REE7QTFFeERBOzs7QTBFNERBO0E1RWxEQTtBQWdCQTs7QTRFc0NBO0FFckRBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBREE7QUFJQTtBQUpBO0FBUUE7QUFSQTtBQVdBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVFBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFHQTtBQUVBO0FBRkE7QUFNQTtBQUtBO0FBRUE7QUFGQTtBQU1BOztBOUV6RkE7O0ErRUVBO0E3RUZBOzs7QTZFTUE7QS9FSUE7QUFnQkE7O0ErRWhCQTtBL0VWQTs7QStFYUE7QTdFYkE7OztBNkVpQkE7QS9FUEE7QUFnQkE7O0ErRUxBO0EvRXJCQTs7QStFd0JBO0E3RXhCQTs7O0E2RTRCQTtBL0VsQkE7QUFnQkE7O0ErRU1BO0FDN0JBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QXRFZ2lCQTtBc0VwaUJBO0FBUUE7QUFJQTtBQUNBO0F0RXVoQkE7QXNFeGhCQTtBQUlBO0FBR0E7QUFDQTtBQUNBO0FDM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdkVxaUJBO0F1RXZpQkE7QUFJQTs7QWpGVkE7O0FrRkVBO0FoRkZBOzs7QWdGTUE7QWxGSUE7QUFnQkE7O0FrRmhCQTtBQ1NBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7O0FuRjFFQTs7QW9GRUE7QWxGRkE7OztBa0ZNQTtBcEZJQTtBQWdCQTs7QW9GaEJBO0FwRlZBOztBb0ZhQTtBbEZiQTs7O0FrRmlCQTtBcEZQQTtBQWdCQTs7QW9GTEE7QXBGckJBOztBb0Z3QkE7QWxGeEJBOzs7QWtGNEJBO0FwRmxCQTtBQWdCQTs7QW9GTUE7QS9FaENBOzs7Ozs7OztBK0V5Q0E7QTlFekNBO0FBU0E7QU5UQTs7QW9GOENBO0FsRjlDQTs7O0FrRmtEQTtBcEZ4Q0E7QUFnQkE7O0FvRjRCQTtBbEZ0REE7OztBa0YwREE7QXBGMURBOztBb0Y2REE7QWxGN0RBOzs7QWtGaUVBO0FwRnZEQTtBQWdCQTs7QW9GMkNBO0F2Q3JFQTtBQU1BO0F3Q3VDQTtBQWlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVdBO0FBN0JBO0FBdUJBO0FBQ0E7QUFDQTtBQUNBO0FBT0E7QXRDdkVBO0FzQ2tGQTtBQUNBO0FBQ0E7QUFDQTtBQWRBO0F0Q25FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW1CQTtBQVVBO0FBQUE7QXNDZ0NBO0F0Q3pCQTtBc0N5QkE7QXRDaEJBO0FzQ2dCQTtBdENxSUE7QUFDQTtBc0N0SUE7QXRDMElBO0FzQzFJQTtBdEMrSUE7QUFDQTtBc0NoSkE7QXRDb0pBO0FBQ0E7QXNDcElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBbUJBO0FBQ0E7QUFyQkE7QUFLQTtBQUxBO0FBU0E7QUFJQTtBQUVBO0FBQ0E7QUFTQTtBQUNBO0FBREE7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0EzRThWQTtBMkVqV0E7QUFNQTtBQUVBO0FBQ0E7QUFDQTtBQTJCQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0FBVkE7QUFNQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQURBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7QUFNQTtBQU5BO0E3RXJQQTtBQUNBO0FBQ0E7QTZFbVBBO0E3RTlPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBNkVrTkE7QTdFcE1BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBNkU0TEE7QTdFaExBO0FBR0E7QUFDQTtBQUNBO0E2RW1MQTtBN0VyUUE7QTZFMFFBO0FBR0E7QTNEdUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7QTJEM0hBO0FBQ0E7QUFHQTtBQU1BO0FBTkE7QTdFOVFBO0FBQ0E7QUFDQTtBNkU0UUE7QTdFdlFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0E2RXFPQTtBN0U3TkE7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0E2RStNQTtBN0V6TUE7QUFTQTtBQUNBO0FBQ0E7QTZFc01BO0E3RTlSQTtBNkVtU0E7QUFHQTtBM0Q4REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFDQTtBMkRsR0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QTdFdlNBO0FBQ0E7QUFDQTtBQUNBO0E2RW9TQTtBN0VoU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QTZFOFBBO0E3RXRQQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QTZFd09BO0E3RWxPQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0E2RTBPQTtBN0VuVUE7QTZFd1VBO0FBQ0E7QUFFQTtBM0R5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFDQTtBMkQ3REE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBM0U0SEE7QTJFekhBO0FBRUE7QTNFdUhBO0EyRWhKQTtBQThCQTtBM0VrSEE7QTJFaEpBO0FBa0NBO0FBQ0E7QUFuQ0E7QUFnREE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBakZBO0FBc0ZBO0FBQ0E7QUFDQTtBQXdFQTtBQUVBO0FBQ0E7QUNsaUJBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBUkE7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqQkE7QUFvQkE7QUFwQkE7QUF3QkE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBV0E7QUE3QkE7QUF1QkE7QUFDQTtBQUNBO0FBUUE7QXZDckNBO0F1Q2dEQTtBQUNBO0FBQ0E7QUFDQTtBQWRBO0F2Q2pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW1CQTtBQVVBO0FBQUE7QXVDRkE7QXZDU0E7QXVDVEE7QXZDa0JBO0F1Q2xCQTtBdkN1S0E7QUFDQTtBdUN4S0E7QXZDNEtBO0F1QzVLQTtBdkNpTEE7QUFDQTtBdUNsTEE7QXZDc0xBO0F1Q3JLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQW1CQTtBQUNBO0FBckJBO0FBS0E7QUFMQTtBQVNBO0FBSUE7QUFFQTtBQVVBO0FBQ0E7QUFEQTtBQUlBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QTVFNFlBO0E0RTlZQTtBQUlBO0FBVEE7QUFjQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QTVFeVhBO0E0RTVYQTtBQU1BO0FBRUE7QUFDQTtBQTRCQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBYkE7QUFNQTtBNUVpVkE7QTRFdlZBO0FBUUE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFXQTtBNUVzVEE7QTRFdFVBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVFBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFaQTtBQWVBO0FBQ0E7QUFHQTtBQW5CQTtBQXlCQTtBQUNBO0FBR0E7QUE3QkE7QUFpQ0E7QUFDQTtBQUNBO0FBTUE7QUFHQTtBQUhBO0E5RXJRQTtBQUNBO0FBQ0E7QThFbVFBO0E5RTlQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBOEVrT0E7QTlFcE5BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBOEU0TUE7QTlFaE1BO0FBR0E7QUFDQTtBQUNBO0E4RWdNQTtBOUVsUkE7QThFb1JBO0FBR0E7QTVENkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7QTREcEhBO0FBSUE7QUFHQTtBQUhBO0E5RXJSQTtBQUNBO0FBQ0E7QThFbVJBO0E5RTlRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBOEU0T0E7QTlFcE9BO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBOEVzTkE7QTlFaE5BO0FBU0E7QUFDQTtBQUNBO0E4RTBNQTtBOUVsU0E7QThFb1NBO0FBR0E7QTVENkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7QTREcEdBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0E5RXJTQTtBQUNBO0FBQ0E7QThFbVNBO0E5RTlSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBOEU0UEE7QTlFcFBBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBOEVzT0E7QTlFaE9BO0FBU0E7QUFDQTtBQUNBO0E4RXFPQTtBOUU3VEE7QThFK1RBO0FBR0E7QTVEa0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7QTREekVBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVFNklBO0E0RTFKQTtBQWdCQTtBQWhCQTtBQW9CQTtBNUVzSUE7QTRFMUpBO0FBeUJBO0FBSUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBNUVzSEE7QTRFbkhBO0FBRUE7QTVFaUhBO0E0RTFKQTtBQThDQTtBNUU0R0E7QTRFMUpBO0FBa0RBO0FBQ0E7QUFuREE7QUFnRUE7QUFDQTtBQWpFQTtBQW1FQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBdEdBO0FBMkdBO0FBQ0E7QUFDQTtBQWlFQTtBQUVBO0FBRkE7QUFJQTs7QXRGcGpCQTs7QXVGRUE7QXJGRkE7OztBcUZNQTtBdkZJQTtBQWdCQTs7QXVGaEJBO0F2RlZBOztBdUZhQTtBckZiQTs7O0FxRmlCQTtBdkZQQTtBQWdCQTs7QXVGTEE7QWxGckJBOzs7Ozs7OztBa0Y4QkE7QWpGOUJBO0FBU0E7QU5UQTs7QXVGbUNBO0FyRm5DQTs7O0FxRnVDQTtBdkY3QkE7QUFnQkE7O0F1RmlCQTtBdkYzQ0E7O0F1RjhDQTtBckY5Q0E7OztBcUZrREE7QXZGeENBO0FBZ0JBOztBdUY0QkE7QWxGdERBOzs7Ozs7OztBa0YrREE7QWpGL0RBO0FBU0E7QU5UQTs7QXVGb0VBO0FyRnBFQTs7O0FxRndFQTtBdkY5REE7QUFnQkE7O0F1RmtEQTtBckM1RUE7QUFtREE7QUNXQTtBbkQ5REE7O0F1RmtGQTtBckZsRkE7OztBcUZzRkE7QXZGNUVBO0FBZ0JBOztBdUZnRUE7QTlCMUZBOzs7Ozs7Ozs7QThCb0dBO0FyRnBHQTs7O0FxRndHQTtBQ2pEQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0E5RW1jQTtBOEU5Y0E7QUFPQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFTQTtBQUNBO0FBakJBO0FBV0E7QUFDQTtBQVNBO0FBRUE7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUpBOztBQVVBO0FBVkE7QUFjQTtBQUtBO0FBRUE7QUFHQTtBQUlBO0FBQ0E7QUFDQTtBQVdBO0FBQ0E7QUFsQkE7QUFVQTtBQUNBO0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUtBO0FBQ0E7QUFPQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFoQkE7QUFTQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7O0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FuQy9KQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FtQ3FKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVkE7QW5DN0lBO0FBQ0E7QW1DNElBO0FuQy9HQTtBbUMrR0E7QW5DbklBO0FtQ21JQTtBbkMvSEE7QUFDQTtBQUNBO0FBQ0E7QW1DNEhBO0FuQy9IQTtBQUNBO0FBQ0E7QUFDQTtBbUM0SEE7QW5DL0hBO0FBQ0E7QUFDQTtBQUNBO0FtQzRIQTtBbkN4SEE7QW1DcUlBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFUQTtBaEYzUEE7QUFDQTtBQUNBO0FnRnlQQTtBaEZwUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWdGd05BO0FoRjFNQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWdGa01BO0FoRnRMQTtBQUdBO0FBQ0E7QUFDQTtBZ0Y2TEE7QWhGL1FBO0FnRnNSQTtBOUQ4RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBQ0E7QThEL0VBOzs7QUFNQTtBQU1BO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBQUdBO0FBSUE7QS9CbldBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0ErQmdXQTtBQUlBO0FBTUE7QUFFQTtBQUNBO0F4RmpZQTs7QXVGcVdBO0FyRnJXQTs7O0FxRnlXQTtBdkYvVkE7QUFnQkE7O0F1Rm1WQTtBRTNWQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBT0E7QS9FOGVBO0ErRXhmQTtBQU1BO0FBUUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFTQTtBQUNBO0FBakJBO0FBV0E7QUFDQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBQ0E7QUFMQTtBQVNBO0FBVEE7O0FBZUE7QUFDQTtBQUNBO0FBakJBOztBQW1CQTtBQUNBO0FBQ0E7QUFyQkE7O0FBd0JBO0FBeEJBO0FBOEJBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFJQTs7QUFFQTtBQUNBO0FBQ0E7QS9FOFlBO0ErRWxaQTs7QUFNQTtBQUNBO0FBSUE7QUFDQTtBQUdBO0FwQ3BDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FvQzBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVkE7QXBDbEJBO0FBQ0E7QW9DaUJBO0FwQ1lBO0FvQ1pBO0FwQ1JBO0FvQ1FBO0FwQ0pBO0FBQ0E7QUFDQTtBQUNBO0FvQ0NBO0FwQ0pBO0FBQ0E7QUFDQTtBQUNBO0FvQ0NBO0FwQ0pBO0FBQ0E7QUFDQTtBQUNBO0FvQ0NBO0FwQ0dBO0FvQ1VBO0FqRmhJQTtBQUNBO0FBQ0E7QWlGOEhBO0FqRnpIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBaUY2RkE7QWpGL0VBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBaUZ1RUE7QWpGM0RBO0FBR0E7QUFDQTtBQUNBO0FpRnNEQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBTUE7QWpGMUpBO0FpRmlLQTtBL0RtTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBQ0E7QStEcE1BOzs7QUFNQTtBQU1BO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBQUdBO0FBSUE7QWhDOU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FnQzJPQTtBQUlBO0FBTUE7QUFFQTs7QXpGM1FBOztBMEZFQTtBeEZGQTs7O0F3Rk1BO0ExRklBO0FBZ0JBOztBMEZoQkE7QUN5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7O0EzRmhIQTs7QTRGRUE7QTFGRkE7OztBMEZNQTtBNUZJQTtBQWdCQTs7QTRGaEJBO0E1RlZBOztBNEZhQTtBMUZiQTs7O0EwRmlCQTtBNUZQQTtBQWdCQTs7QTRGTEE7QTVFckJBO0FBWUE7QWhCWkE7O0E0RjBCQTtBMUYxQkE7OztBMEY4QkE7QTVGcEJBO0FBZ0JBOztBNEZRQTtBNUZsQ0E7O0E0RnFDQTtBMUZyQ0E7OztBMEZ5Q0E7QTVGL0JBO0FBZ0JBOztBNEZtQkE7QXZGN0NBOzs7Ozs7OztBdUZzREE7QXRGdERBO0FBU0E7QU5UQTs7QTRGMkRBO0ExRjNEQTs7O0EwRitEQTtBNUZyREE7QUFnQkE7O0E0RnlDQTtBbkNuRUE7Ozs7Ozs7OztBbUM2RUE7QTVGN0VBOztBNEZnRkE7QTFGaEZBOzs7QTBGb0ZBO0E1RjFFQTtBQWdCQTs7QTRGOERBO0FDbkVBO0FBRUE7OztBQUtBO0FBQ0E7QUFOQTs7O0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWRBOzs7QUFpQkE7QUFDQTtBQUNBO0FBQ0E7QUFwQkE7OztBQXVCQTtBQUNBO0FBQ0E7QUF6QkE7OztBQTRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF2Q0E7OztBcENYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBb0NHQTs7O0FBOENBO0FBQ0E7QUEvQ0E7OztBQW1EQTtBQUNBO0FBQ0E7QUFDQTtBbkZnZUE7QW1GdGhCQTs7O0FBeURBO0FBekRBOzs7Ozs7QUFrRUE7QUFsRUE7Ozs7OztBckZnQ0E7QUFDQTtBQUNBO0FxRmxDQTs7Ozs7Ozs7Ozs7QXJGdUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FxRm5FQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBckZpRkE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FxRnpGQTs7Ozs7Ozs7Ozs7QXJGcUdBO0FBR0E7QUFDQTtBQUNBO0FFNGFBO0FtRnRoQkE7Ozs7OztBQXFFQTtBQXJFQTs7Ozs7O0FyRndCQTtBcUZ4QkE7Ozs7OztBQXNGQTtBQXRGQTs7Ozs7O0FyRmdDQTtBQUNBO0FBQ0E7QXFGbENBOzs7Ozs7Ozs7OztBckZ1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QXFGekVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FyRmlGQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QXFGL0ZBOzs7Ozs7Ozs7OztBckZxR0E7QUFTQTtBQUNBO0FBQ0E7QUVzYUE7QW1GdGhCQTs7Ozs7O0FBeUZBO0FBQ0E7QUExRkE7Ozs7OztBckZ3QkE7QXFGNkVBOzs7Ozs7QUFLQTtBQUxBOzs7Ozs7QXJGckVBO0FBQ0E7QUFDQTtBcUZtRUE7Ozs7Ozs7Ozs7O0FyRjlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBcUY0QkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QXJGcEJBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBcUZNQTs7Ozs7Ozs7Ozs7QXJGQUE7QUFTQTtBQUNBO0FBQ0E7QXFGWEE7Ozs7OztBckY3RUE7QXFGeEJBOzs7QUEwSEE7QUExSEE7OztBckZnQ0E7QUFDQTtBQUNBO0FxRmxDQTs7Ozs7QXJGdUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FxRm5FQTs7Ozs7Ozs7Ozs7OztBckZpRkE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FxRnpGQTs7Ozs7QXJGcUdBO0FBR0E7QUFDQTtBQUNBO0FxRjFHQTs7O0FyRndCQTtBQUNBO0FxRnpCQTs7O0F6Rm5CQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMkV5SUE7QUFDQTtBQUNBO0FBQ0E7QW5GNFlBO0FtRnpZQTtBQUdBO0FBQ0E7QW5GcVlBO0FtRmpZQTtBQUdBO0FBQ0E7QW5GNlhBO0FtRmpZQTs7QUFTQTtBQUNBO0FuRnVYQTtBbUZqWUE7O0FBZ0JBO0FBQ0E7QUFDQTtBQUtBO0FBRUE7QUFDQTtBbkZ1V0E7QW1GMVdBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUVBOztBN0Z0TkE7O0E4RkVBO0E1RkZBOzs7QTRGTUE7QTlGSUE7QUFnQkE7O0E4RmhCQTtBOUZWQTs7QThGYUE7QTVGYkE7OztBNEZpQkE7QTlGUEE7QUFnQkE7O0E4RkxBO0F6RnJCQTs7Ozs7Ozs7QXlGOEJBO0F4RjlCQTtBQVNBO0FOVEE7O0E4Rm1DQTtBNUZuQ0E7OztBNEZ1Q0E7QTlGN0JBO0FBZ0JBOztBOEZpQkE7QUNsQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJGa2dCQTtBcUZ2Z0JBO0FBUUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRnFmQTtBcUYxZkE7QUFRQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJGd2VBO0FxRjdlQTtBQVFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBdkZ6QkE7QUFDQTtBQUNBO0FBQ0E7QXVGc0JBO0F2RmxCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBdUZWQTtBdkZ3QkE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0F1RmhDQTtBdkY0Q0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBdUYzQ0E7QXZGeENBO0FBQ0E7QXVGOENBO0FyRXFUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBOztBMUI1YkE7O0FnR0VBO0E5RkZBOzs7QThGTUE7QWhHSUE7QUFnQkE7O0FnR2hCQTtBQ1ZBOzs7Ozs7Ozs7O0FEcUJBO0FoR3JCQTs7QWdHd0JBO0E5RnhCQTs7O0E4RjRCQTtBaEdsQkE7QUFnQkE7O0FnR01BO0FFUEE7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBQUNBO0FBREE7QUFJQTtBQXBDQTtBQTBDQTtBQTFDQTtBQThDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFLQTtBQWtCQTtBQUNBO0FBQ0E7QUFGQTtBQU1BO0FBTkE7QUFZQTtBQUtBO0FBQ0E7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFJQTtBQUNBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBSUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQVFBO0FBUkE7QUFZQTtBQUNBO0FBYkE7QUFpQkE7QUFLQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBRUE7QUFLQTtBQUVBO0FBRkE7QUFNQTtBQXBOQTtBQTJOQTtBQTNOQTtBQThOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFYQTtBQWVBO0FBSUE7QUFuQkE7QUFvQkE7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFSQTtBQVlBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FEdlRBO0FDdVRBO0FEcFRBO0FBQ0E7QUFDQTtBQUNBO0FDaVRBO0FEN1NBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUNnVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FEeFVBO0FDd1VBO0FEclVBO0FDcVVBO0FEalVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQ29VQTtBQUNBO0F4Rm1MQTtBd0ZwTEE7QUFJQTs7QWxHN1hBOztBbUdFQTtBakdGQTs7O0FpR01BO0FuR0lBO0FBZ0JBOztBbUdoQkE7QW5HVkE7O0FtR2FBO0FqR2JBOzs7QWlHaUJBO0FuR1BBO0FBZ0JBOztBbUdMQTtBMUNyQkE7Ozs7Ozs7OztBMEMrQkE7QW5HL0JBOztBbUdrQ0E7QWpHbENBOzs7QWlHc0NBO0FuRzVCQTtBQWdCQTs7QW1HZ0JBO0E5RjFDQTs7Ozs7Ozs7QThGbURBO0E3Rm5EQTtBQVNBO0FOVEE7O0FtR3dEQTtBakd4REE7OztBaUc0REE7QW5HbERBO0FBZ0JBOztBbUdzQ0E7QWpEaEVBO0FBbURBO0FDV0E7QW5EOURBOztBbUdzRUE7QWpHdEVBOzs7QWlHMEVBO0FuR2hFQTtBQWdCQTs7QW1Hb0RBO0E5RjlFQTs7Ozs7Ozs7QThGdUZBO0E3RnZGQTtBQVNBO0FOVEE7O0FtRzRGQTtBakc1RkE7OztBaUdnR0E7QW5HdEZBO0FBZ0JBOztBbUcwRUE7QUM5RUE7QUFDQTtBQUNBO0ExRnFoQkE7QTBGdmhCQTtBQUtBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMUYyZ0JBO0EwRi9nQkE7QUFPQTtBMUZ3Z0JBO0EwRi9nQkE7QUFXQTtBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0EzQ2hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBMkM0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQU1BO0FBQ0E7QUFQQTtBNUZmQTtBQUNBO0FBQ0E7QTRGYUE7QTVGUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTRGcEJBO0E1RmtDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTRGMUNBO0E1RnNEQTtBQUdBO0FBQ0E7QUFDQTtBNEZqREE7QTFFbVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFTQTtBQUNBO0EwRTNVQTtBQUNBO0FBQ0E7O0FwR3hGQTs7QXFHRUE7QW5HRkE7OztBbUdNQTtBckdJQTtBQWdCQTs7QXFHaEJBO0FyR1ZBOztBcUdhQTtBbkdiQTs7O0FtR2lCQTtBckdQQTtBQWdCQTs7QXFHTEE7QXJHckJBOztBcUd3QkE7QW5HeEJBOzs7QW1HNEJBO0FyR2xCQTtBQWdCQTs7QXFHTUE7QXJHaENBOztBcUdtQ0E7QW5HbkNBOzs7QW1HdUNBO0FyRzdCQTtBQWdCQTs7QXFHaUJBO0FyRzNDQTs7QXFHOENBO0FuRzlDQTs7O0FtR2tEQTtBckd4Q0E7QUFnQkE7O0FxRzRCQTtBckd0REE7O0FxR3lEQTtBbkd6REE7OztBbUc2REE7QXJHbkRBO0FBZ0JBOztBcUd1Q0E7QTVDakVBOzs7Ozs7Ozs7QTRDMkVBO0FyRzNFQTs7QXFHOEVBO0FuRzlFQTs7O0FtR2tGQTtBckd4RUE7QUFnQkE7O0FxRzREQTtBOUJ0RkE7QUFTQTtBQ3lCQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0E5RHFnQkE7QThEM2dCQTtBQVNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFRQTtBOURpZkE7QThEL2ZBO0FBbUJBO0E5RDRlQTtBOER4ZUE7QUFVQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQVVBO0FBVkE7QUFjQTtBQWRBO0FBbUJBO0FBSUE7QUFFQTtBQUtBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FmN0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0EvQ3loQkE7QThEMWFBO0FmM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWUySEE7QUNuSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBRHdIQTtBQUNBO0FBQ0E7QUFDQTtBQXFCQTtBOUR3WEE7QThEblpBO0FBYUE7QUFpQkE7QUM1SUE7QUFDQTtBRCtJQTtBQzNJQTtBQUNBO0FEOElBO0FDMUlBO0FBQ0E7QUQ2SUE7QUFDQTtBQXdCQTtBQy9KQTtBQUNBO0FDNURBO0FBR0E7QUFDQTtBaEVzaUJBO0FnRTFpQkE7QUFNQTtBQUNBO0FoRW1pQkE7QWdFMWlCQTtBQVVBO0FBR0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QWhFZ2ZBO0FnRWxmQTtBQUlBO0FoRThlQTtBZ0VsZkE7QUFPQTtBQVBBO0FBVUE7QUFDQTtBQUNBO0FBWkE7QUFpQkE7QUFqQkE7QUFxQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBRUE7QUFDQTtBaEU0Y0E7QWdFMWlCQTtBQWtHQTtBQUNBO0E0QnhGQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBO0FBMkJBO0FBQ0E7QUFDQTtBQUNBO0FBOUJBO0FBa0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBSUE7QUFLQTtBQUxBO0FBU0E7QUFUQTtBQWFBO0FBYkE7QUFrQkE7QUFsQkE7QUF1QkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFYQTtBQWlCQTtBQUNBO0FBQ0E7QUFuQkE7QUF1QkE7QUFDQTtBQXhCQTtBQTRCQTtBQUNBO0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBNUZvWkE7QTRGaGFBO0FBZ0JBO0FBQ0E7QUMzSkE7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUtBO0FBQ0E7QUFOQTtBQVlBO0FBQ0E7QUFJQTtBQUlBOztBdkdoQ0E7O0F3R0VBO0F0R0ZBOzs7QXNHTUE7QXhHSUE7QUFnQkE7O0F3R2hCQTtBeEdWQTs7QXdHYUE7QXRHYkE7OztBc0dpQkE7QXhHUEE7QUFnQkE7O0F3R0xBO0FuR3JCQTs7Ozs7Ozs7QW1HOEJBO0F4RzlCQTs7QXdHaUNBO0F0R2pDQTs7O0FzR3FDQTtBeEczQkE7QUFnQkE7O0F3R2VBO0EzRHpDQTtBQU1BO0EzQ05BOzs7QXNHK0NBO0FDQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBR0E7QUFFQTtBQUdBO0FBR0E7QUE1QkE7QUFrQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXRDQTtBQThDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFQQTtBQVdBO0FBR0E7QUFFQTtBQUNBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQTtBQWFBO0FBYkE7QUFpQkE7QUFXQTtBQUVBO0FBRkE7QUFNQTtBQU5BO0FBVUE7QUFWQTtBQWNBO0FBZEE7QUFvQkE7QUFDQTtBQUNBO0FBdEJBO0FBNEJBO0FBS0E7QUFHQTtBQUNBO0FBSUE7QUFDQTtBQURBO0FBSUE7QUFPQTtBQUNBO0FBREE7QUFJQTtBQVFBO0ExRDFMQTtBMEQwTEE7QTFEdExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBNkJBO0FBQUE7QTBEbUpBO0ExRG5JQTtBMERtSUE7QTFEM0hBO0FBQ0E7QTBEMEhBO0ExRDNHQTtBQUNBO0EwRDBHQTtBMUR6RkE7QUFDQTtBMER3RkE7QTFENUVBO0FBQ0E7QTBENkZBO0ExRDVNQTtBMEQ0TUE7QTFEeE1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBNkJBO0FBQUE7QTBEcUtBO0ExRHJKQTtBMERxSkE7QTFEdklBO0FBQ0E7QTBEc0lBO0ExRHZIQTtBQUNBO0EwRHNIQTtBMURsREE7QUFDQTtBMERpREE7QTFEckNBO0FBQ0E7QTBEb0NBO0FBZUE7QUFuTkE7QUE4TkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QXpHdlNBOztBMEdFQTtBeEdGQTs7O0F3R01BO0ExR0lBO0FBZ0JBOztBMEdoQkE7QTFHVkE7O0EwR2FBO0F4R2JBOzs7QXdHaUJBO0ExR1BBO0FBZ0JBOztBMEdMQTtBQ1JBO0FBR0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBakdnaEJBO0FpRzFoQkE7QUFjQTtBQUNBO0FqRzJnQkE7QWlHMWhCQTtBQW1CQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FqR3NmQTtBaUc5ZkE7QUFXQTtBQUdBO0FBQ0E7QUFqREE7QUF1REE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBTUE7QUFDQTtBQUNBO0FBaEdBO0FBdUdBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBM0cvSEE7O0EwR3VGQTtBeEd2RkE7OztBd0cyRkE7QTFHakZBO0FBZ0JBOztBMEdxRUE7QUV6RkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QTVHWEE7O0E2R0VBO0EzR0ZBOzs7QTJHTUE7QTdHSUE7QUFnQkE7O0E2R2hCQTtBN0dWQTs7QTZHYUE7QTNHYkE7OztBMkdpQkE7QTdHUEE7QUFnQkE7O0E2R0xBO0E3RnJCQTtBQVlBO0FoQlpBOztBNkcwQkE7QTNHMUJBOzs7QTJHOEJBO0E3R3BCQTtBQWdCQTs7QTZHUUE7QTdHbENBOztBNkdxQ0E7QTNHckNBOzs7QTJHeUNBO0E3Ry9CQTtBQWdCQTs7QTZHbUJBO0FDckNBO0ExR0pBO0FjWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E0RlhBOztBOUdWQTs7QStHRUE7QTdHRkE7OztBNkdNQTtBL0dJQTtBQWdCQTs7QStHaEJBO0EvR1ZBOztBK0dhQTtBN0diQTs7O0E2R2lCQTtBL0dQQTtBQWdCQTs7QStHTEE7QUNmQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRHZ2lCQTtBc0d2aUJBO0FBVUE7QUFDQTtBdEc0aEJBO0FzR3ZpQkE7QUFlQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0R21mQTtBc0d4ZkE7QUFRQTtBQUNBO0F0RytlQTtBc0d4ZkE7QUFhQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0F0R3FlQTtBc0d2ZUE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQVJBO0FBV0E7QXRHNGRBO0FzR3ZlQTtBQWdCQTtBQUNBO0FBakJBO0FBb0JBO0FBS0E7QUFDQTtBdEc2Y0E7QXNHOWNBO0FBSUE7QUFDQTtBQUNBO0F0R3djQTtBc0c5Y0E7QUFVQTtBQUNBO0FBSUE7QUFDQTtBdEc4YkE7QXNHL2JBO0FBS0E7QUFDQTtBdEd5YkE7QXNHL2JBO0FBVUE7QXRHcWJBO0FzRy9iQTtBQWNBO0F0R2liQTtBc0c3YUE7QUFHQTtBQUhBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QXRHc1pBO0FzR3paQTtBQU1BO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQXJFQTtBQXlFQTtBQUNBO0FBS0E7QUFDQTs7QWhIcE9BOztBaUhFQTtBL0dGQTs7O0ErR01BO0FqSElBO0FBZ0JBOztBaUhoQkE7QXBGVkE7Ozs7QW9GZUE7QXhEZkE7Ozs7Ozs7OztBd0R5QkE7QUNoQkE7QUNIQTtBREdBO0FDQUE7QUFDQTtBRERBO0FDSUE7QURKQTtBQ1VBO0FBQ0E7QURYQTtBQ2dCQTtBRGhCQTtBQ3FCQTtBRHJCQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBUkE7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoQkE7QUFvQkE7QUFJQTs7O0F6RHJCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBeURYQTtBQXlDQTtBQXpDQTs7QUE4Q0E7QUFDQTtBQUNBO0FBaERBOztBQW1EQTtBQW5EQTs7QUF1REE7QUFDQTtBQXhEQTtBQThEQTtBQUNBO0FBQ0E7QUFDQTtBQWpFQTtBQXVFQTtBQUNBO0FBQ0E7QUFDQTtBQTFFQTtBQStFQTtBQS9FQTtBQXFGQTtBQUdBO0FBRUE7QUExRkE7QUFnR0E7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbEhoSUE7O0FpSHFIQTtBL0dySEE7OztBK0d5SEE7QWpIL0dBO0FBZ0JBOztBaUhtR0E7QWpIN0hBOztBaUhnSUE7QS9HaElBOzs7QStHb0lBO0FqSDFIQTtBQWdCQTs7QWlIOEdBO0FHaElBO0FBRUE7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBUkE7QUFhQTtBQUNBO0FBQ0E7QUFmQTtBQW9CQTtBQUNBO0FBckJBO0FBdUJBO0FBQ0E7QUF4QkE7QUE2QkE7QUFDQTtBQUNBO0FBQ0E7QUFoQ0E7QUFtQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBeENBO0FBNENBO0FBSUE7QTNENUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0EyRFpBO0FBK0RBO0FBQ0E7QUFoRUE7O0FBcUVBO0FBQ0E7QUFDQTtBQXZFQTs7QUEwRUE7QUExRUE7O0FBOEVBO0FBQ0E7QUEvRUE7QUFvRkE7QUFDQTtBQXJGQTtBQXVGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBM0ZBO0FBOEZBO0FBQ0E7QUEvRkE7QUFrR0E7QUFDQTtBQUNBO0FBQ0E7QUFyR0E7QUEyR0E7QUFDQTtBQTVHQTtBQStHQTtBQUNBO0FBQ0E7QUFDQTtBQWxIQTtBQXNIQTtBQUNBO0FBQ0E7QUF4SEE7O0FBOEhBO0FBOUhBO0FBa0lBO0FBQ0E7QUFuSUE7QUF3SUE7QUF4SUE7QUE4SUE7QUFHQTtBQUVBO0FBbkpBO0FBeUpBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMUcwV0E7QTBHbFhBOztBQVVBOztBcEhyTUE7O0FxSEVBO0FuSEZBOzs7QW1ITUE7QXJISUE7QUFnQkE7O0FxSGhCQTtBckhWQTs7QXFIYUE7QW5IYkE7OztBbUhpQkE7QXJIUEE7QUFnQkE7O0FxSExBO0FySHJCQTs7QXFId0JBO0FuSHhCQTs7O0FtSDRCQTtBckhsQkE7QUFnQkE7O0FxSE1BO0F6RmhDQTtBQVNBO0FDVEE7Ozs7QXdGdUNBO0FuSHZDQTs7O0FtSDJDQTtBcEIzQ0E7Ozs7Ozs7Ozs7QW9Cc0RBO0FDdERBOzs7Ozs7QUQ2REE7QXBGN0RBOztBb0ZnRUE7QTVEaEVBOzs7Ozs7Ozs7QTREMEVBO0EzR21lQTtBNkdoWUE7QUFHQTtBQUNBO0E3RzRYQTtBNkdoWUE7QUFNQTtBQUNBO0E3R3lYQTtBNkdoWUE7QUFTQTtBQUNBO0FBSUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3RzJXQTtBNkdsWEE7QUFXQTtBQUlBO0FBRUE7QUFJQTs7QUFHQTtBQUlBO0FBQ0E7QUFEQTtBQWFBO0FBSUE7QUFJQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUpBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBO0FBYUE7QUFDQTtBN0d3U0E7QTZHdFRBO0FBZ0JBO0FBQ0E7QUFDQTtBQWxCQTtBQW9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBeEJBO0FBNkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdHeVFBO0E2R2pSQTtBQWFBO0FBQ0E7QUFkQTtBQWlCQTtBN0dnUUE7QTZHalJBO0FBbUJBO0FBQ0E7QTdHNlBBO0E2R2pSQTtBQXVCQTtBQUNBO0E3R3lQQTtBNkdqUkE7QUE2QkE7QTdHb1BBO0E2R2pSQTtBQWtDQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E3RzBOQTtBNkc1TkE7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBN0dvTkE7QTZHdE5BO0FBSUE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBN0dpTUE7QTZHcE1BO0FBTUE7QUFJQTtBQUNBO0E3R3lMQTtBNkcxTEE7QUFJQTtBQXZCQTtBQStCQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFRQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRCbFlBO0FzQjhYQTtBdEIzWEE7QUFDQTtBQUNBO0FBQ0E7QXNCd1hBO0F0QnBYQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FzQmtZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdHcUlBO0E2RzFJQTtBQVFBO0FBUkE7QUFZQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0c0R0E7QTZHaEhBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QTdHbUdBO0E2R3JHQTtBQUlBO0FBS0E7QXRGNWNBO0FBQ0E7QUFDQTtBc0Y2Y0E7QUFDQTtBQUdBO0FBQ0E7QUFLQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBSUE7QUFDQTtBQU9BO0FBU0E7QXhGemRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJCeWZBO0E2RzdDQTtBQUdBO0FBR0E7QXhGeGJBO0FBQ0E7QXdGdWJBO0F4RjVaQTtBd0Y0WkE7QXhGelpBO0F3RmlhQTtBeEZwZEE7QUFDQTtBd0ZtZEE7QXhGcGFBO0F3Rm9hQTtBeEZqYUE7QXdGeWFBO0F4RmxkQTtBQUNBO0F3RmlkQTtBeEY1YUE7QXdGNGFBO0F4RnphQTtBd0ZpYkE7QXhGcmRBO0FBQ0E7QXdGb2RBO0F4RnBiQTtBd0ZvYkE7QXhGamJBO0F3RnliQTtBeEY5Y0E7QUFDQTtBd0Y2Y0E7QXhGNWJBO0F3RjRiQTtBeEZ6YkE7QXdGa2NBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBVEE7QUFhQTtBQUlBO0F4RnRkQTtBd0ZzZEE7QXhGbmRBO0F3RndkQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0E3R3RDQTtBNkdtQ0E7QUFLQTtBQUNBO0E3R3pDQTtBNkdtQ0E7QUFTQTtBQUNBO0E3RzdDQTtBNkdtQ0E7QUFhQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0E3RzFEQTtBNkd1REE7QUFNQTtBQUlBO0FBQ0E7QTdHbEVBO0E2R2lFQTtBQUlBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFFQTtBQUVBO0FBR0E7QUF4QkE7QUF5QkE7QTdHckdBO0E2RzRFQTtBQTJCQTtBN0d2R0E7QTZHNEVBO0FBZ0NBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0duSUE7QTZHNkhBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7QUFpQkE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0E3RzVKQTtBNkdvSkE7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdHcEtBO0E2R29KQTtBQW1CQTtBN0d2S0E7QTZHb0pBO0FBc0JBO0E3RzFLQTtBNkc4S0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQU1BO0FBWkE7QUFhQTtBQUNBO0FBZEE7O0FBb0JBO0FBS0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdHdk5BO0E2R2dOQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0E3RzlOQTtBNkdnTkE7QUFpQkE7QTdHak9BO0E2R2dOQTtBQW9CQTtBQUlBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBRUE7QUFDQTtBN0cxUEE7QTZHeVBBO0FBSUE7QUFJQTtBQUNBO0E3R2xRQTtBNkdpUUE7QUFJQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQWRBO0FBa0JBO0FBS0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTdHNVRBO0E2RzBUQTtBQUtBO0E3Ry9UQTtBNkcwVEE7QUFTQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QTdHdFZBO0E2RytVQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0E3R2pXQTtBNkcrVUE7QUF1QkE7QUFLQTtBQUNBO0FBMUVBO0FBK0VBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBTUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQU5BO0FBVUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0E3R3BiQTtBNkdpYkE7QUFNQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0E3R2xjQTtBNkdnY0E7QUFLQTtBQUlBO0FBQ0E7QTdHMWNBO0E2R3ljQTtBQUlBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUZBOztBQVdBO0FBS0E7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUxBOztBQVdBO0FBU0E7QUFFQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdHM2hCQTtBNkd1aEJBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QTdHNWpCQTtBNkcyakJBO0FBR0E7QUFDQTtBN0cvakJBO0E2RzJqQkE7QUFPQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0dqbEJBO0E2RzZrQkE7QUFPQTtBN0dwbEJBO0E2R3NsQkE7QUFFQTtBQUtBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBdEJBO0FBeUJBO0FBekJBO0FBNkJBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBN0dycEJBO0E2RzJvQkE7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3RzNxQkE7QTZHZ3FCQTtBQWNBO0FBL0NBO0FBb0RBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3R25zQkE7QTZHd3JCQTtBQWNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QTdHaHRCQTtBNkc2c0JBO0FBTUE7QUFDQTtBQUNBO0E3R3J0QkE7QTZHd3JCQTtBQW1DQTtBQU1BO0FBQ0E7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQURBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QTdHOXVCQTtBNkd3dUJBO0FBVUE7QUFWQTtBQWFBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFEQTtBQUdBO0FBdENBO0FBMkNBO0FBM0NBO0FBNkNBO0FBSUE7O0FBRUE7QUFuREE7QUF1REE7QUFLQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QTdHdHlCQTtBNkdxeUJBO0FBR0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBWEE7QUFZQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QTlEbjJDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBOERnMkNBO0E5RHgyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QThEcTJDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3R2gxQkE7QTZHNDBCQTtBQU9BO0E3R24xQkE7QTZHNDBCQTtBQVdBO0FBQ0E7QUFDQTtBN0d6MUJBO0E2RzQwQkE7QUFpQkE7QUFqQkE7QUEyQkE7QUFDQTtBQTVCQTtBQThCQTtBQTlCQTtBQWtDQTtBQWxDQTtBQW9DQTtBQXBDQTtBQXVDQTtBQUNBO0FBT0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QTdHcjRCQTtBNkdtNEJBO0FBSUE7QUFDQTtBQUxBO0FBU0E7QTdHNTRCQTtBNkdtNEJBO0FBZUE7QUFDQTtBQWhCQTtBQWlCQTtBQUNBO0FBQ0E7QUFDQTtBQXpCQTs7QUFpQ0E7QTdHLzVCQTtBNkc4M0JBOztBQW1DQTtBQUNBO0E3R2w2QkE7QTZHODNCQTtBQTBDQTtBN0d4NkJBO0E2RzgzQkE7QUFpREE7QUFqREE7QUFvREE7QTdHbDdCQTtBNkc4M0JBO0FBNERBO0FBQ0E7QUFNQTtBQUNBO0E3R2w4QkE7QTZHZzhCQTtBQU9BO0FBUEE7QUFTQTtBQUNBO0E3RzE4QkE7QTZHZzhCQTtBQWdCQTtBQUNBO0E3R2o5QkE7QTZHZzhCQTs7QUF5QkE7QUFDQTtBN0cxOUJBO0E2R2c4QkE7QUErQkE7QUEvQkE7QUFpQ0E7QTdHaitCQTtBNkdnOEJBO0FBd0NBO0FBN0dBO0FBcUhBO0FBQ0E7QUFDQTtBQXZIQTtBQTRIQTtBN0d2L0JBO0E2RzIzQkE7QUFrSUE7QUFDQTtBQW5JQTtBQXVJQTtBQUNBO0FBQ0E7QUF6SUE7QUE4SUE7QTdHemdDQTtBNkcyM0JBO0FBaUpBO0FBakpBO0FBcUpBO0FBQ0E7QUFDQTtBQUNBO0E3R25oQ0E7QTZHMjNCQTtBQTRKQTtBQTVKQTtBQWdLQTtBQUNBO0FBQ0E7QTdHN2hDQTtBNkcyM0JBO0FBdUtBO0FBdktBO0FBMktBO0FBQ0E7QUFDQTtBQTdLQTtBQW1MQTtBN0c5aUNBO0E2RytpQ0E7QUFFQTtBQUNBO0FBdkxBO0FBMkxBO0FBQ0E7QUE1TEE7QUErTEE7QTdHMWpDQTtBNkcyM0JBO0FBaU1BO0FBQ0E7QUFDQTtBQW5NQTtBQXNNQTtBN0dqa0NBO0E2RzIzQkE7QUE0TUE7QUE1TUE7QUFnTkE7QUFDQTtBQWpOQTtBQXNOQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBZ0RBO0FBZ0NBO0E3R3ZxQ0E7QTZHcWxDQTtBQUlBO0FBSkE7QUFTQTtBQUNBO0E3Ry9sQ0E7QTZHcWxDQTtBQWVBO0FBZkE7QUFtQkE7QTdHeG1DQTtBNkdxbENBO0FBMEJBO0FBMUJBO0FBcURBO0FBckRBO0FBMkRBO0E3R2hwQ0E7QTZHcWxDQTtBQXNGQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBb0NBO0FBdkNBO0FBT0E7QUFQQTtBQVNBO0E3R3pyQ0E7QTZHZ3JDQTtBQWNBO0FBQ0E7QUFmQTtBQXNCQTtBQUNBO0FBQ0E7QUF4QkE7QUEyQkE7QTdHM3NDQTtBNkdnckNBO0FBaUNBO0FBakNBO0FBMENBO0FBMUNBO0FBOENBO0FBa0VBO0FBRUE7QUFGQTtBQU1BO0E3R3R5Q0E7QTZHMHlDQTtBQUlBO0E3Rzl5Q0E7QTZHMHlDQTs7QUFVQTtBN0dwekNBO0E2RzB5Q0E7QUFnQkE7QTdHMXpDQTtBNkcweUNBO0FBdUJBO0FBQ0E7QUF4QkE7QUEwQkE7QUExQkE7QUE2QkE7O0F2SHAzREE7O0F3SEVBO0F0SEZBOzs7QXNITUE7QXhISUE7QUFnQkE7O0F3SGhCQTtBdkZWQTs7QXVGYUE7QXhIYkE7O0F3SGdCQTtBdEhoQkE7OztBc0hvQkE7QXhIVkE7QUFnQkE7O0F3SEZBO0FDaEJBO0F4RkhBO0FBQ0E7QUFDQTtBd0ZNQTtBQUNBO0FBTkE7QUFXQTtBQUNBO0FBWkE7QUFlQTtBL0dzaEJBO0ErR2poQkE7QUFHQTtBQUNBO0FBSkE7QUFPQTs7QXpIbkNBOztBMEhFQTtBeEhGQTs7O0F3SE1BO0ExSElBO0FBZ0JBOztBMEhoQkE7QTFIVkE7O0EwSGFBO0F4SGJBOzs7QXdIaUJBO0ExSFBBO0FBZ0JBOztBMEhMQTtBakVyQkE7Ozs7Ozs7OztBaUUrQkE7QXJIL0JBOzs7Ozs7OztBcUh3Q0E7QXJIeENBOzs7Ozs7OztBcUhpREE7QXBIakRBO0FBU0E7QU5UQTs7QTBIc0RBO0F4SHREQTs7O0F3SDBEQTtBMUhoREE7QUFnQkE7O0EwSG9DQTtBQ0dBO0FBR0E7QUFIQTtBQU1BO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBakgrY0E7QWlIaGRBO0FBSUE7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQUE7QUFPQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FqSHNiQTtBaUgzYkE7QUFTQTtBQUtBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FqSHVaQTtBaUg3WkE7QUFVQTtBQUNBO0FqSGtaQTtBaUg3WkE7QUFlQTtBakg4WUE7QWlIMVlBO0FBRUE7QUFGQTtBQU1BO0FqSG9ZQTtBaUgxWUE7QUFTQTtBQUdBO0FBQ0E7QUFVQTtBbkhuSUE7QUFDQTtBQUNBO0FtSGlJQTtBbkg1SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QW1IMEZBO0FuSGxGQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QW1Ib0VBO0FuSDlEQTtBQVNBO0FBQ0E7QUFDQTtBbUhtREE7QW5IM0lBO0FtSDJJQTtBakd5TkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFDQTtBaUc5T0E7QW5IdkpBO0FBQ0E7QUFDQTtBbUhxSkE7QW5IaEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FtSG9IQTtBbkh0R0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FtSDhGQTtBbkhsRkE7QUFHQTtBQUNBO0FBQ0E7QW1INkVBO0FuSC9KQTtBbUgrSkE7QWpHcU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7QWlHck5BO0FuSGhMQTtBQUNBO0FBQ0E7QW1IOEtBO0FuSHpLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBbUh1SUE7QW5IL0hBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBbUhpSEE7QW5IM0dBO0FBU0E7QUFDQTtBQUNBO0FtSGdHQTtBbkh4TEE7QW1Id0xBO0FqRzRLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBO0FpRy9MQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QWpId1FBO0FpSDdRQTtBQVlBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBNUJBO0FBaUNBO0FBQ0E7QUFLQTtBQUNBOztBQUVBO0FBRUE7O0FBRUE7QUFFQTs7QUFFQTtBQUNBO0FBWkE7QUFDQTs7QUFFQTtBQUVBOztBQUVBO0FBRUE7O0FBRUE7O0EzSGxWQTs7QTRIRUE7QTFIRkE7OztBMEhNQTtBNUhJQTtBQWdCQTs7QTRIaEJBO0E1SFZBOztBNEhhQTtBMUhiQTs7O0EwSGlCQTtBNUhQQTtBQWdCQTs7QTRITEE7QTVIckJBOztBNEh3QkE7QTFIeEJBOzs7QTBINEJBO0E1SGxCQTtBQWdCQTs7QTRITUE7QTVIaENBOztBNEhtQ0E7QTFIbkNBOzs7QTBIdUNBO0E1SDdCQTtBQWdCQTs7QTRIaUJBO0F2SDNDQTs7Ozs7Ozs7QXVIb0RBO0F0SHBEQTtBQVNBO0FOVEE7O0E0SHlEQTtBMUh6REE7OztBMEg2REE7QTVIbkRBO0FBZ0JBOztBNEh1Q0E7QTFFakVBO0FBbURBO0FDV0E7QW5EOURBOztBNEh1RUE7QTFIdkVBOzs7QTBIMkVBO0E1SGpFQTtBQWdCQTs7QTRIcURBO0FuRS9FQTs7Ozs7Ozs7O0FtRXlGQTtBQ3pEQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FwRTVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBb0V5QkE7QXBFakNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FvRTZCQTtBeEVxRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBd0VoR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFYQTtBeEV1R0E7QUFDQTtBd0V4R0E7QXhFcUlBO0F3RXJJQTtBeEVpSEE7QXdFakhBO0F4RXFIQTtBQUNBO0FBQ0E7QUFDQTtBd0V4SEE7QXhFcUhBO0FBQ0E7QUFDQTtBQUNBO0F3RXhIQTtBeEVxSEE7QUFDQTtBQUNBO0FBQ0E7QXdFeEhBO0F4RTRIQTtBd0U1SEE7QUFnQkE7QUFDQTtBQUNBO0FBbEJBO0FBc0JBO0FBdEJBO0FBeUJBO0FBekJBO0FBOEJBO0FBQ0E7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFWQTtBQWVBO0FBQ0E7QUFoQkE7QUFtQkE7QUFuQkE7QUF5QkE7QUFDQTtBQUNBO0FBM0JBO0FBOEJBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQU9BO0FBQ0E7QUFDQTtBQVRBO0FBWUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUM5SkE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFUQTtBQWFBOztBOUhoQkE7O0ErSEVBO0E3SEZBOzs7QTZITUE7QS9ISUE7QUFnQkE7O0ErSGhCQTtBQ0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaEJBO0FBcUJBO0FBQ0E7QUFDQTtBaEkvQkE7O0ErSGlDQTtBN0hqQ0E7OztBNkhxQ0E7QS9IM0JBO0FBZ0JBOztBK0hlQTtBRWhDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFyQkE7QUF3QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqQ0E7QUFxQ0E7QUFDQTtBQXRDQTtBQTZDQTtBQUNBOztBakl2REE7O0FrSUVBO0FoSUZBOzs7QWdJTUE7QWxJSUE7QUFnQkE7O0FrSWhCQTtBbElWQTs7QWtJYUE7QWhJYkE7OztBZ0lpQkE7QWxJUEE7QUFnQkE7O0FrSUxBO0FqR3JCQTs7QWlHd0JBO0FDR0E7QWxHdEJBO0FBQ0E7QUFDQTtBa0d5QkE7QUFDQTtBQU9BO0FBQ0E7QXpIb2dCQTtBeUhsaEJBO0FBaUJBO0F6SGlnQkE7QXlIbGhCQTtBQXNCQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUkE7QUFjQTtBQUtBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QW5JeEdBOztBb0lFQTtBbElGQTs7O0FrSU1BO0FwSUlBO0FBZ0JBOztBb0loQkE7QXBJVkE7O0FvSWFBO0FsSWJBOzs7QWtJaUJBO0FwSVBBO0FBZ0JBOztBb0lMQTtBM0VyQkE7Ozs7Ozs7OztBMkUrQkE7QUNTQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUVBO0FBRkE7QUFNQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBekJBO0FBNkJBO0FBQ0E7QUFwREE7QUF5REE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQU5BO0FBVUE7QUFDQTtBQVhBO0FBZUE7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFGQTtBQU1BO0FBZ0JBO0FBQ0E7QUFJQTtBQUNBO0FBYUE7QUFKQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBREE7QUFLQTtBQUxBO0FBUUE7QUFSQTtBQUtBO0FBTEE7QUFRQTtBQVJBO0FBS0E7QUFMQTtBQVFBO0FBUkE7QUFLQTtBQUxBO0FBUUE7QUFSQTtBQUtBO0FBTEE7QUFRQTtBQVJBO0FBY0E7QUFkQTtBQWtCQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QTNIb1ZBO0EySDVXQTtBQTJCQTtBQUVBO0FBN0JBO0FBaUNBO0FBQ0E7QUFsQ0E7QTVFektBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNkU1QkE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBSkE7QUFDQTtBQUZBO0FBT0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFNQTtBQUVBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBdEl2REE7O0F1SUVBO0FySUZBOzs7QXFJTUE7QXZJSUE7QUFnQkE7O0F1SWhCQTtBOUVWQTs7Ozs7Ozs7O0E4RW9CQTtBdklwQkE7O0F1SXVCQTtBckl2QkE7OztBcUkyQkE7QXZJakJBO0FBZ0JBOztBdUlLQTtBckkvQkE7OztBcUltQ0E7QWxJbkNBOzs7Ozs7OztBa0k0Q0E7QWpJNUNBO0FBU0E7QU5UQTs7QXVJaURBO0FySWpEQTs7O0FxSXFEQTtBdkkzQ0E7QUFnQkE7O0F1SStCQTtBbEl6REE7Ozs7Ozs7O0FrSWtFQTtBQUNBO0FDaURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlIcWJBO0E2SG5lQTtBQ2tEQTtBRGhEQTtBQ3FEQTtBQUNBO0FBSUE7QUFDQTtBQURBO0FBS0E7QUFDQTtBQUNBO0E5SGdhQTtBOEh2YUE7QUFjQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFTQTtBQVRBO0FBYUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0E5SHFYQTtBOEg3WEE7QUFlQTtBQWZBO0FBdUJBO0FBQ0E7QUFDQTtBQU1BO0EvRW5NQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0ErRThMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBU0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBOUgyVUE7QThIOVVBO0FBWUE7QUFDQTtBQVdBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBQXRCQTtBQTBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFsQ0E7QUFzQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbERBO0FBdURBO0FBQ0E7QUF4REE7QUEyREE7QUEzREE7QUFpRUE7QUFqRUE7QUFvRUE7QUFDQTtBQUNBO0FBdEVBO0FBeUVBO0FBekVBO0FBZ0ZBO0FBaEZBO0FBdUZBO0FBQ0E7QUF4RkE7QUE0RkE7QUE1RkE7QUErRkE7QUFDQTtBQUNBO0FBQ0E7QUFsR0E7QUEwR0E7QUFDQTtBQTNHQTtBQThHQTtBQUNBO0FBS0E7QS9FdldBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0ErRW9XQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVFBO0FBckJBOztBQTJCQTtBQUNBO0FBQ0E7QUFDQTtBQTlCQTs7QUFvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBWUE7QUFHQTtBQUlBO0FBQ0E7QUFjQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBTEE7QUFTQTs7QXhJL2RBOztBeUlFQTtBdklGQTs7O0F1SU1BO0F6SUlBO0FBZ0JBOztBeUloQkE7QXpJVkE7O0F5SWFBO0F2SWJBOzs7QXVJaUJBO0F6SVBBO0FBZ0JBOztBeUlMQTtBeklyQkE7O0F5SXdCQTtBdkl4QkE7OztBdUk0QkE7QXpJbEJBO0FBZ0JBOztBeUlNQTtBekloQ0E7O0F5SW1DQTtBdkluQ0E7OztBdUl1Q0E7QXpJN0JBO0FBZ0JBOztBeUlpQkE7QXpIM0NBO0FBWUE7QWhCWkE7O0F5SWdEQTtBdkloREE7OztBdUlvREE7QXpJMUNBO0FBZ0JBOztBeUk4QkE7QXpJeERBOztBeUkyREE7QXZJM0RBOzs7QXVJK0RBO0F6SXJEQTtBQWdCQTs7QXlJeUNBO0F4R25FQTs7QXdHc0VBO0FDakRBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QWhJa2hCQTtBZ0l4aEJBO0FBU0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaElzZ0JBO0FnSTNnQkE7QUFRQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBaElzZkE7QWdJeGZBO0FBS0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFJQTs7QXpHcEVBO0FBQ0E7QUFDQTtBeUdzRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFRQTtBQUNBO0FoSWtkQTtBZ0kzZEE7QUFhQTtBQUNBO0FBZEE7QUFvQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUdBO0FBUUE7QUFSQTtBeEhuRkE7QUFDQTtBd0hrRkE7QXhIMUVBO0FBQ0E7QXdIb0ZBO0FBQ0E7QUFDQTtBQUdBO0FBTUE7QUFDQTtBQVBBO0F4SG5HQTtBQUNBO0F3SGtHQTtBeEgxRkE7QUFDQTtBQUNBO0F3SG9HQTtBQUNBO0FBQ0E7QUFDQTtBQ2pKQTtBQUNBO0FBREE7QUFJQTtBQUNBO0FqSXFpQkE7QWlJMWlCQTtBQVFBO0FBUkE7QUFZQTtBQVpBO0FBZ0JBO0FBQ0E7QUFDQTtBakl3aEJBO0FpSTFpQkE7QUFvQkE7QUFwQkE7QUEwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBL0JBO0FBbUNBO0FBQ0E7QUFDQTs7QTNJeENBOztBNElFQTtBMUlGQTs7O0EwSU1BO0E1SUlBO0FBZ0JBOztBNEloQkE7QTVJVkE7O0E0SWFBO0ExSWJBOzs7QTBJaUJBO0E1SVBBO0FBZ0JBOztBNElMQTtBNUhyQkE7QUFZQTtBaEJaQTs7QTRJMEJBO0ExSTFCQTs7O0EwSThCQTtBNUlwQkE7QUFnQkE7O0E0SVFBO0E1SWxDQTs7QTRJcUNBO0ExSXJDQTs7O0EwSXlDQTtBNUkvQkE7QUFnQkE7O0E0SW1CQTtBQzFDQTtBeklDQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EySGZBO0F6SUhBO0FjWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTJIWEE7QXpJUEE7QWNZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMkhQQTtBeklYQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EySEhBO0F6SWZBO0FjWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTJIQ0E7QXpJbkJBO0FjWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTJIS0E7QTNIT0E7QUFDQTtBQUNBO0EySFRBO0EzSGdCQTtBQUNBO0FBQ0E7QTJIZEE7O0EzSG9CQTtBQUNBO0EySHJCQTs7QTNIMkJBO0FBQ0E7QWxCM0RBOztBNElzSEE7QTFJdEhBOzs7QTBJMEhBO0E1SWhIQTtBQWdCQTs7QTRJb0dBO0E1STlIQTs7QTRJaUlBO0ExSWpJQTs7O0EwSXFJQTtBNUkzSEE7QUFnQkE7O0E0SStHQTtBNUh6SUE7QUFZQTtBaEJaQTs7QTRJOElBO0ExSTlJQTs7O0EwSWtKQTtBNUl4SUE7QUFnQkE7O0E0STRIQTtBNUl0SkE7O0E0SXlKQTtBMUl6SkE7OztBMEk2SkE7QTVJbkpBO0FBZ0JBOztBNEl1SUE7QUU3SkE7QTFJQUE7QWNZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNEhkQTtBMUlKQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E0SFZBO0ExSVJBO0FjWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTRITkE7QTFJWkE7QWNZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNEhGQTtBMUloQkE7QWNZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNEhFQTtBMUlwQkE7QWNZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNEhNQTtBNUhNQTtBQUNBO0FBQ0E7QTRIUkE7QTVIZUE7QUFDQTtBQUNBO0E0SGJBOztBNUhtQkE7QUFDQTtBNEhwQkE7O0E1SDBCQTtBQUNBO0E0SGxCQTtBQUNBOztBOUkxQ0E7O0ErSUVBO0E3SUZBOzs7QTZJTUE7QS9JSUE7QUFnQkE7O0ErSWhCQTtBdEZWQTs7Ozs7Ozs7O0FzRm9CQTtBQ2pCQTtBdkZTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTs7QXpEcEJBOztBaUpFQTtBL0lGQTs7O0ErSU1BO0FqSklBO0FBZ0JBOztBaUpoQkE7QWpKVkE7O0FpSmFBO0EvSWJBOzs7QStJaUJBO0FqSlBBO0FBZ0JBOztBaUpMQTtBakpyQkE7O0FpSndCQTtBL0l4QkE7OztBK0k0QkE7QWpKbEJBO0FBZ0JBOztBaUpNQTtBNUloQ0E7Ozs7Ozs7O0E0SXlDQTtBM0l6Q0E7QUFTQTtBTlRBOztBaUo4Q0E7QS9JOUNBOzs7QStJa0RBO0FqSnhDQTtBQWdCQTs7QWlKNEJBO0EvRnREQTtBQW1EQTtBQ1dBO0FuRDlEQTs7QWlKNERBO0EvSTVEQTs7O0ErSWdFQTtBakp0REE7QUFnQkE7O0FpSjBDQTtBaEhwRUE7O0FnSHVFQTtBakp2RUE7O0FpSjBFQTtBL0kxRUE7OztBK0k4RUE7QWpKcEVBO0FBZ0JBOztBaUp3REE7QXBHbEZBO0FBTUE7QXFHc0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQVVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FuRy9GQTtBbUc4RkE7QW5HMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWUE7QUFpQkE7QUFBQTtBbUd1REE7QW5HaERBO0FBS0E7QUFJQTtBbUd1Q0E7QW5HNUJBO0FBQ0E7QW1HMkJBO0FuR1pBO0FBQ0E7QUFVQTtBQXNDQTtBQXRDQTtBQWtEQTtBbUdoQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FqSC9LQTtBQUNBO0FBQ0E7QWlIaUxBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBYkE7O0FBbUJBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBREE7QUFJQTtBQUNBO0FBTEE7QUFTQTtBQVRBO0FBYUE7QUFDQTtBQUNBO0FsSjlQQTs7QWlKb1FBO0EvSXBRQTs7O0ErSXdRQTtBako5UEE7QUFnQkE7O0FpSmtQQTtBRWxRQTtBQUNBO0FBQ0E7QUFIQTs7QUFRQTtBQUNBO0FBR0E7QUFDQTs7QW5KdEJBOztBb0pFQTtBbEpGQTs7O0FrSk1BO0FwSklBO0FBZ0JBOztBb0poQkE7QXBKVkE7O0FvSmFBO0FsSmJBOzs7QWtKaUJBO0FwSlBBO0FBZ0JBOztBb0pMQTtBbkhyQkE7O0FtSHdCQTtBcEp4QkE7O0FvSjJCQTtBbEozQkE7OztBa0orQkE7QXBKckJBO0FBZ0JBOztBb0pTQTtBdkduQ0E7QUFNQTtBeENOQTs7Ozs7Ozs7QStJOENBO0FDWEE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQURBO0FBSUE7QUFJQTtBcEgvQ0E7QUFDQTtBQUNBO0FvSCtDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0F0RzFDQTtBc0d1Q0E7QXRHbkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZ0JBO0FBYUE7QUFBQTtBc0dBQTtBdEdPQTtBc0dQQTtBdEdnQkE7QXNHaEJBO0F0RzhCQTtBQUNBO0FzRy9CQTtBdEc4Q0E7QUFDQTtBc0cvQ0E7QXRHbUhBO0FBQ0E7QXNHcEhBO0F0R2dJQTtBQUNBO0FzR2pJQTtBQWtCQTtBQUNBO0FBS0E7QUFDQTtBdEdoRUE7QXNHK0RBO0F0RzNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWdCQTtBQWFBO0FBQUE7QXNHd0JBO0F0R2pCQTtBc0dpQkE7QXRHUkE7QXNHUUE7QXRHQUE7QUFDQTtBc0dEQTtBdEdnQkE7QUFDQTtBc0dqQkE7QXRHa0NBO0FBQ0E7QXNHbkNBO0F0RytDQTtBQUNBO0FzRy9FQTtBQWtEQTtBQUNBO0FBS0E7QUFDQTtBM0k0YUE7QTJJN2FBO0FBSUE7O0FySnBJQTs7QXNKRUE7QXBKRkE7OztBb0pNQTtBdEpJQTtBQWdCQTs7QXNKaEJBO0FqSlZBOzs7Ozs7OztBaUptQkE7QWhKbkJBO0FBU0E7QU5UQTs7QXNKd0JBO0FwSnhCQTs7O0FvSjRCQTtBdEpsQkE7QUFnQkE7O0FzSk1BO0F0SmhDQTs7QXNKbUNBO0FwSm5DQTs7O0FvSnVDQTtBdEo3QkE7QUFnQkE7O0FzSmlCQTtBdEkzQ0E7QUFZQTtBaEJaQTs7QXNKZ0RBO0FwSmhEQTs7O0FvSm9EQTtBdEoxQ0E7QUFnQkE7O0FzSjhCQTtBdEp4REE7O0FzSjJEQTtBcEozREE7OztBb0orREE7QXRKckRBO0FBZ0JBOztBc0p5Q0E7QXRKbkVBOztBc0pzRUE7QXBKdEVBOzs7QW9KMEVBO0F0SmhFQTtBQWdCQTs7QXNKb0RBO0FDbkRBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBO0FBY0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXRCQTtBQTBCQTtBQUNBO0FBM0JBO0FBOEJBO0FBQ0E7QUFDQTtBQUNBO0FBakNBO0FBb0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF4Q0E7QUE0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW5EQTtBQXNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdJa2NBO0E2STdmQTtBQThEQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QS9JOUZBO0FBQ0E7QUFDQTtBQUNBO0ErSTJGQTtBL0l2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QStJMkRBO0EvSTdDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QStJcUNBO0EvSXpCQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0ErSW1CQTtBL0l0R0E7QUFDQTtBK0lrSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW5KQTtBQXVKQTs7QXZKbExBOztBd0pFQTtBdEpGQTs7O0FzSk1BO0F4SklBO0FBZ0JBOztBd0poQkE7QXhKVkE7O0F3SmFBO0F0SmJBOzs7QXNKaUJBO0F4SlBBO0FBZ0JBOztBd0pMQTtBeEpyQkE7O0F3SndCQTtBdEp4QkE7OztBc0o0QkE7QXhKbEJBO0FBZ0JBOztBd0pNQTtBQ3VDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFPQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0k0WEE7QStJNVlBO0FBdUJBO0FBQ0E7QUF4QkE7QUE0QkE7QUE1QkE7QUFpQ0E7QUFqQ0E7QUF1Q0E7QUF2Q0E7QUEyREE7QUFDQTtBQUNBO0FBN0RBO0FBNENBO0FBNUNBO0FBZ0RBO0FBQ0E7QUFqREE7QUFxREE7QUFDQTtBQXREQTtBQWtFQTtBQWxFQTtBQXFFQTtBQXJFQTtBQTBFQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0F6SnRQQTs7QTBKRUE7QXhKRkE7OztBd0pNQTtBMUpJQTtBQWdCQTs7QTBKaEJBO0ExSlZBOztBMEphQTtBeEpiQTs7O0F3SmlCQTtBMUpQQTtBQWdCQTs7QTBKTEE7QTFJckJBO0FBWUE7QWhCWkE7O0EwSjBCQTtBeEoxQkE7OztBd0o4QkE7QTFKcEJBO0FBZ0JBOztBMEpRQTtBMUpsQ0E7O0EwSnFDQTtBeEpyQ0E7OztBd0p5Q0E7QTFKL0JBO0FBZ0JBOztBMEptQkE7QUN2QkE7QUFHQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QXpJSkE7QUFDQTtBeUlHQTtBeklLQTtBQUNBO0F5SVVBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQUNBO0FBUEE7QXpJcEJBO0FBQ0E7QXlJbUJBO0F6SVhBO0FBQ0E7QXlJK0JBO0FBQ0E7QUFHQTtBQUVBOztBQ2pGQTtBQUVBOztBNUpGQTs7QTZKRUE7QTNKRkE7OztBMkpNQTtBN0pJQTtBQWdCQTs7QTZKaEJBO0E3SlZBOztBNkphQTtBM0piQTs7O0EySmlCQTtBN0pQQTtBQWdCQTs7QTZKTEE7QTdKckJBOztBNkp3QkE7QTNKeEJBOzs7QTJKNEJBO0E3SmxCQTtBQWdCQTs7QTZKTUE7QTdKaENBOztBNkptQ0E7QTNKbkNBOzs7QTJKdUNBO0E3SjdCQTtBQWdCQTs7QTZKaUJBO0FqSTNDQTtBQVNBO0FLVEE7O0E0SGdEQTtBQzVCQTs7QUQrQkE7QW5KMGZBO0FvSnZnQkE7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FwSitmQTtBb0poZ0JBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBcEptZkE7QW9KdGZBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0E3SC9EQTtBQUNBO0FBQ0E7QTZIK0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBN0gxRUE7QUFDQTtBQUNBO0E2SDBFQTtBQUNBO0FBS0E7QUFDQTtBQUdBO0EvSHBEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBK0gyQ0E7QS9IcENBO0FBQ0E7QStIbUNBO0EvSFlBO0ErSFpBO0EvSGVBO0ErSFBBO0EvSHhCQTtBQUNBO0ErSHVCQTtBL0hJQTtBK0hKQTtBL0hPQTtBK0hDQTtBL0hyQ0E7QUFDQTtBK0hvQ0E7QS9ISkE7QStISUE7QS9IREE7QStIU0E7QS9IbERBO0FBQ0E7QStIaURBO0EvSFpBO0ErSFlBO0EvSFRBO0ErSGlCQTtBL0hqQ0E7QUFDQTtBK0hnQ0E7QS9IcEJBO0ErSG9CQTtBL0hqQkE7QUFDQTtBK0h5QkE7QS9IN0JBO0ErSDZCQTtBL0gxQkE7QUFDQTtBK0g4QkE7O0FEYUE7QUNWQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFGQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBWUE7QUFDQTtBQU9BO0FBRUE7QUFGQTtBQUtBO0FBQ0E7QXBKd1dBO0FvSnBXQTtBQUdBO0FBQ0E7QUFDQTtBQUxBO0FBU0E7QUFDQTtBcEowVkE7QW9KcFdBO0FBYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEptVkE7QW9KcFdBO0FBc0JBO0FBQ0E7QUFJQTs7QUFHQTtBQUNBO0FBQ0E7QUFMQTtBQVFBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QXBKMFRBO0FvSnZUQTtBQUVBO0FBQ0E7QXBKb1RBO0FvSmpUQTtBQUVBO0FBQ0E7QXBKOFNBO0FvSnZTQTtBQUVBO0FBQ0E7QUFDQTtBQzlQQTtBQUVBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFOQTtBQVFBO0FBUkE7QUFVQTtBckp1aEJBO0FxSmppQkE7QUFZQTtBQVpBO0FBZUE7QUFmQTtBQWlCQTtBQUNBO0FBbEJBO0FBb0JBO0FBQ0E7QUFyQkE7QUF1QkE7QUF2QkE7QUF5QkE7QUFDQTtBQUNBO0FySnNnQkE7QXFKamlCQTtBQTZCQTtBQUNBO0FBOUJBO0FBa0NBO0FBQ0E7QUFDQTtBQXBDQTtBQXNDQTtBQUFBO0FBQ0E7QXJKMGZBO0FxSmppQkE7QUEwQ0E7QXJKdWZBO0FxSmppQkE7QUE2Q0E7QUFDQTtBQTlDQTtBQWtEQTtBckorZUE7QXFKamlCQTtBQW9EQTtBcko2ZUE7QXFKamlCQTtBQXVEQTtBQUNBO0FySnllQTtBcUpqaUJBO0FBMkRBO0FySnNlQTtBcUpqaUJBO0FBZ0VBO0FySmllQTtBcUpqaUJBO0FBbUVBO0FBbkVBO0FBdUVBO0FBQ0E7QUFDQTtBckp3ZEE7QXFKamlCQTtBQTJFQTtBQTNFQTtBQStFQTtBQUNBO0FBQ0E7QUFDQTtBckorY0E7QXFKamlCQTtBQW9GQTtBQUNBO0FBQ0E7QUF0RkE7QUFQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDTkE7QUFDQTtBQUNBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QURKQTtBQ0xBO0FES0E7QUNPQTtBQUNBO0FEUkE7QUFQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDTkE7QUFDQTtBQUNBO0FBcUJBO0FBQ0E7QUFDQTtBRGhCQTtBQ0xBO0FES0E7QUNtQkE7QUFDQTtBRHBCQTtBQWtHQTtBQUNBO0FBQ0E7QXJKNmJBO0FxSmppQkE7QUFzR0E7QUFDQTtBQXZHQTtBQTBHQTtBQUNBO0FySnNiQTtBcUpqaUJBO0FBNkdBO0FBN0dBO0FBa0hBO0FBQ0E7QUFDQTtBQUNBO0FySjRhQTtBcUpqaUJBO0FBdUhBO0FBQ0E7QUFDQTtBQUNBO0FBMUhBO0FBNkhBO0FBN0hBO0FBZ0lBO0FBQ0E7QUFDQTtBckorWkE7QXFKamlCQTtBQW9JQTtBQUNBO0FBQ0E7QUF0SUE7QUEySUE7QUFDQTtBQTVJQTtBQStJQTtBQUNBO0FySmlaQTtBcUpqaUJBO0FBa0pBO0FBbEpBO0FBc0pBO0FBdEpBO0FBd0pBO0FBQ0E7QUVqS0E7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2SnNoQkE7QXVKOWhCQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0F2SmloQkE7QXVKOWhCQTtBQWtCQTtBQUNBO0FBbkJBO0FBc0JBO0F2SndnQkE7QXVKOWhCQTtBQXdCQTtBQXhCQTtBQTRCQTtBQUNBO0F2SmlnQkE7QXVKOWhCQTtBQStCQTtBQUNBO0F2SjhmQTtBdUo5aEJBO0FBcUNBO0FBQ0E7QUFDQTtBQUNBO0FBeENBO0FBNENBO0FBNUNBO0FBOENBO0FBQ0E7QUEvQ0E7QUFpREE7QXZKNmVBO0F1SjloQkE7QUFtREE7QUFuREE7QUFzREE7QUF0REE7QUF5REE7QUFDQTtBQUNBO0FBQ0E7QUE1REE7QUFpRUE7QXZKNmRBO0F1SjloQkE7QUFzRUE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZKOGNBO0F1SmxkQTtBQVFBO0F2SjBjQTtBdUpsZEE7QUFZQTtBQUVBO0FBQ0E7QXZKbWNBO0F1SmxkQTtBQXFCQTtBQXJCQTtBQXdCQTtBQUNBO0F2SnliQTtBdUpsZEE7QUEyQkE7QUEzQkE7QUE4QkE7QUE5QkE7QUFpQ0E7QXZKaWJBO0F1SmxkQTtBQW1DQTtBQUNBO0FBcENBOzs7QUEyQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZKMlpBO0F1SmxhQTtBQVNBO0FBQ0E7QXZKd1pBO0F1SmxhQTtBQWFBO0FBQ0E7QUFDQTtBdkptWkE7QXVKbGFBO0FBa0JBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7O0FqS25LQTs7QWtLRUE7QWhLRkE7OztBZ0tNQTtBbEtJQTtBQWdCQTs7QWtLaEJBO0FsS1ZBOztBa0thQTtBaEtiQTs7O0FnS2lCQTtBbEtQQTtBQWdCQTs7QWtLTEE7QTdKckJBOzs7Ozs7OztBNko4QkE7QTVKOUJBO0FBU0E7QU5UQTs7QWtLbUNBO0FoS25DQTs7O0FnS3VDQTtBbEs3QkE7QUFnQkE7O0FrS2lCQTtBQ2ZBO0FBSUE7QUFHQTs7QURhQTtBQ3BCQTtBQVlBO0FBWkE7QUFnQkE7QUFDQTtBQUNBO0FBbEJBO0FBc0JBO0FBQ0E7QUFDQTtBQXhCQTtBQTJCQTtBQTNCQTtBQW1DQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QXpKK2RBO0F5SjVkQTtBQUVBO0FBQ0E7QUFDQTtBQUpBO0FBUUE7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVFBO0FBQ0E7QUFUQTtBQWFBO0F6SjhiQTtBeUoxYkE7QUFFQTtBQUZBO0FBT0E7QUFQQTtBQVdBO0FBS0E7QUFDQTtBekp5YUE7QXlKMWFBO0FBSUE7QUFDQTtBQUxBO0FBUUE7QXpKa2FBO0F5SjFhQTtBQWFBO0FBYkE7QUFrQkE7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFFQTtBQUlBO0FBQ0E7QUFDQTtBQTdKQTtBQWlLQTtBQUNBOztBbks5TEE7O0FvS0VBO0FsS0ZBOzs7QWtLTUE7QXBLSUE7QUFnQkE7O0FvS2hCQTtBcEtWQTs7QW9LYUE7QWxLYkE7OztBa0tpQkE7QXBLUEE7QUFnQkE7O0FvS0xBO0FwS3JCQTs7QW9Ld0JBO0FsS3hCQTs7O0FrSzRCQTtBcEtsQkE7QUFnQkE7O0FvS01BO0FuSWhDQTs7QW1JbUNBO0FwS25DQTs7QW9Lc0NBO0FsS3RDQTs7O0FrSzBDQTtBcEtoQ0E7QUFnQkE7O0FvS29CQTtBcEs5Q0E7O0FvS2lEQTtBbEtqREE7OztBa0txREE7QXBLM0NBO0FBZ0JBOztBb0srQkE7QS9KekRBOzs7Ozs7OztBK0prRUE7QTlKbEVBO0FBU0E7QU5UQTs7QW9LdUVBO0FsS3ZFQTs7O0FrSzJFQTtBcEtqRUE7QUFnQkE7O0FvS3FEQTtBdkkvRUE7Ozs7QXVJb0ZBO0FDeUJBO0FBQ0E7QUFDQTtBQUNBO0FBeU9BO0FBWUE7QUFpSEE7O0FEelhBO0FDMGFBOztBRHZhQTtBMUo2Y0E7QTJKaGNBO0FBTUE7QUFHQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0EzSmtiQTtBMkp2YkE7QUFTQTtBM0o4YUE7QTJKdmJBO0FBYUE7QUFiQTtBQWtCQTtBQUlBO0FBQ0E7QUFEQTtBQUtBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUdBO0FBSEE7QUFPQTtBQUlBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFVQTtBQUNBO0FBQ0E7QUFaQTtBQWVBO0FBZkE7QUFvQkE7QUFwQkE7QUF1QkE7QUFDQTtBQUNBO0FBQ0E7QUExQkE7QUFnQ0E7QUFDQTtBQUNBO0FBcEhBO0FBeUlBO0FBeklBO0FBOElBO0FBR0E7O0FBR0E7QUFIQTs7QUFPQTtBQUlBO0FBR0E7QUFIQTtBQU9BO0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQU9BO0FBQ0E7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QTNKaVBBO0EySjFQQTtBQU1BO0FBSUE7QUFDQTtBQUlBO0FBTUE7QUFOQTtBN0ozUUE7QUFDQTtBQUNBO0E2SnlRQTtBN0pwUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTZKd09BO0E3SjFOQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTZKa05BO0E3SnRNQTtBQUdBO0FBQ0E7QUFDQTtBNkowTUE7QTdKNVJBO0E2Sm1TQTtBM0lpRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFDQTtBMklsR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FwSTVXQTtBQUNBO0FBQ0E7QW9JNFdBO0FBT0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQURBO0FBS0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBT0E7QUFYQTtBQWVBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFJQTtBcEl4YUE7QUFDQTtBQUNBO0FvSXdhQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFBQTtBQUFBO0FBTUE7QUFHQTtBQUhBOztBQVdBO0FBWEE7QUFpQkE7QUFDQTtBQWxCQTtBQXFCQTtBQXJCQTtBQTJCQTtBQTNCQTtBQWdDQTtBQU9BO0FBRUE7QUFyWkE7QUErWkE7QUEvWkE7QUFtYUE7QUFuYUE7QUFzYUE7QUF0YUE7QUEwYUE7QUExYUE7QUFnYkE7QUFoYkE7QUFxYkE7QUFDQTtBQXRiQTtBQTZiQTtBQTdiQTtBQXFjQTtBQXJjQTtBN0p0REE7QUFDQTtBQUNBO0E2Sm9EQTtBN0ovQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTZKbUJBO0E3SkxBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBNkpIQTtBN0plQTtBQUdBO0FBQ0E7QUFDQTtBNkpwQkE7QTdKOURBO0FBQ0E7QThKMUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUo4aEJBO0E0SmppQkE7QUFLQTtBQUxBO0FBUUE7QUFDQTtBQUNBO0FBVkE7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQWZBO0FBaUJBO0FBQ0E7QUFDQTtBQW5CQTtBQXFCQTtBQXJCQTtBQXVCQTtBQUNBO0FBeEJBO0FBOEJBO0FBOUJBO0FBa0NBO0FBbENBO0FBcUNBO0FBQ0E7QUFDQTtBQXZDQTtBQXlDQTtBQUNBO0FBMUNBO0FBNENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFuREE7QUF3REE7QUFDQTtBQXpEQTtBQTJEQTtBQTNEQTtBQStEQTtBQUNBO0FBQ0E7QUFDQTtBQWxFQTs7QUFzRUE7QUFDQTtBQXZFQTtBQTRFQTtBQUNBO0FBQ0E7QUFDQTtBNUprZEE7QTRKamlCQTtBQWlGQTtBQUNBO0E1SitjQTtBNEpqaUJBO0FBc0ZBO0E1SjJjQTtBNEpqaUJBO0FBMkZBO0FBM0ZBO0FBK0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBTjdHQTtBQUNBO0FBQ0E7QUFpQ0E7QUFDQTtBQUNBO0FNNUJBO0FOTEE7QU1LQTtBTitCQTtBQUNBO0FNaENBO0FBeUdBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0E1SjZhQTtBNEpoYkE7QUFLQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQVVBO0FBVkE7QUFjQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUorWUE7QTRKclpBO0FBUUE7QTVKNllBO0E0SnJaQTtBQVdBO0FBQ0E7QUFDQTtBQWJBO0FBZUE7QUFmQTtBQXFCQTtBQXJCQTtBQXlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbkNBO0FBcUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBNUpxV0E7QTRKdldBO0FBSUE7QUFKQTtBQU1BO0FBR0E7QUFDQTtBQURBO0FBR0E7QUFVQTtBQUNBO0FBQ0E7QUFGQTtBQU1BO0FBTkE7QUFVQTtBQUtBO0FBcEJBO0FBQ0E7QUFDQTtBQXNCQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBSkE7QUFPQTtBQUdBO0FBQ0E7QUFwUEE7QUF3UEE7QUF4UEE7QUEwUEE7QUFDQTtBQTNQQTtBQTZQQTtBQUNBO0FBQ0E7QUEvUEE7QUFvUUE7QTVKbVNBO0E0SnZpQkE7QUFzUUE7QUF0UUE7QUE0UUE7QUE1UUE7QUFpTkE7QUFDQTtBQUNBO0FBbk5BO0FBb1JBO0FBQ0E7QUFyUkE7QUF1UkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVKMFFBO0E0SnZpQkE7QUErUkE7QUEvUkE7QUFrU0E7QTVKcVFBO0E0SnZpQkE7QUF3U0E7QUFDQTtBQXpTQTtBQTRTQTtBQTVTQTtBQWdUQTtBQUNBO0FBQ0E7QUFDQTtBNUpvUEE7QTRKdmlCQTtBQXFUQTtBQUNBOztBdEs1VEE7O0F1S0VBO0FyS0ZBOzs7QXFLTUE7QXZLSUE7QUFnQkE7O0F1S2hCQTtBdktWQTs7QXVLYUE7QXJLYkE7OztBcUtpQkE7QXZLUEE7QUFnQkE7O0F1S0xBO0FsS3JCQTs7Ozs7Ozs7QWtLOEJBO0FqSzlCQTtBQVNBO0FOVEE7O0F1S21DQTtBcktuQ0E7OztBcUt1Q0E7QXZLN0JBO0FBZ0JBOztBdUtpQkE7QTFJM0NBOzs7O0EwSWdEQTtBdEloREE7O0FzSW1EQTtBQ3RCQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFPQTtBQUNBO0FBUkE7QWhLTUE7QUFDQTtBQUNBO0FnS1JBO0FoS2FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FnSy9DQTtBaEt1REE7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FnS3JFQTtBaEsyRUE7QUFTQTtBQUNBO0FBQ0E7QWdLMUVBO0F2SXhEQTtBQUNBO0FBQ0E7QXVJMkRBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOUpvZEE7QThKemRBO0FBUUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFHQTtBQUlBO0FBQ0E7QUFHQTtBQU9BO0FBQ0E7QUFSQTtBaEsvRUE7QUFDQTtBQUNBO0FnSzZFQTtBaEt4RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWdLNENBO0FoSzlCQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWdLc0JBO0FoS1ZBO0FBR0E7QUFDQTtBQUNBOztBUmpJQTs7QXlLRUE7QXZLRkE7OztBdUtNQTtBektJQTtBQWdCQTs7QXlLaEJBO0FwS1ZBOzs7Ozs7OztBb0ttQkE7QW5LbkJBO0FBU0E7QU5UQTs7QXlLd0JBO0F2S3hCQTs7O0F1SzRCQTtBektsQkE7QUFnQkE7O0F5S01BO0FDMUJBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBbEsrQkE7QUFDQTtBQUNBO0FBQ0E7QWtLbENBO0FsS3NDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBa0tsRUE7QWxLZ0ZBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBa0t4RkE7QWxLb0dBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QWtLbkdBO0FsS2dCQTtBQUNBO0FrS1ZBO0FoSjZXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBO0FBQ0E7QWdKL1lBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFVQTs7QTFLeERBOztBMktFQTtBektGQTs7O0F5S01BO0EzS0lBO0FBZ0JBOztBMktoQkE7QTNLVkE7O0EyS2FBO0F6S2JBOzs7QXlLaUJBO0EzS1BBO0FBZ0JBOztBMktMQTtBM0tyQkE7O0EyS3dCQTtBekt4QkE7OztBeUs0QkE7QTNLbEJBO0FBZ0JBOztBMktNQTtBM0toQ0E7O0EyS21DQTtBektuQ0E7OztBeUt1Q0E7QTNLN0JBO0FBZ0JBOztBMktpQkE7QUNyQkE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUFBO0FBT0E7QUFDQTtBQUNBO0FBSUE7QUFDQTs7QUFFQTtBQUVBOztBQUVBO0FBRUE7O0FBRUE7QUFDQTtBQVpBO0FBQ0E7O0FBRUE7QUFFQTs7QUFFQTtBQUVBOztBQUVBOztBNUtyRkE7O0E2S0VBO0EzS0ZBOzs7QTJLTUE7QTdLSUE7QUFnQkE7O0E2S2hCQTtBN0tWQTs7QTZLYUE7QTNLYkE7OztBMktpQkE7QTdLUEE7QUFnQkE7O0E2S0xBO0E3S3JCQTs7QTZLd0JBO0EzS3hCQTs7O0EySzRCQTtBN0tsQkE7QUFnQkE7O0E2S01BO0E3S2hDQTs7QTZLbUNBO0EzS25DQTs7O0EyS3VDQTtBN0s3QkE7QUFnQkE7O0E2S2lCQTtBQ3JDQTtBQ1dBO0FBQ0E7QUFHQTtBRGZBO0FBS0E7QUFNQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBRUE7QUNSQTtBQUNBO0FBR0E7QURTQTtBQ0pBO0FBQ0E7QUFDQTtBQUNBO0FEQ0E7QUNFQTtBREVBO0FDR0E7QUFDQTtBQUNBO0FEREE7QUNLQTtBQUNBOztBL0s1Q0E7O0FnTEVBO0E5S0ZBOzs7QThLTUE7QWhMSUE7QUFnQkE7O0FnTGhCQTtBaExWQTs7QWdMYUE7QTlLYkE7OztBOEtpQkE7QWhMUEE7QUFnQkE7O0FnTExBO0FoTHJCQTs7QWdMd0JBO0E5S3hCQTs7O0E4SzRCQTtBaExsQkE7QUFnQkE7O0FnTE1BO0FoTGhDQTs7QWdMbUNBO0E5S25DQTs7O0E4S3VDQTtBaEw3QkE7QUFnQkE7O0FnTGlCQTtBQ3JDQTtBRldBO0FBQ0E7QUFHQTtBRWZBO0FBS0E7QUFNQTtBRlNBO0FBQ0E7QUFDQTtBQUNBO0FFWkE7QUZlQTtBRVhBO0FGZ0JBO0FBQ0E7QUFDQTs7QS9LdkNBOztBa0xFQTtBaExGQTs7O0FnTE1BO0FsTElBO0FBZ0JBOztBa0xoQkE7QWxMVkE7O0FrTGFBO0FoTGJBOzs7QWdMaUJBO0FsTFBBO0FBZ0JBOztBa0xMQTtBbExyQkE7O0FrTHdCQTtBaEx4QkE7OztBZ0w0QkE7QWxMbEJBO0FBZ0JBOztBa0xNQTtBbExoQ0E7O0FrTG1DQTtBaExuQ0E7OztBZ0x1Q0E7QWxMN0JBO0FBZ0JBOztBa0xpQkE7QUNyQ0E7QUFLQTtBQUNBO0FBR0E7QUpFQTtBQUNBO0FBR0E7QUFDQTtBSUhBO0FKT0E7QUFDQTtBQUNBO0FBQ0E7QUlWQTtBSmFBO0FBQ0E7QUlWQTtBSmNBO0FBQ0E7QUFDQTtBQUNBO0FJYkE7QUpnQkE7QUFDQTs7QS9LNUNBOztBb0xFQTtBbExGQTs7O0FrTE1BO0FwTElBO0FBZ0JBOztBb0xoQkE7QXBMVkE7O0FvTGFBO0FsTGJBOzs7QWtMaUJBO0FwTFBBO0FBZ0JBOztBb0xMQTtBcExyQkE7O0FvTHdCQTtBbEx4QkE7OztBa0w0QkE7QXBMbEJBO0FBZ0JBOztBb0xNQTtBcExoQ0E7O0FvTG1DQTtBbExuQ0E7OztBa0x1Q0E7QXBMN0JBO0FBZ0JBOztBb0xpQkE7QUNyQ0E7QUFHQTtBTlFBO0FBQ0E7QUFHQTtBTWZBO0FBU0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBTkVBO0FBQ0E7QUFDQTtBQUNBO0FNSEE7QUFGQTtBTlFBO0FNSEE7QU5jQTtBQUNBO0FNYkE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FOQ0E7QUFDQTtBTUFBO0FBQ0E7QUFFQTtBQUNBOztBckxoREE7O0FzTEVBO0FwTEZBOzs7QW9MTUE7QXRMSUE7QUFnQkE7O0FzTGhCQTtBdExWQTs7QXNMYUE7QXBMYkE7OztBb0xpQkE7QXRMUEE7QUFnQkE7O0FzTExBO0F0THJCQTs7QXNMd0JBO0FwTHhCQTs7O0FvTDRCQTtBdExsQkE7QUFnQkE7O0FzTE1BO0FDaENBOzs7O0FEcUNBO0F0THJDQTs7QXNMd0NBO0FwTHhDQTs7O0FvTDRDQTtBdExsQ0E7QUFnQkE7O0FzTHNCQTtBRWhEQTtBdkpBQTs7QXFKb0RBO0FwTHBEQTs7O0FvTHdEQTtBR01BO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBL0s4ZEE7QStLaGVBO0FBS0E7QUFDQTtBQU5BOztBQVlBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFLQTtBQWNBOztBSDNCQTtBRzBFQTs7QUh2RUE7QUdzSUE7O0FIbklBO0FHd0xBOztBSHJMQTtBRytNQTs7QUg1TUE7QUdDQTtBQUVBO0FBRkE7QUZ6RkE7QUV5RkE7QUZ6RkE7QUV5RkE7QUFtQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBeEJBO0FBK0JBO0FBL0JBO0FBb0NBO0FBQ0E7QUFyQ0E7QUEyQ0E7QUFDQTtBQTVDQTtBQWtEQTtBQWxEQTtBQXdEQTtBQXhEQTtBQWlFQTtBQWpFQTtBQXNFQTtBQXRFQTtBQXlFQTtBQXpFQTtBQThFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBdkZBO0FBMkZBO0FBM0ZBO0FBc0dBO0FBdEdBO0FBMkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhIQTtBQW1IQTtBQW5IQTtBQXlIQTtBQXpIQTtBQWtJQTtBQWxJQTtBQXNJQTtBQUNBO0FBQ0E7QUF4SUE7QUE0SUE7QUFDQTtBQTdJQTtBQWtKQTtBQWxKQTtBQXVKQTtBQUNBO0FBQ0E7QUF6SkE7QUErSkE7QUFDQTtBQWhLQTtBQXNLQTtBQXRLQTtBQTRLQTtBQTVLQTtBeEo5RkE7QUFDQTtBQUNBO0F5SjJDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUR5Q0E7QUN0Q0E7QURzQ0E7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRGNBO0FDWEE7QURXQTtBQ0RBO0FEQ0E7QUNNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEaEJBOztBQXdNQTtBQXhNQTtBQStNQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBbE5BO0FBeU5BO0FBQ0E7QUExTkE7QUErTkE7QUFDQTtBQWhPQTtBQXNPQTtBQXRPQTtBQTJPQTtBQTNPQTtBQWlQQTtBQWpQQTtBQW9QQTtBQUNBO0FBS0E7O0FINUdBO0FHK0dBO0FBQ0E7QUFFQTtBQUNBO0FBSEE7QUFPQTtBQUNBO0FBUkE7QUFZQTtBQUNBO0FBQ0E7QUFFQTtBRTNXQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVRBO0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqQkE7QUFvQkE7QUFDQTtBQXJCQTtBQXVCQTs7QTNMN0JBOztBNExFQTtBMUxGQTs7O0EwTE1BO0E1TElBO0FBZ0JBOztBNExoQkE7QTVMVkE7O0E0TGFBO0ExTGJBOzs7QTBMaUJBO0E1TFBBO0FBZ0JBOztBNExMQTtBNUxyQkE7O0E0THdCQTtBMUx4QkE7OztBMEw0QkE7QTVMbEJBO0FBZ0JBOztBNExNQTtBNUxoQ0E7O0E0TG1DQTtBMUxuQ0E7OztBMEx1Q0E7QTVMN0JBO0FBZ0JBOztBNExpQkE7QS9IM0NBO0FBU0E7QTdEVEE7O0E0TGdEQTtBMUxoREE7OztBMExvREE7QTVMMUNBO0FBZ0JBOztBNEw4QkE7QS9JeERBO0FBTUE7QVlOQTs7Ozs7Ozs7O0FtSW9FQTtBQ3RDQTtBQUNBO0FuTDhnQkE7QW1ML2dCQTtBQUlBO0FuTDJnQkE7QW1ML2dCQTtBQVNBO0FBSUE7QUFDQTtBQUdBO0FBSUE7QW5MMGZBO0FtTDlmQTtBQU9BO0FuTHVmQTtBbUw5ZkE7QUFXQTtBQVhBO0FBZUE7QUFDQTtBbkw4ZUE7QW1MOWZBO0FBbUJBO0FBS0E7QUFHQTtBQUdBO0FwSWpFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBb0lpRUE7QUFDQTtBQUNBO0FBRkE7O0FBT0E7QUFDQTtBQVJBOzs7QUFZQTtBbkw0Y0E7QW1MeGRBO0FBa0JBO0FBQ0E7QUFLQTtBOUgxRkE7QUFDQTtBQUNBO0FBQ0E7QThIMEZBO0FBQ0E7QW5MNGJBO0FtTGhjQTtBQU9BO0FBUEE7QTlJckVBO0E4SXFFQTtBOUlqRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFtQkE7QUFVQTtBQUFBO0E4SThCQTtBOUl1SUE7QUFDQTtBOEl4SUE7QTlJNElBO0E4STVJQTtBOUlpSkE7QUFDQTtBOElsSkE7QTlJc0pBO0FyQzBTQTtBbUxoY0E7QUFnQkE7QUFFQTtBQUNBO0FBT0E7QTlIcEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QThIaUdBO0FuTGthQTtBbUx0YUE7QTlIMUZBO0E4SDBGQTtBOUhwRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckRzZkE7QW1MdGFBO0E5SDdFQTtBOEg2RUE7QTlIeEVBO0E4SHdFQTtBOUhwRUE7QXJEMGVBO0FtTHRhQTtBOUhwR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOEh1R0E7QW5MNFpBO0FtTHRhQTtBOUgxRkE7QXJEZ2dCQTtBbUx0YUE7QTlIcEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJEc2ZBO0FtTHRhQTtBOUg3RUE7QXJEbWZBO0FtTHRhQTtBOUh4RUE7QThId0VBO0E5SHBFQTtBOEhvRUE7QUFjQTtBQWRBO0FBbUJBO0FBQ0E7QUFwQkE7QUF1QkE7QUF2QkE7QUEyQkE7QUFDQTtBQUtBO0FBQ0E7QW5Mb1lBO0FtTHJZQTtBOUh4RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJEdWRBO0FtTHJZQTtBOUgvRUE7QUFDQTtBOEh3RkE7QUFDQTtBQUNBO0FuTHlYQTtBb0wxaUJBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FwTGlpQkE7QW9McGlCQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFaQTtBQWNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFyQkE7QUF3QkE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBS0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUhBO0FBS0E7QXBMdWZBO0FvTGxmQTtBQUVBO0FBRUE7QUFJQTtBQUpBO0FBTUE7QUFDQTtBcEx1ZUE7QW9MOWVBO0FBU0E7QUFDQTtBcExvZUE7QW9MOWVBO0FBY0E7QXBMZ2VBO0FvTDllQTtBQWtCQTtBQUNBO0FBbkJBO0FBcUJBO0FBS0E7Ozs7O0FBS0E7QUFMQTtBQVFBO0FBUkE7QUFXQTtBQUdBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QXBMa2NBO0FvTHRjQTtBQU1BO0FwTGdjQTtBb0x0Y0E7QUFTQTtBQUlBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFHQTtBQUVBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBVEE7QUFXQTtBQU9BO0FBQ0E7QUFqR0E7QUFxR0E7QUFyR0E7QUF1R0E7QUF2R0E7QUEyR0E7QXBMcVpBO0FvTGhnQkE7QUE2R0E7O0E5TDFKQTs7QStMRUE7QTdMRkE7OztBNkxNQTtBL0xJQTtBQWdCQTs7QStMaEJBO0EvTFZBOztBK0xhQTtBN0xiQTs7O0E2TGlCQTtBL0xQQTtBQWdCQTs7QStMTEE7QS9MckJBOztBK0x3QkE7QTdMeEJBOzs7QTZMNEJBO0EvTGxCQTtBQWdCQTs7QStMTUE7QTlKaENBOztBOEptQ0E7QXRJbkNBOzs7Ozs7Ozs7QXNJNkNBO0EvTDdDQTs7QStMZ0RBO0E3TGhEQTs7O0E2TG9EQTtBL0wxQ0E7QUFnQkE7O0ErTDhCQTtBL0t4REE7QUFZQTtBaEJaQTs7QStMNkRBO0E3TDdEQTs7O0E2TGlFQTtBL0x2REE7QUFnQkE7O0ErTDJDQTtBL0xyRUE7O0ErTHdFQTtBN0x4RUE7OztBNkw0RUE7QS9MbEVBO0FBZ0JBOztBK0xzREE7QUM1REE7QUFDQTtBQUNBO0F0THVoQkE7QXNMemhCQTtBQUtBO0FBR0E7QXZJaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0F1SVlBO0EvSjNCQTtBQUNBO0FBQ0E7QStKNEJBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQU5BO0FBVUE7QUFWQTtBQWNBO0FBSUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQVRBO0E5S3hCQTtBQUNBO0E4S3VCQTtBOUtmQTtBQUNBO0E4S3hCQTtBQW9EQTtBQXBEQTtBQXdEQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUNqRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFTQTtBQVRBO0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBakJBOztBQXNCQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7O0FDMUNBO0FBQ0E7O0FDRkE7O0FDRUE7QXBNRkE7O0FvTUtBO0FsTUxBOzs7QWtNU0E7QXBNQ0E7QUFnQkE7O0FvTWJBO0FwTWJBOztBb01nQkE7QWxNaEJBOzs7QWtNb0JBO0FwTVZBO0FBZ0JBOztBb01GQTtBcE14QkE7O0FvTTJCQTtBbE0zQkE7OztBa00rQkE7QXBNckJBO0FBZ0JBOztBb01TQTtBeEtuQ0E7QUFTQTtBdUtTQTtBQUNBO0FBQ0E7QUFMQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0FBYkE7QUFpQkE7QUFqQkE7QUFxQkE7QUFDQTtBQXRCQTtBQTBCQTtBQUNBO0FBSUE7QXBLUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW9LRkE7QUFDQTtBQUVBO0FwSzhDQTtBQUNBO0FvSy9DQTtBcEtzREE7QW9LdERBO0FwS3lEQTtBQUNBO0FvSy9DQTtBQUNBOztBbk1oRUE7O0FxTUVBO0FuTUZBOzs7QW1NTUE7QXJNSUE7QUFnQkE7O0FxTWhCQTtBck1WQTs7QXFNYUE7QW5NYkE7OztBbU1pQkE7QXJNUEE7QUFnQkE7O0FxTUxBO0FyTHJCQTtBQVlBO0FoQlpBOztBcU0wQkE7QW5NMUJBOzs7QW1NOEJBO0FyTXBCQTtBQWdCQTs7QXFNUUE7QXJNbENBOztBcU1xQ0E7QW5NckNBOzs7QW1NeUNBO0FyTS9CQTtBQWdCQTs7QXFNbUJBO0FyTTdDQTs7QXFNZ0RBO0FuTWhEQTs7O0FtTW9EQTtBck0xQ0E7QUFnQkE7O0FxTThCQTtBeEp4REE7QUFNQTtBN0NOQTs7QXFNNkRBO0FuTTdEQTs7O0FtTWlFQTtBck12REE7QUFnQkE7O0FxTTJDQTtBQ3ZEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QTVMa2hCQTtBNExoaEJBO0FBRUE7QUFJQTtBQUNBO0E1THlnQkE7QTRMMWdCQTtBQUlBO0FBQ0E7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQURBO0F2SkxBO0F1SktBO0F2SkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbUJBO0FBVUE7QUFBQTtBdUpsQ0E7QXZKdU1BO0FBQ0E7QXVKeE1BO0F2SjRNQTtBdUo1TUE7QXZKaU5BO0FBQ0E7QXVKbE5BO0F2SnNOQTtBdUo5TUE7QWxNakRBO0FjWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FSd2hCQTtBNEx4ZkE7QWxNakRBO0FjWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FvTHdDQTtBQUNBO0FBREE7QUFJQTs7QXRNakVBOztBdU1FQTtBck1GQTs7O0FxTU1BO0F2TUlBO0FBZ0JBOztBdU1oQkE7QXZNVkE7O0F1TWFBO0FyTWJBOzs7QXFNaUJBO0F2TVBBO0FBZ0JBOztBdU1MQTtBQ1JBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBUUE7QUFrQkE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFQQTtBQVdBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFMQTtBQVNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QXhNeEdBOztBdU13RUE7QXJNeEVBOzs7QXFNNEVBO0F2TWxFQTtBQWdCQTs7QXVNc0RBO0FFNUVBO0FBQ0E7QS9Md2lCQTtBK0x6aUJBO0FBR0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0x1Z0JBO0ErTDdnQkE7QUFRQTtBQUdBO0FBRUE7QUFDQTs7QXpNOUNBOztBME1FQTtBeE1GQTs7O0F3TU1BO0ExTUlBO0FBZ0JBOztBME1oQkE7QTFNVkE7O0EwTWFBO0F4TWJBOzs7QXdNaUJBO0ExTVBBO0FBZ0JBOztBME1MQTtBMU1yQkE7O0EwTXdCQTtBeE14QkE7OztBd000QkE7QTFNbEJBO0FBZ0JBOztBME1NQTtBck1oQ0E7Ozs7Ozs7O0FxTXlDQTtBcE16Q0E7QUFTQTtBTlRBOztBME04Q0E7QXhNOUNBOzs7QXdNa0RBO0ExTXhDQTtBQWdCQTs7QTBNNEJBO0F4SnREQTtBQW1EQTtBQ1dBO0FuRDlEQTs7QTBNNERBO0F4TTVEQTs7O0F3TWdFQTtBMU10REE7QUFnQkE7O0EwTTBDQTtBck1wRUE7Ozs7Ozs7O0FxTTZFQTtBcE03RUE7QUFTQTtBTlRBOztBME1rRkE7QXhNbEZBOzs7QXdNc0ZBO0ExTTVFQTtBQWdCQTs7QTBNZ0VBO0ExTTFGQTs7QTBNNkZBO0F4TTdGQTs7O0F3TWlHQTtBMU12RkE7QUFnQkE7O0EwTTJFQTtBakpyR0E7Ozs7Ozs7OztBaUorR0E7QUNsRkE7QUFHQTtBak02Z0JBO0FpTWhoQkE7QUFNQTtBQUdBO0FBQ0E7QWpNc2dCQTtBaU12Z0JBO0FBSUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpNbWVBO0FpTXZlQTtBQU9BO0FBQ0E7QUFSQTtBQWFBO0FBQ0E7QUFDQTtBQWZBO0FBa0JBO0FBQ0E7QUFuQkE7QXRKcUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBc0oxQ0E7QUEwQkE7QUExQkE7QUErQkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FqTWdiQTtBaU1wYkE7QUFRQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBak02WkE7QWlNamFBO0FBUUE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FqTWdaQTtBaU1uWkE7QUFNQTtBQUlBO0FuTTdHQTtBQUNBO0FBQ0E7QW1NMkdBO0FuTXRHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBbU0wRUE7QW5NNURBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBbU1vREE7QW5NeENBO0FBR0E7QUFDQTtBQUNBO0FFNGFBO0FpTXpZQTtBQU9BO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQTs7QWxKbktBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FrSjRLQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFyTEE7QUF5TEE7QUFDQTtBQUNBO0FDck5BO0FBQ0E7QWxNeWlCQTtBa00xaUJBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQUNBO0FBQ0E7QWxNa2hCQTtBa01oaEJBO0FBR0E7QUFDQTtBbE00Z0JBO0FrTWhoQkE7QUFNQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QWxNZ2dCQTtBa01qZ0JBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FsTTZkQTtBa005ZEE7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQWxHQTtBQXFHQTs7QTVNL0dBOztBNk1FQTtBM01GQTs7O0EyTU1BO0E3TUlBO0FBZ0JBOztBNk1oQkE7QXhNVkE7Ozs7Ozs7O0F3TW1CQTtBdk1uQkE7QUFTQTtBTlRBOztBNk13QkE7QTNNeEJBOzs7QTJNNEJBO0E3TWxCQTtBQWdCQTs7QTZNTUE7QTdNaENBOztBNk1tQ0E7QTNNbkNBOzs7QTJNdUNBO0E3TTdCQTtBQWdCQTs7QTZNaUJBO0FDWkE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBNdWdCQTtBb005Z0JBO0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FwTXFlQTtBb00xZUE7QUFPQTtBQUNBO0FBSUE7QUFNQTtBQU5BO0F0TXhCQTtBQUNBO0FBQ0E7QXNNc0JBO0F0TWpCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBc01YQTtBdE15QkE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FzTWpDQTtBdE02Q0E7QUFHQTtBQUNBO0FBQ0E7QUU0YUE7QW9NOWRBO0FBU0E7QUFJQTtBdE03Q0E7QXNNb0RBO0FwTGdUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBO0FvTGxWQTtBQUNBO0FBQ0E7QXBNaWNBO0FvTW5jQTtBQUtBO0FBQ0E7QXBNNmJBO0FvTW5jQTtBQVVBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FwTTZhQTtBb01yYkE7QUFXQTtBQUNBO0FwTXlhQTtBb01yYkE7QUFnQkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVFBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcE0wV0E7QW9NL1dBO0FBUUE7QXBNdVdBO0FvTS9XQTtBQVlBO0FBWkE7QUFnQkE7O0E5TTlNQTs7QStNRUE7QTdNRkE7OztBNk1NQTtBL01JQTtBQWdCQTs7QStNaEJBO0EvTVZBOztBK01hQTtBN01iQTs7O0E2TWlCQTtBL01QQTtBQWdCQTs7QStNTEE7QUNLQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdE0yZ0JBO0FzTS9nQkE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVpBO0FBaUJBO0FBM0JBO0FBa0NBO0FBRUE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVEE7QUFZQTtBQVpBO0FBZ0JBO0FBQ0E7QUFqQkE7QUFxQkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRNMllBO0FzTXRaQTtBQWNBO0F0TXdZQTtBc010WkE7QUFrQkE7QUFDQTtBQUNBO0FBcEJBO0FBMkJBO0FBM0JBO0FBK0JBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdE02V0E7QXNNcFhBO0FBVUE7QUFWQTtBQWlCQTtBQU1BO0FBRUE7QUFGQTtBQU1BO0FBS0E7QUFDQTtBQUNBO0FBR0E7QUFDQTs7QUNqT0E7OztBQ0dBO0FsTkhBOztBa05NQTtBaE5OQTs7O0FnTlVBO0FsTkFBO0FBZ0JBOztBa05aQTtBbE5kQTs7QWtOaUJBO0FoTmpCQTs7O0FnTnFCQTtBbE5YQTtBQWdCQTs7QWtOREE7QXpKekJBOzs7Ozs7Ozs7QXlKbUNBO0FsTm5DQTs7QWtOc0NBO0FoTnRDQTs7O0FnTjBDQTtBbE5oQ0E7QUFnQkE7O0FrTm9CQTtBbE05Q0E7QUFZQTtBaEJaQTs7QWtObURBO0FoTm5EQTs7O0FnTnVEQTtBbE43Q0E7QUFnQkE7O0FrTmlDQTtBbE4zREE7O0FrTjhEQTtBaE45REE7OztBZ05rRUE7QWxOeERBO0FBZ0JBOztBa040Q0E7QXpKdEVBOzs7Ozs7Ozs7QXlKZ0ZBO0FsTmhGQTs7QWtObUZBO0FoTm5GQTs7O0FnTnVGQTtBbE43RUE7QUFnQkE7O0FrTmlFQTtBQzNGQTtBQU1BO0FGMEJBO0FBRUE7QUFDQTtBdk0wZ0JBO0F1TTNnQkE7QUFJQTtBQUNBO0F2TXNnQkE7QXVNamdCQTtBQUNBO0FBWEE7QUFtQkE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBeEovQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QXdKdUNBO0FBV0E7QUFYQTtBQWNBO0FBQ0E7QUFmQTtBQW1CQTtBQW5CQTtBQXNCQTtBQUNBO0FBQ0E7QUF4QkE7QUE4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdk1nZEE7QXVNbGZBO0FBc0NBO0FBdENBO0FBMENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaERBO0FBcURBO0F2TTZiQTtBdU14YkE7QUFFQTtBQTVEQTtBQW1FQTtBQW5FQTtBQXlFQTtBdk15YUE7QXVNbGZBO0FBNEVBO0FBNUVBO0FBZ0ZBO0F2TWthQTtBdU1sZkE7QUFxRkE7QUFyRkE7Ozs7QUErRkE7QUFDQTtBQUNBO0F2TWlaQTtBdU01WUE7QUczREE7QUFDQTtBQUNBO0FBQ0E7QUh3REE7QUdwSkE7QUFDQTtBQUNBO0FIa0pBO0FHL0lBO0FIK0lBO0FHM0lBO0FIMklBO0FHdklBO0FBQ0E7QUFDQTtBQUNBO0FIb0lBO0FHaklBO0FIaUlBO0FHN0hBO0ExTXlnQkE7QXVNNVlBO0FHdkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMU04ZkE7QXVNNVlBO0FHM0dBO0ExTXVmQTtBdU01WUE7QXhKckpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QS9Dd2hCQTtBdU01WUE7QUcvRkE7QUgrRkE7QUc1RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FIdUZBO0FHbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBSDhFQTtBRzFFQTtBSDBFQTs7QUdyRUE7QUhxRUE7QUFnQkE7QUFoQkE7QUFxQkE7QUFDQTtBQVdBO0FBRUE7QUFGQTtBQU1BO0FBTkE7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTs7QUcvR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMU1tY0E7QXVNeFZBOztBR3hNQTtBQUNBO0FBQ0E7QUhzTUE7O0FHbk1BO0FIbU1BOztBRy9MQTtBSCtMQTs7QUczTEE7QUFDQTtBQUNBO0FBQ0E7QUh3TEE7O0FHckxBO0FIcUxBOztBR2pMQTtBMU15Z0JBO0F1TXhWQTs7QUczS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0ExTThmQTtBdU14VkE7O0FHL0pBO0ExTXVmQTtBdU14VkE7O0F4SnpNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0EvQ3doQkE7QXVNeFZBOztBR25KQTtBSG1KQTs7QUdoSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FIMklBOztBR3ZJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUhrSUE7O0FHOUhBO0FIOEhBOzs7O0FHekhBO0FBQ0E7QUhtSUE7QWpOaE9BOztBa042VkE7QWhON1ZBOzs7QWdOaVdBO0FsTnZWQTtBQWdCQTs7QWtOMlVBO0FHaFdBO0FBRUE7QUFGQTtBQUlBO0EzTW9pQkE7QTJNeGlCQTtBQU9BO0FBQ0E7QUFRQTtBQUVBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBM004Z0JBO0EyTWxoQkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQVZBO0FBY0E7QUFDQTtBQUNBO0FyRHhDQTtBQUNBO0FBQ0E7QUFpQ0E7QUFDQTtBQUNBO0FxREtBO0FBbEJBO0FyRHBCQTtBcURvQkE7QXJEZ0JBO0FBQ0E7QXFER0E7QUFDQTtBQUNBO0FBdEJBO0FBMEJBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QTNNa2ZBO0EyTXBmQTtBQUlBO0FBSkE7QUFPQTtBQVBBO0FBVUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBREE7QUFJQTtBQUpBO0FBTUE7QTNNbWRBO0EyTXpkQTtBQVlBO0FBWkE7QUFnQkE7QTNNeWNBO0EyTXpkQTtBQWtCQTtBQWxCQTtBQXNCQTtBM01tY0E7QTJNemRBO0FBeUJBO0FBekJBO0FyRGxDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXFENkJBO0FyRDFCQTtBQUNBO0FxRHlCQTtBckRyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXFEOENBO0FyRHBFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXFEK0RBO0FyRDVEQTtBQUNBO0FxRDJEQTtBckR2REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FxRCtDQTtBQUtBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7O0FyTm5JQTs7QXNORUE7QXBORkE7OztBb05NQTtBdE5JQTtBQWdCQTs7QXNOaEJBO0F0TlZBOztBc05hQTtBcE5iQTs7O0FvTmlCQTtBdE5QQTtBQWdCQTs7QXNOTEE7QXROckJBOztBc053QkE7QXBOeEJBOzs7QW9ONEJBO0F0TmxCQTtBQWdCQTs7QXNOTUE7QWpOaENBOzs7Ozs7OztBaU55Q0E7QWhOekNBO0FBU0E7QU5UQTs7QXNOOENBO0FwTjlDQTs7O0FvTmtEQTtBdE54Q0E7QUFnQkE7O0FzTjRCQTtBQ2ZBO0FBR0E7QUFDQTtBQUNBO0E3TWlnQkE7QTZNdGdCQTtBQVFBO0FBR0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBN01vZkE7QTZNcmZBO0FBSUE7QUFDQTtBQUxBO0FBUUE7QUFSQTtBQVlBO0E3TXllQTtBNk1uZUE7QUFHQTtBQVNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQXREQTtBQTJEQTtBQUNBO0FBQ0E7QTdNeWNBO0E2TXRnQkE7QUFrRUE7QUFsRUE7QUF1RUE7QUFJQTtBL00zREE7QUFDQTtBQUNBO0ErTXlEQTtBL01wREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QStNa0JBO0EvTVZBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBK01KQTtBL01VQTtBQVNBO0FBQ0E7QUFDQTtBK01yQkE7QTdMaVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUF5QkE7QUFDQTtBNkx4VEE7QUFDQTtBQUlBO0EvTXBGQTtBQUNBO0FnTmhEQTtBQUNBO0FBQ0E7QUFDQTtBeE5IQTs7QXNOMEpBO0FwTjFKQTs7O0FvTjhKQTtBdE5wSkE7QUFnQkE7O0FzTndJQTtBdE5sS0E7O0FzTnFLQTtBcE5yS0E7OztBb055S0E7QXROL0pBO0FBZ0JBOztBc05tSkE7QXRON0tBOztBc05nTEE7QXBOaExBOzs7QW9Ob0xBO0F0TjFLQTtBQWdCQTs7QXNOOEpBO0FHOUtBO0FBQ0E7QUFHQTtBL00raEJBO0ErTW5pQkE7QUFRQTtBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBek43QkE7O0FzTnVNQTtBcE52TUE7OztBb04yTUE7QXROak1BO0FBZ0JBOztBc05xTEE7QXROL01BOztBc05rTkE7QXBObE5BOzs7QW9Oc05BO0F0TjVNQTtBQWdCQTs7QXNOZ01BO0F0TjFOQTs7QXNONk5BO0FwTjdOQTs7O0FvTmlPQTtBdE52TkE7QUFnQkE7O0FzTjJNQTtBdE5yT0E7O0FzTndPQTtBcE54T0E7OztBb040T0E7QXRObE9BO0FBZ0JBOztBc05zTkE7QXROaFBBOztBc05tUEE7QXBOblBBOzs7QW9OdVBBO0F0TjdPQTtBQWdCQTs7QXNOaU9BO0F0TjNQQTs7QXNOOFBBO0FwTjlQQTs7O0FvTmtRQTtBdE54UEE7QUFnQkE7O0FzTjRPQTtBckx0UUE7O0FxTHlRQTtBSXpRQTtBQVlBO0FDR0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7O0FBR0E7QUFFQTs7QUFDQTtBQUdBOztBQUNBO0FBS0E7QTFMckNBO0FBQ0E7QUFDQTtBMkxHQTtBQUdBO0FEaUNBO0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBREFBO0FDR0E7QUFDQTtBREpBO0FDUUE7QUFDQTtBRExBO0FDOEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUQzQ0E7QUMrQ0E7QUFDQTtBRGhEQTtBQ3NEQTtBQUNBO0FBQ0E7QUFDQTtBRHREQTtBQUVBO0FBRkE7QUNtRUE7QUFDQTtBQUNBO0FEM0dBOzs7QUErQ0E7QUFDQTtBQUNBO0FBS0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBQ0E7QUFWQTtBQWFBO0FBQ0E7QTNObkZBOztBc04rVkE7QXBOL1ZBOzs7QW9ObVdBO0F0TnpWQTtBQWdCQTs7QXNONlVBO0F0TnZXQTs7QXNOMFdBO0FwTjFXQTs7O0FvTjhXQTtBdE5wV0E7QUFnQkE7O0FzTndWQTtBdE5sWEE7O0FzTnFYQTtBcE5yWEE7OztBb055WEE7QXROL1dBO0FBZ0JBOztBc05tV0E7QXRON1hBOztBc05nWUE7QXBOaFlBOzs7QW9Ob1lBO0F0TjFYQTtBQWdCQTs7QXNOOFdBO0FqTnhZQTs7Ozs7Ozs7QWlOaVpBO0FoTmpaQTtBQVNBO0FOVEE7O0FzTnNaQTtBcE50WkE7OztBb04wWkE7QXROaFpBO0FBZ0JBOztBc05vWUE7QXBLOVpBO0FBbURBO0FDV0E7QW5EOURBOztBc05vYUE7QXBOcGFBOzs7QW9Od2FBO0F0TjlaQTtBQWdCQTs7QXNOa1pBO0F0TjVhQTs7QXNOK2FBO0FwTi9hQTs7O0FvTm1iQTtBdE56YUE7QUFnQkE7O0FzTjZaQTtBdE52YkE7O0FzTjBiQTtBcE4xYkE7OztBb044YkE7QXROcGJBO0FBZ0JBOztBc053YUE7QXRObGNBOztBc05xY0E7QXBOcmNBOzs7QW9OeWNBO0F0Ti9iQTtBQWdCQTs7QXNObWJBO0FyTDdjQTs7QXFMZ2RBO0FJaGRBO0FBWUE7QUdZQTtBQWdCQTs7QVA4YUE7QU9yWkE7O0FQd1pBO0FPOWJBO0FBQ0E7QUFHQTtBQUlBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBTUE7QTVML0RBO0FBQ0E7QUFDQTtBMkxHQTtBQUdBO0FDMkRBO0FEMUNBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQ3FCQTtBRElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBQUNBO0FBQ0E7QUN0Q0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUtBOzs7QUFJQTtBQUNBO0E3TnRIQTs7QXNOc2pCQTtBcE50akJBOzs7QW9OMGpCQTtBdE5oakJBO0FBZ0JBOztBc05vaUJBO0F0TjlqQkE7O0FzTmlrQkE7QXBOamtCQTs7O0FvTnFrQkE7QXROM2pCQTtBQWdCQTs7QXNOK2lCQTtBdE56a0JBOztBc040a0JBO0FwTjVrQkE7OztBb05nbEJBO0F0TnRrQkE7QUFnQkE7O0FzTjBqQkE7QXROcGxCQTs7QXNOdWxCQTtBcE52bEJBOzs7QW9OMmxCQTtBdE5qbEJBO0FBZ0JBOztBc05xa0JBO0F0Ti9sQkE7O0FzTmttQkE7QXBObG1CQTs7O0FvTnNtQkE7QXRONWxCQTtBQWdCQTs7QXNOZ2xCQTtBdE4xbUJBOztBc042bUJBO0FwTjdtQkE7OztBb05pbkJBO0F0TnZtQkE7QUFnQkE7O0FzTjJsQkE7QXJMcm5CQTs7QXFMd25CQTtBSXhuQkE7QUFZQTtBSVNBO0FBR0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0E3TDlCQTtBQUNBO0FBQ0E7QTJMR0E7QUFHQTtBQUNBO0FsTitoQkE7QW9OMWdCQTtBQUVBO0FBTUE7QUZiQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUVSQTtBRmlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FFM0NBO0FBQ0E7QUFDQTtBRjJDQTtBQUVBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBQUNBO0FBQ0E7QUUvREE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFkQTtBQWtCQTtBQUNBO0E5TjlFQTs7QXNOcXNCQTtBcE5yc0JBOzs7QW9OeXNCQTtBdE4vckJBO0FBZ0JBOztBc05tckJBO0F0TjdzQkE7O0FzTmd0QkE7QXBOaHRCQTs7O0FvTm90QkE7QXROMXNCQTtBQWdCQTs7QXNOOHJCQTtBU3BzQkE7QUFHQTtBQUdBO0FyTm1oQkE7QXFOemhCQTtBQVVBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QTlMakNBO0FBQ0E7QUFDQTtBMkxHQTtBQUdBO0FHK0JBO0FBQ0E7QXJOZ2dCQTtBcU52Z0JBO0FBRUE7QUFPQTtBSGpCQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBSUE7QUdHQTtBQUNBO0FIRkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FHRkE7QUgyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBR3RDQTtBQUNBO0FBQ0E7QUFDQTtBSHFDQTtBQUVBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBQUNBO0FBQ0E7QUd6REE7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQVpBOztBQWlCQTtBQWpCQTtBQXNCQTtBQUNBO0EvTnhGQTs7QXNOMnlCQTtBcE4zeUJBOzs7QW9OK3lCQTtBdE5yeUJBO0FBZ0JBOztBc055eEJBO0FVOXdCQTtBQUdBO0FBQ0E7QUFDQTtBdE5tZ0JBO0FzTnhnQkE7QUFRQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QXROc2ZBO0FzTnZmQTtBQUlBO0FBQ0E7QUFMQTtBQVFBO0F0TitlQTtBc05wZUE7QUFHQTtBQVNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQXZEQTtBQTREQTtBQUNBO0FBQ0E7QUFDQTtBdE55Y0E7QXNOeGdCQTtBQW9FQTtBdE5vY0E7QXNOeGdCQTtBQXdFQTtBQUNBO0FBekVBO0FBNkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqRkE7QUFvRkE7QUFwRkE7QUF1RkE7QUFDQTtBQUNBO0FBTUE7QXhON0VBO0FBQ0E7QUFDQTtBd04yRUE7QXhOdEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0F3Tm9DQTtBeE41QkE7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0F3TmNBO0F4TlJBO0FBU0E7QUFDQTtBQUNBO0F3TkhBO0F0TStRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBeUJBO0FBQ0E7QXNNdFNBO0FBQ0E7QUFJQTtBeE50R0E7O0FSL0NBOztBaU9FQTtBL05GQTs7O0ErTk1BO0FqT0lBO0FBZ0JBOztBaU9oQkE7QWpPVkE7O0FpT2FBO0EvTmJBOzs7QStOaUJBO0FqT1BBO0FBZ0JBOztBaU9MQTtBNU5yQkE7Ozs7Ozs7O0E0TjhCQTtBM045QkE7QUFTQTtBTlRBOztBaU9tQ0E7QS9ObkNBOzs7QStOdUNBO0FqTzdCQTtBQWdCQTs7QWlPaUJBO0FqTzNDQTs7QWlPOENBO0EvTjlDQTs7O0ErTmtEQTtBak94Q0E7QUFnQkE7O0FpTzRCQTtBNU50REE7Ozs7Ozs7O0E0TitEQTtBM04vREE7QUFTQTtBTlRBOztBaU9vRUE7QS9OcEVBOzs7QStOd0VBO0FqTzlEQTtBQWdCQTs7QWlPa0RBO0EvSzVFQTtBQW1EQTtBQ1dBO0FuRDlEQTs7QWlPa0ZBO0EvTmxGQTs7O0ErTnNGQTtBak81RUE7QUFnQkE7O0FpT2dFQTtBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0F4TjBoQkE7QXdONWhCQTtBQUtBO0FBQ0E7QXhOc2hCQTtBd05saUJBO0FBaUJBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBMU5tQkE7QUFDQTtBQUNBO0FBQ0E7QTBOdEJBO0ExTjBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBME41REE7QTFOb0VBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBME5sRkE7QTFOd0ZBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QTBOOUZBO0FBQ0E7QXhOa2dCQTtBd05uZ0JBO0FBSUE7QUFDQTtBQUlBO0ExTkpBO0FBQ0E7QTBOVUE7QTdLa0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNktsSkE7QUFDQTtBQUNBOzsiLCJzb3VyY2VSb290IjoiIn0=*/