@charset "UTF-8";
/**
 * woocommerce.scss
 * Governs the general look and feel of WooCommerce sections of stores using themes that do not
 * integrate with WooCommerce specifically.
 */
/**
 * Imports
 */
/**
 * Deprecated
 * Fallback for bourbon equivalent
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Vendor prefix no longer required.
 */
/**
 * Deprecated
 * Use bourbon mixin instead `@include transform(scale(1.5));`
 */
/**
 * Deprecated
 * Use bourbon mixin instead `@include box-sizing(border-box);`
 */
/**
 * Objects
 */
/**
 * WooCommerce CSS Variables
 */
:root {
  --woocommerce: #cd061d;
  --wc-green: #198754;
  --wc-red: #dc3545;
  --wc-orange: #ffc107;
  --wc-blue: #0dcaf0;
  --wc-primary: #cd061d;
  --wc-primary-text: white;
  --wc-secondary: #cd061d;
  --wc-secondary-text: white;
  --wc-highlight: #cd061d;
  --wc-highligh-text: #fad8dc;
  --wc-content-bg: white;
  --wc-subtext: #000; }

/**
 * _animation.scss
 * Custom WooCommerce Animations.
 */
@keyframes spin {
  100% {
    transform: rotate(360deg); } }

/**
 * _fonts.scss
 * Custom WooCommerce fonts.
 */
@font-face {
  font-family: 'star';
  src: url("../fonts/WooCommerce.woff2") format("woff2"), url("../fonts/WooCommerce.woff") format("woff"), url("../fonts/WooCommerce.ttf") format("truetype");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'WooCommerce';
  src: url("../fonts/WooCommerce.woff2") format("woff2"), url("../fonts/WooCommerce.woff") format("woff"), url("../fonts/WooCommerce.ttf") format("truetype");
  font-weight: normal;
  font-style: normal; }

/**
 * Global styles
 */
p.demo_store,
.woocommerce-store-notice {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0;
  width: 100%;
  font-size: 1em;
  padding: 1em 0;
  text-align: center;
  background-color: #cd061d;
  color: white;
  z-index: 99998;
  box-shadow: 0 1px 1em rgba(0, 0, 0, 0.2);
  display: none; }
  p.demo_store a,
  .woocommerce-store-notice a {
    color: white;
    text-decoration: underline; }

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important; }

.admin-bar p.demo_store {
  top: 32px; }

/**
 * Utility classes
 */
.clear {
  clear: both; }

/**
 * Main WooCommerce styles
 */
.woocommerce {
  /**
	 * Product Page
	 */
  /**
	 * Product loops
	 */
  /**
	 * Reviews
	 */
  /**
	 * Star ratings
	 */
  /**
	 * Tables
	 */
  /**
	 * Cart sidebar
	 */
  /**
	 * Forms
	 */
  /**
	 * Order page
	 */
  /**
	 * Layered nav widget
	 */
  /**
	 * Price filter widget
	 */
  /**
	 * Rating Filter Widget
	 */ }
  .woocommerce .blockUI.blockOverlay {
    position: relative; }
    .woocommerce .blockUI.blockOverlay::before {
      height: 1em;
      width: 1em;
      display: block;
      position: absolute;
      top: 50%;
      left: 50%;
      margin-left: -0.5em;
      margin-top: -0.5em;
      content: "";
      animation: spin 1s ease-in-out infinite;
      background: url("../images/icons/loader.svg") center center;
      background-size: cover;
      line-height: 1;
      text-align: center;
      font-size: 2em;
      color: rgba(0, 0, 0, 0.75); }
  .woocommerce .loader::before {
    height: 1em;
    width: 1em;
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-left: -0.5em;
    margin-top: -0.5em;
    content: "";
    animation: spin 1s ease-in-out infinite;
    background: url("../images/icons/loader.svg") center center;
    background-size: cover;
    line-height: 1;
    text-align: center;
    font-size: 2em;
    color: rgba(0, 0, 0, 0.75); }
  .woocommerce a.remove {
    display: block;
    font-size: 1.5em;
    height: 1em;
    width: 1em;
    text-align: center;
    line-height: 1;
    border-radius: 100%;
    color: red !important;
    text-decoration: none;
    font-weight: 700;
    border: 0; }
    .woocommerce a.remove:hover {
      color: #fff !important;
      background: red; }
  .woocommerce small.note {
    display: block;
    color: #000;
    font-size: 0.857em;
    margin-top: 10px; }
  .woocommerce .woocommerce-breadcrumb {
    *zoom: 1;
    margin: 0 0 1em;
    padding: 0; }
    .woocommerce .woocommerce-breadcrumb::before, .woocommerce .woocommerce-breadcrumb::after {
      content: " ";
      display: table; }
    .woocommerce .woocommerce-breadcrumb::after {
      clear: both; }
  .woocommerce .quantity .qty {
    width: 3.631em;
    text-align: center; }
  .woocommerce div.product {
    margin-bottom: 0;
    position: relative; }
    .woocommerce div.product .product_title {
      clear: none;
      margin-top: 0;
      padding: 0; }
    .woocommerce div.product span.price ins,
    .woocommerce div.product p.price ins {
      background: inherit;
      font-weight: 700;
      display: inline-block; }
    .woocommerce div.product span.price del,
    .woocommerce div.product p.price del {
      opacity: 0.5;
      display: inline-block; }
    .woocommerce div.product p.stock {
      font-size: 0.92em; }
    .woocommerce div.product .woocommerce-product-rating {
      margin-bottom: 1.618em; }
    .woocommerce div.product div.images {
      margin-bottom: 2em; }
      .woocommerce div.product div.images img {
        display: block;
        width: 100%;
        height: auto;
        box-shadow: none; }
      .woocommerce div.product div.images div.thumbnails {
        padding-top: 1em; }
      .woocommerce div.product div.images.woocommerce-product-gallery {
        position: relative; }
      .woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
        transition: all cubic-bezier(0.795, -0.035, 0, 1) 0.5s;
        margin: 0;
        padding: 0; }
      .woocommerce div.product div.images .woocommerce-product-gallery__wrapper .zoomImg {
        background-color: #fff;
        opacity: 0; }
      .woocommerce div.product div.images .woocommerce-product-gallery__image--placeholder {
        border: 1px solid #f2f2f2; }
      .woocommerce div.product div.images .woocommerce-product-gallery__image:nth-child(n+2) {
        width: 25%;
        display: inline-block; }
      .woocommerce div.product div.images .woocommerce-product-gallery__trigger {
        position: absolute;
        top: 0.5em;
        right: 0.5em;
        font-size: 2em;
        z-index: 9;
        width: 36px;
        height: 36px;
        background: #fff;
        text-indent: -9999px;
        border-radius: 100%;
        box-sizing: content-box; }
        .woocommerce div.product div.images .woocommerce-product-gallery__trigger::before {
          content: "";
          display: block;
          width: 10px;
          height: 10px;
          border: 2px solid #000;
          border-radius: 100%;
          position: absolute;
          top: 9px;
          left: 9px;
          box-sizing: content-box; }
        .woocommerce div.product div.images .woocommerce-product-gallery__trigger::after {
          content: "";
          display: block;
          width: 2px;
          height: 8px;
          background: #000;
          border-radius: 6px;
          position: absolute;
          top: 19px;
          left: 22px;
          transform: rotate(-45deg);
          box-sizing: content-box; }
      .woocommerce div.product div.images .flex-control-thumbs {
        overflow: hidden;
        zoom: 1;
        margin: 0;
        padding: 0; }
        .woocommerce div.product div.images .flex-control-thumbs li {
          width: 25%;
          float: left;
          margin: 0;
          list-style: none; }
          .woocommerce div.product div.images .flex-control-thumbs li img {
            cursor: pointer;
            opacity: 0.5;
            margin: 0; }
            .woocommerce div.product div.images .flex-control-thumbs li img.flex-active, .woocommerce div.product div.images .flex-control-thumbs li img:hover {
              opacity: 1; }
    .woocommerce div.product .woocommerce-product-gallery--columns-3 .flex-control-thumbs li:nth-child(3n+1) {
      clear: left; }
    .woocommerce div.product .woocommerce-product-gallery--columns-4 .flex-control-thumbs li:nth-child(4n+1) {
      clear: left; }
    .woocommerce div.product .woocommerce-product-gallery--columns-5 .flex-control-thumbs li:nth-child(5n+1) {
      clear: left; }
    .woocommerce div.product div.summary {
      margin-bottom: 2em; }
    .woocommerce div.product div.social {
      text-align: right;
      margin: 0 0 1em; }
      .woocommerce div.product div.social span {
        margin: 0 0 0 2px; }
        .woocommerce div.product div.social span span {
          margin: 0; }
        .woocommerce div.product div.social span .stButton .chicklets {
          padding-left: 16px;
          width: 0; }
      .woocommerce div.product div.social iframe {
        float: left;
        margin-top: 3px; }
    .woocommerce div.product .woocommerce-tabs ul.tabs {
      list-style: none;
      padding: 0 0 0 1em;
      margin: 0 0 1.618em;
      overflow: hidden;
      position: relative; }
      .woocommerce div.product .woocommerce-tabs ul.tabs li {
        border: 1px solid #9b0516;
        background-color: #cd061d;
        color: white;
        display: inline-block;
        position: relative;
        z-index: 0;
        border-radius: 4px 4px 0 0;
        margin: 0 -5px;
        padding: 0 1em; }
        .woocommerce div.product .woocommerce-tabs ul.tabs li a {
          display: inline-block;
          padding: 0.5em 0;
          font-weight: 700;
          color: white;
          text-decoration: none; }
          .woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
            text-decoration: none;
            color: white; }
        .woocommerce div.product .woocommerce-tabs ul.tabs li.active {
          background: white;
          color: white;
          z-index: 2;
          border-bottom-color: white; }
          .woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
            color: inherit;
            text-shadow: inherit; }
          .woocommerce div.product .woocommerce-tabs ul.tabs li.active::before {
            box-shadow: 2px 2px 0 white; }
          .woocommerce div.product .woocommerce-tabs ul.tabs li.active::after {
            box-shadow: -2px 2px 0 white; }
        .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after {
          border: 1px solid #9b0516;
          position: absolute;
          bottom: -1px;
          width: 5px;
          height: 5px;
          content: " ";
          box-sizing: border-box; }
        .woocommerce div.product .woocommerce-tabs ul.tabs li::before {
          left: -5px;
          border-bottom-right-radius: 4px;
          border-width: 0 1px 1px 0;
          box-shadow: 2px 2px 0 #cd061d; }
        .woocommerce div.product .woocommerce-tabs ul.tabs li::after {
          right: -5px;
          border-bottom-left-radius: 4px;
          border-width: 0 0 1px 1px;
          box-shadow: -2px 2px 0 #cd061d; }
      .woocommerce div.product .woocommerce-tabs ul.tabs::before {
        position: absolute;
        content: " ";
        width: 100%;
        bottom: 0;
        left: 0;
        border-bottom: 1px solid #9b0516;
        z-index: 1; }
    .woocommerce div.product .woocommerce-tabs .panel {
      margin: 0 0 2em;
      padding: 0; }
    .woocommerce div.product p.cart {
      margin-bottom: 2em;
      *zoom: 1; }
      .woocommerce div.product p.cart::before, .woocommerce div.product p.cart::after {
        content: " ";
        display: table; }
      .woocommerce div.product p.cart::after {
        clear: both; }
    .woocommerce div.product form.cart {
      margin-bottom: 2em;
      *zoom: 1; }
      .woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after {
        content: " ";
        display: table; }
      .woocommerce div.product form.cart::after {
        clear: both; }
      .woocommerce div.product form.cart div.quantity {
        float: left;
        margin: 0 4px 0 0; }
      .woocommerce div.product form.cart table {
        border-width: 0 0 1px; }
        .woocommerce div.product form.cart table td {
          padding-left: 0; }
        .woocommerce div.product form.cart table div.quantity {
          float: none;
          margin: 0; }
        .woocommerce div.product form.cart table small.stock {
          display: block;
          float: none; }
      .woocommerce div.product form.cart .variations {
        margin-bottom: 1em;
        border: 0;
        width: 100%; }
        .woocommerce div.product form.cart .variations td,
        .woocommerce div.product form.cart .variations th {
          border: 0;
          line-height: 2em;
          vertical-align: top; }
        .woocommerce div.product form.cart .variations label {
          font-weight: 700;
          text-align: left; }
        .woocommerce div.product form.cart .variations select {
          max-width: 100%;
          min-width: 75%;
          display: inline-block;
          margin-right: 1em; }
        .woocommerce div.product form.cart .variations td.label {
          padding-right: 1em; }
      .woocommerce div.product form.cart .woocommerce-variation-description p {
        margin-bottom: 1em; }
      .woocommerce div.product form.cart .reset_variations {
        visibility: hidden;
        font-size: 0.83em; }
      .woocommerce div.product form.cart .wc-no-matching-variations {
        display: none; }
      .woocommerce div.product form.cart .button {
        vertical-align: middle;
        float: left; }
      .woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__label {
        padding-right: 1em;
        padding-left: 1em; }
      .woocommerce div.product form.cart .group_table td {
        vertical-align: top;
        padding-bottom: 0.5em;
        border: 0; }
      .woocommerce div.product form.cart .group_table td:first-child {
        width: 4em;
        text-align: center; }
      .woocommerce div.product form.cart .group_table .wc-grouped-product-add-to-cart-checkbox {
        display: inline-block;
        width: auto;
        margin: 0 auto;
        transform: scale(1.5, 1.5); }
  .woocommerce span.onsale {
    min-height: 3.236em;
    min-width: 3.236em;
    padding: 0.202em;
    font-size: 1em;
    font-weight: 700;
    position: absolute;
    text-align: center;
    line-height: 3.236;
    top: -0.5em;
    left: -0.5em;
    margin: 0;
    border-radius: 100%;
    background-color: #cd061d;
    color: #fad8dc;
    font-size: 0.857em;
    z-index: 9; }
  .woocommerce .products ul,
  .woocommerce ul.products {
    margin: 0 0 1em;
    padding: 0;
    list-style: none outside;
    clear: both;
    *zoom: 1; }
    .woocommerce .products ul::before, .woocommerce .products ul::after,
    .woocommerce ul.products::before,
    .woocommerce ul.products::after {
      content: " ";
      display: table; }
    .woocommerce .products ul::after,
    .woocommerce ul.products::after {
      clear: both; }
    .woocommerce .products ul li,
    .woocommerce ul.products li {
      list-style: none outside; }
  .woocommerce ul.products li.product .onsale {
    top: 0;
    right: 0;
    left: auto;
    margin: -0.5em -0.5em 0 0; }
  .woocommerce ul.products li.product h3,
  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .woocommerce ul.products li.product .woocommerce-loop-category__title {
    padding: 0.5em 0;
    margin: 0;
    font-size: 1em; }
  .woocommerce ul.products li.product a {
    text-decoration: none; }
  .woocommerce ul.products li.product a img {
    width: 100%;
    height: auto;
    display: block;
    margin: 0 0 1em;
    box-shadow: none; }
  .woocommerce ul.products li.product strong {
    display: block; }
  .woocommerce ul.products li.product .woocommerce-placeholder {
    border: 1px solid #f2f2f2; }
  .woocommerce ul.products li.product .star-rating {
    font-size: 0.857em; }
  .woocommerce ul.products li.product .button {
    display: inline-block;
    margin-top: 1em; }
  .woocommerce ul.products li.product .price {
    display: block;
    font-weight: normal;
    margin-bottom: 0.5em;
    font-size: 0.857em; }
    .woocommerce ul.products li.product .price del {
      color: inherit;
      opacity: 0.5;
      display: inline-block; }
    .woocommerce ul.products li.product .price ins {
      background: none;
      font-weight: 700;
      display: inline-block; }
    .woocommerce ul.products li.product .price .from {
      font-size: 0.67em;
      margin: -2px 0 0 0;
      text-transform: uppercase;
      color: rgba(126, 85, 90, 0.5); }
  .woocommerce .woocommerce-result-count {
    margin: 0 0 1em; }
  .woocommerce .woocommerce-ordering {
    margin: 0 0 1em; }
    .woocommerce .woocommerce-ordering select {
      vertical-align: top; }
  .woocommerce nav.woocommerce-pagination {
    text-align: center; }
    .woocommerce nav.woocommerce-pagination ul {
      display: inline-block;
      white-space: nowrap;
      padding: 0;
      clear: both;
      border: 1px solid #9b0516;
      border-right: 0;
      margin: 1px; }
      .woocommerce nav.woocommerce-pagination ul li {
        border-right: 1px solid #9b0516;
        padding: 0;
        margin: 0;
        float: left;
        display: inline;
        overflow: hidden; }
        .woocommerce nav.woocommerce-pagination ul li a,
        .woocommerce nav.woocommerce-pagination ul li span {
          margin: 0;
          text-decoration: none;
          padding: 0;
          line-height: 1;
          font-size: 1em;
          font-weight: normal;
          padding: 0.5em;
          min-width: 1em;
          display: block; }
        .woocommerce nav.woocommerce-pagination ul li span.current,
        .woocommerce nav.woocommerce-pagination ul li a:hover,
        .woocommerce nav.woocommerce-pagination ul li a:focus {
          background: #cd061d;
          color: #070001; }
  .woocommerce .cart .button,
  .woocommerce .cart input.button {
    float: none; }
  .woocommerce a.added_to_cart {
    padding-top: 0.5em;
    display: inline-block; }
  .woocommerce #reviews h2 small {
    float: right;
    color: #000;
    font-size: 15px;
    margin: 10px 0 0; }
    .woocommerce #reviews h2 small a {
      text-decoration: none;
      color: #000; }
  .woocommerce #reviews h3 {
    margin: 0; }
  .woocommerce #reviews #respond {
    margin: 0;
    border: 0;
    padding: 0; }
  .woocommerce #reviews #comment {
    height: 75px; }
  .woocommerce #reviews #comments .add_review {
    *zoom: 1; }
    .woocommerce #reviews #comments .add_review::before, .woocommerce #reviews #comments .add_review::after {
      content: " ";
      display: table; }
    .woocommerce #reviews #comments .add_review::after {
      clear: both; }
  .woocommerce #reviews #comments h2 {
    clear: none; }
  .woocommerce #reviews #comments ol.commentlist {
    *zoom: 1;
    margin: 0;
    width: 100%;
    background: none;
    list-style: none; }
    .woocommerce #reviews #comments ol.commentlist::before, .woocommerce #reviews #comments ol.commentlist::after {
      content: " ";
      display: table; }
    .woocommerce #reviews #comments ol.commentlist::after {
      clear: both; }
    .woocommerce #reviews #comments ol.commentlist li {
      padding: 0;
      margin: 0 0 20px;
      border: 0;
      position: relative;
      background: 0;
      border: 0; }
      .woocommerce #reviews #comments ol.commentlist li img.avatar {
        float: left;
        position: absolute;
        top: 0;
        left: 0;
        padding: 3px;
        width: 32px;
        height: auto;
        background: #cd061d;
        border: 1px solid #be061b;
        margin: 0;
        box-shadow: none; }
      .woocommerce #reviews #comments ol.commentlist li .comment-text {
        margin: 0 0 0 50px;
        border: 1px solid #be061b;
        border-radius: 4px;
        padding: 1em 1em 0;
        *zoom: 1; }
        .woocommerce #reviews #comments ol.commentlist li .comment-text::before, .woocommerce #reviews #comments ol.commentlist li .comment-text::after {
          content: " ";
          display: table; }
        .woocommerce #reviews #comments ol.commentlist li .comment-text::after {
          clear: both; }
        .woocommerce #reviews #comments ol.commentlist li .comment-text p {
          margin: 0 0 1em; }
        .woocommerce #reviews #comments ol.commentlist li .comment-text p.meta {
          font-size: 0.83em; }
    .woocommerce #reviews #comments ol.commentlist ul.children {
      list-style: none outside;
      margin: 20px 0 0 50px; }
      .woocommerce #reviews #comments ol.commentlist ul.children .star-rating {
        display: none; }
    .woocommerce #reviews #comments ol.commentlist #respond {
      border: 1px solid #be061b;
      border-radius: 4px;
      padding: 1em 1em 0;
      margin: 20px 0 0 50px; }
  .woocommerce #reviews #comments .commentlist > li::before {
    content: ""; }
  .woocommerce .star-rating {
    float: right;
    overflow: hidden;
    position: relative;
    height: 1em;
    line-height: 1;
    font-size: 1em;
    width: 5.4em;
    font-family: WooCommerce; }
    .woocommerce .star-rating::before {
      content: "\73\73\73\73\73";
      color: #9b0516;
      float: left;
      top: 0;
      left: 0;
      position: absolute; }
    .woocommerce .star-rating span {
      overflow: hidden;
      float: left;
      top: 0;
      left: 0;
      position: absolute;
      padding-top: 1.5em; }
    .woocommerce .star-rating span::before {
      content: "\53\53\53\53\53";
      top: 0;
      position: absolute;
      left: 0; }
  .woocommerce .woocommerce-product-rating {
    *zoom: 1;
    line-height: 2;
    display: block; }
    .woocommerce .woocommerce-product-rating::before, .woocommerce .woocommerce-product-rating::after {
      content: " ";
      display: table; }
    .woocommerce .woocommerce-product-rating::after {
      clear: both; }
    .woocommerce .woocommerce-product-rating .star-rating {
      margin: 0.5em 4px 0 0;
      float: left; }
  .woocommerce .products .star-rating {
    display: block;
    margin: 0 0 0.5em;
    float: none; }
  .woocommerce .hreview-aggregate .star-rating {
    margin: 10px 0 0; }
  .woocommerce #review_form #respond {
    *zoom: 1;
    position: static;
    margin: 0;
    width: auto;
    padding: 0;
    background: transparent none;
    border: 0; }
    .woocommerce #review_form #respond::before, .woocommerce #review_form #respond::after {
      content: " ";
      display: table; }
    .woocommerce #review_form #respond::after {
      clear: both; }
    .woocommerce #review_form #respond p {
      margin: 0 0 10px; }
    .woocommerce #review_form #respond .form-submit input {
      left: auto; }
    .woocommerce #review_form #respond textarea {
      box-sizing: border-box;
      width: 100%; }
  .woocommerce p.stars a {
    position: relative;
    height: 1em;
    width: 1em;
    text-indent: -999em;
    display: inline-block;
    text-decoration: none; }
    .woocommerce p.stars a::before {
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: 1em;
      height: 1em;
      line-height: 1;
      font-family: "WooCommerce";
      content: "\e021";
      text-indent: 0; }
    .woocommerce p.stars a:hover ~ a::before {
      content: "\e021"; }
  .woocommerce p.stars:hover a::before {
    content: "\e020"; }
  .woocommerce p.stars.selected a.active::before {
    content: "\e020"; }
  .woocommerce p.stars.selected a.active ~ a::before {
    content: "\e021"; }
  .woocommerce p.stars.selected a:not(.active)::before {
    content: "\e020"; }
  .woocommerce table.shop_attributes {
    border: 0;
    border-top: 1px dotted rgba(0, 0, 0, 0.1);
    margin-bottom: 1.618em;
    width: 100%; }
    .woocommerce table.shop_attributes th {
      width: 150px;
      font-weight: 700;
      padding: 8px;
      border-top: 0;
      border-bottom: 1px dotted rgba(0, 0, 0, 0.1);
      margin: 0;
      line-height: 1.5; }
    .woocommerce table.shop_attributes td {
      font-style: italic;
      padding: 0;
      border-top: 0;
      border-bottom: 1px dotted rgba(0, 0, 0, 0.1);
      margin: 0;
      line-height: 1.5; }
      .woocommerce table.shop_attributes td p {
        margin: 0;
        padding: 8px 0; }
    .woocommerce table.shop_attributes tr:nth-child(even) td,
    .woocommerce table.shop_attributes tr:nth-child(even) th {
      background: rgba(0, 0, 0, 0.025); }
  .woocommerce table.shop_table {
    border: 1px solid rgba(0, 0, 0, 0.1);
    margin: 0 -1px 24px 0;
    text-align: left;
    width: 100%;
    border-collapse: separate;
    border-radius: 5px; }
    .woocommerce table.shop_table th {
      font-weight: 700;
      padding: 9px 12px;
      line-height: 1.5em; }
    .woocommerce table.shop_table td {
      border-top: 1px solid rgba(0, 0, 0, 0.1);
      padding: 9px 12px;
      vertical-align: middle;
      line-height: 1.5em; }
      .woocommerce table.shop_table td small {
        font-weight: normal; }
      .woocommerce table.shop_table td del {
        font-weight: normal; }
    .woocommerce table.shop_table tbody:first-child tr:first-child th,
    .woocommerce table.shop_table tbody:first-child tr:first-child td {
      border-top: 0; }
    .woocommerce table.shop_table tfoot td,
    .woocommerce table.shop_table tfoot th,
    .woocommerce table.shop_table tbody th {
      font-weight: 700;
      border-top: 1px solid rgba(0, 0, 0, 0.1); }
  .woocommerce table.my_account_orders {
    font-size: 0.85em; }
    .woocommerce table.my_account_orders th,
    .woocommerce table.my_account_orders td {
      padding: 4px 8px;
      vertical-align: middle; }
    .woocommerce table.my_account_orders .button {
      white-space: nowrap; }
  .woocommerce table.woocommerce-MyAccount-downloads td,
  .woocommerce table.woocommerce-MyAccount-downloads th {
    vertical-align: top;
    text-align: center; }
    .woocommerce table.woocommerce-MyAccount-downloads td:first-child,
    .woocommerce table.woocommerce-MyAccount-downloads th:first-child {
      text-align: left; }
    .woocommerce table.woocommerce-MyAccount-downloads td:last-child,
    .woocommerce table.woocommerce-MyAccount-downloads th:last-child {
      text-align: left; }
    .woocommerce table.woocommerce-MyAccount-downloads td .woocommerce-MyAccount-downloads-file::before,
    .woocommerce table.woocommerce-MyAccount-downloads th .woocommerce-MyAccount-downloads-file::before {
      content: "\2193";
      display: inline-block; }
  .woocommerce td.product-name dl.variation,
  .woocommerce td.product-name .wc-item-meta {
    list-style: none outside; }
    .woocommerce td.product-name dl.variation dt,
    .woocommerce td.product-name dl.variation .wc-item-meta-label,
    .woocommerce td.product-name .wc-item-meta dt,
    .woocommerce td.product-name .wc-item-meta .wc-item-meta-label {
      float: left;
      clear: both;
      margin-right: 0.25em;
      display: inline-block;
      list-style: none outside; }
    .woocommerce td.product-name dl.variation dd,
    .woocommerce td.product-name .wc-item-meta dd {
      margin: 0; }
    .woocommerce td.product-name dl.variation p, .woocommerce td.product-name dl.variation:last-child,
    .woocommerce td.product-name .wc-item-meta p,
    .woocommerce td.product-name .wc-item-meta:last-child {
      margin-bottom: 0; }
  .woocommerce td.product-name p.backorder_notification {
    font-size: 0.83em; }
  .woocommerce td.product-quantity {
    min-width: 80px; }
  .woocommerce ul.cart_list,
  .woocommerce ul.product_list_widget {
    list-style: none outside;
    padding: 0;
    margin: 0; }
    .woocommerce ul.cart_list li,
    .woocommerce ul.product_list_widget li {
      padding: 4px 0;
      margin: 0;
      *zoom: 1;
      list-style: none; }
      .woocommerce ul.cart_list li::before, .woocommerce ul.cart_list li::after,
      .woocommerce ul.product_list_widget li::before,
      .woocommerce ul.product_list_widget li::after {
        content: " ";
        display: table; }
      .woocommerce ul.cart_list li::after,
      .woocommerce ul.product_list_widget li::after {
        clear: both; }
      .woocommerce ul.cart_list li a,
      .woocommerce ul.product_list_widget li a {
        display: block;
        font-weight: 700; }
      .woocommerce ul.cart_list li img,
      .woocommerce ul.product_list_widget li img {
        float: right;
        margin-left: 4px;
        width: 32px;
        height: auto;
        box-shadow: none; }
      .woocommerce ul.cart_list li dl,
      .woocommerce ul.product_list_widget li dl {
        margin: 0;
        padding-left: 1em;
        border-left: 2px solid rgba(0, 0, 0, 0.1);
        *zoom: 1; }
        .woocommerce ul.cart_list li dl::before, .woocommerce ul.cart_list li dl::after,
        .woocommerce ul.product_list_widget li dl::before,
        .woocommerce ul.product_list_widget li dl::after {
          content: " ";
          display: table; }
        .woocommerce ul.cart_list li dl::after,
        .woocommerce ul.product_list_widget li dl::after {
          clear: both; }
        .woocommerce ul.cart_list li dl dt,
        .woocommerce ul.cart_list li dl dd,
        .woocommerce ul.product_list_widget li dl dt,
        .woocommerce ul.product_list_widget li dl dd {
          display: inline-block;
          float: left;
          margin-bottom: 1em; }
        .woocommerce ul.cart_list li dl dt,
        .woocommerce ul.product_list_widget li dl dt {
          font-weight: 700;
          padding: 0 0 0.25em;
          margin: 0 4px 0 0;
          clear: left; }
        .woocommerce ul.cart_list li dl dd,
        .woocommerce ul.product_list_widget li dl dd {
          padding: 0 0 0.25em; }
          .woocommerce ul.cart_list li dl dd p:last-child,
          .woocommerce ul.product_list_widget li dl dd p:last-child {
            margin-bottom: 0; }
      .woocommerce ul.cart_list li .star-rating,
      .woocommerce ul.product_list_widget li .star-rating {
        float: none; }
  .woocommerce.widget_shopping_cart .total,
  .woocommerce .widget_shopping_cart .total {
    border-top: 3px double #cd061d;
    padding: 4px 0 0; }
    .woocommerce.widget_shopping_cart .total strong,
    .woocommerce .widget_shopping_cart .total strong {
      min-width: 40px;
      display: inline-block; }
  .woocommerce.widget_shopping_cart .cart_list li,
  .woocommerce .widget_shopping_cart .cart_list li {
    padding-left: 2em;
    position: relative;
    padding-top: 0; }
    .woocommerce.widget_shopping_cart .cart_list li a.remove,
    .woocommerce .widget_shopping_cart .cart_list li a.remove {
      position: absolute;
      top: 0;
      left: 0; }
  .woocommerce.widget_shopping_cart .buttons,
  .woocommerce .widget_shopping_cart .buttons {
    *zoom: 1; }
    .woocommerce.widget_shopping_cart .buttons::before, .woocommerce.widget_shopping_cart .buttons::after,
    .woocommerce .widget_shopping_cart .buttons::before,
    .woocommerce .widget_shopping_cart .buttons::after {
      content: " ";
      display: table; }
    .woocommerce.widget_shopping_cart .buttons::after,
    .woocommerce .widget_shopping_cart .buttons::after {
      clear: both; }
    .woocommerce.widget_shopping_cart .buttons a,
    .woocommerce .widget_shopping_cart .buttons a {
      margin-right: 5px;
      margin-bottom: 5px; }
  .woocommerce form .form-row {
    padding: 3px;
    margin: 0 0 6px; }
    .woocommerce form .form-row [placeholder]:focus::-webkit-input-placeholder {
      transition: opacity 0.5s 0.5s ease;
      opacity: 0; }
    .woocommerce form .form-row label {
      line-height: 2; }
    .woocommerce form .form-row label.hidden {
      visibility: hidden; }
    .woocommerce form .form-row label.inline {
      display: inline; }
    .woocommerce form .form-row .woocommerce-input-wrapper .description {
      background: #1e85be;
      color: #fff;
      border-radius: 3px;
      padding: 1em;
      margin: 0.5em 0 0;
      clear: both;
      display: none;
      position: relative; }
      .woocommerce form .form-row .woocommerce-input-wrapper .description a {
        color: #fff;
        text-decoration: underline;
        border: 0;
        box-shadow: none; }
      .woocommerce form .form-row .woocommerce-input-wrapper .description::before {
        left: 50%;
        top: 0%;
        margin-top: -4px;
        transform: translateX(-50%) rotate(180deg);
        content: "";
        position: absolute;
        border-width: 4px 6px 0 6px;
        border-style: solid;
        border-color: #1e85be transparent transparent transparent;
        z-index: 100;
        display: block; }
    .woocommerce form .form-row select {
      cursor: pointer;
      margin: 0; }
    .woocommerce form .form-row .required {
      color: red;
      font-weight: 700;
      border: 0 !important;
      text-decoration: none;
      visibility: hidden; }
    .woocommerce form .form-row .optional {
      visibility: visible; }
    .woocommerce form .form-row .input-checkbox {
      display: inline;
      margin: -2px 8px 0 0;
      text-align: center;
      vertical-align: middle; }
    .woocommerce form .form-row input.input-text,
    .woocommerce form .form-row textarea {
      box-sizing: border-box;
      width: 100%;
      margin: 0;
      outline: 0;
      line-height: normal; }
    .woocommerce form .form-row textarea {
      height: 4em;
      line-height: 1.5;
      display: block;
      box-shadow: none; }
    .woocommerce form .form-row .select2-container {
      width: 100%;
      line-height: 2em; }
    .woocommerce form .form-row.woocommerce-invalid label {
      color: #dc3545; }
    .woocommerce form .form-row.woocommerce-invalid .select2-container,
    .woocommerce form .form-row.woocommerce-invalid input.input-text,
    .woocommerce form .form-row.woocommerce-invalid select {
      border-color: #dc3545; }
    .woocommerce form .form-row.woocommerce-validated .select2-container,
    .woocommerce form .form-row.woocommerce-validated input.input-text,
    .woocommerce form .form-row.woocommerce-validated select {
      border-color: #157147; }
    .woocommerce form .form-row ::-webkit-input-placeholder {
      line-height: normal; }
    .woocommerce form .form-row :-moz-placeholder {
      line-height: normal; }
    .woocommerce form .form-row :-ms-input-placeholder {
      line-height: normal; }
  .woocommerce form.login,
  .woocommerce form.checkout_coupon,
  .woocommerce form.register {
    border: 1px solid #9b0516;
    padding: 20px;
    margin: 2em 0;
    text-align: left;
    border-radius: 5px; }
  .woocommerce ul#shipping_method {
    list-style: none outside;
    margin: 0;
    padding: 0; }
    .woocommerce ul#shipping_method li {
      margin: 0 0 0.5em;
      line-height: 1.5em;
      list-style: none outside; }
      .woocommerce ul#shipping_method li input {
        margin: 3px 0.4375em 0 0;
        vertical-align: top; }
      .woocommerce ul#shipping_method li label {
        display: inline; }
    .woocommerce ul#shipping_method .amount {
      font-weight: 700; }
  .woocommerce p.woocommerce-shipping-contents {
    margin: 0; }
  .woocommerce ul.order_details {
    *zoom: 1;
    margin: 0 0 3em;
    list-style: none; }
    .woocommerce ul.order_details::before, .woocommerce ul.order_details::after {
      content: " ";
      display: table; }
    .woocommerce ul.order_details::after {
      clear: both; }
    .woocommerce ul.order_details li {
      float: left;
      margin-right: 2em;
      text-transform: uppercase;
      font-size: 0.715em;
      line-height: 1;
      border-right: 1px dashed #9b0516;
      padding-right: 2em;
      margin-left: 0;
      padding-left: 0;
      list-style-type: none; }
      .woocommerce ul.order_details li strong {
        display: block;
        font-size: 1.4em;
        text-transform: none;
        line-height: 1.5; }
      .woocommerce ul.order_details li:last-of-type {
        border: none; }
  .woocommerce .wc-bacs-bank-details-account-name {
    font-weight: bold; }
  .woocommerce .woocommerce-order-downloads,
  .woocommerce .woocommerce-customer-details,
  .woocommerce .woocommerce-order-details {
    margin-bottom: 2em; }
    .woocommerce .woocommerce-order-downloads *:last-child,
    .woocommerce .woocommerce-customer-details *:last-child,
    .woocommerce .woocommerce-order-details *:last-child {
      margin-bottom: 0; }
  .woocommerce .woocommerce-customer-details .addresses,
  .woocommerce .woocommerce-customer-details .additional-fields {
    margin-bottom: 2em; }
    .woocommerce .woocommerce-customer-details .addresses:last-child,
    .woocommerce .woocommerce-customer-details .additional-fields:last-child {
      margin-bottom: 0; }
  .woocommerce .addresses .wc-block-components-additional-fields-list {
    margin: 0;
    padding: 0; }
    .woocommerce .addresses .wc-block-components-additional-fields-list dt {
      margin: 0;
      padding: 0;
      font-style: normal;
      font-weight: bold;
      display: inline; }
      .woocommerce .addresses .wc-block-components-additional-fields-list dt::after {
        content: ": "; }
      .woocommerce .addresses .wc-block-components-additional-fields-list dt::before {
        content: "";
        display: block; }
    .woocommerce .addresses .wc-block-components-additional-fields-list dd {
      margin: 0;
      padding: 0;
      font-style: normal;
      display: inline; }
  .woocommerce .wc-block-order-confirmation-additional-fields-wrapper .wc-block-components-additional-fields-list {
    border: 1px solid rgba(0, 0, 0, 0.1);
    padding: 0;
    display: grid;
    grid-template-columns: 1fr max-content; }
    .woocommerce .wc-block-order-confirmation-additional-fields-wrapper .wc-block-components-additional-fields-list dt {
      border-bottom: 1px solid rgba(0, 0, 0, 0.1);
      font-style: normal;
      font-weight: bold;
      padding: 1rem;
      box-sizing: border-box;
      margin: 0 !important; }
      .woocommerce .wc-block-order-confirmation-additional-fields-wrapper .wc-block-components-additional-fields-list dt::after {
        display: none; }
      .woocommerce .wc-block-order-confirmation-additional-fields-wrapper .wc-block-components-additional-fields-list dt:last-of-type {
        border-bottom: 0; }
    .woocommerce .wc-block-order-confirmation-additional-fields-wrapper .wc-block-components-additional-fields-list dd {
      border-bottom: 1px solid rgba(0, 0, 0, 0.1);
      padding: 1rem;
      box-sizing: border-box;
      text-align: right;
      margin: 0 !important; }
      .woocommerce .wc-block-order-confirmation-additional-fields-wrapper .wc-block-components-additional-fields-list dd:last-of-type {
        border-bottom: 0; }
  .woocommerce .woocommerce-customer-details .woocommerce-column__title {
    margin-top: 0; }
  .woocommerce .woocommerce-customer-details address {
    font-style: normal;
    margin-bottom: 0;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-bottom-width: 2px;
    border-right-width: 2px;
    text-align: left;
    width: 100%;
    border-radius: 5px;
    padding: 6px 12px;
    box-sizing: border-box; }
  .woocommerce .woocommerce-customer-details .woocommerce-customer-details--phone,
  .woocommerce .woocommerce-customer-details .woocommerce-customer-details--email {
    padding-left: 1.5em; }
    .woocommerce .woocommerce-customer-details .woocommerce-customer-details--phone:last-child,
    .woocommerce .woocommerce-customer-details .woocommerce-customer-details--email:last-child {
      margin-bottom: 0; }
  .woocommerce .woocommerce-customer-details .woocommerce-customer-details--phone::before {
    font-family: "WooCommerce";
    speak: never;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    margin-right: 0.618em;
    content: "";
    text-decoration: none;
    margin-left: -1.5em;
    line-height: 1.75;
    position: absolute; }
  .woocommerce .woocommerce-customer-details .woocommerce-customer-details--email::before {
    font-family: "WooCommerce";
    speak: never;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    margin-right: 0.618em;
    content: "";
    text-decoration: none;
    margin-left: -1.5em;
    line-height: 1.75;
    position: absolute; }
  .woocommerce .woocommerce-widget-layered-nav-list {
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none outside; }
    .woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item {
      *zoom: 1;
      padding: 0 0 1px;
      list-style: none; }
      .woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item::before, .woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item::after {
        content: " ";
        display: table; }
      .woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item::after {
        clear: both; }
      .woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item a,
      .woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item span {
        padding: 1px 0; }
    .woocommerce .woocommerce-widget-layered-nav-list .woocommerce-widget-layered-nav-list__item--chosen a::before {
      font-family: "WooCommerce";
      speak: never;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      -webkit-font-smoothing: antialiased;
      margin-right: 0.618em;
      content: "";
      text-decoration: none;
      color: #dc3545; }
  .woocommerce .woocommerce-widget-layered-nav-dropdown__submit {
    margin-top: 1em; }
  .woocommerce .widget_layered_nav_filters ul {
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none outside;
    overflow: hidden;
    zoom: 1; }
    .woocommerce .widget_layered_nav_filters ul li {
      float: left;
      padding: 0 1em 1px 1px;
      list-style: none; }
      .woocommerce .widget_layered_nav_filters ul li a {
        text-decoration: none; }
        .woocommerce .widget_layered_nav_filters ul li a::before {
          font-family: "WooCommerce";
          speak: never;
          font-weight: normal;
          font-variant: normal;
          text-transform: none;
          line-height: 1;
          -webkit-font-smoothing: antialiased;
          margin-right: 0.618em;
          content: "";
          text-decoration: none;
          color: #dc3545;
          vertical-align: inherit;
          margin-right: 0.5em; }
  .woocommerce .widget_price_filter .price_slider {
    margin-bottom: 1em; }
  .woocommerce .widget_price_filter .price_slider_amount {
    text-align: right;
    line-height: 2.4;
    font-size: 0.8751em; }
    .woocommerce .widget_price_filter .price_slider_amount .button {
      font-size: 1.15em;
      float: left; }
  .woocommerce .widget_price_filter .ui-slider {
    position: relative;
    text-align: left;
    margin-left: 0.5em;
    margin-right: 0.5em; }
  .woocommerce .widget_price_filter .ui-slider .ui-slider-handle {
    position: absolute;
    z-index: 2;
    width: 1em;
    height: 1em;
    background-color: #cd061d;
    border-radius: 1em;
    cursor: ew-resize;
    outline: none;
    top: -0.3em;
    /* rtl:ignore */
    margin-left: -0.5em; }
  .woocommerce .widget_price_filter .ui-slider .ui-slider-range {
    position: absolute;
    z-index: 1;
    font-size: 0.7em;
    display: block;
    border: 0;
    border-radius: 1em;
    background-color: #cd061d; }
  .woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content {
    border-radius: 1em;
    background-color: #380208;
    border: 0; }
  .woocommerce .widget_price_filter .ui-slider-horizontal {
    height: 0.5em; }
  .woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range {
    top: 0;
    height: 100%; }
  .woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range-min {
    left: -1px; }
  .woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range-max {
    right: -1px; }
  .woocommerce .widget_rating_filter ul {
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none outside; }
    .woocommerce .widget_rating_filter ul li {
      *zoom: 1;
      padding: 0 0 1px;
      list-style: none; }
      .woocommerce .widget_rating_filter ul li::before, .woocommerce .widget_rating_filter ul li::after {
        content: " ";
        display: table; }
      .woocommerce .widget_rating_filter ul li::after {
        clear: both; }
      .woocommerce .widget_rating_filter ul li a {
        padding: 1px 0;
        text-decoration: none; }
      .woocommerce .widget_rating_filter ul li .star-rating {
        float: none;
        display: inline-block; }
    .woocommerce .widget_rating_filter ul li.chosen a::before {
      font-family: "WooCommerce";
      speak: never;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      -webkit-font-smoothing: antialiased;
      margin-right: 0.618em;
      content: "";
      text-decoration: none;
      color: #dc3545; }
  .woocommerce .woocommerce-form-login .woocommerce-form-login__submit {
    float: left;
    margin-right: 1em; }
  .woocommerce .woocommerce-form-login .woocommerce-form-login__rememberme {
    display: inline-block; }

/**
 * Buttons
 */
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit,
:where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button,
:where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button,
:where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button,
:where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit {
  font-size: 100%;
  margin: 0;
  line-height: 1;
  cursor: pointer;
  position: relative;
  text-decoration: none;
  overflow: visible;
  padding: 0.618em 1em;
  font-weight: 700;
  border-radius: 3px;
  left: auto;
  color: white;
  background-color: #cd061d;
  border: 0;
  display: inline-block;
  background-image: none;
  box-shadow: none;
  text-shadow: none; }
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.loading,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.loading,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.loading,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.loading,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.loading,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.loading,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.loading,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.loading {
    opacity: 0.25;
    padding-right: 2.618em; }
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.loading::after,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.loading::after,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.loading::after,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.loading::after,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.loading::after,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.loading::after,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.loading::after,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.loading::after {
      font-family: "WooCommerce";
      content: "\e01c";
      vertical-align: top;
      font-weight: 400;
      position: absolute;
      top: 0.618em;
      right: 1em;
      animation: spin 2s linear infinite; }
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.added::after,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.added::after,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.added::after,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.added::after,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.added::after,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.added::after,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.added::after,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.added::after {
    font-family: "WooCommerce";
    content: "\e017";
    margin-left: 0.53em;
    vertical-align: bottom; }
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button:hover,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button:hover,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button:hover,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit:hover,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button:hover,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button:hover,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button:hover,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit:hover {
    background-color: #b40519;
    text-decoration: none;
    background-image: none;
    color: white; }
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.alt,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.alt,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.alt,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.alt {
    background-color: #cd061d;
    color: white;
    -webkit-font-smoothing: antialiased; }
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.alt:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.alt:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.alt:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.alt:hover {
      background-color: #b40519;
      color: white; }
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt.disabled, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:disabled, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:disabled[disabled], .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt.disabled:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:disabled:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:disabled[disabled]:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:disabled,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:disabled[disabled],
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:disabled:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:disabled[disabled]:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt.disabled,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:disabled,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:disabled[disabled],
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt.disabled:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:disabled:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:disabled[disabled]:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt.disabled,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:disabled,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:disabled[disabled],
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt.disabled:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:disabled:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:disabled[disabled]:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.alt.disabled,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.alt:disabled,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.alt:disabled[disabled],
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.alt.disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.alt:disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.alt:disabled[disabled]:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.alt.disabled,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.alt:disabled,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.alt:disabled[disabled],
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.alt.disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.alt:disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.alt:disabled[disabled]:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.alt.disabled,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.alt:disabled,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.alt:disabled[disabled],
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.alt.disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.alt:disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.alt:disabled[disabled]:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.alt.disabled,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.alt:disabled,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.alt:disabled[disabled],
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.alt.disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.alt:disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.alt:disabled[disabled]:hover {
      background-color: #cd061d;
      color: white; }
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button:disabled, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.disabled, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button:disabled[disabled],
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button:disabled,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.disabled,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button:disabled[disabled],
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button:disabled,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.disabled,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button:disabled[disabled],
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit:disabled,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.disabled,
  .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit:disabled[disabled],
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button:disabled,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.disabled,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button:disabled[disabled],
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button:disabled,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.disabled,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button:disabled[disabled],
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button:disabled,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.disabled,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button:disabled[disabled],
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit:disabled,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.disabled,
  :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit:disabled[disabled] {
    color: inherit;
    cursor: not-allowed;
    opacity: 0.5;
    padding: 0.618em 1em; }
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button:disabled:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.disabled:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button:disabled[disabled]:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button:disabled:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.disabled:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button:disabled[disabled]:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button:disabled:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.disabled:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button:disabled[disabled]:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit:disabled:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.disabled:hover,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit:disabled[disabled]:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button:disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button.disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce a.button:disabled[disabled]:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button:disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button.disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce button.button:disabled[disabled]:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button:disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button.disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce input.button:disabled[disabled]:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit:disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit.disabled:hover,
    :where(body:not(.woocommerce-block-theme-has-button-styles)) .woocommerce #respond input#submit:disabled[disabled]:hover {
      color: inherit;
      background-color: #cd061d; }

/**
 * WooCommerce specific styles for legacy themes.
 */
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) .woocommerce-breadcrumb {
  font-size: 0.92em;
  color: #000; }
  .woocommerce:where(body:not(.woocommerce-uses-block-theme)) .woocommerce-breadcrumb a {
    color: #000; }

.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product span.price,
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product p.price {
  color: #cd061d;
  font-size: 1.25em; }

.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product .stock {
  color: #cd061d; }

.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product .out-of-stock {
  color: red; }

.woocommerce:where(body:not(.woocommerce-uses-block-theme)) ul.products li.product .price {
  color: #cd061d; }

.woocommerce:where(body:not(.woocommerce-uses-block-theme)) #reviews #comments ol.commentlist li .meta {
  color: #000;
  font-size: 0.75em; }

.woocommerce-no-js form.woocommerce-form-login,
.woocommerce-no-js form.woocommerce-form-coupon {
  display: block !important; }

.woocommerce-no-js .woocommerce-form-login-toggle,
.woocommerce-no-js .woocommerce-form-coupon-toggle,
.woocommerce-no-js .showcoupon {
  display: none !important; }

.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  padding: 1em 2em 1em 3.5em;
  margin: 0 0 2em;
  position: relative;
  background-color: #e60721;
  color: white;
  border-top: 3px solid #cd061d;
  list-style: none outside;
  *zoom: 1;
  width: auto;
  word-wrap: break-word; }
  .woocommerce-message::before, .woocommerce-message::after,
  .woocommerce-error::before,
  .woocommerce-error::after,
  .woocommerce-info::before,
  .woocommerce-info::after {
    content: " ";
    display: table; }
  .woocommerce-message::after,
  .woocommerce-error::after,
  .woocommerce-info::after {
    clear: both; }
  .woocommerce-message::before,
  .woocommerce-error::before,
  .woocommerce-info::before {
    font-family: "WooCommerce";
    content: "\e028";
    display: inline-block;
    position: absolute;
    top: 1em;
    left: 1.5em; }
  .woocommerce-message .button,
  .woocommerce-error .button,
  .woocommerce-info .button {
    float: right; }
  .woocommerce-message li,
  .woocommerce-error li,
  .woocommerce-info li {
    list-style: none outside !important;
    padding-left: 0 !important;
    margin-left: 0 !important; }

/**
 * Right to left styles
 */
.rtl.woocommerce .price_label,
.rtl.woocommerce .price_label span {
  /* rtl:ignore */
  direction: ltr;
  unicode-bidi: embed; }

.woocommerce-message {
  border-top-color: #8fae1b; }
  .woocommerce-message::before {
    content: "\e015";
    color: #8fae1b; }

.woocommerce-info {
  border-top-color: #1e85be; }
  .woocommerce-info::before {
    color: #1e85be; }

.woocommerce-error {
  border-top-color: #b81c23; }
  .woocommerce-error::before {
    content: "\e016";
    color: #b81c23; }

/**
 * Account page
 */
.woocommerce-account .woocommerce {
  *zoom: 1; }
  .woocommerce-account .woocommerce::before, .woocommerce-account .woocommerce::after {
    content: " ";
    display: table; }
  .woocommerce-account .woocommerce::after {
    clear: both; }

.woocommerce-account .addresses .title {
  *zoom: 1; }
  .woocommerce-account .addresses .title::before, .woocommerce-account .addresses .title::after {
    content: " ";
    display: table; }
  .woocommerce-account .addresses .title::after {
    clear: both; }
  .woocommerce-account .addresses .title h3 {
    float: left; }
  .woocommerce-account .addresses .title .edit {
    float: right; }

.woocommerce-account ol.commentlist.notes li.note p.meta {
  font-weight: 700;
  margin-bottom: 0; }

.woocommerce-account ol.commentlist.notes li.note .description p:last-child {
  margin-bottom: 0; }

.woocommerce-account ul.digital-downloads {
  margin-left: 0;
  padding-left: 0; }
  .woocommerce-account ul.digital-downloads li {
    list-style: none;
    margin-left: 0;
    padding-left: 0; }
    .woocommerce-account ul.digital-downloads li::before {
      font-family: "WooCommerce";
      speak: never;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      -webkit-font-smoothing: antialiased;
      margin-right: 0.618em;
      content: "";
      text-decoration: none; }
    .woocommerce-account ul.digital-downloads li .count {
      float: right; }

/**
 * Cart/checkout page
 */
.woocommerce-cart table.cart .product-thumbnail,
.woocommerce-checkout table.cart .product-thumbnail,
#add_payment_method table.cart .product-thumbnail {
  min-width: 32px; }

.woocommerce-cart table.cart img,
.woocommerce-checkout table.cart img,
#add_payment_method table.cart img {
  width: 32px;
  box-shadow: none; }

.woocommerce-cart table.cart th,
.woocommerce-cart table.cart td,
.woocommerce-checkout table.cart th,
.woocommerce-checkout table.cart td,
#add_payment_method table.cart th,
#add_payment_method table.cart td {
  vertical-align: middle; }

.woocommerce-cart table.cart td.actions .coupon .input-text,
.woocommerce-checkout table.cart td.actions .coupon .input-text,
#add_payment_method table.cart td.actions .coupon .input-text {
  float: left;
  box-sizing: border-box;
  border: 1px solid #9b0516;
  padding: 6px 6px 5px;
  margin: 0 4px 0 0;
  outline: 0; }

.woocommerce-cart table.cart input,
.woocommerce-checkout table.cart input,
#add_payment_method table.cart input {
  margin: 0;
  vertical-align: middle; }

.woocommerce-cart .wc-proceed-to-checkout,
.woocommerce-checkout .wc-proceed-to-checkout,
#add_payment_method .wc-proceed-to-checkout {
  *zoom: 1;
  padding: 1em 0; }
  .woocommerce-cart .wc-proceed-to-checkout::before, .woocommerce-cart .wc-proceed-to-checkout::after,
  .woocommerce-checkout .wc-proceed-to-checkout::before,
  .woocommerce-checkout .wc-proceed-to-checkout::after,
  #add_payment_method .wc-proceed-to-checkout::before,
  #add_payment_method .wc-proceed-to-checkout::after {
    content: " ";
    display: table; }
  .woocommerce-cart .wc-proceed-to-checkout::after,
  .woocommerce-checkout .wc-proceed-to-checkout::after,
  #add_payment_method .wc-proceed-to-checkout::after {
    clear: both; }
  .woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
  .woocommerce-checkout .wc-proceed-to-checkout a.checkout-button,
  #add_payment_method .wc-proceed-to-checkout a.checkout-button {
    display: block;
    text-align: center;
    margin-bottom: 1em;
    font-size: 1.25em;
    padding: 1em; }

.woocommerce-cart .cart-collaterals .shipping-calculator-button,
.woocommerce-checkout .cart-collaterals .shipping-calculator-button,
#add_payment_method .cart-collaterals .shipping-calculator-button {
  float: none;
  margin-top: 0.5em;
  display: inline-block; }

.woocommerce-cart .cart-collaterals .shipping-calculator-button::after,
.woocommerce-checkout .cart-collaterals .shipping-calculator-button::after,
#add_payment_method .cart-collaterals .shipping-calculator-button::after {
  font-family: "WooCommerce";
  speak: never;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  margin-left: 0.618em;
  content: "";
  text-decoration: none; }

.woocommerce-cart .cart-collaterals .shipping-calculator-form,
.woocommerce-checkout .cart-collaterals .shipping-calculator-form,
#add_payment_method .cart-collaterals .shipping-calculator-form {
  margin: 1em 0 0 0; }

.woocommerce-cart .cart-collaterals .cart_totals p small,
.woocommerce-checkout .cart-collaterals .cart_totals p small,
#add_payment_method .cart-collaterals .cart_totals p small {
  color: #000;
  font-size: 0.83em; }

.woocommerce-cart .cart-collaterals .cart_totals table,
.woocommerce-checkout .cart-collaterals .cart_totals table,
#add_payment_method .cart-collaterals .cart_totals table {
  border-collapse: separate;
  margin: 0 0 6px;
  padding: 0; }
  .woocommerce-cart .cart-collaterals .cart_totals table tr:first-child th,
  .woocommerce-cart .cart-collaterals .cart_totals table tr:first-child td,
  .woocommerce-checkout .cart-collaterals .cart_totals table tr:first-child th,
  .woocommerce-checkout .cart-collaterals .cart_totals table tr:first-child td,
  #add_payment_method .cart-collaterals .cart_totals table tr:first-child th,
  #add_payment_method .cart-collaterals .cart_totals table tr:first-child td {
    border-top: 0; }
  .woocommerce-cart .cart-collaterals .cart_totals table th,
  .woocommerce-checkout .cart-collaterals .cart_totals table th,
  #add_payment_method .cart-collaterals .cart_totals table th {
    width: 35%; }
  .woocommerce-cart .cart-collaterals .cart_totals table td,
  .woocommerce-cart .cart-collaterals .cart_totals table th,
  .woocommerce-checkout .cart-collaterals .cart_totals table td,
  .woocommerce-checkout .cart-collaterals .cart_totals table th,
  #add_payment_method .cart-collaterals .cart_totals table td,
  #add_payment_method .cart-collaterals .cart_totals table th {
    vertical-align: top;
    border-left: 0;
    border-right: 0;
    line-height: 1.5em; }
  .woocommerce-cart .cart-collaterals .cart_totals table small,
  .woocommerce-checkout .cart-collaterals .cart_totals table small,
  #add_payment_method .cart-collaterals .cart_totals table small {
    color: #000; }
  .woocommerce-cart .cart-collaterals .cart_totals table select,
  .woocommerce-checkout .cart-collaterals .cart_totals table select,
  #add_payment_method .cart-collaterals .cart_totals table select {
    width: 100%; }

.woocommerce-cart .cart-collaterals .cart_totals .discount td,
.woocommerce-checkout .cart-collaterals .cart_totals .discount td,
#add_payment_method .cart-collaterals .cart_totals .discount td {
  color: #cd061d; }

.woocommerce-cart .cart-collaterals .cart_totals tr td,
.woocommerce-cart .cart-collaterals .cart_totals tr th,
.woocommerce-checkout .cart-collaterals .cart_totals tr td,
.woocommerce-checkout .cart-collaterals .cart_totals tr th,
#add_payment_method .cart-collaterals .cart_totals tr td,
#add_payment_method .cart-collaterals .cart_totals tr th {
  border-top: 1px solid #cd061d; }

.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-shipping-destination,
.woocommerce-checkout .cart-collaterals .cart_totals .woocommerce-shipping-destination,
#add_payment_method .cart-collaterals .cart_totals .woocommerce-shipping-destination {
  margin-bottom: 0; }

.woocommerce-cart .cart-collaterals .cross-sells ul.products li.product,
.woocommerce-checkout .cart-collaterals .cross-sells ul.products li.product,
#add_payment_method .cart-collaterals .cross-sells ul.products li.product {
  margin-top: 0; }

.woocommerce-cart .checkout .col-2 h3#ship-to-different-address,
.woocommerce-checkout .checkout .col-2 h3#ship-to-different-address,
#add_payment_method .checkout .col-2 h3#ship-to-different-address {
  float: left;
  clear: none; }

.woocommerce-cart .checkout .col-2 .notes,
.woocommerce-checkout .checkout .col-2 .notes,
#add_payment_method .checkout .col-2 .notes {
  clear: left; }

.woocommerce-cart .checkout .col-2 .form-row-first,
.woocommerce-checkout .checkout .col-2 .form-row-first,
#add_payment_method .checkout .col-2 .form-row-first {
  clear: left; }

.woocommerce-cart .checkout .create-account small,
.woocommerce-checkout .checkout .create-account small,
#add_payment_method .checkout .create-account small {
  font-size: 11px;
  color: #000;
  font-weight: normal; }

.woocommerce-cart .checkout div.shipping-address,
.woocommerce-checkout .checkout div.shipping-address,
#add_payment_method .checkout div.shipping-address {
  padding: 0;
  clear: left;
  width: 100%; }

.woocommerce-cart .checkout .shipping_address,
.woocommerce-checkout .checkout .shipping_address,
#add_payment_method .checkout .shipping_address {
  clear: both; }

.woocommerce-cart #payment,
.woocommerce-checkout #payment,
#add_payment_method #payment {
  background: #cd061d;
  border-radius: 5px; }
  .woocommerce-cart #payment ul.payment_methods,
  .woocommerce-checkout #payment ul.payment_methods,
  #add_payment_method #payment ul.payment_methods {
    *zoom: 1;
    text-align: left;
    padding: 1em;
    border-bottom: 1px solid #9b0516;
    margin: 0;
    list-style: none outside; }
    .woocommerce-cart #payment ul.payment_methods::before, .woocommerce-cart #payment ul.payment_methods::after,
    .woocommerce-checkout #payment ul.payment_methods::before,
    .woocommerce-checkout #payment ul.payment_methods::after,
    #add_payment_method #payment ul.payment_methods::before,
    #add_payment_method #payment ul.payment_methods::after {
      content: " ";
      display: table; }
    .woocommerce-cart #payment ul.payment_methods::after,
    .woocommerce-checkout #payment ul.payment_methods::after,
    #add_payment_method #payment ul.payment_methods::after {
      clear: both; }
    .woocommerce-cart #payment ul.payment_methods li,
    .woocommerce-checkout #payment ul.payment_methods li,
    #add_payment_method #payment ul.payment_methods li {
      line-height: 2;
      text-align: left;
      margin: 0;
      font-weight: normal; }
      .woocommerce-cart #payment ul.payment_methods li input,
      .woocommerce-checkout #payment ul.payment_methods li input,
      #add_payment_method #payment ul.payment_methods li input {
        margin: 0 1em 0 0; }
      .woocommerce-cart #payment ul.payment_methods li img,
      .woocommerce-checkout #payment ul.payment_methods li img,
      #add_payment_method #payment ul.payment_methods li img {
        vertical-align: middle;
        margin: -2px 0 0 0.5em;
        padding: 0;
        position: relative;
        box-shadow: none; }
      .woocommerce-cart #payment ul.payment_methods li img + img,
      .woocommerce-checkout #payment ul.payment_methods li img + img,
      #add_payment_method #payment ul.payment_methods li img + img {
        margin-left: 2px; }
    .woocommerce-cart #payment ul.payment_methods li:not(.woocommerce-notice),
    .woocommerce-checkout #payment ul.payment_methods li:not(.woocommerce-notice),
    #add_payment_method #payment ul.payment_methods li:not(.woocommerce-notice) {
      *zoom: 1; }
      .woocommerce-cart #payment ul.payment_methods li:not(.woocommerce-notice)::before, .woocommerce-cart #payment ul.payment_methods li:not(.woocommerce-notice)::after,
      .woocommerce-checkout #payment ul.payment_methods li:not(.woocommerce-notice)::before,
      .woocommerce-checkout #payment ul.payment_methods li:not(.woocommerce-notice)::after,
      #add_payment_method #payment ul.payment_methods li:not(.woocommerce-notice)::before,
      #add_payment_method #payment ul.payment_methods li:not(.woocommerce-notice)::after {
        content: " ";
        display: table; }
      .woocommerce-cart #payment ul.payment_methods li:not(.woocommerce-notice)::after,
      .woocommerce-checkout #payment ul.payment_methods li:not(.woocommerce-notice)::after,
      #add_payment_method #payment ul.payment_methods li:not(.woocommerce-notice)::after {
        clear: both; }
  .woocommerce-cart #payment div.form-row,
  .woocommerce-checkout #payment div.form-row,
  #add_payment_method #payment div.form-row {
    padding: 1em; }
  .woocommerce-cart #payment div.payment_box,
  .woocommerce-checkout #payment div.payment_box,
  #add_payment_method #payment div.payment_box {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    padding: 1em;
    margin: 1em 0;
    font-size: 0.92em;
    border-radius: 2px;
    line-height: 1.5;
    background-color: #b40519;
    color: white; }
    .woocommerce-cart #payment div.payment_box input.input-text,
    .woocommerce-cart #payment div.payment_box textarea,
    .woocommerce-checkout #payment div.payment_box input.input-text,
    .woocommerce-checkout #payment div.payment_box textarea,
    #add_payment_method #payment div.payment_box input.input-text,
    #add_payment_method #payment div.payment_box textarea {
      border-color: #830412;
      border-top-color: #6a030f; }
    .woocommerce-cart #payment div.payment_box ::-webkit-input-placeholder,
    .woocommerce-checkout #payment div.payment_box ::-webkit-input-placeholder,
    #add_payment_method #payment div.payment_box ::-webkit-input-placeholder {
      color: #6a030f; }
    .woocommerce-cart #payment div.payment_box :-moz-placeholder,
    .woocommerce-checkout #payment div.payment_box :-moz-placeholder,
    #add_payment_method #payment div.payment_box :-moz-placeholder {
      color: #6a030f; }
    .woocommerce-cart #payment div.payment_box :-ms-input-placeholder,
    .woocommerce-checkout #payment div.payment_box :-ms-input-placeholder,
    #add_payment_method #payment div.payment_box :-ms-input-placeholder {
      color: #6a030f; }
    .woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods,
    .woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods,
    #add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods {
      list-style: none outside;
      margin: 0; }
      .woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token,
      .woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new,
      .woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token,
      .woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new,
      #add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token,
      #add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new {
        margin: 0 0 0.5em; }
        .woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token label,
        .woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new label,
        .woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token label,
        .woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new label,
        #add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-token label,
        #add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-new label {
          cursor: pointer; }
      .woocommerce-cart #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-tokenInput,
      .woocommerce-checkout #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-tokenInput,
      #add_payment_method #payment div.payment_box .woocommerce-SavedPaymentMethods .woocommerce-SavedPaymentMethods-tokenInput {
        vertical-align: middle;
        margin: -3px 1em 0 0;
        position: relative; }
    .woocommerce-cart #payment div.payment_box .wc-credit-card-form,
    .woocommerce-checkout #payment div.payment_box .wc-credit-card-form,
    #add_payment_method #payment div.payment_box .wc-credit-card-form {
      border: 0;
      padding: 0;
      margin: 1em 0 0; }
    .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number,
    .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry,
    .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc,
    .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number,
    .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry,
    .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc,
    #add_payment_method #payment div.payment_box .wc-credit-card-form-card-number,
    #add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry,
    #add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc {
      font-size: 1.5em;
      padding: 8px;
      background-repeat: no-repeat;
      background-position: right 0.618em center;
      background-size: 32px 20px; }
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.visa,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.visa,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.visa,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.visa,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.visa,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.visa,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.visa,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.visa,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.visa {
        background-image: url("../images/icons/credit-cards/visa.svg"); }
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.mastercard,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.mastercard,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.mastercard,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.mastercard,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.mastercard,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.mastercard,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.mastercard,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.mastercard,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.mastercard {
        background-image: url("../images/icons/credit-cards/mastercard.svg"); }
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.laser,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.laser,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.laser,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.laser,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.laser,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.laser,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.laser,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.laser,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.laser {
        background-image: url("../images/icons/credit-cards/laser.svg"); }
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.dinersclub,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.dinersclub,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.dinersclub,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.dinersclub,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.dinersclub,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.dinersclub,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.dinersclub,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.dinersclub,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.dinersclub {
        background-image: url("../images/icons/credit-cards/diners.svg"); }
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.maestro,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.maestro,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.maestro,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.maestro,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.maestro,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.maestro,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.maestro,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.maestro,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.maestro {
        background-image: url("../images/icons/credit-cards/maestro.svg"); }
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.jcb,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.jcb,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.jcb,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.jcb,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.jcb,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.jcb,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.jcb,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.jcb,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.jcb {
        background-image: url("../images/icons/credit-cards/jcb.svg"); }
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.amex,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.amex,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.amex,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.amex,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.amex,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.amex,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.amex,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.amex,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.amex {
        background-image: url("../images/icons/credit-cards/amex.svg"); }
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-number.discover,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-expiry.discover,
      .woocommerce-cart #payment div.payment_box .wc-credit-card-form-card-cvc.discover,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.discover,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.discover,
      .woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.discover,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-number.discover,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-expiry.discover,
      #add_payment_method #payment div.payment_box .wc-credit-card-form-card-cvc.discover {
        background-image: url("../images/icons/credit-cards/discover.svg"); }
    .woocommerce-cart #payment div.payment_box span.help,
    .woocommerce-checkout #payment div.payment_box span.help,
    #add_payment_method #payment div.payment_box span.help {
      font-size: 0.857em;
      color: #000;
      font-weight: normal; }
    .woocommerce-cart #payment div.payment_box .form-row,
    .woocommerce-checkout #payment div.payment_box .form-row,
    #add_payment_method #payment div.payment_box .form-row {
      margin: 0 0 1em; }
    .woocommerce-cart #payment div.payment_box p:last-child,
    .woocommerce-checkout #payment div.payment_box p:last-child,
    #add_payment_method #payment div.payment_box p:last-child {
      margin-bottom: 0; }
    .woocommerce-cart #payment div.payment_box::before,
    .woocommerce-checkout #payment div.payment_box::before,
    #add_payment_method #payment div.payment_box::before {
      content: "";
      display: block;
      border: 1em solid #b40519;
      /* arrow size / color */
      border-right-color: transparent;
      border-left-color: transparent;
      border-top-color: transparent;
      position: absolute;
      top: -0.75em;
      left: 0;
      margin: -1em 0 0 2em; }
  .woocommerce-cart #payment .payment_method_paypal .about_paypal,
  .woocommerce-checkout #payment .payment_method_paypal .about_paypal,
  #add_payment_method #payment .payment_method_paypal .about_paypal {
    float: right;
    line-height: 52px;
    font-size: 0.83em; }
  .woocommerce-cart #payment .payment_method_paypal img,
  .woocommerce-checkout #payment .payment_method_paypal img,
  #add_payment_method #payment .payment_method_paypal img {
    max-height: 52px;
    vertical-align: middle; }

.woocommerce-terms-and-conditions {
  border: 1px solid rgba(0, 0, 0, 0.2);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  background: rgba(0, 0, 0, 0.05); }

.woocommerce-invalid #terms {
  outline: 2px solid red;
  outline-offset: 2px; }

/**
 * Password strength meter
 */
.woocommerce-password-strength {
  text-align: center;
  font-weight: 600;
  padding: 3px 0.5em;
  font-size: 1em; }
  .woocommerce-password-strength.strong {
    background-color: #c1e1b9;
    border-color: #83c373; }
  .woocommerce-password-strength.short {
    background-color: #f1adad;
    border-color: #e35b5b; }
  .woocommerce-password-strength.bad {
    background-color: #fbc5a9;
    border-color: #f78b53; }
  .woocommerce-password-strength.good {
    background-color: #ffe399;
    border-color: #ffc733; }

.woocommerce-password-hint {
  margin: 0.5em 0 0;
  display: block; }

/**
 * Twenty Eleven specific styles
 */
#content.twentyeleven .woocommerce-pagination a {
  font-size: 1em;
  line-height: 1; }

/**
 * Twenty Thirteen specific styles
 */
.single-product .twentythirteen .entry-summary,
.single-product .twentythirteen #reply-title,
.single-product .twentythirteen #respond #commentform {
  padding: 0; }

.single-product .twentythirteen p.stars {
  clear: both; }

.twentythirteen .woocommerce-breadcrumb {
  padding-top: 40px; }

/**
 * Twenty Fourteen specific styles
 */
.twentyfourteen ul.products li.product {
  margin-top: 0 !important; }

/**
 * Twenty Sixteen specific styles
 */
body:not(.search-results) .twentysixteen .entry-summary {
  color: inherit;
  font-size: inherit;
  line-height: inherit; }

.twentysixteen .price ins {
  background: inherit;
  color: inherit; }

#coming-soon-footer-banner {
  width: 100%;
  height: 56px;
  background: #fff;
  position: fixed;
  display: flex;
  font-size: 13px;
  bottom: 0;
  justify-content: center;
  align-items: center;
  border-top: 1px solid #dcdcdc; }
  #coming-soon-footer-banner a {
    color: #3858E9;
    text-decoration: none; }
  #coming-soon-footer-banner a.coming-soon-footer-banner-dismiss {
    background-image: url('data:image/svg+xml,<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4995 13.0602L16.2118 16.7725L17.2725 15.7118L13.5602 11.9995L17.2725 8.28723L16.2119 7.22657L12.4995 10.9389L8.78722 7.22656L7.72656 8.28722L11.4389 11.9995L7.72657 15.7119L8.78723 16.7725L12.4995 13.0602Z" fill="%23757575"/></svg>');
    width: 24px;
    height: 24px;
    cursor: pointer;
    position: absolute;
    right: 20px; }

.woocommerce-account .woocommerce-Button {
  color: #fff !important; }

.woocommerce-account .col2-set {
  display: flex; }
  @media (max-width: 47.97rem) {
    .woocommerce-account .col2-set {
      display: block; } }
  .woocommerce-account .col2-set > div {
    width: 50%; }
    @media (max-width: 47.97rem) {
      .woocommerce-account .col2-set > div {
        width: 100%; } }

.woocommerce-account .title h3 {
  float: none !important; }

.woocommerce-account .title .edit {
  float: none !important; }

.woocommerce-button {
  color: #fff !important; }

.woocommerce-form-login button {
  color: #fff !important; }

.woocommerce-MyAccount-navigation {
  margin-top: 50px;
  margin-bottom: 4rem; }
  .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link.woocommerce-MyAccount-navigation-link--downloads {
    display: none; }
  @media (max-width: 47.97rem) {
    .woocommerce-MyAccount-navigation ul {
      list-style: none;
      padding: 1rem;
      padding-left: 0;
      text-align: center;
      background: #eee; }
      .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link {
        display: inline-block; }
        .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link + li:before {
          content: "/";
          display: inline-block;
          margin: 0 1rem; }
        .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link.woocommerce-MyAccount-navigation-link--customer-logout {
          display: block;
          text-align: right; }
          .woocommerce-MyAccount-navigation ul .woocommerce-MyAccount-navigation-link.woocommerce-MyAccount-navigation-link--customer-logout:before {
            content: none; } }
  @media (min-width: 64rem) {
    .woocommerce-MyAccount-navigation {
      width: 30%;
      float: left;
      background: #eee;
      padding: 2rem 1.4rem; } }

.woocommerce-MyAccount-content {
  margin-top: 50px; }
  @media (min-width: 64rem) {
    .woocommerce-MyAccount-content {
      width: 65%;
      float: right; } }

.custom-qty-button {
  flex-wrap: nowrap !important; }
  @media (max-width: 24.98rem) {
    .custom-qty-button .custom-qty-button {
      justify-content: center; } }
  .custom-qty-button .plus,
  .custom-qty-button .minus {
    padding: 0.6em 1em;
    border: 1px solid #cd061d;
    border-radius: 0; }
  .custom-qty-button .minus {
    border-right: none;
    border-top-left-radius: 50%;
    border-bottom-left-radius: 50%; }
  .custom-qty-button .plus {
    border-left: none;
    border-top-right-radius: 50%;
    border-bottom-right-radius: 50%; }
  .custom-qty-button .quantity {
    margin: 0 !important; }
    .custom-qty-button .quantity .qty {
      -moz-appearance: textfield;
      appearance: textfield;
      border-radius: 0;
      border: 1px solid #cd061d;
      border-left: none;
      border-right: none;
      padding: 0.6em 1em; }
      .custom-qty-button .quantity .qty::-webkit-inner-spin-button, .custom-qty-button .quantity .qty::-webkit-outer-spin-button {
        -webkit-appearance: none;
        margin: 0; }

.woocommerce ul.products {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px; }
  .woocommerce ul.products::before, .woocommerce ul.products::after {
    content: none; }
  .woocommerce ul.products li.product a:not(.button) {
    color: black; }
  @media (min-width: 47.99rem) {
    .woocommerce ul.products.columns-2 li.product {
      width: calc(50% - 20px); } }
  @media (min-width: 47.99rem) {
    .woocommerce ul.products.columns-3 li.product {
      width: calc(33% - 20px); } }
  @media (min-width: 47.99rem) {
    .woocommerce ul.products.columns-4 li.product {
      width: calc(25% - 20px); } }
  @media (min-width: 47.99rem) {
    .woocommerce ul.products.columns-5 li.product {
      width: calc(20% - 20px); } }
  @media (min-width: 64rem) {
    .woocommerce ul.products.columns-6 li.product {
      width: calc(16% - 20px); } }

.woocommerce .woocommerce-breadcrumb {
  margin-top: 50px;
  padding: 20px 0;
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd; }

.woocommerce .woocommerce-message {
  background-color: #eee;
  border-color: #cd061d;
  color: black; }
  .woocommerce .woocommerce-message .button {
    color: #fff; }
    .woocommerce .woocommerce-message .button:hover {
      color: #fff; }

.woocommerce select {
  font-weight: 600;
  color: #212529;
  text-align: center;
  border: 1px solid #85bf98;
  padding: 0.8rem 2rem 0.8rem 1.2rem;
  font-size: 16px;
  line-height: 1.5;
  border-radius: 0;
  border: 1px solid #cd061d;
  background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 2rem center/8px 10px no-repeat;
  appearance: none; }

.woocommerce .before-shop-loop {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  padding-bottom: 1.4rem;
  border-bottom: 2px solid #F8F8F8;
  margin-bottom: 50px; }
  .woocommerce .before-shop-loop .woocommerce-notices-wrapper {
    width: 100%; }
  @media (min-width: 47.99rem) {
    .woocommerce .before-shop-loop .woocommerce-result-count {
      margin-bottom: 0; } }

.woocommerce .woocommerce-archive-sidebar {
  position: sticky; }
  .woocommerce .woocommerce-archive-sidebar .sidebar-title {
    margin-right: auto;
    flex-grow: 1; }
    @media (max-width: 47.97rem) {
      .woocommerce .woocommerce-archive-sidebar .sidebar-title {
        width: 100%; } }
  .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget {
    position: relative; }
    .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_head {
      border: 1px solid #cd061d;
      margin-bottom: 5px; }
      .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_head h3 {
        font-size: 16px;
        font-weight: 600;
        margin-bottom: 10px;
        padding-left: 10px; }
      .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_head.bapf_colaps_togl {
        cursor: pointer; }
      .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_head .bapf_colaps_smb {
        font-size: 13px;
        right: 10px; }
    .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_ckbox label,
    .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_slidr label {
      margin-bottom: 0; }
    .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_ckbox .bapf_body,
    .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_slidr .bapf_body {
      z-index: 1;
      background-color: #fff;
      border: 1px solid #cd061d;
      border-radius: 4px;
      margin-bottom: 30px;
      min-width: 250px;
      padding: 1.2rem 1rem;
      box-shadow: 0 2px 8px -6px #000;
      max-height: 215px;
      overflow: auto; }
      .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_ckbox .bapf_body ul,
      .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_slidr .bapf_body ul {
        padding-left: 0; }
        .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_ckbox .bapf_body ul li,
        .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_slidr .bapf_body ul li {
          margin-bottom: 0.6rem !important; }
    .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_ckbox.bapf_ccolaps .bapf_head,
    .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_slidr.bapf_ccolaps .bapf_head {
      background: rgba(205, 6, 29, 0.2); }
    .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_sfilter {
      margin-bottom: 0;
      position: relative; }
      .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_sfilter.bapf_button_berocket {
        margin-bottom: 1.6rem;
        text-align: center; }
        .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .bapf_sfilter.bapf_button_berocket .bapf_button {
          background-color: #cd061d;
          font-size: 1.4rem;
          padding: 6px 28px; }
    .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .irs.irs--flat .irs-from,
    .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .irs.irs--flat .irs-single,
    .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .irs.irs--flat .irs-to {
      background: #cd061d; }
      .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .irs.irs--flat .irs-from:before,
      .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .irs.irs--flat .irs-single:before,
      .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .irs.irs--flat .irs-to:before {
        border-top-color: #cd061d; }
    .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .irs.irs--flat .irs-bar {
      background: #cd061d; }
    .woocommerce .woocommerce-archive-sidebar .berocket_single_filter_widget .irs.irs--flat .irs-handle > i:first-child {
      background: #cd061d; }

.woocommerce .products-list .product-item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  background: #fff;
  box-shadow: 0 2px 8px -6px #000;
  margin-bottom: 2rem; }
  .woocommerce .products-list .product-item .media-content {
    padding: 20px 20px 40px; }
    .woocommerce .products-list .product-item .media-content .entry-title {
      font-size: 20px;
      margin-bottom: 1.2rem; }
    .woocommerce .products-list .product-item .media-content .price {
      display: flex;
      align-items: center;
      margin-top: 1.6rem; }
      @media (max-width: 47.97rem) {
        .woocommerce .products-list .product-item .media-content .price {
          margin: 1.4rem 0; } }
      .woocommerce .products-list .product-item .media-content .price del,
      .woocommerce .products-list .product-item .media-content .price ins {
        display: block;
        margin-right: 20px; }
      .woocommerce .products-list .product-item .media-content .price ins {
        text-decoration: none; }
      .woocommerce .products-list .product-item .media-content .price .woocommerce-Price-amount {
        font-size: 18px;
        color: #000;
        font-weight: 600; }
      .woocommerce .products-list .product-item .media-content .price .woocommerce-price-suffix {
        display: block;
        margin: 0 0 0 10px; }
      .woocommerce .products-list .product-item .media-content .price del .woocommerce-Price-amount {
        color: black;
        font-weight: normal; }
  .woocommerce .products-list .product-item .button.product_type_simple,
  .woocommerce .products-list .product-item .button.product_type_variable,
  .woocommerce .products-list .product-item .button.product_type_grouped {
    background: #cd061d !important;
    color: #fff;
    margin-top: 20px; }
    .woocommerce .products-list .product-item .button.product_type_simple.btn-loading,
    .woocommerce .products-list .product-item .button.product_type_variable.btn-loading,
    .woocommerce .products-list .product-item .button.product_type_grouped.btn-loading {
      pointer-events: none;
      opacity: 0.6; }
    .woocommerce .products-list .product-item .button.product_type_simple.added:after,
    .woocommerce .products-list .product-item .button.product_type_variable.added:after,
    .woocommerce .products-list .product-item .button.product_type_grouped.added:after {
      display: none; }
    .woocommerce .products-list .product-item .button.product_type_simple + .added_to_cart,
    .woocommerce .products-list .product-item .button.product_type_variable + .added_to_cart,
    .woocommerce .products-list .product-item .button.product_type_grouped + .added_to_cart {
      position: absolute;
      white-space: nowrap;
      width: 100%;
      box-shadow: 0px 0px 6px -2px rgba(0, 0, 0, 0.4);
      text-align: center;
      display: inline-block;
      background: #fff;
      padding: 2rem;
      top: 60%;
      left: 0;
      z-index: 2; }
      @media (min-width: 47.99rem) {
        .woocommerce .products-list .product-item .button.product_type_simple + .added_to_cart,
        .woocommerce .products-list .product-item .button.product_type_variable + .added_to_cart,
        .woocommerce .products-list .product-item .button.product_type_grouped + .added_to_cart {
          transform: translateY(-50%); } }
    .woocommerce .products-list .product-item .button.product_type_simple.add_to_cart_button:before,
    .woocommerce .products-list .product-item .button.product_type_variable.add_to_cart_button:before,
    .woocommerce .products-list .product-item .button.product_type_grouped.add_to_cart_button:before {
      background-image: url("../icons/icon-cart-white.svg"); }
  .woocommerce .products-list .product-item .star-rating {
    margin: 12px 0px 20px !important; }

.woocommerce .product-single-container {
  padding: 4rem 0 6rem; }
  .woocommerce .product-single-container .product .summary {
    width: 100% !important;
    float: none !important; }
  .woocommerce .product-single-container .product .woocommerce-product-gallery {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    margin-right: 30px; }
    @media (max-width: 63.98rem) {
      .woocommerce .product-single-container .product .woocommerce-product-gallery {
        justify-content: center; } }
    @media (max-width: 47.97rem) {
      .woocommerce .product-single-container .product .woocommerce-product-gallery {
        flex-direction: column; } }
    @media (min-width: 47.99rem) {
      .woocommerce .product-single-container .product .woocommerce-product-gallery .flex-viewport {
        width: calc(100% - 150px); } }
    .woocommerce .product-single-container .product .woocommerce-product-gallery .flex-control-thumbs {
      display: flex;
      padding-top: 20px; }
      @media (min-width: 47.99rem) {
        .woocommerce .product-single-container .product .woocommerce-product-gallery .flex-control-thumbs {
          width: 120px;
          display: flex;
          flex-direction: column; } }
      @media (max-width: 63.98rem) {
        .woocommerce .product-single-container .product .woocommerce-product-gallery .flex-control-thumbs {
          padding-right: 20px; } }
      @media (max-width: 47.97rem) {
        .woocommerce .product-single-container .product .woocommerce-product-gallery .flex-control-thumbs {
          padding-right: 20px;
          padding-right: 0;
          gap: 10px; } }
      .woocommerce .product-single-container .product .woocommerce-product-gallery .flex-control-thumbs li {
        width: 100%;
        margin-bottom: 0.6rem; }
        @media (max-width: 29.98rem) {
          .woocommerce .product-single-container .product .woocommerce-product-gallery .flex-control-thumbs li {
            padding: 1vw; } }
        .woocommerce .product-single-container .product .woocommerce-product-gallery .flex-control-thumbs li img {
          height: auto;
          border-radius: 12px;
          border: 2px solid transparent; }
          @media (min-width: 47.99rem) {
            .woocommerce .product-single-container .product .woocommerce-product-gallery .flex-control-thumbs li img {
              width: 100%; } }
          .woocommerce .product-single-container .product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
            border-color: #cd061d; }
  .woocommerce .product-single-container .product .product_title {
    font-size: 30px;
    margin-bottom: 20px; }
  .woocommerce .product-single-container .product .price {
    display: block;
    color: #000; }
    .woocommerce .product-single-container .product .price .woocommerce-price-suffix {
      margin: 0 0 0 10px; }
    .woocommerce .product-single-container .product .price ins {
      text-decoration: none; }
    .woocommerce .product-single-container .product .price .woocommerce-Price-amount {
      font-size: 25px;
      font-weight: 600;
      color: #000; }
    .woocommerce .product-single-container .product .price del .woocommerce-Price-amount {
      font-size: 20px;
      font-weight: normal;
      color: #000; }
  .woocommerce .product-single-container .product .product_meta .sku_wrapper {
    display: none; }
  .woocommerce .product-single-container .product .stock {
    font-weight: bold;
    font-size: 20px;
    text-transform: uppercase;
    text-align: right; }
    .woocommerce .product-single-container .product .stock span {
      display: block; }
    .woocommerce .product-single-container .product .stock.out-of-stock {
      color: #dc3545; }
    .woocommerce .product-single-container .product .stock.in-stock span:first-child {
      color: #cd061d; }
  .woocommerce .product-single-container .product .woocommerce-product-attributes .woocommerce-product-attributes-item__value {
    padding: 0 10px; }
  @media (max-width: 24.98rem) {
    .woocommerce .product-single-container .product .cart {
      flex-wrap: wrap;
      justify-content: center; } }
  .woocommerce .product-single-container .product .cart .single_add_to_cart_button {
    white-space: nowrap;
    margin-top: 20px; }
    @media (max-width: 24.98rem) {
      .woocommerce .product-single-container .product .cart .single_add_to_cart_button {
        float: none; } }
    .woocommerce .product-single-container .product .cart .single_add_to_cart_button.loading {
      opacity: 0.25;
      padding-right: 2.618em; }
      .woocommerce .product-single-container .product .cart .single_add_to_cart_button.loading::after {
        font-family: "WooCommerce";
        content: "\e01c";
        vertical-align: top;
        font-weight: 400;
        position: absolute;
        top: 0.618em;
        right: 1em;
        animation: spin 2s linear infinite; }
  .woocommerce .product-single-container .product .cart.variations_form {
    display: block;
    text-align: left; }
    .woocommerce .product-single-container .product .cart.variations_form .reset_variations {
      float: left; }
    .woocommerce .product-single-container .product .cart.variations_form .variations tr {
      border: 0;
      padding: 0; }
      .woocommerce .product-single-container .product .cart.variations_form .variations tr th {
        display: block; }
      .woocommerce .product-single-container .product .cart.variations_form .variations tr td {
        padding: 0;
        vertical-align: middle; }
        .woocommerce .product-single-container .product .cart.variations_form .variations tr td.label {
          max-width: 40%;
          text-align: left; }
        .woocommerce .product-single-container .product .cart.variations_form .variations tr td.value {
          display: flex;
          align-items: center; }
          .woocommerce .product-single-container .product .cart.variations_form .variations tr td.value select {
            margin-right: 1em;
            padding-left: 2rem;
            padding-right: 3rem;
            min-width: auto; }
    .woocommerce .product-single-container .product .cart.variations_form .single_variation_wrap .custom-qty-button {
      margin-top: 30px !important; }
    .woocommerce .product-single-container .product .cart.variations_form .single_variation_wrap .stock {
      display: block; }
      .woocommerce .product-single-container .product .cart.variations_form .single_variation_wrap .stock.in-stock {
        color: #198754; }
      .woocommerce .product-single-container .product .cart.variations_form .single_variation_wrap .stock.out-of-stock {
        color: #dc3545; }
    .woocommerce .product-single-container .product .cart.variations_form .single_variation_wrap .woocommerce-variation-description {
      display: none; }
  .woocommerce .product-single-container .product .woocommerce-tabs ul.tabs li a {
    color: #fff !important; }
    .woocommerce .product-single-container .product .woocommerce-tabs ul.tabs li a:hover {
      color: #fff !important; }
  .woocommerce .product-single-container .product .woocommerce-tabs ul.tabs li.active a {
    color: #cd061d !important; }
    .woocommerce .product-single-container .product .woocommerce-tabs ul.tabs li.active a:hover {
      color: #cd061d !important; }
  .woocommerce .product-single-container .product .related {
    padding-top: 50px; }
    .woocommerce .product-single-container .product .related h2 {
      margin-bottom: 4rem; }
    @media (max-width: 47.97rem) {
      .woocommerce .product-single-container .product .related .products {
        flex-direction: column;
        align-items: center; } }
    .woocommerce .product-single-container .product .related .products .product {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      background: #fff;
      box-shadow: 0 2px 8px -6px #000;
      margin-bottom: 2rem; }
      .woocommerce .product-single-container .product .related .products .product .woocommerce-loop-product__title {
        font-size: 20px;
        margin-bottom: 0;
        padding-left: 20px;
        padding-right: 20px; }
      .woocommerce .product-single-container .product .related .products .product .price {
        padding-left: 20px;
        padding-right: 20px;
        display: block; }
        @media (max-width: 47.97rem) {
          .woocommerce .product-single-container .product .related .products .product .price {
            margin: 1.4rem 0; } }
        .woocommerce .product-single-container .product .related .products .product .price del,
        .woocommerce .product-single-container .product .related .products .product .price ins {
          display: block; }
        .woocommerce .product-single-container .product .related .products .product .price ins {
          text-decoration: none; }
        .woocommerce .product-single-container .product .related .products .product .price .woocommerce-Price-amount {
          font-size: 18px;
          color: #000;
          font-weight: 600; }
        .woocommerce .product-single-container .product .related .products .product .price .woocommerce-price-suffix {
          display: block; }
        .woocommerce .product-single-container .product .related .products .product .price del .woocommerce-Price-amount {
          font-size: 1rem;
          color: #000;
          font-weight: normal; }
      .woocommerce .product-single-container .product .related .products .product .button.product_type_simple,
      .woocommerce .product-single-container .product .related .products .product .button.product_type_variable,
      .woocommerce .product-single-container .product .related .products .product .button.product_type_grouped {
        background: #cd061d !important;
        color: #fff;
        margin: 20px; }
        .woocommerce .product-single-container .product .related .products .product .button.product_type_simple.btn-loading,
        .woocommerce .product-single-container .product .related .products .product .button.product_type_variable.btn-loading,
        .woocommerce .product-single-container .product .related .products .product .button.product_type_grouped.btn-loading {
          pointer-events: none;
          opacity: 0.6; }
        .woocommerce .product-single-container .product .related .products .product .button.product_type_simple.added:after,
        .woocommerce .product-single-container .product .related .products .product .button.product_type_variable.added:after,
        .woocommerce .product-single-container .product .related .products .product .button.product_type_grouped.added:after {
          display: none; }
        .woocommerce .product-single-container .product .related .products .product .button.product_type_simple + .added_to_cart,
        .woocommerce .product-single-container .product .related .products .product .button.product_type_variable + .added_to_cart,
        .woocommerce .product-single-container .product .related .products .product .button.product_type_grouped + .added_to_cart {
          position: absolute;
          white-space: nowrap;
          width: 100%;
          box-shadow: 0px 0px 6px -2px rgba(0, 0, 0, 0.4);
          text-align: center;
          display: inline-block;
          background: #fff;
          padding: 2rem;
          top: 60%;
          left: 0;
          z-index: 2; }
          @media (min-width: 47.99rem) {
            .woocommerce .product-single-container .product .related .products .product .button.product_type_simple + .added_to_cart,
            .woocommerce .product-single-container .product .related .products .product .button.product_type_variable + .added_to_cart,
            .woocommerce .product-single-container .product .related .products .product .button.product_type_grouped + .added_to_cart {
              left: auto;
              transform: translateY(-50%); } }
        .woocommerce .product-single-container .product .related .products .product .button.product_type_simple.add_to_cart_button:before,
        .woocommerce .product-single-container .product .related .products .product .button.product_type_variable.add_to_cart_button:before,
        .woocommerce .product-single-container .product .related .products .product .button.product_type_grouped.add_to_cart_button:before {
          background-image: url("../icons/icon-cart-white.svg"); }
      .woocommerce .product-single-container .product .related .products .product .star-rating {
        margin: 12px 20px 20px !important; }

.woocommerce .return-to-shop a {
  color: #fff; }
  .woocommerce .return-to-shop a:hover {
    color: #fff; }

.woocommerce .woocommerce-info::before {
  color: #cd061d; }

.woocommerce .star-rating span::before {
  color: #cd061d; }

.woocommerce .star-rating::before {
  color: #cd061d; }

.woocommerce .woocommerce-Reviews .woocommerce-Reviews-title {
  font-size: 1.6rem;
  margin-bottom: 1.5rem; }

.woocommerce .woocommerce-Reviews#reviews #comments ol.commentlist li img.avatar {
  border: none; }

.woocommerce .woocommerce-Reviews .comment-reply-title {
  font-weight: bold;
  display: block;
  margin-bottom: 1rem; }

.woocommerce .woocommerce-Reviews .comment-form-rating .stars {
  display: inline-block;
  margin-left: 22px !important;
  margin-bottom: 0 !important; }

.woocommerce-cart .woocommerce-info {
  margin-top: 50px;
  background-color: #eee;
  color: black;
  border-color: #cd061d; }

.woocommerce-cart .woocommerce-cart-form {
  padding-top: 50px; }
  .woocommerce-cart .woocommerce-cart-form table tr td {
    border: 0;
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd; }
    @media (max-width: 47.97rem) {
      .woocommerce-cart .woocommerce-cart-form table tr td {
        display: block; } }
  .woocommerce-cart .woocommerce-cart-form .shop_table {
    margin-top: 4rem;
    margin-bottom: 6rem; }
    @media (max-width: 47.97rem) {
      .woocommerce-cart .woocommerce-cart-form .shop_table {
        display: block; } }
    @media (max-width: 47.97rem) {
      .woocommerce-cart .woocommerce-cart-form .shop_table tbody {
        display: block; } }
    .woocommerce-cart .woocommerce-cart-form .shop_table tr.cart_item td {
      font-size: 18px; }
    .woocommerce-cart .woocommerce-cart-form .shop_table tr.cart_item .product-thumbnail a img {
      width: 70px;
      height: auto; }
    @media (max-width: 47.97rem) {
      .woocommerce-cart .woocommerce-cart-form .shop_table tr.cart_item .product-quantity .custom-qty-button {
        justify-content: flex-end; } }
    .woocommerce-cart .woocommerce-cart-form .shop_table tr.cart_item .product-quantity .quantity .qty {
      padding: 8px 10px; }
  .woocommerce-cart .woocommerce-cart-form .actions .coupon {
    display: inline-block; }
    @media (max-width: 47.97rem) {
      .woocommerce-cart .woocommerce-cart-form .actions .coupon #coupon_code {
        float: none; } }
  .woocommerce-cart .woocommerce-cart-form .actions button {
    display: inline-block;
    color: #fff !important; }
    .woocommerce-cart .woocommerce-cart-form .actions button[name="update_cart"] {
      float: right; }

.woocommerce-cart .cart_totals td {
  border-bottom: 0; }

.woocommerce-cart .cart_totals .shop_table {
  margin-top: 30px !important; }

.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  color: #fff !important; }

.woocommerce-checkout button {
  color: #fff !important; }

.woocommerce-checkout .woocommerce-info {
  margin-top: 50px;
  background-color: #eee;
  color: black;
  border-color: #cd061d; }

.woocommerce-checkout form.woocommerce-checkout h3 {
  border: 0;
  margin-bottom: 0; }

.woocommerce-checkout form.woocommerce-checkout .col2-set {
  display: flex;
  flex-wrap: wrap; }
  .woocommerce-checkout form.woocommerce-checkout .col2-set > div {
    width: 50%; }
    .woocommerce-checkout form.woocommerce-checkout .col2-set > div:nth-of-type(2) {
      padding-left: 30px; }
    @media (max-width: 47.97rem) {
      .woocommerce-checkout form.woocommerce-checkout .col2-set > div {
        width: 100%; }
        .woocommerce-checkout form.woocommerce-checkout .col2-set > div:nth-of-type(2) {
          padding-left: 0; } }

.woocommerce-checkout form.woocommerce-checkout .form-row input,
.woocommerce-checkout form.woocommerce-checkout .form-row textarea {
  border-width: 1px;
  padding: 5px 10px;
  border-radius: 5px; }

.woocommerce-checkout form.woocommerce-invalid input {
  border: 1px solid #dc3545 !important; }

.woocommerce-checkout table tr,
.woocommerce-checkout table td {
  border: 0; }

.woocommerce-checkout #payment {
  background-color: transparent; }
  .woocommerce-checkout #payment .payment_box {
    background-color: #eee !important;
    color: black !important; }
    .woocommerce-checkout #payment .payment_box::before {
      border-bottom-color: #eee !important; }

.woocommerce-error {
  background-color: #eee;
  color: black; }

.woocommerce-order-received .woocommerce-notice {
  padding-top: 50px; }

.woocommerce-order-received .order_details {
  padding-left: 0;
  padding-top: 50px; }

.woocommerce form .form-row.input-hidden {
  display: none; }

.woocommerce-cart .form-row,
.woocommerce-checkout .form-row,
#add_payment_method .form-row {
  display: block; }
  .woocommerce-cart .form-row label,
  .woocommerce-checkout .form-row label,
  #add_payment_method .form-row label {
    display: block; }
  .woocommerce-cart .form-row .woocommerce-input-wrapper,
  .woocommerce-checkout .form-row .woocommerce-input-wrapper,
  #add_payment_method .form-row .woocommerce-input-wrapper {
    display: block; }
  .woocommerce-cart .form-row select,
  .woocommerce-checkout .form-row select,
  #add_payment_method .form-row select {
    width: 100%; }
  .woocommerce-cart .form-row .optional,
  .woocommerce-checkout .form-row .optional,
  #add_payment_method .form-row .optional {
    display: none; }

.woocommerce-cart .cart-collaterals .cross-sells,
.woocommerce-checkout .cart-collaterals .cross-sells,
#add_payment_method .cart-collaterals .cross-sells {
  margin-bottom: 3rem; }

.woocommerce-order .woocommerce-customer-details .woocommerce-column--billing-address {
  margin-bottom: 2em; }

.woocommerce-order .woocommerce-customer-details .woocommerce-column--billing-address,
.woocommerce-order .woocommerce-customer-details .woocommerce-column--shipping-address {
  width: 100%; }

@media (max-width: 47.97rem) {
  /* Force table to not be like tables anymore */
  .woocommerce-page table.shop_table,
  .woocommerce-page table.shop_table thead,
  .woocommerce-page table.shop_table tbody,
  .woocommerce-page table.shop_table tfoot,
  .woocommerce-page table.shop_table th,
  .woocommerce-page table.shop_table td,
  .woocommerce-page table.shop_table tr {
    display: block; }
  /* Hide table headers (but not display: none;, for accessibility) */
  .woocommerce-page table.shop_table thead tr {
    position: absolute;
    top: -9999px;
    left: -9999px; }
  .woocommerce-page table.shop_table td {
    /* Behave  like a "row" */
    border: 1px solid #d2d3d3;
    position: relative;
    padding-left: 35% !important;
    text-align: right; }
  .woocommerce-page table.shop_table {
    border: none; }
  .woocommerce-page table.shop_table td.product-spacer {
    border-color: #fff;
    height: 10px; }
  .woocommerce-page table.shop_table td:before {
    /* Now like a table header */
    position: absolute;
    /* Top/left values mimic padding */
    left: 6px;
    width: 35%;
    padding-right: 10px;
    white-space: nowrap; }
  /*
    Label the data
    */
  .woocommerce-page table.shop_table td[data-title]:before {
    content: attr(data-title); }
  .woocommerce-page table.shop_table td.product-remove {
    padding-left: 12px !important;
    border-top: 0; }
    .woocommerce-page table.shop_table td.product-remove a {
      width: auto;
      height: auto;
      font-size: 18px; }
      .woocommerce-page table.shop_table td.product-remove a:before {
        content: attr(aria-label);
        display: inline-block;
        margin-right: 1rem; }
  .woocommerce-page table.shop_table td.product-subtotal {
    border-bottom: 0; }
  .woocommerce .quantity,
  .woocommerce #content .quantity,
  .woocommerce-page .quantity,
  .woocommerce-page #content .quantity {
    margin: 0; }
  .woocommerce-page table.cart td.actions,
  .woocommerce-page #content table.cart td.actions {
    border: 0;
    padding-left: 6px !important; }
    .woocommerce-page table.cart td.actions .coupon,
    .woocommerce-page #content table.cart td.actions .coupon {
      border-bottom: 2px solid #eee;
      padding-bottom: 20px;
      margin-bottom: 20px; }
    .woocommerce-page table.cart td.actions button,
    .woocommerce-page #content table.cart td.actions button {
      float: none; }
  .woocommerce-page table.cart td.actions .button.alt,
  .woocommerce-page #content table.cart td.actions .button.alt {
    margin-top: 10px; }
  .woocommerce-page table.cart td.actions div,
  .woocommerce-page #content table.cart td.actions div {
    margin-bottom: 2rem; }
  .woocommerce-page table.cart td.actions input,
  .woocommerce-page #content table.cart td.actions input {
    margin-bottom: 1rem; }
  .woocommerce-page .cart-collaterals .cart_totals {
    width: 100%;
    text-align: left; }
  .woocommerce-page .cart-collaterals .cart_totals th {
    display: none; }
  .woocommerce-page .cart-collaterals .cart_totals th,
  .woocommerce-page .cart-collaterals .cart_totals td {
    border: 0 !important; }
  .woocommerce-page table.shop_table tr.cart-subtotal td,
  .woocommerce-page table.shop_table tr.shipping td,
  .woocommerce-page table.shop_table tr.total td,
  .woocommerce-page table.shop_table.order_details tfoot th,
  .woocommerce-page table.shop_table.order_details tfoot td {
    border: 0 !important; }
  .woocommerce-page table.shop_table tbody {
    padding-top: 10px; }
  .woocommerce .col2-set .col-1,
  .woocommerce-page .col2-set .col-1,
  .woocommerce .col2-set .col-2,
  .woocommerce-page .col2-set .col-2,
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last,
  .woocommerce-page form .form-row-first,
  .woocommerce-page form .form-row-last {
    float: none;
    width: 100%; }
  .woocommerce .order_details ul,
  .woocommerce-page .order_details ul,
  .woocommerce .order_details,
  .woocommerce-page .order_details {
    padding: 0; }
  .woocommerce .order_details li,
  .woocommerce-page .order_details li {
    clear: left;
    margin-bottom: 10px;
    border: 0; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29vY29tbWVyY2UuY3NzIiwic291cmNlcyI6WyJ3b29jb21tZXJjZS5zY3NzIiwiX2N1c3RvbS12YXJpYWJsZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fbWl4aW5zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdmVuZG9yL19yZnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2RlcHJlY2F0ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2NvbG9yLXNjaGVtZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9faW1hZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3Jlc2l6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fdmlzdWFsbHktaGlkZGVuLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19yZXNldC10ZXh0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL190ZXh0LXRydW5jYXRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL191dGlsaXRpZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2FsZXJ0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19iYWNrZHJvcC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fY2FyZXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3BhZ2luYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2xpc3RzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19saXN0LWdyb3VwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19mb3Jtcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fdGFibGUtdmFyaWFudHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JveC1zaGFkb3cuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2dyYWRpZW50cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fY2xlYXJmaXguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2NvbnRhaW5lci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vcGx1Z2lucy93b29jb21tZXJjZS9hc3NldHMvY3NzL3dvb2NvbW1lcmNlLnNjc3MiLCIuLi8uLi8uLi8uLi9wbHVnaW5zL3dvb2NvbW1lcmNlL2Fzc2V0cy9jc3MvX21peGlucy5zY3NzIiwiLi4vLi4vLi4vLi4vcGx1Z2lucy93b29jb21tZXJjZS9hc3NldHMvY3NzL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL3BsdWdpbnMvd29vY29tbWVyY2UvYXNzZXRzL2Nzcy9fYW5pbWF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9wbHVnaW5zL3dvb2NvbW1lcmNlL2Fzc2V0cy9jc3MvX2ZvbnRzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcImN1c3RvbS12YXJpYWJsZXNcIjtcclxuQGltcG9ydCBcIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnNcIjtcclxuXHJcbiR3b29jb21tZXJjZTogJHNlY29uZGFyeTtcclxuJGdyZWVuOiAkc3VjY2VzcztcclxuJHJlZDogJGRhbmdlcjtcclxuJG9yYW5nZTogJHdhcm5pbmc7XHJcbiRibHVlOiAkaW5mbztcclxuXHJcbiRwcmltYXJ5OiAkc2Vjb25kYXJ5O1xyXG4kcHJpbWFyeXRleHQ6IHdoaXRlO1xyXG5cclxuJHNlY29uZGFyeTogJHNlY29uZGFyeTtcclxuJHNlY29uZGFyeXRleHQ6IHdoaXRlO1xyXG5cclxuJGhpZ2hsaWdodDogJHNlY29uZGFyeTtcclxuJGhpZ2hsaWdodGV4dDogZGVzYXR1cmF0ZShsaWdodGVuKCRoaWdobGlnaHQsIDUwJSksIDE4JSk7XHJcblxyXG4kY29udGVudGJnOiB3aGl0ZTtcclxuJHN1YnRleHQ6ICMwMDA7XHJcblxyXG5AaW1wb3J0IFwiLi4vLi4vLi4vLi4vcGx1Z2lucy93b29jb21tZXJjZS9hc3NldHMvY3NzL3dvb2NvbW1lcmNlLnNjc3NcIjtcclxuXHJcbi53b29jb21tZXJjZS1hY2NvdW50IHtcclxuICAgIC53b29jb21tZXJjZS1CdXR0b24ge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuY29sMi1zZXQge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJiA+IGRpdiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAudGl0bGUge1xyXG4gICAgICAgIGgzIHtcclxuICAgICAgICAgICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmVkaXQge1xyXG4gICAgICAgICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLndvb2NvbW1lcmNlLWJ1dHRvbiB7XHJcbiAgICBjb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XHJcbn1cclxuLndvb2NvbW1lcmNlLWZvcm0tbG9naW4ge1xyXG4gICAgYnV0dG9uIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbiB7XHJcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcclxuXHJcbiAgICB1bCB7XHJcbiAgICAgICAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLWxpbmsge1xyXG4gICAgICAgICAgICAmLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLWxpbmstLWRvd25sb2FkcyB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xyXG4gICAgICAgIHVsIHtcclxuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlZWU7XHJcblxyXG4gICAgICAgICAgICAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluayB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAmICsgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCIvXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJi53b29jb21tZXJjZS1NeUFjY291bnQtbmF2aWdhdGlvbi1saW5rLS1jdXN0b21lci1sb2dvdXQge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xyXG4gICAgICAgIHdpZHRoOiAzMCU7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2VlZTtcclxuICAgICAgICBwYWRkaW5nOiAycmVtIDEuNHJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IHtcclxuICAgIG1hcmdpbi10b3A6IDUwcHg7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XHJcbiAgICAgICAgd2lkdGg6IDY1JTtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jdXN0b20tcXR5LWJ1dHRvbiB7XHJcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHhzKSB7XHJcbiAgICAgICAgLmN1c3RvbS1xdHktYnV0dG9uIHtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnBsdXMsXHJcbiAgICAubWludXMge1xyXG4gICAgICAgIHBhZGRpbmc6IDAuNmVtIDFlbTtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgfVxyXG4gICAgLm1pbnVzIHtcclxuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XHJcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNTAlO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDUwJTtcclxuICAgIH1cclxuICAgIC5wbHVzIHtcclxuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNTAlO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1MCU7XHJcbiAgICB9XHJcbiAgICAucXVhbnRpdHkge1xyXG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIC5xdHkge1xyXG4gICAgICAgICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcclxuICAgICAgICAgICAgYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeTtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XHJcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuICAgICAgICAgICAgcGFkZGluZzogMC42ZW0gMWVtO1xyXG4gICAgICAgICAgICAvLyB3aWR0aDogNzBweDtcclxuXHJcbiAgICAgICAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXHJcbiAgICAgICAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ud29vY29tbWVyY2Uge1xyXG4gICAgdWwucHJvZHVjdHMge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBnYXA6IDIwcHg7XHJcbiAgICAgICAgJjo6YmVmb3JlLFxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxpLnByb2R1Y3Qge1xyXG4gICAgICAgICAgICBhOm5vdCguYnV0dG9uKSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuY29sdW1ucy0yIHtcclxuICAgICAgICAgICAgbGkucHJvZHVjdCB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMjBweCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5jb2x1bW5zLTMge1xyXG4gICAgICAgICAgICBsaS5wcm9kdWN0IHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygzMyUgLSAyMHB4KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLmNvbHVtbnMtNCB7XHJcbiAgICAgICAgICAgIGxpLnByb2R1Y3Qge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDIwcHgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuY29sdW1ucy01IHtcclxuICAgICAgICAgICAgbGkucHJvZHVjdCB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMjAlIC0gMjBweCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5jb2x1bW5zLTYge1xyXG4gICAgICAgICAgICBsaS5wcm9kdWN0IHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxNiUgLSAyMHB4KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAud29vY29tbWVyY2UtYnJlYWRjcnVtYiB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNTBweDtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4IDA7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLW1lc3NhZ2Uge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICBjb2xvcjogYmxhY2s7XHJcblxyXG4gICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0IHtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgIGNvbG9yOiAjMjEyNTI5O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjODViZjk4O1xyXG4gICAgICAgIHBhZGRpbmc6IDAuOHJlbSAycmVtIDAuOHJlbSAxLjJyZW07XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmXHJcbiAgICAgICAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNCcgaGVpZ2h0PSc1JyB2aWV3Qm94PScwIDAgNCA1JyUzZSUzY3BhdGggZmlsbD0nJTIzMzQzYTQwJyBkPSdNMiAwTDAgMmg0em0wIDVMMCAzaDR6Jy8lM2UlM2Mvc3ZnJTNlXCIpXHJcbiAgICAgICAgICAgIHJpZ2h0IDJyZW0gY2VudGVyLzhweCAxMHB4IG5vLXJlcGVhdDtcclxuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC5iZWZvcmUtc2hvcC1sb29wIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS40cmVtO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkZ3JheTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG5cclxuICAgICAgICAud29vY29tbWVyY2Utbm90aWNlcy13cmFwcGVyIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAud29vY29tbWVyY2UtcmVzdWx0LWNvdW50IHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAud29vY29tbWVyY2UtYXJjaGl2ZS1zaWRlYmFyIHtcclxuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgICAgIC8vIHBhZGRpbmc6IDAgMjBweDtcclxuXHJcbiAgICAgICAgLnNpZGViYXItdGl0bGUge1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJlcm9ja2V0X3NpbmdsZV9maWx0ZXJfd2lkZ2V0IHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgICAgICAgLmJhcGZfaGVhZCB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgIC8vIGJvcmRlci1yYWRpdXM6ICRidG4tYm9yZGVyLXJhZGl1cztcclxuICAgICAgICAgICAgICAgIC8vIHBhZGRpbmc6ICRidG4tcGFkZGluZy15ICRidG4tcGFkZGluZy14O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG5cclxuICAgICAgICAgICAgICAgIGgzIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYuYmFwZl9jb2xhcHNfdG9nbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmJhcGZfY29sYXBzX3NtYiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuYmFwZl9ja2JveCxcclxuICAgICAgICAgICAgLmJhcGZfc2xpZHIge1xyXG4gICAgICAgICAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuYmFwZl9ib2R5IHtcclxuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDI1MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuMnJlbSAxcmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCAtNnB4ICRibGFjaztcclxuICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMTVweDtcclxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC42cmVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLmJhcGZfY2NvbGFwcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgLmJhcGZfaGVhZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHByaW1hcnksIDAuMik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuYmFwZl9zZmlsdGVyIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAgICAgICAgICAgJi5iYXBmX2J1dHRvbl9iZXJvY2tldCB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS42cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAuYmFwZl9idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYm9yZGVyLXJhZGl1czogJGJ0bi1ib3JkZXItcmFkaXVzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNnB4IDI4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuaXJzIHtcclxuICAgICAgICAgICAgICAgIC8vIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcclxuXHJcbiAgICAgICAgICAgICAgICAmLmlycy0tZmxhdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgLmlycy1mcm9tLFxyXG4gICAgICAgICAgICAgICAgICAgIC5pcnMtc2luZ2xlLFxyXG4gICAgICAgICAgICAgICAgICAgIC5pcnMtdG8ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLmlycy1iYXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLmlycy1oYW5kbGUgPiBpOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5wcm9kdWN0cy1saXN0IHtcclxuICAgICAgICAucHJvZHVjdC1pdGVtIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIC8vIHBhZGRpbmc6IDJyZW07XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IC02cHggIzAwMDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuXHJcbiAgICAgICAgICAgIC5tZWRpYS1jb250ZW50IHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMjBweCA0MHB4O1xyXG5cclxuICAgICAgICAgICAgICAgIC5lbnRyeS10aXRsZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMnJlbTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5wcmljZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuNnJlbTtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxLjRyZW0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZGVsLFxyXG4gICAgICAgICAgICAgICAgICAgIGlucyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlucyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLndvb2NvbW1lcmNlLVByaWNlLWFtb3VudCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLndvb2NvbW1lcmNlLXByaWNlLXN1ZmZpeCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGRlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC53b29jb21tZXJjZS1QcmljZS1hbW91bnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuYnV0dG9uLnByb2R1Y3RfdHlwZV9zaW1wbGUsXHJcbiAgICAgICAgICAgIC5idXR0b24ucHJvZHVjdF90eXBlX3ZhcmlhYmxlLFxyXG4gICAgICAgICAgICAuYnV0dG9uLnByb2R1Y3RfdHlwZV9ncm91cGVkIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG5cclxuICAgICAgICAgICAgICAgICYuYnRuLWxvYWRpbmcge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYuYWRkZWQge1xyXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmICsgLmFkZGVkX3RvX2NhcnQge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggNnB4IC0ycHggcmdiYSgkYmxhY2ssIDAuNCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA2MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAyO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVmdDogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYuYWRkX3RvX2NhcnRfYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ljb25zL2ljb24tY2FydC13aGl0ZS5zdmdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc3Rhci1yYXRpbmcge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxMnB4IDBweCAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnByb2R1Y3Qtc2luZ2xlLWNvbnRhaW5lciB7XHJcbiAgICAgICAgcGFkZGluZzogNHJlbSAwIDZyZW07XHJcblxyXG4gICAgICAgIC5wcm9kdWN0IHtcclxuICAgICAgICAgICAgLnN1bW1hcnkge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xyXG5cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihsZykge1xyXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuZmxleC12aWV3cG9ydCB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTUwcHgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5mbGV4LWNvbnRyb2wtdGh1bWJzIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjZyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMXZ3O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5mbGV4LWFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnByb2R1Y3RfdGl0bGUge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnByaWNlIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcclxuICAgICAgICAgICAgICAgIC53b29jb21tZXJjZS1wcmljZS1zdWZmaXgge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMTBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlucyB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLndvb2NvbW1lcmNlLVByaWNlLWFtb3VudCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGRlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgLndvb2NvbW1lcmNlLVByaWNlLWFtb3VudCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5wcm9kdWN0X21ldGEge1xyXG4gICAgICAgICAgICAgICAgLnNrdV93cmFwcGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc3RvY2sge1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcblxyXG4gICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLm91dC1vZi1zdG9jayB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRkYW5nZXI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLmluLXN0b2NrIHtcclxuICAgICAgICAgICAgICAgICAgICBzcGFuOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLndvb2NvbW1lcmNlLXByb2R1Y3QtYXR0cmlidXRlcyB7XHJcbiAgICAgICAgICAgICAgICAud29vY29tbWVyY2UtcHJvZHVjdC1hdHRyaWJ1dGVzLWl0ZW1fX3ZhbHVlIHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5jYXJ0IHtcclxuICAgICAgICAgICAgICAgIC8vIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIC8vIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAvLyBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHhzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLnNpbmdsZV9hZGRfdG9fY2FydF9idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oeHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICYubG9hZGluZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuMjU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIuNjE4ZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogXCJXb29Db21tZXJjZVwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcXGUwMWNcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwLjYxOGVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDFlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi52YXJpYXRpb25zX2Zvcm0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgLnJlc2V0X3ZhcmlhdGlvbnMge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLnZhcmlhdGlvbnMge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGgge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA0MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYudmFsdWUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Qge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyZ2luLWxlZnQ6IDFlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLnNpbmdsZV92YXJpYXRpb25fd3JhcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jdXN0b20tcXR5LWJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLnN0b2NrIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5pbi1zdG9jayB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzdWNjZXNzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5vdXQtb2Ytc3RvY2sge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkZGFuZ2VyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAud29vY29tbWVyY2UtdmFyaWF0aW9uLWRlc2NyaXB0aW9uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC53b29jb21tZXJjZS10YWJzIHtcclxuICAgICAgICAgICAgICAgIHVsLnRhYnMge1xyXG4gICAgICAgICAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5yZWxhdGVkIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1MHB4O1xyXG5cclxuICAgICAgICAgICAgICAgIGgyIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5wcm9kdWN0cyB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAucHJvZHVjdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBwYWRkaW5nOiAycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCAtNnB4ICMwMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X190aXRsZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxLjRyZW0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnMge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC53b29jb21tZXJjZS1QcmljZS1hbW91bnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAud29vY29tbWVyY2UtcHJpY2Utc3VmZml4IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLndvb2NvbW1lcmNlLVByaWNlLWFtb3VudCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5idXR0b24ucHJvZHVjdF90eXBlX3NpbXBsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmJ1dHRvbi5wcm9kdWN0X3R5cGVfdmFyaWFibGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5idXR0b24ucHJvZHVjdF90eXBlX2dyb3VwZWQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNlY29uZGFyeSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMjBweDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmJ0bi1sb2FkaW5nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmFkZGVkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiArIC5hZGRlZF90b19jYXJ0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDZweCAtMnB4IHJnYmEoJGJsYWNrLCAwLjQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNjAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmFkZF90b19jYXJ0X2J1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pY29ucy9pY29uLWNhcnQtd2hpdGUuc3ZnXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLnN0YXItcmF0aW5nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMTJweCAyMHB4IDIwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucmV0dXJuLXRvLXNob3Age1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAud29vY29tbWVyY2UtaW5mbyB7XHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zdGFyLXJhdGluZyBzcGFuOjpiZWZvcmUge1xyXG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xyXG4gICAgfVxyXG4gICAgLnN0YXItcmF0aW5nOjpiZWZvcmUge1xyXG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xyXG4gICAgfVxyXG4gICAgLndvb2NvbW1lcmNlLVJldmlld3Mge1xyXG4gICAgICAgIC53b29jb21tZXJjZS1SZXZpZXdzLXRpdGxlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJiNyZXZpZXdzIHtcclxuICAgICAgICAgICAgI2NvbW1lbnRzIHtcclxuICAgICAgICAgICAgICAgIG9sLmNvbW1lbnRsaXN0IGxpIGltZy5hdmF0YXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmNvbW1lbnQtcmVwbHktdGl0bGUge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb21tZW50LWZvcm0tcmF0aW5nIHtcclxuICAgICAgICAgICAgLnN0YXJzIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1jYXJ0IHtcclxuICAgIC53b29jb21tZXJjZS1pbmZvIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XHJcbiAgICAgICAgY29sb3I6IGJsYWNrO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnk7XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLWNhcnQtZm9ybSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDUwcHg7XHJcblxyXG4gICAgICAgIHRhYmxlIHRyIHRkIHtcclxuICAgICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zaG9wX3RhYmxlIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogNHJlbTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNnJlbTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGJvZHkge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRyLmNhcnRfaXRlbSB7XHJcbiAgICAgICAgICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtdGh1bWJuYWlsIGEgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNzBweDtcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtcXVhbnRpdHkge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3VzdG9tLXF0eS1idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAucXVhbnRpdHkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAucXR5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYWN0aW9ucyB7XHJcbiAgICAgICAgICAgIC5jb3Vwb24ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgI2NvdXBvbl9jb2RlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgJltuYW1lPVwidXBkYXRlX2NhcnRcIl0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY2FydF90b3RhbHMge1xyXG4gICAgICAgIHRkIHtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zaG9wX3RhYmxlIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMzBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAud2MtcHJvY2VlZC10by1jaGVja291dCB7XHJcbiAgICAgICAgLmNoZWNrb3V0LWJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1jaGVja291dCB7XHJcbiAgICBidXR0b24ge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIC53b29jb21tZXJjZS1pbmZvIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XHJcbiAgICAgICAgY29sb3I6IGJsYWNrO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9ybSB7XHJcbiAgICAgICAgJi53b29jb21tZXJjZS1jaGVja291dCB7XHJcbiAgICAgICAgICAgIGgzIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmNvbDItc2V0IHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICAvLyBtYXJnaW4tcmlnaHQ6IC0yMHB4O1xyXG4gICAgICAgICAgICAgICAgLy8gbWFyZ2luLWxlZnQ6IC0yMHB4O1xyXG5cclxuICAgICAgICAgICAgICAgICYgPiBkaXYge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmZvcm0tcm93IHtcclxuICAgICAgICAgICAgICAgIGlucHV0LFxyXG4gICAgICAgICAgICAgICAgdGV4dGFyZWEge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi53b29jb21tZXJjZS1pbnZhbGlkIHtcclxuICAgICAgICAgICAgaW5wdXQge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhbmdlciAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRhYmxlIHRyLFxyXG4gICAgdGFibGUgdGQge1xyXG4gICAgICAgIGJvcmRlcjogMDtcclxuICAgIH1cclxuXHJcbiAgICAjcGF5bWVudCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgICAgIC5wYXltZW50X2JveCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZWVlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1lcnJvciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG59XHJcblxyXG4ud29vY29tbWVyY2Utb3JkZXItcmVjZWl2ZWQge1xyXG4gICAgLndvb2NvbW1lcmNlLW5vdGljZSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDUwcHg7XHJcbiAgICB9XHJcbiAgICAub3JkZXJfZGV0YWlscyB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBkLW5vbmUgdHJpY2tcclxuLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93LmlucHV0LWhpZGRlbiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4ud29vY29tbWVyY2UtY2FydCxcclxuLndvb2NvbW1lcmNlLWNoZWNrb3V0LFxyXG4jYWRkX3BheW1lbnRfbWV0aG9kIHtcclxuICAgIC5mb3JtLXJvdyB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcbiAgICAgICAgLndvb2NvbW1lcmNlLWlucHV0LXdyYXBwZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNlbGVjdCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm9wdGlvbmFsIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNhcnQtY29sbGF0ZXJhbHMge1xyXG4gICAgICAgIC5jcm9zcy1zZWxscyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ud29vY29tbWVyY2Utb3JkZXIge1xyXG4gICAgLndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMge1xyXG4gICAgICAgIC53b29jb21tZXJjZS1jb2x1bW4tLWJpbGxpbmctYWRkcmVzcyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLndvb2NvbW1lcmNlLWNvbHVtbi0tYmlsbGluZy1hZGRyZXNzLFxyXG4gICAgICAgIC53b29jb21tZXJjZS1jb2x1bW4tLXNoaXBwaW5nLWFkZHJlc3Mge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xyXG4gICAgLyogRm9yY2UgdGFibGUgdG8gbm90IGJlIGxpa2UgdGFibGVzIGFueW1vcmUgKi9cclxuICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGUsXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5zaG9wX3RhYmxlIHRoZWFkLFxyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuc2hvcF90YWJsZSB0Ym9keSxcclxuICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGUgdGZvb3QsXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5zaG9wX3RhYmxlIHRoLFxyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuc2hvcF90YWJsZSB0ZCxcclxuICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGUgdHIge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIC8vIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIEhpZGUgdGFibGUgaGVhZGVycyAoYnV0IG5vdCBkaXNwbGF5OiBub25lOywgZm9yIGFjY2Vzc2liaWxpdHkpICovXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5zaG9wX3RhYmxlIHRoZWFkIHRyIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAtOTk5OXB4O1xyXG4gICAgICAgIGxlZnQ6IC05OTk5cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuc2hvcF90YWJsZSB0ZCB7XHJcbiAgICAgICAgLyogQmVoYXZlICBsaWtlIGEgXCJyb3dcIiAqL1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMmQzZDM7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMzUlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuc2hvcF90YWJsZSB7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGUgdGQucHJvZHVjdC1zcGFjZXIge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZmZjtcclxuICAgICAgICBoZWlnaHQ6IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuc2hvcF90YWJsZSB0ZDpiZWZvcmUge1xyXG4gICAgICAgIC8qIE5vdyBsaWtlIGEgdGFibGUgaGVhZGVyICovXHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIC8qIFRvcC9sZWZ0IHZhbHVlcyBtaW1pYyBwYWRkaW5nICovXHJcbiAgICAgICAgLy8gdG9wOiA1MCU7XHJcbiAgICAgICAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG5cclxuICAgICAgICBsZWZ0OiA2cHg7XHJcbiAgICAgICAgd2lkdGg6IDM1JTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICB9XHJcblxyXG4gICAgLypcclxuICAgIExhYmVsIHRoZSBkYXRhXHJcbiAgICAqL1xyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuc2hvcF90YWJsZSB0ZFtkYXRhLXRpdGxlXTpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aXRsZSk7XHJcbiAgICB9XHJcbiAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5zaG9wX3RhYmxlIHRkLnByb2R1Y3QtcmVtb3ZlIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHggIWltcG9ydGFudDtcclxuICAgICAgICBib3JkZXItdG9wOiAwO1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoYXJpYS1sYWJlbCk7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5zaG9wX3RhYmxlIHRkLnByb2R1Y3Qtc3VidG90YWwge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuc2hvcF90YWJsZSB0ZC5wcm9kdWN0LXRodW1ibmFpbDpiZWZvcmUge1xyXG4gICAgLy8gICAgIGNvbnRlbnQ6IFwiRk9UT1wiO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGUgdGQucHJvZHVjdC1uYW1lOmJlZm9yZSB7XHJcbiAgICAvLyAgICAgY29udGVudDogXCJQUk9ET1RUT1wiO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGUgdGQucHJvZHVjdC1wcmljZTpiZWZvcmUge1xyXG4gICAgLy8gICAgIGNvbnRlbnQ6IFwiUFJFWlpPXCI7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuc2hvcF90YWJsZSB0ZC5wcm9kdWN0LXF1YW50aXR5OmJlZm9yZSB7XHJcbiAgICAvLyAgICAgY29udGVudDogXCJRVUFOVElUw4BcIjtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5zaG9wX3RhYmxlIHRkLnByb2R1Y3Qtc3VidG90YWw6YmVmb3JlIHtcclxuICAgIC8vICAgICBjb250ZW50OiBcIlNVQlRPVEFMRVwiO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGUgdGQucHJvZHVjdC10b3RhbDpiZWZvcmUge1xyXG4gICAgLy8gICAgIGNvbnRlbnQ6IFwiVE9UQUxFXCI7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlIC5xdWFudGl0eSxcclxuICAgIC53b29jb21tZXJjZSAjY29udGVudCAucXVhbnRpdHksXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSAucXVhbnRpdHksXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSAjY29udGVudCAucXVhbnRpdHkge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMsXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSAjY29udGVudCB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMge1xyXG4gICAgICAgIC8vIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogNnB4ICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgIC5jb3Vwb24ge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2VlZTtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5idXR0b24uYWx0LFxyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgI2NvbnRlbnQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5idXR0b24uYWx0IHtcclxuICAgICAgICAvLyBmbG9hdDogbGVmdDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyBkaXYsXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSAjY29udGVudCB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgZGl2IHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyBpbnB1dCxcclxuICAgIC53b29jb21tZXJjZS1wYWdlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyBpbnB1dCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMge1xyXG4gICAgICAgIC8vIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRoIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRoLFxyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRkIHtcclxuICAgICAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAvLyAud29vY29tbWVyY2UtcGFnZSAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgdGFibGUgdHIuY2FydC1zdWJ0b3RhbCB0ZCxcclxuICAgIC8vIC53b29jb21tZXJjZS1wYWdlIC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB0YWJsZSB0ci5zaGlwcGluZyB0ZCxcclxuICAgIC8vIC53b29jb21tZXJjZS1wYWdlIC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB0YWJsZSB0ci50b3RhbCB0ZCB7XHJcbiAgICAvLyAgICAgLy8gcGFkZGluZy1sZWZ0OiA2cHggIWltcG9ydGFudDtcclxuICAgIC8vIH1cclxuXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5zaG9wX3RhYmxlIHRyLmNhcnQtc3VidG90YWwgdGQsXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5zaG9wX3RhYmxlIHRyLnNoaXBwaW5nIHRkLFxyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuc2hvcF90YWJsZSB0ci50b3RhbCB0ZCxcclxuICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGUub3JkZXJfZGV0YWlscyB0Zm9vdCB0aCxcclxuICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGUub3JkZXJfZGV0YWlscyB0Zm9vdCB0ZCB7XHJcbiAgICAgICAgLy8gcGFkZGluZy1sZWZ0OiA2cHggIWltcG9ydGFudDtcclxuICAgICAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5zaG9wX3RhYmxlIHRib2R5IHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICAud29vY29tbWVyY2UgLmNvbDItc2V0IC5jb2wtMSxcclxuICAgIC53b29jb21tZXJjZS1wYWdlIC5jb2wyLXNldCAuY29sLTEsXHJcbiAgICAud29vY29tbWVyY2UgLmNvbDItc2V0IC5jb2wtMixcclxuICAgIC53b29jb21tZXJjZS1wYWdlIC5jb2wyLXNldCAuY29sLTIsXHJcbiAgICAud29vY29tbWVyY2UgZm9ybSAuZm9ybS1yb3ctZmlyc3QsXHJcbiAgICAud29vY29tbWVyY2UgZm9ybSAuZm9ybS1yb3ctbGFzdCxcclxuICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93LWZpcnN0LFxyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAuZm9ybS1yb3ctbGFzdCB7XHJcbiAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlIC5vcmRlcl9kZXRhaWxzIHVsLFxyXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLm9yZGVyX2RldGFpbHMgdWwsXHJcbiAgICAud29vY29tbWVyY2UgLm9yZGVyX2RldGFpbHMsXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSAub3JkZXJfZGV0YWlscyB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuXHJcbiAgICAud29vY29tbWVyY2UgLm9yZGVyX2RldGFpbHMgbGksXHJcbiAgICAud29vY29tbWVyY2UtcGFnZSAub3JkZXJfZGV0YWlscyBsaSB7XHJcbiAgICAgICAgY2xlYXI6IGxlZnQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICBib3JkZXI6IDA7XHJcbiAgICB9XHJcbn1cclxuIiwiJHByaW1hcnk6ICAgICAgICAgICAgICAgICAgICAgIzFhMTcxYjtcclxuJHNlY29uZGFyeTogICAgICAgICAgICAgICAgICAgI2NkMDYxZDtcclxuJGJsYWNrOiAgICAgICAgICAgICAgICAgICAgICAgIzAwMDtcclxuJHdoaXRlOiAgICAgICAgICAgICAgICAgICAgICAgI2ZmZjtcclxuJGdyYXk6ICAgICAgICAgICAgICAgICAgICAgICAgI0Y4RjhGODtcclxuJGdyYXktZGFyazogICAgICAgICAgICAgICAgICAgI2RkZDtcclxuJGdyYXktcXVpejogICAgICAgICAgICAgICAgICAgIzgxODI4NTtcclxuJGNvbG9yX2FpdXRhcmU6ICAgICAgICAgICAgICAgI2NjZTI4NTtcclxuJGNvbG9yX3Nvc3RlbmVyZTogICAgICAgICAgICAgI2Y3YWY3MztcclxuJGNvbG9yX29yaWVudGFyZTogICAgICAgICAgICAgI2Y1ZTE4YTtcclxuJGNvbG9yX2Zvcm1hcmU6ICAgICAgICAgICAgICAgIzgxZDFjMztcclxuJGNvbG9yX3N0YXJiZW5lOiAgICAgICAgICAgICAgIzg2NmU5YTtcclxuJGNvbG9yX3JlZ2FsYXJlOiAgICAgICAgICAgICAgI2U3OWRjNjtcclxuJGNvbG9yX2d1c3RhcmU6ICAgICAgICAgICAgICAgI2FhN2I2YTtcclxuXHJcbiRibHVlOiAgICAjMGQ2ZWZkO1xyXG4kaW5kaWdvOiAgIzY2MTBmMjtcclxuJHB1cnBsZTogICM2ZjQyYzE7XHJcbiRwaW5rOiAgICAjZDYzMzg0O1xyXG4kcmVkOiAgICAgI2RjMzU0NTtcclxuJG9yYW5nZTogICNmZDdlMTQ7XHJcbiR5ZWxsb3c6ICAjZmZjMTA3O1xyXG4kZ3JlZW46ICAgIzE5ODc1NDtcclxuJHRlYWw6ICAgICMyMGM5OTc7XHJcbiRjeWFuOiAgICAjMGRjYWYwO1xyXG5cclxuJHN1Y2Nlc3M6ICAgICAgICRncmVlbjtcclxuJGluZm86ICAgICAgICAgICRjeWFuO1xyXG4kd2FybmluZzogICAgICAgJHllbGxvdztcclxuJGRhbmdlcjogICAgICAgICRyZWQ7XHJcblxyXG4kYmFzZS1mb250LWZhbWlseTogICAgICAgICAgICAnUm9ib3RvJywgc2Fucy1zZXJpZjtcclxuJGJhc2UtZm9udC1zaXplOiAgICAgICAgICAgICAgMTZweDsgLy8gQXNzdW1lcyB0aGUgYnJvd3NlciBkZWZhdWx0LCB0eXBpY2FsbHkgYDE2cHhgXHJcbiRiYW5uZXItZm9udC1mYW1pbHk6ICAgICAgICAgICdEb3NpcycsIHNhbnMtc2VyaWY7XHJcbiRtZW51LWZvbnQtZmFtaWx5OiAgICAgICAgICAgICdKb3NlZmluIFNhbnMnLCBzYW5zLXNlcmlmO1xyXG4kdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAkYmFzZS1mb250LXNpemUgKiA0O1xyXG4kY29udGFpbmVyLXNtOiAgICAgICAgICAgICAgICAzM3JlbTtcclxuJGNvbnRhaW5lci1tZDogICAgICAgICAgICAgICAgNTVyZW07XHJcbiRjb250YWluZXItbGc6ICAgICAgICAgICAgICAgIDY1cmVtO1xyXG4kY29udGFpbmVyLXhsOiAgICAgICAgICAgICAgICA3NXJlbTtcclxuXHJcbiRjb250YWluZXItbWF4LXdpZHRoczogKFxyXG4gIHNtOiAkY29udGFpbmVyLXNtLFxyXG4gIG1kOiAkY29udGFpbmVyLW1kLFxyXG4gIGxnOiAkY29udGFpbmVyLWxnLFxyXG4gIHhsOiAkY29udGFpbmVyLXhsLFxyXG4pO1xyXG5cclxuJGdyaWQtZ3V0dGVyLXdpZHRoOiAxLjVyZW07XHJcblxyXG4kZ3JpZC1icmVha3BvaW50czogKFxyXG4gIHh4czogMCxcclxuICB4czogMjVyZW0sXHJcbiAgLy8gNDAwcHhcclxuICBzbTogMzByZW0sXHJcbiAgLy8gNDgwcHhcclxuICBtZDogNDcuOTlyZW0sXHJcbiAgLy8gNzY4cHhcclxuICBtbGc6IDU2LjI1cmVtLFxyXG4gIC8vIDkwMHB4XHJcbiAgbGc6IDY0cmVtLFxyXG4gIC8vIDEwMjRweFxyXG4gIHhsOiA3NC45OXJlbSxcclxuICAvLyAxMjAwcHhcclxuICB4eGw6IDkwcmVtLFxyXG4gIC8vIDE0NDBweFxyXG4gIHh4eGw6IDEwMHJlbSAvLyAxNjAwcHgsXHJcbik7XHJcbiIsIi8vIFRvZ2dsZXNcbi8vXG4vLyBVc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggZ2xvYmFsIHZhcmlhYmxlcyB0byBlbmFibGUgY2VydGFpbiB0aGVtZSBmZWF0dXJlcy5cblxuLy8gVmVuZG9yXG5AaW1wb3J0IFwidmVuZG9yL3Jmc1wiO1xuXG4vLyBEZXByZWNhdGVcbkBpbXBvcnQgXCJtaXhpbnMvZGVwcmVjYXRlXCI7XG5cbi8vIEhlbHBlcnNcbkBpbXBvcnQgXCJtaXhpbnMvYnJlYWtwb2ludHNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvY29sb3Itc2NoZW1lXCI7XG5AaW1wb3J0IFwibWl4aW5zL2ltYWdlXCI7XG5AaW1wb3J0IFwibWl4aW5zL3Jlc2l6ZVwiO1xuQGltcG9ydCBcIm1peGlucy92aXN1YWxseS1oaWRkZW5cIjtcbkBpbXBvcnQgXCJtaXhpbnMvcmVzZXQtdGV4dFwiO1xuQGltcG9ydCBcIm1peGlucy90ZXh0LXRydW5jYXRlXCI7XG5cbi8vIFV0aWxpdGllc1xuQGltcG9ydCBcIm1peGlucy91dGlsaXRpZXNcIjtcblxuLy8gQ29tcG9uZW50c1xuQGltcG9ydCBcIm1peGlucy9hbGVydFwiO1xuQGltcG9ydCBcIm1peGlucy9iYWNrZHJvcFwiO1xuQGltcG9ydCBcIm1peGlucy9idXR0b25zXCI7XG5AaW1wb3J0IFwibWl4aW5zL2NhcmV0XCI7XG5AaW1wb3J0IFwibWl4aW5zL3BhZ2luYXRpb25cIjtcbkBpbXBvcnQgXCJtaXhpbnMvbGlzdHNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvbGlzdC1ncm91cFwiO1xuQGltcG9ydCBcIm1peGlucy9mb3Jtc1wiO1xuQGltcG9ydCBcIm1peGlucy90YWJsZS12YXJpYW50c1wiO1xuXG4vLyBTa2luc1xuQGltcG9ydCBcIm1peGlucy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwibWl4aW5zL2JveC1zaGFkb3dcIjtcbkBpbXBvcnQgXCJtaXhpbnMvZ3JhZGllbnRzXCI7XG5AaW1wb3J0IFwibWl4aW5zL3RyYW5zaXRpb25cIjtcblxuLy8gTGF5b3V0XG5AaW1wb3J0IFwibWl4aW5zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwibWl4aW5zL2NvbnRhaW5lclwiO1xuQGltcG9ydCBcIm1peGlucy9ncmlkXCI7XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1ibGFja2xpc3QsIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcblxuLy8gU0NTUyBSRlMgbWl4aW5cbi8vXG4vLyBBdXRvbWF0ZWQgcmVzcG9uc2l2ZSB2YWx1ZXMgZm9yIGZvbnQgc2l6ZXMsIHBhZGRpbmdzLCBtYXJnaW5zIGFuZCBtdWNoIG1vcmVcbi8vXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL3Jmcy9ibG9iL21haW4vTElDRU5TRSlcblxuLy8gQ29uZmlndXJhdGlvblxuXG4vLyBCYXNlIHZhbHVlXG4kcmZzLWJhc2UtdmFsdWU6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kcmZzLXVuaXQ6IHJlbSAhZGVmYXVsdDtcblxuQGlmICRyZnMtdW5pdCAhPSByZW0gYW5kICRyZnMtdW5pdCAhPSBweCB7XG4gIEBlcnJvciBcImAjeyRyZnMtdW5pdH1gIGlzIG5vdCBhIHZhbGlkIHVuaXQgZm9yICRyZnMtdW5pdC4gVXNlIGBweGAgb3IgYHJlbWAuXCI7XG59XG5cbi8vIEJyZWFrcG9pbnQgYXQgd2hlcmUgdmFsdWVzIHN0YXJ0IGRlY3JlYXNpbmcgaWYgc2NyZWVuIHdpZHRoIGlzIHNtYWxsZXJcbiRyZnMtYnJlYWtwb2ludDogMTIwMHB4ICFkZWZhdWx0O1xuJHJmcy1icmVha3BvaW50LXVuaXQ6IHB4ICFkZWZhdWx0O1xuXG5AaWYgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gcHggYW5kICRyZnMtYnJlYWtwb2ludC11bml0ICE9IGVtIGFuZCAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSByZW0ge1xuICBAZXJyb3IgXCJgI3skcmZzLWJyZWFrcG9pbnQtdW5pdH1gIGlzIG5vdCBhIHZhbGlkIHVuaXQgZm9yICRyZnMtYnJlYWtwb2ludC11bml0LiBVc2UgYHB4YCwgYGVtYCBvciBgcmVtYC5cIjtcbn1cblxuLy8gUmVzaXplIHZhbHVlcyBiYXNlZCBvbiBzY3JlZW4gaGVpZ2h0IGFuZCB3aWR0aFxuJHJmcy10d28tZGltZW5zaW9uYWw6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWN0b3Igb2YgZGVjcmVhc2VcbiRyZnMtZmFjdG9yOiAxMCAhZGVmYXVsdDtcblxuQGlmIHR5cGUtb2YoJHJmcy1mYWN0b3IpICE9IG51bWJlciBvciAkcmZzLWZhY3RvciA8PSAxIHtcbiAgQGVycm9yIFwiYCN7JHJmcy1mYWN0b3J9YCBpcyBub3QgYSB2YWxpZCAgJHJmcy1mYWN0b3IsIGl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDEuXCI7XG59XG5cbi8vIE1vZGUuIFBvc3NpYmlsaXRpZXM6IFwibWluLW1lZGlhLXF1ZXJ5XCIsIFwibWF4LW1lZGlhLXF1ZXJ5XCJcbiRyZnMtbW9kZTogbWluLW1lZGlhLXF1ZXJ5ICFkZWZhdWx0O1xuXG4vLyBHZW5lcmF0ZSBlbmFibGUgb3IgZGlzYWJsZSBjbGFzc2VzLiBQb3NzaWJpbGl0aWVzOiBmYWxzZSwgXCJlbmFibGVcIiBvciBcImRpc2FibGVcIlxuJHJmcy1jbGFzczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIDEgcmVtID0gJHJmcy1yZW0tdmFsdWUgcHhcbiRyZnMtcmVtLXZhbHVlOiAxNiAhZGVmYXVsdDtcblxuLy8gU2FmYXJpIGlmcmFtZSByZXNpemUgYnVnOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvaXNzdWVzLzE0XG4kcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXg6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBEaXNhYmxlIFJGUyBieSBzZXR0aW5nICRlbmFibGUtcmZzIHRvIGZhbHNlXG4kZW5hYmxlLXJmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQ2FjaGUgJHJmcy1iYXNlLXZhbHVlIHVuaXRcbiRyZnMtYmFzZS12YWx1ZS11bml0OiB1bml0KCRyZnMtYmFzZS12YWx1ZSk7XG5cbkBmdW5jdGlvbiBkaXZpZGUoJGRpdmlkZW5kLCAkZGl2aXNvciwgJHByZWNpc2lvbjogMTApIHtcbiAgJHNpZ246IGlmKCRkaXZpZGVuZCA+IDAgYW5kICRkaXZpc29yID4gMCBvciAkZGl2aWRlbmQgPCAwIGFuZCAkZGl2aXNvciA8IDAsIDEsIC0xKTtcbiAgJGRpdmlkZW5kOiBhYnMoJGRpdmlkZW5kKTtcbiAgJGRpdmlzb3I6IGFicygkZGl2aXNvcik7XG4gIEBpZiAkZGl2aWRlbmQgPT0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEBpZiAkZGl2aXNvciA9PSAwIHtcbiAgICBAZXJyb3IgXCJDYW5ub3QgZGl2aWRlIGJ5IDBcIjtcbiAgfVxuICAkcmVtYWluZGVyOiAkZGl2aWRlbmQ7XG4gICRyZXN1bHQ6IDA7XG4gICRmYWN0b3I6IDEwO1xuICBAd2hpbGUgKCRyZW1haW5kZXIgPiAwIGFuZCAkcHJlY2lzaW9uID49IDApIHtcbiAgICAkcXVvdGllbnQ6IDA7XG4gICAgQHdoaWxlICgkcmVtYWluZGVyID49ICRkaXZpc29yKSB7XG4gICAgICAkcmVtYWluZGVyOiAkcmVtYWluZGVyIC0gJGRpdmlzb3I7XG4gICAgICAkcXVvdGllbnQ6ICRxdW90aWVudCArIDE7XG4gICAgfVxuICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArICRxdW90aWVudDtcbiAgICAkZmFjdG9yOiAkZmFjdG9yICogLjE7XG4gICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAqIDEwO1xuICAgICRwcmVjaXNpb246ICRwcmVjaXNpb24gLSAxO1xuICAgIEBpZiAoJHByZWNpc2lvbiA8IDAgYW5kICRyZW1haW5kZXIgPj0gJGRpdmlzb3IgKiA1KSB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgMTtcbiAgICB9XG4gIH1cbiAgJHJlc3VsdDogJHJlc3VsdCAqICRmYWN0b3IgKiAkc2lnbjtcbiAgJGRpdmlkZW5kLXVuaXQ6IHVuaXQoJGRpdmlkZW5kKTtcbiAgJGRpdmlzb3ItdW5pdDogdW5pdCgkZGl2aXNvcik7XG4gICR1bml0LW1hcDogKFxuICAgIFwicHhcIjogMXB4LFxuICAgIFwicmVtXCI6IDFyZW0sXG4gICAgXCJlbVwiOiAxZW0sXG4gICAgXCIlXCI6IDElXG4gICk7XG4gIEBpZiAoJGRpdmlkZW5kLXVuaXQgIT0gJGRpdmlzb3ItdW5pdCBhbmQgbWFwLWhhcy1rZXkoJHVuaXQtbWFwLCAkZGl2aWRlbmQtdW5pdCkpIHtcbiAgICAkcmVzdWx0OiAkcmVzdWx0ICogbWFwLWdldCgkdW5pdC1tYXAsICRkaXZpZGVuZC11bml0KTtcbiAgfVxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vIFJlbW92ZSBweC11bml0IGZyb20gJHJmcy1iYXNlLXZhbHVlIGZvciBjYWxjdWxhdGlvbnNcbkBpZiAkcmZzLWJhc2UtdmFsdWUtdW5pdCA9PSBweCB7XG4gICRyZnMtYmFzZS12YWx1ZTogZGl2aWRlKCRyZnMtYmFzZS12YWx1ZSwgJHJmcy1iYXNlLXZhbHVlICogMCArIDEpO1xufVxuQGVsc2UgaWYgJHJmcy1iYXNlLXZhbHVlLXVuaXQgPT0gcmVtIHtcbiAgJHJmcy1iYXNlLXZhbHVlOiBkaXZpZGUoJHJmcy1iYXNlLXZhbHVlLCBkaXZpZGUoJHJmcy1iYXNlLXZhbHVlICogMCArIDEsICRyZnMtcmVtLXZhbHVlKSk7XG59XG5cbi8vIENhY2hlICRyZnMtYnJlYWtwb2ludCB1bml0IHRvIHByZXZlbnQgbXVsdGlwbGUgY2FsbHNcbiRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlOiB1bml0KCRyZnMtYnJlYWtwb2ludCk7XG5cbi8vIFJlbW92ZSB1bml0IGZyb20gJHJmcy1icmVha3BvaW50IGZvciBjYWxjdWxhdGlvbnNcbkBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBweCB7XG4gICRyZnMtYnJlYWtwb2ludDogZGl2aWRlKCRyZnMtYnJlYWtwb2ludCwgJHJmcy1icmVha3BvaW50ICogMCArIDEpO1xufVxuQGVsc2UgaWYgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gcmVtIG9yICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwiZW1cIiB7XG4gICRyZnMtYnJlYWtwb2ludDogZGl2aWRlKCRyZnMtYnJlYWtwb2ludCwgZGl2aWRlKCRyZnMtYnJlYWtwb2ludCAqIDAgKyAxLCAkcmZzLXJlbS12YWx1ZSkpO1xufVxuXG4vLyBDYWxjdWxhdGUgdGhlIG1lZGlhIHF1ZXJ5IHZhbHVlXG4kcmZzLW1xLXZhbHVlOiBpZigkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSBweCwgI3skcmZzLWJyZWFrcG9pbnR9cHgsICN7ZGl2aWRlKCRyZnMtYnJlYWtwb2ludCwgJHJmcy1yZW0tdmFsdWUpfSN7JHJmcy1icmVha3BvaW50LXVuaXR9KTtcbiRyZnMtbXEtcHJvcGVydHktd2lkdGg6IGlmKCRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnksIG1heC13aWR0aCwgbWluLXdpZHRoKTtcbiRyZnMtbXEtcHJvcGVydHktaGVpZ2h0OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCBtYXgtaGVpZ2h0LCBtaW4taGVpZ2h0KTtcblxuLy8gSW50ZXJuYWwgbWl4aW4gdXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggbWVkaWEgcXVlcnkgbmVlZHMgdG8gYmUgdXNlZFxuQG1peGluIF9yZnMtbWVkaWEtcXVlcnkge1xuICBAaWYgJHJmcy10d28tZGltZW5zaW9uYWwge1xuICAgIEBpZiAkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5IHtcbiAgICAgIEBtZWRpYSAoI3skcmZzLW1xLXByb3BlcnR5LXdpZHRofTogI3skcmZzLW1xLXZhbHVlfSksICgjeyRyZnMtbXEtcHJvcGVydHktaGVpZ2h0fTogI3skcmZzLW1xLXZhbHVlfSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhICgjeyRyZnMtbXEtcHJvcGVydHktd2lkdGh9OiAjeyRyZnMtbXEtdmFsdWV9KSBhbmQgKCN7JHJmcy1tcS1wcm9wZXJ0eS1oZWlnaHR9OiAjeyRyZnMtbXEtdmFsdWV9KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQG1lZGlhICgjeyRyZnMtbXEtcHJvcGVydHktd2lkdGh9OiAjeyRyZnMtbXEtdmFsdWV9KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gSW50ZXJuYWwgbWl4aW4gdGhhdCBhZGRzIGRpc2FibGUgY2xhc3NlcyB0byB0aGUgc2VsZWN0b3IgaWYgbmVlZGVkLlxuQG1peGluIF9yZnMtcnVsZSB7XG4gIEBpZiAkcmZzLWNsYXNzID09IGRpc2FibGUgYW5kICRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnkge1xuICAgIC8vIEFkZGluZyBhbiBleHRyYSBjbGFzcyBpbmNyZWFzZXMgc3BlY2lmaWNpdHksIHdoaWNoIHByZXZlbnRzIHRoZSBtZWRpYSBxdWVyeSB0byBvdmVycmlkZSB0aGUgcHJvcGVydHlcbiAgICAmLFxuICAgIC5kaXNhYmxlLXJmcyAmLFxuICAgICYuZGlzYWJsZS1yZnMge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRyZnMtY2xhc3MgPT0gZW5hYmxlIGFuZCAkcmZzLW1vZGUgPT0gbWluLW1lZGlhLXF1ZXJ5IHtcbiAgICAuZW5hYmxlLXJmcyAmLFxuICAgICYuZW5hYmxlLXJmcyB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIEludGVybmFsIG1peGluIHRoYXQgYWRkcyBlbmFibGUgY2xhc3NlcyB0byB0aGUgc2VsZWN0b3IgaWYgbmVlZGVkLlxuQG1peGluIF9yZnMtbWVkaWEtcXVlcnktcnVsZSB7XG5cbiAgQGlmICRyZnMtY2xhc3MgPT0gZW5hYmxlIHtcbiAgICBAaWYgJHJmcy1tb2RlID09IG1pbi1tZWRpYS1xdWVyeSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfcmZzLW1lZGlhLXF1ZXJ5IHtcbiAgICAgIC5lbmFibGUtcmZzICYsXG4gICAgICAmLmVuYWJsZS1yZnMge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkcmZzLWNsYXNzID09IGRpc2FibGUgYW5kICRyZnMtbW9kZSA9PSBtaW4tbWVkaWEtcXVlcnkge1xuICAgICAgLmRpc2FibGUtcmZzICYsXG4gICAgICAmLmRpc2FibGUtcmZzIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIGZvcm1hdHRlZCBub24tcmVzcG9uc2l2ZSB2YWx1ZVxuQGZ1bmN0aW9uIHJmcy12YWx1ZSgkdmFsdWVzKSB7XG4gIC8vIENvbnZlcnQgdG8gbGlzdFxuICAkdmFsdWVzOiBpZih0eXBlLW9mKCR2YWx1ZXMpICE9IGxpc3QsICgkdmFsdWVzLCksICR2YWx1ZXMpO1xuXG4gICR2YWw6ICcnO1xuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHZhbHVlIGFuZCBjYWxjdWxhdGUgdmFsdWVcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiAkdmFsdWUgPT0gMCB7XG4gICAgICAkdmFsOiAkdmFsICsgJyAwJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQ2FjaGUgJHZhbHVlIHVuaXRcbiAgICAgICR1bml0OiBpZih0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiwgdW5pdCgkdmFsdWUpLCBmYWxzZSk7XG5cbiAgICAgIEBpZiAkdW5pdCA9PSBweCB7XG4gICAgICAgIC8vIENvbnZlcnQgdG8gcmVtIGlmIG5lZWRlZFxuICAgICAgICAkdmFsOiAkdmFsICsgJyAnICsgaWYoJHJmcy11bml0ID09IHJlbSwgI3tkaXZpZGUoJHZhbHVlLCAkdmFsdWUgKiAwICsgJHJmcy1yZW0tdmFsdWUpfXJlbSwgJHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICR1bml0ID09IHJlbSB7XG4gICAgICAgIC8vIENvbnZlcnQgdG8gcHggaWYgbmVlZGVkXG4gICAgICAgICR2YWw6ICR2YWwgKyAnICcgKyBpZigkcmZzLXVuaXQgPT0gcHgsICN7ZGl2aWRlKCR2YWx1ZSwgJHZhbHVlICogMCArIDEpICogJHJmcy1yZW0tdmFsdWV9cHgsICR2YWx1ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIElmICR2YWx1ZSBpc24ndCBhIG51bWJlciAobGlrZSBpbmhlcml0KSBvciAkdmFsdWUgaGFzIGEgdW5pdCAobm90IHB4IG9yIHJlbSwgbGlrZSAxLjVlbSkgb3IgJCBpcyAwLCBqdXN0IHByaW50IHRoZSB2YWx1ZVxuICAgICAgICAkdmFsOiAkdmFsICsgJyAnICsgJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92ZSBmaXJzdCBzcGFjZVxuICBAcmV0dXJuIHVucXVvdGUoc3RyLXNsaWNlKCR2YWwsIDIpKTtcbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgcmVzcG9uc2l2ZSB2YWx1ZSBjYWxjdWxhdGVkIGJ5IFJGU1xuQGZ1bmN0aW9uIHJmcy1mbHVpZC12YWx1ZSgkdmFsdWVzKSB7XG4gIC8vIENvbnZlcnQgdG8gbGlzdFxuICAkdmFsdWVzOiBpZih0eXBlLW9mKCR2YWx1ZXMpICE9IGxpc3QsICgkdmFsdWVzLCksICR2YWx1ZXMpO1xuXG4gICR2YWw6ICcnO1xuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHZhbHVlIGFuZCBjYWxjdWxhdGUgdmFsdWVcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiAkdmFsdWUgPT0gMCB7XG4gICAgICAkdmFsOiAkdmFsICsgJyAwJztcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAvLyBDYWNoZSAkdmFsdWUgdW5pdFxuICAgICAgJHVuaXQ6IGlmKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiLCB1bml0KCR2YWx1ZSksIGZhbHNlKTtcblxuICAgICAgLy8gSWYgJHZhbHVlIGlzbid0IGEgbnVtYmVyIChsaWtlIGluaGVyaXQpIG9yICR2YWx1ZSBoYXMgYSB1bml0IChub3QgcHggb3IgcmVtLCBsaWtlIDEuNWVtKSBvciAkIGlzIDAsIGp1c3QgcHJpbnQgdGhlIHZhbHVlXG4gICAgICBAaWYgbm90ICR1bml0IG9yICR1bml0ICE9IHB4IGFuZCAkdW5pdCAhPSByZW0ge1xuICAgICAgICAkdmFsOiAkdmFsICsgJyAnICsgJHZhbHVlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIFJlbW92ZSB1bml0IGZyb20gJHZhbHVlIGZvciBjYWxjdWxhdGlvbnNcbiAgICAgICAgJHZhbHVlOiBkaXZpZGUoJHZhbHVlLCAkdmFsdWUgKiAwICsgaWYoJHVuaXQgPT0gcHgsIDEsIGRpdmlkZSgxLCAkcmZzLXJlbS12YWx1ZSkpKTtcblxuICAgICAgICAvLyBPbmx5IGFkZCB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWluaW11bSB2YWx1ZVxuICAgICAgICBAaWYgYWJzKCR2YWx1ZSkgPD0gJHJmcy1iYXNlLXZhbHVlIG9yIG5vdCAkZW5hYmxlLXJmcyB7XG4gICAgICAgICAgJHZhbDogJHZhbCArICcgJyArICBpZigkcmZzLXVuaXQgPT0gcmVtLCAje2RpdmlkZSgkdmFsdWUsICRyZnMtcmVtLXZhbHVlKX1yZW0sICN7JHZhbHVlfXB4KTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBtaW5pbXVtIHZhbHVlXG4gICAgICAgICAgJHZhbHVlLW1pbjogJHJmcy1iYXNlLXZhbHVlICsgZGl2aWRlKGFicygkdmFsdWUpIC0gJHJmcy1iYXNlLXZhbHVlLCAkcmZzLWZhY3Rvcik7XG5cbiAgICAgICAgICAvLyBDYWxjdWxhdGUgZGlmZmVyZW5jZSBiZXR3ZWVuICR2YWx1ZSBhbmQgdGhlIG1pbmltdW0gdmFsdWVcbiAgICAgICAgICAkdmFsdWUtZGlmZjogYWJzKCR2YWx1ZSkgLSAkdmFsdWUtbWluO1xuXG4gICAgICAgICAgLy8gQmFzZSB2YWx1ZSBmb3JtYXR0aW5nXG4gICAgICAgICAgJG1pbi13aWR0aDogaWYoJHJmcy11bml0ID09IHJlbSwgI3tkaXZpZGUoJHZhbHVlLW1pbiwgJHJmcy1yZW0tdmFsdWUpfXJlbSwgI3skdmFsdWUtbWlufXB4KTtcblxuICAgICAgICAgIC8vIFVzZSBuZWdhdGl2ZSB2YWx1ZSBpZiBuZWVkZWRcbiAgICAgICAgICAkbWluLXdpZHRoOiBpZigkdmFsdWUgPCAwLCAtJG1pbi13aWR0aCwgJG1pbi13aWR0aCk7XG5cbiAgICAgICAgICAvLyBVc2UgYHZtaW5gIGlmIHR3by1kaW1lbnNpb25hbCBpcyBlbmFibGVkXG4gICAgICAgICAgJHZhcmlhYmxlLXVuaXQ6IGlmKCRyZnMtdHdvLWRpbWVuc2lvbmFsLCB2bWluLCB2dyk7XG5cbiAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHZhcmlhYmxlIHdpZHRoIGJldHdlZW4gMCBhbmQgJHJmcy1icmVha3BvaW50XG4gICAgICAgICAgJHZhcmlhYmxlLXdpZHRoOiAje2RpdmlkZSgkdmFsdWUtZGlmZiAqIDEwMCwgJHJmcy1icmVha3BvaW50KX0jeyR2YXJpYWJsZS11bml0fTtcblxuICAgICAgICAgIC8vIFJldHVybiB0aGUgY2FsY3VsYXRlZCB2YWx1ZVxuICAgICAgICAgICR2YWw6ICR2YWwgKyAnIGNhbGMoJyArICRtaW4td2lkdGggKyBpZigkdmFsdWUgPCAwLCAnIC0gJywgJyArICcpICsgJHZhcmlhYmxlLXdpZHRoICsgJyknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIGZpcnN0IHNwYWNlXG4gIEByZXR1cm4gdW5xdW90ZShzdHItc2xpY2UoJHZhbCwgMikpO1xufVxuXG4vLyBSRlMgbWl4aW5cbkBtaXhpbiByZnMoJHZhbHVlcywgJHByb3BlcnR5OiBmb250LXNpemUpIHtcbiAgQGlmICR2YWx1ZXMgIT0gbnVsbCB7XG4gICAgJHZhbDogcmZzLXZhbHVlKCR2YWx1ZXMpO1xuICAgICRmbHVpZFZhbDogcmZzLWZsdWlkLXZhbHVlKCR2YWx1ZXMpO1xuXG4gICAgLy8gRG8gbm90IHByaW50IHRoZSBtZWRpYSBxdWVyeSBpZiByZXNwb25zaXZlICYgbm9uLXJlc3BvbnNpdmUgdmFsdWVzIGFyZSB0aGUgc2FtZVxuICAgIEBpZiAkdmFsID09ICRmbHVpZFZhbCB7XG4gICAgICAjeyRwcm9wZXJ0eX06ICR2YWw7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIF9yZnMtcnVsZSB7XG4gICAgICAgICN7JHByb3BlcnR5fTogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgJHZhbCwgJGZsdWlkVmFsKTtcblxuICAgICAgICAvLyBJbmNsdWRlIHNhZmFyaSBpZnJhbWUgcmVzaXplIGZpeCBpZiBuZWVkZWRcbiAgICAgICAgbWluLXdpZHRoOiBpZigkcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXgsICgwICogMXZ3KSwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnktcnVsZSB7XG4gICAgICAgICN7JHByb3BlcnR5fTogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgJGZsdWlkVmFsLCAkdmFsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gU2hvcnRoYW5kIGhlbHBlciBtaXhpbnNcbkBtaXhpbiBmb250LXNpemUoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUpO1xufVxuXG5AbWl4aW4gcGFkZGluZygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZyk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLXRvcCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZy10b3ApO1xufVxuXG5AbWl4aW4gcGFkZGluZy1yaWdodCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZy1yaWdodCk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLWJvdHRvbSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZy1ib3R0b20pO1xufVxuXG5AbWl4aW4gcGFkZGluZy1sZWZ0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLWxlZnQpO1xufVxuXG5AbWl4aW4gbWFyZ2luKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4pO1xufVxuXG5AbWl4aW4gbWFyZ2luLXRvcCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLXRvcCk7XG59XG5cbkBtaXhpbiBtYXJnaW4tcmlnaHQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi1yaWdodCk7XG59XG5cbkBtaXhpbiBtYXJnaW4tYm90dG9tKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tYm90dG9tKTtcbn1cblxuQG1peGluIG1hcmdpbi1sZWZ0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tbGVmdCk7XG59XG4iLCIvLyBEZXByZWNhdGUgbWl4aW5cbi8vXG4vLyBUaGlzIG1peGluIGNhbiBiZSB1c2VkIHRvIGRlcHJlY2F0ZSBtaXhpbnMgb3IgZnVuY3Rpb25zLlxuLy8gYCRlbmFibGUtZGVwcmVjYXRpb24tbWVzc2FnZXNgIGlzIGEgZ2xvYmFsIHZhcmlhYmxlLCBgJGlnbm9yZS13YXJuaW5nYCBpcyBhIHZhcmlhYmxlIHRoYXQgY2FuIGJlIHBhc3NlZCB0b1xuLy8gc29tZSBkZXByZWNhdGVkIG1peGlucyB0byBzdXBwcmVzcyB0aGUgd2FybmluZyAoZm9yIGV4YW1wbGUgaWYgdGhlIG1peGluIGlzIHN0aWxsIGJlIHVzZWQgaW4gdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBCb290c3RyYXApXG5AbWl4aW4gZGVwcmVjYXRlKCRuYW1lLCAkZGVwcmVjYXRlLXZlcnNpb24sICRyZW1vdmUtdmVyc2lvbiwgJGlnbm9yZS13YXJuaW5nOiBmYWxzZSkge1xuICBAaWYgKCRlbmFibGUtZGVwcmVjYXRpb24tbWVzc2FnZXMgIT0gZmFsc2UgYW5kICRpZ25vcmUtd2FybmluZyAhPSB0cnVlKSB7XG4gICAgQHdhcm4gXCIjeyRuYW1lfSBoYXMgYmVlbiBkZXByZWNhdGVkIGFzIG9mICN7JGRlcHJlY2F0ZS12ZXJzaW9ufS4gSXQgd2lsbCBiZSByZW1vdmVkIGVudGlyZWx5IGluICN7JHJlbW92ZS12ZXJzaW9ufS5cIjtcbiAgfVxufVxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQGlmIG5vdCAkbiB7XG4gICAgQGVycm9yIFwiYnJlYWtwb2ludCBgI3skbmFtZX1gIG5vdCBmb3VuZCBpbiBgI3skYnJlYWtwb2ludHN9YFwiO1xuICB9XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgcmVkdWNlZCBieSAwLjAycHggdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mXG4vLyBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KG1kLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiAgYnJlYWtwb2ludC1tYXgoJG5leHQpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmV4dCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHNjc3MtZG9jcy1zdGFydCBtaXhpbi1jb2xvci1zY2hlbWVcbkBtaXhpbiBjb2xvci1zY2hlbWUoJG5hbWUpIHtcbiAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogI3skbmFtZX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuLy8gc2Nzcy1kb2NzLWVuZCBtaXhpbi1jb2xvci1zY2hlbWVcbiIsIi8vIEltYWdlIE1peGluc1xuLy8gLSBSZXNwb25zaXZlIGltYWdlXG4vLyAtIFJldGluYSBpbWFnZVxuXG5cbi8vIFJlc3BvbnNpdmUgaW1hZ2Vcbi8vXG4vLyBLZWVwIGltYWdlcyBmcm9tIHNjYWxpbmcgYmV5b25kIHRoZSB3aWR0aCBvZiB0aGVpciBwYXJlbnRzLlxuXG5AbWl4aW4gaW1nLWZsdWlkIHtcbiAgLy8gUGFydCAxOiBTZXQgYSBtYXhpbXVtIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnRcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvLyBQYXJ0IDI6IE92ZXJyaWRlIHRoZSBoZWlnaHQgdG8gYXV0bywgb3RoZXJ3aXNlIGltYWdlcyB3aWxsIGJlIHN0cmV0Y2hlZFxuICAvLyB3aGVuIHNldHRpbmcgYSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZSBvbiB0aGUgaW1nIGVsZW1lbnQuXG4gIGhlaWdodDogYXV0bztcbn1cbiIsIi8vIFJlc2l6ZSBhbnl0aGluZ1xuXG5AbWl4aW4gcmVzaXphYmxlKCRkaXJlY3Rpb24pIHtcbiAgb3ZlcmZsb3c6IGF1dG87IC8vIFBlciBDU1MzIFVJLCBgcmVzaXplYCBvbmx5IGFwcGxpZXMgd2hlbiBgb3ZlcmZsb3dgIGlzbid0IGB2aXNpYmxlYFxuICByZXNpemU6ICRkaXJlY3Rpb247IC8vIE9wdGlvbnM6IGhvcml6b250YWwsIHZlcnRpY2FsLCBib3RoXG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcblxuLy8gSGlkZSBjb250ZW50IHZpc3VhbGx5IHdoaWxlIGtlZXBpbmcgaXQgYWNjZXNzaWJsZSB0byBhc3Npc3RpdmUgdGVjaG5vbG9naWVzXG4vL1xuLy8gU2VlOiBodHRwczovL3d3dy5hMTF5cHJvamVjdC5jb20vcG9zdHMvMjAxMy0wMS0xMS1ob3ctdG8taGlkZS1jb250ZW50L1xuLy8gU2VlOiBodHRwczovL2tpdHR5Z2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG5cbkBtaXhpbiB2aXN1YWxseS1oaWRkZW4oKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAtMXB4ICFpbXBvcnRhbnQ7IC8vIEZpeCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8yNTY4NlxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbn1cblxuLy8gVXNlIHRvIG9ubHkgZGlzcGxheSBjb250ZW50IHdoZW4gaXQncyBmb2N1c2VkLCBvciBvbmUgb2YgaXRzIGNoaWxkIGVsZW1lbnRzIGlzIGZvY3VzZWRcbi8vIChpLmUuIHdoZW4gZm9jdXMgaXMgd2l0aGluIHRoZSBlbGVtZW50L2NvbnRhaW5lciB0aGF0IHRoZSBjbGFzcyB3YXMgYXBwbGllZCB0bylcbi8vXG4vLyBVc2VmdWwgZm9yIFwiU2tpcCB0byBtYWluIGNvbnRlbnRcIiBsaW5rczsgc2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi8yMDEzL05PVEUtV0NBRzIwLVRFQ0hTLTIwMTMwOTA1L0cxXG5cbkBtaXhpbiB2aXN1YWxseS1oaWRkZW4tZm9jdXNhYmxlKCkge1xuICAmOm5vdCg6Zm9jdXMpOm5vdCg6Zm9jdXMtd2l0aGluKSB7XG4gICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gIH1cbn1cbiIsIkBtaXhpbiByZXNldC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xuICAvLyBXZSBkZWxpYmVyYXRlbHkgZG8gTk9UIHJlc2V0IGZvbnQtc2l6ZSBvciBvdmVyZmxvdy13cmFwIC8gd29yZC13cmFwLlxuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7IC8vIEZhbGxiYWNrIGZvciB3aGVyZSBgc3RhcnRgIGlzIG5vdCBzdXBwb3J0ZWRcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xufVxuIiwiLy8gVGV4dCB0cnVuY2F0ZVxuLy8gUmVxdWlyZXMgaW5saW5lLWJsb2NrIG9yIGJsb2NrIGZvciBwcm9wZXIgc3R5bGluZ1xuXG5AbWl4aW4gdGV4dC10cnVuY2F0ZSgpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCIvLyBVdGlsaXR5IGdlbmVyYXRvclxuLy8gVXNlZCB0byBnZW5lcmF0ZSB1dGlsaXRpZXMgJiBwcmludCB1dGlsaXRpZXNcbkBtaXhpbiBnZW5lcmF0ZS11dGlsaXR5KCR1dGlsaXR5LCAkaW5maXgsICRpcy1yZnMtbWVkaWEtcXVlcnk6IGZhbHNlKSB7XG4gICR2YWx1ZXM6IG1hcC1nZXQoJHV0aWxpdHksIHZhbHVlcyk7XG5cbiAgLy8gSWYgdGhlIHZhbHVlcyBhcmUgYSBsaXN0IG9yIHN0cmluZywgY29udmVydCBpdCBpbnRvIGEgbWFwXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZXMpID09IFwic3RyaW5nXCIgb3IgdHlwZS1vZihudGgoJHZhbHVlcywgMSkpICE9IFwibGlzdFwiIHtcbiAgICAkdmFsdWVzOiB6aXAoJHZhbHVlcywgJHZhbHVlcyk7XG4gIH1cblxuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgJHByb3BlcnRpZXM6IG1hcC1nZXQoJHV0aWxpdHksIHByb3BlcnR5KTtcblxuICAgIC8vIE11bHRpcGxlIHByb3BlcnRpZXMgYXJlIHBvc3NpYmxlLCBmb3IgZXhhbXBsZSB3aXRoIHZlcnRpY2FsIG9yIGhvcml6b250YWwgbWFyZ2lucyBvciBwYWRkaW5nc1xuICAgIEBpZiB0eXBlLW9mKCRwcm9wZXJ0aWVzKSA9PSBcInN0cmluZ1wiIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhcHBlbmQoKCksICRwcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICAvLyBVc2UgY3VzdG9tIGNsYXNzIGlmIHByZXNlbnRcbiAgICAkcHJvcGVydHktY2xhc3M6IGlmKG1hcC1oYXMta2V5KCR1dGlsaXR5LCBjbGFzcyksIG1hcC1nZXQoJHV0aWxpdHksIGNsYXNzKSwgbnRoKCRwcm9wZXJ0aWVzLCAxKSk7XG4gICAgJHByb3BlcnR5LWNsYXNzOiBpZigkcHJvcGVydHktY2xhc3MgPT0gbnVsbCwgXCJcIiwgJHByb3BlcnR5LWNsYXNzKTtcblxuICAgIC8vIFN0YXRlIHBhcmFtcyB0byBnZW5lcmF0ZSBwc2V1ZG8tY2xhc3Nlc1xuICAgICRzdGF0ZTogaWYobWFwLWhhcy1rZXkoJHV0aWxpdHksIHN0YXRlKSwgbWFwLWdldCgkdXRpbGl0eSwgc3RhdGUpLCAoKSk7XG5cbiAgICAkaW5maXg6IGlmKCRwcm9wZXJ0eS1jbGFzcyA9PSBcIlwiIGFuZCBzdHItc2xpY2UoJGluZml4LCAxLCAxKSA9PSBcIi1cIiwgc3RyLXNsaWNlKCRpbmZpeCwgMiksICRpbmZpeCk7XG5cbiAgICAvLyBEb24ndCBwcmVmaXggaWYgdmFsdWUga2V5IGlzIG51bGwgKGVnLiB3aXRoIHNoYWRvdyBjbGFzcylcbiAgICAkcHJvcGVydHktY2xhc3MtbW9kaWZpZXI6IGlmKCRrZXksIGlmKCRwcm9wZXJ0eS1jbGFzcyA9PSBcIlwiIGFuZCAkaW5maXggPT0gXCJcIiwgXCJcIiwgXCItXCIpICsgJGtleSwgXCJcIik7XG5cbiAgICBAaWYgbWFwLWdldCgkdXRpbGl0eSwgcmZzKSB7XG4gICAgICAvLyBJbnNpZGUgdGhlIG1lZGlhIHF1ZXJ5XG4gICAgICBAaWYgJGlzLXJmcy1tZWRpYS1xdWVyeSB7XG4gICAgICAgICR2YWw6IHJmcy12YWx1ZSgkdmFsdWUpO1xuXG4gICAgICAgIC8vIERvIG5vdCByZW5kZXIgYW55dGhpbmcgaWYgZmx1aWQgYW5kIG5vbiBmbHVpZCB2YWx1ZXMgYXJlIHRoZSBzYW1lXG4gICAgICAgICR2YWx1ZTogaWYoJHZhbCA9PSByZnMtZmx1aWQtdmFsdWUoJHZhbHVlKSwgbnVsbCwgJHZhbCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICR2YWx1ZTogcmZzLWZsdWlkLXZhbHVlKCR2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJGlzLWNzcy12YXI6IG1hcC1nZXQoJHV0aWxpdHksIGNzcy12YXIpO1xuICAgICRpcy1sb2NhbC12YXJzOiBtYXAtZ2V0KCR1dGlsaXR5LCBsb2NhbC12YXJzKTtcbiAgICAkaXMtcnRsOiBtYXAtZ2V0KCR1dGlsaXR5LCBydGwpO1xuXG4gICAgQGlmICR2YWx1ZSAhPSBudWxsIHtcbiAgICAgIEBpZiAkaXMtcnRsID09IGZhbHNlIHtcbiAgICAgICAgLyogcnRsOmJlZ2luOnJlbW92ZSAqL1xuICAgICAgfVxuXG4gICAgICBAaWYgJGlzLWNzcy12YXIge1xuICAgICAgICAuI3skcHJvcGVydHktY2xhc3MgKyAkaW5maXggKyAkcHJvcGVydHktY2xhc3MtbW9kaWZpZXJ9IHtcbiAgICAgICAgICAtLSN7JHZhcmlhYmxlLXByZWZpeH0jeyRwcm9wZXJ0eS1jbGFzc306ICN7JHZhbHVlfTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRwc2V1ZG8gaW4gJHN0YXRlIHtcbiAgICAgICAgICAuI3skcHJvcGVydHktY2xhc3MgKyAkaW5maXggKyAkcHJvcGVydHktY2xhc3MtbW9kaWZpZXJ9LSN7JHBzZXVkb306I3skcHNldWRvfSB7XG4gICAgICAgICAgICAtLSN7JHZhcmlhYmxlLXByZWZpeH0jeyRwcm9wZXJ0eS1jbGFzc306ICN7JHZhbHVlfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAuI3skcHJvcGVydHktY2xhc3MgKyAkaW5maXggKyAkcHJvcGVydHktY2xhc3MtbW9kaWZpZXJ9IHtcbiAgICAgICAgICBAZWFjaCAkcHJvcGVydHkgaW4gJHByb3BlcnRpZXMge1xuICAgICAgICAgICAgQGlmICRpcy1sb2NhbC12YXJzIHtcbiAgICAgICAgICAgICAgQGVhY2ggJGxvY2FsLXZhciwgJHZhbHVlIGluICRpcy1sb2NhbC12YXJzIHtcbiAgICAgICAgICAgICAgICAtLSN7JHZhcmlhYmxlLXByZWZpeH0jeyRsb2NhbC12YXJ9OiAjeyR2YWx1ZX07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlIGlmKCRlbmFibGUtaW1wb3J0YW50LXV0aWxpdGllcywgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJHBzZXVkbyBpbiAkc3RhdGUge1xuICAgICAgICAgIC4jeyRwcm9wZXJ0eS1jbGFzcyArICRpbmZpeCArICRwcm9wZXJ0eS1jbGFzcy1tb2RpZmllcn0tI3skcHNldWRvfTojeyRwc2V1ZG99IHtcbiAgICAgICAgICAgIEBlYWNoICRwcm9wZXJ0eSBpbiAkcHJvcGVydGllcyB7XG4gICAgICAgICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlIGlmKCRlbmFibGUtaW1wb3J0YW50LXV0aWxpdGllcywgIWltcG9ydGFudCwgbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAkaXMtcnRsID09IGZhbHNlIHtcbiAgICAgICAgLyogcnRsOmVuZDpyZW1vdmUgKi9cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIHNjc3MtZG9jcy1zdGFydCBhbGVydC12YXJpYW50LW1peGluXG5AbWl4aW4gYWxlcnQtdmFyaWFudCgkYmFja2dyb3VuZCwgJGJvcmRlciwgJGNvbG9yKSB7XG4gIGNvbG9yOiAkY29sb3I7XG4gIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRiYWNrZ3JvdW5kKTtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuXG4gIC5hbGVydC1saW5rIHtcbiAgICBjb2xvcjogc2hhZGUtY29sb3IoJGNvbG9yLCAyMCUpO1xuICB9XG59XG4vLyBzY3NzLWRvY3MtZW5kIGFsZXJ0LXZhcmlhbnQtbWl4aW5cbiIsIi8vIFNoYXJlZCBiZXR3ZWVuIG1vZGFscyBhbmQgb2ZmY2FudmFzZXNcbkBtaXhpbiBvdmVybGF5LWJhY2tkcm9wKCR6aW5kZXgsICRiYWNrZHJvcC1iZywgJGJhY2tkcm9wLW9wYWNpdHkpIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR6aW5kZXg7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tkcm9wLWJnO1xuXG4gIC8vIEZhZGUgZm9yIGJhY2tkcm9wXG4gICYuZmFkZSB7IG9wYWNpdHk6IDA7IH1cbiAgJi5zaG93IHsgb3BhY2l0eTogJGJhY2tkcm9wLW9wYWNpdHk7IH1cbn1cbiIsIi8vIEJ1dHRvbiB2YXJpYW50c1xuLy9cbi8vIEVhc2lseSBwdW1wIG91dCBkZWZhdWx0IHN0eWxlcywgYXMgd2VsbCBhcyA6aG92ZXIsIDpmb2N1cywgOmFjdGl2ZSxcbi8vIGFuZCBkaXNhYmxlZCBvcHRpb25zIGZvciBhbGwgYnV0dG9uc1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgYnRuLXZhcmlhbnQtbWl4aW5cbkBtaXhpbiBidXR0b24tdmFyaWFudChcbiAgJGJhY2tncm91bmQsXG4gICRib3JkZXIsXG4gICRjb2xvcjogY29sb3ItY29udHJhc3QoJGJhY2tncm91bmQpLFxuICAkaG92ZXItYmFja2dyb3VuZDogaWYoJGNvbG9yID09ICRjb2xvci1jb250cmFzdC1saWdodCwgc2hhZGUtY29sb3IoJGJhY2tncm91bmQsICRidG4taG92ZXItYmctc2hhZGUtYW1vdW50KSwgdGludC1jb2xvcigkYmFja2dyb3VuZCwgJGJ0bi1ob3Zlci1iZy10aW50LWFtb3VudCkpLFxuICAkaG92ZXItYm9yZGVyOiBpZigkY29sb3IgPT0gJGNvbG9yLWNvbnRyYXN0LWxpZ2h0LCBzaGFkZS1jb2xvcigkYm9yZGVyLCAkYnRuLWhvdmVyLWJvcmRlci1zaGFkZS1hbW91bnQpLCB0aW50LWNvbG9yKCRib3JkZXIsICRidG4taG92ZXItYm9yZGVyLXRpbnQtYW1vdW50KSksXG4gICRob3Zlci1jb2xvcjogY29sb3ItY29udHJhc3QoJGhvdmVyLWJhY2tncm91bmQpLFxuICAkYWN0aXZlLWJhY2tncm91bmQ6IGlmKCRjb2xvciA9PSAkY29sb3ItY29udHJhc3QtbGlnaHQsIHNoYWRlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkYnRuLWFjdGl2ZS1iZy1zaGFkZS1hbW91bnQpLCB0aW50LWNvbG9yKCRiYWNrZ3JvdW5kLCAkYnRuLWFjdGl2ZS1iZy10aW50LWFtb3VudCkpLFxuICAkYWN0aXZlLWJvcmRlcjogaWYoJGNvbG9yID09ICRjb2xvci1jb250cmFzdC1saWdodCwgc2hhZGUtY29sb3IoJGJvcmRlciwgJGJ0bi1hY3RpdmUtYm9yZGVyLXNoYWRlLWFtb3VudCksIHRpbnQtY29sb3IoJGJvcmRlciwgJGJ0bi1hY3RpdmUtYm9yZGVyLXRpbnQtYW1vdW50KSksXG4gICRhY3RpdmUtY29sb3I6IGNvbG9yLWNvbnRyYXN0KCRhY3RpdmUtYmFja2dyb3VuZCksXG4gICRkaXNhYmxlZC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZCxcbiAgJGRpc2FibGVkLWJvcmRlcjogJGJvcmRlcixcbiAgJGRpc2FibGVkLWNvbG9yOiBjb2xvci1jb250cmFzdCgkZGlzYWJsZWQtYmFja2dyb3VuZClcbikge1xuICBjb2xvcjogJGNvbG9yO1xuICBAaW5jbHVkZSBncmFkaWVudC1iZygkYmFja2dyb3VuZCk7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygkYnRuLWJveC1zaGFkb3cpO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGhvdmVyLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1jb2xvcjogJGhvdmVyLWJvcmRlcjtcbiAgfVxuXG4gIC5idG4tY2hlY2s6Zm9jdXMgKyAmLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGhvdmVyLWNvbG9yO1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXItY29sb3I6ICRob3Zlci1ib3JkZXI7XG4gICAgQGlmICRlbmFibGUtc2hhZG93cyB7XG4gICAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRidG4tYm94LXNoYWRvdywgMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKG1peCgkY29sb3IsICRib3JkZXIsIDE1JSksIC41KSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAvLyBBdm9pZCB1c2luZyBtaXhpbiBzbyB3ZSBjYW4gcGFzcyBjdXN0b20gZm9jdXMgc2hhZG93IHByb3Blcmx5XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEobWl4KCRjb2xvciwgJGJvcmRlciwgMTUlKSwgLjUpO1xuICAgIH1cbiAgfVxuXG4gIC5idG4tY2hlY2s6Y2hlY2tlZCArICYsXG4gIC5idG4tY2hlY2s6YWN0aXZlICsgJixcbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlLFxuICAuc2hvdyA+ICYuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogJGFjdGl2ZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgLy8gUmVtb3ZlIENTUyBncmFkaWVudHMgaWYgdGhleSdyZSBlbmFibGVkXG4gICAgYmFja2dyb3VuZC1pbWFnZTogaWYoJGVuYWJsZS1ncmFkaWVudHMsIG5vbmUsIG51bGwpO1xuICAgIGJvcmRlci1jb2xvcjogJGFjdGl2ZS1ib3JkZXI7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpZiAkZW5hYmxlLXNoYWRvd3Mge1xuICAgICAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRidG4tYWN0aXZlLWJveC1zaGFkb3csIDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYShtaXgoJGNvbG9yLCAkYm9yZGVyLCAxNSUpLCAuNSkpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIEF2b2lkIHVzaW5nIG1peGluIHNvIHdlIGNhbiBwYXNzIGN1c3RvbSBmb2N1cyBzaGFkb3cgcHJvcGVybHlcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKG1peCgkY29sb3IsICRib3JkZXIsIDE1JSksIC41KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmRpc2FibGVkLFxuICAmLmRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkaXNhYmxlZC1iYWNrZ3JvdW5kO1xuICAgIC8vIFJlbW92ZSBDU1MgZ3JhZGllbnRzIGlmIHRoZXkncmUgZW5hYmxlZFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGlmKCRlbmFibGUtZ3JhZGllbnRzLCBub25lLCBudWxsKTtcbiAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1ib3JkZXI7XG4gIH1cbn1cbi8vIHNjc3MtZG9jcy1lbmQgYnRuLXZhcmlhbnQtbWl4aW5cblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGJ0bi1vdXRsaW5lLXZhcmlhbnQtbWl4aW5cbkBtaXhpbiBidXR0b24tb3V0bGluZS12YXJpYW50KFxuICAkY29sb3IsXG4gICRjb2xvci1ob3ZlcjogY29sb3ItY29udHJhc3QoJGNvbG9yKSxcbiAgJGFjdGl2ZS1iYWNrZ3JvdW5kOiAkY29sb3IsXG4gICRhY3RpdmUtYm9yZGVyOiAkY29sb3IsXG4gICRhY3RpdmUtY29sb3I6IGNvbG9yLWNvbnRyYXN0KCRhY3RpdmUtYmFja2dyb3VuZClcbikge1xuICBjb2xvcjogJGNvbG9yO1xuICBib3JkZXItY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3RpdmUtYmFja2dyb3VuZDtcbiAgICBib3JkZXItY29sb3I6ICRhY3RpdmUtYm9yZGVyO1xuICB9XG5cbiAgLmJ0bi1jaGVjazpmb2N1cyArICYsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC41KTtcbiAgfVxuXG4gIC5idG4tY2hlY2s6Y2hlY2tlZCArICYsXG4gIC5idG4tY2hlY2s6YWN0aXZlICsgJixcbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlLFxuICAmLmRyb3Bkb3duLXRvZ2dsZS5zaG93IHtcbiAgICBjb2xvcjogJGFjdGl2ZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYWN0aXZlLWJvcmRlcjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgQGlmICRlbmFibGUtc2hhZG93cyB7XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGJ0bi1hY3RpdmUtYm94LXNoYWRvdywgMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjUpKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBBdm9pZCB1c2luZyBtaXhpbiBzbyB3ZSBjYW4gcGFzcyBjdXN0b20gZm9jdXMgc2hhZG93IHByb3Blcmx5XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC41KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmRpc2FibGVkLFxuICAmLmRpc2FibGVkIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG4vLyBzY3NzLWRvY3MtZW5kIGJ0bi1vdXRsaW5lLXZhcmlhbnQtbWl4aW5cblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGJ0bi1zaXplLW1peGluXG5AbWl4aW4gYnV0dG9uLXNpemUoJHBhZGRpbmcteSwgJHBhZGRpbmcteCwgJGZvbnQtc2l6ZSwgJGJvcmRlci1yYWRpdXMpIHtcbiAgcGFkZGluZzogJHBhZGRpbmcteSAkcGFkZGluZy14O1xuICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZSk7XG4gIC8vIE1hbnVhbGx5IGRlY2xhcmUgdG8gcHJvdmlkZSBhbiBvdmVycmlkZSB0byB0aGUgYnJvd3NlciBkZWZhdWx0XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMsIDApO1xufVxuLy8gc2Nzcy1kb2NzLWVuZCBidG4tc2l6ZS1taXhpblxuIiwiLy8gc2Nzcy1kb2NzLXN0YXJ0IGNhcmV0LW1peGluc1xuQG1peGluIGNhcmV0LWRvd24ge1xuICBib3JkZXItdG9wOiAkY2FyZXQtd2lkdGggc29saWQ7XG4gIGJvcmRlci1yaWdodDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItbGVmdDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG5AbWl4aW4gY2FyZXQtdXAge1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItcmlnaHQ6ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogJGNhcmV0LXdpZHRoIHNvbGlkO1xuICBib3JkZXItbGVmdDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG5AbWl4aW4gY2FyZXQtZW5kIHtcbiAgYm9yZGVyLXRvcDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci1ib3R0b206ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6ICRjYXJldC13aWR0aCBzb2xpZDtcbn1cblxuQG1peGluIGNhcmV0LXN0YXJ0IHtcbiAgYm9yZGVyLXRvcDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6ICRjYXJldC13aWR0aCBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbTogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG5AbWl4aW4gY2FyZXQoJGRpcmVjdGlvbjogZG93bikge1xuICBAaWYgJGVuYWJsZS1jYXJldCB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWxlZnQ6ICRjYXJldC1zcGFjaW5nO1xuICAgICAgdmVydGljYWwtYWxpZ246ICRjYXJldC12ZXJ0aWNhbC1hbGlnbjtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgICAgQGluY2x1ZGUgY2FyZXQtZG93bigpO1xuICAgICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgICAgQGluY2x1ZGUgY2FyZXQtdXAoKTtcbiAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBlbmQge1xuICAgICAgICBAaW5jbHVkZSBjYXJldC1lbmQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBzdGFydCB7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkY2FyZXQtc3BhY2luZztcbiAgICAgICAgdmVydGljYWwtYWxpZ246ICRjYXJldC12ZXJ0aWNhbC1hbGlnbjtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgQGluY2x1ZGUgY2FyZXQtc3RhcnQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmVtcHR5OjphZnRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cbi8vIHNjc3MtZG9jcy1lbmQgY2FyZXQtbWl4aW5zXG4iLCIvLyBQYWdpbmF0aW9uXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBwYWdpbmF0aW9uLW1peGluXG5AbWl4aW4gcGFnaW5hdGlvbi1zaXplKCRwYWRkaW5nLXksICRwYWRkaW5nLXgsICRmb250LXNpemUsICRib3JkZXItcmFkaXVzKSB7XG4gIC5wYWdlLWxpbmsge1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nLXkgJHBhZGRpbmcteDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZSk7XG4gIH1cblxuICAucGFnZS1pdGVtIHtcbiAgICBAaWYgJHBhZ2luYXRpb24tbWFyZ2luLXN0YXJ0ID09ICgtJHBhZ2luYXRpb24tYm9yZGVyLXdpZHRoKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgLnBhZ2UtbGluayB7XG4gICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXN0YXJ0LXJhZGl1cygkYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgLnBhZ2UtbGluayB7XG4gICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWVuZC1yYWRpdXMoJGJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAvL0FkZCBib3JkZXItcmFkaXVzIHRvIGFsbCBwYWdlTGlua3MgaW4gY2FzZSB0aGV5IGhhdmUgbGVmdCBtYXJnaW5cbiAgICAgIC5wYWdlLWxpbmsge1xuICAgICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8vIHNjc3MtZG9jcy1lbmQgcGFnaW5hdGlvbi1taXhpblxuIiwiLy8gTGlzdHNcblxuLy8gVW5zdHlsZWQga2VlcHMgbGlzdCBpdGVtcyBibG9jayBsZXZlbCwganVzdCByZW1vdmVzIGRlZmF1bHQgYnJvd3NlciBwYWRkaW5nIGFuZCBsaXN0LXN0eWxlXG5AbWl4aW4gbGlzdC11bnN0eWxlZCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbiIsIi8vIExpc3QgR3JvdXBzXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBsaXN0LWdyb3VwLW1peGluXG5AbWl4aW4gbGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoJHN0YXRlLCAkYmFja2dyb3VuZCwgJGNvbG9yKSB7XG4gIC5saXN0LWdyb3VwLWl0ZW0tI3skc3RhdGV9IHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgJi5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uIHtcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUtY29sb3IoJGJhY2tncm91bmQsIDEwJSk7XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8vIHNjc3MtZG9jcy1lbmQgbGlzdC1ncm91cC1taXhpblxuIiwiLy8gVGhpcyBtaXhpbiB1c2VzIGFuIGBpZigpYCB0ZWNobmlxdWUgdG8gYmUgY29tcGF0aWJsZSB3aXRoIERhcnQgU2Fzc1xuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzL3Nhc3MvaXNzdWVzLzE4NzMjaXNzdWVjb21tZW50LTE1MjI5MzcyNSBmb3IgbW9yZSBkZXRhaWxzXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBmb3JtLXZhbGlkYXRpb24tbWl4aW5zXG5AbWl4aW4gZm9ybS12YWxpZGF0aW9uLXN0YXRlLXNlbGVjdG9yKCRzdGF0ZSkge1xuICBAaWYgKCRzdGF0ZSA9PSBcInZhbGlkXCIgb3IgJHN0YXRlID09IFwiaW52YWxpZFwiKSB7XG4gICAgLndhcy12YWxpZGF0ZWQgI3tpZigmLCBcIiZcIiwgXCJcIil9OiN7JHN0YXRlfSxcbiAgICAje2lmKCYsIFwiJlwiLCBcIlwiKX0uaXMtI3skc3RhdGV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgI3tpZigmLCBcIiZcIiwgXCJcIil9LmlzLSN7JHN0YXRlfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvcm0tdmFsaWRhdGlvbi1zdGF0ZShcbiAgJHN0YXRlLFxuICAkY29sb3IsXG4gICRpY29uLFxuICAkdG9vbHRpcC1jb2xvcjogY29sb3ItY29udHJhc3QoJGNvbG9yKSxcbiAgJHRvb2x0aXAtYmctY29sb3I6IHJnYmEoJGNvbG9yLCAkZm9ybS1mZWVkYmFjay10b29sdGlwLW9wYWNpdHkpLFxuICAkZm9jdXMtYm94LXNoYWRvdzogMCAwICRpbnB1dC1idG4tZm9jdXMtYmx1ciAkaW5wdXQtZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsICRpbnB1dC1idG4tZm9jdXMtY29sb3Itb3BhY2l0eSlcbikge1xuICAuI3skc3RhdGV9LWZlZWRiYWNrIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6ICRmb3JtLWZlZWRiYWNrLW1hcmdpbi10b3A7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRmb3JtLWZlZWRiYWNrLWZvbnQtc2l6ZSk7XG4gICAgZm9udC1zdHlsZTogJGZvcm0tZmVlZGJhY2stZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIENvbnRhaW4gdG8gcGFyZW50IHdoZW4gcG9zc2libGVcbiAgICBwYWRkaW5nOiAkZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteSAkZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteDtcbiAgICBtYXJnaW4tdG9wOiAuMXJlbTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1mZWVkYmFjay10b29sdGlwLWxpbmUtaGVpZ2h0O1xuICAgIGNvbG9yOiAkdG9vbHRpcC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9vbHRpcC1iZy1jb2xvcjtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICBAaW5jbHVkZSBmb3JtLXZhbGlkYXRpb24tc3RhdGUtc2VsZWN0b3IoJHN0YXRlKSB7XG4gICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgIH4gLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIGZvcm0tdmFsaWRhdGlvbi1zdGF0ZS1zZWxlY3Rvcigkc3RhdGUpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuXG4gICAgICBAaWYgJGVuYWJsZS12YWxpZGF0aW9uLWljb25zIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGlucHV0LWhlaWdodC1pbm5lcjtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogZXNjYXBlLXN2ZygkaWNvbik7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0ICRpbnB1dC1oZWlnaHQtaW5uZXItcXVhcnRlciBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogJGlucHV0LWhlaWdodC1pbm5lci1oYWxmICRpbnB1dC1oZWlnaHQtaW5uZXItaGFsZjtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAkZm9jdXMtYm94LXNoYWRvdztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG4gIHRleHRhcmVhLmZvcm0tY29udHJvbCB7XG4gICAgQGluY2x1ZGUgZm9ybS12YWxpZGF0aW9uLXN0YXRlLXNlbGVjdG9yKCRzdGF0ZSkge1xuICAgICAgQGlmICRlbmFibGUtdmFsaWRhdGlvbi1pY29ucyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbnB1dC1oZWlnaHQtaW5uZXI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCAkaW5wdXQtaGVpZ2h0LWlubmVyLXF1YXJ0ZXIgcmlnaHQgJGlucHV0LWhlaWdodC1pbm5lci1xdWFydGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mb3JtLXNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS12YWxpZGF0aW9uLXN0YXRlLXNlbGVjdG9yKCRzdGF0ZSkge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG5cbiAgICAgIEBpZiAkZW5hYmxlLXZhbGlkYXRpb24taWNvbnMge1xuICAgICAgICAmOm5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKSxcbiAgICAgICAgJjpub3QoW211bHRpcGxlXSlbc2l6ZT1cIjFcIl0ge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRmb3JtLXNlbGVjdC1mZWVkYmFjay1pY29uLXBhZGRpbmctZW5kO1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGVzY2FwZS1zdmcoJGZvcm0tc2VsZWN0LWluZGljYXRvciksIGVzY2FwZS1zdmcoJGljb24pO1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRmb3JtLXNlbGVjdC1iZy1wb3NpdGlvbiwgJGZvcm0tc2VsZWN0LWZlZWRiYWNrLWljb24tcG9zaXRpb247XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAkZm9ybS1zZWxlY3QtYmctc2l6ZSwgJGZvcm0tc2VsZWN0LWZlZWRiYWNrLWljb24tc2l6ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIGJveC1zaGFkb3c6ICRmb2N1cy1ib3gtc2hhZG93O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mb3JtLWNoZWNrLWlucHV0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXZhbGlkYXRpb24tc3RhdGUtc2VsZWN0b3IoJHN0YXRlKSB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcblxuICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYm94LXNoYWRvdzogJGZvY3VzLWJveC1zaGFkb3c7XG4gICAgICB9XG5cbiAgICAgIH4gLmZvcm0tY2hlY2stbGFiZWwge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuZm9ybS1jaGVjay1pbmxpbmUgLmZvcm0tY2hlY2staW5wdXQge1xuICAgIH4gLiN7JHN0YXRlfS1mZWVkYmFjayB7XG4gICAgICBtYXJnaW4tbGVmdDogLjVlbTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCxcbiAgLmlucHV0LWdyb3VwIC5mb3JtLXNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS12YWxpZGF0aW9uLXN0YXRlLXNlbGVjdG9yKCRzdGF0ZSkge1xuICAgICAgQGlmICRzdGF0ZSA9PSBcInZhbGlkXCIge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgfSBAZWxzZSBpZiAkc3RhdGUgPT0gXCJpbnZhbGlkXCIge1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgfVxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vLyBzY3NzLWRvY3MtZW5kIGZvcm0tdmFsaWRhdGlvbi1taXhpbnNcbiIsIi8vIHNjc3MtZG9jcy1zdGFydCB0YWJsZS12YXJpYW50XG5AbWl4aW4gdGFibGUtdmFyaWFudCgkc3RhdGUsICRiYWNrZ3JvdW5kKSB7XG4gIC50YWJsZS0jeyRzdGF0ZX0ge1xuICAgICRjb2xvcjogY29sb3ItY29udHJhc3Qob3BhcXVlKCRib2R5LWJnLCAkYmFja2dyb3VuZCkpO1xuICAgICRob3Zlci1iZzogbWl4KCRjb2xvciwgJGJhY2tncm91bmQsIHBlcmNlbnRhZ2UoJHRhYmxlLWhvdmVyLWJnLWZhY3RvcikpO1xuICAgICRzdHJpcGVkLWJnOiBtaXgoJGNvbG9yLCAkYmFja2dyb3VuZCwgcGVyY2VudGFnZSgkdGFibGUtc3RyaXBlZC1iZy1mYWN0b3IpKTtcbiAgICAkYWN0aXZlLWJnOiBtaXgoJGNvbG9yLCAkYmFja2dyb3VuZCwgcGVyY2VudGFnZSgkdGFibGUtYWN0aXZlLWJnLWZhY3RvcikpO1xuXG4gICAgLS0jeyR2YXJpYWJsZS1wcmVmaXh9dGFibGUtYmc6ICN7JGJhY2tncm91bmR9O1xuICAgIC0tI3skdmFyaWFibGUtcHJlZml4fXRhYmxlLXN0cmlwZWQtYmc6ICN7JHN0cmlwZWQtYmd9O1xuICAgIC0tI3skdmFyaWFibGUtcHJlZml4fXRhYmxlLXN0cmlwZWQtY29sb3I6ICN7Y29sb3ItY29udHJhc3QoJHN0cmlwZWQtYmcpfTtcbiAgICAtLSN7JHZhcmlhYmxlLXByZWZpeH10YWJsZS1hY3RpdmUtYmc6ICN7JGFjdGl2ZS1iZ307XG4gICAgLS0jeyR2YXJpYWJsZS1wcmVmaXh9dGFibGUtYWN0aXZlLWNvbG9yOiAje2NvbG9yLWNvbnRyYXN0KCRhY3RpdmUtYmcpfTtcbiAgICAtLSN7JHZhcmlhYmxlLXByZWZpeH10YWJsZS1ob3Zlci1iZzogI3skaG92ZXItYmd9O1xuICAgIC0tI3skdmFyaWFibGUtcHJlZml4fXRhYmxlLWhvdmVyLWNvbG9yOiAje2NvbG9yLWNvbnRyYXN0KCRob3Zlci1iZyl9O1xuXG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6IG1peCgkY29sb3IsICRiYWNrZ3JvdW5kLCBwZXJjZW50YWdlKCR0YWJsZS1ib3JkZXItZmFjdG9yKSk7XG4gIH1cbn1cbi8vIHNjc3MtZG9jcy1lbmQgdGFibGUtdmFyaWFudFxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktZGlzYWxsb3dlZC1saXN0XG4vLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byByZXBsYWNlIG5lZ2F0aXZlIHZhbHVlcyB3aXRoIDBcbkBmdW5jdGlvbiB2YWxpZC1yYWRpdXMoJHJhZGl1cykge1xuICAkcmV0dXJuOiAoKTtcbiAgQGVhY2ggJHZhbHVlIGluICRyYWRpdXMge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbnVtYmVyIHtcbiAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCBtYXgoJHZhbHVlLCAwKSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgJHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgYm9yZGVyLXJhZGl1cy1taXhpbnNcbkBtaXhpbiBib3JkZXItcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzLCAkZmFsbGJhY2stYm9yZGVyLXJhZGl1czogZmFsc2UpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG4gIEBlbHNlIGlmICRmYWxsYmFjay1ib3JkZXItcmFkaXVzICE9IGZhbHNlIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZmFsbGJhY2stYm9yZGVyLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1lbmQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1zdGFydC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1zdGFydC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLWVuZC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1lbmQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tc3RhcnQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuLy8gc2Nzcy1kb2NzLWVuZCBib3JkZXItcmFkaXVzLW1peGluc1xuIiwiQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICBAaWYgJGVuYWJsZS1zaGFkb3dzIHtcbiAgICAkcmVzdWx0OiAoKTtcblxuICAgIEBlYWNoICR2YWx1ZSBpbiAkc2hhZG93IHtcbiAgICAgIEBpZiAkdmFsdWUgIT0gbnVsbCB7XG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkdmFsdWUsIFwiY29tbWFcIik7XG4gICAgICB9XG4gICAgICBAaWYgJHZhbHVlID09IG5vbmUgYW5kIGxlbmd0aCgkc2hhZG93KSA+IDEge1xuICAgICAgICBAd2FybiBcIlRoZSBrZXl3b3JkICdub25lJyBtdXN0IGJlIHVzZWQgYXMgYSBzaW5nbGUgYXJndW1lbnQuXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmIChsZW5ndGgoJHJlc3VsdCkgPiAwKSB7XG4gICAgICBib3gtc2hhZG93OiAkcmVzdWx0O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gR3JhZGllbnRzXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBncmFkaWVudC1iZy1taXhpblxuQG1peGluIGdyYWRpZW50LWJnKCRjb2xvcjogbnVsbCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG5cbiAgQGlmICRlbmFibGUtZ3JhZGllbnRzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3JhZGllbnQpO1xuICB9XG59XG4vLyBzY3NzLWRvY3MtZW5kIGdyYWRpZW50LWJnLW1peGluXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBncmFkaWVudC1taXhpbnNcbi8vIEhvcml6b250YWwgZ3JhZGllbnQsIGZyb20gbGVmdCB0byByaWdodFxuLy9cbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG5AbWl4aW4gZ3JhZGllbnQteCgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciAkc3RhcnQtcGVyY2VudCwgJGVuZC1jb2xvciAkZW5kLXBlcmNlbnQpO1xufVxuXG4vLyBWZXJ0aWNhbCBncmFkaWVudCwgZnJvbSB0b3AgdG8gYm90dG9tXG4vL1xuLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbkBtaXhpbiBncmFkaWVudC15KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiBudWxsLCAkZW5kLXBlcmNlbnQ6IG51bGwpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XG59XG5cbkBtaXhpbiBncmFkaWVudC1kaXJlY3Rpb25hbCgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkZGVnOiA0NWRlZykge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRlZywgJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yKTtcbn1cblxuQG1peGluIGdyYWRpZW50LXgtdGhyZWUtY29sb3JzKCRzdGFydC1jb2xvcjogJGJsdWUsICRtaWQtY29sb3I6ICRwdXJwbGUsICRjb2xvci1zdG9wOiA1MCUsICRlbmQtY29sb3I6ICRyZWQpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xufVxuXG5AbWl4aW4gZ3JhZGllbnQteS10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAkYmx1ZSwgJG1pZC1jb2xvcjogJHB1cnBsZSwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogJHJlZCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbn1cblxuQG1peGluIGdyYWRpZW50LXJhZGlhbCgkaW5uZXItY29sb3I6ICRncmF5LTcwMCwgJG91dGVyLWNvbG9yOiAkZ3JheS04MDApIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgJGlubmVyLWNvbG9yLCAkb3V0ZXItY29sb3IpO1xufVxuXG5AbWl4aW4gZ3JhZGllbnQtc3RyaXBlZCgkY29sb3I6IHJnYmEoJHdoaXRlLCAuMTUpLCAkYW5nbGU6IDQ1ZGVnKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkYW5nbGUsICRjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCAkY29sb3IgNTAlLCAkY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbn1cbi8vIHNjc3MtZG9jcy1lbmQgZ3JhZGllbnQtbWl4aW5zXG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1kaXNhbGxvd2VkLWxpc3RcbkBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHRyYW5zaXRpb24pID09IDAge1xuICAgICR0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1iYXNlO1xuICB9XG5cbiAgQGlmIGxlbmd0aCgkdHJhbnNpdGlvbikgPiAxIHtcbiAgICBAZWFjaCAkdmFsdWUgaW4gJHRyYW5zaXRpb24ge1xuICAgICAgQGlmICR2YWx1ZSA9PSBudWxsIG9yICR2YWx1ZSA9PSBub25lIHtcbiAgICAgICAgQHdhcm4gXCJUaGUga2V5d29yZCAnbm9uZScgb3IgJ251bGwnIG11c3QgYmUgdXNlZCBhcyBhIHNpbmdsZSBhcmd1bWVudC5cIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGVuYWJsZS10cmFuc2l0aW9ucyB7XG4gICAgQGlmIG50aCgkdHJhbnNpdGlvbiwgMSkgIT0gbnVsbCB7XG4gICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgICB9XG5cbiAgICBAaWYgJGVuYWJsZS1yZWR1Y2VkLW1vdGlvbiBhbmQgbnRoKCR0cmFuc2l0aW9uLCAxKSAhPSBudWxsIGFuZCBudGgoJHRyYW5zaXRpb24sIDEpICE9IG5vbmUge1xuICAgICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIHNjc3MtZG9jcy1zdGFydCBjbGVhcmZpeFxuQG1peGluIGNsZWFyZml4KCkge1xuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxufVxuLy8gc2Nzcy1kb2NzLWVuZCBjbGVhcmZpeFxuIiwiLy8gQ29udGFpbmVyIG1peGluc1xuXG5AbWl4aW4gbWFrZS1jb250YWluZXIoJGd1dHRlcjogJGNvbnRhaW5lci1wYWRkaW5nLXgpIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteCwgI3skZ3V0dGVyfSk7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci14LCAjeyRndXR0ZXJ9KTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cbiIsIi8vIEdyaWQgc3lzdGVtXG4vL1xuLy8gR2VuZXJhdGUgc2VtYW50aWMgZ3JpZCBjb2x1bW5zIHdpdGggdGhlc2UgbWl4aW5zLlxuXG5AbWl4aW4gbWFrZS1yb3coJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci14OiAjeyRndXR0ZXJ9O1xuICAtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICAvLyBUT0RPOiBSZXZpc2l0IGNhbGMgb3JkZXIgYWZ0ZXIgaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWJvb3RzdHJhcC9yZWFjdC1ib290c3RyYXAvaXNzdWVzLzYwMzkgaXMgZml4ZWRcbiAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteSkpOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGZ1bmN0aW9uLWRpc2FsbG93ZWQtbGlzdFxuICBtYXJnaW4tcmlnaHQ6IGNhbGMoLS41ICogdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci14KSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKC0uNSAqIHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH1ndXR0ZXIteCkpOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGZ1bmN0aW9uLWRpc2FsbG93ZWQtbGlzdFxufVxuXG5AbWl4aW4gbWFrZS1jb2wtcmVhZHkoJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIC8vIEFkZCBib3ggc2l6aW5nIGlmIG9ubHkgdGhlIGdyaWQgaXMgbG9hZGVkXG4gIGJveC1zaXppbmc6IGlmKHZhcmlhYmxlLWV4aXN0cyhpbmNsdWRlLWNvbHVtbi1ib3gtc2l6aW5nKSBhbmQgJGluY2x1ZGUtY29sdW1uLWJveC1zaXppbmcsIGJvcmRlci1ib3gsIG51bGwpO1xuICAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBiZWNvbWluZyB0b28gbmFycm93IHdoZW4gYXQgc21hbGxlciBncmlkIHRpZXJzIGJ5XG4gIC8vIGFsd2F5cyBzZXR0aW5nIGB3aWR0aDogMTAwJTtgLiBUaGlzIHdvcmtzIGJlY2F1c2Ugd2Ugc2V0IHRoZSB3aWR0aFxuICAvLyBsYXRlciBvbiB0byBvdmVycmlkZSB0aGlzIGluaXRpYWwgd2lkdGguXG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyAvLyBQcmV2ZW50IGAuY29sLWF1dG9gLCBgLmNvbGAgKCYgcmVzcG9uc2l2ZSB2YXJpYW50cykgZnJvbSBicmVha2luZyBvdXQgdGhlIGdyaWRcbiAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXgpICogLjUpOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGZ1bmN0aW9uLWRpc2FsbG93ZWQtbGlzdFxuICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci14KSAqIC41KTsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBmdW5jdGlvbi1kaXNhbGxvd2VkLWxpc3RcbiAgbWFyZ2luLXRvcDogdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci15KTtcbn1cblxuQG1peGluIG1ha2UtY29sKCRzaXplOiBmYWxzZSwgJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGlmICRzaXplIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogcGVyY2VudGFnZShkaXZpZGUoJHNpemUsICRjb2x1bW5zKSk7XG5cbiAgfSBAZWxzZSB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1hdXRvKCkge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IGF1dG87XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1vZmZzZXQoJHNpemUsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gICRudW06IGRpdmlkZSgkc2l6ZSwgJGNvbHVtbnMpO1xuICBtYXJnaW4tbGVmdDogaWYoJG51bSA9PSAwLCAwLCBwZXJjZW50YWdlKCRudW0pKTtcbn1cblxuLy8gUm93IGNvbHVtbnNcbi8vXG4vLyBTcGVjaWZ5IG9uIGEgcGFyZW50IGVsZW1lbnQoZS5nLiwgLnJvdykgdG8gZm9yY2UgaW1tZWRpYXRlIGNoaWxkcmVuIGludG8gTk5cbi8vIG51bWJlcm9mIGNvbHVtbnMuIFN1cHBvcnRzIHdyYXBwaW5nIHRvIG5ldyBsaW5lcywgYnV0IGRvZXMgbm90IGRvIGEgTWFzb25yeVxuLy8gc3R5bGUgZ3JpZC5cbkBtaXhpbiByb3ctY29scygkY291bnQpIHtcbiAgPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogZGl2aWRlKDEwMCUsICRjb3VudCk7XG4gIH1cbn1cblxuLy8gRnJhbWV3b3JrIGdyaWQgZ2VuZXJhdGlvblxuLy9cbi8vIFVzZWQgb25seSBieSBCb290c3RyYXAgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGdyaWQgY2xhc3NlcyBnaXZlblxuLy8gYW55IHZhbHVlIG9mIGAkZ3JpZC1jb2x1bW5zYC5cblxuQG1peGluIG1ha2UtZ3JpZC1jb2x1bW5zKCRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zLCAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGJyZWFrcG9pbnRzKSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICAvLyBQcm92aWRlIGJhc2ljIGAuY29sLXticH1gIGNsYXNzZXMgZm9yIGVxdWFsLXdpZHRoIGZsZXhib3ggY29sdW1uc1xuICAgICAgLmNvbCN7JGluZml4fSB7XG4gICAgICAgIGZsZXg6IDEgMCAwJTsgLy8gRmxleGJ1Z3MgIzQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MjZmxleGJ1Zy00XG4gICAgICB9XG5cbiAgICAgIC5yb3ctY29scyN7JGluZml4fS1hdXRvID4gKiB7XG4gICAgICAgIEBpbmNsdWRlIG1ha2UtY29sLWF1dG8oKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRncmlkLXJvdy1jb2x1bW5zID4gMCB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtcm93LWNvbHVtbnMge1xuICAgICAgICAgIC5yb3ctY29scyN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByb3ctY29scygkaSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jb2wjeyRpbmZpeH0tYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIG1ha2UtY29sLWF1dG8oKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRjb2x1bW5zID4gMCB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICAgICAgIC5jb2wjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2woJGksICRjb2x1bW5zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBgJGNvbHVtbnMgLSAxYCBiZWNhdXNlIG9mZnNldHRpbmcgYnkgdGhlIHdpZHRoIG9mIGFuIGVudGlyZSByb3cgaXNuJ3QgcG9zc2libGVcbiAgICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAoJGNvbHVtbnMgLSAxKSB7XG4gICAgICAgICAgQGlmIG5vdCAoJGluZml4ID09IFwiXCIgYW5kICRpID09IDApIHsgLy8gQXZvaWQgZW1pdHRpbmcgdXNlbGVzcyAub2Zmc2V0LTBcbiAgICAgICAgICAgIC5vZmZzZXQjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbC1vZmZzZXQoJGksICRjb2x1bW5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gR3V0dGVyc1xuICAgICAgLy9cbiAgICAgIC8vIE1ha2UgdXNlIG9mIGAuZy0qYCwgYC5neC0qYCBvciBgLmd5LSpgIHV0aWxpdGllcyB0byBjaGFuZ2Ugc3BhY2luZyBiZXR3ZWVuIHRoZSBjb2x1bW5zLlxuICAgICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRndXR0ZXJzIHtcbiAgICAgICAgLmcjeyRpbmZpeH0tI3ska2V5fSxcbiAgICAgICAgLmd4I3skaW5maXh9LSN7JGtleX0ge1xuICAgICAgICAgIC0tI3skdmFyaWFibGUtcHJlZml4fWd1dHRlci14OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cblxuICAgICAgICAuZyN7JGluZml4fS0jeyRrZXl9LFxuICAgICAgICAuZ3kjeyRpbmZpeH0tI3ska2V5fSB7XG4gICAgICAgICAgLS0jeyR2YXJpYWJsZS1wcmVmaXh9Z3V0dGVyLXk6ICN7JHZhbHVlfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWFrZS1jc3NncmlkKCRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRicmVha3BvaW50cykge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgQGlmICRjb2x1bW5zID4gMCB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICAgICAgIC5nLWNvbCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogYXV0byAvIHNwYW4gJGk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RhcnQgd2l0aCBgMWAgYmVjYXVzZSBgMGAgaXMgYW5kIGludmFsaWQgdmFsdWUuXG4gICAgICAgIC8vIEVuZHMgd2l0aCBgJGNvbHVtbnMgLSAxYCBiZWNhdXNlIG9mZnNldHRpbmcgYnkgdGhlIHdpZHRoIG9mIGFuIGVudGlyZSByb3cgaXNuJ3QgcG9zc2libGUuXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRjb2x1bW5zIC0gMSkge1xuICAgICAgICAgIC5nLXN0YXJ0I3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAkaTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogd29vY29tbWVyY2Uuc2Nzc1xuICogR292ZXJucyB0aGUgZ2VuZXJhbCBsb29rIGFuZCBmZWVsIG9mIFdvb0NvbW1lcmNlIHNlY3Rpb25zIG9mIHN0b3JlcyB1c2luZyB0aGVtZXMgdGhhdCBkbyBub3RcbiAqIGludGVncmF0ZSB3aXRoIFdvb0NvbW1lcmNlIHNwZWNpZmljYWxseS5cbiAqL1xuXG4vKipcbiAqIEltcG9ydHNcbiAqL1xuQGltcG9ydCBcIm1peGluc1wiO1xuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImFuaW1hdGlvblwiO1xuQGltcG9ydCBcImZvbnRzXCI7XG5cbi8qKlxuICogR2xvYmFsIHN0eWxlc1xuICovXG5wLmRlbW9fc3RvcmUsXG4ud29vY29tbWVyY2Utc3RvcmUtbm90aWNlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xuXHRtYXJnaW46IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRmb250LXNpemU6IDFlbTtcblx0cGFkZGluZzogMWVtIDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XG5cdGNvbG9yOiAkcHJpbWFyeXRleHQ7XG5cdHotaW5kZXg6IDk5OTk4O1xuXHRib3gtc2hhZG93OiAwIDFweCAxZW0gcmdiYSgwLCAwLCAwLCAwLjIpO1xuXHRkaXNwbGF5OiBub25lO1xuXG5cdGEge1xuXHRcdGNvbG9yOiAkcHJpbWFyeXRleHQ7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdH1cbn1cblxuLnNjcmVlbi1yZWFkZXItdGV4dCB7XG5cdGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcblx0aGVpZ2h0OiAxcHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogMXB4O1xuXHR3b3JkLXdyYXA6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uYWRtaW4tYmFyIHAuZGVtb19zdG9yZSB7XG5cdHRvcDogMzJweDtcbn1cblxuLyoqXG4gKiBVdGlsaXR5IGNsYXNzZXNcbiAqL1xuLmNsZWFyIHtcblx0Y2xlYXI6IGJvdGg7XG59XG5cbi8qKlxuICogTWFpbiBXb29Db21tZXJjZSBzdHlsZXNcbiAqL1xuLndvb2NvbW1lcmNlIHtcblxuXHQuYmxvY2tVSS5ibG9ja092ZXJsYXkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdEBpbmNsdWRlIGxvYWRlcigpO1xuXHR9XG5cblx0LmxvYWRlciB7XG5cblx0XHRAaW5jbHVkZSBsb2FkZXIoKTtcblx0fVxuXG5cdGEucmVtb3ZlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdGhlaWdodDogMWVtO1xuXHRcdHdpZHRoOiAxZW07XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cdFx0Y29sb3I6IHJlZCAhaW1wb3J0YW50OyAvLyBSZXF1aXJlZCBmb3IgZGVmYXVsdCB0aGVtZSBjb21wYXRpYmlsaXR5XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0Ym9yZGVyOiAwO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogI2ZmZiAhaW1wb3J0YW50OyAvLyBSZXF1aXJlZCBmb3IgZGVmYXVsdCB0aGVtZSBjb21wYXRpYmlsaXR5XG5cdFx0XHRiYWNrZ3JvdW5kOiByZWQ7XG5cdFx0fVxuXHR9XG5cblx0c21hbGwubm90ZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Y29sb3I6ICRzdWJ0ZXh0O1xuXHRcdGZvbnQtc2l6ZTogMC44NTdlbTtcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHR9XG5cblx0Lndvb2NvbW1lcmNlLWJyZWFkY3J1bWIge1xuXG5cdFx0QGluY2x1ZGUgY2xlYXJmaXgoKTtcblx0XHRtYXJnaW46IDAgMCAxZW07XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC5xdWFudGl0eSAucXR5IHtcblx0XHR3aWR0aDogMy42MzFlbTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblxuXHQvKipcblx0ICogUHJvZHVjdCBQYWdlXG5cdCAqL1xuXHRkaXYucHJvZHVjdCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQucHJvZHVjdF90aXRsZSB7XG5cdFx0XHRjbGVhcjogbm9uZTtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblxuXHRcdHNwYW4ucHJpY2UsXG5cdFx0cC5wcmljZSB7XG5cblx0XHRcdGlucyB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IGluaGVyaXQ7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdH1cblxuXHRcdFx0ZGVsIHtcblx0XHRcdFx0b3BhY2l0eTogMC41O1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cC5zdG9jayB7XG5cdFx0XHRmb250LXNpemU6IDAuOTJlbTtcblx0XHR9XG5cblx0XHQud29vY29tbWVyY2UtcHJvZHVjdC1yYXRpbmcge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMS42MThlbTtcblx0XHR9XG5cblx0XHRkaXYuaW1hZ2VzIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDJlbTtcblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdGRpdi50aHVtYm5haWxzIHtcblx0XHRcdFx0cGFkZGluZy10b3A6IDFlbTtcblx0XHRcdH1cblxuXHRcdFx0Ji53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnkge1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR9XG5cblx0XHRcdC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX3dyYXBwZXIge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgY3ViaWMtYmV6aWVyKDAuNzk1LCAtMC4wMzUsIDAsIDEpIDAuNXM7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdH1cblxuXHRcdFx0Lndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9fd3JhcHBlciAuem9vbUltZyB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHR9XG5cblx0XHRcdC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX2ltYWdlLS1wbGFjZWhvbGRlciB7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNmMmYyZjI7XG5cdFx0XHR9XG5cblx0XHRcdC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX2ltYWdlOm50aC1jaGlsZChuKzIpIHtcblx0XHRcdFx0d2lkdGg6IDI1JTtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0fVxuXG5cdFx0XHQud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X190cmlnZ2VyIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDAuNWVtO1xuXHRcdFx0XHRyaWdodDogMC41ZW07XG5cdFx0XHRcdGZvbnQtc2l6ZTogMmVtO1xuXHRcdFx0XHR6LWluZGV4OiA5O1xuXHRcdFx0XHR3aWR0aDogMzZweDtcblx0XHRcdFx0aGVpZ2h0OiAzNnB4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdFx0XHR0ZXh0LWluZGVudDogLTk5OTlweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwJTtcblx0XHRcdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cblx0XHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdHdpZHRoOiAxMHB4O1xuXHRcdFx0XHRcdGhlaWdodDogMTBweDtcblx0XHRcdFx0XHRib3JkZXI6IDJweCBzb2xpZCAjMDAwO1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdHRvcDogOXB4O1xuXHRcdFx0XHRcdGxlZnQ6IDlweDtcblx0XHRcdFx0XHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdHdpZHRoOiAycHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiA4cHg7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogIzAwMDtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA2cHg7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdHRvcDogMTlweDtcblx0XHRcdFx0XHRsZWZ0OiAyMnB4O1xuXHRcdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG5cdFx0XHRcdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LmZsZXgtY29udHJvbC10aHVtYnMge1xuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0XHR6b29tOiAxO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdHdpZHRoOiAyNSU7XG5cdFx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cblx0XHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0XHRcdFx0b3BhY2l0eTogMC41O1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRcdFx0XHQmLmZsZXgtYWN0aXZlLFxuXHRcdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeS0tY29sdW1ucy0zIHtcblxuXHRcdFx0LmZsZXgtY29udHJvbC10aHVtYnMgbGk6bnRoLWNoaWxkKDNuKzEpIHtcblx0XHRcdFx0Y2xlYXI6IGxlZnQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeS0tY29sdW1ucy00IHtcblxuXHRcdFx0LmZsZXgtY29udHJvbC10aHVtYnMgbGk6bnRoLWNoaWxkKDRuKzEpIHtcblx0XHRcdFx0Y2xlYXI6IGxlZnQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeS0tY29sdW1ucy01IHtcblxuXHRcdFx0LmZsZXgtY29udHJvbC10aHVtYnMgbGk6bnRoLWNoaWxkKDVuKzEpIHtcblx0XHRcdFx0Y2xlYXI6IGxlZnQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0ZGl2LnN1bW1hcnkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMmVtO1xuXHRcdH1cblxuXHRcdGRpdi5zb2NpYWwge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0XHRtYXJnaW46IDAgMCAxZW07XG5cblx0XHRcdHNwYW4ge1xuXHRcdFx0XHRtYXJnaW46IDAgMCAwIDJweDtcblxuXHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuc3RCdXR0b24gLmNoaWNrbGV0cyB7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxNnB4O1xuXHRcdFx0XHRcdHdpZHRoOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmcmFtZSB7XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAzcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lndvb2NvbW1lcmNlLXRhYnMge1xuXG5cdFx0XHR1bC50YWJzIHtcblx0XHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRcdFx0cGFkZGluZzogMCAwIDAgMWVtO1xuXHRcdFx0XHRtYXJnaW46IDAgMCAxLjYxOGVtO1xuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkc2Vjb25kYXJ5LCAxMCUpO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnk7XG5cdFx0XHRcdFx0Y29sb3I6ICRzZWNvbmRhcnl0ZXh0O1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0ei1pbmRleDogMDtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcblx0XHRcdFx0XHRtYXJnaW46IDAgLTVweDtcblx0XHRcdFx0XHRwYWRkaW5nOiAwIDFlbTtcblxuXHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdFx0cGFkZGluZzogMC41ZW0gMDtcblx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRcdFx0XHRjb2xvcjogJHNlY29uZGFyeXRleHQ7XG5cdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiBsaWdodGVuKCRzZWNvbmRhcnl0ZXh0LCAxMCUpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYuYWN0aXZlIHtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6ICRjb250ZW50Ymc7XG5cdFx0XHRcdFx0XHRjb2xvcjogJHNlY29uZGFyeXRleHQ7XG5cdFx0XHRcdFx0XHR6LWluZGV4OiAyO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbnRlbnRiZztcblxuXHRcdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdFx0XHRcdFx0XHR0ZXh0LXNoYWRvdzogaW5oZXJpdDtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0XHRcdFx0Ym94LXNoYWRvdzogMnB4IDJweCAwICRjb250ZW50Ymc7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0XHRcdFx0Ym94LXNoYWRvdzogLTJweCAycHggMCAkY29udGVudGJnO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCY6OmJlZm9yZSxcblx0XHRcdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJHNlY29uZGFyeSwgMTAlKTtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRcdGJvdHRvbTogLTFweDtcblx0XHRcdFx0XHRcdHdpZHRoOiA1cHg7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IDVweDtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiIFwiO1xuXHRcdFx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0bGVmdDogLTVweDtcblx0XHRcdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG5cdFx0XHRcdFx0XHRib3JkZXItd2lkdGg6IDAgMXB4IDFweCAwO1xuXHRcdFx0XHRcdFx0Ym94LXNoYWRvdzogMnB4IDJweCAwICRzZWNvbmRhcnk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0cmlnaHQ6IC01cHg7XG5cdFx0XHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG5cdFx0XHRcdFx0XHRib3JkZXItd2lkdGg6IDAgMCAxcHggMXB4O1xuXHRcdFx0XHRcdFx0Ym94LXNoYWRvdzogLTJweCAycHggMCAkc2Vjb25kYXJ5O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdGNvbnRlbnQ6IFwiIFwiO1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdGJvdHRvbTogMDtcblx0XHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oJHNlY29uZGFyeSwgMTAlKTtcblx0XHRcdFx0XHR6LWluZGV4OiAxO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5wYW5lbCB7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDJlbTtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRwLmNhcnQge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMmVtO1xuXG5cdFx0XHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXHRcdH1cblxuXHRcdGZvcm0uY2FydCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyZW07XG5cblx0XHRcdEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cblx0XHRcdGRpdi5xdWFudGl0eSB7XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHRtYXJnaW46IDAgNHB4IDAgMDtcblx0XHRcdH1cblxuXHRcdFx0dGFibGUge1xuXHRcdFx0XHRib3JkZXItd2lkdGg6IDAgMCAxcHg7XG5cblx0XHRcdFx0dGQge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGRpdi5xdWFudGl0eSB7XG5cdFx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0c21hbGwuc3RvY2sge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC52YXJpYXRpb25zIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMWVtO1xuXHRcdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRcdHRkLFxuXHRcdFx0XHR0aCB7XG5cdFx0XHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAyZW07XG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGxhYmVsIHtcblx0XHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzZWxlY3Qge1xuXHRcdFx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdFx0XHRtaW4td2lkdGg6IDc1JTtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAxZW07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0ZC5sYWJlbCB7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMWVtO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC53b29jb21tZXJjZS12YXJpYXRpb24tZGVzY3JpcHRpb24gcCB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDFlbTtcblx0XHRcdH1cblxuXHRcdFx0LnJlc2V0X3ZhcmlhdGlvbnMge1xuXHRcdFx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0XHRcdGZvbnQtc2l6ZTogMC44M2VtO1xuXHRcdFx0fVxuXG5cdFx0XHQud2Mtbm8tbWF0Y2hpbmctdmFyaWF0aW9ucyB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdC5idXR0b24ge1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdH1cblxuXHRcdFx0Lmdyb3VwX3RhYmxlIHtcblxuXHRcdFx0XHR0ZC53b29jb21tZXJjZS1ncm91cGVkLXByb2R1Y3QtbGlzdC1pdGVtX19sYWJlbCB7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMWVtO1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMWVtO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGQge1xuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IDAuNWVtO1xuXHRcdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRkOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0XHR3aWR0aDogNGVtO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC53Yy1ncm91cGVkLXByb2R1Y3QtYWRkLXRvLWNhcnQtY2hlY2tib3gge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuNSwgMS41KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHNwYW4ub25zYWxlIHtcblx0XHRtaW4taGVpZ2h0OiAzLjIzNmVtO1xuXHRcdG1pbi13aWR0aDogMy4yMzZlbTtcblx0XHRwYWRkaW5nOiAwLjIwMmVtO1xuXHRcdGZvbnQtc2l6ZTogMWVtO1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRsaW5lLWhlaWdodDogMy4yMzY7XG5cdFx0dG9wOiAtMC41ZW07XG5cdFx0bGVmdDogLTAuNWVtO1xuXHRcdG1hcmdpbjogMDtcblx0XHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRoaWdobGlnaHQ7XG5cdFx0Y29sb3I6ICRoaWdobGlnaHRleHQ7XG5cdFx0Zm9udC1zaXplOiAwLjg1N2VtO1xuXHRcdHotaW5kZXg6IDk7XG5cdH1cblxuXHQvKipcblx0ICogUHJvZHVjdCBsb29wc1xuXHQgKi9cblx0LnByb2R1Y3RzIHVsLFxuXHR1bC5wcm9kdWN0cyB7XG5cdFx0bWFyZ2luOiAwIDAgMWVtO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlO1xuXHRcdGNsZWFyOiBib3RoO1xuXG5cdFx0QGluY2x1ZGUgY2xlYXJmaXgoKTtcblxuXHRcdGxpIHtcblx0XHRcdGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcblx0XHR9XG5cdH1cblxuXHR1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IHtcblxuXHRcdC5vbnNhbGUge1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRsZWZ0OiBhdXRvO1xuXHRcdFx0bWFyZ2luOiAtMC41ZW0gLTAuNWVtIDAgMDtcblx0XHR9XG5cblx0XHRoMyxcblx0XHQud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X190aXRsZSxcblx0XHQud29vY29tbWVyY2UtbG9vcC1jYXRlZ29yeV9fdGl0bGUge1xuXHRcdFx0cGFkZGluZzogMC41ZW0gMDtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGZvbnQtc2l6ZTogMWVtO1xuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblxuXHRcdGEgaW1nIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW46IDAgMCAxZW07XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdH1cblxuXHRcdHN0cm9uZyB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cblx0XHQud29vY29tbWVyY2UtcGxhY2Vob2xkZXIge1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2YyZjJmMjtcblx0XHR9XG5cblx0XHQuc3Rhci1yYXRpbmcge1xuXHRcdFx0Zm9udC1zaXplOiAwLjg1N2VtO1xuXHRcdH1cblxuXHRcdC5idXR0b24ge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0bWFyZ2luLXRvcDogMWVtO1xuXHRcdH1cblxuXHRcdC5wcmljZSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwLjVlbTtcblx0XHRcdGZvbnQtc2l6ZTogMC44NTdlbTtcblxuXHRcdFx0ZGVsIHtcblx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHRcdG9wYWNpdHk6IDAuNTtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0fVxuXG5cdFx0XHRpbnMge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR9XG5cblx0XHRcdC5mcm9tIHtcblx0XHRcdFx0Zm9udC1zaXplOiAwLjY3ZW07XG5cdFx0XHRcdG1hcmdpbjogLTJweCAwIDAgMDtcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0Y29sb3I6IHJnYmEoZGVzYXR1cmF0ZSgkaGlnaGxpZ2h0LCA3NSUpLCAwLjUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC53b29jb21tZXJjZS1yZXN1bHQtY291bnQge1xuXHRcdG1hcmdpbjogMCAwIDFlbTtcblx0fVxuXG5cdC53b29jb21tZXJjZS1vcmRlcmluZyB7XG5cdFx0bWFyZ2luOiAwIDAgMWVtO1xuXG5cdFx0c2VsZWN0IHtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0fVxuXHR9XG5cblx0bmF2Lndvb2NvbW1lcmNlLXBhZ2luYXRpb24ge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdHVsIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0Y2xlYXI6IGJvdGg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJHNlY29uZGFyeSwgMTAlKTtcblx0XHRcdGJvcmRlci1yaWdodDogMDtcblx0XHRcdG1hcmdpbjogMXB4O1xuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGRhcmtlbigkc2Vjb25kYXJ5LCAxMCUpO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHRcdFx0YSxcblx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMWVtO1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0XHRcdFx0cGFkZGluZzogMC41ZW07XG5cdFx0XHRcdFx0bWluLXdpZHRoOiAxZW07XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzcGFuLmN1cnJlbnQsXG5cdFx0XHRcdGE6aG92ZXIsXG5cdFx0XHRcdGE6Zm9jdXMge1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICRzZWNvbmRhcnk7XG5cdFx0XHRcdFx0Y29sb3I6IGRhcmtlbigkc2Vjb25kYXJ5LCA0MCUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmNhcnQgLmJ1dHRvbixcblx0LmNhcnQgaW5wdXQuYnV0dG9uIHtcblx0XHRmbG9hdDogbm9uZTtcblx0fVxuXG5cdGEuYWRkZWRfdG9fY2FydCB7XG5cdFx0cGFkZGluZy10b3A6IDAuNWVtO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXZpZXdzXG5cdCAqL1xuXHQjcmV2aWV3cyB7XG5cblx0XHRoMiBzbWFsbCB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRjb2xvcjogJHN1YnRleHQ7XG5cdFx0XHRmb250LXNpemU6IDE1cHg7XG5cdFx0XHRtYXJnaW46IDEwcHggMCAwO1xuXG5cdFx0XHRhIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRjb2xvcjogJHN1YnRleHQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aDMge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblxuXHRcdCNyZXNwb25kIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXG5cdFx0I2NvbW1lbnQge1xuXHRcdFx0aGVpZ2h0OiA3NXB4O1xuXHRcdH1cblxuXHRcdCNjb21tZW50cyB7XG5cblx0XHRcdC5hZGRfcmV2aWV3IHtcblxuXHRcdFx0XHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXHRcdFx0fVxuXG5cdFx0XHRoMiB7XG5cdFx0XHRcdGNsZWFyOiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHRvbC5jb21tZW50bGlzdCB7XG5cblx0XHRcdFx0QGluY2x1ZGUgY2xlYXJmaXgoKTtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcblxuXHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0XHRtYXJnaW46IDAgMCAyMHB4O1xuXHRcdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogMDtcblx0XHRcdFx0XHRib3JkZXI6IDA7XG5cblx0XHRcdFx0XHRpbWcuYXZhdGFyIHtcblx0XHRcdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDNweDtcblx0XHRcdFx0XHRcdHdpZHRoOiAzMnB4O1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogJHNlY29uZGFyeTtcblx0XHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkc2Vjb25kYXJ5LCAzJSk7XG5cdFx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC5jb21tZW50LXRleHQge1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwIDAgMCA1MHB4O1xuXHRcdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgZGFya2VuKCRzZWNvbmRhcnksIDMlKTtcblx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDFlbSAxZW0gMDtcblxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgY2xlYXJmaXgoKTtcblxuXHRcdFx0XHRcdFx0cCB7XG5cdFx0XHRcdFx0XHRcdG1hcmdpbjogMCAwIDFlbTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0cC5tZXRhIHtcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAwLjgzZW07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0dWwuY2hpbGRyZW4ge1xuXHRcdFx0XHRcdGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcblx0XHRcdFx0XHRtYXJnaW46IDIwcHggMCAwIDUwcHg7XG5cblx0XHRcdFx0XHQuc3Rhci1yYXRpbmcge1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQjcmVzcG9uZCB7XG5cdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgZGFya2VuKCRzZWNvbmRhcnksIDMlKTtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0XHRcdFx0cGFkZGluZzogMWVtIDFlbSAwO1xuXHRcdFx0XHRcdG1hcmdpbjogMjBweCAwIDAgNTBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuY29tbWVudGxpc3QgPiBsaTo6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogU3RhciByYXRpbmdzXG5cdCAqL1xuXHQuc3Rhci1yYXRpbmcge1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRoZWlnaHQ6IDFlbTtcblx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRmb250LXNpemU6IDFlbTtcblx0XHR3aWR0aDogNS40ZW07XG5cdFx0Zm9udC1mYW1pbHk6IFdvb0NvbW1lcmNlO1xuXG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6IFwiXFw3M1xcNzNcXDczXFw3M1xcNzNcIjtcblx0XHRcdGNvbG9yOiBkYXJrZW4oJHNlY29uZGFyeSwgMTAlKTtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cblx0XHRzcGFuIHtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRwYWRkaW5nLXRvcDogMS41ZW07XG5cdFx0fVxuXG5cdFx0c3Bhbjo6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6IFwiXFw1M1xcNTNcXDUzXFw1M1xcNTNcIjtcblx0XHRcdHRvcDogMDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0fVxuXHR9XG5cblx0Lndvb2NvbW1lcmNlLXByb2R1Y3QtcmF0aW5nIHtcblxuXHRcdEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cdFx0bGluZS1oZWlnaHQ6IDI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHQuc3Rhci1yYXRpbmcge1xuXHRcdFx0bWFyZ2luOiAwLjVlbSA0cHggMCAwO1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0fVxuXHR9XG5cblx0LnByb2R1Y3RzIC5zdGFyLXJhdGluZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luOiAwIDAgMC41ZW07XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdH1cblxuXHQuaHJldmlldy1hZ2dyZWdhdGUgLnN0YXItcmF0aW5nIHtcblx0XHRtYXJnaW46IDEwcHggMCAwO1xuXHR9XG5cblx0I3Jldmlld19mb3JtICNyZXNwb25kIHtcblxuXHRcdEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cdFx0cG9zaXRpb246IHN0YXRpYztcblx0XHRtYXJnaW46IDA7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0cGFkZGluZzogMDtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCBub25lO1xuXHRcdGJvcmRlcjogMDtcblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOiAwIDAgMTBweDtcblx0XHR9XG5cblx0XHQuZm9ybS1zdWJtaXQgaW5wdXQge1xuXHRcdFx0bGVmdDogYXV0bztcblx0XHR9XG5cblx0XHR0ZXh0YXJlYSB7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG5cblx0cC5zdGFycyB7XG5cblx0XHRhIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGhlaWdodDogMWVtO1xuXHRcdFx0d2lkdGg6IDFlbTtcblx0XHRcdHRleHQtaW5kZW50OiAtOTk5ZW07XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0d2lkdGg6IDFlbTtcblx0XHRcdFx0aGVpZ2h0OiAxZW07XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0XHRmb250LWZhbWlseTogXCJXb29Db21tZXJjZVwiO1xuXHRcdFx0XHRjb250ZW50OiBcIlxcZTAyMVwiO1xuXHRcdFx0XHR0ZXh0LWluZGVudDogMDtcblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciB+IGE6OmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiXFxlMDIxXCI7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciBhOjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogXCJcXGUwMjBcIjtcblx0XHR9XG5cblx0XHQmLnNlbGVjdGVkIHtcblxuXHRcdFx0YS5hY3RpdmUge1xuXG5cdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogXCJcXGUwMjBcIjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdH4gYTo6YmVmb3JlIHtcblx0XHRcdFx0XHRjb250ZW50OiBcIlxcZTAyMVwiO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGE6bm90KC5hY3RpdmUpOjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiBcIlxcZTAyMFwiO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUYWJsZXNcblx0ICovXG5cdHRhYmxlLnNob3BfYXR0cmlidXRlcyB7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGJvcmRlci10b3A6IDFweCBkb3R0ZWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuXHRcdG1hcmdpbi1ib3R0b206IDEuNjE4ZW07XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHR0aCB7XG5cdFx0XHR3aWR0aDogMTUwcHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0cGFkZGluZzogOHB4O1xuXHRcdFx0Ym9yZGVyLXRvcDogMDtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNTtcblx0XHR9XG5cblx0XHR0ZCB7XG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0Ym9yZGVyLXRvcDogMDtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNTtcblxuXHRcdFx0cCB7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0cGFkZGluZzogOHB4IDA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dHI6bnRoLWNoaWxkKGV2ZW4pIHRkLFxuXHRcdHRyOm50aC1jaGlsZChldmVuKSB0aCB7XG5cdFx0XHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDI1KTtcblx0XHR9XG5cdH1cblxuXHR0YWJsZS5zaG9wX3RhYmxlIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cdFx0bWFyZ2luOiAwIC0xcHggMjRweCAwO1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0Ym9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XG5cblx0XHR0aCB7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0cGFkZGluZzogOXB4IDEycHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMS41ZW07XG5cdFx0fVxuXG5cdFx0dGQge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcblx0XHRcdHBhZGRpbmc6IDlweCAxMnB4O1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjVlbTtcblxuXHRcdFx0c21hbGwge1xuXHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0fVxuXG5cdFx0XHRkZWwge1xuXHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRib2R5OmZpcnN0LWNoaWxkIHRyOmZpcnN0LWNoaWxkIHtcblxuXHRcdFx0dGgsXG5cdFx0XHR0ZCB7XG5cdFx0XHRcdGJvcmRlci10b3A6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dGZvb3QgdGQsXG5cdFx0dGZvb3QgdGgsXG5cdFx0dGJvZHkgdGgge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cdFx0fVxuXHR9XG5cblx0dGFibGUubXlfYWNjb3VudF9vcmRlcnMge1xuXHRcdGZvbnQtc2l6ZTogMC44NWVtO1xuXG5cdFx0dGgsXG5cdFx0dGQge1xuXHRcdFx0cGFkZGluZzogNHB4IDhweDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0fVxuXG5cdFx0LmJ1dHRvbiB7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdH1cblx0fVxuXG5cdHRhYmxlLndvb2NvbW1lcmNlLU15QWNjb3VudC1kb3dubG9hZHMge1xuXG5cdFx0dGQsXG5cdFx0dGgge1xuXHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHR9XG5cblx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHR9XG5cblx0XHRcdC53b29jb21tZXJjZS1NeUFjY291bnQtZG93bmxvYWRzLWZpbGU6OmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiXFwyMTkzXCI7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHR0ZC5wcm9kdWN0LW5hbWUge1xuXG5cdFx0ZGwudmFyaWF0aW9uLFxuXHRcdC53Yy1pdGVtLW1ldGEge1xuXHRcdFx0bGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlO1xuXG5cdFx0XHRkdCxcblx0XHRcdC53Yy1pdGVtLW1ldGEtbGFiZWwge1xuXHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0Y2xlYXI6IGJvdGg7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMC4yNWVtO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcblx0XHRcdH1cblxuXHRcdFx0ZGQge1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHR9XG5cblx0XHRcdHAsXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHAuYmFja29yZGVyX25vdGlmaWNhdGlvbiB7XG5cdFx0XHRmb250LXNpemU6IDAuODNlbTtcblx0XHR9XG5cdH1cblxuXHR0ZC5wcm9kdWN0LXF1YW50aXR5IHtcblx0XHRtaW4td2lkdGg6IDgwcHg7XG5cdH1cblxuXHQvKipcblx0ICogQ2FydCBzaWRlYmFyXG5cdCAqL1xuXHR1bC5jYXJ0X2xpc3QsXG5cdHVsLnByb2R1Y3RfbGlzdF93aWRnZXQge1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdG1hcmdpbjogMDtcblxuXHRcdGxpIHtcblx0XHRcdHBhZGRpbmc6IDRweCAwO1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcblxuXHRcdFx0YSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0fVxuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiA0cHg7XG5cdFx0XHRcdHdpZHRoOiAzMnB4O1xuXHRcdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdGRsIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDFlbTtcblx0XHRcdFx0Ym9yZGVyLWxlZnQ6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cblx0XHRcdFx0QGluY2x1ZGUgY2xlYXJmaXgoKTtcblxuXHRcdFx0XHRkdCxcblx0XHRcdFx0ZGQge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRkdCB7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdFx0XHRwYWRkaW5nOiAwIDAgMC4yNWVtO1xuXHRcdFx0XHRcdG1hcmdpbjogMCA0cHggMCAwO1xuXHRcdFx0XHRcdGNsZWFyOiBsZWZ0O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0ZGQge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDAgMCAwLjI1ZW07XG5cblx0XHRcdFx0XHRwOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LnN0YXItcmF0aW5nIHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji53aWRnZXRfc2hvcHBpbmdfY2FydCxcblx0LndpZGdldF9zaG9wcGluZ19jYXJ0IHtcblxuXHRcdC50b3RhbCB7XG5cdFx0XHRib3JkZXItdG9wOiAzcHggZG91YmxlICRzZWNvbmRhcnk7XG5cdFx0XHRwYWRkaW5nOiA0cHggMCAwO1xuXG5cdFx0XHRzdHJvbmcge1xuXHRcdFx0XHRtaW4td2lkdGg6IDQwcHg7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuY2FydF9saXN0IGxpIHtcblx0XHRcdHBhZGRpbmctbGVmdDogMmVtO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0cGFkZGluZy10b3A6IDA7XG5cblx0XHRcdGEucmVtb3ZlIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmJ1dHRvbnMge1xuXG5cdFx0XHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXG5cdFx0XHRhIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiA1cHg7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDVweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRm9ybXNcblx0ICovXG5cdGZvcm0gLmZvcm0tcm93IHtcblx0XHRwYWRkaW5nOiAzcHg7XG5cdFx0bWFyZ2luOiAwIDAgNnB4O1xuXG5cdFx0W3BsYWNlaG9sZGVyXTpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgMC41cyBlYXNlO1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHR9XG5cblx0XHRsYWJlbCB7XG5cdFx0XHRsaW5lLWhlaWdodDogMjtcblx0XHR9XG5cblx0XHRsYWJlbC5oaWRkZW4ge1xuXHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdH1cblxuXHRcdGxhYmVsLmlubGluZSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0fVxuXG5cdFx0Lndvb2NvbW1lcmNlLWlucHV0LXdyYXBwZXIge1xuXG5cdFx0XHQuZGVzY3JpcHRpb24ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjMWU4NWJlO1xuXHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0XHRwYWRkaW5nOiAxZW07XG5cdFx0XHRcdG1hcmdpbjogMC41ZW0gMCAwO1xuXHRcdFx0XHRjbGVhcjogYm90aDtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdFx0dG9wOiAwJTtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiAtNHB4O1xuXHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoMTgwZGVnKTtcblx0XHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRib3JkZXItd2lkdGg6IDRweCA2cHggMCA2cHg7XG5cdFx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdFx0XHRib3JkZXItY29sb3I6ICMxZTg1YmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdFx0ei1pbmRleDogMTAwO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0c2VsZWN0IHtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHQucmVxdWlyZWQge1xuXHRcdFx0Y29sb3I6IHJlZDtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdHZpc2liaWxpdHk6IGhpZGRlbjsgLy8gT25seSBzaG93IG9wdGlvbmFsIGJ5IGRlZmF1bHQuXG5cdFx0fVxuXG5cdFx0Lm9wdGlvbmFsIHtcblx0XHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0fVxuXG5cdFx0LmlucHV0LWNoZWNrYm94IHtcblx0XHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRcdG1hcmdpbjogLTJweCA4cHggMCAwO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHR9XG5cblx0XHRpbnB1dC5pbnB1dC10ZXh0LFxuXHRcdHRleHRhcmVhIHtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdG91dGxpbmU6IDA7XG5cdFx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xuXHRcdH1cblxuXHRcdHRleHRhcmVhIHtcblx0XHRcdGhlaWdodDogNGVtO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG5cblx0XHQuc2VsZWN0Mi1jb250YWluZXIge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRsaW5lLWhlaWdodDogMmVtO1xuXHRcdH1cblxuXHRcdCYud29vY29tbWVyY2UtaW52YWxpZCB7XG5cblx0XHRcdGxhYmVsIHtcblx0XHRcdFx0Y29sb3I6ICRyZWQ7XG5cdFx0XHR9XG5cblx0XHRcdC5zZWxlY3QyLWNvbnRhaW5lcixcblx0XHRcdGlucHV0LmlucHV0LXRleHQsXG5cdFx0XHRzZWxlY3Qge1xuXHRcdFx0XHRib3JkZXItY29sb3I6ICRyZWQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji53b29jb21tZXJjZS12YWxpZGF0ZWQge1xuXG5cdFx0XHQuc2VsZWN0Mi1jb250YWluZXIsXG5cdFx0XHRpbnB1dC5pbnB1dC10ZXh0LFxuXHRcdFx0c2VsZWN0IHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiBkYXJrZW4oJGdyZWVuLCA1JSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcblx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0fVxuXG5cdFx0Oi1tb3otcGxhY2Vob2xkZXIge1xuXHRcdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0XHR9XG5cblx0XHQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcblx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0fVxuXHR9XG5cblx0Zm9ybS5sb2dpbixcblx0Zm9ybS5jaGVja291dF9jb3Vwb24sXG5cdGZvcm0ucmVnaXN0ZXIge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkc2Vjb25kYXJ5LCAxMCUpO1xuXHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0bWFyZ2luOiAyZW0gMDtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0fVxuXG5cdHVsI3NoaXBwaW5nX21ldGhvZCB7XG5cdFx0bGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlO1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0bGkge1xuXHRcdFx0bWFyZ2luOiAwIDAgMC41ZW07XG5cdFx0XHRsaW5lLWhlaWdodDogMS41ZW07XG5cdFx0XHRsaXN0LXN0eWxlOiBub25lIG91dHNpZGU7XG5cblx0XHRcdGlucHV0IHtcblx0XHRcdFx0bWFyZ2luOiAzcHggMC40Mzc1ZW0gMCAwO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdFx0fVxuXG5cdFx0XHRsYWJlbCB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYW1vdW50IHtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0fVxuXHR9XG5cblx0cC53b29jb21tZXJjZS1zaGlwcGluZy1jb250ZW50cyB7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0LyoqXG5cdCAqIE9yZGVyIHBhZ2Vcblx0ICovXG5cdHVsLm9yZGVyX2RldGFpbHMge1xuXG5cdFx0QGluY2x1ZGUgY2xlYXJmaXgoKTtcblx0XHRtYXJnaW46IDAgMCAzZW07XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblxuXHRcdGxpIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAyZW07XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Zm9udC1zaXplOiAwLjcxNWVtO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0XHRib3JkZXItcmlnaHQ6IDFweCBkYXNoZWQgZGFya2VuKCRzZWNvbmRhcnksIDEwJSk7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyZW07XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuXHRcdFx0c3Ryb25nIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS40ZW07XG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMS41O1xuXHRcdFx0fVxuXG5cdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQud2MtYmFjcy1iYW5rLWRldGFpbHMtYWNjb3VudC1uYW1lIHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0fVxuXG5cdC53b29jb21tZXJjZS1vcmRlci1kb3dubG9hZHMsXG5cdC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLFxuXHQud29vY29tbWVyY2Utb3JkZXItZGV0YWlscyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMmVtO1xuXG5cdFx0KjpsYXN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXHR9XG5cblx0Lndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMgLmFkZHJlc3Nlcyxcblx0Lndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMgLmFkZGl0aW9uYWwtZmllbGRzIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyZW07XG5cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cblxuXHQuYWRkcmVzc2VzIC53Yy1ibG9jay1jb21wb25lbnRzLWFkZGl0aW9uYWwtZmllbGRzLWxpc3Qge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0ZHQge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lO1xuXG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiOiBcIjtcblx0XHRcdH1cblxuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0ZGQge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHR9XG5cdH1cblxuXHQud2MtYmxvY2stb3JkZXItY29uZmlybWF0aW9uLWFkZGl0aW9uYWwtZmllbGRzLXdyYXBwZXIgLndjLWJsb2NrLWNvbXBvbmVudHMtYWRkaXRpb25hbC1maWVsZHMtbGlzdCB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtYXgtY29udGVudDtcblxuXHRcdGR0IHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cdFx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdHBhZGRpbmc6IDFyZW07XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cblx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGRkIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cdFx0XHRwYWRkaW5nOiAxcmVtO1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cblx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscyB7XG5cblx0XHQud29vY29tbWVyY2UtY29sdW1uX190aXRsZSB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblxuXHRcdGFkZHJlc3Mge1xuXHRcdFx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcblx0XHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcblx0XHRcdGJvcmRlci1yaWdodC13aWR0aDogMnB4O1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0cGFkZGluZzogNnB4IDEycHg7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdH1cblxuXHRcdC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLS1waG9uZSxcblx0XHQud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscy0tZW1haWwge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAxLjVlbTtcblxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscy0tcGhvbmU6OmJlZm9yZSB7XG5cblx0XHRcdEBpbmNsdWRlIGljb25iZWZvcmUoIFwiXFxlMDM3XCIgKTtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMS41ZW07XG5cdFx0XHRsaW5lLWhlaWdodDogMS43NTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cblx0XHQud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscy0tZW1haWw6OmJlZm9yZSB7XG5cblx0XHRcdEBpbmNsdWRlIGljb25iZWZvcmUoIFwiXFxlMDJkXCIgKTtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMS41ZW07XG5cdFx0XHRsaW5lLWhlaWdodDogMS43NTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogTGF5ZXJlZCBuYXYgd2lkZ2V0XG5cdCAqL1xuXHQud29vY29tbWVyY2Utd2lkZ2V0LWxheWVyZWQtbmF2LWxpc3Qge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlcjogMDtcblx0XHRsaXN0LXN0eWxlOiBub25lIG91dHNpZGU7XG5cblx0XHQud29vY29tbWVyY2Utd2lkZ2V0LWxheWVyZWQtbmF2LWxpc3RfX2l0ZW0ge1xuXG5cdFx0XHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXHRcdFx0cGFkZGluZzogMCAwIDFweDtcblx0XHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cblx0XHRcdGEsXG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0cGFkZGluZzogMXB4IDA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lndvb2NvbW1lcmNlLXdpZGdldC1sYXllcmVkLW5hdi1saXN0X19pdGVtLS1jaG9zZW4gYTo6YmVmb3JlIHtcblxuXHRcdFx0QGluY2x1ZGUgaWNvbmJlZm9yZSggXCJcXGUwMTNcIiApO1xuXHRcdFx0Y29sb3I6ICRyZWQ7XG5cdFx0fVxuXHR9XG5cblx0Lndvb2NvbW1lcmNlLXdpZGdldC1sYXllcmVkLW5hdi1kcm9wZG93bl9fc3VibWl0IHtcblx0XHRtYXJnaW4tdG9wOiAxZW07XG5cdH1cblxuXHQud2lkZ2V0X2xheWVyZWRfbmF2X2ZpbHRlcnMgdWwge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlcjogMDtcblx0XHRsaXN0LXN0eWxlOiBub25lIG91dHNpZGU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR6b29tOiAxO1xuXG5cdFx0bGkge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRwYWRkaW5nOiAwIDFlbSAxcHggMXB4O1xuXHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcblxuXHRcdFx0YSB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdFx0XHQmOjpiZWZvcmUge1xuXG5cdFx0XHRcdFx0QGluY2x1ZGUgaWNvbmJlZm9yZSggXCJcXGUwMTNcIiApO1xuXHRcdFx0XHRcdGNvbG9yOiAkcmVkO1xuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBpbmhlcml0O1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMC41ZW07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUHJpY2UgZmlsdGVyIHdpZGdldFxuXHQgKi9cblx0LndpZGdldF9wcmljZV9maWx0ZXIge1xuXG5cdFx0LnByaWNlX3NsaWRlciB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdFx0fVxuXG5cdFx0LnByaWNlX3NsaWRlcl9hbW91bnQge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0XHRsaW5lLWhlaWdodDogMi40O1xuXHRcdFx0Zm9udC1zaXplOiAwLjg3NTFlbTtcblxuXHRcdFx0LmJ1dHRvbiB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS4xNWVtO1xuXHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQudWktc2xpZGVyIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogMC41ZW07XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuXHRcdH1cblxuXHRcdC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0ei1pbmRleDogMjtcblx0XHRcdHdpZHRoOiAxZW07XG5cdFx0XHRoZWlnaHQ6IDFlbTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMWVtO1xuXHRcdFx0Y3Vyc29yOiBldy1yZXNpemU7XG5cdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0dG9wOiAtMC4zZW07XG5cblx0XHRcdC8qIHJ0bDppZ25vcmUgKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiAtMC41ZW07XG5cdFx0fVxuXG5cdFx0LnVpLXNsaWRlciAudWktc2xpZGVyLXJhbmdlIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHRmb250LXNpemU6IDAuN2VtO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAxZW07XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcblx0XHR9XG5cblx0XHQucHJpY2Vfc2xpZGVyX3dyYXBwZXIgLnVpLXdpZGdldC1jb250ZW50IHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDFlbTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkcHJpbWFyeSwgMzAlKTtcblx0XHRcdGJvcmRlcjogMDtcblx0XHR9XG5cblx0XHQudWktc2xpZGVyLWhvcml6b250YWwge1xuXHRcdFx0aGVpZ2h0OiAwLjVlbTtcblx0XHR9XG5cblx0XHQudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZSB7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0fVxuXG5cdFx0LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2UtbWluIHtcblx0XHRcdGxlZnQ6IC0xcHg7XG5cdFx0fVxuXG5cdFx0LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2UtbWF4IHtcblx0XHRcdHJpZ2h0OiAtMXB4O1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSYXRpbmcgRmlsdGVyIFdpZGdldFxuXHQgKi9cblx0LndpZGdldF9yYXRpbmdfZmlsdGVyIHVsIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDA7XG5cdFx0bGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlO1xuXG5cdFx0bGkge1xuXG5cdFx0XHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXHRcdFx0cGFkZGluZzogMCAwIDFweDtcblx0XHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cblx0XHRcdGEge1xuXHRcdFx0XHRwYWRkaW5nOiAxcHggMDtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHQuc3Rhci1yYXRpbmcge1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGxpLmNob3NlbiBhOjpiZWZvcmUge1xuXG5cdFx0XHRAaW5jbHVkZSBpY29uYmVmb3JlKCBcIlxcZTAxM1wiICk7XG5cdFx0XHRjb2xvcjogJHJlZDtcblx0XHR9XG5cdH1cblxuXHQud29vY29tbWVyY2UtZm9ybS1sb2dpbiB7XG5cblx0XHQud29vY29tbWVyY2UtZm9ybS1sb2dpbl9fc3VibWl0IHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxZW07XG5cdFx0fVxuXG5cdFx0Lndvb2NvbW1lcmNlLWZvcm0tbG9naW5fX3JlbWVtYmVybWUge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qKlxuICogQnV0dG9uc1xuICovXG4ud29vY29tbWVyY2U6d2hlcmUoYm9keTpub3QoLndvb2NvbW1lcmNlLWJsb2NrLXRoZW1lLWhhcy1idXR0b24tc3R5bGVzKSksXG46d2hlcmUoYm9keTpub3QoLndvb2NvbW1lcmNlLWJsb2NrLXRoZW1lLWhhcy1idXR0b24tc3R5bGVzKSkgLndvb2NvbW1lcmNlIHtcblxuXHRhLmJ1dHRvbixcblx0YnV0dG9uLmJ1dHRvbixcblx0aW5wdXQuYnV0dG9uLFxuXHQjcmVzcG9uZCBpbnB1dCNzdWJtaXQge1xuXHRcdGZvbnQtc2l6ZTogMTAwJTtcblx0XHRtYXJnaW46IDA7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cdFx0cGFkZGluZzogMC42MThlbSAxZW07XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0bGVmdDogYXV0bztcblx0XHRjb2xvcjogJHNlY29uZGFyeXRleHQ7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeTtcblx0XHRib3JkZXI6IDA7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR0ZXh0LXNoYWRvdzogbm9uZTtcblxuXHRcdCYubG9hZGluZyB7XG5cdFx0XHRvcGFjaXR5OiAwLjI1O1xuXHRcdFx0cGFkZGluZy1yaWdodDogMi42MThlbTtcblxuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRmb250LWZhbWlseTogXCJXb29Db21tZXJjZVwiO1xuXHRcdFx0XHRjb250ZW50OiBcIlxcZTAxY1wiO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdFx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMC42MThlbTtcblx0XHRcdFx0cmlnaHQ6IDFlbTtcblx0XHRcdFx0YW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmFkZGVkOjphZnRlciB7XG5cdFx0XHRmb250LWZhbWlseTogXCJXb29Db21tZXJjZVwiO1xuXHRcdFx0Y29udGVudDogXCJcXGUwMTdcIjtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwLjUzZW07XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRzZWNvbmRhcnksIDUlKTtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG5cdFx0XHRjb2xvcjogJHNlY29uZGFyeXRleHQ7XG5cdFx0fVxuXG5cdFx0Ji5hbHQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XG5cdFx0XHRjb2xvcjogJHByaW1hcnl0ZXh0O1xuXHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHByaW1hcnksIDUlKTtcblx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5dGV4dDtcblx0XHRcdH1cblxuXHRcdFx0Ji5kaXNhYmxlZCxcblx0XHRcdCY6ZGlzYWJsZWQsXG5cdFx0XHQmOmRpc2FibGVkW2Rpc2FibGVkXSxcblx0XHRcdCYuZGlzYWJsZWQ6aG92ZXIsXG5cdFx0XHQmOmRpc2FibGVkOmhvdmVyLFxuXHRcdFx0JjpkaXNhYmxlZFtkaXNhYmxlZF06aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcblx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5dGV4dDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmRpc2FibGVkLFxuXHRcdCYuZGlzYWJsZWQsXG5cdFx0JjpkaXNhYmxlZFtkaXNhYmxlZF0ge1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXHRcdFx0b3BhY2l0eTogMC41O1xuXHRcdFx0cGFkZGluZzogMC42MThlbSAxZW07XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBXb29Db21tZXJjZSBzcGVjaWZpYyBzdHlsZXMgZm9yIGxlZ2FjeSB0aGVtZXMuXG4gKi9cbi53b29jb21tZXJjZTp3aGVyZShib2R5Om5vdCgud29vY29tbWVyY2UtdXNlcy1ibG9jay10aGVtZSkpIHtcblxuXHQud29vY29tbWVyY2UtYnJlYWRjcnVtYiB7XG5cblx0XHRmb250LXNpemU6IDAuOTJlbTtcblx0XHRjb2xvcjogJHN1YnRleHQ7XG5cblx0XHRhIHtcblx0XHRcdGNvbG9yOiAkc3VidGV4dDtcblx0XHR9XG5cdH1cblxuXHRkaXYucHJvZHVjdCB7XG5cblx0XHRzcGFuLnByaWNlLFxuXHRcdHAucHJpY2Uge1xuXHRcdFx0Y29sb3I6ICRoaWdobGlnaHQ7XG5cdFx0XHRmb250LXNpemU6IDEuMjVlbTtcblx0XHR9XG5cblx0XHQuc3RvY2sge1xuXHRcdFx0Y29sb3I6ICRoaWdobGlnaHQ7XG5cdFx0fVxuXG5cdFx0Lm91dC1vZi1zdG9jayB7XG5cdFx0XHRjb2xvcjogcmVkO1xuXHRcdH1cblx0fVxuXG5cdHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLnByaWNlIHtcblx0XHRjb2xvcjogJGhpZ2hsaWdodDtcblx0fVxuXG5cdCNyZXZpZXdzICNjb21tZW50cyBvbC5jb21tZW50bGlzdCBsaSAubWV0YSB7XG5cdFx0Y29sb3I6ICRzdWJ0ZXh0O1xuXHRcdGZvbnQtc2l6ZTogMC43NWVtO1xuXHR9XG59XG5cblxuLndvb2NvbW1lcmNlLW5vLWpzIHtcblxuXHRmb3JtLndvb2NvbW1lcmNlLWZvcm0tbG9naW4sXG5cdGZvcm0ud29vY29tbWVyY2UtZm9ybS1jb3Vwb24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQud29vY29tbWVyY2UtZm9ybS1sb2dpbi10b2dnbGUsXG5cdC53b29jb21tZXJjZS1mb3JtLWNvdXBvbi10b2dnbGUsXG5cdC5zaG93Y291cG9uIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLndvb2NvbW1lcmNlLW1lc3NhZ2UsXG4ud29vY29tbWVyY2UtZXJyb3IsXG4ud29vY29tbWVyY2UtaW5mbyB7XG5cdHBhZGRpbmc6IDFlbSAyZW0gMWVtIDMuNWVtO1xuXHRtYXJnaW46IDAgMCAyZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkc2Vjb25kYXJ5LCA1JSk7XG5cdGNvbG9yOiAkc2Vjb25kYXJ5dGV4dDtcblx0Ym9yZGVyLXRvcDogM3B4IHNvbGlkICRwcmltYXJ5O1xuXHRsaXN0LXN0eWxlOiBub25lIG91dHNpZGU7XG5cblx0QGluY2x1ZGUgY2xlYXJmaXgoKTtcblx0d2lkdGg6IGF1dG87XG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcblxuXHQmOjpiZWZvcmUge1xuXHRcdGZvbnQtZmFtaWx5OiBcIldvb0NvbW1lcmNlXCI7XG5cdFx0Y29udGVudDogXCJcXGUwMjhcIjtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMWVtO1xuXHRcdGxlZnQ6IDEuNWVtO1xuXHR9XG5cblx0LmJ1dHRvbiB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG5cblx0bGkge1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZSAhaW1wb3J0YW50OyAvLyBSZXF1aXJlZCBmb3IgZGVmYXVsdCB0aGVtZSBjb21wYXRpYmlsaXR5XG5cdFx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IC8vIFJlcXVpcmVkIGZvciBkZWZhdWx0IHRoZW1lIGNvbXBhdGliaWxpdHlcblx0XHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyAvLyBSZXF1aXJlZCBmb3IgZGVmYXVsdCB0aGVtZSBjb21wYXRpYmlsaXR5XG5cdH1cbn1cblxuLyoqXG4gKiBSaWdodCB0byBsZWZ0IHN0eWxlc1xuICovXG4ucnRsLndvb2NvbW1lcmNlIC5wcmljZV9sYWJlbCxcbi5ydGwud29vY29tbWVyY2UgLnByaWNlX2xhYmVsIHNwYW4ge1xuXG5cdC8qIHJ0bDppZ25vcmUgKi9cblx0ZGlyZWN0aW9uOiBsdHI7XG5cdHVuaWNvZGUtYmlkaTogZW1iZWQ7XG59XG5cbi53b29jb21tZXJjZS1tZXNzYWdlIHtcblx0Ym9yZGVyLXRvcC1jb2xvcjogIzhmYWUxYjtcblxuXHQmOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxlMDE1XCI7XG5cdFx0Y29sb3I6ICM4ZmFlMWI7XG5cdH1cbn1cblxuLndvb2NvbW1lcmNlLWluZm8ge1xuXHRib3JkZXItdG9wLWNvbG9yOiAjMWU4NWJlO1xuXG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29sb3I6ICMxZTg1YmU7XG5cdH1cbn1cblxuLndvb2NvbW1lcmNlLWVycm9yIHtcblx0Ym9yZGVyLXRvcC1jb2xvcjogI2I4MWMyMztcblxuXHQmOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXFxlMDE2XCI7XG5cdFx0Y29sb3I6ICNiODFjMjM7XG5cdH1cbn1cblxuLyoqXG4gKiBBY2NvdW50IHBhZ2VcbiAqL1xuLndvb2NvbW1lcmNlLWFjY291bnQge1xuXG5cdC53b29jb21tZXJjZSB7XG5cblx0XHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXHR9XG5cblx0LmFkZHJlc3NlcyAudGl0bGUge1xuXG5cdFx0QGluY2x1ZGUgY2xlYXJmaXgoKTtcblxuXHRcdGgzIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdH1cblxuXHRcdC5lZGl0IHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHR9XG5cdH1cblxuXHRvbC5jb21tZW50bGlzdC5ub3RlcyBsaS5ub3RlIHtcblxuXHRcdHAubWV0YSB7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cblx0XHQuZGVzY3JpcHRpb24gcDpsYXN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXHR9XG5cblx0dWwuZGlnaXRhbC1kb3dubG9hZHMge1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblxuXHRcdGxpIHtcblx0XHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdHBhZGRpbmctbGVmdDogMDtcblxuXHRcdFx0Jjo6YmVmb3JlIHtcblxuXHRcdFx0XHRAaW5jbHVkZSBpY29uYmVmb3JlKCBcIlxcZTAwYVwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC5jb3VudCB7XG5cdFx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBDYXJ0L2NoZWNrb3V0IHBhZ2VcbiAqL1xuLndvb2NvbW1lcmNlLWNhcnQsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQsXG4jYWRkX3BheW1lbnRfbWV0aG9kIHtcblxuXHR0YWJsZS5jYXJ0IHtcblxuXHRcdC5wcm9kdWN0LXRodW1ibmFpbCB7XG5cdFx0XHRtaW4td2lkdGg6IDMycHg7XG5cdFx0fVxuXG5cdFx0aW1nIHtcblx0XHRcdHdpZHRoOiAzMnB4O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG5cblx0XHR0aCxcblx0XHR0ZCB7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdH1cblxuXHRcdHRkLmFjdGlvbnMgLmNvdXBvbiAuaW5wdXQtdGV4dCB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJHNlY29uZGFyeSwgMTAlKTtcblx0XHRcdHBhZGRpbmc6IDZweCA2cHggNXB4O1xuXHRcdFx0bWFyZ2luOiAwIDRweCAwIDA7XG5cdFx0XHRvdXRsaW5lOiAwO1xuXHRcdH1cblxuXHRcdGlucHV0IHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0fVxuXHR9XG5cblx0LndjLXByb2NlZWQtdG8tY2hlY2tvdXQge1xuXG5cdFx0QGluY2x1ZGUgY2xlYXJmaXg7XG5cdFx0cGFkZGluZzogMWVtIDA7XG5cblx0XHRhLmNoZWNrb3V0LWJ1dHRvbiB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdG1hcmdpbi1ib3R0b206IDFlbTtcblx0XHRcdGZvbnQtc2l6ZTogMS4yNWVtO1xuXHRcdFx0cGFkZGluZzogMWVtO1xuXHRcdH1cblx0fVxuXG5cdC5jYXJ0LWNvbGxhdGVyYWxzIHtcblxuXHRcdC5zaGlwcGluZy1jYWxjdWxhdG9yLWJ1dHRvbiB7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdG1hcmdpbi10b3A6IDAuNWVtO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblxuXHRcdC5zaGlwcGluZy1jYWxjdWxhdG9yLWJ1dHRvbjo6YWZ0ZXIge1xuXG5cdFx0XHRAaW5jbHVkZSBpY29uYWZ0ZXIoIFwiXFxlMDE5XCIgKTtcblx0XHR9XG5cblx0XHQuc2hpcHBpbmctY2FsY3VsYXRvci1mb3JtIHtcblx0XHRcdG1hcmdpbjogMWVtIDAgMCAwO1xuXHRcdH1cblxuXHRcdC5jYXJ0X3RvdGFscyB7XG5cblx0XHRcdHAgc21hbGwge1xuXHRcdFx0XHRjb2xvcjogJHN1YnRleHQ7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMC44M2VtO1xuXHRcdFx0fVxuXG5cdFx0XHR0YWJsZSB7XG5cdFx0XHRcdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDZweDtcblx0XHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0XHR0cjpmaXJzdC1jaGlsZCB7XG5cblx0XHRcdFx0XHR0aCxcblx0XHRcdFx0XHR0ZCB7XG5cdFx0XHRcdFx0XHRib3JkZXItdG9wOiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRoIHtcblx0XHRcdFx0XHR3aWR0aDogMzUlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGQsXG5cdFx0XHRcdHRoIHtcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdFx0XHRcdGJvcmRlci1sZWZ0OiAwO1xuXHRcdFx0XHRcdGJvcmRlci1yaWdodDogMDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMS41ZW07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzbWFsbCB7XG5cdFx0XHRcdFx0Y29sb3I6ICRzdWJ0ZXh0O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0c2VsZWN0IHtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuZGlzY291bnQgdGQge1xuXHRcdFx0XHRjb2xvcjogJGhpZ2hsaWdodDtcblx0XHRcdH1cblxuXHRcdFx0dHIgdGQsXG5cdFx0XHR0ciB0aCB7XG5cdFx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2Vjb25kYXJ5O1xuXHRcdFx0fVxuXG5cdFx0XHQud29vY29tbWVyY2Utc2hpcHBpbmctZGVzdGluYXRpb24ge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5jcm9zcy1zZWxscyB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuXHR9XG5cblx0LmNoZWNrb3V0IHtcblxuXHRcdC5jb2wtMiB7XG5cblx0XHRcdGgzI3NoaXAtdG8tZGlmZmVyZW50LWFkZHJlc3Mge1xuXHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0Y2xlYXI6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdC5ub3RlcyB7XG5cdFx0XHRcdGNsZWFyOiBsZWZ0O1xuXHRcdFx0fVxuXG5cdFx0XHQuZm9ybS1yb3ctZmlyc3Qge1xuXHRcdFx0XHRjbGVhcjogbGVmdDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuY3JlYXRlLWFjY291bnQgc21hbGwge1xuXHRcdFx0Zm9udC1zaXplOiAxMXB4O1xuXHRcdFx0Y29sb3I6ICRzdWJ0ZXh0O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHR9XG5cblx0XHRkaXYuc2hpcHBpbmctYWRkcmVzcyB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0Y2xlYXI6IGxlZnQ7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cblx0XHQuc2hpcHBpbmdfYWRkcmVzcyB7XG5cdFx0XHRjbGVhcjogYm90aDtcblx0XHR9XG5cdH1cblxuXHQjcGF5bWVudCB7XG5cdFx0YmFja2dyb3VuZDogJHNlY29uZGFyeTtcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XG5cblx0XHR1bC5wYXltZW50X21ldGhvZHMge1xuXG5cdFx0XHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdHBhZGRpbmc6IDFlbTtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oJHNlY29uZGFyeSwgMTAlKTtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcblxuXHRcdFx0bGkge1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMjtcblx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXG5cdFx0XHRcdGlucHV0IHtcblx0XHRcdFx0XHRtYXJnaW46IDAgMWVtIDAgMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdFx0XHRtYXJnaW46IC0ycHggMCAwIDAuNWVtO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpbWcgKyBpbWcge1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAycHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0bGk6bm90KC53b29jb21tZXJjZS1ub3RpY2UpIHtcblxuXHRcdFx0XHRAaW5jbHVkZSBjbGVhcmZpeDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRkaXYuZm9ybS1yb3cge1xuXHRcdFx0cGFkZGluZzogMWVtO1xuXHRcdH1cblxuXHRcdGRpdi5wYXltZW50X2JveCB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nOiAxZW07XG5cdFx0XHRtYXJnaW46IDFlbSAwO1xuXHRcdFx0Zm9udC1zaXplOiAwLjkyZW07XG5cdFx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMS41O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRzZWNvbmRhcnksIDUlKTtcblx0XHRcdGNvbG9yOiAkc2Vjb25kYXJ5dGV4dDtcblxuXHRcdFx0aW5wdXQuaW5wdXQtdGV4dCxcblx0XHRcdHRleHRhcmVhIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiBkYXJrZW4oJHNlY29uZGFyeSwgMTUlKTtcblx0XHRcdFx0Ym9yZGVyLXRvcC1jb2xvcjogZGFya2VuKCRzZWNvbmRhcnksIDIwJSk7XG5cdFx0XHR9XG5cblx0XHRcdDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG5cdFx0XHRcdGNvbG9yOiBkYXJrZW4oJHNlY29uZGFyeSwgMjAlKTtcblx0XHRcdH1cblxuXHRcdFx0Oi1tb3otcGxhY2Vob2xkZXIge1xuXHRcdFx0XHRjb2xvcjogZGFya2VuKCRzZWNvbmRhcnksIDIwJSk7XG5cdFx0XHR9XG5cblx0XHRcdDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuXHRcdFx0XHRjb2xvcjogZGFya2VuKCRzZWNvbmRhcnksIDIwJSk7XG5cdFx0XHR9XG5cblx0XHRcdC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzIHtcblx0XHRcdFx0bGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdFx0Lndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMtdG9rZW4sXG5cdFx0XHRcdC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzLW5ldyB7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIDAgMC41ZW07XG5cblx0XHRcdFx0XHRsYWJlbCB7XG5cdFx0XHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Lndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMtdG9rZW5JbnB1dCB7XG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdFx0XHRtYXJnaW46IC0zcHggMWVtIDAgMDtcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LndjLWNyZWRpdC1jYXJkLWZvcm0ge1xuXHRcdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdG1hcmdpbjogMWVtIDAgMDtcblx0XHRcdH1cblxuXHRcdFx0LndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1udW1iZXIsXG5cdFx0XHQud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeSxcblx0XHRcdC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtY3ZjIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxLjVlbTtcblx0XHRcdFx0cGFkZGluZzogOHB4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjYxOGVtIGNlbnRlcjtcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiAzMnB4IDIwcHg7XG5cblx0XHRcdFx0Ji52aXNhIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY3JlZGl0LWNhcmRzL3Zpc2Euc3ZnXCIpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5tYXN0ZXJjYXJkIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY3JlZGl0LWNhcmRzL21hc3RlcmNhcmQuc3ZnXCIpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5sYXNlciB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NyZWRpdC1jYXJkcy9sYXNlci5zdmdcIik7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmRpbmVyc2NsdWIge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jcmVkaXQtY2FyZHMvZGluZXJzLnN2Z1wiKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYubWFlc3RybyB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NyZWRpdC1jYXJkcy9tYWVzdHJvLnN2Z1wiKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuamNiIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY3JlZGl0LWNhcmRzL2pjYi5zdmdcIik7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmFtZXgge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jcmVkaXQtY2FyZHMvYW1leC5zdmdcIik7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmRpc2NvdmVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY3JlZGl0LWNhcmRzL2Rpc2NvdmVyLnN2Z1wiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRzcGFuLmhlbHAge1xuXHRcdFx0XHRmb250LXNpemU6IDAuODU3ZW07XG5cdFx0XHRcdGNvbG9yOiAkc3VidGV4dDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRcdH1cblxuXHRcdFx0LmZvcm0tcm93IHtcblx0XHRcdFx0bWFyZ2luOiAwIDAgMWVtO1xuXHRcdFx0fVxuXG5cdFx0XHRwOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0Ym9yZGVyOiAxZW0gc29saWQgZGFya2VuKCRzZWNvbmRhcnksIDUlKTsgLyogYXJyb3cgc2l6ZSAvIGNvbG9yICovXG5cdFx0XHRcdGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAtMC43NWVtO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRtYXJnaW46IC0xZW0gMCAwIDJlbTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQucGF5bWVudF9tZXRob2RfcGF5cGFsIHtcblxuXHRcdFx0LmFib3V0X3BheXBhbCB7XG5cdFx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDUycHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMC44M2VtO1xuXHRcdFx0fVxuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRtYXgtaGVpZ2h0OiA1MnB4O1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ud29vY29tbWVyY2UtdGVybXMtYW5kLWNvbmRpdGlvbnMge1xuXHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG5cbi53b29jb21tZXJjZS1pbnZhbGlkIHtcblxuXHQjdGVybXMge1xuXHRcdG91dGxpbmU6IDJweCBzb2xpZCByZWQ7XG5cdFx0b3V0bGluZS1vZmZzZXQ6IDJweDtcblx0fVxufVxuXG4vKipcbiAqIFBhc3N3b3JkIHN0cmVuZ3RoIG1ldGVyXG4gKi9cbi53b29jb21tZXJjZS1wYXNzd29yZC1zdHJlbmd0aCB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0cGFkZGluZzogM3B4IDAuNWVtO1xuXHRmb250LXNpemU6IDFlbTtcblxuXHQmLnN0cm9uZyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2MxZTFiOTtcblx0XHRib3JkZXItY29sb3I6ICM4M2MzNzM7XG5cdH1cblxuXHQmLnNob3J0IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjFhZGFkO1xuXHRcdGJvcmRlci1jb2xvcjogI2UzNWI1Yjtcblx0fVxuXG5cdCYuYmFkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmJjNWE5O1xuXHRcdGJvcmRlci1jb2xvcjogI2Y3OGI1Mztcblx0fVxuXG5cdCYuZ29vZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZTM5OTtcblx0XHRib3JkZXItY29sb3I6ICNmZmM3MzM7XG5cdH1cbn1cblxuLndvb2NvbW1lcmNlLXBhc3N3b3JkLWhpbnQge1xuXHRtYXJnaW46IDAuNWVtIDAgMDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogVHdlbnR5IEVsZXZlbiBzcGVjaWZpYyBzdHlsZXNcbiAqL1xuI2NvbnRlbnQudHdlbnR5ZWxldmVuIC53b29jb21tZXJjZS1wYWdpbmF0aW9uIGEge1xuXHRmb250LXNpemU6IDFlbTtcblx0bGluZS1oZWlnaHQ6IDE7XG59XG5cbi8qKlxuICogVHdlbnR5IFRoaXJ0ZWVuIHNwZWNpZmljIHN0eWxlc1xuICovXG4uc2luZ2xlLXByb2R1Y3QgLnR3ZW50eXRoaXJ0ZWVuIHtcblxuXHQuZW50cnktc3VtbWFyeSxcblx0I3JlcGx5LXRpdGxlLFxuXHQjcmVzcG9uZCAjY29tbWVudGZvcm0ge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHRwLnN0YXJzIHtcblx0XHRjbGVhcjogYm90aDtcblx0fVxufVxuXG4udHdlbnR5dGhpcnRlZW4gLndvb2NvbW1lcmNlLWJyZWFkY3J1bWIge1xuXHRwYWRkaW5nLXRvcDogNDBweDtcbn1cblxuLyoqXG4gKiBUd2VudHkgRm91cnRlZW4gc3BlY2lmaWMgc3R5bGVzXG4gKi9cbi50d2VudHlmb3VydGVlbiB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IHtcblx0bWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIFR3ZW50eSBTaXh0ZWVuIHNwZWNpZmljIHN0eWxlc1xuICovXG5ib2R5Om5vdCguc2VhcmNoLXJlc3VsdHMpIC50d2VudHlzaXh0ZWVuIC5lbnRyeS1zdW1tYXJ5IHtcblx0Y29sb3I6IGluaGVyaXQ7XG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi50d2VudHlzaXh0ZWVuIC5wcmljZSBpbnMge1xuXHRiYWNrZ3JvdW5kOiBpbmhlcml0O1xuXHRjb2xvcjogaW5oZXJpdDtcbn1cblxuI2NvbWluZy1zb29uLWZvb3Rlci1iYW5uZXIge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiA1NnB4O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0Ym90dG9tOiAwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7XG5cdGEge1xuXHRcdGNvbG9yOiAjMzg1OEU5O1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuXG5cdGEuY29taW5nLXNvb24tZm9vdGVyLWJhbm5lci1kaXNtaXNzIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHdpZHRoPVwiMjVcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjUgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTIuNDk5NSAxMy4wNjAyTDE2LjIxMTggMTYuNzcyNUwxNy4yNzI1IDE1LjcxMThMMTMuNTYwMiAxMS45OTk1TDE3LjI3MjUgOC4yODcyM0wxNi4yMTE5IDcuMjI2NTdMMTIuNDk5NSAxMC45Mzg5TDguNzg3MjIgNy4yMjY1Nkw3LjcyNjU2IDguMjg3MjJMMTEuNDM4OSAxMS45OTk1TDcuNzI2NTcgMTUuNzExOUw4Ljc4NzIzIDE2Ljc3MjVMMTIuNDk5NSAxMy4wNjAyWlwiIGZpbGw9XCIlMjM3NTc1NzVcIi8+PC9zdmc+Jyk7XG5cdFx0d2lkdGg6IDI0cHg7XG5cdFx0aGVpZ2h0OiAyNHB4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDIwcHg7XG5cdH1cbn1cbiIsIi8qKlxuICogRGVwcmVjYXRlZFxuICogRmFsbGJhY2sgZm9yIGJvdXJib24gZXF1aXZhbGVudFxuICovXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG5cdCp6b29tOiAxO1xuXG5cdCY6OmJlZm9yZSxcblx0Jjo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiIFwiO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHR9XG5cblx0Jjo6YWZ0ZXIge1xuXHRcdGNsZWFyOiBib3RoO1xuXHR9XG59XG5cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbkBtaXhpbiBib3JkZXJfcmFkaXVzKCRyYWRpdXM6IDRweCkge1xuXHRib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xufVxuXG4vKipcbiAqIERlcHJlY2F0ZWRcbiAqIFZlbmRvciBwcmVmaXggbm8gbG9uZ2VyIHJlcXVpcmVkLlxuICovXG5AbWl4aW4gYm9yZGVyX3JhZGl1c19yaWdodCgkcmFkaXVzOiA0cHgpIHtcblx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xufVxuXG4vKipcbiAqIERlcHJlY2F0ZWRcbiAqIFZlbmRvciBwcmVmaXggbm8gbG9uZ2VyIHJlcXVpcmVkLlxuICovXG5AbWl4aW4gYm9yZGVyX3JhZGl1c19sZWZ0KCRyYWRpdXM6IDRweCkge1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xufVxuXG4vKipcbiAqIERlcHJlY2F0ZWRcbiAqIFZlbmRvciBwcmVmaXggbm8gbG9uZ2VyIHJlcXVpcmVkLlxuICovXG5AbWl4aW4gYm9yZGVyX3JhZGl1c19ib3R0b20oJHJhZGl1czogNHB4KSB7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xufVxuXG4vKipcbiAqIERlcHJlY2F0ZWRcbiAqIFZlbmRvciBwcmVmaXggbm8gbG9uZ2VyIHJlcXVpcmVkLlxuICovXG5AbWl4aW4gYm9yZGVyX3JhZGl1c190b3AoJHJhZGl1czogNHB4KSB7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xufVxuXG4vKipcbiAqIERlcHJlY2F0ZWRcbiAqIFZlbmRvciBwcmVmaXggbm8gbG9uZ2VyIHJlcXVpcmVkLlxuICovXG5AbWl4aW4gb3BhY2l0eSggJG9wYWNpdHk6IDAuNzUgKSB7XG5cdG9wYWNpdHk6ICRvcGFjaXR5O1xufVxuXG4vKipcbiAqIERlcHJlY2F0ZWRcbiAqIFZlbmRvciBwcmVmaXggbm8gbG9uZ2VyIHJlcXVpcmVkLlxuICovXG5AbWl4aW4gYm94X3NoYWRvdygkc2hhZG93X3g6IDNweCwgJHNoYWRvd195OiAzcHgsICRzaGFkb3dfcmFkOiAzcHgsICRzaGFkb3dfaW46IDNweCwgJHNoYWRvd19jb2xvcjogIzg4OCkge1xuXHRib3gtc2hhZG93OiAkc2hhZG93X3ggJHNoYWRvd195ICRzaGFkb3dfcmFkICRzaGFkb3dfaW4gJHNoYWRvd19jb2xvcjtcbn1cblxuLyoqXG4gKiBEZXByZWNhdGVkXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cbiAqL1xuQG1peGluIGluc2V0X2JveF9zaGFkb3coJHNoYWRvd194OiAzcHgsICRzaGFkb3dfeTogM3B4LCAkc2hhZG93X3JhZDogM3B4LCAkc2hhZG93X2luOiAzcHgsICRzaGFkb3dfY29sb3I6ICM4ODgpIHtcblx0Ym94LXNoYWRvdzogaW5zZXQgJHNoYWRvd194ICRzaGFkb3dfeSAkc2hhZG93X3JhZCAkc2hhZG93X2luICRzaGFkb3dfY29sb3I7XG59XG5cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXG4gKi9cbkBtaXhpbiB0ZXh0X3NoYWRvdygkc2hhZG93X3g6IDNweCwgJHNoYWRvd195OiAzcHgsICRzaGFkb3dfcmFkOiAzcHgsICRzaGFkb3dfY29sb3I6ICNmZmYpIHtcblx0dGV4dC1zaGFkb3c6ICRzaGFkb3dfeCAkc2hhZG93X3kgJHNoYWRvd19yYWQgJHNoYWRvd19jb2xvcjtcbn1cblxuLyoqXG4gKiBEZXByZWNhdGVkXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cbiAqL1xuQG1peGluIHZlcnRpY2FsX2dyYWRpZW50KCRmcm9tOiAjMDAwLCAkdG86ICNmZmYpIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJGZyb207XG5cdGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRmcm9tLCAkdG8pO1xufVxuXG4vKipcbiAqIERlcHJlY2F0ZWRcbiAqIFZlbmRvciBwcmVmaXggbm8gbG9uZ2VyIHJlcXVpcmVkLlxuICovXG5AbWl4aW4gdHJhbnNpdGlvbigkc2VsZWN0b3I6IGFsbCwgJGFuaW1hdGlvbjogZWFzZS1pbi1vdXQsICRkdXJhdGlvbjogMC4ycykge1xuXHR0cmFuc2l0aW9uOiAkc2VsZWN0b3IgJGFuaW1hdGlvbiAkZHVyYXRpb247XG59XG5cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVXNlIGJvdXJib24gbWl4aW4gaW5zdGVhZCBgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEuNSkpO2BcbiAqL1xuQG1peGluIHNjYWxlKCRyYXRpbzogMS41KSB7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgkcmF0aW8pO1xuXHR0cmFuc2Zvcm06IHNjYWxlKCRyYXRpbyk7XG59XG5cbi8qKlxuICogRGVwcmVjYXRlZFxuICogVXNlIGJvdXJib24gbWl4aW4gaW5zdGVhZCBgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtgXG4gKi9cbkBtaXhpbiBib3JkZXJib3goKSB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbkBtaXhpbiBkYXJrb3JsaWdodHRleHRzaGFkb3coJGEsICRvcGFjaXR5OiAwLjgpIHtcblxuXHRAaWYgbGlnaHRuZXNzKCRhKSA+PSA2NSUge1xuXG5cdFx0QGluY2x1ZGUgdGV4dF9zaGFkb3coMCwgLTFweCwgMCwgcmdiYSgwLCAwLCAwLCAkb3BhY2l0eSkpO1xuXHR9XG5cblx0QGVsc2Uge1xuXG5cdFx0QGluY2x1ZGUgdGV4dF9zaGFkb3coMCwgMXB4LCAwLCByZ2JhKDI1NSwgMjU1LCAyNTUsICRvcGFjaXR5KSk7XG5cdH1cbn1cblxuLyoqXG4gKiBPYmplY3RzXG4gKi9cbkBtaXhpbiBtZW51KCkge1xuXG5cdEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cblx0bGkge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxufVxuXG5AbWl4aW4gbWVkaWFyaWdodCgpIHtcblxuXHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXG5cdGltZyB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxufVxuXG5AbWl4aW4gbWVkaWFsZWZ0KCkge1xuXG5cdEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cblx0aW1nIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHR9XG59XG5cbkBtaXhpbiBpcigpIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRleHQtaW5kZW50OiAtOTk5OXB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGhlaWdodDogMWVtO1xuXHR3aWR0aDogMWVtO1xufVxuXG5AbWl4aW4gaWNvbiggJGdseXBoOiBcIlxcZTAwMVwiICkge1xuXHRmb250LWZhbWlseTogXCJXb29Db21tZXJjZVwiO1xuXHRzcGVhazogbmV2ZXI7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdG1hcmdpbjogMDtcblx0dGV4dC1pbmRlbnQ6IDA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGNvbnRlbnQ6ICRnbHlwaDtcbn1cblxuQG1peGluIGljb25fZGFzaGljb25zKCAkZ2x5cGg6IFwiXFxmMzMzXCIgKSB7XG5cdGZvbnQtZmFtaWx5OiBcIkRhc2hpY29uc1wiO1xuXHRzcGVhazogbmV2ZXI7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRtYXJnaW46IDA7XG5cdHRleHQtaW5kZW50OiAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRjb250ZW50OiAkZ2x5cGg7XG59XG5cbkBtaXhpbiBpY29uYmVmb3JlKCAkZ2x5cGg6IFwiXFxlMDAxXCIgKSB7XG5cdGZvbnQtZmFtaWx5OiBcIldvb0NvbW1lcmNlXCI7XG5cdHNwZWFrOiBuZXZlcjtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Zm9udC12YXJpYW50OiBub3JtYWw7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRsaW5lLWhlaWdodDogMTtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdG1hcmdpbi1yaWdodDogMC42MThlbTtcblx0Y29udGVudDogJGdseXBoO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBpY29uYmVmb3JlZGFzaGljb25zKCAkZ2x5cGg6IFwiXFxmMzMzXCIgKSB7XG5cdGZvbnQtZmFtaWx5OiBcIkRhc2hpY29uc1wiO1xuXHRzcGVhazogbmV2ZXI7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRjb250ZW50OiAkZ2x5cGg7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuQG1peGluIGljb25hZnRlciggJGdseXBoOiBcIlxcZTAwMVwiICkge1xuXHRmb250LWZhbWlseTogXCJXb29Db21tZXJjZVwiO1xuXHRzcGVhazogbmV2ZXI7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRtYXJnaW4tbGVmdDogMC42MThlbTtcblx0Y29udGVudDogJGdseXBoO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBsb2FkZXIoKSB7XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRoZWlnaHQ6IDFlbTtcblx0XHR3aWR0aDogMWVtO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0bWFyZ2luLWxlZnQ6IC0wLjVlbTtcblx0XHRtYXJnaW4tdG9wOiAtMC41ZW07XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRhbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5cdFx0YmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2xvYWRlci5zdmdcIikgY2VudGVyIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXNpemU6IDJlbTtcblx0XHRjb2xvcjogcmdiYSgjMDAwLCAwLjc1KTtcblx0fVxufVxuXG5AbWl4aW4gaW52ZXJzZWJ1dHRvbmNvbG9ycyB7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB2YXIoLS1idXR0b24tLWNvbG9yLXRleHQtaG92ZXIpICFpbXBvcnRhbnQ7XG5cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLS1jb2xvci1iYWNrZ3JvdW5kKSAhaW1wb3J0YW50O1xuXHRcdGNvbG9yOiB2YXIoLS1idXR0b24tLWNvbG9yLXRleHQpICFpbXBvcnRhbnQ7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuQG1peGluIHRhYmxlLW1hcmtzKCkge1xuXHRtYXJrIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCBub25lO1xuXHR9XG5cblx0bWFyay55ZXMge1xuXHRcdGNvbG9yOiB2YXIoLS13Yy1ncmVlbik7XG5cdH1cblxuXHRtYXJrLm5vIHtcblx0XHRjb2xvcjogIzk5OTtcblx0fVxufVxuIiwiLyoqXG4gKiBXb29Db21tZXJjZSBDU1MgVmFyaWFibGVzXG4gKi9cblxuJHdvb2NvbW1lcmNlOiAgIFx0IzdGNTRCMyAhZGVmYXVsdDtcbiRncmVlbjogICAgICAgICBcdCM3YWQwM2EgIWRlZmF1bHQ7XG4kcmVkOiAgICAgICAgICAgXHQjYTAwICFkZWZhdWx0O1xuJG9yYW5nZTogICAgICAgIFx0I2ZmYmEwMCAhZGVmYXVsdDtcbiRibHVlOiAgICAgICAgICBcdCMyZWEyY2MgIWRlZmF1bHQ7XG5cbiRwcmltYXJ5OiAgICAgICAgICAgIzdGNTRCMyAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQcmltYXJ5IGNvbG9yIGZvciBidXR0b25zIChhbHQpXG4kcHJpbWFyeXRleHQ6ICAgICAgIGRlc2F0dXJhdGUobGlnaHRlbigkcHJpbWFyeSwgNTAlKSwgMTglKSAhZGVmYXVsdDsgICAgLy8gVGV4dCBvbiBwcmltYXJ5IGNvbG9yIGJnXG5cbiRzZWNvbmRhcnk6ICAgICAgICAgZGVzYXR1cmF0ZShsaWdodGVuKCRwcmltYXJ5LCA0MCUpLCAyMSUpICFkZWZhdWx0OyAgICAvLyBTZWNvbmRhcnkgYnV0dG9uc1xuJHNlY29uZGFyeXRleHQ6ICAgICBkZXNhdHVyYXRlKGRhcmtlbigkc2Vjb25kYXJ5LCA2MCUpLCAyMSUpICFkZWZhdWx0OyAgIC8vIFRleHQgb24gc2Vjb25kYXJ5IGNvbG9yIGJnXG5cbiRoaWdobGlnaHQ6ICAgICAgICAgYWRqdXN0LWh1ZSgkcHJpbWFyeSwgMTUwZGVnKSAhZGVmYXVsdDsgICAgICAgICAgICAgICAvLyBQcmljZXMsIEluIHN0b2NrIGxhYmVscywgc2FsZXMgZmxhc2hcbiRoaWdobGlnaHRleHQ6ICAgICAgZGVzYXR1cmF0ZShsaWdodGVuKCRoaWdobGlnaHQsIDUwJSksIDE4JSkgIWRlZmF1bHQ7ICAvLyBUZXh0IG9uIGhpZ2hsaWdodCBjb2xvciBiZ1xuXG4kY29udGVudGJnOiAgICAgICAgICNmZmYgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbnRlbnQgQkcgLSBUYWJzIChhY3RpdmUgc3RhdGUpXG4kc3VidGV4dDogICAgICAgICAgICM3Njc2NzYgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNtYWxsLCBicmVhZGNydW1icyBldGNcblxuLy8gZXhwb3J0IHZhcnMgYXMgQ1NTIHZhcnNcbjpyb290IHtcblx0LS13b29jb21tZXJjZTogI3skd29vY29tbWVyY2V9O1xuXHQtLXdjLWdyZWVuOiAjeyRncmVlbn07XG5cdC0td2MtcmVkOiAjeyRyZWR9O1xuXHQtLXdjLW9yYW5nZTogI3skb3JhbmdlfTtcblx0LS13Yy1ibHVlOiAjeyRibHVlfTtcblx0LS13Yy1wcmltYXJ5OiAjeyRwcmltYXJ5fTtcblx0LS13Yy1wcmltYXJ5LXRleHQ6ICN7JHByaW1hcnl0ZXh0fTtcblx0LS13Yy1zZWNvbmRhcnk6ICN7JHNlY29uZGFyeX07XG5cdC0td2Mtc2Vjb25kYXJ5LXRleHQ6ICN7JHNlY29uZGFyeXRleHR9O1xuXHQtLXdjLWhpZ2hsaWdodDogI3skaGlnaGxpZ2h0fTtcblx0LS13Yy1oaWdobGlnaC10ZXh0OiAjeyRoaWdobGlnaHRleHR9O1xuXHQtLXdjLWNvbnRlbnQtYmc6ICN7JGNvbnRlbnRiZ307XG5cdC0td2Mtc3VidGV4dDogI3skc3VidGV4dH07XG59XG4iLCIvKipcbiAqIF9hbmltYXRpb24uc2Nzc1xuICogQ3VzdG9tIFdvb0NvbW1lcmNlIEFuaW1hdGlvbnMuXG4gKi9cbkBrZXlmcmFtZXMgc3BpbiB7XG5cdDEwMCUge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKCAzNjBkZWcgKTtcblx0fVxufVxuIiwiLyoqXG4gKiBfZm9udHMuc2Nzc1xuICogQ3VzdG9tIFdvb0NvbW1lcmNlIGZvbnRzLlxuICovXG5AZm9udC1mYWNlIHtcblx0Zm9udC1mYW1pbHk6ICdzdGFyJztcblx0c3JjOiB1cmwoJy4uL2ZvbnRzL1dvb0NvbW1lcmNlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuXHQgICAgIHVybCgnLi4vZm9udHMvV29vQ29tbWVyY2Uud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHQgICAgIHVybCgnLi4vZm9udHMvV29vQ29tbWVyY2UudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseTogJ1dvb0NvbW1lcmNlJztcblx0c3JjOiB1cmwoJy4uL2ZvbnRzL1dvb0NvbW1lcmNlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuXHQgICAgIHVybCgnLi4vZm9udHMvV29vQ29tbWVyY2Uud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHQgICAgIHVybCgnLi4vZm9udHMvV29vQ29tbWVyY2UudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBNkJBQTs7OztHQUlHO0FBRUg7O0dBRUc7QUNSSDs7O0dBR0c7QUFlSDs7O0dBR0c7QUFLSDs7O0dBR0c7QUFNSDs7O0dBR0c7QUFNSDs7O0dBR0c7QUFNSDs7O0dBR0c7QUFNSDs7O0dBR0c7QUFLSDs7O0dBR0c7QUFLSDs7O0dBR0c7QUFLSDs7O0dBR0c7QUFLSDs7O0dBR0c7QUFNSDs7O0dBR0c7QUFLSDs7O0dBR0c7QUFNSDs7O0dBR0c7QUFrQkg7O0dBRUc7QUMvSUg7O0dBRUc7QUFxQkgsQUFBQSxLQUFLLENBQUM7RUFDTCxhQUFhLENBQUEsUUFBQztFQUNkLFVBQVUsQ0FBQSxRQUFDO0VBQ1gsUUFBUSxDQUFBLFFBQUM7RUFDVCxXQUFXLENBQUEsUUFBQztFQUNaLFNBQVMsQ0FBQSxRQUFDO0VBQ1YsWUFBWSxDQUFBLFFBQUM7RUFDYixpQkFBaUIsQ0FBQSxNQUFDO0VBQ2xCLGNBQWMsQ0FBQSxRQUFDO0VBQ2YsbUJBQW1CLENBQUEsTUFBQztFQUNwQixjQUFjLENBQUEsUUFBQztFQUNmLGtCQUFrQixDQUFBLFFBQUM7RUFDbkIsZUFBZSxDQUFBLE1BQUM7RUFDaEIsWUFBWSxDQUFBLEtBQUMsR0FDYjs7QUNyQ0Q7OztHQUdHO0FBQ0gsVUFBVSxDQUFWLElBQVU7RUFDVCxJQUFJO0lBQ0gsU0FBUyxFQUFFLGNBQWdCOztBQ043Qjs7O0dBR0c7QUFDSCxVQUFVO0VBQ1QsV0FBVyxFQUFFLE1BQU07RUFDbkIsR0FBRyxFQUFFLGlDQUFpQyxDQUFDLGVBQWUsRUFDakQsZ0NBQWdDLENBQUMsY0FBYyxFQUMvQywrQkFBK0IsQ0FBQyxrQkFBa0I7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 */
