@charset "UTF-8";
/*
    DENIFIRE variables
*/
/* roboto-condensed-regular - latin_cyrillic */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400;
  src: url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-regular.eot");
  /* IE9 Compat Modes */
  src: local(""), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-regular.eot?#iefix") format("embedded-opentype"), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-regular.woff2") format("woff2"), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-regular.woff") format("woff"), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-regular.ttf") format("truetype"), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-regular.svg#RobotoCondensed") format("svg");
  /* Legacy iOS */ }

/* roboto-condensed-700 - latin_cyrillic */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 700;
  src: url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-700.eot");
  /* IE9 Compat Modes */
  src: local(""), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-700.eot?#iefix") format("embedded-opentype"), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-700.woff2") format("woff2"), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-700.woff") format("woff"), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-700.ttf") format("truetype"), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-700.svg#RobotoCondensed") format("svg");
  /* Legacy iOS */ }

/* roboto-condensed-300 - latin_cyrillic */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 300;
  src: url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-300.eot");
  /* IE9 Compat Modes */
  src: local(""), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-300.eot?#iefix") format("embedded-opentype"), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-300.woff2") format("woff2"), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-300.woff") format("woff"), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-300.ttf") format("truetype"), url("/wp-content/themes/denifire/assets/fonts/Robotocondensed/roboto-condensed-v19-latin_cyrillic-300.svg#RobotoCondensed") format("svg");
  /* Legacy iOS */ }

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 100;
  src: url("/wp-content/themes/denifire/assets/fonts/Roboto/roboto-v20-latin_cyrillic-ext-100.eot");
  /* IE9 Compat Modes */
  src: local(""), url("/wp-content/themes/denifire/assets/fonts/Roboto/roboto-v20-latin_cyrillic-ext-100.eot?#iefix") format("embedded-opentype"), url("/wp-content/themes/denifire/assets/fonts/Roboto/roboto-v20-latin_cyrillic-ext-100.woff2") format("woff2"), url("/wp-content/themes/denifire/assets/fonts/Roboto/roboto-v20-latin_cyrillic-ext-100.woff") format("woff"), url("/wp-content/themes/denifire/assets/fonts/Roboto/roboto-v20-latin_cyrillic-ext-100.ttf") format("truetype"), url("/wp-content/themes/denifire/assets/fonts/Roboto/roboto-v20-latin_cyrillic-ext-100.svg#Roboto") format("svg");
  /* Legacy iOS */ }

/* roboto-regular - latin_cyrillic-ext */
/* roboto-700 - latin_cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url("/wp-content/themes/denifire/assets/fonts/Roboto/roboto-v20-latin_cyrillic-ext-700.eot");
  /* IE9 Compat Modes */
  src: local(""), url("/wp-content/themes/denifire/assets/fonts/Roboto/roboto-v20-latin_cyrillic-ext-700.eot?#iefix") format("embedded-opentype"), url("/wp-content/themes/denifire/assets/fonts/Roboto/roboto-v20-latin_cyrillic-ext-700.woff2") format("woff2"), url("/wp-content/themes/denifire/assets/fonts/Roboto/roboto-v20-latin_cyrillic-ext-700.woff") format("woff"), url("/wp-content/themes/denifire/assets/fonts/Roboto/roboto-v20-latin_cyrillic-ext-700.ttf") format("truetype"), url("/wp-content/themes/denifire/assets/fonts/Roboto/roboto-v20-latin_cyrillic-ext-700.svg#Roboto") format("svg");
  /* Legacy iOS */ }

/**
 * Strips the unit from a given number-unit-combination and returns the number.
 * @link: http://stackoverflow.com/a/12335841/1779999
 * @usage: parse-int(10px) => 10
 */
/**
 * Simply adds the em unit to a given number. This is used twice in the
 * function underneath, thus the need for a separate function.
 */
/**
 * Calculates em values for a given list of (px or em) values and a given em
 * base. Multiply base values for nested em structures (last @usage example).
 * @usage: em(10px, 1.125) => .55556em
 *         em(24px, .875em) => 1.71429em
 *         em(12px 0 7em rgba(0, 0, 0, .7), 1.75) => .42857em 0 4em rgba(0, 0, 0, 0.7)
 *         em(12px) + em(3em) => 3.75em
 *         em(23px, em(53px)) => .43396em
 *         em(24px, 1.5 * 1.125) => .88889em
 */
/**
 * Imports
 */
/**
 * _animation.scss
 * Custom WooCommerce Animations.
 */
@-webkit-keyframes spin {
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }
@keyframes spin {
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

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

@font-face {
  font-family: 'WooCommerce';
  src: url("../fonts/WooCommerce.eot");
  src: url("../fonts/WooCommerce.eot?#iefix") format("embedded-opentype"), url("../fonts/WooCommerce.woff") format("woff"), url("../fonts/WooCommerce.ttf") format("truetype"), url("../fonts/WooCommerce.svg#WooCommerce") format("svg");
  font-weight: normal;
  font-style: normal; }

/**
 * 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
 */
/**
 * Utility classes
 */
.clear {
  clear: both; }

/**
 * WooCommerce CSS Variables
 */
/**
 * Basic Layout
 */
.woocommerce,
.woocommerce-page {
  /**
	 * General layout styles
	 */ }
  .woocommerce .col2-set,
  .woocommerce-page .col2-set {
    *zoom: 1;
    width: 100%; }
    .woocommerce .col2-set::before, .woocommerce .col2-set::after,
    .woocommerce-page .col2-set::before,
    .woocommerce-page .col2-set::after {
      content: ' ';
      display: table; }
    .woocommerce .col2-set::after,
    .woocommerce-page .col2-set::after {
      clear: both; }
    .woocommerce .col2-set .col-1,
    .woocommerce-page .col2-set .col-1 {
      float: left;
      width: 48%; }
    .woocommerce .col2-set .col-2,
    .woocommerce-page .col2-set .col-2 {
      float: right;
      width: 48%; }

.woocommerce-products-header__title {
  display: none; }

@media (min-width: 1280px) {
  .woocommerce .site-content .container {
    margin-top: 36px; } }

.woocommerce.post-type-archive .container {
  margin-top: 0; }

.woocommerce .container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  @media screen and (max-width: 768px) {
    .woocommerce .container {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; } }

.woocommerce.post-type-archive .site-content {
  margin-top: 0; }

@media screen and (max-width: 768px) {
  .woocommerce .site-main {
    width: 100%; } }

.product-template-default .site-main {
  margin: 0 auto; }

/**
 * Shop tables
 */
/**
	 * Tables
	 */
table.shop_attributes {
  border: 1px solid rgba(0, 0, 0, 0.1);
  margin-bottom: 1.618em;
  width: 100%;
  border-spacing: 0; }
  table.shop_attributes tr {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
  table.shop_attributes th {
    width: 50%;
    padding: 8px;
    border-top: 0;
    margin: 0;
    line-height: 1.5;
    text-align: left;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    border-right: 1px solid rgba(0, 0, 0, 0.1); }
  table.shop_attributes td {
    padding: 0;
    border-top: 0;
    margin: 0;
    line-height: 1.5;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
    table.shop_attributes td.woocommerce-product-attributes-item__value {
      margin: 0;
      padding: 8px 20px;
      color: #E50A19;
      font-weight: bold; }
      table.shop_attributes td.woocommerce-product-attributes-item__value p {
        margin: 0; }

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; }
  table.shop_table th {
    font-weight: 700;
    padding: 9px 12px;
    line-height: 1.5em; }
  table.shop_table td {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    padding: 9px 12px;
    vertical-align: middle;
    line-height: 1.5em; }
    table.shop_table td small {
      font-weight: normal; }
    table.shop_table td del {
      font-weight: normal; }
  table.shop_table tbody:first-child tr:first-child th,
  table.shop_table tbody:first-child tr:first-child td {
    border-top: 0; }
  table.shop_table tfoot td,
  table.shop_table tfoot th,
  table.shop_table tbody th {
    font-weight: 700;
    border-top: 1px solid rgba(0, 0, 0, 0.1); }

table.my_account_orders {
  font-size: 0.85em; }
  table.my_account_orders th,
  table.my_account_orders td {
    padding: 4px 8px;
    vertical-align: middle; }
  table.my_account_orders .button {
    white-space: nowrap; }

table.woocommerce-MyAccount-downloads td,
table.woocommerce-MyAccount-downloads th {
  vertical-align: top;
  text-align: center; }
  table.woocommerce-MyAccount-downloads td:first-child,
  table.woocommerce-MyAccount-downloads th:first-child {
    text-align: left; }
  table.woocommerce-MyAccount-downloads td:last-child,
  table.woocommerce-MyAccount-downloads th:last-child {
    text-align: left; }
  table.woocommerce-MyAccount-downloads td .woocommerce-MyAccount-downloads-file::before,
  table.woocommerce-MyAccount-downloads th .woocommerce-MyAccount-downloads-file::before {
    content: "\2193";
    display: inline-block; }

td.product-name dl.variation,
td.product-name .wc-item-meta {
  list-style: none outside; }
  td.product-name dl.variation dt,
  td.product-name dl.variation .wc-item-meta-label,
  td.product-name .wc-item-meta dt,
  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; }
  td.product-name dl.variation dd,
  td.product-name .wc-item-meta dd {
    margin: 0; }
  td.product-name dl.variation p, td.product-name dl.variation:last-child,
  td.product-name .wc-item-meta p,
  td.product-name .wc-item-meta:last-child {
    margin-bottom: 0; }

td.product-name p.backorder_notification {
  font-size: 0.83em; }

td.product-quantity {
  min-width: 80px; }

/**
 * Products
 */
.product-category a {
  color: #000;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  z-index: 9;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding-left: 16px; }

.product-category img {
  max-width: 80px;
  margin-bottom: 0 !important;
  min-height: 80px;
  height: 80px;
  -o-object-fit: contain;
     object-fit: contain; }

/**
 * Single product
 */
/**
* Product Page
*/
.type-product {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  max-width: 1200px;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }
  .type-product .product__thumbnailWrapper {
    width: 37%; }
    @media (max-width: 415px) {
      .type-product .product__thumbnailWrapper {
        width: 100%;
        margin-bottom: 50px; } }
    @media (max-width: 767px) {
      .type-product .product__thumbnailWrapper {
        padding-top: 5rem; } }
  .type-product .widget_product_categories {
    display: none; }
    @media (min-width: 1280px) {
      .type-product .widget_product_categories {
        display: block; } }
    .type-product .widget_product_categories > p {
      font-weight: bold;
      font-size: 1.25rem; }
      @media (min-width: 1280px) {
        .type-product .widget_product_categories > p {
          font-size: 1.625rem; } }
  .type-product .entry-summary {
    margin-bottom: 20px; }
    @media (max-width: 767px) {
      .type-product .entry-summary {
        padding-top: 1.25rem !important; } }
    @media (max-width: 1279px) {
      .type-product .entry-summary {
        padding: 0 10px; } }
  .type-product .product__Wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    @media (min-width: 768px) {
      .type-product .product__Wrapper > h2 {
        display: none; } }
    .type-product .product__Wrapper ul {
      margin-left: 18px; }
    .type-product .product__Wrapper li {
      list-style: disc; }
  @media (max-width: 767px) {
    .type-product .woocommerce-Tabs-panel h2 {
      width: 100%;
      text-align: center; } }
  .type-product .product__summaryWrapper {
    width: calc(63% - 41px);
    padding-left: 1.25rem; }
    @media (max-width: 767px) {
      .type-product .product__summaryWrapper {
        width: 100%; } }
  .type-product .related ul {
    margin: 0; }
  .type-product .related h2 {
    width: 100%;
    text-align: center;
    text-transform: uppercase;
    font-size: 1.625em; }
  .type-product .related .product {
    background-color: #fff; }
  .type-product .related .woocommerce-loop-product__link {
    width: 100%; }

@media (max-width: 415px) {
  .single-product .site-content {
    padding-top: 0; } }

div.product {
  margin-bottom: 0;
  position: relative; }
  div.product .product_title {
    clear: none;
    margin-top: 0;
    padding: 0; }
    @media (max-width: 767px) {
      div.product .product_title {
        position: absolute;
        top: 0;
        left: 0;
        font-size: 18px; } }
  div.product span.price,
  div.product p.price {
    color: #77a464;
    font-size: 1.25em; }
    div.product span.price ins,
    div.product p.price ins {
      background: inherit;
      font-weight: 700;
      display: inline-block; }
    div.product span.price del,
    div.product p.price del {
      opacity: 0.5;
      display: inline-block; }
  div.product p.stock {
    font-size: 0.92em; }
  div.product .stock {
    color: #77a464; }
  div.product .out-of-stock {
    color: red; }
  div.product .woocommerce-product-rating {
    margin-bottom: 1.618em; }
  div.product div.images {
    margin-bottom: 2em; }
    div.product div.images img {
      display: block;
      width: 100%;
      height: auto;
      -webkit-box-shadow: none;
              box-shadow: none; }
    div.product div.images div.thumbnails {
      padding-top: 1em;
      *zoom: 1; }
      div.product div.images div.thumbnails::before, div.product div.images div.thumbnails::after {
        content: ' ';
        display: table; }
      div.product div.images div.thumbnails::after {
        clear: both; }
      div.product div.images div.thumbnails a {
        float: left;
        width: 30.75%;
        margin-right: 3.8%;
        margin-bottom: 1em; }
      div.product div.images div.thumbnails a.last {
        margin-right: 0; }
      div.product div.images div.thumbnails a.first {
        clear: both; }
      div.product div.images div.thumbnails.columns-1 a {
        width: 100%;
        margin-right: 0;
        float: none; }
      div.product div.images div.thumbnails.columns-2 a {
        width: 48%; }
      div.product div.images div.thumbnails.columns-4 a {
        width: 22.05%; }
      div.product div.images div.thumbnails.columns-5 a {
        width: 16.9%; }
    div.product div.images.woocommerce-product-gallery {
      position: relative; }
    div.product div.images .woocommerce-product-gallery__wrapper {
      -webkit-transition: all cubic-bezier(0.795, -0.035, 0, 1) 0.5s;
      transition: all cubic-bezier(0.795, -0.035, 0, 1) 0.5s;
      margin: 0;
      padding: 0; }
    div.product div.images .woocommerce-product-gallery__wrapper .zoomImg {
      background-color: #fff;
      opacity: 0; }
    div.product div.images .woocommerce-product-gallery__image--placeholder {
      border: 1px solid #f2f2f2; }
    div.product div.images .woocommerce-product-gallery__image:nth-child(n + 2) {
      width: 25%;
      display: inline-block; }
    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%;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
      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;
        -webkit-box-sizing: content-box;
                box-sizing: content-box; }
      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;
        -webkit-transform: rotate(-45deg);
                transform: rotate(-45deg);
        -webkit-box-sizing: content-box;
                box-sizing: content-box; }
    div.product div.images .flex-control-thumbs {
      overflow: hidden;
      zoom: 1;
      margin: 0;
      padding: 0; }
      div.product div.images .flex-control-thumbs li {
        width: 25%;
        float: left;
        margin: 0;
        list-style: none; }
        div.product div.images .flex-control-thumbs li img {
          cursor: pointer;
          opacity: 0.5;
          margin: 0; }
          div.product div.images .flex-control-thumbs li img.flex-active, div.product div.images .flex-control-thumbs li img:hover {
            opacity: 1; }
  div.product .woocommerce-product-gallery--columns-3 .flex-control-thumbs li:nth-child(3n + 1) {
    clear: left; }
  div.product .woocommerce-product-gallery--columns-4 .flex-control-thumbs li:nth-child(4n + 1) {
    clear: left; }
  div.product .woocommerce-product-gallery--columns-5 .flex-control-thumbs li:nth-child(5n + 1) {
    clear: left; }
  div.product div.summary {
    clear: none; }
  div.product div.social {
    text-align: right;
    margin: 0 0 1em; }
    div.product div.social span {
      margin: 0 0 0 2px; }
      div.product div.social span span {
        margin: 0; }
      div.product div.social span .stButton .chicklets {
        padding-left: 16px;
        width: 0; }
    div.product div.social iframe {
      float: left;
      margin-top: 3px; }
  div.product .woocommerce-tabs {
    clear: both; }
    div.product .woocommerce-tabs ul.tabs {
      list-style: none;
      padding: 0 0 0 1em;
      margin: 0 0 1.618em;
      overflow: hidden;
      position: relative;
      display: none; }
      div.product .woocommerce-tabs ul.tabs li {
        border: 1px solid #d3ced2;
        background-color: #ebe9eb;
        display: inline-block;
        position: relative;
        z-index: 0;
        border-radius: 4px 4px 0 0;
        margin: 0 -5px;
        padding: 0 1em; }
        div.product .woocommerce-tabs ul.tabs li a {
          display: inline-block;
          padding: 0.5em 0;
          font-weight: 700;
          color: #515151;
          text-decoration: none; }
          div.product .woocommerce-tabs ul.tabs li a:hover {
            text-decoration: none;
            color: #6b6b6b; }
        div.product .woocommerce-tabs ul.tabs li.active {
          background: #fff;
          z-index: 2;
          border-bottom-color: #fff; }
          div.product .woocommerce-tabs ul.tabs li.active a {
            color: inherit;
            text-shadow: inherit; }
          div.product .woocommerce-tabs ul.tabs li.active::before {
            -webkit-box-shadow: 2px 2px 0 #fff;
                    box-shadow: 2px 2px 0 #fff; }
          div.product .woocommerce-tabs ul.tabs li.active::after {
            -webkit-box-shadow: -2px 2px 0 #fff;
                    box-shadow: -2px 2px 0 #fff; }
        div.product .woocommerce-tabs ul.tabs li::before, div.product .woocommerce-tabs ul.tabs li::after {
          border: 1px solid #d3ced2;
          position: absolute;
          bottom: -1px;
          width: 5px;
          height: 5px;
          content: " ";
          -webkit-box-sizing: border-box;
                  box-sizing: border-box; }
        div.product .woocommerce-tabs ul.tabs li::before {
          left: -5px;
          border-bottom-right-radius: 4px;
          border-width: 0 1px 1px 0;
          -webkit-box-shadow: 2px 2px 0 #ebe9eb;
                  box-shadow: 2px 2px 0 #ebe9eb; }
        div.product .woocommerce-tabs ul.tabs li::after {
          right: -5px;
          border-bottom-left-radius: 4px;
          border-width: 0 0 1px 1px;
          -webkit-box-shadow: -2px 2px 0 #ebe9eb;
                  box-shadow: -2px 2px 0 #ebe9eb; }
      div.product .woocommerce-tabs ul.tabs::before {
        position: absolute;
        content: " ";
        width: 100%;
        bottom: 0;
        left: 0;
        border-bottom: 1px solid #d3ced2;
        z-index: 1; }
    div.product .woocommerce-tabs .panel {
      margin: 0 0 2em;
      padding: 0; }
  div.product p.cart {
    margin-bottom: 2em;
    *zoom: 1; }
    div.product p.cart::before, div.product p.cart::after {
      content: ' ';
      display: table; }
    div.product p.cart::after {
      clear: both; }
  div.product form.cart {
    margin-bottom: 2em;
    *zoom: 1; }
    div.product form.cart::before, div.product form.cart::after {
      content: ' ';
      display: table; }
    div.product form.cart::after {
      clear: both; }
    div.product form.cart div.quantity {
      float: left;
      margin: 0 4px 0 0; }
    div.product form.cart table {
      border-width: 0 0 1px; }
      div.product form.cart table td {
        padding-left: 0; }
      div.product form.cart table div.quantity {
        float: none;
        margin: 0; }
      div.product form.cart table small.stock {
        display: block;
        float: none; }
    div.product form.cart .variations {
      margin-bottom: 1em;
      border: 0;
      width: 100%; }
      div.product form.cart .variations td,
      div.product form.cart .variations th {
        border: 0;
        vertical-align: top;
        line-height: 2em; }
      div.product form.cart .variations label {
        font-weight: 700; }
      div.product form.cart .variations select {
        max-width: 100%;
        min-width: 75%;
        display: inline-block;
        margin-right: 1em; }
      div.product form.cart .variations td.label {
        padding-right: 1em; }
    div.product form.cart .woocommerce-variation-description p {
      margin-bottom: 1em; }
    div.product form.cart .reset_variations {
      visibility: hidden;
      font-size: 0.83em; }
    div.product form.cart .wc-no-matching-variations {
      display: none; }
    div.product form.cart .button {
      vertical-align: middle;
      float: left; }
    div.product form.cart .group_table td.woocommerce-grouped-product-list-item__label {
      padding-right: 1em;
      padding-left: 1em; }
    div.product form.cart .group_table td {
      vertical-align: top;
      padding-bottom: 0.5em;
      border: 0; }
    div.product form.cart .group_table td:first-child {
      width: 4em;
      text-align: center; }
    div.product form.cart .group_table .wc-grouped-product-add-to-cart-checkbox {
      display: inline-block;
      width: auto;
      margin: 0 auto;
      -webkit-transform: scale(1.5, 1.5);
              transform: scale(1.5, 1.5); }

.single-product__sku > p {
  width: 100%;
  font-weight: bold;
  font-family: "Roboto Condensed", Helvetica, Arial, sans-serif;
  margin: 0; }
  .single-product__sku > p:last-of-type {
    color: #E50A19; }

.woocommerce-Tabs-panel--additional_information h2 {
  display: none; }

div.product div.images img {
  max-height: 444px;
  width: auto;
  margin: 0 auto; }

.woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery {
  background: #fff; }

.flex-control-nav {
  padding: 10px !important; }

/**
 * Checkout
 */
@media screen and (min-width: 768px) {
  .col2-set .form-row-first {
    float: left;
    margin-right: 3.8%; }
  .col2-set .form-row-last {
    float: right;
    margin-right: 0; }
  .col2-set .form-row-first,
  .col2-set .form-row-last {
    width: 48.1%; } }

/**
 * 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 .product-thumbnail img,
  .woocommerce-checkout table.cart .product-thumbnail img,
  #add_payment_method table.cart .product-thumbnail img {
    width: 7em; }

.woocommerce-cart table.cart img,
.woocommerce-checkout table.cart img,
#add_payment_method table.cart img {
  width: 32px;
  -webkit-box-shadow: none;
          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;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border: 1px solid #d3ced2;
  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: none;
  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: #767676;
  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: #767676; }
  .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: #77a464; }

.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 #ebe9eb; }

.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: #767676;
  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: #ebe9eb;
  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 #d3ced2;
    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;
        -webkit-box-shadow: none;
                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;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 100%;
    padding: 1em;
    margin: 1em 0;
    font-size: 0.92em;
    border-radius: 2px;
    line-height: 1.5;
    background-color: #dfdcde;
    color: #515151; }
    .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: #c7c1c6;
      border-top-color: #bbb3b9; }
    .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: #bbb3b9; }
    .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: #bbb3b9; }
    .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: #bbb3b9; }
    .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: #767676;
      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 #dfdcde;
      /* 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);
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
          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; }

/**
 * Cart
 */
/**
 * Cart page
 */
.woocommerce,
.woocommerce-page {
  /**
   * Forms
   */
  /**
   * oEmbeds
   */ }
  .woocommerce table.cart img,
  .woocommerce #content table.cart img,
  .woocommerce-page table.cart img,
  .woocommerce-page #content table.cart img {
    height: auto; }
  .woocommerce table.cart td.actions,
  .woocommerce #content table.cart td.actions,
  .woocommerce-page table.cart td.actions,
  .woocommerce-page #content table.cart td.actions {
    text-align: right; }
    .woocommerce table.cart td.actions .input-text,
    .woocommerce #content table.cart td.actions .input-text,
    .woocommerce-page table.cart td.actions .input-text,
    .woocommerce-page #content table.cart td.actions .input-text {
      width: 80px; }
    .woocommerce table.cart td.actions .coupon,
    .woocommerce #content table.cart td.actions .coupon,
    .woocommerce-page table.cart td.actions .coupon,
    .woocommerce-page #content table.cart td.actions .coupon {
      float: left; }
      .woocommerce table.cart td.actions .coupon label,
      .woocommerce #content table.cart td.actions .coupon label,
      .woocommerce-page table.cart td.actions .coupon label,
      .woocommerce-page #content table.cart td.actions .coupon label {
        display: none; }
  .woocommerce .cart-collaterals,
  .woocommerce-page .cart-collaterals {
    *zoom: 1;
    width: 100%; }
    .woocommerce .cart-collaterals::before, .woocommerce .cart-collaterals::after,
    .woocommerce-page .cart-collaterals::before,
    .woocommerce-page .cart-collaterals::after {
      content: ' ';
      display: table; }
    .woocommerce .cart-collaterals::after,
    .woocommerce-page .cart-collaterals::after {
      clear: both; }
    .woocommerce .cart-collaterals .related,
    .woocommerce-page .cart-collaterals .related {
      width: 30.75%;
      float: left; }
    .woocommerce .cart-collaterals .cross-sells,
    .woocommerce-page .cart-collaterals .cross-sells {
      width: 48%;
      float: left; }
      .woocommerce .cart-collaterals .cross-sells ul.products,
      .woocommerce-page .cart-collaterals .cross-sells ul.products {
        float: none; }
        .woocommerce .cart-collaterals .cross-sells ul.products li,
        .woocommerce-page .cart-collaterals .cross-sells ul.products li {
          width: 48%; }
    .woocommerce .cart-collaterals .shipping_calculator,
    .woocommerce-page .cart-collaterals .shipping_calculator {
      width: 48%;
      *zoom: 1;
      clear: right;
      float: right; }
      .woocommerce .cart-collaterals .shipping_calculator::before, .woocommerce .cart-collaterals .shipping_calculator::after,
      .woocommerce-page .cart-collaterals .shipping_calculator::before,
      .woocommerce-page .cart-collaterals .shipping_calculator::after {
        content: ' ';
        display: table; }
      .woocommerce .cart-collaterals .shipping_calculator::after,
      .woocommerce-page .cart-collaterals .shipping_calculator::after {
        clear: both; }
      .woocommerce .cart-collaterals .shipping_calculator .col2-set .col-1,
      .woocommerce .cart-collaterals .shipping_calculator .col2-set .col-2,
      .woocommerce-page .cart-collaterals .shipping_calculator .col2-set .col-1,
      .woocommerce-page .cart-collaterals .shipping_calculator .col2-set .col-2 {
        width: 47%; }
    .woocommerce .cart-collaterals .cart_totals,
    .woocommerce-page .cart-collaterals .cart_totals {
      float: right;
      width: 48%; }
  .woocommerce form .form-row,
  .woocommerce-page form .form-row {
    *zoom: 1; }
    .woocommerce form .form-row::before, .woocommerce form .form-row::after,
    .woocommerce-page form .form-row::before,
    .woocommerce-page form .form-row::after {
      content: ' ';
      display: table; }
    .woocommerce form .form-row::after,
    .woocommerce-page form .form-row::after {
      clear: both; }
    .woocommerce form .form-row label,
    .woocommerce-page form .form-row label {
      display: block; }
      .woocommerce form .form-row label.checkbox,
      .woocommerce-page form .form-row label.checkbox {
        display: inline; }
    .woocommerce form .form-row select,
    .woocommerce-page form .form-row select {
      width: 100%; }
    .woocommerce form .form-row .input-text,
    .woocommerce-page form .form-row .input-text {
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      width: 100%; }
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last,
  .woocommerce-page form .form-row-first,
  .woocommerce-page form .form-row-last {
    width: 47%;
    overflow: visible; }
  .woocommerce form .form-row-first,
  .woocommerce-page form .form-row-first {
    float: left;
    /*rtl:raw:
      float: right;
      */ }
  .woocommerce form .form-row-last,
  .woocommerce-page form .form-row-last {
    float: right; }
  .woocommerce form .form-row-wide,
  .woocommerce-page form .form-row-wide {
    clear: both; }
  .woocommerce form .password-input,
  .woocommerce-page form .password-input {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    position: relative;
    /* Hide the Edge "reveal password" native button */ }
    .woocommerce form .password-input input[type="password"],
    .woocommerce-page form .password-input input[type="password"] {
      padding-right: 2.5rem; }
    .woocommerce form .password-input input::-ms-reveal,
    .woocommerce-page form .password-input input::-ms-reveal {
      display: none; }
  .woocommerce form .show-password-input,
  .woocommerce-page form .show-password-input {
    position: absolute;
    right: 0.7em;
    top: 0.7em;
    cursor: pointer; }
  .woocommerce form .show-password-input::after,
  .woocommerce-page form .show-password-input::after {
    font-family: 'WooCommerce';
    speak: none;
    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 form .show-password-input.display-password::after,
  .woocommerce-page form .show-password-input.display-password::after {
    color: #585858; }
  .woocommerce #payment .form-row select,
  .woocommerce-page #payment .form-row select {
    width: auto; }
  .woocommerce #payment .wc-terms-and-conditions,
  .woocommerce #payment .terms,
  .woocommerce-page #payment .wc-terms-and-conditions,
  .woocommerce-page #payment .terms {
    text-align: left;
    padding: 0 1em 0 0;
    float: left; }
  .woocommerce #payment #place_order,
  .woocommerce-page #payment #place_order {
    float: right; }
  .woocommerce .woocommerce-billing-fields,
  .woocommerce .woocommerce-shipping-fields,
  .woocommerce-page .woocommerce-billing-fields,
  .woocommerce-page .woocommerce-shipping-fields {
    *zoom: 1; }
    .woocommerce .woocommerce-billing-fields::before, .woocommerce .woocommerce-billing-fields::after,
    .woocommerce .woocommerce-shipping-fields::before,
    .woocommerce .woocommerce-shipping-fields::after,
    .woocommerce-page .woocommerce-billing-fields::before,
    .woocommerce-page .woocommerce-billing-fields::after,
    .woocommerce-page .woocommerce-shipping-fields::before,
    .woocommerce-page .woocommerce-shipping-fields::after {
      content: ' ';
      display: table; }
    .woocommerce .woocommerce-billing-fields::after,
    .woocommerce .woocommerce-shipping-fields::after,
    .woocommerce-page .woocommerce-billing-fields::after,
    .woocommerce-page .woocommerce-shipping-fields::after {
      clear: both; }
  .woocommerce .woocommerce-terms-and-conditions,
  .woocommerce-page .woocommerce-terms-and-conditions {
    margin-bottom: 1.618em;
    padding: 1.618em; }
  .woocommerce .woocommerce-oembed,
  .woocommerce-page .woocommerce-oembed {
    position: relative; }

/**
 * General WooCommerce components
 */
/**
 * Header cart
 */
.site-header-cart {
  position: relative;
  margin: 0;
  padding: 0; }
  .site-header-cart .cart-contents {
    text-decoration: none; }
  .site-header-cart .widget_shopping_cart {
    display: none; }
  .site-header-cart .product_list_widget {
    margin: 0;
    padding: 0; }

@media screen and (min-width: 48em) {
  /**
     * Header cart
     */
  .site-header-cart .widget_shopping_cart {
    position: absolute;
    top: 100%;
    width: 100%;
    z-index: 999999;
    left: -999em;
    display: block;
    -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
            box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2); }
  .site-header-cart:hover .widget_shopping_cart, .site-header-cart.focus .widget_shopping_cart {
    left: 0;
    display: block; } }

.woocommerce,
.woocommerce-page {
  /**
         * Reviews
         */
  /**
     * Star ratings
     */
  /**
	 * Password strength meter
	 */
  /**
     * Forms
     */
  /**
         * Forms
         */
  /**
     * Notices
     */
  /**
         * Buttons
         */
  /**
	 * Order page
	 */ }
  .woocommerce #reviews h2 small,
  .woocommerce-page #reviews h2 small {
    float: right;
    color: #767676;
    font-size: 15px;
    margin: 10px 0 0; }
    .woocommerce #reviews h2 small a,
    .woocommerce-page #reviews h2 small a {
      text-decoration: none;
      color: #767676; }
  .woocommerce #reviews h3,
  .woocommerce-page #reviews h3 {
    margin: 0; }
  .woocommerce #reviews #respond,
  .woocommerce-page #reviews #respond {
    margin: 0;
    border: 0;
    padding: 0; }
  .woocommerce #reviews #comment,
  .woocommerce-page #reviews #comment {
    height: 75px; }
  .woocommerce #reviews #comments .add_review,
  .woocommerce-page #reviews #comments .add_review {
    *zoom: 1; }
    .woocommerce #reviews #comments .add_review::before, .woocommerce #reviews #comments .add_review::after,
    .woocommerce-page #reviews #comments .add_review::before,
    .woocommerce-page #reviews #comments .add_review::after {
      content: ' ';
      display: table; }
    .woocommerce #reviews #comments .add_review::after,
    .woocommerce-page #reviews #comments .add_review::after {
      clear: both; }
  .woocommerce #reviews #comments h2,
  .woocommerce-page #reviews #comments h2 {
    clear: none; }
  .woocommerce #reviews #comments ol.commentlist,
  .woocommerce-page #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,
    .woocommerce-page #reviews #comments ol.commentlist::before,
    .woocommerce-page #reviews #comments ol.commentlist::after {
      content: ' ';
      display: table; }
    .woocommerce #reviews #comments ol.commentlist::after,
    .woocommerce-page #reviews #comments ol.commentlist::after {
      clear: both; }
    .woocommerce #reviews #comments ol.commentlist li,
    .woocommerce-page #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 .meta,
      .woocommerce-page #reviews #comments ol.commentlist li .meta {
        color: #767676;
        font-size: 0.75em; }
      .woocommerce #reviews #comments ol.commentlist li img.avatar,
      .woocommerce-page #reviews #comments ol.commentlist li img.avatar {
        float: left;
        position: absolute;
        top: 0;
        left: 0;
        padding: 3px;
        width: 32px;
        height: auto;
        background: #ebe9eb;
        border: 1px solid #e4e1e3;
        margin: 0;
        -webkit-box-shadow: none;
                box-shadow: none; }
      .woocommerce #reviews #comments ol.commentlist li .comment-text,
      .woocommerce-page #reviews #comments ol.commentlist li .comment-text {
        margin: 0 0 0 50px;
        border: 1px solid #e4e1e3;
        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,
        .woocommerce-page #reviews #comments ol.commentlist li .comment-text::before,
        .woocommerce-page #reviews #comments ol.commentlist li .comment-text::after {
          content: ' ';
          display: table; }
        .woocommerce #reviews #comments ol.commentlist li .comment-text::after,
        .woocommerce-page #reviews #comments ol.commentlist li .comment-text::after {
          clear: both; }
        .woocommerce #reviews #comments ol.commentlist li .comment-text p,
        .woocommerce-page #reviews #comments ol.commentlist li .comment-text p {
          margin: 0 0 1em; }
        .woocommerce #reviews #comments ol.commentlist li .comment-text p.meta,
        .woocommerce-page #reviews #comments ol.commentlist li .comment-text p.meta {
          font-size: 0.83em; }
    .woocommerce #reviews #comments ol.commentlist ul.children,
    .woocommerce-page #reviews #comments ol.commentlist ul.children {
      list-style: none outside;
      margin: 20px 0 0 50px; }
      .woocommerce #reviews #comments ol.commentlist ul.children .star-rating,
      .woocommerce-page #reviews #comments ol.commentlist ul.children .star-rating {
        display: none; }
    .woocommerce #reviews #comments ol.commentlist #respond,
    .woocommerce-page #reviews #comments ol.commentlist #respond {
      border: 1px solid #e4e1e3;
      border-radius: 4px;
      padding: 1em 1em 0;
      margin: 20px 0 0 50px; }
  .woocommerce #reviews #comments .commentlist > li::before,
  .woocommerce-page #reviews #comments .commentlist > li::before {
    content: ""; }
  .woocommerce .star-rating,
  .woocommerce-page .star-rating {
    float: right;
    overflow: hidden;
    position: relative;
    height: 1em;
    line-height: 1;
    font-size: 1em;
    width: 5.4em;
    font-family: "star"; }
    .woocommerce .star-rating::before,
    .woocommerce-page .star-rating::before {
      content: "\73\73\73\73\73";
      color: #d3ced2;
      float: left;
      top: 0;
      left: 0;
      position: absolute; }
    .woocommerce .star-rating span,
    .woocommerce-page .star-rating span {
      overflow: hidden;
      float: left;
      top: 0;
      left: 0;
      position: absolute;
      padding-top: 1.5em; }
    .woocommerce .star-rating span::before,
    .woocommerce-page .star-rating span::before {
      content: "\53\53\53\53\53";
      top: 0;
      position: absolute;
      left: 0; }
  .woocommerce .woocommerce-product-rating,
  .woocommerce-page .woocommerce-product-rating {
    *zoom: 1;
    line-height: 2;
    display: block; }
    .woocommerce .woocommerce-product-rating::before, .woocommerce .woocommerce-product-rating::after,
    .woocommerce-page .woocommerce-product-rating::before,
    .woocommerce-page .woocommerce-product-rating::after {
      content: ' ';
      display: table; }
    .woocommerce .woocommerce-product-rating::after,
    .woocommerce-page .woocommerce-product-rating::after {
      clear: both; }
    .woocommerce .woocommerce-product-rating .star-rating,
    .woocommerce-page .woocommerce-product-rating .star-rating {
      margin: 0.5em 4px 0 0;
      float: left; }
  .woocommerce .products .star-rating,
  .woocommerce-page .products .star-rating {
    display: block;
    margin: 0 0 0.5em;
    float: none; }
  .woocommerce .hreview-aggregate .star-rating,
  .woocommerce-page .hreview-aggregate .star-rating {
    margin: 10px 0 0; }
  .woocommerce #review_form #respond,
  .woocommerce-page #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,
    .woocommerce-page #review_form #respond::before,
    .woocommerce-page #review_form #respond::after {
      content: ' ';
      display: table; }
    .woocommerce #review_form #respond::after,
    .woocommerce-page #review_form #respond::after {
      clear: both; }
    .woocommerce #review_form #respond p,
    .woocommerce-page #review_form #respond p {
      margin: 0 0 10px; }
    .woocommerce #review_form #respond .form-submit input,
    .woocommerce-page #review_form #respond .form-submit input {
      left: auto; }
    .woocommerce #review_form #respond textarea,
    .woocommerce-page #review_form #respond textarea {
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      width: 100%; }
  .woocommerce p.stars a,
  .woocommerce-page p.stars a {
    position: relative;
    height: 1em;
    width: 1em;
    text-indent: -999em;
    display: inline-block;
    text-decoration: none; }
    .woocommerce p.stars a::before,
    .woocommerce-page 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,
    .woocommerce-page p.stars a:hover ~ a::before {
      content: "\e021"; }
  .woocommerce p.stars:hover a::before,
  .woocommerce-page p.stars:hover a::before {
    content: "\e020"; }
  .woocommerce p.stars.selected a.active::before,
  .woocommerce-page p.stars.selected a.active::before {
    content: "\e020"; }
  .woocommerce p.stars.selected a.active ~ a::before,
  .woocommerce-page p.stars.selected a.active ~ a::before {
    content: "\e021"; }
  .woocommerce p.stars.selected a:not(.active)::before,
  .woocommerce-page p.stars.selected a:not(.active)::before {
    content: "\e020"; }
  .woocommerce .woocommerce-password-strength,
  .woocommerce-page .woocommerce-password-strength {
    text-align: center;
    font-weight: 600;
    padding: 3px 0.5em;
    font-size: 1em; }
    .woocommerce .woocommerce-password-strength.strong,
    .woocommerce-page .woocommerce-password-strength.strong {
      background-color: #c1e1b9;
      border-color: #83c373; }
    .woocommerce .woocommerce-password-strength.short,
    .woocommerce-page .woocommerce-password-strength.short {
      background-color: #f1adad;
      border-color: #e35b5b; }
    .woocommerce .woocommerce-password-strength.bad,
    .woocommerce-page .woocommerce-password-strength.bad {
      background-color: #fbc5a9;
      border-color: #f78b53; }
    .woocommerce .woocommerce-password-strength.good,
    .woocommerce-page .woocommerce-password-strength.good {
      background-color: #ffe399;
      border-color: #ffc733; }
  .woocommerce .woocommerce-password-hint,
  .woocommerce-page .woocommerce-password-hint {
    margin: 0.5em 0 0;
    display: block; }
  .woocommerce .form-row.woocommerce-validated input.input-text,
  .woocommerce-page .form-row.woocommerce-validated input.input-text {
    -webkit-box-shadow: inset 2px 0 0 #0f834d;
            box-shadow: inset 2px 0 0 #0f834d; }
  .woocommerce .form-row.woocommerce-invalid input.input-text,
  .woocommerce-page .form-row.woocommerce-invalid input.input-text {
    -webkit-box-shadow: inset 2px 0 0 #e2401c;
            box-shadow: inset 2px 0 0 #e2401c; }
  .woocommerce .required,
  .woocommerce-page .required {
    color: #f00; }
  .woocommerce form .form-row,
  .woocommerce-page form .form-row {
    padding: 3px;
    margin: 0 0 6px; }
    .woocommerce form .form-row [placeholder]:focus::-webkit-input-placeholder,
    .woocommerce-page form .form-row [placeholder]:focus::-webkit-input-placeholder {
      -webkit-transition: opacity 0.5s 0.5s ease;
      transition: opacity 0.5s 0.5s ease;
      opacity: 0; }
    .woocommerce form .form-row label,
    .woocommerce-page form .form-row label {
      line-height: 2; }
    .woocommerce form .form-row label.hidden,
    .woocommerce-page form .form-row label.hidden {
      visibility: hidden; }
    .woocommerce form .form-row label.inline,
    .woocommerce-page form .form-row label.inline {
      display: inline; }
    .woocommerce form .form-row .woocommerce-input-wrapper .description,
    .woocommerce-page 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,
      .woocommerce-page form .form-row .woocommerce-input-wrapper .description a {
        color: #fff;
        text-decoration: underline;
        border: 0;
        -webkit-box-shadow: none;
                box-shadow: none; }
      .woocommerce form .form-row .woocommerce-input-wrapper .description::before,
      .woocommerce-page form .form-row .woocommerce-input-wrapper .description::before {
        left: 50%;
        top: 0%;
        margin-top: -4px;
        -webkit-transform: translateX(-50%) rotate(180deg);
                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,
    .woocommerce-page form .form-row select {
      cursor: pointer;
      margin: 0; }
    .woocommerce form .form-row .required,
    .woocommerce-page form .form-row .required {
      color: red;
      font-weight: 700;
      border: 0 !important;
      text-decoration: none;
      visibility: hidden; }
    .woocommerce form .form-row .optional,
    .woocommerce-page form .form-row .optional {
      visibility: visible; }
    .woocommerce form .form-row .input-checkbox,
    .woocommerce-page 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,
    .woocommerce-page form .form-row input.input-text,
    .woocommerce-page form .form-row textarea {
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      width: 100%;
      margin: 0;
      outline: 0;
      line-height: normal; }
    .woocommerce form .form-row textarea,
    .woocommerce-page form .form-row textarea {
      height: 4em;
      line-height: 1.5;
      display: block;
      -webkit-box-shadow: none;
              box-shadow: none; }
    .woocommerce form .form-row .select2-container,
    .woocommerce-page form .form-row .select2-container {
      width: 100%;
      line-height: 2em; }
    .woocommerce form .form-row.woocommerce-invalid label,
    .woocommerce-page form .form-row.woocommerce-invalid label {
      color: #a00; }
    .woocommerce form .form-row.woocommerce-invalid .select2-container,
    .woocommerce form .form-row.woocommerce-invalid input.input-text,
    .woocommerce form .form-row.woocommerce-invalid select,
    .woocommerce-page form .form-row.woocommerce-invalid .select2-container,
    .woocommerce-page form .form-row.woocommerce-invalid input.input-text,
    .woocommerce-page form .form-row.woocommerce-invalid select {
      border-color: #a00; }
    .woocommerce form .form-row.woocommerce-validated .select2-container,
    .woocommerce form .form-row.woocommerce-validated input.input-text,
    .woocommerce form .form-row.woocommerce-validated select,
    .woocommerce-page form .form-row.woocommerce-validated .select2-container,
    .woocommerce-page form .form-row.woocommerce-validated input.input-text,
    .woocommerce-page form .form-row.woocommerce-validated select {
      border-color: #0cb185; }
    .woocommerce form .form-row ::-webkit-input-placeholder,
    .woocommerce-page form .form-row ::-webkit-input-placeholder {
      line-height: normal; }
    .woocommerce form .form-row :-moz-placeholder,
    .woocommerce-page form .form-row :-moz-placeholder {
      line-height: normal; }
    .woocommerce form .form-row :-ms-input-placeholder,
    .woocommerce-page form .form-row :-ms-input-placeholder {
      line-height: normal; }
  .woocommerce form.login,
  .woocommerce form.checkout_coupon,
  .woocommerce form.register,
  .woocommerce-page form.login,
  .woocommerce-page form.checkout_coupon,
  .woocommerce-page form.register {
    border: 1px solid #d3ced2;
    padding: 20px;
    margin: 2em 0;
    text-align: left;
    border-radius: 5px; }
  .woocommerce ul#shipping_method,
  .woocommerce-page ul#shipping_method {
    list-style: none outside;
    margin: 0;
    padding: 0; }
    .woocommerce ul#shipping_method li,
    .woocommerce-page ul#shipping_method li {
      margin: 0 0 0.5em;
      line-height: 1.5em;
      list-style: none outside; }
      .woocommerce ul#shipping_method li input,
      .woocommerce-page ul#shipping_method li input {
        margin: 3px 0.4375em 0 0;
        vertical-align: top; }
      .woocommerce ul#shipping_method li label,
      .woocommerce-page ul#shipping_method li label {
        display: inline; }
    .woocommerce ul#shipping_method .amount,
    .woocommerce-page ul#shipping_method .amount {
      font-weight: 700; }
  .woocommerce p.woocommerce-shipping-contents,
  .woocommerce-page p.woocommerce-shipping-contents {
    margin: 0; }
  .woocommerce .woocommerce-message,
  .woocommerce .woocommerce-info,
  .woocommerce .woocommerce-error,
  .woocommerce .woocommerce-noreviews,
  .woocommerce p.no-comments,
  .woocommerce-page .woocommerce-message,
  .woocommerce-page .woocommerce-info,
  .woocommerce-page .woocommerce-error,
  .woocommerce-page .woocommerce-noreviews,
  .woocommerce-page p.no-comments {
    background-color: #0f834d;
    clear: both; }
  .woocommerce .woocommerce-info,
  .woocommerce .woocommerce-noreviews,
  .woocommerce p.no-comments,
  .woocommerce-page .woocommerce-info,
  .woocommerce-page .woocommerce-noreviews,
  .woocommerce-page p.no-comments {
    background-color: #3d9cd2; }
  .woocommerce .woocommerce-error,
  .woocommerce-page .woocommerce-error {
    background-color: #e2401c; }
  .woocommerce .demo_store,
  .woocommerce-page .demo_store {
    position: fixed;
    left: 0;
    bottom: 0;
    right: 0;
    margin: 0;
    padding: 1em;
    background-color: #3d9cd2;
    z-index: 9999; }
  .woocommerce .woocommerce-breadcrumb,
  .woocommerce-page .woocommerce-breadcrumb {
    *zoom: 1;
    margin: 0 0 1em;
    padding: 0;
    font-size: 0.92em;
    color: #767676; }
    .woocommerce .woocommerce-breadcrumb::before, .woocommerce .woocommerce-breadcrumb::after,
    .woocommerce-page .woocommerce-breadcrumb::before,
    .woocommerce-page .woocommerce-breadcrumb::after {
      content: ' ';
      display: table; }
    .woocommerce .woocommerce-breadcrumb::after,
    .woocommerce-page .woocommerce-breadcrumb::after {
      clear: both; }
    .woocommerce .woocommerce-breadcrumb a,
    .woocommerce-page .woocommerce-breadcrumb a {
      color: #767676; }
  .woocommerce .blockUI.blockOverlay,
  .woocommerce-page .blockUI.blockOverlay {
    position: relative; }
    .woocommerce .blockUI.blockOverlay::before,
    .woocommerce-page .blockUI.blockOverlay::before {
      height: 1em;
      width: 1em;
      display: block;
      position: absolute;
      top: 50%;
      left: 50%;
      margin-left: -0.5em;
      margin-top: -0.5em;
      content: '';
      -webkit-animation: spin 1s ease-in-out infinite;
              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,
  .woocommerce-page .loader::before {
    height: 1em;
    width: 1em;
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-left: -0.5em;
    margin-top: -0.5em;
    content: '';
    -webkit-animation: spin 1s ease-in-out infinite;
            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,
  .woocommerce-page a.remove {
    display: block;
    font-size: 0.8em;
    height: 1em;
    width: 0.1em;
    text-align: center;
    line-height: 1;
    border-radius: 100%;
    color: #ff7272 !important;
    text-decoration: none;
    font-weight: 700;
    border: 0; }
    .woocommerce a.remove:hover,
    .woocommerce-page a.remove:hover {
      color: #fff !important;
      background: #ff7272; }
  .woocommerce small.note,
  .woocommerce-page small.note {
    display: block;
    color: #767676;
    font-size: 0.857em;
    margin-top: 10px; }
  .woocommerce .quantity .qty,
  .woocommerce-page .quantity .qty {
    width: 3.631em;
    text-align: center; }
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .woocommerce #respond input#submit,
  .woocommerce-page a.button,
  .woocommerce-page button.button,
  .woocommerce-page input.button,
  .woocommerce-page #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: #515151;
    background-color: #ebe9eb;
    border: 0;
    display: inline-block;
    background-image: none;
    -webkit-box-shadow: none;
            box-shadow: none;
    text-shadow: none; }
    .woocommerce a.button.loading,
    .woocommerce button.button.loading,
    .woocommerce input.button.loading,
    .woocommerce #respond input#submit.loading,
    .woocommerce-page a.button.loading,
    .woocommerce-page button.button.loading,
    .woocommerce-page input.button.loading,
    .woocommerce-page #respond input#submit.loading {
      opacity: 0.25;
      padding-right: 2.618em; }
      .woocommerce a.button.loading::after,
      .woocommerce button.button.loading::after,
      .woocommerce input.button.loading::after,
      .woocommerce #respond input#submit.loading::after,
      .woocommerce-page a.button.loading::after,
      .woocommerce-page button.button.loading::after,
      .woocommerce-page input.button.loading::after,
      .woocommerce-page #respond input#submit.loading::after {
        font-family: "WooCommerce";
        content: "\e01c";
        vertical-align: top;
        font-weight: 400;
        position: absolute;
        top: 0.618em;
        right: 1em;
        -webkit-animation: spin 2s linear infinite;
                animation: spin 2s linear infinite; }
    .woocommerce a.button.added::after,
    .woocommerce button.button.added::after,
    .woocommerce input.button.added::after,
    .woocommerce #respond input#submit.added::after,
    .woocommerce-page a.button.added::after,
    .woocommerce-page button.button.added::after,
    .woocommerce-page input.button.added::after,
    .woocommerce-page #respond input#submit.added::after {
      font-family: "WooCommerce";
      content: "\e017";
      margin-left: 0.53em;
      vertical-align: bottom; }
    .woocommerce a.button:hover,
    .woocommerce button.button:hover,
    .woocommerce input.button:hover,
    .woocommerce #respond input#submit:hover,
    .woocommerce-page a.button:hover,
    .woocommerce-page button.button:hover,
    .woocommerce-page input.button:hover,
    .woocommerce-page #respond input#submit:hover {
      background-color: #dfdcde;
      text-decoration: none;
      background-image: none;
      color: #515151; }
    .woocommerce a.button.alt,
    .woocommerce button.button.alt,
    .woocommerce input.button.alt,
    .woocommerce #respond input#submit.alt,
    .woocommerce-page a.button.alt,
    .woocommerce-page button.button.alt,
    .woocommerce-page input.button.alt,
    .woocommerce-page #respond input#submit.alt {
      background-color: #a46497;
      color: white;
      -webkit-font-smoothing: antialiased; }
      .woocommerce a.button.alt:hover,
      .woocommerce button.button.alt:hover,
      .woocommerce input.button.alt:hover,
      .woocommerce #respond input#submit.alt:hover,
      .woocommerce-page a.button.alt:hover,
      .woocommerce-page button.button.alt:hover,
      .woocommerce-page input.button.alt:hover,
      .woocommerce-page #respond input#submit.alt:hover {
        background-color: #96588a;
        color: white; }
      .woocommerce a.button.alt.disabled, .woocommerce a.button.alt:disabled, .woocommerce a.button.alt:disabled[disabled], .woocommerce a.button.alt.disabled:hover, .woocommerce a.button.alt:disabled:hover, .woocommerce a.button.alt:disabled[disabled]:hover,
      .woocommerce button.button.alt.disabled,
      .woocommerce button.button.alt:disabled,
      .woocommerce button.button.alt:disabled[disabled],
      .woocommerce button.button.alt.disabled:hover,
      .woocommerce button.button.alt:disabled:hover,
      .woocommerce button.button.alt:disabled[disabled]:hover,
      .woocommerce input.button.alt.disabled,
      .woocommerce input.button.alt:disabled,
      .woocommerce input.button.alt:disabled[disabled],
      .woocommerce input.button.alt.disabled:hover,
      .woocommerce input.button.alt:disabled:hover,
      .woocommerce input.button.alt:disabled[disabled]:hover,
      .woocommerce #respond input#submit.alt.disabled,
      .woocommerce #respond input#submit.alt:disabled,
      .woocommerce #respond input#submit.alt:disabled[disabled],
      .woocommerce #respond input#submit.alt.disabled:hover,
      .woocommerce #respond input#submit.alt:disabled:hover,
      .woocommerce #respond input#submit.alt:disabled[disabled]:hover,
      .woocommerce-page a.button.alt.disabled,
      .woocommerce-page a.button.alt:disabled,
      .woocommerce-page a.button.alt:disabled[disabled],
      .woocommerce-page a.button.alt.disabled:hover,
      .woocommerce-page a.button.alt:disabled:hover,
      .woocommerce-page a.button.alt:disabled[disabled]:hover,
      .woocommerce-page button.button.alt.disabled,
      .woocommerce-page button.button.alt:disabled,
      .woocommerce-page button.button.alt:disabled[disabled],
      .woocommerce-page button.button.alt.disabled:hover,
      .woocommerce-page button.button.alt:disabled:hover,
      .woocommerce-page button.button.alt:disabled[disabled]:hover,
      .woocommerce-page input.button.alt.disabled,
      .woocommerce-page input.button.alt:disabled,
      .woocommerce-page input.button.alt:disabled[disabled],
      .woocommerce-page input.button.alt.disabled:hover,
      .woocommerce-page input.button.alt:disabled:hover,
      .woocommerce-page input.button.alt:disabled[disabled]:hover,
      .woocommerce-page #respond input#submit.alt.disabled,
      .woocommerce-page #respond input#submit.alt:disabled,
      .woocommerce-page #respond input#submit.alt:disabled[disabled],
      .woocommerce-page #respond input#submit.alt.disabled:hover,
      .woocommerce-page #respond input#submit.alt:disabled:hover,
      .woocommerce-page #respond input#submit.alt:disabled[disabled]:hover {
        background-color: #a46497;
        color: white; }
    .woocommerce a.button:disabled, .woocommerce a.button.disabled, .woocommerce a.button:disabled[disabled],
    .woocommerce button.button:disabled,
    .woocommerce button.button.disabled,
    .woocommerce button.button:disabled[disabled],
    .woocommerce input.button:disabled,
    .woocommerce input.button.disabled,
    .woocommerce input.button:disabled[disabled],
    .woocommerce #respond input#submit:disabled,
    .woocommerce #respond input#submit.disabled,
    .woocommerce #respond input#submit:disabled[disabled],
    .woocommerce-page a.button:disabled,
    .woocommerce-page a.button.disabled,
    .woocommerce-page a.button:disabled[disabled],
    .woocommerce-page button.button:disabled,
    .woocommerce-page button.button.disabled,
    .woocommerce-page button.button:disabled[disabled],
    .woocommerce-page input.button:disabled,
    .woocommerce-page input.button.disabled,
    .woocommerce-page input.button:disabled[disabled],
    .woocommerce-page #respond input#submit:disabled,
    .woocommerce-page #respond input#submit.disabled,
    .woocommerce-page #respond input#submit:disabled[disabled] {
      color: inherit;
      cursor: not-allowed;
      opacity: 0.5;
      padding: 0.618em 1em; }
      .woocommerce a.button:disabled:hover, .woocommerce a.button.disabled:hover, .woocommerce a.button:disabled[disabled]:hover,
      .woocommerce button.button:disabled:hover,
      .woocommerce button.button.disabled:hover,
      .woocommerce button.button:disabled[disabled]:hover,
      .woocommerce input.button:disabled:hover,
      .woocommerce input.button.disabled:hover,
      .woocommerce input.button:disabled[disabled]:hover,
      .woocommerce #respond input#submit:disabled:hover,
      .woocommerce #respond input#submit.disabled:hover,
      .woocommerce #respond input#submit:disabled[disabled]:hover,
      .woocommerce-page a.button:disabled:hover,
      .woocommerce-page a.button.disabled:hover,
      .woocommerce-page a.button:disabled[disabled]:hover,
      .woocommerce-page button.button:disabled:hover,
      .woocommerce-page button.button.disabled:hover,
      .woocommerce-page button.button:disabled[disabled]:hover,
      .woocommerce-page input.button:disabled:hover,
      .woocommerce-page input.button.disabled:hover,
      .woocommerce-page input.button:disabled[disabled]:hover,
      .woocommerce-page #respond input#submit:disabled:hover,
      .woocommerce-page #respond input#submit.disabled:hover,
      .woocommerce-page #respond input#submit:disabled[disabled]:hover {
        color: inherit;
        background-color: #ebe9eb; }
  .woocommerce .cart .button,
  .woocommerce .cart input.button,
  .woocommerce-page .cart .button,
  .woocommerce-page .cart input.button {
    float: none; }
  .woocommerce a.added_to_cart,
  .woocommerce-page a.added_to_cart {
    padding-top: 0.5em;
    display: inline-block; }
  .woocommerce ul.order_details,
  .woocommerce-page ul.order_details {
    *zoom: 1;
    margin: 0 0 3em;
    list-style: none; }
    .woocommerce ul.order_details::before, .woocommerce ul.order_details::after,
    .woocommerce-page ul.order_details::before,
    .woocommerce-page ul.order_details::after {
      content: ' ';
      display: table; }
    .woocommerce ul.order_details::after,
    .woocommerce-page ul.order_details::after {
      clear: both; }
    .woocommerce ul.order_details li,
    .woocommerce-page ul.order_details li {
      float: left;
      margin-right: 2em;
      text-transform: uppercase;
      font-size: 0.715em;
      line-height: 1;
      border-right: 1px dashed #d3ced2;
      padding-right: 2em;
      margin-left: 0;
      padding-left: 0;
      list-style-type: none; }
      .woocommerce ul.order_details li strong,
      .woocommerce-page 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,
      .woocommerce-page ul.order_details li:last-of-type {
        border: none; }
  .woocommerce .wc-bacs-bank-details-account-name,
  .woocommerce-page .wc-bacs-bank-details-account-name {
    font-weight: bold; }
  .woocommerce .woocommerce-order-downloads,
  .woocommerce .woocommerce-customer-details,
  .woocommerce .woocommerce-order-details,
  .woocommerce-page .woocommerce-order-downloads,
  .woocommerce-page .woocommerce-customer-details,
  .woocommerce-page .woocommerce-order-details {
    margin-bottom: 2em; }
    .woocommerce .woocommerce-order-downloads *:last-child,
    .woocommerce .woocommerce-customer-details *:last-child,
    .woocommerce .woocommerce-order-details *:last-child,
    .woocommerce-page .woocommerce-order-downloads *:last-child,
    .woocommerce-page .woocommerce-customer-details *:last-child,
    .woocommerce-page .woocommerce-order-details *:last-child {
      margin-bottom: 0; }
  .woocommerce .woocommerce-customer-details address,
  .woocommerce-page .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; }
  .woocommerce .woocommerce-customer-details .woocommerce-customer-details--phone,
  .woocommerce .woocommerce-customer-details .woocommerce-customer-details--email,
  .woocommerce-page .woocommerce-customer-details .woocommerce-customer-details--phone,
  .woocommerce-page .woocommerce-customer-details .woocommerce-customer-details--email {
    margin-bottom: 0;
    padding-left: 1.5em; }
  .woocommerce .woocommerce-customer-details .woocommerce-customer-details--phone::before,
  .woocommerce-page .woocommerce-customer-details .woocommerce-customer-details--phone::before {
    font-family: 'WooCommerce';
    speak: none;
    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,
  .woocommerce-page .woocommerce-customer-details .woocommerce-customer-details--email::before {
    font-family: 'WooCommerce';
    speak: none;
    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-message,
  .woocommerce .woocommerce-error,
  .woocommerce .woocommerce-info,
  .woocommerce-page .woocommerce-message,
  .woocommerce-page .woocommerce-error,
  .woocommerce-page .woocommerce-info {
    padding: 1em 2em 1em 3.5em;
    margin: 0 0 2em;
    position: relative;
    background-color: #f7f6f7;
    color: #515151;
    border-top: 3px solid #a46497;
    list-style: none outside;
    *zoom: 1;
    width: auto;
    word-wrap: break-word; }
    .woocommerce .woocommerce-message::before, .woocommerce .woocommerce-message::after,
    .woocommerce .woocommerce-error::before,
    .woocommerce .woocommerce-error::after,
    .woocommerce .woocommerce-info::before,
    .woocommerce .woocommerce-info::after,
    .woocommerce-page .woocommerce-message::before,
    .woocommerce-page .woocommerce-message::after,
    .woocommerce-page .woocommerce-error::before,
    .woocommerce-page .woocommerce-error::after,
    .woocommerce-page .woocommerce-info::before,
    .woocommerce-page .woocommerce-info::after {
      content: ' ';
      display: table; }
    .woocommerce .woocommerce-message::after,
    .woocommerce .woocommerce-error::after,
    .woocommerce .woocommerce-info::after,
    .woocommerce-page .woocommerce-message::after,
    .woocommerce-page .woocommerce-error::after,
    .woocommerce-page .woocommerce-info::after {
      clear: both; }
    .woocommerce .woocommerce-message::before,
    .woocommerce .woocommerce-error::before,
    .woocommerce .woocommerce-info::before,
    .woocommerce-page .woocommerce-message::before,
    .woocommerce-page .woocommerce-error::before,
    .woocommerce-page .woocommerce-info::before {
      font-family: "WooCommerce";
      content: "\e028";
      display: inline-block;
      position: absolute;
      top: 1em;
      left: 1.5em; }
    .woocommerce .woocommerce-message .button,
    .woocommerce .woocommerce-error .button,
    .woocommerce .woocommerce-info .button,
    .woocommerce-page .woocommerce-message .button,
    .woocommerce-page .woocommerce-error .button,
    .woocommerce-page .woocommerce-info .button {
      float: right; }
    .woocommerce .woocommerce-message li,
    .woocommerce .woocommerce-error li,
    .woocommerce .woocommerce-info li,
    .woocommerce-page .woocommerce-message li,
    .woocommerce-page .woocommerce-error li,
    .woocommerce-page .woocommerce-info li {
      list-style: none outside !important;
      padding-left: 0 !important;
      margin-left: 0 !important; }
  .woocommerce .woocommerce-message,
  .woocommerce-page .woocommerce-message {
    border-top-color: #8fae1b; }
    .woocommerce .woocommerce-message::before,
    .woocommerce-page .woocommerce-message::before {
      content: "\e015";
      color: #8fae1b; }
  .woocommerce .woocommerce-info,
  .woocommerce-page .woocommerce-info {
    border-top-color: #1e85be; }
    .woocommerce .woocommerce-info::before,
    .woocommerce-page .woocommerce-info::before {
      color: #1e85be; }
  .woocommerce .woocommerce-error,
  .woocommerce-page .woocommerce-error {
    border-top-color: #b81c23; }
    .woocommerce .woocommerce-error::before,
    .woocommerce-page .woocommerce-error::before {
      content: "\e016";
      color: #b81c23; }

/**
 * WooCommerce widgets
 */
/**
 * WooCommerce Price Filter
 */
.widget_price_filter .price_slider {
  margin-bottom: 1.5em; }

.widget_price_filter .price_slider_amount {
  text-align: right;
  line-height: 2.4; }
  .widget_price_filter .price_slider_amount .button {
    float: left; }

.widget_price_filter .ui-slider {
  position: relative;
  text-align: left; }

.widget_price_filter .ui-slider .ui-slider-handle {
  position: absolute;
  z-index: 2;
  width: 1em;
  height: 1em;
  cursor: ew-resize;
  outline: none;
  background: #000;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin-top: -0.25em;
  opacity: 1; }
  .widget_price_filter .ui-slider .ui-slider-handle:last-child {
    margin-left: -1em; }
  .widget_price_filter .ui-slider .ui-slider-handle:hover, .widget_price_filter .ui-slider .ui-slider-handle.ui-state-active {
    -webkit-box-shadow: 0 0 0 0.25em rgba(0, 0, 0, 0.1);
            box-shadow: 0 0 0 0.25em rgba(0, 0, 0, 0.1); }

.widget_price_filter .ui-slider .ui-slider-range {
  position: absolute;
  z-index: 1;
  display: block;
  border: 0;
  background: #000; }

.widget_price_filter .price_slider_wrapper .ui-widget-content {
  background: rgba(0, 0, 0, 0.1); }

.widget_price_filter .ui-slider-horizontal {
  height: 0.5em; }

.widget_price_filter .ui-slider-horizontal .ui-slider-range {
  height: 100%; }

/**
 * WooCommerce Account pages
 */
/**
 * 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 .woocommerce-MyAccount-navigation {
  float: left;
  width: 30%; }

.woocommerce-account .woocommerce-MyAccount-content {
  float: right;
  width: 68%; }

.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: none;
      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; }

/**
 * WooCommerce Product List
 */
.woocommerce,
.woocommerce-page {
  /**
* Product loops
*/ }
  .woocommerce ul.products.columns-5 li.product,
  .woocommerce-page ul.products.columns-5 li.product {
    width: 16.95%; }
  .woocommerce ul.products.columns-6 li.product,
  .woocommerce-page ul.products.columns-6 li.product {
    width: 13.5%; }
  .woocommerce.columns-1 ul.products li.product,
  .woocommerce-page.columns-1 ul.products li.product {
    width: 100%;
    margin-right: 0; }
  .woocommerce.columns-2 ul.products li.product,
  .woocommerce-page.columns-2 ul.products li.product {
    width: 48%; }
  .woocommerce.columns-4,
  .woocommerce-page.columns-4 {
    grid-template-columns: repeat(4, 1fr);
    -webkit-box-align: self-start;
        -ms-flex-align: self-start;
            align-items: self-start; }
  .woocommerce.columns-3 ul.products li.product,
  .woocommerce-page.columns-3 ul.products li.product {
    width: 30.75%; }
  .woocommerce.columns-5 ul.products li.product,
  .woocommerce-page.columns-5 ul.products li.product {
    width: 16.95%; }
  .woocommerce.columns-6 ul.products li.product,
  .woocommerce-page.columns-6 ul.products li.product {
    width: 13.5%; }
  .woocommerce .woocommerce-result-count,
  .woocommerce-page .woocommerce-result-count {
    display: none; }
  .woocommerce .woocommerce-ordering,
  .woocommerce-page .woocommerce-ordering {
    display: none; }
  .woocommerce .woocommerce-pagination ul.page-numbers,
  .woocommerce-page .woocommerce-pagination ul.page-numbers {
    *zoom: 1; }
    .woocommerce .woocommerce-pagination ul.page-numbers::before, .woocommerce .woocommerce-pagination ul.page-numbers::after,
    .woocommerce-page .woocommerce-pagination ul.page-numbers::before,
    .woocommerce-page .woocommerce-pagination ul.page-numbers::after {
      content: ' ';
      display: table; }
    .woocommerce .woocommerce-pagination ul.page-numbers::after,
    .woocommerce-page .woocommerce-pagination ul.page-numbers::after {
      clear: both; }
    .woocommerce .woocommerce-pagination ul.page-numbers li,
    .woocommerce-page .woocommerce-pagination ul.page-numbers li {
      display: inline-block; }
  .woocommerce .products ul,
  .woocommerce ul.products,
  .woocommerce-page .products ul,
  .woocommerce-page ul.products {
    padding: 0;
    list-style: none outside;
    clear: both; }
  .woocommerce ul.products li.product.first,
  .woocommerce .single-cat.first,
  .woocommerce-page ul.products li.product.first,
  .woocommerce-page .single-cat.first {
    clear: both; }
  .woocommerce ul.products li.product.last,
  .woocommerce .single-cat.last,
  .woocommerce-page ul.products li.product.last,
  .woocommerce-page .single-cat.last {
    margin-right: 0; }
  .woocommerce ul.products li.product::after,
  .woocommerce .single-cat::after,
  .woocommerce-page ul.products li.product::after,
  .woocommerce-page .single-cat::after {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    height: 80px;
    background-color: #fff;
    z-index: 1;
    margin-top: -40px;
    -webkit-transition: all 0.15s ease-in-out;
    transition: all 0.15s ease-in-out;
    border-left: 6px solid #fff;
    border-right: none; }
  .woocommerce ul.products li.product:hover:after,
  .woocommerce .single-cat:hover:after,
  .woocommerce-page ul.products li.product:hover:after,
  .woocommerce-page .single-cat:hover:after {
    height: 162px;
    margin-top: -81px;
    border-color: #E50A19; }
  .woocommerce ul.products li.product > a,
  .woocommerce .single-cat > a,
  .woocommerce-page ul.products li.product > a,
  .woocommerce-page .single-cat > a {
    text-transform: uppercase;
    width: 100%;
    font-size: 0.8125rem; }
    .woocommerce ul.products li.product > a .woocommerce-loop-category__title,
    .woocommerce .single-cat > a .woocommerce-loop-category__title,
    .woocommerce-page ul.products li.product > a .woocommerce-loop-category__title,
    .woocommerce-page .single-cat > a .woocommerce-loop-category__title {
      width: 100%; }
  .woocommerce ul.products li.product .count,
  .woocommerce .single-cat .count,
  .woocommerce-page ul.products li.product .count,
  .woocommerce-page .single-cat .count {
    display: none; }
  .woocommerce ul.products li.product .onsale,
  .woocommerce .single-cat .onsale,
  .woocommerce-page ul.products li.product .onsale,
  .woocommerce-page .single-cat .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,
  .woocommerce .single-cat h3,
  .woocommerce .single-cat .woocommerce-loop-product__title,
  .woocommerce .single-cat .woocommerce-loop-category__title,
  .woocommerce-page ul.products li.product h3,
  .woocommerce-page ul.products li.product .woocommerce-loop-product__title,
  .woocommerce-page ul.products li.product .woocommerce-loop-category__title,
  .woocommerce-page .single-cat h3,
  .woocommerce-page .single-cat .woocommerce-loop-product__title,
  .woocommerce-page .single-cat .woocommerce-loop-category__title {
    padding: 0.5em 0;
    margin: 0;
    font-size: 1em;
    text-align: left;
    padding-bottom: 0; }
  .woocommerce ul.products li.product a,
  .woocommerce .single-cat a,
  .woocommerce-page ul.products li.product a,
  .woocommerce-page .single-cat a {
    text-decoration: none;
    width: 100%; }
  .woocommerce ul.products li.product a img,
  .woocommerce .single-cat a img,
  .woocommerce-page ul.products li.product a img,
  .woocommerce-page .single-cat a img {
    width: auto;
    height: auto;
    display: block;
    margin: 0 auto 1em auto;
    -webkit-box-shadow: none;
            box-shadow: none;
    z-index: 2;
    max-height: 120px;
    min-height: 7.5rem;
    width: auto;
    -o-object-fit: contain;
       object-fit: contain; }
  .woocommerce ul.products li.product strong,
  .woocommerce .single-cat strong,
  .woocommerce-page ul.products li.product strong,
  .woocommerce-page .single-cat strong {
    display: block; }
  .woocommerce ul.products li.product .woocommerce-placeholder,
  .woocommerce .single-cat .woocommerce-placeholder,
  .woocommerce-page ul.products li.product .woocommerce-placeholder,
  .woocommerce-page .single-cat .woocommerce-placeholder {
    border: 1px solid #f2f2f2; }
  .woocommerce ul.products li.product .star-rating,
  .woocommerce .single-cat .star-rating,
  .woocommerce-page ul.products li.product .star-rating,
  .woocommerce-page .single-cat .star-rating {
    font-size: 0.857em; }
  .woocommerce ul.products li.product .button,
  .woocommerce .single-cat .button,
  .woocommerce-page ul.products li.product .button,
  .woocommerce-page .single-cat .button {
    margin-top: 1em; }
  .woocommerce ul.products li.product .price,
  .woocommerce .single-cat .price,
  .woocommerce-page ul.products li.product .price,
  .woocommerce-page .single-cat .price {
    color: #77a464;
    display: block;
    font-weight: normal;
    margin-bottom: 0.5em;
    font-size: 0.857em; }
    .woocommerce ul.products li.product .price del,
    .woocommerce .single-cat .price del,
    .woocommerce-page ul.products li.product .price del,
    .woocommerce-page .single-cat .price del {
      color: inherit;
      opacity: 0.5;
      display: inline-block; }
    .woocommerce ul.products li.product .price ins,
    .woocommerce .single-cat .price ins,
    .woocommerce-page ul.products li.product .price ins,
    .woocommerce-page .single-cat .price ins {
      background: none;
      font-weight: 700;
      display: inline-block; }
    .woocommerce ul.products li.product .price .from,
    .woocommerce .single-cat .price .from,
    .woocommerce-page ul.products li.product .price .from,
    .woocommerce-page .single-cat .price .from {
      font-size: 0.67em;
      margin: -2px 0 0 0;
      text-transform: uppercase;
      color: rgba(132, 132, 132, 0.5); }
  .woocommerce .woocommerce-result-count,
  .woocommerce-page .woocommerce-result-count {
    margin: 0 0 1em; }
  .woocommerce .woocommerce-ordering,
  .woocommerce-page .woocommerce-ordering {
    margin: 0 0 1em; }
    .woocommerce .woocommerce-ordering select,
    .woocommerce-page .woocommerce-ordering select {
      vertical-align: top; }
  .woocommerce nav.woocommerce-pagination,
  .woocommerce-page nav.woocommerce-pagination {
    text-align: center; }
    .woocommerce nav.woocommerce-pagination ul,
    .woocommerce-page nav.woocommerce-pagination ul {
      display: inline-block;
      white-space: nowrap;
      padding: 0;
      clear: both;
      border: 1px solid #d3ced2;
      border-right: 0;
      margin: 1px; }
      .woocommerce nav.woocommerce-pagination ul li,
      .woocommerce-page nav.woocommerce-pagination ul li {
        border-right: 1px solid #d3ced2;
        padding: 0;
        margin: 0;
        float: left;
        display: inline;
        overflow: hidden; }
        .woocommerce nav.woocommerce-pagination ul li a,
        .woocommerce nav.woocommerce-pagination ul li span,
        .woocommerce-page nav.woocommerce-pagination ul li a,
        .woocommerce-page 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,
        .woocommerce-page nav.woocommerce-pagination ul li span.current,
        .woocommerce-page nav.woocommerce-pagination ul li a:hover,
        .woocommerce-page nav.woocommerce-pagination ul li a:focus {
          background: #ebe9eb;
          color: #8a7e88; }
  .woocommerce.tax-product_cat .products,
  .woocommerce-page.tax-product_cat .products {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
    @media (min-width: 1280px) {
      .woocommerce.tax-product_cat .products li,
      .woocommerce-page.tax-product_cat .products li {
        margin-right: 0;
        padding: 0;
        margin-bottom: 17px; } }
  .woocommerce .products,
  .woocommerce-page .products {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 1.8125rem; }
    @media (min-width: 1280px) {
      .woocommerce .products,
      .woocommerce-page .products {
        grid-template-columns: repeat(3, 1fr); } }
    @media screen and (max-width: 979px) {
      .woocommerce .products,
      .woocommerce-page .products {
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between; } }
    @media (max-width: 415px) {
      .woocommerce .products,
      .woocommerce-page .products {
        grid-template-columns: repeat(1, 1fr); } }
    @media (min-width: 1280px) {
      .woocommerce .products.columns-4,
      .woocommerce-page .products.columns-4 {
        grid-template-columns: repeat(4, 1fr); } }
    .woocommerce .products.related,
    .woocommerce-page .products.related {
      display: block;
      margin-top: 8.4375rem; }
      @media (max-width: 1279px) {
        .woocommerce .products.related,
        .woocommerce-page .products.related {
          margin-top: 3.125rem; } }
      @media (max-width: 415px) {
        .woocommerce .products.related,
        .woocommerce-page .products.related {
          margin-top: 3.125rem; } }
    .woocommerce .products li,
    .woocommerce-page .products li {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: reverse;
          -ms-flex-direction: row-reverse;
              flex-direction: row-reverse;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
      width: auto;
      position: relative;
      padding: 0 15px;
      margin-bottom: 20px;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      color: #000; }
      .woocommerce .products li:nth-of-type(3n + 3),
      .woocommerce-page .products li:nth-of-type(3n + 3) {
        margin-right: 0; }
      @media screen and (max-width: 979px) {
        .woocommerce .products li,
        .woocommerce-page .products li {
          margin-right: 0; } }
      .woocommerce .products li:after,
      .woocommerce-page .products li:after {
        content: "";
        position: absolute;
        left: 0;
        top: 50%;
        width: 100%;
        height: 80px;
        background-color: #fff;
        z-index: 1;
        margin-top: -40px;
        -webkit-transition: all 0.15s ease-in-out;
        transition: all 0.15s ease-in-out; }
      .woocommerce .products li:hover::after,
      .woocommerce-page .products li:hover::after {
        height: 162px;
        margin-top: -81px; }
      .woocommerce .products li.type-product:after,
      .woocommerce-page .products li.type-product:after {
        display: none; }
      .woocommerce .products li.type-product .button,
      .woocommerce-page .products li.type-product .button {
        display: none; }
  .woocommerce .woocommerce-loop-product__link,
  .woocommerce-page .woocommerce-loop-product__link {
    background: #fff;
    padding: 20px 15px; }
    .woocommerce .woocommerce-loop-product__link:hover,
    .woocommerce-page .woocommerce-loop-product__link:hover {
      -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
              box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); }

.woocommerce .woocommerce-loop-product__link:hover,
.woocommerce-page .woocommerce-loop-product__link:hover {
  -webkit-box-shadow: none;
          box-shadow: none; }

.home .woocommerce.columns-4 ul.products li.product a img {
  margin: 0 0 0 auto; }

.product-categories {
  margin-bottom: 40px; }
  .product-categories .product-category a::after {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    height: 80px;
    background-color: #fff;
    z-index: 1;
    margin-top: -40px;
    -webkit-transition: all 0.15s ease-in-out;
    transition: all 0.15s ease-in-out;
    border-left: 6px solid #fff;
    border-right: none;
    z-index: 1;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding: 0 0 0 16px; }
  .product-categories .product-category a:hover:after {
    height: 115px;
    margin-top: -57px;
    border-color: #E50A19; }
  .product-categories .product-category a h2 {
    font-size: 1rem; }

/**
 * WooCommerce SmallScreen
 */
/**
 * Style begins
 */
@media (max-width: 767px) {
  .woocommerce,
  .woocommerce-page {
    /**
     * General layout
     */
    /**
     * Products
     */
    /**
     * Product Details
     */
    /**
     * Cart
     */
    /**
     * Checkout
     */
    /**
     * Account
     */ }
    .woocommerce table.shop_table_responsive thead,
    .woocommerce-page table.shop_table_responsive thead {
      display: none; }
    .woocommerce table.shop_table_responsive tbody tr:first-child td:first-child,
    .woocommerce-page table.shop_table_responsive tbody tr:first-child td:first-child {
      border-top: 0; }
    .woocommerce table.shop_table_responsive tbody th,
    .woocommerce-page table.shop_table_responsive tbody th {
      display: none; }
    .woocommerce table.shop_table_responsive tr,
    .woocommerce-page table.shop_table_responsive tr {
      display: block; }
      .woocommerce table.shop_table_responsive tr td,
      .woocommerce-page table.shop_table_responsive tr td {
        display: block;
        text-align: right !important; }
        .woocommerce table.shop_table_responsive tr td.order-actions,
        .woocommerce-page table.shop_table_responsive tr td.order-actions {
          text-align: left !important; }
        .woocommerce table.shop_table_responsive tr td::before,
        .woocommerce-page table.shop_table_responsive tr td::before {
          content: attr(data-title) ": ";
          font-weight: 700;
          float: left; }
        .woocommerce table.shop_table_responsive tr td.product-remove::before, .woocommerce table.shop_table_responsive tr td.actions::before,
        .woocommerce-page table.shop_table_responsive tr td.product-remove::before,
        .woocommerce-page table.shop_table_responsive tr td.actions::before {
          display: none; }
      .woocommerce table.shop_table_responsive tr:nth-child(2n) td,
      .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
        background-color: rgba(0, 0, 0, 0.025); }
    .woocommerce table.my_account_orders tr td.order-actions,
    .woocommerce-page table.my_account_orders tr td.order-actions {
      text-align: left; }
      .woocommerce table.my_account_orders tr td.order-actions::before,
      .woocommerce-page table.my_account_orders tr td.order-actions::before {
        display: none; }
      .woocommerce table.my_account_orders tr td.order-actions .button,
      .woocommerce-page table.my_account_orders tr td.order-actions .button {
        float: none;
        margin: 0.125em 0.25em 0.125em 0; }
    .woocommerce .col2-set .col-1,
    .woocommerce .col2-set .col-2,
    .woocommerce-page .col2-set .col-1,
    .woocommerce-page .col2-set .col-2 {
      float: none;
      width: 100%; }
    .woocommerce div.product div.images,
    .woocommerce div.product div.summary,
    .woocommerce #content div.product div.images,
    .woocommerce #content div.product div.summary,
    .woocommerce-page div.product div.images,
    .woocommerce-page div.product div.summary,
    .woocommerce-page #content div.product div.images,
    .woocommerce-page #content div.product div.summary {
      float: none;
      width: 100%; }
    .woocommerce table.cart .product-thumbnail,
    .woocommerce #content table.cart .product-thumbnail,
    .woocommerce-page table.cart .product-thumbnail,
    .woocommerce-page #content table.cart .product-thumbnail {
      display: none; }
    .woocommerce table.cart td.actions,
    .woocommerce #content table.cart td.actions,
    .woocommerce-page table.cart td.actions,
    .woocommerce-page #content table.cart td.actions {
      text-align: left; }
      .woocommerce table.cart td.actions .coupon,
      .woocommerce #content table.cart td.actions .coupon,
      .woocommerce-page table.cart td.actions .coupon,
      .woocommerce-page #content table.cart td.actions .coupon {
        float: none;
        *zoom: 1;
        padding-bottom: 0.5em; }
        .woocommerce table.cart td.actions .coupon::before, .woocommerce table.cart td.actions .coupon::after,
        .woocommerce #content table.cart td.actions .coupon::before,
        .woocommerce #content table.cart td.actions .coupon::after,
        .woocommerce-page table.cart td.actions .coupon::before,
        .woocommerce-page table.cart td.actions .coupon::after,
        .woocommerce-page #content table.cart td.actions .coupon::before,
        .woocommerce-page #content table.cart td.actions .coupon::after {
          content: ' ';
          display: table; }
        .woocommerce table.cart td.actions .coupon::after,
        .woocommerce #content table.cart td.actions .coupon::after,
        .woocommerce-page table.cart td.actions .coupon::after,
        .woocommerce-page #content table.cart td.actions .coupon::after {
          clear: both; }
        .woocommerce table.cart td.actions .coupon input,
        .woocommerce table.cart td.actions .coupon .button,
        .woocommerce table.cart td.actions .coupon .input-text,
        .woocommerce #content table.cart td.actions .coupon input,
        .woocommerce #content table.cart td.actions .coupon .button,
        .woocommerce #content table.cart td.actions .coupon .input-text,
        .woocommerce-page table.cart td.actions .coupon input,
        .woocommerce-page table.cart td.actions .coupon .button,
        .woocommerce-page table.cart td.actions .coupon .input-text,
        .woocommerce-page #content table.cart td.actions .coupon input,
        .woocommerce-page #content table.cart td.actions .coupon .button,
        .woocommerce-page #content table.cart td.actions .coupon .input-text {
          width: 48%;
          -webkit-box-sizing: border-box;
                  box-sizing: border-box; }
        .woocommerce table.cart td.actions .coupon .input-text + .button,
        .woocommerce table.cart td.actions .coupon .button.alt,
        .woocommerce #content table.cart td.actions .coupon .input-text + .button,
        .woocommerce #content table.cart td.actions .coupon .button.alt,
        .woocommerce-page table.cart td.actions .coupon .input-text + .button,
        .woocommerce-page table.cart td.actions .coupon .button.alt,
        .woocommerce-page #content table.cart td.actions .coupon .input-text + .button,
        .woocommerce-page #content table.cart td.actions .coupon .button.alt {
          float: right; }
      .woocommerce table.cart td.actions .button,
      .woocommerce #content table.cart td.actions .button,
      .woocommerce-page table.cart td.actions .button,
      .woocommerce-page #content table.cart td.actions .button {
        display: block;
        width: 100%; }
    .woocommerce .cart-collaterals .cart_totals,
    .woocommerce .cart-collaterals .shipping_calculator,
    .woocommerce .cart-collaterals .cross-sells,
    .woocommerce-page .cart-collaterals .cart_totals,
    .woocommerce-page .cart-collaterals .shipping_calculator,
    .woocommerce-page .cart-collaterals .cross-sells {
      width: 100%;
      float: none;
      text-align: left; }
    .woocommerce.woocommerce-checkout form.login .form-row,
    .woocommerce-page.woocommerce-checkout form.login .form-row {
      width: 100%;
      float: none; }
    .woocommerce #payment .terms,
    .woocommerce-page #payment .terms {
      text-align: left;
      padding: 0; }
    .woocommerce #payment #place_order,
    .woocommerce-page #payment #place_order {
      float: none;
      width: 100%;
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      margin-bottom: 1em; }
    .woocommerce .lost_reset_password .form-row-first,
    .woocommerce .lost_reset_password .form-row-last,
    .woocommerce-page .lost_reset_password .form-row-first,
    .woocommerce-page .lost_reset_password .form-row-last {
      width: 100%;
      float: none;
      margin-right: 0; }
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content {
    float: none;
    width: 100%; }
  /**
   * Twenty Thirteen specific styles
   */
  .single-product .twentythirteen .panel {
    padding-left: 20px !important;
    padding-right: 20px !important; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndvb2NvbW1lcmNlLmNzcyIsInZhcmlhYmxlcy9fY29sb3JzLnNjc3MiLCJ2YXJpYWJsZXMvX3R5cG9ncmFwaHkuc2NzcyIsIndvb2NvbW1lcmNlLnNjc3MiLCJ3b29jb21tZXJjZS9fYW5pbWF0aW9uLnNjc3MiLCJ3b29jb21tZXJjZS9fZm9udHMuc2NzcyIsIndvb2NvbW1lcmNlL19taXhpbnMuc2NzcyIsIndvb2NvbW1lcmNlL192YXJpYWJsZXMuc2NzcyIsIndvb2NvbW1lcmNlL19sYXlvdXQuc2NzcyIsInZhcmlhYmxlcy9fYnJlYWtwb2ludHMuc2NzcyIsIndvb2NvbW1lcmNlL190YWJsZXMuc2NzcyIsIndvb2NvbW1lcmNlL19wcm9kdWN0cy5zY3NzIiwid29vY29tbWVyY2UvX3NpbmdsZS1wcm9kdWN0LnNjc3MiLCJ2YXJpYWJsZXMvX3N0cnVjdHVyZS5zY3NzIiwid29vY29tbWVyY2UvX2NoZWNrb3V0LnNjc3MiLCJ2YXJpYWJsZXMvX2NvbHVtbnMuc2NzcyIsIm1peGlucy9fbWl4aW5zLW1hc3Rlci5zY3NzIiwid29vY29tbWVyY2UvX2NhcnQuc2NzcyIsIndvb2NvbW1lcmNlL19jb21wb25lbnRzLnNjc3MiLCJ3b29jb21tZXJjZS9fd2lkZ2V0cy5zY3NzIiwid29vY29tbWVyY2UvX2FjY291bnQuc2NzcyIsIndvb2NvbW1lcmNlL19wcm9kdWN0X2xpc3Quc2NzcyIsIndvb2NvbW1lcmNlL193b29jb21tZXJjZV9zbWFsbHNjcmVlbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ3FDaEI7O0NEbENDO0FFWUQsOENBQUE7QUFDQTtFQUNFLCtCQUErQjtFQUMvQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLG9IQUFvSDtFQUFFLHFCQUFBO0VBQ3RILHlyQkFLa0o7RUFBRSxlQUFBLEVBQWdCOztBQUV0SywwQ0FBQTtBQUNBO0VBQ0UsK0JBQStCO0VBQy9CLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsZ0hB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Ozs7OztVQUVDLFlBQVk7VUFDWixjQUFjLEVBQUE7UUFHZjs7OztVQUNDLFdBQVcsRUFBQTtRZ0JWWDs7Ozs7Ozs7Ozs7O1VBb0lVLFVBQVU7VUFDViw4QkFBc0I7a0JBQXRCLHNCQUFzQixFQUFBO1FBckloQzs7Ozs7Ozs7VUEwSVUsWUFBWSxFQUFBO01BMUl0Qjs7OztRQStJUSxjQUFjO1FBQ2QsV0FBVyxFQUFBO0lBaEpuQjs7Ozs7O01BeUpNLFdBQVc7TUFDWCxXQUFXO01BQ1gsZ0JBQWdCLEVBQUE7SUEzSnRCOztNQXFLUSxXQUFXO01BQ1gsV0FBVyxFQUFBO0lBdEtuQjs7TUE2S00sZ0JBQWdCO01BQ2hCLFVBQVUsRUFBQTtJQTlLaEI7O01Ba0xNLFdBQVc7TUFDWCxXQUFXO01BQ1gsOEJBQXNCO2NBQXRCLHNCQUFzQjtNQUN0QixrQkFBa0IsRUFBQTtJQXJMeEI7Ozs7TUErTE0sV0FBVztNQUNYLFdBQVc7TUFDWCxlQUFlLEVBQUE7RUFLckI7O0lBR0ksV0FBVztJQUNYLFdBQVcsRUFBQTtFQUlmOztJdEJ3ekZFO0VzQnJ6RkY7SUFHTSw2QkFBNkI7SUFDN0IsOEJBQThCLEVBQUEsRUFDL0IiLCJmaWxlIjoid29vY29tbWVyY2UuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLypcclxuICAgIERFTklGSVJFIHZhcmlhYmxlc1xyXG4qL1xuLyogcm9ib3RvLWNvbmRlbnNlZC1yZWd1bGFyIC0gbGF0aW5fY3lyaWxsaWMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byBDb25kZW5zZWQnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKFwiL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG9jb25kZW5zZWQvcm9ib3RvLWNvbmRlbnNlZC12MTktbGF0aW5fY3lyaWxsaWMtcmVndWxhci5lb3RcIik7XG4gIC8qIElFOSBDb21wYXQgTW9kZXMgKi9cbiAgc3JjOiBsb2NhbChcIlwiKSwgdXJsKFwiL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG9jb25kZW5zZWQvcm9ib3RvLWNvbmRlbnNlZC12MTktbGF0aW5fY3lyaWxsaWMtcmVndWxhci5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90b2NvbmRlbnNlZC9yb2JvdG8tY29uZGVuc2VkLXYxOS1sYXRpbl9jeXJpbGxpYy1yZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90b2NvbmRlbnNlZC9yb2JvdG8tY29uZGVuc2VkLXYxOS1sYXRpbl9jeXJpbGxpYy1yZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG9jb25kZW5zZWQvcm9ib3RvLWNvbmRlbnNlZC12MTktbGF0aW5fY3lyaWxsaWMtcmVndWxhci50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvY29uZGVuc2VkL3JvYm90by1jb25kZW5zZWQtdjE5LWxhdGluX2N5cmlsbGljLXJlZ3VsYXIuc3ZnI1JvYm90b0NvbmRlbnNlZFwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIC8qIExlZ2FjeSBpT1MgKi8gfVxuXG4vKiByb2JvdG8tY29uZGVuc2VkLTcwMCAtIGxhdGluX2N5cmlsbGljICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gQ29uZGVuc2VkJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybChcIi93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvY29uZGVuc2VkL3JvYm90by1jb25kZW5zZWQtdjE5LWxhdGluX2N5cmlsbGljLTcwMC5lb3RcIik7XG4gIC8qIElFOSBDb21wYXQgTW9kZXMgKi9cbiAgc3JjOiBsb2NhbChcIlwiKSwgdXJsKFwiL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG9jb25kZW5zZWQvcm9ib3RvLWNvbmRlbnNlZC12MTktbGF0aW5fY3lyaWxsaWMtNzAwLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvY29uZGVuc2VkL3JvYm90by1jb25kZW5zZWQtdjE5LWxhdGluX2N5cmlsbGljLTcwMC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG9jb25kZW5zZWQvcm9ib3RvLWNvbmRlbnNlZC12MTktbGF0aW5fY3lyaWxsaWMtNzAwLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG9jb25kZW5zZWQvcm9ib3RvLWNvbmRlbnNlZC12MTktbGF0aW5fY3lyaWxsaWMtNzAwLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG9jb25kZW5zZWQvcm9ib3RvLWNvbmRlbnNlZC12MTktbGF0aW5fY3lyaWxsaWMtNzAwLnN2ZyNSb2JvdG9Db25kZW5zZWRcIikgZm9ybWF0KFwic3ZnXCIpO1xuICAvKiBMZWdhY3kgaU9TICovIH1cblxuLyogcm9ib3RvLWNvbmRlbnNlZC0zMDAgLSBsYXRpbl9jeXJpbGxpYyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIENvbmRlbnNlZCc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90b2NvbmRlbnNlZC9yb2JvdG8tY29uZGVuc2VkLXYxOS1sYXRpbl9jeXJpbGxpYy0zMDAuZW90XCIpO1xuICAvKiBJRTkgQ29tcGF0IE1vZGVzICovXG4gIHNyYzogbG9jYWwoXCJcIiksIHVybChcIi93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvY29uZGVuc2VkL3JvYm90by1jb25kZW5zZWQtdjE5LWxhdGluX2N5cmlsbGljLTMwMC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90b2NvbmRlbnNlZC9yb2JvdG8tY29uZGVuc2VkLXYxOS1sYXRpbl9jeXJpbGxpYy0zMDAud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvY29uZGVuc2VkL3JvYm90by1jb25kZW5zZWQtdjE5LWxhdGluX2N5cmlsbGljLTMwMC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvY29uZGVuc2VkL3JvYm90by1jb25kZW5zZWQtdjE5LWxhdGluX2N5cmlsbGljLTMwMC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvY29uZGVuc2VkL3JvYm90by1jb25kZW5zZWQtdjE5LWxhdGluX2N5cmlsbGljLTMwMC5zdmcjUm9ib3RvQ29uZGVuc2VkXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgLyogTGVnYWN5IGlPUyAqLyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgc3JjOiB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90by9yb2JvdG8tdjIwLWxhdGluX2N5cmlsbGljLWV4dC0xMDAuZW90XCIpO1xuICAvKiBJRTkgQ29tcGF0IE1vZGVzICovXG4gIHNyYzogbG9jYWwoXCJcIiksIHVybChcIi93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvL3JvYm90by12MjAtbGF0aW5fY3lyaWxsaWMtZXh0LTEwMC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90by9yb2JvdG8tdjIwLWxhdGluX2N5cmlsbGljLWV4dC0xMDAud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvL3JvYm90by12MjAtbGF0aW5fY3lyaWxsaWMtZXh0LTEwMC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvL3JvYm90by12MjAtbGF0aW5fY3lyaWxsaWMtZXh0LTEwMC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvL3JvYm90by12MjAtbGF0aW5fY3lyaWxsaWMtZXh0LTEwMC5zdmcjUm9ib3RvXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgLyogTGVnYWN5IGlPUyAqLyB9XG5cbi8qIHJvYm90by1yZWd1bGFyIC0gbGF0aW5fY3lyaWxsaWMtZXh0ICovXG4vKiByb2JvdG8tNzAwIC0gbGF0aW5fY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKFwiL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG8vcm9ib3RvLXYyMC1sYXRpbl9jeXJpbGxpYy1leHQtNzAwLmVvdFwiKTtcbiAgLyogSUU5IENvbXBhdCBNb2RlcyAqL1xuICBzcmM6IGxvY2FsKFwiXCIpLCB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90by9yb2JvdG8tdjIwLWxhdGluX2N5cmlsbGljLWV4dC03MDAuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG8vcm9ib3RvLXYyMC1sYXRpbl9jeXJpbGxpYy1leHQtNzAwLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90by9yb2JvdG8tdjIwLWxhdGluX2N5cmlsbGljLWV4dC03MDAud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90by9yb2JvdG8tdjIwLWxhdGluX2N5cmlsbGljLWV4dC03MDAudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90by9yb2JvdG8tdjIwLWxhdGluX2N5cmlsbGljLWV4dC03MDAuc3ZnI1JvYm90b1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIC8qIExlZ2FjeSBpT1MgKi8gfVxuXG4vKipcclxuICogU3RyaXBzIHRoZSB1bml0IGZyb20gYSBnaXZlbiBudW1iZXItdW5pdC1jb21iaW5hdGlvbiBhbmQgcmV0dXJucyB0aGUgbnVtYmVyLlxyXG4gKiBAbGluazogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTIzMzU4NDEvMTc3OTk5OVxyXG4gKiBAdXNhZ2U6IHBhcnNlLWludCgxMHB4KSA9PiAxMFxyXG4gKi9cbi8qKlxyXG4gKiBTaW1wbHkgYWRkcyB0aGUgZW0gdW5pdCB0byBhIGdpdmVuIG51bWJlci4gVGhpcyBpcyB1c2VkIHR3aWNlIGluIHRoZVxyXG4gKiBmdW5jdGlvbiB1bmRlcm5lYXRoLCB0aHVzIHRoZSBuZWVkIGZvciBhIHNlcGFyYXRlIGZ1bmN0aW9uLlxyXG4gKi9cbi8qKlxyXG4gKiBDYWxjdWxhdGVzIGVtIHZhbHVlcyBmb3IgYSBnaXZlbiBsaXN0IG9mIChweCBvciBlbSkgdmFsdWVzIGFuZCBhIGdpdmVuIGVtXHJcbiAqIGJhc2UuIE11bHRpcGx5IGJhc2UgdmFsdWVzIGZvciBuZXN0ZWQgZW0gc3RydWN0dXJlcyAobGFzdCBAdXNhZ2UgZXhhbXBsZSkuXHJcbiAqIEB1c2FnZTogZW0oMTBweCwgMS4xMjUpID0+IC41NTU1NmVtXHJcbiAqICAgICAgICAgZW0oMjRweCwgLjg3NWVtKSA9PiAxLjcxNDI5ZW1cclxuICogICAgICAgICBlbSgxMnB4IDAgN2VtIHJnYmEoMCwgMCwgMCwgLjcpLCAxLjc1KSA9PiAuNDI4NTdlbSAwIDRlbSByZ2JhKDAsIDAsIDAsIDAuNylcclxuICogICAgICAgICBlbSgxMnB4KSArIGVtKDNlbSkgPT4gMy43NWVtXHJcbiAqICAgICAgICAgZW0oMjNweCwgZW0oNTNweCkpID0+IC40MzM5NmVtXHJcbiAqICAgICAgICAgZW0oMjRweCwgMS41ICogMS4xMjUpID0+IC44ODg4OWVtXHJcbiAqL1xuLyoqXHJcbiAqIEltcG9ydHNcclxuICovXG4vKipcclxuICogX2FuaW1hdGlvbi5zY3NzXHJcbiAqIEN1c3RvbSBXb29Db21tZXJjZSBBbmltYXRpb25zLlxyXG4gKi9cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuXG4vKipcclxuICogX2ZvbnRzLnNjc3NcclxuICogQ3VzdG9tIFdvb0NvbW1lcmNlIGZvbnRzLlxyXG4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ3N0YXInO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3N0YXIuZW90XCIpO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3N0YXIuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvc3Rhci53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL3N0YXIudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi9mb250cy9zdGFyLnN2ZyNzdGFyXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1dvb0NvbW1lcmNlJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9Xb29Db21tZXJjZS5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvV29vQ29tbWVyY2UuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvV29vQ29tbWVyY2Uud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9Xb29Db21tZXJjZS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi4uL2ZvbnRzL1dvb0NvbW1lcmNlLnN2ZyNXb29Db21tZXJjZVwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG4vKipcclxuICogRGVwcmVjYXRlZFxyXG4gKiBGYWxsYmFjayBmb3IgYm91cmJvbiBlcXVpdmFsZW50XHJcbiAqL1xuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVXNlIGJvdXJib24gbWl4aW4gaW5zdGVhZCBgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEuNSkpO2BcclxuICovXG4vKipcclxuICogRGVwcmVjYXRlZFxyXG4gKiBVc2UgYm91cmJvbiBtaXhpbiBpbnN0ZWFkIGBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO2BcclxuICovXG4vKipcclxuICogT2JqZWN0c1xyXG4gKi9cbi8qKlxyXG4gKiBVdGlsaXR5IGNsYXNzZXNcclxuICovXG4uY2xlYXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4vKipcclxuICogV29vQ29tbWVyY2UgQ1NTIFZhcmlhYmxlc1xyXG4gKi9cbi8qKlxyXG4gKiBCYXNpYyBMYXlvdXRcclxuICovXG4ud29vY29tbWVyY2UsXG4ud29vY29tbWVyY2UtcGFnZSB7XG4gIC8qKlxyXG5cdCAqIEdlbmVyYWwgbGF5b3V0IHN0eWxlc1xyXG5cdCAqLyB9XG4gIC53b29jb21tZXJjZSAuY29sMi1zZXQsXG4gIC53b29jb21tZXJjZS1wYWdlIC5jb2wyLXNldCB7XG4gICAgKnpvb206IDE7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAud29vY29tbWVyY2UgLmNvbDItc2V0OjpiZWZvcmUsIC53b29jb21tZXJjZSAuY29sMi1zZXQ6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC5jb2wyLXNldDo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC5jb2wyLXNldDo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAud29vY29tbWVyY2UgLmNvbDItc2V0OjphZnRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSAuY29sMi1zZXQ6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLndvb2NvbW1lcmNlIC5jb2wyLXNldCAuY29sLTEsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLmNvbDItc2V0IC5jb2wtMSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiA0OCU7IH1cbiAgICAud29vY29tbWVyY2UgLmNvbDItc2V0IC5jb2wtMixcbiAgICAud29vY29tbWVyY2UtcGFnZSAuY29sMi1zZXQgLmNvbC0yIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHdpZHRoOiA0OCU7IH1cblxuLndvb2NvbW1lcmNlLXByb2R1Y3RzLWhlYWRlcl9fdGl0bGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgLndvb2NvbW1lcmNlIC5zaXRlLWNvbnRlbnQgLmNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMzZweDsgfSB9XG5cbi53b29jb21tZXJjZS5wb3N0LXR5cGUtYXJjaGl2ZSAuY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4ud29vY29tbWVyY2UgLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAud29vY29tbWVyY2UgLmNvbnRhaW5lciB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH0gfVxuXG4ud29vY29tbWVyY2UucG9zdC10eXBlLWFyY2hpdmUgLnNpdGUtY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLndvb2NvbW1lcmNlIC5zaXRlLW1haW4ge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLnByb2R1Y3QtdGVtcGxhdGUtZGVmYXVsdCAuc2l0ZS1tYWluIHtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLyoqXHJcbiAqIFNob3AgdGFibGVzXHJcbiAqL1xuLyoqXHJcblx0ICogVGFibGVzXHJcblx0ICovXG50YWJsZS5zaG9wX2F0dHJpYnV0ZXMge1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIG1hcmdpbi1ib3R0b206IDEuNjE4ZW07XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuICB0YWJsZS5zaG9wX2F0dHJpYnV0ZXMgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgdGFibGUuc2hvcF9hdHRyaWJ1dGVzIHRoIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgdGFibGUuc2hvcF9hdHRyaWJ1dGVzIHRkIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICAgIHRhYmxlLnNob3BfYXR0cmlidXRlcyB0ZC53b29jb21tZXJjZS1wcm9kdWN0LWF0dHJpYnV0ZXMtaXRlbV9fdmFsdWUge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogOHB4IDIwcHg7XG4gICAgICBjb2xvcjogI0U1MEExOTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgICB0YWJsZS5zaG9wX2F0dHJpYnV0ZXMgdGQud29vY29tbWVyY2UtcHJvZHVjdC1hdHRyaWJ1dGVzLWl0ZW1fX3ZhbHVlIHAge1xuICAgICAgICBtYXJnaW46IDA7IH1cblxudGFibGUuc2hvcF90YWJsZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgbWFyZ2luOiAwIC0xcHggMjRweCAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgYm9yZGVyLXJhZGl1czogNXB4OyB9XG4gIHRhYmxlLnNob3BfdGFibGUgdGgge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtOyB9XG4gIHRhYmxlLnNob3BfdGFibGUgdGQge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07IH1cbiAgICB0YWJsZS5zaG9wX3RhYmxlIHRkIHNtYWxsIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICB0YWJsZS5zaG9wX3RhYmxlIHRkIGRlbCB7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gIHRhYmxlLnNob3BfdGFibGUgdGJvZHk6Zmlyc3QtY2hpbGQgdHI6Zmlyc3QtY2hpbGQgdGgsXG4gIHRhYmxlLnNob3BfdGFibGUgdGJvZHk6Zmlyc3QtY2hpbGQgdHI6Zmlyc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci10b3A6IDA7IH1cbiAgdGFibGUuc2hvcF90YWJsZSB0Zm9vdCB0ZCxcbiAgdGFibGUuc2hvcF90YWJsZSB0Zm9vdCB0aCxcbiAgdGFibGUuc2hvcF90YWJsZSB0Ym9keSB0aCB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbnRhYmxlLm15X2FjY291bnRfb3JkZXJzIHtcbiAgZm9udC1zaXplOiAwLjg1ZW07IH1cbiAgdGFibGUubXlfYWNjb3VudF9vcmRlcnMgdGgsXG4gIHRhYmxlLm15X2FjY291bnRfb3JkZXJzIHRkIHtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgdGFibGUubXlfYWNjb3VudF9vcmRlcnMgLmJ1dHRvbiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG50YWJsZS53b29jb21tZXJjZS1NeUFjY291bnQtZG93bmxvYWRzIHRkLFxudGFibGUud29vY29tbWVyY2UtTXlBY2NvdW50LWRvd25sb2FkcyB0aCB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICB0YWJsZS53b29jb21tZXJjZS1NeUFjY291bnQtZG93bmxvYWRzIHRkOmZpcnN0LWNoaWxkLFxuICB0YWJsZS53b29jb21tZXJjZS1NeUFjY291bnQtZG93bmxvYWRzIHRoOmZpcnN0LWNoaWxkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIHRhYmxlLndvb2NvbW1lcmNlLU15QWNjb3VudC1kb3dubG9hZHMgdGQ6bGFzdC1jaGlsZCxcbiAgdGFibGUud29vY29tbWVyY2UtTXlBY2NvdW50LWRvd25sb2FkcyB0aDpsYXN0LWNoaWxkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIHRhYmxlLndvb2NvbW1lcmNlLU15QWNjb3VudC1kb3dubG9hZHMgdGQgLndvb2NvbW1lcmNlLU15QWNjb3VudC1kb3dubG9hZHMtZmlsZTo6YmVmb3JlLFxuICB0YWJsZS53b29jb21tZXJjZS1NeUFjY291bnQtZG93bmxvYWRzIHRoIC53b29jb21tZXJjZS1NeUFjY291bnQtZG93bmxvYWRzLWZpbGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDIxOTNcIjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxudGQucHJvZHVjdC1uYW1lIGRsLnZhcmlhdGlvbixcbnRkLnByb2R1Y3QtbmFtZSAud2MtaXRlbS1tZXRhIHtcbiAgbGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlOyB9XG4gIHRkLnByb2R1Y3QtbmFtZSBkbC52YXJpYXRpb24gZHQsXG4gIHRkLnByb2R1Y3QtbmFtZSBkbC52YXJpYXRpb24gLndjLWl0ZW0tbWV0YS1sYWJlbCxcbiAgdGQucHJvZHVjdC1uYW1lIC53Yy1pdGVtLW1ldGEgZHQsXG4gIHRkLnByb2R1Y3QtbmFtZSAud2MtaXRlbS1tZXRhIC53Yy1pdGVtLW1ldGEtbGFiZWwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbi1yaWdodDogMC4yNWVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaXN0LXN0eWxlOiBub25lIG91dHNpZGU7IH1cbiAgdGQucHJvZHVjdC1uYW1lIGRsLnZhcmlhdGlvbiBkZCxcbiAgdGQucHJvZHVjdC1uYW1lIC53Yy1pdGVtLW1ldGEgZGQge1xuICAgIG1hcmdpbjogMDsgfVxuICB0ZC5wcm9kdWN0LW5hbWUgZGwudmFyaWF0aW9uIHAsIHRkLnByb2R1Y3QtbmFtZSBkbC52YXJpYXRpb246bGFzdC1jaGlsZCxcbiAgdGQucHJvZHVjdC1uYW1lIC53Yy1pdGVtLW1ldGEgcCxcbiAgdGQucHJvZHVjdC1uYW1lIC53Yy1pdGVtLW1ldGE6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG50ZC5wcm9kdWN0LW5hbWUgcC5iYWNrb3JkZXJfbm90aWZpY2F0aW9uIHtcbiAgZm9udC1zaXplOiAwLjgzZW07IH1cblxudGQucHJvZHVjdC1xdWFudGl0eSB7XG4gIG1pbi13aWR0aDogODBweDsgfVxuXG4vKipcclxuICogUHJvZHVjdHNcclxuICovXG4ucHJvZHVjdC1jYXRlZ29yeSBhIHtcbiAgY29sb3I6ICMwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgei1pbmRleDogOTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7IH1cblxuLnByb2R1Y3QtY2F0ZWdvcnkgaW1nIHtcbiAgbWF4LXdpZHRoOiA4MHB4O1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDgwcHg7XG4gIGhlaWdodDogODBweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjsgfVxuXG4vKipcclxuICogU2luZ2xlIHByb2R1Y3RcclxuICovXG4vKipcclxuKiBQcm9kdWN0IFBhZ2VcclxuKi9cbi50eXBlLXByb2R1Y3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC50eXBlLXByb2R1Y3QgLnByb2R1Y3RfX3RodW1ibmFpbFdyYXBwZXIge1xuICAgIHdpZHRoOiAzNyU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDE1cHgpIHtcbiAgICAgIC50eXBlLXByb2R1Y3QgLnByb2R1Y3RfX3RodW1ibmFpbFdyYXBwZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAudHlwZS1wcm9kdWN0IC5wcm9kdWN0X190aHVtYm5haWxXcmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDVyZW07IH0gfVxuICAudHlwZS1wcm9kdWN0IC53aWRnZXRfcHJvZHVjdF9jYXRlZ29yaWVzIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAgICAgLnR5cGUtcHJvZHVjdCAud2lkZ2V0X3Byb2R1Y3RfY2F0ZWdvcmllcyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICAudHlwZS1wcm9kdWN0IC53aWRnZXRfcHJvZHVjdF9jYXRlZ29yaWVzID4gcCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAgICAgICAudHlwZS1wcm9kdWN0IC53aWRnZXRfcHJvZHVjdF9jYXRlZ29yaWVzID4gcCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjYyNXJlbTsgfSB9XG4gIC50eXBlLXByb2R1Y3QgLmVudHJ5LXN1bW1hcnkge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC50eXBlLXByb2R1Y3QgLmVudHJ5LXN1bW1hcnkge1xuICAgICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbSAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gICAgICAudHlwZS1wcm9kdWN0IC5lbnRyeS1zdW1tYXJ5IHtcbiAgICAgICAgcGFkZGluZzogMCAxMHB4OyB9IH1cbiAgLnR5cGUtcHJvZHVjdCAucHJvZHVjdF9fV3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC50eXBlLXByb2R1Y3QgLnByb2R1Y3RfX1dyYXBwZXIgPiBoMiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC50eXBlLXByb2R1Y3QgLnByb2R1Y3RfX1dyYXBwZXIgdWwge1xuICAgICAgbWFyZ2luLWxlZnQ6IDE4cHg7IH1cbiAgICAudHlwZS1wcm9kdWN0IC5wcm9kdWN0X19XcmFwcGVyIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGU6IGRpc2M7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnR5cGUtcHJvZHVjdCAud29vY29tbWVyY2UtVGFicy1wYW5lbCBoMiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gIC50eXBlLXByb2R1Y3QgLnByb2R1Y3RfX3N1bW1hcnlXcmFwcGVyIHtcbiAgICB3aWR0aDogY2FsYyg2MyUgLSA0MXB4KTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC50eXBlLXByb2R1Y3QgLnByb2R1Y3RfX3N1bW1hcnlXcmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAudHlwZS1wcm9kdWN0IC5yZWxhdGVkIHVsIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnR5cGUtcHJvZHVjdCAucmVsYXRlZCBoMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAxLjYyNWVtOyB9XG4gIC50eXBlLXByb2R1Y3QgLnJlbGF0ZWQgLnByb2R1Y3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgLnR5cGUtcHJvZHVjdCAucmVsYXRlZCAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X19saW5rIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDE1cHgpIHtcbiAgLnNpbmdsZS1wcm9kdWN0IC5zaXRlLWNvbnRlbnQge1xuICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cblxuZGl2LnByb2R1Y3Qge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgZGl2LnByb2R1Y3QgLnByb2R1Y3RfdGl0bGUge1xuICAgIGNsZWFyOiBub25lO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgZGl2LnByb2R1Y3QgLnByb2R1Y3RfdGl0bGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4OyB9IH1cbiAgZGl2LnByb2R1Y3Qgc3Bhbi5wcmljZSxcbiAgZGl2LnByb2R1Y3QgcC5wcmljZSB7XG4gICAgY29sb3I6ICM3N2E0NjQ7XG4gICAgZm9udC1zaXplOiAxLjI1ZW07IH1cbiAgICBkaXYucHJvZHVjdCBzcGFuLnByaWNlIGlucyxcbiAgICBkaXYucHJvZHVjdCBwLnByaWNlIGlucyB7XG4gICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIGRpdi5wcm9kdWN0IHNwYW4ucHJpY2UgZGVsLFxuICAgIGRpdi5wcm9kdWN0IHAucHJpY2UgZGVsIHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICBkaXYucHJvZHVjdCBwLnN0b2NrIHtcbiAgICBmb250LXNpemU6IDAuOTJlbTsgfVxuICBkaXYucHJvZHVjdCAuc3RvY2sge1xuICAgIGNvbG9yOiAjNzdhNDY0OyB9XG4gIGRpdi5wcm9kdWN0IC5vdXQtb2Ytc3RvY2sge1xuICAgIGNvbG9yOiByZWQ7IH1cbiAgZGl2LnByb2R1Y3QgLndvb2NvbW1lcmNlLXByb2R1Y3QtcmF0aW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjYxOGVtOyB9XG4gIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMge1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTsgfVxuICAgIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgZGl2LnByb2R1Y3QgZGl2LmltYWdlcyBkaXYudGh1bWJuYWlscyB7XG4gICAgICBwYWRkaW5nLXRvcDogMWVtO1xuICAgICAgKnpvb206IDE7IH1cbiAgICAgIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgZGl2LnRodW1ibmFpbHM6OmJlZm9yZSwgZGl2LnByb2R1Y3QgZGl2LmltYWdlcyBkaXYudGh1bWJuYWlsczo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgICBkaXYucHJvZHVjdCBkaXYuaW1hZ2VzIGRpdi50aHVtYm5haWxzOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgICBkaXYucHJvZHVjdCBkaXYuaW1hZ2VzIGRpdi50aHVtYm5haWxzIGEge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDMwLjc1JTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzLjglO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07IH1cbiAgICAgIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgZGl2LnRodW1ibmFpbHMgYS5sYXN0IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICBkaXYucHJvZHVjdCBkaXYuaW1hZ2VzIGRpdi50aHVtYm5haWxzIGEuZmlyc3Qge1xuICAgICAgICBjbGVhcjogYm90aDsgfVxuICAgICAgZGl2LnByb2R1Y3QgZGl2LmltYWdlcyBkaXYudGh1bWJuYWlscy5jb2x1bW5zLTEgYSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIGZsb2F0OiBub25lOyB9XG4gICAgICBkaXYucHJvZHVjdCBkaXYuaW1hZ2VzIGRpdi50aHVtYm5haWxzLmNvbHVtbnMtMiBhIHtcbiAgICAgICAgd2lkdGg6IDQ4JTsgfVxuICAgICAgZGl2LnByb2R1Y3QgZGl2LmltYWdlcyBkaXYudGh1bWJuYWlscy5jb2x1bW5zLTQgYSB7XG4gICAgICAgIHdpZHRoOiAyMi4wNSU7IH1cbiAgICAgIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgZGl2LnRodW1ibmFpbHMuY29sdW1ucy01IGEge1xuICAgICAgICB3aWR0aDogMTYuOSU7IH1cbiAgICBkaXYucHJvZHVjdCBkaXYuaW1hZ2VzLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBkaXYucHJvZHVjdCBkaXYuaW1hZ2VzIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX3dyYXBwZXIge1xuICAgICAgdHJhbnNpdGlvbjogYWxsIGN1YmljLWJlemllcigwLjc5NSwgLTAuMDM1LCAwLCAxKSAwLjVzO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9fd3JhcHBlciAuem9vbUltZyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgb3BhY2l0eTogMDsgfVxuICAgIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9faW1hZ2UtLXBsYWNlaG9sZGVyIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMmYyZjI7IH1cbiAgICBkaXYucHJvZHVjdCBkaXYuaW1hZ2VzIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX2ltYWdlOm50aC1jaGlsZChuICsgMikge1xuICAgICAgd2lkdGg6IDI1JTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9fdHJpZ2dlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDAuNWVtO1xuICAgICAgcmlnaHQ6IDAuNWVtO1xuICAgICAgZm9udC1zaXplOiAyZW07XG4gICAgICB6LWluZGV4OiA5O1xuICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cbiAgICAgIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9fdHJpZ2dlcjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA5cHg7XG4gICAgICAgIGxlZnQ6IDlweDtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cbiAgICAgIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9fdHJpZ2dlcjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDJweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDE5cHg7XG4gICAgICAgIGxlZnQ6IDIycHg7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XG4gICAgZGl2LnByb2R1Y3QgZGl2LmltYWdlcyAuZmxleC1jb250cm9sLXRodW1icyB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgem9vbTogMTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgLmZsZXgtY29udHJvbC10aHVtYnMgbGkge1xuICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gICAgICAgIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgLmZsZXgtY29udHJvbC10aHVtYnMgbGkgaW1nIHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgICAgIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgLmZsZXgtY29udHJvbC10aHVtYnMgbGkgaW1nLmZsZXgtYWN0aXZlLCBkaXYucHJvZHVjdCBkaXYuaW1hZ2VzIC5mbGV4LWNvbnRyb2wtdGh1bWJzIGxpIGltZzpob3ZlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxOyB9XG4gIGRpdi5wcm9kdWN0IC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnktLWNvbHVtbnMtMyAuZmxleC1jb250cm9sLXRodW1icyBsaTpudGgtY2hpbGQoM24gKyAxKSB7XG4gICAgY2xlYXI6IGxlZnQ7IH1cbiAgZGl2LnByb2R1Y3QgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeS0tY29sdW1ucy00IC5mbGV4LWNvbnRyb2wtdGh1bWJzIGxpOm50aC1jaGlsZCg0biArIDEpIHtcbiAgICBjbGVhcjogbGVmdDsgfVxuICBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5LS1jb2x1bW5zLTUgLmZsZXgtY29udHJvbC10aHVtYnMgbGk6bnRoLWNoaWxkKDVuICsgMSkge1xuICAgIGNsZWFyOiBsZWZ0OyB9XG4gIGRpdi5wcm9kdWN0IGRpdi5zdW1tYXJ5IHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICBkaXYucHJvZHVjdCBkaXYuc29jaWFsIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBtYXJnaW46IDAgMCAxZW07IH1cbiAgICBkaXYucHJvZHVjdCBkaXYuc29jaWFsIHNwYW4ge1xuICAgICAgbWFyZ2luOiAwIDAgMCAycHg7IH1cbiAgICAgIGRpdi5wcm9kdWN0IGRpdi5zb2NpYWwgc3BhbiBzcGFuIHtcbiAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICBkaXYucHJvZHVjdCBkaXYuc29jaWFsIHNwYW4gLnN0QnV0dG9uIC5jaGlja2xldHMge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAwOyB9XG4gICAgZGl2LnByb2R1Y3QgZGl2LnNvY2lhbCBpZnJhbWUge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tdG9wOiAzcHg7IH1cbiAgZGl2LnByb2R1Y3QgLndvb2NvbW1lcmNlLXRhYnMge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gICAgZGl2LnByb2R1Y3QgLndvb2NvbW1lcmNlLXRhYnMgdWwudGFicyB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgcGFkZGluZzogMCAwIDAgMWVtO1xuICAgICAgbWFyZ2luOiAwIDAgMS42MThlbTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyB1bC50YWJzIGxpIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2QzY2VkMjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZTllYjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwO1xuICAgICAgICBtYXJnaW46IDAgLTVweDtcbiAgICAgICAgcGFkZGluZzogMCAxZW07IH1cbiAgICAgICAgZGl2LnByb2R1Y3QgLndvb2NvbW1lcmNlLXRhYnMgdWwudGFicyBsaSBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgcGFkZGluZzogMC41ZW0gMDtcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgIGNvbG9yOiAjNTE1MTUxO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgICAgIGRpdi5wcm9kdWN0IC53b29jb21tZXJjZS10YWJzIHVsLnRhYnMgbGkgYTpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogIzZiNmI2YjsgfVxuICAgICAgICBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyB1bC50YWJzIGxpLmFjdGl2ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmY7IH1cbiAgICAgICAgICBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyB1bC50YWJzIGxpLmFjdGl2ZSBhIHtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IGluaGVyaXQ7IH1cbiAgICAgICAgICBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyB1bC50YWJzIGxpLmFjdGl2ZTo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDJweCAycHggMCAjZmZmOyB9XG4gICAgICAgICAgZGl2LnByb2R1Y3QgLndvb2NvbW1lcmNlLXRhYnMgdWwudGFicyBsaS5hY3RpdmU6OmFmdGVyIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IC0ycHggMnB4IDAgI2ZmZjsgfVxuICAgICAgICBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyB1bC50YWJzIGxpOjpiZWZvcmUsIGRpdi5wcm9kdWN0IC53b29jb21tZXJjZS10YWJzIHVsLnRhYnMgbGk6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDNjZWQyO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgd2lkdGg6IDVweDtcbiAgICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgICAgIGRpdi5wcm9kdWN0IC53b29jb21tZXJjZS10YWJzIHVsLnRhYnMgbGk6OmJlZm9yZSB7XG4gICAgICAgICAgbGVmdDogLTVweDtcbiAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICAgICAgICAgIGJvcmRlci13aWR0aDogMCAxcHggMXB4IDA7XG4gICAgICAgICAgYm94LXNoYWRvdzogMnB4IDJweCAwICNlYmU5ZWI7IH1cbiAgICAgICAgZGl2LnByb2R1Y3QgLndvb2NvbW1lcmNlLXRhYnMgdWwudGFicyBsaTo6YWZ0ZXIge1xuICAgICAgICAgIHJpZ2h0OiAtNXB4O1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAxcHggMXB4O1xuICAgICAgICAgIGJveC1zaGFkb3c6IC0ycHggMnB4IDAgI2ViZTllYjsgfVxuICAgICAgZGl2LnByb2R1Y3QgLndvb2NvbW1lcmNlLXRhYnMgdWwudGFiczo6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkM2NlZDI7XG4gICAgICAgIHotaW5kZXg6IDE7IH1cbiAgICBkaXYucHJvZHVjdCAud29vY29tbWVyY2UtdGFicyAucGFuZWwge1xuICAgICAgbWFyZ2luOiAwIDAgMmVtO1xuICAgICAgcGFkZGluZzogMDsgfVxuICBkaXYucHJvZHVjdCBwLmNhcnQge1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICAqem9vbTogMTsgfVxuICAgIGRpdi5wcm9kdWN0IHAuY2FydDo6YmVmb3JlLCBkaXYucHJvZHVjdCBwLmNhcnQ6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgZGl2LnByb2R1Y3QgcC5jYXJ0OjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICBkaXYucHJvZHVjdCBmb3JtLmNhcnQge1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICAqem9vbTogMTsgfVxuICAgIGRpdi5wcm9kdWN0IGZvcm0uY2FydDo6YmVmb3JlLCBkaXYucHJvZHVjdCBmb3JtLmNhcnQ6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgZGl2LnByb2R1Y3QgZm9ybS5jYXJ0OjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIGRpdi5wcm9kdWN0IGZvcm0uY2FydCBkaXYucXVhbnRpdHkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW46IDAgNHB4IDAgMDsgfVxuICAgIGRpdi5wcm9kdWN0IGZvcm0uY2FydCB0YWJsZSB7XG4gICAgICBib3JkZXItd2lkdGg6IDAgMCAxcHg7IH1cbiAgICAgIGRpdi5wcm9kdWN0IGZvcm0uY2FydCB0YWJsZSB0ZCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAgICAgZGl2LnByb2R1Y3QgZm9ybS5jYXJ0IHRhYmxlIGRpdi5xdWFudGl0eSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgIGRpdi5wcm9kdWN0IGZvcm0uY2FydCB0YWJsZSBzbWFsbC5zdG9jayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbm9uZTsgfVxuICAgIGRpdi5wcm9kdWN0IGZvcm0uY2FydCAudmFyaWF0aW9ucyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgICBib3JkZXI6IDA7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgZGl2LnByb2R1Y3QgZm9ybS5jYXJ0IC52YXJpYXRpb25zIHRkLFxuICAgICAgZGl2LnByb2R1Y3QgZm9ybS5jYXJ0IC52YXJpYXRpb25zIHRoIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICBsaW5lLWhlaWdodDogMmVtOyB9XG4gICAgICBkaXYucHJvZHVjdCBmb3JtLmNhcnQgLnZhcmlhdGlvbnMgbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgICBkaXYucHJvZHVjdCBmb3JtLmNhcnQgLnZhcmlhdGlvbnMgc2VsZWN0IHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDc1JTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTsgfVxuICAgICAgZGl2LnByb2R1Y3QgZm9ybS5jYXJ0IC52YXJpYXRpb25zIHRkLmxhYmVsIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMWVtOyB9XG4gICAgZGl2LnByb2R1Y3QgZm9ybS5jYXJ0IC53b29jb21tZXJjZS12YXJpYXRpb24tZGVzY3JpcHRpb24gcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxZW07IH1cbiAgICBkaXYucHJvZHVjdCBmb3JtLmNhcnQgLnJlc2V0X3ZhcmlhdGlvbnMge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgZm9udC1zaXplOiAwLjgzZW07IH1cbiAgICBkaXYucHJvZHVjdCBmb3JtLmNhcnQgLndjLW5vLW1hdGNoaW5nLXZhcmlhdGlvbnMge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIGRpdi5wcm9kdWN0IGZvcm0uY2FydCAuYnV0dG9uIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAgIGRpdi5wcm9kdWN0IGZvcm0uY2FydCAuZ3JvdXBfdGFibGUgdGQud29vY29tbWVyY2UtZ3JvdXBlZC1wcm9kdWN0LWxpc3QtaXRlbV9fbGFiZWwge1xuICAgICAgcGFkZGluZy1yaWdodDogMWVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxZW07IH1cbiAgICBkaXYucHJvZHVjdCBmb3JtLmNhcnQgLmdyb3VwX3RhYmxlIHRkIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMC41ZW07XG4gICAgICBib3JkZXI6IDA7IH1cbiAgICBkaXYucHJvZHVjdCBmb3JtLmNhcnQgLmdyb3VwX3RhYmxlIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgIHdpZHRoOiA0ZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBkaXYucHJvZHVjdCBmb3JtLmNhcnQgLmdyb3VwX3RhYmxlIC53Yy1ncm91cGVkLXByb2R1Y3QtYWRkLXRvLWNhcnQtY2hlY2tib3gge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41LCAxLjUpOyB9XG5cbi5zaW5nbGUtcHJvZHVjdF9fc2t1ID4gcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvIENvbmRlbnNlZFwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDA7IH1cbiAgLnNpbmdsZS1wcm9kdWN0X19za3UgPiBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgY29sb3I6ICNFNTBBMTk7IH1cblxuLndvb2NvbW1lcmNlLVRhYnMtcGFuZWwtLWFkZGl0aW9uYWxfaW5mb3JtYXRpb24gaDIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbmRpdi5wcm9kdWN0IGRpdi5pbWFnZXMgaW1nIHtcbiAgbWF4LWhlaWdodDogNDQ0cHg7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4ud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X193cmFwcGVyLFxuLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cblxuLmZsZXgtY29udHJvbC1uYXYge1xuICBwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7IH1cblxuLyoqXHJcbiAqIENoZWNrb3V0XHJcbiAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbDItc2V0IC5mb3JtLXJvdy1maXJzdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAzLjglOyB9XG4gIC5jb2wyLXNldCAuZm9ybS1yb3ctbGFzdCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAuY29sMi1zZXQgLmZvcm0tcm93LWZpcnN0LFxuICAuY29sMi1zZXQgLmZvcm0tcm93LWxhc3Qge1xuICAgIHdpZHRoOiA0OC4xJTsgfSB9XG5cbi8qKlxyXG4gKiBDYXJ0L2NoZWNrb3V0IHBhZ2VcclxuICovXG4ud29vY29tbWVyY2UtY2FydCB0YWJsZS5jYXJ0IC5wcm9kdWN0LXRodW1ibmFpbCxcbi53b29jb21tZXJjZS1jaGVja291dCB0YWJsZS5jYXJ0IC5wcm9kdWN0LXRodW1ibmFpbCxcbiNhZGRfcGF5bWVudF9tZXRob2QgdGFibGUuY2FydCAucHJvZHVjdC10aHVtYm5haWwge1xuICBtaW4td2lkdGg6IDMycHg7IH1cbiAgLndvb2NvbW1lcmNlLWNhcnQgdGFibGUuY2FydCAucHJvZHVjdC10aHVtYm5haWwgaW1nLFxuICAud29vY29tbWVyY2UtY2hlY2tvdXQgdGFibGUuY2FydCAucHJvZHVjdC10aHVtYm5haWwgaW1nLFxuICAjYWRkX3BheW1lbnRfbWV0aG9kIHRhYmxlLmNhcnQgLnByb2R1Y3QtdGh1bWJuYWlsIGltZyB7XG4gICAgd2lkdGg6IDdlbTsgfVxuXG4ud29vY29tbWVyY2UtY2FydCB0YWJsZS5jYXJ0IGltZyxcbi53b29jb21tZXJjZS1jaGVja291dCB0YWJsZS5jYXJ0IGltZyxcbiNhZGRfcGF5bWVudF9tZXRob2QgdGFibGUuY2FydCBpbWcge1xuICB3aWR0aDogMzJweDtcbiAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4ud29vY29tbWVyY2UtY2FydCB0YWJsZS5jYXJ0IHRoLFxuLndvb2NvbW1lcmNlLWNhcnQgdGFibGUuY2FydCB0ZCxcbi53b29jb21tZXJjZS1jaGVja291dCB0YWJsZS5jYXJ0IHRoLFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0IHRhYmxlLmNhcnQgdGQsXG4jYWRkX3BheW1lbnRfbWV0aG9kIHRhYmxlLmNhcnQgdGgsXG4jYWRkX3BheW1lbnRfbWV0aG9kIHRhYmxlLmNhcnQgdGQge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi53b29jb21tZXJjZS1jYXJ0IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIC5pbnB1dC10ZXh0LFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIC5pbnB1dC10ZXh0LFxuI2FkZF9wYXltZW50X21ldGhvZCB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbiAuaW5wdXQtdGV4dCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDNjZWQyO1xuICBwYWRkaW5nOiA2cHggNnB4IDVweDtcbiAgbWFyZ2luOiAwIDRweCAwIDA7XG4gIG91dGxpbmU6IDA7IH1cblxuLndvb2NvbW1lcmNlLWNhcnQgdGFibGUuY2FydCBpbnB1dCxcbi53b29jb21tZXJjZS1jaGVja291dCB0YWJsZS5jYXJ0IGlucHV0LFxuI2FkZF9wYXltZW50X21ldGhvZCB0YWJsZS5jYXJ0IGlucHV0IHtcbiAgbWFyZ2luOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi53b29jb21tZXJjZS1jYXJ0IC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0LFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0LFxuI2FkZF9wYXltZW50X21ldGhvZCAud2MtcHJvY2VlZC10by1jaGVja291dCB7XG4gICp6b29tOiAxO1xuICBwYWRkaW5nOiAxZW0gMDsgfVxuICAud29vY29tbWVyY2UtY2FydCAud2MtcHJvY2VlZC10by1jaGVja291dDo6YmVmb3JlLCAud29vY29tbWVyY2UtY2FydCAud2MtcHJvY2VlZC10by1jaGVja291dDo6YWZ0ZXIsXG4gIC53b29jb21tZXJjZS1jaGVja291dCAud2MtcHJvY2VlZC10by1jaGVja291dDo6YmVmb3JlLFxuICAud29vY29tbWVyY2UtY2hlY2tvdXQgLndjLXByb2NlZWQtdG8tY2hlY2tvdXQ6OmFmdGVyLFxuICAjYWRkX3BheW1lbnRfbWV0aG9kIC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0OjpiZWZvcmUsXG4gICNhZGRfcGF5bWVudF9tZXRob2QgLndjLXByb2NlZWQtdG8tY2hlY2tvdXQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLndvb2NvbW1lcmNlLWNhcnQgLndjLXByb2NlZWQtdG8tY2hlY2tvdXQ6OmFmdGVyLFxuICAud29vY29tbWVyY2UtY2hlY2tvdXQgLndjLXByb2NlZWQtdG8tY2hlY2tvdXQ6OmFmdGVyLFxuICAjYWRkX3BheW1lbnRfbWV0aG9kIC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLndvb2NvbW1lcmNlLWNhcnQgLndjLXByb2NlZWQtdG8tY2hlY2tvdXQgYS5jaGVja291dC1idXR0b24sXG4gIC53b29jb21tZXJjZS1jaGVja291dCAud2MtcHJvY2VlZC10by1jaGVja291dCBhLmNoZWNrb3V0LWJ1dHRvbixcbiAgI2FkZF9wYXltZW50X21ldGhvZCAud2MtcHJvY2VlZC10by1jaGVja291dCBhLmNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICBmb250LXNpemU6IDEuMjVlbTtcbiAgICBwYWRkaW5nOiAxZW07IH1cblxuLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLnNoaXBwaW5nLWNhbGN1bGF0b3ItYnV0dG9uLFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0IC5jYXJ0LWNvbGxhdGVyYWxzIC5zaGlwcGluZy1jYWxjdWxhdG9yLWJ1dHRvbixcbiNhZGRfcGF5bWVudF9tZXRob2QgLmNhcnQtY29sbGF0ZXJhbHMgLnNoaXBwaW5nLWNhbGN1bGF0b3ItYnV0dG9uIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLnNoaXBwaW5nLWNhbGN1bGF0b3ItYnV0dG9uOjphZnRlcixcbi53b29jb21tZXJjZS1jaGVja291dCAuY2FydC1jb2xsYXRlcmFscyAuc2hpcHBpbmctY2FsY3VsYXRvci1idXR0b246OmFmdGVyLFxuI2FkZF9wYXltZW50X21ldGhvZCAuY2FydC1jb2xsYXRlcmFscyAuc2hpcHBpbmctY2FsY3VsYXRvci1idXR0b246OmFmdGVyIHtcbiAgZm9udC1mYW1pbHk6ICdXb29Db21tZXJjZSc7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgbWFyZ2luLWxlZnQ6IDAuNjE4ZW07XG4gIGNvbnRlbnQ6IFwi7oCZXCI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4ud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFscyAuc2hpcHBpbmctY2FsY3VsYXRvci1mb3JtLFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0IC5jYXJ0LWNvbGxhdGVyYWxzIC5zaGlwcGluZy1jYWxjdWxhdG9yLWZvcm0sXG4jYWRkX3BheW1lbnRfbWV0aG9kIC5jYXJ0LWNvbGxhdGVyYWxzIC5zaGlwcGluZy1jYWxjdWxhdG9yLWZvcm0ge1xuICBtYXJnaW46IDFlbSAwIDAgMDsgfVxuXG4ud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgcCBzbWFsbCxcbi53b29jb21tZXJjZS1jaGVja291dCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgcCBzbWFsbCxcbiNhZGRfcGF5bWVudF9tZXRob2QgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHAgc21hbGwge1xuICBjb2xvcjogIzc2NzY3NjtcbiAgZm9udC1zaXplOiAwLjgzZW07IH1cblxuLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRhYmxlLFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB0YWJsZSxcbiNhZGRfcGF5bWVudF9tZXRob2QgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgbWFyZ2luOiAwIDAgNnB4O1xuICBwYWRkaW5nOiAwOyB9XG4gIC53b29jb21tZXJjZS1jYXJ0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB0YWJsZSB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRhYmxlIHRyOmZpcnN0LWNoaWxkIHRkLFxuICAud29vY29tbWVyY2UtY2hlY2tvdXQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRhYmxlIHRyOmZpcnN0LWNoaWxkIHRoLFxuICAud29vY29tbWVyY2UtY2hlY2tvdXQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRhYmxlIHRyOmZpcnN0LWNoaWxkIHRkLFxuICAjYWRkX3BheW1lbnRfbWV0aG9kIC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB0YWJsZSB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgI2FkZF9wYXltZW50X21ldGhvZCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgdGFibGUgdHI6Zmlyc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci10b3A6IDA7IH1cbiAgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRhYmxlIHRoLFxuICAud29vY29tbWVyY2UtY2hlY2tvdXQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRhYmxlIHRoLFxuICAjYWRkX3BheW1lbnRfbWV0aG9kIC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB0YWJsZSB0aCB7XG4gICAgd2lkdGg6IDM1JTsgfVxuICAud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgdGFibGUgdGQsXG4gIC53b29jb21tZXJjZS1jYXJ0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB0YWJsZSB0aCxcbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB0YWJsZSB0ZCxcbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB0YWJsZSB0aCxcbiAgI2FkZF9wYXltZW50X21ldGhvZCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgdGFibGUgdGQsXG4gICNhZGRfcGF5bWVudF9tZXRob2QgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRhYmxlIHRoIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07IH1cbiAgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRhYmxlIHNtYWxsLFxuICAud29vY29tbWVyY2UtY2hlY2tvdXQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRhYmxlIHNtYWxsLFxuICAjYWRkX3BheW1lbnRfbWV0aG9kIC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB0YWJsZSBzbWFsbCB7XG4gICAgY29sb3I6ICM3Njc2NzY7IH1cbiAgLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRhYmxlIHNlbGVjdCxcbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB0YWJsZSBzZWxlY3QsXG4gICNhZGRfcGF5bWVudF9tZXRob2QgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRhYmxlIHNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIC5kaXNjb3VudCB0ZCxcbi53b29jb21tZXJjZS1jaGVja291dCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgLmRpc2NvdW50IHRkLFxuI2FkZF9wYXltZW50X21ldGhvZCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgLmRpc2NvdW50IHRkIHtcbiAgY29sb3I6ICM3N2E0NjQ7IH1cblxuLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRyIHRkLFxuLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRyIHRoLFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0IC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB0ciB0ZCxcbi53b29jb21tZXJjZS1jaGVja291dCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgdHIgdGgsXG4jYWRkX3BheW1lbnRfbWV0aG9kIC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB0ciB0ZCxcbiNhZGRfcGF5bWVudF9tZXRob2QgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIHRyIHRoIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlYmU5ZWI7IH1cblxuLndvb2NvbW1lcmNlLWNhcnQgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzIC53b29jb21tZXJjZS1zaGlwcGluZy1kZXN0aW5hdGlvbixcbi53b29jb21tZXJjZS1jaGVja291dCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgLndvb2NvbW1lcmNlLXNoaXBwaW5nLWRlc3RpbmF0aW9uLFxuI2FkZF9wYXltZW50X21ldGhvZCAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMgLndvb2NvbW1lcmNlLXNoaXBwaW5nLWRlc3RpbmF0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ud29vY29tbWVyY2UtY2FydCAuY2FydC1jb2xsYXRlcmFscyAuY3Jvc3Mtc2VsbHMgdWwucHJvZHVjdHMgbGkucHJvZHVjdCxcbi53b29jb21tZXJjZS1jaGVja291dCAuY2FydC1jb2xsYXRlcmFscyAuY3Jvc3Mtc2VsbHMgdWwucHJvZHVjdHMgbGkucHJvZHVjdCxcbiNhZGRfcGF5bWVudF9tZXRob2QgLmNhcnQtY29sbGF0ZXJhbHMgLmNyb3NzLXNlbGxzIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3Qge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi53b29jb21tZXJjZS1jYXJ0IC5jaGVja291dCAuY29sLTIgaDMjc2hpcC10by1kaWZmZXJlbnQtYWRkcmVzcyxcbi53b29jb21tZXJjZS1jaGVja291dCAuY2hlY2tvdXQgLmNvbC0yIGgzI3NoaXAtdG8tZGlmZmVyZW50LWFkZHJlc3MsXG4jYWRkX3BheW1lbnRfbWV0aG9kIC5jaGVja291dCAuY29sLTIgaDMjc2hpcC10by1kaWZmZXJlbnQtYWRkcmVzcyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbm9uZTsgfVxuXG4ud29vY29tbWVyY2UtY2FydCAuY2hlY2tvdXQgLmNvbC0yIC5ub3Rlcyxcbi53b29jb21tZXJjZS1jaGVja291dCAuY2hlY2tvdXQgLmNvbC0yIC5ub3RlcyxcbiNhZGRfcGF5bWVudF9tZXRob2QgLmNoZWNrb3V0IC5jb2wtMiAubm90ZXMge1xuICBjbGVhcjogbGVmdDsgfVxuXG4ud29vY29tbWVyY2UtY2FydCAuY2hlY2tvdXQgLmNvbC0yIC5mb3JtLXJvdy1maXJzdCxcbi53b29jb21tZXJjZS1jaGVja291dCAuY2hlY2tvdXQgLmNvbC0yIC5mb3JtLXJvdy1maXJzdCxcbiNhZGRfcGF5bWVudF9tZXRob2QgLmNoZWNrb3V0IC5jb2wtMiAuZm9ybS1yb3ctZmlyc3Qge1xuICBjbGVhcjogbGVmdDsgfVxuXG4ud29vY29tbWVyY2UtY2FydCAuY2hlY2tvdXQgLmNyZWF0ZS1hY2NvdW50IHNtYWxsLFxuLndvb2NvbW1lcmNlLWNoZWNrb3V0IC5jaGVja291dCAuY3JlYXRlLWFjY291bnQgc21hbGwsXG4jYWRkX3BheW1lbnRfbWV0aG9kIC5jaGVja291dCAuY3JlYXRlLWFjY291bnQgc21hbGwge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjNzY3Njc2O1xuICBmb250LXdlaWdodDogbm9ybWFsOyB9XG5cbi53b29jb21tZXJjZS1jYXJ0IC5jaGVja291dCBkaXYuc2hpcHBpbmctYWRkcmVzcyxcbi53b29jb21tZXJjZS1jaGVja291dCAuY2hlY2tvdXQgZGl2LnNoaXBwaW5nLWFkZHJlc3MsXG4jYWRkX3BheW1lbnRfbWV0aG9kIC5jaGVja291dCBkaXYuc2hpcHBpbmctYWRkcmVzcyB7XG4gIHBhZGRpbmc6IDA7XG4gIGNsZWFyOiBsZWZ0O1xuICB3aWR0aDogMTAwJTsgfVxuXG4ud29vY29tbWVyY2UtY2FydCAuY2hlY2tvdXQgLnNoaXBwaW5nX2FkZHJlc3MsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQgLmNoZWNrb3V0IC5zaGlwcGluZ19hZGRyZXNzLFxuI2FkZF9wYXltZW50X21ldGhvZCAuY2hlY2tvdXQgLnNoaXBwaW5nX2FkZHJlc3Mge1xuICBjbGVhcjogYm90aDsgfVxuXG4ud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCxcbi53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCxcbiNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjZWJlOWViO1xuICBib3JkZXItcmFkaXVzOiA1cHg7IH1cbiAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgdWwucGF5bWVudF9tZXRob2RzLFxuICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgdWwucGF5bWVudF9tZXRob2RzLFxuICAjYWRkX3BheW1lbnRfbWV0aG9kICNwYXltZW50IHVsLnBheW1lbnRfbWV0aG9kcyB7XG4gICAgKnpvb206IDE7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAxZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkM2NlZDI7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTsgfVxuICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IHVsLnBheW1lbnRfbWV0aG9kczo6YmVmb3JlLCAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCB1bC5wYXltZW50X21ldGhvZHM6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCB1bC5wYXltZW50X21ldGhvZHM6OmJlZm9yZSxcbiAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgdWwucGF5bWVudF9tZXRob2RzOjphZnRlcixcbiAgICAjYWRkX3BheW1lbnRfbWV0aG9kICNwYXltZW50IHVsLnBheW1lbnRfbWV0aG9kczo6YmVmb3JlLFxuICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgdWwucGF5bWVudF9tZXRob2RzOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IHVsLnBheW1lbnRfbWV0aG9kczo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IHVsLnBheW1lbnRfbWV0aG9kczo6YWZ0ZXIsXG4gICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCB1bC5wYXltZW50X21ldGhvZHM6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgdWwucGF5bWVudF9tZXRob2RzIGxpLFxuICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCB1bC5wYXltZW50X21ldGhvZHMgbGksXG4gICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCB1bC5wYXltZW50X21ldGhvZHMgbGkge1xuICAgICAgbGluZS1oZWlnaHQ6IDI7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgdWwucGF5bWVudF9tZXRob2RzIGxpIGlucHV0LFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IHVsLnBheW1lbnRfbWV0aG9kcyBsaSBpbnB1dCxcbiAgICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgdWwucGF5bWVudF9tZXRob2RzIGxpIGlucHV0IHtcbiAgICAgICAgbWFyZ2luOiAwIDFlbSAwIDA7IH1cbiAgICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IHVsLnBheW1lbnRfbWV0aG9kcyBsaSBpbWcsXG4gICAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgdWwucGF5bWVudF9tZXRob2RzIGxpIGltZyxcbiAgICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgdWwucGF5bWVudF9tZXRob2RzIGxpIGltZyB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbjogLTJweCAwIDAgMC41ZW07XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgdWwucGF5bWVudF9tZXRob2RzIGxpIGltZyArIGltZyxcbiAgICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCB1bC5wYXltZW50X21ldGhvZHMgbGkgaW1nICsgaW1nLFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCB1bC5wYXltZW50X21ldGhvZHMgbGkgaW1nICsgaW1nIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsgfVxuICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IHVsLnBheW1lbnRfbWV0aG9kcyBsaTpub3QoLndvb2NvbW1lcmNlLW5vdGljZSksXG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IHVsLnBheW1lbnRfbWV0aG9kcyBsaTpub3QoLndvb2NvbW1lcmNlLW5vdGljZSksXG4gICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCB1bC5wYXltZW50X21ldGhvZHMgbGk6bm90KC53b29jb21tZXJjZS1ub3RpY2UpIHtcbiAgICAgICp6b29tOiAxOyB9XG4gICAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCB1bC5wYXltZW50X21ldGhvZHMgbGk6bm90KC53b29jb21tZXJjZS1ub3RpY2UpOjpiZWZvcmUsIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IHVsLnBheW1lbnRfbWV0aG9kcyBsaTpub3QoLndvb2NvbW1lcmNlLW5vdGljZSk6OmFmdGVyLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IHVsLnBheW1lbnRfbWV0aG9kcyBsaTpub3QoLndvb2NvbW1lcmNlLW5vdGljZSk6OmJlZm9yZSxcbiAgICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCB1bC5wYXltZW50X21ldGhvZHMgbGk6bm90KC53b29jb21tZXJjZS1ub3RpY2UpOjphZnRlcixcbiAgICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgdWwucGF5bWVudF9tZXRob2RzIGxpOm5vdCgud29vY29tbWVyY2Utbm90aWNlKTo6YmVmb3JlLFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCB1bC5wYXltZW50X21ldGhvZHMgbGk6bm90KC53b29jb21tZXJjZS1ub3RpY2UpOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IHVsLnBheW1lbnRfbWV0aG9kcyBsaTpub3QoLndvb2NvbW1lcmNlLW5vdGljZSk6OmFmdGVyLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IHVsLnBheW1lbnRfbWV0aG9kcyBsaTpub3QoLndvb2NvbW1lcmNlLW5vdGljZSk6OmFmdGVyLFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCB1bC5wYXltZW50X21ldGhvZHMgbGk6bm90KC53b29jb21tZXJjZS1ub3RpY2UpOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5mb3JtLXJvdyxcbiAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5mb3JtLXJvdyxcbiAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYuZm9ybS1yb3cge1xuICAgIHBhZGRpbmc6IDFlbTsgfVxuICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3gsXG4gIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3gsXG4gICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxZW07XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgICBmb250LXNpemU6IDAuOTJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkY2RlO1xuICAgIGNvbG9yOiAjNTE1MTUxOyB9XG4gICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IGlucHV0LmlucHV0LXRleHQsXG4gICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IHRleHRhcmVhLFxuICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggaW5wdXQuaW5wdXQtdGV4dCxcbiAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IHRleHRhcmVhLFxuICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IGlucHV0LmlucHV0LXRleHQsXG4gICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggdGV4dGFyZWEge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjYzdjMWM2O1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2JiYjNiOTsgfVxuICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4gICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAjYmJiM2I5OyB9XG4gICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IDotbW96LXBsYWNlaG9sZGVyLFxuICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggOi1tb3otcGxhY2Vob2xkZXIsXG4gICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggOi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICNiYmIzYjk7IH1cbiAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IDotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXG4gICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogI2JiYjNiOTsgfVxuICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud29vY29tbWVyY2UtU2F2ZWRQYXltZW50TWV0aG9kcyxcbiAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzLFxuICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzIHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzIC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzLXRva2VuLFxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzIC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzLW5ldyxcbiAgICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMgLndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMtdG9rZW4sXG4gICAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzIC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzLW5ldyxcbiAgICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzIC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzLXRva2VuLFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMgLndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMtbmV3IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMC41ZW07IH1cbiAgICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzIC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzLXRva2VuIGxhYmVsLFxuICAgICAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMgLndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMtbmV3IGxhYmVsLFxuICAgICAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzIC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzLXRva2VuIGxhYmVsLFxuICAgICAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzIC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzLW5ldyBsYWJlbCxcbiAgICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMgLndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMtdG9rZW4gbGFiZWwsXG4gICAgICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzIC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzLW5ldyBsYWJlbCB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMgLndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMtdG9rZW5JbnB1dCxcbiAgICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMgLndvb2NvbW1lcmNlLVNhdmVkUGF5bWVudE1ldGhvZHMtdG9rZW5JbnB1dCxcbiAgICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzIC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzLXRva2VuSW5wdXQge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW46IC0zcHggMWVtIDAgMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLFxuICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0sXG4gICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMWVtIDAgMDsgfVxuICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlcixcbiAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1leHBpcnksXG4gICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtY3ZjLFxuICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1udW1iZXIsXG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeSxcbiAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtY3ZjLFxuICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtbnVtYmVyLFxuICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtZXhwaXJ5LFxuICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtY3ZjIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC42MThlbSBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMjBweDsgfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtbnVtYmVyLnZpc2EsXG4gICAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1leHBpcnkudmlzYSxcbiAgICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWN2Yy52aXNhLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlci52aXNhLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeS52aXNhLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWN2Yy52aXNhLFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1udW1iZXIudmlzYSxcbiAgICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtZXhwaXJ5LnZpc2EsXG4gICAgICAjYWRkX3BheW1lbnRfbWV0aG9kICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWN2Yy52aXNhIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NyZWRpdC1jYXJkcy92aXNhLnN2Z1wiKTsgfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtbnVtYmVyLm1hc3RlcmNhcmQsXG4gICAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1leHBpcnkubWFzdGVyY2FyZCxcbiAgICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWN2Yy5tYXN0ZXJjYXJkLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlci5tYXN0ZXJjYXJkLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeS5tYXN0ZXJjYXJkLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWN2Yy5tYXN0ZXJjYXJkLFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1udW1iZXIubWFzdGVyY2FyZCxcbiAgICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtZXhwaXJ5Lm1hc3RlcmNhcmQsXG4gICAgICAjYWRkX3BheW1lbnRfbWV0aG9kICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWN2Yy5tYXN0ZXJjYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NyZWRpdC1jYXJkcy9tYXN0ZXJjYXJkLnN2Z1wiKTsgfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtbnVtYmVyLmxhc2VyLFxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtZXhwaXJ5Lmxhc2VyLFxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtY3ZjLmxhc2VyLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlci5sYXNlcixcbiAgICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1leHBpcnkubGFzZXIsXG4gICAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtY3ZjLmxhc2VyLFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1udW1iZXIubGFzZXIsXG4gICAgICAjYWRkX3BheW1lbnRfbWV0aG9kICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeS5sYXNlcixcbiAgICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtY3ZjLmxhc2VyIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NyZWRpdC1jYXJkcy9sYXNlci5zdmdcIik7IH1cbiAgICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlci5kaW5lcnNjbHViLFxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtZXhwaXJ5LmRpbmVyc2NsdWIsXG4gICAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1jdmMuZGluZXJzY2x1YixcbiAgICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1udW1iZXIuZGluZXJzY2x1YixcbiAgICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1leHBpcnkuZGluZXJzY2x1YixcbiAgICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1jdmMuZGluZXJzY2x1YixcbiAgICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtbnVtYmVyLmRpbmVyc2NsdWIsXG4gICAgICAjYWRkX3BheW1lbnRfbWV0aG9kICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeS5kaW5lcnNjbHViLFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1jdmMuZGluZXJzY2x1YiB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jcmVkaXQtY2FyZHMvZGluZXJzLnN2Z1wiKTsgfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtbnVtYmVyLm1hZXN0cm8sXG4gICAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1leHBpcnkubWFlc3RybyxcbiAgICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWN2Yy5tYWVzdHJvLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlci5tYWVzdHJvLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeS5tYWVzdHJvLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWN2Yy5tYWVzdHJvLFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1udW1iZXIubWFlc3RybyxcbiAgICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtZXhwaXJ5Lm1hZXN0cm8sXG4gICAgICAjYWRkX3BheW1lbnRfbWV0aG9kICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWN2Yy5tYWVzdHJvIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NyZWRpdC1jYXJkcy9tYWVzdHJvLnN2Z1wiKTsgfVxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtbnVtYmVyLmpjYixcbiAgICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeS5qY2IsXG4gICAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1jdmMuamNiLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlci5qY2IsXG4gICAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtZXhwaXJ5LmpjYixcbiAgICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1jdmMuamNiLFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1udW1iZXIuamNiLFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1leHBpcnkuamNiLFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1jdmMuamNiIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NyZWRpdC1jYXJkcy9qY2Iuc3ZnXCIpOyB9XG4gICAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1udW1iZXIuYW1leCxcbiAgICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeS5hbWV4LFxuICAgICAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtY3ZjLmFtZXgsXG4gICAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtbnVtYmVyLmFtZXgsXG4gICAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtZXhwaXJ5LmFtZXgsXG4gICAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtY3ZjLmFtZXgsXG4gICAgICAjYWRkX3BheW1lbnRfbWV0aG9kICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlci5hbWV4LFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1leHBpcnkuYW1leCxcbiAgICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtY3ZjLmFtZXgge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY3JlZGl0LWNhcmRzL2FtZXguc3ZnXCIpOyB9XG4gICAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1udW1iZXIuZGlzY292ZXIsXG4gICAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1leHBpcnkuZGlzY292ZXIsXG4gICAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1jdmMuZGlzY292ZXIsXG4gICAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtbnVtYmVyLmRpc2NvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeS5kaXNjb3ZlcixcbiAgICAgIC53b29jb21tZXJjZS1jaGVja291dCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1jdmMuZGlzY292ZXIsXG4gICAgICAjYWRkX3BheW1lbnRfbWV0aG9kICNwYXltZW50IGRpdi5wYXltZW50X2JveCAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLW51bWJlci5kaXNjb3ZlcixcbiAgICAgICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94IC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtZXhwaXJ5LmRpc2NvdmVyLFxuICAgICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1jdmMuZGlzY292ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY3JlZGl0LWNhcmRzL2Rpc2NvdmVyLnN2Z1wiKTsgfVxuICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCBzcGFuLmhlbHAsXG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCBzcGFuLmhlbHAsXG4gICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggc3Bhbi5oZWxwIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44NTdlbTtcbiAgICAgIGNvbG9yOiAjNzY3Njc2O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAuZm9ybS1yb3csXG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCAuZm9ybS1yb3csXG4gICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggLmZvcm0tcm93IHtcbiAgICAgIG1hcmdpbjogMCAwIDFlbTsgfVxuICAgIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCBwOmxhc3QtY2hpbGQsXG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNwYXltZW50IGRpdi5wYXltZW50X2JveCBwOmxhc3QtY2hpbGQsXG4gICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3ggcDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAud29vY29tbWVyY2UtY2FydCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3g6OmJlZm9yZSxcbiAgICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgZGl2LnBheW1lbnRfYm94OjpiZWZvcmUsXG4gICAgI2FkZF9wYXltZW50X21ldGhvZCAjcGF5bWVudCBkaXYucGF5bWVudF9ib3g6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBib3JkZXI6IDFlbSBzb2xpZCAjZGZkY2RlO1xuICAgICAgLyogYXJyb3cgc2l6ZSAvIGNvbG9yICovXG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0wLjc1ZW07XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWFyZ2luOiAtMWVtIDAgMCAyZW07IH1cbiAgLndvb2NvbW1lcmNlLWNhcnQgI3BheW1lbnQgLnBheW1lbnRfbWV0aG9kX3BheXBhbCAuYWJvdXRfcGF5cGFsLFxuICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgLnBheW1lbnRfbWV0aG9kX3BheXBhbCAuYWJvdXRfcGF5cGFsLFxuICAjYWRkX3BheW1lbnRfbWV0aG9kICNwYXltZW50IC5wYXltZW50X21ldGhvZF9wYXlwYWwgLmFib3V0X3BheXBhbCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiA1MnB4O1xuICAgIGZvbnQtc2l6ZTogMC44M2VtOyB9XG4gIC53b29jb21tZXJjZS1jYXJ0ICNwYXltZW50IC5wYXltZW50X21ldGhvZF9wYXlwYWwgaW1nLFxuICAud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgLnBheW1lbnRfbWV0aG9kX3BheXBhbCBpbWcsXG4gICNhZGRfcGF5bWVudF9tZXRob2QgI3BheW1lbnQgLnBheW1lbnRfbWV0aG9kX3BheXBhbCBpbWcge1xuICAgIG1heC1oZWlnaHQ6IDUycHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4ud29vY29tbWVyY2UtdGVybXMtYW5kLWNvbmRpdGlvbnMge1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7IH1cblxuLndvb2NvbW1lcmNlLWludmFsaWQgI3Rlcm1zIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHJlZDtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDsgfVxuXG4vKipcclxuICogQ2FydFxyXG4gKi9cbi8qKlxyXG4gKiBDYXJ0IHBhZ2VcclxuICovXG4ud29vY29tbWVyY2UsXG4ud29vY29tbWVyY2UtcGFnZSB7XG4gIC8qKlxyXG4gICAqIEZvcm1zXHJcbiAgICovXG4gIC8qKlxyXG4gICAqIG9FbWJlZHNcclxuICAgKi8gfVxuICAud29vY29tbWVyY2UgdGFibGUuY2FydCBpbWcsXG4gIC53b29jb21tZXJjZSAjY29udGVudCB0YWJsZS5jYXJ0IGltZyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuY2FydCBpbWcsXG4gIC53b29jb21tZXJjZS1wYWdlICNjb250ZW50IHRhYmxlLmNhcnQgaW1nIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgLndvb2NvbW1lcmNlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyxcbiAgLndvb2NvbW1lcmNlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuY2FydCB0ZC5hY3Rpb25zLFxuICAud29vY29tbWVyY2UtcGFnZSAjY29udGVudCB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLndvb2NvbW1lcmNlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuaW5wdXQtdGV4dCxcbiAgICAud29vY29tbWVyY2UgI2NvbnRlbnQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5pbnB1dC10ZXh0LFxuICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuaW5wdXQtdGV4dCxcbiAgICAud29vY29tbWVyY2UtcGFnZSAjY29udGVudCB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmlucHV0LXRleHQge1xuICAgICAgd2lkdGg6IDgwcHg7IH1cbiAgICAud29vY29tbWVyY2UgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb24sXG4gICAgLndvb2NvbW1lcmNlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uLFxuICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uLFxuICAgIC53b29jb21tZXJjZS1wYWdlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICAud29vY29tbWVyY2UgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb24gbGFiZWwsXG4gICAgICAud29vY29tbWVyY2UgI2NvbnRlbnQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb24gbGFiZWwsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbiBsYWJlbCxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAud29vY29tbWVyY2UgLmNhcnQtY29sbGF0ZXJhbHMsXG4gIC53b29jb21tZXJjZS1wYWdlIC5jYXJ0LWNvbGxhdGVyYWxzIHtcbiAgICAqem9vbTogMTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC53b29jb21tZXJjZSAuY2FydC1jb2xsYXRlcmFsczo6YmVmb3JlLCAud29vY29tbWVyY2UgLmNhcnQtY29sbGF0ZXJhbHM6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC5jYXJ0LWNvbGxhdGVyYWxzOjpiZWZvcmUsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLmNhcnQtY29sbGF0ZXJhbHM6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLndvb2NvbW1lcmNlIC5jYXJ0LWNvbGxhdGVyYWxzOjphZnRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSAuY2FydC1jb2xsYXRlcmFsczo6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAud29vY29tbWVyY2UgLmNhcnQtY29sbGF0ZXJhbHMgLnJlbGF0ZWQsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLmNhcnQtY29sbGF0ZXJhbHMgLnJlbGF0ZWQge1xuICAgICAgd2lkdGg6IDMwLjc1JTtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLndvb2NvbW1lcmNlIC5jYXJ0LWNvbGxhdGVyYWxzIC5jcm9zcy1zZWxscyxcbiAgICAud29vY29tbWVyY2UtcGFnZSAuY2FydC1jb2xsYXRlcmFscyAuY3Jvc3Mtc2VsbHMge1xuICAgICAgd2lkdGg6IDQ4JTtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICAud29vY29tbWVyY2UgLmNhcnQtY29sbGF0ZXJhbHMgLmNyb3NzLXNlbGxzIHVsLnByb2R1Y3RzLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgLmNhcnQtY29sbGF0ZXJhbHMgLmNyb3NzLXNlbGxzIHVsLnByb2R1Y3RzIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7IH1cbiAgICAgICAgLndvb2NvbW1lcmNlIC5jYXJ0LWNvbGxhdGVyYWxzIC5jcm9zcy1zZWxscyB1bC5wcm9kdWN0cyBsaSxcbiAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgLmNhcnQtY29sbGF0ZXJhbHMgLmNyb3NzLXNlbGxzIHVsLnByb2R1Y3RzIGxpIHtcbiAgICAgICAgICB3aWR0aDogNDglOyB9XG4gICAgLndvb2NvbW1lcmNlIC5jYXJ0LWNvbGxhdGVyYWxzIC5zaGlwcGluZ19jYWxjdWxhdG9yLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC5jYXJ0LWNvbGxhdGVyYWxzIC5zaGlwcGluZ19jYWxjdWxhdG9yIHtcbiAgICAgIHdpZHRoOiA0OCU7XG4gICAgICAqem9vbTogMTtcbiAgICAgIGNsZWFyOiByaWdodDtcbiAgICAgIGZsb2F0OiByaWdodDsgfVxuICAgICAgLndvb2NvbW1lcmNlIC5jYXJ0LWNvbGxhdGVyYWxzIC5zaGlwcGluZ19jYWxjdWxhdG9yOjpiZWZvcmUsIC53b29jb21tZXJjZSAuY2FydC1jb2xsYXRlcmFscyAuc2hpcHBpbmdfY2FsY3VsYXRvcjo6YWZ0ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSAuY2FydC1jb2xsYXRlcmFscyAuc2hpcHBpbmdfY2FsY3VsYXRvcjo6YmVmb3JlLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgLmNhcnQtY29sbGF0ZXJhbHMgLnNoaXBwaW5nX2NhbGN1bGF0b3I6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgLndvb2NvbW1lcmNlIC5jYXJ0LWNvbGxhdGVyYWxzIC5zaGlwcGluZ19jYWxjdWxhdG9yOjphZnRlcixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIC5jYXJ0LWNvbGxhdGVyYWxzIC5zaGlwcGluZ19jYWxjdWxhdG9yOjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgICAud29vY29tbWVyY2UgLmNhcnQtY29sbGF0ZXJhbHMgLnNoaXBwaW5nX2NhbGN1bGF0b3IgLmNvbDItc2V0IC5jb2wtMSxcbiAgICAgIC53b29jb21tZXJjZSAuY2FydC1jb2xsYXRlcmFscyAuc2hpcHBpbmdfY2FsY3VsYXRvciAuY29sMi1zZXQgLmNvbC0yLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgLmNhcnQtY29sbGF0ZXJhbHMgLnNoaXBwaW5nX2NhbGN1bGF0b3IgLmNvbDItc2V0IC5jb2wtMSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIC5jYXJ0LWNvbGxhdGVyYWxzIC5zaGlwcGluZ19jYWxjdWxhdG9yIC5jb2wyLXNldCAuY29sLTIge1xuICAgICAgICB3aWR0aDogNDclOyB9XG4gICAgLndvb2NvbW1lcmNlIC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyxcbiAgICAud29vY29tbWVyY2UtcGFnZSAuY2FydC1jb2xsYXRlcmFscyAuY2FydF90b3RhbHMge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgd2lkdGg6IDQ4JTsgfVxuICAud29vY29tbWVyY2UgZm9ybSAuZm9ybS1yb3csXG4gIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93IHtcbiAgICAqem9vbTogMTsgfVxuICAgIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdzo6YmVmb3JlLCAud29vY29tbWVyY2UgZm9ybSAuZm9ybS1yb3c6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93OjpiZWZvcmUsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAuZm9ybS1yb3c6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93OjphZnRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5mb3JtLXJvdzo6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAud29vY29tbWVyY2UgZm9ybSAuZm9ybS1yb3cgbGFiZWwsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAuZm9ybS1yb3cgbGFiZWwge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdyBsYWJlbC5jaGVja2JveCxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93IGxhYmVsLmNoZWNrYm94IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lOyB9XG4gICAgLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93IHNlbGVjdCxcbiAgICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5mb3JtLXJvdyBzZWxlY3Qge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAud29vY29tbWVyY2UgZm9ybSAuZm9ybS1yb3cgLmlucHV0LXRleHQsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAuZm9ybS1yb3cgLmlucHV0LXRleHQge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdy1maXJzdCxcbiAgLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93LWxhc3QsXG4gIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93LWZpcnN0LFxuICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5mb3JtLXJvdy1sYXN0IHtcbiAgICB3aWR0aDogNDclO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdy1maXJzdCxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAuZm9ybS1yb3ctZmlyc3Qge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIC8qcnRsOnJhdzpcclxuICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAqLyB9XG4gIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdy1sYXN0LFxuICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5mb3JtLXJvdy1sYXN0IHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93LXdpZGUsXG4gIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93LXdpZGUge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC53b29jb21tZXJjZSBmb3JtIC5wYXNzd29yZC1pbnB1dCxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAucGFzc3dvcmQtaW5wdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLyogSGlkZSB0aGUgRWRnZSBcInJldmVhbCBwYXNzd29yZFwiIG5hdGl2ZSBidXR0b24gKi8gfVxuICAgIC53b29jb21tZXJjZSBmb3JtIC5wYXNzd29yZC1pbnB1dCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAucGFzc3dvcmQtaW5wdXQgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTsgfVxuICAgIC53b29jb21tZXJjZSBmb3JtIC5wYXNzd29yZC1pbnB1dCBpbnB1dDo6LW1zLXJldmVhbCxcbiAgICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5wYXNzd29yZC1pbnB1dCBpbnB1dDo6LW1zLXJldmVhbCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC53b29jb21tZXJjZSBmb3JtIC5zaG93LXBhc3N3b3JkLWlucHV0LFxuICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5zaG93LXBhc3N3b3JkLWlucHV0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDAuN2VtO1xuICAgIHRvcDogMC43ZW07XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC53b29jb21tZXJjZSBmb3JtIC5zaG93LXBhc3N3b3JkLWlucHV0OjphZnRlcixcbiAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAuc2hvdy1wYXNzd29yZC1pbnB1dDo6YWZ0ZXIge1xuICAgIGZvbnQtZmFtaWx5OiAnV29vQ29tbWVyY2UnO1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNjE4ZW07XG4gICAgY29udGVudDogXCLugJBcIjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLndvb2NvbW1lcmNlIGZvcm0gLnNob3ctcGFzc3dvcmQtaW5wdXQuZGlzcGxheS1wYXNzd29yZDo6YWZ0ZXIsXG4gIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLnNob3ctcGFzc3dvcmQtaW5wdXQuZGlzcGxheS1wYXNzd29yZDo6YWZ0ZXIge1xuICAgIGNvbG9yOiAjNTg1ODU4OyB9XG4gIC53b29jb21tZXJjZSAjcGF5bWVudCAuZm9ybS1yb3cgc2VsZWN0LFxuICAud29vY29tbWVyY2UtcGFnZSAjcGF5bWVudCAuZm9ybS1yb3cgc2VsZWN0IHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAud29vY29tbWVyY2UgI3BheW1lbnQgLndjLXRlcm1zLWFuZC1jb25kaXRpb25zLFxuICAud29vY29tbWVyY2UgI3BheW1lbnQgLnRlcm1zLFxuICAud29vY29tbWVyY2UtcGFnZSAjcGF5bWVudCAud2MtdGVybXMtYW5kLWNvbmRpdGlvbnMsXG4gIC53b29jb21tZXJjZS1wYWdlICNwYXltZW50IC50ZXJtcyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAwIDFlbSAwIDA7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLndvb2NvbW1lcmNlICNwYXltZW50ICNwbGFjZV9vcmRlcixcbiAgLndvb2NvbW1lcmNlLXBhZ2UgI3BheW1lbnQgI3BsYWNlX29yZGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1iaWxsaW5nLWZpZWxkcyxcbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1zaGlwcGluZy1maWVsZHMsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1iaWxsaW5nLWZpZWxkcyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLXNoaXBwaW5nLWZpZWxkcyB7XG4gICAgKnpvb206IDE7IH1cbiAgICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLWJpbGxpbmctZmllbGRzOjpiZWZvcmUsIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtYmlsbGluZy1maWVsZHM6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2Utc2hpcHBpbmctZmllbGRzOjpiZWZvcmUsXG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1zaGlwcGluZy1maWVsZHM6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1iaWxsaW5nLWZpZWxkczo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1iaWxsaW5nLWZpZWxkczo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLXNoaXBwaW5nLWZpZWxkczo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1zaGlwcGluZy1maWVsZHM6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1iaWxsaW5nLWZpZWxkczo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1zaGlwcGluZy1maWVsZHM6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1iaWxsaW5nLWZpZWxkczo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLXNoaXBwaW5nLWZpZWxkczo6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS10ZXJtcy1hbmQtY29uZGl0aW9ucyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLXRlcm1zLWFuZC1jb25kaXRpb25zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjYxOGVtO1xuICAgIHBhZGRpbmc6IDEuNjE4ZW07IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1vZW1iZWQsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1vZW1iZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKipcclxuICogR2VuZXJhbCBXb29Db21tZXJjZSBjb21wb25lbnRzXHJcbiAqL1xuLyoqXHJcbiAqIEhlYWRlciBjYXJ0XHJcbiAqL1xuLnNpdGUtaGVhZGVyLWNhcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuICAuc2l0ZS1oZWFkZXItY2FydCAuY2FydC1jb250ZW50cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5zaXRlLWhlYWRlci1jYXJ0IC53aWRnZXRfc2hvcHBpbmdfY2FydCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuc2l0ZS1oZWFkZXItY2FydCAucHJvZHVjdF9saXN0X3dpZGdldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAvKipcclxuICAgICAqIEhlYWRlciBjYXJ0XHJcbiAgICAgKi9cbiAgLnNpdGUtaGVhZGVyLWNhcnQgLndpZGdldF9zaG9wcGluZ19jYXJ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDk5OTk5OTtcbiAgICBsZWZ0OiAtOTk5ZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNoYWRvdzogMCAzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuICAuc2l0ZS1oZWFkZXItY2FydDpob3ZlciAud2lkZ2V0X3Nob3BwaW5nX2NhcnQsIC5zaXRlLWhlYWRlci1jYXJ0LmZvY3VzIC53aWRnZXRfc2hvcHBpbmdfY2FydCB7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi53b29jb21tZXJjZSxcbi53b29jb21tZXJjZS1wYWdlIHtcbiAgLyoqXHJcbiAgICAgICAgICogUmV2aWV3c1xyXG4gICAgICAgICAqL1xuICAvKipcclxuICAgICAqIFN0YXIgcmF0aW5nc1xyXG4gICAgICovXG4gIC8qKlxyXG5cdCAqIFBhc3N3b3JkIHN0cmVuZ3RoIG1ldGVyXHJcblx0ICovXG4gIC8qKlxyXG4gICAgICogRm9ybXNcclxuICAgICAqL1xuICAvKipcclxuICAgICAgICAgKiBGb3Jtc1xyXG4gICAgICAgICAqL1xuICAvKipcclxuICAgICAqIE5vdGljZXNcclxuICAgICAqL1xuICAvKipcclxuICAgICAgICAgKiBCdXR0b25zXHJcbiAgICAgICAgICovXG4gIC8qKlxyXG5cdCAqIE9yZGVyIHBhZ2VcclxuXHQgKi8gfVxuICAud29vY29tbWVyY2UgI3Jldmlld3MgaDIgc21hbGwsXG4gIC53b29jb21tZXJjZS1wYWdlICNyZXZpZXdzIGgyIHNtYWxsIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgY29sb3I6ICM3Njc2NzY7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIG1hcmdpbjogMTBweCAwIDA7IH1cbiAgICAud29vY29tbWVyY2UgI3Jldmlld3MgaDIgc21hbGwgYSxcbiAgICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3cyBoMiBzbWFsbCBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAjNzY3Njc2OyB9XG4gIC53b29jb21tZXJjZSAjcmV2aWV3cyBoMyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jldmlld3MgaDMge1xuICAgIG1hcmdpbjogMDsgfVxuICAud29vY29tbWVyY2UgI3Jldmlld3MgI3Jlc3BvbmQsXG4gIC53b29jb21tZXJjZS1wYWdlICNyZXZpZXdzICNyZXNwb25kIHtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLndvb2NvbW1lcmNlICNyZXZpZXdzICNjb21tZW50LFxuICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3cyAjY29tbWVudCB7XG4gICAgaGVpZ2h0OiA3NXB4OyB9XG4gIC53b29jb21tZXJjZSAjcmV2aWV3cyAjY29tbWVudHMgLmFkZF9yZXZpZXcsXG4gIC53b29jb21tZXJjZS1wYWdlICNyZXZpZXdzICNjb21tZW50cyAuYWRkX3JldmlldyB7XG4gICAgKnpvb206IDE7IH1cbiAgICAud29vY29tbWVyY2UgI3Jldmlld3MgI2NvbW1lbnRzIC5hZGRfcmV2aWV3OjpiZWZvcmUsIC53b29jb21tZXJjZSAjcmV2aWV3cyAjY29tbWVudHMgLmFkZF9yZXZpZXc6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlICNyZXZpZXdzICNjb21tZW50cyAuYWRkX3Jldmlldzo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZS1wYWdlICNyZXZpZXdzICNjb21tZW50cyAuYWRkX3Jldmlldzo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAud29vY29tbWVyY2UgI3Jldmlld3MgI2NvbW1lbnRzIC5hZGRfcmV2aWV3OjphZnRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3cyAjY29tbWVudHMgLmFkZF9yZXZpZXc6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC53b29jb21tZXJjZSAjcmV2aWV3cyAjY29tbWVudHMgaDIsXG4gIC53b29jb21tZXJjZS1wYWdlICNyZXZpZXdzICNjb21tZW50cyBoMiB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLndvb2NvbW1lcmNlICNyZXZpZXdzICNjb21tZW50cyBvbC5jb21tZW50bGlzdCxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jldmlld3MgI2NvbW1lbnRzIG9sLmNvbW1lbnRsaXN0IHtcbiAgICAqem9vbTogMTtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gICAgLndvb2NvbW1lcmNlICNyZXZpZXdzICNjb21tZW50cyBvbC5jb21tZW50bGlzdDo6YmVmb3JlLCAud29vY29tbWVyY2UgI3Jldmlld3MgI2NvbW1lbnRzIG9sLmNvbW1lbnRsaXN0OjphZnRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3cyAjY29tbWVudHMgb2wuY29tbWVudGxpc3Q6OmJlZm9yZSxcbiAgICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3cyAjY29tbWVudHMgb2wuY29tbWVudGxpc3Q6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLndvb2NvbW1lcmNlICNyZXZpZXdzICNjb21tZW50cyBvbC5jb21tZW50bGlzdDo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jldmlld3MgI2NvbW1lbnRzIG9sLmNvbW1lbnRsaXN0OjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC53b29jb21tZXJjZSAjcmV2aWV3cyAjY29tbWVudHMgb2wuY29tbWVudGxpc3QgbGksXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jldmlld3MgI2NvbW1lbnRzIG9sLmNvbW1lbnRsaXN0IGxpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDAgMCAyMHB4O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZDogMDtcbiAgICAgIGJvcmRlcjogMDsgfVxuICAgICAgLndvb2NvbW1lcmNlICNyZXZpZXdzICNjb21tZW50cyBvbC5jb21tZW50bGlzdCBsaSAubWV0YSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlICNyZXZpZXdzICNjb21tZW50cyBvbC5jb21tZW50bGlzdCBsaSAubWV0YSB7XG4gICAgICAgIGNvbG9yOiAjNzY3Njc2O1xuICAgICAgICBmb250LXNpemU6IDAuNzVlbTsgfVxuICAgICAgLndvb2NvbW1lcmNlICNyZXZpZXdzICNjb21tZW50cyBvbC5jb21tZW50bGlzdCBsaSBpbWcuYXZhdGFyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jldmlld3MgI2NvbW1lbnRzIG9sLmNvbW1lbnRsaXN0IGxpIGltZy5hdmF0YXIge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZDogI2ViZTllYjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U0ZTFlMztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgICAud29vY29tbWVyY2UgI3Jldmlld3MgI2NvbW1lbnRzIG9sLmNvbW1lbnRsaXN0IGxpIC5jb21tZW50LXRleHQsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3cyAjY29tbWVudHMgb2wuY29tbWVudGxpc3QgbGkgLmNvbW1lbnQtdGV4dCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgNTBweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U0ZTFlMztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBwYWRkaW5nOiAxZW0gMWVtIDA7XG4gICAgICAgICp6b29tOiAxOyB9XG4gICAgICAgIC53b29jb21tZXJjZSAjcmV2aWV3cyAjY29tbWVudHMgb2wuY29tbWVudGxpc3QgbGkgLmNvbW1lbnQtdGV4dDo6YmVmb3JlLCAud29vY29tbWVyY2UgI3Jldmlld3MgI2NvbW1lbnRzIG9sLmNvbW1lbnRsaXN0IGxpIC5jb21tZW50LXRleHQ6OmFmdGVyLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3cyAjY29tbWVudHMgb2wuY29tbWVudGxpc3QgbGkgLmNvbW1lbnQtdGV4dDo6YmVmb3JlLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3cyAjY29tbWVudHMgb2wuY29tbWVudGxpc3QgbGkgLmNvbW1lbnQtdGV4dDo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgICAgICAud29vY29tbWVyY2UgI3Jldmlld3MgI2NvbW1lbnRzIG9sLmNvbW1lbnRsaXN0IGxpIC5jb21tZW50LXRleHQ6OmFmdGVyLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3cyAjY29tbWVudHMgb2wuY29tbWVudGxpc3QgbGkgLmNvbW1lbnQtdGV4dDo6YWZ0ZXIge1xuICAgICAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgICAgIC53b29jb21tZXJjZSAjcmV2aWV3cyAjY29tbWVudHMgb2wuY29tbWVudGxpc3QgbGkgLmNvbW1lbnQtdGV4dCBwLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3cyAjY29tbWVudHMgb2wuY29tbWVudGxpc3QgbGkgLmNvbW1lbnQtdGV4dCBwIHtcbiAgICAgICAgICBtYXJnaW46IDAgMCAxZW07IH1cbiAgICAgICAgLndvb2NvbW1lcmNlICNyZXZpZXdzICNjb21tZW50cyBvbC5jb21tZW50bGlzdCBsaSAuY29tbWVudC10ZXh0IHAubWV0YSxcbiAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jldmlld3MgI2NvbW1lbnRzIG9sLmNvbW1lbnRsaXN0IGxpIC5jb21tZW50LXRleHQgcC5tZXRhIHtcbiAgICAgICAgICBmb250LXNpemU6IDAuODNlbTsgfVxuICAgIC53b29jb21tZXJjZSAjcmV2aWV3cyAjY29tbWVudHMgb2wuY29tbWVudGxpc3QgdWwuY2hpbGRyZW4sXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jldmlld3MgI2NvbW1lbnRzIG9sLmNvbW1lbnRsaXN0IHVsLmNoaWxkcmVuIHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcbiAgICAgIG1hcmdpbjogMjBweCAwIDAgNTBweDsgfVxuICAgICAgLndvb2NvbW1lcmNlICNyZXZpZXdzICNjb21tZW50cyBvbC5jb21tZW50bGlzdCB1bC5jaGlsZHJlbiAuc3Rhci1yYXRpbmcsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3cyAjY29tbWVudHMgb2wuY29tbWVudGxpc3QgdWwuY2hpbGRyZW4gLnN0YXItcmF0aW5nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC53b29jb21tZXJjZSAjcmV2aWV3cyAjY29tbWVudHMgb2wuY29tbWVudGxpc3QgI3Jlc3BvbmQsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jldmlld3MgI2NvbW1lbnRzIG9sLmNvbW1lbnRsaXN0ICNyZXNwb25kIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNGUxZTM7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBwYWRkaW5nOiAxZW0gMWVtIDA7XG4gICAgICBtYXJnaW46IDIwcHggMCAwIDUwcHg7IH1cbiAgLndvb2NvbW1lcmNlICNyZXZpZXdzICNjb21tZW50cyAuY29tbWVudGxpc3QgPiBsaTo6YmVmb3JlLFxuICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3cyAjY29tbWVudHMgLmNvbW1lbnRsaXN0ID4gbGk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAud29vY29tbWVyY2UgLnN0YXItcmF0aW5nLFxuICAud29vY29tbWVyY2UtcGFnZSAuc3Rhci1yYXRpbmcge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICB3aWR0aDogNS40ZW07XG4gICAgZm9udC1mYW1pbHk6IFwic3RhclwiOyB9XG4gICAgLndvb2NvbW1lcmNlIC5zdGFyLXJhdGluZzo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC5zdGFyLXJhdGluZzo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFw3M1xcNzNcXDczXFw3M1xcNzNcIjtcbiAgICAgIGNvbG9yOiAjZDNjZWQyO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgLndvb2NvbW1lcmNlIC5zdGFyLXJhdGluZyBzcGFuLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC5zdGFyLXJhdGluZyBzcGFuIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBwYWRkaW5nLXRvcDogMS41ZW07IH1cbiAgICAud29vY29tbWVyY2UgLnN0YXItcmF0aW5nIHNwYW46OmJlZm9yZSxcbiAgICAud29vY29tbWVyY2UtcGFnZSAuc3Rhci1yYXRpbmcgc3Bhbjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFw1M1xcNTNcXDUzXFw1M1xcNTNcIjtcbiAgICAgIHRvcDogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1wcm9kdWN0LXJhdGluZyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLXByb2R1Y3QtcmF0aW5nIHtcbiAgICAqem9vbTogMTtcbiAgICBsaW5lLWhlaWdodDogMjtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtcHJvZHVjdC1yYXRpbmc6OmJlZm9yZSwgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1wcm9kdWN0LXJhdGluZzo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLXByb2R1Y3QtcmF0aW5nOjpiZWZvcmUsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLXByb2R1Y3QtcmF0aW5nOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtcHJvZHVjdC1yYXRpbmc6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1wcm9kdWN0LXJhdGluZzo6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLXByb2R1Y3QtcmF0aW5nIC5zdGFyLXJhdGluZyxcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtcHJvZHVjdC1yYXRpbmcgLnN0YXItcmF0aW5nIHtcbiAgICAgIG1hcmdpbjogMC41ZW0gNHB4IDAgMDtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC53b29jb21tZXJjZSAucHJvZHVjdHMgLnN0YXItcmF0aW5nLFxuICAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgLnN0YXItcmF0aW5nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgMCAwLjVlbTtcbiAgICBmbG9hdDogbm9uZTsgfVxuICAud29vY29tbWVyY2UgLmhyZXZpZXctYWdncmVnYXRlIC5zdGFyLXJhdGluZyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLmhyZXZpZXctYWdncmVnYXRlIC5zdGFyLXJhdGluZyB7XG4gICAgbWFyZ2luOiAxMHB4IDAgMDsgfVxuICAud29vY29tbWVyY2UgI3Jldmlld19mb3JtICNyZXNwb25kLFxuICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3X2Zvcm0gI3Jlc3BvbmQge1xuICAgICp6b29tOiAxO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm9uZTtcbiAgICBib3JkZXI6IDA7IH1cbiAgICAud29vY29tbWVyY2UgI3Jldmlld19mb3JtICNyZXNwb25kOjpiZWZvcmUsIC53b29jb21tZXJjZSAjcmV2aWV3X2Zvcm0gI3Jlc3BvbmQ6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlICNyZXZpZXdfZm9ybSAjcmVzcG9uZDo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZS1wYWdlICNyZXZpZXdfZm9ybSAjcmVzcG9uZDo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAud29vY29tbWVyY2UgI3Jldmlld19mb3JtICNyZXNwb25kOjphZnRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3X2Zvcm0gI3Jlc3BvbmQ6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLndvb2NvbW1lcmNlICNyZXZpZXdfZm9ybSAjcmVzcG9uZCBwLFxuICAgIC53b29jb21tZXJjZS1wYWdlICNyZXZpZXdfZm9ybSAjcmVzcG9uZCBwIHtcbiAgICAgIG1hcmdpbjogMCAwIDEwcHg7IH1cbiAgICAud29vY29tbWVyY2UgI3Jldmlld19mb3JtICNyZXNwb25kIC5mb3JtLXN1Ym1pdCBpbnB1dCxcbiAgICAud29vY29tbWVyY2UtcGFnZSAjcmV2aWV3X2Zvcm0gI3Jlc3BvbmQgLmZvcm0tc3VibWl0IGlucHV0IHtcbiAgICAgIGxlZnQ6IGF1dG87IH1cbiAgICAud29vY29tbWVyY2UgI3Jldmlld19mb3JtICNyZXNwb25kIHRleHRhcmVhLFxuICAgIC53b29jb21tZXJjZS1wYWdlICNyZXZpZXdfZm9ybSAjcmVzcG9uZCB0ZXh0YXJlYSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLndvb2NvbW1lcmNlIHAuc3RhcnMgYSxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgcC5zdGFycyBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxZW07XG4gICAgd2lkdGg6IDFlbTtcbiAgICB0ZXh0LWluZGVudDogLTk5OWVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAud29vY29tbWVyY2UgcC5zdGFycyBhOjpiZWZvcmUsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgcC5zdGFycyBhOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDFlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBmb250LWZhbWlseTogXCJXb29Db21tZXJjZVwiO1xuICAgICAgY29udGVudDogXCJcXGUwMjFcIjtcbiAgICAgIHRleHQtaW5kZW50OiAwOyB9XG4gICAgLndvb2NvbW1lcmNlIHAuc3RhcnMgYTpob3ZlciB+IGE6OmJlZm9yZSxcbiAgICAud29vY29tbWVyY2UtcGFnZSBwLnN0YXJzIGE6aG92ZXIgfiBhOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGUwMjFcIjsgfVxuICAud29vY29tbWVyY2UgcC5zdGFyczpob3ZlciBhOjpiZWZvcmUsXG4gIC53b29jb21tZXJjZS1wYWdlIHAuc3RhcnM6aG92ZXIgYTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTAyMFwiOyB9XG4gIC53b29jb21tZXJjZSBwLnN0YXJzLnNlbGVjdGVkIGEuYWN0aXZlOjpiZWZvcmUsXG4gIC53b29jb21tZXJjZS1wYWdlIHAuc3RhcnMuc2VsZWN0ZWQgYS5hY3RpdmU6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGUwMjBcIjsgfVxuICAud29vY29tbWVyY2UgcC5zdGFycy5zZWxlY3RlZCBhLmFjdGl2ZSB+IGE6OmJlZm9yZSxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgcC5zdGFycy5zZWxlY3RlZCBhLmFjdGl2ZSB+IGE6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGUwMjFcIjsgfVxuICAud29vY29tbWVyY2UgcC5zdGFycy5zZWxlY3RlZCBhOm5vdCguYWN0aXZlKTo6YmVmb3JlLFxuICAud29vY29tbWVyY2UtcGFnZSBwLnN0YXJzLnNlbGVjdGVkIGE6bm90KC5hY3RpdmUpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlMDIwXCI7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1wYXNzd29yZC1zdHJlbmd0aCxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLXBhc3N3b3JkLXN0cmVuZ3RoIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiAzcHggMC41ZW07XG4gICAgZm9udC1zaXplOiAxZW07IH1cbiAgICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLXBhc3N3b3JkLXN0cmVuZ3RoLnN0cm9uZyxcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtcGFzc3dvcmQtc3RyZW5ndGguc3Ryb25nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMWUxYjk7XG4gICAgICBib3JkZXItY29sb3I6ICM4M2MzNzM7IH1cbiAgICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLXBhc3N3b3JkLXN0cmVuZ3RoLnNob3J0LFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1wYXNzd29yZC1zdHJlbmd0aC5zaG9ydCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFhZGFkO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZTM1YjViOyB9XG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1wYXNzd29yZC1zdHJlbmd0aC5iYWQsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLXBhc3N3b3JkLXN0cmVuZ3RoLmJhZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmJjNWE5O1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZjc4YjUzOyB9XG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1wYXNzd29yZC1zdHJlbmd0aC5nb29kLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1wYXNzd29yZC1zdHJlbmd0aC5nb29kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmUzOTk7XG4gICAgICBib3JkZXItY29sb3I6ICNmZmM3MzM7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1wYXNzd29yZC1oaW50LFxuICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtcGFzc3dvcmQtaGludCB7XG4gICAgbWFyZ2luOiAwLjVlbSAwIDA7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLndvb2NvbW1lcmNlIC5mb3JtLXJvdy53b29jb21tZXJjZS12YWxpZGF0ZWQgaW5wdXQuaW5wdXQtdGV4dCxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLmZvcm0tcm93Lndvb2NvbW1lcmNlLXZhbGlkYXRlZCBpbnB1dC5pbnB1dC10ZXh0IHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAycHggMCAwICMwZjgzNGQ7IH1cbiAgLndvb2NvbW1lcmNlIC5mb3JtLXJvdy53b29jb21tZXJjZS1pbnZhbGlkIGlucHV0LmlucHV0LXRleHQsXG4gIC53b29jb21tZXJjZS1wYWdlIC5mb3JtLXJvdy53b29jb21tZXJjZS1pbnZhbGlkIGlucHV0LmlucHV0LXRleHQge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDJweCAwIDAgI2UyNDAxYzsgfVxuICAud29vY29tbWVyY2UgLnJlcXVpcmVkLFxuICAud29vY29tbWVyY2UtcGFnZSAucmVxdWlyZWQge1xuICAgIGNvbG9yOiAjZjAwOyB9XG4gIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAuZm9ybS1yb3cge1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICBtYXJnaW46IDAgMCA2cHg7IH1cbiAgICAud29vY29tbWVyY2UgZm9ybSAuZm9ybS1yb3cgW3BsYWNlaG9sZGVyXTpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5mb3JtLXJvdyBbcGxhY2Vob2xkZXJdOmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyAwLjVzIGVhc2U7XG4gICAgICBvcGFjaXR5OiAwOyB9XG4gICAgLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93IGxhYmVsLFxuICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93IGxhYmVsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyOyB9XG4gICAgLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93IGxhYmVsLmhpZGRlbixcbiAgICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5mb3JtLXJvdyBsYWJlbC5oaWRkZW4ge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93IGxhYmVsLmlubGluZSxcbiAgICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5mb3JtLXJvdyBsYWJlbC5pbmxpbmUge1xuICAgICAgZGlzcGxheTogaW5saW5lOyB9XG4gICAgLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93IC53b29jb21tZXJjZS1pbnB1dC13cmFwcGVyIC5kZXNjcmlwdGlvbixcbiAgICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5mb3JtLXJvdyAud29vY29tbWVyY2UtaW5wdXQtd3JhcHBlciAuZGVzY3JpcHRpb24ge1xuICAgICAgYmFja2dyb3VuZDogIzFlODViZTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgcGFkZGluZzogMWVtO1xuICAgICAgbWFyZ2luOiAwLjVlbSAwIDA7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdyAud29vY29tbWVyY2UtaW5wdXQtd3JhcHBlciAuZGVzY3JpcHRpb24gYSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93IC53b29jb21tZXJjZS1pbnB1dC13cmFwcGVyIC5kZXNjcmlwdGlvbiBhIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAgIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdyAud29vY29tbWVyY2UtaW5wdXQtd3JhcHBlciAuZGVzY3JpcHRpb246OmJlZm9yZSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93IC53b29jb21tZXJjZS1pbnB1dC13cmFwcGVyIC5kZXNjcmlwdGlvbjo6YmVmb3JlIHtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiA0cHggNnB4IDAgNnB4O1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItY29sb3I6ICMxZTg1YmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAud29vY29tbWVyY2UgZm9ybSAuZm9ybS1yb3cgc2VsZWN0LFxuICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93IHNlbGVjdCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAud29vY29tbWVyY2UgZm9ybSAuZm9ybS1yb3cgLnJlcXVpcmVkLFxuICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93IC5yZXF1aXJlZCB7XG4gICAgICBjb2xvcjogcmVkO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93IC5vcHRpb25hbCxcbiAgICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5mb3JtLXJvdyAub3B0aW9uYWwge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdyAuaW5wdXQtY2hlY2tib3gsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAuZm9ybS1yb3cgLmlucHV0LWNoZWNrYm94IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIG1hcmdpbjogLTJweCA4cHggMCAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdyBpbnB1dC5pbnB1dC10ZXh0LFxuICAgIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdyB0ZXh0YXJlYSxcbiAgICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5mb3JtLXJvdyBpbnB1dC5pbnB1dC10ZXh0LFxuICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93IHRleHRhcmVhIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93IHRleHRhcmVhLFxuICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93IHRleHRhcmVhIHtcbiAgICAgIGhlaWdodDogNGVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdyAuc2VsZWN0Mi1jb250YWluZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAuZm9ybS1yb3cgLnNlbGVjdDItY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbGluZS1oZWlnaHQ6IDJlbTsgfVxuICAgIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdy53b29jb21tZXJjZS1pbnZhbGlkIGxhYmVsLFxuICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93Lndvb2NvbW1lcmNlLWludmFsaWQgbGFiZWwge1xuICAgICAgY29sb3I6ICNhMDA7IH1cbiAgICAud29vY29tbWVyY2UgZm9ybSAuZm9ybS1yb3cud29vY29tbWVyY2UtaW52YWxpZCAuc2VsZWN0Mi1jb250YWluZXIsXG4gICAgLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93Lndvb2NvbW1lcmNlLWludmFsaWQgaW5wdXQuaW5wdXQtdGV4dCxcbiAgICAud29vY29tbWVyY2UgZm9ybSAuZm9ybS1yb3cud29vY29tbWVyY2UtaW52YWxpZCBzZWxlY3QsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAuZm9ybS1yb3cud29vY29tbWVyY2UtaW52YWxpZCAuc2VsZWN0Mi1jb250YWluZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAuZm9ybS1yb3cud29vY29tbWVyY2UtaW52YWxpZCBpbnB1dC5pbnB1dC10ZXh0LFxuICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93Lndvb2NvbW1lcmNlLWludmFsaWQgc2VsZWN0IHtcbiAgICAgIGJvcmRlci1jb2xvcjogI2EwMDsgfVxuICAgIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdy53b29jb21tZXJjZS12YWxpZGF0ZWQgLnNlbGVjdDItY29udGFpbmVyLFxuICAgIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdy53b29jb21tZXJjZS12YWxpZGF0ZWQgaW5wdXQuaW5wdXQtdGV4dCxcbiAgICAud29vY29tbWVyY2UgZm9ybSAuZm9ybS1yb3cud29vY29tbWVyY2UtdmFsaWRhdGVkIHNlbGVjdCxcbiAgICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5mb3JtLXJvdy53b29jb21tZXJjZS12YWxpZGF0ZWQgLnNlbGVjdDItY29udGFpbmVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93Lndvb2NvbW1lcmNlLXZhbGlkYXRlZCBpbnB1dC5pbnB1dC10ZXh0LFxuICAgIC53b29jb21tZXJjZS1wYWdlIGZvcm0gLmZvcm0tcm93Lndvb2NvbW1lcmNlLXZhbGlkYXRlZCBzZWxlY3Qge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMGNiMTg1OyB9XG4gICAgLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93IDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5mb3JtLXJvdyA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC53b29jb21tZXJjZSBmb3JtIC5mb3JtLXJvdyA6LW1vei1wbGFjZWhvbGRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSBmb3JtIC5mb3JtLXJvdyA6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgLndvb2NvbW1lcmNlIGZvcm0gLmZvcm0tcm93IDotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybSAuZm9ybS1yb3cgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gIC53b29jb21tZXJjZSBmb3JtLmxvZ2luLFxuICAud29vY29tbWVyY2UgZm9ybS5jaGVja291dF9jb3Vwb24sXG4gIC53b29jb21tZXJjZSBmb3JtLnJlZ2lzdGVyLFxuICAud29vY29tbWVyY2UtcGFnZSBmb3JtLmxvZ2luLFxuICAud29vY29tbWVyY2UtcGFnZSBmb3JtLmNoZWNrb3V0X2NvdXBvbixcbiAgLndvb2NvbW1lcmNlLXBhZ2UgZm9ybS5yZWdpc3RlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2QzY2VkMjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIG1hcmdpbjogMmVtIDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7IH1cbiAgLndvb2NvbW1lcmNlIHVsI3NoaXBwaW5nX21ldGhvZCxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgdWwjc2hpcHBpbmdfbWV0aG9kIHtcbiAgICBsaXN0LXN0eWxlOiBub25lIG91dHNpZGU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAud29vY29tbWVyY2UgdWwjc2hpcHBpbmdfbWV0aG9kIGxpLFxuICAgIC53b29jb21tZXJjZS1wYWdlIHVsI3NoaXBwaW5nX21ldGhvZCBsaSB7XG4gICAgICBtYXJnaW46IDAgMCAwLjVlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTsgfVxuICAgICAgLndvb2NvbW1lcmNlIHVsI3NoaXBwaW5nX21ldGhvZCBsaSBpbnB1dCxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsI3NoaXBwaW5nX21ldGhvZCBsaSBpbnB1dCB7XG4gICAgICAgIG1hcmdpbjogM3B4IDAuNDM3NWVtIDAgMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAgICAgLndvb2NvbW1lcmNlIHVsI3NoaXBwaW5nX21ldGhvZCBsaSBsYWJlbCxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsI3NoaXBwaW5nX21ldGhvZCBsaSBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAgIC53b29jb21tZXJjZSB1bCNzaGlwcGluZ19tZXRob2QgLmFtb3VudCxcbiAgICAud29vY29tbWVyY2UtcGFnZSB1bCNzaGlwcGluZ19tZXRob2QgLmFtb3VudCB7XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC53b29jb21tZXJjZSBwLndvb2NvbW1lcmNlLXNoaXBwaW5nLWNvbnRlbnRzLFxuICAud29vY29tbWVyY2UtcGFnZSBwLndvb2NvbW1lcmNlLXNoaXBwaW5nLWNvbnRlbnRzIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1tZXNzYWdlLFxuICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLWluZm8sXG4gIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtZXJyb3IsXG4gIC53b29jb21tZXJjZSAud29vY29tbWVyY2Utbm9yZXZpZXdzLFxuICAud29vY29tbWVyY2UgcC5uby1jb21tZW50cyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLW1lc3NhZ2UsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1pbmZvLFxuICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtZXJyb3IsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1ub3Jldmlld3MsXG4gIC53b29jb21tZXJjZS1wYWdlIHAubm8tY29tbWVudHMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjgzNGQ7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1pbmZvLFxuICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLW5vcmV2aWV3cyxcbiAgLndvb2NvbW1lcmNlIHAubm8tY29tbWVudHMsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1pbmZvLFxuICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2Utbm9yZXZpZXdzLFxuICAud29vY29tbWVyY2UtcGFnZSBwLm5vLWNvbW1lbnRzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q5Y2QyOyB9XG4gIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtZXJyb3IsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1lcnJvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UyNDAxYzsgfVxuICAud29vY29tbWVyY2UgLmRlbW9fc3RvcmUsXG4gIC53b29jb21tZXJjZS1wYWdlIC5kZW1vX3N0b3JlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q5Y2QyO1xuICAgIHotaW5kZXg6IDk5OTk7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1icmVhZGNydW1iLFxuICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtYnJlYWRjcnVtYiB7XG4gICAgKnpvb206IDE7XG4gICAgbWFyZ2luOiAwIDAgMWVtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiAwLjkyZW07XG4gICAgY29sb3I6ICM3Njc2NzY7IH1cbiAgICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLWJyZWFkY3J1bWI6OmJlZm9yZSwgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1icmVhZGNydW1iOjphZnRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtYnJlYWRjcnVtYjo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1icmVhZGNydW1iOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtYnJlYWRjcnVtYjo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLWJyZWFkY3J1bWI6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1icmVhZGNydW1iIGEsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLWJyZWFkY3J1bWIgYSB7XG4gICAgICBjb2xvcjogIzc2NzY3NjsgfVxuICAud29vY29tbWVyY2UgLmJsb2NrVUkuYmxvY2tPdmVybGF5LFxuICAud29vY29tbWVyY2UtcGFnZSAuYmxvY2tVSS5ibG9ja092ZXJsYXkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC53b29jb21tZXJjZSAuYmxvY2tVSS5ibG9ja092ZXJsYXk6OmJlZm9yZSxcbiAgICAud29vY29tbWVyY2UtcGFnZSAuYmxvY2tVSS5ibG9ja092ZXJsYXk6OmJlZm9yZSB7XG4gICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgIHdpZHRoOiAxZW07XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVlbTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2xvYWRlci5zdmdcIikgY2VudGVyIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43NSk7IH1cbiAgLndvb2NvbW1lcmNlIC5sb2FkZXI6OmJlZm9yZSxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLmxvYWRlcjo6YmVmb3JlIHtcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICB3aWR0aDogMWVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgICBtYXJnaW4tdG9wOiAtMC41ZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYW5pbWF0aW9uOiBzcGluIDFzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9sb2FkZXIuc3ZnXCIpIGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43NSk7IH1cbiAgLndvb2NvbW1lcmNlIGEucmVtb3ZlLFxuICAud29vY29tbWVyY2UtcGFnZSBhLnJlbW92ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICB3aWR0aDogMC4xZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgY29sb3I6ICNmZjcyNzIgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBib3JkZXI6IDA7IH1cbiAgICAud29vY29tbWVyY2UgYS5yZW1vdmU6aG92ZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgYS5yZW1vdmU6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZjcyNzI7IH1cbiAgLndvb2NvbW1lcmNlIHNtYWxsLm5vdGUsXG4gIC53b29jb21tZXJjZS1wYWdlIHNtYWxsLm5vdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjNzY3Njc2O1xuICAgIGZvbnQtc2l6ZTogMC44NTdlbTtcbiAgICBtYXJnaW4tdG9wOiAxMHB4OyB9XG4gIC53b29jb21tZXJjZSAucXVhbnRpdHkgLnF0eSxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLnF1YW50aXR5IC5xdHkge1xuICAgIHdpZHRoOiAzLjYzMWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAud29vY29tbWVyY2UgYS5idXR0b24sXG4gIC53b29jb21tZXJjZSBidXR0b24uYnV0dG9uLFxuICAud29vY29tbWVyY2UgaW5wdXQuYnV0dG9uLFxuICAud29vY29tbWVyY2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LFxuICAud29vY29tbWVyY2UtcGFnZSBhLmJ1dHRvbixcbiAgLndvb2NvbW1lcmNlLXBhZ2UgYnV0dG9uLmJ1dHRvbixcbiAgLndvb2NvbW1lcmNlLXBhZ2UgaW5wdXQuYnV0dG9uLFxuICAud29vY29tbWVyY2UtcGFnZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQge1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcGFkZGluZzogMC42MThlbSAxZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgbGVmdDogYXV0bztcbiAgICBjb2xvcjogIzUxNTE1MTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlOWViO1xuICAgIGJvcmRlcjogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRleHQtc2hhZG93OiBub25lOyB9XG4gICAgLndvb2NvbW1lcmNlIGEuYnV0dG9uLmxvYWRpbmcsXG4gICAgLndvb2NvbW1lcmNlIGJ1dHRvbi5idXR0b24ubG9hZGluZyxcbiAgICAud29vY29tbWVyY2UgaW5wdXQuYnV0dG9uLmxvYWRpbmcsXG4gICAgLndvb2NvbW1lcmNlICNyZXNwb25kIGlucHV0I3N1Ym1pdC5sb2FkaW5nLFxuICAgIC53b29jb21tZXJjZS1wYWdlIGEuYnV0dG9uLmxvYWRpbmcsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgYnV0dG9uLmJ1dHRvbi5sb2FkaW5nLFxuICAgIC53b29jb21tZXJjZS1wYWdlIGlucHV0LmJ1dHRvbi5sb2FkaW5nLFxuICAgIC53b29jb21tZXJjZS1wYWdlICNyZXNwb25kIGlucHV0I3N1Ym1pdC5sb2FkaW5nIHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyLjYxOGVtOyB9XG4gICAgICAud29vY29tbWVyY2UgYS5idXR0b24ubG9hZGluZzo6YWZ0ZXIsXG4gICAgICAud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbi5sb2FkaW5nOjphZnRlcixcbiAgICAgIC53b29jb21tZXJjZSBpbnB1dC5idXR0b24ubG9hZGluZzo6YWZ0ZXIsXG4gICAgICAud29vY29tbWVyY2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LmxvYWRpbmc6OmFmdGVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgYS5idXR0b24ubG9hZGluZzo6YWZ0ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSBidXR0b24uYnV0dG9uLmxvYWRpbmc6OmFmdGVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgaW5wdXQuYnV0dG9uLmxvYWRpbmc6OmFmdGVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LmxvYWRpbmc6OmFmdGVyIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiV29vQ29tbWVyY2VcIjtcbiAgICAgICAgY29udGVudDogXCJcXGUwMWNcIjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDAuNjE4ZW07XG4gICAgICAgIHJpZ2h0OiAxZW07XG4gICAgICAgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7IH1cbiAgICAud29vY29tbWVyY2UgYS5idXR0b24uYWRkZWQ6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZSBidXR0b24uYnV0dG9uLmFkZGVkOjphZnRlcixcbiAgICAud29vY29tbWVyY2UgaW5wdXQuYnV0dG9uLmFkZGVkOjphZnRlcixcbiAgICAud29vY29tbWVyY2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LmFkZGVkOjphZnRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSBhLmJ1dHRvbi5hZGRlZDo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgYnV0dG9uLmJ1dHRvbi5hZGRlZDo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgaW5wdXQuYnV0dG9uLmFkZGVkOjphZnRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQuYWRkZWQ6OmFmdGVyIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIldvb0NvbW1lcmNlXCI7XG4gICAgICBjb250ZW50OiBcIlxcZTAxN1wiO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNTNlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207IH1cbiAgICAud29vY29tbWVyY2UgYS5idXR0b246aG92ZXIsXG4gICAgLndvb2NvbW1lcmNlIGJ1dHRvbi5idXR0b246aG92ZXIsXG4gICAgLndvb2NvbW1lcmNlIGlucHV0LmJ1dHRvbjpob3ZlcixcbiAgICAud29vY29tbWVyY2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0OmhvdmVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlIGEuYnV0dG9uOmhvdmVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlIGJ1dHRvbi5idXR0b246aG92ZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgaW5wdXQuYnV0dG9uOmhvdmVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlICNyZXNwb25kIGlucHV0I3N1Ym1pdDpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkY2RlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIGNvbG9yOiAjNTE1MTUxOyB9XG4gICAgLndvb2NvbW1lcmNlIGEuYnV0dG9uLmFsdCxcbiAgICAud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbi5hbHQsXG4gICAgLndvb2NvbW1lcmNlIGlucHV0LmJ1dHRvbi5hbHQsXG4gICAgLndvb2NvbW1lcmNlICNyZXNwb25kIGlucHV0I3N1Ym1pdC5hbHQsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgYS5idXR0b24uYWx0LFxuICAgIC53b29jb21tZXJjZS1wYWdlIGJ1dHRvbi5idXR0b24uYWx0LFxuICAgIC53b29jb21tZXJjZS1wYWdlIGlucHV0LmJ1dHRvbi5hbHQsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LmFsdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTQ2NDk3O1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IH1cbiAgICAgIC53b29jb21tZXJjZSBhLmJ1dHRvbi5hbHQ6aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbi5hbHQ6aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UgaW5wdXQuYnV0dG9uLmFsdDpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQuYWx0OmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgYS5idXR0b24uYWx0OmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgYnV0dG9uLmJ1dHRvbi5hbHQ6aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSBpbnB1dC5idXR0b24uYWx0OmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LmFsdDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5NjU4OGE7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgICAgLndvb2NvbW1lcmNlIGEuYnV0dG9uLmFsdC5kaXNhYmxlZCwgLndvb2NvbW1lcmNlIGEuYnV0dG9uLmFsdDpkaXNhYmxlZCwgLndvb2NvbW1lcmNlIGEuYnV0dG9uLmFsdDpkaXNhYmxlZFtkaXNhYmxlZF0sIC53b29jb21tZXJjZSBhLmJ1dHRvbi5hbHQuZGlzYWJsZWQ6aG92ZXIsIC53b29jb21tZXJjZSBhLmJ1dHRvbi5hbHQ6ZGlzYWJsZWQ6aG92ZXIsIC53b29jb21tZXJjZSBhLmJ1dHRvbi5hbHQ6ZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlIGJ1dHRvbi5idXR0b24uYWx0LmRpc2FibGVkLFxuICAgICAgLndvb2NvbW1lcmNlIGJ1dHRvbi5idXR0b24uYWx0OmRpc2FibGVkLFxuICAgICAgLndvb2NvbW1lcmNlIGJ1dHRvbi5idXR0b24uYWx0OmRpc2FibGVkW2Rpc2FibGVkXSxcbiAgICAgIC53b29jb21tZXJjZSBidXR0b24uYnV0dG9uLmFsdC5kaXNhYmxlZDpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZSBidXR0b24uYnV0dG9uLmFsdDpkaXNhYmxlZDpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZSBidXR0b24uYnV0dG9uLmFsdDpkaXNhYmxlZFtkaXNhYmxlZF06aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UgaW5wdXQuYnV0dG9uLmFsdC5kaXNhYmxlZCxcbiAgICAgIC53b29jb21tZXJjZSBpbnB1dC5idXR0b24uYWx0OmRpc2FibGVkLFxuICAgICAgLndvb2NvbW1lcmNlIGlucHV0LmJ1dHRvbi5hbHQ6ZGlzYWJsZWRbZGlzYWJsZWRdLFxuICAgICAgLndvb2NvbW1lcmNlIGlucHV0LmJ1dHRvbi5hbHQuZGlzYWJsZWQ6aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UgaW5wdXQuYnV0dG9uLmFsdDpkaXNhYmxlZDpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZSBpbnB1dC5idXR0b24uYWx0OmRpc2FibGVkW2Rpc2FibGVkXTpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQuYWx0LmRpc2FibGVkLFxuICAgICAgLndvb2NvbW1lcmNlICNyZXNwb25kIGlucHV0I3N1Ym1pdC5hbHQ6ZGlzYWJsZWQsXG4gICAgICAud29vY29tbWVyY2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LmFsdDpkaXNhYmxlZFtkaXNhYmxlZF0sXG4gICAgICAud29vY29tbWVyY2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LmFsdC5kaXNhYmxlZDpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQuYWx0OmRpc2FibGVkOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlICNyZXNwb25kIGlucHV0I3N1Ym1pdC5hbHQ6ZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgYS5idXR0b24uYWx0LmRpc2FibGVkLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgYS5idXR0b24uYWx0OmRpc2FibGVkLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgYS5idXR0b24uYWx0OmRpc2FibGVkW2Rpc2FibGVkXSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIGEuYnV0dG9uLmFsdC5kaXNhYmxlZDpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIGEuYnV0dG9uLmFsdDpkaXNhYmxlZDpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIGEuYnV0dG9uLmFsdDpkaXNhYmxlZFtkaXNhYmxlZF06aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSBidXR0b24uYnV0dG9uLmFsdC5kaXNhYmxlZCxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIGJ1dHRvbi5idXR0b24uYWx0OmRpc2FibGVkLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgYnV0dG9uLmJ1dHRvbi5hbHQ6ZGlzYWJsZWRbZGlzYWJsZWRdLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgYnV0dG9uLmJ1dHRvbi5hbHQuZGlzYWJsZWQ6aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSBidXR0b24uYnV0dG9uLmFsdDpkaXNhYmxlZDpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIGJ1dHRvbi5idXR0b24uYWx0OmRpc2FibGVkW2Rpc2FibGVkXTpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIGlucHV0LmJ1dHRvbi5hbHQuZGlzYWJsZWQsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSBpbnB1dC5idXR0b24uYWx0OmRpc2FibGVkLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgaW5wdXQuYnV0dG9uLmFsdDpkaXNhYmxlZFtkaXNhYmxlZF0sXG4gICAgICAud29vY29tbWVyY2UtcGFnZSBpbnB1dC5idXR0b24uYWx0LmRpc2FibGVkOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgaW5wdXQuYnV0dG9uLmFsdDpkaXNhYmxlZDpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIGlucHV0LmJ1dHRvbi5hbHQ6ZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LmFsdC5kaXNhYmxlZCxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlICNyZXNwb25kIGlucHV0I3N1Ym1pdC5hbHQ6ZGlzYWJsZWQsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQuYWx0OmRpc2FibGVkW2Rpc2FibGVkXSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlICNyZXNwb25kIGlucHV0I3N1Ym1pdC5hbHQuZGlzYWJsZWQ6aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQuYWx0OmRpc2FibGVkOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LmFsdDpkaXNhYmxlZFtkaXNhYmxlZF06aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTQ2NDk3O1xuICAgICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAud29vY29tbWVyY2UgYS5idXR0b246ZGlzYWJsZWQsIC53b29jb21tZXJjZSBhLmJ1dHRvbi5kaXNhYmxlZCwgLndvb2NvbW1lcmNlIGEuYnV0dG9uOmRpc2FibGVkW2Rpc2FibGVkXSxcbiAgICAud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbjpkaXNhYmxlZCxcbiAgICAud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbi5kaXNhYmxlZCxcbiAgICAud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbjpkaXNhYmxlZFtkaXNhYmxlZF0sXG4gICAgLndvb2NvbW1lcmNlIGlucHV0LmJ1dHRvbjpkaXNhYmxlZCxcbiAgICAud29vY29tbWVyY2UgaW5wdXQuYnV0dG9uLmRpc2FibGVkLFxuICAgIC53b29jb21tZXJjZSBpbnB1dC5idXR0b246ZGlzYWJsZWRbZGlzYWJsZWRdLFxuICAgIC53b29jb21tZXJjZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQ6ZGlzYWJsZWQsXG4gICAgLndvb2NvbW1lcmNlICNyZXNwb25kIGlucHV0I3N1Ym1pdC5kaXNhYmxlZCxcbiAgICAud29vY29tbWVyY2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0OmRpc2FibGVkW2Rpc2FibGVkXSxcbiAgICAud29vY29tbWVyY2UtcGFnZSBhLmJ1dHRvbjpkaXNhYmxlZCxcbiAgICAud29vY29tbWVyY2UtcGFnZSBhLmJ1dHRvbi5kaXNhYmxlZCxcbiAgICAud29vY29tbWVyY2UtcGFnZSBhLmJ1dHRvbjpkaXNhYmxlZFtkaXNhYmxlZF0sXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgYnV0dG9uLmJ1dHRvbjpkaXNhYmxlZCxcbiAgICAud29vY29tbWVyY2UtcGFnZSBidXR0b24uYnV0dG9uLmRpc2FibGVkLFxuICAgIC53b29jb21tZXJjZS1wYWdlIGJ1dHRvbi5idXR0b246ZGlzYWJsZWRbZGlzYWJsZWRdLFxuICAgIC53b29jb21tZXJjZS1wYWdlIGlucHV0LmJ1dHRvbjpkaXNhYmxlZCxcbiAgICAud29vY29tbWVyY2UtcGFnZSBpbnB1dC5idXR0b24uZGlzYWJsZWQsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgaW5wdXQuYnV0dG9uOmRpc2FibGVkW2Rpc2FibGVkXSxcbiAgICAud29vY29tbWVyY2UtcGFnZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQ6ZGlzYWJsZWQsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LmRpc2FibGVkLFxuICAgIC53b29jb21tZXJjZS1wYWdlICNyZXNwb25kIGlucHV0I3N1Ym1pdDpkaXNhYmxlZFtkaXNhYmxlZF0ge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgcGFkZGluZzogMC42MThlbSAxZW07IH1cbiAgICAgIC53b29jb21tZXJjZSBhLmJ1dHRvbjpkaXNhYmxlZDpob3ZlciwgLndvb2NvbW1lcmNlIGEuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAud29vY29tbWVyY2UgYS5idXR0b246ZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlIGJ1dHRvbi5idXR0b246ZGlzYWJsZWQ6aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UgYnV0dG9uLmJ1dHRvbi5kaXNhYmxlZDpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZSBidXR0b24uYnV0dG9uOmRpc2FibGVkW2Rpc2FibGVkXTpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZSBpbnB1dC5idXR0b246ZGlzYWJsZWQ6aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UgaW5wdXQuYnV0dG9uLmRpc2FibGVkOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlIGlucHV0LmJ1dHRvbjpkaXNhYmxlZFtkaXNhYmxlZF06aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0OmRpc2FibGVkOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlICNyZXNwb25kIGlucHV0I3N1Ym1pdC5kaXNhYmxlZDpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZSAjcmVzcG9uZCBpbnB1dCNzdWJtaXQ6ZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgYS5idXR0b246ZGlzYWJsZWQ6aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSBhLmJ1dHRvbi5kaXNhYmxlZDpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIGEuYnV0dG9uOmRpc2FibGVkW2Rpc2FibGVkXTpob3ZlcixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIGJ1dHRvbi5idXR0b246ZGlzYWJsZWQ6aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSBidXR0b24uYnV0dG9uLmRpc2FibGVkOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgYnV0dG9uLmJ1dHRvbjpkaXNhYmxlZFtkaXNhYmxlZF06aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSBpbnB1dC5idXR0b246ZGlzYWJsZWQ6aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSBpbnB1dC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSBpbnB1dC5idXR0b246ZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0OmRpc2FibGVkOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0LmRpc2FibGVkOmhvdmVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgI3Jlc3BvbmQgaW5wdXQjc3VibWl0OmRpc2FibGVkW2Rpc2FibGVkXTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlOWViOyB9XG4gIC53b29jb21tZXJjZSAuY2FydCAuYnV0dG9uLFxuICAud29vY29tbWVyY2UgLmNhcnQgaW5wdXQuYnV0dG9uLFxuICAud29vY29tbWVyY2UtcGFnZSAuY2FydCAuYnV0dG9uLFxuICAud29vY29tbWVyY2UtcGFnZSAuY2FydCBpbnB1dC5idXR0b24ge1xuICAgIGZsb2F0OiBub25lOyB9XG4gIC53b29jb21tZXJjZSBhLmFkZGVkX3RvX2NhcnQsXG4gIC53b29jb21tZXJjZS1wYWdlIGEuYWRkZWRfdG9fY2FydCB7XG4gICAgcGFkZGluZy10b3A6IDAuNWVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAud29vY29tbWVyY2UgdWwub3JkZXJfZGV0YWlscyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgdWwub3JkZXJfZGV0YWlscyB7XG4gICAgKnpvb206IDE7XG4gICAgbWFyZ2luOiAwIDAgM2VtO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgICAud29vY29tbWVyY2UgdWwub3JkZXJfZGV0YWlsczo6YmVmb3JlLCAud29vY29tbWVyY2UgdWwub3JkZXJfZGV0YWlsczo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdWwub3JkZXJfZGV0YWlsczo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZS1wYWdlIHVsLm9yZGVyX2RldGFpbHM6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLndvb2NvbW1lcmNlIHVsLm9yZGVyX2RldGFpbHM6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlIHVsLm9yZGVyX2RldGFpbHM6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLndvb2NvbW1lcmNlIHVsLm9yZGVyX2RldGFpbHMgbGksXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdWwub3JkZXJfZGV0YWlscyBsaSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1yaWdodDogMmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogMC43MTVlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggZGFzaGVkICNkM2NlZDI7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuICAgICAgLndvb2NvbW1lcmNlIHVsLm9yZGVyX2RldGFpbHMgbGkgc3Ryb25nLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdWwub3JkZXJfZGV0YWlscyBsaSBzdHJvbmcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjRlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cbiAgICAgIC53b29jb21tZXJjZSB1bC5vcmRlcl9kZXRhaWxzIGxpOmxhc3Qtb2YtdHlwZSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHVsLm9yZGVyX2RldGFpbHMgbGk6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyOiBub25lOyB9XG4gIC53b29jb21tZXJjZSAud2MtYmFjcy1iYW5rLWRldGFpbHMtYWNjb3VudC1uYW1lLFxuICAud29vY29tbWVyY2UtcGFnZSAud2MtYmFjcy1iYW5rLWRldGFpbHMtYWNjb3VudC1uYW1lIHtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLW9yZGVyLWRvd25sb2FkcyxcbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLFxuICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLW9yZGVyLWRldGFpbHMsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1vcmRlci1kb3dubG9hZHMsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLFxuICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2Utb3JkZXItZGV0YWlscyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtOyB9XG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1vcmRlci1kb3dubG9hZHMgKjpsYXN0LWNoaWxkLFxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscyAqOmxhc3QtY2hpbGQsXG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1vcmRlci1kZXRhaWxzICo6bGFzdC1jaGlsZCxcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2Utb3JkZXItZG93bmxvYWRzICo6bGFzdC1jaGlsZCxcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscyAqOmxhc3QtY2hpbGQsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLW9yZGVyLWRldGFpbHMgKjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzIGFkZHJlc3MsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzIGFkZHJlc3Mge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgcGFkZGluZzogNnB4IDEycHg7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzIC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLS1waG9uZSxcbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzIC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLS1lbWFpbCxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMgLndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMtLXBob25lLFxuICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscyAud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscy0tZW1haWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVlbTsgfVxuICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMgLndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMtLXBob25lOjpiZWZvcmUsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzIC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLS1waG9uZTo6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogJ1dvb0NvbW1lcmNlJztcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIG1hcmdpbi1yaWdodDogMC42MThlbTtcbiAgICBjb250ZW50OiBcIu6At1wiO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogLTEuNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc1O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMgLndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMtLWVtYWlsOjpiZWZvcmUsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzIC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLS1lbWFpbDo6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogJ1dvb0NvbW1lcmNlJztcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIG1hcmdpbi1yaWdodDogMC42MThlbTtcbiAgICBjb250ZW50OiBcIu6ArVwiO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogLTEuNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc1O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLW1lc3NhZ2UsXG4gIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtZXJyb3IsXG4gIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtaW5mbyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLW1lc3NhZ2UsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1lcnJvcixcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLWluZm8ge1xuICAgIHBhZGRpbmc6IDFlbSAyZW0gMWVtIDMuNWVtO1xuICAgIG1hcmdpbjogMCAwIDJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjZmNztcbiAgICBjb2xvcjogIzUxNTE1MTtcbiAgICBib3JkZXItdG9wOiAzcHggc29saWQgI2E0NjQ5NztcbiAgICBsaXN0LXN0eWxlOiBub25lIG91dHNpZGU7XG4gICAgKnpvb206IDE7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkOyB9XG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1tZXNzYWdlOjpiZWZvcmUsIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtbWVzc2FnZTo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1lcnJvcjo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtZXJyb3I6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtaW5mbzo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtaW5mbzo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLW1lc3NhZ2U6OmJlZm9yZSxcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtbWVzc2FnZTo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLWVycm9yOjpiZWZvcmUsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLWVycm9yOjphZnRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtaW5mbzo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1pbmZvOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnICc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtbWVzc2FnZTo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1lcnJvcjo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1pbmZvOjphZnRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtbWVzc2FnZTo6YWZ0ZXIsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLWVycm9yOjphZnRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtaW5mbzo6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLW1lc3NhZ2U6OmJlZm9yZSxcbiAgICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLWVycm9yOjpiZWZvcmUsXG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1pbmZvOjpiZWZvcmUsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLW1lc3NhZ2U6OmJlZm9yZSxcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtZXJyb3I6OmJlZm9yZSxcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtaW5mbzo6YmVmb3JlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIldvb0NvbW1lcmNlXCI7XG4gICAgICBjb250ZW50OiBcIlxcZTAyOFwiO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxZW07XG4gICAgICBsZWZ0OiAxLjVlbTsgfVxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtbWVzc2FnZSAuYnV0dG9uLFxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtZXJyb3IgLmJ1dHRvbixcbiAgICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLWluZm8gLmJ1dHRvbixcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtbWVzc2FnZSAuYnV0dG9uLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1lcnJvciAuYnV0dG9uLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1pbmZvIC5idXR0b24ge1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1tZXNzYWdlIGxpLFxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtZXJyb3IgbGksXG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1pbmZvIGxpLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1tZXNzYWdlIGxpLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1lcnJvciBsaSxcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtaW5mbyBsaSB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lIG91dHNpZGUgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLW1lc3NhZ2UsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1tZXNzYWdlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjOGZhZTFiOyB9XG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1tZXNzYWdlOjpiZWZvcmUsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLW1lc3NhZ2U6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcZTAxNVwiO1xuICAgICAgY29sb3I6ICM4ZmFlMWI7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1pbmZvLFxuICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtaW5mbyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzFlODViZTsgfVxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtaW5mbzo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1pbmZvOjpiZWZvcmUge1xuICAgICAgY29sb3I6ICMxZTg1YmU7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1lcnJvcixcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLWVycm9yIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjYjgxYzIzOyB9XG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1lcnJvcjo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1lcnJvcjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxlMDE2XCI7XG4gICAgICBjb2xvcjogI2I4MWMyMzsgfVxuXG4vKipcclxuICogV29vQ29tbWVyY2Ugd2lkZ2V0c1xyXG4gKi9cbi8qKlxyXG4gKiBXb29Db21tZXJjZSBQcmljZSBGaWx0ZXJcclxuICovXG4ud2lkZ2V0X3ByaWNlX2ZpbHRlciAucHJpY2Vfc2xpZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMS41ZW07IH1cblxuLndpZGdldF9wcmljZV9maWx0ZXIgLnByaWNlX3NsaWRlcl9hbW91bnQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbGluZS1oZWlnaHQ6IDIuNDsgfVxuICAud2lkZ2V0X3ByaWNlX2ZpbHRlciAucHJpY2Vfc2xpZGVyX2Ftb3VudCAuYnV0dG9uIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4ud2lkZ2V0X3ByaWNlX2ZpbHRlciAudWktc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi53aWRnZXRfcHJpY2VfZmlsdGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xuICBjdXJzb3I6IGV3LXJlc2l6ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luLXRvcDogLTAuMjVlbTtcbiAgb3BhY2l0eTogMTsgfVxuICAud2lkZ2V0X3ByaWNlX2ZpbHRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtOyB9XG4gIC53aWRnZXRfcHJpY2VfZmlsdGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGU6aG92ZXIsIC53aWRnZXRfcHJpY2VfZmlsdGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtYWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwLjI1ZW0gcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi53aWRnZXRfcHJpY2VfZmlsdGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogIzAwMDsgfVxuXG4ud2lkZ2V0X3ByaWNlX2ZpbHRlciAucHJpY2Vfc2xpZGVyX3dyYXBwZXIgLnVpLXdpZGdldC1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi53aWRnZXRfcHJpY2VfZmlsdGVyIC51aS1zbGlkZXItaG9yaXpvbnRhbCB7XG4gIGhlaWdodDogMC41ZW07IH1cblxuLndpZGdldF9wcmljZV9maWx0ZXIgLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2Uge1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuLyoqXHJcbiAqIFdvb0NvbW1lcmNlIEFjY291bnQgcGFnZXNcclxuICovXG4vKipcclxuICogQWNjb3VudCBwYWdlXHJcbiAqL1xuLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlIHtcbiAgKnpvb206IDE7IH1cbiAgLndvb2NvbW1lcmNlLWFjY291bnQgLndvb2NvbW1lcmNlOjpiZWZvcmUsIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2U6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4ud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24ge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDMwJTsgfVxuXG4ud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UtTXlBY2NvdW50LWNvbnRlbnQge1xuICBmbG9hdDogcmlnaHQ7XG4gIHdpZHRoOiA2OCU7IH1cblxuLndvb2NvbW1lcmNlLWFjY291bnQgLmFkZHJlc3NlcyAudGl0bGUge1xuICAqem9vbTogMTsgfVxuICAud29vY29tbWVyY2UtYWNjb3VudCAuYWRkcmVzc2VzIC50aXRsZTo6YmVmb3JlLCAud29vY29tbWVyY2UtYWNjb3VudCAuYWRkcmVzc2VzIC50aXRsZTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAud29vY29tbWVyY2UtYWNjb3VudCAuYWRkcmVzc2VzIC50aXRsZTo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC53b29jb21tZXJjZS1hY2NvdW50IC5hZGRyZXNzZXMgLnRpdGxlIGgzIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAud29vY29tbWVyY2UtYWNjb3VudCAuYWRkcmVzc2VzIC50aXRsZSAuZWRpdCB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi53b29jb21tZXJjZS1hY2NvdW50IG9sLmNvbW1lbnRsaXN0Lm5vdGVzIGxpLm5vdGUgcC5tZXRhIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ud29vY29tbWVyY2UtYWNjb3VudCBvbC5jb21tZW50bGlzdC5ub3RlcyBsaS5ub3RlIC5kZXNjcmlwdGlvbiBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi53b29jb21tZXJjZS1hY2NvdW50IHVsLmRpZ2l0YWwtZG93bmxvYWRzIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuICAud29vY29tbWVyY2UtYWNjb3VudCB1bC5kaWdpdGFsLWRvd25sb2FkcyBsaSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAud29vY29tbWVyY2UtYWNjb3VudCB1bC5kaWdpdGFsLWRvd25sb2FkcyBsaTo6YmVmb3JlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAnV29vQ29tbWVyY2UnO1xuICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNjE4ZW07XG4gICAgICBjb250ZW50OiBcIu6AilwiO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLndvb2NvbW1lcmNlLWFjY291bnQgdWwuZGlnaXRhbC1kb3dubG9hZHMgbGkgLmNvdW50IHtcbiAgICAgIGZsb2F0OiByaWdodDsgfVxuXG4vKipcclxuICogV29vQ29tbWVyY2UgUHJvZHVjdCBMaXN0XHJcbiAqL1xuLndvb2NvbW1lcmNlLFxuLndvb2NvbW1lcmNlLXBhZ2Uge1xuICAvKipcclxuKiBQcm9kdWN0IGxvb3BzXHJcbiovIH1cbiAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzLmNvbHVtbnMtNSBsaS5wcm9kdWN0LFxuICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cy5jb2x1bW5zLTUgbGkucHJvZHVjdCB7XG4gICAgd2lkdGg6IDE2Ljk1JTsgfVxuICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMuY29sdW1ucy02IGxpLnByb2R1Y3QsXG4gIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzLmNvbHVtbnMtNiBsaS5wcm9kdWN0IHtcbiAgICB3aWR0aDogMTMuNSU7IH1cbiAgLndvb2NvbW1lcmNlLmNvbHVtbnMtMSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0LFxuICAud29vY29tbWVyY2UtcGFnZS5jb2x1bW5zLTEgdWwucHJvZHVjdHMgbGkucHJvZHVjdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC53b29jb21tZXJjZS5jb2x1bW5zLTIgdWwucHJvZHVjdHMgbGkucHJvZHVjdCxcbiAgLndvb2NvbW1lcmNlLXBhZ2UuY29sdW1ucy0yIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3Qge1xuICAgIHdpZHRoOiA0OCU7IH1cbiAgLndvb2NvbW1lcmNlLmNvbHVtbnMtNCxcbiAgLndvb2NvbW1lcmNlLXBhZ2UuY29sdW1ucy00IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICAgIGFsaWduLWl0ZW1zOiBzZWxmLXN0YXJ0OyB9XG4gIC53b29jb21tZXJjZS5jb2x1bW5zLTMgdWwucHJvZHVjdHMgbGkucHJvZHVjdCxcbiAgLndvb2NvbW1lcmNlLXBhZ2UuY29sdW1ucy0zIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3Qge1xuICAgIHdpZHRoOiAzMC43NSU7IH1cbiAgLndvb2NvbW1lcmNlLmNvbHVtbnMtNSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0LFxuICAud29vY29tbWVyY2UtcGFnZS5jb2x1bW5zLTUgdWwucHJvZHVjdHMgbGkucHJvZHVjdCB7XG4gICAgd2lkdGg6IDE2Ljk1JTsgfVxuICAud29vY29tbWVyY2UuY29sdW1ucy02IHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QsXG4gIC53b29jb21tZXJjZS1wYWdlLmNvbHVtbnMtNiB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IHtcbiAgICB3aWR0aDogMTMuNSU7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1yZXN1bHQtY291bnQsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1yZXN1bHQtY291bnQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1vcmRlcmluZyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLW9yZGVyaW5nIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtcGFnaW5hdGlvbiB1bC5wYWdlLW51bWJlcnMsXG4gIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsLnBhZ2UtbnVtYmVycyB7XG4gICAgKnpvb206IDE7IH1cbiAgICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLXBhZ2luYXRpb24gdWwucGFnZS1udW1iZXJzOjpiZWZvcmUsIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtcGFnaW5hdGlvbiB1bC5wYWdlLW51bWJlcnM6OmFmdGVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsLnBhZ2UtbnVtYmVyczo6YmVmb3JlLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsLnBhZ2UtbnVtYmVyczo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLXBhZ2luYXRpb24gdWwucGFnZS1udW1iZXJzOjphZnRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtcGFnaW5hdGlvbiB1bC5wYWdlLW51bWJlcnM6OmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsLnBhZ2UtbnVtYmVycyBsaSxcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtcGFnaW5hdGlvbiB1bC5wYWdlLW51bWJlcnMgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC53b29jb21tZXJjZSAucHJvZHVjdHMgdWwsXG4gIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzIHVsLFxuICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lIG91dHNpZGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QuZmlyc3QsXG4gIC53b29jb21tZXJjZSAuc2luZ2xlLWNhdC5maXJzdCxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdC5maXJzdCxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLnNpbmdsZS1jYXQuZmlyc3Qge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0Lmxhc3QsXG4gIC53b29jb21tZXJjZSAuc2luZ2xlLWNhdC5sYXN0LFxuICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0Lmxhc3QsXG4gIC53b29jb21tZXJjZS1wYWdlIC5zaW5nbGUtY2F0Lmxhc3Qge1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdDo6YWZ0ZXIsXG4gIC53b29jb21tZXJjZSAuc2luZ2xlLWNhdDo6YWZ0ZXIsXG4gIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3Q6OmFmdGVyLFxuICAud29vY29tbWVyY2UtcGFnZSAuc2luZ2xlLWNhdDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA1MCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgei1pbmRleDogMTtcbiAgICBtYXJnaW4tdG9wOiAtNDBweDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1pbi1vdXQ7XG4gICAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCAjZmZmO1xuICAgIGJvcmRlci1yaWdodDogbm9uZTsgfVxuICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdDpob3ZlcjphZnRlcixcbiAgLndvb2NvbW1lcmNlIC5zaW5nbGUtY2F0OmhvdmVyOmFmdGVyLFxuICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0OmhvdmVyOmFmdGVyLFxuICAud29vY29tbWVyY2UtcGFnZSAuc2luZ2xlLWNhdDpob3ZlcjphZnRlciB7XG4gICAgaGVpZ2h0OiAxNjJweDtcbiAgICBtYXJnaW4tdG9wOiAtODFweDtcbiAgICBib3JkZXItY29sb3I6ICNFNTBBMTk7IH1cbiAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgPiBhLFxuICAud29vY29tbWVyY2UgLnNpbmdsZS1jYXQgPiBhLFxuICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0ID4gYSxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLnNpbmdsZS1jYXQgPiBhIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtOyB9XG4gICAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgPiBhIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSxcbiAgICAud29vY29tbWVyY2UgLnNpbmdsZS1jYXQgPiBhIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSxcbiAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0ID4gYSAud29vY29tbWVyY2UtbG9vcC1jYXRlZ29yeV9fdGl0bGUsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLnNpbmdsZS1jYXQgPiBhIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCAuY291bnQsXG4gIC53b29jb21tZXJjZSAuc2luZ2xlLWNhdCAuY291bnQsXG4gIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLmNvdW50LFxuICAud29vY29tbWVyY2UtcGFnZSAuc2luZ2xlLWNhdCAuY291bnQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLm9uc2FsZSxcbiAgLndvb2NvbW1lcmNlIC5zaW5nbGUtY2F0IC5vbnNhbGUsXG4gIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLm9uc2FsZSxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLnNpbmdsZS1jYXQgLm9uc2FsZSB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAtMC41ZW0gLTAuNWVtIDAgMDsgfVxuICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBoMyxcbiAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGUsXG4gIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSxcbiAgLndvb2NvbW1lcmNlIC5zaW5nbGUtY2F0IGgzLFxuICAud29vY29tbWVyY2UgLnNpbmdsZS1jYXQgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGUsXG4gIC53b29jb21tZXJjZSAuc2luZ2xlLWNhdCAud29vY29tbWVyY2UtbG9vcC1jYXRlZ29yeV9fdGl0bGUsXG4gIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgaDMsXG4gIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGUsXG4gIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLndvb2NvbW1lcmNlLWxvb3AtY2F0ZWdvcnlfX3RpdGxlLFxuICAud29vY29tbWVyY2UtcGFnZSAuc2luZ2xlLWNhdCBoMyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLnNpbmdsZS1jYXQgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGUsXG4gIC53b29jb21tZXJjZS1wYWdlIC5zaW5nbGUtY2F0IC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSB7XG4gICAgcGFkZGluZzogMC41ZW0gMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhLFxuICAud29vY29tbWVyY2UgLnNpbmdsZS1jYXQgYSxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhLFxuICAud29vY29tbWVyY2UtcGFnZSAuc2luZ2xlLWNhdCBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSBpbWcsXG4gIC53b29jb21tZXJjZSAuc2luZ2xlLWNhdCBhIGltZyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCBhIGltZyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLnNpbmdsZS1jYXQgYSBpbWcge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0byAxZW0gYXV0bztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWF4LWhlaWdodDogMTIwcHg7XG4gICAgbWluLWhlaWdodDogNy41cmVtO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47IH1cbiAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3Qgc3Ryb25nLFxuICAud29vY29tbWVyY2UgLnNpbmdsZS1jYXQgc3Ryb25nLFxuICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IHN0cm9uZyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLnNpbmdsZS1jYXQgc3Ryb25nIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCAud29vY29tbWVyY2UtcGxhY2Vob2xkZXIsXG4gIC53b29jb21tZXJjZSAuc2luZ2xlLWNhdCAud29vY29tbWVyY2UtcGxhY2Vob2xkZXIsXG4gIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLndvb2NvbW1lcmNlLXBsYWNlaG9sZGVyLFxuICAud29vY29tbWVyY2UtcGFnZSAuc2luZ2xlLWNhdCAud29vY29tbWVyY2UtcGxhY2Vob2xkZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMmYyZjI7IH1cbiAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLnN0YXItcmF0aW5nLFxuICAud29vY29tbWVyY2UgLnNpbmdsZS1jYXQgLnN0YXItcmF0aW5nLFxuICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IC5zdGFyLXJhdGluZyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLnNpbmdsZS1jYXQgLnN0YXItcmF0aW5nIHtcbiAgICBmb250LXNpemU6IDAuODU3ZW07IH1cbiAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLmJ1dHRvbixcbiAgLndvb2NvbW1lcmNlIC5zaW5nbGUtY2F0IC5idXR0b24sXG4gIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLmJ1dHRvbixcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLnNpbmdsZS1jYXQgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogMWVtOyB9XG4gIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IC5wcmljZSxcbiAgLndvb2NvbW1lcmNlIC5zaW5nbGUtY2F0IC5wcmljZSxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCAucHJpY2UsXG4gIC53b29jb21tZXJjZS1wYWdlIC5zaW5nbGUtY2F0IC5wcmljZSB7XG4gICAgY29sb3I6ICM3N2E0NjQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICBmb250LXNpemU6IDAuODU3ZW07IH1cbiAgICAud29vY29tbWVyY2UgdWwucHJvZHVjdHMgbGkucHJvZHVjdCAucHJpY2UgZGVsLFxuICAgIC53b29jb21tZXJjZSAuc2luZ2xlLWNhdCAucHJpY2UgZGVsLFxuICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLnByaWNlIGRlbCxcbiAgICAud29vY29tbWVyY2UtcGFnZSAuc2luZ2xlLWNhdCAucHJpY2UgZGVsIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLndvb2NvbW1lcmNlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLnByaWNlIGlucyxcbiAgICAud29vY29tbWVyY2UgLnNpbmdsZS1jYXQgLnByaWNlIGlucyxcbiAgICAud29vY29tbWVyY2UtcGFnZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IC5wcmljZSBpbnMsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLnNpbmdsZS1jYXQgLnByaWNlIGlucyB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC53b29jb21tZXJjZSB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IC5wcmljZSAuZnJvbSxcbiAgICAud29vY29tbWVyY2UgLnNpbmdsZS1jYXQgLnByaWNlIC5mcm9tLFxuICAgIC53b29jb21tZXJjZS1wYWdlIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgLnByaWNlIC5mcm9tLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC5zaW5nbGUtY2F0IC5wcmljZSAuZnJvbSB7XG4gICAgICBmb250LXNpemU6IDAuNjdlbTtcbiAgICAgIG1hcmdpbjogLTJweCAwIDAgMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBjb2xvcjogcmdiYSgxMzIsIDEzMiwgMTMyLCAwLjUpOyB9XG4gIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtcmVzdWx0LWNvdW50LFxuICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtcmVzdWx0LWNvdW50IHtcbiAgICBtYXJnaW46IDAgMCAxZW07IH1cbiAgLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1vcmRlcmluZyxcbiAgLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLW9yZGVyaW5nIHtcbiAgICBtYXJnaW46IDAgMCAxZW07IH1cbiAgICAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLW9yZGVyaW5nIHNlbGVjdCxcbiAgICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2Utb3JkZXJpbmcgc2VsZWN0IHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLndvb2NvbW1lcmNlIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uLFxuICAud29vY29tbWVyY2UtcGFnZSBuYXYud29vY29tbWVyY2UtcGFnaW5hdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLndvb2NvbW1lcmNlIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsLFxuICAgIC53b29jb21tZXJjZS1wYWdlIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDNjZWQyO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luOiAxcHg7IH1cbiAgICAgIC53b29jb21tZXJjZSBuYXYud29vY29tbWVyY2UtcGFnaW5hdGlvbiB1bCBsaSxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsIGxpIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2QzY2VkMjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgICAgIC53b29jb21tZXJjZSBuYXYud29vY29tbWVyY2UtcGFnaW5hdGlvbiB1bCBsaSBhLFxuICAgICAgICAud29vY29tbWVyY2UgbmF2Lndvb2NvbW1lcmNlLXBhZ2luYXRpb24gdWwgbGkgc3BhbixcbiAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgbmF2Lndvb2NvbW1lcmNlLXBhZ2luYXRpb24gdWwgbGkgYSxcbiAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgbmF2Lndvb2NvbW1lcmNlLXBhZ2luYXRpb24gdWwgbGkgc3BhbiB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgcGFkZGluZzogMC41ZW07XG4gICAgICAgICAgbWluLXdpZHRoOiAxZW07XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLndvb2NvbW1lcmNlIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsIGxpIHNwYW4uY3VycmVudCxcbiAgICAgICAgLndvb2NvbW1lcmNlIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsIGxpIGE6aG92ZXIsXG4gICAgICAgIC53b29jb21tZXJjZSBuYXYud29vY29tbWVyY2UtcGFnaW5hdGlvbiB1bCBsaSBhOmZvY3VzLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSBuYXYud29vY29tbWVyY2UtcGFnaW5hdGlvbiB1bCBsaSBzcGFuLmN1cnJlbnQsXG4gICAgICAgIC53b29jb21tZXJjZS1wYWdlIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsIGxpIGE6aG92ZXIsXG4gICAgICAgIC53b29jb21tZXJjZS1wYWdlIG5hdi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHVsIGxpIGE6Zm9jdXMge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNlYmU5ZWI7XG4gICAgICAgICAgY29sb3I6ICM4YTdlODg7IH1cbiAgLndvb2NvbW1lcmNlLnRheC1wcm9kdWN0X2NhdCAucHJvZHVjdHMsXG4gIC53b29jb21tZXJjZS1wYWdlLnRheC1wcm9kdWN0X2NhdCAucHJvZHVjdHMge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgICAgIC53b29jb21tZXJjZS50YXgtcHJvZHVjdF9jYXQgLnByb2R1Y3RzIGxpLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UudGF4LXByb2R1Y3RfY2F0IC5wcm9kdWN0cyBsaSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTdweDsgfSB9XG4gIC53b29jb21tZXJjZSAucHJvZHVjdHMsXG4gIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIGdyaWQtZ2FwOiAxLjgxMjVyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gICAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MTVweCkge1xuICAgICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMuY29sdW1ucy00LFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzLmNvbHVtbnMtNCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7IH0gfVxuICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMucmVsYXRlZCxcbiAgICAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMucmVsYXRlZCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi10b3A6IDguNDM3NXJlbTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAgICAgICAud29vY29tbWVyY2UgLnByb2R1Y3RzLnJlbGF0ZWQsXG4gICAgICAgIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cy5yZWxhdGVkIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzLjEyNXJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDE1cHgpIHtcbiAgICAgICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cy5yZWxhdGVkLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMucmVsYXRlZCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMy4xMjVyZW07IH0gfVxuICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgbGksXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzIGxpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBjb2xvcjogIzAwMDsgfVxuICAgICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyBsaTpudGgtb2YtdHlwZSgzbiArIDMpLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzIGxpOm50aC1vZi10eXBlKDNuICsgMykge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gICAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgbGksXG4gICAgICAgIC53b29jb21tZXJjZS1wYWdlIC5wcm9kdWN0cyBsaSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgbGk6YWZ0ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgbGk6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBtYXJnaW4tdG9wOiAtNDBweDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDsgfVxuICAgICAgLndvb2NvbW1lcmNlIC5wcm9kdWN0cyBsaTpob3Zlcjo6YWZ0ZXIsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgbGk6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxNjJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTgxcHg7IH1cbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgbGkudHlwZS1wcm9kdWN0OmFmdGVyLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgLnByb2R1Y3RzIGxpLnR5cGUtcHJvZHVjdDphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC53b29jb21tZXJjZSAucHJvZHVjdHMgbGkudHlwZS1wcm9kdWN0IC5idXR0b24sXG4gICAgICAud29vY29tbWVyY2UtcGFnZSAucHJvZHVjdHMgbGkudHlwZS1wcm9kdWN0IC5idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X19saW5rLFxuICAud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X19saW5rIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDIwcHggMTVweDsgfVxuICAgIC53b29jb21tZXJjZSAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X19saW5rOmhvdmVyLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX2xpbms6aG92ZXIge1xuICAgICAgYm94LXNoYWRvdzogMCAzcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX2xpbms6aG92ZXIsXG4ud29vY29tbWVyY2UtcGFnZSAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X19saW5rOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4uaG9tZSAud29vY29tbWVyY2UuY29sdW1ucy00IHVsLnByb2R1Y3RzIGxpLnByb2R1Y3QgYSBpbWcge1xuICBtYXJnaW46IDAgMCAwIGF1dG87IH1cblxuLnByb2R1Y3QtY2F0ZWdvcmllcyB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cbiAgLnByb2R1Y3QtY2F0ZWdvcmllcyAucHJvZHVjdC1jYXRlZ29yeSBhOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICB6LWluZGV4OiAxO1xuICAgIG1hcmdpbi10b3A6IC00MHB4O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDtcbiAgICBib3JkZXItbGVmdDogNnB4IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIHotaW5kZXg6IDE7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmc6IDAgMCAwIDE2cHg7IH1cbiAgLnByb2R1Y3QtY2F0ZWdvcmllcyAucHJvZHVjdC1jYXRlZ29yeSBhOmhvdmVyOmFmdGVyIHtcbiAgICBoZWlnaHQ6IDExNXB4O1xuICAgIG1hcmdpbi10b3A6IC01N3B4O1xuICAgIGJvcmRlci1jb2xvcjogI0U1MEExOTsgfVxuICAucHJvZHVjdC1jYXRlZ29yaWVzIC5wcm9kdWN0LWNhdGVnb3J5IGEgaDIge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4vKipcclxuICogV29vQ29tbWVyY2UgU21hbGxTY3JlZW5cclxuICovXG4vKipcclxuICogU3R5bGUgYmVnaW5zXHJcbiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC53b29jb21tZXJjZSxcbiAgLndvb2NvbW1lcmNlLXBhZ2Uge1xuICAgIC8qKlxyXG4gICAgICogR2VuZXJhbCBsYXlvdXRcclxuICAgICAqL1xuICAgIC8qKlxyXG4gICAgICogUHJvZHVjdHNcclxuICAgICAqL1xuICAgIC8qKlxyXG4gICAgICogUHJvZHVjdCBEZXRhaWxzXHJcbiAgICAgKi9cbiAgICAvKipcclxuICAgICAqIENhcnRcclxuICAgICAqL1xuICAgIC8qKlxyXG4gICAgICogQ2hlY2tvdXRcclxuICAgICAqL1xuICAgIC8qKlxyXG4gICAgICogQWNjb3VudFxyXG4gICAgICovIH1cbiAgICAud29vY29tbWVyY2UgdGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlIHRoZWFkLFxuICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZSB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLndvb2NvbW1lcmNlIHRhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbiAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcDogMDsgfVxuICAgIC53b29jb21tZXJjZSB0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUgdGJvZHkgdGgsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlIHRib2R5IHRoIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAud29vY29tbWVyY2UgdGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlIHRyLFxuICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZSB0ciB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLndvb2NvbW1lcmNlIHRhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZSB0ciB0ZCxcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZSB0ciB0ZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gICAgICAgIC53b29jb21tZXJjZSB0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUgdHIgdGQub3JkZXItYWN0aW9ucyxcbiAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlIHRyIHRkLm9yZGVyLWFjdGlvbnMge1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAgICAgICAud29vY29tbWVyY2UgdGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlIHRyIHRkOjpiZWZvcmUsXG4gICAgICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZSB0ciB0ZDo6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtdGl0bGUpIFwiOiBcIjtcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICAgIC53b29jb21tZXJjZSB0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUgdHIgdGQucHJvZHVjdC1yZW1vdmU6OmJlZm9yZSwgLndvb2NvbW1lcmNlIHRhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZSB0ciB0ZC5hY3Rpb25zOjpiZWZvcmUsXG4gICAgICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZSB0ciB0ZC5wcm9kdWN0LXJlbW92ZTo6YmVmb3JlLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUgdHIgdGQuYWN0aW9uczo6YmVmb3JlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAud29vY29tbWVyY2UgdGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlIHRyOm50aC1jaGlsZCgybikgdGQsXG4gICAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUgdHI6bnRoLWNoaWxkKDJuKSB0ZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMjUpOyB9XG4gICAgLndvb2NvbW1lcmNlIHRhYmxlLm15X2FjY291bnRfb3JkZXJzIHRyIHRkLm9yZGVyLWFjdGlvbnMsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUubXlfYWNjb3VudF9vcmRlcnMgdHIgdGQub3JkZXItYWN0aW9ucyB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgICAud29vY29tbWVyY2UgdGFibGUubXlfYWNjb3VudF9vcmRlcnMgdHIgdGQub3JkZXItYWN0aW9uczo6YmVmb3JlLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUubXlfYWNjb3VudF9vcmRlcnMgdHIgdGQub3JkZXItYWN0aW9uczo6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLndvb2NvbW1lcmNlIHRhYmxlLm15X2FjY291bnRfb3JkZXJzIHRyIHRkLm9yZGVyLWFjdGlvbnMgLmJ1dHRvbixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLm15X2FjY291bnRfb3JkZXJzIHRyIHRkLm9yZGVyLWFjdGlvbnMgLmJ1dHRvbiB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBtYXJnaW46IDAuMTI1ZW0gMC4yNWVtIDAuMTI1ZW0gMDsgfVxuICAgIC53b29jb21tZXJjZSAuY29sMi1zZXQgLmNvbC0xLFxuICAgIC53b29jb21tZXJjZSAuY29sMi1zZXQgLmNvbC0yLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC5jb2wyLXNldCAuY29sLTEsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLmNvbDItc2V0IC5jb2wtMiB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMsXG4gICAgLndvb2NvbW1lcmNlIGRpdi5wcm9kdWN0IGRpdi5zdW1tYXJ5LFxuICAgIC53b29jb21tZXJjZSAjY29udGVudCBkaXYucHJvZHVjdCBkaXYuaW1hZ2VzLFxuICAgIC53b29jb21tZXJjZSAjY29udGVudCBkaXYucHJvZHVjdCBkaXYuc3VtbWFyeSxcbiAgICAud29vY29tbWVyY2UtcGFnZSBkaXYucHJvZHVjdCBkaXYuaW1hZ2VzLFxuICAgIC53b29jb21tZXJjZS1wYWdlIGRpdi5wcm9kdWN0IGRpdi5zdW1tYXJ5LFxuICAgIC53b29jb21tZXJjZS1wYWdlICNjb250ZW50IGRpdi5wcm9kdWN0IGRpdi5pbWFnZXMsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgI2NvbnRlbnQgZGl2LnByb2R1Y3QgZGl2LnN1bW1hcnkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC53b29jb21tZXJjZSB0YWJsZS5jYXJ0IC5wcm9kdWN0LXRodW1ibmFpbCxcbiAgICAud29vY29tbWVyY2UgI2NvbnRlbnQgdGFibGUuY2FydCAucHJvZHVjdC10aHVtYm5haWwsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuY2FydCAucHJvZHVjdC10aHVtYm5haWwsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgI2NvbnRlbnQgdGFibGUuY2FydCAucHJvZHVjdC10aHVtYm5haWwge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC53b29jb21tZXJjZSB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMsXG4gICAgLndvb2NvbW1lcmNlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyxcbiAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgI2NvbnRlbnQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAgIC53b29jb21tZXJjZSB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbixcbiAgICAgIC53b29jb21tZXJjZSAjY29udGVudCB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgI2NvbnRlbnQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb24ge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgKnpvb206IDE7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVlbTsgfVxuICAgICAgICAud29vY29tbWVyY2UgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb246OmJlZm9yZSwgLndvb2NvbW1lcmNlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uOjphZnRlcixcbiAgICAgICAgLndvb2NvbW1lcmNlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uOjpiZWZvcmUsXG4gICAgICAgIC53b29jb21tZXJjZSAjY29udGVudCB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbjo6YWZ0ZXIsXG4gICAgICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uOjpiZWZvcmUsXG4gICAgICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uOjphZnRlcixcbiAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgI2NvbnRlbnQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb246OmJlZm9yZSxcbiAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgI2NvbnRlbnQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb246OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAgICAgLndvb2NvbW1lcmNlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uOjphZnRlcixcbiAgICAgICAgLndvb2NvbW1lcmNlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uOjphZnRlcixcbiAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb246OmFmdGVyLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSAjY29udGVudCB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbjo6YWZ0ZXIge1xuICAgICAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgICAgIC53b29jb21tZXJjZSB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbiBpbnB1dCxcbiAgICAgICAgLndvb2NvbW1lcmNlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIC5idXR0b24sXG4gICAgICAgIC53b29jb21tZXJjZSB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbiAuaW5wdXQtdGV4dCxcbiAgICAgICAgLndvb2NvbW1lcmNlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIGlucHV0LFxuICAgICAgICAud29vY29tbWVyY2UgI2NvbnRlbnQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb24gLmJ1dHRvbixcbiAgICAgICAgLndvb2NvbW1lcmNlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIC5pbnB1dC10ZXh0LFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbiBpbnB1dCxcbiAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb24gLmJ1dHRvbixcbiAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5jb3Vwb24gLmlucHV0LXRleHQsXG4gICAgICAgIC53b29jb21tZXJjZS1wYWdlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIGlucHV0LFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSAjY29udGVudCB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbiAuYnV0dG9uLFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSAjY29udGVudCB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbiAuaW5wdXQtdGV4dCB7XG4gICAgICAgICAgd2lkdGg6IDQ4JTtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgICAgIC53b29jb21tZXJjZSB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbiAuaW5wdXQtdGV4dCArIC5idXR0b24sXG4gICAgICAgIC53b29jb21tZXJjZSB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbiAuYnV0dG9uLmFsdCxcbiAgICAgICAgLndvb2NvbW1lcmNlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIC5pbnB1dC10ZXh0ICsgLmJ1dHRvbixcbiAgICAgICAgLndvb2NvbW1lcmNlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIC5idXR0b24uYWx0LFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbiAuaW5wdXQtdGV4dCArIC5idXR0b24sXG4gICAgICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIC5idXR0b24uYWx0LFxuICAgICAgICAud29vY29tbWVyY2UtcGFnZSAjY29udGVudCB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmNvdXBvbiAuaW5wdXQtdGV4dCArIC5idXR0b24sXG4gICAgICAgIC53b29jb21tZXJjZS1wYWdlICNjb250ZW50IHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuY291cG9uIC5idXR0b24uYWx0IHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAgIC53b29jb21tZXJjZSB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmJ1dHRvbixcbiAgICAgIC53b29jb21tZXJjZSAjY29udGVudCB0YWJsZS5jYXJ0IHRkLmFjdGlvbnMgLmJ1dHRvbixcbiAgICAgIC53b29jb21tZXJjZS1wYWdlIHRhYmxlLmNhcnQgdGQuYWN0aW9ucyAuYnV0dG9uLFxuICAgICAgLndvb2NvbW1lcmNlLXBhZ2UgI2NvbnRlbnQgdGFibGUuY2FydCB0ZC5hY3Rpb25zIC5idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAud29vY29tbWVyY2UgLmNhcnQtY29sbGF0ZXJhbHMgLmNhcnRfdG90YWxzLFxuICAgIC53b29jb21tZXJjZSAuY2FydC1jb2xsYXRlcmFscyAuc2hpcHBpbmdfY2FsY3VsYXRvcixcbiAgICAud29vY29tbWVyY2UgLmNhcnQtY29sbGF0ZXJhbHMgLmNyb3NzLXNlbGxzLFxuICAgIC53b29jb21tZXJjZS1wYWdlIC5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyxcbiAgICAud29vY29tbWVyY2UtcGFnZSAuY2FydC1jb2xsYXRlcmFscyAuc2hpcHBpbmdfY2FsY3VsYXRvcixcbiAgICAud29vY29tbWVyY2UtcGFnZSAuY2FydC1jb2xsYXRlcmFscyAuY3Jvc3Mtc2VsbHMge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAud29vY29tbWVyY2Uud29vY29tbWVyY2UtY2hlY2tvdXQgZm9ybS5sb2dpbiAuZm9ybS1yb3csXG4gICAgLndvb2NvbW1lcmNlLXBhZ2Uud29vY29tbWVyY2UtY2hlY2tvdXQgZm9ybS5sb2dpbiAuZm9ybS1yb3cge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTsgfVxuICAgIC53b29jb21tZXJjZSAjcGF5bWVudCAudGVybXMsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgI3BheW1lbnQgLnRlcm1zIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgLndvb2NvbW1lcmNlICNwYXltZW50ICNwbGFjZV9vcmRlcixcbiAgICAud29vY29tbWVyY2UtcGFnZSAjcGF5bWVudCAjcGxhY2Vfb3JkZXIge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxZW07IH1cbiAgICAud29vY29tbWVyY2UgLmxvc3RfcmVzZXRfcGFzc3dvcmQgLmZvcm0tcm93LWZpcnN0LFxuICAgIC53b29jb21tZXJjZSAubG9zdF9yZXNldF9wYXNzd29yZCAuZm9ybS1yb3ctbGFzdCxcbiAgICAud29vY29tbWVyY2UtcGFnZSAubG9zdF9yZXNldF9wYXNzd29yZCAuZm9ybS1yb3ctZmlyc3QsXG4gICAgLndvb2NvbW1lcmNlLXBhZ2UgLmxvc3RfcmVzZXRfcGFzc3dvcmQgLmZvcm0tcm93LWxhc3Qge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAud29vY29tbWVyY2UtYWNjb3VudCAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24sXG4gIC53b29jb21tZXJjZS1hY2NvdW50IC53b29jb21tZXJjZS1NeUFjY291bnQtY29udGVudCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLyoqXHJcbiAgICogVHdlbnR5IFRoaXJ0ZWVuIHNwZWNpZmljIHN0eWxlc1xyXG4gICAqL1xuICAuc2luZ2xlLXByb2R1Y3QgLnR3ZW50eXRoaXJ0ZWVuIC5wYW5lbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMjBweCAhaW1wb3J0YW50OyB9IH1cbiIsIiRjb2xvcl9fYmFja2dyb3VuZC1ib2R5OiAjZmZmO1xyXG4kY29sb3JfX2JhY2tncm91bmQtc2NyZWVuOiAjZjFmMWYxO1xyXG4kY29sb3JfX2JhY2tncm91bmQtaHI6ICNjY2M7XHJcbiRjb2xvcl9fYmFja2dyb3VuZC1idXR0b246ICNlNmU2ZTY7XHJcbiRjb2xvcl9fYmFja2dyb3VuZC1wcmU6ICNlZWU7XHJcbiRjb2xvcl9fYmFja2dyb3VuZC1pbnM6ICNmZmY5YzA7XHJcbiR3aGl0ZTogJGNvbG9yX19iYWNrZ3JvdW5kLWJvZHk7XHJcblxyXG5cclxuJGNvbG9yX190ZXh0LW1haW46ICM0MDQwNDA7XHJcblxyXG4kY29sb3JfX3RleHQtc2NyZWVuOiAjMjE3NTliO1xyXG4kY29sb3JfX3RleHQtaW5wdXQ6ICM2NjY7XHJcbiRjb2xvcl9fdGV4dC1pbnB1dC1mb2N1czogIzExMTtcclxuXHJcbiRjb2xvcl9fbGluazogIzAwMDtcclxuJGNvbG9yX19saW5rLXZpc2l0ZWQ6IGxpZ2h0ZW4oJGNvbG9yX19saW5rLDEwJSk7XHJcbiRjb2xvcl9fbGluay1ob3ZlcjogIzI0OTRCQztcclxuXHJcblxyXG4kY29sb3JfX2JvcmRlci1idXR0b246ICNjY2MgI2NjYyAjYmJiO1xyXG4kY29sb3JfX2JvcmRlci1idXR0b24taG92ZXI6ICNjY2MgI2JiYiAjYWFhO1xyXG4kY29sb3JfX2JvcmRlci1idXR0b24tZm9jdXM6ICNhYWEgI2JiYiAjYmJiO1xyXG4kY29sb3JfX2JvcmRlci1pbnB1dDogI2NjYztcclxuJGNvbG9yX19ib3JkZXItYWJicjogIzY2NjtcclxuXHJcbiRibHVlOiAjMkVCQUVDO1xyXG4kYmx1ZV9vcGFjOiByZ2JhKDQ2LDE4NiwyMzYsLjE3KTtcclxuJGJsdWVfbWVudTogcmdiYSg0NiwxODYsMjM2LC41MCk7XHJcblxyXG4kZ3JlZW46ICMwRUM5OTc7XHJcbiRkYXJrYmx1ZTogIzE0MjMyRjtcclxuJGJvcmRlcl9jb2xvcjogI0VBRUFFQTtcclxuJGxpZ2h0Z3JheTogI0Y3RjdGNztcclxuXHJcbiRibHVlX2FpcjogIzY1OERBRDtcclxuXHJcbi8qXHJcbiAgICBERU5JRklSRSB2YXJpYWJsZXNcclxuKi8gXHJcbiRoZWFkZXItYmc6IHJnYmEoMCwwLDAsMC40MSk7XHJcbiRtb2JpbGUtbWVudS1iZzogcmdiYSgwLDAsMCwwLjcxKTtcclxuJGNvbG9yLXdoaXRlOiAjZmZmO1xyXG4kY29sb3ItcmVkOiAjRTUwQTE5O1xyXG4kY29sb3ItZ3JheTogIzk5OTk5OTsiLCIvLyAgRm9udHMgYW5kIGljb25zXHJcbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gTWl4aW4gZm9yIGFkZGluZyBjdXN0b20gZm9udHMgaW4gdGhlIGRpciAvZm9udHMvZm9udGZvbGRlcm5hbWUvZm9udC1yZWd1bGFyXHJcbi8vIGV4YW1wbGUgL2ZvbnRzL2F2ZXJ0YS9hdmVydGEtYm9sZC53b2ZmXHJcbi8vIGV4YW1wbGUgL2ZvbnRzL2F2ZXJ0YS9hdmVydGEtcmVndWxhci53b2ZmXHJcblxyXG5AbWl4aW4gZm9udGRlZigkcGF0aCwgJGZpbGVuYW1lLCAkdmVyc2lvbiwgJHR5cGU6XCJSZWd1bGFyXCIpIHtcclxuICBzcmM6IHVybChcIi93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvI3skcGF0aH0vI3skZmlsZW5hbWV9LSN7JHR5cGV9LmVvdD8jaWVmaXgmdj0jeyR2ZXJzaW9ufVwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcclxuICB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzLyN7JHBhdGh9LyN7JGZpbGVuYW1lfS0jeyR0eXBlfS53b2ZmJnY9I3skdmVyc2lvbn1cIikgZm9ybWF0KFwid29mZlwiKSxcclxuICB1cmwoXCIvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzLyN7JHBhdGh9LyN7JGZpbGVuYW1lfS0jeyR0eXBlfS50dGYmdj0jeyR2ZXJzaW9ufVwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcclxufVxyXG5cclxuXHJcblxyXG4vKiByb2JvdG8tY29uZGVuc2VkLXJlZ3VsYXIgLSBsYXRpbl9jeXJpbGxpYyAqL1xyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ1JvYm90byBDb25kZW5zZWQnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIHNyYzogdXJsKCcvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90b2NvbmRlbnNlZC9yb2JvdG8tY29uZGVuc2VkLXYxOS1sYXRpbl9jeXJpbGxpYy1yZWd1bGFyLmVvdCcpOyAvKiBJRTkgQ29tcGF0IE1vZGVzICovXHJcbiAgc3JjOiBsb2NhbCgnJyksXHJcbiAgICAgICB1cmwoJy93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvY29uZGVuc2VkL3JvYm90by1jb25kZW5zZWQtdjE5LWxhdGluX2N5cmlsbGljLXJlZ3VsYXIuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgLyogSUU2LUlFOCAqL1xyXG4gICAgICAgdXJsKCcvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90b2NvbmRlbnNlZC9yb2JvdG8tY29uZGVuc2VkLXYxOS1sYXRpbl9jeXJpbGxpYy1yZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCAvKiBTdXBlciBNb2Rlcm4gQnJvd3NlcnMgKi9cclxuICAgICAgIHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG9jb25kZW5zZWQvcm9ib3RvLWNvbmRlbnNlZC12MTktbGF0aW5fY3lyaWxsaWMtcmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIC8qIE1vZGVybiBCcm93c2VycyAqL1xyXG4gICAgICAgdXJsKCcvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90b2NvbmRlbnNlZC9yb2JvdG8tY29uZGVuc2VkLXYxOS1sYXRpbl9jeXJpbGxpYy1yZWd1bGFyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgLyogU2FmYXJpLCBBbmRyb2lkLCBpT1MgKi9cclxuICAgICAgIHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG9jb25kZW5zZWQvcm9ib3RvLWNvbmRlbnNlZC12MTktbGF0aW5fY3lyaWxsaWMtcmVndWxhci5zdmcjUm9ib3RvQ29uZGVuc2VkJykgZm9ybWF0KCdzdmcnKTsgLyogTGVnYWN5IGlPUyAqL1xyXG59XHJcbi8qIHJvYm90by1jb25kZW5zZWQtNzAwIC0gbGF0aW5fY3lyaWxsaWMgKi9cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gQ29uZGVuc2VkJztcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBzcmM6IHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG9jb25kZW5zZWQvcm9ib3RvLWNvbmRlbnNlZC12MTktbGF0aW5fY3lyaWxsaWMtNzAwLmVvdCcpOyAvKiBJRTkgQ29tcGF0IE1vZGVzICovXHJcbiAgc3JjOiBsb2NhbCgnJyksXHJcbiAgICAgICB1cmwoJy93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvY29uZGVuc2VkL3JvYm90by1jb25kZW5zZWQtdjE5LWxhdGluX2N5cmlsbGljLTcwMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCAvKiBJRTYtSUU4ICovXHJcbiAgICAgICB1cmwoJy93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvY29uZGVuc2VkL3JvYm90by1jb25kZW5zZWQtdjE5LWxhdGluX2N5cmlsbGljLTcwMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgLyogU3VwZXIgTW9kZXJuIEJyb3dzZXJzICovXHJcbiAgICAgICB1cmwoJy93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvY29uZGVuc2VkL3JvYm90by1jb25kZW5zZWQtdjE5LWxhdGluX2N5cmlsbGljLTcwMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIC8qIE1vZGVybiBCcm93c2VycyAqL1xyXG4gICAgICAgdXJsKCcvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90b2NvbmRlbnNlZC9yb2JvdG8tY29uZGVuc2VkLXYxOS1sYXRpbl9jeXJpbGxpYy03MDAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCAvKiBTYWZhcmksIEFuZHJvaWQsIGlPUyAqL1xyXG4gICAgICAgdXJsKCcvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90b2NvbmRlbnNlZC9yb2JvdG8tY29uZGVuc2VkLXYxOS1sYXRpbl9jeXJpbGxpYy03MDAuc3ZnI1JvYm90b0NvbmRlbnNlZCcpIGZvcm1hdCgnc3ZnJyk7IC8qIExlZ2FjeSBpT1MgKi9cclxufVxyXG4vKiByb2JvdG8tY29uZGVuc2VkLTMwMCAtIGxhdGluX2N5cmlsbGljICovXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIENvbmRlbnNlZCc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgc3JjOiB1cmwoJy93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvY29uZGVuc2VkL3JvYm90by1jb25kZW5zZWQtdjE5LWxhdGluX2N5cmlsbGljLTMwMC5lb3QnKTsgLyogSUU5IENvbXBhdCBNb2RlcyAqL1xyXG4gIHNyYzogbG9jYWwoJycpLFxyXG4gICAgICAgdXJsKCcvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90b2NvbmRlbnNlZC9yb2JvdG8tY29uZGVuc2VkLXYxOS1sYXRpbl9jeXJpbGxpYy0zMDAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgLyogSUU2LUlFOCAqL1xyXG4gICAgICAgdXJsKCcvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90b2NvbmRlbnNlZC9yb2JvdG8tY29uZGVuc2VkLXYxOS1sYXRpbl9jeXJpbGxpYy0zMDAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIC8qIFN1cGVyIE1vZGVybiBCcm93c2VycyAqL1xyXG4gICAgICAgdXJsKCcvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90b2NvbmRlbnNlZC9yb2JvdG8tY29uZGVuc2VkLXYxOS1sYXRpbl9jeXJpbGxpYy0zMDAud29mZicpIGZvcm1hdCgnd29mZicpLCAvKiBNb2Rlcm4gQnJvd3NlcnMgKi9cclxuICAgICAgIHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG9jb25kZW5zZWQvcm9ib3RvLWNvbmRlbnNlZC12MTktbGF0aW5fY3lyaWxsaWMtMzAwLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgLyogU2FmYXJpLCBBbmRyb2lkLCBpT1MgKi9cclxuICAgICAgIHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG9jb25kZW5zZWQvcm9ib3RvLWNvbmRlbnNlZC12MTktbGF0aW5fY3lyaWxsaWMtMzAwLnN2ZyNSb2JvdG9Db25kZW5zZWQnKSBmb3JtYXQoJ3N2ZycpOyAvKiBMZWdhY3kgaU9TICovXHJcbn1cclxuXHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ1JvYm90byc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiAxMDA7XHJcbiAgc3JjOiB1cmwoJy93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvL3JvYm90by12MjAtbGF0aW5fY3lyaWxsaWMtZXh0LTEwMC5lb3QnKTsgLyogSUU5IENvbXBhdCBNb2RlcyAqL1xyXG4gIHNyYzogbG9jYWwoJycpLFxyXG4gICAgICAgdXJsKCcvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90by9yb2JvdG8tdjIwLWxhdGluX2N5cmlsbGljLWV4dC0xMDAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgLyogSUU2LUlFOCAqL1xyXG4gICAgICAgdXJsKCcvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90by9yb2JvdG8tdjIwLWxhdGluX2N5cmlsbGljLWV4dC0xMDAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIC8qIFN1cGVyIE1vZGVybiBCcm93c2VycyAqL1xyXG4gICAgICAgdXJsKCcvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90by9yb2JvdG8tdjIwLWxhdGluX2N5cmlsbGljLWV4dC0xMDAud29mZicpIGZvcm1hdCgnd29mZicpLCAvKiBNb2Rlcm4gQnJvd3NlcnMgKi9cclxuICAgICAgIHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG8vcm9ib3RvLXYyMC1sYXRpbl9jeXJpbGxpYy1leHQtMTAwLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgLyogU2FmYXJpLCBBbmRyb2lkLCBpT1MgKi9cclxuICAgICAgIHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG8vcm9ib3RvLXYyMC1sYXRpbl9jeXJpbGxpYy1leHQtMTAwLnN2ZyNSb2JvdG8nKSBmb3JtYXQoJ3N2ZycpOyAvKiBMZWdhY3kgaU9TICovXHJcbn1cclxuLyogcm9ib3RvLXJlZ3VsYXIgLSBsYXRpbl9jeXJpbGxpYy1leHQgKi9cclxuXHJcbi8qIHJvYm90by03MDAgLSBsYXRpbl9jeXJpbGxpYy1leHQgKi9cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIHNyYzogdXJsKCcvd3AtY29udGVudC90aGVtZXMvZGVuaWZpcmUvYXNzZXRzL2ZvbnRzL1JvYm90by9yb2JvdG8tdjIwLWxhdGluX2N5cmlsbGljLWV4dC03MDAuZW90Jyk7IC8qIElFOSBDb21wYXQgTW9kZXMgKi9cclxuICBzcmM6IGxvY2FsKCcnKSxcclxuICAgICAgIHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG8vcm9ib3RvLXYyMC1sYXRpbl9jeXJpbGxpYy1leHQtNzAwLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIC8qIElFNi1JRTggKi9cclxuICAgICAgIHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG8vcm9ib3RvLXYyMC1sYXRpbl9jeXJpbGxpYy1leHQtNzAwLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCAvKiBTdXBlciBNb2Rlcm4gQnJvd3NlcnMgKi9cclxuICAgICAgIHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL2RlbmlmaXJlL2Fzc2V0cy9mb250cy9Sb2JvdG8vcm9ib3RvLXYyMC1sYXRpbl9jeXJpbGxpYy1leHQtNzAwLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgLyogTW9kZXJuIEJyb3dzZXJzICovXHJcbiAgICAgICB1cmwoJy93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvL3JvYm90by12MjAtbGF0aW5fY3lyaWxsaWMtZXh0LTcwMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIC8qIFNhZmFyaSwgQW5kcm9pZCwgaU9TICovXHJcbiAgICAgICB1cmwoJy93cC1jb250ZW50L3RoZW1lcy9kZW5pZmlyZS9hc3NldHMvZm9udHMvUm9ib3RvL3JvYm90by12MjAtbGF0aW5fY3lyaWxsaWMtZXh0LTcwMC5zdmcjUm9ib3RvJykgZm9ybWF0KCdzdmcnKTsgLyogTGVnYWN5IGlPUyAqL1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6ICdSb2JvdG8gQ29uZGVuc2VkJyAsSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxuJGZvbnQtZmFtaWx5LXNlcmlmOiAnUm9ib3RvJywgJ1RpbWVzIE5ldyBSb21hbicsIHNlcmlmO1xyXG4kZm9udC1mYW1pbGktcGFyYWdyYXBoOiAnUm9ib3RvIENvbmRlbnNlZCcsIEhlbHZldGljYTtcclxuXHJcblxyXG5cclxuJGZvbnRfX21haW46ICRmb250LWZhbWlsaS1wYXJhZ3JhcGg7XHJcbiRmb250X19jb2RlOiBBcmlhbCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiRmb250X19wcmU6IFwiQ291cmllciAxMCBQaXRjaFwiLCBDb3VyaWVyLCBtb25vc3BhY2U7XHJcbiRmb250X19saW5lLWhlaWdodC1ib2R5OiAxLjU7XHJcbiRmb250X19saW5lLWhlaWdodC1wcmU6IDEuNjtcclxuXHJcbiRiYXNlX2ZvbnRfc2l6ZTogMTZweDtcclxuJGZvbnRfZmFtaWx5OiAkZm9udC1mYW1pbGktcGFyYWdyYXBoO1xyXG4kZm9udF9mYW1pbHlfbWVudTogJGZvbnQtZmFtaWxpLXBhcmFncmFwaDtcclxuJGZvbnRfZmFtaWx5X2hlYWRpbmdzOiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZjtcclxuXHJcblxyXG4kZWFzaW5nOiBlYXNlLW91dDtcclxuXHJcblxyXG4vLyBQWCB0byBFTS9SRU0gLSBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9pc2VsbHNvYXAvODI5OTcyNlxyXG5cclxuJGJhc2UtZm9udC1zaXplOiAkYmFzZV9mb250X3NpemU7XHJcblxyXG4vKipcclxuICogU3RyaXBzIHRoZSB1bml0IGZyb20gYSBnaXZlbiBudW1iZXItdW5pdC1jb21iaW5hdGlvbiBhbmQgcmV0dXJucyB0aGUgbnVtYmVyLlxyXG4gKiBAbGluazogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTIzMzU4NDEvMTc3OTk5OVxyXG4gKiBAdXNhZ2U6IHBhcnNlLWludCgxMHB4KSA9PiAxMFxyXG4gKi9cclxuXHJcbkBmdW5jdGlvbiBwYXJzZS1pbnQoJG51bWJlcikge1xyXG4gIEByZXR1cm4gJG51bWJlciAvICgkbnVtYmVyICogMCArIDEpO1xyXG59XHJcblxyXG4vKipcclxuICogU2ltcGx5IGFkZHMgdGhlIGVtIHVuaXQgdG8gYSBnaXZlbiBudW1iZXIuIFRoaXMgaXMgdXNlZCB0d2ljZSBpbiB0aGVcclxuICogZnVuY3Rpb24gdW5kZXJuZWF0aCwgdGh1cyB0aGUgbmVlZCBmb3IgYSBzZXBhcmF0ZSBmdW5jdGlvbi5cclxuICovXHJcblxyXG5AZnVuY3Rpb24gYWRkLWVtLXVuaXQoJG51bWJlcikge1xyXG4gIEByZXR1cm4gJG51bWJlciAqIDFlbTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGFkZC1yZW0tdW5pdCgkbnVtYmVyKSB7XHJcbiAgQHJldHVybiAkbnVtYmVyICogMXJlbTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgZW0gdmFsdWVzIGZvciBhIGdpdmVuIGxpc3Qgb2YgKHB4IG9yIGVtKSB2YWx1ZXMgYW5kIGEgZ2l2ZW4gZW1cclxuICogYmFzZS4gTXVsdGlwbHkgYmFzZSB2YWx1ZXMgZm9yIG5lc3RlZCBlbSBzdHJ1Y3R1cmVzIChsYXN0IEB1c2FnZSBleGFtcGxlKS5cclxuICogQHVzYWdlOiBlbSgxMHB4LCAxLjEyNSkgPT4gLjU1NTU2ZW1cclxuICogICAgICAgICBlbSgyNHB4LCAuODc1ZW0pID0+IDEuNzE0MjllbVxyXG4gKiAgICAgICAgIGVtKDEycHggMCA3ZW0gcmdiYSgwLCAwLCAwLCAuNyksIDEuNzUpID0+IC40Mjg1N2VtIDAgNGVtIHJnYmEoMCwgMCwgMCwgMC43KVxyXG4gKiAgICAgICAgIGVtKDEycHgpICsgZW0oM2VtKSA9PiAzLjc1ZW1cclxuICogICAgICAgICBlbSgyM3B4LCBlbSg1M3B4KSkgPT4gLjQzMzk2ZW1cclxuICogICAgICAgICBlbSgyNHB4LCAxLjUgKiAxLjEyNSkgPT4gLjg4ODg5ZW1cclxuICovXHJcblxyXG5AZnVuY3Rpb24gZW0oJHZhbHVlcywgJGVtLWJhc2U6IDEpIHtcclxuICAkYmFzZS1mb250LXNpemU6IHBhcnNlLWludCgkYmFzZS1mb250LXNpemUpO1xyXG4gICRlbS1iYXNlOiBwYXJzZS1pbnQoJGVtLWJhc2UpO1xyXG4gICRyZXN1bHQ6ICgpO1xyXG5cclxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XHJcbiAgICBAaWYgJHZhbHVlID09IDAgb3IgdHlwZS1vZigkdmFsdWUpICE9IFwibnVtYmVyXCIge1xyXG4gICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgJHZhbHVlKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkdW5pdDogdW5pdCgkdmFsdWUpO1xyXG4gICAgICAkdmFsdWU6IHBhcnNlLWludCgkdmFsdWUpO1xyXG5cclxuICAgICAgQGlmICR1bml0ID09IFwicHhcIiB7XHJcbiAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIGFkZC1lbS11bml0KCR2YWx1ZSAvICgkYmFzZS1mb250LXNpemUgKiAkZW0tYmFzZSkpKTtcclxuICAgICAgfSBAZWxzZSBpZiAkdW5pdCA9PSBcImVtXCIge1xyXG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBhZGQtZW0tdW5pdCgkdmFsdWUgLyAkZW0tYmFzZSkpO1xyXG4gICAgICB9IEBlbHNlIGlmICR1bml0ID09IFwiXCIge1xyXG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBhZGQtZW0tdW5pdCgkdmFsdWUgLyAoJGJhc2UtZm9udC1zaXplICogJGVtLWJhc2UpKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIG9ubHkgb25lIHZhbHVlIGlzIHByb3ZpZGVkLCBvdXRwdXQgdGhlIGluc3RhbmNlIG9mIHRoYXQgb2JqZWN0IGluc3RlYWRcclxuICAgKiBvZiB0aGUgd2hvbGUgbGlzdC4gVGhpcyBlbmFibGVzIHVzZSBjYXNlcyBsaWtlIG5lc3RlZCBmdW5jdGlvbiBpbnZvY2F0aW9uc1xyXG4gICAqIChlLmcuIGBlbSgycHgsIGVtKDE1cHgpKWApIG9yIGFkZGl0aW9ucy9zdWJ0cmFjdGlvbnMgKGUuZy4gYGVtKDVweCkgKyBlbSgzMnB4KWApLlxyXG4gICAqL1xyXG4gIEBpZiBsZW5ndGgoJHJlc3VsdCkgPT0gMSB7XHJcbiAgICBAcmV0dXJuIG50aCgkcmVzdWx0LCAxKTtcclxuICB9IEBlbHNlIHtcclxuICAgIEByZXR1cm4gJHJlc3VsdDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5AZnVuY3Rpb24gcmVtKCR2YWx1ZXMsICRlbS1iYXNlOiAxKSB7XHJcbiAgJGJhc2UtZm9udC1zaXplOiBwYXJzZS1pbnQoJGJhc2UtZm9udC1zaXplKTtcclxuICAkZW0tYmFzZTogcGFyc2UtaW50KCRlbS1iYXNlKTtcclxuICAkcmVzdWx0OiAoKTtcclxuXHJcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xyXG4gICAgQGlmICR2YWx1ZSA9PSAwIG9yIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bWJlclwiIHtcclxuICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICR2YWx1ZSk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJHVuaXQ6IHVuaXQoJHZhbHVlKTtcclxuICAgICAgJHZhbHVlOiBwYXJzZS1pbnQoJHZhbHVlKTtcclxuXHJcbiAgICAgIEBpZiAkdW5pdCA9PSBcInB4XCIge1xyXG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBhZGQtcmVtLXVuaXQoJHZhbHVlIC8gKCRiYXNlLWZvbnQtc2l6ZSAqICRlbS1iYXNlKSkpO1xyXG4gICAgICB9IEBlbHNlIGlmICR1bml0ID09IFwiZW1cIiB7XHJcbiAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIGFkZC1yZW0tdW5pdCgkdmFsdWUgLyAkZW0tYmFzZSkpO1xyXG4gICAgICB9IEBlbHNlIGlmICR1bml0ID09IFwiXCIge1xyXG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBhZGQtcmVtLXVuaXQoJHZhbHVlIC8gKCRiYXNlLWZvbnQtc2l6ZSAqICRlbS1iYXNlKSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJZiBvbmx5IG9uZSB2YWx1ZSBpcyBwcm92aWRlZCwgb3V0cHV0IHRoZSBpbnN0YW5jZSBvZiB0aGF0IG9iamVjdCBpbnN0ZWFkXHJcbiAgICogb2YgdGhlIHdob2xlIGxpc3QuIFRoaXMgZW5hYmxlcyB1c2UgY2FzZXMgbGlrZSBuZXN0ZWQgZnVuY3Rpb24gaW52b2NhdGlvbnNcclxuICAgKiAoZS5nLiBgZW0oMnB4LCBlbSgxNXB4KSlgKSBvciBhZGRpdGlvbnMvc3VidHJhY3Rpb25zIChlLmcuIGBlbSg1cHgpICsgZW0oMzJweClgKS5cclxuICAgKi9cclxuICBAaWYgbGVuZ3RoKCRyZXN1bHQpID09IDEge1xyXG4gICAgQHJldHVybiBudGgoJHJlc3VsdCwgMSk7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuICRyZXN1bHQ7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuIiwiXHJcbi8vIFdvb0NvbW1lcmNlIGNvbG9yIHZhcmlhYmxlc1xyXG4kd29vY29tbWVyY2VfX2NvbG9yLWVycm9yOiAjZTI0MDFjO1xyXG4kd29vY29tbWVyY2VfX2NvbG9yLXN1Y2Nlc3M6ICMwZjgzNGQ7XHJcbiR3b29jb21tZXJjZV9fY29sb3ItaW5mbzogIzNkOWNkMjtcclxuXHJcbi8vIEltcG9ydCB2YXJpYWJsZXMgYW5kIG1peGluc1xyXG5AaW1wb3J0IFwidmFyaWFibGVzL3ZhcmlhYmxlcy1zaXRlXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvbWl4aW5zLW1hc3RlclwiO1xyXG5cclxuLyoqXHJcbiAqIEltcG9ydHNcclxuICovXHJcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9hbmltYXRpb25cIjtcclxuQGltcG9ydCBcIndvb2NvbW1lcmNlL2ZvbnRzXCI7XHJcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9taXhpbnNcIjtcclxuQGltcG9ydCBcIndvb2NvbW1lcmNlL3ZhcmlhYmxlc1wiO1xyXG5cclxuLyoqXHJcbiAqIEJhc2ljIExheW91dFxyXG4gKi9cclxuQGltcG9ydCBcIndvb2NvbW1lcmNlL2xheW91dFwiO1xyXG5cclxuLyoqXHJcbiAqIFNob3AgdGFibGVzXHJcbiAqL1xyXG5AaW1wb3J0IFwid29vY29tbWVyY2UvdGFibGVzXCI7XHJcblxyXG4vKipcclxuICogUHJvZHVjdHNcclxuICovXHJcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9wcm9kdWN0c1wiO1xyXG5cclxuLyoqXHJcbiAqIFNpbmdsZSBwcm9kdWN0XHJcbiAqL1xyXG5AaW1wb3J0IFwid29vY29tbWVyY2Uvc2luZ2xlLXByb2R1Y3RcIjtcclxuXHJcbi8qKlxyXG4gKiBDaGVja291dFxyXG4gKi9cclxuQGltcG9ydCBcIndvb2NvbW1lcmNlL2NoZWNrb3V0XCI7XHJcblxyXG4vKipcclxuICogQ2FydFxyXG4gKi9cclxuQGltcG9ydCBcIndvb2NvbW1lcmNlL2NhcnRcIjtcclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFsIFdvb0NvbW1lcmNlIGNvbXBvbmVudHNcclxuICovXHJcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9jb21wb25lbnRzXCI7XHJcblxyXG4vKipcclxuICogV29vQ29tbWVyY2Ugd2lkZ2V0c1xyXG4gKi9cclxuQGltcG9ydCBcIndvb2NvbW1lcmNlL3dpZGdldHNcIjtcclxuXHJcbi8qKlxyXG4gKiBXb29Db21tZXJjZSBBY2NvdW50IHBhZ2VzXHJcbiAqL1xyXG5AaW1wb3J0IFwid29vY29tbWVyY2UvYWNjb3VudFwiO1xyXG5cclxuLyoqXHJcbiAqIFdvb0NvbW1lcmNlIFByb2R1Y3QgTGlzdFxyXG4gKi9cclxuQGltcG9ydCBcIndvb2NvbW1lcmNlL3Byb2R1Y3RfbGlzdFwiO1xyXG5cclxuLyoqXHJcbiAqIFdvb0NvbW1lcmNlIFNtYWxsU2NyZWVuXHJcbiAqL1xyXG5AaW1wb3J0IFwid29vY29tbWVyY2Uvd29vY29tbWVyY2Vfc21hbGxzY3JlZW5cIjtcclxuIiwiLyoqXHJcbiAqIF9hbmltYXRpb24uc2Nzc1xyXG4gKiBDdXN0b20gV29vQ29tbWVyY2UgQW5pbWF0aW9ucy5cclxuICovXHJcbkBrZXlmcmFtZXMgc3BpbiB7XHJcblx0MTAwJSB7XHJcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSggMzYwZGVnICk7XHJcblx0fVxyXG59XHJcbiIsIi8qKlxyXG4gKiBfZm9udHMuc2Nzc1xyXG4gKiBDdXN0b20gV29vQ29tbWVyY2UgZm9udHMuXHJcbiAqL1xyXG5AZm9udC1mYWNlIHtcclxuXHRmb250LWZhbWlseTogJ3N0YXInO1xyXG5cdHNyYzogdXJsKCcuLi9mb250cy9zdGFyLmVvdCcpO1xyXG5cdHNyYzogdXJsKCcuLi9mb250cy9zdGFyLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXHJcblx0XHR1cmwoJy4uL2ZvbnRzL3N0YXIud29mZicpIGZvcm1hdCgnd29mZicpLFxyXG5cdFx0dXJsKCcuLi9mb250cy9zdGFyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcclxuXHRcdHVybCgnLi4vZm9udHMvc3Rhci5zdmcjc3RhcicpIGZvcm1hdCgnc3ZnJyk7XHJcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHRmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG5cdGZvbnQtZmFtaWx5OiAnV29vQ29tbWVyY2UnO1xyXG5cdHNyYzogdXJsKCcuLi9mb250cy9Xb29Db21tZXJjZS5lb3QnKTtcclxuXHRzcmM6IHVybCgnLi4vZm9udHMvV29vQ29tbWVyY2UuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuXHRcdHVybCgnLi4vZm9udHMvV29vQ29tbWVyY2Uud29mZicpIGZvcm1hdCgnd29mZicpLFxyXG5cdFx0dXJsKCcuLi9mb250cy9Xb29Db21tZXJjZS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXHJcblx0XHR1cmwoJy4uL2ZvbnRzL1dvb0NvbW1lcmNlLnN2ZyNXb29Db21tZXJjZScpIGZvcm1hdCgnc3ZnJyk7XHJcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHRmb250LXN0eWxlOiBub3JtYWw7XHJcbn0iLCIvKipcclxuICogRGVwcmVjYXRlZFxyXG4gKiBGYWxsYmFjayBmb3IgYm91cmJvbiBlcXVpdmFsZW50XHJcbiAqL1xyXG5AbWl4aW4gY2xlYXJmaXgoKSB7XHJcblx0Knpvb206IDE7XHJcblxyXG5cdCY6OmJlZm9yZSxcclxuXHQmOjphZnRlciB7XHJcblx0XHRjb250ZW50OiAnICc7XHJcblx0XHRkaXNwbGF5OiB0YWJsZTtcclxuXHR9XHJcblxyXG5cdCY6OmFmdGVyIHtcclxuXHRcdGNsZWFyOiBib3RoO1xyXG5cdH1cclxufVxyXG5cclxuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xyXG5AbWl4aW4gYm9yZGVyX3JhZGl1cygkcmFkaXVzOiA0cHgpIHtcclxuXHRib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG59XHJcblxyXG4vKipcclxuICogRGVwcmVjYXRlZFxyXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cclxuICovXHJcbkBtaXhpbiBib3JkZXJfcmFkaXVzX3JpZ2h0KCRyYWRpdXM6IDRweCkge1xyXG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xyXG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xyXG59XHJcblxyXG4vKipcclxuICogRGVwcmVjYXRlZFxyXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cclxuICovXHJcbkBtaXhpbiBib3JkZXJfcmFkaXVzX2xlZnQoJHJhZGl1czogNHB4KSB7XHJcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcclxuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xyXG59XHJcblxyXG4vKipcclxuICogRGVwcmVjYXRlZFxyXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cclxuICovXHJcbkBtaXhpbiBib3JkZXJfcmFkaXVzX2JvdHRvbSgkcmFkaXVzOiA0cHgpIHtcclxuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xyXG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xyXG59XHJcblxyXG4vKipcclxuICogRGVwcmVjYXRlZFxyXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cclxuICovXHJcbkBtaXhpbiBib3JkZXJfcmFkaXVzX3RvcCgkcmFkaXVzOiA0cHgpIHtcclxuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xyXG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xyXG59XHJcblxyXG4vKipcclxuICogRGVwcmVjYXRlZFxyXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cclxuICovXHJcbkBtaXhpbiBvcGFjaXR5KCAkb3BhY2l0eTogMC43NSApIHtcclxuXHRvcGFjaXR5OiAkb3BhY2l0eTtcclxufVxyXG5cclxuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xyXG5AbWl4aW4gYm94X3NoYWRvdygkc2hhZG93X3g6IDNweCwgJHNoYWRvd195OiAzcHgsICRzaGFkb3dfcmFkOiAzcHgsICRzaGFkb3dfaW46IDNweCwgJHNoYWRvd19jb2xvcjogIzg4OCkge1xyXG5cdGJveC1zaGFkb3c6ICRzaGFkb3dfeCAkc2hhZG93X3kgJHNoYWRvd19yYWQgJHNoYWRvd19pbiAkc2hhZG93X2NvbG9yO1xyXG59XHJcblxyXG4vKipcclxuICogRGVwcmVjYXRlZFxyXG4gKiBWZW5kb3IgcHJlZml4IG5vIGxvbmdlciByZXF1aXJlZC5cclxuICovXHJcbkBtaXhpbiBpbnNldF9ib3hfc2hhZG93KCRzaGFkb3dfeDogM3B4LCAkc2hhZG93X3k6IDNweCwgJHNoYWRvd19yYWQ6IDNweCwgJHNoYWRvd19pbjogM3B4LCAkc2hhZG93X2NvbG9yOiAjODg4KSB7XHJcblx0Ym94LXNoYWRvdzogaW5zZXQgJHNoYWRvd194ICRzaGFkb3dfeSAkc2hhZG93X3JhZCAkc2hhZG93X2luICRzaGFkb3dfY29sb3I7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXByZWNhdGVkXHJcbiAqIFZlbmRvciBwcmVmaXggbm8gbG9uZ2VyIHJlcXVpcmVkLlxyXG4gKi9cclxuQG1peGluIHRleHRfc2hhZG93KCRzaGFkb3dfeDogM3B4LCAkc2hhZG93X3k6IDNweCwgJHNoYWRvd19yYWQ6IDNweCwgJHNoYWRvd19jb2xvcjogI2ZmZikge1xyXG5cdHRleHQtc2hhZG93OiAkc2hhZG93X3ggJHNoYWRvd195ICRzaGFkb3dfcmFkICRzaGFkb3dfY29sb3I7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXByZWNhdGVkXHJcbiAqIFZlbmRvciBwcmVmaXggbm8gbG9uZ2VyIHJlcXVpcmVkLlxyXG4gKi9cclxuQG1peGluIHZlcnRpY2FsX2dyYWRpZW50KCRmcm9tOiAjMDAwLCAkdG86ICNmZmYpIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZnJvbTtcclxuXHRiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkZnJvbSwgJHRvKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVmVuZG9yIHByZWZpeCBubyBsb25nZXIgcmVxdWlyZWQuXHJcbiAqL1xyXG5AbWl4aW4gdHJhbnNpdGlvbigkc2VsZWN0b3I6IGFsbCwgJGFuaW1hdGlvbjogZWFzZS1pbi1vdXQsICRkdXJhdGlvbjogMC4ycykge1xyXG5cdHRyYW5zaXRpb246ICRzZWxlY3RvciAkYW5pbWF0aW9uICRkdXJhdGlvbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVXNlIGJvdXJib24gbWl4aW4gaW5zdGVhZCBgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEuNSkpO2BcclxuICovXHJcbkBtaXhpbiBzY2FsZSgkcmF0aW86IDEuNSkge1xyXG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgkcmF0aW8pO1xyXG5cdHRyYW5zZm9ybTogc2NhbGUoJHJhdGlvKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIERlcHJlY2F0ZWRcclxuICogVXNlIGJvdXJib24gbWl4aW4gaW5zdGVhZCBgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtgXHJcbiAqL1xyXG5AbWl4aW4gYm9yZGVyYm94KCkge1xyXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbkBtaXhpbiBkYXJrb3JsaWdodHRleHRzaGFkb3coJGEsICRvcGFjaXR5OiAwLjgpIHtcclxuXHRAaWYgbGlnaHRuZXNzKCRhKSA+PSA2NSUge1xyXG5cdFx0QGluY2x1ZGUgdGV4dF9zaGFkb3coMCwgLTFweCwgMCwgcmdiYSgwLCAwLCAwLCAkb3BhY2l0eSkpO1xyXG5cdH1cclxuXHRAZWxzZSB7XHJcblx0XHRAaW5jbHVkZSB0ZXh0X3NoYWRvdygwLCAxcHgsIDAsIHJnYmEoMjU1LCAyNTUsIDI1NSwgJG9wYWNpdHkpKTtcclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBPYmplY3RzXHJcbiAqL1xyXG5AbWl4aW4gbWVudSgpIHtcclxuXHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xyXG5cclxuXHRsaSB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gbWVkaWFyaWdodCgpIHtcclxuXHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xyXG5cclxuXHRpbWcge1xyXG5cdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0aGVpZ2h0OiBhdXRvO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIG1lZGlhbGVmdCgpIHtcclxuXHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xyXG5cclxuXHRpbWcge1xyXG5cdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0aGVpZ2h0OiBhdXRvO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGlyKCkge1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdHRleHQtaW5kZW50OiAtOTk5OXB4O1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRoZWlnaHQ6IDFlbTtcclxuXHR3aWR0aDogMWVtO1xyXG59XHJcblxyXG5AbWl4aW4gaWNvbiggJGdseXBoOiAnXFxlMDAxJyApIHtcclxuXHRmb250LWZhbWlseTogJ1dvb0NvbW1lcmNlJztcclxuXHRzcGVhazogbm9uZTtcclxuXHRmb250LXdlaWdodDogbm9ybWFsO1xyXG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xyXG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG5cdGxpbmUtaGVpZ2h0OiAxO1xyXG5cdG1hcmdpbjogMDtcclxuXHR0ZXh0LWluZGVudDogMDtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRjb250ZW50OiAkZ2x5cGg7XHJcbn1cclxuXHJcbkBtaXhpbiBpY29uX2Rhc2hpY29ucyggJGdseXBoOiAnXFxmMzMzJyApIHtcclxuXHRmb250LWZhbWlseTogJ0Rhc2hpY29ucyc7XHJcblx0c3BlYWs6IG5vbmU7XHJcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHRmb250LXZhcmlhbnQ6IG5vcm1hbDtcclxuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuXHRsaW5lLWhlaWdodDogMTtcclxuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuXHRtYXJnaW46IDA7XHJcblx0dGV4dC1pbmRlbnQ6IDA7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRsZWZ0OiAwO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0Y29udGVudDogJGdseXBoO1xyXG59XHJcblxyXG5AbWl4aW4gaWNvbmJlZm9yZSggJGdseXBoOiAnXFxlMDAxJyApIHtcclxuXHRmb250LWZhbWlseTogJ1dvb0NvbW1lcmNlJztcclxuXHRzcGVhazogbm9uZTtcclxuXHRmb250LXdlaWdodDogbm9ybWFsO1xyXG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xyXG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG5cdGxpbmUtaGVpZ2h0OiAxO1xyXG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG5cdG1hcmdpbi1yaWdodDogMC42MThlbTtcclxuXHRjb250ZW50OiAkZ2x5cGg7XHJcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG5AbWl4aW4gaWNvbmJlZm9yZWRhc2hpY29ucyggJGdseXBoOiAnXFxmMzMzJyApIHtcclxuXHRmb250LWZhbWlseTogJ0Rhc2hpY29ucyc7XHJcblx0c3BlYWs6IG5vbmU7XHJcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHRmb250LXZhcmlhbnQ6IG5vcm1hbDtcclxuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuXHRsaW5lLWhlaWdodDogMTtcclxuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuXHRjb250ZW50OiAkZ2x5cGg7XHJcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG5AbWl4aW4gaWNvbmFmdGVyKCAkZ2x5cGg6ICdcXGUwMDEnICkge1xyXG5cdGZvbnQtZmFtaWx5OiAnV29vQ29tbWVyY2UnO1xyXG5cdHNwZWFrOiBub25lO1xyXG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcblx0Zm9udC12YXJpYW50OiBub3JtYWw7XHJcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcblx0bGluZS1oZWlnaHQ6IDE7XHJcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcblx0bWFyZ2luLWxlZnQ6IDAuNjE4ZW07XHJcblx0Y29udGVudDogJGdseXBoO1xyXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuQG1peGluIGxvYWRlcigpIHtcclxuXHQmOjpiZWZvcmUge1xyXG5cdFx0aGVpZ2h0OiAxZW07XHJcblx0XHR3aWR0aDogMWVtO1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IDUwJTtcclxuXHRcdGxlZnQ6IDUwJTtcclxuXHRcdG1hcmdpbi1sZWZ0OiAtMC41ZW07XHJcblx0XHRtYXJnaW4tdG9wOiAtMC41ZW07XHJcblx0XHRjb250ZW50OiAnJztcclxuXHRcdGFuaW1hdGlvbjogc3BpbiAxcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxuXHRcdGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2ljb25zL2xvYWRlci5zdmcnKSBjZW50ZXIgY2VudGVyO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Zm9udC1zaXplOiAyZW07XHJcblx0XHRjb2xvcjogcmdiYSgjMDAwLCAwLjc1KTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVXRpbGl0eSBjbGFzc2VzXHJcbiAqL1xyXG4uY2xlYXIge1xyXG5cdGNsZWFyOiBib3RoO1xyXG59IiwiLyoqXHJcbiAqIFdvb0NvbW1lcmNlIENTUyBWYXJpYWJsZXNcclxuICovXHJcblxyXG4kd29vY29tbWVyY2U6ICAgXHQjYTQ2NDk3ICFkZWZhdWx0O1xyXG4kZ3JlZW46ICAgICAgICAgXHQjN2FkMDNhICFkZWZhdWx0O1xyXG4kcmVkOiAgICAgICAgICAgXHQjYTAwICFkZWZhdWx0O1xyXG4kb3JhbmdlOiAgICAgICAgXHQjZmZiYTAwICFkZWZhdWx0O1xyXG4kYmx1ZTogICAgICAgICAgXHQjMmVhMmNjICFkZWZhdWx0O1xyXG5cclxuJHByaW1hcnk6ICAgICAgICAgICAjYTQ2NDk3ICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByaW1hcnkgY29sb3IgZm9yIGJ1dHRvbnMgKGFsdClcclxuJHByaW1hcnl0ZXh0OiAgICAgICBkZXNhdHVyYXRlKGxpZ2h0ZW4oJHByaW1hcnksIDUwJSksIDE4JSkgIWRlZmF1bHQ7ICAgIC8vIFRleHQgb24gcHJpbWFyeSBjb2xvciBiZ1xyXG5cclxuJHNlY29uZGFyeTogICAgICAgICBkZXNhdHVyYXRlKGxpZ2h0ZW4oJHByaW1hcnksIDQwJSksIDIxJSkgIWRlZmF1bHQ7ICAgIC8vIFNlY29uZGFyeSBidXR0b25zXHJcbiRzZWNvbmRhcnl0ZXh0OiAgICAgZGVzYXR1cmF0ZShkYXJrZW4oJHNlY29uZGFyeSwgNjAlKSwgMjElKSAhZGVmYXVsdDsgICAvLyBUZXh0IG9uIHNlY29uZGFyeSBjb2xvciBiZ1xyXG5cclxuJGhpZ2hsaWdodDogICAgICAgICBhZGp1c3QtaHVlKCRwcmltYXJ5LCAxNTBkZWcpICFkZWZhdWx0OyAgICAgICAgICAgICAgIC8vIFByaWNlcywgSW4gc3RvY2sgbGFiZWxzLCBzYWxlcyBmbGFzaFxyXG4kaGlnaGxpZ2h0ZXh0OiAgICAgIGRlc2F0dXJhdGUobGlnaHRlbigkaGlnaGxpZ2h0LCA1MCUpLCAxOCUpICFkZWZhdWx0OyAgLy8gVGV4dCBvbiBoaWdobGlnaHQgY29sb3IgYmdcclxuXHJcbiRjb250ZW50Ymc6ICAgICAgICAgI2ZmZiAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDb250ZW50IEJHIC0gVGFicyAoYWN0aXZlIHN0YXRlKVxyXG4kc3VidGV4dDogICAgICAgICAgICM3Njc2NzYgIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc21hbGwsIGJyZWFkY3J1bWJzIGV0Y1xyXG4iLCIud29vY29tbWVyY2UsXHJcbi53b29jb21tZXJjZS1wYWdlIHtcclxuICAvKipcclxuXHQgKiBHZW5lcmFsIGxheW91dCBzdHlsZXNcclxuXHQgKi9cclxuICAuY29sMi1zZXQge1xyXG5cclxuICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAuY29sLTEge1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgd2lkdGg6IDQ4JTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sLTIge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIHdpZHRoOiA0OCU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ud29vY29tbWVyY2UtcHJvZHVjdHMtaGVhZGVyX190aXRsZXtcclxuICBkaXNwbGF5OiBub25lO1xyXG59IFxyXG5cclxuLndvb2NvbW1lcmNlLWJyZWFkY3J1bWIge1xyXG4gIC8vIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi53b29jb21tZXJjZXtcclxuICAuc2l0ZS1jb250ZW50e1xyXG4gICAgLmNvbnRhaW5lcntcclxuICAgICAgXHJcbiAgICAgIEBpbmNsdWRlIGJwKGxhcHRvcHhzKXtcclxuICAgICAgICBtYXJnaW4tdG9wOiAzNnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnBvc3QtdHlwZS1hcmNoaXZlIHtcclxuICAgIC5jb250YWluZXJ7XHJcbiAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY29udGFpbmVye1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuICAgIC8vIG1hcmdpbi10b3A6IDExNHB4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpe1xyXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7ICAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxuICAmLnBvc3QtdHlwZS1hcmNoaXZle1xyXG4gICAgLnNpdGUtY29udGVudHtcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNpdGUtbWFpbntcclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG59IFxyXG5cclxuXHJcbi5wcm9kdWN0LXRlbXBsYXRlLWRlZmF1bHR7XHJcbiAgLnNpdGUtbWFpbiB7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuXHJcbiAgICBAaW5jbHVkZSBicChsYXB0b3B4c2Rvd24pIHtcclxuICAgICAgLy9tYXJnaW4tdG9wOiByZW0oMTAwKTtcclxuICAgIH1cclxuICB9XHJcbn0iLCJcclxuLy8gRGVmYXVsdCAtIDMyMSAtIDQwMFxyXG5cclxuQG1peGluIGJwKCRwb2ludCkge1xyXG5cclxuICBAaWYgJHBvaW50ID09IHBob25leHhze1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDMyMHB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuICBAaWYgJHBvaW50ID09IHBob25leHNkb3due1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDM2MHB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRwb2ludCA9PSBwaG9uZXhse1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQwMHB4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRwb2ludCA9PSBwaG9uZXhsZG93bntcclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MTVweCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkcG9pbnQgPT0gcGhvbmVwb3J0cmFpdCB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNTY4cHgpe1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkcG9pbnQgPT0gcGhvbmVwb3J0cmFpdE9ubHkge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDU2OHB4KSBhbmQgKG1heC13aWR0aDogNjcwcHgpe1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkcG9pbnQgPT0gcGhvbmVwb3J0cmFpdHhsT25seSB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzIwcHgpIGFuZCAobWF4LXdpZHRoOiA3NjdweCl7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHBvaW50ID09IHRhYmxldGRvd24ge1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KXtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkcG9pbnQgPT0gdGFibGV0IHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCl7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHBvaW50ID09IHRhYmxldGxhbmRzY2FwZXtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCl7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHBvaW50ID09IGxhcHRvcHhzIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpe1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICRwb2ludCA9PSBsYXB0b3B4c2Rvd24ge1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyNzlweCl7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHBvaW50ID09IGxhcHRvcCB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTM2NnB4KXtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkcG9pbnQgPT0gbGFwdG9weGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDE0NDBweCl7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHBvaW50ID09IGRlc2t0b3B4cyB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KXtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkcG9pbnQgPT0gZGVza3RvcCB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTkyMHB4KXtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkcG9pbnQgPT0gZGVza3RvcHhsIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAyNTAwcHgpe1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG59IiwiLyoqXHJcblx0ICogVGFibGVzXHJcblx0ICovXHJcbnRhYmxlLnNob3BfYXR0cmlidXRlcyB7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG5cdG1hcmdpbi1ib3R0b206IDEuNjE4ZW07XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0Ym9yZGVyLXNwYWNpbmc6IDA7XHJcblxyXG5cdHRye1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuXHR9XHJcblxyXG5cdHRoIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHRwYWRkaW5nOiA4cHg7XHJcblx0XHRib3JkZXItdG9wOiAwO1x0XHRcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxLjU7XHJcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuXHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuXHR9XHJcblxyXG5cdHRkIHtcclxuXHRcdHBhZGRpbmc6IDA7XHJcblx0XHRib3JkZXItdG9wOiAwO1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEuNTtcclxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcblxyXG5cdFx0Ji53b29jb21tZXJjZS1wcm9kdWN0LWF0dHJpYnV0ZXMtaXRlbV9fdmFsdWUge1xyXG5cdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdHBhZGRpbmc6IDhweCAyMHB4O1xyXG5cdFx0XHRjb2xvcjogI0U1MEExOTtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHRcdHB7XHJcblx0XHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRcclxufVxyXG5cclxudGFibGUuc2hvcF90YWJsZSB7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG5cdG1hcmdpbjogMCAtMXB4IDI0cHggMDtcclxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XHJcblx0Ym9yZGVyLXJhZGl1czogNXB4O1xyXG5cclxuXHR0aCB7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0cGFkZGluZzogOXB4IDEycHg7XHJcblx0XHRsaW5lLWhlaWdodDogMS41ZW07XHJcblx0fVxyXG5cclxuXHR0ZCB7XHJcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG5cdFx0cGFkZGluZzogOXB4IDEycHg7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEuNWVtO1xyXG5cclxuXHRcdHNtYWxsIHtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHRcdH1cclxuXHJcblx0XHRkZWwge1xyXG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dGJvZHk6Zmlyc3QtY2hpbGQgdHI6Zmlyc3QtY2hpbGQge1xyXG5cclxuXHRcdHRoLFxyXG5cdFx0dGQge1xyXG5cdFx0XHRib3JkZXItdG9wOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dGZvb3QgdGQsXHJcblx0dGZvb3QgdGgsXHJcblx0dGJvZHkgdGgge1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcblx0fVxyXG59XHJcblxyXG50YWJsZS5teV9hY2NvdW50X29yZGVycyB7XHJcblx0Zm9udC1zaXplOiAwLjg1ZW07XHJcblxyXG5cdHRoLFxyXG5cdHRkIHtcclxuXHRcdHBhZGRpbmc6IDRweCA4cHg7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdH1cclxuXHJcblx0LmJ1dHRvbiB7XHJcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdH1cclxufVxyXG5cclxudGFibGUud29vY29tbWVyY2UtTXlBY2NvdW50LWRvd25sb2FkcyB7XHJcblxyXG5cdHRkLFxyXG5cdHRoIHtcclxuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG5cdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHR9XHJcblxyXG5cdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHRcdH1cclxuXHJcblx0XHQud29vY29tbWVyY2UtTXlBY2NvdW50LWRvd25sb2Fkcy1maWxlOjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OiBcIlxcMjE5M1wiO1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG50ZC5wcm9kdWN0LW5hbWUge1xyXG5cclxuXHRkbC52YXJpYXRpb24sXHJcblx0LndjLWl0ZW0tbWV0YSB7XHJcblx0XHRsaXN0LXN0eWxlOiBub25lIG91dHNpZGU7XHJcblxyXG5cdFx0ZHQsXHJcblx0XHQud2MtaXRlbS1tZXRhLWxhYmVsIHtcclxuXHRcdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRcdGNsZWFyOiBib3RoO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDAuMjVlbTtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRsaXN0LXN0eWxlOiBub25lIG91dHNpZGU7XHJcblx0XHR9XHJcblxyXG5cdFx0ZGQge1xyXG5cdFx0XHRtYXJnaW46IDA7XHJcblx0XHR9XHJcblxyXG5cdFx0cCxcclxuXHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwLmJhY2tvcmRlcl9ub3RpZmljYXRpb24ge1xyXG5cdFx0Zm9udC1zaXplOiAwLjgzZW07XHJcblx0fVxyXG59XHJcblxyXG50ZC5wcm9kdWN0LXF1YW50aXR5IHtcclxuXHRtaW4td2lkdGg6IDgwcHg7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbiIsIi5wcm9kdWN0LWNhdGVnb3J5IHtcclxuICBhIHtcclxuICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB6LWluZGV4OiA5O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xyXG4gIH1cclxuXHJcbiAgaW1nIHtcclxuICAgIG1heC13aWR0aDogODBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcclxuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XHJcbiAgICBoZWlnaHQ6IDgwcHg7XHJcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gIH1cclxufVxyXG4iLCIvKipcclxuKiBQcm9kdWN0IFBhZ2VcclxuKi9cclxuXHJcbi50eXBlLXByb2R1Y3Qge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLy8gZmxleC13cmFwOiB3cmFwO1xyXG4gIG1heC13aWR0aDogJHNpdGVfd2lkdGg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuICAucHJvZHVjdF9fdGh1bWJuYWlsV3JhcHBlciB7XHJcbiAgICB3aWR0aDogMzclO1xyXG5cclxuICAgIEBpbmNsdWRlIGJwKHBob25leGxkb3duKSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJwKHRhYmxldGRvd24pIHtcclxuICAgICAgcGFkZGluZy10b3A6IHJlbSg4MCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud2lkZ2V0X3Byb2R1Y3RfY2F0ZWdvcmllcyB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgQGluY2x1ZGUgYnAobGFwdG9weHMpIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgICA+IHAge1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgZm9udC1zaXplOiByZW0oMjApO1xyXG4gICAgICBAaW5jbHVkZSBicChsYXB0b3B4cykge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDI2KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmVudHJ5LXN1bW1hcnkge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHJcbiAgICBAaW5jbHVkZSBicCh0YWJsZXRkb3duKSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiByZW0oMjApICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnAobGFwdG9weHNkb3duKSB7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wcm9kdWN0X19XcmFwcGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcblxyXG4gICAgPiBoMiB7XHJcbiAgICAgIEBpbmNsdWRlIGJwKHRhYmxldCkge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1bCB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIGxpIHtcclxuICAgICAgbGlzdC1zdHlsZTogZGlzYztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZS1UYWJzLXBhbmVsIHtcclxuICAgIGgyIHtcclxuICAgICAgQGluY2x1ZGUgYnAodGFibGV0ZG93bikge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnByb2R1Y3RfX3N1bW1hcnlXcmFwcGVyIHtcclxuICAgIHdpZHRoOiBjYWxjKDYzJSAtIDQxcHgpO1xyXG4gICAgcGFkZGluZy1sZWZ0OiByZW0oMjApO1xyXG5cclxuICAgIEBpbmNsdWRlIGJwKHRhYmxldGRvd24pIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucmVsYXRlZCB7XHJcbiAgICB1bCB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuXHJcbiAgICBoMiB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgIGZvbnQtc2l6ZTogZW0oMjYsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9kdWN0IHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX2xpbmsge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zaW5nbGUtcHJvZHVjdCB7XHJcbiAgLnNpdGUtY29udGVudCB7XHJcbiAgICBAaW5jbHVkZSBicChwaG9uZXhsZG93bikge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmRpdi5wcm9kdWN0IHtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgLnByb2R1Y3RfdGl0bGUge1xyXG4gICAgY2xlYXI6IG5vbmU7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuXHJcbiAgICBAaW5jbHVkZSBicCh0YWJsZXRkb3duKSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzcGFuLnByaWNlLFxyXG4gIHAucHJpY2Uge1xyXG4gICAgY29sb3I6ICRoaWdobGlnaHQ7XHJcbiAgICBmb250LXNpemU6IDEuMjVlbTtcclxuXHJcbiAgICBpbnMge1xyXG4gICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xyXG4gICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsIHtcclxuICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwLnN0b2NrIHtcclxuICAgIGZvbnQtc2l6ZTogMC45MmVtO1xyXG4gIH1cclxuXHJcbiAgLnN0b2NrIHtcclxuICAgIGNvbG9yOiAkaGlnaGxpZ2h0O1xyXG4gIH1cclxuXHJcbiAgLm91dC1vZi1zdG9jayB7XHJcbiAgICBjb2xvcjogcmVkO1xyXG4gIH1cclxuXHJcbiAgLndvb2NvbW1lcmNlLXByb2R1Y3QtcmF0aW5nIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDEuNjE4ZW07XHJcbiAgfVxyXG5cclxuICBkaXYuaW1hZ2VzIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcclxuXHJcbiAgICBpbWcge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICBkaXYudGh1bWJuYWlscyB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAxZW07XHJcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XHJcblxyXG4gICAgICBhIHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICB3aWR0aDogMzAuNzUlO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMy44JTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGEubGFzdCB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhLmZpcnN0IHtcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5jb2x1bW5zLTEge1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuY29sdW1ucy0yIHtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgIHdpZHRoOiA0OCU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmNvbHVtbnMtNCB7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICB3aWR0aDogMjIuMDUlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi5jb2x1bW5zLTUge1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgd2lkdGg6IDE2LjklO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX3dyYXBwZXIge1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgY3ViaWMtYmV6aWVyKDAuNzk1LCAtMC4wMzUsIDAsIDEpIDAuNXM7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuXHJcbiAgICAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X193cmFwcGVyIC56b29tSW1nIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgIH1cclxuXHJcbiAgICAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X19pbWFnZS0tcGxhY2Vob2xkZXIge1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjJmMmYyO1xyXG4gICAgfVxyXG5cclxuICAgIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX2ltYWdlOm50aC1jaGlsZChuICsgMikge1xyXG4gICAgICB3aWR0aDogMjUlO1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9fdHJpZ2dlciB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwLjVlbTtcclxuICAgICAgcmlnaHQ6IDAuNWVtO1xyXG4gICAgICBmb250LXNpemU6IDJlbTtcclxuICAgICAgei1pbmRleDogOTtcclxuICAgICAgd2lkdGg6IDM2cHg7XHJcbiAgICAgIGhlaWdodDogMzZweDtcclxuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG5cclxuICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiAxMHB4O1xyXG4gICAgICAgIGhlaWdodDogMTBweDtcclxuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjMDAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogOXB4O1xyXG4gICAgICAgIGxlZnQ6IDlweDtcclxuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDJweDtcclxuICAgICAgICBoZWlnaHQ6IDhweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAxOXB4O1xyXG4gICAgICAgIGxlZnQ6IDIycHg7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mbGV4LWNvbnRyb2wtdGh1bWJzIHtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgem9vbTogMTtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgIHdpZHRoOiAyNSU7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICAgICAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgICAgICAgJi5mbGV4LWFjdGl2ZSxcclxuICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeS0tY29sdW1ucy0zIHtcclxuICAgIC5mbGV4LWNvbnRyb2wtdGh1bWJzIGxpOm50aC1jaGlsZCgzbiArIDEpIHtcclxuICAgICAgY2xlYXI6IGxlZnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5LS1jb2x1bW5zLTQge1xyXG4gICAgLmZsZXgtY29udHJvbC10aHVtYnMgbGk6bnRoLWNoaWxkKDRuICsgMSkge1xyXG4gICAgICBjbGVhcjogbGVmdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnktLWNvbHVtbnMtNSB7XHJcbiAgICAuZmxleC1jb250cm9sLXRodW1icyBsaTpudGgtY2hpbGQoNW4gKyAxKSB7XHJcbiAgICAgIGNsZWFyOiBsZWZ0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGl2LnN1bW1hcnkge1xyXG4gICAgY2xlYXI6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBkaXYuc29jaWFsIHtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgbWFyZ2luOiAwIDAgMWVtO1xyXG5cclxuICAgIHNwYW4ge1xyXG4gICAgICBtYXJnaW46IDAgMCAwIDJweDtcclxuXHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnN0QnV0dG9uIC5jaGlja2xldHMge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTZweDtcclxuICAgICAgICB3aWR0aDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmcmFtZSB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICBtYXJnaW4tdG9wOiAzcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud29vY29tbWVyY2UtdGFicyB7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICAgIHVsLnRhYnMge1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBwYWRkaW5nOiAwIDAgMCAxZW07XHJcbiAgICAgIG1hcmdpbjogMCAwIDEuNjE4ZW07XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICAgIGxpIHtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJHNlY29uZGFyeSwgMTAlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5O1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgei1pbmRleDogMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcclxuICAgICAgICBtYXJnaW46IDAgLTVweDtcclxuICAgICAgICBwYWRkaW5nOiAwIDFlbTtcclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwLjVlbSAwO1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5dGV4dDtcclxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICBjb2xvcjogbGlnaHRlbigkc2Vjb25kYXJ5dGV4dCwgMTAlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb250ZW50Ymc7XHJcbiAgICAgICAgICB6LWluZGV4OiAyO1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbnRlbnRiZztcclxuXHJcbiAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiBpbmhlcml0O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDJweCAycHggMCAkY29udGVudGJnO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgYm94LXNoYWRvdzogLTJweCAycHggMCAkY29udGVudGJnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjo6YmVmb3JlLFxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkc2Vjb25kYXJ5LCAxMCUpO1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgYm90dG9tOiAtMXB4O1xyXG4gICAgICAgICAgd2lkdGg6IDVweDtcclxuICAgICAgICAgIGhlaWdodDogNXB4O1xyXG4gICAgICAgICAgY29udGVudDogXCIgXCI7XHJcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgIGxlZnQ6IC01cHg7XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xyXG4gICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHggMDtcclxuICAgICAgICAgIGJveC1zaGFkb3c6IDJweCAycHggMCAkc2Vjb25kYXJ5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgcmlnaHQ6IC01cHg7XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAxcHggMXB4O1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogLTJweCAycHggMCAkc2Vjb25kYXJ5O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgY29udGVudDogXCIgXCI7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGRhcmtlbigkc2Vjb25kYXJ5LCAxMCUpO1xyXG4gICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucGFuZWwge1xyXG4gICAgICBtYXJnaW46IDAgMCAyZW07XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwLmNhcnQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xyXG5cclxuICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XHJcbiAgfVxyXG5cclxuICBmb3JtLmNhcnQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xyXG5cclxuICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XHJcblxyXG4gICAgZGl2LnF1YW50aXR5IHtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIG1hcmdpbjogMCA0cHggMCAwO1xyXG4gICAgfVxyXG5cclxuICAgIHRhYmxlIHtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xyXG5cclxuICAgICAgdGQge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgZGl2LnF1YW50aXR5IHtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHNtYWxsLnN0b2NrIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC52YXJpYXRpb25zIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgICBib3JkZXI6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgdGQsXHJcbiAgICAgIHRoIHtcclxuICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsYWJlbCB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgc2VsZWN0IHtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWluLXdpZHRoOiA3NSU7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0ZC5sYWJlbCB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMWVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLXZhcmlhdGlvbi1kZXNjcmlwdGlvbiBwIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5yZXNldF92YXJpYXRpb25zIHtcclxuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICBmb250LXNpemU6IDAuODNlbTtcclxuICAgIH1cclxuXHJcbiAgICAud2Mtbm8tbWF0Y2hpbmctdmFyaWF0aW9ucyB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIC5ncm91cF90YWJsZSB7XHJcbiAgICAgIHRkLndvb2NvbW1lcmNlLWdyb3VwZWQtcHJvZHVjdC1saXN0LWl0ZW1fX2xhYmVsIHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRkIHtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVlbTtcclxuICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRkOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICB3aWR0aDogNGVtO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLndjLWdyb3VwZWQtcHJvZHVjdC1hZGQtdG8tY2FydC1jaGVja2JveCB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41LCAxLjUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uc2luZ2xlLXByb2R1Y3RfX3NrdSB7XHJcbiAgPiBwIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY7XHJcbiAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgJjpsYXN0LW9mLXR5cGUge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXJlZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1UYWJzLXBhbmVsLS1hZGRpdGlvbmFsX2luZm9ybWF0aW9uIHtcclxuICBoMiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuZGl2LnByb2R1Y3QgZGl2LmltYWdlcyBpbWcge1xyXG4gIG1heC1oZWlnaHQ6IDQ0NHB4O1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4ud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X193cmFwcGVyLFxyXG4ud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IHtcclxuICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG59XHJcbi5mbGV4LWNvbnRyb2wtbmF2IHtcclxuICBwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIiwiJHNpemVfX3NpdGUtbWFpbjogMTAwJTtcclxuJHNpemVfX3NpdGUtc2lkZWJhcjogMjUlO1xyXG5cclxuJHNpbmdsZV9wb3N0X2NvbnRlbnRfd2lkdGhfZGVza3RvcDogcmVtKDgzMik7XHJcblxyXG4kc2l0ZV93aWR0aDogMTIwMHB4OyIsIkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcblxyXG5cdC5jb2wyLXNldCB7XHJcblxyXG5cdFx0LmZvcm0tcm93LWZpcnN0IHtcclxuXHRcdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogJGNvbHVtbnNfX21hcmdpbjtcclxuXHRcdH1cclxuXHJcblx0XHQuZm9ybS1yb3ctbGFzdCB7XHJcblx0XHRcdGZsb2F0OiByaWdodDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5mb3JtLXJvdy1maXJzdCxcclxuXHRcdC5mb3JtLXJvdy1sYXN0IHtcclxuXHJcblx0XHRcdEBpbmNsdWRlIGNvbHVtbi13aWR0aCgyKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIENhcnQvY2hlY2tvdXQgcGFnZVxyXG4gKi9cclxuLndvb2NvbW1lcmNlLWNhcnQsXHJcbi53b29jb21tZXJjZS1jaGVja291dCxcclxuI2FkZF9wYXltZW50X21ldGhvZCB7XHJcblxyXG5cdHRhYmxlLmNhcnQge1xyXG5cclxuXHRcdC5wcm9kdWN0LXRodW1ibmFpbCB7XHJcblx0XHRcdG1pbi13aWR0aDogMzJweDtcclxuXHRcdFx0aW1ne1xyXG5cdFx0XHRcdHdpZHRoOiA3ZW07XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpbWcge1xyXG5cdFx0XHR3aWR0aDogMzJweDtcclxuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHRcdH1cclxuXHJcblx0XHR0aCxcclxuXHRcdHRkIHtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRcdH1cclxuXHJcblx0XHR0ZC5hY3Rpb25zIC5jb3Vwb24gLmlucHV0LXRleHQge1xyXG5cdFx0XHRmbG9hdDogbGVmdDtcclxuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgZGFya2VuKCRzZWNvbmRhcnksIDEwJSk7XHJcblx0XHRcdHBhZGRpbmc6IDZweCA2cHggNXB4O1xyXG5cdFx0XHRtYXJnaW46IDAgNHB4IDAgMDtcclxuXHRcdFx0b3V0bGluZTogMDtcclxuXHRcdH1cclxuXHJcblx0XHRpbnB1dCB7XHJcblx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0IHtcclxuXHJcblx0XHRAaW5jbHVkZSBjbGVhcmZpeDtcclxuXHRcdHBhZGRpbmc6IDFlbSAwO1xyXG5cclxuXHRcdGEuY2hlY2tvdXQtYnV0dG9uIHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMWVtO1xyXG5cdFx0XHRmb250LXNpemU6IDEuMjVlbTtcclxuXHRcdFx0cGFkZGluZzogMWVtO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNhcnQtY29sbGF0ZXJhbHMge1xyXG5cclxuXHRcdC5zaGlwcGluZy1jYWxjdWxhdG9yLWJ1dHRvbiB7XHJcblx0XHRcdGZsb2F0OiBub25lO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAwLjVlbTtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5zaGlwcGluZy1jYWxjdWxhdG9yLWJ1dHRvbjo6YWZ0ZXIge1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgaWNvbmFmdGVyKCBcIlxcZTAxOVwiICk7XHJcblx0XHR9XHJcblxyXG5cdFx0LnNoaXBwaW5nLWNhbGN1bGF0b3ItZm9ybSB7XHJcblx0XHRcdG1hcmdpbjogMWVtIDAgMCAwO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5jYXJ0X3RvdGFscyB7XHJcblxyXG5cdFx0XHRwIHNtYWxsIHtcclxuXHRcdFx0XHRjb2xvcjogJHN1YnRleHQ7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAwLjgzZW07XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRhYmxlIHtcclxuXHRcdFx0XHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xyXG5cdFx0XHRcdG1hcmdpbjogMCAwIDZweDtcclxuXHRcdFx0XHRwYWRkaW5nOiAwO1xyXG5cclxuXHRcdFx0XHR0cjpmaXJzdC1jaGlsZCB7XHJcblxyXG5cdFx0XHRcdFx0dGgsXHJcblx0XHRcdFx0XHR0ZCB7XHJcblx0XHRcdFx0XHRcdGJvcmRlci10b3A6IDA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR0aCB7XHJcblx0XHRcdFx0XHR3aWR0aDogMzUlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0dGQsXHJcblx0XHRcdFx0dGgge1xyXG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcclxuXHRcdFx0XHRcdGJvcmRlci1sZWZ0OiAwO1xyXG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAwO1xyXG5cdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuNWVtO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0c21hbGwge1xyXG5cdFx0XHRcdFx0Y29sb3I6ICRzdWJ0ZXh0O1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0c2VsZWN0IHtcclxuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LmRpc2NvdW50IHRkIHtcclxuXHRcdFx0XHRjb2xvcjogJGhpZ2hsaWdodDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dHIgdGQsXHJcblx0XHRcdHRyIHRoIHtcclxuXHRcdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgJHNlY29uZGFyeTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Lndvb2NvbW1lcmNlLXNoaXBwaW5nLWRlc3RpbmF0aW9uIHtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0LmNyb3NzLXNlbGxzIHVsLnByb2R1Y3RzIGxpLnByb2R1Y3Qge1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNoZWNrb3V0IHtcclxuXHJcblx0XHQuY29sLTIge1xyXG5cclxuXHRcdFx0aDMjc2hpcC10by1kaWZmZXJlbnQtYWRkcmVzcyB7XHJcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRcdFx0Y2xlYXI6IG5vbmU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5ub3RlcyB7XHJcblx0XHRcdFx0Y2xlYXI6IGxlZnQ7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5mb3JtLXJvdy1maXJzdCB7XHJcblx0XHRcdFx0Y2xlYXI6IGxlZnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQuY3JlYXRlLWFjY291bnQgc21hbGwge1xyXG5cdFx0XHRmb250LXNpemU6IDExcHg7XHJcblx0XHRcdGNvbG9yOiAkc3VidGV4dDtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuXHRcdH1cclxuXHJcblx0XHRkaXYuc2hpcHBpbmctYWRkcmVzcyB7XHJcblx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHRcdGNsZWFyOiBsZWZ0O1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdH1cclxuXHJcblx0XHQuc2hpcHBpbmdfYWRkcmVzcyB7XHJcblx0XHRcdGNsZWFyOiBib3RoO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0I3BheW1lbnQge1xyXG5cdFx0YmFja2dyb3VuZDogJHNlY29uZGFyeTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcclxuXHJcblx0XHR1bC5wYXltZW50X21ldGhvZHMge1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgY2xlYXJmaXgoKTtcclxuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHRcdFx0cGFkZGluZzogMWVtO1xyXG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCRzZWNvbmRhcnksIDEwJSk7XHJcblx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0bGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlO1xyXG5cclxuXHRcdFx0bGkge1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAyO1xyXG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcblxyXG5cdFx0XHRcdGlucHV0IHtcclxuXHRcdFx0XHRcdG1hcmdpbjogMCAxZW0gMCAwO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aW1nIHtcclxuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHRcdFx0XHRtYXJnaW46IC0ycHggMCAwIDAuNWVtO1xyXG5cdFx0XHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpbWcgKyBpbWcge1xyXG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDJweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGxpOm5vdCgud29vY29tbWVyY2Utbm90aWNlKSB7XHJcblxyXG5cdFx0XHRcdEBpbmNsdWRlIGNsZWFyZml4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0ZGl2LmZvcm0tcm93IHtcclxuXHRcdFx0cGFkZGluZzogMWVtO1xyXG5cdFx0fVxyXG5cclxuXHRcdGRpdi5wYXltZW50X2JveCB7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdHBhZGRpbmc6IDFlbTtcclxuXHRcdFx0bWFyZ2luOiAxZW0gMDtcclxuXHRcdFx0Zm9udC1zaXplOiAwLjkyZW07XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDJweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNTtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRzZWNvbmRhcnksIDUlKTtcclxuXHRcdFx0Y29sb3I6ICRzZWNvbmRhcnl0ZXh0O1xyXG5cclxuXHRcdFx0aW5wdXQuaW5wdXQtdGV4dCxcclxuXHRcdFx0dGV4dGFyZWEge1xyXG5cdFx0XHRcdGJvcmRlci1jb2xvcjogZGFya2VuKCRzZWNvbmRhcnksIDE1JSk7XHJcblx0XHRcdFx0Ym9yZGVyLXRvcC1jb2xvcjogZGFya2VuKCRzZWNvbmRhcnksIDIwJSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XHJcblx0XHRcdFx0Y29sb3I6IGRhcmtlbigkc2Vjb25kYXJ5LCAyMCUpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQ6LW1vei1wbGFjZWhvbGRlciB7XHJcblx0XHRcdFx0Y29sb3I6IGRhcmtlbigkc2Vjb25kYXJ5LCAyMCUpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuXHRcdFx0XHRjb2xvcjogZGFya2VuKCRzZWNvbmRhcnksIDIwJSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC53b29jb21tZXJjZS1TYXZlZFBheW1lbnRNZXRob2RzIHtcclxuXHRcdFx0XHRsaXN0LXN0eWxlOiBub25lIG91dHNpZGU7XHJcblx0XHRcdFx0bWFyZ2luOiAwO1xyXG5cclxuXHRcdFx0XHQud29vY29tbWVyY2UtU2F2ZWRQYXltZW50TWV0aG9kcy10b2tlbixcclxuXHRcdFx0XHQud29vY29tbWVyY2UtU2F2ZWRQYXltZW50TWV0aG9kcy1uZXcge1xyXG5cdFx0XHRcdFx0bWFyZ2luOiAwIDAgMC41ZW07XHJcblxyXG5cdFx0XHRcdFx0bGFiZWwge1xyXG5cdFx0XHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQud29vY29tbWVyY2UtU2F2ZWRQYXltZW50TWV0aG9kcy10b2tlbklucHV0IHtcclxuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHRcdFx0XHRtYXJnaW46IC0zcHggMWVtIDAgMDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC53Yy1jcmVkaXQtY2FyZC1mb3JtIHtcclxuXHRcdFx0XHRib3JkZXI6IDA7XHJcblx0XHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0XHRtYXJnaW46IDFlbSAwIDA7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtbnVtYmVyLFxyXG5cdFx0XHQud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeSxcclxuXHRcdFx0LndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1jdmMge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMS41ZW07XHJcblx0XHRcdFx0cGFkZGluZzogOHB4O1xyXG5cdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC42MThlbSBjZW50ZXI7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiAzMnB4IDIwcHg7XHJcblxyXG5cdFx0XHRcdCYudmlzYSB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY3JlZGl0LWNhcmRzL3Zpc2Euc3ZnXCIpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ji5tYXN0ZXJjYXJkIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jcmVkaXQtY2FyZHMvbWFzdGVyY2FyZC5zdmdcIik7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmLmxhc2VyIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jcmVkaXQtY2FyZHMvbGFzZXIuc3ZnXCIpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ji5kaW5lcnNjbHViIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jcmVkaXQtY2FyZHMvZGluZXJzLnN2Z1wiKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCYubWFlc3RybyB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY3JlZGl0LWNhcmRzL21hZXN0cm8uc3ZnXCIpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ji5qY2Ige1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NyZWRpdC1jYXJkcy9qY2Iuc3ZnXCIpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ji5hbWV4IHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jcmVkaXQtY2FyZHMvYW1leC5zdmdcIik7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmLmRpc2NvdmVyIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jcmVkaXQtY2FyZHMvZGlzY292ZXIuc3ZnXCIpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0c3Bhbi5oZWxwIHtcclxuXHRcdFx0XHRmb250LXNpemU6IDAuODU3ZW07XHJcblx0XHRcdFx0Y29sb3I6ICRzdWJ0ZXh0O1xyXG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5mb3JtLXJvdyB7XHJcblx0XHRcdFx0bWFyZ2luOiAwIDAgMWVtO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRwOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDogXCJcIjtcclxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0XHRib3JkZXI6IDFlbSBzb2xpZCBkYXJrZW4oJHNlY29uZGFyeSwgNSUpOyAvKiBhcnJvdyBzaXplIC8gY29sb3IgKi9cclxuXHRcdFx0XHRib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0XHRcdGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdFx0XHRib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOiAtMC43NWVtO1xyXG5cdFx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdFx0bWFyZ2luOiAtMWVtIDAgMCAyZW07XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQucGF5bWVudF9tZXRob2RfcGF5cGFsIHtcclxuXHJcblx0XHRcdC5hYm91dF9wYXlwYWwge1xyXG5cdFx0XHRcdGZsb2F0OiByaWdodDtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDogNTJweDtcclxuXHRcdFx0XHRmb250LXNpemU6IDAuODNlbTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aW1nIHtcclxuXHRcdFx0XHRtYXgtaGVpZ2h0OiA1MnB4O1xyXG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS10ZXJtcy1hbmQtY29uZGl0aW9ucyB7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcblx0YmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcclxufVxyXG5cclxuLndvb2NvbW1lcmNlLWludmFsaWQge1xyXG5cclxuXHQjdGVybXMge1xyXG5cdFx0b3V0bGluZTogMnB4IHNvbGlkIHJlZDtcclxuXHRcdG91dGxpbmUtb2Zmc2V0OiAycHg7XHJcblx0fVxyXG59IiwiJGNvbHVtbnM6IChcclxuICAgICAgICAxOiAxMDAlLFxyXG4gICAgICAgIDI6IDUwJSxcclxuICAgICAgICAzOiAzMy4zMyUsXHJcbiAgICAgICAgNDogMjUlLFxyXG4gICAgICAgIDU6IDIwJSxcclxuICAgICAgICA2OiAxNi42NiUsXHJcbiAgICAgICAgNzogMTQuMjglLFxyXG4gICAgICAgIDg6IDEyLjUlLFxyXG4gICAgICAgIDk6IDExLjExJVxyXG4pO1xyXG5cclxuJGNvbHVtbnNfX21hcmdpbjogMy44JTtcclxuIiwiLy8gUmVtIG91dHB1dCB3aXRoIHB4IGZhbGxiYWNrXHJcbkBtaXhpbiBmb250LXNpemUoJHNpemVWYWx1ZTogMSkge1xyXG5cdGZvbnQtc2l6ZTogKCRzaXplVmFsdWUgKiAxNikgKiAxcHg7XHJcblx0Zm9udC1zaXplOiAkc2l6ZVZhbHVlICogMXJlbTtcclxufVxyXG5cclxuLy8gQ2VudGVyIGJsb2NrXHJcbkBtaXhpbiBjZW50ZXItYmxvY2sge1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG5cdG1hcmdpbi1yaWdodDogYXV0bztcclxufVxyXG5cclxuLy8gQ2xlYXJmaXhcclxuQG1peGluIGNsZWFyZml4KCkge1xyXG5cdGNvbnRlbnQ6IFwiXCI7XHJcblx0ZGlzcGxheTogdGFibGU7XHJcblx0dGFibGUtbGF5b3V0OiBmaXhlZDtcclxufVxyXG5cclxuLy8gQ2xlYXIgYWZ0ZXIgKG5vdCBhbGwgY2xlYXJmaXggbmVlZCB0aGlzIGFsc28pXHJcbkBtaXhpbiBjbGVhcmZpeC1hZnRlcigpIHtcclxuXHRjbGVhcjogYm90aDtcclxufVxyXG5cclxuLy8gQ2VudGVyIGJsb2NrXHJcbkBtaXhpbiBjZW50ZXItYmxvY2sge1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG5cdG1hcmdpbi1yaWdodDogYXV0bztcclxufVxyXG5cclxuLy8gQ29sdW1uIHdpZHRoIHdpdGggbWFyZ2luXHJcbkBtaXhpbiBjb2x1bW4td2lkdGgoJG51bWJlckNvbHVtbnM6IDMpIHtcclxuXHR3aWR0aDogbWFwLWdldCgkY29sdW1ucywgJG51bWJlckNvbHVtbnMpIC0gKCAoICRjb2x1bW5zX19tYXJnaW4gKiAoICRudW1iZXJDb2x1bW5zIC0gMSApICkgLyAkbnVtYmVyQ29sdW1ucyApO1xyXG59XHJcbiIsIlxyXG4vKipcclxuICogQ2FydCBwYWdlXHJcbiAqL1xyXG5cclxuLndvb2NvbW1lcmNlLFxyXG4ud29vY29tbWVyY2UtcGFnZSB7XHJcblxyXG4gIHRhYmxlLmNhcnQsXHJcbiAgI2NvbnRlbnQgdGFibGUuY2FydCB7XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIHRkLmFjdGlvbnMge1xyXG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuXHJcbiAgICAgIC5pbnB1dC10ZXh0IHtcclxuICAgICAgICB3aWR0aDogODBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmNvdXBvbiB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY2FydC1jb2xsYXRlcmFscyB7XHJcblxyXG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgIC5yZWxhdGVkIHtcclxuICAgICAgd2lkdGg6IDMwLjc1JTtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmNyb3NzLXNlbGxzIHtcclxuICAgICAgd2lkdGg6IDQ4JTtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gICAgICB1bC5wcm9kdWN0cyB7XHJcbiAgICAgICAgZmxvYXQ6IG5vbmU7XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgIHdpZHRoOiA0OCU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNoaXBwaW5nX2NhbGN1bGF0b3Ige1xyXG4gICAgICB3aWR0aDogNDglO1xyXG5cclxuICAgICAgQGluY2x1ZGUgY2xlYXJmaXgoKTsgXHJcbiAgICAgIGNsZWFyOiByaWdodDtcclxuICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG5cclxuICAgICAgLmNvbDItc2V0IHtcclxuXHJcbiAgICAgICAgLmNvbC0xLFxyXG4gICAgICAgIC5jb2wtMiB7XHJcbiAgICAgICAgICB3aWR0aDogNDclO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jYXJ0X3RvdGFscyB7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgd2lkdGg6IDQ4JTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1zXHJcbiAgICovXHJcbiAgZm9ybSB7XHJcblxyXG4gICAgLmZvcm0tcm93IHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XHJcblxyXG4gICAgICBsYWJlbCB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgICAgICYuY2hlY2tib3gge1xyXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgc2VsZWN0IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmlucHV0LXRleHQge1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS1yb3ctZmlyc3QsXHJcbiAgICAuZm9ybS1yb3ctbGFzdCB7XHJcbiAgICAgIHdpZHRoOiA0NyU7XHJcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtLXJvdy1maXJzdCB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG5cclxuICAgICAgLypydGw6cmF3OlxyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICovXHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tcm93LWxhc3Qge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tcm93LXdpZGUge1xyXG4gICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxuXHJcbiAgICAucGFzc3dvcmQtaW5wdXQge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8qIEhpZGUgdGhlIEVkZ2UgXCJyZXZlYWwgcGFzc3dvcmRcIiBuYXRpdmUgYnV0dG9uICovXHJcbiAgICAgIGlucHV0OjotbXMtcmV2ZWFsIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNob3ctcGFzc3dvcmQtaW5wdXQge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0OiAwLjdlbTtcclxuICAgICAgdG9wOiAwLjdlbTtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5zaG93LXBhc3N3b3JkLWlucHV0OjphZnRlciB7XHJcblxyXG4gICAgICBAaW5jbHVkZSBpY29uYWZ0ZXIoIFwiXFxlMDEwXCIgKTsgXHQvLyBJY29uIHN0eWxlcyBhbmQgZ2x5cGhcclxuICAgIH1cclxuXHJcbiAgICAuc2hvdy1wYXNzd29yZC1pbnB1dC5kaXNwbGF5LXBhc3N3b3JkOjphZnRlciB7XHJcbiAgICAgIGNvbG9yOiAjNTg1ODU4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI3BheW1lbnQge1xyXG5cclxuICAgIC5mb3JtLXJvdyB7XHJcblxyXG4gICAgICBzZWxlY3Qge1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLndjLXRlcm1zLWFuZC1jb25kaXRpb25zLFxyXG4gICAgLnRlcm1zIHtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgcGFkZGluZzogMCAxZW0gMCAwO1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuXHJcbiAgICAjcGxhY2Vfb3JkZXIge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud29vY29tbWVyY2UtYmlsbGluZy1maWVsZHMsXHJcbiAgLndvb2NvbW1lcmNlLXNoaXBwaW5nLWZpZWxkcyB7XHJcblxyXG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZS10ZXJtcy1hbmQtY29uZGl0aW9ucyB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxLjYxOGVtO1xyXG4gICAgcGFkZGluZzogMS42MThlbTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG9FbWJlZHNcclxuICAgKi9cclxuICAud29vY29tbWVyY2Utb2VtYmVkIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB9XHJcblxyXG59IiwiLyoqXHJcbiAqIEhlYWRlciBjYXJ0XHJcbiAqL1xyXG4uc2l0ZS1oZWFkZXItY2FydCB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG1hcmdpbjogMDtcclxuXHRwYWRkaW5nOiAwO1xyXG5cclxuXHQuY2FydC1jb250ZW50cyB7XHJcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0fVxyXG5cclxuXHQud2lkZ2V0X3Nob3BwaW5nX2NhcnQge1xyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHR9XHJcblxyXG5cdC5wcm9kdWN0X2xpc3Rfd2lkZ2V0IHtcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdHBhZGRpbmc6IDA7XHJcblx0fVxyXG59XHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcclxuXHJcblx0LyoqXHJcbiAgICAgKiBIZWFkZXIgY2FydFxyXG4gICAgICovXHJcblx0LnNpdGUtaGVhZGVyLWNhcnQge1xyXG5cclxuXHRcdC53aWRnZXRfc2hvcHBpbmdfY2FydCB7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0dG9wOiAxMDAlO1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0ei1pbmRleDogOTk5OTk5O1xyXG5cdFx0XHRsZWZ0OiAtOTk5ZW07XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRib3gtc2hhZG93OiAwIDNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6aG92ZXIsXHJcblx0XHQmLmZvY3VzIHtcclxuXHJcblx0XHRcdC53aWRnZXRfc2hvcHBpbmdfY2FydCB7XHJcblx0XHRcdFx0bGVmdDogMDtcclxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcblxyXG4ud29vY29tbWVyY2UsXHJcbi53b29jb21tZXJjZS1wYWdlIHtcclxuXHJcblxyXG5cdC8qKlxyXG4gICAgICAgICAqIFJldmlld3NcclxuICAgICAgICAgKi9cclxuXHQjcmV2aWV3cyB7XHJcblxyXG5cdFx0aDIgc21hbGwge1xyXG5cdFx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRcdGNvbG9yOiAkc3VidGV4dDtcclxuXHRcdFx0Zm9udC1zaXplOiAxNXB4O1xyXG5cdFx0XHRtYXJnaW46IDEwcHggMCAwO1xyXG5cclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cdFx0XHRcdGNvbG9yOiAkc3VidGV4dDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGgzIHtcclxuXHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0fVxyXG5cclxuXHRcdCNyZXNwb25kIHtcclxuXHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHRib3JkZXI6IDA7XHJcblx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHR9XHJcblxyXG5cdFx0I2NvbW1lbnQge1xyXG5cdFx0XHRoZWlnaHQ6IDc1cHg7XHJcblx0XHR9XHJcblxyXG5cdFx0I2NvbW1lbnRzIHtcclxuXHJcblx0XHRcdC5hZGRfcmV2aWV3IHtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgY2xlYXJmaXgoKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aDIge1xyXG5cdFx0XHRcdGNsZWFyOiBub25lO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRvbC5jb21tZW50bGlzdCB7XHJcblxyXG5cdFx0XHRcdEBpbmNsdWRlIGNsZWFyZml4KCk7XHJcblx0XHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XHJcblx0XHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcclxuXHJcblx0XHRcdFx0bGkge1xyXG5cdFx0XHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0XHRcdG1hcmdpbjogMCAwIDIwcHg7XHJcblx0XHRcdFx0XHRib3JkZXI6IDA7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAwO1xyXG5cdFx0XHRcdFx0Ym9yZGVyOiAwO1xyXG5cclxuXHRcdFx0XHRcdC5tZXRhIHtcclxuXHRcdFx0XHRcdFx0Y29sb3I6ICRzdWJ0ZXh0O1xyXG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDAuNzVlbTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRpbWcuYXZhdGFyIHtcclxuXHRcdFx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRcdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAzcHg7XHJcblx0XHRcdFx0XHRcdHdpZHRoOiAzMnB4O1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6IGF1dG87XHJcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6ICRzZWNvbmRhcnk7XHJcblx0XHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkc2Vjb25kYXJ5LCAzJSk7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQuY29tbWVudC10ZXh0IHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOiAwIDAgMCA1MHB4O1xyXG5cdFx0XHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJHNlY29uZGFyeSwgMyUpO1xyXG5cdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA0cHg7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDFlbSAxZW0gMDtcclxuXHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIGNsZWFyZml4KCk7XHJcblxyXG5cdFx0XHRcdFx0XHRwIHtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW46IDAgMCAxZW07XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdHAubWV0YSB7XHJcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAwLjgzZW07XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHVsLmNoaWxkcmVuIHtcclxuXHRcdFx0XHRcdGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcclxuXHRcdFx0XHRcdG1hcmdpbjogMjBweCAwIDAgNTBweDtcclxuXHJcblx0XHRcdFx0XHQuc3Rhci1yYXRpbmcge1xyXG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0I3Jlc3BvbmQge1xyXG5cdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgZGFya2VuKCRzZWNvbmRhcnksIDMlKTtcclxuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHRcdFx0XHRcdHBhZGRpbmc6IDFlbSAxZW0gMDtcclxuXHRcdFx0XHRcdG1hcmdpbjogMjBweCAwIDAgNTBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5jb21tZW50bGlzdCA+IGxpOjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG4gICAgICogU3RhciByYXRpbmdzXHJcbiAgICAgKi9cclxuXHQuc3Rhci1yYXRpbmcge1xyXG5cdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdGhlaWdodDogMWVtO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDE7XHJcblx0XHRmb250LXNpemU6IDFlbTtcclxuXHRcdHdpZHRoOiA1LjRlbTtcclxuXHRcdGZvbnQtZmFtaWx5OiBcInN0YXJcIjtcclxuXHJcblx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OiBcIlxcNzNcXDczXFw3M1xcNzNcXDczXCI7XHJcblx0XHRcdGNvbG9yOiBkYXJrZW4oJHNlY29uZGFyeSwgMTAlKTtcclxuXHRcdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRcdHRvcDogMDtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0fVxyXG5cclxuXHRcdHNwYW4ge1xyXG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0XHRmbG9hdDogbGVmdDtcclxuXHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHBhZGRpbmctdG9wOiAxLjVlbTtcclxuXHRcdH1cclxuXHJcblx0XHRzcGFuOjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OiBcIlxcNTNcXDUzXFw1M1xcNTNcXDUzXCI7XHJcblx0XHRcdHRvcDogMDtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Lndvb2NvbW1lcmNlLXByb2R1Y3QtcmF0aW5nIHtcclxuXHJcblx0XHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDI7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHJcblx0XHQuc3Rhci1yYXRpbmcge1xyXG5cdFx0XHRtYXJnaW46IDAuNWVtIDRweCAwIDA7XHJcblx0XHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnByb2R1Y3RzIC5zdGFyLXJhdGluZyB7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdG1hcmdpbjogMCAwIDAuNWVtO1xyXG5cdFx0ZmxvYXQ6IG5vbmU7XHJcblx0fVxyXG5cclxuXHQuaHJldmlldy1hZ2dyZWdhdGUgLnN0YXItcmF0aW5nIHtcclxuXHRcdG1hcmdpbjogMTBweCAwIDA7XHJcblx0fVxyXG5cclxuXHQjcmV2aWV3X2Zvcm0gI3Jlc3BvbmQge1xyXG5cclxuXHRcdEBpbmNsdWRlIGNsZWFyZml4KCk7XHJcblx0XHRwb3NpdGlvbjogc3RhdGljO1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0d2lkdGg6IGF1dG87XHJcblx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm9uZTtcclxuXHRcdGJvcmRlcjogMDtcclxuXHJcblx0XHRwIHtcclxuXHRcdFx0bWFyZ2luOiAwIDAgMTBweDtcclxuXHRcdH1cclxuXHJcblx0XHQuZm9ybS1zdWJtaXQgaW5wdXQge1xyXG5cdFx0XHRsZWZ0OiBhdXRvO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRleHRhcmVhIHtcclxuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwLnN0YXJzIHtcclxuXHJcblx0XHRhIHtcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRoZWlnaHQ6IDFlbTtcclxuXHRcdFx0d2lkdGg6IDFlbTtcclxuXHRcdFx0dGV4dC1pbmRlbnQ6IC05OTllbTtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblxyXG5cdFx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6IDA7XHJcblx0XHRcdFx0bGVmdDogMDtcclxuXHRcdFx0XHR3aWR0aDogMWVtO1xyXG5cdFx0XHRcdGhlaWdodDogMWVtO1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xyXG5cdFx0XHRcdGZvbnQtZmFtaWx5OiBcIldvb0NvbW1lcmNlXCI7XHJcblx0XHRcdFx0Y29udGVudDogXCJcXGUwMjFcIjtcclxuXHRcdFx0XHR0ZXh0LWluZGVudDogMDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjpob3ZlciB+IGE6OmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDogXCJcXGUwMjFcIjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCY6aG92ZXIgYTo6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDogXCJcXGUwMjBcIjtcclxuXHRcdH1cclxuXHJcblx0XHQmLnNlbGVjdGVkIHtcclxuXHJcblx0XHRcdGEuYWN0aXZlIHtcclxuXHJcblx0XHRcdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6IFwiXFxlMDIwXCI7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR+IGE6OmJlZm9yZSB7XHJcblx0XHRcdFx0XHRjb250ZW50OiBcIlxcZTAyMVwiO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0YTpub3QoLmFjdGl2ZSk6OmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDogXCJcXGUwMjBcIjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUGFzc3dvcmQgc3RyZW5ndGggbWV0ZXJcclxuXHQgKi9cclxuXHQud29vY29tbWVyY2UtcGFzc3dvcmQtc3RyZW5ndGgge1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcclxuXHRcdHBhZGRpbmc6IDNweCAwLjVlbTtcclxuXHRcdGZvbnQtc2l6ZTogMWVtO1xyXG5cclxuXHRcdCYuc3Ryb25nIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2MxZTFiOTtcclxuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjODNjMzczO1xyXG5cdFx0fVxyXG5cclxuXHRcdCYuc2hvcnQge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjFhZGFkO1xyXG5cdFx0XHRib3JkZXItY29sb3I6ICNlMzViNWI7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5iYWQge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmJjNWE5O1xyXG5cdFx0XHRib3JkZXItY29sb3I6ICNmNzhiNTM7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5nb29kIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZTM5OTtcclxuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjZmZjNzMzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Lndvb2NvbW1lcmNlLXBhc3N3b3JkLWhpbnQge1xyXG5cdFx0bWFyZ2luOiAwLjVlbSAwIDA7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHR9XHJcblxyXG5cdC8qKlxyXG4gICAgICogRm9ybXNcclxuICAgICAqL1xyXG5cdC5mb3JtLXJvdyB7XHJcblxyXG5cdFx0Ji53b29jb21tZXJjZS12YWxpZGF0ZWQge1xyXG5cclxuXHRcdFx0aW5wdXQuaW5wdXQtdGV4dCB7XHJcblx0XHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMnB4IDAgMCAkd29vY29tbWVyY2VfX2NvbG9yLXN1Y2Nlc3M7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmLndvb2NvbW1lcmNlLWludmFsaWQge1xyXG5cclxuXHRcdFx0aW5wdXQuaW5wdXQtdGV4dCB7XHJcblx0XHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMnB4IDAgMCAkd29vY29tbWVyY2VfX2NvbG9yLWVycm9yO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQucmVxdWlyZWQge1xyXG5cdFx0Y29sb3I6ICNmMDA7XHJcblx0fVxyXG5cclxuXHQvKipcclxuICAgICAgICAgKiBGb3Jtc1xyXG4gICAgICAgICAqL1xyXG5cdGZvcm0gLmZvcm0tcm93IHtcclxuXHRcdHBhZGRpbmc6IDNweDtcclxuXHRcdG1hcmdpbjogMCAwIDZweDtcclxuXHJcblx0XHRbcGxhY2Vob2xkZXJdOmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcclxuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIDAuNXMgZWFzZTtcclxuXHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdH1cclxuXHJcblx0XHRsYWJlbCB7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiAyO1xyXG5cdFx0fVxyXG5cclxuXHRcdGxhYmVsLmhpZGRlbiB7XHJcblx0XHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcclxuXHRcdH1cclxuXHJcblx0XHRsYWJlbC5pbmxpbmUge1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmU7XHJcblx0XHR9XHJcblxyXG5cdFx0Lndvb2NvbW1lcmNlLWlucHV0LXdyYXBwZXIge1xyXG5cclxuXHRcdFx0LmRlc2NyaXB0aW9uIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjMWU4NWJlO1xyXG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xyXG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcclxuXHRcdFx0XHRwYWRkaW5nOiAxZW07XHJcblx0XHRcdFx0bWFyZ2luOiAwLjVlbSAwIDA7XHJcblx0XHRcdFx0Y2xlYXI6IGJvdGg7XHJcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0Y29sb3I6ICNmZmY7XHJcblx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHRcdFx0XHRcdGJvcmRlcjogMDtcclxuXHRcdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0bGVmdDogNTAlO1xyXG5cdFx0XHRcdFx0dG9wOiAwJTtcclxuXHRcdFx0XHRcdG1hcmdpbi10b3A6IC00cHg7XHJcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDE4MGRlZyk7XHJcblx0XHRcdFx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdFx0Ym9yZGVyLXdpZHRoOiA0cHggNnB4IDAgNnB4O1xyXG5cdFx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHRcdFx0XHRcdGJvcmRlci1jb2xvcjogIzFlODViZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuXHRcdFx0XHRcdHotaW5kZXg6IDEwMDtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHNlbGVjdCB7XHJcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5yZXF1aXJlZCB7XHJcblx0XHRcdGNvbG9yOiByZWQ7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0XHRcdGJvcmRlcjogMCAhaW1wb3J0YW50O1xyXG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0XHRcdHZpc2liaWxpdHk6IGhpZGRlbjsgLy8gT25seSBzaG93IG9wdGlvbmFsIGJ5IGRlZmF1bHQuXHJcblx0XHR9XHJcblxyXG5cdFx0Lm9wdGlvbmFsIHtcclxuXHRcdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcclxuXHRcdH1cclxuXHJcblx0XHQuaW5wdXQtY2hlY2tib3gge1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmU7XHJcblx0XHRcdG1hcmdpbjogLTJweCA4cHggMCAwO1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHR9XHJcblxyXG5cdFx0aW5wdXQuaW5wdXQtdGV4dCxcclxuXHRcdHRleHRhcmVhIHtcclxuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0b3V0bGluZTogMDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuXHRcdH1cclxuXHJcblx0XHR0ZXh0YXJlYSB7XHJcblx0XHRcdGhlaWdodDogNGVtO1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMS41O1xyXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHRcdH1cclxuXHJcblx0XHQuc2VsZWN0Mi1jb250YWluZXIge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDJlbTtcclxuXHRcdH1cclxuXHJcblx0XHQmLndvb2NvbW1lcmNlLWludmFsaWQge1xyXG5cclxuXHRcdFx0bGFiZWwge1xyXG5cdFx0XHRcdGNvbG9yOiAkcmVkO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQuc2VsZWN0Mi1jb250YWluZXIsXHJcblx0XHRcdGlucHV0LmlucHV0LXRleHQsXHJcblx0XHRcdHNlbGVjdCB7XHJcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkcmVkO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji53b29jb21tZXJjZS12YWxpZGF0ZWQge1xyXG5cclxuXHRcdFx0LnNlbGVjdDItY29udGFpbmVyLFxyXG5cdFx0XHRpbnB1dC5pbnB1dC10ZXh0LFxyXG5cdFx0XHRzZWxlY3Qge1xyXG5cdFx0XHRcdGJvcmRlci1jb2xvcjogZGFya2VuKCRncmVlbiwgNSUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuXHRcdH1cclxuXHJcblx0XHQ6LW1vei1wbGFjZWhvbGRlciB7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcblx0XHR9XHJcblxyXG5cdFx0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRmb3JtLmxvZ2luLFxyXG5cdGZvcm0uY2hlY2tvdXRfY291cG9uLFxyXG5cdGZvcm0ucmVnaXN0ZXIge1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgZGFya2VuKCRzZWNvbmRhcnksIDEwJSk7XHJcblx0XHRwYWRkaW5nOiAyMHB4O1xyXG5cdFx0bWFyZ2luOiAyZW0gMDtcclxuXHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0fVxyXG5cclxuXHR1bCNzaGlwcGluZ19tZXRob2Qge1xyXG5cdFx0bGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlO1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0cGFkZGluZzogMDtcclxuXHJcblx0XHRsaSB7XHJcblx0XHRcdG1hcmdpbjogMCAwIDAuNWVtO1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMS41ZW07XHJcblx0XHRcdGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcclxuXHJcblx0XHRcdGlucHV0IHtcclxuXHRcdFx0XHRtYXJnaW46IDNweCAwLjQzNzVlbSAwIDA7XHJcblx0XHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bGFiZWwge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5hbW91bnQge1xyXG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cC53b29jb21tZXJjZS1zaGlwcGluZy1jb250ZW50cyB7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0fVxyXG5cclxuXHQvKipcclxuICAgICAqIE5vdGljZXNcclxuICAgICAqL1xyXG5cdC53b29jb21tZXJjZS1tZXNzYWdlLFxyXG5cdC53b29jb21tZXJjZS1pbmZvLFxyXG5cdC53b29jb21tZXJjZS1lcnJvcixcclxuXHQud29vY29tbWVyY2Utbm9yZXZpZXdzLFxyXG5cdHAubm8tY29tbWVudHMge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdvb2NvbW1lcmNlX19jb2xvci1zdWNjZXNzO1xyXG5cdFx0Y2xlYXI6IGJvdGg7XHJcblx0fVxyXG5cclxuXHQud29vY29tbWVyY2UtaW5mbyxcclxuXHQud29vY29tbWVyY2Utbm9yZXZpZXdzLFxyXG5cdHAubm8tY29tbWVudHMge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdvb2NvbW1lcmNlX19jb2xvci1pbmZvO1xyXG5cdH1cclxuXHJcblx0Lndvb2NvbW1lcmNlLWVycm9yIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICR3b29jb21tZXJjZV9fY29sb3ItZXJyb3I7XHJcblx0fVxyXG5cclxuXHQuZGVtb19zdG9yZSB7XHJcblx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHRwYWRkaW5nOiAxZW07XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd29vY29tbWVyY2VfX2NvbG9yLWluZm87XHJcblx0XHR6LWluZGV4OiA5OTk5O1xyXG5cdH1cclxuXHJcblxyXG5cclxuXHJcblx0Lndvb2NvbW1lcmNlLWJyZWFkY3J1bWIge1xyXG5cclxuXHRcdEBpbmNsdWRlIGNsZWFyZml4KCk7XHJcblx0XHRtYXJnaW46IDAgMCAxZW07XHJcblx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0Zm9udC1zaXplOiAwLjkyZW07XHJcblx0XHRjb2xvcjogJHN1YnRleHQ7XHJcblxyXG5cdFx0YSB7XHJcblx0XHRcdGNvbG9yOiAkc3VidGV4dDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5ibG9ja1VJLmJsb2NrT3ZlcmxheSB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdFx0QGluY2x1ZGUgbG9hZGVyKCk7XHJcblx0fVxyXG5cclxuXHQubG9hZGVyIHtcclxuXHJcblx0XHRAaW5jbHVkZSBsb2FkZXIoKTtcclxuXHR9XHJcblxyXG5cdGEucmVtb3ZlIHtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0Zm9udC1zaXplOiAwLjhlbTtcclxuXHRcdGhlaWdodDogMWVtO1xyXG5cdFx0d2lkdGg6IDAuMWVtO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDE7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMDAlO1xyXG5cdFx0Y29sb3I6ICNmZjcyNzIgIWltcG9ydGFudDsgLy8gUmVxdWlyZWQgZm9yIGRlZmF1bHQgdGhlbWUgY29tcGF0aWJpbGl0eVxyXG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGJvcmRlcjogMDtcclxuXHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0Y29sb3I6ICNmZmYgIWltcG9ydGFudDsgLy8gUmVxdWlyZWQgZm9yIGRlZmF1bHQgdGhlbWUgY29tcGF0aWJpbGl0eVxyXG5cdFx0XHRiYWNrZ3JvdW5kOiAjZmY3MjcyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0c21hbGwubm90ZSB7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdGNvbG9yOiAkc3VidGV4dDtcclxuXHRcdGZvbnQtc2l6ZTogMC44NTdlbTtcclxuXHRcdG1hcmdpbi10b3A6IDEwcHg7XHJcblx0fVxyXG5cclxuXHJcblx0LnF1YW50aXR5IC5xdHkge1xyXG5cdFx0d2lkdGg6IDMuNjMxZW07XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0fVxyXG5cclxuXHJcblx0LyoqXHJcbiAgICAgICAgICogQnV0dG9uc1xyXG4gICAgICAgICAqL1xyXG5cdGEuYnV0dG9uLFxyXG5cdGJ1dHRvbi5idXR0b24sXHJcblx0aW5wdXQuYnV0dG9uLFxyXG5cdCNyZXNwb25kIGlucHV0I3N1Ym1pdCB7XHJcblx0XHRmb250LXNpemU6IDEwMCU7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHRsaW5lLWhlaWdodDogMTtcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHRcdG92ZXJmbG93OiB2aXNpYmxlO1xyXG5cdFx0cGFkZGluZzogMC42MThlbSAxZW07XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xyXG5cdFx0bGVmdDogYXV0bztcclxuXHRcdGNvbG9yOiAkc2Vjb25kYXJ5dGV4dDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnk7XHJcblx0XHRib3JkZXI6IDA7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHRcdHRleHQtc2hhZG93OiBub25lO1xyXG5cclxuXHRcdCYubG9hZGluZyB7XHJcblx0XHRcdG9wYWNpdHk6IDAuMjU7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDIuNjE4ZW07XHJcblxyXG5cdFx0XHQmOjphZnRlciB7XHJcblx0XHRcdFx0Zm9udC1mYW1pbHk6IFwiV29vQ29tbWVyY2VcIjtcclxuXHRcdFx0XHRjb250ZW50OiBcIlxcZTAxY1wiO1xyXG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcclxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOiAwLjYxOGVtO1xyXG5cdFx0XHRcdHJpZ2h0OiAxZW07XHJcblx0XHRcdFx0YW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCYuYWRkZWQ6OmFmdGVyIHtcclxuXHRcdFx0Zm9udC1mYW1pbHk6IFwiV29vQ29tbWVyY2VcIjtcclxuXHRcdFx0Y29udGVudDogXCJcXGUwMTdcIjtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDAuNTNlbTtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246IGJvdHRvbTtcclxuXHRcdH1cclxuXHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRzZWNvbmRhcnksIDUlKTtcclxuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG5cdFx0XHRjb2xvcjogJHNlY29uZGFyeXRleHQ7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5hbHQge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcclxuXHRcdFx0Y29sb3I6ICRwcmltYXJ5dGV4dDtcclxuXHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcblxyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHByaW1hcnksIDUlKTtcclxuXHRcdFx0XHRjb2xvcjogJHByaW1hcnl0ZXh0O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLmRpc2FibGVkLFxyXG5cdFx0XHQmOmRpc2FibGVkLFxyXG5cdFx0XHQmOmRpc2FibGVkW2Rpc2FibGVkXSxcclxuXHRcdFx0Ji5kaXNhYmxlZDpob3ZlcixcclxuXHRcdFx0JjpkaXNhYmxlZDpob3ZlcixcclxuXHRcdFx0JjpkaXNhYmxlZFtkaXNhYmxlZF06aG92ZXIge1xyXG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xyXG5cdFx0XHRcdGNvbG9yOiAkcHJpbWFyeXRleHQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmOmRpc2FibGVkLFxyXG5cdFx0Ji5kaXNhYmxlZCxcclxuXHRcdCY6ZGlzYWJsZWRbZGlzYWJsZWRdIHtcclxuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XHJcblx0XHRcdGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcblx0XHRcdG9wYWNpdHk6IDAuNTtcclxuXHRcdFx0cGFkZGluZzogMC42MThlbSAxZW07XHJcblxyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRjb2xvcjogaW5oZXJpdDtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY2FydCAuYnV0dG9uLFxyXG5cdC5jYXJ0IGlucHV0LmJ1dHRvbiB7XHJcblx0XHRmbG9hdDogbm9uZTtcclxuXHR9XHJcblxyXG5cdGEuYWRkZWRfdG9fY2FydCB7XHJcblx0XHRwYWRkaW5nLXRvcDogMC41ZW07XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0fVxyXG5cclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIE9yZGVyIHBhZ2VcclxuXHQgKi9cclxuXHR1bC5vcmRlcl9kZXRhaWxzIHtcclxuXHJcblx0XHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xyXG5cdFx0bWFyZ2luOiAwIDAgM2VtO1xyXG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcclxuXHJcblx0XHRsaSB7XHJcblx0XHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDJlbTtcclxuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdFx0Zm9udC1zaXplOiAwLjcxNWVtO1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMTtcclxuXHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggZGFzaGVkIGRhcmtlbigkc2Vjb25kYXJ5LCAxMCUpO1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyZW07XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XHJcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHJcblx0XHRcdHN0cm9uZyB7XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAxLjRlbTtcclxuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDogMS41O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XHJcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQud2MtYmFjcy1iYW5rLWRldGFpbHMtYWNjb3VudC1uYW1lIHtcclxuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdH1cclxuXHJcblx0Lndvb2NvbW1lcmNlLW9yZGVyLWRvd25sb2FkcyxcclxuXHQud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscyxcclxuXHQud29vY29tbWVyY2Utb3JkZXItZGV0YWlscyB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyZW07XHJcblxyXG5cdFx0KjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzIHtcclxuXHJcblx0XHRhZGRyZXNzIHtcclxuXHRcdFx0Zm9udC1zdHlsZTogbm9ybWFsO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcblx0XHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcclxuXHRcdFx0Ym9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7XHJcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0XHRcdHBhZGRpbmc6IDZweCAxMnB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLS1waG9uZSxcclxuXHRcdC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLS1lbWFpbCB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHRcdHBhZGRpbmctbGVmdDogMS41ZW07XHJcblx0XHR9XHJcblxyXG5cdFx0Lndvb2NvbW1lcmNlLWN1c3RvbWVyLWRldGFpbHMtLXBob25lOjpiZWZvcmUge1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgaWNvbmJlZm9yZSggXCJcXGUwMzdcIiApO1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogLTEuNWVtO1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMS43NTtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLS1lbWFpbDo6YmVmb3JlIHtcclxuXHJcblx0XHRcdEBpbmNsdWRlIGljb25iZWZvcmUoIFwiXFxlMDJkXCIgKTtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IC0xLjVlbTtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNzU7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cclxuXHQud29vY29tbWVyY2UtbWVzc2FnZSxcclxuXHQud29vY29tbWVyY2UtZXJyb3IsXHJcblx0Lndvb2NvbW1lcmNlLWluZm8ge1xyXG5cdFx0cGFkZGluZzogMWVtIDJlbSAxZW0gMy41ZW07XHJcblx0XHRtYXJnaW46IDAgMCAyZW07XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRzZWNvbmRhcnksIDUlKTtcclxuXHRcdGNvbG9yOiAkc2Vjb25kYXJ5dGV4dDtcclxuXHRcdGJvcmRlci10b3A6IDNweCBzb2xpZCAkcHJpbWFyeTtcclxuXHRcdGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcclxuXHJcblx0XHRAaW5jbHVkZSBjbGVhcmZpeCgpO1xyXG5cdFx0d2lkdGg6IGF1dG87XHJcblx0XHR3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcblxyXG5cdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0Zm9udC1mYW1pbHk6IFwiV29vQ29tbWVyY2VcIjtcclxuXHRcdFx0Y29udGVudDogXCJcXGUwMjhcIjtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHRvcDogMWVtO1xyXG5cdFx0XHRsZWZ0OiAxLjVlbTtcclxuXHRcdH1cclxuXHJcblx0XHQuYnV0dG9uIHtcclxuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0fVxyXG5cclxuXHRcdGxpIHtcclxuXHRcdFx0bGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlICFpbXBvcnRhbnQ7IC8vIFJlcXVpcmVkIGZvciBkZWZhdWx0IHRoZW1lIGNvbXBhdGliaWxpdHlcclxuXHRcdFx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IC8vIFJlcXVpcmVkIGZvciBkZWZhdWx0IHRoZW1lIGNvbXBhdGliaWxpdHlcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgLy8gUmVxdWlyZWQgZm9yIGRlZmF1bHQgdGhlbWUgY29tcGF0aWJpbGl0eVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblxyXG5cdC53b29jb21tZXJjZS1tZXNzYWdlIHtcclxuXHRcdGJvcmRlci10b3AtY29sb3I6ICM4ZmFlMWI7XHJcblxyXG5cdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDogXCJcXGUwMTVcIjtcclxuXHRcdFx0Y29sb3I6ICM4ZmFlMWI7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQud29vY29tbWVyY2UtaW5mbyB7XHJcblx0XHRib3JkZXItdG9wLWNvbG9yOiAjMWU4NWJlO1xyXG5cclxuXHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdGNvbG9yOiAjMWU4NWJlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Lndvb2NvbW1lcmNlLWVycm9yIHtcclxuXHRcdGJvcmRlci10b3AtY29sb3I6ICNiODFjMjM7XHJcblxyXG5cdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDogXCJcXGUwMTZcIjtcclxuXHRcdFx0Y29sb3I6ICNiODFjMjM7XHJcblx0XHR9XHJcblx0fVxyXG59IiwiLyoqXHJcbiAqIFdvb0NvbW1lcmNlIFByaWNlIEZpbHRlclxyXG4gKi9cclxuLndpZGdldF9wcmljZV9maWx0ZXIge1xyXG5cclxuXHQucHJpY2Vfc2xpZGVyIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDEuNWVtO1xyXG5cdH1cclxuXHJcblx0LnByaWNlX3NsaWRlcl9hbW91bnQge1xyXG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblx0XHRsaW5lLWhlaWdodDogMi40O1xyXG5cclxuXHRcdC5idXR0b24ge1xyXG5cdFx0XHRmbG9hdDogbGVmdDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC51aS1zbGlkZXIge1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHR9XHJcblxyXG5cdC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogMjtcclxuXHRcdHdpZHRoOiAxZW07XHJcblx0XHRoZWlnaHQ6IDFlbTtcclxuXHRcdGN1cnNvcjogZXctcmVzaXplO1xyXG5cdFx0b3V0bGluZTogbm9uZTtcclxuXHRcdGJhY2tncm91bmQ6ICRjb2xvcl9fbGluaztcclxuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRtYXJnaW4tdG9wOiAtMC4yNWVtO1xyXG5cdFx0b3BhY2l0eTogMTtcclxuXHJcblx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogLTFlbTtcclxuXHRcdH1cclxuXHJcblx0XHQmOmhvdmVyLFxyXG5cdFx0Ji51aS1zdGF0ZS1hY3RpdmUge1xyXG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCAwLjI1ZW0gcmdiYSgjMDAwLCAwLjEpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnVpLXNsaWRlciAudWktc2xpZGVyLXJhbmdlIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IDE7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdGJvcmRlcjogMDtcclxuXHRcdGJhY2tncm91bmQ6ICRjb2xvcl9fbGluaztcclxuXHR9XHJcblxyXG5cdC5wcmljZV9zbGlkZXJfd3JhcHBlciAudWktd2lkZ2V0LWNvbnRlbnQge1xyXG5cdFx0YmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG5cdH1cclxuXHJcblx0LnVpLXNsaWRlci1ob3Jpem9udGFsIHtcclxuXHRcdGhlaWdodDogMC41ZW07XHJcblx0fVxyXG5cclxuXHQudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZSB7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0fVxyXG59XHJcbiIsIi8qKlxyXG4gKiBBY2NvdW50IHBhZ2VcclxuICovXHJcbi53b29jb21tZXJjZS1hY2NvdW50IHtcclxuXHJcbiAgLndvb2NvbW1lcmNlIHtcclxuXHJcbiAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xyXG4gIH1cclxuXHJcbiAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IDMwJTtcclxuICB9XHJcbiAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IHtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIHdpZHRoOiA2OCU7XHJcbiAgfVxyXG5cclxuICAuYWRkcmVzc2VzIC50aXRsZSB7XHJcblxyXG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcclxuXHJcbiAgICBoMyB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIC5lZGl0IHtcclxuICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb2wuY29tbWVudGxpc3Qubm90ZXMgbGkubm90ZSB7XHJcblxyXG4gICAgcC5tZXRhIHtcclxuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICAuZGVzY3JpcHRpb24gcDpsYXN0LWNoaWxkIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVsLmRpZ2l0YWwtZG93bmxvYWRzIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuXHJcbiAgICAgICY6OmJlZm9yZSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIGljb25iZWZvcmUoIFwiXFxlMDBhXCIgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmNvdW50IHtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iLCIud29vY29tbWVyY2UsXHJcbi53b29jb21tZXJjZS1wYWdlIHtcclxuICB1bC5wcm9kdWN0cyB7XHJcbiAgICAvLyAmLmNvbHVtbnMtMSB7XHJcblxyXG4gICAgLy8gICBsaS5wcm9kdWN0IHtcclxuICAgIC8vICAgICB3aWR0aDogMTAwJTtcclxuICAgIC8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyAmLmNvbHVtbnMtMiB7XHJcblxyXG4gICAgLy8gICBsaS5wcm9kdWN0IHtcclxuICAgIC8vICAgICB3aWR0aDogNDglO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gJi5jb2x1bW5zLTMge1xyXG5cclxuICAgIC8vICAgbGkucHJvZHVjdCB7XHJcblxyXG4gICAgLy8gICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7XHJcbiAgICAvLyAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuXHJcbiAgICAmLmNvbHVtbnMtNSB7XHJcbiAgICAgIGxpLnByb2R1Y3Qge1xyXG4gICAgICAgIHdpZHRoOiAxNi45NSU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmNvbHVtbnMtNiB7XHJcbiAgICAgIGxpLnByb2R1Y3Qge1xyXG4gICAgICAgIHdpZHRoOiAxMy41JTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5jb2x1bW5zLTEge1xyXG4gICAgdWwucHJvZHVjdHMge1xyXG4gICAgICBsaS5wcm9kdWN0IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuY29sdW1ucy0yIHtcclxuICAgIHVsLnByb2R1Y3RzIHtcclxuICAgICAgbGkucHJvZHVjdCB7XHJcbiAgICAgICAgd2lkdGg6IDQ4JTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5jb2x1bW5zLTQge1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcclxuICAgIGFsaWduLWl0ZW1zOiBzZWxmLXN0YXJ0O1xyXG4gIH1cclxuXHJcbiAgJi5jb2x1bW5zLTMge1xyXG4gICAgdWwucHJvZHVjdHMge1xyXG4gICAgICBsaS5wcm9kdWN0IHtcclxuICAgICAgICB3aWR0aDogMzAuNzUlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmNvbHVtbnMtNSB7XHJcbiAgICB1bC5wcm9kdWN0cyB7XHJcbiAgICAgIGxpLnByb2R1Y3Qge1xyXG4gICAgICAgIHdpZHRoOiAxNi45NSU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuY29sdW1ucy02IHtcclxuICAgIHVsLnByb2R1Y3RzIHtcclxuICAgICAgbGkucHJvZHVjdCB7XHJcbiAgICAgICAgd2lkdGg6IDEzLjUlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud29vY29tbWVyY2UtcmVzdWx0LWNvdW50IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAud29vY29tbWVyY2Utb3JkZXJpbmcge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZS1wYWdpbmF0aW9uIHtcclxuICAgIHVsLnBhZ2UtbnVtYmVycyB7XHJcbiAgICAgIEBpbmNsdWRlIG1lbnUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4qIFByb2R1Y3QgbG9vcHNcclxuKi9cclxuICAucHJvZHVjdHMgdWwsXHJcbiAgdWwucHJvZHVjdHMge1xyXG4gICAgLy8gbWFyZ2luOiAwIDAgMWVtO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gIH1cclxuXHJcbiAgdWwucHJvZHVjdHMgbGkucHJvZHVjdCxcclxuICAuc2luZ2xlLWNhdCB7XHJcbiAgICAvLyB3aWR0aDogMjMlO1xyXG4gICAgJi5maXJzdCB7XHJcbiAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG5cclxuICAgICYubGFzdCB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgIH1cclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDgwcHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgIG1hcmdpbi10b3A6IC00MHB4O1xyXG4gICAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDtcclxuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW4tb3V0O1xyXG4gICAgICBib3JkZXItbGVmdDogNnB4IHNvbGlkICNmZmY7XHJcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgaGVpZ2h0OiAxNjJweDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtODFweDtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1yZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICA+IGEge1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xyXG4gICAgICAud29vY29tbWVyY2UtbG9vcC1jYXRlZ29yeV9fdGl0bGUge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNvdW50IHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAub25zYWxlIHtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgbGVmdDogYXV0bztcclxuICAgICAgbWFyZ2luOiAtMC41ZW0gLTAuNWVtIDAgMDtcclxuICAgIH1cclxuXHJcbiAgICBoMyxcclxuICAgIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX3RpdGxlLFxyXG4gICAgLndvb2NvbW1lcmNlLWxvb3AtY2F0ZWdvcnlfX3RpdGxlIHtcclxuICAgICAgcGFkZGluZzogMC41ZW0gMDtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG4gICAgYSB7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgYSBpbWcge1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbWFyZ2luOiAwIGF1dG8gMWVtIGF1dG87XHJcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDEyMHB4O1xyXG4gICAgICBtaW4taGVpZ2h0OiByZW0oMTIwKTtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbiAgICB9XHJcblxyXG4gICAgc3Ryb25nIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLXBsYWNlaG9sZGVyIHtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2YyZjJmMjtcclxuICAgIH1cclxuXHJcbiAgICAuc3Rhci1yYXRpbmcge1xyXG4gICAgICBmb250LXNpemU6IDAuODU3ZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDFlbTtcclxuICAgIH1cclxuXHJcbiAgICAucHJpY2Uge1xyXG4gICAgICBjb2xvcjogJGhpZ2hsaWdodDtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xyXG4gICAgICBmb250LXNpemU6IDAuODU3ZW07XHJcblxyXG4gICAgICBkZWwge1xyXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgICAgIG9wYWNpdHk6IDAuNTtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlucyB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgfVxyXG5cclxuICAgICAgLmZyb20ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC42N2VtO1xyXG4gICAgICAgIG1hcmdpbjogLTJweCAwIDAgMDtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKGRlc2F0dXJhdGUoJGhpZ2hsaWdodCwgNzUlKSwgMC41KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLndvb2NvbW1lcmNlLXJlc3VsdC1jb3VudCB7XHJcbiAgICBtYXJnaW46IDAgMCAxZW07XHJcbiAgfVxyXG5cclxuICAud29vY29tbWVyY2Utb3JkZXJpbmcge1xyXG4gICAgbWFyZ2luOiAwIDAgMWVtO1xyXG5cclxuICAgIHNlbGVjdCB7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuYXYud29vY29tbWVyY2UtcGFnaW5hdGlvbiB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgdWwge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJHNlY29uZGFyeSwgMTAlKTtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xyXG4gICAgICBtYXJnaW46IDFweDtcclxuXHJcbiAgICAgIGxpIHtcclxuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBkYXJrZW4oJHNlY29uZGFyeSwgMTAlKTtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAgICAgYSxcclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgIHBhZGRpbmc6IDAuNWVtO1xyXG4gICAgICAgICAgbWluLXdpZHRoOiAxZW07XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNwYW4uY3VycmVudCxcclxuICAgICAgICBhOmhvdmVyLFxyXG4gICAgICAgIGE6Zm9jdXMge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogJHNlY29uZGFyeTtcclxuICAgICAgICAgIGNvbG9yOiBkYXJrZW4oJHNlY29uZGFyeSwgNDAlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYudGF4LXByb2R1Y3RfY2F0IHtcclxuICAgIC5wcm9kdWN0cyB7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgbGkge1xyXG4gICAgICAgIEBpbmNsdWRlIGJwKGxhcHRvcHhzKSB7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTdweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wcm9kdWN0cyB7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcclxuICAgIGdyaWQtZ2FwOiByZW0oMjkpO1xyXG5cclxuICAgIEBpbmNsdWRlIGJwKGxhcHRvcHhzKSB7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJwKHBob25leGxkb3duKSB7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XHJcbiAgICB9XHJcblxyXG4gICAgJi5jb2x1bW5zLTQge1xyXG4gICAgICBAaW5jbHVkZSBicChsYXB0b3B4cykge1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnJlbGF0ZWQge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbWFyZ2luLXRvcDogcmVtKDEzNSk7XHJcblxyXG4gICAgICBAaW5jbHVkZSBicChsYXB0b3B4c2Rvd24pIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiByZW0oNTApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAaW5jbHVkZSBicChwaG9uZXhsZG93bikge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSg1MCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBwYWRkaW5nOiAwIDE1cHg7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgIC8vIG1hcmdpbi1yaWdodDogMS41JTtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgY29sb3I6ICMwMDA7XHJcblxyXG4gICAgICAmOm50aC1vZi10eXBlKDNuICsgMykge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU0MHB4KSB7XHJcbiAgICAgICAgLy9wYWRkaW5nOiAwIDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDgwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC00MHB4O1xyXG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgaGVpZ2h0OiAxNjJweDtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IC04MXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi50eXBlLXByb2R1Y3Qge1xyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX2xpbmsge1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgIHBhZGRpbmc6IDIwcHggMTVweDtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYm94LXNoYWRvdzogMCAzcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fbGluazpob3ZlcixcclxuLndvb2NvbW1lcmNlLXBhZ2UgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fbGluazpob3ZlciB7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxufVxyXG5cclxuLmhvbWUgLndvb2NvbW1lcmNlLmNvbHVtbnMtNCB1bC5wcm9kdWN0cyBsaS5wcm9kdWN0IGEgaW1nIHtcclxuICBtYXJnaW46IDAgMCAwIGF1dG87XHJcbn1cclxuXHJcbi5wcm9kdWN0LWNhdGVnb3JpZXMge1xyXG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgLnByb2R1Y3QtY2F0ZWdvcnkge1xyXG4gICAgYSB7XHJcbiAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogODBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogLTQwcHg7XHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiA2cHggc29saWQgI2ZmZjtcclxuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XHJcbiAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgcGFkZGluZzogMCAwIDAgMTZweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICBoZWlnaHQ6IDExNXB4O1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogLTU3cHg7XHJcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1yZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBoMiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qKlxyXG4gKiBTdHlsZSBiZWdpbnNcclxuICovXHJcbkBpbmNsdWRlIGJwKHRhYmxldGRvd24pIHtcclxuICAud29vY29tbWVyY2UsXHJcbiAgLndvb2NvbW1lcmNlLXBhZ2Uge1xyXG5cclxuICAgIHRhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZSB7XHJcbiAgICAgIHRoZWFkIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0Ym9keSB7XHJcbiAgICAgICAgdHI6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgdGQ6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGgge1xyXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRyIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgICAgdGQge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyAvLyBJbXBvcnRhbnQgdG8gb3ZlcndyaXRlIG9yZGVyIHN0YXR1cyBpbmxpbmUgc3R5bGluZ1xyXG5cclxuICAgICAgICAgICYub3JkZXItYWN0aW9ucyB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgLy8gVGhpcyBtdXN0IGFsd2F5cyBhbGlnbiBsZWZ0IG9uIGhhbmRoZWxkXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRpdGxlKSAnOiAnO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLnByb2R1Y3QtcmVtb3ZlLFxyXG4gICAgICAgICAgJi5hY3Rpb25zIHtcclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOm50aC1jaGlsZCggMm4gKSB7XHJcbiAgICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMjUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRhYmxlLm15X2FjY291bnRfb3JkZXJzIHtcclxuICAgICAgdHIge1xyXG4gICAgICAgIHRkIHtcclxuICAgICAgICAgICYub3JkZXItYWN0aW9ucyB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgICAgICAgIG1hcmdpbjogMC4xMjVlbSAwLjI1ZW0gMC4xMjVlbSAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZW5lcmFsIGxheW91dFxyXG4gICAgICovXHJcbiAgICAuY29sMi1zZXQge1xyXG4gICAgICAuY29sLTEsXHJcbiAgICAgIC5jb2wtMiB7XHJcbiAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2R1Y3RzXHJcbiAgICAgKi9cclxuICAgIC8vIHVsLnByb2R1Y3RzW2NsYXNzKj0nY29sdW1ucy0nXSB7XHJcbiAgICAvLyAgIGxpLnByb2R1Y3Qge1xyXG4gICAgLy8gICAgIHdpZHRoOiA0OCU7XHJcbiAgICAvLyAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAvLyAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICAvLyAgICAgbWFyZ2luOiAwIDAgMi45OTJlbTtcclxuXHJcbiAgICAvLyAgICAgJjpudGgtY2hpbGQoIDJuICkge1xyXG4gICAgLy8gICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgLy8gICAgICAgY2xlYXI6IG5vbmUgIWltcG9ydGFudDsgLy8gVGhpcyBzaG91bGQgbmV2ZXIgY2xlYXIuXHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9kdWN0IERldGFpbHNcclxuICAgICAqL1xyXG4gICAgZGl2LnByb2R1Y3QsXHJcbiAgICAjY29udGVudCBkaXYucHJvZHVjdCB7XHJcbiAgICAgIGRpdi5pbWFnZXMsXHJcbiAgICAgIGRpdi5zdW1tYXJ5IHtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FydFxyXG4gICAgICovXHJcbiAgICB0YWJsZS5jYXJ0LFxyXG4gICAgI2NvbnRlbnQgdGFibGUuY2FydCB7XHJcbiAgICAgIC5wcm9kdWN0LXRodW1ibmFpbCB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGQuYWN0aW9ucyB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAgICAgLmNvdXBvbiB7XHJcbiAgICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XHJcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41ZW07XHJcblxyXG4gICAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgICAuYnV0dG9uLFxyXG4gICAgICAgICAgLmlucHV0LXRleHQge1xyXG4gICAgICAgICAgICB3aWR0aDogNDglO1xyXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5pbnB1dC10ZXh0ICsgLmJ1dHRvbixcclxuICAgICAgICAgIC5idXR0b24uYWx0IHtcclxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jYXJ0LWNvbGxhdGVyYWxzIHtcclxuICAgICAgLmNhcnRfdG90YWxzLFxyXG4gICAgICAuc2hpcHBpbmdfY2FsY3VsYXRvcixcclxuICAgICAgLmNyb3NzLXNlbGxzIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja291dFxyXG4gICAgICovXHJcbiAgICAmLndvb2NvbW1lcmNlLWNoZWNrb3V0IHtcclxuICAgICAgZm9ybS5sb2dpbiB7XHJcbiAgICAgICAgLmZvcm0tcm93IHtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgI3BheW1lbnQge1xyXG4gICAgICAudGVybXMge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgI3BsYWNlX29yZGVyIHtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWNjb3VudFxyXG4gICAgICovXHJcbiAgICAubG9zdF9yZXNldF9wYXNzd29yZCB7XHJcbiAgICAgIC5mb3JtLXJvdy1maXJzdCxcclxuICAgICAgLmZvcm0tcm93LWxhc3Qge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLndvb2NvbW1lcmNlLWFjY291bnQge1xyXG4gICAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLFxyXG4gICAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IHtcclxuICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHdlbnR5IFRoaXJ0ZWVuIHNwZWNpZmljIHN0eWxlc1xyXG4gICAqL1xyXG4gIC5zaW5nbGUtcHJvZHVjdCB7XHJcbiAgICAudHdlbnR5dGhpcnRlZW4ge1xyXG4gICAgICAucGFuZWwge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHggIWltcG9ydGFudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG59Il19 */
