@charset "UTF-8";
/**
 * Kudos to http://madebymike.com.au/writing/accessible-contrast-with-less-and-sass/
 */
/**
 * on-circle takes a radius, position on a circle, number of possible positions and returns top and left properties
 *
 * $ordinalPosition {Number} the position of the item on the circle, counting from 1 (North) through N
 * $radius {Number}    radius of the circle in pixels
 * $positions {Number}   the number of positions on the circle
 * $originX {Number}   optional X origin point for the circle, defaults to the radius
 * $originY {Number}   optional Y origin point for the circle, defaults to the radius
 * $offsetX {Number}   optional X offset for the item, you might use 1/2 of the width of an item, default is 0
 * $offsetY {Number}   optional Y offset for the item, you might use 1/2 of the height of an item, default is 0
 */
/**
 * Is $color1 lighter than $color2?
 */
/**
 * Is $color1 darker than $color2?
 */
/**
 * Find best lightness adjust method
 *
 * Ideally we should only increase the difference between the colors. If $color1
 * is lighter than $color2 but the contrast is not accessible, then we should try to
 * make it lighter rather than darker.
 */
/**
 * on-circle takes a radius, position on a circle, number of possible positions and returns top and left properties
 *
 * $ordinalPosition {Number} the position of the item on the circle, counting from 1 (North) through N
 * $radius {Number}    radius of the circle in pixels
 * $positions {Number}   the number of positions on the circle
 * $originX {Number}   optional X origin point for the circle, defaults to the radius
 * $originY {Number}   optional Y origin point for the circle, defaults to the radius
 * $offsetX {Number}   optional X offset for the item, you might use 1/2 of the width of an item, default is 0
 * $offsetY {Number}   optional Y offset for the item, you might use 1/2 of the height of an item, default is 0
 */
@import url("//fonts.googleapis.com/css?family=Noto+Sans:400,700|Bitter:400,700,400italic");
/**
 * Create an element with a colored background
 *
 * This mixin outputs a color and a background color
 * 
 * @param  string $color                    The background color you want to use, for instance #ffcc00
 * @param  string $foreground-color: #fff   The foreground/text color you want to use. This will have an accessible luminance, adjusted to work with $color
 * @param  string $background-color: #fff   The background on which the element is situated (elements background will be adjusted to have at least a small contrast to this)
 */
.top-bg, .navigation-bg, .content-bg, .footer-bg {
  background-color: #ffffff;
  color: #333333; }
  .top-bg h1, .navigation-bg h1, .content-bg h1, .footer-bg h1, .top-bg h2, .navigation-bg h2, .content-bg h2, .footer-bg h2, .top-bg h3, .navigation-bg h3, .content-bg h3, .footer-bg h3, .top-bg h4, .navigation-bg h4, .content-bg h4, .footer-bg h4, .top-bg h5, .navigation-bg h5, .content-bg h5, .footer-bg h5, .top-bg h6, .navigation-bg h6, .content-bg h6, .footer-bg h6 {
    color: #212121; }
  .top-bg a, .navigation-bg a, .content-bg a, .footer-bg a {
    color: #000000; }
    .top-bg a:hover, .navigation-bg a:hover, .content-bg a:hover, .footer-bg a:hover, .top-bg a:focus, .navigation-bg a:focus, .content-bg a:focus, .footer-bg a:focus {
      color: black; }
  .top-bg .subtle, .navigation-bg .subtle, .content-bg .subtle, .footer-bg .subtle, .top-bg #kasse_one_form .subtaxes, #kasse_one_form .top-bg .subtaxes, .navigation-bg #kasse_one_form .subtaxes, #kasse_one_form .navigation-bg .subtaxes, .content-bg #kasse_one_form .subtaxes, #kasse_one_form .content-bg .subtaxes, .footer-bg #kasse_one_form .subtaxes, #kasse_one_form .footer-bg .subtaxes, .top-bg .product__main-images .bx-caption, .product__main-images .top-bg .bx-caption, .navigation-bg .product__main-images .bx-caption, .product__main-images .navigation-bg .bx-caption, .content-bg .product__main-images .bx-caption, .product__main-images .content-bg .bx-caption, .footer-bg .product__main-images .bx-caption, .product__main-images .footer-bg .bx-caption, .top-bg .product__meta-numbers, .navigation-bg .product__meta-numbers, .content-bg .product__meta-numbers, .footer-bg .product__meta-numbers, .top-bg .product .price--original, .product .top-bg .price--original, .navigation-bg .product .price--original, .product .navigation-bg .price--original, .content-bg .product .price--original, .product .content-bg .price--original, .footer-bg .product .price--original, .product .footer-bg .price--original, .top-bg .product .vat-info, .product .top-bg .vat-info, .navigation-bg .product .vat-info, .product .navigation-bg .vat-info, .content-bg .product .vat-info, .product .content-bg .vat-info, .footer-bg .product .vat-info, .product .footer-bg .vat-info, .top-bg .product__stockstatus, .navigation-bg .product__stockstatus, .content-bg .product__stockstatus, .footer-bg .product__stockstatus, .top-bg .rating input:checked ~ label, .rating .top-bg input:checked ~ label, .navigation-bg .rating input:checked ~ label, .rating .navigation-bg input:checked ~ label, .content-bg .rating input:checked ~ label, .rating .content-bg input:checked ~ label, .footer-bg .rating input:checked ~ label, .rating .footer-bg input:checked ~ label, .top-bg .rating label:hover ~ label, .rating .top-bg label:hover ~ label, .navigation-bg .rating label:hover ~ label, .rating .navigation-bg label:hover ~ label, .content-bg .rating label:hover ~ label, .rating .content-bg label:hover ~ label, .footer-bg .rating label:hover ~ label, .rating .footer-bg label:hover ~ label, .top-bg .productlist__product .price--original, .productlist__product .top-bg .price--original, .navigation-bg .productlist__product .price--original, .productlist__product .navigation-bg .price--original, .content-bg .productlist__product .price--original, .productlist__product .content-bg .price--original, .footer-bg .productlist__product .price--original, .productlist__product .footer-bg .price--original {
    color: #333333; }
  .top-bg .bordered, .navigation-bg .bordered, .content-bg .bordered, .footer-bg .bordered, .top-bg .checkout--kco__custom-intro, .navigation-bg .checkout--kco__custom-intro, .content-bg .checkout--kco__custom-intro, .footer-bg .checkout--kco__custom-intro, .top-bg .checkout--kco .checkout__step, .checkout--kco .top-bg .checkout__step, .navigation-bg .checkout--kco .checkout__step, .checkout--kco .navigation-bg .checkout__step, .content-bg .checkout--kco .checkout__step, .checkout--kco .content-bg .checkout__step, .footer-bg .checkout--kco .checkout__step, .checkout--kco .footer-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.1); }
  .top-bg .bordered--hard, .navigation-bg .bordered--hard, .content-bg .bordered--hard, .footer-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.2); }
  .top-bg a.bordered:hover, .navigation-bg a.bordered:hover, .content-bg a.bordered:hover, .footer-bg a.bordered:hover, .top-bg a.checkout--kco__custom-intro:hover, .navigation-bg a.checkout--kco__custom-intro:hover, .content-bg a.checkout--kco__custom-intro:hover, .footer-bg a.checkout--kco__custom-intro:hover, .top-bg .checkout--kco a.checkout__step:hover, .checkout--kco .top-bg a.checkout__step:hover, .navigation-bg .checkout--kco a.checkout__step:hover, .checkout--kco .navigation-bg a.checkout__step:hover, .content-bg .checkout--kco a.checkout__step:hover, .checkout--kco .content-bg a.checkout__step:hover, .footer-bg .checkout--kco a.checkout__step:hover, .checkout--kco .footer-bg a.checkout__step:hover, .top-bg a.bordered:focus, .navigation-bg a.bordered:focus, .content-bg a.bordered:focus, .footer-bg a.bordered:focus, .top-bg a.checkout--kco__custom-intro:focus, .navigation-bg a.checkout--kco__custom-intro:focus, .content-bg a.checkout--kco__custom-intro:focus, .footer-bg a.checkout--kco__custom-intro:focus, .top-bg .checkout--kco a.checkout__step:focus, .checkout--kco .top-bg a.checkout__step:focus, .navigation-bg .checkout--kco a.checkout__step:focus, .checkout--kco .navigation-bg a.checkout__step:focus, .content-bg .checkout--kco a.checkout__step:focus, .checkout--kco .content-bg a.checkout__step:focus, .footer-bg .checkout--kco a.checkout__step:focus, .checkout--kco .footer-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.25); }
  .top-bg a.bordered--hard:hover, .navigation-bg a.bordered--hard:hover, .content-bg a.bordered--hard:hover, .footer-bg a.bordered--hard:hover, .top-bg a.bordered--hard:focus, .navigation-bg a.bordered--hard:focus, .content-bg a.bordered--hard:focus, .footer-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .top-bg .neutral-link, .navigation-bg .neutral-link, .content-bg .neutral-link, .footer-bg .neutral-link, .top-bg .neutral-link > a, .navigation-bg .neutral-link > a, .content-bg .neutral-link > a, .footer-bg .neutral-link > a {
    color: #333333; }
    .top-bg .neutral-link:hover, .navigation-bg .neutral-link:hover, .content-bg .neutral-link:hover, .footer-bg .neutral-link:hover, .top-bg .neutral-link:focus, .navigation-bg .neutral-link:focus, .content-bg .neutral-link:focus, .footer-bg .neutral-link:focus, .top-bg .neutral-link:active, .navigation-bg .neutral-link:active, .content-bg .neutral-link:active, .footer-bg .neutral-link:active, .top-bg .neutral-link > a:hover, .navigation-bg .neutral-link > a:hover, .content-bg .neutral-link > a:hover, .footer-bg .neutral-link > a:hover, .top-bg .neutral-link > a:focus, .navigation-bg .neutral-link > a:focus, .content-bg .neutral-link > a:focus, .footer-bg .neutral-link > a:focus, .top-bg .neutral-link > a:active, .navigation-bg .neutral-link > a:active, .content-bg .neutral-link > a:active, .footer-bg .neutral-link > a:active {
      color: #212121; }
  .top-bg .primary-color, .navigation-bg .primary-color, .content-bg .primary-color, .footer-bg .primary-color {
    color: #000000; }
  .top-bg .primary-color-big, .navigation-bg .primary-color-big, .content-bg .primary-color-big, .footer-bg .primary-color-big {
    color: #000000; }
  .top-bg .primary-color-bg, .navigation-bg .primary-color-bg, .content-bg .primary-color-bg, .footer-bg .primary-color-bg {
    background-color: #000000;
    color: #fff; }
    .top-bg .primary-color-bg a, .navigation-bg .primary-color-bg a, .content-bg .primary-color-bg a, .footer-bg .primary-color-bg a {
      color: #fff; }
      .top-bg .primary-color-bg a:hover, .navigation-bg .primary-color-bg a:hover, .content-bg .primary-color-bg a:hover, .footer-bg .primary-color-bg a:hover, .top-bg .primary-color-bg a:focus, .navigation-bg .primary-color-bg a:focus, .content-bg .primary-color-bg a:focus, .footer-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #1a1a1a; }
    .top-bg .primary-color-bg:hover, .navigation-bg .primary-color-bg:hover, .content-bg .primary-color-bg:hover, .footer-bg .primary-color-bg:hover, .top-bg .primary-color-bg:focus, .navigation-bg .primary-color-bg:focus, .content-bg .primary-color-bg:focus, .footer-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #1a1a1a; }
  .top-bg .secondary-color, .navigation-bg .secondary-color, .content-bg .secondary-color, .footer-bg .secondary-color {
    color: #747474; }
  .top-bg .secondary-color-big, .navigation-bg .secondary-color-big, .content-bg .secondary-color-big, .footer-bg .secondary-color-big {
    color: #909090; }
  .top-bg .secondary-color-bg, .navigation-bg .secondary-color-bg, .content-bg .secondary-color-bg, .footer-bg .secondary-color-bg, .top-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .top-bg .cart-button__quantity, .navigation-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .navigation-bg .cart-button__quantity, .content-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .content-bg .cart-button__quantity, .footer-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .footer-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .top-bg .secondary-color-bg a, .navigation-bg .secondary-color-bg a, .content-bg .secondary-color-bg a, .footer-bg .secondary-color-bg a, .top-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .top-bg .cart-button__quantity a, .navigation-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .navigation-bg .cart-button__quantity a, .content-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .content-bg .cart-button__quantity a, .footer-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .footer-bg .cart-button__quantity a {
      color: #525252; }
      .top-bg .secondary-color-bg a:hover, .navigation-bg .secondary-color-bg a:hover, .content-bg .secondary-color-bg a:hover, .footer-bg .secondary-color-bg a:hover, .top-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .top-bg .cart-button__quantity a:hover, .navigation-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .navigation-bg .cart-button__quantity a:hover, .content-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .content-bg .cart-button__quantity a:hover, .footer-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .footer-bg .cart-button__quantity a:hover, .top-bg .secondary-color-bg a:focus, .navigation-bg .secondary-color-bg a:focus, .content-bg .secondary-color-bg a:focus, .footer-bg .secondary-color-bg a:focus, .top-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .top-bg .cart-button__quantity a:focus, .navigation-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .navigation-bg .cart-button__quantity a:focus, .content-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .content-bg .cart-button__quantity a:focus, .footer-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .footer-bg .cart-button__quantity a:focus {
        color: #525252;
        background-color: #e2e2e2; }
    .top-bg .secondary-color-bg:hover, .navigation-bg .secondary-color-bg:hover, .content-bg .secondary-color-bg:hover, .footer-bg .secondary-color-bg:hover, .top-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .top-bg .cart-button__quantity:hover, .navigation-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .navigation-bg .cart-button__quantity:hover, .content-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .content-bg .cart-button__quantity:hover, .footer-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .footer-bg .cart-button__quantity:hover, .top-bg .secondary-color-bg:focus, .navigation-bg .secondary-color-bg:focus, .content-bg .secondary-color-bg:focus, .footer-bg .secondary-color-bg:focus, .top-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .top-bg .cart-button__quantity:focus, .navigation-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .navigation-bg .cart-button__quantity:focus, .content-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .content-bg .cart-button__quantity:focus, .footer-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .footer-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .top-bg .call-to-action-color, .navigation-bg .call-to-action-color, .content-bg .call-to-action-color, .footer-bg .call-to-action-color {
    color: #DB311B; }
  .top-bg .call-to-action-color-big, .navigation-bg .call-to-action-color-big, .content-bg .call-to-action-color-big, .footer-bg .call-to-action-color-big {
    color: #DB311B; }
  .top-bg .call-to-action-color-bg, .navigation-bg .call-to-action-color-bg, .content-bg .call-to-action-color-bg, .footer-bg .call-to-action-color-bg, .top-bg .cart-button__quantity, .navigation-bg .cart-button__quantity, .content-bg .cart-button__quantity, .footer-bg .cart-button__quantity {
    background-color: #DB311B;
    color: #fff; }
    .top-bg .call-to-action-color-bg a, .navigation-bg .call-to-action-color-bg a, .content-bg .call-to-action-color-bg a, .footer-bg .call-to-action-color-bg a, .top-bg .cart-button__quantity a, .navigation-bg .cart-button__quantity a, .content-bg .cart-button__quantity a, .footer-bg .cart-button__quantity a {
      color: #fff; }
      .top-bg .call-to-action-color-bg a:hover, .navigation-bg .call-to-action-color-bg a:hover, .content-bg .call-to-action-color-bg a:hover, .footer-bg .call-to-action-color-bg a:hover, .top-bg .cart-button__quantity a:hover, .navigation-bg .cart-button__quantity a:hover, .content-bg .cart-button__quantity a:hover, .footer-bg .cart-button__quantity a:hover, .top-bg .call-to-action-color-bg a:focus, .navigation-bg .call-to-action-color-bg a:focus, .content-bg .call-to-action-color-bg a:focus, .footer-bg .call-to-action-color-bg a:focus, .top-bg .cart-button__quantity a:focus, .navigation-bg .cart-button__quantity a:focus, .content-bg .cart-button__quantity a:focus, .footer-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e85441; }
    .top-bg .call-to-action-color-bg:hover, .navigation-bg .call-to-action-color-bg:hover, .content-bg .call-to-action-color-bg:hover, .footer-bg .call-to-action-color-bg:hover, .top-bg .cart-button__quantity:hover, .navigation-bg .cart-button__quantity:hover, .content-bg .cart-button__quantity:hover, .footer-bg .cart-button__quantity:hover, .top-bg .call-to-action-color-bg:focus, .navigation-bg .call-to-action-color-bg:focus, .content-bg .call-to-action-color-bg:focus, .footer-bg .call-to-action-color-bg:focus, .top-bg .cart-button__quantity:focus, .navigation-bg .cart-button__quantity:focus, .content-bg .cart-button__quantity:focus, .footer-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e85441; }
  .top-bg button, .navigation-bg button, .content-bg button, .footer-bg button, .top-bg button.disabled, .navigation-bg button.disabled, .content-bg button.disabled, .footer-bg button.disabled, .top-bg button.disabled:hover, .navigation-bg button.disabled:hover, .content-bg button.disabled:hover, .footer-bg button.disabled:hover, .top-bg button.disabled:focus, .navigation-bg button.disabled:focus, .content-bg button.disabled:focus, .footer-bg button.disabled:focus, .top-bg button[disabled], .navigation-bg button[disabled], .content-bg button[disabled], .footer-bg button[disabled], .top-bg button[disabled]:hover, .navigation-bg button[disabled]:hover, .content-bg button[disabled]:hover, .footer-bg button[disabled]:hover, .top-bg button[disabled]:focus, .navigation-bg button[disabled]:focus, .content-bg button[disabled]:focus, .footer-bg button[disabled]:focus, .top-bg .button, .navigation-bg .button, .content-bg .button, .footer-bg .button, .top-bg .button.disabled, .navigation-bg .button.disabled, .content-bg .button.disabled, .footer-bg .button.disabled, .top-bg .button.disabled:hover, .navigation-bg .button.disabled:hover, .content-bg .button.disabled:hover, .footer-bg .button.disabled:hover, .top-bg .button.disabled:focus, .navigation-bg .button.disabled:focus, .content-bg .button.disabled:focus, .footer-bg .button.disabled:focus, .top-bg .button[disabled], .navigation-bg .button[disabled], .content-bg .button[disabled], .footer-bg .button[disabled], .top-bg .button[disabled]:hover, .navigation-bg .button[disabled]:hover, .content-bg .button[disabled]:hover, .footer-bg .button[disabled]:hover, .top-bg .button[disabled]:focus, .navigation-bg .button[disabled]:focus, .content-bg .button[disabled]:focus, .footer-bg .button[disabled]:focus {
    background-color: #000000;
    color: #fff;
    font-weight: normal; }
  .top-bg button:hover, .navigation-bg button:hover, .content-bg button:hover, .footer-bg button:hover, .top-bg button:focus, .navigation-bg button:focus, .content-bg button:focus, .footer-bg button:focus, .top-bg .button:hover, .navigation-bg .button:hover, .content-bg .button:hover, .footer-bg .button:hover, .top-bg .button:focus, .navigation-bg .button:focus, .content-bg .button:focus, .footer-bg .button:focus {
    color: #fff;
    background-color: #e03114; }

.freight-option,
.payment-option {
  border-color: rgba(51, 51, 51, 0.2); }

.product__title {
  border-color: rgba(51, 51, 51, 0.5); }

.product .price {
  color: #000000; }

.next-step-btn.button, .checkout__step #client_fetch, .checkout__step--inactive.valid .kasse_one_step_number, .button.receipt__print, .product__buy-button.button {
  background-color: #000000;
  color: #fff; }

.product .product__wishlist-button.button {
  background-color: #c8c8c8;
  color: #000; }

.header-bg {
  background-color: #f2f2f2;
  color: #333333; }
  .header-bg h1, .header-bg h2, .header-bg h3, .header-bg h4, .header-bg h5, .header-bg h6 {
    color: #212121; }
  .header-bg a {
    color: #000000; }
    .header-bg a:hover, .header-bg a:focus {
      color: black; }
  .header-bg .subtle, .header-bg #kasse_one_form .subtaxes, #kasse_one_form .header-bg .subtaxes, .header-bg .product__main-images .bx-caption, .product__main-images .header-bg .bx-caption, .header-bg .product__meta-numbers, .header-bg .product .price--original, .product .header-bg .price--original, .header-bg .product .vat-info, .product .header-bg .vat-info, .header-bg .product__stockstatus, .header-bg .rating input:checked ~ label, .rating .header-bg input:checked ~ label, .header-bg .rating label:hover ~ label, .rating .header-bg label:hover ~ label, .header-bg .productlist__product .price--original, .productlist__product .header-bg .price--original {
    color: #333333; }
  .header-bg .bordered, .header-bg .checkout--kco__custom-intro, .header-bg .checkout--kco .checkout__step, .checkout--kco .header-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.1); }
  .header-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.2); }
  .header-bg a.bordered:hover, .header-bg a.checkout--kco__custom-intro:hover, .header-bg .checkout--kco a.checkout__step:hover, .checkout--kco .header-bg a.checkout__step:hover, .header-bg a.bordered:focus, .header-bg a.checkout--kco__custom-intro:focus, .header-bg .checkout--kco a.checkout__step:focus, .checkout--kco .header-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.25); }
  .header-bg a.bordered--hard:hover, .header-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .header-bg .neutral-link, .header-bg .neutral-link > a {
    color: #333333; }
    .header-bg .neutral-link:hover, .header-bg .neutral-link:focus, .header-bg .neutral-link:active, .header-bg .neutral-link > a:hover, .header-bg .neutral-link > a:focus, .header-bg .neutral-link > a:active {
      color: #212121; }
  .header-bg .primary-color {
    color: #000000; }
  .header-bg .primary-color-big {
    color: #000000; }
  .header-bg .primary-color-bg {
    background-color: #000000;
    color: #fff; }
    .header-bg .primary-color-bg a {
      color: #fff; }
      .header-bg .primary-color-bg a:hover, .header-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #1a1a1a; }
    .header-bg .primary-color-bg:hover, .header-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #1a1a1a; }
  .header-bg .secondary-color {
    color: #6d6d6d; }
  .header-bg .secondary-color-big {
    color: #898989; }
  .header-bg .secondary-color-bg, .header-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .header-bg .cart-button__quantity {
    background-color: #c1c1c1;
    color: #4f4f4f; }
    .header-bg .secondary-color-bg a, .header-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .header-bg .cart-button__quantity a {
      color: #4f4f4f; }
      .header-bg .secondary-color-bg a:hover, .header-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .header-bg .cart-button__quantity a:hover, .header-bg .secondary-color-bg a:focus, .header-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .header-bg .cart-button__quantity a:focus {
        color: #4f4f4f;
        background-color: #dadada; }
    .header-bg .secondary-color-bg:hover, .header-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .header-bg .cart-button__quantity:hover, .header-bg .secondary-color-bg:focus, .header-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .header-bg .cart-button__quantity:focus {
      color: #4f4f4f;
      background-color: #dadada; }
  .header-bg .call-to-action-color {
    color: #cd2e19; }
  .header-bg .call-to-action-color-big {
    color: #DB311B; }
  .header-bg .call-to-action-color-bg, .header-bg .cart-button__quantity {
    background-color: #DB311B;
    color: #fff; }
    .header-bg .call-to-action-color-bg a, .header-bg .cart-button__quantity a {
      color: #fff; }
      .header-bg .call-to-action-color-bg a:hover, .header-bg .cart-button__quantity a:hover, .header-bg .call-to-action-color-bg a:focus, .header-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e85441; }
    .header-bg .call-to-action-color-bg:hover, .header-bg .cart-button__quantity:hover, .header-bg .call-to-action-color-bg:focus, .header-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e85441; }
  .header-bg button, .header-bg button.disabled, .header-bg button.disabled:hover, .header-bg button.disabled:focus, .header-bg button[disabled], .header-bg button[disabled]:hover, .header-bg button[disabled]:focus, .header-bg .button, .header-bg .button.disabled, .header-bg .button.disabled:hover, .header-bg .button.disabled:focus, .header-bg .button[disabled], .header-bg .button[disabled]:hover, .header-bg .button[disabled]:focus {
    background-color: #000000;
    color: #fff;
    font-weight: normal; }
  .header-bg button:hover, .header-bg button:focus, .header-bg .button:hover, .header-bg .button:focus {
    color: #fff;
    background-color: #e03114; }

.end-bg {
  background-color: #f3f3f3;
  color: #333333; }
  .end-bg h1, .end-bg h2, .end-bg h3, .end-bg h4, .end-bg h5, .end-bg h6 {
    color: #212121; }
  .end-bg a {
    color: #000000; }
    .end-bg a:hover, .end-bg a:focus {
      color: black; }
  .end-bg .subtle, .end-bg #kasse_one_form .subtaxes, #kasse_one_form .end-bg .subtaxes, .end-bg .product__main-images .bx-caption, .product__main-images .end-bg .bx-caption, .end-bg .product__meta-numbers, .end-bg .product .price--original, .product .end-bg .price--original, .end-bg .product .vat-info, .product .end-bg .vat-info, .end-bg .product__stockstatus, .end-bg .rating input:checked ~ label, .rating .end-bg input:checked ~ label, .end-bg .rating label:hover ~ label, .rating .end-bg label:hover ~ label, .end-bg .productlist__product .price--original, .productlist__product .end-bg .price--original {
    color: #333333; }
  .end-bg .bordered, .end-bg .checkout--kco__custom-intro, .end-bg .checkout--kco .checkout__step, .checkout--kco .end-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.1); }
  .end-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.2); }
  .end-bg a.bordered:hover, .end-bg a.checkout--kco__custom-intro:hover, .end-bg .checkout--kco a.checkout__step:hover, .checkout--kco .end-bg a.checkout__step:hover, .end-bg a.bordered:focus, .end-bg a.checkout--kco__custom-intro:focus, .end-bg .checkout--kco a.checkout__step:focus, .checkout--kco .end-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.25); }
  .end-bg a.bordered--hard:hover, .end-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .end-bg .neutral-link, .end-bg .neutral-link > a {
    color: #333333; }
    .end-bg .neutral-link:hover, .end-bg .neutral-link:focus, .end-bg .neutral-link:active, .end-bg .neutral-link > a:hover, .end-bg .neutral-link > a:focus, .end-bg .neutral-link > a:active {
      color: #212121; }
  .end-bg .primary-color {
    color: #000000; }
  .end-bg .primary-color-big {
    color: #000000; }
  .end-bg .primary-color-bg {
    background-color: #000000;
    color: #fff; }
    .end-bg .primary-color-bg a {
      color: #fff; }
      .end-bg .primary-color-bg a:hover, .end-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #1a1a1a; }
    .end-bg .primary-color-bg:hover, .end-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #1a1a1a; }
  .end-bg .secondary-color {
    color: #6d6d6d; }
  .end-bg .secondary-color-big {
    color: #898989; }
  .end-bg .secondary-color-bg, .end-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .end-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .end-bg .secondary-color-bg a, .end-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .end-bg .cart-button__quantity a {
      color: #525252; }
      .end-bg .secondary-color-bg a:hover, .end-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .end-bg .cart-button__quantity a:hover, .end-bg .secondary-color-bg a:focus, .end-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .end-bg .cart-button__quantity a:focus {
        color: #525252;
        background-color: #e2e2e2; }
    .end-bg .secondary-color-bg:hover, .end-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .end-bg .cart-button__quantity:hover, .end-bg .secondary-color-bg:focus, .end-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .end-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .end-bg .call-to-action-color {
    color: #cd2e19; }
  .end-bg .call-to-action-color-big {
    color: #DB311B; }
  .end-bg .call-to-action-color-bg, .end-bg .cart-button__quantity {
    background-color: #DB311B;
    color: #fff; }
    .end-bg .call-to-action-color-bg a, .end-bg .cart-button__quantity a {
      color: #fff; }
      .end-bg .call-to-action-color-bg a:hover, .end-bg .cart-button__quantity a:hover, .end-bg .call-to-action-color-bg a:focus, .end-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e85441; }
    .end-bg .call-to-action-color-bg:hover, .end-bg .cart-button__quantity:hover, .end-bg .call-to-action-color-bg:focus, .end-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e85441; }
  .end-bg button, .end-bg button.disabled, .end-bg button.disabled:hover, .end-bg button.disabled:focus, .end-bg button[disabled], .end-bg button[disabled]:hover, .end-bg button[disabled]:focus, .end-bg .button, .end-bg .button.disabled, .end-bg .button.disabled:hover, .end-bg .button.disabled:focus, .end-bg .button[disabled], .end-bg .button[disabled]:hover, .end-bg .button[disabled]:focus {
    background-color: #000000;
    color: #fff;
    font-weight: normal; }
  .end-bg button:hover, .end-bg button:focus, .end-bg .button:hover, .end-bg .button:focus {
    color: #fff;
    background-color: #e03114; }

/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

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

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0; }

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

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

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

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

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  /* 2 */
  box-sizing: content-box; }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

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

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

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

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

meta.foundation-version {
  font-family: "/5.5.1/"; }

meta.foundation-mq-small {
  font-family: "/only screen/";
  width: 0em; }

meta.foundation-mq-small-only {
  font-family: "/only screen and (max-width: 45em)/";
  width: 0em; }

meta.foundation-mq-medium {
  font-family: "/only screen and (min-width:45.063em)/";
  width: 45.063em; }

meta.foundation-mq-medium-only {
  font-family: "/only screen and (min-width:45.063em) and (max-width:64em)/";
  width: 45.063em; }

meta.foundation-mq-large {
  font-family: "/only screen and (min-width:64.063em)/";
  width: 64.063em; }

meta.foundation-mq-large-only {
  font-family: "/only screen and (min-width:64.063em) and (max-width:90em)/";
  width: 64.063em; }

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90.063em)/";
  width: 90.063em; }

meta.foundation-mq-xlarge-only {
  font-family: "/only screen and (min-width:90.063em) and (max-width:120em)/";
  width: 90.063em; }

meta.foundation-mq-xxlarge {
  font-family: "/only screen and (min-width:120.063em)/";
  width: 120.063em; }

meta.foundation-data-attribute-namespace {
  font-family: false; }

html, body {
  height: 100%; }

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

html,
body {
  font-size: 87.5%; }

body {
  background: #f3f3f3;
  color: #333333;
  padding: 0;
  margin: 0;
  font-family:  'Bitter', serif;
  font-weight: normal;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  cursor: auto; }

a:hover {
  cursor: pointer; }

img {
  max-width: 100%;
  height: auto; }

img {
  -ms-interpolation-mode: bicubic; }

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

.left {
  float: left !important; }

.right {
  float: right !important; }

.clearfix:before, .clearfix:after {
  content: " ";
  display: table; }

.clearfix:after {
  clear: both; }

.hide {
  display: none; }

.invisible {
  visibility: hidden; }

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px; }

select {
  width: 100%; }

[class*="block-grid-"] {
  display: block;
  padding: 0;
  margin: 0; }
  [class*="block-grid-"]:before, [class*="block-grid-"]:after {
    content: " ";
    display: table; }
  [class*="block-grid-"]:after {
    clear: both; }
  [class*="block-grid-"] > li {
    display: block;
    height: auto;
    float: left;
    padding: 0 1.07143rem 2.14286rem; }

@media only screen {
  .small-block-grid-1 > li {
    width: 100%;
    list-style: none; }
    .small-block-grid-1 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-1 > li:nth-of-type(1n+1) {
      clear: both; }
    .small-block-grid-1 > li:nth-of-type(1n) {
      padding-left: 0rem;
      padding-right: 0rem; }
  .small-block-grid-2 > li {
    width: 50%;
    list-style: none; }
    .small-block-grid-2 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-2 > li:nth-of-type(2n+1) {
      clear: both; }
    .small-block-grid-2 > li:nth-of-type(2n+1) {
      padding-left: 0rem;
      padding-right: 1.07143rem; }
    .small-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 1.07143rem;
      padding-right: 0rem; }
  .small-block-grid-3 > li {
    width: 33.33333%;
    list-style: none; }
    .small-block-grid-3 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-3 > li:nth-of-type(3n+1) {
      clear: both; }
    .small-block-grid-3 > li:nth-of-type(3n+1) {
      padding-left: 0rem;
      padding-right: 1.42857rem; }
    .small-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.71429rem;
      padding-right: 0.71429rem; }
    .small-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 1.42857rem;
      padding-right: 0rem; }
  .small-block-grid-4 > li {
    width: 25%;
    list-style: none; }
    .small-block-grid-4 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-4 > li:nth-of-type(4n+1) {
      clear: both; }
    .small-block-grid-4 > li:nth-of-type(4n+1) {
      padding-left: 0rem;
      padding-right: 1.60714rem; }
    .small-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.53571rem;
      padding-right: 1.07143rem; }
    .small-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 1.07143rem;
      padding-right: 0.53571rem; }
    .small-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 1.60714rem;
      padding-right: 0rem; }
  .small-block-grid-5 > li {
    width: 20%;
    list-style: none; }
    .small-block-grid-5 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-5 > li:nth-of-type(5n+1) {
      clear: both; }
    .small-block-grid-5 > li:nth-of-type(5n+1) {
      padding-left: 0rem;
      padding-right: 1.71429rem; }
    .small-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.42857rem;
      padding-right: 1.28571rem; }
    .small-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.85714rem;
      padding-right: 0.85714rem; }
    .small-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 1.28571rem;
      padding-right: 0.42857rem; }
    .small-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1.71429rem;
      padding-right: 0rem; } }

@media only screen and (min-width: 45.063em) {
  .medium-block-grid-1 > li {
    width: 100%;
    list-style: none; }
    .medium-block-grid-1 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-1 > li:nth-of-type(1n+1) {
      clear: both; }
    .medium-block-grid-1 > li:nth-of-type(1n) {
      padding-left: 0rem;
      padding-right: 0rem; }
  .medium-block-grid-2 > li {
    width: 50%;
    list-style: none; }
    .medium-block-grid-2 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-2 > li:nth-of-type(2n+1) {
      clear: both; }
    .medium-block-grid-2 > li:nth-of-type(2n+1) {
      padding-left: 0rem;
      padding-right: 1.07143rem; }
    .medium-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 1.07143rem;
      padding-right: 0rem; }
  .medium-block-grid-3 > li {
    width: 33.33333%;
    list-style: none; }
    .medium-block-grid-3 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-3 > li:nth-of-type(3n+1) {
      clear: both; }
    .medium-block-grid-3 > li:nth-of-type(3n+1) {
      padding-left: 0rem;
      padding-right: 1.42857rem; }
    .medium-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.71429rem;
      padding-right: 0.71429rem; }
    .medium-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 1.42857rem;
      padding-right: 0rem; }
  .medium-block-grid-4 > li {
    width: 25%;
    list-style: none; }
    .medium-block-grid-4 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-4 > li:nth-of-type(4n+1) {
      clear: both; }
    .medium-block-grid-4 > li:nth-of-type(4n+1) {
      padding-left: 0rem;
      padding-right: 1.60714rem; }
    .medium-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.53571rem;
      padding-right: 1.07143rem; }
    .medium-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 1.07143rem;
      padding-right: 0.53571rem; }
    .medium-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 1.60714rem;
      padding-right: 0rem; }
  .medium-block-grid-5 > li {
    width: 20%;
    list-style: none; }
    .medium-block-grid-5 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-5 > li:nth-of-type(5n+1) {
      clear: both; }
    .medium-block-grid-5 > li:nth-of-type(5n+1) {
      padding-left: 0rem;
      padding-right: 1.71429rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.42857rem;
      padding-right: 1.28571rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.85714rem;
      padding-right: 0.85714rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 1.28571rem;
      padding-right: 0.42857rem; }
    .medium-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1.71429rem;
      padding-right: 0rem; } }

@media only screen and (min-width: 64.063em) {
  .large-block-grid-1 > li {
    width: 100%;
    list-style: none; }
    .large-block-grid-1 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-1 > li:nth-of-type(1n+1) {
      clear: both; }
    .large-block-grid-1 > li:nth-of-type(1n) {
      padding-left: 0rem;
      padding-right: 0rem; }
  .large-block-grid-2 > li {
    width: 50%;
    list-style: none; }
    .large-block-grid-2 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-2 > li:nth-of-type(2n+1) {
      clear: both; }
    .large-block-grid-2 > li:nth-of-type(2n+1) {
      padding-left: 0rem;
      padding-right: 1.07143rem; }
    .large-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 1.07143rem;
      padding-right: 0rem; }
  .large-block-grid-3 > li {
    width: 33.33333%;
    list-style: none; }
    .large-block-grid-3 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-3 > li:nth-of-type(3n+1) {
      clear: both; }
    .large-block-grid-3 > li:nth-of-type(3n+1) {
      padding-left: 0rem;
      padding-right: 1.42857rem; }
    .large-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.71429rem;
      padding-right: 0.71429rem; }
    .large-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 1.42857rem;
      padding-right: 0rem; }
  .large-block-grid-4 > li {
    width: 25%;
    list-style: none; }
    .large-block-grid-4 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-4 > li:nth-of-type(4n+1) {
      clear: both; }
    .large-block-grid-4 > li:nth-of-type(4n+1) {
      padding-left: 0rem;
      padding-right: 1.60714rem; }
    .large-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.53571rem;
      padding-right: 1.07143rem; }
    .large-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 1.07143rem;
      padding-right: 0.53571rem; }
    .large-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 1.60714rem;
      padding-right: 0rem; }
  .large-block-grid-5 > li {
    width: 20%;
    list-style: none; }
    .large-block-grid-5 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-5 > li:nth-of-type(5n+1) {
      clear: both; }
    .large-block-grid-5 > li:nth-of-type(5n+1) {
      padding-left: 0rem;
      padding-right: 1.71429rem; }
    .large-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.42857rem;
      padding-right: 1.28571rem; }
    .large-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.85714rem;
      padding-right: 0.85714rem; }
    .large-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 1.28571rem;
      padding-right: 0.42857rem; }
    .large-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1.71429rem;
      padding-right: 0rem; } }

.breadcrumbs {
  display: block;
  padding: 0;
  overflow: hidden;
  margin-left: 0;
  list-style: none;
  border-style: solid;
  border-width: 0;
  background-color: #f2f2f2;
  border-color: #dadada;
  border-radius: 0; }
  .breadcrumbs > * {
    margin: 0;
    float: left;
    font-size: 1.14286rem;
    line-height: 1.14286rem;
    text-transform: none;
    color: #000000; }
    .breadcrumbs > *:hover a, .breadcrumbs > *:focus a {
      text-decoration: underline; }
    .breadcrumbs > * a {
      color: #000000; }
    .breadcrumbs > *.current {
      cursor: default;
      color: #333333; }
      .breadcrumbs > *.current a {
        cursor: default;
        color: #333333; }
      .breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a {
        text-decoration: none; }
    .breadcrumbs > *.unavailable {
      color: #999999; }
      .breadcrumbs > *.unavailable a {
        color: #999999; }
      .breadcrumbs > *.unavailable:hover,
      .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus,
      .breadcrumbs > *.unavailable a:focus {
        text-decoration: none;
        color: #999999;
        cursor: not-allowed; }
    .breadcrumbs > *:before {
      content: "/";
      color: #AAAAAA;
      margin: 0 0.3rem;
      position: relative;
      top: 1px; }
    .breadcrumbs > *:first-child:before {
      content: " ";
      margin: 0; }

/* Accessibility - hides the forward slash */
[aria-label="breadcrumbs"] [aria-hidden="true"]:after {
  content: "/"; }

button, .button {
  border-style: solid;
  border-width: 2px;
  cursor: pointer;
  font-family:  'Bitter', serif;
  font-weight: normal;
  line-height: normal;
  margin: 0 0 1.42857rem;
  position: relative;
  text-decoration: none;
  text-align: center;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 0;
  display: inline-block;
  padding-top: 0.71429rem;
  padding-right: 1.42857rem;
  padding-bottom: 0.78571rem;
  padding-left: 1.42857rem;
  font-size: 0.85714rem;
  background-color: #fff;
  border-color: #ddd;
  color: #333333;
  transition: background-color 300ms ease-out; }
  button:hover, button:focus, .button:hover, .button:focus {
    background-color: #ddd; }
  button:hover, button:focus, .button:hover, .button:focus {
    color: #333333; }
  button.secondary, .button.secondary {
    background-color: #e7e7e7;
    border-color: #e4e4e4;
    color: #333333; }
    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
      background-color: #b9b9b9; }
    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
      color: #333333; }
  button.success, .button.success {
    background-color: #5cb85c;
    border-color: #439a43;
    color: #FFFFFF; }
    button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
      background-color: #439a43; }
    button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
      color: #FFFFFF; }
  button.alert, .button.alert {
    background-color: #e03114;
    border-color: #b32710;
    color: #FFFFFF; }
    button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
      background-color: #b32710; }
    button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
      color: #FFFFFF; }
  button.warning, .button.warning {
    background-color: #ffa200;
    border-color: #cc8200;
    color: #FFFFFF; }
    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
      background-color: #cc8200; }
    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
      color: #FFFFFF; }
  button.info, .button.info {
    background-color: #5bc0de;
    border-color: #2aaad0;
    color: #FFFFFF; }
    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
      background-color: #2aaad0; }
    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
      color: #FFFFFF; }
  button.large, .button.large {
    padding-top: 0.85714rem;
    padding-right: 1.71429rem;
    padding-bottom: 0.92857rem;
    padding-left: 1.71429rem;
    font-size: 1.14286rem; }
  button.small, .button.small {
    padding-top: 0.57143rem;
    padding-right: 1.14286rem;
    padding-bottom: 0.64286rem;
    padding-left: 1.14286rem;
    font-size: 0.85714rem; }
  button.tiny, .button.tiny {
    padding-top: 0.42857rem;
    padding-right: 0.85714rem;
    padding-bottom: 0.5rem;
    padding-left: 0.85714rem;
    font-size: 0.71429rem; }
  button.expand, .button.expand {
    padding-right: 0;
    padding-left: 0;
    width: 100%; }
  button.left-align, .button.left-align {
    text-align: left;
    text-indent: 0.85714rem; }
  button.right-align, .button.right-align {
    text-align: right;
    padding-right: 0.85714rem; }
  button.radius, .button.radius, body .button, body button {
    border-radius: 0; }
  button.round, .button.round {
    border-radius: 1000px; }
  button.disabled, button[disabled], .button.disabled, .button[disabled] {
    background-color: #fff;
    border-color: #ddd;
    color: #333333;
    cursor: default;
    opacity: 0.7;
    box-shadow: none; }
    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
      background-color: #ddd; }
    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
      color: #333333; }
    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
      background-color: #fff; }
    button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary {
      background-color: #e7e7e7;
      border-color: #e4e4e4;
      color: #333333;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #b9b9b9; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        color: #333333; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #e7e7e7; }
    button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success {
      background-color: #5cb85c;
      border-color: #439a43;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #439a43; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        color: #FFFFFF; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #5cb85c; }
    button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert {
      background-color: #e03114;
      border-color: #b32710;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #b32710; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        color: #FFFFFF; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #e03114; }
    button.disabled.warning, button[disabled].warning, .button.disabled.warning, .button[disabled].warning {
      background-color: #ffa200;
      border-color: #cc8200;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #cc8200; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        color: #FFFFFF; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #ffa200; }
    button.disabled.info, button[disabled].info, .button.disabled.info, .button[disabled].info {
      background-color: #5bc0de;
      border-color: #2aaad0;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        background-color: #2aaad0; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        color: #FFFFFF; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        background-color: #5bc0de; }

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

@media only screen and (min-width: 45.063em) {
  button, .button {
    display: inline-block; } }

/* Standard Forms */
form {
  margin: 0 0 1.14286rem; }

/* Using forms within rows, we need to set some defaults */
form .row .row {
  margin: 0 -0.57143rem; }
  form .row .row .column,
  form .row .row .columns {
    padding: 0 0.57143rem; }
  form .row .row.collapse {
    margin: 0; }
    form .row .row.collapse .column,
    form .row .row.collapse .columns {
      padding: 0; }
    form .row .row.collapse input {
      -webkit-border-bottom-right-radius: 0;
      -webkit-border-top-right-radius: 0;
      border-bottom-right-radius: 0;
      border-top-right-radius: 0; }

form .row input.column,
form .row input.columns,
form .row textarea.column,
form .row textarea.columns {
  padding-left: 0.57143rem; }

/* Label Styles */
label {
  font-size: 0.85714rem;
  color: #4d4d4d;
  cursor: pointer;
  display: block;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 0.5rem;
  /* Styles for required inputs */ }
  label.right {
    float: none !important;
    text-align: right; }
  label.inline {
    margin: 0 0 1.14286rem 0;
    padding: 0.71429rem 0; }
  label small {
    text-transform: capitalize;
    color: #676767; }

/* Attach elements to the beginning or end of an input */
.prefix,
.postfix {
  display: block;
  position: relative;
  z-index: 2;
  text-align: center;
  width: 100%;
  padding-top: 0;
  padding-bottom: 0;
  border-style: solid;
  border-width: 1px;
  overflow: visible;
  font-size: 0.85714rem;
  height: 2.57143rem;
  line-height: 2.57143rem; }

/* Adjust padding, alignment and radius if pre/post element is a button */
.postfix.button {
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  border: none; }

.prefix.button {
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  border: none; }

.prefix.button.radius, body .prefix.button, body button.prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 0;
  -webkit-border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0; }

.postfix.button.radius, body .postfix.button, body button.postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 0;
  -webkit-border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-top-right-radius: 0; }

.prefix.button.round {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

.postfix.button.round {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

/* Separate prefix and postfix styles when on span or label so buttons keep their own */
span.prefix, label.prefix {
  background: #f2f2f2;
  border-right: none;
  color: #333333;
  border-color: #cccccc; }

span.postfix, label.postfix {
  background: #f2f2f2;
  border-left: none;
  color: #333333;
  border-color: #cccccc; }

/* We use this to get basic styling on all basic form elements */
input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], input[type="color"], textarea {
  -webkit-appearance: none;
  border-radius: 0;
  background-color: #FFFFFF;
  font-family: inherit;
  border-style: solid;
  border-width: 2px;
  border-color: #cccccc;
  box-shadow: none;
  color: rgba(0, 0, 0, 0.75);
  display: block;
  font-size: 0.92857rem;
  margin: 0 0 1.14286rem 0;
  padding: 0.57143rem;
  height: 2.57143rem;
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  transition: all 0.15s linear; }
  input[type="text"]:focus, input[type="password"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="color"]:focus, textarea:focus {
    background: #fafafa;
    border-color: #999999;
    outline: none; }
  input[type="text"]:disabled, input[type="password"]:disabled, input[type="date"]:disabled, input[type="datetime"]:disabled, input[type="datetime-local"]:disabled, input[type="month"]:disabled, input[type="week"]:disabled, input[type="email"]:disabled, input[type="number"]:disabled, input[type="search"]:disabled, input[type="tel"]:disabled, input[type="time"]:disabled, input[type="url"]:disabled, input[type="color"]:disabled, textarea:disabled {
    background-color: #DDDDDD;
    cursor: default; }
  input[type="text"][disabled], input[type="text"][readonly],
  fieldset[disabled] input[type="text"], input[type="password"][disabled], input[type="password"][readonly],
  fieldset[disabled] input[type="password"], input[type="date"][disabled], input[type="date"][readonly],
  fieldset[disabled] input[type="date"], input[type="datetime"][disabled], input[type="datetime"][readonly],
  fieldset[disabled] input[type="datetime"], input[type="datetime-local"][disabled], input[type="datetime-local"][readonly],
  fieldset[disabled] input[type="datetime-local"], input[type="month"][disabled], input[type="month"][readonly],
  fieldset[disabled] input[type="month"], input[type="week"][disabled], input[type="week"][readonly],
  fieldset[disabled] input[type="week"], input[type="email"][disabled], input[type="email"][readonly],
  fieldset[disabled] input[type="email"], input[type="number"][disabled], input[type="number"][readonly],
  fieldset[disabled] input[type="number"], input[type="search"][disabled], input[type="search"][readonly],
  fieldset[disabled] input[type="search"], input[type="tel"][disabled], input[type="tel"][readonly],
  fieldset[disabled] input[type="tel"], input[type="time"][disabled], input[type="time"][readonly],
  fieldset[disabled] input[type="time"], input[type="url"][disabled], input[type="url"][readonly],
  fieldset[disabled] input[type="url"], input[type="color"][disabled], input[type="color"][readonly],
  fieldset[disabled] input[type="color"], textarea[disabled], textarea[readonly],
  fieldset[disabled] textarea {
    background-color: #DDDDDD;
    cursor: default; }
  input[type="text"].radius, input[type="password"].radius, input[type="date"].radius, input[type="datetime"].radius, input[type="datetime-local"].radius, input[type="month"].radius, input[type="week"].radius, input[type="email"].radius, input[type="number"].radius, input[type="search"].radius, input[type="tel"].radius, input[type="time"].radius, input[type="url"].radius, input[type="color"].radius, textarea.radius {
    border-radius: 0; }

form .row .prefix-radius.row.collapse input,
form .row .prefix-radius.row.collapse textarea,
form .row .prefix-radius.row.collapse select,
form .row .prefix-radius.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 0;
  -webkit-border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-top-right-radius: 0; }

form .row .prefix-radius.row.collapse .prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 0;
  -webkit-border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0; }

form .row .postfix-radius.row.collapse input,
form .row .postfix-radius.row.collapse textarea,
form .row .postfix-radius.row.collapse select,
form .row .postfix-radius.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 0;
  -webkit-border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0; }

form .row .postfix-radius.row.collapse .postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 0;
  -webkit-border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-top-right-radius: 0; }

form .row .prefix-round.row.collapse input,
form .row .prefix-round.row.collapse textarea,
form .row .prefix-round.row.collapse select,
form .row .prefix-round.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

form .row .prefix-round.row.collapse .prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

form .row .postfix-round.row.collapse input,
form .row .postfix-round.row.collapse textarea,
form .row .postfix-round.row.collapse select,
form .row .postfix-round.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

form .row .postfix-round.row.collapse .postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

input[type="submit"] {
  -webkit-appearance: none;
  border-radius: 0; }

/* Respect enforced amount of rows for textarea */
textarea[rows] {
  height: auto; }

/* Not allow resize out of parent */
textarea {
  max-width: 100%; }

/* Add height value for select elements to match text input height */
select {
  -webkit-appearance: none !important;
  border-radius: 0;
  background-color: #FAFAFA;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);
  background-position: 100% center;
  background-repeat: no-repeat;
  border-style: solid;
  border-width: 2px;
  border-color: #cccccc;
  padding: 0.57143rem;
  font-size: 0.92857rem;
  font-family:  'Bitter', serif;
  color: rgba(0, 0, 0, 0.75);
  line-height: normal;
  border-radius: 0;
  height: 2.57143rem; }
  select::-ms-expand {
    display: none; }
  select.radius {
    border-radius: 0; }
  select:hover {
    background-color: #f3f3f3;
    border-color: #999999; }
  select:disabled {
    background-color: #DDDDDD;
    cursor: default; }
  select[multiple] {
    height: auto; }

/* Adjust margin for form elements below */
input[type="file"],
input[type="checkbox"],
input[type="radio"],
select {
  margin: 0 0 1.14286rem 0; }

input[type="checkbox"] + label,
input[type="radio"] + label {
  display: inline-block;
  margin-left: 0.57143rem;
  margin-right: 1.14286rem;
  margin-bottom: 0;
  vertical-align: baseline; }

/* Normalize file input width */
input[type="file"] {
  width: 100%; }

/* HTML5 Number spinners settings */
/* We add basic fieldset styling */
fieldset {
  border: 1px solid #DDDDDD;
  padding: 1.42857rem;
  margin: 1.28571rem 0; }
  fieldset legend {
    font-weight: bold;
    background: #FFFFFF;
    padding: 0 0.21429rem;
    margin: 0;
    margin-left: -0.21429rem; }

/* Error Handling */
[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error {
  display: block;
  padding: 0.42857rem 0.64286rem 0.64286rem;
  margin-top: -1px;
  margin-bottom: 1.14286rem;
  font-size: 0.85714rem;
  font-weight: normal;
  font-style: italic;
  background: #e03114;
  color: #FFFFFF; }

[data-abide] span.error, [data-abide] small.error {
  display: none; }

span.error, small.error {
  display: block;
  padding: 0.42857rem 0.64286rem 0.64286rem;
  margin-top: -1px;
  margin-bottom: 1.14286rem;
  font-size: 0.85714rem;
  font-weight: normal;
  font-style: italic;
  background: #e03114;
  color: #FFFFFF; }

.error input,
.error textarea,
.error select {
  margin-bottom: 0; }

.error input[type="checkbox"],
.error input[type="radio"] {
  margin-bottom: 1.14286rem; }

.error label,
.error label.error {
  color: #e03114; }

.error small.error {
  display: block;
  padding: 0.42857rem 0.64286rem 0.64286rem;
  margin-top: -1px;
  margin-bottom: 1.14286rem;
  font-size: 0.85714rem;
  font-weight: normal;
  font-style: italic;
  background: #e03114;
  color: #FFFFFF; }

.error > label > small {
  color: #676767;
  background: transparent;
  padding: 0;
  text-transform: capitalize;
  font-style: normal;
  font-size: 60%;
  margin: 0;
  display: inline; }

.error span.error-message {
  display: block; }

input.error,
textarea.error,
select.error {
  margin-bottom: 0; }

label.error {
  color: #e03114; }

.row {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  margin-bottom: 0;
  max-width: 91.42857rem; }
  .row:before, .row:after {
    content: " ";
    display: table; }
  .row:after {
    clear: both; }
  .row.collapse > .column,
  .row.collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row .row {
    width: auto;
    margin-left: -1.07143rem;
    margin-right: -1.07143rem;
    margin-top: 0;
    margin-bottom: 0;
    max-width: none; }
    .row .row:before, .row .row:after {
      content: " ";
      display: table; }
    .row .row:after {
      clear: both; }
    .row .row.collapse {
      width: auto;
      margin: 0;
      max-width: none; }
      .row .row.collapse:before, .row .row.collapse:after {
        content: " ";
        display: table; }
      .row .row.collapse:after {
        clear: both; }

.column,
.columns {
  padding-left: 1.07143rem;
  padding-right: 1.07143rem;
  width: 100%;
  float: left; }

[class*="column"] + [class*="column"]:last-child {
  float: right; }

[class*="column"] + [class*="column"].end {
  float: left; }

@media only screen {
  .small-push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .small-pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .small-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .small-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .small-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .small-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .small-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .small-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .small-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .small-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .small-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .small-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .small-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .small-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .small-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .small-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .small-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .small-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .small-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .small-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .small-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .small-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .small-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .small-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    float: left; }
  .small-1 {
    width: 8.33333%; }
  .small-2 {
    width: 16.66667%; }
  .small-3 {
    width: 25%; }
  .small-4 {
    width: 33.33333%; }
  .small-5 {
    width: 41.66667%; }
  .small-6 {
    width: 50%; }
  .small-7 {
    width: 58.33333%; }
  .small-8 {
    width: 66.66667%; }
  .small-9 {
    width: 75%; }
  .small-10 {
    width: 83.33333%; }
  .small-11 {
    width: 91.66667%; }
  .small-12 {
    width: 100%; }
  .small-offset-0 {
    margin-left: 0% !important; }
  .small-offset-1 {
    margin-left: 8.33333% !important; }
  .small-offset-2 {
    margin-left: 16.66667% !important; }
  .small-offset-3 {
    margin-left: 25% !important; }
  .small-offset-4 {
    margin-left: 33.33333% !important; }
  .small-offset-5 {
    margin-left: 41.66667% !important; }
  .small-offset-6 {
    margin-left: 50% !important; }
  .small-offset-7 {
    margin-left: 58.33333% !important; }
  .small-offset-8 {
    margin-left: 66.66667% !important; }
  .small-offset-9 {
    margin-left: 75% !important; }
  .small-offset-10 {
    margin-left: 83.33333% !important; }
  .small-offset-11 {
    margin-left: 91.66667% !important; }
  .small-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left; }
  .column.small-centered,
  .columns.small-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.small-uncentered,
  .columns.small-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left; }
  .column.small-centered:last-child,
  .columns.small-centered:last-child {
    float: none; }
  .column.small-uncentered:last-child,
  .columns.small-uncentered:last-child {
    float: left; }
  .column.small-uncentered.opposite,
  .columns.small-uncentered.opposite {
    float: right; }
  .row.small-collapse > .column,
  .row.small-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.small-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.small-uncollapse > .column,
  .row.small-uncollapse > .columns {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    float: left; } }

@media only screen and (min-width: 45.063em) {
  .medium-push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .medium-pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .medium-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .medium-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .medium-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .medium-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .medium-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .medium-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .medium-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .medium-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .medium-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .medium-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .medium-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .medium-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .medium-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .medium-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .medium-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .medium-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .medium-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .medium-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .medium-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .medium-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .medium-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .medium-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    float: left; }
  .medium-1 {
    width: 8.33333%; }
  .medium-2 {
    width: 16.66667%; }
  .medium-3 {
    width: 25%; }
  .medium-4 {
    width: 33.33333%; }
  .medium-5 {
    width: 41.66667%; }
  .medium-6 {
    width: 50%; }
  .medium-7 {
    width: 58.33333%; }
  .medium-8 {
    width: 66.66667%; }
  .medium-9 {
    width: 75%; }
  .medium-10 {
    width: 83.33333%; }
  .medium-11 {
    width: 91.66667%; }
  .medium-12 {
    width: 100%; }
  .medium-offset-0 {
    margin-left: 0% !important; }
  .medium-offset-1 {
    margin-left: 8.33333% !important; }
  .medium-offset-2 {
    margin-left: 16.66667% !important; }
  .medium-offset-3 {
    margin-left: 25% !important; }
  .medium-offset-4 {
    margin-left: 33.33333% !important; }
  .medium-offset-5 {
    margin-left: 41.66667% !important; }
  .medium-offset-6 {
    margin-left: 50% !important; }
  .medium-offset-7 {
    margin-left: 58.33333% !important; }
  .medium-offset-8 {
    margin-left: 66.66667% !important; }
  .medium-offset-9 {
    margin-left: 75% !important; }
  .medium-offset-10 {
    margin-left: 83.33333% !important; }
  .medium-offset-11 {
    margin-left: 91.66667% !important; }
  .medium-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left; }
  .column.medium-centered,
  .columns.medium-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.medium-uncentered,
  .columns.medium-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left; }
  .column.medium-centered:last-child,
  .columns.medium-centered:last-child {
    float: none; }
  .column.medium-uncentered:last-child,
  .columns.medium-uncentered:last-child {
    float: left; }
  .column.medium-uncentered.opposite,
  .columns.medium-uncentered.opposite {
    float: right; }
  .row.medium-collapse > .column,
  .row.medium-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.medium-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.medium-uncollapse > .column,
  .row.medium-uncollapse > .columns {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    float: left; }
  .push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; } }

@media only screen and (min-width: 64.063em) {
  .large-push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .large-pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .large-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .large-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .large-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .large-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .large-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .large-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .large-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .large-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .large-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .large-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .large-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .large-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .large-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .large-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .large-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .large-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .large-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .large-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .large-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .large-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .large-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .large-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    float: left; }
  .large-1 {
    width: 8.33333%; }
  .large-2 {
    width: 16.66667%; }
  .large-3 {
    width: 25%; }
  .large-4 {
    width: 33.33333%; }
  .large-5 {
    width: 41.66667%; }
  .large-6 {
    width: 50%; }
  .large-7 {
    width: 58.33333%; }
  .large-8 {
    width: 66.66667%; }
  .large-9 {
    width: 75%; }
  .large-10 {
    width: 83.33333%; }
  .large-11 {
    width: 91.66667%; }
  .large-12 {
    width: 100%; }
  .large-offset-0 {
    margin-left: 0% !important; }
  .large-offset-1 {
    margin-left: 8.33333% !important; }
  .large-offset-2 {
    margin-left: 16.66667% !important; }
  .large-offset-3 {
    margin-left: 25% !important; }
  .large-offset-4 {
    margin-left: 33.33333% !important; }
  .large-offset-5 {
    margin-left: 41.66667% !important; }
  .large-offset-6 {
    margin-left: 50% !important; }
  .large-offset-7 {
    margin-left: 58.33333% !important; }
  .large-offset-8 {
    margin-left: 66.66667% !important; }
  .large-offset-9 {
    margin-left: 75% !important; }
  .large-offset-10 {
    margin-left: 83.33333% !important; }
  .large-offset-11 {
    margin-left: 91.66667% !important; }
  .large-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left; }
  .column.large-centered,
  .columns.large-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.large-uncentered,
  .columns.large-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left; }
  .column.large-centered:last-child,
  .columns.large-centered:last-child {
    float: none; }
  .column.large-uncentered:last-child,
  .columns.large-uncentered:last-child {
    float: left; }
  .column.large-uncentered.opposite,
  .columns.large-uncentered.opposite {
    float: right; }
  .row.large-collapse > .column,
  .row.large-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.large-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.large-uncollapse > .column,
  .row.large-uncollapse > .columns {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    float: left; }
  .push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; } }

@media only screen and (min-width: 90.063em) {
  .xlarge-push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .xlarge-pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .xlarge-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .xlarge-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .xlarge-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .xlarge-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .xlarge-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .xlarge-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .xlarge-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .xlarge-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .xlarge-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .xlarge-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .xlarge-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .xlarge-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .xlarge-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .xlarge-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .xlarge-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .xlarge-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .xlarge-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .xlarge-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .xlarge-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .xlarge-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .xlarge-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .xlarge-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    float: left; }
  .xlarge-1 {
    width: 8.33333%; }
  .xlarge-2 {
    width: 16.66667%; }
  .xlarge-3 {
    width: 25%; }
  .xlarge-4 {
    width: 33.33333%; }
  .xlarge-5 {
    width: 41.66667%; }
  .xlarge-6 {
    width: 50%; }
  .xlarge-7 {
    width: 58.33333%; }
  .xlarge-8 {
    width: 66.66667%; }
  .xlarge-9 {
    width: 75%; }
  .xlarge-10 {
    width: 83.33333%; }
  .xlarge-11 {
    width: 91.66667%; }
  .xlarge-12 {
    width: 100%; }
  .xlarge-offset-0 {
    margin-left: 0% !important; }
  .xlarge-offset-1 {
    margin-left: 8.33333% !important; }
  .xlarge-offset-2 {
    margin-left: 16.66667% !important; }
  .xlarge-offset-3 {
    margin-left: 25% !important; }
  .xlarge-offset-4 {
    margin-left: 33.33333% !important; }
  .xlarge-offset-5 {
    margin-left: 41.66667% !important; }
  .xlarge-offset-6 {
    margin-left: 50% !important; }
  .xlarge-offset-7 {
    margin-left: 58.33333% !important; }
  .xlarge-offset-8 {
    margin-left: 66.66667% !important; }
  .xlarge-offset-9 {
    margin-left: 75% !important; }
  .xlarge-offset-10 {
    margin-left: 83.33333% !important; }
  .xlarge-offset-11 {
    margin-left: 91.66667% !important; }
  .xlarge-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left; }
  .column.xlarge-centered,
  .columns.xlarge-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.xlarge-uncentered,
  .columns.xlarge-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left; }
  .column.xlarge-centered:last-child,
  .columns.xlarge-centered:last-child {
    float: none; }
  .column.xlarge-uncentered:last-child,
  .columns.xlarge-uncentered:last-child {
    float: left; }
  .column.xlarge-uncentered.opposite,
  .columns.xlarge-uncentered.opposite {
    float: right; }
  .row.xlarge-collapse > .column,
  .row.xlarge-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.xlarge-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.xlarge-uncollapse > .column,
  .row.xlarge-uncollapse > .columns {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    float: left; } }

@media only screen and (min-width: 120.063em) {
  .xxlarge-push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .xxlarge-pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .xxlarge-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .xxlarge-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .xxlarge-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .xxlarge-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .xxlarge-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .xxlarge-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .xxlarge-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .xxlarge-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .xxlarge-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .xxlarge-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .xxlarge-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .xxlarge-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .xxlarge-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .xxlarge-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .xxlarge-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .xxlarge-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .xxlarge-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .xxlarge-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .xxlarge-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .xxlarge-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .xxlarge-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .xxlarge-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    float: left; }
  .xxlarge-1 {
    width: 8.33333%; }
  .xxlarge-2 {
    width: 16.66667%; }
  .xxlarge-3 {
    width: 25%; }
  .xxlarge-4 {
    width: 33.33333%; }
  .xxlarge-5 {
    width: 41.66667%; }
  .xxlarge-6 {
    width: 50%; }
  .xxlarge-7 {
    width: 58.33333%; }
  .xxlarge-8 {
    width: 66.66667%; }
  .xxlarge-9 {
    width: 75%; }
  .xxlarge-10 {
    width: 83.33333%; }
  .xxlarge-11 {
    width: 91.66667%; }
  .xxlarge-12 {
    width: 100%; }
  .xxlarge-offset-0 {
    margin-left: 0% !important; }
  .xxlarge-offset-1 {
    margin-left: 8.33333% !important; }
  .xxlarge-offset-2 {
    margin-left: 16.66667% !important; }
  .xxlarge-offset-3 {
    margin-left: 25% !important; }
  .xxlarge-offset-4 {
    margin-left: 33.33333% !important; }
  .xxlarge-offset-5 {
    margin-left: 41.66667% !important; }
  .xxlarge-offset-6 {
    margin-left: 50% !important; }
  .xxlarge-offset-7 {
    margin-left: 58.33333% !important; }
  .xxlarge-offset-8 {
    margin-left: 66.66667% !important; }
  .xxlarge-offset-9 {
    margin-left: 75% !important; }
  .xxlarge-offset-10 {
    margin-left: 83.33333% !important; }
  .xxlarge-offset-11 {
    margin-left: 91.66667% !important; }
  .xxlarge-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left; }
  .column.xxlarge-centered,
  .columns.xxlarge-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.xxlarge-uncentered,
  .columns.xxlarge-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left; }
  .column.xxlarge-centered:last-child,
  .columns.xxlarge-centered:last-child {
    float: none; }
  .column.xxlarge-uncentered:last-child,
  .columns.xxlarge-uncentered:last-child {
    float: left; }
  .column.xxlarge-uncentered.opposite,
  .columns.xxlarge-uncentered.opposite {
    float: right; }
  .row.xxlarge-collapse > .column,
  .row.xxlarge-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.xxlarge-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.xxlarge-uncollapse > .column,
  .row.xxlarge-uncollapse > .columns {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    float: left; } }

.inline-list {
  margin: 0 auto 1.21429rem auto;
  margin-left: -1.57143rem;
  margin-right: 0;
  padding: 0;
  list-style: none;
  overflow: hidden; }
  .inline-list > li {
    list-style: none;
    float: left;
    margin-left: 1.57143rem;
    display: block; }
    .inline-list > li > * {
      display: block; }

table {
  background: #ffffff;
  margin-bottom: 1.42857rem;
  border: solid 0 rgba(51, 51, 51, 0.4);
  table-layout: auto; }
  table caption {
    background: transparent;
    color: #333333;
    font-size: 1.14286rem;
    font-weight: bold; }
  table thead {
    background: #f7f7f7; }
    table thead tr th,
    table thead tr td {
      padding: 0.57143rem 0.71429rem 0.71429rem;
      font-size: 1rem;
      font-weight: bold;
      color: #333333; }
  table tfoot {
    background: #f7f7f7; }
    table tfoot tr th,
    table tfoot tr td {
      padding: 0.57143rem 0.71429rem 0.71429rem;
      font-size: 1rem;
      font-weight: bold;
      color: #333333; }
  table tr th,
  table tr td {
    padding: 0.64286rem 0.71429rem;
    font-size: 1rem;
    color: #333333;
    text-align: left; }
  table tr.even, table tr.alt, table tr:nth-of-type(even) {
    background: #f2f2f2; }
  table thead tr th,
  table tfoot tr th,
  table tfoot tr td,
  table tbody tr th,
  table tbody tr td,
  table tr td {
    display: table-cell;
    line-height: 1.28571rem; }

.tabs {
  margin-bottom: 0 !important;
  margin-left: 0; }
  .tabs:before, .tabs:after {
    content: " ";
    display: table; }
  .tabs:after {
    clear: both; }
  .tabs dd, .tabs .tab-title {
    position: relative;
    margin-bottom: 0 !important;
    list-style: none;
    float: left; }
    .tabs dd > a, .tabs .tab-title > a {
      display: block;
      background-color: #e6e6e6;
      color: #1a1a1a;
      padding: 0.4rem 0.8rem;
      font-family:  'Bitter', serif;
      font-size: 1.14286rem; }
      .tabs dd > a:hover, .tabs .tab-title > a:hover {
        background-color: #bfbfbf; }
      .tabs dd > a:focus, .tabs .tab-title > a:focus {
        outline: none; }
    .tabs dd.active a, .tabs .tab-title.active a {
      background-color: #000;
      color: white; }
  .tabs.radius dd:first-child a, .tabs.radius .tab:first-child a {
    -webkit-border-bottom-left-radius: 0;
    -webkit-border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-top-left-radius: 0; }
  .tabs.radius dd:last-child a, .tabs.radius .tab:last-child a {
    -webkit-border-bottom-right-radius: 0;
    -webkit-border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-top-right-radius: 0; }
  .tabs.vertical dd, .tabs.vertical .tab-title {
    position: inherit;
    float: none;
    display: block;
    top: auto; }

.tabs-content {
  margin-bottom: 1.71429rem;
  width: 100%; }
  .tabs-content:before, .tabs-content:after {
    content: " ";
    display: table; }
  .tabs-content:after {
    clear: both; }
  .tabs-content > .content {
    display: none;
    float: left;
    padding: 0.5rem 0;
    width: 100%; }
    .tabs-content > .content.active {
      display: block;
      float: none; }
    .tabs-content > .content.contained {
      padding: 0.5rem; }
  .tabs-content.vertical {
    display: block; }
    .tabs-content.vertical > .content {
      padding: 0 0.5rem; }

@media only screen and (min-width: 45.063em) {
  .tabs.vertical {
    width: 20%;
    max-width: 20%;
    float: left;
    margin: 0 0 1.25rem; }
  .tabs-content.vertical {
    width: 80%;
    max-width: 80%;
    float: left;
    margin-left: -1px;
    padding-left: 1rem; } }

.no-js .tabs-content > .content {
  display: block;
  float: none; }

/* Image Thumbnails */
.th {
  line-height: 0;
  display: inline-block;
  border: solid 0 #FFFFFF;
  max-width: 100%;
  box-shadow: none;
  transition: all 200ms ease-out; }
  .th:hover, .th:focus {
    box-shadow: none; }
  .th.radius {
    border-radius: 0; }

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

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

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

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

@media only screen and (max-width: 45em) {
  .small-only-text-left {
    text-align: left !important; }
  .small-only-text-right {
    text-align: right !important; }
  .small-only-text-center {
    text-align: center !important; }
  .small-only-text-justify {
    text-align: justify !important; } }

@media only screen {
  .small-text-left {
    text-align: left !important; }
  .small-text-right {
    text-align: right !important; }
  .small-text-center {
    text-align: center !important; }
  .small-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 45.063em) and (max-width: 64em) {
  .medium-only-text-left {
    text-align: left !important; }
  .medium-only-text-right {
    text-align: right !important; }
  .medium-only-text-center {
    text-align: center !important; }
  .medium-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 45.063em) {
  .medium-text-left {
    text-align: left !important; }
  .medium-text-right {
    text-align: right !important; }
  .medium-text-center {
    text-align: center !important; }
  .medium-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 64.063em) and (max-width: 90em) {
  .large-only-text-left {
    text-align: left !important; }
  .large-only-text-right {
    text-align: right !important; }
  .large-only-text-center {
    text-align: center !important; }
  .large-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 64.063em) {
  .large-text-left {
    text-align: left !important; }
  .large-text-right {
    text-align: right !important; }
  .large-text-center {
    text-align: center !important; }
  .large-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 90.063em) and (max-width: 120em) {
  .xlarge-only-text-left {
    text-align: left !important; }
  .xlarge-only-text-right {
    text-align: right !important; }
  .xlarge-only-text-center {
    text-align: center !important; }
  .xlarge-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 90.063em) {
  .xlarge-text-left {
    text-align: left !important; }
  .xlarge-text-right {
    text-align: right !important; }
  .xlarge-text-center {
    text-align: center !important; }
  .xlarge-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 120.063em) and (max-width: 99999999em) {
  .xxlarge-only-text-left {
    text-align: left !important; }
  .xxlarge-only-text-right {
    text-align: right !important; }
  .xxlarge-only-text-center {
    text-align: center !important; }
  .xxlarge-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 120.063em) {
  .xxlarge-text-left {
    text-align: left !important; }
  .xxlarge-text-right {
    text-align: right !important; }
  .xxlarge-text-center {
    text-align: center !important; }
  .xxlarge-text-justify {
    text-align: justify !important; } }

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

/* Default Link Styles */
a {
  color: #000000;
  text-decoration: none;
  line-height: inherit; }
  a:hover, a:focus {
    color: black; }
  a img {
    border: none; }

/* Default paragraph styles */
p {
  font-family: inherit;
  font-weight: normal;
  font-size: 1rem;
  line-height: 1.5;
  margin-bottom: 1.42857rem;
  text-rendering: optimizeLegibility; }
  p.lead {
    font-size: 1.25rem;
    line-height: 1.6; }
  p aside {
    font-size: 1rem;
    line-height: 1.35;
    font-style: italic; }

/* Default header styles */
h1, h2, h3, h4, h5, h6 {
  font-family:  'Noto Sans', sans-serif;
  font-weight: normal;
  font-style: normal;
  color: #212121;
  text-rendering: optimizeLegibility;
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  line-height: 1.4; }
  h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
    font-size: 71.429%;
    color: #6f6f6f;
    line-height: 0; }

h1 {
  font-size: 1.35714rem; }

h2 {
  font-size: 1.21429rem; }

h3 {
  font-size: 1.14286rem; }

h4 {
  font-size: 1.07143rem; }

h5 {
  font-size: 1rem; }

h6 {
  font-size: 0.867rem; }

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

hr {
  border: solid #DDDDDD;
  border-width: 1px 0 0;
  clear: both;
  margin: 1.42857rem 0 1.35714rem;
  height: 0; }

/* Helpful Typography Defaults */
em,
i {
  font-style: italic;
  line-height: inherit; }

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

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

code {
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #333333;
  background-color: #f8f8f8;
  border-width: 1px;
  border-style: solid;
  border-color: #dfdfdf;
  padding: 0.14286rem 0.35714rem 0.07143rem; }

/* Lists */
ul,
ol,
dl {
  font-size: 1rem;
  line-height: 1.5;
  margin-bottom: 1.42857rem;
  list-style-position: outside;
  font-family: inherit; }

ul {
  margin-left: 1.1rem; }
  ul.no-bullet {
    margin-left: 0; }
    ul.no-bullet li ul,
    ul.no-bullet li ol {
      margin-left: 1.42857rem;
      margin-bottom: 0;
      list-style: none; }

/* Unordered Lists */
ul li ul,
ul li ol {
  margin-left: 1.42857rem;
  margin-bottom: 0; }

ul.square li ul, ul.circle li ul, ul.disc li ul {
  list-style: inherit; }

ul.square {
  list-style-type: square;
  margin-left: 1.1rem; }

ul.circle {
  list-style-type: circle;
  margin-left: 1.1rem; }

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

ul.no-bullet {
  list-style: none; }

/* Ordered Lists */
ol {
  margin-left: 1.4rem; }
  ol li ul,
  ol li ol {
    margin-left: 1.42857rem;
    margin-bottom: 0; }

/* Definition Lists */
dl dt {
  margin-bottom: 0.3rem;
  font-weight: bold; }

dl dd {
  margin-bottom: 0.85714rem; }

/* Abbreviations */
abbr,
acronym {
  text-transform: uppercase;
  font-size: 90%;
  color: #333333;
  cursor: help; }

abbr {
  text-transform: none; }
  abbr[title] {
    border-bottom: 1px dotted #DDDDDD; }

/* Blockquotes */
blockquote {
  margin: 0 0 1.42857rem;
  padding: 0.64286rem 1.42857rem 0 1.35714rem;
  border-left: 1px solid #DDDDDD; }
  blockquote cite {
    display: block;
    font-size: 0.92857rem;
    color: #545454; }
    blockquote cite:before {
      content: "\2014 \0020"; }
    blockquote cite a,
    blockquote cite a:visited {
      color: #545454; }

blockquote,
blockquote p {
  line-height: 1.5;
  color: #6f6f6f; }

/* Microformats */
.vcard {
  display: inline-block;
  margin: 0 0 1.42857rem 0;
  border: 1px solid #DDDDDD;
  padding: 0.71429rem 0.85714rem; }
  .vcard li {
    margin: 0;
    display: block; }
  .vcard .fn {
    font-weight: bold;
    font-size: 1.07143rem; }

.vevent .summary {
  font-weight: bold; }

.vevent abbr {
  cursor: default;
  text-decoration: none;
  font-weight: bold;
  border: none;
  padding: 0 0.07143rem; }

@media only screen and (min-width: 45.063em) {
  h1, h2, h3, h4, h5, h6 {
    line-height: 1.4; }
  h1 {
    font-size: 1.71429rem; }
  h2 {
    font-size: 1.42857rem; }
  h3 {
    font-size: 1.28571rem; }
  h4 {
    font-size: 1.14286rem; }
  h5 {
    font-size: 1rem; }
  h6 {
    font-size: 0.867rem; } }

/* small displays */
@media only screen {
  .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .visible-for-small-only, .visible-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .hidden-for-small-only, .hidden-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* medium displays */
@media only screen and (min-width: 45.063em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* large displays */
@media only screen and (min-width: 64.063em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* xlarge displays */
@media only screen and (min-width: 90.063em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xlarge, td.show-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* xxlarge displays */
@media only screen and (min-width: 120.063em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .hidden-for-xlarge-only, .visible-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .visible-for-xlarge-only, .hidden-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xlarge, table.hide-for-xlarge-down, table.show-for-xxlarge-only, table.show-for-xxlarge-up, table.show-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xlarge, thead.hide-for-xlarge-down, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up, thead.show-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xlarge, tbody.hide-for-xlarge-down, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up, tbody.show-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xlarge, tr.hide-for-xlarge-down, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up, tr.show-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.hide-for-xlarge-down, td.hide-for-xlarge-down, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up, th.show-for-xxlarge, td.show-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* Orientation targeting */
.show-for-landscape,
.hide-for-portrait {
  display: inherit !important; }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }

/* Specific visibility for tables */
table.hide-for-landscape, table.show-for-portrait {
  display: table !important; }

thead.hide-for-landscape, thead.show-for-portrait {
  display: table-header-group !important; }

tbody.hide-for-landscape, tbody.show-for-portrait {
  display: table-row-group !important; }

tr.hide-for-landscape, tr.show-for-portrait {
  display: table-row !important; }

td.hide-for-landscape, td.show-for-portrait,
th.hide-for-landscape,
th.show-for-portrait {
  display: table-cell !important; }

@media only screen and (orientation: landscape) {
  .show-for-landscape,
  .hide-for-portrait {
    display: inherit !important; }
  .hide-for-landscape,
  .show-for-portrait {
    display: none !important; }
  /* Specific visibility for tables */
  table.show-for-landscape, table.hide-for-portrait {
    display: table !important; }
  thead.show-for-landscape, thead.hide-for-portrait {
    display: table-header-group !important; }
  tbody.show-for-landscape, tbody.hide-for-portrait {
    display: table-row-group !important; }
  tr.show-for-landscape, tr.hide-for-portrait {
    display: table-row !important; }
  td.show-for-landscape, td.hide-for-portrait,
  th.show-for-landscape,
  th.hide-for-portrait {
    display: table-cell !important; } }

@media only screen and (orientation: portrait) {
  .show-for-portrait,
  .hide-for-landscape {
    display: inherit !important; }
  .hide-for-portrait,
  .show-for-landscape {
    display: none !important; }
  /* Specific visibility for tables */
  table.show-for-portrait, table.hide-for-landscape {
    display: table !important; }
  thead.show-for-portrait, thead.hide-for-landscape {
    display: table-header-group !important; }
  tbody.show-for-portrait, tbody.hide-for-landscape {
    display: table-row-group !important; }
  tr.show-for-portrait, tr.hide-for-landscape {
    display: table-row !important; }
  td.show-for-portrait, td.hide-for-landscape,
  th.show-for-portrait,
  th.hide-for-landscape {
    display: table-cell !important; } }

/* Touch-enabled device targeting */
.show-for-touch {
  display: none !important; }

.hide-for-touch {
  display: inherit !important; }

.touch .show-for-touch {
  display: inherit !important; }

.touch .hide-for-touch {
  display: none !important; }

/* Specific visibility for tables */
table.hide-for-touch {
  display: table !important; }

.touch table.show-for-touch {
  display: table !important; }

thead.hide-for-touch {
  display: table-header-group !important; }

.touch thead.show-for-touch {
  display: table-header-group !important; }

tbody.hide-for-touch {
  display: table-row-group !important; }

.touch tbody.show-for-touch {
  display: table-row-group !important; }

tr.hide-for-touch {
  display: table-row !important; }

.touch tr.show-for-touch {
  display: table-row !important; }

td.hide-for-touch {
  display: table-cell !important; }

.touch td.show-for-touch {
  display: table-cell !important; }

th.hide-for-touch {
  display: table-cell !important; }

.touch th.show-for-touch {
  display: table-cell !important; }

/*
       * Print styles.
       *
       * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
       * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
      */
.print-only {
  display: none !important; }

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

/* Print visibility */
@media print {
  .show-for-print {
    display: block; }
  .hide-for-print {
    display: none; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; } }

.nav--horizontal, .pagination {
  list-style: none;
  margin: 0; }

.nav--horizontal > li, .pagination > li, .nav--horizontal > li > a, .pagination > li > a {
  display: inline-block; }

.pagination-wrapper {
  width: 100%;
  clear: both;
  text-align: center; }

.pagination__item {
  margin-right: 0.5rem;
  background-color: rgba(255, 255, 255, 0);
  transition: all 0.3s ease; }
  .pagination .pagination__item {
    display: none; }
  .pagination__item:last-child {
    margin-right: 0; }
  .pagination__item a {
    line-height: 3.14286rem;
    color: #333333;
    padding: 0 1rem; }
  .pagination__item:hover, .pagination__item:focus {
    background-color: #e03114;
    border-color: #e03114; }
    .pagination__item:hover a,
    .pagination__item:hover a:hover,
    .pagination__item:hover a:focus, .pagination__item:focus a,
    .pagination__item:focus a:hover,
    .pagination__item:focus a:focus {
      color: #fff; }

.pagination .pagination__item--next,
.pagination .pagination__item--previous {
  display: inline-block; }

.pagination__item--current {
  line-height: 3.14286rem;
  background-color: #000000;
  border-color: #000000;
  color: #fff;
  padding: 0 1rem; }
  .pagination__item--current:hover, .pagination__item--current:focus {
    background-color: #000000;
    border-color: #000000;
    color: #fff; }

@media only screen and (min-width: 50rem) {
  .pagination .pagination__item {
    display: inline-block; } }

/**
 * IcoMoon generated icons
 * See the theme assets/fonts folder for font files
 * and json file to use on icomoon to develop this
 * font further
 */
@font-face {
  font-family: 'apex';
  src: url("/assets/themes/apex/fonts/apex.eot?3qfzlo");
  src: url("/assets/themes/apex/fonts/apex.eot?3qfzlo#iefix") format("embedded-opentype"), url("/assets/themes/apex/fonts/apex.ttf?3qfzlo") format("truetype"), url("/assets/themes/apex/fonts/apex.woff?3qfzlo") format("woff"), url("/assets/themes/apex/fonts/apex.svg?3qfzlo#apex") format("svg");
  font-weight: normal;
  font-style: normal; }

[class^="icon-"],
[class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'apex' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon-medium:before, .rating label:before, .product .icon-add-shopping-cart:before, .product .icon-favorite:before {
  font-size: 1.25em;
  vertical-align: -7.5%; }

.icon-large:before {
  font-size: 1.5em;
  vertical-align: -15%; }

.icon-xlarge:before {
  font-size: 2em;
  vertical-align: -15%; }

.icon-place:before {
  content: ""; }

.icon-mobile:before {
  content: ""; }

.icon-plane:before {
  content: ""; }

.icon-credit-card:before {
  content: ""; }

.icon-person:before {
  content: ""; }

.icon-mail:before {
  content: ""; }

.icon-print:before {
  content: ""; }

.icon-gift:before {
  content: ""; }

.icon-call:before {
  content: ""; }

.icon-add-shopping-cart:before {
  content: ""; }

.icon-shopping-cart:before {
  content: ""; }

.icon-delete:before {
  content: ""; }

.icon-exit-to-app:before {
  content: ""; }

.icon-home:before {
  content: ""; }

.icon-favorite:before {
  content: ""; }

.icon-vpn-key:before {
  content: ""; }

.icon-search:before {
  content: ""; }

.icon-googleplus:before {
  content: ""; }

.icon-facebook:before {
  content: ""; }

.icon-ello:before {
  content: ""; }

.icon-instagram:before {
  content: ""; }

.icon-twitter:before {
  content: ""; }

.icon-youtube:before {
  content: ""; }

.icon-vimeo:before {
  content: ""; }

.icon-flickr:before {
  content: ""; }

.icon-blogger:before {
  content: ""; }

.icon-linkedin:before {
  content: ""; }

.icon-pinterest:before {
  content: ""; }

.icon-info:before {
  content: ""; }

.icon-language:before {
  content: ""; }

.icon-error:before {
  content: ""; }

.icon-warning:before {
  content: ""; }

.icon-add:before {
  content: ""; }

.icon-attach-money:before {
  content: ""; }

.icon-keyboard-arrow-down:before, .main-nav__item.parent.level-1 > a:after {
  content: ""; }

.icon-brightness-1:before {
  content: ""; }

.icon-check:before {
  content: ""; }

.icon-chevron-left:before {
  content: ""; }

.icon-chevron-right:before {
  content: ""; }

.icon-close:before {
  content: ""; }

.icon-menu:before {
  content: ""; }

.icon-refresh:before {
  content: ""; }

.icon-star:before {
  content: ""; }

.icon-star-half:before {
  content: ""; }

.icon-star-outline:before {
  content: ""; }

#main-content:focus {
  outline: none; }

.sr-only {
  border: none;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

@media only screen and (max-width: 45em) {
  html {
    font-size: 87.5%; } }

.vertical-pos-helper {
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.is-hidden {
  display: none; }

@media only screen and (max-width: 64em) {
  .hide_on_mobile {
    display: none; } }

#utils-nav {
  font-family:  'Noto Sans', sans-serif;
  text-transform: uppercase; }
  #utils-nav .icon {
    display: inline-block !important;
    margin-right: 4px;
    font-size: 1.2em;
    vertical-align: -7%; }

#user-nav.right li:last-child a {
  padding-right: 0.5rem; }

#user-nav a {
  transition: background-color 150ms ease-out; }
  #user-nav a:hover, #user-nav a:focus {
    background-color: #e03114;
    color: black; }

@media only screen and (max-width: 45em) {
  #user-nav .icon {
    font-size: 1.57143rem;
    line-height: 3rem;
    margin-right: 0; } }

@media only screen and (min-width: 45.063em) {
  #utils-nav span.hide-for-small {
    display: inline !important; } }

#tools-nav {
  overflow: visible; }

.piped-nav {
  margin: 0;
  font-size: 1rem;
  height: 3rem; }
  .piped-nav li {
    margin: 0;
    line-height: 3rem;
    height: 3rem; }
  .piped-nav.left li:first-child a {
    padding-left: 0; }
  .piped-nav.right li:last-child a {
    padding-right: 0; }
  .piped-nav.no-separator a {
    border-left: none; }
  .piped-nav a {
    padding: 0 0.5rem; }

body {
  position: relative;
  width: 100%;
  min-width: 20em; }

#outer-wrap {
  position: relative;
  overflow: hidden;
  width: 100%; }

#inner-wrap {
  position: relative;
  width: 100%; }

.block {
  position: relative; }

.block-title {
  border: none;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

@media only screen and (max-width: 64em) {
  #nav {
    z-index: 200;
    position: absolute;
    overflow: hidden;
    padding-top: 3rem;
    top: 8rem; }
    #nav:not(:target) {
      z-index: -1;
      height: 0;
      padding-top: 0; }
    #nav:target {
      background: #333; }
      #nav:target .main-nav__close-btn {
        display: block; }
    #nav .block {
      position: relative;
      z-index: 2;
      padding: 0; }
    #nav .columns {
      padding: 0; }
    #nav ul:before, #nav ul:after {
      content: "";
      display: table; }
    #nav ul:after {
      clear: both; }
  .js-ready #nav {
    height: 100%;
    width: 70%;
    left: -70%;
    background: #333;
    -moz-box-shadow: inset -1.5em 0 1.5em -0.75em rgba(0, 0, 0, 0.25);
    box-shadow: inset -1.5em 0 1.5em -0.75em rgba(0, 0, 0, 0.25);
    top: 0;
    padding-top: 3rem; }
    .js-ready #nav .block {
      background: transparent; }
  .js-ready #inner-wrap {
    left: 0; }
  .js-nav #inner-wrap {
    left: 70%; }
  .csstransforms3d.csstransitions.js-ready #nav {
    left: 0;
    -ms-transform: translate(-100%, 0);
    -webkit-transform: translate3d(-100%, 0, 0);
    -moz-transform: translate3d(-100%, 0, 0);
    -ms-transform: translate3d(-100%, 0, 0);
    -o-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden; }
  .csstransforms3d.csstransitions.js-ready #inner-wrap {
    left: 0 !important;
    -webkit-transition: all 500ms ease;
    -moz-transition: all 500ms ease;
    transition: all 500ms ease; }
  .csstransforms3d.csstransitions.js-nav #inner-wrap {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -ms-transform: translate(70%, 0) scale3d(1, 1, 1);
    -webkit-transform: translate3d(70%, 0, 0) scale3d(1, 1, 1);
    -moz-transform: translate3d(70%, 0, 0) scale3d(1, 1, 1);
    -ms-transform: translate3d(70%, 0, 0) scale3d(1, 1, 1);
    -o-transform: translate3d(70%, 0, 0) scale3d(1, 1, 1);
    transform: translate3d(70%, 0, 0) scale3d(1, 1, 1); }
  .csstransforms3d.csstransitions.js-ready #nav .block {
    opacity: 0.7;
    -webkit-transition: opacity 300ms 100ms ease, -webkit-transform 500ms ease, visibility 500ms ease;
    -moz-transition: opacity 300ms 100ms ease, -moz-transform 500ms ease, visibility 500ms ease;
    -o-transition: opacity 300ms 100ms ease, -o-transform 500ms ease, visibility 500ms ease;
    transition: opacity 300ms 100ms ease, transform 500ms ease, visibility 500ms ease;
    -ms-transform: translate(70%, 0) scale3d(0.9, 0.9, 0.9);
    -webkit-transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -moz-transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -ms-transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -o-transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -webkit-transform-origin: 50% 0%;
    -moz-transform-origin: 50% 0%;
    -ms-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%; }
  .csstransforms3d.csstransitions.js-nav #nav .block {
    opacity: 1;
    -ms-transform: translate(0, 0);
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    -o-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  .csstransforms3d.csstransitions #nav {
    visibility: hidden;
    -webkit-transition: visibility 500ms ease;
    -moz-transition: visibility 500ms ease;
    transition: visibility 500ms ease; }
  .csstransforms3d.csstransitions.js-nav #nav {
    visibility: visible; } }

@media only screen and (min-width: 45.063em) and (max-width: 64em) {
  .js-ready #nav {
    width: 50%;
    left: -50%; }
  .js-nav #inner-wrap {
    left: 50%; }
  .csstransforms3d.csstransitions.js-nav #inner-wrap {
    -ms-transform: translate(50%, 0) scale3d(1, 1, 1);
    -webkit-transform: translate3d(50%, 0, 0) scale3d(1, 1, 1);
    -moz-transform: translate3d(50%, 0, 0) scale3d(1, 1, 1);
    -ms-transform: translate3d(50%, 0, 0) scale3d(1, 1, 1);
    -o-transform: translate3d(50%, 0, 0) scale3d(1, 1, 1);
    transform: translate3d(50%, 0, 0) scale3d(1, 1, 1); } }

#logo-row {
  padding: 0 0; }

#logo {
  height: 5rem;
  white-space: nowrap; }
  #logo a {
    text-decoration: none; }
  #logo h1 {
    line-height: 5rem;
    margin: 0;
    font-size: 1.71429rem; }
  #logo img {
    max-height: 5rem;
    max-width: 100%;
    vertical-align: middle; }

#extra-nav .cart-and-checkout {
  padding-top: 1.17857rem; }
  #extra-nav .cart-and-checkout.right {
    margin-right: 0; }

#extra-nav form input, #extra-nav form .button {
  margin-bottom: 0; }

#extra-nav form input {
  -webkit-border-bottom-left-radius: 0;
  -webkit-border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0; }

#extra-nav form button {
  -webkit-border-bottom-right-radius: 0;
  -webkit-border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-top-right-radius: 0; }

#contact-nav {
  width: 100%;
  clear: both; }
  #contact-nav li {
    padding: 0; }
  #contact-nav a {
    font-size: 0.85714rem;
    height: 2.35714rem;
    line-height: 1em; }

@media only screen and (min-width: 64.063em) {
  #logo-row {
    padding: 2.5rem 0; }
  #extra-nav .cart-and-checkout {
    padding-top: 1.17857rem; }
  #extra-nav .piped-nav li:first-child a {
    padding-left: 0; }
  #logo {
    height: 5rem; }
    #logo h1 {
      line-height: 5rem; }
    #logo img {
      max-height: 5rem; }
  #contact-nav {
    height: 1.17857rem;
    line-height: 1.17857rem; } }

/**
 * We're using two menu concepts here
 * Off canvas navigation, as seen on http://www.smashingmagazine.com/2013/01/15/off-canvas-navigation-for-responsive-website/
 * Smart menus, as seen on http://www.smartmenus.org/
 */
.main-nav {
  width: 100%;
  z-index: 200;
  font-family:  'Noto Sans', sans-serif; }
  .main-nav ul {
    margin: 0;
    list-style-type: none;
    direction: ltr; }
  .main-nav a {
    color: #333333;
    transition: background-color 150ms ease-out; }
  .main-nav .icon-menu:before {
    vertical-align: -12%; }

.sm .scroll-up, .sm .scroll-down {
  display: none !important; }

.main-nav__item a, a.main-nav__close-btn {
  color: #fff; }

.main-nav__close-btn {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  padding: 0 1rem;
  border: 0;
  outline: none;
  width: 100%;
  opacity: 0.7;
  text-align: right;
  line-height: 3rem;
  height: 3rem;
  -webkit-tap-highlight-color: transparent; }
  .main-nav__close-btn:focus, .main-nav__close-btn:hover, .main-nav__close-btn.highlighted {
    color: #fff !important;
    background: #e03114;
    opacity: 1; }
  .main-nav__close-btn i {
    font-size: 0.85714rem;
    padding-left: .4rem; }

.nav-compact li {
  height: 3.5rem; }

.nav-compact a {
  color: #333333;
  display: block;
  line-height: 3.5rem;
  font-weight: bold; }

#nav-open-btn {
  padding: 0; }
  #nav-open-btn:hover {
    background-color: transparent;
    color: inherit; }

.nav-offcanvas li {
  position: relative;
  width: 100%;
  display: block;
  border-top: 1px solid rgba(255, 255, 255, 0.1); }
  .nav-offcanvas li li {
    border-top-style: dotted; }

.main-nav__item {
  direction: ltr; }
  .main-nav__item a {
    outline: none;
    padding: 0 1rem;
    display: block;
    width: 100%; }
    .main-nav__item a:focus, .main-nav__item a:hover, .main-nav__item a.highlighted {
      background: #e03114;
      color: #333; }
    .main-nav__item a .disabled {
      cursor: default; }
  .main-nav__item.current > a, .main-nav__item.selected > a {
    background: #d1d1d1;
    color: #000000; }
    .main-nav__item.current > a:hover, .main-nav__item.current > a:focus, .main-nav__item.selected > a:hover, .main-nav__item.selected > a:focus {
      background: #333333;
      color: #fff; }
  .main-nav__item.parent > a:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'apex' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    padding-left: 0.4rem;
    -webkit-transition: -webkit-transform, 400ms;
    -moz-transition: -moz-transform, 400ms;
    transition: transform, 400ms;
    float: right; }
  .main-nav__item.parent > a.highlighted ~ ul {
    border: none;
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    padding: 0;
    position: relative;
    width: auto;
    width: 100%; }
  .main-nav__item.parent > a.highlighted:after {
    -webkit-transform: rotatex(180deg);
    -moz-transform: rotatex(180deg);
    -ms-transform: rotatex(180deg);
    -o-transform: rotatex(180deg);
    transform: rotatex(180deg); }

/**
 * Nav items should have padding and a low line height
 * If not, multi-line items will be huge
 */
.main-nav__list {
  -webkit-tap-highlight-color: transparent; }
  .main-nav__list a {
    line-height: 1.2rem;
    padding: 0.97143rem 1rem; }
  .main-nav__list.level-0 > li:last-child {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1); }

.main-nav__submenu {
  width: 100%;
  z-index: 201;
  border: none;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }
  .main-nav__submenu a {
    font-size: 1rem;
    padding-left: 2rem; }
  html.no-js .main-nav__submenu.active {
    border: none;
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    padding: 0;
    position: relative;
    width: auto; }

.main-nav__submenu.level-2 a {
  padding-left: 3.5rem; }
  .main-nav__submenu.level-2 a:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'apex' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    opacity: .5;
    font-size: 0.85714rem;
    line-height: 1.2rem;
    padding-right: 0.4rem; }

.js-nav #outer-wrap {
  background-color: #000; }

.js-nav .content-wrapper > *:not(#nav) {
  opacity: .4;
  -webkit-transition: opacity, 500ms;
  -moz-transition: opacity, 500ms;
  transition: opacity, 500ms; }

/* Fix weird bug in Chrome where menu disappears on hover */
.main-nav__item,
.main-nav__submenu {
  -webkit-transform: translate3d(0px, 0px, 0px); }

.block-nav__item.parent {
  position: relative; }

.main-nav__toggle {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  height: 1.5rem;
  width: 1.5rem;
  line-height: 1.5rem;
  text-align: center;
  -webkit-transition: all 300ms ease;
  -moz-transition: all 300ms ease;
  transition: all 300ms ease; }
  .main-nav__toggle:before {
    font-size: 1rem;
    height: 1.5rem;
    width: 1.5rem;
    line-height: inherit !important;
    display: block;
    position: absolute; }
  .main-nav__toggle, .main-nav__toggle:before {
    color: rgba(0, 0, 0, 0.9) !important; }
  .main-nav__toggle.toggled:before {
    color: rgba(117, 117, 117, 0.7) !important; }
  .main-nav__toggle:hover {
    cursor: pointer;
    background: #dddddd; }
    .main-nav__toggle:hover, .main-nav__toggle:hover:before {
      color: rgba(0, 0, 0, 0.9) !important; }
  .footer-bg .main-nav__toggle, .footer-bg .main-nav__toggle:before {
    color: rgba(0, 0, 0, 0.9) !important; }
  .footer-bg .main-nav__toggle.toggled:before {
    color: rgba(117, 117, 117, 0.7) !important; }
  .footer-bg .main-nav__toggle:hover {
    cursor: pointer;
    background: #dddddd; }
    .footer-bg .main-nav__toggle:hover, .footer-bg .main-nav__toggle:hover:before {
      color: rgba(0, 0, 0, 0.9) !important; }

.current > .main-nav__toggle:before {
  color: rgba(117, 117, 117, 0.75) !important; }
  .footer-bg .current > .main-nav__toggle:before {
    color: rgba(117, 117, 117, 0.75) !important; }

.current > .main-nav__toggle:hover {
  background-color: #e6e6e6; }
  .current > .main-nav__toggle:hover:before {
    color: #757575 !important; }

.block-nav__item.selected.parent > .main-nav__toggle:before, .block-nav__item.current.parent > .main-nav__toggle:before {
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  -o-transform: rotate(135deg);
  transform: rotate(135deg); }

.block-nav__item.selected.parent > .main-nav__toggle.toggled:before, .block-nav__item.current.parent > .main-nav__toggle.toggled:before {
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -ms-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg); }

@media only screen and (max-width: 64em) {
  .main-nav__item.parent > a.highlighted ~ ul {
    margin-left: 0 !important;
    margin-top: 0 !important; } }

/* Increase padding in menu items on medium screens */
@media only screen and (min-width: 45.063em) and (max-width: 64em) {
  .main-nav__list a {
    padding-left: 1.5rem;
    padding-right: 1.5rem; }
  .main-nav__submenu a {
    padding-left: 2.5rem; }
  .main-nav__close-btn {
    padding: 0 1.5rem; } }

@media only screen and (min-width: 64.063em) {
  .main-nav__frontpage-link .icon-home {
    font-size: 1.42857rem; }
  .main-nav__item a {
    width: auto;
    padding-left: 1rem;
    padding-right: 1rem;
    white-space: normal;
    color: #333333; }
  .main-nav__item.level-0 {
    display: inline-block;
    border-bottom: none;
    z-index: 101;
    margin-right: 0; }
    .main-nav__item.level-0:hover {
      z-index: 102; }
    .main-nav__item.level-0 > a {
      padding-left: 0;
      padding-right: 0;
      line-height: 3.5rem;
      padding-top: 0;
      padding-bottom: 0;
      font-weight: bold;
      text-transform: uppercase;
      font-size: 0.85714rem; }
    .main-nav__item.level-0.parent > a:after {
      line-height: 3.5rem;
      float: none; }
  .main-nav__item.parent > a.highlighted ~ ul {
    position: absolute;
    min-width: 15em;
    max-width: 20em;
    box-shadow: 1px 0 0 #dddddd, 0 1px 0 #dddddd, -1px 0 0 #dddddd, 0 -1px 0 #dddddd;
    box-shadow: 0 0 0 1px #dddddd; }
  .nav-offcanvas li {
    width: auto;
    border-top: none; }
    .nav-offcanvas li li {
      border-top: none; }
    .nav-offcanvas li *,
    .nav-offcanvas li *:before,
    .nav-offcanvas li *:after {
      -webkit-box-sizing: content-box;
      -moz-box-sizing: content-box;
      box-sizing: content-box; }
  .main-nav__close-btn {
    border: none;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; }
  .main-nav__submenu {
    position: absolute;
    top: -999999px;
    left: -800px;
    background: rgba(255, 255, 255, 0.97); }
    .main-nav__submenu a {
      color: #333333; }
  .main-nav__item {
    float: none;
    border-bottom: 1px solid #dddddd; }
    .main-nav__item:last-child {
      border-bottom: none; }
  /**
     * On menu level 1 we use plus sign as parent indicator, since level 2
     * submenus may pop up both to the left and to the right
     */
  .main-nav__item.level-1.parent > a:after {
    content: "";
    font-size: 0.85714rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-1.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__item.level-2.parent > a:after {
    content: "";
    font-size: 0.85714rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-2.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__item.level-3.parent > a:after {
    content: "";
    font-size: 0.85714rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-3.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__item.level-4.parent > a:after {
    content: "";
    font-size: 0.85714rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-4.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__item.level-5.parent > a:after {
    content: "";
    font-size: 0.85714rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-5.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__submenu.level-2 a {
    padding-left: 1rem; }
    .main-nav__submenu.level-2 a:before {
      display: none; } }

.hfx--cover--light,
.hfx--cover--dark, .hfx--show-title, .hfx--tilt--right,
.hfx--tilt--left {
  position: relative;
  display: block;
  width: 100%;
  height: 100%; }

.hfx--blur:hover img {
  -webkit-filter: blur(2px);
  filter: blur(2px); }

.hfx--cover--light::before, .hfx--cover--light::after,
.hfx--cover--dark::before,
.hfx--cover--dark::after {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
  z-index: 1;
  -webkit-transition: opacity 0.3s ease;
  -moz-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease; }

.hfx--cover--light::before,
.hfx--cover--dark::before {
  content: "";
  background-color: rgba(255, 255, 255, 0.65); }

.hfx--cover--light::after,
.hfx--cover--dark::after {
  display: inline-block;
  vertical-align: middle;
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'apex' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "";
  font-size: 2.14286rem;
  line-height: 1;
  color: rgba(0, 0, 0, 0.65);
  top: 50%;
  left: 0;
  text-align: center;
  margin-top: -1.07143rem;
  height: 1em;
  z-index: 2; }

.hfx--cover--light:hover::before, .hfx--cover--light:hover::after,
.hfx--cover--dark:hover::before,
.hfx--cover--dark:hover::after {
  opacity: 1; }

.hfx--cover--dark::before {
  background-color: rgba(0, 0, 0, 0.65); }

.hfx--cover--dark::after {
  color: rgba(255, 255, 255, 0.75); }

.hfx--figcaption {
  margin: 0;
  position: relative;
  font-size: 1.78571rem;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 1; }
  .hfx--figcaption figcaption {
    opacity: 0;
    position: absolute;
    padding: .5em;
    z-index: 2;
    -webkit-transition: opacity 0.3s ease-in-out, color 0.3s ease-in-out;
    -moz-transition: opacity 0.3s ease-in-out, color 0.3s ease-in-out;
    transition: opacity 0.3s ease-in-out, color 0.3s ease-in-out; }
  .hfx--figcaption .hfx--figcaption--bottom-left {
    bottom: 0;
    left: 0; }
  .hfx--figcaption .hfx--figcaption--bottom-right {
    bottom: 0;
    right: 0; }
  .hfx--figcaption .hfx--figcaption--top-left {
    top: 0;
    left: 0; }
  .hfx--figcaption .hfx--figcaption--top-right {
    top: 0;
    right: 0; }
  .hfx--figcaption .background--light {
    opacity: 1;
    color: rgba(0, 0, 0, 0.9); }
    .hfx--cover--dark:hover .hfx--figcaption .background--light,
    .hfx--cover--dark:focus .hfx--figcaption .background--light {
      color: rgba(255, 255, 255, 0.9); }
  .hfx--figcaption .background--dark {
    opacity: 1;
    color: rgba(255, 255, 255, 0.9); }
    .hfx--cover--light:hover .hfx--figcaption .background--dark,
    .hfx--cover--light:focus .hfx--figcaption .background--dark {
      color: rgba(0, 0, 0, 0.9); }

.hfx--levitate img {
  -webkit-transition: -webkit-transform, box-shadow;
  -moz-transition: -moz-transform, box-shadow;
  transition: transform, box-shadow; }

.hfx--levitate:hover img {
  -webkit-transform: scale(1.1) translatez(0);
  -moz-transform: scale(1.1) translatez(0);
  -ms-transform: scale(1.1) translatez(0);
  -o-transform: scale(1.1) translatez(0);
  transform: scale(1.1) translatez(0);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.25); }

.hfx--show-title {
  overflow: hidden; }
  .hfx--show-title img {
    opacity: 1;
    -webkit-transition: opacity 0.25s ease;
    -moz-transition: opacity 0.25s ease;
    transition: opacity 0.25s ease; }
  .hfx--show-title:after {
    content: attr(title);
    position: absolute;
    color: #333;
    bottom: -100%;
    background: rgba(255, 255, 255, 0.75);
    left: 0;
    width: 100%;
    padding: 1rem;
    -webkit-transition: bottom 0.25s ease;
    -moz-transition: bottom 0.25s ease;
    transition: bottom 0.25s ease; }
  .hfx--show-title:hover img {
    opacity: 0.3; }
  .hfx--show-title:hover:after {
    bottom: 0; }

.hfx--tilt--right,
.hfx--tilt--left {
  overflow: visible; }
  .hfx--tilt--right img,
  .hfx--tilt--left img {
    position: absolute;
    -webkit-transition: -webkit-transform;
    -moz-transition: -moz-transform;
    transition: transform; }

.hfx--tilt--right:hover img {
  -webkit-transform: rotate(5deg) translatez(0);
  -moz-transform: rotate(5deg) translatez(0);
  -ms-transform: rotate(5deg) translatez(0);
  -o-transform: rotate(5deg) translatez(0);
  transform: rotate(5deg) translatez(0); }

.hfx--tilt--left:hover img {
  -webkit-transform: rotate(-5deg) translatez(0);
  -moz-transform: rotate(-5deg) translatez(0);
  -ms-transform: rotate(-5deg) translatez(0);
  -o-transform: rotate(-5deg) translatez(0);
  transform: rotate(-5deg) translatez(0); }

a[class^="hfx--"],
a[class*=" hfx--"] {
  text-decoration: none; }

.shop-feature__subheader:before, .breadcrumbs:before {
  content: "";
  display: inline-block;
  width: 50px;
  height: 2px;
  position: absolute;
  left: 50%;
  top: -5px;
  margin-left: -25px;
  background: #303030; }

.alert-box {
  border-style: solid;
  border-width: 1px;
  display: block;
  font-weight: normal;
  margin-bottom: 0;
  position: relative;
  padding: 1rem 1.71429rem 1rem 1rem;
  font-size: 1rem;
  transition: opacity 300ms ease-out;
  border: none;
  border-left: 2rem solid #000000;
  background-color: #fff;
  color: #333333;
  line-height: 1.5;
  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4); }
  .alert-box.alert-box--withclose {
    padding-right: 2.57143rem; }
  .alert-box > p:last-child {
    margin-bottom: 0; }
  .alert-box .close {
    font-size: 1.57143rem;
    padding: 0 6px 4px;
    line-height: .9;
    position: absolute;
    top: 1rem;
    margin-top: -0.78571rem;
    right: 0.28571rem;
    color: #333333;
    opacity: 0.3;
    background: inherit; }
    .alert-box .close:hover, .alert-box .close:focus {
      opacity: 0.5; }
  .alert-box.radius {
    border-radius: 4px; }
  .alert-box.round {
    border-radius: 1000px; }
  .alert-box.success, .alert-box.alert-success {
    border: none;
    border-left: 2rem solid #5cb85c;
    background-color: #fff;
    color: #333333; }
  .alert-box.alert, .alert-box.alert-alert {
    border: none;
    border-left: 2rem solid #e03114;
    background-color: #fff;
    color: #333333; }
  .alert-box.secondary, .alert-box.alert-secondary {
    border: none;
    border-left: 2rem solid #e7e7e7;
    background-color: #fff;
    color: #333333; }
  .alert-box.warning, .alert-box.alert-warning {
    border: none;
    border-left: 2rem solid #ffa200;
    background-color: #fff;
    color: #333333; }
  .alert-box.info, .alert-box.alert-info {
    border: none;
    border-left: 2rem solid #5bc0de;
    background-color: #fff;
    color: #333333; }
  .alert-box.alert-close {
    opacity: 0; }
  .alert-box:focus {
    outline: none; }

.alert-box__icon {
  position: absolute;
  font-size: 1.14286rem;
  top: 1rem;
  left: -1.5rem;
  line-height: 1.5;
  height: 1.5rem;
  color: #fff; }

.alert-box__message,
.alert-box__message > * {
  display: block;
  font-size: 1rem; }

.alert-box__message strong {
  display: inline;
  white-space: nowrap; }

.alert-box__message :last-child {
  margin-bottom: 0; }

.alert-box--withfooter .alert-box__message {
  margin-bottom: 3.14286rem; }

#cart-notify {
  display: none; }

.alert-box__progressbar {
  display: none; }

.alert-box__footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  right: 0;
  height: 3.14286rem;
  line-height: 3.14286rem; }
  .alert-box__footer a {
    padding: 0 1rem 0 1rem;
    color: #333333; }
    .alert-box__footer a.left .fa {
      padding-right: .3rem; }
    .alert-box__footer a.right .fa {
      padding-left: .3rem; }

@media only screen and (min-width: 45.063em) {
  .alert-box {
    max-width: 60%; } }

@media only screen and (min-width: 64.063em) {
  .alert-box {
    max-width: 40%; } }

@media only screen and (min-width: 90.063em) {
  .alert-box {
    max-width: 30%; } }

/**
 * Borrowed parts of https://github.com/daneden/animate.css
 */
.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.animate,
.growl-animated {
  -webkit-transition: all 0.4s ease-in-out;
  -moz-transition: all 0.4s ease-in-out;
  transition: all 0.4s ease-in-out; }

@-webkit-keyframes fadeInDown {
  0% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
    -o-transform: none;
    transform: none; } }

@-moz-keyframes fadeInDown {
  0% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
    -o-transform: none;
    transform: none; } }

@keyframes fadeInDown {
  0% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
    -o-transform: none;
    transform: none; } }

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

@-webkit-keyframes fadeOutUp {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

@-moz-keyframes fadeOutUp {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

@keyframes fadeOutUp {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

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

.block-image-grid {
  display: block;
  padding: 0;
  margin: 0; }
  .block-image-grid:before, .block-image-grid:after {
    content: " ";
    display: table; }
  .block-image-grid:after {
    clear: both; }
  .block-image-grid > li {
    display: block;
    height: auto;
    float: left;
    padding: 0 1.07143rem 2.14286rem; }
  .block-image-grid > li {
    width: 33.33333%;
    padding: 0 1.07143rem 2.14286rem;
    list-style: none; }
    .block-image-grid > li:nth-of-type(1n) {
      clear: none; }
    .block-image-grid > li:nth-of-type(3n+1) {
      clear: both; }
    .block-image-grid > li:nth-of-type(3n+1) {
      padding-left: 0rem;
      padding-right: 1.42857rem; }
    .block-image-grid > li:nth-of-type(3n+2) {
      padding-left: 0.71429rem;
      padding-right: 0.71429rem; }
    .block-image-grid > li:nth-of-type(3n) {
      padding-left: 1.42857rem;
      padding-right: 0rem; }

.block__box__headline, .nav-side__header {
  text-transform: uppercase;
  font-size: 1.42857rem;
  padding: 0.5rem 1.07143rem 0.5rem 1.07143rem;
  margin: 0; }
  .block__box__headline:hover, .nav-side__header:hover {
    cursor: pointer; }
  .block__box__headline:after, .nav-side__header:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'apex' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    padding-left: .5rem;
    float: right;
    -webkit-transition: -webkit-transform;
    -moz-transition: -moz-transform;
    transition: transform;
    line-height: 1.5; }
  .block__box__headline.toggled, .toggled.nav-side__header {
    background-color: #000000;
    color: #fff; }
    .block__box__headline.toggled:after, .toggled.nav-side__header:after {
      -webkit-transform: rotatex(180deg);
      -moz-transform: rotatex(180deg);
      -ms-transform: rotatex(180deg);
      -o-transform: rotatex(180deg);
      transform: rotatex(180deg); }

.block__box__content {
  display: none;
  padding: 0.5rem 1.07143rem 2.14286rem 1.07143rem; }

.block__box ul {
  list-style: none;
  margin: 0; }
  .block__box ul ul li {
    padding-left: 1rem; }

.block__box li a {
  display: block;
  width: 100%; }

.block__box li.parent > a.js-toggle-visibility:before, .block__box li.parent > .main-nav__toggle:before {
  -webkit-transition: all 300ms ease;
  -moz-transition: all 300ms ease;
  transition: all 300ms ease;
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'apex' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ""; }

.block__box li.parent > a.toggled:before, .block__box li.parent > .main-nav__toggle.toggled:before {
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  -o-transform: rotate(135deg);
  transform: rotate(135deg);
  color: #e03114; }

.block__box li.parent > ul {
  display: none; }

.block__box.block__box--logo_list a:before {
  display: none; }

.block__login__forgotpassword {
  padding-top: 0.57143rem;
  padding-right: 1.14286rem;
  padding-bottom: 0.64286rem;
  padding-left: 1.14286rem;
  font-size: 0.85714rem;
  padding-left: 0;
  padding-right: 0; }

#footer .footer-block:last-child {
  margin-bottom: 2.14286rem; }
  #footer .footer-block:last-child .block__box:last-child {
    border-bottom: none; }

#footer .block__box {
  /**
         * On menu level 1 we use plus sign as parent indicator, since level 2
         * submenus may pop up both to the left and to the right
         */ }
  #footer .block__box li a.neutral-link:before,
  #footer .block__box li.neutral-link > a:before {
    color: #000000; }
  #footer .block__box li a.toggled:before {
    color: #e03114; }
  #footer .block__box .main-nav__toggle, #footer .block__box .main-nav__toggle:before {
    height: 3.57143rem;
    width: 3.57143rem;
    line-height: 3.57143rem;
    text-indent: 0; }
  #footer .block__box li.level-0, #footer .block__box li.level-0 li {
    position: relative;
    padding: 0;
    border-top: 1px rgba(51, 51, 51, 0.1) solid; }
  #footer .block__box li.level-0:first-child {
    border-top-width: 0px; }
  #footer .block__box li.level-0 a {
    font-size: 1rem;
    padding: 1.07143rem 0; }
  #footer .block__box li.level-1 {
    text-indent: 1.60714rem; }
  #footer .block__box li.level-2 {
    text-indent: 3.21429rem; }
  #footer .block__box li.level-3 {
    text-indent: 4.82143rem; }
  #footer .block__box li.level-4 {
    text-indent: 6.42857rem; }
  #footer .block__box li.level-5 {
    text-indent: 8.03571rem; }
  #footer .block__box li.parent > a {
    position: relative; }
  #footer .block__box li.parent.current > ul, #footer .block__box li.parent.selected > ul {
    display: block; }

@media only screen and (min-width: 45.063em) {
  #footer .footer-block:first-child .block__box:last-child,
  #footer .footer-block:nth-last-child(2) .block__box:last-child {
    border-bottom-width: 0; }
  #footer .footer-block:first-child .block__box:first-child,
  #footer .footer-block:nth-last-child(2) .block__box:first-child {
    border-bottom-width: 1px; }
  .block__box__headline, .nav-side__header {
    padding-left: 0;
    padding-right: 0; }
    .block__box__headline.toggled, .toggled.nav-side__header {
      background-color: inherit;
      color: inherit; }
    .block__box__headline:after, .nav-side__header:after {
      display: none; }
    .block__box__headline:hover, .nav-side__header:hover {
      cursor: inherit; }
  .block__box__content {
    display: block !important;
    height: auto !important;
    opacity: 1 !important;
    padding-left: 0;
    padding-right: 0; } }

@media only screen and (min-width: 64.063em) {
  #footer .footer-block {
    margin-bottom: 2.14286rem; }
    #footer .footer-block .block__box:last-child {
      border-bottom: none; } }

.block__box--banners, .block__box--banners .block__box__content,
.block__box--banners_right,
.block__box--banners_right .block__box__content,
.block__box--banners_left,
.block__box--banners_left .block__box__content {
  background-color: transparent !important; }

.block__box--banners .block__box__headline-wrapper,
.block__box--banners .block__box__headline,
.block__box--banners .nav-side__header,
.block__box--banners_right .block__box__headline-wrapper,
.block__box--banners_right .block__box__headline,
.block__box--banners_right .nav-side__header,
.block__box--banners_left .block__box__headline-wrapper,
.block__box--banners_left .block__box__headline,
.block__box--banners_left .nav-side__header {
  display: none; }

.block__box--banners .wrapper_banner,
.block__box--banners_right .wrapper_banner,
.block__box--banners_left .wrapper_banner {
  text-align: center; }
  .block__box--banners .wrapper_banner > div,
  .block__box--banners_right .wrapper_banner > div,
  .block__box--banners_left .wrapper_banner > div {
    margin-bottom: 1rem; }
    .block__box--banners .wrapper_banner > div img,
    .block__box--banners_right .wrapper_banner > div img,
    .block__box--banners_left .wrapper_banner > div img {
      width: 100%; }
    .block__box--banners .wrapper_banner > div:last-child,
    .block__box--banners_right .wrapper_banner > div:last-child,
    .block__box--banners_left .wrapper_banner > div:last-child {
      margin-bottom: 0; }

.bordered, .checkout--kco__custom-intro, .checkout--kco .checkout__step, .bordered--all, .bordered--bottom, .freight-option,
.payment-option, .product__title, .bordered--top, .bordered--left, .bordered--right {
  border-style: solid;
  border-width: 0; }

.bordered--all {
  border-width: 1px; }

.bordered--bottom, .freight-option,
.payment-option, .checkout--kco__custom-intro, .checkout--kco .checkout__step, .product__title {
  border-bottom-width: 1px; }
  .bordered--bottom.bordered__list-item:last-child, .bordered__list-item.freight-option:last-child,
  .bordered__list-item.payment-option:last-child, .bordered__list-item.checkout--kco__custom-intro:last-child, .checkout--kco .bordered__list-item.checkout__step:last-child, .bordered__list-item.product__title:last-child {
    border-bottom-width: 0; }

.bordered--top {
  border-top-width: 1px; }

.bordered--left {
  border-left-width: 1px; }

.bordered--right {
  border-right-width: 1px; }

.bx-wrapper {
  position: relative; }

.bx-controls-direction a {
  position: absolute;
  top: 50%;
  margin-top: -1.57143rem;
  outline: 0;
  width: 3.14286rem;
  height: 3.14286rem;
  text-indent: 100%;
  overflow: hidden;
  text-decoration: none;
  z-index: 100;
  -webkit-transition: opacity 200ms, -webkit-transform 150ms ease;
  -webkit-transition-delay: ease, 0s;
  -moz-transition: opacity 200ms ease, -moz-transform 150ms ease;
  -o-transition: opacity 200ms ease, -o-transform 150ms ease;
  transition: opacity 200ms ease, transform 150ms ease;
  font-size: 1.57143rem;
  -ms-border-radius: 0;
  border-radius: 0;
  border: 0px solid #fff; }
  .slider__with-nav .bx-controls-direction a {
    margin-top: -3.14286rem; }
  .bx-controls-direction a:after {
    position: absolute;
    -webkit-transition: text-indent 200ms ease;
    -moz-transition: text-indent 200ms ease;
    transition: text-indent 200ms ease;
    width: 3.14286rem;
    font-size: 2.14286rem;
    top: -0px;
    left: -0px;
    z-index: 101;
    text-align: center; }
  .bx-controls-direction a.disabled {
    display: none; }

.bx-controls-direction a {
  color: #fff;
  background-color: rgba(0, 0, 0, 0.4);
  border: 0px solid #fff; }
  .bx-controls-direction a:after {
    color: #fff; }
  .bx-controls-direction a:hover, .bx-controls-direction a:focus {
    background-color: rgba(0, 0, 0, 0.9); }

.bx-next {
  right: 1.07143rem; }
  .bx-next:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'apex' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    line-height: inherit;
    text-indent: 3px; }
  .bx-next:hover:after, .bx-next:focus:after {
    text-indent: 9px; }
  .bx-next:active:after {
    text-indent: 0; }

.bx-prev {
  left: 1.07143rem; }
  .bx-prev:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'apex' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    line-height: inherit;
    text-indent: -3px; }
  .bx-prev:hover:after, .bx-prev:focus:after {
    text-indent: -9px; }
  .bx-prev:active:after {
    text-indent: 0; }

.bx-pager {
  text-align: center;
  overflow: hidden; }

.bx-pager-item {
  display: inline-block;
  position: relative; }

.bx-pager-link {
  position: relative;
  display: block;
  height: 3.14286rem;
  width: 3.14286rem;
  line-height: 3.14286rem;
  font-size: 0;
  overflow: hidden; }
  .bx-pager-link:after {
    position: absolute;
    top: 0;
    left: 0;
    font-size: .8rem;
    opacity: .25;
    display: block;
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'apex' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    background-color: transparent;
    color: #757575;
    height: 3.14286rem;
    width: 3.14286rem;
    line-height: inherit;
    text-align: center;
    -webkit-transition: font-size 200ms ease;
    -moz-transition: font-size 200ms ease;
    transition: font-size 200ms ease; }
  .bx-pager-link.active:after {
    opacity: .75;
    font-size: 1rem; }
  .bx-pager-link:hover:after, .bx-pager-link:focus:after {
    font-size: 1rem;
    color: #000000;
    opacity: .75; }

@media only screen and (min-width: 90.063em) {
  .bx-prev {
    left: -5.28571rem; }
  .bx-next {
    right: -5.28571rem; } }

.cart-and-checkout {
  position: relative; }

.cart-button__quantity {
  position: absolute;
  bottom: -4px;
  right: -4px;
  font-size: 0.85714rem;
  font-size: 0.85714rem;
  line-height: 1.25rem;
  height: 1.25rem;
  border-radius: 0;
  padding: 0 4px;
  display: inline-block;
  text-align: center;
  opacity: .9;
  -webkit-transition: all 200ms ease;
  -moz-transition: all 200ms ease;
  transition: all 200ms ease; }
  .cart-button--empty .cart-button__quantity {
    opacity: .9; }
  .cart-button:hover .cart-button__quantity,
  .cart-button--highlighted .cart-button__quantity {
    background-color: #e03114 !important;
    color: #fff;
    box-shadow: 0 0 3px 3px rgba(0, 0, 0, 0.1); }

.icon-larger-than:after {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'apex' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "";
  margin-right: -3px;
  margin-left: -4px; }

.cart-button__icon:before {
  font-size: 2rem; }

.cart-button__text,
.cart-button__sum,
.cart-button__currency {
  display: none; }

.cart-and-checkout .checkout-button {
  display: none !important; }

#kasse_one_form .row .row,
#kasse_one_logginn .row .row {
  width: auto;
  margin-left: -1.07143rem;
  margin-right: -1.07143rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none; }
  #kasse_one_form .row .row:before, #kasse_one_form .row .row:after,
  #kasse_one_logginn .row .row:before,
  #kasse_one_logginn .row .row:after {
    content: " ";
    display: table; }
  #kasse_one_form .row .row:after,
  #kasse_one_logginn .row .row:after {
    clear: both; }
  #kasse_one_form .row .row .column,
  #kasse_one_form .row .row .columns,
  #kasse_one_logginn .row .row .column,
  #kasse_one_logginn .row .row .columns {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    float: left; }

#kasse_one_form .zebra {
  border-spacing: 0;
  border-collapse: collapse;
  width: 100%; }

#kasse_one_form .zebra tr:last-child td {
  border-bottom: none; }

.checkout__steps {
  background-color: #d9d9d9;
  padding: 2px;
  border-radius: 0;
  margin-top: 1em; }

/* ENIRO search */
#eniro_fetch {
  text-align: center; }

#eniro_options,
#eniro_message,
#client_options {
  display: none; }

#eniro_message {
  padding: 5px;
  margin-bottom: 1em;
  clear: both;
  line-height: 1.5; }

#eniro_options {
  width: 100%;
  padding: 3px 6px;
  border: 1px solid #bbb; }

.cart-contents .mini-img {
  padding: 0;
  border-right: 0; }

.mini-img img {
  display: none; }

/* buttons */
.button .arrow {
  padding-left: .4rem; }

.checkout__step__contents button,
.checkout__step__contents .button {
  margin-bottom: 0; }

a.dialog_trigger,
a.dialog_trigger:link,
a.dialog_trigger:visited {
  text-decoration: underline; }

.checkout__step__contents .dialog-popup {
  margin-bottom: 1em; }

.dialog-popup h2 {
  margin-top: 0; }

.dialog-popup .kasse_one_logginn_error {
  display: block;
  float: right; }

.dialog-popup .form_submit {
  clear: both;
  margin-bottom: .5em; }

.dialog-popup .forgot_passwd {
  float: left; }

.addon_buttons {
  display: block;
  float: right;
  padding-right: 1.42857rem;
  clear: both;
  margin-bottom: .5rem; }
  .addon_buttons .edit_step {
    margin-top: 0;
    font-size: 1rem;
    line-height: 2rem;
    margin-right: 0; }
    .addon_buttons .edit_step.toggled .icon-add {
      -webkit-transform: rotate(-135deg);
      -moz-transform: rotate(-135deg);
      -ms-transform: rotate(-135deg);
      -o-transform: rotate(-135deg);
      transform: rotate(-135deg); }
  .addon_buttons .icon-add {
    display: inline-block;
    height: 1.5rem;
    width: 1rem;
    line-height: 1.5rem;
    text-align: center;
    -webkit-transition: -webkit-transform;
    -moz-transition: -moz-transform;
    transition: transform;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg); }
  .checkout__step--inactive .addon_buttons {
    display: none; }

.next-step-btn .icon {
  margin-left: .5em; }

.edit_step,
.marker_edit_step {
  display: none;
  float: right;
  padding: 0 .5em;
  background-color: #333333;
  color: #fff;
  cursor: pointer;
  border-radius: 0;
  font-size: 11px; }

.plus-icon {
  font-weight: bold; }

.edit_step:link,
.edit_step:visited {
  color: #fff; }

.checkout .checkout__step--inactive:hover .edit_step,
.checkout .checkout__step--inactive .edit_step:focus,
.checkout .edit_step:hover,
.checkout .edit_step:focus {
  background-color: #4d4d4d;
  color: #bfbfbf; }

.edit_step:hover .plus-icon {
  color: #bfbfbf; }

.edit_step {
  line-height: 24px;
  font-size: 12px;
  margin: 19px 1.42857rem 0 0; }

.marker_edit_step {
  line-height: 20px;
  margin-top: -4px; }

#progress-list .complete .marker_edit_step {
  display: inline-block;
  float: none; }

input.checkout__qty {
  width: 3rem;
  text-align: right;
  float: right;
  margin: 0;
  padding-right: 0; }

.checkout__update-cart-btn .checkout__update-cart-btn__update {
  display: inline; }

.checkout__update-cart-btn .checkout__update-cart-btn__loading {
  display: none; }

.checkout__update-cart-btn:disabled .checkout__update-cart-btn__update {
  display: none; }

.checkout__update-cart-btn:disabled .checkout__update-cart-btn__loading {
  display: inline; }

.ellipsis_one,
.ellipsis_two,
.ellipsis_three {
  font-size: 1.42857rem;
  line-height: 1rem;
  opacity: 0;
  -webkit-animation: ellipsis 0.9s infinite;
  -moz-animation: ellipsis 0.9s infinite;
  animation: ellipsis 0.9s infinite;
  -webkit-animation-delay: 0s;
  -moz-animation-delay: 0s;
  animation-delay: 0s; }

.ellipsis_two {
  -webkit-animation-delay: 0.2s;
  -moz-animation-delay: 0.2s;
  animation-delay: 0.2s; }

.ellipsis_three {
  -webkit-animation-delay: 0.3s;
  -moz-animation-delay: 0.3s;
  animation-delay: 0.3s; }

@-webkit-keyframes ellipsis {
  0% {
    opacity: 0; }
  50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-moz-keyframes ellipsis {
  0% {
    opacity: 0; }
  50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes ellipsis {
  0% {
    opacity: 0; }
  50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

.dialog-popup input[type="email"],
.dialog-popup input[type="password"] {
  background-color: #fff; }

.msgbox {
  display: none;
  padding: 1em 1em 1em 1em;
  float: left;
  width: 100%;
  clear: both;
  background-color: #f2f2f2;
  border-left: 5px solid #e6e6e6;
  margin-bottom: 1em; }
  .msgbox a {
    text-decoration: underline; }
  .msgbox p {
    padding: 0 2em 0 0;
    margin: 0; }

.msgbox__close {
  float: right;
  font-size: 1.5rem;
  font-weight: bold;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 white;
  opacity: 0.2;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  background-color: transparent !important;
  border-color: transparent;
  padding: 0; }
  .msgbox__close:hover, .msgbox__close:focus {
    text-decoration: none;
    cursor: pointer;
    opacity: 0.5;
    background-color: transparent; }

.checkout__step {
  padding-top: .5em;
  padding-bottom: 2em;
  margin-bottom: 1px;
  background: #ffffff; }

.checkout__step--inactive {
  padding-top: 0; }

#js-checkoutstep__overview .checkout__step__contents {
  display: none; }

#js-checkoutstep__overview .js-toggle-visibility.edit_step,
#js-checkoutstep__paymethod .js-toggle-visibility.edit_step {
  display: block;
  float: right;
  margin-left: 1em; }

.checkout__step:first-child {
  border-radius: 0 0 0 0; }

.checkout__step:last-child {
  margin-bottom: 0;
  border-radius: 0 0 0 0; }

/* Inactive step styles */
.checkout__step--inactive {
  padding-bottom: 0;
  background: #ebebeb; }

.checkout__step__mirror,
.checkout__step--inactive .checkout__step__contents {
  display: none; }

.checkout__step--inactive.valid .checkout__step__mirror {
  display: block;
  clear: both; }

#js-checkoutstep__address h2 {
  margin-bottom: 16px; }

#js-checkoutstep__address .checkout__step__mirror {
  display: none; }

.checkout__step__contents {
  padding: 0 1.42857rem;
  clear: both; }

#kasse_one_login_question,
#welcome_msg,
#welcome_msg--true {
  line-height: 1.5rem; }

#kasse_one_login_question p.subtle, #kasse_one_login_question #kasse_one_form p.subtaxes, #kasse_one_form #kasse_one_login_question p.subtaxes, #kasse_one_login_question .product__main-images p.bx-caption, .product__main-images #kasse_one_login_question p.bx-caption, #kasse_one_login_question p.product__meta-numbers, #kasse_one_login_question .product p.price--original, .product #kasse_one_login_question p.price--original, #kasse_one_login_question .product p.vat-info, .product #kasse_one_login_question p.vat-info, #kasse_one_login_question p.product__stockstatus, #kasse_one_login_question .productlist__product p.price--original, .productlist__product #kasse_one_login_question p.price--original {
  margin-top: 0; }

.kasse_one_logginn_error {
  margin-bottom: 1rem; }

.checkout__step--inactive h2 {
  font-weight: normal;
  font-size: 16px;
  color: rgba(51, 51, 51, 0.8); }

.checkout__step__mirror {
  color: #888;
  padding: 0 1.42857rem 1.5em 4.92857rem;
  font-size: 13px; }
  .checkout__step__mirror h3 {
    margin: 0 0 .5em 0;
    font-size: 13px; }

.mirror__first-name,
.mirror__last-name,
.mirror__zip,
.mirror__city {
  display: inline; }

/* end inactive step styles */
/* freight options */
.freight-options,
.payment-options {
  margin: 0;
  padding: 0;
  list-style: none; }

.freight-option,
.payment-option {
  float: left;
  clear: both;
  width: 100%; }
  .freight-option:last-child,
  .payment-option:last-child {
    border-bottom: none; }

.payment-option {
  display: table; }
  .payment-option label {
    display: table-row;
    vertical-align: middle;
    width: 100%; }
    .payment-option label > * {
      display: table-cell;
      vertical-align: middle;
      padding: 1em 0 1em 0; }
      .payment-option label > *:first-child {
        padding-left: 5px; }
  .payment-option .payment-option__price {
    padding-left: 1em; }
  .payment-option.test .payment-option__name::after {
    margin-left: .5rem;
    font-size: 1.1rem;
    display: inline;
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'apex' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    color: #e03114; }

.freight-option label {
  float: left;
  padding: 1em 5px 1em 2.14286rem;
  width: 100%;
  line-height: 20px;
  margin-bottom: 0; }

.freight-option input[type=radio] {
  float: left;
  margin-left: -22px;
  margin-bottom: 0;
  margin-top: 2px;
  margin-right: 5px; }

.freight-option__name {
  width: 62%;
  padding-right: 0;
  padding-left: 3px;
  float: left; }

.freight-option__price {
  width: 29%;
  text-align: right;
  float: right; }

.freight-option__desc,
.payment-option__desc,
.attribute {
  clear: both;
  float: left;
  font-size: 12px;
  color: #999;
  padding: .5em 80px .5em 3px; }

.freight-option__desc {
  width: 100%;
  text-transform: none;
  font-weight: normal;
  padding-bottom: 0; }

.attribute {
  padding: 0; }

.payment-option__name {
  width: 40%; }

.payment-option__input-wrap {
  width: 2.14286rem;
  padding-left: 5px; }
  .payment-option__input-wrap .remove_giftcard {
    margin-left: 5px; }
  .payment-option__input-wrap input {
    margin-left: 3px;
    margin-top: 2px;
    margin-bottom: 0; }

.payment-option__price {
  text-align: right;
  padding-right: 5px; }

/* end freight options */
/* edit step button */
.checkout__step--inactive.valid .edit_step {
  display: block; }

.is-toggler {
  cursor: pointer; }

.kasse_main {
  width: 100%;
  float: left; }

.checkout__step__headline {
  float: left;
  line-height: 28px;
  height: 28px;
  margin: 16px 0;
  padding: 0 10px 0 0;
  clear: right;
  font-size: 18px; }

.checkout__step--inactive.valid {
  cursor: pointer; }
  .checkout__step--inactive.valid h2 {
    margin-bottom: 8px; }

.kasse_one_step_number {
  float: left;
  height: 28px;
  width: 28px;
  line-height: 28px;
  font-size: 17px;
  font-weight: normal;
  text-align: center;
  z-index: 1;
  border-radius: 50%;
  background-color: #666666;
  margin: 16px 1.42857rem 8px 1.42857rem;
  padding: 0;
  color: #e5e5e5; }

button.remove_giftcard,
button.remove_rabatt {
  display: inline;
  margin-left: .5em;
  font-size: 1rem;
  font-weight: bold;
  padding: 0; }
  button.remove_giftcard, button.remove_giftcard:link, button.remove_giftcard:visited, button.remove_giftcard:hover, button.remove_giftcard:active, button.remove_giftcard:focus,
  button.remove_rabatt,
  button.remove_rabatt:link,
  button.remove_rabatt:visited,
  button.remove_rabatt:hover,
  button.remove_rabatt:active,
  button.remove_rabatt:focus {
    color: #e03114;
    background: transparent; }

.kasse_one_step_number--info {
  font-family: Georgia, 'Times New Roman', Times, serif;
  font-style: italic; }

#kasse_one_form label.error {
  display: block;
  clear: both;
  color: #b94a48;
  font-weight: bold;
  line-height: 1.5em;
  padding-bottom: .5em; }

#kasse_one_popup_area {
  position: absolute;
  width: 320px;
  /*height:   155px;*/
  padding: 15px;
  margin: 1em 0 0 0;
  color: #000;
  background: #ffffff;
  /* default background for browsers without gradient support */
  /* css3 */
  background-color: #fff;
  background-image: -webkit-linear-gradient(#fff, #f1f1f1);
  background-image: linear-gradient(#fff, #f1f1f1);
  border-radius: 10px;
  border-style: solid;
  border-width: 1px;
  border-color: #cbcbcb; }

#kasse_one_popup {
  display: none;
  position: absolute;
  z-index: 102; }

#kasse_one_popup_area span {
  font-weight: bold; }

.frakt_wrapper,
.payment_wrapper,
.payment_wrapper > label.error,
.frakt_wrapper > label.error {
  margin-bottom: 1em; }

#kasse_one_ordre_oversikt {
  margin-bottom: 1.5em; }
  #kasse_one_ordre_oversikt tr:nth-of-type(even) {
    background: transparent; }

.subtle, #kasse_one_form .subtaxes, .product__main-images .bx-caption, .product__meta-numbers, .product .price--original, .product .vat-info, .product__stockstatus, .rating input:checked ~ label, .rating label:hover ~ label, .productlist__product .price--original {
  font-size: 13px; }

#kasse_one_form .subtaxes {
  font-weight: normal;
  font-style: italic; }

#welcome_msg {
  display: none; }

.hasPlaceholder {
  color: #bbb; }

.mini-img {
  text-align: center;
  vertical-align: middle; }

label[for="kjopsbet"] a {
  text-decoration: underline;
  text-transform: lowercase; }
  label[for="kjopsbet"] a:hover {
    cursor: help; }

label[for="kjopsbet"] a b {
  font-weight: normal; }

table.lined {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5em;
  clear: both; }
  table.lined th,
  table.lined td {
    line-height: 1.5em;
    padding: 5px 7px;
    border-right: 1px dotted rgba(51, 51, 51, 0.4); }
    table.lined th:last-child,
    table.lined td:last-child {
      border-right: none; }
  table.lined thead th {
    border-bottom: 1px solid rgba(51, 51, 51, 0.4); }
  table.lined tbody td {
    border-top: 1px dashed rgba(51, 51, 51, 0.4); }
  table.lined tbody tr:first-child td {
    border-top: none; }
  table.lined tfoot {
    font-weight: bold; }
    table.lined tfoot td {
      border-top: 1px solid rgba(51, 51, 51, 0.4);
      line-height: 2em; }
    table.lined tfoot.sum td {
      border-bottom: 3px double rgba(51, 51, 51, 0.4); }
  table.lined .price {
    text-align: right; }

.control-group {
  padding-left: 1.07143rem;
  padding-right: 1.07143rem;
  width: 100%;
  float: left; }
  .row.collapse > .control-group {
    padding-left: 0;
    padding-right: 0; }

.checkout__sum-too-small__errormsg {
  display: none; }
  .checkout__sum-too-small .checkout__sum-too-small__errormsg {
    display: block; }

.checkout__sum-too-small .checkout__sum-too-small__errormsg {
  color: #e03114;
  display: block; }

@media only screen and (min-width: 27em) {
  .control-group {
    width: 83.33333%; }
  .addon_buttons {
    margin-top: 1rem;
    float: right;
    clear: right; } }

@media only screen and (min-width: 45.063em) {
  .addon_buttons {
    padding-right: 2.14286rem; }
  .cart-contents .mini-img {
    padding: 5px 7px; }
  .mini-img img {
    display: block; }
  .checkout__step__contents {
    padding: 0 2.14286rem 0 4.92857rem; }
  .control-group {
    width: 100%; }
  .checkout-login {
    font-size: 1rem; }
  .checkout__step__contents .next-step-btn {
    padding-top: 0.71429rem;
    padding-right: 1.42857rem;
    padding-bottom: 0.78571rem;
    padding-left: 1.42857rem;
    font-size: 0.85714rem; }
    .checkout__step__contents .next-step-btn .arrow {
      display: inline !important; }
  .checkout__step__contents .close {
    padding: 0; }
  .checkout__step__mirror {
    padding-left: 4.92857rem;
    padding-right: 2.14286rem; }
  #js-checkoutstep__address.checkout__step--inactive.valid .checkout__step__mirror {
    display: block; }
  #js-checkoutstep__address.checkout__step--inactive.valid h2 {
    margin-bottom: 8px; }
  .checkout__step__mirror__address {
    margin-bottom: 0; }
  .freight-option input[type=radio] {
    float: left;
    margin-left: -22px;
    margin-bottom: 0;
    margin-top: 2px; } }

@media only screen and (min-width: 64.063em) {
  .checkout__step__contents,
  .checkout__step__mirror,
  .addon_buttons {
    padding-right: 4.92857rem; } }

.reveal-modal-bg {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #000000;
  background: rgba(0, 0, 0, 0.45);
  z-index: 1004;
  display: none;
  left: 0; }

.reveal-modal {
  visibility: hidden;
  display: none;
  position: absolute;
  z-index: 1005;
  width: 100%;
  top: 0;
  border-radius: 0;
  left: 0;
  background-color: #FFFFFF;
  padding: 2.14286rem;
  border: solid 1px #666666;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }
  @media only screen and (max-width: 45em) {
    .reveal-modal {
      min-height: 100vh; } }
  .reveal-modal .column, .reveal-modal .columns {
    min-width: 0; }
  .reveal-modal > :first-child {
    margin-top: 0; }
  .reveal-modal > :last-child {
    margin-bottom: 0; }
  @media only screen and (min-width: 45.063em) {
    .reveal-modal {
      width: 80%;
      max-width: 91.42857rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 45.063em) {
    .reveal-modal {
      top: 7.14286rem; } }
  .reveal-modal.radius {
    border-radius: 0; }
  .reveal-modal.round {
    border-radius: 1000px; }
  .reveal-modal.collapse {
    padding: 0; }
  @media only screen and (min-width: 45.063em) {
    .reveal-modal.tiny {
      width: 30%;
      max-width: 91.42857rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 45.063em) {
    .reveal-modal.small {
      width: 40%;
      max-width: 91.42857rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 45.063em) {
    .reveal-modal.medium {
      width: 60%;
      max-width: 91.42857rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 45.063em) {
    .reveal-modal.large {
      width: 70%;
      max-width: 91.42857rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 45.063em) {
    .reveal-modal.xlarge {
      width: 95%;
      max-width: 91.42857rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  .reveal-modal.full {
    top: 0;
    left: 0;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    max-width: none !important;
    margin-left: 0 !important; }
    @media only screen and (min-width: 45.063em) {
      .reveal-modal.full {
        width: 100%;
        max-width: 91.42857rem;
        left: 0;
        right: 0;
        margin: 0 auto; } }
  .reveal-modal.toback {
    z-index: 1003; }
  .reveal-modal .close-reveal-modal {
    font-size: 2.85714rem;
    line-height: 1;
    position: absolute;
    top: 0.71429rem;
    right: 1.57143rem;
    color: #AAAAAA;
    font-weight: bold;
    cursor: pointer; }

/**
 * React Select
 * ============
 * Created by Jed Watson and Joss Mackison for KeystoneJS, http://www.keystonejs.com/
 * https://twitter.com/jedwatson https://twitter.com/jossmackison https://twitter.com/keystonejs
 * MIT License: https://github.com/keystonejs/react-select
*/
@keyframes Select-animation-spin {
  to {
    transform: rotate(1turn); } }

@-webkit-keyframes Select-animation-spin {
  to {
    -webkit-transform: rotate(1turn); } }

.Select {
  position: relative; }
  .Select,
  .Select div,
  .Select input,
  .Select span {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box; }
  .Select.is-disabled > .Select-control {
    background-color: #f9f9f9; }
    .Select.is-disabled > .Select-control:hover {
      box-shadow: none; }
  .Select.is-disabled .Select-arrow-zone {
    cursor: default;
    pointer-events: none; }

.Select-control {
  background-color: #FAFAFA;
  border-color: #d9d9d9 #ccc #b3b3b3;
  border-radius: 3px;
  border: 0px solid #ccc;
  color: #333;
  cursor: default;
  display: table;
  border-spacing: 0;
  border-collapse: separate;
  height: 36px;
  outline: none;
  overflow: hidden;
  position: relative;
  width: 100%; }
  .Select-control:hover {
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06); }

.is-searchable.is-open > .Select-control {
  cursor: text; }

.is-open > .Select-control {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  background: #FAFAFA;
  border-color: #b3b3b3 #ccc #d9d9d9; }
  .is-open > .Select-control > .Select-arrow {
    border-color: transparent transparent #999;
    border-width: 0 5px 5px; }

.is-searchable.is-focused:not(.is-open) > .Select-control {
  cursor: text; }

.is-focused:not(.is-open) > .Select-control {
  border-color: #08c #0099e6 #0099e6;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 0 5px -1px fade(#08c, 50%); }

.Select-placeholder,
:not(.Select--multi) > .Select-control .Select-value {
  bottom: 0;
  color: #aaa;
  left: 0;
  line-height: 36px;
  padding-left: 10px;
  padding-right: 10px;
  position: absolute;
  right: 0;
  top: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.has-value:not(.Select--multi):not(.is-focused) > .Select-control > .Select-value .Select-value-label,
.has-value.is-pseudo-focused:not(.Select--multi) > .Select-control > .Select-value .Select-value-label {
  color: #333; }

.has-value:not(.Select--multi):not(.is-focused) > .Select-control > .Select-value a.Select-value-label,
.has-value.is-pseudo-focused:not(.Select--multi) > .Select-control > .Select-value a.Select-value-label {
  cursor: pointer;
  text-decoration: none; }
  .has-value:not(.Select--multi):not(.is-focused) > .Select-control > .Select-value a.Select-value-label:hover,
  .has-value.is-pseudo-focused:not(.Select--multi) > .Select-control > .Select-value a.Select-value-label:hover {
    color: #08c;
    text-decoration: underline; }

.Select-input {
  height: 36px;
  padding-left: 10px;
  padding-right: 10px;
  vertical-align: middle; }
  .Select-input > input {
    background: none transparent;
    border: 0 none;
    box-shadow: none;
    cursor: default;
    display: inline-block;
    font-family: inherit;
    font-size: inherit;
    height: 36px;
    margin: 0;
    outline: none;
    padding: 0;
    -webkit-appearance: none; }
    .is-focused .Select-input > input {
      cursor: text; }

.has-value.is-pseudo-focused .Select-input {
  opacity: 0; }

.Select-control:not(.is-searchable) > .Select-input {
  outline: none; }

.Select-loading-zone {
  cursor: pointer;
  display: table-cell;
  position: relative;
  text-align: center;
  vertical-align: middle;
  width: 16px; }

.Select-loading {
  -webkit-animation: Select-animation-spin 400ms infinite linear;
  -o-animation: Select-animation-spin 400ms infinite linear;
  animation: Select-animation-spin 400ms infinite linear;
  width: 16px;
  height: 16px;
  box-sizing: border-box;
  border-radius: 50%;
  border: 2px solid #ccc;
  border-right-color: #333;
  display: inline-block;
  position: relative;
  vertical-align: middle; }

.Select-clear-zone {
  -webkit-animation: Select-animation-fadeIn 200ms;
  -o-animation: Select-animation-fadeIn 200ms;
  animation: Select-animation-fadeIn 200ms;
  color: #999;
  cursor: pointer;
  display: table-cell;
  position: relative;
  text-align: center;
  vertical-align: middle;
  width: 18px; }
  .Select-clear-zone:hover {
    color: #D0021B; }

.Select-clear {
  display: inline-block;
  font-size: 18px;
  line-height: 1; }

.Select--multi .Select-clear-zone {
  width: 18px; }

.Select-arrow-zone {
  cursor: pointer;
  display: table-cell;
  position: relative;
  text-align: center;
  vertical-align: middle;
  width: 25px;
  padding-right: 5px; }

.Select-arrow {
  border-color: #999 transparent transparent;
  border-style: solid;
  border-width: 5px 5px 2.5px;
  display: inline-block;
  height: 0;
  width: 0; }

.is-open .Select-arrow,
.Select-arrow-zone:hover > .Select-arrow {
  border-top-color: #666; }

@-webkit-keyframes Select-animation-fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@keyframes Select-animation-fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

.Select-menu-outer {
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
  background-color: #FAFAFA;
  border: 1px solid #ccc;
  border-top-color: #e3e3e3;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  margin-top: -1px;
  max-height: 200px;
  position: absolute;
  top: 100%;
  width: 100%;
  z-index: 1000;
  -webkit-overflow-scrolling: touch; }

.Select-menu {
  max-height: 198px;
  overflow-y: auto; }

.Select-option {
  box-sizing: border-box;
  background-color: #FAFAFA;
  color: #666666;
  cursor: pointer;
  display: block;
  padding: 8px 10px; }
  .Select-option:last-child {
    border-bottom-right-radius: 3px;
    border-bottom-left-radius: 3px; }
  .Select-option.is-focused {
    background-color: #000000;
    color: white; }
  .Select-option.is-selected {
    background-color: #FAFAFA;
    color: rgba(0, 0, 0, 0.75); }
  .Select-option.is-disabled {
    color: #cccccc;
    cursor: default; }

.Select-noresults {
  box-sizing: border-box;
  color: #999999;
  cursor: default;
  display: block;
  padding: 8px 10px; }

.Select--multi .Select-input {
  vertical-align: middle;
  margin-left: 10px;
  padding: 0; }

.Select--multi.has-value .Select-input {
  margin-left: 5px; }

.Select--multi .Select-value {
  background-color: #f2f9fc;
  border-radius: 2px;
  border: 1px solid #c9e6f2;
  color: #08c;
  display: inline-block;
  font-size: 0.9em;
  margin-left: 5px;
  margin-top: 5px;
  vertical-align: top; }

.Select--multi .Select-value-icon,
.Select--multi .Select-value-label {
  display: inline-block;
  vertical-align: middle; }

.Select--multi .Select-value-label {
  border-bottom-right-radius: 2px;
  border-top-right-radius: 2px;
  cursor: default;
  padding: 2px 5px; }

.Select--multi a.Select-value-label {
  color: #08c;
  cursor: pointer;
  text-decoration: none; }
  .Select--multi a.Select-value-label:hover {
    text-decoration: underline; }

.Select--multi .Select-value-icon {
  cursor: pointer;
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
  border-right: 1px solid #c9e6f2;
  padding: 1px 5px 3px; }
  .Select--multi .Select-value-icon:hover, .Select--multi .Select-value-icon:focus {
    background-color: #ddeff7;
    color: #0077b3; }
  .Select--multi .Select-value-icon:active {
    background-color: #c9e6f2; }

.Select--multi.is-disabled .Select-value {
  background-color: #fcfcfc;
  border: 1px solid #e3e3e3;
  color: #333; }

.Select--multi.is-disabled .Select-value-icon {
  cursor: not-allowed;
  border-right: 1px solid #e3e3e3; }
  .Select--multi.is-disabled .Select-value-icon:hover, .Select--multi.is-disabled .Select-value-icon:focus, .Select--multi.is-disabled .Select-value-icon:active {
    background-color: #fcfcfc; }

@keyframes Select-animation-spin {
  to {
    transform: rotate(1turn); } }

@-webkit-keyframes Select-animation-spin {
  to {
    -webkit-transform: rotate(1turn); } }

table.checkout--kco__cart th.price,
table.checkout--kco__cart td.price, table.checkout--kco__cart .checkout__qty {
  font-variant-numeric: tabular-nums;
  -moz-font-feature-settings: "tnum";
  -webkit-font-feature-settings: "tnum";
  font-feature-settings: "tnum"; }

.freight-option > label input[type="radio"], .checkout__payment-methods-list .payment-method label input[type="radio"] {
  opacity: 0; }

.freight-option > label input[type="radio"] + span, .checkout__payment-methods-list .payment-method label input[type="radio"] + span {
  position: relative; }
  .freight-option > label input[type="radio"] + span:before, .checkout__payment-methods-list .payment-method label input[type="radio"] + span:before, .freight-option > label input[type="radio"] + span:after, .checkout__payment-methods-list .payment-method label input[type="radio"] + span:after {
    content: '.';
    box-sizing: content-box;
    color: transparent;
    display: block;
    position: absolute;
    overflow: hidden;
    top: 50%;
    margin-top: -7px;
    left: -1.57143rem;
    width: 14px;
    height: 14px;
    border-radius: 1000px;
    opacity: 1;
    -webkit-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    -moz-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1); }
  .freight-option > label input[type="radio"] + span:before, .checkout__payment-methods-list .payment-method label input[type="radio"] + span:before {
    background-color: #000000;
    -webkit-transform: scale(0.8);
    -moz-transform: scale(0.8);
    -ms-transform: scale(0.8);
    transform: scale(0.8); }
  .freight-option > label input[type="radio"] + span:after, .checkout__payment-methods-list .payment-method label input[type="radio"] + span:after {
    background-color: white;
    box-shadow: black 0 0 1px, inset black 0 0 1px;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1); }

.freight-option > label input[type="radio"]:checked + span:before, .checkout__payment-methods-list .payment-method label input[type="radio"]:checked + span:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1); }

.freight-option > label input[type="radio"]:checked + span:after, .checkout__payment-methods-list .payment-method label input[type="radio"]:checked + span:after {
  -webkit-transform: scale(0.4);
  -moz-transform: scale(0.4);
  -ms-transform: scale(0.4);
  transform: scale(0.4);
  box-shadow: transparent 0 0 1px, inset transparent 0 0 1px; }

input[type="radio"][disabled] + span .freight-option > label:before, input[type="radio"][disabled] + span .checkout__payment-methods-list .payment-method label:before, .checkout__payment-methods-list .payment-method input[type="radio"][disabled] + span label:before {
  background-color: black; }

form:invalid .js-kasse-one-submit {
  color: white;
  background-color: #767676;
  pointer-events: none;
  -ms-user-select: none;
  /* IE/Edge */
  user-select: none;
  opacity: 0.6; }

.checkout__step--shipping {
  position: relative;
  z-index: 2; }

.freight--pickup-point {
  clear: both; }

.Select-control {
  font-size: 0.92857rem;
  margin-bottom: 1rem;
  margin-left: 1px;
  margin-right: 1px;
  box-shadow: #cccccc 0 0 0 1px; }
  .Select-control:hover {
    box-shadow: #cccccc 0 0 0 1px, rgba(0, 0, 0, 0.1) 0 5px 10px; }

.Select-option {
  position: relative;
  font-size: 0.92857rem;
  padding-left: 1.6em; }

.Select-option.is-selected:before {
  content: '✓';
  transform: scale(1.2);
  position: absolute;
  top: 0.57143rem;
  text-align: center;
  left: 0;
  width: 1.6em; }

.Select-option.is-selected:hover {
  color: white;
  background-color: #000000; }

.Select-menu-outer {
  border-width: 0px;
  margin-left: 1px;
  margin-right: 1px; }

.Select-menu {
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
  box-shadow: #cccccc 0 0 0 1px, rgba(0, 0, 0, 0.1) 0 5px 10px; }

.checkout--kco .js-attach_comment {
  padding-left: 0; }
  .checkout--kco .js-attach_comment:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'apex' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: ""; }

#klarna-checkout-container {
  position: relative;
  max-width: 664px;
  background-color: white; }

.checkout--kco__overlay {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  color: #757575;
  text-align: center;
  -webkit-user-select: none;
  user-select: none;
  z-index: 1; }
  .checkout--kco__overlay, .checkout--kco__overlay + * {
    -webkit-transform-origin: 50% 0%;
    -moz-transform-origin: 50% 0%;
    -ms-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%; }
  .checkout--kco__overlay em {
    display: block;
    font-size: 1.14286rem;
    position: absolute;
    top: 0;
    left: 0.71429rem;
    right: 0.71429rem; }

.freight-option {
  position: relative; }
  .freight-option:before {
    border: 1px rgba(0, 0, 0, 0.6) solid;
    border-radius: 6px;
    content: '';
    display: block;
    position: absolute;
    top: -0.53571rem;
    left: 0;
    right: 0;
    bottom: -0.26786rem;
    opacity: 0;
    -webkit-transform: scaleX(0.98) scaleY(0.8);
    -moz-transform: scaleX(0.98) scaleY(0.8);
    -ms-transform: scaleX(0.98) scaleY(0.8);
    transform: scaleX(0.98) scaleY(0.8);
    -webkit-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    -moz-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1); }
  .freight-option.active:before {
    opacity: 1;
    -webkit-transform: scaleX(1) scaleY(1);
    -moz-transform: scaleX(1) scaleY(1);
    -ms-transform: scaleX(1) scaleY(1);
    transform: scaleX(1) scaleY(1); }
  .freight-option > label {
    position: relative; }
  .freight-option.inactive > * {
    opacity: 0.3; }

.kco_shipping_show_more_options {
  display: block;
  font-size: 0.875rem;
  margin-left: 3px;
  padding-bottom: .5rem;
  padding-top: .75rem;
  padding-left: 1.5rem; }

.checkout--kco__payment-options .control-group, .customer-type .control-group {
  padding-bottom: 0.2rem;
  box-shadow-bottom: 0 1px 0 rgba(51, 51, 51, 0.2);
  width: 100%; }
  .checkout--kco__payment-options .control-group label, .customer-type .control-group label {
    -webkit-transition: all 150ms ease;
    -moz-transition: all 150ms ease;
    transition: all 150ms ease;
    font-weight: bold;
    opacity: 0.6;
    margin-right: 0.5rem; }
  .checkout--kco__payment-options .control-group :checked + label, .customer-type .control-group :checked + label {
    opacity: 1;
    text-decoration: underline; }

.reveal-modal {
  position: fixed;
  top: 16px;
  background-color: #ffffff; }
  .reveal-modal .close-reveal-modal {
    color: #757575; }
    .reveal-modal .close-reveal-modal:hover {
      color: #eb0000; }
  @media only screen and (max-width: 45em) {
    .reveal-modal {
      min-height: initial !important; } }

.checkout--kco__page-header {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }

.checkout--kco__custom-intro {
  position: relative;
  margin-bottom: 2em; }
  .checkout--kco__custom-intro:last-child {
    border: none; }

.checkout--kco {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }
  .checkout--kco .price-diff {
    position: relative;
    white-space: nowrap; }
  .checkout--kco .current-price {
    position: relative;
    opacity: 0.75; }
  .checkout--kco .pending-price {
    position: absolute;
    right: 0;
    top: 100%;
    line-height: 1em;
    height: 1em; }
  .checkout--kco .checkout__step__headline {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }
  .checkout--kco.checkout__steps {
    padding: 0;
    background-color: transparent; }
  .checkout--kco .checkout__step {
    padding-top: 1rem;
    padding-bottom: 1rem; }
    .checkout--kco .checkout__step:last-child {
      border: none; }
  .checkout--kco .checkout__bottom-toolbar > .columns {
    margin-bottom: 0.5em; }
  .checkout--kco .checkout__step__headline {
    font-weight: bold;
    width: 100%;
    margin: 0 0 .5rem 0;
    padding: 0 0 .5rem 0;
    height: auto; }
  .checkout--kco .kasse_one_step_number {
    margin-top: 0;
    margin-bottom: 0; }
  .checkout--kco .addon_buttons {
    text-align: right; }
    .checkout--kco .addon_buttons .edit_step {
      float: none;
      display: inline-block;
      text-decoration: none;
      margin-left: .5rem;
      padding-right: 1rem;
      background-color: #e7e7e7;
      border-color: #747474;
      color: #535353;
      -webkit-transition: all 300ms ease;
      -moz-transition: all 300ms ease;
      transition: all 300ms ease; }
      .checkout--kco .addon_buttons .edit_step:hover {
        background-color: #b1b1b1;
        color: #2f2f2f; }
      .checkout--kco .addon_buttons .edit_step:first-child {
        margin-left: 0; }
  .checkout--kco .checkout-kco__address-form input, .checkout--kco .checkout-kco__address-form button, .checkout--kco .checkout-kco__address-form select {
    border-radius: 3px; }
  .checkout--kco .checkout-kco__address-form .checkout--kco__shipping-country select[disabled] {
    display: none; }
  .checkout--kco button,
  .checkout--kco .button,
  .checkout--kco input[type="number"],
  .checkout--kco .edit_step {
    border-radius: 3px; }
  .checkout--kco button:not(.remove_rabatt):not(.remove_giftcard),
  .checkout--kco .button:not(.remove_rabatt):not(.remove_giftcard),
  .checkout--kco input[type=submit]:not(.remove_rabatt):not(.remove_giftcard),
  .checkout--kco .edit_step:not(.remove_rabatt):not(.remove_giftcard) {
    font-weight: bold;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), inset 0 -3px 0 rgba(0, 0, 0, 0.1), 0 2px 5px rgba(0, 0, 0, 0.1); }
    .checkout--kco button:not(.remove_rabatt):not(.remove_giftcard):active,
    .checkout--kco .button:not(.remove_rabatt):not(.remove_giftcard):active,
    .checkout--kco input[type=submit]:not(.remove_rabatt):not(.remove_giftcard):active,
    .checkout--kco .edit_step:not(.remove_rabatt):not(.remove_giftcard):active {
      box-shadow: inset 0 3px 0 rgba(0, 0, 0, 0.1);
      outline: none; }
  .checkout--kco .next-step-btn {
    font-size: 1rem; }
  .checkout--kco .edit_step {
    font-size: 0.92857rem; }
    .checkout--kco .edit_step .icon-add {
      line-height: 1.6rem;
      /* to fixed a messed up rotate animation */
      -webkit-transition: all 150ms ease;
      -moz-transition: all 150ms ease;
      transition: all 150ms ease; }
    .checkout--kco .edit_step.disabled {
      display: none;
      opacity: 0.3;
      pointer-events: none;
      -ms-user-select: none;
      /* IE/Edge */
      user-select: none; }
  .checkout--kco input[type="text"]:focus, .checkout--kco input[type="text"].focus,
  .checkout--kco input[type="number"]:focus,
  .checkout--kco input[type="number"].focus,
  .checkout--kco input[type="tel"]:focus,
  .checkout--kco input[type="tel"].focus,
  .checkout--kco input[type="email"]:focus,
  .checkout--kco input[type="email"].focus {
    border: 1px solid #007bbb;
    box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.17), inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 3px 1px #007bbb; }
  .checkout--kco .zip::-webkit-inner-spin-button, .checkout--kco .zip::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0; }

.checkout--kco__shipping-zip {
  position: relative; }
  .checkout--kco__shipping-zip label {
    position: absolute;
    right: 1.5rem;
    top: 50%;
    text-transform: uppercase;
    margin-top: -1.125rem;
    font-size: 0.875rem;
    font-weight: 500;
    opacity: 0.5;
    pointer-events: none;
    color: rgba(0, 0, 0, 0.5);
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    left: 5em;
    left: 7ch;
    text-align: right;
    -webkit-transform-origin: 90% 50%;
    -moz-transform-origin: 90% 50%;
    -ms-transform-origin: 90% 50%;
    -o-transform-origin: 90% 50%;
    transform-origin: 90% 50%; }
  .checkout--kco__shipping-zip input.invalid:not(:focus) {
    border: 1px solid #eb0000;
    color: #eb0000;
    box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.17), inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 3px 1px #eb0000; }

.checkout__step--kco-window:only-child .checkout__step__contents {
  max-width: none;
  padding: 0; }

.kco-payment-wrapper, .alternate-payment-wrapper {
  min-height: 300px; }

.kco-payment-wrapper {
  position: relative;
  margin: -20px -12px -12px -12px; }

.alternate-payment-wrapper .checkout__step__headline {
  margin-left: 0.64286rem; }

.checkout__steps--iconized .kasse_one_step_number {
  width: 2.5rem;
  height: 2.5rem;
  line-height: 2.5rem;
  margin-left: 1.25rem;
  margin-right: 1rem;
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);
  position: relative; }
  .checkout__steps--iconized .kasse_one_step_number span {
    display: inline-block;
    position: absolute;
    top: 7px;
    left: 7px;
    right: 7px;
    bottom: 7px;
    z-index: 1; }
  .checkout__steps--iconized .kasse_one_step_number .icon-loading-indicator {
    display: block;
    height: 100%;
    width: 100%; }
    .checkout__steps--iconized .kasse_one_step_number .icon-loading-indicator:before {
      margin: 0px;
      height: 100%;
      width: 100%; }
  .checkout__steps--iconized .kasse_one_step_number i {
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
    color: #ffffff;
    display: inline-block; }

.checkout__steps--iconized .checkout__step__headline {
  line-height: 2.5rem; }

.checkout--kco__wrapper {
  position: relative;
  min-height: 210px;
  min-height: 50vh; }
  .checkout--kco__wrapper .activity-indicator {
    pointer-events: none;
    -ms-user-select: none;
    /* IE/Edge */
    user-select: none;
    position: fixed;
    opacity: 0;
    top: 50%;
    left: 50%;
    z-index: 300;
    height: 38px;
    width: 38px;
    border-radius: 1000px;
    box-shadow: rgba(0, 0, 0, 0.5) 0 0 1px, rgba(0, 0, 0, 0.3) 0 2px 6px;
    background-color: #000000;
    padding: 4px;
    z-index: 400;
    margin-top: -19px;
    margin-left: -19px;
    will-change: opacity, transform;
    -webkit-transform: scale(0.6);
    -moz-transform: scale(0.6);
    -ms-transform: scale(0.6);
    transform: scale(0.6);
    -webkit-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    -moz-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1); }
    .checkout--kco__wrapper .activity-indicator .svg {
      display: block;
      height: 100%;
      width: 100%;
      -webkit-animation: activity-rotate 600ms linear infinite;
      -o-animation: activity-rotate 600ms linear infinite;
      animation: activity-rotate 600ms linear infinite; }
      .checkout--kco__wrapper .activity-indicator .svg:before {
        /* We cannot run this using sassc yet
    @include svg((
        viewBox: 0 0 24 24
      )) {
        @include svg('defs') {
          @include svg('radialGradient', (
            cx: '25%',
            cy: '25%',
            id: 'a'
          )) {
                @include svg('stop', (
                  stop-color: $activity-color,
                  offset: '10%'
                ));
                @include svg('stop', (
                  stop-color: $activity-color,
                  stop-opacity: 0.1,
                  offset: '100%'
                ));
          };
        }
        @include svg('circle', (
            fill: none,
            cx: 12,
            cy: 12,
            r: 10,
            //stroke-width: 2,
            stroke: "url(#a)"
        ));
      }
      //*/
        content: url("data:image/svg+xml;charset=utf8,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cdefs%20%3E%3CradialGradient%20cx%3D%2225%25%22%20cy%3D%2225%25%22%20id%3D%22a%22%3E%3Cstop%20stop%2Dcolor%3D%22%23FFFFFF%22%20offset%3D%2210%25%22%2F%3E%3Cstop%20stop%2Dcolor%3D%22%23FFFFFF%22%20stop%2Dopacity%3D%220%2E1%22%20offset%3D%22100%25%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Ccircle%20fill%3D%22none%22%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%20stroke%3D%22url%28%23a%29%22%2F%3E%3C%2Fsvg%3E"); }
    .checkout--kco__wrapper .activity-indicator + div {
      -webkit-transition: opacity 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      -moz-transition: opacity 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      transition: opacity 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      opacity: 1; }
  .checkout--kco__wrapper.is-loading, .checkout--kco__wrapper.is-uploading {
    cursor: progress; }
    .checkout--kco__wrapper.is-loading .activity-indicator, .checkout--kco__wrapper.is-uploading .activity-indicator {
      -webkit-transform: scale(1);
      -moz-transform: scale(1);
      -ms-transform: scale(1);
      transform: scale(1);
      opacity: 1; }
      .checkout--kco__wrapper.is-loading .activity-indicator + div, .checkout--kco__wrapper.is-uploading .activity-indicator + div {
        -webkit-transition: opacity 3000ms ease-out;
        -moz-transition: opacity 3000ms ease-out;
        transition: opacity 3000ms ease-out;
        pointer-events: none;
        -ms-user-select: none;
        /* IE/Edge */
        user-select: none;
        opacity: 0.25; }

.kasse_one_step_number {
  position: relative; }

.icon-loading-indicator.is-loading {
  -webkit-animation: activity-rotate 600ms linear infinite;
  -o-animation: activity-rotate 600ms linear infinite;
  animation: activity-rotate 600ms linear infinite;
  display: inline-block;
  /*width: 2rem;
    width: rem-calc(24);
    height: 2rem;
    height: rem-calc(24);
    font-size: 1rem;
    font-size: rem-calc(12);
    line-height: 2rem;
    line-height: rem-calc(24);
    */ }
  .icon-loading-indicator.is-loading:before {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: .3em;
    /* We cannot run this using sassc yet
    @include svg((
        viewBox: 0 0 24 24
      )) {
        @include svg('defs') {
          @include svg('radialGradient', (
            cx: '25%',
            cy: '25%',
            id: 'a'
          )) {
                @include svg('stop', (
                  stop-color: $activity-color,
                  offset: '10%'
                ));
                @include svg('stop', (
                  stop-color: $activity-color,
                  stop-opacity: 0.1,
                  offset: '100%'
                ));
          };
        }
        @include svg('circle', (
            fill: none,
            cx: 12,
            cy: 12,
            r: 10,
            //stroke-width: 2,
            stroke: "url(#a)"
        ));
      }
      //*/
    content: url("data:image/svg+xml;charset=utf8,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cdefs%20%3E%3CradialGradient%20cx%3D%2225%25%22%20cy%3D%2225%25%22%20id%3D%22a%22%3E%3Cstop%20stop%2Dcolor%3D%22%23FFFFFF%22%20offset%3D%2210%25%22%2F%3E%3Cstop%20stop%2Dcolor%3D%22%23FFFFFF%22%20stop%2Dopacity%3D%220%2E1%22%20offset%3D%22100%25%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Ccircle%20fill%3D%22none%22%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%20stroke%3D%22url%28%23a%29%22%2F%3E%3C%2Fsvg%3E"); }

table.checkout--kco__cart {
  outline: 1px solid rgba(51, 51, 51, 0.1); }
  table.checkout--kco__cart th,
  table.checkout--kco__cart td {
    font-size: 0.92857rem;
    line-height: 1.5;
    padding: 0.5rem 0.75rem;
    border: 1px solid rgba(51, 51, 51, 0.05); }
    table.checkout--kco__cart th:first-child,
    table.checkout--kco__cart td:first-child {
      border-left: none; }
    table.checkout--kco__cart th.price,
    table.checkout--kco__cart td.price {
      white-space: nowrap;
      width: 1px; }
  table.checkout--kco__cart thead th {
    box-shadow: 0 3px 0 rgba(0, 0, 0, 0.04);
    padding: .75rem;
    border-bottom: 1px solid rgba(51, 51, 51, 0.05);
    border-top: 1px solid rgba(255, 255, 255, 0.5); }
  table.checkout--kco__cart tbody tr:last-child td {
    box-shadow: 0 3px 0 rgba(0, 0, 0, 0.02); }
  table.checkout--kco__cart tfoot.sum td {
    border-top: 1px solid rgba(255, 255, 255, 0.5);
    border-bottom: none;
    box-shadow: 0 3px 0 rgba(0, 0, 0, 0.04); }
  table.checkout--kco__cart .mini-img {
    text-align: center;
    border-right: none;
    display: inline-block;
    width: 0;
    padding: 0; }
    table.checkout--kco__cart .mini-img img {
      height: 2.39286rem;
      margin: 0; }
  table.checkout--kco__cart .discount .mini-img,
  table.checkout--kco__cart .shipping .mini-img,
  table.checkout--kco__cart .giftcard .mini-img {
    position: relative; }
    table.checkout--kco__cart .discount .mini-img [class^="icon-"],
    table.checkout--kco__cart .shipping .mini-img [class^="icon-"],
    table.checkout--kco__cart .giftcard .mini-img [class^="icon-"] {
      position: absolute;
      left: 0.75rem;
      top: 1px; }
  table.checkout--kco__cart .discount .product-name,
  table.checkout--kco__cart .shipping .product-name,
  table.checkout--kco__cart .giftcard .product-name {
    text-indent: 1.5rem; }
  table.checkout--kco__cart .discount__rate {
    border-radius: 4px;
    font-size: 0.78571rem;
    font-weight: normal;
    display: inline-block;
    margin: -0.42857rem 0.42857rem 0 0.42857rem;
    padding: 0.14286rem 0.35714rem;
    color: #DB311B;
    background-color: rgba(219, 49, 27, 0.25); }
  table.checkout--kco__cart .attributes {
    font-weight: normal; }
  table.checkout--kco__cart .product-name {
    border-left: none;
    position: relative; }
  table.checkout--kco__cart .checkout__qty {
    height: 2rem;
    padding: .25rem 0 .25rem .25rem;
    box-shadow: none;
    text-align: center;
    -webkit-transition: all 300ms ease;
    -moz-transition: all 300ms ease;
    transition: all 300ms ease; }
    table.checkout--kco__cart .checkout__qty.primary-color-bg:focus {
      border-color: #000000;
      box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.17), inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 3px 1px #000000; }
  table.checkout--kco__cart .subtaxes {
    opacity: 0.6;
    font-style: italic;
    font-weight: normal; }
  table.checkout--kco__cart .service td,
  table.checkout--kco__cart .discount td,
  table.checkout--kco__cart .giftcard td,
  table.checkout--kco__cart .shipping td {
    border-right: none;
    border-left: none; }

.checkout--kco__freight-protip {
  bottom: 100%;
  font-size: 12px;
  color: #616161;
  background-color: #e0e0e0;
  border-radius: 5px;
  margin-bottom: -0.5rem;
  padding: 4px 7px;
  position: relative; }
  .checkout--kco__freight-protip strong {
    color: #4f4f4f;
    white-space: nowrap; }
  .checkout--kco__freight-protip:after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    border-color: #e0e0e0 transparent transparent transparent;
    border-top-style: solid;
    position: absolute;
    top: 100%;
    left: 8px; }

.checkout--kco__payment-notice {
  font-style: italic; }

.checkout__product-name-wrap {
  display: none; }

.product-name--has-attributes:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0.71429rem 0.71429rem 0;
  border-color: transparent #DB311B transparent transparent; }

.product-name--has-attributes:hover, .product-name--has-attributes:focus {
  outline: none; }
  .product-name--has-attributes:hover .checkout__product-name-wrap, .product-name--has-attributes:focus .checkout__product-name-wrap {
    display: block;
    position: absolute;
    z-index: 3;
    top: 0;
    left: 0;
    width: 100%;
    padding: 0.73214rem 0.67857rem;
    border: 1px solid whitesmoke;
    background: #ffffff;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); }

.checkout--kco__corporate-link {
  margin-bottom: 1rem; }

.checkout--kco__keep-shopping {
  margin-left: .5rem; }

.checkout--kco__payment-notice {
  display: block;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem; }

.kco_shipping_options {
  margin-top: 0.53571rem;
  margin-bottom: 0.53571rem; }
  .kco_shipping_options .freight-option {
    border-bottom: none; }
    .kco_shipping_options .freight-option label {
      padding-bottom: 1.07143rem;
      padding-top: 1.07143rem;
      padding-left: 2.07143rem;
      padding-right: 1.07143rem; }

.checkout__payment-methods-list {
  list-style: none; }
  .checkout__payment-methods-list > :first-child {
    margin-bottom: 0.26786rem; }
  .checkout__payment-methods-list .payment-method {
    display: block;
    position: relative; }
    .checkout__payment-methods-list .payment-method:first-of-type {
      -webkit-transition: box-shadow 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      -moz-transition: box-shadow 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      transition: box-shadow 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      box-shadow: 0 -1px 0 rgba(51, 51, 51, 0); }
      .checkout__payment-methods-list .payment-method:first-of-type:first-of-type:not(.payment-method--active) {
        box-shadow: 0 -1px 0 rgba(51, 51, 51, 0.2); }
    .checkout__payment-methods-list .payment-method:before {
      border: 1px rgba(0, 0, 0, 0.6) solid;
      border-radius: 6px;
      content: '';
      background: #ffffff;
      display: block;
      position: absolute;
      top: -0.26786rem;
      left: 0;
      right: 0;
      bottom: -0.26786rem;
      opacity: 0;
      -webkit-transform: scaleX(0.98) scaleY(0.8);
      -moz-transform: scaleX(0.98) scaleY(0.8);
      -ms-transform: scaleX(0.98) scaleY(0.8);
      transform: scaleX(0.98) scaleY(0.8);
      -webkit-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      -moz-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1); }
    .checkout__payment-methods-list .payment-method.payment-method--active:before {
      opacity: 1;
      -webkit-transform: scaleX(1) scaleY(1);
      -moz-transform: scaleX(1) scaleY(1);
      -ms-transform: scaleX(1) scaleY(1);
      transform: scaleX(1) scaleY(1); }
    .checkout__payment-methods-list .payment-method label {
      display: block;
      padding-left: 2.07143rem;
      padding-right: 2.14286rem;
      padding-top: 0.53571rem;
      padding-bottom: 0.53571rem;
      position: relative; }
      .checkout__payment-methods-list .payment-method label span {
        height: 1.57143rem;
        display: inline-block; }
      .checkout__payment-methods-list .payment-method label input {
        display: none; }
    .checkout__payment-methods-list .payment-method img {
      max-width: 150px;
      max-height: 30px;
      margin-right: 0.2rem; }
  .checkout__payment-methods-list input[type="radio"] {
    margin-bottom: 0;
    margin-right: .5rem; }

.checkout__payment-methods-prefix, .payment-method {
  font-size: 1.07143rem; }

.checkout--kco__alternate-payment input.check-validity:invalid:not(:focus), .checkout--kco__alternate-payment input.check-validity.invalid:not(:focus) {
  border: 1px solid #eb0000;
  color: #eb0000;
  box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.17), inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 3px 1px #eb0000; }

.kco-payment-wrapper {
  margin-top: 0; }

@media only screen and (max-width: 45em) {
  .checkout__bottom-toolbar-right button.js-checkout_update {
    top: -1.07143rem !important; }
  .checkout__payment-methods-list {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem; } }

@media only screen and (min-width: 27em) {
  .checkout--kco__payment .control-group {
    width: 100%; }
  .checkout--kcos .addon_buttons {
    margin: 0;
    position: absolute;
    top: 1.5rem;
    right: 0; }
    .checkout--kcos .addon_buttons .edit_step.disabled {
      display: inline-block !important; } }

@media only screen and (min-width: 45.063em) {
  .row .row.checkout-kco__address-form {
    padding-right: 1.07143rem; }
  .row .checkout--kco__freight-options {
    padding-left: 1.07143rem; }
  .checkout--kco__freight {
    box-shadow: inset 1px 0 0 rgba(51, 51, 51, 0.2);
    margin-bottom: 1.07143rem; }
  .checkout--kco__payment-alternatives {
    margin-left: 1.07143rem;
    margin-right: 1.07143rem; }
  .checkout__payment-methods-list {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem; }
  .checkout--kco .addon_buttons {
    top: 1.42857rem;
    padding-right: 2.14286rem; }
  table.checkout--kco__cart .mini-img {
    width: 75px;
    display: table-cell; }
    table.checkout--kco__cart .mini-img img {
      display: inline-block; }
  table.checkout--kco__cart .discount .mini-img [class^="icon-"],
  table.checkout--kco__cart .shipping .mini-img [class^="icon-"],
  table.checkout--kco__cart .giftcard .mini-img [class^="icon-"] {
    position: relative;
    left: auto;
    top: auto; }
  table.checkout--kco__cart .discount .product-name,
  table.checkout--kco__cart .shipping .product-name,
  table.checkout--kco__cart .giftcard .product-name {
    text-indent: 0; }
  table.checkout--kco__cart .product-name {
    font-weight: bold; }
  .checkout__step__contents {
    padding: 0 1.25rem 0 1.25rem; }
  .checkout--kco__overlay {
    left: 1.8125rem; }
  .checkout--kco__payment {
    box-shadow: inset #ffffff 0 30px 0, inset #ffffff 0 -30px 0, inset rgba(51, 51, 51, 0.2) 1px 1px 0; }
  .kco-payment-bordered-wrapper {
    margin-left: .5rem;
    margin-top: -1.15rem;
    min-height: 300px; }
  .kco-payment-wrapper, .alternate-payment-wrapper {
    min-height: 300px;
    background-color: #ffffff;
    margin: 0; }
  .alternate-payment-wrapper {
    margin-top: -1.5rem; }
    .alternate-payment-wrapper .checkout__step__headline {
      margin-top: -2rem;
      margin-bottom: 0.35714rem;
      margin-left: 0.64286rem; } }

.js-attach_comment {
  display: block; }

.checkout__bottom-toolbar-right {
  position: relative; }
  .checkout__bottom-toolbar-right button.js-checkout_update {
    position: absolute;
    top: 0px;
    right: 1.07143rem; }

.checkout--kco__freight-options {
  position: relative;
  min-height: 6rem;
  margin-top: 0; }

@media only screen and (min-width: 64.063em) {
  .row .row.checkout-kco__address-form, .checkout__payment-methods-list {
    padding-right: 2.14286rem; }
  .row .checkout--kco__freight-options, .alternate-payment-wrapper {
    padding-left: 2.14286rem; }
  .submit-freight-details {
    width: 100%; }
  .checkout--kco__corporate-link {
    margin-bottom: 0; } }

/**
 * Comments styling, courtesy of
 * http://refills.bourbon.io/
 */
.comment {
  display: table;
  width: 100%;
  margin-bottom: 1.5rem;
  padding-bottom: 1em;
  border-bottom: 1px solid rgba(51, 51, 51, 0.1); }
  .comment:hover .comment-avatar {
    border: 1px solid #919191; }

.comment-image,
.comment-content {
  display: table-cell;
  vertical-align: top; }

.comment-image {
  padding-right: 0.7em; }
  .comment-image img {
    width: 30px;
    height: auto;
    display: block;
    max-width: none; }

/**
 * Circular avatars
 * Courtesy of http://codepen.io/bradenhamm/pen/yDuka
 */
.comment-avatar {
  line-height: 0;
  /* remove line-height */
  display: inline-block;
  /* circle wraps image */
  border-radius: 50%;
  /* relative value */
  -webkit-transition: border 300ms ease;
  -moz-transition: border 300ms ease;
  transition: border 300ms ease;
  height: 38px;
  width: 38px;
  border: 1px solid #ddd;
  padding: 3px; }

.comment-avatar img {
  border-radius: 50%;
  /* relative value for
                   adjustable image size */ }

.comment-content {
  width: 100%; }
  .comment-content .comment-content__title {
    font-size: 1rem;
    margin-bottom: .5em; }
  .comment-content p {
    margin-bottom: .5em; }
  .comment-content .comment-detail {
    font-style: italic;
    font-size: .9em;
    color: rgba(51, 51, 51, 0.5); }

.comment-star-rating i {
  color: #DB311B;
  margin-right: -2px; }

.comment-star-rating {
  display: inline;
  margin: 0; }
  .comment-star-rating figcaption {
    display: inline; }

.comment-star-rating-count {
  display: none; }

.comment-detail .comment-star-rating {
  opacity: .5; }
  .comment-detail .comment-star-rating figcaption {
    display: none; }

.comments-form {
  padding-top: 1rem; }

.comments-form-wrapper {
  padding-bottom: 1rem; }

.comments-form-error:empty,
.comment-form-validation-errors:empty {
  display: none; }

.comments-guidelines {
  font-size: 1rem;
  border-top: 1px solid #dddddd;
  padding-top: 2rem; }
  .comments-guidelines p, .comments-guidelines li {
    font-size: 1rem; }

#produkt_anmeldelser_form_validert {
  width: 100%;
  max-width: none; }

@media only screen and (min-width: 45.063em) {
  .comment-image img {
    width: 60px; }
  .comment-avatar {
    height: 68px;
    width: 68px; } }

.cookie_notice {
  background-color: #000;
  position: fixed;
  width: 390px;
  z-index: 9999999;
  max-height: 95%;
  right: 20px;
  bottom: 20px; }

.cookie_notice_area {
  margin-left: 5%;
  margin-right: 5%;
  margin-bottom: 5%; }

#cookie_notice_text {
  padding: 1rem 0;
  color: white; }

#cookie_buttons a {
  padding: 8px; }
  #cookie_buttons a:visited, #cookie_buttons a:active {
    color: white; }
  #cookie_buttons a:hover {
    text-decoration: underline;
    color: white; }

#cookie_buttons span {
  margin-bottom: 0; }

.equal-height-columns {
  display: block; }
  .flexbox .equal-height-columns {
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap; }
  .equal-height-columns [class*="column"] + [class*="column"]:last-child {
    float: left; }

.equal-height-column {
  display: block;
  float: left;
  width: 100%;
  padding: 1.07143rem; }
  .flexbox .equal-height-column {
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex; }

.equal-height-column-innerwrap {
  padding: 0;
  width: 100%;
  display: block;
  height: 100%; }

.flexbox .equal-height-column-innerwrap,
.no-js .equal-height-column-innerwrap {
  height: auto; }

.equal-height-column__image {
  width: 100%;
  height: 250px;
  text-align: center;
  margin-bottom: .75rem; }
  .equal-height-column__image img {
    max-height: 250px;
    max-width: 100%;
    vertical-align: middle; }

.equal-height-column__readon {
  margin-left: -1.07143rem; }

/* 2 columns */
@media only screen and (min-width: 30em) {
  .equal-height-column {
    width: 50%; }
  .equal-height-column__image {
    width: 100%;
    height: 200px; }
    .equal-height-column__image img {
      max-height: 200px; } }

/* 3 columns */
@media only screen and (min-width: 48em) {
  .equal-height-column {
    width: 33.33333%; } }

/* 4 columns */
@media only screen and (min-width: 64em) {
  .no-split-menu .equal-height-column {
    width: 25%; } }

/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
.fancybox-wrap,
.fancybox-skin,
.fancybox-outer,
.fancybox-inner,
.fancybox-image,
.fancybox-wrap iframe,
.fancybox-wrap object,
.fancybox-nav,
.fancybox-nav span,
.fancybox-tmp {
  padding: 0;
  margin: 0;
  border: 0;
  outline: none;
  vertical-align: top; }

.fancybox-wrap {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 8020; }

.fancybox-skin {
  position: relative;
  background: #f9f9f9;
  color: #444;
  text-shadow: none;
  -moz-border-radius: 4px;
  border-radius: 4px; }

.fancybox-opened {
  z-index: 8030; }

.fancybox-opened .fancybox-skin {
  -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); }

.fancybox-outer, .fancybox-inner {
  position: relative; }

.fancybox-inner {
  overflow: hidden; }

.fancybox-type-iframe .fancybox-inner {
  -webkit-overflow-scrolling: touch; }

.fancybox-error {
  color: #444;
  margin: 0;
  padding: 15px;
  white-space: nowrap; }

.fancybox-image, .fancybox-iframe {
  display: block;
  width: 100%;
  height: 100%; }

.fancybox-image {
  max-width: 100%;
  max-height: 100%; }

#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
  background-image: url("/assets/img/fancybox_sprite.png"); }

#fancybox-loading {
  position: fixed;
  top: 50%;
  left: 50%;
  margin-top: -22px;
  margin-left: -22px;
  background-position: 0 -108px;
  opacity: 0.8;
  cursor: pointer;
  z-index: 8060; }

#fancybox-loading div {
  width: 44px;
  height: 44px;
  background: url("/assets/img/fancybox_loading.gif") center center no-repeat; }

.fancybox-close {
  position: absolute;
  top: -18px;
  right: -18px;
  width: 36px;
  height: 36px;
  cursor: pointer;
  z-index: 8040; }

.fancybox-nav {
  position: absolute;
  top: 0;
  width: 40%;
  height: 100%;
  cursor: pointer;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  z-index: 8040; }

.fancybox-prev {
  left: 0; }

.fancybox-next {
  right: 0; }

.fancybox-nav span {
  position: absolute;
  top: 50%;
  width: 36px;
  height: 34px;
  margin-top: -18px;
  cursor: pointer;
  z-index: 8040;
  visibility: hidden; }

.fancybox-prev span {
  left: 10px;
  background-position: 0 -36px; }

.fancybox-next span {
  right: 10px;
  background-position: 0 -72px; }

.fancybox-nav:hover span {
  visibility: visible; }

.fancybox-tmp {
  position: absolute;
  top: -99999px;
  left: -99999px;
  visibility: hidden;
  max-width: 99999px;
  max-height: 99999px;
  overflow: visible !important; }

/* Overlay helper */
.fancybox-lock {
  overflow: hidden !important;
  width: auto; }

.fancybox-lock body {
  overflow: hidden !important; }

.fancybox-lock-test {
  overflow-y: hidden !important; }

.fancybox-overlay {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  display: none;
  z-index: 8010;
  background-color: rgba(0, 0, 0, 0.75); }

.fancybox-overlay-fixed {
  position: fixed;
  bottom: 0;
  right: 0; }

.fancybox-lock .fancybox-overlay {
  overflow: auto;
  overflow-y: scroll; }

/* Title helper */
.fancybox-title {
  visibility: hidden;
  position: relative;
  text-shadow: none;
  z-index: 8050; }

.fancybox-opened .fancybox-title {
  visibility: visible; }

.fancybox-title-float-wrap {
  position: absolute;
  bottom: 0;
  right: 50%;
  margin-bottom: -35px;
  z-index: 8050;
  text-align: center; }

.fancybox-title-float-wrap .child {
  display: inline-block;
  margin-right: -100%;
  padding: 2px 20px;
  background: transparent;
  /* Fallback for web browsers that doesn't support RGBa */
  background: rgba(0, 0, 0, 0.8);
  -moz-border-radius: 15px;
  border-radius: 15px;
  text-shadow: 0 1px 2px #222;
  color: #FFF;
  font-weight: bold;
  line-height: 24px;
  white-space: nowrap; }

.fancybox-title-outside-wrap {
  position: relative;
  margin-top: 10px;
  color: #fff; }

.fancybox-title-inside-wrap {
  padding-top: 10px; }

.fancybox-title-over-wrap {
  position: absolute;
  bottom: 0;
  left: 0;
  color: #fff;
  padding: 10px;
  background: #000;
  background: rgba(0, 0, 0, 0.8); }

/*Retina graphics!*/
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) {
  #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
    background-image: url("/assets/img/fancybox_sprite_2x.png");
    background-size: 44px 152px;
    /*The size of the normal image, half the size of the hi-res image*/ }
  #fancybox-loading div {
    background-image: url("/assets/img/fancybox_loading_2x.gif");
    background-size: 24px 24px;
    /*The size of the normal image, half the size of the hi-res image*/ } }

label {
  color: inherit; }

label > input[type=checkbox] {
  margin-right: 0.57143rem; }

.error-msg {
  color: #e03114;
  line-height: 1.5em;
  padding-bottom: .5em; }

input[type=search] {
  padding-left: 0;
  text-indent: .5rem; }

/* We use this to get basic styling on all basic form elements */
input[type="text"],
input[type="password"],
input[type="date"],
input[type="datetime"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="time"],
input[type="url"],
textarea,
select {
  border-radius: 0; }

/* Foundation hardcodes radius to 0, this fixes it */
input[type="submit"] {
  border-radius: 0; }

.prefix-radius.row.collapse input, .prefix-radius.row.collapse textarea, .prefix-radius.row.collapse select {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 0;
  -webkit-border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-top-right-radius: 0; }

.postfix-radius.row.collapse input, .postfix-radius.row.collapse textarea, .postfix-radius.row.collapse select {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 0;
  -webkit-border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-left-radius: 0; }

@-moz-document url-prefix() {
  select {
    background-image: none; } }

.klarna_boks {
  margin-bottom: 1rem;
  max-height: 100px;
  overflow: hidden; }

.klarna-info .klarna-info__badge {
  float: right;
  margin-left: .5rem; }

.klarna-widget {
  height: 70px; }

.setting__form {
  position: relative;
  z-index: 100; }
  .setting__form i.fa {
    width: .9rem; }

.setting__button:focus {
  outline: none; }

.setting__select {
  display: none;
  position: absolute;
  opacity: .3;
  width: 15rem;
  z-index: 2;
  background-color: #fff;
  border: 1px solid #dddddd;
  padding: 1rem;
  -ms-transform: translate(0, -1rem) scale3d(0.9, 0.9, 0.9);
  -webkit-transform: translate3d(0, -1rem, 0) scale3d(0.9, 0.9, 0.9);
  -moz-transform: translate3d(0, -1rem, 0) scale3d(0.9, 0.9, 0.9);
  -ms-transform: translate3d(0, -1rem, 0) scale3d(0.9, 0.9, 0.9);
  transform: translate3d(0, -1rem, 0) scale3d(0.9, 0.9, 0.9);
  -webkit-transition: opacity 150ms, -webkit-transform 150ms ease;
  -webkit-transition-delay: ease, 0s;
  -moz-transition: opacity 150ms ease, -moz-transform 150ms ease;
  -o-transition: opacity 150ms ease, -o-transform 150ms ease;
  transition: opacity 150ms ease, transform 150ms ease; }
  .setting__select > * {
    margin-bottom: 0; }
  .setting__select select {
    float: left;
    width: 65%; }
  .setting__select input[type=submit] {
    float: right;
    width: 30%;
    line-height: 2.64286rem;
    height: 2.64286rem;
    padding: 0 .5rem; }

#language-show,
#currency-show {
  display: block; }

#language-close,
#currency-close {
  display: none; }

#language-show:target,
#currency-show:target {
  display: block; }

#language-show:target + #language-close,
#currency-show:target + #currency-close {
  display: none; }

#language-close:target,
#currency-close:target {
  display: block; }

#language-close:target + #language-show,
#currency-close:target + #currency-show {
  display: none; }

#language-close:target ~ #language,
#currency-close:target ~ #currency {
  display: block;
  opacity: 1;
  -ms-transform: translate(0, 0) scale3d(1, 1, 1);
  -webkit-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
  -moz-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
  -ms-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
  transform: translate3d(0, 0, 0) scale3d(1, 1, 1); }

.js-nav #language,
.js-nav #currency {
  display: none; }

.pagination-wrapper {
  padding-top: 2.14286rem; }

.page-divider, .shop-features {
  padding: 2.75rem 0;
  text-align: center;
  clear: both; }

.page-divider__header-wrapper {
  text-align: center;
  position: relative; }
  .page-divider__header-wrapper:after {
    position: absolute;
    top: 50%;
    content: "";
    left: 0;
    right: 0;
    height: 1px;
    display: block;
    z-index: 1;
    background-color: #e6e6e6; }

.page-divider__header {
  background-color: #ffffff;
  display: inline-block;
  position: relative;
  z-index: 2;
  padding: 0 0.71429rem;
  margin: 0; }

#knappe-menu_kjop {
  list-style: none;
  margin: 0; }
  #knappe-menu_kjop li {
    display: inline-block;
    margin-right: 1rem; }

.frontpage__custom-content {
  margin-bottom: 2.14286rem; }

.receipt__header {
  float: left; }

.button.receipt__print {
  float: right;
  margin-bottom: 0;
  margin-top: .15rem; }

.receipt__thanks {
  font-weight: bold; }

.receipt__order-overview,
.receipt__customer-info {
  width: 100%; }

@media only screen and (min-width: 45.063em) {
  .receipt__print {
    margin-top: .5rem; }
  .receipt__order-overview,
  .receipt__customer-info {
    width: auto;
    min-width: 60%; } }

@media only screen and (min-width: 64.063em) {
  .receipt__order-overview,
  .receipt__customer-info {
    min-width: 50%; } }

html.placeholder .has-placeholder label {
  display: none; }

.login-column, .register-column {
  text-align: center; }
  .login-column > form, .register-column > form {
    display: inline-block;
    text-align: left;
    max-width: 360px;
    width: 100%; }

.icon-log-out a:after {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'apex' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ""; }

.account-tabs {
  margin-bottom: 1rem !important; }
  .account-tabs .tab-title a {
    padding: 0 .6rem;
    line-height: 2.85714rem; }
    .touch .account-tabs .tab-title a {
      line-height: 3.14286rem; }

.edit-account-page fieldset,
.gift-certificate-page fieldset {
  border-right: none;
  border-left: none;
  border-bottom: none;
  padding-left: 0;
  padding-right: 0;
  margin-bottom: 0; }

.edit-account-page form .row .row,
.gift-certificate-page form .row .row {
  width: auto;
  margin-left: -1.07143rem;
  margin-right: -1.07143rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none; }
  .edit-account-page form .row .row:before, .edit-account-page form .row .row:after,
  .gift-certificate-page form .row .row:before,
  .gift-certificate-page form .row .row:after {
    content: " ";
    display: table; }
  .edit-account-page form .row .row:after,
  .gift-certificate-page form .row .row:after {
    clear: both; }
  .edit-account-page form .row .row .column,
  .edit-account-page form .row .row .columns,
  .gift-certificate-page form .row .row .column,
  .gift-certificate-page form .row .row .columns {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    float: left; }

.edit-account-page form .control-group .control-group,
.gift-certificate-page form .control-group .control-group {
  width: 100%; }

.edit-account__buttons {
  list-style: none;
  margin: 0; }
  .edit-account__buttons .icon {
    float: left;
    display: inline-block;
    margin-top: 2px;
    padding-right: .5rem; }

.kasse_one_logginn_error {
  display: block;
  color: #e03114;
  margin-bottom: 1.5rem; }

@media only screen and (max-width: 45em) {
  .login-column {
    border-right: 1px solid #dddddd; }
  .icon-log-out a span {
    display: none; }
  .tabs .icon-log-out > a {
    background: none; } }

@media only screen and (min-width: 27em) {
  .tabs .tab-title > a {
    padding-right: 1rem;
    padding-left: 1rem; }
  .tabs .icon-log-out > a {
    background: none;
    padding-right: 0; }
    .tabs .icon-log-out > a:after {
      padding-left: .5rem; }
    .tabs .icon-log-out > a:hover {
      background: none;
      color: #e03114; }
    .tabs .icon-log-out > a span {
      display: inline; } }

@media only screen and (min-width: 45.063em) {
  .edit-account__buttons {
    text-align: right; }
    .edit-account__buttons .icon {
      float: none;
      display: inline;
      margin-top: 0;
      padding-right: 0; } }

#wishlist_table {
  min-width: 100%; }

.wishlist__product-name p:last-child {
  margin-bottom: 0; }

.wishlist__button-cell {
  vertical-align: middle; }
  .wishlist__button-cell input[type=submit] {
    margin-bottom: 0; }

.wishlist__delete,
.wishlist__delete:hover {
  color: #e03114; }

@media only screen and (min-width: 45.063em) {
  #wishlist_table {
    min-width: 80%; } }

@media only screen and (min-width: 64.063em) {
  #wishlist_table {
    min-width: 60%; } }

.product__images.invisible {
  visibility: hidden; }
  .product__images.invisible.slider-loaded {
    visibility: visible; }

.product__main-images {
  text-align: center; }
  .product__main-images img {
    max-width: 100%;
    max-height: 30rem; }
  .product__main-images ul {
    list-style-type: none;
    margin: 0; }
  .product__main-images .readon-icon__container {
    display: none; }
  .product__main-images .bx-caption {
    font-size: 1rem;
    text-align: left;
    font-style: italic;
    line-height: 1.5;
    padding: 0.5rem 0; }
  .product__main-images .bx-prev {
    left: 0; }
  .product__main-images .bx-next {
    right: 0; }

.product__breadcrumbs .current {
  display: none; }

.product__breadcrumbs .breadcrumbs {
  padding: 0;
  height: auto; }

.product__meta-numbers {
  font-size: 0.85714rem;
  margin-bottom: 0.92857rem;
  float: left;
  width: 100%; }
  .product__meta-numbers .comment-star-rating .icon-star:before,
  .product__meta-numbers .comment-star-rating .icon-star-half:before,
  .product__meta-numbers .comment-star-rating .icon-star-outline:before {
    vertical-align: -1px; }
  .product__meta-numbers .comment-star-rating .comment-star-rating-avg {
    display: none; }
  .product__meta-numbers .comment-star-rating .comment-star-rating-count {
    display: inline; }
  .product__meta-numbers > * {
    padding-bottom: .5rem;
    float: left; }

.product__art-nr-label,
.product__ean-label {
  padding-right: .25rem; }

.product__meta-numbers__value {
  padding-right: 1rem; }

.product__aside-addon {
  margin-bottom: 1.42857rem; }

.product .price {
  font-size: 1.71429rem;
  font-weight: bold;
  font-family:  'Noto Sans', sans-serif;
  display: block;
  clear: both; }

.product .price--original {
  display: block;
  clear: both; }
  .product .price--original .currency {
    display: none; }

.product .vat-info,
.product .price--original {
  line-height: 1.5; }

.product .discount {
  display: none; }

.product .vat-info {
  font-size: 1rem; }

.product .currency {
  padding-right: .5rem; }

.product .price__saleprice-text {
  padding-right: .5rem; }

.product .offers {
  margin-bottom: 1.42857rem; }

.product__buy-button.button i {
  padding-right: .5rem; }

.product__stockstatus {
  font-size: 1rem;
  margin-bottom: 1.42857rem;
  line-height: 1.71429rem; }

.product__stockstatus__number {
  color: #398439; }

.product__stockstatus--sold-out .product__stockstatus__number {
  color: #e03114; }

.product__stockstatus--has-extrainfo {
  line-height: normal; }

.product__main-images__link {
  display: block;
  width: 100%;
  height: 100%;
  outline: none; }
  .product__main-images__link:hover {
    cursor: default; }

.product__quantum-discounts {
  width: 100%; }

.product__attributes,
.product__extrafield {
  width: auto;
  margin-left: -1.07143rem;
  margin-right: -1.07143rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none; }
  .product__attributes:before, .product__attributes:after,
  .product__extrafield:before,
  .product__extrafield:after {
    content: " ";
    display: table; }
  .product__attributes:after,
  .product__extrafield:after {
    clear: both; }

.product__extrafield__wrap {
  padding-left: 1.07143rem;
  padding-right: 1.07143rem;
  width: 100%;
  float: left; }

.product__attribute,
.product__quantity {
  padding-left: 1.07143rem;
  padding-right: 1.07143rem;
  width: 50%;
  float: left; }

.product__extrafield__priceinfo {
  font-size: 1rem; }

.product__related-products {
  padding-top: 2.14286rem;
  padding-bottom: 2.14286rem; }

@media only screen and (max-width: 45em) {
  .product__main-images .bx-caption {
    text-align: center; } }

@media only screen and (max-width: 45em) {
  .product__imagegallery {
    list-style-type: none;
    margin: 0;
    text-align: center; }
    .product__imagegallery li {
      display: inline-block; }
    .product__imagegallery .th {
      box-shadow: none;
      height: 3.14286rem;
      width: 3.14286rem;
      line-height: 3.14286rem;
      border: none;
      text-decoration: none; }
      .product__imagegallery .th:hover, .product__imagegallery .th:focus {
        outline: none; }
        .product__imagegallery .th:hover:after, .product__imagegallery .th:focus:after {
          color: #000000;
          opacity: .75;
          font-size: 1rem; }
      .product__imagegallery .th > * {
        display: none; }
      .product__imagegallery .th:after {
        /* use !important to prevent issues with browser extensions that change fonts */
        font-family: 'apex' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: "";
        color: #000;
        opacity: .25;
        height: 3.14286rem;
        width: 3.14286rem;
        line-height: 3.14286rem;
        text-align: center;
        font-size: .8rem;
        -webkit-transition: font-size 200ms ease;
        -moz-transition: font-size 200ms ease;
        transition: font-size 200ms ease; }
      .product__imagegallery .th.active:after {
        opacity: .75;
        font-size: 1rem; } }

@media only screen and (max-width: 45em) {
  .product__title {
    padding-top: 1rem; } }

@media only screen and (min-width: 27em) and (max-width: 45em) {
  .product__info,
  .product__about,
  .product__imagegallery__wrapper,
  .product__related-products {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    width: 83.33333%;
    float: left; }
  .product .price {
    font-size: 1.71429rem; }
  .product__stockstatus:not(.product__stockstatus--has-extrainfo) {
    line-height: 1.71429rem; } }

@media only screen and (min-width: 45.063em) {
  .product__info {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    width: 50%;
    float: left; }
  .product__about,
  .product__imagegallery__wrapper {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    width: 100%;
    float: left; }
  .product__images,
  .product__info,
  .product__main-images {
    margin-bottom: 2.14286rem; }
  .product__breadcrumbs .current {
    display: list-item; }
  .product__main-images img {
    width: auto;
    max-width: 100%; }
  .product__main-images .readon-icon__container {
    display: block; }
  .product__main-images__link:hover {
    cursor: pointer; }
  .product__imagegallery {
    display: block;
    padding: 0;
    margin: 0; }
    .product__imagegallery:before, .product__imagegallery:after {
      content: " ";
      display: table; }
    .product__imagegallery:after {
      clear: both; }
    .product__imagegallery > li {
      display: block;
      height: auto;
      float: left;
      padding: 0 1.07143rem 2.14286rem; }
    .product__imagegallery > li {
      width: 25%;
      padding: 0 1.07143rem 2.14286rem;
      list-style: none; }
      .product__imagegallery > li:nth-of-type(1n) {
        clear: none; }
      .product__imagegallery > li:nth-of-type(4n+1) {
        clear: both; }
      .product__imagegallery > li:nth-of-type(4n+1) {
        padding-left: 0rem;
        padding-right: 1.60714rem; }
      .product__imagegallery > li:nth-of-type(4n+2) {
        padding-left: 0.53571rem;
        padding-right: 1.07143rem; }
      .product__imagegallery > li:nth-of-type(4n+3) {
        padding-left: 1.07143rem;
        padding-right: 0.53571rem; }
      .product__imagegallery > li:nth-of-type(4n) {
        padding-left: 1.60714rem;
        padding-right: 0rem; }
  li.product__imagegallery__imagewrap {
    height: 5.75rem; }
    li.product__imagegallery__imagewrap img {
      max-height: 100%; }
    li.product__imagegallery__imagewrap .th {
      height: 100%;
      width: 100%;
      text-align: center;
      opacity: .8; }
      li.product__imagegallery__imagewrap .th:hover, li.product__imagegallery__imagewrap .th:focus, li.product__imagegallery__imagewrap .th.active {
        opacity: 1; }
      li.product__imagegallery__imagewrap .th:after {
        display: none; }
  .product__title {
    font-size: 2.14286rem; }
  .product__ingress {
    font-size: 1rem; }
  .product__stockstatus:not(.product__stockstatus--has-extrainfo) {
    line-height: 1.5rem; }
  .product__buy-button.button,
  .product__wishlist-button.button {
    font-size: 1.14286rem;
    border-radius: 0; } }

@media only screen and (min-width: 64.063em) {
  .product__title {
    font-size: 3.14286rem; }
  .product__ingress {
    font-size: 1rem; }
  .product__stockstatus:not(.product__stockstatus--has-extrainfo) {
    line-height: 1.71429rem; }
  .product__about.medium-uncentered:last-child {
    float: right; }
  .product__imagegallery {
    display: block;
    padding: 0;
    margin: 0; }
    .product__imagegallery:before, .product__imagegallery:after {
      content: " ";
      display: table; }
    .product__imagegallery:after {
      clear: both; }
    .product__imagegallery > li {
      display: block;
      height: auto;
      float: left;
      padding: 0 1.07143rem 2.14286rem; }
    .product__imagegallery > li {
      width: 20%;
      padding: 0 1.07143rem 2.14286rem;
      list-style: none; }
      .product__imagegallery > li:nth-of-type(1n) {
        clear: none; }
      .product__imagegallery > li:nth-of-type(5n+1) {
        clear: both; }
      .product__imagegallery > li:nth-of-type(5n+1) {
        padding-left: 0rem;
        padding-right: 1.71429rem; }
      .product__imagegallery > li:nth-of-type(5n+2) {
        padding-left: 0.42857rem;
        padding-right: 1.28571rem; }
      .product__imagegallery > li:nth-of-type(5n+3) {
        padding-left: 0.85714rem;
        padding-right: 0.85714rem; }
      .product__imagegallery > li:nth-of-type(5n+4) {
        padding-left: 1.28571rem;
        padding-right: 0.42857rem; }
      .product__imagegallery > li:nth-of-type(5n) {
        padding-left: 1.71429rem;
        padding-right: 0rem; }
  li.product__imagegallery__imagewrap {
    height: 6rem; }
  .product__attribute,
  .product__quantity {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    width: 33.33333%;
    float: left; }
  .product__extrafield__wrap {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    width: 66.66667%;
    float: left; }
  .product .product__buy-button.button,
  .product .product__wishlist-button.button {
    font-size: 1.57143rem; } }

.product-search {
  position: relative;
  z-index: 200; }

.product-search-results {
  opacity: .95;
  position: absolute;
  width: 100%;
  background-color: #ffffff;
  z-index: 200;
  border: 1px solid #dddddd;
  visibility: visible;
  -webkit-transition: all 0.25s ease;
  -moz-transition: all 0.25s ease;
  transition: all 0.25s ease; }
  .product-search-results .product-search__output {
    margin: 0;
    list-style: none;
    padding: 0.25rem 0; }
  .product-search-results.is-hidden {
    opacity: 0;
    display: block;
    -webkit-transform: rotateX(-90deg) scale(0.8);
    -moz-transform: rotateX(-90deg) scale(0.8);
    -ms-transform: rotateX(-90deg) scale(0.8);
    transform: rotateX(-90deg) scale(0.8);
    -webkit-transform-origin: 50% 0;
    -moz-transform-origin: 50% 0;
    -ms-transform-origin: 50% 0;
    -o-transform-origin: 50% 0;
    transform-origin: 50% 0; }

.product-search__no-hits:not(.is-hidden) + .product-search__container {
  display: none !important; }

.product-search__element a {
  padding: 0.25rem 1rem;
  display: block;
  width: 100%; }
  .product-search__element a:hover {
    color: white !important;
    background-color: #e03114 !important; }
  html.touch .product-search__element a {
    padding: 0.82143rem 1rem; }

.product-search__extra-hits {
  margin: 0; }
  .product-search__extra-hits a {
    line-height: 2rem;
    display: block;
    width: 100%;
    margin: 0;
    padding: 0.25rem 1rem; }
    html.touch .product-search__extra-hits a {
      padding: 1.32143rem 1rem; }

.product-search__no-hits {
  margin: 0;
  padding: 0.25rem 1rem;
  color: #757575; }

.rating {
  position: relative;
  height: 3.14286rem;
  margin-bottom: 1rem; }
  .rating label.star {
    position: absolute;
    left: 0;
    top: 0;
    color: gold;
    display: inline-block;
    font-size: 1.57143rem !important;
    width: 3.14286rem;
    height: 3.14286rem;
    line-height: 3.14286rem;
    overflow: hidden;
    text-align: center;
    margin: 0;
    z-index: 4; }
  .rating input.star-checkbox {
    position: absolute;
    width: 3.14286rem;
    height: 3.14286rem;
    left: 0;
    right: 0;
    outline: none;
    z-index: 1; }
  .rating .rating-checkbox-hider {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #ffffff;
    z-index: 2; }
    .resp-tabs-container .rating .rating-checkbox-hider {
      background-color: #f7f7f7; }
  .rating label.star-2,
  .rating input.star-checkbox-2 {
    left: 3.14286rem; }
  .rating label.star-3,
  .rating input.star-checkbox-3 {
    left: 6.28571rem; }
  .rating label.star-4,
  .rating input.star-checkbox-4 {
    left: 9.42857rem; }
  .rating label.star-5,
  .rating input.star-checkbox-5 {
    left: 12.57143rem; }
  .rating label.star-6,
  .rating input.star-checkbox-6 {
    left: 15.71429rem; }
  .rating .stars-label {
    border: none;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; }
  .rating label:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'apex' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: ""; }
  .rating label:hover,
  .rating input:checked ~ label:hover {
    color: gold; }

.readon-icon__container {
  opacity: 0;
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.6);
  text-align: center;
  -webkit-transition: opacity 150ms ease;
  -moz-transition: opacity 150ms ease;
  transition: opacity 150ms ease; }
  .touch .readon-icon__container {
    display: none; }

.readon-icon {
  -ms-transform: translate(0, 0) scale3d(0.5, 0.5, 0.5);
  -webkit-transform: translate3d(0, 0, 0) scale3d(0.5, 0.5, 0.5);
  -moz-transform: translate3d(0, 0, 0) scale3d(0.5, 0.5, 0.5);
  -ms-transform: translate3d(0, 0, 0) scale3d(0.5, 0.5, 0.5);
  transform: translate3d(0, 0, 0) scale3d(0.5, 0.5, 0.5);
  -webkit-transition: opacity 200ms, -webkit-transform 150ms ease;
  -webkit-transition-delay: ease, 0s;
  -moz-transition: opacity 200ms ease, -moz-transform 150ms ease;
  -o-transition: opacity 200ms ease, -o-transform 150ms ease;
  transition: opacity 200ms ease, transform 150ms ease;
  position: relative;
  vertical-align: middle;
  line-height: 3.14286rem;
  width: 3.14286rem;
  height: 3.14286rem;
  font-size: 1.25rem;
  color: #fff;
  opacity: .6;
  background-color: #000;
  display: inline-block;
  -ms-border-radius: 1.57143rem;
  border-radius: 1.57143rem; }
  .readon-icon:hover {
    opacity: .9; }

.readon-icon__wrapper {
  position: relative; }
  .readon-icon__wrapper:hover, .readon-icon__wrapper:focus {
    outline: none; }
    .readon-icon__wrapper:hover .readon-icon__container, .readon-icon__wrapper:focus .readon-icon__container {
      opacity: 1; }
    .readon-icon__wrapper:hover .readon-icon, .readon-icon__wrapper:focus .readon-icon {
      -ms-transform: translate(0, 0) scale3d(1, 1, 1);
      -webkit-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
      -moz-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
      -ms-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
      transform: translate3d(0, 0, 0) scale3d(1, 1, 1); }

.shop-features {
  padding-top: 0; }

.shop-feature {
  text-align: center;
  vertical-align: top;
  display: inline-block;
  margin-bottom: 1.375rem; }

.shop-feature__header {
  font-size: 1.28571rem;
  font-weight: normal;
  margin-top: 6rem; }

.shop-feature__subheader {
  margin: 0;
  position: relative;
  margin-top: 1.3rem;
  font-size: 0.92857rem;
  padding-top: .8rem; }

.shop-feature__icon {
  display: block;
  line-height: 5rem;
  background-color: #ededed;
  border-radius: 50%;
  width: 5rem;
  height: 5rem;
  text-align: center;
  position: absolute;
  left: 50%;
  top: 0;
  margin-left: -2.5rem; }
  .shop-feature__icon:before {
    vertical-align: 0;
    color: #000; }

a.shop-feature--linked {
  text-decoration: none; }
  a.shop-feature--linked p {
    color: #333333; }

@media only screen and (min-width: 27em) {
  .shop-feature {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    width: 50%;
    float: none; } }

@media only screen and (min-width: 45.063em) {
  .shop-feature {
    padding-left: 1.07143rem;
    padding-right: 1.07143rem;
    width: 33.33333%;
    float: none;
    float: none !important; } }

.slider {
  margin: 0;
  list-style: none;
  height: 100%; }

.slider__wrapper {
  margin-bottom: 2.14286rem;
  margin-right: -1.07143rem;
  margin-left: -1.07143rem; }

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

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

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

.slide:not(:first-child) {
  display: none; }
  .bx-wrapper .slide:not(:first-child) {
    display: inherit; }

.slide img {
  vertical-align: middle; }

@media only screen and (min-width: 90.063em) {
  .slider__wrapper {
    margin-right: 0;
    margin-left: 0; } }

/* SPINNER, used in checkout while cart is loading for instance */
#spinner-container {
  position: relative;
  width: 100%;
  height: 120px; }

html.lt-ie10 #spinner-container {
  display: none; }

#spinner {
  position: absolute;
  left: 50%;
  margin-left: -30px;
  bottom: 0; }

#floatingCirclesG {
  position: relative;
  width: 60px;
  height: 60px;
  -webkit-transform: scale(0.6);
  -moz-transform: scale(0.6);
  -ms-transform: scale(0.6);
  transform: scale(0.6); }

.f_circleG {
  position: absolute;
  background-color: #FFFFFF;
  height: 11px;
  width: 11px;
  border-radius: 5px;
  -webkit-animation-name: f_fadeG;
  -moz-animation-name: f_fadeG;
  animation-name: f_fadeG;
  -webkit-animation-duration: 0.8s;
  -moz-animation-duration: 0.8s;
  animation-duration: 0.8s;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-direction: normal;
  -moz-animation-direction: normal;
  animation-direction: normal; }

#frotateG_01 {
  left: 0;
  top: 25px;
  -webkit-animation-delay: 0.3s;
  -moz-animation-delay: 0.3s;
  animation-delay: 0.3s; }

#frotateG_02 {
  left: 7px;
  top: 7px;
  -webkit-animation-delay: 0.4s;
  -moz-animation-delay: 0.4s;
  animation-delay: 0.4s; }

#frotateG_03 {
  left: 25px;
  top: 0;
  -webkit-animation-delay: 0.5s;
  -moz-animation-delay: 0.5s;
  animation-delay: 0.5s; }

#frotateG_04 {
  right: 7px;
  top: 7px;
  -webkit-animation-delay: 0.6s;
  -moz-animation-delay: 0.6s;
  animation-delay: 0.6s; }

#frotateG_05 {
  right: 0;
  top: 25px;
  -webkit-animation-delay: 0.7s;
  -moz-animation-delay: 0.7s;
  animation-delay: 0.7s; }

#frotateG_06 {
  right: 7px;
  bottom: 7px;
  -webkit-animation-delay: 0.8s;
  -moz-animation-delay: 0.8s;
  animation-delay: 0.8s; }

#frotateG_07 {
  left: 25px;
  bottom: 0;
  -webkit-animation-delay: 0.9s;
  -moz-animation-delay: 0.9s;
  animation-delay: 0.9s; }

#frotateG_08 {
  left: 7px;
  bottom: 7px;
  -webkit-animation-delay: 1s;
  -moz-animation-delay: 1s;
  animation-delay: 1s; }

@-moz-keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

@-webkit-keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

@-ms-keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

@-o-keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

@keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

table td.pris,
table th.pris {
  text-align: right; }

tr.sum {
  border-top: 1px solid #333333;
  border-bottom: 3px double #333333; }

table tr.even, table tr.alt, table tr:nth-of-type(even) {
  color: #333333; }

.tabs {
  border-bottom: 1px solid #000; }

.js-tabs {
  padding-top: 2rem; }

.resp-tabs-list {
  margin: 0px;
  padding: 0px;
  list-style-type: none; }

.resp-tab-item {
  font-family:  'Noto Sans', sans-serif;
  display: inline-block;
  cursor: pointer;
  float: left;
  margin-right: 2px; }

.resp-tab-item,
.resp-accordion {
  outline: none;
  color: #1a1a1a;
  background-color: #e6e6e6;
  padding: 0 1.5rem;
  line-height: 3.14286rem;
  margin-bottom: 0;
  -webkit-transition: all 200ms ease;
  -moz-transition: all 200ms ease;
  transition: all 200ms ease; }
  .resp-tab-item:after,
  .resp-accordion:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'apex' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    padding-left: .5rem;
    display: inline-block;
    -webkit-transition: -webkit-transform;
    -moz-transition: -moz-transform;
    transition: transform; }
  .resp-tab-item:hover, .resp-tab-item:focus,
  .resp-accordion:hover,
  .resp-accordion:focus {
    color: #1a1a1a;
    background-color: #bfbfbf; }

.resp-tabs-container {
  padding: 0;
  background-color: #f7f7f7;
  clear: left; }

.resp-accordion {
  cursor: pointer;
  display: none; }

.resp-tab-content {
  display: none;
  padding: 1.5rem; }
  .resp-tab-content > :last-child {
    margin-bottom: 0; }

.resp-tab-active,
.resp-accordion.resp-tab-active {
  color: white;
  background-color: #000; }
  .resp-tab-active:after,
  .resp-accordion.resp-tab-active:after {
    -webkit-transform: rotatex(180deg);
    -moz-transform: rotatex(180deg);
    -ms-transform: rotatex(180deg);
    transform: rotatex(180deg); }
  .resp-tab-active:hover, .resp-tab-active:focus,
  .resp-accordion.resp-tab-active:hover,
  .resp-accordion.resp-tab-active:focus {
    color: white;
    background-color: #262626; }

.resp-content-active,
.resp-accordion-active {
  display: block; }

.resp-easy-accordion .resp-accordion {
  display: block; }

.resp-jfit {
  width: 100%;
  margin: 0px; }

.resp-tab-content-active {
  display: block; }

/*Here your can change the breakpoint to set the accordion, when screen resolution changed*/
@media only screen and (max-width: 45em) {
  .js-tabs {
    border-top: 1px solid #dddddd; }
  .resp-tabs-list {
    display: none; }
  .resp-accordion {
    display: block;
    padding: 0 1.5rem;
    font-size: 1.14286rem; }
  .resp-vtabs .resp-tabs-container {
    border: none;
    float: none;
    width: 100%;
    min-height: initial;
    clear: none; }
  .resp-accordion-closed {
    display: none !important; } }

@media only screen and (min-width: 45.063em) {
  .resp-tab-content-active {
    border-top: 1px solid #000; } }

@media only screen and (min-width: 64.063em) {
  .js-tabs {
    border-top: 1px solid #dddddd;
    padding-top: 2rem; } }

a.themed-nav {
  color: #333333; }
  a.themed-nav:hover, a.themed-nav:focus, a.themed-nav.active {
    color: #fff;
    background-color: #e03114; }

.subtle, #kasse_one_form .subtaxes, .product__main-images .bx-caption, .product__meta-numbers, .product .price--original, .product .vat-info, .product__stockstatus, .rating input:checked ~ label, .rating label:hover ~ label, .productlist__product .price--original {
  opacity: .6; }

#bestseller__list {
  margin: 0;
  list-style: none; }
  #bestseller__list a:before {
    display: none; }

.bestseller {
  width: 100%;
  padding: .25rem 0; }
  .bestseller .row {
    position: relative; }

.bestseller__title {
  font-size: 0.78571rem;
  font-weight: bold; }
  @media only screen and (min-width: 64.063em) {
    .bestseller__title {
      font-size: 0.85714rem; } }
  @media only screen and (min-width: 90.063em) {
    .bestseller__title {
      font-size: 1rem; } }

.bestseller__image {
  width: 26%; }
  .bestseller__image img {
    width: 100%;
    max-width: 100%; }

.bestseller__price {
  font-size: 1.14286rem;
  font-weight: normal; }

.bestseller__currency {
  font-weight: normal;
  display: none; }

.content-bg .bestseller--on-sale .price {
  color: #DB311B; }

.footer-bg .bestseller--on-sale .price {
  color: #DB311B; }

.bestseller__price--original {
  font-size: 1rem;
  margin-left: 0.5rem;
  text-decoration: line-through; }

.content-bg .block__box__headline-wrapper {
  position: relative;
  text-align: center;
  margin-bottom: .5rem; }
  .content-bg .block__box__headline-wrapper:after {
    position: absolute;
    top: 50%;
    content: "";
    left: 0;
    right: 0;
    height: 1px;
    display: block;
    z-index: 1;
    background-color: #e6e6e6; }

.block__box__headline, .nav-side__header {
  font-size: 1rem;
  font-weight: bold;
  display: inline-block;
  width: 100%; }
  .content-bg .block__box__headline, .content-bg .nav-side__header {
    position: relative;
    padding: 0 0.71429rem;
    z-index: 2;
    background-color: #ffffff; }
  .block__box__headline.primary-color-bg:after, .primary-color-bg.nav-side__header:after {
    -webkit-transform: rotatex(180deg);
    -moz-transform: rotatex(180deg);
    -ms-transform: rotatex(180deg);
    transform: rotatex(180deg); }
  @media only screen and (min-width: 64.063em) {
    .block__box__headline, .nav-side__header {
      font-size: 1.07143rem; } }
  @media only screen and (min-width: 90.063em) {
    .block__box__headline, .nav-side__header {
      font-size: 1.28571rem; } }

.left-block .block__box__headline, .left-block .nav-side__header {
  width: auto; }

#footer .block__box__headline-wrapper {
  margin-bottom: 1rem; }

.block__box li a {
  text-transform: uppercase;
  font-family:  'Noto Sans', sans-serif;
  font-weight: normal;
  font-size: 0.85714rem;
  padding: 0.57143rem 0; }
  @media only screen and (min-width: 64.063em) {
    .block__box li a {
      font-size: 0.92857rem; } }
  @media only screen and (min-width: 90.063em) {
    .block__box li a {
      font-size: 1.07143rem; } }
  .block__box li a:before {
    width: 1rem;
    height: 1rem;
    margin-right: 1rem;
    text-transform: none;
    font-weight: normal;
    font-size: 1rem;
    vertical-align: -10%; }

.block__box li.selected > a,
.block__box li.current > a {
  font-weight: bold; }

.block__box li:not(.parent):not(.level-0) a:before {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'apex' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "";
  font-size: 0.28571rem;
  vertical-align: 30%;
  margin-left: 0.3rem;
  margin-right: 0.7rem;
  opacity: .6; }

/* For the splitmenu, we have to reverse the logic for togglers for items that are already open when the menu loads */
.block__box #splitmenu li.parent.selected > ul {
  display: block; }

.block__box #splitmenu li.parent.selected > a:not(.toggled):before {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  color: #DB311B; }

.block__box #splitmenu li.parent.selected > a.toggled:before {
  -webkit-transform: rotate(0);
  -moz-transform: rotate(0);
  -ms-transform: rotate(0);
  transform: rotate(0); }
  .content-bg .block__box #splitmenu li.parent.selected > a.toggled:before {
    color: #000000; }
  .footer-bg .block__box #splitmenu li.parent.selected > a.toggled:before {
    color: #000000; }

.block__box {
  border-bottom: none; }

.block__box--account .my-account__email-field:before {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'apex' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ""; }

.block__box--account .my-account__password-field:before {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'apex' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "";
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg); }

.block__box--account .my-account__email-field,
.block__box--account .my-account__password-field {
  position: relative; }
  .block__box--account .my-account__email-field label,
  .block__box--account .my-account__password-field label {
    border: none;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; }
  .block__box--account .my-account__email-field input,
  .block__box--account .my-account__password-field input {
    padding-left: 2.3rem; }
  .block__box--account .my-account__email-field:before,
  .block__box--account .my-account__password-field:before {
    position: absolute;
    left: 1.8rem;
    top: .70rem;
    font-size: 1.14286rem; }

.block__box.block__box--contact-info li:not(.parent) a {
  padding: 0; }
  .block__box.block__box--contact-info li:not(.parent) a:before {
    display: none; }

.breadcrumbs {
  margin: 1.42857rem 0 -1rem 0;
  text-align: center;
  padding: 0;
  position: relative;
  overflow: visible; }
  .breadcrumbs:before {
    background: #303030; }
  .breadcrumbs > li {
    float: none;
    display: inline-block;
    line-height: 3.14286rem;
    font-family:  'Noto Sans', sans-serif;
    font-size: 0.85714rem;
    text-transform: uppercase;
    font-weight: bold; }
    .breadcrumbs > li.current {
      display: block; }
    .breadcrumbs > li:before {
      margin-right: 0.6rem; }
    .breadcrumbs > li:last-of-type {
      display: none; }
  .breadcrumbs a {
    line-height: 3.14286rem;
    display: inline-block;
    opacity: .75;
    transition: opacity 300ms ease-out; }
    .breadcrumbs a:hover, .breadcrumbs a:focus {
      opacity: 1;
      text-decoration: none; }

.button {
  text-transform: uppercase;
  font-family:  'Noto Sans', sans-serif; }

.bx-prev {
  left: 0; }

.bx-next {
  right: 0; }

.bx-controls-direction {
  display: none; }

@media only screen and (min-width: 45.063em) {
  .bx-controls-direction {
    display: block; } }

@media only screen and (min-width: 90.063em) {
  .bx-prev {
    left: 0; }
  .bx-next {
    right: 0; } }

.categorylist__category .bordered--all {
  border: none; }

.categorylist__category__headline {
  font-size: 0.92857rem;
  text-transform: uppercase;
  font-weight: bold;
  text-align: center; }

label {
  text-transform: uppercase;
  font-family:  'Noto Sans', sans-serif; }

.main-nav__list.level-0 > li:last-child {
  border-bottom: none; }

@media only screen and (max-width: 45em) {
  #nav {
    float: left;
    overflow: visible; }
    #nav:before, #nav:after {
      content: " ";
      display: table; }
    #nav:after {
      clear: both; }
    #nav > .row {
      margin: 0; } }

@media only screen and (max-width: 64em) {
  #nav {
    height: 100%;
    z-index: -1; } }

@media only screen and (min-width: 64.063em) {
  #page-header {
    padding: 1rem 0; }
    .frontpage #page-header {
      padding-bottom: 0; }
  #nav-wrapper {
    padding-right: 0; }
    #nav-wrapper .columns {
      padding-right: 0; }
  #nav {
    padding: 1rem 0;
    position: fixed;
    top: 0;
    background-color: rgba(255, 255, 255, 0.97) !important;
    -webkit-transition: top 0.25s ease, background-color 0.25s ease, padding 0.25s ease;
    -moz-transition: top 0.25s ease, background-color 0.25s ease, padding 0.25s ease;
    transition: top 0.25s ease, background-color 0.25s ease, padding 0.25s ease; }
    .frontpage #nav {
      background-color: rgba(255, 255, 255, 0); }
    #nav .main-nav__item.level-0:first-child {
      display: none; }
    .sticky-nav #nav {
      position: fixed;
      top: 0;
      padding: 0;
      box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1);
      background-color: rgba(255, 255, 255, 0.97); }
  .main-nav__item .main-nav__item {
    line-height: 1.5;
    height: auto;
    font-size: 0.85714rem;
    text-transform: none;
    padding: 0; }
    .main-nav__item .main-nav__item a {
      padding: 0.92857rem 1rem;
      line-height: 1.5;
      text-align: left;
      border-bottom-width: 0; }
      .main-nav__item .main-nav__item a:hover, .main-nav__item .main-nav__item a:focus, .main-nav__item .main-nav__item a.highlighted {
        border-bottom-width: 0;
        text-decoration: underline; }
  #main-menu {
    text-align: right;
    font-size: 0.85714rem;
    text-transform: uppercase; }
  .main-nav__item {
    height: 5rem;
    padding: 1.52857rem 1.28571rem; }
    .main-nav__item.level-0 > a {
      line-height: 1.94286rem; }
    .main-nav__item.level-0.current > a,
    .main-nav__item.level-0.selected > a {
      border-color: #333; }
    .main-nav__item.level-0.parent a:after {
      display: none; }
    .main-nav__item a {
      padding: 0;
      border-bottom: 2px solid transparent;
      transition: border-color 300ms ease-out; }
    .main-nav__item.current > a,
    .main-nav__item.selected > a {
      background: transparent;
      color: inherit;
      border-color: #333333; }
    .main-nav__item a:focus,
    .main-nav__item a:hover,
    .main-nav__item a.highlighted {
      background: transparent;
      color: #333;
      border-color: #333; }
    .main-nav__item.level-0 > a:focus, .main-nav__item.level-0 > a:hover, .main-nav__item.level-0 > a.highlighted {
      border-color: #333; }
    .main-nav__item.current > a:hover,
    .main-nav__item.current > a:focus,
    .main-nav__item.selected > a:hover,
    .main-nav__item.selected > a:focus {
      background: transparent;
      color: inherit; }
  .level-0 > .main-nav__item:last-child {
    padding-right: 0; } }

.product .price {
  font-weight: normal; }

.product .product__buy-button.button,
.product .product__wishlist-button.button {
  font-size: 1rem;
  text-transform: uppercase;
  font-family:  'Noto Sans', sans-serif; }

.product__title {
  font-size: 1.71429rem;
  font-weight: bold;
  text-transform: uppercase;
  border-bottom-width: 2px;
  border-bottom-color: #000;
  padding-bottom: 1rem;
  margin-bottom: 1.21429rem; }

.product__main-images img {
  max-height: 60rem; }

.product__main-images .bx-prev {
  left: -0.53571rem; }

.product__main-images .bx-next {
  right: -0.53571rem; }

.th > img {
  padding-bottom: 3px;
  border-bottom: 2px solid transparent;
  transition: border-bottom-color 300ms ease-out; }

.th.active,
.th:focus,
.th:hover {
  outline: none; }
  .th.active > img,
  .th:focus > img,
  .th:hover > img {
    border-bottom: 2px solid #000000;
    padding-bottom: 3px; }

.product__data-box {
  background-color: #f7f7f7;
  padding: 1.5rem;
  float: left;
  width: 100%; }

.product__meta-numbers {
  float: left;
  margin-bottom: 0;
  opacity: 1; }
  .product__meta-numbers > * {
    margin: 0;
    padding: 0;
    display: inline-block;
    float: left; }
  .product__meta-numbers > dt {
    clear: left;
    padding-right: .4rem; }

.product__stockstatus {
  opacity: 1;
  font-size: inherit; }

.js-tabs {
  padding-top: 0; }

@media only screen and (max-width: 45em) {
  .product__imagegallery .th:hover, .product__imagegallery .th:focus {
    outline: none; }
    .product__imagegallery .th:hover:after, .product__imagegallery .th:focus:after {
      color: #DB311B; }
  .js-tabs {
    border-top: none; } }

@media only screen and (min-width: 45.063em) {
  .product__title {
    font-size: 1.71429rem;
    padding-top: 1rem; }
  li.product__imagegallery__imagewrap {
    height: auto; } }

@media only screen and (min-width: 64.063em) {
  .product__title {
    font-size: 1.71429rem; }
  .product__info {
    width: 41.66667%;
    margin-left: 4.16667% !important; }
  .js-tabs {
    border-top: none;
    padding-top: 0; } }

@media only screen and (min-width: 90.063em) {
  .product__main-images .bx-prev {
    left: -1.07143rem; }
  .product__main-images .bx-next {
    right: -1.07143rem; } }

.product__imagegallery {
  display: block;
  padding: 0;
  margin: 0; }
  .product__imagegallery:before, .product__imagegallery:after {
    content: " ";
    display: table; }
  .product__imagegallery:after {
    clear: both; }
  .product__imagegallery > li {
    display: block;
    height: auto;
    float: left;
    padding: 0 1.07143rem 2.14286rem; }
  .product__imagegallery > li {
    width: 25%;
    padding: 0 1.07143rem 2.14286rem;
    list-style: none; }
    .product__imagegallery > li:nth-of-type(1n) {
      clear: none; }
    .product__imagegallery > li:nth-of-type(4n+1) {
      clear: both; }
    .product__imagegallery > li:nth-of-type(4n+1) {
      padding-left: 0rem;
      padding-right: 1.60714rem; }
    .product__imagegallery > li:nth-of-type(4n+2) {
      padding-left: 0.53571rem;
      padding-right: 1.07143rem; }
    .product__imagegallery > li:nth-of-type(4n+3) {
      padding-left: 1.07143rem;
      padding-right: 0.53571rem; }
    .product__imagegallery > li:nth-of-type(4n) {
      padding-left: 1.60714rem;
      padding-right: 0rem; }
  .product__imagegallery .th {
    position: relative; }
    .product__imagegallery .th:after {
      display: none; }
  .product__imagegallery li.product__imagegallery__imagewrap {
    height: 9rem; }
    .product__imagegallery li.product__imagegallery__imagewrap img {
      max-height: 6rem; }
    .product__imagegallery li.product__imagegallery__imagewrap .th {
      height: 100%;
      width: 100%;
      text-align: center;
      border: solid 4px #FFFFFF;
      opacity: 1; }
      .product__imagegallery li.product__imagegallery__imagewrap .th:hover, .product__imagegallery li.product__imagegallery__imagewrap .th:focus, .product__imagegallery li.product__imagegallery__imagewrap .th.active {
        opacity: 1; }
      .product__imagegallery li.product__imagegallery__imagewrap .th:after {
        display: none; }
      .product__imagegallery li.product__imagegallery__imagewrap .th > * {
        display: inline-block; }
      .product__imagegallery li.product__imagegallery__imagewrap .th > .imagegallery__thumb-title {
        display: none; }

@media only screen and (min-width: 27em) {
  .product__imagegallery__wrapper {
    width: 100%; }
  .product__imagegallery li.product__imagegallery__imagewrap {
    height: 9rem; }
    .product__imagegallery li.product__imagegallery__imagewrap img {
      max-height: 6rem; } }

@-webkit-keyframes activity-rotate {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

@-moz-keyframes activity-rotate {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

@keyframes activity-rotate {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

.search-box--loading .search-box__label {
  display: block; }
  .search-box--loading .search-box__label .icon-search:before {
    -webkit-animation: activity-rotate 1s 150ms linear infinite;
    -o-animation: activity-rotate 1s 150ms linear infinite;
    animation: activity-rotate 1s 150ms linear infinite; }

@media only screen and (min-width: 64.063em) {
  .search-box--loading .search-box__label {
    position: absolute;
    left: -1.8rem;
    top: .6rem;
    color: #000; } }

.productlist__product .bordered--all {
  border: none; }

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

.productlist__product .vat-info,
.productlist__product .price__saleprice-text,
.productlist__product .currency {
  display: none; }

.productlist__product .discount {
  display: block;
  background-color: rgba(219, 49, 27, 0.9);
  color: #FFF;
  border-radius: 50%;
  width: 4rem;
  height: 4rem;
  line-height: 4rem;
  font-size: 0.92857rem;
  position: absolute;
  top: 1rem;
  right: 1rem;
  transition: background-color 300ms ease-out; }

.productlist__product:not(.on-sale) .price__display {
  color: #333333; }

.productlist__product .price--original {
  font-size: 0.85714rem;
  text-decoration: line-through;
  margin-left: 0.5rem; }

.productlist__product-wrap {
  padding: 0;
  position: relative;
  overflow: hidden; }
  .productlist__product-wrap:hover .discount {
    background-color: #db311b;
    color: #FFF; }

.productlist__product__headline {
  font-size: 0.92857rem;
  text-transform: uppercase;
  font-weight: bold;
  text-align: center; }
  @media only screen and (min-width: 64.063em) {
    .productlist__product__headline {
      font-size: 1rem; } }
  @media only screen and (min-width: 90.063em) {
    .productlist__product__headline {
      font-size: 1.14286rem; } }

.equal-height-column__image,
.equal-height-column__image img {
  height: auto;
  max-height: 350px; }

.equal-height-column__readon {
  margin-left: 0; }

.equal-height-column__image {
  position: relative; }

.productlist__product__button {
  text-transform: uppercase;
  margin: 0 auto; }

.social-buttons-list {
  list-style: none;
  margin: 0 0 2rem 0;
  text-align: center; }
  .footer-social-links .social-buttons-list {
    text-align: left; }

.social-button {
  display: inline-block;
  font-size: 1rem;
  margin-right: 0.42857rem;
  text-align: center; }
  .social-button:last-child {
    margin-right: 0; }

.social-button__link, .block__box li a.social-button__link {
  display: block;
  line-height: 3.14286rem;
  height: 3.14286rem;
  width: 3.14286rem; }
  .social-button .social-button__link, .social-button .block__box li a.social-button__link, .block__box li .social-button a.social-button__link {
    background-color: #ededed; }
    .footer-social-links .social-button .social-button__link {
      background-color: #ededed; }
  .no-touch .social-button__link, .no-touch .block__box li a.social-button__link, .block__box li .no-touch a.social-button__link {
    line-height: 2.57143rem;
    height: 2.57143rem;
    width: 2.57143rem; }

.social-buttons__headline-wrapper {
  padding: 1rem 0; }

.social-buttons__headline {
  width: auto; }

.social-button--blogger:hover .social-button__link, .social-button--blogger:focus .social-button__link, .social-button--blogger:active .social-button__link,
.social-buttons-list--product .social-button--blogger .social-button__link {
  color: #fff;
  background-color: #fc9948;
  border-color: #fc9948; }

.social-button--ello:hover .social-button__link, .social-button--ello:focus .social-button__link, .social-button--ello:active .social-button__link,
.social-buttons-list--product .social-button--ello .social-button__link {
  color: #000;
  background-color: rgba(0, 0, 0, 0.1);
  border-color: rgba(0, 0, 0, 0.1); }

.social-button--facebook:hover .social-button__link, .social-button--facebook:focus .social-button__link, .social-button--facebook:active .social-button__link,
.social-buttons-list--product .social-button--facebook .social-button__link {
  color: #fff;
  background-color: #3b5998;
  border-color: #3b5998; }

.social-button--flickr:hover .social-button__link, .social-button--flickr:focus .social-button__link, .social-button--flickr:active .social-button__link,
.social-buttons-list--product .social-button--flickr .social-button__link {
  color: #fff;
  background-color: #ff0084;
  border-color: #ff0084; }

.social-button--googleplus:hover .social-button__link, .social-button--googleplus:focus .social-button__link, .social-button--googleplus:active .social-button__link,
.social-buttons-list--product .social-button--googleplus .social-button__link {
  color: #fff;
  background-color: #dd4b39;
  border-color: #dd4b39; }

.social-button--instagram:hover .social-button__link, .social-button--instagram:focus .social-button__link, .social-button--instagram:active .social-button__link,
.social-buttons-list--product .social-button--instagram .social-button__link {
  color: #fff;
  background-color: #517fa4;
  border-color: #517fa4; }

.social-button--linkedin:hover .social-button__link, .social-button--linkedin:focus .social-button__link, .social-button--linkedin:active .social-button__link,
.social-buttons-list--product .social-button--linkedin .social-button__link {
  color: #fff;
  background-color: #007bb6;
  border-color: #007bb6; }

.social-button--mail:hover .social-button__link, .social-button--mail:focus .social-button__link, .social-button--mail:active .social-button__link,
.social-buttons-list--product .social-button--mail .social-button__link {
  color: #fff;
  background-color: #333;
  border-color: #333; }

.social-button--pinterest:hover .social-button__link, .social-button--pinterest:focus .social-button__link, .social-button--pinterest:active .social-button__link,
.social-buttons-list--product .social-button--pinterest .social-button__link {
  color: #fff;
  background-color: #cb2027;
  border-color: #cb2027; }

.social-button--twitter:hover .social-button__link, .social-button--twitter:focus .social-button__link, .social-button--twitter:active .social-button__link,
.social-buttons-list--product .social-button--twitter .social-button__link {
  color: #fff;
  background-color: #00aced;
  border-color: #00aced; }

.social-button--vimeo:hover .social-button__link, .social-button--vimeo:focus .social-button__link, .social-button--vimeo:active .social-button__link,
.social-buttons-list--product .social-button--vimeo .social-button__link {
  color: #fff;
  background-color: #45bcf9;
  border-color: #45bcf9; }

.social-button--youtube:hover .social-button__link, .social-button--youtube:focus .social-button__link, .social-button--youtube:active .social-button__link,
.social-buttons-list--product .social-button--youtube .social-button__link {
  color: #fff;
  background-color: #cc181e;
  border-color: #cc181e; }

.nav-side .parent.current > ul, .nav-side .parent.selected > ul {
  display: block; }

.product__about .resp-tabs-container h2,
.product__about .resp-tab-item {
  text-transform: uppercase;
  font-size: 0.85714rem;
  font-weight: bold; }

@media only screen and (min-width: 45.063em) {
  .product__about .resp-tab-item {
    border-radius: 0 0 0 0; } }

h1, h2, h3, h4, h5, h6 {
  text-transform: uppercase;
  font-weight: bold; }

.productlist__product__button {
  width: auto;
  border-radius: 0; }

.productlist__product__button-wrap {
  background: white;
  border-radius: 0;
  position: absolute;
  top: 100%;
  width: 100%;
  z-index: 4;
  margin-left: 0;
  padding: 1.42857rem 1.42857rem 1.42857rem 1.42857rem;
  text-align: center;
  -webkit-transition: -webkit-transform, 150ms;
  -moz-transition: -moz-transform, 150ms;
  transition: transform, 150ms; }
  .productlist__product__button-wrap .button {
    margin-bottom: 0; }

/* Buy button transform */
.csstransforms .productlist__product-wrap:hover .productlist__product__button-wrap {
  -webkit-transform: translate(0, -4.5rem);
  -moz-transform: translate(0, -4.5rem);
  -ms-transform: translate(0, -4.5rem);
  transform: translate(0, -4.5rem); }

/* For browsers without transform support, just change bottom position */
.no-csstransforms .productlist__product__button-wrap {
  top: auto;
  bottom: -100%;
  -webkit-transition: bottom, 150ms ease;
  -moz-transition: bottom, 150ms ease;
  transition: bottom, 150ms ease; }

.no-csstransforms .productlist__product-wrap:hover .productlist__product__button-wrap {
  top: auto;
  bottom: 0; }

/**
 * For browsers with touch support, we assume no support for :hover and
 * make some alterations.
 */
.touch .productlist__product__button-wrap {
  display: none; }

#logo {
  text-align: center; }

.logo-wrapper,
.logo-link,
.logo-link h1 {
  width: 100%; }

#cart-wrapper {
  padding-left: 1.07143rem;
  padding-right: 1.07143rem;
  width: 33.33333%;
  float: left;
  position: absolute;
  top: .5rem;
  right: 0; }

#nav-open-btn,
.cart-and-checkout,
.cart-button,
.search-button {
  line-height: 5rem;
  display: inline-block;
  color: #333; }
  #nav-open-btn:hover, #nav-open-btn:focus, #nav-open-btn:active,
  .cart-and-checkout:hover,
  .cart-and-checkout:focus,
  .cart-and-checkout:active,
  .cart-button:hover,
  .cart-button:focus,
  .cart-button:active,
  .search-button:hover,
  .search-button:focus,
  .search-button:active {
    color: #333; }

.cart-and-checkout {
  position: absolute;
  top: .5rem;
  right: 1.42857rem;
  z-index: 202; }

.icon-menu:before {
  font-size: 2rem;
  vertical-align: -25%; }

.nav-open-text {
  display: none; }

.cart-button__quantity {
  top: 50%; }

.slider__wrapper {
  margin: 0; }

/* don't use the box shadow from pioneer */
.cart-button:hover .cart-button__quantity {
  box-shadow: none; }

#page-header {
  position: relative;
  padding-top: 0;
  min-height: 5rem; }

#logo-row {
  border-top: none;
  left: 0;
  right: 0;
  z-index: 101;
  padding: .5rem 0; }
  @media only screen and (min-width: 64.063em) {
    #logo-row {
      position: static; } }

/* display right arrow on shopping cart hover */
a.cart-button {
  position: relative;
  padding-right: 0;
  transition: padding-right 300ms ease-out; }
  a.cart-button .cart-button__quantity {
    margin-right: 0;
    background-color: #DB311B;
    color: #FFF;
    transition: margin-right 300ms ease-out; }
    .sticky-nav a.cart-button .cart-button__quantity {
      background-color: #DB311B;
      color: #FFF; }
  a.cart-button:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'apex' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    position: absolute;
    right: -2rem;
    top: 50%;
    margin-top: -0.57143rem;
    opacity: 0;
    font-size: 1.14286rem;
    -webkit-transition: right 0.2s ease, opacity 0.2s ease;
    -moz-transition: right 0.2s ease, opacity 0.2s ease;
    transition: right 0.2s ease, opacity 0.2s ease; }
  a.cart-button:hover, a.cart-button:focus {
    outline: none;
    padding-right: 0.5rem; }
    a.cart-button:hover:before, a.cart-button:focus:before {
      right: -1rem;
      opacity: 1; }
    a.cart-button:hover .cart-button__quantity, a.cart-button:focus .cart-button__quantity {
      margin-right: 0.5rem; }

.header-search-wrapper {
  display: none; }
  @media only screen and (max-width: 64em) {
    .header-search-wrapper {
      width: 100%;
      display: block;
      padding: 2rem 1rem 0 1rem;
      display: flex; }
      .header-search-wrapper form {
        width: 100%; }
      .header-search-wrapper input[type="text"] {
        width: 70%;
        margin-bottom: 0;
        float: left; }
      .header-search-wrapper input[type="submit"] {
        width: 25%;
        margin-bottom: 0;
        float: right;
        padding-left: 0;
        padding-right: 0; }
      .header-search-wrapper label {
        display: none; } }
  .search-toggled .header-search-wrapper {
    display: block; }

.search-link {
  position: absolute;
  left: 10%; }

.search-box__container {
  position: relative; }

.product-search-results {
  top: 2.57143rem; }

.product-search__element {
  width: 100%; }
  .product-search__element a {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box; }

@media only screen and (min-width: 45.063em) and (max-width: 64em) {
  #nav-open-btn {
    margin-left: 3rem; }
  .cart-and-checkout {
    margin-right: 3rem; }
  #logo {
    height: 5rem; }
    #logo img {
      max-height: 5rem; }
    #logo h1 {
      line-height: 5rem; }
  #nav-open-btn,
  .cart-and-checkout,
  .cart-button,
  .search-button {
    line-height: 5rem; }
  #cart-wrapper {
    top: 1rem; } }

@media only screen and (min-width: 45.063em) {
  #page-header {
    min-height: 7rem; }
  #logo-row {
    padding: 1rem 0; }
  .cart-and-checkout {
    top: 1.15rem; } }

@media only screen and (min-width: 64.063em) {
  a.search-link {
    line-height: 5rem;
    color: #333; }
    .search-toggled a.search-link .icon-search:before {
      /* use !important to prevent issues with browser extensions that change fonts */
      font-family: 'apex' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      /* Better Font Rendering =========== */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      content: "";
      font-size: 2em;
      vertical-align: -25%; }
  #page-header {
    min-height: 7rem; }
  #logo {
    text-align: left; }
  #logo-row {
    padding: 0; }
  .search-toggled #main-menu {
    display: none; }
  .main-nav__item a {
    color: #333333; }
  .main-nav__item.level-0 > a {
    color: #333; }
  .header-search-wrapper {
    width: 25rem;
    float: right;
    padding: 1.21429rem 0; }
  .slider__wrapper {
    margin: 7rem 0 0 0; }
  .search-box__input {
    max-width: 21.42857rem;
    display: inline-block;
    margin: 0 !important;
    float: left; }
  .search-box__submit {
    display: inline-block;
    height: 2.57143rem;
    line-height: 2.57143rem;
    margin: 0;
    width: 3.57143rem;
    padding: 0 !important;
    text-align: center;
    float: left;
    border: none; }
  .search-box__label {
    display: none; }
  .cart-and-checkout {
    display: none;
    position: fixed;
    top: 1rem;
    z-index: 201;
    -webkit-transition: top 0.5s ease, background-color 0.25s ease;
    -moz-transition: top 0.5s ease, background-color 0.25s ease;
    transition: top 0.5s ease, background-color 0.25s ease; }
    .sticky-nav .cart-and-checkout {
      top: 0; } }

.page-title__wrapper {
  text-align: center;
  padding: 2.75rem 0;
  min-height: 7.9rem; }

.page-title {
  margin: 0;
  font-size: 1.71429rem;
  text-transform: uppercase;
  font-weight: bold; }
  .page-title .divider {
    font-weight: normal;
    font-size: 1.5em;
    vertical-align: -10%; }

.page-title__static-page {
  display: none; }

.frontpage__custom-content {
  clear: both; }

#main-content {
  padding: 2.75rem 0; }
  #main-content > .page-divider, #main-content > .shop-features {
    padding-top: 0; }

#footer__wrapper {
  padding-top: 2.75rem; }

.search-page__search-input {
  max-width: 21.42857rem;
  float: left; }

.search-box__submit {
  margin-left: 1rem;
  float: left; }

.search-page__form-wrapper {
  float: left;
  width: 100%;
  margin-bottom: 2rem; }
  @media all and (max-width: 1024px) {
    .search-page__form-wrapper .search-box__submit {
      padding: 0.65rem 1rem !important; } }

.search-box {
  width: 100%;
  margin: 0 auto;
  position: relative;
  clear: both; }
  .search-box .search-box__label {
    position: absolute;
    top: 0;
    padding: 0 .5rem;
    text-align: center;
    line-height: 2.57143rem; }
    .search-box .search-box__label .icon-search:before {
      font-size: 1rem; }
  .search-box .frontpage__search-input {
    padding-left: 1.8rem;
    width: 75%;
    float: left;
    margin: 0 0 2.75rem 0; }
  .search-box .search-box__submit {
    width: 20%;
    float: left;
    padding: 0;
    margin: 0 0 2.75rem 5%;
    border: 0;
    line-height: 2.57143rem; }

@media only screen and (min-width: 27em) {
  .search-box {
    width: 75%; } }

@media only screen and (min-width: 45.063em) {
  .search-box {
    width: 60%; } }

.footer__links {
  margin: 0; }
  .no-touch .footer__links {
    padding: 1rem 0; }
  .footer__links li {
    display: inline-block; }
    .footer__links li a {
      display: inline-block;
      font-size: 0.85714rem;
      font-family:  'Noto Sans', sans-serif;
      text-transform: uppercase;
      padding: 0 .5rem; }
      @media only screen and (min-width: 64.063em) {
        .footer__links li a {
          font-size: 0.92857rem; } }
      @media only screen and (min-width: 90.063em) {
        .footer__links li a {
          font-size: 1rem; } }
      .touch .footer__links li a {
        line-height: 3.14286rem; }

.footer__cookie_notice {
  padding: 1rem 0; }

.footer__company-info,
.footer__made-by {
  line-height: 1.5; }

.footer__made-by {
  text-align: center;
  margin-bottom: 1rem; }

.company-contact-info {
  margin-bottom: 1rem;
  float: left;
  width: 100%; }
  .company-contact-info dd, .company-contact-info dt {
    font-size: 0.85714rem;
    display: inline-block;
    float: left;
    margin-bottom: .5rem; }
    @media only screen and (min-width: 64.063em) {
      .company-contact-info dd, .company-contact-info dt {
        font-size: 0.92857rem; } }
    @media only screen and (min-width: 90.063em) {
      .company-contact-info dd, .company-contact-info dt {
        font-size: 1rem; } }
  .company-contact-info dt {
    padding-right: 0.4rem;
    clear: left; }

.footer-social-links {
  clear: both;
  width: 100%; }

.tools-nav {
  width: 100%;
  text-align: center;
  margin-top: 1rem;
  position: relative; }
  .tools-nav > li {
    float: none;
    display: inline-block; }
    .touch .tools-nav > li {
      line-height: 3.14286rem; }
    .tools-nav > li .icon-language,
    .tools-nav > li #language-close .icon-close {
      margin-right: .2rem; }
  .tools-nav .setting__form {
    position: static; }
  .tools-nav .setting__select {
    top: -5rem;
    left: 50%;
    margin-left: -7.5rem; }
  .tools-nav .currency-name {
    display: inline !important; }

@media only screen and (min-width: 64.063em) {
  .tools-nav {
    text-align: right; }
    .touch .tools-nav > li {
      height: 3.14286rem;
      line-height: 3.14286rem; }
    .tools-nav .setting__select {
      left: auto;
      right: 0;
      margin-left: 0; }
  .footer__info-links {
    margin-top: 1rem; }
    .footer__info-links li:first-child a {
      padding-left: 0; }
  .footer__links {
    margin: 0;
    text-align: left !important; }
    .no-touch .footer__links {
      padding: .75rem 0; }
  .footer__made-by {
    text-align: left; } }

.block__box--newsletter label {
  font-weight: normal;
  text-transform: none; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBleC5jc3MiLCJzb3VyY2VzIjpbImFwZXguc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L19fZGVidWcvX21hc3Rlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9fZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX2NvbG9yLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX21hdGguc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19jb25zdGFudHMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19hYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19leHAuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19mYWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fZnJleHAuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19sZGV4cC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX2xvZy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX2x1bWluYW5jZS1wcmVjYWxjLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fcG93LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fbnRoLXJvb3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19zcXJ0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fdHJpZ29ub21ldHJ5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX3JlcGxhY2UtbnRoLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX3N0cmluZ3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9zdHJpbmdzL19zdHItZXhwbG9kZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL191bml0cy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3N0eWxlcy9fZm9udHMuc2NzcyIsInN0eWxlcy9fc2V0dGluZ3Muc2NzcyIsInN0eWxlcy9fY29sb3Itc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9zZXR0aW5ncy9fYmFzZS1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3NldHRpbmdzL19iYXNlLWNvbG9yLXNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvc3R5bGVzL19jb2xvci1jb250cmFzdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvX25vcm1hbGl6ZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvX21peGlucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbWl4aW5zL19hY2Nlc3NpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9taXhpbnMvX2NlbnRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbWl4aW5zL19oYWlybGluZS1ib3JkZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L21peGlucy9fbnRoLWNoaWxkcmVuLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9taXhpbnMvX3RyYW5zZm9ybS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vYWRkb25zL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19hbmltYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19ib3JkZXItcmFkaXVzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2ZsZXgtYm94LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2tleWZyYW1lcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fYWxlcnQtYm94ZXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZ2xvYmFsLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL19mdW5jdGlvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fYmxvY2stZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19idXR0b25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2dyaWQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9faW5saW5lLWxpc3RzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3RhYmxlcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL190YWJzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2dyaWQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdGh1bWJzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3R5cGUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvYmxvY2tzL19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9ibG9ja3MvbmF2L19ob3Jpem9udGFsLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9ibG9ja3MvbmF2L19uYXYuc2NzcyIsInN0eWxlcy9jb21wb25lbnRzL19pY29ucy5zY3NzIiwic3R5bGVzL2NvbXBvbmVudHMvX2ljb24tdmFycy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19hY2Nlc3NpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L19ncmlkLWV4dHJhcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9fYmFzZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9faGVhZGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2hlYWRlci9fc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvaGVhZGVyL191dGlscy1uYXYuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvaGVhZGVyL19vZmZjYW52YXMtbmF2LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2hlYWRlci9fbG9nby1saW5lLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2hlYWRlci9fbWFpbi1uYXYuc2NzcyIsIl9jb21wb25lbnRzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19ob3ZlcmZ4LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2ZpbHRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L19iYXNlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX2JsdXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeC9fY292ZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeC9fZmlnY2FwdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L19sZXZpdGF0ZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L19zaG93dGl0bGUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeC9fdGlsdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zbGFiLXNlcGFyYXRvci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19hbGVydC1ib3hlcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19hbmltYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYmxvY2staW1hZ2UtZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ibG9ja3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYmxvY2tzLWJhbm5lcnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYm9yZGVyZWQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ieHNsaWRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jYXJ0X2J1dHRvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jYXJ0LWJ1dHRvbi1mdWxsLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NhcnQtYnV0dG9uLXNpbXBsZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jaGVja291dC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jaGVja291dF9rY28uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fcmV2ZWFsLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19yZWFjdC1zZWxlY3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvcmVhY3Qtc2VsZWN0L3NlbGVjdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3QvY29udHJvbC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3Qvc3Bpbm5lci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3QvbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9tZW51LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9tdWx0aS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jb21tZW50cy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jb29raWUtbm90aWNlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2VxdWFsLWhlaWdodC1jb2x1bW5zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2ZhbmN5Ym94LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2Zvcm1zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2tsYXJuYS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19sYW5ndWFnZS1jdXJyZW5jeS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3BhZ2UtZGl2aWRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19wYWdlcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3BhZ2VzL19jYXJ0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvcGFnZXMvX2Zyb250cGFnZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3BhZ2VzL19yZWNlaXB0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvcGFnZXMvX3JlZ2lzdGVyLWFjY291bnQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9wYWdlcy9fd2lzaGxpc3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fcHJvZHVjdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19wcm9kdWN0LXNlYXJjaC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19yYXRpbmcuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fcmVhZG9uLWljb24tY2VudGVyZWQtb24taG92ZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fc2hvcC1mZWF0dXJlcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zbGlkZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fc3Bpbm5lci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zcGxpdG1lbnUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fdGFibGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3RhYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fdGhlbWVkLW5hdmlnYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvX2NvbW1vbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9fc3RpY2t5LWZvb3Rlci1tZW51LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19zbGlkZS1pbi1tZW51LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19zZWFyY2gtbW9kYWwuc2NzcyIsInN0eWxlcy9jb21wb25lbnRzL19iZXN0c2VsbGVyLnNjc3MiLCJzdHlsZXMvY29tcG9uZW50cy9fYmxvY2tzLnNjc3MiLCJzdHlsZXMvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsInN0eWxlcy9jb21wb25lbnRzL19idXR0b25zLnNjc3MiLCJzdHlsZXMvY29tcG9uZW50cy9fYnhzbGlkZXIuc2NzcyIsInN0eWxlcy9jb21wb25lbnRzL19jYXRlZ29yeWxpc3Quc2NzcyIsInN0eWxlcy9jb21wb25lbnRzL19mb3Jtcy5zY3NzIiwic3R5bGVzL2NvbXBvbmVudHMvX21haW4tbmF2LnNjc3MiLCJzdHlsZXMvY29tcG9uZW50cy9fcHJvZHVjdC5zY3NzIiwic3R5bGVzL2NvbXBvbmVudHMvX3Byb2R1Y3QtaW1hZ2VnYWxsZXJ5LnNjc3MiLCJzdHlsZXMvY29tcG9uZW50cy9fcHJvZHVjdC1zZWFyY2guc2NzcyIsInN0eWxlcy9jb21wb25lbnRzL19wcm9kdWN0bGlzdC5zY3NzIiwic3R5bGVzL2NvbXBvbmVudHMvX3NvY2lhbC1idXR0b25zLnNjc3MiLCJzdHlsZXMvY29tcG9uZW50cy9fc3BsaXRtZW51LnNjc3MiLCJzdHlsZXMvY29tcG9uZW50cy9fdGFicy5zY3NzIiwic3R5bGVzL2NvbXBvbmVudHMvX3R5cGUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9wcm9kdWN0bGlzdC9fYnV5LWJ1dHRvbnMuc2NzcyIsInN0eWxlcy9faGVhZGVyLnNjc3MiLCJzdHlsZXMvX3BhZ2Uuc2NzcyIsInN0eWxlcy9fZm9vdGVyLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAncXVpY2tmaXgvX19kZWJ1Zy9tYXN0ZXInO1xuXG4kcmVtLWJhc2U6IDE0cHggIWRlZmF1bHQ7ICAgICAgICAgICAgICAgIC8vIE11c3QgYmUgc2V0IGJlZm9yZSBmb3VuZGF0aW9uL2Z1bmN0aW9ucyBpcyBsb2FkZWRcbiRmb250LWNvbWJvOiBcIk5vdG8rU2Fuczo0MDAsNzAwfEJpdHRlcjo0MDAsNzAwLDQwMGl0YWxpYzsgJ0JpdHRlcicsIHNlcmlmOyAnTm90byBTYW5zJywgc2Fucy1zZXJpZlwiICFkZWZhdWx0OyAvLyBNdXN0IGJlIHNldCBiZWZvcmUgcGlvbmVlci9zdHlsZXMvZm9udHMgaXMgbG9hZGVkXG5cbi8vIFBpb25lZXIgYmFzZVxuQGltcG9ydCBcImZvdW5kYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3N0eWxlcy9mb250c1wiO1xuXG4vLyBBcGV4IHNldHRpbmdzXG5AaW1wb3J0IFwic3R5bGVzL3NldHRpbmdzXCI7XG5AaW1wb3J0IFwic3R5bGVzL2NvbG9yLXNldHRpbmdzXCI7XG5cbi8vIFBpb25lZXIgc2V0dGluZ3MsIGJhc2lzXG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NldHRpbmdzL2Jhc2Utc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc2V0dGluZ3MvYmFzZS1jb2xvci1zZXR0aW5nc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zdHlsZXMvY29sb3ItY29udHJhc3RcIjtcblxuQGltcG9ydCBcInF1aWNrZml4L25vcm1hbGl6ZVwiO1xuQGltcG9ydCBcInF1aWNrZml4L21peGluc1wiO1xuXG4vLyBCb3VyYm9uXG5AaW1wb3J0IFwiYm91cmJvbi9zZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImJvdXJib24vYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2FuaW1hdGlvblwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMva2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvdHJhbnNpdGlvblwiO1xuXG4vLyBGb3VuZGF0aW9uXG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2FsZXJ0LWJveGVzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2Jsb2NrLWdyaWRcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvZm9ybXNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvZ3JpZFwiO1xuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9pbmxpbmUtbGlzdHNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdGFibGVzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3RhYnNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdGh1bWJzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3R5cGVcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdmlzaWJpbGl0eVwiO1xuXG5AaW1wb3J0IFwicXVpY2tmaXgvYmxvY2tzL3BhZ2luYXRpb25cIjtcblxuLy8gSWNvbnNcbkBpbXBvcnQgXCJzdHlsZXMvY29tcG9uZW50cy9pY29uc1wiO1xuXG4vLyBQaW9uZWVyIHN0eWxpbmdcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYWNjZXNzaWJpbGl0eVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYXlvdXQvZ3JpZC1leHRyYXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2Jhc2VcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2hlYWRlclwiO1xuXG4vLyBBcGV4IHN0eWxpbmdcbkBpbXBvcnQgXCJjb21wb25lbnRzXCI7XG5AaW1wb3J0IFwic3R5bGVzL2hlYWRlclwiO1xuQGltcG9ydCBcInN0eWxlcy9wYWdlXCI7XG5AaW1wb3J0IFwic3R5bGVzL2Zvb3RlclwiO1xuIiwiLy8gVGhpcyBpcyBpZiB5b3Ugd2FudCB0byBwbGF5IG1hZXN0cm9cbi8vJHByaW1hcnktY29sb3I6ICM4MDgwODA7XG4vL0BpbXBvcnQgJ2Jhc2UnO1xuXG4vLyRjb250ZW50LWJnOiAjN0E3QTdBO1xuLy8kY2FsbC10by1hY3Rpb24tY29sb3I6ICNiZjU3MmU7IiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gVGhpcyBpcyB0aGUgZGVmYXVsdCBodG1sIGFuZCBib2R5IGZvbnQtc2l6ZSBmb3IgdGhlIGJhc2UgcmVtIHZhbHVlLlxuJHJlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBJTVBPUlQgT05DRVxuLy8gV2UgdXNlIHRoaXMgdG8gcHJldmVudCBzdHlsZXMgZnJvbSBiZWluZyBsb2FkZWQgbXVsdGlwbGUgdGltZXMgZm9yIGNvbXBvbmVudHMgdGhhdCByZWx5IG9uIG90aGVyIGNvbXBvbmVudHMuXG4kbW9kdWxlczogKCkgIWRlZmF1bHQ7XG5AbWl4aW4gZXhwb3J0cygkbmFtZSkge1xuICAvLyBJbXBvcnQgZnJvbSBnbG9iYWwgc2NvcGVcbiAgJG1vZHVsZXM6ICRtb2R1bGVzICFnbG9iYWw7XG4gIC8vIENoZWNrIGlmIGEgbW9kdWxlIGlzIGFscmVhZHkgb24gdGhlIGxpc3RcbiAgJG1vZHVsZV9pbmRleDogaW5kZXgoJG1vZHVsZXMsICRuYW1lKTtcbiAgQGlmICgoJG1vZHVsZV9pbmRleCA9PSBudWxsKSBvciAoJG1vZHVsZV9pbmRleCA9PSBmYWxzZSkpIHtcbiAgICAkbW9kdWxlczogYXBwZW5kKCRtb2R1bGVzLCAkbmFtZSkgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vL1xuLy8gQGZ1bmN0aW9uc1xuLy9cblxuXG4vLyBSQU5HRVNcbi8vIFdlIHVzZSB0aGVzZSBmdW5jdGlvbnMgdG8gZGVmaW5lIHJhbmdlcyBmb3IgdmFyaW91cyB0aGluZ3MsIGxpa2UgbWVkaWEgcXVlcmllcy5cbkBmdW5jdGlvbiBsb3dlci1ib3VuZCgkcmFuZ2Upe1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPD0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEByZXR1cm4gbnRoKCRyYW5nZSwxKTtcbn1cblxuQGZ1bmN0aW9uIHVwcGVyLWJvdW5kKCRyYW5nZSkge1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPCAyIHtcbiAgICBAcmV0dXJuIDk5OTk5OTk5OTk5OTtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xufVxuXG4vLyBTVFJJUCBVTklUXG4vLyBJdCBzdHJpcHMgdGhlIHVuaXQgb2YgbWVhc3VyZSBhbmQgcmV0dXJucyBpdFxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8gVEVYVCBJTlBVVCBUWVBFU1xuXG5AZnVuY3Rpb24gdGV4dC1pbnB1dHMoICR0eXBlczogYWxsLCAkc2VsZWN0b3I6IGlucHV0ICkge1xuXG4gICAgJHJldHVybjogKCk7XG5cbiAgICAkYWxsLXRleHQtaW5wdXQtdHlwZXM6XG4gICAgICB0ZXh0XG4gICAgICBwYXNzd29yZFxuICAgICAgZGF0ZVxuICAgICAgZGF0ZXRpbWVcbiAgICAgIGRhdGV0aW1lLWxvY2FsXG4gICAgICBtb250aFxuICAgICAgd2Vla1xuICAgICAgZW1haWxcbiAgICAgIG51bWJlclxuICAgICAgc2VhcmNoXG4gICAgICB0ZWxcbiAgICAgIHRpbWVcbiAgICAgIHVybFxuICAgICAgY29sb3JcbiAgICAgIHRleHRhcmVhO1xuXG4gICAgQGlmICR0eXBlcyA9PSBhbGwgeyAkdHlwZXM6ICRhbGwtdGV4dC1pbnB1dC10eXBlczsgfVxuXG4gICAgQGVhY2ggJHR5cGUgaW4gJHR5cGVzIHtcbiAgICAgICAgQGlmICR0eXBlID09IHRleHRhcmVhIHtcbiAgICAgICAgICAgIEBpZiAkc2VsZWN0b3IgPT0gaW5wdXQge1xuICAgICAgICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnI3skdHlwZX0nKSwgY29tbWEpXG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHR5cGV9I3skc2VsZWN0b3J9JyksIGNvbW1hKVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyRzZWxlY3Rvcn1bdHlwZT1cIiN7JHR5cGV9XCJdJyksIGNvbW1hKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmV0dXJuO1xuXG59XG5cbi8vIENPTlZFUlQgVE8gUkVNXG5AZnVuY3Rpb24gY29udmVydC10by1yZW0oJHZhbHVlLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSAge1xuICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UtdmFsdWUpICogMXJlbTtcbiAgQGlmICgkdmFsdWUgPT0gMHJlbSkgeyAkdmFsdWU6IDA7IH0gLy8gVHVybiAwcmVtIGludG8gMFxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIGRhdGEoJGF0dHIpIHtcbiAgQGlmICRuYW1lc3BhY2Uge1xuICAgIEByZXR1cm4gJ1tkYXRhLScgKyAkbmFtZXNwYWNlICsgJy0nICsgJGF0dHIgKyAnXSc7XG4gIH1cblxuICBAcmV0dXJuICdbZGF0YS0nICsgJGF0dHIgKyAnXSc7XG59XG5cbi8vIFJFTSBDQUxDXG5cbi8vIE5ldyBTeW50YXgsIGFsbG93cyB0byBvcHRpb25hbGx5IGNhbGN1bGF0ZSBvbiBhIGRpZmZlcmVudCBiYXNlIHZhbHVlIHRvIGNvdW50ZXIgY29tcG91bmRpbmcgZWZmZWN0IG9mIHJlbSdzLlxuLy8gQ2FsbCB3aXRoIDEsIDIsIDMgb3IgNCBwYXJhbWV0ZXJzLCAncHgnIGlzIG5vdCByZXF1aXJlZCBidXQgc3VwcG9ydGVkOlxuLy9cbi8vICAgcmVtLWNhbGMoMTAgMjAgMzBweCA0MCk7XG4vL1xuLy8gU3BhY2UgZGVsaW1pdGVkLCBpZiB5b3Ugd2FudCB0byBkZWxpbWl0IHVzaW5nIGNvbW1hJ3MsIHdyYXAgaXQgaW4gYW5vdGhlciBwYWlyIG9mIGJyYWNrZXRzXG4vL1xuLy8gICByZW0tY2FsYygoMTAsIDIwLCAzMCwgNDBweCkpO1xuLy9cbi8vIE9wdGlvbmFsbHkgY2FsbCB3aXRoIGEgZGlmZmVyZW50IGJhc2UgKGVnOiA4cHgpIHRvIGNhbGN1bGF0ZSByZW0uXG4vL1xuLy8gICByZW0tY2FsYygxNnB4IDMycHggNDhweCwgOHB4KTtcbi8vXG4vLyBJZiB5b3UgcmVxdWlyZSB0byBjb21tYSBzZXBhcmF0ZSB5b3VyIGxpc3Rcbi8vXG4vLyAgIHJlbS1jYWxjKCgxNnB4LCAzMnB4LCA0OCksIDhweCk7XG5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSB7XG4gICRtYXg6IGxlbmd0aCgkdmFsdWVzKTtcblxuICBAaWYgJG1heCA9PSAxIHsgQHJldHVybiBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgMSksICRiYXNlLXZhbHVlKTsgfVxuXG4gICRyZW1WYWx1ZXM6ICgpO1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xuICAgICRyZW1WYWx1ZXM6IGFwcGVuZCgkcmVtVmFsdWVzLCBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZS12YWx1ZSkpO1xuICB9XG4gIEByZXR1cm4gJHJlbVZhbHVlcztcbn1cblxuLy8gT0xEIEVNIENBTENcbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEuMCwgdXNlIHJlbS1jYWxjKClcbkBmdW5jdGlvbiBlbUNhbGMoJHZhbHVlcyl7XG4gIEByZXR1cm4gcmVtLWNhbGMoJHZhbHVlcyk7XG59XG5cbi8vIE9MRCBFTSBDQUxDXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLjAsIHVzZSByZW0tY2FsYygpXG5AZnVuY3Rpb24gZW0tY2FsYygkdmFsdWVzKXtcbiAgQHJldHVybiByZW0tY2FsYygkdmFsdWVzKTtcbn1cbiIsIkBpbXBvcnQgXCJmdW5jdGlvbnMvY29sb3JcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbWF0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9yZXBsYWNlLW50aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpbmdzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VuaXRzXCI7IiwiLyoqXG4gKiBLdWRvcyB0byBodHRwOi8vbWFkZWJ5bWlrZS5jb20uYXUvd3JpdGluZy9hY2Nlc3NpYmxlLWNvbnRyYXN0LXdpdGgtbGVzcy1hbmQtc2Fzcy9cbiAqL1xuXG5AaW1wb3J0IFwibWF0aFwiO1xuXG4vLyBHZXQgdGhlIGx1bWlub3NpdHkgb2YgYSBjb2xvciBvbiBhIHNjYWxlIGZyb20gMCAoZGFya2VzdCkgdG8gMTAwIChsaWdodGVzdClcbkBmdW5jdGlvbiBsdW1hKCRjb2xvcil7XG4gICAgLy8gVGhhbmtzIHZveHBlbGxpIGZvciBhIHZlcnkgY29uY2lzZSBpbXBsZW1lbnRhdGlvbiBvZiBsdW1pbmFuY2UgbWVhc3VyZSBpbiBzYXNzXG4gICAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS92b3hwZWxsaS82MzA0ODEyXG4gICAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICAgJHJnYmEyOiAoKTtcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICAgICAkcmdiOiBtYXgoMCwgcm91bmQoJHJnYikpO1xuICAgICAgICAkcmdiOiBtaW4oMjU1LCByb3VuZCgkcmdiKSk7XG4gICAgICAgIC8vIE9sZCBBbGdvcml0aG06XG4gICAgICAgIC8vICRyZ2I6ICRyZ2IgLyAyNTU7XG4gICAgICAgIC8vICRyZ2I6IGlmKCRyZ2IgPCAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgLjA1NSkgLyAxLjA1NSwgMi40KSk7XG4gICAgICAgIC8vXG4gICAgICAgIC8vIFJlcGxhY2VkIHRoaXMgd2l0aCBMT1ZFTFkgcHJlY2FsY3VsYXRlZCBudW1iZXJzLCBmb3Igc3BlZWQsIHNpbmNlIHBvdyh4LCAyLjQpIGlzIHNsb3cgYXMgSEVMTCBpbiBTYXNzLlxuICAgICAgICAkcmdiOiBudGgoJGx1bWluYW5jZS1wcmVjYWxjLCAkcmdiICsgMSk7XG4gICAgICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gICAgfVxuXG4gICAgQHJldHVybiAoLjIxMjYgKiBudGgoJHJnYmEyLCAxKSArIC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKSkqMTAwO1xufVxuXG4vLyBSZXR1cm5zIGEgbnVtYmVyIGZyb20gMSAobG93IGNvbnRyYXN0KSB0byAyMSAoaGlnaCBjb250cmFzdClcbkBmdW5jdGlvbiBjb250cmFzdC1yYXRpbygkY29sb3IxLCAkY29sb3IyKSB7XG4gICAgJGx1bWExOiBsdW1hKCRjb2xvcjEpICsgNTtcbiAgICAkbHVtYTI6IGx1bWEoJGNvbG9yMikgKyA1O1xuICAgICRyYXRpbzogJGx1bWExIC8gJGx1bWEyO1xuICAgIEBpZiAkbHVtYTEgPCAkbHVtYTIge1xuICAgICAgICAkcmF0aW86IDEgLyAkcmF0aW87XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmF0aW87XG59XG5cbi8qKlxuICogSXMgJGNvbG9yMSBsaWdodGVyIHRoYW4gJGNvbG9yMj9cbiAqL1xuQGZ1bmN0aW9uIGlzLWxpZ2h0ZXIoJGNvbG9yMSwgJGNvbG9yMikge1xuICAgIEByZXR1cm4gbHVtYSgkY29sb3IxKSA+IGx1bWEoJGNvbG9yMik7XG59XG5cbi8qKlxuICogSXMgJGNvbG9yMSBkYXJrZXIgdGhhbiAkY29sb3IyP1xuICovXG5AZnVuY3Rpb24gaXMtZGFya2VyKCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgICBAcmV0dXJuIGx1bWEoJGNvbG9yMSkgPCBsdW1hKCRjb2xvcjIpO1xufVxuXG4vKipcbiAqIEZpbmQgYmVzdCBsaWdodG5lc3MgYWRqdXN0IG1ldGhvZFxuICpcbiAqIElkZWFsbHkgd2Ugc2hvdWxkIG9ubHkgaW5jcmVhc2UgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgY29sb3JzLiBJZiAkY29sb3IxXG4gKiBpcyBsaWdodGVyIHRoYW4gJGNvbG9yMiBidXQgdGhlIGNvbnRyYXN0IGlzIG5vdCBhY2Nlc3NpYmxlLCB0aGVuIHdlIHNob3VsZCB0cnkgdG9cbiAqIG1ha2UgaXQgbGlnaHRlciByYXRoZXIgdGhhbiBkYXJrZXIuXG4gKi9cbkBmdW5jdGlvbiBmaW5kLWxpZ2h0bmVzcy1hZGp1c3QtbWV0aG9kKCRjb2xvcjEsICRjb2xvcjIsICR0aHJlc2hvbGQ6ICRjb2xvci1jb250cmFzdC10aHJlc2hvbGQpIHtcbiAgICAkY29udHJhc3QtdG8td2hpdGU6IGNvbnRyYXN0LXJhdGlvKCNmZmZmZmYsICRjb2xvcjIpO1xuICAgICRjb250cmFzdC10by1ibGFjazogY29udHJhc3QtcmF0aW8oIzAwMDAwMCwgJGNvbG9yMik7XG5cbiAgICBAaWYgaXMtbGlnaHRlcigkY29sb3IxLCAkY29sb3IyKSB7XG4gICAgICAgIEBpZiAkY29udHJhc3QtdG8td2hpdGUgPj0gJHRocmVzaG9sZCB7IC8vIGxpZ2h0ZW4gYSBsaWdodGVyIGNvbG9yIHdpbGwgd29ya1xuICAgICAgICAgICAgQHJldHVybiAnbGlnaHRlbic7XG4gICAgICAgIH0gQGVsc2VpZiAkY29udHJhc3QtdG8tYmxhY2sgPj0gJHRocmVzaG9sZCB7XG4gICAgICAgICAgICBAcmV0dXJuICdkYXJrZW4nO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAkY29udHJhc3QtdG8tYmxhY2sgPj0gJHRocmVzaG9sZCB7IC8vIGRhcmtlbiBhIGRhcmtlciBjb2xvciB3aWxsIHdvcmtcbiAgICAgICAgICAgIEByZXR1cm4gJ2Rhcmtlbic7XG4gICAgICAgIH0gQGVsc2VpZiAkY29udHJhc3QtdG8td2hpdGUgPj0gJHRocmVzaG9sZCB7XG4gICAgICAgICAgICBAcmV0dXJuICdsaWdodGVuJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5vIGFjY2VwdGFibGUgY29udHJhc3QgZm91bmQsIGdvIHdpdGggdGhlIGJlc3Qgb25lXG4gICAgQGlmICgkY29udHJhc3QtdG8td2hpdGUgPiAkY29udHJhc3QtdG8tYmxhY2spIHtcbiAgICAgICAgQHJldHVybiAjZmZmO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICMwMDA7XG4gICAgfVxufVxuXG4vLyBMaWdodGVuIG9yIGRhcmtlbiAkY29sb3IxIHVudGlsIGl0IGhhcyBzdWZmaWNpZW50IGNvbnRyYXN0IHRvICRjb2xvcjJcbi8vIFRPRE86IFJlbW92ZSAkaXRlcmF0aW9ucyB2YXJpYmxlLCBmaW5kIGEgbW9yZSBjbGV2ZXIgd2F5IHRvIGNoZWNrIGlmIHdlIGFyZSBhdCByb2FkcyBlbmRcbkBmdW5jdGlvbiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29sb3IxLCAkY29sb3IyLCAkdGhyZXNob2xkOiAkY29sb3ItY29udHJhc3QtdGhyZXNob2xkLCAkdG9sZXJhbmNlOiAwLjI1KSB7XG5cbiAgICAvLyBSZXR1cm4gZGlyZWN0bHkgaWYgY29udHJhc3QgaXMgZ29vZFxuICAgICRjYW5kaWRhdGUtY29udHJhc3Q6IGNvbnRyYXN0LXJhdGlvKCRjb2xvcjEsICRjb2xvcjIpO1xuICAgIEBpZiAkY2FuZGlkYXRlLWNvbnRyYXN0ID49ICR0aHJlc2hvbGQge1xuICAgICAgICBAcmV0dXJuICRjb2xvcjE7XG4gICAgfVxuXG4gICAgLy8gRmluZCBvdXQgaWYgd2UgbmVlZCB0byBkYXJrZW4gb3IgbGlnaHRlblxuICAgICRtZXRob2Q6IGZpbmQtbGlnaHRuZXNzLWFkanVzdC1tZXRob2QoJGNvbG9yMSwgJGNvbG9yMik7XG5cbiAgICAvLyBJZiB3ZSB3b24ndCBiZSBhYmxlIHRvIGZpbmQgYW4gYWNjZXNzaWJsZSBjb250cmFzdCBhdCBhbGwsIGp1c3QgcmV0dXJuIGJsYWNrIG9yIHdoaXRlIGRpcmVjdGx5XG4gICAgQGlmICRtZXRob2QgIT0gJ2xpZ2h0ZW4nIGFuZCAkbWV0aG9kICE9ICdkYXJrZW4nIHtcbiAgICAgICAgQHJldHVybiAkbWV0aG9kO1xuICAgIH1cblxuICAgIC8vIEJpbmFyeSBzZWFyY2ggdW50aWwgd2UgZmluZCBhIGdvb2QgbGlnaHRuZXNzIGNoYW5nZVxuICAgICRyYW5nZS1zdGFydDogMSU7XG4gICAgJHJhbmdlLWVuZDogMTAwJTtcblxuICAgICRpdGVyYXRpb25zIDogMDtcbiAgICAkY2FuZGlkYXRlOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBXaGlsZSBjb250cmFzdCBpcyBvdXQgb2YgcmFuZ2UsIGtlZXAgc2VhcmNoaW5nXG4gICAgQHdoaWxlICRpdGVyYXRpb25zIDwgNyBhbmQgKCgkY2FuZGlkYXRlLWNvbnRyYXN0IDwgJHRocmVzaG9sZCkgb3IgKCRjYW5kaWRhdGUtY29udHJhc3QgPiAkdGhyZXNob2xkICsgJHRvbGVyYW5jZSkpIHtcbiAgICAgICAgJHJhbmdlLW1pZDogJHJhbmdlLWVuZCAtIHJvdW5kKCgoJHJhbmdlLWVuZCAtICRyYW5nZS1zdGFydCkvMikpO1xuXG4gICAgICAgICRjYW5kaWRhdGU6IGlmKCRtZXRob2QgPT0gJ2xpZ2h0ZW4nLCBsaWdodGVuKCRjb2xvcjEsICRyYW5nZS1taWQpLCBkYXJrZW4oJGNvbG9yMSwgJHJhbmdlLW1pZCkpO1xuXG4gICAgICAgICRjYW5kaWRhdGUtY29udHJhc3Q6IGNvbnRyYXN0LXJhdGlvKCRjYW5kaWRhdGUsICRjb2xvcjIpO1xuXG4gICAgICAgIEBpZiAoJGNhbmRpZGF0ZS1jb250cmFzdCA+PSAkdGhyZXNob2xkKSBhbmQgKCRjYW5kaWRhdGUtY29udHJhc3QgPD0gJHRocmVzaG9sZCArICR0b2xlcmFuY2UpIHtcbiAgICAgICAgICAgIEByZXR1cm4gJGNhbmRpZGF0ZTtcbiAgICAgICAgfSBAZWxzZWlmICRjYW5kaWRhdGUtY29udHJhc3QgPCAkdGhyZXNob2xkIHtcbiAgICAgICAgICAgICRyYW5nZS1zdGFydDogbWluKCRyYW5nZS1taWQgKyAxJSwgMTAwJSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJHJhbmdlLWVuZDogbWF4KCRyYW5nZS1taWQgLSAxJSwgMSUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJGl0ZXJhdGlvbnM6ICRpdGVyYXRpb25zICsgMTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRjYW5kaWRhdGU7XG59XG5cbi8vIEZpbmQgd2hpY2ggJGJnY29sb3IgdG8gdXNlIHdpdGggZ2l2ZW4gdGV4dCBjb2xvciAkY29sb3Jcbi8vIERlZmF1bHRzIHRvIGxpZ2h0ZXIgb3IgZGFya2VyIChtb25vY2hyb21lKSBiYWNrZ3JvdW5kXG5AZnVuY3Rpb24gdGV4dC1jb250cmFzdCgkY29sb3IsICRiZ2NvbG9yOiAkY29sb3IsICR0aHJlc2hvbGQ6IDQuNSkge1xuICAgIEByZXR1cm4gYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJnY29sb3IsICRjb2xvciwgJHRocmVzaG9sZCk7XG59IiwiLy8gQmlnIGt1ZG9zIHRvOiBodHRwczovL2dpdGh1Yi5jb20vdGVya2VsL21hdGhzYXNzXG5cbkBpbXBvcnQgXCJtYXRoL2NvbnN0YW50c1wiO1xuQGltcG9ydCBcIm1hdGgvYWJzXCI7XG5AaW1wb3J0IFwibWF0aC9leHBcIjtcbkBpbXBvcnQgXCJtYXRoL2ZhY3RcIjtcbkBpbXBvcnQgXCJtYXRoL2ZyZXhwXCI7XG5AaW1wb3J0IFwibWF0aC9sZGV4cFwiO1xuQGltcG9ydCBcIm1hdGgvbG9nXCI7XG5AaW1wb3J0IFwibWF0aC9sdW1pbmFuY2UtcHJlY2FsY1wiO1xuQGltcG9ydCBcIm1hdGgvcG93XCI7XG5AaW1wb3J0IFwibWF0aC9udGgtcm9vdFwiO1xuQGltcG9ydCBcIm1hdGgvc3FydFwiO1xuQGltcG9ydCBcIm1hdGgvdHJpZ29ub21ldHJ5XCI7IiwiJEU6ICAgICAyLjcxODI4MTgyODQ1OTA0NTtcbiRQSTogICAgMy4xNDE1OTI2NTM1ODk3OTM7XG4kTE4yOiAgIDAuNjkzMTQ3MTgwNTU5OTQ1MztcbiRTUVJUMjogMS40MTQyMTM1NjIzNzMwOTUxOyIsIiIsIi8vIFJldHVybnMgRV54LCB3aGVyZSB4IGlzIHRoZSBhcmd1bWVudCwgYW5kIEUgaXMgRXVsZXIncyBjb25zdGFudCwgdGhlIGJhc2Ugb2YgdGhlIG5hdHVyYWwgbG9nYXJpdGhtcy5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQGV4YW1wbGVcbi8vICAgICBleHAoMSkgIC8vIDIuNzE4Mjhcbi8vICAgICBleHAoLTEpIC8vIDAuMzY3ODhcbkBmdW5jdGlvbiBleHAoJHgpIHtcbiAgICAkcmV0OiAwO1xuICAgIEBmb3IgJG4gZnJvbSAwIHRvIDI0IHtcbiAgICAgICAgJHJldDogJHJldCArIHBvdygkeCwgJG4pIC8gZmFjdCgkbik7XG4gICAgfVxuICAgIEByZXR1cm4gJHJldDtcbn0iLCIvLyBSZXR1cm5zIHRoZSBmYWN0b3JpYWwgb2YgYSBub24tbmVnYXRpdmUgaW50ZWdlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeCBBIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLlxuLy8gQHJldHVybiB7TnVtYmVyfVxuLy8gQGV4YW1wbGVcbi8vICAgICBmYWN0KDApIC8vIDFcbi8vICAgICBmYWN0KDgpIC8vIDQwMzIwXG5AZnVuY3Rpb24gZmFjdCgkeCkge1xuICAgIEBpZiAkeCA8IDAgb3IgICR4ICE9IGZsb29yKCR4KSB7XG4gICAgICAgIEB3YXJuIFwiQXJndW1lbnQgZm9yIGBmYWN0KClgIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLlwiO1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICAgICRyZXQ6IDE7XG4gICAgQHdoaWxlICR4ID4gMCB7XG4gICAgICAgICRyZXQ6ICRyZXQgKiAkeDtcbiAgICAgICAgJHg6ICR4IC0gMTtcbiAgICB9XG4gICAgQHJldHVybiAkcmV0O1xufSIsIi8vIFJldHVybnMgYSB0d28tZWxlbWVudCBsaXN0IGNvbnRhaW5pbmcgdGhlIG5vcm1hbGl6ZWQgZnJhY3Rpb24gYW5kIGV4cG9uZW50IG9mIG51bWJlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQHJldHVybiB7TGlzdH0gZnJhY3Rpb24sIGV4cG9uZW50XG5AZnVuY3Rpb24gZnJleHAoJHgpIHtcbiAgICAkZXhwOiAwO1xuICAgIEBpZiAkeCA8IDAge1xuICAgICAgICAkeDogJHggKiAtMTtcbiAgICB9XG4gICAgQGlmICR4IDwgMC41IHtcbiAgICAgICAgQHdoaWxlICR4IDwgMC41IHtcbiAgICAgICAgICAgICR4OiAkeCAqIDI7XG4gICAgICAgICAgICAkZXhwOiAkZXhwIC0gMTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHggPj0gMSB7XG4gICAgICAgIEB3aGlsZSAkeCA+PSAxIHtcbiAgICAgICAgICAgICR4OiAkeCAvIDI7XG4gICAgICAgICAgICAkZXhwOiAkZXhwICsgMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICR4LCAkZXhwO1xufSIsIi8vIFJldHVybnMgJHggKiAyXiRleHBcbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBcbkBmdW5jdGlvbiBsZGV4cCgkeCwgJGV4cCkge1xuICAgICRiOiBpZigkZXhwID49IDAsIDIsIDEgLyAyKTtcbiAgICBAaWYgJGV4cCA8IDAge1xuICAgICAgICAkZXhwOiAkZXhwICogLTE7XG4gICAgfVxuICAgIEB3aGlsZSAkZXhwID4gMCB7XG4gICAgICAgIEBpZiAkZXhwICUgMiA9PSAxIHtcbiAgICAgICAgICAgICR4OiAkeCAqICRiO1xuICAgICAgICB9XG4gICAgICAgICRiOiAkYiAqICRiO1xuICAgICAgICAkZXhwOiBmbG9vcigkZXhwICogMC41KTtcbiAgICB9XG4gICAgQHJldHVybiAkeDtcbn0iLCIvLyBSZXR1cm5zIHRoZSBuYXR1cmFsIGxvZ2FyaXRobSBvZiBhIG51bWJlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQGV4YW1wbGVcbi8vICAgICBsb2coMikgIC8vIDAuNjkzMTVcbi8vICAgICBsb2coMTApIC8vIDIuMzAyNTlcbkBmdW5jdGlvbiBsb2coJHgpIHtcbiAgICBAaWYgJHggPD0gMCB7XG4gICAgICAgIEByZXR1cm4gMCAvIDA7XG4gICAgfVxuICAgICRrOiBudGgoZnJleHAoJHggLyAkU1FSVDIpLCAyKTtcbiAgICAkeDogJHggLyBsZGV4cCgxLCAkayk7XG4gICAgJHg6ICgkeCAtIDEpIC8gKCR4ICsgMSk7XG4gICAgJHgyOiAkeCAqICR4O1xuICAgICRpOiAxO1xuICAgICRzOiAkeDtcbiAgICAkc3A6IG51bGw7XG4gICAgQHdoaWxlICRzcCAhPSAkcyB7XG4gICAgICAgICR4OiAkeCAqICR4MjtcbiAgICAgICAgJGk6ICRpICsgMjtcbiAgICAgICAgJHNwOiAkcztcbiAgICAgICAgJHM6ICRzICsgJHggLyAkaTtcbiAgICB9XG4gICAgQHJldHVybiAkTE4yICogJGsgKyAyICogJHM7XG59IiwiLy8gVXNlZnVsIE9OTFkgd2hlbiBjYWxjdWxhdGluZyBsaWdodG5lc3Mgb24gYSBjb2xvci5cbi8vIFxuLy8gV2UgYXJlIHJlcGxhY2luZyB0aGlzIGNhbGN1bGF0aW9uOlxuLy8gJHJnYjogaWYoJHJnYiA8IC4wMzkyOCwgJHJnYiAvIDEyLjkyLCBwb3coKCRyZ2IgKyAuMDU1KSAvIDEuMDU1LCAyLjQpKTtcbi8vICgkcmdiID0gYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUgZGl2aWRlZCBieSAyNTUpLlxuXG4kbHVtaW5hbmNlLXByZWNhbGM6IFxuMCwgMC4wMDAzMDM1MjY5ODM1LCAwLjAwMDYwNzA1Mzk2NzEsIDAuMDAwOTEwNTgwOTUwNiwgMC4wMDEyMTQxMDc5MzQsIDAuMDAxNTE3NjM0OTE4LCAwLjAwMTgyMTE2MTkwMSwgMC4wMDIxMjQ2ODg4ODUsIDAuMDAyNDI4MjE1ODY4LCAwLjAwMjczMTc0Mjg1MiwgXG4wLjAwMzAzNTI2OTgzNSwgMC4wMDMzNDY1MzU3NjQsIDAuMDAzNjc2NTA3MzI0LCAwLjAwNDAyNDcxNzAxOCwgMC4wMDQzOTE0NDIwMzcsIDAuMDA0Nzc2OTUzNDgxLCAwLjAwNTE4MTUxNjcwMiwgMC4wMDU2MDUzOTE2MjQsIDAuMDA2MDQ4ODMzMDIzLCBcbjAuMDA2NTEyMDkwNzkzLCAwLjAwNjk5NTQxMDE4NywgMC4wMDc0OTkwMzIwNDMsIDAuMDA4MDIzMTkyOTg1LCAwLjAwODU2ODEyNTYxOCwgMC4wMDkxMzQwNTg3MDIsIDAuMDA5NzIxMjE3MzIsIDAuMDEwMzI5ODIzMDMsIDAuMDEwOTYwMDk0MDEsIFxuMC4wMTE2MTIyNDUxOCwgMC4wMTIyODY0ODgzNiwgMC4wMTI5ODMwMzIzNCwgMC4wMTM3MDIwODMwNSwgMC4wMTQ0NDM4NDM2LCAwLjAxNTIwODUxNDQyLCAwLjAxNTk5NjI5MzM3LCAwLjAxNjgwNzM3NTc1LCAwLjAxNzY0MTk1NDQ5LCBcbjAuMDE4NTAwMjIwMTMsIDAuMDE5MzgyMzYwOTYsIDAuMDIwMjg4NTYzMDYsIDAuMDIxMjE5MDEwMzgsIDAuMDIyMTczODg0NzksIDAuMDIzMTUzMzY2MTgsIDAuMDI0MTU3NjMyNDUsIDAuMDI1MTg2ODU5NjMsIDAuMDI2MjQxMjIxODksIFxuMC4wMjczMjA4OTE2NCwgMC4wMjg0MjYwMzk1LCAwLjAyOTU1NjgzNDQ0LCAwLjAzMDcxMzQ0MzczLCAwLjAzMTg5NjAzMzA3LCAwLjAzMzEwNDc2NjU3LCAwLjAzNDMzOTgwNjgxLCAwLjAzNTYwMTMxNDg4LCAwLjAzNjg4OTQ1MDQsIFxuMC4wMzgyMDQzNzE2LCAwLjAzOTU0NjIzNTI4LCAwLjA0MDkxNTE5NjkxLCAwLjA0MjMxMTQxMDYyLCAwLjA0MzczNTAyOTI2LCAwLjA0NTE4NjIwNDM5LCAwLjA0NjY2NTA4NjM0LCAwLjA0ODE3MTgyNDIzLCAwLjA0OTcwNjU2NTk4LCBcbjAuMDUxMjY5NDU4MzcsIDAuMDUyODYwNjQ3MDIsIDAuMDU0NDgwMjc2NDQsIDAuMDU2MTI4NDkwMDUsIDAuMDU3ODA1NDMwMTksIDAuMDU5NTExMjM4MTYsIDAuMDYxMjQ2MDU0MjMsIDAuMDYzMDEwMDE3NjUsIDAuMDY0ODAzMjY2NjksIFxuMC4wNjY2MjU5Mzg2NCwgMC4wNjg0NzgxNjk4NCwgMC4wNzAzNjAwOTU3LCAwLjA3MjI3MTg1MDY4LCAwLjA3NDIxMzU2ODM4LCAwLjA3NjE4NTM4MTQ4LCAwLjA3ODE4NzQyMTgxLCAwLjA4MDIxOTgyMDMxLCAwLjA4MjI4MjcwNzEzLCBcbjAuMDg0Mzc2MjExNTQsIDAuMDg2NTAwNDYyMDQsIDAuMDg4NjU1NTg2MjksIDAuMDkwODQxNzExMTgsIDAuMDkzMDU4OTYyODUsIDAuMDk1MzA3NDY2NjMsIDAuMDk3NTg3MzQ3MTQsIDAuMDk5ODk4NzI4MjUsIDAuMTAyMjQxNzMzMSwgXG4wLjEwNDYxNjQ4NDEsIDAuMTA3MDIzMTAzLCAwLjEwOTQ2MTcxMDgsIDAuMTExOTMyNDI3OCwgMC4xMTQ0MzUzNzM4LCAwLjExNjk3MDY2NzgsIDAuMTE5NTM4NDI4LCAwLjEyMjEzODc3MjIsIDAuMTI0NzcxODE3NiwgMC4xMjc0Mzc2ODA0LCBcbjAuMTMwMTM2NDc2NywgMC4xMzI4NjgzMjE2LCAwLjEzNTYzMzMyOTcsIDAuMTM4NDMxNjE1LCAwLjE0MTI2MzI5MTEsIDAuMTQ0MTI4NDcwOSwgMC4xNDcwMjcyNjY1LCAwLjE0OTk1OTc4OTgsIDAuMTUyOTI2MTUyLCAwLjE1NTkyNjQ2MzcsIFxuMC4xNTg5NjA4MzUxLCAwLjE2MjAyOTM3NTYsIDAuMTY1MTMyMTk0NSwgMC4xNjgyNjk0MDAyLCAwLjE3MTQ0MTEwMDcsIDAuMTc0NjQ3NDAzNywgMC4xNzc4ODg0MTYsIDAuMTgxMTY0MjQ0MiwgMC4xODQ0NzQ5OTQ1LCAwLjE4NzgyMDc3MjMsIFxuMC4xOTEyMDE2ODI3LCAwLjE5NDYxNzgzMDQsIDAuMTk4MDY5MzE5NiwgMC4yMDE1NTYyNTM4LCAwLjIwNTA3ODczNjQsIDAuMjA4NjM2ODcwMSwgMC4yMTIyMzA3NTc0LCAwLjIxNTg2MDUwMDEsIDAuMjE5NTI2MTk5NywgMC4yMjMyMjc5NTczLCBcbjAuMjI2OTY1ODczNSwgMC4yMzA3NDAwNDg1LCAwLjIzNDU1MDU4MjIsIDAuMjM4Mzk3NTczOCwgMC4yNDIyODExMjI1LCAwLjI0NjIwMTMyNjcsIDAuMjUwMTU4Mjg0NywgMC4yNTQxNTIwOTQzLCAwLjI1ODE4Mjg1MjksIDAuMjYyMjUwNjU3NSwgXG4wLjI2NjM1NTYwNDgsIDAuMjcwNDk3NzkxLCAwLjI3NDY3NzMxMjEsIDAuMjc4ODk0MjYzNSwgMC4yODMxNDg3NDA0LCAwLjI4NzQ0MDgzNzcsIDAuMjkxNzcwNjQ5OCwgMC4yOTYxMzgyNzA4LCAwLjMwMDU0Mzc5NDQsIDAuMzA0OTg3MzE0MSwgXG4wLjMwOTQ2ODkyMjgsIDAuMzEzOTg4NzEzNCwgMC4zMTg1NDY3NzgxLCAwLjMyMzE0MzIwOTEsIDAuMzI3Nzc4MDk4MSwgMC4zMzI0NTE1MzYzLCAwLjMzNzE2MzYxNSwgMC4zNDE5MTQ0MjQ5LCAwLjM0NjcwNDA1NjQsIDAuMzUxNTMyNTk5NSwgXG4wLjM1NjQwMDE0NDEsIDAuMzYxMzA2Nzc5OCwgMC4zNjYyNTI1OTU2LCAwLjM3MTIzNzY4MDUsIDAuMzc2MjYyMTIzLCAwLjM4MTMyNjAxMTQsIDAuMzg2NDI5NDMzOCwgMC4zOTE1NzI0Nzc3LCAwLjM5Njc1NTIzMDcsIDAuNDAxOTc3Nzc5OCwgXG4wLjQwNzI0MDIxMTksIDAuNDEyNTQyNjEzNSwgMC40MTc4ODUwNzA4LCAwLjQyMzI2NzY3LCAwLjQyODY5MDQ5NjYsIDAuNDM0MTUzNjM2MiwgMC40Mzk2NTcxNzM4LCAwLjQ0NTIwMTE5NDUsIDAuNDUwNzg1NzgyOCwgMC40NTY0MTEwMjMyLCBcbjAuNDYyMDc2OTk5NywgMC40Njc3ODM3OTYxLCAwLjQ3MzUzMTQ5NjEsIDAuNDc5MzIwMTgzMSwgMC40ODUxNDk5NDAxLCAwLjQ5MTAyMDg0OTgsIDAuNDk2OTMyOTk1MSwgMC41MDI4ODY0NTgsIDAuNTA4ODgxMzIwOSwgMC41MTQ5MTc2NjU0LCBcbjAuNTIwOTk1NTczMiwgMC41MjcxMTUxMjU3LCAwLjUzMzI3NjQwNCwgMC41Mzk0Nzk0ODksIDAuNTQ1NzI0NDYxNCwgMC41NTIwMTE0MDE1LCAwLjU1ODM0MDM4OTYsIDAuNTY0NzExNTA1NywgMC41NzExMjQ4Mjk1LCAwLjU3NzU4MDQ0MDQsIFxuMC41ODQwNzg0MTc5LCAwLjU5MDYxODg0MDksIDAuNTk3MjAxNzg4NCwgMC42MDM4MjczMzg5LCAwLjYxMDQ5NTU3MDgsIDAuNjE3MjA2NTYyNCwgMC42MjM5NjAzOTE3LCAwLjYzMDc1NzEzNjMsIDAuNjM3NTk2ODc0LCAwLjY0NDQ3OTY4MiwgXG4wLjY1MTQwNTYzNzQsIDAuNjU4Mzc0ODE3MywgMC42NjUzODcyOTgzLCAwLjY3MjQ0MzE1NywgMC42Nzk1NDI0Njk2LCAwLjY4NjY4NTMxMjQsIDAuNjkzODcxNzYxMywgMC43MDExMDE4OTE5LCAwLjcwODM3NTc3OTksIDAuNzE1NjkzNTAwNSwgXG4wLjcyMzA1NTEyODksIDAuNzMwNDYwNzQwMSwgMC43Mzc5MTA0MDg4LCAwLjc0NTQwNDIwOTUsIDAuNzUyOTQyMjE2OCwgMC43NjA1MjQ1MDQ3LCAwLjc2ODE1MTE0NzIsIDAuNzc1ODIyMjE4MywgMC43ODM1Mzc3OTE1LCAwLjc5MTI5Nzk0MDMsIFxuMC43OTkxMDI3MzgsIDAuODA2OTUyMjU3NywgMC44MTQ4NDY1NzIyLCAwLjgyMjc4NTc1NDQsIDAuODMwNzY5ODc2OCwgMC44Mzg3OTkwMTE3LCAwLjg0Njg3MzIzMTUsIDAuODU0OTkyNjA4MSwgMC44NjMxNTcyMTM1LCAwLjg3MTM2NzExOTIsIFxuMC44Nzk2MjIzOTY5LCAwLjg4NzkyMzExNzksIDAuODk2MjY5MzUzNCwgMC45MDQ2NjExNzQ0LCAwLjkxMzA5ODY1MTgsIDAuOTIxNTgxODU2MywgMC45MzAxMTA4NTg0LCAwLjkzODY4NTcyODUsIDAuOTQ3MzA2NTM2NywgMC45NTU5NzMzNTMyLCBcbjAuOTY0Njg2MjQ3OSwgMC45NzM0NDUyOTA0LCAwLjk4MjI1MDU1MDMsIDAuOTkxMTAyMDk3MSwgMTsiLCIvLyBSZXR1cm5zIGJhc2UgdG8gdGhlIGV4cG9uZW50IHBvd2VyLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFRoZSBiYXNlIG51bWJlclxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHAgVGhlIGV4cG9uZW50IHRvIHdoaWNoIHRvIHJhaXNlIGJhc2Vcbi8vIEByZXR1cm4ge051bWJlcn1cbi8vIEBleGFtcGxlXG4vLyAgICAgcG93KDQsIDIpICAgLy8gMTZcbi8vICAgICBwb3coNCwgLTIpICAvLyAwLjA2MjVcbi8vICAgICBwb3coNCwgMC4yKSAvLyAxLjMxOTUxXG4vLyBAZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwKSB7XG4vLyAgICAgQGlmICRleHAgPT0gZmxvb3IoJGV4cCkge1xuLy8gICAgICAgICAkcjogMTtcbi8vICAgICAgICAgJHM6IDA7XG4vLyAgICAgICAgIEBpZiAkZXhwIDwgMCB7XG4vLyAgICAgICAgICAgICAkZXhwOiAkZXhwICogLTE7XG4vLyAgICAgICAgICAgICAkczogMTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgICBAd2hpbGUgJGV4cCA+IDAge1xuLy8gICAgICAgICAgICAgQGlmICRleHAgJSAyID09IDEge1xuLy8gICAgICAgICAgICAgICAgICRyOiAkciAqICRiYXNlO1xuLy8gICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgJGV4cDogZmxvb3IoJGV4cCAqIDAuNSk7XG4vLyAgICAgICAgICAgICAkYmFzZTogJGJhc2UgKiAkYmFzZTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgICBAcmV0dXJuIGlmKCRzICE9IDAsIDEgLyAkciwgJHIpO1xuLy8gICAgIH0gQGVsc2Uge1xuLy8gICAgICAgICBAcmV0dXJuIGV4cChsb2coJGJhc2UpICogJGV4cCk7XG4vLyAgICAgfVxuLy8gfVxuXG4vLyBTaW1wbGVyIFBPVygpLCBmb3Igc3BlZWQhXG5AZnVuY3Rpb24gcG93KCRudW1iZXIsICRleHApIHtcbiAgJHZhbHVlOiAkbnVtYmVyO1xuICBAaWYgJGV4cCA+IDAge1xuICAgIC8vIElmIHRoZSBleHBvbmVudCBpcyBwb3NpdGl2ZSwgbXVsdGlwbHkuXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cCA8IDAge1xuICAgIC8vIElmIHRoZSBleHBvbmVudCBpcyBuZWdhdGl2ZSwgZGl2aWRlLlxuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSgkZXhwKSB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBJZiB0aGUgZXhwb25lbnQgaXMgemVybywganVzdCByZXR1cm4gMS5cbiAgICAkdmFsdWU6IDE7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn0iLCJAZnVuY3Rpb24gbnRoLXJvb3QtZXN0aW1hdGUoJG51bWJlciwgJGd1ZXNzLCAkbikge1xuICBAcmV0dXJuIDEvJG4gKiAoKCRudW1iZXIvcG93KCRndWVzcywgJG4gLSAxKSkgLSAkZ3Vlc3MpO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bWJlciwgJGRlZ3JlZSwgJHByZWNpc2lvbjogNSkge1xuICAkZ3Vlc3M6IDIuNztcbiAgJHByZXZpb3VzLWd1ZXNzOiAwO1xuICBcbiAgLy8gV2hpbGUgcHJlY2lzaW9uIGhhcyBub3QgYmVlbiBtZXQsIGtlZXAgZ3Vlc3NpbmdcbiAgQHdoaWxlIHJvdW5kKCRwcmV2aW91cy1ndWVzcyAqIHBvdygxMCwgJHByZWNpc2lvbikpICE9IHJvdW5kKCRndWVzcyAqIHBvdygxMCwgJHByZWNpc2lvbikpIHtcbiAgICAkcHJldmlvdXMtZ3Vlc3M6ICRndWVzcztcbiAgICAkZ3Vlc3M6ICRndWVzcyArIG50aC1yb290LWVzdGltYXRlKCRudW1iZXIsICRndWVzcywgNSk7XG4gIH1cbiAgXG4gIEByZXR1cm4gJGd1ZXNzO1xufSIsIi8vIFJldHVybnMgdGhlIHNxdWFyZSByb290IG9mIGEgbnVtYmVyLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICR4XG4vLyBAZXhhbXBsZVxuLy8gICAgIHNxcnQoMikgLy8gMS40MTQyMVxuLy8gICAgIHNxcnQoNSkgLy8gMi4yMzYwN1xuQGZ1bmN0aW9uIHNxcnQgKCR4KSB7XG4gICAgQGlmICR4IDwgMCB7XG4gICAgICAgIEB3YXJuIFwiQXJndW1lbnQgZm9yIGBzcXJ0KClgIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIuXCI7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgJHJldDogMTtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDI0IHtcbiAgICAgICAgJHJldDogJHJldCAtIChwb3coJHJldCwgMikgLSAkeCkgLyAoMiAqICRyZXQpO1xuICAgIH1cbiAgICBAcmV0dXJuICRyZXQ7XG59IiwiQGZ1bmN0aW9uIHBpKCkge1xuICAgIEByZXR1cm4gMy4xNDE1OTI2NTM1OTtcbn1cblxuQGZ1bmN0aW9uIHJhZCgkYW5nbGUpIHtcbiAgICAkdW5pdDogdW5pdCgkYW5nbGUpO1xuICAgICR1bml0bGVzczogJGFuZ2xlIC8gKCRhbmdsZSAqIDAgKyAxKTtcbiAgICAvLyBJZiB0aGUgYW5nbGUgaGFzICdkZWcnIGFzIHVuaXQsIGNvbnZlcnQgdG8gcmFkaWFucy5cbiAgICBAaWYgJHVuaXQgPT0gZGVnIHtcbiAgICAgICAgJHVuaXRsZXNzOiAkdW5pdGxlc3MgLyAxODAgKiBwaSgpO1xuICAgIH1cbiAgICBAcmV0dXJuICR1bml0bGVzcztcbn1cblxuQGZ1bmN0aW9uIHNpbigkYW5nbGUpIHtcbiAgICAkc2luOiAwO1xuICAgICRhbmdsZTogcmFkKCRhbmdsZSk7XG4gICAgLy8gSXRlcmF0ZSBhIGJ1bmNoIG9mIHRpbWVzLlxuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggMTAge1xuICAgICAgICAkc2luOiAkc2luICsgcG93KC0xLCAkaSkgKiBwb3coJGFuZ2xlLCAoMiAqICRpICsgMSkpIC8gZmFjdCgyICogJGkgKyAxKTtcbiAgICB9XG4gICAgQHJldHVybiAkc2luO1xufVxuXG5AZnVuY3Rpb24gY29zKCRhbmdsZSkge1xuICAgICRjb3M6IDA7XG4gICAgJGFuZ2xlOiByYWQoJGFuZ2xlKTtcbiAgICAvLyBJdGVyYXRlIGEgYnVuY2ggb2YgdGltZXMuXG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAxMCB7XG4gICAgICAgICRjb3M6ICRjb3MgKyBwb3coLTEsICRpKSAqIHBvdygkYW5nbGUsIDIgKiAkaSkgLyBmYWN0KDIgKiAkaSk7XG4gICAgfVxuICAgIEByZXR1cm4gJGNvcztcbn1cblxuQGZ1bmN0aW9uIHRhbigkYW5nbGUpIHtcbiAgICBAcmV0dXJuIHNpbigkYW5nbGUpIC8gY29zKCRhbmdsZSk7XG59XG5cbi8qKlxuICogb24tY2lyY2xlIHRha2VzIGEgcmFkaXVzLCBwb3NpdGlvbiBvbiBhIGNpcmNsZSwgbnVtYmVyIG9mIHBvc3NpYmxlIHBvc2l0aW9ucyBhbmQgcmV0dXJucyB0b3AgYW5kIGxlZnQgcHJvcGVydGllc1xuICpcbiAqICRvcmRpbmFsUG9zaXRpb24ge051bWJlcn0gdGhlIHBvc2l0aW9uIG9mIHRoZSBpdGVtIG9uIHRoZSBjaXJjbGUsIGNvdW50aW5nIGZyb20gMSAoTm9ydGgpIHRocm91Z2ggTlxuICogJHJhZGl1cyB7TnVtYmVyfSAgICByYWRpdXMgb2YgdGhlIGNpcmNsZSBpbiBwaXhlbHNcbiAqICRwb3NpdGlvbnMge051bWJlcn0gICB0aGUgbnVtYmVyIG9mIHBvc2l0aW9ucyBvbiB0aGUgY2lyY2xlXG4gKiAkb3JpZ2luWCB7TnVtYmVyfSAgIG9wdGlvbmFsIFggb3JpZ2luIHBvaW50IGZvciB0aGUgY2lyY2xlLCBkZWZhdWx0cyB0byB0aGUgcmFkaXVzXG4gKiAkb3JpZ2luWSB7TnVtYmVyfSAgIG9wdGlvbmFsIFkgb3JpZ2luIHBvaW50IGZvciB0aGUgY2lyY2xlLCBkZWZhdWx0cyB0byB0aGUgcmFkaXVzXG4gKiAkb2Zmc2V0WCB7TnVtYmVyfSAgIG9wdGlvbmFsIFggb2Zmc2V0IGZvciB0aGUgaXRlbSwgeW91IG1pZ2h0IHVzZSAxLzIgb2YgdGhlIHdpZHRoIG9mIGFuIGl0ZW0sIGRlZmF1bHQgaXMgMFxuICogJG9mZnNldFkge051bWJlcn0gICBvcHRpb25hbCBZIG9mZnNldCBmb3IgdGhlIGl0ZW0sIHlvdSBtaWdodCB1c2UgMS8yIG9mIHRoZSBoZWlnaHQgb2YgYW4gaXRlbSwgZGVmYXVsdCBpcyAwXG4gKi9cbkBmdW5jdGlvbiBvbi1jaXJjbGUoJG9yZGluYWxQb3NpdGlvbiwgJHJhZGl1czogMTgwLCAkcG9zaXRpb25zOiAxMywgJG9yaWdpblg6ICRyYWRpdXMsICRvcmlnaW5ZOiAkcmFkaXVzLCAkb2Zmc2V0WDogMCwgJG9mZnNldFk6IDAsICRjaXJjbGVTaXplOiAzNjAsICRzdGFydFBvczogOTAsICRyZXZlcnNlT3JkZXI6IHRydWUpIHtcblxuICAgIEBpZiAkcmV2ZXJzZU9yZGVyIHtcbiAgICAgICAgJHBvc2l0aW9uQW5nbGVEZWdyZWVzOiAtMSAqICgkb3JkaW5hbFBvc2l0aW9uIC0gMSkgKiAkY2lyY2xlU2l6ZSAvICRwb3NpdGlvbnMgKyAkc3RhcnRQb3M7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICRwb3NpdGlvbkFuZ2xlRGVncmVlczogKCRvcmRpbmFsUG9zaXRpb24gLSAxKSAqICRjaXJjbGVTaXplIC8gJHBvc2l0aW9ucyArICRzdGFydFBvcztcbiAgICB9XG5cbiAgICAkcG9zaXRpb25BbmdsZVJhZGlhbnM6ICRwb3NpdGlvbkFuZ2xlRGVncmVlcyAqIHBpKCkgLyAxODA7XG5cbiAgICAkY2lyY2xlWHBvczogI3tyb3VuZCgkb3JpZ2luWCArICRvZmZzZXRYICsgJHJhZGl1cyAqIGNvcygkcG9zaXRpb25BbmdsZVJhZGlhbnMpKX1weDtcbiAgICAkY2lyY2xlWXBvczogI3tyb3VuZCgkb3JpZ2luWSArICRvZmZzZXRZICsgJHJhZGl1cyAqIHNpbigkcG9zaXRpb25BbmdsZVJhZGlhbnMpKX1weDtcblxuICAgIEByZXR1cm4gKCRjaXJjbGVYcG9zLCAkY2lyY2xlWXBvcyk7XG5cbn0iLCIvLyBLdWRvczogaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxMy8wOC8wOC9hZHZhbmNlZC1zYXNzLWxpc3QtZnVuY3Rpb25zL1xuXG5AZnVuY3Rpb24gcmVwbGFjZS1udGgoJGxpc3QsICRpbmRleCwgJHZhbHVlKSB7XG4gICRyZXN1bHQ6IG51bGw7XG4gICAgICBcbiAgQGlmIHR5cGUtb2YoJGluZGV4KSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiJGluZGV4OiAje3F1b3RlKCRpbmRleCl9IGlzIG5vdCBhIG51bWJlciBmb3IgYHJlcGxhY2UtbnRoYC5cIjtcbiAgfVxuXG4gIEBlbHNlIGlmICRpbmRleCA9PSAwIHtcbiAgICBAd2FybiBcIkxpc3QgaW5kZXggMCBtdXN0IGJlIGEgbm9uLXplcm8gaW50ZWdlciBmb3IgYHJlcGxhY2UtbnRoYC5cIjtcbiAgfVxuICAgICAgXG4gIEBlbHNlIGlmIGFicygkaW5kZXgpID4gbGVuZ3RoKCRsaXN0KSB7XG4gICAgQHdhcm4gXCJMaXN0IGluZGV4IGlzICN7JGluZGV4fSBidXQgbGlzdCBpcyBvbmx5ICN7bGVuZ3RoKCRsaXN0KX0gaXRlbSBsb25nIGZvciBgcmVwbGFjZS1udGhgLlwiO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRyZXN1bHQ6ICgpO1xuICAgICRpbmRleDogaWYoJGluZGV4IDwgMCwgbGVuZ3RoKCRsaXN0KSArICRpbmRleCArIDEsICRpbmRleCk7ICBcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRsaXN0KSB7XG4gICAgICBAaWYgJGkgPT0gJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICR2YWx1ZSk7XG4gICAgICB9XG4gICAgXG4gICAgICBAZWxzZSB7XG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gXG4gIEByZXR1cm4gJHJlc3VsdDtcbn0iLCJAaW1wb3J0IFwic3RyaW5ncy9zdHItZXhwbG9kZVwiOyIsIi8vLyBTcGxpdCBgJHN0cmluZ2AgaW50byBzZXZlcmFsIHBhcnRzIHVzaW5nIGAkZGVsaW1pdGVyYC5cbi8vLyBAc2luY2UgMS4yLjBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0cmluZyAgICAtIHN0cmluZyB0byBzcGxpdFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVsaW1pdGVyICgnJykgLSBzdHJpbmcgdG8gdXNlIGFzIGEgZGVsaW1pdGVyIHRvIHNwbGl0IGAkc3RyaW5nYFxuLy8vIEByZXR1cm4ge0xpc3R9XG5AZnVuY3Rpb24gX3NzLXN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXI6IFwiXCIpIHtcbiAgICAkcmVzdWx0OiAoKTtcbiAgICAkbGVuZ3RoOiBzdHItbGVuZ3RoKCRzdHJpbmcpO1xuICAgIFxuICAgIEBpZiBzdHItbGVuZ3RoKCRkZWxpbWl0ZXIpID09IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQHJldHVybiAkcmVzdWx0O1xuICAgIH1cbiAgICBcbiAgICAkcnVubmluZzogdHJ1ZTtcbiAgICAkcmVtYWluaW5nOiAkc3RyaW5nO1xuICAgIFxuICAgIEB3aGlsZSAkcnVubmluZyB7XG4gICAgICAgICRpbmRleDogc3RyLWluZGV4KCRyZW1haW5pbmcsICRkZWxpbWl0ZXIpO1xuICAgICAgICBcbiAgICAgICAgQGlmICRpbmRleCB7XG4gICAgICAgICAgICAkc2xpY2U6IHN0ci1zbGljZSgkcmVtYWluaW5nLCAxLCAkaW5kZXggLSAxKTtcbiAgICAgICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkc2xpY2UpO1xuICAgICAgICAgICAgJHJlbWFpbmluZzogc3RyLXNsaWNlKCRyZW1haW5pbmcsICRpbmRleCArIHN0ci1sZW5ndGgoJGRlbGltaXRlcikpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRydW5uaW5nOiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBAcmV0dXJuIGFwcGVuZCgkcmVzdWx0LCAkcmVtYWluaW5nKTtcbn1cblxuQGZ1bmN0aW9uIHN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXI6ICcnKSB7XG4gICAgLy9AaWYgdHlwZS1vZigkc3RyaW5nKSAhPSBcInN0cmluZ1wiIHtcbiAgICAvLyAgICBAZXJyb3IgXCJgZXhwbG9kZWAgZnVuY3Rpb24gZXhwZWN0aW5nIGEgc3RyaW5nOyAje3R5cGUtb2YoJHN0cmluZyl9IGdpdmVuLlwiO1xuICAgIC8vfVxuICAgIFxuICAgIC8vQGlmIHR5cGUtb2YoJGRlbGltaXRlcikgIT0gXCJzdHJpbmdcIiB7XG4gICAgLy8gICAgQGVycm9yIFwiYGV4cGxvZGVgIGZ1bmN0aW9uIGV4cGVjdGluZyBhIHN0cmluZzsgI3t0eXBlLW9mKCRkZWxpbWl0ZXIpfSBnaXZlbi5cIjtcbiAgICAvL31cbiAgICBcbiAgICBAcmV0dXJuIF9zcy1zdHItZXhwbG9kZSgkc3RyaW5nLCAkZGVsaW1pdGVyKTtcbn0iLCJAZnVuY3Rpb24gc3RyaXAtdW5pdHMoJG51bWJlcikge1xuICAgIEByZXR1cm4gJG51bWJlciAvICgkbnVtYmVyICogMCArIDEpO1xufSIsIi8vTm90ZSB0aGF0IDsgaXMgdGhlIEBpbXBvcnQgc2VwYXJhdG9yXG4kZm9udC1jb21ibzogXCJUaXRpbGxpdW0rV2ViOjQwMCw3MDA7ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICdUaXRpbGxpdW0gV2ViJywgc2Fucy1zZXJpZlwiICFkZWZhdWx0O1xuXG4kZm9udC1wYXJ0czogc3RyLWV4cGxvZGUoJGZvbnQtY29tYm8sICc7Jyk7XG5cbkBpZiBsZW5ndGgoJGZvbnQtcGFydHMpIDwgMiB7XG4gICAgJGZvbnQtcGFydHM6IHN0ci1leHBsb2RlKFwiVGl0aWxsaXVtK1dlYjo0MDAsNzAwOyAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyAnVGl0aWxsaXVtIFdlYicsIHNhbnMtc2VyaWZcIiwgJzsnKTtcbn1cblxuQGlmIGxlbmd0aCgkZm9udC1wYXJ0cykgPiAyIHtcbiAgICAkZm9udC1pbXBvcnQ6IHVucXVvdGUobnRoKCRmb250LXBhcnRzLCAxKSk7XG4gICAgJGZvbnQtaXMtaW1wb3J0ZWQ6IGZhbHNlICFkZWZhdWx0ICFnbG9iYWw7XG5cbiAgICBAaWYgJGZvbnQtaXMtaW1wb3J0ZWQgIT0gdHJ1ZSB7XG4gICAgICAgIEBpbXBvcnQgdXJsKCcvL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9I3skZm9udC1pbXBvcnR9Jyk7XG4gICAgICAgICRmb250LWlzLWltcG9ydGVkOiB0cnVlO1xuICAgIH1cblxuICAgICRib2R5LWZvbnQtZmFtaWx5OiB1bnF1b3RlKG50aCgkZm9udC1wYXJ0cywgMikpO1xuICAgICRoZWFkZXItZm9udC1mYW1pbHk6IHVucXVvdGUobnRoKCRmb250LXBhcnRzLCAzKSk7XG59IEBlbHNlIHtcbiAgICAkYm9keS1mb250LWZhbWlseTogdW5xdW90ZShudGgoJGZvbnQtcGFydHMsIDEpKTtcbiAgICAkaGVhZGVyLWZvbnQtZmFtaWx5OiB1bnF1b3RlKG50aCgkZm9udC1wYXJ0cywgMikpO1xufVxuXG5AaWYgKHN0ci1pbmRleCgkZm9udC1jb21ibywgJ05vdG8gU2FucycpKSB7XG4gICAgJG1lbnUtZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4gICAgJHV0aWxzLW5hdi1mb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseSAhZGVmYXVsdDtcbn0iLCIvLyBBcGV4IHNwZWNpZmljIHNldHRpbmdzXG5cbi8vIEdsb2JhbCBzZXR0aW5nc1xuJGJhc2UtZm9udC1zaXplOiA4Ny41JSAhZGVmYXVsdDtcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLyBGb250cyBzZXR0aW5nc1xuJGgxLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpICFkZWZhdWx0O1xuJGgyLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJGg1LWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRoNi1mb250LXNpemU6IC44NjdyZW0gIWRlZmF1bHQ7XG4kcGFnZS1oZWFkZXItc2l6ZTogJGgxLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoMS1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoNSkgIWRlZmF1bHQ7XG4kaDItZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDMpICFkZWZhdWx0O1xuJGgzLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYygyKSAhZGVmYXVsdDtcbiRoNC1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG4kaDUtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG4kaDYtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG4kc21hbGwtZm9udC1zaXplOiA3MS40MjklICFkZWZhdWx0O1xuJHByb2R1Y3QtcHJpY2UtZm9udHNpemU6ICRoMS1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJvZHVjdC1wcmljZS1mb250c2l6ZS1sZzogJGgxLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRjb21tZW50LWhlYWRlci1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8gR3JpZCBzZXR0aW5nc1xuJHNtYWxsLXJhbmdlOiAoMGVtLCA0NWVtKSAhZGVmYXVsdDtcbiRtZWRpdW0tcmFuZ2U6ICg0NS4wNjNlbSwgNjRlbSkgIWRlZmF1bHQ7XG4kbGFyZ2UtcmFuZ2U6ICg2NC4wNjNlbSwgOTBlbSkgIWRlZmF1bHQ7XG4keGxhcmdlLXJhbmdlOiAoOTAuMDYzZW0sIDEyMGVtKSAhZGVmYXVsdDtcbiR4eGxhcmdlLXJhbmdlOiAoMTIwLjA2M2VtLCA5OTk5OTk5OWVtKSAhZGVmYXVsdDtcbiRpbmNsdWRlLXhsLWh0bWwtZ3JpZC1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuJHNlY3Rpb24tc3BhY2luZy1zaXplOiAyLjc1cmVtICFkZWZhdWx0O1xuXG4vLyBMb2dvIHNldHRpbmdzOlxuJGxvZ28taGVpZ2h0OiByZW0tY2FsYyg3MCk7XG4kbG9nby1tZWRpdW0taGVpZ2h0OiByZW0tY2FsYyg3MCk7XG4kbG9nby1sYXJnZS1oZWlnaHQ6ICRsb2dvLWhlaWdodDtcbiRsb2dvLXJvdy1zcGFjaW5nOiAwO1xuJHRleHQtbG9nby1mb250LXNpemU6IHJlbS1jYWxjKDI0KTtcblxuLy8gQ2FydCBidXR0b24gc3R5bGluZ1xuJGNhcnQtc3R5bGU6IHNpbXBsZTtcbiRjYXJ0LXF1YW50aXR5LWJhZGdlLXJhZGl1czogMDtcbiRjYXJ0LXF1YW50aXR5LWJhZGdlLXNpemU6IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vIE1lbnUgc2V0dGluZ3NcbiRtZW51LW92ZXJsYXBzLXNsaWRlcjogMCAhZGVmYXVsdDsgLy8gMCA9IGZhbHNlLCAxID0gdHJ1ZVxuJG9mZi1jYW52YXMtb24tbWVkaXVtOiB0cnVlO1xuJG1lbnUtdHlwZTogJ2Ryb3Bkb3duJyAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG4kbmF2LWZpcnN0LWxldmVsLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kbmF2LWZpcnN0LWxldmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuJG5hdi1maXJzdC1sZXZlbC1zaWRlLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG5cbi8vIEJyZWFkY3J1bWJzIHNldHRpbmdzXG4kY3J1bWItc2lkZS1wYWRkaW5nOiAuM3JlbSAhZGVmYXVsdDtcblxuLy8gU2xhYiBzZXBhcmF0b3JcbiRzbGFiLXNlcGFyYXRvci13aWR0aDogNTBweCAhZGVmYXVsdDtcbiRzbGFiLXNlcGFyYXRvci1oZWlnaHQ6IDJweCAhZGVmYXVsdDtcblxuLy8gUmVhZG9uIGljb24gc2V0dGluZ3NcbiRyZWFkb24taWNvbi1mb250LXNpemU6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kcmVhZG9uLW92ZXJsYXktb3BhY2l0eTogMC42ICFkZWZhdWx0O1xuJHJlYWRvbi1pY29uLW9wYWNpdHk6IC43NSAhZGVmYXVsdDtcbiRyZWFkb24taWNvbi1ob3Zlci1vcGFjaXR5OiAuOTUgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlciBjb2xvcnNcbiRib3JkZXItZGVmYXVsdC1vcGFjaXR5OiAwLjEgIWRlZmF1bHQ7XG4kYm9yZGVyLWRlZmF1bHQtaG92ZXItb3BhY2l0eTogMC4yICFkZWZhdWx0O1xuJGJvcmRlci1oYXJkLW9wYWNpdHk6IDAuMjUgIWRlZmF1bHQ7XG4kYm9yZGVyLWhhcmQtaG92ZXItb3BhY2l0eTogMC41ICFkZWZhdWx0O1xuXG4vLyBHZW5lcmFsIHByaWNlIHN0dWZmXG4kZGlzY291bnQtcHJpY2UtbWFyZ2luOiAuNXJlbSAhZGVmYXVsdDtcblxuLy8gUHJvZHVjdCBncmlkIHNldHRpbmdzXG4kcHJvZHVjdC1ncmlkLWJ1eS1idXR0b24tdG9wLXNwYWNpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRtZWRpYS1ncmlkLWJvcmRlci1yYWRpdXM6IG1pbigwLCAkZ2xvYmFsLXJhZGl1cykgIWRlZmF1bHQ7XG4kcHJvZHVjdC1ncmlkLWJ1eS1idXR0b24tZGlzdGFuY2U6IDQuNXJlbSAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtaW5uZXItcGFkZGluZzogMCAhZGVmYXVsdDtcbiRwcm9kdWN0bGlzdF9wcm9kdWN0LWJ1dHRvbi13cmFwLWJnLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG4kcHJvZHVjdGxpc3QtYnV5LWJ1dHRvbi13aWR0aDogYXV0byAhZGVmYXVsdDtcbiRwcm9kdWN0bGlzdC1idXktYnV0dG9uLXNwYWNpbmc6IHJlbS1jYWxjKDIwKTtcbiRzaG93LXByb2R1Y3QtcHJpY2U6IDEgIWRlZmF1bHQ7XG5cbi8vIEJ1dHRvbiBzdHlsaW5nXG4kYnV0dG9uLWZvbnQtdG55OiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7IC8vIGZvbnQgc2l6ZXNcbiRidXR0b24tZm9udC1zbWw6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1tZWQ6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1scmc6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuJGJ1dHRvbi10bnk6IHJlbS1jYWxjKDYpICFkZWZhdWx0OyAvLyBwYWRkaW5nc1xuJGJ1dHRvbi1zbWw6IHJlbS1jYWxjKDgpICFkZWZhdWx0O1xuJGJ1dHRvbi1tZWQ6IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRidXR0b24tbHJnOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbiRidXR0b24tYm9yZGVyLXdpZHRoOiAycHggIWRlZmF1bHQ7XG5cbi8vIEJ4c2xpZGVyIHByb2R1Y3QgaW1hZ2VzIFxuJGJ4c2xpZGVyLWNvbnRyb2xzLW5hdmlnYXRpb24tcmFkaXVzOiAwICFkZWZhdWx0O1xuJGJ4c2xpZGVyLWNvbnRyb2xzLWJvcmRlci1zaXplOiAwICFkZWZhdWx0O1xuXG4vLyBUaHVtYiBzZXR0aW5nc1xuJHRodW1iLWJveC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG4kdGh1bWItYm94LXNoYWRvdy1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcbiR0aHVtYi1ib3JkZXItd2lkdGg6IDAgIWRlZmF1bHQ7XG5cbi8vIFRhYnNcbiR0YWJzLXBhZGRpbmc6IDEuNXJlbSAhZGVmYXVsdDtcblxuLy8gRm9ybXNcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1ib3R0b20tbWFyZ2luOiAwLjVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLXdpZHRoOiAycHggIWRlZmF1bHQ7XG4kaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdDogZmFsc2UgIWRlZmF1bHQ7XG4kaW5wdXQtYm94LXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDsiLCIvLyBNYWluIGNvbG9yIHZhcmlhYmxlc1xuJHByaW1hcnktY29sb3I6ICMwMDAwMDAgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWNvbG9yOiAjZTdlN2U3ICFkZWZhdWx0O1xuJGNhbGwtdG8tYWN0aW9uLWNvbG9yOiAjREIzMTFCICFkZWZhdWx0O1xuJGhvdmVyLWNvbG9yOiAjZTAzMTE0ICFkZWZhdWx0O1xuXG4vLyBTZWN0aW9uc1xuJHRvcC1iZzogI2ZmZmZmZiAhZGVmYXVsdDtcbiRjb250ZW50LWJnOiAjZmZmZmZmICFkZWZhdWx0O1xuJG5hdmlnYXRpb24tYmc6ICRjb250ZW50LWJnICFkZWZhdWx0O1xuJGZvb3Rlci1iZzogI2ZmZmZmZiAhZGVmYXVsdDtcbiRlbmQtYmc6ICNmM2YzZjMgIWRlZmF1bHQ7XG4kYm9keS1iZzogJGVuZC1iZyAhZGVmYXVsdDtcblxuLy8gSGVscGVyIHZhcmlhYmxlc1xuJGNvbnRlbnQtYmctaXMtZGFyazogaWYobHVtYSgkY29udGVudC1iZykgPCA1MCwgdHJ1ZSwgZmFsc2UpICFkZWZhdWx0O1xuJGZvb3Rlci1iZy1pcy1kYXJrOiAgaWYobHVtYSgkZm9vdGVyLWJnKSA8IDUwLCB0cnVlLCBmYWxzZSkgIWRlZmF1bHQ7XG5cbi8vIE9uZSBtb3JlIHNlY3Rpb25cbiRoZWFkZXItYmc6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDUlKSwgZGFya2VuKCRjb250ZW50LWJnLCA1JSkpICFkZWZhdWx0O1xuXG4vLyBDcnVtYnNcbiRjcnVtYi1iZzogJGhlYWRlci1iZyAhZGVmYXVsdDtcblxuLy8gU2xhYiBzZXBhcmF0b3JcbiRzbGFiLXNlcGFyYXRvci1jb2xvcjogaWYobHVtYSgkY29udGVudC1iZykgPCA1MCwgI2NmY2ZjZiwgIzMwMzAzMCkgIWRlZmF1bHQ7XG5cbi8vIEJ1dHRvbnNcbiRidXR0b24tYmctY29sb3I6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssICMwMDAsICNmZmYpICFkZWZhdWx0O1xuJGJ1dHRvbi1iZy1ob3ZlcjogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgIzIyMiwgI2RkZCkgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3I6IGRhcmtlbigkc2Vjb25kYXJ5LWNvbG9yLCAxJSk7XG5cbi8vIEJYIHNsaWRlclxuJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmc6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLyBOYXZcbiRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wOiAkY29udGVudC1iZyAhZGVmYXVsdDtcbiRtZW51LWxldmVsMC1mb250LWNvbG9yOiBpZihsdW1hKCRuYXZpZ2F0aW9uLWJnKSA8IDUwLCAjZGRkLCAjMzMzKSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0taG92ZXItY29sb3IgOiAjMzMzO1xuJHN0aWNreS1mb290ZXItbWVudS1iZzogI0VGRUZFRiAhZGVmYXVsdDtcbiIsIi8vIFRoZXNlIGFyZSB0aGUgb2xkIFBJT05FRVIgc2V0dGluZ3MsIHdoaWNoIHdhcyBUaGUgVGhlbWUgVGhhdCBTdGFydGVkIEl0IEFsbCDihKJcblxuLy8gR2xvYmFsIHNldHRpbmdzXG4kdG91Y2gtZnJpZW5kbHktc2l6ZTogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vIEZvbnQgc2V0dGluZ3NcbiRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcbiRwYWdlLXRpdGxlLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8gTGF5b3V0IHNldHRpbmdzXG4kbWVudS10eXBlOiAnZHJvcGRvd24nICFkZWZhdWx0OyAvLyBNdXN0IG1hdGNoIHRoZSBkZWZhdWx0IHNldHRpbmcgaW4gdGhlIGNvbmZpZy5waHAtZmlsZVxuJHBhZ2UtbGF5b3V0OiAnZnVsbCcgIWRlZmF1bHQ7ICAgLy8gJ2ZyYW1lZCcgb3IgJ2Z1bGwnXG4kb2ZmLWNhbnZhcy1wb3NpdGlvbjogbGVmdCAhZGVmYXVsdDtcblxuLy8gQWxlcnQgYm94IHNldHRpbmdzXG4kaW5jbHVkZS1odG1sLWFsZXJ0LWNsYXNzZXM6IGZhbHNlO1xuJGFsZXJ0LXBhZGRpbmctdG9wOiAxcmVtICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLXRvcDogMXJlbSAhZGVmYXVsdDtcbiRhbGVydC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRhbGVydC1saW5lLWhlaWdodDogJGFsZXJ0LWZvbnQtc2l6ZS8xcmVtICogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiRhbGVydC1zaWRlLWJvcmRlci1zaXplOiAycmVtICFkZWZhdWx0O1xuJGFsZXJ0LXJhZGl1czogNHB4ICFkZWZhdWx0O1xuJGFsZXJ0LWJvdHRvbS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vIEdyaWQgc2V0dGluZ3NcbiRyb3ctd2lkdGg6IHJlbS1jYWxjKDEyODApICFkZWZhdWx0O1xuJHRvdGFsLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuJGNvbHVtbi1ndXR0ZXI6IHJlbS1jYWxjKDMwKSAhZGVmYXVsdDtcblxuLy8gRXF1YWwgY29sdW1uIGhlaWdodCBncmlkIHNldHRpbmdcbiRlcXVhbC1jb2wtaW5uZXItcGFkZGluZzogJGNvbHVtbi1ndXR0ZXIvMiAhZGVmYXVsdDtcblxuLy8gQmxvY2sgZ3JpZCBzZXR0aW5nc1xuJGluY2x1ZGUtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kYmxvY2stZ3JpZC1lbGVtZW50czogNSAhZGVmYXVsdDtcbiRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIE1lZGlhIHF1ZXJ5IHJhbmdlc1xuJHNtYWxsLXJhbmdlOiAoMGVtLCAzOS45Mzc1ZW0pICFkZWZhdWx0O1xuJG1lZGl1bS1yYW5nZTogKDQwZW0sIDYzLjkzNzVlbSkgIWRlZmF1bHQ7XG4kbGFyZ2UtcmFuZ2U6ICg2NGVtLCA4OS45Mzc1ZW0pICFkZWZhdWx0O1xuJHhsYXJnZS1yYW5nZTogKDkwZW0sIDExOS45Mzc1ZW0pICFkZWZhdWx0O1xuJHh4bGFyZ2UtcmFuZ2U6ICgxMjBlbSwgOTk5OTk5OTllbSkgIWRlZmF1bHQ7XG5cbi8vIEJyZWFkY3J1bWJzIHNldHRpbmdzXG4kY3J1bWItYmc6ICNmZmYgIWRlZmF1bHQ7XG4kY3J1bWItcGFkZGluZzogMCAhZGVmYXVsdDtcbiRjcnVtYi1ib3JkZXItc2l6ZTogMCAhZGVmYXVsdDtcbiRjcnVtYi1mb250LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kY3J1bWItc2lkZS1wYWRkaW5nOiAuNXJlbSAhZGVmYXVsdDtcblxuLy8gVGFibGUgc3R5bGluZ1xuJHRhYmxlLWJvcmRlci1zaXplOiAwO1xuXG4vLyBUYWJzIHN0eWxpbmdcbiR0YWJzLW5hdmlnYXRpb24tcGFkZGluZzogMC40cmVtICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJHRhYnMtY29udGVudC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNCkgIWRlZmF1bHQ7XG4kdGFicy1jb250ZW50LXBhZGRpbmc6IC41cmVtICFkZWZhdWx0O1xuJHRhYnMtdmVydGljYWwtbmF2aWdhdGlvbi1tYXJnaW4tYm90dG9tOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLyBTb2NpYWwgaWNvbnNcbiRzb2NpYWwtaWNvbi1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcblxuLy8gQnV0dG9uc1xuJGJ1dHRvbi1zaXplOiByZW0tY2FsYygzNykgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vIFBhZ2luYXRpb24gc2V0dGluZ3NcbiRwYWdpbmF0aW9uLWl0ZW0taGVpZ2h0OiAgICAgICAgJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNpZGUtcGFkZGluZzogIDFyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6ICAgICAgIC41cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemU6ICAgMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWZ1bGwtYnJlYWtwb2ludDogICAgXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTByZW0pXCIgIWRlZmF1bHQ7XG4iLCIvLyBNYWluIGNvbG9ycyBzdHVmZlxuJHByaW1hcnktY29sb3IgICAgICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWNvbG9yICAgICAgICAgICAgIDogI2U3ZTdlNyAhZGVmYXVsdDtcbiRjYWxsLXRvLWFjdGlvbi1jb2xvciAgICAgICAgOiAjRUYzQTNCICFkZWZhdWx0O1xuJGhvdmVyLWNvbG9yICAgICAgICAgICAgICAgICA6ICNFRjNBM0IgIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yICAgICAgICAgICAgICAgIDogI2RkZGRkZCAhZGVmYXVsdDtcblxuJGFsZXJ0LWNvbG9yICAgICAgICAgICAgICAgICA6ICNlMDMxMTQgIWRlZmF1bHQ7XG4kc3VjY2Vzcy1jb2xvciAgICAgICAgICAgICAgIDogIzVjYjg1YyAhZGVmYXVsdDtcbiR3YXJuaW5nLWNvbG9yICAgICAgICAgICAgICAgOiAjZmZhMjAwICFkZWZhdWx0O1xuJGluZm8tY29sb3IgICAgICAgICAgICAgICAgICA6ICM1YmMwZGUgIWRlZmF1bHQ7XG4kZGFuZ2VyLWNvbG9yICAgICAgICAgICAgICAgIDogI2Q5NTM0ZiAhZGVmYXVsdDtcblxuLy8gQmFja2dyb3VuZCBjb2xvcnNcbiRib2R5LWJnICAgICAgICAgICAgICAgICAgICAgOiAjRkZGRkZGICFkZWZhdWx0O1xuJHRvcC1iZyAgICAgICAgICAgICAgICAgICAgICA6ICNmNWY1ZjUgIWRlZmF1bHQ7XG4kaGVhZGVyLWJnICAgICAgICAgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRuYXZpZ2F0aW9uLWJnICAgICAgICAgICAgICAgOiAjMjEyMTIxICFkZWZhdWx0O1xuJGNvbnRlbnQtYmcgICAgICAgICAgICAgICAgICA6ICNmZmZmZmYgIWRlZmF1bHQ7XG4kZm9vdGVyLWJnICAgICAgICAgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRlbmQtYmcgICAgICAgICAgICAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuXG4vLyBGb250IGNvbG9yc1xuJGJvZHktZm9udC1jb2xvciAgICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtY29sb3IgICAgICAgICAgIDogZGFya2VuKCRib2R5LWZvbnQtY29sb3IsIDclKSAhZGVmYXVsdDtcbiRhbHRlcm5hdGl2ZS1mb250LWNvbG9yICAgICAgOiAjY2NjY2NjICFkZWZhdWx0O1xuXG4vLyBDb2xvciBjb250cmFzdCBhbmFseXNpcyB2YXJpYWJsZXMsIHNlZSBmdW5jdGlvbnMvY29sb3JcbiRjb2xvci1jb250cmFzdC10aHJlc2hvbGQgICAgOiA0LjUgIWRlZmF1bHQ7ICAvLyA0LjUgPSBXQ0FHIEFBLCA3PSBXQ0FHIEFBQVxuJGRhcmstYm9keS10ZXh0ICAgICAgICAgICAgICA6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kbGlnaHQtYm9keS10ZXh0ICAgICAgICAgICAgIDogJGFsdGVybmF0aXZlLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIEVsZW1lbnQgYW5kIHNlY3Rpb24gY29sb3Igc2V0dGluZ3Ncbi8vIEBUT0RPOiBXaGVuIHdlIGNhbiB1c2UgU2FzcyAzLjMsIGNsZWFuIHRoaXMgdXAgaW50byBtYXBzIHdpdGgga2V5L3ZhbHVlIHBhaXJzIVxuJGNvbG9yLWVsZW1lbnRzICAgICAgICAgICAgICA6IFwicHJpbWFyeS1jb2xvclwiLCBcInNlY29uZGFyeS1jb2xvclwiLCBcImNhbGwtdG8tYWN0aW9uLWNvbG9yXCIgIWRlZmF1bHQ7XG4kY29sb3ItZWxlbWVudHMtY29sb3JzICAgICAgIDogJHByaW1hcnktY29sb3IsICRzZWNvbmRhcnktY29sb3IsICRjYWxsLXRvLWFjdGlvbi1jb2xvciAhZGVmYXVsdDsgLy8gbGlzdCBsZW5ndGggc2hvdWxkIG1hdGNoIHRoYXQgb2YgJGNvbG9yLWVsZW1lbnRzXG4kc2VjdGlvbnMgICAgICAgICAgICAgICAgICAgIDogXCJ0b3BcIiwgXCJuYXZpZ2F0aW9uXCIsIFwiaGVhZGVyXCIsIFwiY29udGVudFwiLCBcImZvb3RlclwiLCBcImVuZFwiICFkZWZhdWx0O1xuJHNlY3Rpb24tc2VsZWN0b3JzICAgICAgICAgICA6IFwiLnRvcC1iZ1wiLCBcIi5uYXZpZ2F0aW9uLWJnXCIsIFwiLmhlYWRlci1iZ1wiLCBcIi5jb250ZW50LWJnXCIsIFwiLmZvb3Rlci1iZ1wiLCBcIi5lbmQtYmdcIiAhZGVmYXVsdDsgLy8gbGlzdCBsZW5ndGggc2hvdWxkIG1hdGNoIHRoYXQgb2YgJHNlY3Rpb25zXG4kc2VjdGlvbi1iYWNrZ3JvdW5kcyAgICAgICAgIDogJHRvcC1iZywgJG5hdmlnYXRpb24tYmcsICRoZWFkZXItYmcsICRjb250ZW50LWJnLCAkZm9vdGVyLWJnLCAkZW5kLWJnICFkZWZhdWx0OyAvLyBsaXN0IGxlbmd0aCBzaG91bGQgbWF0Y2ggdGhhdCBvZiAkc2VjdGlvbnNcblxuLy8gU2V0IHNvbWUgZXh0cmEgY29sb3IgdmFyaWFibGVzXG4kY29udGVudC1iZy1pcy1kYXJrICAgICAgICAgIDogaWYobHVtYSgkY29udGVudC1iZykgPCA1MCwgdHJ1ZSwgZmFsc2UpICFkZWZhdWx0O1xuJGhvdmVyLWJnLXRleHQtY29sb3IgICAgICAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRob3Zlci1jb2xvcikgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1jb2xvciAgICAgICAgICAgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKSAhZGVmYXVsdDtcbiRjb250ZW50LXRleHQtY29sb3IgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkY29udGVudC1iZyksIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJGNvbnRlbnQtYmcpKSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yLWN1cnJlbnQgICAgOiAkY29udGVudC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBUYWJzIHNldHRpbmdzXG4kdGFicy1vbi1kYXJrLWJnICAgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgdHJ1ZSwgZmFsc2UpICFkZWZhdWx0O1xuJHRhYnMtYmctY29sb3IgICAgICAgICAgICAgICA6IGlmKCR0YWJzLW9uLWRhcmstYmcsIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDEwJSksIGRhcmtlbigkY29udGVudC1iZywgMTAlKSkgIWRlZmF1bHQ7XG4kdGFicy1mb250LWNvbG9yICAgICAgICAgICAgIDogaW52ZXJ0KCR0YWJzLWJnLWNvbG9yKSAhZGVmYXVsdDtcbiR0YWJzLWFjdGl2ZS1iZy1jb2xvciAgICAgICAgOiBpZigkdGFicy1vbi1kYXJrLWJnLCAjZmZmLCAjMDAwKSAhZGVmYXVsdDtcbiR0YWJzLWFjdGl2ZS1mb250LWNvbG9yICAgICAgOiBpbnZlcnQoJHRhYnMtYWN0aXZlLWJnLWNvbG9yKSAhZGVmYXVsdDtcbiR0YWJzLWNvbnRhaW5lci1iZyAgICAgICAgICAgOiBpZigkdGFicy1vbi1kYXJrLWJnLCBsaWdodGVuKCRjb250ZW50LWJnLCAzJSksIGRhcmtlbigkY29udGVudC1iZywgMyUpKSAhZGVmYXVsdDtcblxuLy8gU2V0dGluZ3MgZm9yIHRhYmxlc1xuJHRhYmxlLWJnICAgICAgICAgICAgICAgICAgICA6ICRjb250ZW50LWJnICFkZWZhdWx0O1xuJHRhYmxlLWV2ZW4tcm93LWJnICAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDUlKSwgIGRhcmtlbigkY29udGVudC1iZywgNSUpKSAhZGVmYXVsdDtcbiR0YWJsZS1ib3JkZXItY29sb3IgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCByZ2JhKCRsaWdodC1ib2R5LXRleHQsIDAuNCksIHJnYmEoJGRhcmstYm9keS10ZXh0LCAwLjQpKSAhZGVmYXVsdDtcbiR0YWJsZS1zdWJ0bGUtYm9yZGVyLWNvbG9yICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCByZ2JhKCRsaWdodC1ib2R5LXRleHQsIDAuNCksIHJnYmEoJGRhcmstYm9keS10ZXh0LCAwLjQpKSAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLWJnICAgICAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCAzJSksIGRhcmtlbigkY29udGVudC1iZywgMyUpKSAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3IgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkdGFibGUtaGVhZC1iZyksIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJHRhYmxlLWhlYWQtYmcpKSAhZGVmYXVsdDtcbiR0YWJsZS1ldmVuLXJvdy10ZXh0LWNvbG9yICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkdGFibGUtZXZlbi1yb3ctYmcgKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkdGFibGUtZXZlbi1yb3ctYmcgKSkgIWRlZmF1bHQ7XG4kdGFibGUtcm93LWZvbnQtY29sb3IgICAgICAgIDogJGNvbnRlbnQtdGV4dC1jb2xvciAhZGVmYXVsdDtcblxuLy8gQ2hlY2tvdXQgY29sb3JzXG4kY2hlY2tvdXQtc3RlcHMtYmcgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgMTUlKSwgZGFya2VuKCRjb250ZW50LWJnLCAxNSUpKSAhZGVmYXVsdDtcbiRjaGVja291dC1zdGVwLWluYWN0aXZlLWJnICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCA4JSksIGRhcmtlbigkY29udGVudC1iZywgOCUpKSAhZGVmYXVsdDtcbiRlZGl0LXN0ZXAtYnV0dG9uLWJnICAgICAgICAgOiAkY29udGVudC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJGVkaXQtc3RlcC1idXR0b24tdGV4dC1jb2xvciA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRlZGl0LXN0ZXAtYnV0dG9uLWJnKSAhZGVmYXVsdDtcbiRlZGl0LXN0ZXAtaG92ZXItYmcgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBkYXJrZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDEwJSksIGxpZ2h0ZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDEwJSkpICFkZWZhdWx0O1xuJGVkaXQtc3RlcC1ob3Zlci10ZXh0LWNvbG9yICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkZWRpdC1zdGVwLWhvdmVyLWJnKSAhZGVmYXVsdDtcbiRzdGVwLW51bWJlci1iZyAgICAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBkYXJrZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDIwJSksIGxpZ2h0ZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDIwJSkpICFkZWZhdWx0O1xuJHN0ZXAtbnVtYmVyLXRleHQtY29sb3IgICAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNkZGQsICRzdGVwLW51bWJlci1iZykgIWRlZmF1bHQ7XG5cbi8vIE1lc3NhZ2Vib3gvYWxlcnRzXG4kbXNnYm94LWJnICAgICAgICAgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgNSUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDUlKSkgIWRlZmF1bHQ7XG4kbXNnYm94LWJvcmRlci1jb2xvciAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkbXNnYm94LWJnLCAxMCUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDEwJSkpICFkZWZhdWx0O1xuJG1zZ2JveC1jbG9zZS10ZXh0LWNvbG9yICAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCMwMDAsICRtc2dib3gtYmcpICFkZWZhdWx0O1xuJG1zZ2JveC1jbG9zZS1zaGFkb3ctY29sb3IgICA6IGludmVydCgkbXNnYm94LWNsb3NlLXRleHQtY29sb3IpICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtY29sb3ItYWx0ICAgICAgICA6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIFRhYnMgbmF2aWdhdGlvbiBjb2xvciAobmVlZHMgZml4aW5nKVxuJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvciAgICAgICAgICA6ICR0YWJzLWJnLWNvbG9yICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3IgICA6ICR0YWJzLWFjdGl2ZS1iZy1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3IgICAgOiBzY2FsZS1jb2xvcigkdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTYuNiUpICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1mb250LWNvbG9yICAgICAgICA6ICR0YWJzLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1mb250LWNvbG9yIDogJHRhYnMtYWN0aXZlLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlcnNcbiRib3JkZXItZGVmYXVsdC1vcGFjaXR5OiAwLjIgIWRlZmF1bHQ7XG4kYm9yZGVyLWRlZmF1bHQtaG92ZXItb3BhY2l0eTogMC40ICFkZWZhdWx0O1xuJGJvcmRlci1oYXJkLW9wYWNpdHk6IDAuNSAhZGVmYXVsdDtcbiRib3JkZXItaGFyZC1ob3Zlci1vcGFjaXR5OiAwLjcgIWRlZmF1bHQ7XG5cbi8vIFNvY2lhbCBpY29uIGNvbG9yc1xuJHNvY2lhbC1jb2xvci1ibG9nZ2VyOiAjZmM5OTQ4ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1lbGxvOiByZ2JhKCMwMDAsIC4xKSAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItZmFjZWJvb2s6ICMzYjU5OTggIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLWZsaWNrcjogI2ZmMDA4NCAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItZ29vZ2xlcGx1czogI2RkNGIzOSAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItaW5zdGFncmFtOiAjNTE3ZmE0ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1saW5rZWRpbjogIzAwN2JiNiAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItbWFpbDogIzMzMyAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItcGludGVyZXN0OiAjY2IyMDI3ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci10d2l0dGVyOiAjMDBhY2VkICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci12aW1lbzogIzQ1YmNmOSAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3IteW91dHViZTogI2NjMTgxZSAhZGVmYXVsdDtcblxuLy8gUGFnaW5hdGlvbiBjb2xvcnNcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZDogICAgICAgICAgICByZ2JhKCRjb250ZW50LWJnLCAwKSAhZGVmYXVsdDsgLy8gdHJhbnNwYXJlbnRcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLWNvbG9yOiAgICAgICAgICAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgJGNvbnRlbnQtdGV4dC1jb2xvcjtcblxuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQ6ICAgICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJvcmRlci1jb2xvcjogICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWNvbG9yOiAgICAgICAgIGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQpIDwgNTAsICNmZmYsICMwMDApLCAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZCkgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYmFja2dyb3VuZDogICAgICAkaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJvcmRlci1jb2xvcjogICAgJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItaXRlbS1jb2xvcjogICAgICAgICAgIGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kKSA8IDUwLCAjZmZmLCAjMDAwKSwgJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kKSAhZGVmYXVsdDsiLCJAaWYgbGVuZ3RoKCRjb2xvci1lbGVtZW50cykgIT0gbGVuZ3RoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMpIHtcbiAgICBAd2FybiBcIkxlbmd0aCBvZiAkY29sb3ItZWxlbWVudHMgZG9lcyBub3QgbWF0Y2ggbGVuZ3RoIG9mICRjb2xvci1lbGVtZW50cy1jb2xvcnNcIjtcbn1cblxuQGlmIGxlbmd0aCgkc2VjdGlvbi1zZWxlY3RvcnMpICE9IGxlbmd0aCgkc2VjdGlvbi1iYWNrZ3JvdW5kcykge1xuICAgIEB3YXJuIFwiTGVuZ3RoIG9mICRzZWN0aW9uLXNlbGVjdG9ycyBkb2VzIG5vdCBtYXRjaCBsZW5ndGggb2YgJHNlY3Rpb24tYmFja2dyb3VuZHNcIjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZWxlbWVudCB3aXRoIGEgY29sb3JlZCBiYWNrZ3JvdW5kXG4gKlxuICogVGhpcyBtaXhpbiBvdXRwdXRzIGEgY29sb3IgYW5kIGEgYmFja2dyb3VuZCBjb2xvclxuICogXG4gKiBAcGFyYW0gIHN0cmluZyAkY29sb3IgICAgICAgICAgICAgICAgICAgIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIHlvdSB3YW50IHRvIHVzZSwgZm9yIGluc3RhbmNlICNmZmNjMDBcbiAqIEBwYXJhbSAgc3RyaW5nICRmb3JlZ3JvdW5kLWNvbG9yOiAjZmZmICAgVGhlIGZvcmVncm91bmQvdGV4dCBjb2xvciB5b3Ugd2FudCB0byB1c2UuIFRoaXMgd2lsbCBoYXZlIGFuIGFjY2Vzc2libGUgbHVtaW5hbmNlLCBhZGp1c3RlZCB0byB3b3JrIHdpdGggJGNvbG9yXG4gKiBAcGFyYW0gIHN0cmluZyAkYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAgIFRoZSBiYWNrZ3JvdW5kIG9uIHdoaWNoIHRoZSBlbGVtZW50IGlzIHNpdHVhdGVkIChlbGVtZW50cyBiYWNrZ3JvdW5kIHdpbGwgYmUgYWRqdXN0ZWQgdG8gaGF2ZSBhdCBsZWFzdCBhIHNtYWxsIGNvbnRyYXN0IHRvIHRoaXMpXG4gKi9cbkBtaXhpbiBjb2xvcmVkLWJnLWVsZW1lbnQoJGNvbG9yLCAkZm9yZWdyb3VuZC1jb2xvcjogI2ZmZiwgJGJhY2tncm91bmQtY29sb3I6ICNmZmYpIHtcbiAgICAkY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb2xvciwgJGJhY2tncm91bmQtY29sb3IsIDEuNSk7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZm9yZWdyb3VuZC1jb2xvciwgJGNvbG9yKTtcbn1cblxuLy8gQ2FuIHdlIGNvbWJpbmUgdGhlIHN0eWxlcyBmb3Igc29tZSBvZiB0aGUgaGVhZGVycyB0byByZWR1Y2UgdGhlIHNpemUgb2Ygb3VyIGNzcz9cbiR1bmlxdWUtc2VjdGlvbnM6ICgpO1xuJHVuaXF1ZS1iYWNrZ3JvdW5kczogKCk7XG4kdW5pcXVlLXNlbGVjdG9yczogKCk7XG4kc2hhcmVkLXNlY3Rpb25zOiAoKTtcblxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHNlY3Rpb24tYmFja2dyb3VuZHMpIHtcbiAgICAkdGVzdGluZy1iYWNrZ3JvdW5kOiBudGgoJHNlY3Rpb24tYmFja2dyb3VuZHMsICRpKTtcbiAgICAkYmFja2dyb3VuZC1wb3NpdGlvbjogaW5kZXgoJHVuaXF1ZS1iYWNrZ3JvdW5kcywgJHRlc3RpbmctYmFja2dyb3VuZCk7XG4gICAgXG4gICAgQGlmICRiYWNrZ3JvdW5kLXBvc2l0aW9uID09IGZhbHNlIG9yICRiYWNrZ3JvdW5kLXBvc2l0aW9uID09IG51bGwge1xuICAgICAgICAkdW5pcXVlLWJhY2tncm91bmRzOiBhcHBlbmQoJHVuaXF1ZS1iYWNrZ3JvdW5kcywgJHRlc3RpbmctYmFja2dyb3VuZCk7XG4gICAgICAgICR1bmlxdWUtc2VsZWN0b3JzOiBhcHBlbmQoJHVuaXF1ZS1zZWxlY3RvcnMsIG50aCgkc2VjdGlvbi1zZWxlY3RvcnMsICRpKSk7XG4gICAgICAgICR1bmlxdWUtc2VjdGlvbnM6IGFwcGVuZCgkdW5pcXVlLXNlY3Rpb25zLCBudGgoJHNlY3Rpb25zLCAkaSkpO1xuICAgICAgICAkc2hhcmVkLXNlY3Rpb25zOiBhcHBlbmQoJHNoYXJlZC1zZWN0aW9ucywgbnRoKCRzZWN0aW9ucywgJGkpKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJGV4aXN0aW5nLWJnLXBvc2l0aW9uOiBpbmRleCgkdW5pcXVlLWJhY2tncm91bmRzLCAkdGVzdGluZy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgJHNoYXJlZC1zZWN0aW9uczogYXBwZW5kKCRzaGFyZWQtc2VjdGlvbnMsIG50aCgkdW5pcXVlLXNlY3Rpb25zLCAkZXhpc3RpbmctYmctcG9zaXRpb24pKTtcbiAgICB9XG59XG5cbiRjb250ZW50LXNlY3Rpb24tZG9uZTogZmFsc2U7XG5cbi8vIE91dHB1dCBzZWN0aW9ucyB3aXRoIHRoZWlyIGNvbG9ycywgYm9yZGVycyBhbmQgYmFja2dyb3VuZHNcbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCR1bmlxdWUtc2VjdGlvbnMpIHtcbiAgICAkc2VjdGlvbi1iYWNrZ3JvdW5kOiBudGgoJHVuaXF1ZS1iYWNrZ3JvdW5kcywgJGkpO1xuICAgICRzZWN0aW9uLWxpbmstY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkc2VjdGlvbi1iYWNrZ3JvdW5kKTtcblxuICAgIC8vIFNldCB0ZXh0IGNvbG9yXG4gICAgJHNlY3Rpb24tdGV4dC1jb2xvcjogaWYoXG4gICAgICAgIGx1bWEoJHNlY3Rpb24tYmFja2dyb3VuZCkgPCA1MCxcbiAgICAgICAgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGxpZ2h0LWJvZHktdGV4dCwgJHNlY3Rpb24tYmFja2dyb3VuZCksXG4gICAgICAgIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJHNlY3Rpb24tYmFja2dyb3VuZClcbiAgICApO1xuXG4gICAgLy8gRW1waGFzaXMgdGV4dCBjb2xvciBzaG91bGQgYmUgb2YgY3JlYXRlciBjb250cmFzdCB0aGFuIHRoZSB0ZXh0IGNvbG9yXG4gICAgJHNlY3Rpb24tZW1waGFzaXMtdGV4dC1jb2xvcjogaWYoXG4gICAgICAgIGx1bWEoJHNlY3Rpb24tdGV4dC1jb2xvcikgPiBsdW1hKCRzZWN0aW9uLWJhY2tncm91bmQpLFxuICAgICAgICBsaWdodGVuKCRzZWN0aW9uLXRleHQtY29sb3IsIDclKSxcbiAgICAgICAgZGFya2VuKCRzZWN0aW9uLXRleHQtY29sb3IsIDclKVxuICAgICk7XG5cbiAgICAvLyBMaW5rIGhvdmVyIGNvbG9yIHNob3VsZCBiZSBvZiBncmVhdGVyIGNvbnRyYXN0IHRoYW4gdGhlIGxpbmsgY29sb3JcbiAgICAkc2VjdGlvbi1saW5rLWhvdmVyLWNvbG9yOiBpZihcbiAgICAgICAgbHVtYSgkc2VjdGlvbi1saW5rLWNvbG9yKSA+IGx1bWEoJHNlY3Rpb24tYmFja2dyb3VuZCksXG4gICAgICAgIGxpZ2h0ZW4oJHNlY3Rpb24tbGluay1jb2xvciwgMTAlKSxcbiAgICAgICAgZGFya2VuKCRzZWN0aW9uLWxpbmstY29sb3IsIDEwJSlcbiAgICApO1xuXG4gICAgJSN7bnRoKCR1bmlxdWUtc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXJfX3N1YnRsZSB7XG4gICAgICAgIGNvbG9yOiAkc2VjdGlvbi10ZXh0LWNvbG9yO1xuICAgIH1cblxuICAgICUje250aCgkdW5pcXVlLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyX19uZXV0cmFsLWxpbmsge1xuICAgICAgICBjb2xvcjogJHNlY3Rpb24tdGV4dC1jb2xvcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tZW1waGFzaXMtdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICUje250aCgkdW5pcXVlLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY3Rpb24tYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRzZWN0aW9uLXRleHQtY29sb3I7XG5cbiAgICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tZW1waGFzaXMtdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExpbmtzIG5vdCBvbiBhIGNvbG9yZWQgYmFja2dyb3VuZCBhbmQgbm90IHNldCB0byBuZXV0cmFsIHNob3VsZCBiZSBhY2Nlc3NpYmxlXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLWxpbmstY29sb3I7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWJ0bGUge1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLXRleHQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAuYm9yZGVyZWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRzZWN0aW9uLXRleHQtY29sb3IsICRib3JkZXItZGVmYXVsdC1vcGFjaXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3JkZXJlZC0taGFyZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgJGJvcmRlci1kZWZhdWx0LWhvdmVyLW9wYWNpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYS5ib3JkZXJlZDpob3ZlcixcbiAgICAgICAgYS5ib3JkZXJlZDpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgJGJvcmRlci1oYXJkLW9wYWNpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYS5ib3JkZXJlZC0taGFyZDpob3ZlcixcbiAgICAgICAgYS5ib3JkZXJlZC0taGFyZDpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgJGJvcmRlci1oYXJkLWhvdmVyLW9wYWNpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5ldXRyYWwtbGluayxcbiAgICAgICAgLm5ldXRyYWwtbGluayA+IGEge1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLXRleHQtY29sb3I7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2VjdGlvbi1lbXBoYXNpcy10ZXh0LWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVmaW5lIC5wcmltYXJ5LWNvbG9yLCAuc2Vjb25kYXJ5LWNvbG9yIGV0Yy5cbiAgICAgICAgQGZvciAkaiBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGNvbG9yLWVsZW1lbnRzKSB7XG4gICAgICAgICAgICAkY29sb3ItZWxlbWVudC1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UobnRoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMsICRqKSwgJHNlY3Rpb24tYmFja2dyb3VuZCwgMS41KTtcbiAgICAgICAgICAgICRjb2xvci1lbGVtZW50LWJnLWxpbms6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRjb2xvci1lbGVtZW50LWJnKTtcblxuICAgICAgICAgICAgLiN7bnRoKCRjb2xvci1lbGVtZW50cywgJGopfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKG50aCgkY29sb3ItZWxlbWVudHMtY29sb3JzLCAkaiksICRzZWN0aW9uLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBOZWVkIGxlc3MgY29udHJhc3QgYWRqdXN0bWVudCBmb3IgaXRlbXMgd2l0aCBsYXJnZSB0ZXh0ICgxOHB4IG9yIG1vcmUpXG4gICAgICAgICAgICAuI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9LWJpZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKG50aCgkY29sb3ItZWxlbWVudHMtY29sb3JzLCAkaiksICRzZWN0aW9uLWJhY2tncm91bmQsIDMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9LWJnIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZWxlbWVudC1iZztcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLWVsZW1lbnQtYmctbGluaztcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLWVsZW1lbnQtYmctbGluaztcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItZWxlbWVudC1iZy1saW5rO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkY29sb3ItZWxlbWVudC1iZywgMTAlKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1lbGVtZW50LWJnLWxpbms7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLWVsZW1lbnQtYmcsIDEwJSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIEZvdW5kYXRpb24gYnV0dG9uIGNvbXBvbmVudHMgdXNlIHByaW1hcnkgYmcgYnkgZGVmYXVsdCBvbiBidXR0b25zXG4gICAgICAgIGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgICAgICAgICAvLyBUaGlzIGlzIGhvdyB0aGUgdmFyaWFibGUgaXMgZGVmaW5lZCBpbnRlcm5hbGx5IGluIEZvdW5kYXRpb25cbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGRlZmluZSB0aGlzIHZhcmlhYmxlIGluIG91ciB0aGVtZXMgeWV0LCBzbyB3ZSBoYXZlIGl0IGhlcmUgaWYvdW50aWwgd2UgZG9cbiAgICAgICAgICAgICRidXR0b24tY29sb3ItYmc6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAkX2J1dHRvbi1jb2xvci1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJ1dHRvbi1jb2xvci1iZywgJHNlY3Rpb24tYmFja2dyb3VuZCwgMS41KTtcbiAgICAgICAgICAgICRfYnV0dG9uLWNvbG9yLWZvbnQ6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJF9idXR0b24tY29sb3ItYmcpIDwgNTAsICNmZmYsICMwMDApLCAkX2J1dHRvbi1jb2xvci1iZyk7XG4gICAgICAgICAgICAkX2J1dHRvbi1ob3Zlci1jb2xvci1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGhvdmVyLWNvbG9yLCAkX2J1dHRvbi1jb2xvci1iZywgMS4yNSksICRzZWN0aW9uLWJhY2tncm91bmQsIDIpO1xuICAgICAgICAgICAgJF9idXR0b24taG92ZXItY29sb3ItdGV4dDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkX2J1dHRvbi1ob3Zlci1jb2xvci1iZykgPCA1MCwgI2ZmZiwgIzAwMCksICRfYnV0dG9uLWhvdmVyLWNvbG9yLWJnKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJiwgXG4gICAgICAgICAgICAmLmRpc2FibGVkLFxuICAgICAgICAgICAgJi5kaXNhYmxlZDpob3ZlcixcbiAgICAgICAgICAgICYuZGlzYWJsZWQ6Zm9jdXMsIFxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmW2Rpc2FibGVkXTpob3ZlcixcbiAgICAgICAgICAgICZbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX2J1dHRvbi1jb2xvci1iZztcbiAgICAgICAgICAgICAgICBjb2xvcjogJF9idXR0b24tY29sb3ItZm9udDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJGJ1dHRvbi1mb250LXdlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkX2J1dHRvbi1ob3Zlci1jb2xvci10ZXh0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfYnV0dG9uLWhvdmVyLWNvbG9yLWJnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIFBsYWNlaG9sZGVycyBzZWxlY3RvcnMgeW91IGNhbiB1c2UgdmlhIEBleHRlbmQgJTxwbGFjZWhvbGRlciBuYW1lPiBpbiB5b3VyIGNvbnRlbnQgc2VjdGlvbi5cbiAgICBAaWYgJGNvbnRlbnQtc2VjdGlvbi1kb25lID09IGZhbHNlIGFuZCAkc2VjdGlvbi1iYWNrZ3JvdW5kID09ICRjb250ZW50LWJnIHtcbiAgICAgICAgJWNvbnRlbnRfX2JvcmRlcmVkIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgkc2VjdGlvbi10ZXh0LWNvbG9yLCAwLjIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJWNvbnRlbnRfX2JvcmRlcmVkLS1oYXJkIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgkc2VjdGlvbi10ZXh0LWNvbG9yLCAwLjUpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBDb2xvciBlbGVtZW50cyBwbGFjZWhvbGRlcnNcbiAgICAgICAgQGZvciAkaiBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGNvbG9yLWVsZW1lbnRzKSB7XG4gICAgICAgICAgICAkY29sb3ItZWxlbWVudC1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UobnRoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMsICRqKSwgJGNvbnRlbnQtYmcsIDEuNSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICVjb250ZW50X18je250aCgkY29sb3ItZWxlbWVudHMsICRqKX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShudGgoJGNvbG9yLWVsZW1lbnRzLWNvbG9ycywgJGopLCAkY29udGVudC1iZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICVjb250ZW50X18je250aCgkY29sb3ItZWxlbWVudHMsICRqKX0tYmlnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UobnRoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMsICRqKSwgJGNvbnRlbnQtYmcsIDMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAlY29udGVudF9fI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9LWJnIHtcbiAgICAgICAgICAgICAgICAkY29sb3ItZWxlbWVudC1jb2xvcjogaWYobHVtYSgkY29sb3ItZWxlbWVudC1iZykgPCA1MCwgI2ZmZiwgIzAwMCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWVsZW1lbnQtYmc7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb2xvci1lbGVtZW50LWNvbG9yLCAkY29sb3ItZWxlbWVudC1iZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAkY29udGVudC1zZWN0aW9uLWRvbmU6IHRydWU7XG4gICAgfVxufVxuXG4vLyBFYXRpbmcgb3VyIG93biBkb2dmb29kLCB5b3UgY2FuIEBleHRlbmQgJWNvbnRlbnQtcGxhY2Vob2xkZXIgd2hlcmV2ZXIgeW91IHdhbnRcbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRzZWN0aW9uLXNlbGVjdG9ycykge1xuICAgIFxuICAgICN7bnRoKCRzZWN0aW9uLXNlbGVjdG9ycywgJGkpfSB7XG4gICAgICAgIEBleHRlbmQgJSN7bnRoKCRzaGFyZWQtc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgQGlmIG50aCgkc2hhcmVkLXNlY3Rpb25zLCAkaSkgIT0gbnRoKCRzZWN0aW9ucywgJGkpIHtcbiAgICAgICAgLy8gQWxsb3dpbmcgY29tYmluZWQgcGxhY2Vob2xkZXJzIHRvIGJlIHVzZWRcbiAgICAgICAgJSN7bnRoKCRzZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBAZXh0ZW5kICUje250aCgkc2hhcmVkLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyO1xuICAgICAgICB9XG4gICAgICAgICUje250aCgkc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXJfX3N1YnRsZSB7XG4gICAgICAgICAgICBAZXh0ZW5kICUje250aCgkc2hhcmVkLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyX19zdWJ0bGU7XG4gICAgICAgIH1cbiAgICAgICAgJSN7bnRoKCRzZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlcl9fbmV1dHJhbC1saW5rIHtcbiAgICAgICAgICAgIEBleHRlbmQgJSN7bnRoKCRzaGFyZWQtc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXJfX25ldXRyYWwtbGluaztcbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4yIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIkBpbXBvcnQgXCJtaXhpbnMvYWNjZXNzaWJpbGl0eVwiO1xuQGltcG9ydCBcIm1peGlucy9jZW50ZXJcIjtcbkBpbXBvcnQgXCJtaXhpbnMvaGFpcmxpbmUtYm9yZGVyXCI7XG5AaW1wb3J0IFwibWl4aW5zL250aC1jaGlsZHJlblwiO1xuQGltcG9ydCBcIm1peGlucy90cmFuc2Zvcm1cIjsiLCJAbWl4aW4gYWNjZXNzaWJsZS1oaWRlKCkge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG59XG5cbkBtaXhpbiBhY2Nlc3NpYmxlLXNob3coJGNsaXA6IGF1dG8sICRoZWlnaHQ6IGF1dG8sICRtYXJnaW46IDAsICRvdmVyZmxvdzogdmlzaWJsZSwgJHBvc2l0aW9uOiByZWxhdGl2ZSwgJHdpZHRoOiBhdXRvLCAkcGFkZGluZzogMCwgJGJvcmRlcjogbm9uZSkge1xuICAgIGJvcmRlcjogJGJvcmRlcjtcbiAgICBjbGlwOiAkY2xpcDtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgbWFyZ2luOiAkbWFyZ2luO1xuICAgIG92ZXJmbG93OiAkb3ZlcmZsb3c7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgcG9zaXRpb246ICRwb3NpdGlvbjtcbiAgICB3aWR0aDogJHdpZHRoO1xufSIsIkBtaXhpbiBjZW50ZXIoJHh5Onh5KSB7XG4gIEBpZiAkeHkgPT0geHkge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDUwJTtcbiAgICBib3R0b206IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSk7XG4gIH1cbiAgQGVsc2UgaWYgJHh5ID09IHgge1xuICAgIGxlZnQ6IDUwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gIH1cbiAgQGVsc2UgaWYgJHh5ID09IHkge1xuICAgIHRvcDogNTAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG4gIH1cbn0iLCIvLyAxcHggb24gcmV0aW5hLCBhbmQgMXB4IG9uIG5vbi1yZXRpbmEsIHNpbmNlIGJvcmRlci13aWR0aDogMC41cHg7IGRvZXMgbm90IHdvcmsgaW4gQ1NTXG5AbWl4aW4gaGFpcmxpbmUtYm9yZGVyKCRoYWlybGluZS1jb2xvciwgJHBvc2l0aW9uOiB0b3AgbGVmdCwgJHZlcnRpY2FsOiBmYWxzZSkge1xuICAgIFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRwb3NpdGlvbjsgXG4gICAgQGlmICR2ZXJ0aWNhbCB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxJyBoZWlnaHQ9JzEwMCc+PHJlY3QgZmlsbD0nI3skaGFpcmxpbmUtY29sb3J9JyB4PScwJyB5PScwJyB3aWR0aD0nMC41JyBoZWlnaHQ9JzEwMCcvPjwvc3ZnPlwiKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEwMCcgaGVpZ2h0PScxJz48cmVjdCBmaWxsPScjeyRoYWlybGluZS1jb2xvcn0nIHg9JzAnIHk9JzAnIHdpZHRoPScxMDAnIGhlaWdodD0nMC41Jy8+PC9zdmc+XCIpO1xuICAgIH1cbiAgICBcbn0iLCIvLyBVc2UgdGhpcyB0byBzZWxlY3QgaXRlbXMgZGVwZW5kaW5nIG9uIGhvdyBtYW55IHNpYmxpbmdzIHRoZXJlIGFyZS5cbi8vIFZlcnkgdXNlZnVsIHRvIHN0eWxlIGl0ZW1zIGRlcGVuZGluZyBvbiBob3cgbWFueSBpdGVtcyB0aGVyZSBhcmVcbi8vIGZvciBpbnN0YW5jZSwgMSBpdGVtIG50aC1jaGlsZHJlbigxKSwgbW9yZSB0aGFuIDUgbnRoLWNoaWxkcmVuKFwibis1XCIpXG5cbkBtaXhpbiBudGgtY2hpbGRyZW4oJG50aCkge1xuICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skbnRofSksXG4gICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRudGh9KSB+ICYge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG4iLCJAbWl4aW4gdHJhbnNsYXRlM2QoJHR4OjAsJHR5OjAsJHR6OjAsICRwZXJzcGVjdGl2ZTpmYWxzZSkge1xuICAgIFxuICAgIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sIHRyYW5zbGF0ZSgkdHgsJHR5KSAkcGVyc3BlY3RpdmUsIG1zKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZTNkKCR0eCwgJHR5LCAkdHopICRwZXJzcGVjdGl2ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgdHJhbnNsYXRlKCR0eCwkdHkpLCBtcyk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUzZCgkdHgsICR0eSwgJHR6KSk7XG4gICAgfVxufSIsIi8vIFZhcmlhYmxlIHNldHRpbmdzIGZvciAvYWRkb25zL3ByZWZpeGVyLnNjc3NcbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDsgLy8gcmVxdWlyZWQgZm9yIGtleWZyYW1lIG1peGluXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAkcmFkaWksIHdlYmtpdCBtcyBzcGVjKTtcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIFZhcmlhYmxlcyBsb2NhdGVkIGluIC9zZXR0aW5ncy9fcHJlZml4ZXIuc2Nzc1xuXG5AbWl4aW4gcHJlZml4ZXIgKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2U7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2U7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2U7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2U7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2U7XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbi8vIE9mZmljaWFsIGFuaW1hdGlvbiBzaG9ydGhhbmQgcHJvcGVydHkuXG5AbWl4aW4gYW5pbWF0aW9uICgkYW5pbWF0aW9ucy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBJbmRpdmlkdWFsIEFuaW1hdGlvbiBQcm9wZXJ0aWVzXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUgKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24gKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiAoJG1vdGlvbnMuLi4pIHtcbi8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCAoJHZhbHVlcy4uLikge1xuLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uICgkZGlyZWN0aW9ucy4uLikge1xuLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSAoJHN0YXRlcy4uLikge1xuLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5ICgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUgKCRtb2Rlcy4uLikge1xuLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZmFjZS12aXNpYmlsaXR5IG1peGluXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gU2hvcnRoYW5kIEJvcmRlci1yYWRpdXMgbWl4aW5zXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItdG9wLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDAuMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyAgZmxleCB8IGlubGluZS1mbGV4XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgICAgIC8vIDIwMDlcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgICAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAgICAgLy8gMjAxMlxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICAgICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiAkdmFsdWU7XG4gICAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpICAgICAgXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAgIC8vIEFsdCB2YWx1ZXMuXG4gICAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAgICRkaXJlY3Rpb246IFwibm9ybWFsXCI7XG5cbiAgICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gICAgfVxuXG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIEBpZiAkZGlyZWN0aW9uID09IFwicmV2ZXJzZVwiIHtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuXG4gICAgLy8gQWx0IHZhbHVlcy5cbiAgICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCAoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgICAvLyBBbHQgdmFsdWVzLlxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogZW5kO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAgICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogY2VudGVyO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogZW5kO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuICAgIFxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlOyAgICBcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cblxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZTtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZTtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYztcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJEcxLCAkRzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHMzogbnVsbCwgJEc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzU6IG51bGwsICRHNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc3OiBudWxsLCAkRzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHOTogbnVsbCwgJEcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkRzEwOiAkRzk7ICRHOTogJEc4OyAkRzg6ICRHNzsgJEc3OiAkRzY7ICRHNjogJEc1O1xuICAgICAkRzU6ICRHNDsgJEc0OiAkRzM7ICRHMzogJEcyOyAkRzI6ICRHMTsgJEcxOiAkcG9zO1xuICAgICAkcG9zOiBudWxsO1xuICB9XG5cbiAgQGlmICRwb3Mge1xuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xuICAgICRwb3Mtc3BlYzogICBudGgoJHBvc2l0aW9ucywgMik7XG4gIH1cblxuICAkZnVsbDogJEcxLCAkRzIsICRHMywgJEc0LCAkRzUsICRHNiwgJEc3LCAkRzgsICRHOSwgJEcxMDtcblxuICAvLyBTZXQgJEcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRHMSwgMSk7XG5cbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCgjeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XG4vLyAgbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcbi8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXG4vLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlICgkc3R5bGU6IGZsYXQpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxuICAkbmVlZHMtcHJlZml4ZXM6IGZhbHNlO1xuICAkd2Via2l0OiAoKTtcbiAgJG1vejogKCk7XG4gICRzcGVjOiAoKTtcblxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cbiAgQGVhY2ggJGxpc3QgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xuICAgICAgJGxpc3QxOiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XG4gICAgICAkbGlzdDM6ICgpO1xuXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XG5cbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XG4gICAgICAgICAgJGxpc3QyOiBqb2luKCRsaXN0MiwgJHZhcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdDMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcbiAgfSBAZWxzZSB7XG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59IiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQWxlcnQgQm94IFZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYWxlcnQtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFsZXJ0IHBhZGRpbmcuXG4kYWxlcnQtcGFkZGluZy10b3A6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nLWRlZmF1bHQtZmxvYXQ6ICRhbGVydC1wYWRkaW5nLXRvcCAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nLW9wcG9zaXRlLWRpcmVjdGlvbjogJGFsZXJ0LXBhZGRpbmctdG9wICsgcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGFsZXJ0LXBhZGRpbmctYm90dG9tOiAkYWxlcnQtcGFkZGluZy10b3AgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRleHQgc3R5bGUuXG4kYWxlcnQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kYWxlcnQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kYWxlcnQtZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtY29sb3ItYWx0OiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAtNjYlKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgZm9yIGNsb3NlIGhvdmVyIGVmZmVjdC5cbiRhbGVydC1mdW5jdGlvbi1mYWN0b3I6IC0xNCUgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJvcmRlciBzdHlsZXMuXG4kYWxlcnQtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRwcmltYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAkYWxlcnQtZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRhbGVydC1ib3R0b20tbWFyZ2luOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgY2xvc2UgYnV0dG9uc1xuJGFsZXJ0LWNsb3NlLWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLXRvcDogNTAlICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLXBvc2l0aW9uOiByZW0tY2FsYyg0KSAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1mb250LXNpemU6IHJlbS1jYWxjKDIyKSAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1vcGFjaXR5OiAwLjMgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2Utb3BhY2l0eS1ob3ZlcjogMC41ICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLXBhZGRpbmc6IDAgNnB4IDRweCAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1iYWNrZ3JvdW5kOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGJvcmRlciByYWRpdXNcbiRhbGVydC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4kYWxlcnQtdHJhbnNpdGlvbi1zcGVlZDogMzAwbXMgIWRlZmF1bHQ7XG4kYWxlcnQtdHJhbnNpdGlvbi1lYXNlOiBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy9cbi8vIEFsZXJ0IE1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGEgZGVmYXVsdCBhbGVydCBiYXNlLlxuQG1peGluIGFsZXJ0LWJhc2Uge1xuICBib3JkZXItc3R5bGU6ICRhbGVydC1ib3JkZXItc3R5bGU7XG4gIGJvcmRlci13aWR0aDogJGFsZXJ0LWJvcmRlci13aWR0aDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiAkYWxlcnQtZm9udC13ZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206ICRhbGVydC1ib3R0b20tbWFyZ2luO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6ICRhbGVydC1wYWRkaW5nLXRvcCAkYWxlcnQtcGFkZGluZy1vcHBvc2l0ZS1kaXJlY3Rpb24gJGFsZXJ0LXBhZGRpbmctYm90dG9tICRhbGVydC1wYWRkaW5nLWRlZmF1bHQtZmxvYXQ7XG4gIGZvbnQtc2l6ZTogJGFsZXJ0LWZvbnQtc2l6ZTtcbiAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24ob3BhY2l0eSwgJGFsZXJ0LXRyYW5zaXRpb24tc3BlZWQsICRhbGVydC10cmFuc2l0aW9uLWVhc2UpXG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBhbGVydCBzdHlsZXNcbi8vXG4vLyAkYmcgLSBUaGUgYmFja2dyb3VuZCBvZiB0aGUgYWxlcnQuIERlZmF1bHQ6ICRwcmltYXJ5LWNvbG9yLlxuQG1peGluIGFsZXJ0LXN0eWxlKCRiZzokcHJpbWFyeS1jb2xvcikge1xuXG4gIC8vIFRoaXMgZmluZHMgdGhlIGxpZ2h0bmVzcyBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIGJhY2tncm91bmQgY29sb3IgYW5kIGJvcmRlciBjb21lIHRocm91Z2guXG4gIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkYmcsICRsaWdodG5lc3M6ICRhbGVydC1mdW5jdGlvbi1mYWN0b3IpO1xuXG4gIC8vIFdlIGNvbnRyb2wgdGhlIHRleHQgY29sb3IgZm9yIHlvdSBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbiAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgeyBjb2xvcjogJGFsZXJ0LWZvbnQtY29sb3ItYWx0OyB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgIHsgY29sb3I6ICRhbGVydC1mb250LWNvbG9yOyB9XG5cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIHRoZSBjbG9zZSBidXR0b24uXG5AbWl4aW4gYWxlcnQtY2xvc2Uge1xuICBmb250LXNpemU6ICRhbGVydC1jbG9zZS1mb250LXNpemU7XG4gIHBhZGRpbmc6ICRhbGVydC1jbG9zZS1wYWRkaW5nO1xuICBsaW5lLWhlaWdodDogLjk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAkYWxlcnQtY2xvc2UtdG9wO1xuICBtYXJnaW4tdG9wOiAtKCRhbGVydC1jbG9zZS1mb250LXNpemUgLyAyKTtcbiAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGFsZXJ0LWNsb3NlLXBvc2l0aW9uO1xuICBjb2xvcjogJGFsZXJ0LWNsb3NlLWNvbG9yO1xuICBvcGFjaXR5OiAkYWxlcnQtY2xvc2Utb3BhY2l0eTtcbiAgYmFja2dyb3VuZDogJGFsZXJ0LWNsb3NlLWJhY2tncm91bmQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMgeyBvcGFjaXR5OiAkYWxlcnQtY2xvc2Utb3BhY2l0eS1ob3ZlcjsgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBxdWlja2x5IGNyZWF0ZSBhbGVydHMgd2l0aCBhIHNpbmdsZSBtaXhpbi5cbi8vXG4vLyAkYmcgLSBCYWNrZ3JvdW5kIG9mIGFsZXJ0LiBEZWZhdWx0OiAkcHJpbWFyeS1jb2xvci5cbi8vICRyYWRpdXMgLSBSYWRpdXMgb2YgYWxlcnQgYm94LiBEZWZhdWx0OiBmYWxzZS5cbkBtaXhpbiBhbGVydCgkYmc6JHByaW1hcnktY29sb3IsICRyYWRpdXM6ZmFsc2UpIHtcbiAgQGluY2x1ZGUgYWxlcnQtYmFzZTtcbiAgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJGJnKTtcbiAgQGluY2x1ZGUgcmFkaXVzKCRyYWRpdXMpO1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYWxlcnQtYm94XCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtYWxlcnQtY2xhc3NlcyB7XG4gICAgLmFsZXJ0LWJveCB7XG4gICAgICBAaW5jbHVkZSBhbGVydDtcblxuICAgICAgLmNsb3NlICAgICAgeyBAaW5jbHVkZSBhbGVydC1jbG9zZTsgfVxuXG4gICAgICAmLnJhZGl1cyAgICB7IEBpbmNsdWRlIHJhZGl1cygkYWxlcnQtcmFkaXVzKTsgfVxuICAgICAgJi5yb3VuZCAgICAgeyBAaW5jbHVkZSByYWRpdXMoJGdsb2JhbC1yb3VuZGVkKTsgfVxuXG4gICAgICAmLnN1Y2Nlc3MgICB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRzdWNjZXNzLWNvbG9yKTsgfVxuICAgICAgJi5hbGVydCAgICAgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkYWxlcnQtY29sb3IpOyB9XG4gICAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRzZWNvbmRhcnktY29sb3IpOyB9XG4gICAgICAmLndhcm5pbmcgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkd2FybmluZy1jb2xvcik7IH1cbiAgICAgICYuaW5mbyB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRpbmZvLWNvbG9yKTsgfVxuICAgICAgJi5hbGVydC1jbG9zZSB7IG9wYWNpdHk6IDB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiLi4vZnVuY3Rpb25zXCI7XG4vL1xuLy8gRm91bmRhdGlvbiBWYXJpYWJsZXNcbi8vXG5cbi8vIERhdGEgYXR0cmlidXRlIG5hbWVzcGFjZVxuLy8gc3R5bGVzIGdldCBhcHBsaWVkIHRvIFtkYXRhLW15c2l0ZS1wbHVnaW5dLCBldGNcbiRuYW1lc3BhY2U6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBmb250LXNpemUgaXMgc2V0IHRvIDEwMCUgb2YgdGhlIGJyb3dzZXIgc3R5bGUgc2hlZXQgKHVzdWFsbHkgMTZweClcbi8vIGZvciBjb21wYXRpYmlsaXR5IHdpdGggYnJvd3Nlci1iYXNlZCB0ZXh0IHpvb20gb3IgdXNlci1zZXQgZGVmYXVsdHMuXG5cbi8vIFNpbmNlIHRoZSB0eXBpY2FsIGRlZmF1bHQgYnJvd3NlciBmb250LXNpemUgaXMgMTZweCwgdGhhdCBtYWtlcyB0aGUgY2FsY3VsYXRpb24gZm9yIGdyaWQgc2l6ZS5cbi8vIElmIHlvdSB3YW50IHlvdXIgYmFzZSBmb250LXNpemUgdG8gYmUgZGlmZmVyZW50IGFuZCBub3QgaGF2ZSBpdCBhZmZlY3QgdGhlIGdyaWQgYnJlYWtwb2ludHMsXG4vLyBzZXQgJHJlbS1iYXNlIHRvICRiYXNlLWZvbnQtc2l6ZSBhbmQgbWFrZSBzdXJlICRiYXNlLWZvbnQtc2l6ZSBpcyBhIHB4IHZhbHVlLlxuJGJhc2UtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLyAkYmFzZS1saW5lLWhlaWdodCBpcyAyNHB4IHdoaWxlICRiYXNlLWZvbnQtc2l6ZSBpcyAxNnB4XG4kYmFzZS1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vL1xuLy8gR2xvYmFsIEZvdW5kYXRpb24gTWl4aW5zXG4vL1xuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBib3JkZXIgcmFkaXVzLlxuLy8gJHJhZGl1cyAtIERlZmF1bHQ6ICRnbG9iYWwtcmFkaXVzIHx8IDRweFxuQG1peGluIHJhZGl1cygkcmFkaXVzOiRnbG9iYWwtcmFkaXVzKSB7XG4gIEBpZiAkcmFkaXVzIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgZXF1YWwgc2lkZSBib3JkZXIgcmFkaXVzIG9uIGVsZW1lbnRzLlxuLy8gJHNpZGUgLSBPcHRpb25zOiBsZWZ0LCByaWdodCwgdG9wLCBib3R0b21cbkBtaXhpbiBzaWRlLXJhZGl1cygkc2lkZSwgJHJhZGl1czokZ2xvYmFsLXJhZGl1cykge1xuICBAaWYgKCRzaWRlID09IGxlZnQgb3IgJHNpZGUgPT0gcmlnaHQpIHtcbiAgICAtd2Via2l0LWJvcmRlci1ib3R0b20tI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICAgIC13ZWJraXQtYm9yZGVyLXRvcC0jeyRzaWRlfS1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS0jeyRzaWRlfS1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLXRvcC0jeyRzaWRlfS1yYWRpdXM6ICRyYWRpdXM7XG4gIH0gQGVsc2Uge1xuICAgIC13ZWJraXQtI3skc2lkZX0tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgLXdlYmtpdC0jeyRzaWRlfS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLSN7JHNpZGV9LWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci0jeyRzaWRlfS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIGNhbiBjb250cm9sIHdoZXRoZXIgb3Igbm90IHdlIGhhdmUgaW5zZXQgc2hhZG93cyBlZGdlcy5cbi8vICRhY3RpdmUgLSBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuQG1peGluIGluc2V0LXNoYWRvdygkYWN0aXZlOnRydWUpIHtcbiAgYm94LXNoYWRvdzogJHNoaW55LWVkZ2Utc2l6ZSAkc2hpbnktZWRnZS1jb2xvciBpbnNldDtcblxuICBAaWYgJGFjdGl2ZSB7ICY6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAkc2hpbnktZWRnZS1zaXplICRzaGlueS1lZGdlLWFjdGl2ZS1jb2xvciBpbnNldDsgfSB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBhZGQgdHJhbnNpdGlvbnMgdG8gZWxlbWVudHNcbi8vICRwcm9wZXJ0eSAtIERlZmF1bHQ6IGFsbCwgT3B0aW9uczogaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy10cmFuc2l0aW9ucy8jYW5pbWF0YWJsZS1wcm9wZXJ0aWVzXG4vLyAkc3BlZWQgLSBEZWZhdWx0OiAzMDBtc1xuLy8gJGVhc2UgLSBEZWZhdWx0OmVhc2Utb3V0LCBPcHRpb25zOiBodHRwOi8vY3NzLXRyaWNrcy5jb20vYWxtYW5hYy9wcm9wZXJ0aWVzL3QvdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24vXG5AbWl4aW4gc2luZ2xlLXRyYW5zaXRpb24oJHByb3BlcnR5OmFsbCwgJHNwZWVkOjMwMG1zLCAkZWFzZTplYXNlLW91dCkge1xuICB0cmFuc2l0aW9uOiAkcHJvcGVydHkgJHNwZWVkICRlYXNlO1xufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIGJveC1zaXppbmcgYWNyb3NzIGJyb3dzZXIgcHJlZml4ZXNcbkBtaXhpbiBib3gtc2l6aW5nKCR0eXBlOmJvcmRlci1ib3gpIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkdHlwZTsgLy8gQW5kcm9pZCA8IDIuMywgaU9TIDwgNFxuICAgICAtbW96LWJveC1zaXppbmc6ICR0eXBlOyAvLyBGaXJlZm94IDwgMjlcbiAgICAgICAgICBib3gtc2l6aW5nOiAkdHlwZTsgLy8gQ2hyb21lLCBJRSA4KywgT3BlcmEsIFNhZmFyaSA1LjFcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSBpc29zY2VsZXMgdHJpYW5nbGVzXG4vLyAkdHJpYW5nbGUtc2l6ZSAtIFVzZWQgdG8gc2V0IGJvcmRlci1zaXplLiBObyBkZWZhdWx0LCBzZXQgYSBweCBvciBlbSBzaXplLlxuLy8gJHRyaWFuZ2xlLWNvbG9yIC0gVXNlZCB0byBzZXQgYm9yZGVyLWNvbG9yIHdoaWNoIG1ha2VzIHVwIHRyaWFuZ2xlLiBObyBkZWZhdWx0XG4vLyAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gVXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggZGlyZWN0aW9uIHRyaWFuZ2xlIHBvaW50cy4gT3B0aW9uczogdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0XG5AbWl4aW4gY3NzLXRyaWFuZ2xlKCR0cmlhbmdsZS1zaXplLCAkdHJpYW5nbGUtY29sb3IsICR0cmlhbmdsZS1kaXJlY3Rpb24pIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB0b3ApIHtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gYm90dG9tKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIHRoZSBpY29uIHdpdGggdGhyZWUgbGluZXMgYWthIHRoZSBoYW1idXJnZXIgaWNvbiwgdGhlIG1lbnUtaWNvbiBvciB0aGUgbmF2aWNvblxuLy8gJHdpZHRoIC0gV2lkdGggb2YgaGFtYnVyZ2VyIGljb24gaW4gcmVtXG4vLyAkbGVmdCAtIElmIGZhbHNlLCBpY29uIHdpbGwgYmUgY2VudGVyZWQgaG9yaXpvbnRhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbVxuLy8gJHRvcCAtIElmIGZhbHNlLCBpY29uIHdpbGwgYmUgY2VudGVyZWQgdmVydGljYWxseSB8fCBleHBsaWNpdGx5IHNldCB2YWx1ZSBpbiByZW1cbi8vICR0aGlja25lc3MgLSB0aGlja25lc3Mgb2YgbGluZXMgaW4gaGFtYnVyZ2VyIGljb24sIHNldCB2YWx1ZSBpbiBweFxuLy8gJGdhcCAtIHNwYWNpbmcgYmV0d2VlbiB0aGUgbGluZXMgaW4gaGFtYnVyZ2VyIGljb24sIHNldCB2YWx1ZSBpbiBweFxuLy8gJGNvbG9yIC0gaWNvbiBjb2xvclxuLy8gJGhvdmVyLWNvbG9yIC0gaWNvbiBjb2xvciBkdXJpbmcgaG92ZXJcbi8vICRvZmZjYW52YXMgLSBTZXQgdG8gdHJ1ZSBvZiBAaW5jbHVkZSBpbiBvZmZjYW52YXNcbkBtaXhpbiBoYW1idXJnZXIoJHdpZHRoLCAkbGVmdCwgJHRvcCwgJHRoaWNrbmVzcywgJGdhcCwgJGNvbG9yLCAkaG92ZXItY29sb3IsICRvZmZjYW52YXMpIHtcbiAgc3Bhbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcblxuICAgIEBpZiAkb2ZmY2FudmFzIHtcbiAgICAgIEBpZiAkdG9wIHtcbiAgICAgICAgdG9wOiAkdG9wO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kd2lkdGgvMik7XG4gICAgICB9XG4gICAgICBAaWYgJGxlZnQge1xuICAgICAgICBsZWZ0OiAkbGVmdDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGVmdDogKCR0YWJiYXItbWVudS1pY29uLXdpZHRoIC0gJHdpZHRoKS8yO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0oJHdpZHRoLzIpO1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMCAwICR0aGlja25lc3MgJGNvbG9yLFxuICAgICAgMCAkZ2FwICsgJHRoaWNrbmVzcyAwICR0aGlja25lc3MgJGNvbG9yLFxuICAgICAgMCAoMiAqICRnYXAgKyAyKiR0aGlja25lc3MpIDAgJHRoaWNrbmVzcyAkY29sb3I7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfVxuICBzcGFuOmhvdmVyOmFmdGVyIHtcbiAgICBib3gtc2hhZG93OlxuICAgICAgMCAwIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3IsXG4gICAgICAwICRnYXAgKyAkdGhpY2tuZXNzIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3IsXG4gICAgICAwICgyICogJGdhcCArIDIqJHRoaWNrbmVzcykgMCAkdGhpY2tuZXNzICRob3Zlci1jb2xvcjtcbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBkbyBjbGVhciBmbG9hdHNcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6YmVmb3JlLCAmOmFmdGVyIHsgY29udGVudDogXCIgXCI7IGRpc3BsYXk6IHRhYmxlOyB9XG4gICY6YWZ0ZXIgeyBjbGVhcjogYm90aDsgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIGEgZ2xvd2luZyBlZmZlY3QgdG8gYmxvY2sgZWxlbWVudHNcbi8vICRzZWxlY3RvciAtIFVzZWQgZm9yIHNlbGVjdG9yIHN0YXRlLiBEZWZhdWx0OiBmb2N1cywgT3B0aW9uczogaG92ZXIsIGFjdGl2ZSwgdmlzaXRlZFxuLy8gJGZhZGUtdGltZSAtIERlZmF1bHQ6IDMwMG1zXG4vLyAkZ2xvd2luZy1lZmZlY3QtY29sb3IgLSBEZWZhdWx0OiBmYWRlLW91dCgkcHJpbWFyeS1jb2xvciwgLjI1KVxuQG1peGluIGJsb2NrLWdsb3dpbmctZWZmZWN0KCRzZWxlY3Rvcjpmb2N1cywgJGZhZGUtdGltZTozMDBtcywgJGdsb3dpbmctZWZmZWN0LWNvbG9yOmZhZGUtb3V0KCRwcmltYXJ5LWNvbG9yLCAuMjUpKSB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgJGZhZGUtdGltZSwgYm9yZGVyLWNvbG9yICRmYWRlLXRpbWUgZWFzZS1pbi1vdXQ7XG5cbiAgJjojeyRzZWxlY3Rvcn0ge1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggJGdsb3dpbmctZWZmZWN0LWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGdsb3dpbmctZWZmZWN0LWNvbG9yO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byB0cmFuc2xhdGUgZWxlbWVudHMgaW4gMkRcbi8vICRob3Jpem9udGFsOiBEZWZhdWx0OiAwXG4vLyAkdmVydGljYWw6IERlZmF1bHQ6IDBcbkBtaXhpbiB0cmFuc2xhdGUyZCgkaG9yaXpvbnRhbDowLCAkdmVydGljYWw6MCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkaG9yaXpvbnRhbCwkdmVydGljYWwpXG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IGFjY2Vzc2libGUuXG4vLyBAc2VlIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweDtcbiAgd2lkdGg6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gVHVybnMgb2ZmIHRoZSBlbGVtZW50LWludmlzaWJsZSBlZmZlY3QuXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbn1cblxuJHdoaXRlICAgICAgICAgOiAjRkZGRkZGICFkZWZhdWx0O1xuJGdob3N0ICAgICAgICAgOiAjRkFGQUZBICFkZWZhdWx0O1xuJHNub3cgICAgICAgICAgOiAjRjlGOUY5ICFkZWZhdWx0O1xuJHZhcG9yICAgICAgICAgOiAjRjZGNkY2ICFkZWZhdWx0O1xuJHdoaXRlLXNtb2tlICAgOiAjRjVGNUY1ICFkZWZhdWx0O1xuJHNpbHZlciAgICAgICAgOiAjRUZFRkVGICFkZWZhdWx0O1xuJHNtb2tlICAgICAgICAgOiAjRUVFRUVFICFkZWZhdWx0O1xuJGdhaW5zYm9ybyAgICAgOiAjREREREREICFkZWZhdWx0O1xuJGlyb24gICAgICAgICAgOiAjQ0NDQ0NDICFkZWZhdWx0O1xuJGJhc2UgICAgICAgICAgOiAjQUFBQUFBICFkZWZhdWx0O1xuJGFsdW1pbnVtICAgICAgOiAjOTk5OTk5ICFkZWZhdWx0O1xuJGp1bWJvICAgICAgICAgOiAjODg4ODg4ICFkZWZhdWx0O1xuJG1vbnNvb24gICAgICAgOiAjNzc3Nzc3ICFkZWZhdWx0O1xuJHN0ZWVsICAgICAgICAgOiAjNjY2NjY2ICFkZWZhdWx0O1xuJGNoYXJjb2FsICAgICAgOiAjNTU1NTU1ICFkZWZhdWx0O1xuJHR1YXRhcmEgICAgICAgOiAjNDQ0NDQ0ICFkZWZhdWx0O1xuJG9pbCAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuJGpldCAgICAgICAgICAgOiAjMjIyMjIyICFkZWZhdWx0O1xuJGJsYWNrICAgICAgICAgOiAjMDAwMDAwICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgYXMgZGVmYXVsdCBjb2xvcnMgdGhyb3VnaG91dFxuJHByaW1hcnktY29sb3I6ICMwMDhDQkEgIWRlZmF1bHQ7ICAgLy8gYm9uZGktYmx1ZVxuJHNlY29uZGFyeS1jb2xvcjogI2U3ZTdlNyAhZGVmYXVsdDsgLy8gd2hpdGUtbGlsYWNcbiRhbGVydC1jb2xvcjogI2YwNDEyNCAhZGVmYXVsdDsgICAgIC8vIGNpbm5hYmFyXG4kc3VjY2Vzcy1jb2xvcjogIzQzQUM2QSAhZGVmYXVsdDsgICAvLyBzZWEtZ3JlZW5cbiR3YXJuaW5nLWNvbG9yOiAjZjA4YTI0ICFkZWZhdWx0OyAgIC8vIGNhcnJvdFxuJGluZm8tY29sb3I6ICNhMGQzZTggIWRlZmF1bHQ7ICAgICAgLy8gY29ybmZsb3dlclxuXG4vLyBXZSB1c2UgdGhlc2UgdG8gZGVmaW5lIGRlZmF1bHQgZm9udCBzdGFja3NcbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1zZXJpZjogR2VvcmdpYSwgQ2FtYnJpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGRlZmluZSBkZWZhdWx0IGZvbnQgd2VpZ2h0c1xuJGZvbnQtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHZhcmlvdXMgZ2xvYmFsIHN0eWxlc1xuJGJvZHktYmc6ICNmZmYgIWRlZmF1bHQ7XG4kYm9keS1mb250LWNvbG9yOiAjMjIyICFkZWZhdWx0O1xuJGJvZHktZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmICFkZWZhdWx0O1xuJGJvZHktZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kYm9keS1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgZm9udC1zbW9vdGhpbmdcbiRmb250LXNtb290aGluZzogYW50aWFsaWFzZWQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRleHQgZGlyZWN0aW9uIHNldHRpbmdzXG4kdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcbiRkZWZhdWx0LWZsb2F0OiBsZWZ0ICFkZWZhdWx0O1xuJG9wcG9zaXRlLWRpcmVjdGlvbjogcmlnaHQgIWRlZmF1bHQ7XG5AaWYgJHRleHQtZGlyZWN0aW9uID09IGx0ciB7XG4gICRkZWZhdWx0LWZsb2F0OiBsZWZ0O1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiByaWdodDtcbn0gQGVsc2Uge1xuICAkZGVmYXVsdC1mbG9hdDogcmlnaHQ7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGxlZnQ7XG59XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBtYWtlIHN1cmUgYm9yZGVyIHJhZGl1cyBtYXRjaGVzIHVubGVzcyB3ZSB3YW50IGl0IGRpZmZlcmVudC5cbiRnbG9iYWwtcmFkaXVzOiAzcHggIWRlZmF1bHQ7XG4kZ2xvYmFsLXJvdW5kZWQ6IDEwMDBweCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaW5zZXQgc2hhZG93IHNoaW55IGVkZ2VzIGFuZCBkZXByZXNzaW9ucy5cbiRzaGlueS1lZGdlLXNpemU6IDAgMXB4IDAgIWRlZmF1bHQ7XG4kc2hpbnktZWRnZS1jb2xvcjogcmdiYSgjZmZmLCAuNSkgIWRlZmF1bHQ7XG4kc2hpbnktZWRnZS1hY3RpdmUtY29sb3I6IHJnYmEoIzAwMCwgLjIpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHdoZXRoZXIgb3Igbm90IENTUyBjbGFzc2VzIGNvbWUgdGhyb3VnaCBpbiB0aGUgZ2VtIGZpbGVzLlxuJGluY2x1ZGUtaHRtbC1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuJGluY2x1ZGUtcHJpbnQtc3R5bGVzOiB0cnVlICFkZWZhdWx0O1xuJGluY2x1ZGUtaHRtbC1nbG9iYWwtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4kY29sdW1uLWd1dHRlcjogcmVtLWNhbGMoMzApICFkZWZhdWx0O1xuXG4vLyBNZWRpYSBRdWVyeSBSYW5nZXNcbiRzbWFsbC1yYW5nZTogKDAsIDQwZW0pICFkZWZhdWx0O1xuJG1lZGl1bS1yYW5nZTogKDQwLjA2M2VtLCA2NGVtKSAhZGVmYXVsdDtcbiRsYXJnZS1yYW5nZTogKDY0LjA2M2VtLCA5MGVtKSAhZGVmYXVsdDtcbiR4bGFyZ2UtcmFuZ2U6ICg5MC4wNjNlbSwgMTIwZW0pICFkZWZhdWx0O1xuJHh4bGFyZ2UtcmFuZ2U6ICgxMjAuMDYzZW0sIDk5OTk5OTk5ZW0pICFkZWZhdWx0O1xuXG5cbiRzY3JlZW46IFwib25seSBzY3JlZW5cIiAhZGVmYXVsdDtcblxuJGxhbmRzY2FwZTogXCIjeyRzY3JlZW59IGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcIiAhZGVmYXVsdDtcbiRwb3J0cmFpdDogXCIjeyRzY3JlZW59IGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KVwiICFkZWZhdWx0O1xuXG4kc21hbGwtdXA6ICRzY3JlZW4gIWRlZmF1bHQ7XG4kc21hbGwtb25seTogXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiAje3VwcGVyLWJvdW5kKCRzbWFsbC1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4kbWVkaXVtLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kbWVkaXVtLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiRsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kbGFyZ2Utb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiR4bGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiR4bGFyZ2Utb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcblxuJHh4bGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4keHhsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeHhsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbi8vIExlZ2FjeVxuJHNtYWxsOiAkbWVkaXVtLXVwO1xuJG1lZGl1bTogJG1lZGl1bS11cDtcbiRsYXJnZTogJGxhcmdlLXVwO1xuXG5cbi8vV2UgdXNlIHRoaXMgYXMgY3Vyc29ycyB2YWx1ZXMgZm9yIGVuYWJsaW5nIHRoZSBvcHRpb24gb2YgaGF2aW5nIGN1c3RvbSBjdXJzb3JzIGluIHRoZSB3aG9sZSBzaXRlJ3Mgc3R5bGVzaGVldFxuJGN1cnNvci1hdXRvLXZhbHVlOiBhdXRvICFkZWZhdWx0O1xuJGN1cnNvci1jcm9zc2hhaXItdmFsdWU6IGNyb3NzaGFpciAhZGVmYXVsdDtcbiRjdXJzb3ItZGVmYXVsdC12YWx1ZTogZGVmYXVsdCAhZGVmYXVsdDtcbiRjdXJzb3ItZGlzYWJsZWQtdmFsdWU6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuJGN1cnNvci1wb2ludGVyLXZhbHVlOiBwb2ludGVyICFkZWZhdWx0O1xuJGN1cnNvci1oZWxwLXZhbHVlOiBoZWxwICFkZWZhdWx0O1xuJGN1cnNvci10ZXh0LXZhbHVlOiB0ZXh0ICFkZWZhdWx0O1xuXG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJnbG9iYWxcIikge1xuXG4gIC8vIE1ldGEgc3R5bGVzIGFyZSBpbmNsdWRlZCBpbiBhbGwgYnVpbGRzLCBhcyB0aGV5IGFyZSBhIGRlcGVuZGFuY3kgb2YgdGhlIEphdmFzY3JpcHQuXG4gIC8vIFVzZWQgdG8gcHJvdmlkZSBtZWRpYSBxdWVyeSB2YWx1ZXMgZm9yIGphdmFzY3JpcHQgY29tcG9uZW50cy5cbiAgLy8gRm9yd2FyZCBzbGFzaCBwbGFjZWQgYXJvdW5kIGV2ZXJ5dGhpbmcgdG8gY29udmluY2UgUGhhbnRvbUpTIHRvIHJlYWQgdGhlIHZhbHVlLlxuXG4gIG1ldGEuZm91bmRhdGlvbi12ZXJzaW9uIHtcbiAgICBmb250LWZhbWlseTogXCIvNS41LjEvXCI7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEtc21hbGwge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHNtYWxsLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkc21hbGwtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXNtYWxsLW9ubHkge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHNtYWxsLW9ubHkpICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRzbWFsbC1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEtbWVkaXVtIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRtZWRpdW0tdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLW1lZGl1bS1vbmx5IHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRtZWRpdW0tb25seSkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEtbGFyZ2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJGxhcmdlLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLWxhcmdlLW9ubHkge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJGxhcmdlLW9ubHkpICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEteGxhcmdlIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCR4bGFyZ2UtdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXhsYXJnZS1vbmx5IHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCR4bGFyZ2Utb25seSkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEteHhsYXJnZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkeHhsYXJnZS11cCkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLWRhdGEtYXR0cmlidXRlLW5hbWVzcGFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICN7JG5hbWVzcGFjZX07XG4gIH1cblxuICBAaWYgJGluY2x1ZGUtaHRtbC1nbG9iYWwtY2xhc3NlcyB7XG5cbiAgICAvLyBNdXN0IGJlIDEwMCUgZm9yIG9mZiBjYW52YXMgdG8gd29ya1xuICAgIGh0bWwsIGJvZHkgeyBoZWlnaHQ6IDEwMCU7IH1cblxuICAgIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICAgKixcbiAgICAqOmJlZm9yZSxcbiAgICAqOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgfVxuXG4gICAgaHRtbCxcbiAgICBib2R5IHsgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7IH1cblxuICAgIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgICBib2R5IHtcbiAgICAgIGJhY2tncm91bmQ6ICRib2R5LWJnO1xuICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRib2R5LWZvbnQtd2VpZ2h0O1xuICAgICAgZm9udC1zdHlsZTogJGJvZHktZm9udC1zdHlsZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDsgLy8gU2V0IHRvICRiYXNlLWxpbmUtaGVpZ2h0IHRvIHRha2Ugb24gYnJvd3NlciBkZWZhdWx0IG9mIDE1MCVcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGN1cnNvcjogJGN1cnNvci1hdXRvLXZhbHVlO1xuICAgIH1cblxuICBhOmhvdmVyIHsgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7IH1cblxuICAgIC8vIEdyaWQgRGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgfVxuXG4gICAgaW1nIHsgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYzsgfVxuXG4gICAgI21hcF9jYW52YXMsXG4gICAgLm1hcF9jYW52YXMge1xuICAgICAgaW1nLFxuICAgICAgZW1iZWQsXG4gICAgICBvYmplY3QgeyBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNaXNjZWxsYW5lb3VzIHVzZWZ1bCBIVE1MIGNsYXNzZXNcbiAgICAubGVmdCB7IGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgICAucmlnaHQgeyBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsgfVxuICAgIC5jbGVhcmZpeCB7IEBpbmNsdWRlIGNsZWFyZml4OyB9XG5cbiAgICAvLyBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzXG4gICAgLmhpZGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzLCBidXQgbWFpbnRhaW4gbGF5b3V0XG4gICAgLmludmlzaWJsZSB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4gICAgLy8gRm9udCBzbW9vdGhpbmdcbiAgICAvLyBBbnRpYWxpYXNlZCBmb250IHNtb290aGluZyB3b3JrcyBiZXN0IGZvciBsaWdodCB0ZXh0IG9uIGEgZGFyayBiYWNrZ3JvdW5kLlxuICAgIC8vIEFwcGx5IHRvIHNpbmdsZSBlbGVtZW50cyBpbnN0ZWFkIG9mIGdsb2JhbGx5IHRvIGJvZHkuXG4gICAgLy8gTm90ZSB0aGlzIG9ubHkgYXBwbGllcyB0byB3ZWJraXQtYmFzZWQgZGVza3RvcCBicm93c2VycyBhbmQgRmlyZWZveCAyNSAoYW5kIGxhdGVyKSBvbiB0aGUgTWFjLlxuICAgIC5hbnRpYWxpYXNlZCB7IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbiAgICAvLyBHZXQgcmlkIG9mIGdhcCB1bmRlciBpbWFnZXMgYnkgbWFraW5nIHRoZW0gZGlzcGxheTogaW5saW5lLWJsb2NrOyBieSBkZWZhdWx0XG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBHbG9iYWwgcmVzZXRzIGZvciBmb3Jtc1xuICAgIC8vXG5cbiAgICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgICB0ZXh0YXJlYSB7IGhlaWdodDogYXV0bzsgbWluLWhlaWdodDogNTBweDsgfVxuXG4gICAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gICAgc2VsZWN0IHsgd2lkdGg6IDEwMCU7IH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gVGhpcyBpcyB0aGUgZGVmYXVsdCBodG1sIGFuZCBib2R5IGZvbnQtc2l6ZSBmb3IgdGhlIGJhc2UgcmVtIHZhbHVlLlxuJHJlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBJTVBPUlQgT05DRVxuLy8gV2UgdXNlIHRoaXMgdG8gcHJldmVudCBzdHlsZXMgZnJvbSBiZWluZyBsb2FkZWQgbXVsdGlwbGUgdGltZXMgZm9yIGNvbXBvbmVudHMgdGhhdCByZWx5IG9uIG90aGVyIGNvbXBvbmVudHMuXG4kbW9kdWxlczogKCkgIWRlZmF1bHQ7XG5AbWl4aW4gZXhwb3J0cygkbmFtZSkge1xuICAvLyBJbXBvcnQgZnJvbSBnbG9iYWwgc2NvcGVcbiAgJG1vZHVsZXM6ICRtb2R1bGVzICFnbG9iYWw7XG4gIC8vIENoZWNrIGlmIGEgbW9kdWxlIGlzIGFscmVhZHkgb24gdGhlIGxpc3RcbiAgJG1vZHVsZV9pbmRleDogaW5kZXgoJG1vZHVsZXMsICRuYW1lKTtcbiAgQGlmICgoJG1vZHVsZV9pbmRleCA9PSBudWxsKSBvciAoJG1vZHVsZV9pbmRleCA9PSBmYWxzZSkpIHtcbiAgICAkbW9kdWxlczogYXBwZW5kKCRtb2R1bGVzLCAkbmFtZSkgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vL1xuLy8gQGZ1bmN0aW9uc1xuLy9cblxuXG4vLyBSQU5HRVNcbi8vIFdlIHVzZSB0aGVzZSBmdW5jdGlvbnMgdG8gZGVmaW5lIHJhbmdlcyBmb3IgdmFyaW91cyB0aGluZ3MsIGxpa2UgbWVkaWEgcXVlcmllcy5cbkBmdW5jdGlvbiBsb3dlci1ib3VuZCgkcmFuZ2Upe1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPD0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEByZXR1cm4gbnRoKCRyYW5nZSwxKTtcbn1cblxuQGZ1bmN0aW9uIHVwcGVyLWJvdW5kKCRyYW5nZSkge1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPCAyIHtcbiAgICBAcmV0dXJuIDk5OTk5OTk5OTk5OTtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xufVxuXG4vLyBTVFJJUCBVTklUXG4vLyBJdCBzdHJpcHMgdGhlIHVuaXQgb2YgbWVhc3VyZSBhbmQgcmV0dXJucyBpdFxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8gVEVYVCBJTlBVVCBUWVBFU1xuXG5AZnVuY3Rpb24gdGV4dC1pbnB1dHMoICR0eXBlczogYWxsLCAkc2VsZWN0b3I6IGlucHV0ICkge1xuXG4gICAgJHJldHVybjogKCk7XG5cbiAgICAkYWxsLXRleHQtaW5wdXQtdHlwZXM6XG4gICAgICB0ZXh0XG4gICAgICBwYXNzd29yZFxuICAgICAgZGF0ZVxuICAgICAgZGF0ZXRpbWVcbiAgICAgIGRhdGV0aW1lLWxvY2FsXG4gICAgICBtb250aFxuICAgICAgd2Vla1xuICAgICAgZW1haWxcbiAgICAgIG51bWJlclxuICAgICAgc2VhcmNoXG4gICAgICB0ZWxcbiAgICAgIHRpbWVcbiAgICAgIHVybFxuICAgICAgY29sb3JcbiAgICAgIHRleHRhcmVhO1xuXG4gICAgQGlmICR0eXBlcyA9PSBhbGwgeyAkdHlwZXM6ICRhbGwtdGV4dC1pbnB1dC10eXBlczsgfVxuXG4gICAgQGVhY2ggJHR5cGUgaW4gJHR5cGVzIHtcbiAgICAgICAgQGlmICR0eXBlID09IHRleHRhcmVhIHtcbiAgICAgICAgICAgIEBpZiAkc2VsZWN0b3IgPT0gaW5wdXQge1xuICAgICAgICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnI3skdHlwZX0nKSwgY29tbWEpXG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHR5cGV9I3skc2VsZWN0b3J9JyksIGNvbW1hKVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyRzZWxlY3Rvcn1bdHlwZT1cIiN7JHR5cGV9XCJdJyksIGNvbW1hKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmV0dXJuO1xuXG59XG5cbi8vIENPTlZFUlQgVE8gUkVNXG5AZnVuY3Rpb24gY29udmVydC10by1yZW0oJHZhbHVlLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSAge1xuICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UtdmFsdWUpICogMXJlbTtcbiAgQGlmICgkdmFsdWUgPT0gMHJlbSkgeyAkdmFsdWU6IDA7IH0gLy8gVHVybiAwcmVtIGludG8gMFxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIGRhdGEoJGF0dHIpIHtcbiAgQGlmICRuYW1lc3BhY2Uge1xuICAgIEByZXR1cm4gJ1tkYXRhLScgKyAkbmFtZXNwYWNlICsgJy0nICsgJGF0dHIgKyAnXSc7XG4gIH1cblxuICBAcmV0dXJuICdbZGF0YS0nICsgJGF0dHIgKyAnXSc7XG59XG5cbi8vIFJFTSBDQUxDXG5cbi8vIE5ldyBTeW50YXgsIGFsbG93cyB0byBvcHRpb25hbGx5IGNhbGN1bGF0ZSBvbiBhIGRpZmZlcmVudCBiYXNlIHZhbHVlIHRvIGNvdW50ZXIgY29tcG91bmRpbmcgZWZmZWN0IG9mIHJlbSdzLlxuLy8gQ2FsbCB3aXRoIDEsIDIsIDMgb3IgNCBwYXJhbWV0ZXJzLCAncHgnIGlzIG5vdCByZXF1aXJlZCBidXQgc3VwcG9ydGVkOlxuLy9cbi8vICAgcmVtLWNhbGMoMTAgMjAgMzBweCA0MCk7XG4vL1xuLy8gU3BhY2UgZGVsaW1pdGVkLCBpZiB5b3Ugd2FudCB0byBkZWxpbWl0IHVzaW5nIGNvbW1hJ3MsIHdyYXAgaXQgaW4gYW5vdGhlciBwYWlyIG9mIGJyYWNrZXRzXG4vL1xuLy8gICByZW0tY2FsYygoMTAsIDIwLCAzMCwgNDBweCkpO1xuLy9cbi8vIE9wdGlvbmFsbHkgY2FsbCB3aXRoIGEgZGlmZmVyZW50IGJhc2UgKGVnOiA4cHgpIHRvIGNhbGN1bGF0ZSByZW0uXG4vL1xuLy8gICByZW0tY2FsYygxNnB4IDMycHggNDhweCwgOHB4KTtcbi8vXG4vLyBJZiB5b3UgcmVxdWlyZSB0byBjb21tYSBzZXBhcmF0ZSB5b3VyIGxpc3Rcbi8vXG4vLyAgIHJlbS1jYWxjKCgxNnB4LCAzMnB4LCA0OCksIDhweCk7XG5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSB7XG4gICRtYXg6IGxlbmd0aCgkdmFsdWVzKTtcblxuICBAaWYgJG1heCA9PSAxIHsgQHJldHVybiBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgMSksICRiYXNlLXZhbHVlKTsgfVxuXG4gICRyZW1WYWx1ZXM6ICgpO1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xuICAgICRyZW1WYWx1ZXM6IGFwcGVuZCgkcmVtVmFsdWVzLCBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZS12YWx1ZSkpO1xuICB9XG4gIEByZXR1cm4gJHJlbVZhbHVlcztcbn1cblxuLy8gT0xEIEVNIENBTENcbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEuMCwgdXNlIHJlbS1jYWxjKClcbkBmdW5jdGlvbiBlbUNhbGMoJHZhbHVlcyl7XG4gIEByZXR1cm4gcmVtLWNhbGMoJHZhbHVlcyk7XG59XG5cbi8vIE9MRCBFTSBDQUxDXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLjAsIHVzZSByZW0tY2FsYygpXG5AZnVuY3Rpb24gZW0tY2FsYygkdmFsdWVzKXtcbiAgQHJldHVybiByZW0tY2FsYygkdmFsdWVzKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEJsb2NrIEdyaWQgVmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcbiRpbmNsdWRlLXhsLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgbWF4aW11bSBudW1iZXIgb2YgYmxvY2sgZ3JpZCBlbGVtZW50cyBwZXIgcm93XG4kYmxvY2stZ3JpZC1lbGVtZW50czogMTIgIWRlZmF1bHQ7XG4kYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZDogZmFsc2UgIWRlZmF1bHQ7XG5AaWYgJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZCB7XG4gICRibG9jay1ncmlkLWRlZmF1bHQtc3BhY2luZzogJGNvbHVtbi1ndXR0ZXI7XG59XG5cbi8vIEVuYWJsZXMgbWVkaWEgcXVlcmllcyBmb3IgYmxvY2stZ3JpZCBjbGFzc2VzLiBTZXQgdG8gZmFsc2UgaWYgd3JpdGluZyBzZW1hbnRpYyBIVE1MLlxuJGJsb2NrLWdyaWQtbWVkaWEtcXVlcmllczogdHJ1ZSAhZGVmYXVsdDtcblxuLy9cbi8vIEJsb2NrIEdyaWQgTWl4aW5zXG4vL1xuXG4vLyBDcmVhdGUgYSBjdXN0b20gYmxvY2sgZ3JpZFxuLy9cbi8vICRwZXItcm93IC0gIyBvZiBpdGVtcyB0byBkaXNwbGF5IHBlciByb3cuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJHNwYWNpbmcgLSAjIG9mIGVtcyB0byB1c2UgYXMgcGFkZGluZyBvbiBlYWNoIGJsb2NrIGl0ZW0uIERlZmF1bHQ6IHJlbS1jYWxjKDIwKS5cbi8vICRpbmNsdWRlLXNwYWNpbmcgLSBBZGRzIHBhZGRpbmcgdG8gb3VyIGxpc3QgaXRlbS4gRGVmYXVsdDogdHJ1ZS5cbi8vICRiYXNlLXN0eWxlIC0gQXBwbHkgYSBiYXNlIHN0eWxlIHRvIGJsb2NrIGdyaWQuIERlZmF1bHQ6IHRydWUuXG5AbWl4aW4gYmxvY2stZ3JpZChcbiAgJHBlci1yb3c6ZmFsc2UsXG4gICRzcGFjaW5nOiRibG9jay1ncmlkLWRlZmF1bHQtc3BhY2luZyxcbiAgJGluY2x1ZGUtc3BhY2luZzp0cnVlLFxuICAkYmFzZS1zdHlsZTp0cnVlKSB7XG5cbiAgQGlmICRiYXNlLXN0eWxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwO1xuICAgIEBpZiAkYWxpZ24tYmxvY2stZ3JpZC10by1ncmlkIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9IEBlbHNlIHtcbiAgICAgIG1hcmdpbjogMCAoLSRzcGFjaW5nLzIpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAgICY+bGkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgICBAaWYgJGluY2x1ZGUtc3BhY2luZyB7XG4gICAgICAgIHBhZGRpbmc6IDAgKCRzcGFjaW5nLzIpICRzcGFjaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGVyLXJvdyB7XG4gICAgJj5saSB7XG4gICAgICB3aWR0aDogMTAwJS8kcGVyLXJvdztcbiAgICAgIEBpZiAkaW5jbHVkZS1zcGFjaW5nIHtcbiAgICAgICAgcGFkZGluZzogMCAoJHNwYWNpbmcvMikgJHNwYWNpbmc7XG4gICAgICB9XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICAmOm50aC1vZi10eXBlKDFuKSB7IGNsZWFyOiBub25lOyB9XG4gICAgICAmOm50aC1vZi10eXBlKCN7JHBlci1yb3d9bisxKSB7IGNsZWFyOiBib3RoOyB9XG4gICAgICBAaWYgJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZCB7XG4gICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtYWxpZ25lZCgkcGVyLXJvdywgJHNwYWNpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYmxvY2stZ3JpZC1hbGlnbmVkKCRwZXItcm93LCAkc3BhY2luZykge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLWVsZW1lbnRzIHtcbiAgICBAaWYgJHBlci1yb3cgPj0gJGkge1xuICAgICAgJGdyaWQtY29sdW1uOiAnKycgKyAkaTtcbiAgICAgIEBpZiAkcGVyLXJvdyA9PSAkaSB7XG4gICAgICAgICRncmlkLWNvbHVtbjogJyc7XG4gICAgICB9XG4gICAgICAmOm50aC1vZi10eXBlKCN7JHBlci1yb3d9biN7dW5xdW90ZSgkZ3JpZC1jb2x1bW4pfSkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICgkc3BhY2luZyAtICgoJHNwYWNpbmcgLyAkcGVyLXJvdykgKiAoJHBlci1yb3cgLSAoJGkgLSAxKSkpKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogKCRzcGFjaW5nIC0gKCgkc3BhY2luZyAvICRwZXItcm93KSAqICRpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEdlbmVyYXRlIHByZXNlbnRhdGlvbmFsIG1hcmt1cCBmb3IgYmxvY2sgZ3JpZC5cbi8vXG4vLyAkc2l6ZSAtIE5hbWUgb2YgY2xhc3MgdG8gdXNlLCBpLmUuIFwibGFyZ2VcIiB3aWxsIGdlbmVyYXRlIC5sYXJnZS1ibG9jay1ncmlkLTEsIC5sYXJnZS1ibG9jay1ncmlkLTIsIGV0Yy5cbkBtaXhpbiBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZSwkaW5jbHVkZS1zcGFjaW5nKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtZWxlbWVudHMge1xuICAgIC4jeyRzaXplfS1ibG9jay1ncmlkLSN7KCRpKX0ge1xuICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZCgkaSwkYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmcsJGluY2x1ZGUtc3BhY2luZyxmYWxzZSk7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJibG9jay1ncmlkXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzIHtcblxuICAgIFtjbGFzcyo9XCJibG9jay1ncmlkLVwiXSB7IEBpbmNsdWRlIGJsb2NrLWdyaWQ7IH1cblxuICAgIEBpZiAkYmxvY2stZ3JpZC1tZWRpYS1xdWVyaWVzIHtcbiAgICAgIEBtZWRpYSAjeyRzbWFsbC11cH0ge1xuICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTpzbWFsbCwkaW5jbHVkZS1zcGFjaW5nOmZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTptZWRpdW0sJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTpsYXJnZSwkaW5jbHVkZS1zcGFjaW5nOmZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRpbmNsdWRlLXhsLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzIHtcbiAgICAgICAgQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnhsYXJnZSwkaW5jbHVkZS1zcGFjaW5nOmZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyR4eGxhcmdlLXVwfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eHhsYXJnZSwkaW5jbHVkZS1zcGFjaW5nOmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQnJlYWRjcnVtYiBWYXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGJyZWFkY3J1bWIgY29udGFpbmVyLlxuJGNydW1iLWJnOiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiA1NSUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHRoZSBwYWRkaW5nIGFyb3VuZCB0aGUgYnJlYWRjcnVtYnMuXG4kY3J1bWItcGFkZGluZzogcmVtLWNhbGMoOSAxNCA5KSAhZGVmYXVsdDtcbiRjcnVtYi1zaWRlLXBhZGRpbmc6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYm9yZGVyIHN0eWxlcy5cbiRjcnVtYi1mdW5jdGlvbi1mYWN0b3I6IC0xMCUgIWRlZmF1bHQ7XG4kY3J1bWItYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiRjcnVtYi1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGNydW1iLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGNydW1iLWJnLCAkbGlnaHRuZXNzOiAkY3J1bWItZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRjcnVtYi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHZhcmlvdXMgdGV4dCBzdHlsZXMgZm9yIGJyZWFkY3J1bWJzLlxuJGNydW1iLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtY29sb3ItY3VycmVudDogJG9pbCAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yLXVuYXZhaWxhYmxlOiAkYWx1bWludW0gIWRlZmF1bHQ7XG4kY3J1bWItZm9udC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcbiRjcnVtYi1saW5rLWRlY29yOiB1bmRlcmxpbmUgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBzbGFzaCBiZXR3ZWVuIGJyZWFkY3J1bWJzXG4kY3J1bWItc2xhc2gtY29sb3I6ICRiYXNlICFkZWZhdWx0O1xuJGNydW1iLXNsYXNoOiBcIi9cIiAhZGVmYXVsdDtcblxuLy9cbi8vIEJyZWFkY3J1bWIgTWl4aW5zXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgYSBjb250YWluZXIgYXJvdW5kIG91ciBicmVhZGNydW1ic1xuQG1peGluIGNydW1iLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkY3J1bWItcGFkZGluZztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBib3JkZXItc3R5bGU6ICRjcnVtYi1ib3JkZXItc3R5bGU7XG4gIGJvcmRlci13aWR0aDogJGNydW1iLWJvcmRlci1zaXplO1xuXG4gIC8vIFdlIGNvbnRyb2wgd2hpY2ggYmFja2dyb3VuZCBjb2xvciBhbmQgYm9yZGVyIGNvbWUgdGhyb3VnaC5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGNydW1iLWJnO1xuICBib3JkZXItY29sb3I6ICRjcnVtYi1ib3JkZXItY29sb3I7XG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBicmVhZGNydW1iIHN0eWxlcyBmcm9tIGxpc3QgaXRlbXMuXG5AbWl4aW4gY3J1bWJzIHtcblxuICAvLyBBIG5vcm1hbCBzdGF0ZSB3aWxsIG1ha2UgdGhlIGxpbmtzIGxvb2sgYW5kIGFjdCBsaWtlIGNsaWNrYWJsZSBicmVhZGNydW1icy5cbiAgbWFyZ2luOiAwO1xuICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIGZvbnQtc2l6ZTogJGNydW1iLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRjcnVtYi1mb250LXNpemU7XG4gIHRleHQtdHJhbnNmb3JtOiAkY3J1bWItZm9udC10cmFuc2Zvcm07XG4gIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvcjtcblxuICAmOmhvdmVyIGEsICY6Zm9jdXMgYSB7IHRleHQtZGVjb3JhdGlvbjogJGNydW1iLWxpbmstZGVjb3I7IH1cblxuICBhIHtcbiAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBDdXJyZW50IGlzIGZvciB0aGUgbGluayBvZiB0aGUgY3VycmVudCBwYWdlXG4gICYuY3VycmVudCB7XG4gICAgY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWU7XG4gICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yLWN1cnJlbnQ7XG4gICAgYSB7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZTtcbiAgICAgIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvci1jdXJyZW50O1xuICAgIH1cblxuICAgICY6aG92ZXIsICY6aG92ZXIgYSxcbiAgICAmOmZvY3VzLCAmOmZvY3VzIGEgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgfVxuXG4gIC8vIFVuYXZhaWxhYmxlIHJlbW92ZWQgY29sb3IgYW5kIGxpbmsgc3R5bGVzIHNvIGl0IGxvb2tzIGluYWN0aXZlLlxuICAmLnVuYXZhaWxhYmxlIHtcbiAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItdW5hdmFpbGFibGU7XG4gICAgYSB7IGNvbG9yOiAkY3J1bWItZm9udC1jb2xvci11bmF2YWlsYWJsZTsgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmhvdmVyIGEsXG4gICAgJjpmb2N1cyxcbiAgICBhOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvci11bmF2YWlsYWJsZTtcbiAgICAgIGN1cnNvcjogJGN1cnNvci1kaXNhYmxlZC12YWx1ZTtcbiAgICB9XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCIjeyRjcnVtYi1zbGFzaH1cIjtcbiAgICBjb2xvcjogJGNydW1iLXNsYXNoLWNvbG9yO1xuICAgIG1hcmdpbjogMCAkY3J1bWItc2lkZS1wYWRkaW5nO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDFweDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImJyZWFkY3J1bWJzXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbmF2LWNsYXNzZXMge1xuICAgIC5icmVhZGNydW1icyB7XG4gICAgICBAaW5jbHVkZSBjcnVtYi1jb250YWluZXI7XG4gICAgICBAaW5jbHVkZSByYWRpdXMoJGNydW1iLXJhZGl1cyk7XG5cbiAgICAgICY+KiB7XG4gICAgICAgIEBpbmNsdWRlIGNydW1icztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyogQWNjZXNzaWJpbGl0eSAtIGhpZGVzIHRoZSBmb3J3YXJkIHNsYXNoICovXG5bYXJpYS1sYWJlbD1cImJyZWFkY3J1bWJzXCJdIFthcmlhLWhpZGRlbj1cInRydWVcIl06YWZ0ZXIge1xuICBjb250ZW50OiBcIi9cIjtcbiAgfVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImJ1dHRvbnNcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWZvcm0tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGJhc2UgZm9yIGxvdHMgb2YgZm9ybSBzcGFjaW5nIGFuZCBwb3NpdGlvbmluZyBzdHlsZXNcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsYWJlbHMgaW4gZGlmZmVyZW50IHdheXNcbiRmb3JtLWxhYmVsLXBvaW50ZXI6IHBvaW50ZXIgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRibGFjaywgJGxpZ2h0bmVzczogMzAlKSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWJvdHRvbS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1jb2xvcjogcmdiYSgwLDAsMCwwLjc1KSAhZGVmYXVsdDtcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRpbnB1dC1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWJnLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yJSkgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNDAlKSAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJGlucHV0LWRpc2FibGVkLWJnOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGlucHV0LWRpc2FibGVkLWN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlICFkZWZhdWx0O1xuJGlucHV0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMSkgIWRlZmF1bHQ7XG4kaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgZmllbGRzZXQgYm9yZGVyIGFuZCBzcGFjaW5nLlxuJGZpZWxkc2V0LWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kZmllbGRzZXQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kZmllbGRzZXQtYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGxlZ2VuZHMgd2hlbiB5b3UgdXNlIHRoZW1cbiRsZWdlbmQtYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiRsZWdlbmQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIHByZWZpeCBhbmQgcG9zdGZpeCBpbnB1dCBlbGVtZW50c1xuJGlucHV0LXByZWZpeC1iZzogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNSUpICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTIwJSkgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWJvcmRlci10eXBlOiBzb2xpZCAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtb3ZlcmZsb3c6IHZpc2libGUgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWZvbnQtY29sb3I6ICRvaWwgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWZvbnQtY29sb3ItYWx0OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHNldHRpbmcgdG8gdHVybiBvbi9vZmYgSFRNTDUgbnVtYmVyIHNwaW5uZXJzICh0aGUgdXAvZG93biBhcnJvd3MpXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlcyBmb3IgaW5wdXRzIGFuZCBsYWJlbHNcbiRpbnB1dC1lcnJvci1tZXNzYWdlLXBhZGRpbmc6IHJlbS1jYWxjKDYgOSA5KSAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLXRvcDogLTFweCAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1iZy1jb2xvcjogJGFsZXJ0LWNvbG9yICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvci1hbHQ6ICRvaWwgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSBnbG93aW5nIGVmZmVjdCBvZiBpbnB1dHMgd2hlbiBmb2N1c2VkXG4kZ2xvd2luZy1lZmZlY3QtZmFkZS10aW1lOiAwLjQ1cyAhZGVmYXVsdDtcbiRnbG93aW5nLWVmZmVjdC1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuLy8gU2VsZWN0IHZhcmlhYmxlc1xuJHNlbGVjdC1iZy1jb2xvcjogJGdob3N0ICFkZWZhdWx0O1xuJHNlbGVjdC1ob3Zlci1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHNlbGVjdC1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTMlKSAhZGVmYXVsdDtcblxuLy9cbi8vIEBNSVhJTlNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGdpdmUgdXMgZm9ybSBzdHlsZXMgZm9yIHJvd3MgaW5zaWRlIG9mIGZvcm1zXG5AbWl4aW4gZm9ybS1yb3ctYmFzZSB7XG4gIC5yb3cgeyBtYXJnaW46IDAgKCgtJGZvcm0tc3BhY2luZykgLyAyKTtcblxuICAgIC5jb2x1bW4sXG4gICAgLmNvbHVtbnMgeyBwYWRkaW5nOiAwICgkZm9ybS1zcGFjaW5nIC8gMik7IH1cblxuICAgIC8vIFVzZSB0aGlzIHRvIGNvbGxhcHNlIHRoZSBtYXJnaW5zIG9mIGEgZm9ybSByb3dcbiAgICAmLmNvbGxhcHNlIHsgbWFyZ2luOiAwO1xuXG4gICAgICAuY29sdW1uLFxuICAgICAgLmNvbHVtbnMgeyBwYWRkaW5nOiAwOyB9XG4gICAgICBpbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sIDApO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG4gIGlucHV0LmNvbHVtbixcbiAgaW5wdXQuY29sdW1ucyxcbiAgdGV4dGFyZWEuY29sdW1uLFxuICB0ZXh0YXJlYS5jb2x1bW5zIHsgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogKCRmb3JtLXNwYWNpbmcgLyAyKTsgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBnaXZlIGFsbCBiYXNpYyBmb3JtIGVsZW1lbnRzIHRoZWlyIHN0eWxlXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJnLWNvbG9yO1xuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBib3JkZXI6IHtcbiAgICBzdHlsZTogJGlucHV0LWJvcmRlci1zdHlsZTtcbiAgICB3aWR0aDogJGlucHV0LWJvcmRlci13aWR0aDtcbiAgICBjb2xvcjogJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgfVxuICBib3gtc2hhZG93OiAkaW5wdXQtYm94LXNoYWRvdztcbiAgY29sb3I6ICRpbnB1dC1mb250LWNvbG9yO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XG4gIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuICBoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgQGlmICRpbnB1dC1pbmNsdWRlLWdsb3dpbmctZWZmZWN0IHtcbiAgICBAaW5jbHVkZSBibG9jay1nbG93aW5nLWVmZmVjdChmb2N1cywgJGdsb3dpbmctZWZmZWN0LWZhZGUtdGltZSwgJGdsb3dpbmctZWZmZWN0LWNvbG9yKTtcbiAgfVxuICAvLyBCYXNpYyBmb2N1cyBzdHlsZXNcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LWZvY3VzLWJnLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG4gIC8vIERpc2JhbGVkIFN0eWxlc1xuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiAkaW5wdXQtZGlzYWJsZWQtY3Vyc29yO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgYmFja2dyb3VuZCBpbnB1dCBiYWNrZ3JvdW5kIGNvbG9yXG4gICZbZGlzYWJsZWRdLFxuICAmW3JlYWRvbmx5XSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1iZztcbiAgICBjdXJzb3I6ICRpbnB1dC1kaXNhYmxlZC1jdXJzb3I7XG4gIH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGZvcm0gbGFiZWxzXG4vL1xuLy8gJGFsaWdubWVudCAtIEFsaWdubWVudCBvcHRpb25zLiBEZWZhdWx0OiBmYWxzZS4gT3B0aW9uczogW3JpZ2h0LCBpbmxpbmUsIGZhbHNlXVxuLy8gJGJhc2Utc3R5bGUgLSBDb250cm9sIHdoZXRoZXIgb3Igbm90IHRoZSBiYXNlIHN0eWxlcyBjb21lIHRocm91Z2guIERlZmF1bHQ6IHRydWUuXG5AbWl4aW4gZm9ybS1sYWJlbCgkYWxpZ25tZW50OmZhbHNlLCAkYmFzZS1zdHlsZTp0cnVlKSB7XG5cbiAgLy8gQ29udHJvbCB3aGV0aGVyIG9yIG5vdCB0aGUgYmFzZSBzdHlsZXMgY29tZSB0aHJvdWdoLlxuICBAaWYgJGJhc2Utc3R5bGUge1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1mb250LWNvbG9yO1xuICAgIGN1cnNvcjogJGZvcm0tbGFiZWwtcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLWxhYmVsLWJvdHRvbS1tYXJnaW47XG4gIH1cblxuICAvLyBBbGlnbm1lbnQgb3B0aW9uc1xuICBAaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IGlubGluZSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZyAwO1xuICAgIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkgMDtcbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcG9zdGZpeC9wcmVmaXggZm9ybSBMYWJlbHNcbkBtaXhpbiBwcmVmaXgtcG9zdGZpeC1iYXNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBib3JkZXItc3R5bGU6ICRpbnB1dC1wcmVmaXgtYm9yZGVyLXR5cGU7XG4gIGJvcmRlci13aWR0aDogJGlucHV0LXByZWZpeC1ib3JkZXItc2l6ZTtcbiAgb3ZlcmZsb3c6ICRpbnB1dC1wcmVmaXgtb3ZlcmZsb3c7XG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuICBsaW5lLWhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBwcmVmaXggbGFiZWwgc3R5bGVzXG4vLyAkYmcgLSBEZWZhdWx0OiRpbnB1dC1wcmVmaXgtYmcgfHwgc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNSUpICFkZWZhdWx0O1xuLy8gJGlzLWJ1dHRvbiAtIFRvZ2dsZSBwb3NpdGlvbiBzZXR0aW5ncyBpZiBwcmVmaXggaXMgYSBidXR0b24uIERlZmF1bHQ6ZmFsc2Vcbi8vXG5AbWl4aW4gcHJlZml4KCRiZzokaW5wdXQtcHJlZml4LWJnLCAkYm9yZGVyOiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yLCAkaXMtYnV0dG9uOmZhbHNlKSB7XG5cbiAgQGlmICRiZyB7XG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICAgIGJvcmRlci0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBub25lO1xuXG4gICAgLy8gQ29udHJvbCB0aGUgZm9udCBjb2xvciBiYXNlZCBvbiBiYWNrZ3JvdW5kIGJyaWdodG5lc3NcbiAgICBAaWYgJGJnLWxpZ2h0bmVzcyA+IDcwJSBvciAkYmcgPT0geWVsbG93IHsgY29sb3I6ICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvcjsgfVxuICAgIEBlbHNlIHsgY29sb3I6ICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvci1hbHQ7IH1cbiAgfVxuXG4gIEBpZiAkYm9yZGVyIHtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gIH1cblxuICBAaWYgJGlzLWJ1dHRvbiB7XG4gICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuXG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBwb3N0Zml4IGxhYmVsIHN0eWxlc1xuLy8gJGJnIC0gRGVmYXVsdDokaW5wdXQtcHJlZml4LWJnIHx8IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbi8vICRpcy1idXR0b24gLSBUb2dnbGUgcG9zaXRpb24gc2V0dGluZ3MgaWYgcHJlZml4IGlzIGEgYnV0dG9uLiBEZWZhdWx0OiBmYWxzZVxuQG1peGluIHBvc3RmaXgoJGJnOiRpbnB1dC1wcmVmaXgtYmcsICRib3JkZXI6JGlucHV0LXByZWZpeC1ib3JkZXItY29sb3IsICRpcy1idXR0b246ZmFsc2UpIHtcblxuICBAaWYgJGJnIHtcbiAgICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcbiAgICBiYWNrZ3JvdW5kOiAkYmc7XG4gICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9OiBub25lO1xuXG4gICAgLy8gQ29udHJvbCB0aGUgZm9udCBjb2xvciBiYXNlZCBvbiBiYWNrZ3JvdW5kIGJyaWdodG5lc3NcbiAgICBAaWYgJGJnLWxpZ2h0bmVzcyA+IDcwJSAgb3IgJGJnID09IHllbGxvdyB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3I7IH1cbiAgICBAZWxzZSB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3ItYWx0OyB9XG4gIH1cblxuICBAaWYgJGJvcmRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICB9XG5cbiAgQGlmICRpcy1idXR0b24ge1xuICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBzdHlsZSBmaWVsZHNldHNcbkBtaXhpbiBmaWVsZHNldCB7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlci13aWR0aCAkZmllbGRzZXQtYm9yZGVyLXN0eWxlICRmaWVsZHNldC1ib3JkZXItY29sb3I7XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG5cbiAgLy8gYW5kIGxlZ2VuZCBzdHlsZXNcbiAgbGVnZW5kIHtcbiAgICBmb250LXdlaWdodDogJGxlZ2VuZC1mb250LXdlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkbGVnZW5kLWJnO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiByZW0tY2FsYygtMyk7XG4gIH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY29udHJvbCBib3JkZXIgYW5kIGJhY2tncm91bmQgY29sb3Igb2YgZXJyb3IgaW5wdXRzXG4vLyAkY29sb3IgLSBEZWZhdWx0OiAkYWxlcnQtY29sb3IgKGZvdW5kIGluIHNldHRpbmdzIGZpbGUpXG5AbWl4aW4gZm9ybS1lcnJvci1jb2xvcigkY29sb3I6JGFsZXJ0LWNvbG9yKSB7XG4gIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvciwgMC4xKTtcblxuICAvLyBHbyBiYWNrIHRvIG5vcm1hbCBvbiBmb2N1c1xuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtZm9jdXMtYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIHNpbXBsZSBtaXhpbiB0byBzdHlsZSBsYWJlbHMgZm9yIGVycm9yIGlucHV0c1xuLy8gJGNvbG9yIC0gRGVmYXVsdDokYWxlcnQtY29sb3IuIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbkBtaXhpbiBmb3JtLWxhYmVsLWVycm9yLWNvbG9yKCRjb2xvcjokYWxlcnQtY29sb3IpIHsgY29sb3I6ICRjb2xvcjsgfVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgZXJyb3IgbWVzc2FnZSBzdHlsZXNcbi8vICRiZyAtIERlZmF1bHQ6ICRhbGVydC1jb2xvciAoRm91bmQgaW4gc2V0dGluZ3MgZmlsZSlcbkBtaXhpbiBmb3JtLWVycm9yLW1lc3NhZ2UoJGJnOiRpbnB1dC1lcnJvci1tZXNzYWdlLWJnLWNvbG9yKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1wYWRkaW5nO1xuICBtYXJnaW4tdG9wOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS10b3A7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC13ZWlnaHQ7XG4gIGZvbnQtc3R5bGU6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc3R5bGU7XG5cbiAgLy8gV2UgY2FuIGNvbnRyb2wgdGhlIHRleHQgY29sb3IgYmFzZWQgb24gdGhlIGJyaWdodG5lc3Mgb2YgdGhlIGJhY2tncm91bmQuXG4gICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICBiYWNrZ3JvdW5kOiAkYmc7XG4gIEBpZiAkYmctbGlnaHRuZXNzIDwgNzAlIG9yICRiZyA9PSB5ZWxsb3cgeyBjb2xvcjogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvcjsgfVxuICBAZWxzZSB7IGNvbG9yOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yLWFsdDsgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBzdHlsZSBzZWxlY3QgZWxlbWVudHNcbkBtaXhpbiBmb3JtLXNlbGVjdCAge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iZy1jb2xvcjtcblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gVGhlIGN1c3RvbSBhcnJvdyBoYXMgc29tZSBmYWtlIGhvcml6b250YWwgcGFkZGluZyBzbyB3ZSBjYW4gYWxpZ24gaXRcbiAgLy8gZnJvbSB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZWxlbWVudCB3aXRob3V0IHJlbHlpbmcgb24gQ1NTM1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhabGNuTnBiMjQ5SWpFdU1TSWdlRDBpTVRKd2VDSWdlVDBpTUhCNElpQjNhV1IwYUQwaU1qUndlQ0lnYUdWcFoyaDBQU0l6Y0hnaUlIWnBaWGRDYjNnOUlqQWdNQ0EySURNaUlHVnVZV0pzWlMxaVlXTnJaM0p2ZFc1a1BTSnVaWGNnTUNBd0lEWWdNeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK1BIQnZiSGxuYjI0Z2NHOXBiblJ6UFNJMUxqazVNaXd3SURJdU9Ua3lMRE1nTFRBdU1EQTRMREFnSWk4K1BDOXpkbWMrKTtcblxuICAvLyBXZSBjYW4gc2FmZWx5IHVzZSBsZWZ0bW9zdCBhbmQgcmlnaHRtb3N0IG5vd1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcsIDAlLCAxMDAlKSBjZW50ZXI7XG5cbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYm9yZGVyOiB7XG4gICAgc3R5bGU6ICRpbnB1dC1ib3JkZXItc3R5bGU7XG4gICAgd2lkdGg6ICRpbnB1dC1ib3JkZXItd2lkdGg7XG4gICAgY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gIH1cbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyKTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gIGNvbG9yOiAkaW5wdXQtZm9udC1jb2xvcjtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgQGluY2x1ZGUgcmFkaXVzKDApO1xuICAmLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkZ2xvYmFsLXJhZGl1cyk7IH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1ob3Zlci1iZy1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I7XG4gIH1cbiAgLy8gRGlzYWJsZWQgU3R5bGVzXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1iZztcbiAgICBjdXJzb3I6ICRpbnB1dC1kaXNhYmxlZC1jdXJzb3I7XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gdHVybiBvbi9vZmYgSFRNTDUgbnVtYmVyIHNwaW5uZXJzXG5AbWl4aW4gaHRtbDVudW1iZXIoJGJyb3dzZXIsICRvbjp0cnVlKSB7XG4gIEBpZiAkb249PWZhbHNlIHtcbiAgICAgIEBpZiAkYnJvd3Nlcj09d2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9IEBlbHNlIGlmICRicm93c2VyPT1tb3oge1xuICAgICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiZm9ybVwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWZvcm0tY2xhc3NlcyB7XG4gICAgLyogU3RhbmRhcmQgRm9ybXMgKi9cbiAgICBmb3JtIHsgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZzsgfVxuXG4gICAgLyogVXNpbmcgZm9ybXMgd2l0aGluIHJvd3MsIHdlIG5lZWQgdG8gc2V0IHNvbWUgZGVmYXVsdHMgKi9cbiAgICBmb3JtIC5yb3cgeyBAaW5jbHVkZSBmb3JtLXJvdy1iYXNlOyB9XG5cbiAgICAvKiBMYWJlbCBTdHlsZXMgKi9cbiAgICBsYWJlbCB7IEBpbmNsdWRlIGZvcm0tbGFiZWw7XG4gICAgICAmLnJpZ2h0IHsgQGluY2x1ZGUgZm9ybS1sYWJlbChyaWdodCxmYWxzZSk7IH1cbiAgICAgICYuaW5saW5lIHsgQGluY2x1ZGUgZm9ybS1sYWJlbChpbmxpbmUsZmFsc2UpOyB9XG4gICAgICAvKiBTdHlsZXMgZm9yIHJlcXVpcmVkIGlucHV0cyAqL1xuICAgICAgc21hbGwge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGZvcm0tbGFiZWwtc21hbGwtdHJhbnNmb3JtO1xuICAgICAgICBjb2xvcjogc2NhbGUtY29sb3IoJGZvcm0tbGFiZWwtZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMTUlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBBdHRhY2ggZWxlbWVudHMgdG8gdGhlIGJlZ2lubmluZyBvciBlbmQgb2YgYW4gaW5wdXQgKi9cbiAgICAucHJlZml4LFxuICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcHJlZml4LXBvc3RmaXgtYmFzZTsgfVxuXG4gICAgLyogQWRqdXN0IHBhZGRpbmcsIGFsaWdubWVudCBhbmQgcmFkaXVzIGlmIHByZS9wb3N0IGVsZW1lbnQgaXMgYSBidXR0b24gKi9cbiAgICAucG9zdGZpeC5idXR0b24geyBAaW5jbHVkZSBidXR0b24tc2l6ZShmYWxzZSxmYWxzZSk7IEBpbmNsdWRlIHBvc3RmaXgoZmFsc2UsIGZhbHNlLCB0cnVlKTsgfVxuICAgIC5wcmVmaXguYnV0dG9uIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoZmFsc2UsZmFsc2UpOyBAaW5jbHVkZSBwcmVmaXgoZmFsc2UsIGZhbHNlLCB0cnVlKTsgfVxuXG4gICAgLnByZWZpeC5idXR0b24ucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgLnBvc3RmaXguYnV0dG9uLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgLnByZWZpeC5idXR0b24ucm91bmQgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgIC5wb3N0Zml4LmJ1dHRvbi5yb3VuZCB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yb3VuZCk7IH1cblxuICAgIC8qIFNlcGFyYXRlIHByZWZpeCBhbmQgcG9zdGZpeCBzdHlsZXMgd2hlbiBvbiBzcGFuIG9yIGxhYmVsIHNvIGJ1dHRvbnMga2VlcCB0aGVpciBvd24gKi9cbiAgICBzcGFuLnByZWZpeCxsYWJlbC5wcmVmaXggeyBAaW5jbHVkZSBwcmVmaXgoKTsgfVxuICAgIHNwYW4ucG9zdGZpeCxsYWJlbC5wb3N0Zml4IHsgQGluY2x1ZGUgcG9zdGZpeCgpOyB9XG5cbiAgICAvKiBXZSB1c2UgdGhpcyB0byBnZXQgYmFzaWMgc3R5bGluZyBvbiBhbGwgYmFzaWMgZm9ybSBlbGVtZW50cyAqL1xuICAgICN7dGV4dC1pbnB1dHMoYWxsLCAnaW5wdXQnKX0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICAgIEBpZiAkaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdCA9PSBmYWxzZSB7XG4gICAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYWxsLCAwLjE1cywgbGluZWFyKTtcbiAgICAgIH1cbiAgICAgICYucmFkaXVzIHtcbiAgICAgICAgQGluY2x1ZGUgcmFkaXVzKCRpbnB1dC1ib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JtIHtcbiAgICAgIC5yb3cge1xuICAgICAgICAucHJlZml4LXJhZGl1cy5yb3cuY29sbGFwc2Uge1xuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIHRleHRhcmVhLFxuICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICBidXR0b24geyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcmFkaXVzKTsgfVxuICAgICAgICAgIC5wcmVmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgICAucG9zdGZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgICAgICAgLnBvc3RmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcmFkaXVzKTsgfVxuICAgICAgICB9XG4gICAgICAgIC5wcmVmaXgtcm91bmQucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICAgIC5wcmVmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICB9XG4gICAgICAgIC5wb3N0Zml4LXJvdW5kLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcm91bmQpOyB9XG4gICAgICAgICAgLnBvc3RmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcm91bmQpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuXG4gICAgLyogUmVzcGVjdCBlbmZvcmNlZCBhbW91bnQgb2Ygcm93cyBmb3IgdGV4dGFyZWEgKi9cbiAgICB0ZXh0YXJlYVtyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG5cdC8qIE5vdCBhbGxvdyByZXNpemUgb3V0IG9mIHBhcmVudCAqL1xuXHR0ZXh0YXJlYSB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG5cbiAgICAvKiBBZGQgaGVpZ2h0IHZhbHVlIGZvciBzZWxlY3QgZWxlbWVudHMgdG8gbWF0Y2ggdGV4dCBpbnB1dCBoZWlnaHQgKi9cbiAgICBzZWxlY3Qge1xuICAgICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gICAgICBoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuICAgICAgJlttdWx0aXBsZV0ge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQWRqdXN0IG1hcmdpbiBmb3IgZm9ybSBlbGVtZW50cyBiZWxvdyAqL1xuICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gICAgc2VsZWN0IHtcbiAgICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmcgMDtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCxcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRmb3JtLXNwYWNpbmcgKiAuNTtcbiAgICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZm9ybS1zcGFjaW5nO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICAvKiBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aCAqL1xuICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgICAgIHdpZHRoOjEwMCU7XG4gICAgfVxuXG4gICAgLyogSFRNTDUgTnVtYmVyIHNwaW5uZXJzIHNldHRpbmdzICovXG4gICAgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgICAgIEBpbmNsdWRlIGh0bWw1bnVtYmVyKG1veiwgJGlucHV0LW51bWJlci1zcGlubmVycylcbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIEBpbmNsdWRlIGh0bWw1bnVtYmVyKHdlYmtpdCwgJGlucHV0LW51bWJlci1zcGlubmVycyk7XG4gICAgfVxuXG4gICAgLyogV2UgYWRkIGJhc2ljIGZpZWxkc2V0IHN0eWxpbmcgKi9cbiAgICBmaWVsZHNldCB7XG4gICAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgICB9XG5cbiAgICAvKiBFcnJvciBIYW5kbGluZyAqL1xuXG4gICAgI3tkYXRhKCdhYmlkZScpfSB7XG4gICAgICAuZXJyb3Igc21hbGwuZXJyb3IsIC5lcnJvciBzcGFuLmVycm9yLCBzcGFuLmVycm9yLCBzbWFsbC5lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZvcm0tZXJyb3ItbWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIHNwYW4uZXJyb3IsIHNtYWxsLmVycm9yIHsgZGlzcGxheTogbm9uZTsgfVxuICAgIH1cblxuICAgIHNwYW4uZXJyb3IsIHNtYWxsLmVycm9yIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tZXJyb3ItbWVzc2FnZTtcbiAgICB9XG5cbiAgICAuZXJyb3Ige1xuICAgICAgaW5wdXQsXG4gICAgICB0ZXh0YXJlYSxcbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmdcbiAgICAgIH1cblxuICAgICAgbGFiZWwsXG4gICAgICBsYWJlbC5lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtZXJyb3ItY29sb3I7XG4gICAgICB9XG5cbiAgICAgIHNtYWxsLmVycm9yIHtcbiAgICAgICAgQGluY2x1ZGUgZm9ybS1lcnJvci1tZXNzYWdlO1xuICAgICAgfVxuXG4gICAgICA+IGxhYmVsIHtcbiAgICAgICAgPiBzbWFsbCB7XG4gICAgICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRmb3JtLWxhYmVsLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDE1JSk7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGZvcm0tbGFiZWwtc21hbGwtdHJhbnNmb3JtO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXNpemU6IDYwJTtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNwYW4uZXJyb3ItbWVzc2FnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0LmVycm9yLFxuICAgIHRleHRhcmVhLmVycm9yLFxuICAgIHNlbGVjdC5lcnJvciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICBsYWJlbC5lcnJvciB7IEBpbmNsdWRlIGZvcm0tbGFiZWwtZXJyb3ItY29sb3I7IH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGJ1aWxkIHBhZGRpbmcgZm9yIGJ1dHRvbnMuXG4kYnV0dG9uLXRueTogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGJ1dHRvbi1zbWw6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRidXR0b24tbWVkOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kYnV0dG9uLWxyZzogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBkaXNwbGF5IHByb3BlcnR5LlxuJGJ1dHRvbi1kaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWRlZmF1bHQ7XG4kYnV0dG9uLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYnV0dG9uIHRleHQgc3R5bGVzLlxuJGJ1dHRvbi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1jb2xvci1hbHQ6ICRvaWwgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtdG55OiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtc21sOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtbWVkOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtbHJnOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHZhcmlvdXMgaG92ZXIgZWZmZWN0cy5cbiRidXR0b24tZnVuY3Rpb24tZmFjdG9yOiAtMjAlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBidXR0b24gYm9yZGVyIHN0eWxlcy5cbiRidXR0b24tYm9yZGVyLXdpZHRoOiAwICFkZWZhdWx0O1xuJGJ1dHRvbi1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGJ1dHRvbi1iZy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kYnV0dG9uLWJvcmRlci1jb2xvcjogJGJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRzZWNvbmRhcnktYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuJHN1Y2Nlc3MtYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkc3VjY2Vzcy1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJHN1Y2Nlc3MtYnV0dG9uLWJvcmRlci1jb2xvcjogJHN1Y2Nlc3MtYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuJGFsZXJ0LWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJGFsZXJ0LWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kYWxlcnQtYnV0dG9uLWJvcmRlci1jb2xvcjogJGFsZXJ0LWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiR3YXJuaW5nLWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHdhcm5pbmctY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiR3YXJuaW5nLWJ1dHRvbi1ib3JkZXItY29sb3I6ICR3YXJuaW5nLWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRpbmZvLWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJGluZm8tY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRpbmZvLWJ1dHRvbi1ib3JkZXItY29sb3I6ICRpbmZvLWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBkZWZhdWx0IHJhZGl1cyB1c2VkIHRocm91Z2hvdXQgdGhlIGNvcmUuXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG4kYnV0dG9uLXJvdW5kOiAkZ2xvYmFsLXJvdW5kZWQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCBkZWZhdWx0IG9wYWNpdHkgYW5kIGN1cnNvciBmb3IgZGlzYWJsZWQgYnV0dG9ucy5cbiRidXR0b24tZGlzYWJsZWQtb3BhY2l0eTogMC43ICFkZWZhdWx0O1xuJGJ1dHRvbi1kaXNhYmxlZC1jdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZSAhZGVmYXVsdDtcblxuXG4vL1xuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGEgZGVmYXVsdCBidXR0b24gYmFzZS5cbi8vXG4vLyAkc3R5bGUgLSBTZXRzIGJhc2Ugc3R5bGVzLiBDYW4gYmUgc2V0IHRvIGZhbHNlLiBEZWZhdWx0OiB0cnVlLlxuLy8gJGRpc3BsYXkgLSBVc2VkIHRvIGNvbnRyb2wgZGlzcGxheSBwcm9wZXJ0eS4gRGVmYXVsdDogJGJ1dHRvbi1kaXNwbGF5IHx8IGlubGluZS1ibG9ja1xuXG5AbWl4aW4gYnV0dG9uLWJhc2UoJHN0eWxlOnRydWUsICRkaXNwbGF5OiRidXR0b24tZGlzcGxheSkge1xuICBAaWYgJHN0eWxlIHtcbiAgICBib3JkZXItc3R5bGU6ICRidXR0b24tYm9yZGVyLXN0eWxlO1xuICAgIGJvcmRlci13aWR0aDogJGJ1dHRvbi1ib3JkZXItd2lkdGg7XG4gICAgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7XG4gICAgZm9udC1mYW1pbHk6ICRidXR0b24tZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRidXR0b24tZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW46IDAgMCAkYnV0dG9uLW1hcmdpbi1ib3R0b207XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiAkYnV0dG9uLWZvbnQtYWxpZ247XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOjA7XG4gIH1cbiAgQGlmICRkaXNwbGF5IHsgZGlzcGxheTogJGRpc3BsYXk7IH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gYWRkIGJ1dHRvbiBzaXplIHN0eWxlc1xuLy9cbi8vICRwYWRkaW5nIC0gVXNlZCB0byBidWlsZCBwYWRkaW5nIGZvciBidXR0b25zIERlZmF1bHQ6ICRidXR0b24tbWVkIHx8PSByZW0tY2FsYygxMilcbi8vICRmdWxsLXdpZHRoIC0gV2UgY2FuIHNldCAkZnVsbC13aWR0aDp0cnVlIHRvIHJlbW92ZSBzaWRlIHBhZGRpbmcgZXh0ZW5kIHdpZHRoIC0gRGVmYXVsdDogZmFsc2VcblxuQG1peGluIGJ1dHRvbi1zaXplKCRwYWRkaW5nOiRidXR0b24tbWVkLCAkZnVsbC13aWR0aDpmYWxzZSkge1xuXG4gIC8vIFdlIGNvbnRyb2wgd2hpY2ggcGFkZGluZyBzdHlsZXMgY29tZSB0aHJvdWdoLFxuICAvLyB0aGVzZSBjYW4gYmUgdHVybmVkIG9mZiBieSBzZXR0aW5nICRwYWRkaW5nOmZhbHNlXG4gIEBpZiAkcGFkZGluZyB7XG4gICAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHBhZGRpbmcgKiAyO1xuICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZyArIHJlbS1jYWxjKDEpO1xuICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06ICRwYWRkaW5nICogMjtcblxuICAgIC8vIFdlIGNvbnRyb2wgdGhlIGZvbnQtc2l6ZSBiYXNlZCBvbiBtaXhpbiBpbnB1dC5cbiAgICBAaWYgICAgICAkcGFkZGluZyA9PSAkYnV0dG9uLW1lZCB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LW1lZDsgfVxuICAgIEBlbHNlIGlmICRwYWRkaW5nID09ICRidXR0b24tdG55IHsgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtdG55OyB9XG4gICAgQGVsc2UgaWYgJHBhZGRpbmcgPT0gJGJ1dHRvbi1zbWwgeyBmb250LXNpemU6ICRidXR0b24tZm9udC1zbWw7IH1cbiAgICBAZWxzZSBpZiAkcGFkZGluZyA9PSAkYnV0dG9uLWxyZyB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LWxyZzsgfVxuICB9XG5cbiAgLy8gV2UgY2FuIHNldCAkZnVsbC13aWR0aDp0cnVlIHRvIHJlbW92ZSBzaWRlIHBhZGRpbmcgZXh0ZW5kIHdpZHRoLlxuICBAaWYgJGZ1bGwtd2lkdGgge1xuICAgIC8vIFdlIHN0aWxsIG5lZWQgdG8gY2hlY2sgaWYgJHBhZGRpbmcgaXMgc2V0LlxuICAgIEBpZiAkcGFkZGluZyB7XG4gICAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZyArIHJlbS1jYWxjKDEpO1xuICAgIH0gQGVsc2UgaWYgJHBhZGRpbmcgPT0gZmFsc2Uge1xuICAgICAgcGFkZGluZy10b3A6MDtcbiAgICAgIHBhZGRpbmctYm90dG9tOjA7XG4gICAgfVxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIHdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSB0aGUgYnV0dG9uIGhvdmVyIGFuZCBib3JkZXIgY29sb3JzXG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBidXR0b24gY29sb3Igc3R5bGVzXG4vL1xuLy8gJGJnIC0gQmFja2dyb3VuZCBjb2xvci4gV2UgY2FuIHNldCAkYmc6ZmFsc2UgZm9yIGEgdHJhbnNwYXJlbnQgYmFja2dyb3VuZC4gRGVmYXVsdDogJHByaW1hcnktY29sb3IuXG4vLyAkcmFkaXVzIC0gSWYgdHJ1ZSwgc2V0IHRvIGJ1dHRvbiByYWRpdXMgd2hpY2ggaXMgJGJ1dHRvbi1yYWRpdXMgfHwgZXhwbGljaXRseSBzZXQgcmFkaXVzIGFtb3VudCBpbiBweCAoZXguICRyYWRpdXM6MTBweCkuIERlZmF1bHQ6IGZhbHNlXG4vLyAkZGlzYWJsZWQgLSBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi4gRGVmYXVsdDogZmFsc2Vcbi8vICRiZy1ob3ZlciAtIEJ1dHRvbiBIb3ZlciBCYWNrZ3JvdW5kIENvbG9yLiBEZWZhdWx0OiAkYnV0dG9uLWJnLWhvdmVyXG4vLyAkYm9yZGVyLWNvbG9yIC0gQnV0dG9uIEJvcmRlciBDb2xvci4gRGVmYXVsdDogJGJ1dHRvbi1ib3JkZXItY29sb3JcbkBtaXhpbiBidXR0b24tc3R5bGUoJGJnOiRidXR0b24tYmctY29sb3IsICRyYWRpdXM6ZmFsc2UsICRkaXNhYmxlZDpmYWxzZSwgJGJnLWhvdmVyOm51bGwsICRib3JkZXItY29sb3I6bnVsbCkge1xuXG4gIC8vIFdlIGNvbnRyb2wgd2hpY2ggYmFja2dyb3VuZCBzdHlsZXMgYXJlIHVzZWQsXG4gIC8vIHRoZXNlIGNhbiBiZSByZW1vdmVkIGJ5IHNldHRpbmcgJGJnOmZhbHNlXG4gIEBpZiAkYmcge1xuXG4gICAgQGlmICRiZy1ob3ZlciA9PSBudWxsIHtcbiAgICAgICRiZy1ob3ZlcjogaWYoJGJnID09ICRidXR0b24tYmctY29sb3IsICRidXR0b24tYmctaG92ZXIsIHNjYWxlLWNvbG9yKCRiZywgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpKTtcbiAgICB9XG5cbiAgICBAaWYgJGJvcmRlci1jb2xvciA9PSBudWxsIHtcbiAgICAgICRib3JkZXItY29sb3I6IGlmKCRiZyA9PSAkYnV0dG9uLWJnLWNvbG9yLCAkYnV0dG9uLWJvcmRlci1jb2xvciwgc2NhbGUtY29sb3IoJGJnLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZmluZCB0aGUgbGlnaHRuZXNzIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG4gICAgJGJnLWhvdmVyLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZy1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRiZy1ob3ZlcjsgfVxuXG4gICAgLy8gV2UgY29udHJvbCB0aGUgdGV4dCBjb2xvciBmb3IgeW91IGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgIGNvbG9yOiBpZigkYmctbGlnaHRuZXNzID4gNzAlLCAkYnV0dG9uLWZvbnQtY29sb3ItYWx0LCAkYnV0dG9uLWZvbnQtY29sb3IpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBpZigkYmctaG92ZXItbGlnaHRuZXNzID4gNzAlLCAkYnV0dG9uLWZvbnQtY29sb3ItYWx0LCAkYnV0dG9uLWZvbnQtY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIGNhbiBzZXQgJGRpc2FibGVkOnRydWUgdG8gY3JlYXRlIGEgZGlzYWJsZWQgdHJhbnNwYXJlbnQgYnV0dG9uLlxuICBAaWYgJGRpc2FibGVkIHtcbiAgICBjdXJzb3I6ICRidXR0b24tZGlzYWJsZWQtY3Vyc29yO1xuICAgIG9wYWNpdHk6ICRidXR0b24tZGlzYWJsZWQtb3BhY2l0eTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRiZzsgfVxuICB9XG5cbiAgLy8gV2UgY2FuIGNvbnRyb2wgaG93IG11Y2ggYnV0dG9uIHJhZGl1cyBpcyB1c2VkLlxuICBAaWYgJHJhZGl1cyA9PSB0cnVlIHsgQGluY2x1ZGUgcmFkaXVzKCRidXR0b24tcmFkaXVzKTsgfVxuICBAZWxzZSBpZiAkcmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRyYWRpdXMpOyB9XG5cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gcXVpY2tseSBjcmVhdGUgYnV0dG9ucyB3aXRoIGEgc2luZ2xlIG1peGluLiBBcyBAamFyZWRoYXJkeSBwdXRzIGl0LCBcInRoZSBraXRjaGVuIHNpbmsgbWl4aW5cIlxuLy9cbi8vICRwYWRkaW5nIC0gVXNlZCB0byBidWlsZCBwYWRkaW5nIGZvciBidXR0b25zIERlZmF1bHQ6ICRidXR0b24tbWVkIHx8PSByZW0tY2FsYygxMilcbi8vICRiZyAtIFByaW1hcnkgY29sb3Igc2V0IGluIHNldHRpbmdzIGZpbGUuIERlZmF1bHQ6ICRidXR0b24tYmcuXG4vLyAkcmFkaXVzIC0gSWYgdHJ1ZSwgc2V0IHRvIGJ1dHRvbiByYWRpdXMgd2hpY2ggaXMgJGdsb2JhbC1yYWRpdXMgfHwgZXhwbGljaXRseSBzZXQgcmFkaXVzIGFtb3VudCBpbiBweCAoZXguICRyYWRpdXM6MTBweCkuIERlZmF1bHQ6ZmFsc2UuXG4vLyAkZnVsbC13aWR0aCAtIFdlIGNhbiBzZXQgJGZ1bGwtd2lkdGg6dHJ1ZSB0byByZW1vdmUgc2lkZSBwYWRkaW5nIGV4dGVuZCB3aWR0aC4gRGVmYXVsdDpmYWxzZS5cbi8vICRkaXNhYmxlZCAtIFdlIGNhbiBzZXQgJGRpc2FibGVkOnRydWUgdG8gY3JlYXRlIGEgZGlzYWJsZWQgdHJhbnNwYXJlbnQgYnV0dG9uLiBEZWZhdWx0OmZhbHNlLlxuLy8gJGlzLXByZWZpeCAtIE5vdCB1c2VkPyBEZWZhdWx0OmZhbHNlLlxuLy8gJGJnLWhvdmVyIC0gQnV0dG9uIEhvdmVyIENvbG9yIC0gRGVmYXVsdCBudWxsIC0gc2VlIGJ1dHRvbi1zdHlsZSBtaXhpblxuLy8gJGJvcmRlci1jb2xvciAtIEJ1dHRvbiBCb3JkZXIgQ29sb3IgLSBEZWZhdWx0IG51bGwgLSBzZWUgYnV0dG9uLXN0eWxlIG1peGluXG4vLyAkdHJhbnNpdGlvbiAtIFdlIGNhbiBjb250cm9sIHdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdGhlIGJhY2tncm91bmQtY29sb3IgdHJhbnNpdGlvbiBwcm9wZXJ0eSAtIERlZmF1bHQ6dHJ1ZS5cbkBtaXhpbiBidXR0b24oJHBhZGRpbmc6JGJ1dHRvbi1tZWQsICRiZzokYnV0dG9uLWJnLWNvbG9yLCAkcmFkaXVzOmZhbHNlLCAkZnVsbC13aWR0aDpmYWxzZSwgJGRpc2FibGVkOmZhbHNlLCAkaXMtcHJlZml4OmZhbHNlLCAkYmctaG92ZXI6bnVsbCwgJGJvcmRlci1jb2xvcjpudWxsLCAkdHJhbnNpdGlvbjogdHJ1ZSkge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcbiAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmcsICRmdWxsLXdpZHRoKTtcbiAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZywgJHJhZGl1cywgJGRpc2FibGVkLCAkYmctaG92ZXIsICRib3JkZXItY29sb3IpO1xuXG4gIEBpZiAkdHJhbnNpdGlvbiB7XG4gICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG4gIH1cbn1cblxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYnV0dG9uXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXMge1xuXG4gICAgLy8gRGVmYXVsdCBzdHlsZXMgYXBwbGllZCBvdXRzaWRlIG9mIG1lZGlhIHF1ZXJ5XG4gICAgYnV0dG9uLCAuYnV0dG9uIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLXNpemU7XG4gICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGU7XG5cbiAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuXG4gICAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHNlY29uZGFyeS1jb2xvciwgJGJnLWhvdmVyOiRzZWNvbmRhcnktYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRzZWNvbmRhcnktYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokc3VjY2Vzcy1jb2xvciwgJGJnLWhvdmVyOiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc3VjY2Vzcy1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgJi5hbGVydCAgICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRhbGVydC1jb2xvciwgJGJnLWhvdmVyOiRhbGVydC1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGFsZXJ0LWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLndhcm5pbmcgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHdhcm5pbmctY29sb3IsICRiZy1ob3Zlcjokd2FybmluZy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICYuaW5mbyAgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokaW5mby1jb2xvciwgJGJnLWhvdmVyOiRpbmZvLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokaW5mby1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuXG4gICAgICAmLmxhcmdlICB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOiRidXR0b24tbHJnKTsgfVxuICAgICAgJi5zbWFsbCAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLXNtbCk7IH1cbiAgICAgICYudGlueSAgIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi10bnkpOyB9XG4gICAgICAmLmV4cGFuZCB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOm51bGwsJGZ1bGwtd2lkdGg6dHJ1ZSk7IH1cblxuICAgICAgJi5sZWZ0LWFsaWduICB7IHRleHQtYWxpZ246IGxlZnQ7IHRleHQtaW5kZW50OiByZW0tY2FsYygxMik7IH1cbiAgICAgICYucmlnaHQtYWxpZ24geyB0ZXh0LWFsaWduOiByaWdodDsgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMTIpOyB9XG5cbiAgICAgICYucmFkaXVzIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzpmYWxzZSwgJHJhZGl1czp0cnVlKTsgfVxuICAgICAgJi5yb3VuZCAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOmZhbHNlLCAkcmFkaXVzOiRidXR0b24tcm91bmQpOyB9XG5cbiAgICAgICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYnV0dG9uLWJnLWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRidXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGJ1dHRvbi1ib3JkZXItY29sb3IpO1xuICAgICAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHNlY29uZGFyeS1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3Zlcjokc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAgICYuc3VjY2VzcyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHN1Y2Nlc3MtY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JHN1Y2Nlc3MtYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRzdWNjZXNzLWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAgICYuYWxlcnQgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRhbGVydC1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokYWxlcnQtYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRhbGVydC1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLndhcm5pbmcgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiR3YXJuaW5nLWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiR3YXJuaW5nLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokd2FybmluZy1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLmluZm8geyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRpbmZvLWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRpbmZvLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokaW5mby1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vZmlyZWZveCAycHggZml4XG4gICAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtib3JkZXI6MDsgcGFkZGluZzowO31cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1iYXNlKCRzdHlsZTpmYWxzZSwgJGRpc3BsYXk6aW5saW5lLWJsb2NrKTtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6ZmFsc2UsICRmdWxsLXdpZHRoOmZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWdyaWQtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuJGluY2x1ZGUteGwtaHRtbC1ncmlkLWNsYXNzZXM6IGZhbHNlICFkZWZhdWx0O1xuXG4kcm93LXdpZHRoOiByZW0tY2FsYygxMDAwKSAhZGVmYXVsdDtcbiR0b3RhbC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcblxuJGxhc3QtY2hpbGQtZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb24gIWRlZmF1bHQ7XG5cbi8vXG4vLyBHcmlkIEZ1bmN0aW9uc1xuLy9cblxuLy8gRGVwcmVjYXRlZDogV2UnbGwgZHJvcCBzdXBwb3J0IGZvciB0aGlzIGluIDUuMSwgdXNlIGdyaWQtY2FsYygpXG5AZnVuY3Rpb24gZ3JpZENhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucykge1xuICBAd2FybiBcImdyaWRDYWxjKCkgaXMgZGVwcmVjYXRlZCwgdXNlIGdyaWQtY2FsYygpXCI7XG4gIEByZXR1cm4gZ3JpZC1jYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpO1xufVxuXG4vLyBARlVOQ1RJT05cbi8vICRjb2xOdW1iZXIgLSBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG4vLyAkdG90YWxDb2x1bW5zIC0gRm91bmQgaW4gc2V0dGluZ3MgZmlsZVxuQGZ1bmN0aW9uIGdyaWQtY2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKSB7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgoJGNvbE51bWJlciAvICR0b3RhbENvbHVtbnMpKTtcbn1cblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbi8vIEZvciBjcmVhdGluZyBjb250YWluZXIsIG5lc3RlZCwgYW5kIGNvbGxhcHNlZCByb3dzLlxuLy9cbi8vXG4vLyAkYmVoYXZpb3IgLSBBbnkgc3BlY2lhbCBiZWhhdmlvciBmb3IgdGhpcyByb3c/IERlZmF1bHQ6IGZhbHNlLiBPcHRpb25zOiBuZXN0LCBjb2xsYXBzZSwgbmVzdC1jb2xsYXBzZSwgZmFsc2UuXG5AbWl4aW4gZ3JpZC1yb3coJGJlaGF2aW9yOiBmYWxzZSkge1xuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhuZXN0KTsgdG8gaW5jbHVkZSBhIG5lc3RlZCByb3dcbiAgQGlmICRiZWhhdmlvciA9PSBuZXN0IHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IC0oJGNvbHVtbi1ndXR0ZXIvMik7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IC0oJGNvbHVtbi1ndXR0ZXIvMik7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhjb2xsYXBzZSk7IHRvIGNvbGxhcHNlZCBhIGNvbnRhaW5lciByb3cgbWFyZ2luc1xuICBAZWxzZSBpZiAkYmVoYXZpb3IgPT0gY29sbGFwc2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3cobmVzdC1jb2xsYXBzZSk7IHRvIGNvbGxhcHNlIG91dGVyIG1hcmdpbnMgb24gYSBuZXN0ZWQgcm93XG4gIEBlbHNlIGlmICRiZWhhdmlvciA9PSBuZXN0LWNvbGxhcHNlIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93OyB0byB1c2UgYSBjb250YWluZXIgcm93XG4gIEBlbHNlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGF1dG87XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1heC13aWR0aDogJHJvdy13aWR0aDtcbiAgfVxuXG4gIC8vIENsZWFyZml4IGZvciBhbGwgcm93c1xuICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xufVxuXG4vLyBDcmVhdGVzIGEgY29sdW1uLCBzaG91bGQgYmUgdXNlZCBpbnNpZGUgb2YgYSBtZWRpYSBxdWVyeSB0byBjb250cm9sIGxheW91dHNcbi8vXG4vLyAkY29sdW1ucyAtIFRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGlzIHNob3VsZCBiZVxuLy8gJGxhc3QtY29sdW1uIC0gSXMgdGhpcyB0aGUgbGFzdCBjb2x1bW4/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJGNlbnRlciAtIENlbnRlciB0aGVzZSBjb2x1bW5zPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRvZmZzZXQgLSAjIG9mIGNvbHVtbnMgdG8gb2Zmc2V0LiBEZWZhdWx0OiBmYWxzZS5cbi8vICRwdXNoIC0gIyBvZiBjb2x1bW5zIHRvIHB1c2guIERlZmF1bHQ6IGZhbHNlLlxuLy8gJHB1bGwgLSAjIG9mIGNvbHVtbnMgdG8gcHVsbC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkY29sbGFwc2UgLSBHZXQgcmlkIG9mIGd1dHRlciBwYWRkaW5nIG9uIGNvbHVtbj8gRGVmYXVsdDogZmFsc2UuXG4vLyAkZmxvYXQgLSBTaG91bGQgdGhpcyBmbG9hdD8gRGVmYXVsdDogdHJ1ZS4gT3B0aW9uczogdHJ1ZSwgZmFsc2UsIGxlZnQsIHJpZ2h0LlxuQG1peGluIGdyaWQtY29sdW1uKFxuICAkY29sdW1uczpmYWxzZSxcbiAgJGxhc3QtY29sdW1uOmZhbHNlLFxuICAkY2VudGVyOmZhbHNlLFxuICAkb2Zmc2V0OmZhbHNlLFxuICAkcHVzaDpmYWxzZSxcbiAgJHB1bGw6ZmFsc2UsXG4gICRjb2xsYXBzZTpmYWxzZSxcbiAgJGZsb2F0OnRydWUsXG4gICRwb3NpdGlvbjpmYWxzZSkge1xuXG4gIC8vIElmIHBvc2l0aW9uZWQgZm9yIGRlZmF1bHQgLmNvbHVtbiwgaW5jbHVkZSByZWxhdGl2ZSBwb3NpdGlvblxuICAvLyBwdXNoIGFuZCBwdWxsIHJlcXVpcmUgcG9zaXRpb24gc2V0XG4gIEBpZiAkcG9zaXRpb24gb3IgJHB1c2ggb3IgJHB1bGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC8vIElmIGNvbGxhcHNlZCwgZ2V0IHJpZCBvZiBndXR0ZXIgcGFkZGluZ1xuICBAaWYgJGNvbGxhcHNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gIC8vIEd1dHRlciBwYWRkaW5nIHdoZW5ldmVyIGEgY29sdW1uIGlzbid0IHNldCB0byBjb2xsYXBzZVxuICAvLyAodXNlICRjb2xsYXBzZTpudWxsIHRvIGRvIG5vdGhpbmcpXG4gIEBlbHNlIGlmICRjb2xsYXBzZSA9PSBmYWxzZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAoJGNvbHVtbi1ndXR0ZXIgLyAyKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAoJGNvbHVtbi1ndXR0ZXIgLyAyKTtcbiAgfVxuXG4gIC8vIElmIGEgY29sdW1uIG51bWJlciBpcyBnaXZlbiwgY2FsY3VsYXRlIHdpZHRoXG4gIEBpZiAkY29sdW1ucyB7XG4gICAgd2lkdGg6IGdyaWQtY2FsYygkY29sdW1ucywgJHRvdGFsLWNvbHVtbnMpO1xuXG4gICAgLy8gSWYgbGFzdCBjb2x1bW4sIGZsb2F0IG5hdHVyYWxseSBpbnN0ZWFkIG9mIHRvIHRoZSByaWdodFxuICAgIEBpZiAkbGFzdC1jb2x1bW4geyBmbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjsgfVxuICB9XG5cbiAgLy8gU291cmNlIE9yZGVyaW5nLCBhZGRzIGxlZnQvcmlnaHQgZGVwZW5kaW5nIG9uIHdoaWNoIHlvdSB1c2UuXG4gIEBpZiAkcHVzaCB7ICN7JGRlZmF1bHQtZmxvYXR9OiBncmlkLWNhbGMoJHB1c2gsICR0b3RhbC1jb2x1bW5zKTsgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bzsgfVxuICBAaWYgJHB1bGwgeyAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBncmlkLWNhbGMoJHB1bGwsICR0b3RhbC1jb2x1bW5zKTsgI3skZGVmYXVsdC1mbG9hdH06IGF1dG87IH1cblxuICBAaWYgJGZsb2F0IHtcbiAgICBAaWYgJGZsb2F0ID09IGxlZnQgb3IgJGZsb2F0ID09IHRydWUgeyBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7IH1cbiAgICBAZWxzZSBpZiAkZmxvYXQgPT0gcmlnaHQgeyBmbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjsgfVxuICAgIEBlbHNlIHsgZmxvYXQ6IG5vbmU7IH1cbiAgfVxuXG4gIC8vIElmIGNlbnRlcmVkLCBnZXQgcmlkIG9mIGZsb2F0IGFuZCBhZGQgYXBwcm9wcmlhdGUgbWFyZ2luc1xuICBAaWYgJGNlbnRlciB7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBhdXRvO1xuICAgIGZsb2F0OiBub25lO1xuICB9XG5cbiAgLy8gSWYgb2Zmc2V0LCBjYWxjdWxhdGUgYXBwcm9wcmlhdGUgbWFyZ2luc1xuICBAaWYgJG9mZnNldCB7IG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogZ3JpZC1jYWxjKCRvZmZzZXQsICR0b3RhbC1jb2x1bW5zKSAhaW1wb3J0YW50OyB9XG5cbn1cblxuLy8gQ3JlYXRlIHByZXNlbnRhdGlvbmFsIGNsYXNzZXMgZm9yIGdyaWRcbi8vXG4vLyAkc2l6ZSAtIE5hbWUgb2YgY2xhc3MgdG8gdXNlLCBpLmUuIFwibGFyZ2VcIiB3aWxsIGdlbmVyYXRlIC5sYXJnZS0xLCAubGFyZ2UtMiwgZXRjLlxuQG1peGluIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplKSB7XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgIC4jeyRzaXplfS1wdXNoLSN7JGl9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG4gICAgLiN7JHNpemV9LXB1bGwtI3skaX0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC5jb2x1bW4sXG4gIC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6ZmFsc2UsICRwb3NpdGlvbjp0cnVlKTsgfVxuXG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkdG90YWwtY29sdW1ucyB7XG4gICAgLiN7JHNpemV9LSN7JGl9IHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6JGksJGNvbGxhcHNlOm51bGwsJGZsb2F0OmZhbHNlKTsgfVxuICB9XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgIC4jeyRzaXplfS1vZmZzZXQtI3skaX0geyBAaW5jbHVkZSBncmlkLWNvbHVtbigkb2Zmc2V0OiRpLCAkY29sbGFwc2U6bnVsbCwkZmxvYXQ6ZmFsc2UpOyB9XG4gIH1cblxuICAuI3skc2l6ZX0tcmVzZXQtb3JkZXIge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgfVxuXG4gIC5jb2x1bW4uI3skc2l6ZX0tY2VudGVyZWQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LWNlbnRlcmVkIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNlbnRlcjp0cnVlLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTsgfVxuXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZCB7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgfVxuXG4gIC8vIEZpZ2h0aW5nIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdOmxhc3QtY2hpbGRcbiAgLmNvbHVtbi4jeyRzaXplfS1jZW50ZXJlZDpsYXN0LWNoaWxkLFxuICAuY29sdW1ucy4jeyRzaXplfS1jZW50ZXJlZDpsYXN0LWNoaWxke1xuICAgIGZsb2F0OiBub25lO1xuICB9XG5cbiAgLy8gRmlnaHRpbmcgLmNvbHVtbi48cHJldmlvdXMtc2l6ZT4tY2VudGVyZWQ6bGFzdC1jaGlsZFxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQ6bGFzdC1jaGlsZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQub3Bwb3NpdGUsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQub3Bwb3NpdGUge1xuICAgIGZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xuICB9XG5cblx0LnJvdyB7XG5cdFx0Ji4jeyRzaXplfS1jb2xsYXBzZSB7XG5cdFx0XHQ+IC5jb2x1bW4sXG5cdFx0XHQ+IC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbGxhcHNlOnRydWUsICRmbG9hdDpmYWxzZSk7IH1cblxuXHRcdFx0LnJvdyB7bWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7fVxuXHRcdH1cblx0XHQmLiN7JHNpemV9LXVuY29sbGFwc2Uge1xuXHRcdFx0PiAuY29sdW1uLFxuXHRcdFx0PiAuY29sdW1ucyB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWQtY29sdW1uO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiZ3JpZFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWdyaWQtY2xhc3NlcyB7XG4gICAgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdztcblxuICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgICA+IC5jb2x1bW4sXG4gICAgICAgICA+IC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbGxhcHNlOnRydWUsICRmbG9hdDpmYWxzZSk7IH1cblxuICAgICAgICAucm93IHttYXJnaW4tbGVmdDowOyBtYXJnaW4tcmlnaHQ6MDt9XG4gICAgICB9XG5cbiAgICAgIC5yb3cgeyBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6bmVzdCk7XG4gICAgICAgICYuY29sbGFwc2UgeyBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6bmVzdC1jb2xsYXBzZSk7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sdW1uLFxuICAgIC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6JHRvdGFsLWNvbHVtbnMpOyB9XG5cbiAgICBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXTpsYXN0LWNoaWxkIHsgZmxvYXQ6ICRsYXN0LWNoaWxkLWZsb2F0OyB9XG4gICAgW2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl0uZW5kIHsgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0OyB9XG5cbiAgICBAbWVkaWEgI3skc21hbGwtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnNtYWxsKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTptZWRpdW0pO1xuICAgICAgLy8gT2xkIHB1c2ggYW5kIHB1bGwgY2xhc3Nlc1xuICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgICAgICAucHVzaC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIC5wdWxsLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTpsYXJnZSk7XG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgICAgIC5wdXNoLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLnB1bGwtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaWYgJGluY2x1ZGUteGwtaHRtbC1ncmlkLWNsYXNzZXMge1xuICAgIEBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnhsYXJnZSk7XG4gICAgfVxuICAgIEBtZWRpYSAjeyR4eGxhcmdlLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4eGxhcmdlKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWlubGluZS1saXN0LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgbWFyZ2lucyBhbmQgcGFkZGluZyBvZiB0aGUgaW5saW5lIGxpc3QuXG4kaW5saW5lLWxpc3QtdG9wLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRpbmxpbmUtbGlzdC1vcHBvc2l0ZS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kaW5saW5lLWxpc3QtYm90dG9tLW1hcmdpbjogcmVtLWNhbGMoMTcpICFkZWZhdWx0O1xuJGlubGluZS1saXN0LWRlZmF1bHQtZmxvYXQtbWFyZ2luOiByZW0tY2FsYygtMjIpICFkZWZhdWx0O1xuJGlubGluZS1saXN0LWRlZmF1bHQtZmxvYXQtbGlzdC1tYXJnaW46IHJlbS1jYWxjKDIyKSAhZGVmYXVsdDtcblxuJGlubGluZS1saXN0LXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIG92ZXJmbG93IG9mIHRoZSBpbmxpbmUgbGlzdC5cbiRpbmxpbmUtbGlzdC1vdmVyZmxvdzogaGlkZGVuICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBsaXN0IGl0ZW1zXG4kaW5saW5lLWxpc3QtZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYW55IGVsZW1lbnRzIHdpdGhpbiBsaXN0IGl0ZW1zXG4kaW5saW5lLWxpc3QtY2hpbGRyZW4tZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGlubGluZSBsaXN0c1xuQG1peGluIGlubGluZS1saXN0IHtcbiAgbWFyZ2luOiAkaW5saW5lLWxpc3QtdG9wLW1hcmdpbiBhdXRvICRpbmxpbmUtbGlzdC1ib3R0b20tbWFyZ2luIGF1dG87XG4gIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGlubGluZS1saXN0LWRlZmF1bHQtZmxvYXQtbWFyZ2luO1xuICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGlubGluZS1saXN0LW9wcG9zaXRlLW1hcmdpbjtcbiAgcGFkZGluZzogJGlubGluZS1saXN0LXBhZGRpbmc7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiAkaW5saW5lLWxpc3Qtb3ZlcmZsb3c7XG5cbiAgJiA+IGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LWxpc3QtbWFyZ2luO1xuICAgIGRpc3BsYXk6ICRpbmxpbmUtbGlzdC1kaXNwbGF5O1xuICAgICY+KiB7IGRpc3BsYXk6ICRpbmxpbmUtbGlzdC1jaGlsZHJlbi1kaXNwbGF5OyB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImlubGluZS1saXN0XCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtaW5saW5lLWxpc3QtY2xhc3NlcyB7XG4gICAgLmlubGluZS1saXN0IHtcbiAgICAgIEBpbmNsdWRlIGlubGluZS1saXN0KCk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAbmFtZSBfdGFibGVzLnNjc3Ncbi8vIEBkZXBlbmRlbmNpZXMgX2dsb2JhbC5zY3NzXG4vL1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cblxuJGluY2x1ZGUtaHRtbC10YWJsZS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0YWJsZSBhbmQgZXZlbiByb3dzXG4kdGFibGUtYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0YWJsZS1ldmVuLXJvdy1iZzogJHNub3cgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGNlbGwgYm9yZGVyIHN0eWxlXG4kdGFibGUtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiR0YWJsZS1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1jb2xvcjogJGdhaW5zYm9ybyAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgdGFibGUgaGVhZCBzdHlsZXNcbiR0YWJsZS1oZWFkLWJnOiAkd2hpdGUtc21va2UgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRqZXQgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgdGFibGUgZm9vdCBzdHlsZXNcbiR0YWJsZS1mb290LWJnOiAkdGFibGUtaGVhZC1iZyAhZGVmYXVsdDtcbiR0YWJsZS1mb290LWZvbnQtc2l6ZTogJHRhYmxlLWhlYWQtZm9udC1zaXplICFkZWZhdWx0O1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvciAhZGVmYXVsdDtcbiR0YWJsZS1mb290LWZvbnQtd2VpZ2h0OiAkdGFibGUtaGVhZC1mb250LXdlaWdodCAhZGVmYXVsdDtcbiR0YWJsZS1mb290LXBhZGRpbmc6ICR0YWJsZS1oZWFkLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIGNhcHRpb25cbiR0YWJsZS1jYXB0aW9uLWJnOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiR0YWJsZS1jYXB0aW9uLWZvbnQtY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdGFibGUtY2FwdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJsZS1jYXB0aW9uLWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSByb3cgcGFkZGluZyBhbmQgZm9udCBzdHlsZXNcbiR0YWJsZS1yb3ctcGFkZGluZzogcmVtLWNhbGMoOSAxMCkgIWRlZmF1bHQ7XG4kdGFibGUtcm93LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJHRhYmxlLXJvdy1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xuJHRhYmxlLWxpbmUtaGVpZ2h0OiByZW0tY2FsYygxOCkgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGFyZSBmb3IgY29udHJvbGxpbmcgdGhlIGxheW91dCwgZGlzcGxheSBhbmQgbWFyZ2luIG9mIHRhYmxlc1xuJHRhYmxlLWxheW91dDogYXV0byAhZGVmYXVsdDtcbiR0YWJsZS1kaXNwbGF5OiB0YWJsZS1jZWxsICFkZWZhdWx0O1xuJHRhYmxlLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuQG1peGluIHRhYmxlIHtcbiAgYmFja2dyb3VuZDogJHRhYmxlLWJnO1xuICBtYXJnaW4tYm90dG9tOiAkdGFibGUtbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyOiAkdGFibGUtYm9yZGVyLXN0eWxlICR0YWJsZS1ib3JkZXItc2l6ZSAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICB0YWJsZS1sYXlvdXQ6ICR0YWJsZS1sYXlvdXQ7XG5cbiAgY2FwdGlvbiB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWNhcHRpb24tYmc7XG4gICAgY29sb3I6ICR0YWJsZS1jYXB0aW9uLWZvbnQtY29sb3I7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogJHRhYmxlLWNhcHRpb24tZm9udC1zaXplO1xuICAgICAgd2VpZ2h0OiAkdGFibGUtY2FwdGlvbi1mb250LXdlaWdodDtcbiAgICB9XG4gIH1cblxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmc7XG5cbiAgICB0ciB7XG4gICAgICB0aCxcbiAgICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzogJHRhYmxlLWhlYWQtcGFkZGluZztcbiAgICAgICAgZm9udC1zaXplOiAkdGFibGUtaGVhZC1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkdGFibGUtaGVhZC1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJnO1xuXG4gICAgdHIge1xuICAgICAgdGgsXG4gICAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJsZS1mb290LXBhZGRpbmc7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlLWZvb3QtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHRhYmxlLWZvb3QtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRyIHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcm93LXBhZGRpbmc7XG4gICAgICBmb250LXNpemU6ICR0YWJsZS1yb3ctZm9udC1zaXplO1xuICAgICAgY29sb3I6ICR0YWJsZS1yb3ctZm9udC1jb2xvcjtcbiAgICAgIHRleHQtYWxpZ246ICRkZWZhdWx0LWZsb2F0O1xuICAgIH1cblxuICAgICYuZXZlbixcbiAgICAmLmFsdCxcbiAgICAmOm50aC1vZi10eXBlKGV2ZW4pIHsgYmFja2dyb3VuZDogJHRhYmxlLWV2ZW4tcm93LWJnOyB9XG4gIH1cblxuICB0aGVhZCB0ciB0aCxcbiAgdGZvb3QgdHIgdGgsXG4gIHRmb290IHRyIHRkLFxuICB0Ym9keSB0ciB0aCxcbiAgdGJvZHkgdHIgdGQsXG4gIHRyIHRkIHsgZGlzcGxheTogJHRhYmxlLWRpc3BsYXk7IGxpbmUtaGVpZ2h0OiAkdGFibGUtbGluZS1oZWlnaHQ7IH1cbn1cblxuXG5AaW5jbHVkZSBleHBvcnRzKFwidGFibGVcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC10YWJsZS1jbGFzc2VzIHtcbiAgICB0YWJsZSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJncmlkXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuXG4kaW5jbHVkZS1odG1sLXRhYnMtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4kdGFicy1uYXZpZ2F0aW9uLXBhZGRpbmc6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYmctY29sb3I6ICRzaWx2ZXIgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTYlKSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWZvbnQtY29sb3I6ICR0YWJzLW5hdmlnYXRpb24tZm9udC1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuJHRhYnMtY29udGVudC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNCkgIWRlZmF1bHQ7XG4kdGFicy1jb250ZW50LXBhZGRpbmc6ICgkY29sdW1uLWd1dHRlci8yKSAhZGVmYXVsdDtcblxuJHRhYnMtdmVydGljYWwtbmF2aWdhdGlvbi1tYXJnaW4tYm90dG9tOiAxLjI1cmVtICFkZWZhdWx0O1xuXG5AaW5jbHVkZSBleHBvcnRzKFwidGFiXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtdGFicy1jbGFzc2VzIHtcbiAgICAudGFicyB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgZGQsIC50YWItdGl0bGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICA+IGEge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHtcbiAgICAgICAgICAgIGNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1mb250LWNvbG9yO1xuICAgICAgICAgIHBhZGRpbmc6ICR0YWJzLW5hdmlnYXRpb24tcGFkZGluZyAkdGFicy1uYXZpZ2F0aW9uLXBhZGRpbmcgKiAyO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHRhYnMtbmF2aWdhdGlvbi1mb250LXNpemU7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWhvdmVyLWJnLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmZvY3Vze1xuICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZSBhIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB7XG4gICAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3I7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbG9yOiR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWZvbnQtY29sb3I7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5yYWRpdXMge1xuICAgICAgICBkZDpmaXJzdC1jaGlsZCwgLnRhYjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYSB7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkZ2xvYmFsLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgICBkZDpsYXN0LWNoaWxkLCAudGFiOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGEgeyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkZ2xvYmFsLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIGRkLCAudGFiLXRpdGxlIHtcbiAgICAgICAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGFicy1jb250ZW50IHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHRhYnMtY29udGVudC1tYXJnaW4tYm90dG9tO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICA+IC5jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICBwYWRkaW5nOiAkdGFicy1jb250ZW50LXBhZGRpbmcgMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICYuYWN0aXZlIHsgZGlzcGxheTogYmxvY2s7IGZsb2F0OiBub25lOyB9XG4gICAgICAgICYuY29udGFpbmVkIHsgcGFkZGluZzogJHRhYnMtY29udGVudC1wYWRkaW5nOyB9XG4gICAgICB9XG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgID4gLmNvbnRlbnQgeyBwYWRkaW5nOiAwICR0YWJzLWNvbnRlbnQtcGFkZGluZzsgfVxuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAudGFicyB7XG4gICAgICAgICYudmVydGljYWwge1xuICAgICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiAyMCU7XG4gICAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICAgIG1hcmdpbjogMCAwICR0YWJzLXZlcnRpY2FsLW5hdmlnYXRpb24tbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLnRhYnMtY29udGVudCB7XG4gICAgICAgICYudmVydGljYWwge1xuICAgICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogLTFweDtcbiAgICAgICAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAxcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5uby1qcyB7XG4gICAgICAudGFicy1jb250ZW50ID4gLmNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1ncmlkLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcbiRpbmNsdWRlLXhsLWh0bWwtZ3JpZC1jbGFzc2VzOiBmYWxzZSAhZGVmYXVsdDtcblxuJHJvdy13aWR0aDogcmVtLWNhbGMoMTAwMCkgIWRlZmF1bHQ7XG4kdG90YWwtY29sdW1uczogMTIgIWRlZmF1bHQ7XG5cbiRsYXN0LWNoaWxkLWZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uICFkZWZhdWx0O1xuXG4vL1xuLy8gR3JpZCBGdW5jdGlvbnNcbi8vXG5cbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEsIHVzZSBncmlkLWNhbGMoKVxuQGZ1bmN0aW9uIGdyaWRDYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpIHtcbiAgQHdhcm4gXCJncmlkQ2FsYygpIGlzIGRlcHJlY2F0ZWQsIHVzZSBncmlkLWNhbGMoKVwiO1xuICBAcmV0dXJuIGdyaWQtY2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKTtcbn1cblxuLy8gQEZVTkNUSU9OXG4vLyAkY29sTnVtYmVyIC0gRm91bmQgaW4gc2V0dGluZ3MgZmlsZVxuLy8gJHRvdGFsQ29sdW1ucyAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbkBmdW5jdGlvbiBncmlkLWNhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucykge1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoKCRjb2xOdW1iZXIgLyAkdG90YWxDb2x1bW5zKSk7XG59XG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG4vLyBGb3IgY3JlYXRpbmcgY29udGFpbmVyLCBuZXN0ZWQsIGFuZCBjb2xsYXBzZWQgcm93cy5cbi8vXG4vL1xuLy8gJGJlaGF2aW9yIC0gQW55IHNwZWNpYWwgYmVoYXZpb3IgZm9yIHRoaXMgcm93PyBEZWZhdWx0OiBmYWxzZS4gT3B0aW9uczogbmVzdCwgY29sbGFwc2UsIG5lc3QtY29sbGFwc2UsIGZhbHNlLlxuQG1peGluIGdyaWQtcm93KCRiZWhhdmlvcjogZmFsc2UpIHtcblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3cobmVzdCk7IHRvIGluY2x1ZGUgYSBuZXN0ZWQgcm93XG4gIEBpZiAkYmVoYXZpb3IgPT0gbmVzdCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3coY29sbGFwc2UpOyB0byBjb2xsYXBzZWQgYSBjb250YWluZXIgcm93IG1hcmdpbnNcbiAgQGVsc2UgaWYgJGJlaGF2aW9yID09IGNvbGxhcHNlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LXdpZHRoOiAkcm93LXdpZHRoO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KG5lc3QtY29sbGFwc2UpOyB0byBjb2xsYXBzZSBvdXRlciBtYXJnaW5zIG9uIGEgbmVzdGVkIHJvd1xuICBAZWxzZSBpZiAkYmVoYXZpb3IgPT0gbmVzdC1jb2xsYXBzZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdzsgdG8gdXNlIGEgY29udGFpbmVyIHJvd1xuICBAZWxzZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gIH1cblxuICAvLyBDbGVhcmZpeCBmb3IgYWxsIHJvd3NcbiAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGNvbHVtbiwgc2hvdWxkIGJlIHVzZWQgaW5zaWRlIG9mIGEgbWVkaWEgcXVlcnkgdG8gY29udHJvbCBsYXlvdXRzXG4vL1xuLy8gJGNvbHVtbnMgLSBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhpcyBzaG91bGQgYmVcbi8vICRsYXN0LWNvbHVtbiAtIElzIHRoaXMgdGhlIGxhc3QgY29sdW1uPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRjZW50ZXIgLSBDZW50ZXIgdGhlc2UgY29sdW1ucz8gRGVmYXVsdDogZmFsc2UuXG4vLyAkb2Zmc2V0IC0gIyBvZiBjb2x1bW5zIHRvIG9mZnNldC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkcHVzaCAtICMgb2YgY29sdW1ucyB0byBwdXNoLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRwdWxsIC0gIyBvZiBjb2x1bW5zIHRvIHB1bGwuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJGNvbGxhcHNlIC0gR2V0IHJpZCBvZiBndXR0ZXIgcGFkZGluZyBvbiBjb2x1bW4/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJGZsb2F0IC0gU2hvdWxkIHRoaXMgZmxvYXQ/IERlZmF1bHQ6IHRydWUuIE9wdGlvbnM6IHRydWUsIGZhbHNlLCBsZWZ0LCByaWdodC5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ZmFsc2UsXG4gICRsYXN0LWNvbHVtbjpmYWxzZSxcbiAgJGNlbnRlcjpmYWxzZSxcbiAgJG9mZnNldDpmYWxzZSxcbiAgJHB1c2g6ZmFsc2UsXG4gICRwdWxsOmZhbHNlLFxuICAkY29sbGFwc2U6ZmFsc2UsXG4gICRmbG9hdDp0cnVlLFxuICAkcG9zaXRpb246ZmFsc2UpIHtcblxuICAvLyBJZiBwb3NpdGlvbmVkIGZvciBkZWZhdWx0IC5jb2x1bW4sIGluY2x1ZGUgcmVsYXRpdmUgcG9zaXRpb25cbiAgLy8gcHVzaCBhbmQgcHVsbCByZXF1aXJlIHBvc2l0aW9uIHNldFxuICBAaWYgJHBvc2l0aW9uIG9yICRwdXNoIG9yICRwdWxsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAvLyBJZiBjb2xsYXBzZWQsIGdldCByaWQgb2YgZ3V0dGVyIHBhZGRpbmdcbiAgQGlmICRjb2xsYXBzZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAvLyBHdXR0ZXIgcGFkZGluZyB3aGVuZXZlciBhIGNvbHVtbiBpc24ndCBzZXQgdG8gY29sbGFwc2VcbiAgLy8gKHVzZSAkY29sbGFwc2U6bnVsbCB0byBkbyBub3RoaW5nKVxuICBAZWxzZSBpZiAkY29sbGFwc2UgPT0gZmFsc2Uge1xuICAgIHBhZGRpbmctbGVmdDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gICAgcGFkZGluZy1yaWdodDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gIH1cblxuICAvLyBJZiBhIGNvbHVtbiBudW1iZXIgaXMgZ2l2ZW4sIGNhbGN1bGF0ZSB3aWR0aFxuICBAaWYgJGNvbHVtbnMge1xuICAgIHdpZHRoOiBncmlkLWNhbGMoJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zKTtcblxuICAgIC8vIElmIGxhc3QgY29sdW1uLCBmbG9hdCBuYXR1cmFsbHkgaW5zdGVhZCBvZiB0byB0aGUgcmlnaHRcbiAgICBAaWYgJGxhc3QtY29sdW1uIHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgfVxuXG4gIC8vIFNvdXJjZSBPcmRlcmluZywgYWRkcyBsZWZ0L3JpZ2h0IGRlcGVuZGluZyBvbiB3aGljaCB5b3UgdXNlLlxuICBAaWYgJHB1c2ggeyAjeyRkZWZhdWx0LWZsb2F0fTogZ3JpZC1jYWxjKCRwdXNoLCAkdG90YWwtY29sdW1ucyk7ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87IH1cbiAgQGlmICRwdWxsIHsgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogZ3JpZC1jYWxjKCRwdWxsLCAkdG90YWwtY29sdW1ucyk7ICN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvOyB9XG5cbiAgQGlmICRmbG9hdCB7XG4gICAgQGlmICRmbG9hdCA9PSBsZWZ0IG9yICRmbG9hdCA9PSB0cnVlIHsgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0OyB9XG4gICAgQGVsc2UgaWYgJGZsb2F0ID09IHJpZ2h0IHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgICBAZWxzZSB7IGZsb2F0OiBub25lOyB9XG4gIH1cblxuICAvLyBJZiBjZW50ZXJlZCwgZ2V0IHJpZCBvZiBmbG9hdCBhbmQgYWRkIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRjZW50ZXIge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIElmIG9mZnNldCwgY2FsY3VsYXRlIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRvZmZzZXQgeyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGdyaWQtY2FsYygkb2Zmc2V0LCAkdG90YWwtY29sdW1ucykgIWltcG9ydGFudDsgfVxuXG59XG5cbi8vIENyZWF0ZSBwcmVzZW50YXRpb25hbCBjbGFzc2VzIGZvciBncmlkXG4vL1xuLy8gJHNpemUgLSBOYW1lIG9mIGNsYXNzIHRvIHVzZSwgaS5lLiBcImxhcmdlXCIgd2lsbCBnZW5lcmF0ZSAubGFyZ2UtMSwgLmxhcmdlLTIsIGV0Yy5cbkBtaXhpbiBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZSkge1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAuI3skc2l6ZX0tcHVzaC0jeyRpfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxuICAgIC4jeyRzaXplfS1wdWxsLSN7JGl9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAuY29sdW1uLFxuICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOmZhbHNlLCAkcG9zaXRpb246dHJ1ZSk7IH1cblxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMge1xuICAgIC4jeyRzaXplfS0jeyRpfSB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiRpLCRjb2xsYXBzZTpudWxsLCRmbG9hdDpmYWxzZSk7IH1cbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAuI3skc2l6ZX0tb2Zmc2V0LSN7JGl9IHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJG9mZnNldDokaSwgJGNvbGxhcHNlOm51bGwsJGZsb2F0OmZhbHNlKTsgfVxuICB9XG5cbiAgLiN7JHNpemV9LXJlc2V0LW9yZGVyIHtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAuY29sdW1uLiN7JHNpemV9LWNlbnRlcmVkLFxuICAuY29sdW1ucy4jeyRzaXplfS1jZW50ZXJlZCB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjZW50ZXI6dHJ1ZSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7IH1cblxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAvLyBGaWdodGluZyBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXTpsYXN0LWNoaWxkXG4gIC5jb2x1bW4uI3skc2l6ZX0tY2VudGVyZWQ6bGFzdC1jaGlsZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tY2VudGVyZWQ6bGFzdC1jaGlsZHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ2h0aW5nIC5jb2x1bW4uPHByZXZpb3VzLXNpemU+LWNlbnRlcmVkOmxhc3QtY2hpbGRcbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkOmxhc3QtY2hpbGQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlIHtcbiAgICBmbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjtcbiAgfVxuXG5cdC5yb3cge1xuXHRcdCYuI3skc2l6ZX0tY29sbGFwc2Uge1xuXHRcdFx0PiAuY29sdW1uLFxuXHRcdFx0PiAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2xsYXBzZTp0cnVlLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cblx0XHRcdC5yb3cge21hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowO31cblx0XHR9XG5cdFx0Ji4jeyRzaXplfS11bmNvbGxhcHNlIHtcblx0XHRcdD4gLmNvbHVtbixcblx0XHRcdD4gLmNvbHVtbnMge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImdyaWRcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1ncmlkLWNsYXNzZXMge1xuICAgIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAgICYuY29sbGFwc2Uge1xuICAgICAgICAgPiAuY29sdW1uLFxuICAgICAgICAgPiAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2xsYXBzZTp0cnVlLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cbiAgICAgICAgLnJvdyB7bWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7fVxuICAgICAgfVxuXG4gICAgICAucm93IHsgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QpO1xuICAgICAgICAmLmNvbGxhcHNlIHsgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QtY29sbGFwc2UpOyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbHVtbixcbiAgICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiR0b3RhbC1jb2x1bW5zKTsgfVxuXG4gICAgW2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl06bGFzdC1jaGlsZCB7IGZsb2F0OiAkbGFzdC1jaGlsZC1mbG9hdDsgfVxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdLmVuZCB7IGZsb2F0OiAkZGVmYXVsdC1mbG9hdDsgfVxuXG4gICAgQG1lZGlhICN7JHNtYWxsLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTpzbWFsbCk7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bWVkaXVtKTtcbiAgICAgIC8vIE9sZCBwdXNoIGFuZCBwdWxsIGNsYXNzZXNcbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAgICAgLnB1c2gtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICAucHVsbC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bGFyZ2UpO1xuICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgICAgICAucHVzaC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIC5wdWxsLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGlmICRpbmNsdWRlLXhsLWh0bWwtZ3JpZC1jbGFzc2VzIHtcbiAgICBAbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4bGFyZ2UpO1xuICAgIH1cbiAgICBAbWVkaWEgI3skeHhsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eHhsYXJnZSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAbmFtZSBfdGh1bWJzLnNjc3Ncbi8vIEBkZXBlbmRlbmNpZXMgX2dsb2JhbHMuc2Nzc1xuLy9cblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG5cbiRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBib3JkZXIgc3R5bGVzXG4kdGh1bWItYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiR0aHVtYi1ib3JkZXItd2lkdGg6IDRweCAhZGVmYXVsdDtcbiR0aHVtYi1ib3JkZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0aHVtYi1ib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssLjIpICFkZWZhdWx0O1xuJHRodW1iLWJveC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsMC41KSAhZGVmYXVsdDtcblxuLy8gUmFkaXVzIGFuZCB0cmFuc2l0aW9uIHNwZWVkIGZvciB0aHVtYnNcbiR0aHVtYi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJHRodW1iLXRyYW5zaXRpb24tc3BlZWQ6IDIwMG1zICFkZWZhdWx0O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGltYWdlIHRodW1ibmFpbCBzdHlsZXMuXG4vL1xuLy8gJGJvcmRlci13aWR0aCAtIFdpZHRoIG9mIGJvcmRlciBhcm91bmQgdGh1bWJuYWlsLiBEZWZhdWx0OiAkdGh1bWItYm9yZGVyLXdpZHRoLlxuLy8gJGJveC1zaGFkb3cgLSBCb3ggc2hhZG93IHRvIGFwcGx5IHRvIHRodW1ibmFpbC4gRGVmYXVsdDogJHRodW1iLWJveC1zaGFkb3cuXG4vLyAkYm94LXNoYWRvdy1ob3ZlciAtIEJveCBzaGFkb3cgdG8gYXBwbHkgb24gaG92ZXIuIERlZmF1bHQ6ICR0aHVtYi1ib3gtc2hhZG93LWhvdmVyLlxuQG1peGluIHRodW1iKFxuICAkYm9yZGVyLXdpZHRoOiR0aHVtYi1ib3JkZXItd2lkdGgsIFxuICAkYm94LXNoYWRvdzokdGh1bWItYm94LXNoYWRvdywgXG4gICRib3gtc2hhZG93LWhvdmVyOiR0aHVtYi1ib3gtc2hhZG93LWhvdmVyKSB7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlcjogJHRodW1iLWJvcmRlci1zdHlsZSAkYm9yZGVyLXdpZHRoICR0aHVtYi1ib3JkZXItY29sb3I7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm94LXNoYWRvdzogJGJveC1zaGFkb3c7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctaG92ZXI7XG4gIH1cbn1cblxuXG5AaW5jbHVkZSBleHBvcnRzKFwidGh1bWJcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1tZWRpYS1jbGFzc2VzIHtcblxuICAgIC8qIEltYWdlIFRodW1ibmFpbHMgKi9cbiAgICAudGgge1xuICAgICAgQGluY2x1ZGUgdGh1bWI7XG4gICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihhbGwsJHRodW1iLXRyYW5zaXRpb24tc3BlZWQsZWFzZS1vdXQpO1xuXG4gICAgICAmLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkdGh1bWItcmFkaXVzKTsgfVxuICAgIH1cbiAgfVxufSIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuJGluY2x1ZGUtaHRtbC10eXBlLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIGZvbnQgc3R5bGVzXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcbiRoZWFkZXItZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcbiRoZWFkZXItbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRoZWFkZXItdG9wLW1hcmdpbjogLjJyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLWJvdHRvbS1tYXJnaW46IC41cmVtICFkZWZhdWx0O1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkZXIgZm9udCBzaXplc1xuJGgxLWZvbnQtc2l6ZTogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJGgyLWZvbnQtc2l6ZTogcmVtLWNhbGMoMzcpICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjcpICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMjMpICFkZWZhdWx0O1xuJGg1LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIHNpemUgcmVkdWN0aW9uIG9uIHNtYWxsIHNjcmVlbnNcbiRoMS1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGgyLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kaDMtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDUpICFkZWZhdWx0O1xuJGg0LWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYyg1KSAhZGVmYXVsdDtcbiRoNS1mb250LXJlZHVjdGlvbjogMCAhZGVmYXVsdDtcbiRoNi1mb250LXJlZHVjdGlvbjogMCAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCBob3cgc3ViaGVhZGVycyBhcmUgc3R5bGVkLlxuJHN1YmhlYWRlci1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xuJHN1YmhlYWRlci1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJHN1YmhlYWRlci10b3AtbWFyZ2luOiAuMnJlbSAhZGVmYXVsdDtcbiRzdWJoZWFkZXItYm90dG9tLW1hcmdpbjogLjVyZW0gIWRlZmF1bHQ7XG5cbi8vIEEgZ2VuZXJhbCA8c21hbGw+IHN0eWxpbmdcbiRzbWFsbC1mb250LXNpemU6IDYwJSAhZGVmYXVsdDtcbiRzbWFsbC1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBwYXJhZ3JhcGhzXG4kcGFyYWdyYXBoLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuJHBhcmFncmFwaC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuJHBhcmFncmFwaC1saW5lLWhlaWdodDogMS42ICFkZWZhdWx0O1xuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWFzaWRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJHBhcmFncmFwaC1hc2lkZS1saW5lLWhlaWdodDogMS4zNSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgPGNvZGU+IHRhZ3NcbiRjb2RlLWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG4kY29kZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRjb2RlLWJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRzZWNvbmRhcnktY29sb3IsICRsaWdodG5lc3M6IDcwJSkgIWRlZmF1bHQ7XG4kY29kZS1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJGNvZGUtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRjb2RlLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGNvZGUtYmFja2dyb3VuZC1jb2xvciwgJGxpZ2h0bmVzczogLTEwJSkgIWRlZmF1bHQ7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyKSByZW0tY2FsYyg1KSByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGFuY2hvcnNcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG4kYW5jaG9yLWZvbnQtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGFuY2hvci1mb250LWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIDxocj4gZWxlbWVudFxuJGhyLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGhyLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kaHItYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgbGlzdHNcbiRsaXN0LWZvbnQtZmFtaWx5OiAkcGFyYWdyYXBoLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGxpc3QtZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRsaXN0LWxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG4kbGlzdC1zaWRlLW1hcmdpbjogMS4xcmVtICFkZWZhdWx0O1xuJGxpc3Qtb3JkZXJlZC1zaWRlLW1hcmdpbjogMS40cmVtICFkZWZhdWx0O1xuJGxpc3Qtc2lkZS1tYXJnaW4tbm8tYnVsbGV0OiAwICFkZWZhdWx0O1xuJGxpc3QtbmVzdGVkLW1hcmdpbjogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGRlZmluaXRpb24tbGlzdC1oZWFkZXItd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLW1hcmdpbi1ib3R0b206IC4zcmVtICFkZWZhdWx0O1xuJGRlZmluaXRpb24tbGlzdC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBibG9ja3F1b3Rlc1xuJGJsb2NrcXVvdGUtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1jaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDIzJSkgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1jaXRlLWxpbmstY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8gQWNyb255bSBzdHlsZXNcbiRhY3JvbnltLXVuZGVybGluZTogMXB4IGRvdHRlZCAkZ2FpbnNib3JvICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBwYWRkaW5nIGFuZCBtYXJnaW5cbiRtaWNyb2Zvcm1hdC1wYWRkaW5nOiByZW0tY2FsYygxMCAxMikgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtbWFyZ2luOiByZW0tY2FsYygwIDAgMjAgMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBib3JkZXIgc3R5bGVzXG4kbWljcm9mb3JtYXQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGZ1bGwgbmFtZSBmb250IHN0eWxlc1xuJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXNpemU6IHJlbS1jYWxjKDE1KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgc3VtbWFyeSBmb250IHN0eWxlc1xuJG1pY3JvZm9ybWF0LXN1bW1hcnktZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFiYnIgcGFkZGluZ1xuJG1pY3JvZm9ybWF0LWFiYnItcGFkZGluZzogcmVtLWNhbGMoMCAxKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhYmJyIGZvbnQgc3R5bGVzXG4kbWljcm9mb3JtYXQtYWJici1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtYWJici1mb250LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vIFRleHQgYWxpZ25tZW50IGNsYXNzIG5hbWVzXG4kYWxpZ24tY2xhc3MtbmFtZXM6XG4gIHNtYWxsLW9ubHksXG4gIHNtYWxsLFxuICBtZWRpdW0tb25seSxcbiAgbWVkaXVtLFxuICBsYXJnZS1vbmx5LFxuICBsYXJnZSxcbiAgeGxhcmdlLW9ubHksXG4gIHhsYXJnZSxcbiAgeHhsYXJnZS1vbmx5LFxuICB4eGxhcmdlO1xuXG4vLyBUZXh0IGFsaWdubWVudCBicmVha3BvaW50c1xuJGFsaWduLWNsYXNzLWJyZWFrcG9pbnRzOlxuICAkc21hbGwtb25seSxcbiAgJHNtYWxsLXVwLFxuICAkbWVkaXVtLW9ubHksXG4gICRtZWRpdW0tdXAsXG4gICRsYXJnZS1vbmx5LFxuICAkbGFyZ2UtdXAsXG4gICR4bGFyZ2Utb25seSxcbiAgJHhsYXJnZS11cCxcbiAgJHh4bGFyZ2Utb25seSxcbiAgJHh4bGFyZ2UtdXA7XG5cbi8vIEdlbmVyYXRlcyB0ZXh0IGFsaWduIGFuZCBqdXN0aWZ5IGNsYXNzZXNcbkBtaXhpbiBhbGlnbi1jbGFzc2Vze1xuICAudGV4dC1sZWZ0ICAgIHsgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LXJpZ2h0ICAgeyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LWNlbnRlciAgeyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAudGV4dC1qdXN0aWZ5IHsgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OyB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGFsaWduLWNsYXNzLW5hbWVzKSB7XG4gICAgQG1lZGlhICN7KG50aCgkYWxpZ24tY2xhc3MtYnJlYWtwb2ludHMsICRpKSl9IHtcbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LWxlZnQgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LXJpZ2h0ICAgeyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gICAgICAuI3sobnRoKCRhbGlnbi1jbGFzcy1uYW1lcywgJGkpKX0tdGV4dC1jZW50ZXIgIHsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LWp1c3RpZnkgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cblxuLy9cbi8vIFR5cG9ncmFwaHkgUGxhY2Vob2xkZXJzXG4vL1xuXG4vLyBUaGVzZSB3aWxsIHRocm93IGEgZGVwcmVjYXRpb24gd2FybmluZyBpZiB1c2VkIHdpdGhpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGxlYWQge1xuICBmb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplICsgcmVtLWNhbGMoMy41KTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuQG1peGluIHN1YmhlYWRlciB7XG4gIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJHN1YmhlYWRlci1mb250LWNvbG9yO1xuICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci10b3AtbWFyZ2luO1xuICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLWJvdHRvbS1tYXJnaW47XG59XG5AaW5jbHVkZSBleHBvcnRzKFwidHlwZVwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLXR5cGUtY2xhc3NlcyB7XG4gICAgLy8gUmVzcG9uc2l2ZSBUZXh0IGFsaWdubWVudFxuICAgIEBpbmNsdWRlIGFsaWduLWNsYXNzZXM7XG5cbiAgICAvKiBUeXBvZ3JhcGh5IHJlc2V0cyAqL1xuICAgIGRpdixcbiAgICBkbCxcbiAgICBkdCxcbiAgICBkZCxcbiAgICB1bCxcbiAgICBvbCxcbiAgICBsaSxcbiAgICBoMSxcbiAgICBoMixcbiAgICBoMyxcbiAgICBoNCxcbiAgICBoNSxcbiAgICBoNixcbiAgICBwcmUsXG4gICAgZm9ybSxcbiAgICBwLFxuICAgIGJsb2NrcXVvdGUsXG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgbWFyZ2luOjA7XG4gICAgICBwYWRkaW5nOjA7XG4gICAgfVxuXG4gICAgLyogRGVmYXVsdCBMaW5rIFN0eWxlcyAqL1xuICAgIGEge1xuICAgICAgY29sb3I6ICRhbmNob3ItZm9udC1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGFuY2hvci1mb250LWNvbG9yLWhvdmVyO1xuICAgICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICBcdHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW1nIHsgYm9yZGVyOm5vbmU7IH1cbiAgICB9XG5cbiAgICAvKiBEZWZhdWx0IHBhcmFncmFwaCBzdHlsZXMgKi9cbiAgICBwIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkcGFyYWdyYXBoLWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRwYXJhZ3JhcGgtZm9udC13ZWlnaHQ7XG4gICAgICBmb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcblxuICAgICAgJi5sZWFkIHsgQGluY2x1ZGUgbGVhZDsgfVxuXG4gICAgICAmIGFzaWRlIHtcbiAgICAgICAgZm9udC1zaXplOiAkcGFyYWdyYXBoLWFzaWRlLWZvbnQtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtYXNpZGUtbGluZS1oZWlnaHQ7XG4gICAgICAgIGZvbnQtc3R5bGU6ICRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zdHlsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBEZWZhdWx0IGhlYWRlciBzdHlsZXMgKi9cbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgICBjb2xvcjogJGhlYWRlci1mb250LWNvbG9yO1xuICAgICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG4gICAgICBtYXJnaW4tdG9wOiAkaGVhZGVyLXRvcC1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAkaGVhZGVyLWJvdHRvbS1tYXJnaW47XG4gICAgICBsaW5lLWhlaWdodDogJGhlYWRlci1saW5lLWhlaWdodDtcblxuICAgICAgc21hbGwge1xuICAgICAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkc21hbGwtZm9udC1jb2xvcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDEgeyBmb250LXNpemU6ICRoMS1mb250LXNpemUgLSAkaDEtZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoMiB7IGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZSAtICRoMi1mb250LXJlZHVjdGlvbjsgfVxuICAgIGgzIHsgZm9udC1zaXplOiAkaDMtZm9udC1zaXplIC0gJGgzLWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDQgeyBmb250LXNpemU6ICRoNC1mb250LXNpemUgLSAkaDQtZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoNSB7IGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZSAtICRoNS1mb250LXJlZHVjdGlvbjsgfVxuICAgIGg2IHsgZm9udC1zaXplOiAkaDYtZm9udC1zaXplIC0gJGg2LWZvbnQtcmVkdWN0aW9uOyB9XG5cbiAgICAuc3ViaGVhZGVyIHsgQGluY2x1ZGUgc3ViaGVhZGVyOyB9XG5cbiAgICBociB7XG4gICAgICBib3JkZXI6ICRoci1ib3JkZXItc3R5bGUgJGhyLWJvcmRlci1jb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogJGhyLWJvcmRlci13aWR0aCAwIDA7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIG1hcmdpbjogJGhyLW1hcmdpbiAwICgkaHItbWFyZ2luIC0gcmVtLWNhbGMoJGhyLWJvcmRlci13aWR0aCkpO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC8qIEhlbHBmdWwgVHlwb2dyYXBoeSBEZWZhdWx0cyAqL1xuICAgIGVtLFxuICAgIGkge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgc3Ryb25nLFxuICAgIGIge1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgc21hbGwge1xuICAgICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgY29kZSB7XG4gICAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gICAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXdpZHRoOiAkY29kZS1ib3JkZXItc2l6ZTtcbiAgICAgIGJvcmRlci1zdHlsZTogJGNvZGUtYm9yZGVyLXN0eWxlO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29kZS1ib3JkZXItY29sb3I7XG4gICAgICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC8qIExpc3RzICovXG4gICAgdWwsXG4gICAgb2wsXG4gICAgZGwge1xuICAgICAgZm9udC1zaXplOiAkbGlzdC1mb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZS1oZWlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgICBmb250LWZhbWlseTogJGxpc3QtZm9udC1mYW1pbHk7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICAgICYubm8tYnVsbGV0IHtcbiAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbi1uby1idWxsZXQ7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICB1bCxcbiAgICAgICAgICBvbCB7XG4gICAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW5lc3RlZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBVbm9yZGVyZWQgTGlzdHMgKi9cbiAgICB1bCB7XG4gICAgICBsaSB7XG4gICAgICAgIHVsLFxuICAgICAgICBvbCB7XG4gICAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1uZXN0ZWQtbWFyZ2luO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuc3F1YXJlLFxuICAgICAgJi5jaXJjbGUsXG4gICAgICAmLmRpc2Mge1xuICAgICAgICBsaSB1bCB7IGxpc3Qtc3R5bGU6IGluaGVyaXQ7IH1cbiAgICAgIH1cblxuICAgICAgJi5zcXVhcmUgeyBsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjt9XG4gICAgICAmLmNpcmNsZSB7IGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlOyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luO31cbiAgICAgICYuZGlzYyB7IGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjt9XG4gICAgICAmLm5vLWJ1bGxldCB7IGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgICB9XG5cbiAgICAvKiBPcmRlcmVkIExpc3RzICovXG4gICAgb2wge1xuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1vcmRlcmVkLXNpZGUtbWFyZ2luO1xuICAgICAgbGkge1xuICAgICAgICB1bCxcbiAgICAgICAgb2wge1xuICAgICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3QtbmVzdGVkLW1hcmdpbjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogRGVmaW5pdGlvbiBMaXN0cyAqL1xuICAgIGRsIHtcbiAgICAgIGR0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZmluaXRpb24tbGlzdC1oZWFkZXItbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLXdlaWdodDtcbiAgICAgIH1cbiAgICAgIGRkIHsgbWFyZ2luLWJvdHRvbTogJGRlZmluaXRpb24tbGlzdC1tYXJnaW4tYm90dG9tOyB9XG4gICAgfVxuXG4gICAgLyogQWJicmV2aWF0aW9ucyAqL1xuICAgIGFiYnIsXG4gICAgYWNyb255bSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiA5MCU7XG4gICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgIGN1cnNvcjogJGN1cnNvci1oZWxwLXZhbHVlO1xuICAgIH1cbiAgICBhYmJyIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgJlt0aXRsZV0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYWNyb255bS11bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQmxvY2txdW90ZXMgKi9cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICAgY2l0ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogXCJcXDIwMTQgXFwwMDIwXCI7XG4gICAgICAgIH1cblxuICAgICAgICBhLFxuICAgICAgICBhOnZpc2l0ZWQge1xuICAgICAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jaXRlLWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgYmxvY2txdW90ZSxcbiAgICBibG9ja3F1b3RlIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtZm9udC1jb2xvcjtcbiAgICB9XG5cbiAgICAvKiBNaWNyb2Zvcm1hdHMgKi9cbiAgICAudmNhcmQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAkbWljcm9mb3JtYXQtbWFyZ2luO1xuICAgICAgYm9yZGVyOiAkbWljcm9mb3JtYXQtYm9yZGVyLXdpZHRoICRtaWNyb2Zvcm1hdC1ib3JkZXItc3R5bGUgJG1pY3JvZm9ybWF0LWJvcmRlci1jb2xvcjtcbiAgICAgIHBhZGRpbmc6ICRtaWNyb2Zvcm1hdC1wYWRkaW5nO1xuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAuZm4ge1xuICAgICAgICBmb250LXdlaWdodDogJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtd2VpZ2h0O1xuICAgICAgICBmb250LXNpemU6ICRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXNpemU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnZldmVudCB7XG4gICAgICAuc3VtbWFyeSB7IGZvbnQtd2VpZ2h0OiAkbWljcm9mb3JtYXQtc3VtbWFyeS1mb250LXdlaWdodDsgfVxuXG4gICAgICBhYmJyIHtcbiAgICAgICAgY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJG1pY3JvZm9ybWF0LWFiYnItZm9udC1kZWNvcmF0aW9uO1xuICAgICAgICBmb250LXdlaWdodDogJG1pY3JvZm9ybWF0LWFiYnItZm9udC13ZWlnaHQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogJG1pY3JvZm9ybWF0LWFiYnItcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIGgxLGgyLGgzLGg0LGg1LGg2IHsgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZS1oZWlnaHQ7IH1cbiAgICAgIGgxIHsgZm9udC1zaXplOiAkaDEtZm9udC1zaXplOyB9XG4gICAgICBoMiB7IGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZTsgfVxuICAgICAgaDMgeyBmb250LXNpemU6ICRoMy1mb250LXNpemU7IH1cbiAgICAgIGg0IHsgZm9udC1zaXplOiAkaDQtZm9udC1zaXplOyB9XG4gICAgICBoNSB7IGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTsgfVxuICAgICAgaDYgeyBmb250LXNpemU6ICRoNi1mb250LXNpemU7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEZvdW5kYXRpb24gVmlzaWJpbGl0eSBDbGFzc2VzXG4vL1xuJGluY2x1ZGUtaHRtbC12aXNpYmlsaXR5LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcbiRpbmNsdWRlLWFjY2Vzc2liaWxpdHktY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcbiRpbmNsdWRlLXRhYmxlLXZpc2liaWxpdHktY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcbiRpbmNsdWRlLWxlZ2FjeS12aXNpYmlsaXR5LWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vXG4vLyBNZWRpYSBDbGFzcyBOYW1lc1xuLy9cbi8vIFZpc2liaWxpdHkgQnJlYWtwb2ludHNcbiR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXM6XG4gIHNtYWxsLFxuICBtZWRpdW0sXG4gIGxhcmdlLFxuICB4bGFyZ2UsXG4gIHh4bGFyZ2U7XG5cbiR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtcXVlcmllczpcbiAgdW5xdW90ZSgkc21hbGwtdXApLFxuICB1bnF1b3RlKCRtZWRpdW0tdXApLFxuICB1bnF1b3RlKCRsYXJnZS11cCksXG4gIHVucXVvdGUoJHhsYXJnZS11cCksXG4gIHVucXVvdGUoJHh4bGFyZ2UtdXApO1xuXG5AbWl4aW4gdmlzaWJpbGl0eS1sb29wIHtcbiAgQGVhY2ggJGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50IGluICR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMge1xuICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiAoKTtcblxuICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6ICgpO1xuXG4gICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiAoKTtcblxuICAgIEBlYWNoICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCBpbiAkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzIHtcbiAgICAgIEBpZiBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpIDwgaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50KSB7XG4gICAgICAgIC8vIFNtYWxsZXIgdGhhbiBjdXJyZW50IGJyZWFrcG9pbnRcblxuICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAsIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuXG4gICAgICAgIC8vIEZvdW5kYXRpb24gNCBjb21wYXRpYmlsaXR5OlxuICAgICAgICAvLyBJbmNsdWRlIC5zaG93L2hpZGUtZm9yLVtzaXplXSBhbmQgLnNob3cvaGlkZS1mb3ItW3NpemVdLWRvd24gY2xhc3Nlc1xuICAgICAgICAvLyBmb3Igc21hbGwsIG1lZGl1bSwgYW5kIGxhcmdlIGJyZWFrcG9pbnRzIG9ubHlcbiAgICAgICAgQGlmICRpbmNsdWRlLWxlZ2FjeS12aXNpYmlsaXR5LWNsYXNzZXMgYW5kIGluZGV4KChzbWFsbCwgbWVkaXVtLCBsYXJnZSksICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgIT0gZmFsc2Uge1xuICAgICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93biwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICB9XG5cbiAgICAgIH0gQGVsc2UgaWYgaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSA+IGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCkge1xuICAgICAgICAvLyBMYXJnZXIgdGhhbiBjdXJyZW50IGJyZWFrcG9pbnRcblxuICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAsIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuXG4gICAgICAgIC8vIEZvdW5kYXRpb24gNCBjb21wYXRpYmlsaXR5OlxuICAgICAgICAvLyBJbmNsdWRlIC5zaG93L2hpZGUtZm9yLVtzaXplXSBhbmQgLnNob3cvaGlkZS1mb3ItW3NpemVdLWRvd24gY2xhc3Nlc1xuICAgICAgICAvLyBmb3Igc21hbGwsIG1lZGl1bSwgYW5kIGxhcmdlIGJyZWFrcG9pbnRzIG9ubHlcbiAgICAgICAgQGlmICRpbmNsdWRlLWxlZ2FjeS12aXNpYmlsaXR5LWNsYXNzZXMgYW5kIGluZGV4KChzbWFsbCwgbWVkaXVtLCBsYXJnZSksICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgIT0gZmFsc2Uge1xuICAgICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93biwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICB9XG5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBDdXJyZW50IGJyZWFrcG9pbnRcblxuICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAsIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuXG4gICAgICAgIC8vIEZvdW5kYXRpb24gNCBjb21wYXRpYmlsaXR5OlxuICAgICAgICAvLyBJbmNsdWRlIC5zaG93L2hpZGUtZm9yLVtzaXplXSBhbmQgLnNob3cvaGlkZS1mb3ItW3NpemVdLWRvd24gY2xhc3Nlc1xuICAgICAgICAvLyBmb3Igc21hbGwsIG1lZGl1bSwgYW5kIGxhcmdlIGJyZWFrcG9pbnRzIG9ubHlcbiAgICAgICAgQGlmICRpbmNsdWRlLWxlZ2FjeS12aXNpYmlsaXR5LWNsYXNzZXMgYW5kIGluZGV4KChzbWFsbCwgbWVkaXVtLCBsYXJnZSksICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgIT0gZmFsc2Uge1xuICAgICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3Rib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93biwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogI3skY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnR9IGRpc3BsYXlzICovXG4gICAgQG1lZGlhICN7bnRoKCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtcXVlcmllcywgaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50KSl9IHtcbiAgICAgICN7JHZpc2liaWxpdHktaW5oZXJpdC1saXN0fSB7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgICN7JHZpc2liaWxpdHktbm9uZS1saXN0fSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIEBpZiAkaW5jbHVkZS1hY2Nlc3NpYmlsaXR5LWNsYXNzZXMgIT0gZmFsc2Uge1xuICAgICAgICAjeyR2aXNpYmlsaXR5LXZpc2libGUtbGlzdH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LWhpZGRlbi1saXN0fSB7XG4gICAgICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpZiAkaW5jbHVkZS10YWJsZS12aXNpYmlsaXR5LWNsYXNzZXMgIT0gZmFsc2Uge1xuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbkBpZiAkaW5jbHVkZS1odG1sLXZpc2liaWxpdHktY2xhc3NlcyAhPSBmYWxzZSB7XG5cbiAgQGluY2x1ZGUgdmlzaWJpbGl0eS1sb29wO1xuXG4gIC8qIE9yaWVudGF0aW9uIHRhcmdldGluZyAqL1xuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXG4gIHRhYmxlIHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB9XG4gIHRoZWFkIHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgfVxuICB0Ym9keSB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIH1cbiAgdHIge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB9XG4gIHRkLFxuICB0aCB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB9XG5cbiAgQG1lZGlhICN7JGxhbmRzY2FwZX0ge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIC8qIFNwZWNpZmljIHZpc2liaWxpdHkgZm9yIHRhYmxlcyAqL1xuICAgIHRhYmxlIHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGhlYWQge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGJvZHkge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdHIge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGQsXG4gICAgdGgge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhICN7JHBvcnRyYWl0fSB7XG4gICAgLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQsXG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXG4gICAgdGFibGUge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0aGVhZCB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0Ym9keSB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0ciB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0ZCxcbiAgICB0aCB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICAvKiBUb3VjaC1lbmFibGVkIGRldmljZSB0YXJnZXRpbmcgKi9cbiAgLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAudG91Y2ggLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCAuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAvKiBTcGVjaWZpYyB2aXNpYmlsaXR5IGZvciB0YWJsZXMgKi9cbiAgdGFibGUuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0YWJsZS5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdGhlYWQuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGhlYWQuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0Ym9keS5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0Ym9keS5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRyLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRyLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGQuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRkLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIHRoLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0aC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gIC8vIE9ubHkgaW5jbHVkZSB0aGVzZSBzdHlsZXMgaWYgeW91IHdhbnQgdGhlbS5cbiAgICBAaWYgJGluY2x1ZGUtcHJpbnQtc3R5bGVzIHtcbiAgICAgIC8qXG4gICAgICAgKiBQcmludCBzdHlsZXMuXG4gICAgICAgKlxuICAgICAgICogSW5saW5lZCB0byBhdm9pZCByZXF1aXJlZCBIVFRQIGNvbm5lY3Rpb246IHd3dy5waHBpZWQuY29tL2RlbGF5LWxvYWRpbmcteW91ci1wcmludC1jc3MvXG4gICAgICAgKiBDcmVkaXQgdG8gUGF1bCBJcmlzaCBhbmQgSFRNTDUgQm9pbGVycGxhdGUgKGh0bWw1Ym9pbGVycGxhdGUuY29tKVxuICAgICAgKi9cbiAgICAgIC5wcmludC1vbmx5IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAqIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgIGNvbG9yOiAkYmxhY2sgIWltcG9ydGFudDsgLyogQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vcyAqL1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgICAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgICAgICBhLFxuICAgICAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuXG4gICAgICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG5cbiAgICAgICAgLy8gRG9uJ3Qgc2hvdyBsaW5rcyBmb3IgaW1hZ2VzLCBvciBqYXZhc2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgICAgIC5pciBhOmFmdGVyLFxuICAgICAgICBhW2hyZWZePVwiamF2YXNjcmlwdDpcIl06YWZ0ZXIsXG4gICAgICAgIGFbaHJlZl49XCIjXCJdOmFmdGVyIHsgY29udGVudDogXCJcIjsgfVxuXG4gICAgICAgIHByZSxcbiAgICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGFsdW1pbnVtO1xuICAgICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyAvKiBoNWJwLmNvbS90ICovIH1cblxuICAgICAgICB0cixcbiAgICAgICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICAgICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgICAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgICAgICBwLFxuICAgICAgICBoMixcbiAgICAgICAgaDMge1xuICAgICAgICAgIG9ycGhhbnM6IDM7XG4gICAgICAgICAgd2lkb3dzOiAzO1xuICAgICAgICB9XG5cbiAgICAgICAgaDIsXG4gICAgICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cblxuICAgICAgICAuaGlkZS1vbi1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgICAucHJpbnQtb25seSB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAgICAgfVxuICAgIH1cblxuICAvKiBQcmludCB2aXNpYmlsaXR5ICovXG4gICAgQG1lZGlhIHByaW50IHtcbiAgICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJuYXYvaG9yaXpvbnRhbFwiO1xuXG4kcGFnaW5hdGlvbi1pdGVtLWhlaWdodDogICAgICAgIDJyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNpZGUtcGFkZGluZzogIDFyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6ICAgICAgIDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQ6ICAgICNlZmVmZWYgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM6IDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1zaXplOiAgIDFweCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLWNvbG9yOiAgI2NjYyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICAgICAgICAgIzMzMyAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQ6ICAgICMwMDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYm9yZGVyLWNvbG9yOiAgIzAwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1jb2xvcjogICAgICAgICAjZWVlICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQ6ICAgICAgI2NjYyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tY29sb3I6ICAgICAgICAgICAjMDAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItaXRlbS1ib3JkZXItY29sb3I6ICAgICNhYWEgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWluY2x1ZGUtbWVkaWFxdWVyaWVzOiAgICAgICB0cnVlICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tZnVsbC1icmVha3BvaW50OiAgICAgICAgICAgIFwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDcwMHB4KVwiICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1pcy1sb2FkZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgJHBhZ2luYXRpb24taXMtbG9hZGVkID09IGZhbHNlIHtcbiAgICAucGFnaW5hdGlvbi13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24ge1xuICAgICAgICBAZXh0ZW5kICVuYXYtLWhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb25fX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgICAgICBcbiAgICAgICAgLnBhZ2luYXRpb24gJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemUgPiAwIHtcbiAgICAgICAgICAgIGJvcmRlcjogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItc2l6ZSBzb2xpZCAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1jb2xvcjtcblxuICAgICAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyA9PSAwIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzID4gMCBhbmQgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID4gMCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcgPT0gMCBhbmQgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzID4gMCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1zaXplID4gMCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1zaXplO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID09IDAgYW5kICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cyA+IDAge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRwYWdpbmF0aW9uLWl0ZW0taGVpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3I7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRwYWdpbmF0aW9uLWl0ZW0tc2lkZS1wYWRkaW5nO1xuICAgICAgICAgICAgXG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24taG92ZXItaXRlbS1ib3JkZXItY29sb3I7XG5cbiAgICAgICAgICAgIGEsXG4gICAgICAgICAgICBhOmhvdmVyLFxuICAgICAgICAgICAgYTpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbiB7XG5cbiAgICAgICAgLnBhZ2luYXRpb25fX2l0ZW0tLW5leHQsXG4gICAgICAgIC5wYWdpbmF0aW9uX19pdGVtLS1wcmV2aW91cyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbl9faXRlbS0tY3VycmVudCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcGFnaW5hdGlvbi1pdGVtLWhlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogMCAkcGFnaW5hdGlvbi1pdGVtLXNpZGUtcGFkZGluZztcblxuICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID4gMCBhbmQgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzID4gMCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID09IDAge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAkcGFnaW5hdGlvbi1pcy1sb2FkZWQ6IHRydWU7XG5cbiAgICBAaWYgJHBhZ2luYXRpb24taW5jbHVkZS1tZWRpYXF1ZXJpZXMgPT0gdHJ1ZSB7XG4gICAgICAgIEBtZWRpYSAjeyRwYWdpbmF0aW9uLWZ1bGwtYnJlYWtwb2ludH0ge1xuICAgICAgICAgICAgLnBhZ2luYXRpb24gLnBhZ2luYXRpb25fX2l0ZW0ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJAaW1wb3J0IFwibmF2XCI7XG5cbiRuYXYtLWhvcml6b250YWwtaXMtbG9hZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmICRuYXYtLWhvcml6b250YWwtaXMtbG9hZGVkID09IGZhbHNlIHtcbiAgICAlbmF2LS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGV4dGVuZCAlbmF2O1xuXG4gICAgICAgID4gbGkge1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2LS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGV4dGVuZCAlbmF2LS1ob3Jpem9udGFsO1xuICAgIH1cblxuICAgICRuYXYtLWhvcml6b250YWwtaXMtbG9hZGVkOiB0cnVlO1xufSIsIiRuYXYtaXMtbG9hZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmICRuYXYtaXMtbG9hZGVkID09IGZhbHNlIHtcbiAgICAlbmF2IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICRuYXYtaXMtbG9hZGVkOiB0cnVlO1xufSIsIi8qKlxuICogSWNvTW9vbiBnZW5lcmF0ZWQgaWNvbnNcbiAqIFNlZSB0aGUgdGhlbWUgYXNzZXRzL2ZvbnRzIGZvbGRlciBmb3IgZm9udCBmaWxlc1xuICogYW5kIGpzb24gZmlsZSB0byB1c2Ugb24gaWNvbW9vbiB0byBkZXZlbG9wIHRoaXNcbiAqIGZvbnQgZnVydGhlclxuICovXG5cbkBpbXBvcnQgJ2ljb24tdmFycyc7XG5cbiRpY29tb29uLWZvbnQtcGF0aDogXCIvYXNzZXRzL3RoZW1lcy9hcGV4L2ZvbnRzXCIgIWRlZmF1bHQ7XG5cbkBtaXhpbiBpY29uKCRpY29uOiBmYWxzZSkge1xuICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gICAgZm9udC1mYW1pbHk6ICdhcGV4JyAhaW1wb3J0YW50O1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxuICAgIEBpZiAkaWNvbiB7XG4gICAgICAgIGNvbnRlbnQ6IFwiI3skaWNvbn1cIjtcbiAgICB9XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnYXBleCc7XG4gICAgc3JjOnVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9L2FwZXguZW90PzNxZnpsbycpO1xuICAgIHNyYzp1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS9hcGV4LmVvdD8zcWZ6bG8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9L2FwZXgudHRmPzNxZnpsbycpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgdXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vYXBleC53b2ZmPzNxZnpsbycpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICB1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS9hcGV4LnN2Zz8zcWZ6bG8jYXBleCcpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbltjbGFzc149XCJpY29uLVwiXSxcbltjbGFzcyo9XCIgaWNvbi1cIl0ge1xuICAgIEBpbmNsdWRlIGljb24oKTtcbn1cblxuLmljb24tbWVkaXVtOmJlZm9yZSB7XG4gICAgZm9udC1zaXplOiAxLjI1ZW07XG4gICAgdmVydGljYWwtYWxpZ246IC03LjUlO1xufVxuXG4uaWNvbi1sYXJnZTpiZWZvcmUge1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgdmVydGljYWwtYWxpZ246IC0xNSU7XG59XG5cbi5pY29uLXhsYXJnZTpiZWZvcmUge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiAtMTUlO1xufVxuXG4uaWNvbi1wbGFjZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItcGxhY2U7XG4gICAgfVxufVxuLmljb24tbW9iaWxlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1tb2JpbGU7XG4gICAgfVxufVxuLmljb24tcGxhbmUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXBsYW5lO1xuICAgIH1cbn1cbi5pY29uLWNyZWRpdC1jYXJkIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1jcmVkaXQtY2FyZDtcbiAgICB9XG59XG4uaWNvbi1wZXJzb24ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXBlcnNvbjtcbiAgICB9XG59XG4uaWNvbi1tYWlsIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1tYWlsO1xuICAgIH1cbn1cbi5pY29uLXByaW50IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1wcmludDtcbiAgICB9XG59XG4uaWNvbi1naWZ0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1naWZ0O1xuICAgIH1cbn1cbi5pY29uLWNhbGwge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNhbGw7XG4gICAgfVxufVxuLmljb24tYWRkLXNob3BwaW5nLWNhcnQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWFkZC1zaG9wcGluZy1jYXJ0O1xuICAgIH1cbn1cbi5pY29uLXNob3BwaW5nLWNhcnQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXNob3BwaW5nLWNhcnQ7XG4gICAgfVxufVxuLmljb24tZGVsZXRlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1kZWxldGU7XG4gICAgfVxufVxuLmljb24tZXhpdC10by1hcHAge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWV4aXQtdG8tYXBwO1xuICAgIH1cbn1cbi5pY29uLWhvbWUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWhvbWU7XG4gICAgfVxufVxuLmljb24tZmF2b3JpdGUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWZhdm9yaXRlO1xuICAgIH1cbn1cbi5pY29uLXZwbi1rZXkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXZwbi1rZXk7XG4gICAgfVxufVxuLmljb24tc2VhcmNoIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zZWFyY2g7XG4gICAgfVxufVxuLmljb24tZ29vZ2xlcGx1cyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZ29vZ2xlcGx1cztcbiAgICB9XG59XG4uaWNvbi1mYWNlYm9vayB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZmFjZWJvb2s7XG4gICAgfVxufVxuLmljb24tZWxsbyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZWxsbztcbiAgICB9XG59XG4uaWNvbi1pbnN0YWdyYW0ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWluc3RhZ3JhbTtcbiAgICB9XG59XG4uaWNvbi10d2l0dGVyIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci10d2l0dGVyO1xuICAgIH1cbn1cbi5pY29uLXlvdXR1YmUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXlvdXR1YmU7XG4gICAgfVxufVxuLmljb24tdmltZW8ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXZpbWVvO1xuICAgIH1cbn1cbi5pY29uLWZsaWNrciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZmxpY2tyO1xuICAgIH1cbn1cbi5pY29uLWJsb2dnZXIge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWJsb2dnZXI7XG4gICAgfVxufVxuLmljb24tbGlua2VkaW4ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWxpbmtlZGluO1xuICAgIH1cbn1cbi5pY29uLXBpbnRlcmVzdCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItcGludGVyZXN0O1xuICAgIH1cbn1cbi5pY29uLWluZm8ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWluZm87XG4gICAgfVxufVxuLmljb24tbGFuZ3VhZ2Uge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWxhbmd1YWdlO1xuICAgIH1cbn1cbi5pY29uLWVycm9yIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1lcnJvcjtcbiAgICB9XG59XG4uaWNvbi13YXJuaW5nIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci13YXJuaW5nO1xuICAgIH1cbn1cbi5pY29uLWFkZCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItYWRkO1xuICAgIH1cbn1cbi5pY29uLWF0dGFjaC1tb25leSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItYXR0YWNoLW1vbmV5O1xuICAgIH1cbn1cbi5pY29uLWtleWJvYXJkLWFycm93LWRvd24ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWtleWJvYXJkLWFycm93LWRvd247XG4gICAgfVxufVxuLmljb24tYnJpZ2h0bmVzcy0xIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1icmlnaHRuZXNzLTE7XG4gICAgfVxufVxuLmljb24tY2hlY2sge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNoZWNrO1xuICAgIH1cbn1cbi5pY29uLWNoZXZyb24tbGVmdCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItY2hldnJvbi1sZWZ0O1xuICAgIH1cbn1cbi5pY29uLWNoZXZyb24tcmlnaHQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNoZXZyb24tcmlnaHQ7XG4gICAgfVxufVxuLmljb24tY2xvc2Uge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNsb3NlO1xuICAgIH1cbn1cbi5pY29uLW1lbnUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLW1lbnU7XG4gICAgfVxufVxuLmljb24tcmVmcmVzaCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItcmVmcmVzaDtcbiAgICB9XG59XG4uaWNvbi1zdGFyIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zdGFyO1xuICAgIH1cbn1cbi5pY29uLXN0YXItaGFsZiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItc3Rhci1oYWxmO1xuICAgIH1cbn1cbi5pY29uLXN0YXItb3V0bGluZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItc3Rhci1vdXRsaW5lO1xuICAgIH1cbn0iLCIkaWNvbi12YXItcGxhY2U6IFwiXFxlMDk2XCI7XG4kaWNvbi12YXItbW9iaWxlOiBcIlxcZTAxMFwiO1xuJGljb24tdmFyLXBsYW5lOiBcIlxcZTAxMlwiO1xuJGljb24tdmFyLWNyZWRpdC1jYXJkOiBcIlxcZTAyNVwiO1xuJGljb24tdmFyLXBlcnNvbjogXCJcXGUwMDVcIjtcbiRpY29uLXZhci1tYWlsOiBcIlxcZTAxZVwiO1xuJGljb24tdmFyLXByaW50OiBcIlxcZTAyZVwiO1xuJGljb24tdmFyLWdpZnQ6IFwiXFxlMDJmXCI7XG4kaWNvbi12YXItY2FsbDogXCJcXGUwNDhcIjtcbiRpY29uLXZhci1hZGQtc2hvcHBpbmctY2FydDogXCJcXGUwNGVcIjtcbiRpY29uLXZhci1zaG9wcGluZy1jYXJ0OiBcIlxcZTA0ZlwiO1xuJGljb24tdmFyLWRlbGV0ZTogXCJcXGUwNTRcIjtcbiRpY29uLXZhci1leGl0LXRvLWFwcDogXCJcXGUwNjZcIjtcbiRpY29uLXZhci1ob21lOiBcIlxcZTA2OVwiO1xuJGljb24tdmFyLWZhdm9yaXRlOiBcIlxcZTA4YVwiO1xuJGljb24tdmFyLXZwbi1rZXk6IFwiXFxlMDhjXCI7XG4kaWNvbi12YXItc2VhcmNoOiBcIlxcZTA5MFwiO1xuJGljb24tdmFyLWdvb2dsZXBsdXM6IFwiXFxlYTg5XCI7XG4kaWNvbi12YXItZmFjZWJvb2s6IFwiXFxlYThkXCI7XG4kaWNvbi12YXItZWxsbzogXCJcXGVhOGZcIjtcbiRpY29uLXZhci1pbnN0YWdyYW06IFwiXFxlYTkwXCI7XG4kaWNvbi12YXItdHdpdHRlcjogXCJcXGVhOTFcIjtcbiRpY29uLXZhci15b3V0dWJlOiBcIlxcZWE5OVwiO1xuJGljb24tdmFyLXZpbWVvOiBcIlxcZWE5Y1wiO1xuJGljb24tdmFyLWZsaWNrcjogXCJcXGVhYTFcIjtcbiRpY29uLXZhci1ibG9nZ2VyOiBcIlxcZWFiOVwiO1xuJGljb24tdmFyLWxpbmtlZGluOiBcIlxcZWFjOVwiO1xuJGljb24tdmFyLXBpbnRlcmVzdDogXCJcXGVhZDBcIjtcbiRpY29uLXZhci1pbmZvOiBcIlxcZTYxOFwiO1xuJGljb24tdmFyLWxhbmd1YWdlOiBcIlxcZTYwNFwiO1xuJGljb24tdmFyLWVycm9yOiBcIlxcZTYxOVwiO1xuJGljb24tdmFyLXdhcm5pbmc6IFwiXFxlNjFhXCI7XG4kaWNvbi12YXItYWRkOiBcIlxcZTYwYVwiO1xuJGljb24tdmFyLWF0dGFjaC1tb25leTogXCJcXGU2MGNcIjtcbiRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duOiBcIlxcZTYwZFwiO1xuJGljb24tdmFyLWJyaWdodG5lc3MtMTogXCJcXGU2MGVcIjtcbiRpY29uLXZhci1jaGVjazogXCJcXGU2MWJcIjtcbiRpY29uLXZhci1jaGV2cm9uLWxlZnQ6IFwiXFxlNjBmXCI7XG4kaWNvbi12YXItY2hldnJvbi1yaWdodDogXCJcXGU2MTBcIjtcbiRpY29uLXZhci1jbG9zZTogXCJcXGU2MTFcIjtcbiRpY29uLXZhci1tZW51OiBcIlxcZTYxMlwiO1xuJGljb24tdmFyLXJlZnJlc2g6IFwiXFxlNjE3XCI7XG4kaWNvbi12YXItc3RhcjogXCJcXGU2MTRcIjtcbiRpY29uLXZhci1zdGFyLWhhbGY6IFwiXFxlNjE1XCI7XG4kaWNvbi12YXItc3Rhci1vdXRsaW5lOiBcIlxcZTYxNlwiOyIsIi8vIERvbid0IG91dGxpbmUgbWFpbiBjb250ZW50IHdoZW4gc2tpcHBpbmcgbmF2aWdhdGlvblxuI21haW4tY29udGVudDpmb2N1cyB7XG5cdG91dGxpbmU6IG5vbmU7XG59XG5cbi8vIFNjcmVlbiByZWFkZXIgb25seVxuLnNyLW9ubHkge1xuICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtaGlkZSgpO1xufSIsIiRzbWFsbC1wbHVzLXJhbmdlOiAoMjdlbSwgdXBwZXItYm91bmQoJHNtYWxsLXJhbmdlKSkgIWRlZmF1bHQ7XG4kbWVkaXVtLWRvd246ICAgICAgXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiAje3VwcGVyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIjtcbiRzbWFsbC1kb3duOiAgICAgICBcIiN7JHNjcmVlbn0gYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJHNtYWxsLXJhbmdlKX0pXCI7XG4kc21hbGwtcGx1czogICAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRzbWFsbC1wbHVzLXJhbmdlKX0pXCI7XG4kc21hbGwtcGx1cy11cDogICAgJHNtYWxsLXBsdXM7XG4kc21hbGwtcGx1cy1kb3duOiAgXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHNtYWxsLXBsdXMtcmFuZ2UpfSlcIjtcbiRzbWFsbC1wbHVzLW9ubHk6ICBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6ICN7bG93ZXItYm91bmQoJHNtYWxsLXBsdXMtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkc21hbGwtcGx1cy1yYW5nZSl9KVwiOyIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICBodG1sIHtcbiAgICAgICAgZm9udC1zaXplOiA4Ny41JTtcbiAgICB9XG59XG5cbi52ZXJ0aWNhbC1wb3MtaGVscGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tZG93bn0ge1xuICAgIC5oaWRlX29uX21vYmlsZSB7XG4gICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59IiwiQGltcG9ydCBcImhlYWRlci9zZXR0aW5nc1wiO1xuQGltcG9ydCBcImhlYWRlci91dGlscy1uYXZcIjtcbkBpbXBvcnQgXCJoZWFkZXIvb2ZmY2FudmFzLW5hdlwiO1xuQGltcG9ydCBcImhlYWRlci9sb2dvLWxpbmVcIjtcbkBpbXBvcnQgXCJoZWFkZXIvbWFpbi1uYXZcIjtcbiIsIiRsb2dvLWhlaWdodDogICAgICAgICAgICAgICAgICAgIHJlbS1jYWxjKDYwKSAhZGVmYXVsdDtcbiRsb2dvLWxhcmdlLWhlaWdodDogICAgICAgICAgICAgIHJlbS1jYWxjKDgwKSAhZGVmYXVsdDtcbiRsb2dvLXJvdy1zcGFjaW5nOiAgICAgICAgICAgICAgIDEuNXJlbSAhZGVmYXVsdDtcbiRsb2dvLWxhcmdlLXJvdy1zcGFjaW5nOiAgICAgICAgIDIuNXJlbSAhZGVmYXVsdDtcbiRtZW51LWl0ZW1zLXNwYWNpbmc6ICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LWJhci1oZWlnaHQ6ICAgICAgICAgICAzcmVtICFkZWZhdWx0O1xuJHV0aWxzLW5hdi1mb250LWNvbG9yOiAgICAgICAgICAgJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcbiR1dGlscy1uYXYtZm9udC1zaXplOiAgICAgICAgICAgIHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiR1dGlscy1uYXYtc2VwYXJhdG9yLWNvbG9yOiAgICAgIGxpZ2h0ZW4oJHV0aWxzLW5hdi1mb250LWNvbG9yLCA1MCUpICFkZWZhdWx0O1xuJHV0aWxzLW5hdi1pdGVtLXNwYWNpbmc6ICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LWxpbmUtaGVpZ2h0OiAgICAgICAgICAxLjJyZW0gIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kOiAgICAgICAgICAjMzMzICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtbGluay1jb2xvcjogICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0tcGFkZGluZzogICAgICAgIDJyZW0gIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1pdGVtLWhlaWdodDogICAgICAgICByZW0tY2FsYyg0NCkgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1pdGVtLWxpbmUtY29sb3I6ICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1pdGVtLWxpbmUtaGVpZ2h0OiAgICAxLjIgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1vbi1tZWRpdW06ICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtdG9wLXBhZGRpbmc6ICAgICAgICAgJHV0aWxzLW5hdi1iYXItaGVpZ2h0ICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtdG9wLXBvc2l0aW9uOiAgICAgICAgJGxvZ28taGVpZ2h0ICsgJG9mZi1jYW52YXMtdG9wLXBhZGRpbmcgKyAkbG9nby1yb3ctc3BhY2luZyAqIDIgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZTogICAgICA3MCUgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemU6ICAgICA1MCUgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1jbG9zZS1idG4taGVpZ2h0OiAgICAkdXRpbHMtbmF2LWJhci1oZWlnaHQgIWRlZmF1bHQ7XG4kbmF2LWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAzLjVyZW0gIWRlZmF1bHQ7XG4kbmF2LWJ0bi1oZWlnaHQ6ICAgICAgICAgICAgICAgICAzcmVtICFkZWZhdWx0O1xuJG5hdi1pY29uLXNwYWNpbmc6ICAgICAgICAgICAgICAgLjRyZW0gIWRlZmF1bHQ7XG4kbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yOiAgICAgICAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1maXJzdC1sZXZlbC1mb250LXdlaWdodDogICAgYm9sZCAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kbmF2LWZpcnN0LWxldmVsLWZvbnQtc2l6ZTogICAgICAxcmVtICFkZWZhdWx0O1xuJG5hdi1ob3Jpem9udGFsLXNpZGUtcGFkZGluZzogICAgMXJlbSAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtc3BhY2luZzogICAgICAgIDAgIWRlZmF1bHQ7XG4kbmF2LWZpcnN0LWxldmVsLXNpZGUtcGFkZGluZzogICAxcmVtICFkZWZhdWx0OyIsIiR1dGlscy1uYXYtZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4jdXRpbHMtbmF2IHtcbiAgICBmb250LWZhbWlseTogJHV0aWxzLW5hdi1mb250LWZhbWlseTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgLmljb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAtNyU7XG4gICAgfVxufVxuXG4jdXNlci1uYXYge1xuICAgICYucmlnaHQgbGk6bGFzdC1jaGlsZCBhIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHV0aWxzLW5hdi1pdGVtLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkaG92ZXItY29sb3IsICRob3Zlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgI3VzZXItbmF2IHtcbiAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMik7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHV0aWxzLW5hdi1iYXItaGVpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgI3V0aWxzLW5hdiB7XG4gICAgICAgIHNwYW4uaGlkZS1mb3Itc21hbGwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiN0b29scy1uYXYge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ucGlwZWQtbmF2IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAkdXRpbHMtbmF2LWZvbnQtc2l6ZTtcbiAgICBoZWlnaHQ6ICR1dGlscy1uYXYtYmFyLWhlaWdodDtcblxuICAgIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogJHV0aWxzLW5hdi1iYXItaGVpZ2h0O1xuICAgICAgICBoZWlnaHQ6ICR1dGlscy1uYXYtYmFyLWhlaWdodDtcbiAgICB9XG5cbiAgICAmLmxlZnQge1xuICAgICAgICBsaTpmaXJzdC1jaGlsZCBhIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucmlnaHQge1xuICAgICAgICBsaTpsYXN0LWNoaWxkIGEge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubm8tc2VwYXJhdG9yIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAwICR1dGlscy1uYXYtaXRlbS1zcGFjaW5nO1xuICAgIH1cblxufSIsIkBpZiAoJG9mZi1jYW52YXMtcG9zaXRpb24gIT0gbGVmdCBhbmQgJG9mZi1jYW52YXMtcG9zaXRpb24gIT0gcmlnaHQpIHtcbiAgICBAd2FybiBcIiRvZmYtY2FudmFzLXBvc2l0aW9uIG11c3QgYmUgbGVmdCBvciByaWdodCwgd2FzICN7JG9mZi1jYW52YXMtcG9zaXRpb259LlwiO1xufVxuXG4kb2ZmLWNhbnZhcy1vbi1sYXJnZTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIE9mZiBjYW52YXMgbWVkaWEgcXVlcnkgaXMgbm90IG1vYmlsZSBmaXJzdC4gVGhlIHNoYW1lIVxuJG9mZi1jYW52YXMtYXQ6IGlmKCRvZmYtY2FudmFzLW9uLW1lZGl1bSA9PSB0cnVlLCAkbWVkaXVtLWRvd24sICRzbWFsbC1kb3duKTtcblxuYm9keSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMjBlbTtcbn1cblxuI291dGVyLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4jaW5uZXItd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uYmxvY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmJsb2NrLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLWhpZGUoKTtcbn1cblxuQG1lZGlhICN7JG9mZi1jYW52YXMtYXR9IHtcbiAgICAjbmF2IHtcbiAgICAgICAgei1pbmRleDogMjAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmctdG9wOiAkb2ZmLWNhbnZhcy10b3AtcGFkZGluZztcbiAgICAgICAgdG9wOiAkb2ZmLWNhbnZhcy10b3AtcG9zaXRpb247XG5cbiAgICAgICAgJjpub3QoOnRhcmdldCkge1xuICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6dGFyZ2V0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmYtY2FudmFzLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAubWFpbi1uYXZfX2Nsb3NlLWJ0biB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYmxvY2sge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sdW1ucyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5qcy1yZWFkeXtcbiAgICAgICAgI25hdiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemU7XG4gICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogLSN7JG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemV9O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaGFkb3csIGluc2V0IGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsIC0xLjVlbSwgMS41ZW0pIDAgMS41ZW0gLTAuNzVlbSByZ2JhKDAsIDAsIDAsIDAuMjUpLCBtb3ogc3BlYyk7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJG9mZi1jYW52YXMtdG9wLXBhZGRpbmc7XG5cbiAgICAgICAgICAgIC5ibG9jayB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjaW5uZXItd3JhcCB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmpzLW5hdiAjaW5uZXItd3JhcCB7XG4gICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAkb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZTtcbiAgICB9XG5cbiAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLXJlYWR5IHtcbiAgICAgICAgI25hdiB7XG4gICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsIC0xMDAlLCAxMDAlKSwgMCwgMCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWNrZmFjZS12aXNpYmlsaXR5KGhpZGRlbik7XG4gICAgICAgIH1cblxuICAgICAgICAjaW5uZXItd3JhcCB7XG4gICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLy8gQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwwLDApOyAvLyBEaXNhYmxlZCEgQ2F1c2VkIGFsbCBraW5kcyBvZiB3ZWlyZCBibHVycmluZyBpbiBBbmRyb2lkIEZpcmVmb3hcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDUwMG1zIGVhc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1uYXYgI2lubmVyLXdyYXAge1xuICAgICAgICBAaW5jbHVkZSBiYWNrZmFjZS12aXNpYmlsaXR5KGhpZGRlbik7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsICRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplLCAtJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemUpLCAwLCAwLCBzY2FsZTNkKDEsIDEsIDEpKTtcbiAgICB9XG5cbiAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLXJlYWR5ICNuYXYgLmJsb2NrIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgMTAwbXMgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gNTAwbXMgZWFzZSwgdmlzaWJpbGl0eSA1MDBtcyBlYXNlO1xuICAgICAgICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgMTAwbXMgZWFzZSwgLW1vei10cmFuc2Zvcm0gNTAwbXMgZWFzZSwgdmlzaWJpbGl0eSA1MDBtcyBlYXNlO1xuICAgICAgICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIDEwMG1zIGVhc2UsIC1vLXRyYW5zZm9ybSA1MDBtcyBlYXNlLCB2aXNpYmlsaXR5IDUwMG1zIGVhc2U7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgMTAwbXMgZWFzZSwgdHJhbnNmb3JtIDUwMG1zIGVhc2UsIHZpc2liaWxpdHkgNTAwbXMgZWFzZTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemUsIC0kb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZSksIDAsIDAsIHNjYWxlM2QoMC45LCAwLjksIDAuOSkpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tb3JpZ2luKDUwJSAwJSk7XG4gICAgICAgIC8vdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMuanMtbmF2ICNuYXYgLmJsb2NrIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLy92aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgfVxuXG4gICAgLy8gVG8gYXZvaWQgbWVtb3J5IGxlYWtzIG9uIG1vYmlsZSBkZXZpY2VzXG4gICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucyAjbmF2IHtcbiAgICAgICAgLy8gYXMgdGVtcHRpbmcgYXMgaXQgaXMgdG8gdXNlIGRpc3BsYXk6IG5vbmUsIHZpc2liaWxpdHk6IGhpZGRlbiBpcyBhbmltYXRhYmxlXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih2aXNpYmlsaXR5IDUwMG1zIGVhc2UpO1xuICAgIH1cbiAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLW5hdiAjbmF2IHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG59XG5cbkBpZiAkb2ZmLWNhbnZhcy1vbi1tZWRpdW0ge1xuICAgIC8vIERpZmZlcmVudCBuYXYgc2l6ZSBvbiBtZWRpdW1cbiAgICBAbWVkaWEgI3skbWVkaXVtLW9ubHl9IHtcbiAgICAgICAgLmpzLXJlYWR5IHtcbiAgICAgICAgICAgICNuYXYge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemU7XG4gICAgICAgICAgICAgICAgI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06IC0jeyRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuanMtbmF2ICNpbm5lci13cmFwIHtcbiAgICAgICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAkb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLW5hdiAjaW5uZXItd3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZChpZigkb2ZmLWNhbnZhcy1wb3NpdGlvbiA9PSBsZWZ0LCAkb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemUsIC0kb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemUpLCAwLCAwLCBzY2FsZTNkKDEsIDEsIDEpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmICRvZmYtY2FudmFzLW9uLWxhcmdlIHtcbiAgICAvLyBEaWZmZXJlbnQgbmF2IHNpemUgb24gbWVkaXVtXG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIC5qcy1uYXYge1xuICAgICAgICAgICAgI25hdiB7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMjAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkb2ZmLWNhbnZhcy10b3AtcGFkZGluZztcbiAgICAgICAgICAgICAgICB0b3A6ICRvZmYtY2FudmFzLXRvcC1wb3NpdGlvbjtcblxuICAgICAgICAgICAgICAgICY6bm90KDp0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjp0YXJnZXQge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgICAgICAubWFpbi1uYXZfX2Nsb3NlLWJ0biB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5ibG9jayB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY29sdW1ucyB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmpzLW5hdiAjaW5uZXItd3JhcCB7XG4gICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1uYXYgI2lubmVyLXdyYXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplLCAtJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplKSwgMCwgMCwgc2NhbGUzZCgxLCAxLCAxKSk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiJG5hdi1zZWFyY2gtcmFkaXVzOiAkYnV0dG9uLXJhZGl1cyAhZGVmYXVsdDtcbiR0ZXh0LWxvZ28tZm9udC1zaXplOiAkaDEtZm9udC1zaXplICFkZWZhdWx0O1xuXG4jbG9nby1yb3cge1xuICAgIHBhZGRpbmc6ICRsb2dvLXJvdy1zcGFjaW5nIDA7XG59XG5cbiNsb2dvIHtcbiAgICBoZWlnaHQ6ICRsb2dvLWhlaWdodDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgYSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbG9nby1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAkdGV4dC1sb2dvLWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtaGVpZ2h0OiAkbG9nby1oZWlnaHQ7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG5cbiNleHRyYS1uYXYge1xuICAgIC5jYXJ0LWFuZC1jaGVja291dCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAjeygkbG9nby1oZWlnaHQgLSAkYnV0dG9uLXNpemUpLzJ9O1xuXG4gICAgICAgICYucmlnaHQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAgIGlucHV0LCAuYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgQGlmKCRuYXYtc2VhcmNoLXJhZGl1cykge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNpZGUtcmFkaXVzKGxlZnQsICRuYXYtc2VhcmNoLXJhZGl1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIEBpZigkbmF2LXNlYXJjaC1yYWRpdXMpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cyhyaWdodCwgJG5hdi1zZWFyY2gtcmFkaXVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuI2NvbnRhY3QtbmF2IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBcbiAgICBsaSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICBoZWlnaHQ6ICN7JGxvZ28taGVpZ2h0IC0gJGJ1dHRvbi1zaXplfTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICNsb2dvLXJvdyB7XG4gICAgICAgIHBhZGRpbmc6ICRsb2dvLWxhcmdlLXJvdy1zcGFjaW5nIDA7XG4gICAgfVxuXG4gICAgI2V4dHJhLW5hdiB7XG4gICAgICAgIC5jYXJ0LWFuZC1jaGVja291dHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAjeygkbG9nby1sYXJnZS1oZWlnaHQgLSAkYnV0dG9uLXNpemUpLzJ9O1xuICAgICAgICB9XG5cbiAgICAgICAgLnBpcGVkLW5hdiB7XG4gICAgICAgICAgICBsaTpmaXJzdC1jaGlsZCBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbG9nbyB7XG4gICAgICAgIGhlaWdodDogJGxvZ28tbGFyZ2UtaGVpZ2h0O1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbG9nby1sYXJnZS1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogJGxvZ28tbGFyZ2UtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2NvbnRhY3QtbmF2IHtcbiAgICAgICAgaGVpZ2h0OiAjeygkbG9nby1sYXJnZS1oZWlnaHQgLSAkYnV0dG9uLXNpemUpLzJ9O1xuICAgICAgICBsaW5lLWhlaWdodDogI3soJGxvZ28tbGFyZ2UtaGVpZ2h0IC0gJGJ1dHRvbi1zaXplKS8yfTtcbiAgICB9XG59IiwiLyoqXG4gKiBXZSdyZSB1c2luZyB0d28gbWVudSBjb25jZXB0cyBoZXJlXG4gKiBPZmYgY2FudmFzIG5hdmlnYXRpb24sIGFzIHNlZW4gb24gaHR0cDovL3d3dy5zbWFzaGluZ21hZ2F6aW5lLmNvbS8yMDEzLzAxLzE1L29mZi1jYW52YXMtbmF2aWdhdGlvbi1mb3ItcmVzcG9uc2l2ZS13ZWJzaXRlL1xuICogU21hcnQgbWVudXMsIGFzIHNlZW4gb24gaHR0cDovL3d3dy5zbWFydG1lbnVzLm9yZy9cbiAqL1xuJG1lbnUtZm9udC1mYW1pbHkgICAgICAgICAgOiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRtZW51LWZvbnQtY29sb3IgICAgICAgICAgIDogaWYobHVtYSgkbmF2aWdhdGlvbi1iZykgPCA1MCwgJGFsdGVybmF0aXZlLWZvbnQtY29sb3IsICRib2R5LWZvbnQtY29sb3IpICFkZWZhdWx0O1xuJG1lbnUtZHJvcGRvd24tYmcgICAgICAgICAgOiByZ2JhKCNmZmYsIC45NykgIWRlZmF1bHQ7XG4kbWVudS1kcm9wZG93bi1saW5rLWNvbG9yICA6IGlmKGx1bWEoJG1lbnUtZHJvcGRvd24tYmcpIDwgNTAsIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRtZW51LWRyb3Bkb3duLWJnKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkbWVudS1kcm9wZG93bi1iZykpICFkZWZhdWx0O1xuJG1lbnUtbmF2aWdhdGlvbi1saW5rLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbWVudS1mb250LWNvbG9yLCAkbmF2aWdhdGlvbi1iZykgIWRlZmF1bHQ7XG4vLyRtZW51LWl0ZW0tY29sb3IgICAgICAgICAgIDpcbi8vJG1lbnUtaXRlbS1iZyAgICAgICAgICAgICAgOlxuJG1lbnUtaXRlbS1jb250cmFzdC1jb2xvciAgOiAkbmF2aWdhdGlvbi1iZyAhZGVmYXVsdDtcbiRtZW51LWl0ZW0taG92ZXItY29sb3IgICAgIDogJGhvdmVyLWJnLXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWhvdmVyLWJnICAgICAgICA6ICRob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tYWN0aXZlLWNvbG9yICAgIDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWFjdGl2ZS1iZyAgICAgICA6ICRuYXZpZ2F0aW9uLWJnICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1hY3RpdmUtaG92ZXItY29sb3I6ICRuYXZpZ2F0aW9uLWJnICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1hY3RpdmUtaG92ZXItYmcgOiBpZihsdW1hKCRwcmltYXJ5LWNvbG9yKSA8IDUwLCBsaWdodGVuKCRwcmltYXJ5LWNvbG9yLCAxMCUpLCBkYXJrZW4oJHByaW1hcnktY29sb3IsIDEwJSkpICFkZWZhdWx0O1xuXG4kbmF2LXRvZ2dsZXItc2l6ZTogKCRsaXN0LWxpbmUtaGVpZ2h0ICogJGxpc3QtZm9udC1zaXplKSAhZGVmYXVsdDtcbiRuYXYtdG9nZ2xlci1iYWNrZHJvcDogJGNvbnRlbnQtYmcgIWRlZmF1bHQ7XG4kbmF2LXRvZ2dsZXItY3VycmVudC1iYWNrZHJvcDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kbmF2LXRvZ2dsZXItaG92ZXItYmc6ICRib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiRtZW51LWhvcml6b250YWwtYnJlYWtwb2ludDogaWYoJG9mZi1jYW52YXMtb24tbWVkaXVtID09IHRydWUsICRsYXJnZS11cCwgJG1lZGl1bS11cCk7XG4kb3ZlcnJpZGUtaW5saW5lLXBvcy1hdDogaWYoJG9mZi1jYW52YXMtb24tbWVkaXVtID09IHRydWUsICRtZWRpdW0tZG93biwgJHNtYWxsLWRvd24pO1xuXG4vLyBOYXZpZ2F0aW9uIGNvbnRhaW5lclxuLm1haW4tbmF2IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgZm9udC1mYW1pbHk6ICRtZW51LWZvbnQtZmFtaWx5O1xuXG4gICAgdWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkbWVudS1uYXZpZ2F0aW9uLWxpbmstY29sb3I7XG4gICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICB9XG5cbiAgICAuaWNvbi1tZW51OmJlZm9yZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAtMTIlO1xuICAgIH1cbn1cblxuLy8ganMga2VlcEluVmlld3BvcnQgYnVnZml4XG4uc20ge1xuICAgIC5zY3JvbGwtdXAsIC5zY3JvbGwtZG93biB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLy8gT2ZmIGNhbnZhcyBtZW51IGl0ZW1zXG4ubWFpbi1uYXZfX2l0ZW0gYSwgYS5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJG9mZi1jYW52YXMtbGluay1jb2xvciwgJG9mZi1jYW52YXMtYmFja2dyb3VuZCk7XG59XG5cbi8vIE9mZi1jYW52YXMgbmF2aWdhdGlvbiBjbG9zZSBidXR0b25cbi5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIGJvcmRlcjogMDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG9wYWNpdHk6IDAuNztcbiAgICB0ZXh0LWFsaWduOiBpZigkb2ZmLWNhbnZhcy1wb3NpdGlvbiA9PSBsZWZ0LCByaWdodCwgbGVmdCk7XG4gICAgbGluZS1oZWlnaHQ6ICRvZmYtY2FudmFzLWNsb3NlLWJ0bi1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkb2ZmLWNhbnZhcy1jbG9zZS1idG4taGVpZ2h0O1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKHRhcC1oaWdobGlnaHQtY29sb3IsIHJnYmEoMCwgMCwgMCwgMCksIHdlYmtpdCk7XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIsXG4gICAgJi5oaWdobGlnaHRlZCB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkb2ZmLWNhbnZhcy1saW5rLWNvbG9yLCAkaG92ZXItY29sb3IpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICBpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIHBhZGRpbmctI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06IC40cmVtO1xuICAgIH1cbn1cblxuLy8gVGhlIG1lbnUvc2VhcmNoIGJ1dHRvbnMgaW4gdGhlIGNvbXBhY3QgbWVudVxuLm5hdi1jb21wYWN0IHtcbiAgICBsaSB7XG4gICAgICAgIGhlaWdodDogJG5hdi1saW5lLWhlaWdodDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRtZW51LW5hdmlnYXRpb24tbGluay1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG59XG5cbiNuYXYtb3Blbi1idG4ge1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbn1cblxuLm5hdi1vZmZjYW52YXMge1xuICAgIGxpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtY29sb3I7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBOYXYgaXRlbXMgc3R5bGluZ1xuLm1haW4tbmF2X19pdGVtIHtcbiAgICBkaXJlY3Rpb246IGx0cjtcblxuICAgIGEge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwICRuYXYtaG9yaXpvbnRhbC1zaWRlLXBhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmLmhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0taG92ZXItYmc7XG4gICAgICAgICAgICBjb2xvcjogJG1lbnUtaXRlbS1ob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmN1cnJlbnQsXG4gICAgJi5zZWxlY3RlZCB7XG4gICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbG9yZWQtYmctZWxlbWVudCgkbWVudS1pdGVtLWFjdGl2ZS1iZywgJG1lbnUtaXRlbS1hY3RpdmUtY29sb3IsICRtZW51LWl0ZW0tY29udHJhc3QtY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgJGFjdGl2ZS1ob3Zlci1iZzogaWYobHVtYSgkbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1iZykgPCA1MCwgbGlnaHRlbigkbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1iZywgMTAlKSwgZGFya2VuKCRtZW51LWl0ZW0tYWN0aXZlLWhvdmVyLWJnLCAxMCUpKSAhZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb2xvcmVkLWJnLWVsZW1lbnQoJGFjdGl2ZS1ob3Zlci1iZywgI2ZmZiwgJG1lbnUtaXRlbS1jb250cmFzdC1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvL1RoaXMgc3R5bGluZyBvbmx5IGFwcGxpZXMgaWYgLnNtIGlzIGFkZGVkIHRvIHRoZSB0b3AgPHVsPiBlbGVtZW50LCBhcyBhcnJvd3MgZG9uJ3Qgd29yayBpZiBzbWFydG1lbnUgaXNuJ3QgbG9hZGVkIGFueXdheVxuICAgICYucGFyZW50ID4gYSB7XG4gICAgICAgIC8vIFNob3cgYXJyb3cgZm9yIHBhcmVudCBpdGVtc1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWtleWJvYXJkLWFycm93LWRvd24pO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbmF2LWljb24tc3BhY2luZztcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtLCA0MDBtcyBlYXNlKTtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgJiB+IHVsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLXNob3coJHBvc2l0aW9uOiByZWxhdGl2ZSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFJvdGF0ZSBhcnJvdyBvbiBob3ZlclxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZXgoMTgwZGVnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnBhcmVudC5sZXZlbC0xID4gYTphZnRlciB7XG4gICAgICAgIEBleHRlbmQgLmljb24ta2V5Ym9hcmQtYXJyb3ctZG93bjpiZWZvcmU7XG4gICAgfVxufVxuXG4vKipcbiAqIE5hdiBpdGVtcyBzaG91bGQgaGF2ZSBwYWRkaW5nIGFuZCBhIGxvdyBsaW5lIGhlaWdodFxuICogSWYgbm90LCBtdWx0aS1saW5lIGl0ZW1zIHdpbGwgYmUgaHVnZVxuICovXG4ubWFpbi1uYXZfX2xpc3Qge1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcblxuICAgIGEge1xuICAgICAgICBsaW5lLWhlaWdodDogJG9mZi1jYW52YXMtaXRlbS1saW5lLWhlaWdodCAqIDFyZW07XG4gICAgICAgIHBhZGRpbmc6ICN7KCRvZmYtY2FudmFzLWl0ZW0taGVpZ2h0IC0gJG9mZi1jYW52YXMtaXRlbS1saW5lLWhlaWdodCAqIDFyZW0pLzJ9IDFyZW07XG4gICAgfVxuXG4gICAgLy8gRXh0cmEgYm90dG9tIGJvcmRlciBmb3IgdGhlIGxhc3Qgb2YgdGhlIGZpcnN0IGxldmVsIGVsZW1lbnRzXG4gICAgJi5sZXZlbC0wID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtY29sb3I7XG4gICAgfVxufVxuXG4vLyBTdWJtZW51XG4ubWFpbi1uYXZfX3N1Ym1lbnUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMTtcbiAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLWhpZGUoKTtcblxuICAgIGEge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgIH1cblxuICAgIGh0bWwubm8tanMgJi5hY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLXNob3coKTtcbiAgICB9XG5cbn1cblxuLy9TdWJzdWJtZW51XG4ubWFpbi1uYXZfX3N1Ym1lbnUubGV2ZWwtMiB7XG4gICAgYSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMy41cmVtO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWNoZXZyb24tcmlnaHQpO1xuICAgICAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtaGVpZ2h0ICogMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRuYXYtaWNvbi1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uanMtbmF2IHtcbiAgICAjb3V0ZXItd3JhcCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLmNvbnRlbnQtd3JhcHBlciA+ICo6bm90KCNuYXYpIHtcbiAgICAgICAgb3BhY2l0eTogLjQ7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgNTAwbXMpO1xuICAgIH1cbn1cblxuLyogRml4IHdlaXJkIGJ1ZyBpbiBDaHJvbWUgd2hlcmUgbWVudSBkaXNhcHBlYXJzIG9uIGhvdmVyICovXG4ubWFpbi1uYXZfX2l0ZW0sXG4ubWFpbi1uYXZfX3N1Ym1lbnUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTtcbn1cblxuLmJsb2NrLW5hdl9faXRlbS5wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuQG1peGluIG1haW4tbmF2X190b2dnbGUtLWNvbG9ycygkY29sb3I6ICRwcmltYXJ5LWNvbG9yLCAkYmFja2Ryb3A6ICRuYXYtdG9nZ2xlci1iYWNrZHJvcCwgJGhvdmVyLWJnOiAkbmF2LXRvZ2dsZXItaG92ZXItYmcsICRob3Zlci1jb2xvcjogJHByaW1hcnktY29sb3Ipe1xuICAgICYsXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29sb3IsICRiYWNrZHJvcCksIDAuOSkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLnRvZ2dsZWQ6YmVmb3JlIHtcbiAgICAgICAgY29sb3I6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkYmFja2Ryb3ApIDwgNTAsICMwMDAsICNmZmYpLCAkYmFja2Ryb3ApLCAuNykgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1iZztcblxuICAgICAgICAmLCAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UocmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkaG92ZXItY29sb3IsICRiYWNrZHJvcCksIDAuOSksICRob3Zlci1iZykgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1haW4tbmF2X190b2dnbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAkbmF2LXRvZ2dsZXItc2l6ZTtcbiAgICB3aWR0aDogJG5hdi10b2dnbGVyLXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRuYXYtdG9nZ2xlci1zaXplO1xuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGhlaWdodDogJG5hdi10b2dnbGVyLXNpemU7XG4gICAgICAgIHdpZHRoOiAkbmF2LXRvZ2dsZXItc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtYWluLW5hdl9fdG9nZ2xlLS1jb2xvcnMoKTtcblxuICAgIC5mb290ZXItYmcgJiB7XG4gICAgICAgIEBpbmNsdWRlIG1haW4tbmF2X190b2dnbGUtLWNvbG9ycygkY29sb3I6ICRwcmltYXJ5LWNvbG9yLCAkYmFja2Ryb3A6ICRmb290ZXItYmcsICRob3Zlci1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJG5hdi10b2dnbGVyLWhvdmVyLWJnLCAkZm9vdGVyLWJnLCAxLjEpKTtcbiAgICB9XG59XG4uY3VycmVudCB7XG4gICAgPiAubWFpbi1uYXZfX3RvZ2dsZSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wKSwgMC43NSkgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgLmZvb3Rlci1iZyAmIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkZm9vdGVyLWJnKSwgMC43NSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaWYobHVtYSgkbmF2LXRvZ2dsZXItY3VycmVudC1iYWNrZHJvcCkgPCA1MCwgbGlnaHRlbigkbmF2LXRvZ2dsZXItY3VycmVudC1iYWNrZHJvcCwgMTAlKSwgZGFya2VuKCRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wLCAxMCUpKTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wKSwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gU3R5bGluZyBmb3IgaW5pdGlhbGl6aW5nIHRoZSBtZW51IHdpdGggc3VibWVudXMgb3BlblxuLmJsb2NrLW5hdl9faXRlbSB7XG4gICAgJi5zZWxlY3RlZC5wYXJlbnQsXG4gICAgJi5jdXJyZW50LnBhcmVudCB7XG4gICAgICAgIC8vIFJvdGF0ZSB0aGUgY3Jvc3NcbiAgICAgICAgPiAubWFpbi1uYXZfX3RvZ2dsZTpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxMzVkZWcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm1haW4tbmF2X190b2dnbGUudG9nZ2xlZDpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgwZGVnKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRvdmVycmlkZS1pbmxpbmUtcG9zLWF0fSB7XG4gICAgLy8gT3ZlcnJpZGUgaW5saW5lIHBvc2l0aW9uaW5nIGRvbmUgYnkgSlNcbiAgICAubWFpbi1uYXZfX2l0ZW0ucGFyZW50ID4gYS5oaWdobGlnaHRlZCB+IHVsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuQGlmICRvZmYtY2FudmFzLW9uLW1lZGl1bSB7XG4gICAgLyogSW5jcmVhc2UgcGFkZGluZyBpbiBtZW51IGl0ZW1zIG9uIG1lZGl1bSBzY3JlZW5zICovXG4gICAgQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7XG4gICAgICAgIC5tYWluLW5hdl9fbGlzdCB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWFpbi1uYXZfX3N1Ym1lbnUge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWFpbi1uYXZfX2Nsb3NlLWJ0biB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lbnUtaG9yaXpvbnRhbC1icmVha3BvaW50fSB7XG5cbiAgICAubWFpbi1uYXZfX2Zyb250cGFnZS1saW5rIC5pY29uLWhvbWUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICB9XG5cbiAgICAubWFpbi1uYXZfX2l0ZW0ge1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXYtaG9yaXpvbnRhbC1zaWRlLXBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbmF2LWhvcml6b250YWwtc2lkZS1wYWRkaW5nO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVudS1uYXZpZ2F0aW9uLWxpbmstY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaXJzdCBsZXZlbCBtZW51IGl0ZW1zXG4gICAgICAgICYubGV2ZWwtMCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgei1pbmRleDogMTAxO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTAyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbmF2LWZpcnN0LWxldmVsLXNwYWNpbmc7XG5cbiAgICAgICAgICAgIEBpZiAkbmF2LWZpcnN0LWxldmVsLXNwYWNpbmcgPiAwIHtcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbmF2LWZpcnN0LWxldmVsLXNpZGUtcGFkZGluZztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbmF2LWZpcnN0LWxldmVsLXNpZGUtcGFkZGluZztcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJG5hdi1saW5lLWhlaWdodDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJG5hdi1maXJzdC1sZXZlbC1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJG5hdi1maXJzdC1sZXZlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRuYXYtZmlyc3QtbGV2ZWwtZm9udC1zaXplO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnBhcmVudCA+IGE6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2hvdyBzdWJtZW51IG9uIGhpZ2hsaWdodGluZ1xuICAgICAgICAmLnBhcmVudCA+IGEuaGlnaGxpZ2h0ZWQgfiB1bCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDE1ZW07XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwZW07XG4gICAgICAgICAgICBib3gtc2hhZG93OiAxcHggMCAwICRuYXYtc3VibWVudS1ib3JkZXItY29sb3IsIDAgMXB4IDAgJG5hdi1zdWJtZW51LWJvcmRlci1jb2xvciwgLTFweCAwIDAgJG5hdi1zdWJtZW51LWJvcmRlci1jb2xvciwgMCAtMXB4IDAgJG5hdi1zdWJtZW51LWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yOyAvLyBOb3QgYWxsIGJyb3dzZXJzIHN1cHBvcnQgdGhpc1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gT3ZlcnJpZGUgc21hbGwgc2NyZWVuIHNldHRpbmdzXG4gICAgLm5hdi1vZmZjYW52YXMge1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAqLFxuICAgICAgICAgICAgKjpiZWZvcmUsXG4gICAgICAgICAgICAqOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGNvbnRlbnQtYm94KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICAgICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1oaWRlKCk7XG4gICAgfVxuXG4gICAgLy8gSGlkZSBzdWJtZW51cyBieSBkZWZhdWx0XG4gICAgLm1haW4tbmF2X19zdWJtZW51IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC05OTk5OTlweDtcbiAgICAgICAgbGVmdDogLTgwMHB4OyAvLyBAVE9ETyBJbnZlc3RpZ2F0ZSBpZiB0aGlzIGlzIHRoZSBjdWxwcml0IGJlaGluZCBhIGZsYXNoIGJ1ZyBvbiBDaHJvbWUgd2hlcmUgdGhlIHN1Ym1lbnUganVzdCBkaXNzYXBwZWFycyByYW5kb21seVxuICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1kcm9wZG93bi1iZztcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVudS1kcm9wZG93bi1saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1haW4tbmF2X19pdGVtIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gbWVudSBsZXZlbCAxIHdlIHVzZSBwbHVzIHNpZ24gYXMgcGFyZW50IGluZGljYXRvciwgc2luY2UgbGV2ZWwgMlxuICAgICAqIHN1Ym1lbnVzIG1heSBwb3AgdXAgYm90aCB0byB0aGUgbGVmdCBhbmQgdG8gdGhlIHJpZ2h0XG4gICAgICovXG4gICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAgICAubWFpbi1uYXZfX2l0ZW0ubGV2ZWwtI3skaX0ucGFyZW50IHtcbiAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJGljb24tdmFyLWFkZDtcbiAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDMwMG1zIGVhc2UpO1xuICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogLjY7XG4gICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICYuaGlnaGxpZ2h0ZWQ6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxMzVkZWcpKTtcbiAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICB9XG4gICAgICAgICB9XG4gXHR9XG5cblxuICAgIC5tYWluLW5hdl9fc3VibWVudS5sZXZlbC0yIGEge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvLyBRdWlja2ZpeFxuQGltcG9ydCBcInF1aWNrZml4L2Jsb2Nrcy9wYWdpbmF0aW9uXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4XCI7XG5cbi8vIFBpb25lZXIgY29tcG9uZW50c1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zbGFiLXNlcGFyYXRvclwiOyAvLyB0aGlzIG9uZSBmaXJzdCwgc2luY2Ugb3RoZXJzIGRlcGVuZCBvbiBpdFxuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9hbGVydC1ib3hlc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYmxvY2staW1hZ2UtZ3JpZFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9ibG9ja3NcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYmxvY2tzLWJhbm5lcnNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYm9yZGVyZWRcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYnV0dG9uc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9ieHNsaWRlclwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9jYXJ0X2J1dHRvblwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9jaGVja291dFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9jaGVja291dF9rY29cIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvY29tbWVudHNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvY29va2llLW5vdGljZVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9lcXVhbC1oZWlnaHQtY29sdW1uc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9mYW5jeWJveFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9mb3Jtc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9rbGFybmFcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGFuZ3VhZ2UtY3VycmVuY3lcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcGFnaW5hdGlvblwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9wYWdlLWRpdmlkZXJcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcGFnZXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcHJvZHVjdFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9wcm9kdWN0LXNlYXJjaFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9yYXRpbmdcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcmVhZG9uLWljb24tY2VudGVyZWQtb24taG92ZXJcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc2hvcC1mZWF0dXJlc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zbGlkZXJcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc3Bpbm5lclwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zcGxpdG1lbnVcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvdGFibGVzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3RhYnNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvdGhlbWVkLW5hdmlnYXRpb25cIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvdHlwb2dyYXBoeVwiO1xuXG4vLyBDb21tb24gc3R1ZmYgZm9yIGFsbCB0aGVtZXNcbkBpbXBvcnQgXCJxdWlja2ZpeC9jb21tb25cIjtcblxuLy8gQXBleCBjb21wb25lbnRzIGFuZCBvdmVycmlkZXNcbkBpbXBvcnQgXCJzdHlsZXMvY29tcG9uZW50cy9iZXN0c2VsbGVyXCI7XG5AaW1wb3J0IFwic3R5bGVzL2NvbXBvbmVudHMvYmxvY2tzXCI7XG5AaW1wb3J0IFwic3R5bGVzL2NvbXBvbmVudHMvYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCJzdHlsZXMvY29tcG9uZW50cy9idXR0b25zXCI7XG5AaW1wb3J0IFwic3R5bGVzL2NvbXBvbmVudHMvYnhzbGlkZXJcIjtcbkBpbXBvcnQgXCJzdHlsZXMvY29tcG9uZW50cy9jYXRlZ29yeWxpc3RcIjtcbkBpbXBvcnQgXCJzdHlsZXMvY29tcG9uZW50cy9mb3Jtc1wiO1xuQGltcG9ydCBcInN0eWxlcy9jb21wb25lbnRzL21haW4tbmF2XCI7XG5AaW1wb3J0IFwic3R5bGVzL2NvbXBvbmVudHMvcHJvZHVjdFwiO1xuQGltcG9ydCBcInN0eWxlcy9jb21wb25lbnRzL3Byb2R1Y3QtaW1hZ2VnYWxsZXJ5XCI7XG5AaW1wb3J0IFwic3R5bGVzL2NvbXBvbmVudHMvcHJvZHVjdC1zZWFyY2hcIjtcbkBpbXBvcnQgXCJzdHlsZXMvY29tcG9uZW50cy9wcm9kdWN0bGlzdFwiO1xuQGltcG9ydCBcInN0eWxlcy9jb21wb25lbnRzL3NvY2lhbC1idXR0b25zXCI7XG5AaW1wb3J0IFwic3R5bGVzL2NvbXBvbmVudHMvc3BsaXRtZW51XCI7XG5AaW1wb3J0IFwic3R5bGVzL2NvbXBvbmVudHMvdGFic1wiO1xuQGltcG9ydCBcInN0eWxlcy9jb21wb25lbnRzL3R5cGVcIjtcblxuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9wcm9kdWN0bGlzdC9idXktYnV0dG9uc1wiO1xuIiwiQGltcG9ydCBcImJvdXJib24vY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvdHJhbnNpdGlvblwiO1xuXG5AaW1wb3J0IFwiaG92ZXJmeC9iYXNlXCI7XG5AaW1wb3J0IFwiaG92ZXJmeC9ibHVyXCI7XG5AaW1wb3J0IFwiaG92ZXJmeC9jb3ZlclwiO1xuQGltcG9ydCBcImhvdmVyZngvZmlnY2FwdGlvblwiO1xuQGltcG9ydCBcImhvdmVyZngvbGV2aXRhdGVcIjtcbkBpbXBvcnQgXCJob3ZlcmZ4L3Nob3d0aXRsZVwiO1xuQGltcG9ydCBcImhvdmVyZngvdGlsdFwiO1xuXG5hW2NsYXNzXj1cImhmeC0tXCJdLFxuYVtjbGFzcyo9XCIgaGZ4LS1cIl0ge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59IiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cblxuIiwiJWhmeC1iYXNlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn0iLCIkaGZ4LWJsdXItdmFsdWU6IDJweCAhZGVmYXVsdDtcblxuLmhmeC0tYmx1ciB7XG5cdCY6aG92ZXIgaW1nIHtcblx0XHRAaW5jbHVkZSBmaWx0ZXIoYmx1cigkaGZ4LWJsdXItdmFsdWUpKTtcblx0fVxufSIsIkBpZiB2YXJpYWJsZS1leGlzdHMoXCJpY29uLXZhci1zZWFyY2hcIikgPT0gZmFsc2Uge1xuXHRAZXJyb3IgXCJNaXNzaW5nIGljb24gdmFyaWFibGVcIjsgXG59XG5cbkBpZiBtaXhpbi1leGlzdHMoXCJpY29uXCIpID09IGZhbHNlIHtcblx0QGVycm9yIFwiTWlzc2luZyBpY29uIG1peGluXCI7IFx0XG59XG5cbiRoZngtaWNvbi1zaXplOiByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG5cbi5oZngtLWNvdmVyLS1saWdodCxcbi5oZngtLWNvdmVyLS1kYXJrIHtcblx0QGV4dGVuZCAlaGZ4LWJhc2U7XG5cblx0Jjo6YmVmb3JlLFxuXHQmOjphZnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1x0XHRcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0b3BhY2l0eTogMDtcblx0XHR6LWluZGV4OiAxO1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjNzIGVhc2UpO1xuXHR9XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoI2ZmZiwgLjY1KTtcblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRAaW5jbHVkZSBpY29uKCRpY29uLXZhci1zZWFyY2gpO1xuXHRcdGZvbnQtc2l6ZTogJGhmeC1pY29uLXNpemU7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0Y29sb3I6IHJnYmEoIzAwMCwgMC42NSk7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bGVmdDogMDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0bWFyZ2luLXRvcDogJGhmeC1pY29uLXNpemUvLTI7XG5cdFx0aGVpZ2h0OiAxZW07XG5cdFx0ei1pbmRleDogMjtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4uaGZ4LS1jb3Zlci0tZGFyayB7XG5cdCY6OmJlZm9yZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMDAwLCAuNjUpO1xuXHR9XG5cblx0Jjo6YWZ0ZXIge1xuXHRcdGNvbG9yOiByZ2JhKCNmZmYsIDAuNzUpO1xuXHR9XG59IiwiJGhmeC1maWdjYXB0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjUpICFkZWZhdWx0O1xuJGhmeC1maWdjYXB0aW9uLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kaGZ4LWZpZ2NhcHRpb24tZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG4kaGZ4LWZpZ2NhcHRpb24tdHJhaWxlci1zeW1ib2w6IGZhbHNlICFkZWZhdWx0O1xuJGhmeC1maWdjYXB0aW9uLWxpZ2h0LWNvbG9yOiByZ2JhKCNmZmYsIC45KSAhZGVmYXVsdDtcbiRoZngtZmlnY2FwdGlvbi1kYXJrLWNvbG9yOiByZ2JhKCMwMDAsIC45KSAhZGVmYXVsdDtcblxuLmhmeC0tZmlnY2FwdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXNpemU6ICRoZngtZmlnY2FwdGlvbi1mb250LXNpemU7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRoZngtZmlnY2FwdGlvbi10ZXh0LXRyYW5zZm9ybTtcbiAgICBmb250LXdlaWdodDogJGhmeC1maWdjYXB0aW9uLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogLjVlbTtcbiAgICAgICAgei1pbmRleDoyO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IC4zcyBlYXNlLWluLW91dCwgY29sb3IgLjNzIGVhc2UtaW4tb3V0KTtcblxuICAgICAgICBAaWYgJGhmeC1maWdjYXB0aW9uLXRyYWlsZXItc3ltYm9sICE9IGZhbHNlIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRoZngtZmlnY2FwdGlvbi10cmFpbGVyLXN5bWJvbH1cIjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC4yNWVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhmeC0tZmlnY2FwdGlvbi0tYm90dG9tLWxlZnQge1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmhmeC0tZmlnY2FwdGlvbi0tYm90dG9tLXJpZ2h0IHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG5cbiAgICAuaGZ4LS1maWdjYXB0aW9uLS10b3AtbGVmdCB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAuaGZ4LS1maWdjYXB0aW9uLS10b3AtcmlnaHQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5iYWNrZ3JvdW5kLS1saWdodCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tZGFyay1jb2xvcjtcblxuICAgICAgICAuaGZ4LS1jb3Zlci0tZGFyazpob3ZlciAmLFxuICAgICAgICAuaGZ4LS1jb3Zlci0tZGFyazpmb2N1cyAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tbGlnaHQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmFja2dyb3VuZC0tZGFyayB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tbGlnaHQtY29sb3I7XG5cbiAgICAgICAgLmhmeC0tY292ZXItLWxpZ2h0OmhvdmVyICYsXG4gICAgICAgIC5oZngtLWNvdmVyLS1saWdodDpmb2N1cyAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tZGFyay1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuaGZ4LS1sZXZpdGF0ZSB7XG5cdGltZyB7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gLjNzIGVhc2UsIGJveC1zaGFkb3cgLjNzIGVhc2UpO1xuXHR9XG5cblx0Jjpob3ZlciB7XG5cdFx0aW1nIHtcblx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxLjEpIHRyYW5zbGF0ZXooMCkpO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAzcHggMTBweCByZ2JhKCMwMDAsIC4yNSk7XG5cdFx0fVxuXHR9XG59IiwiQGlmIHZhcmlhYmxlLWV4aXN0cyhcImNvbnRlbnQtYmdcIikgPT0gZmFsc2Uge1xuXHRAZXJyb3IgXCJNaXNzaW5nIGNvbnRlbnQtYmcgdmFyaWFibGVcIjsgXG59XG5cblxuLmhmeC0tc2hvdy10aXRsZSB7XG5cdEBleHRlbmQgJWhmeC1iYXNlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdGltZyB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4yNXMgZWFzZSk7XG5cdH1cblxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OiBhdHRyKHRpdGxlKTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Y29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCMzMzMsICRjb250ZW50LWJnLCA2KTtcblx0XHRib3R0b206IC0xMDAlO1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoJGNvbnRlbnQtYmcsIDAuNzUpO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZzogMXJlbTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJvdHRvbSAwLjI1cyBlYXNlKTtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdGltZyB7XG5cdFx0XHRvcGFjaXR5OiAwLjM7XG5cdFx0fVxuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0fVxuXHR9XG59IiwiJGhmeC10aWx0LWFuZ2xlOiA1ZGVnICFkZWZhdWx0O1xuXG4uaGZ4LS10aWx0LS1yaWdodCxcbi5oZngtLXRpbHQtLWxlZnQge1xuXHRAZXh0ZW5kICVoZngtYmFzZTtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblx0aW1nIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gMC4ycyBlYXNlKTtcblx0fVxufVxuXG4uaGZ4LS10aWx0LS1yaWdodCB7XG5cdCY6aG92ZXIge1xuXHRcdGltZyB7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKCRoZngtdGlsdC1hbmdsZSkgdHJhbnNsYXRleigwKSk7XG5cdFx0fVxuXHR9XG59XG5cbi5oZngtLXRpbHQtLWxlZnQge1xuXHQmOmhvdmVyIHtcblx0XHRpbWcge1xuXHRcdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtJGhmeC10aWx0LWFuZ2xlKSB0cmFuc2xhdGV6KDApKTtcblx0XHR9XG5cdH1cbn1cbiIsIiRzbGFiLXNlcGFyYXRvci13aWR0aDogNTBweCAhZGVmYXVsdDtcbiRzbGFiLXNlcGFyYXRvci1oZWlnaHQ6IDJweCAhZGVmYXVsdDtcbiRzbGFiLXNlcGFyYXRvci1jb2xvcjogIzAwMCAhZGVmYXVsdDtcblxuJXNsYWItc2VwYXJhdG9yIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6ICRzbGFiLXNlcGFyYXRvci13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkc2xhYi1zZXBhcmF0b3ItaGVpZ2h0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiAtNHB4IC0gKCRzbGFiLXNlcGFyYXRvci1oZWlnaHQvMik7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtI3skc2xhYi1zZXBhcmF0b3Itd2lkdGggLyAyfTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNsYWItc2VwYXJhdG9yLWNvbG9yO1xuICAgIH1cbn0iLCIkYWxlcnQtYm94LWZvb3Rlci1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcblxuQG1peGluIGFsZXJ0LXN0eWxlKCRjb2xvcikge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItbGVmdDogJGFsZXJ0LXNpZGUtYm9yZGVyLXNpemUgc29saWQgJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG59XG5cbi8vIFVzaW5nIGZvdW5kYXRpb24ncyBhbGVydCBib3hlcyBzdHlsaW5nXG4uYWxlcnQtYm94IHtcbiAgICBAaW5jbHVkZSBhbGVydDtcbiAgICBsaW5lLWhlaWdodDogJGFsZXJ0LWxpbmUtaGVpZ2h0O1xuICAgIGJveC1zaGFkb3c6IDJweCAycHggNHB4IHJnYmEoMCwwLDAsLjQpO1xuICAgIFxuICAgICYuYWxlcnQtYm94LS13aXRoY2xvc2Uge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAjeyRhbGVydC1wYWRkaW5nLW9wcG9zaXRlLWRpcmVjdGlvbiAqIDEuNX07XG4gICAgfVxuICBcbiAgICA+IHA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmNsb3NlICAgICAgeyBAaW5jbHVkZSBhbGVydC1jbG9zZTsgfVxuICAgICYucmFkaXVzICAgIHsgQGluY2x1ZGUgcmFkaXVzKCRhbGVydC1yYWRpdXMpOyB9XG4gICAgJi5yb3VuZCAgICAgeyBAaW5jbHVkZSByYWRpdXMoJGdsb2JhbC1yb3VuZGVkKTsgfVxuXG4gICAgJi5zdWNjZXNzLFxuICAgICYuYWxlcnQtc3VjY2VzcyAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJHN1Y2Nlc3MtY29sb3IpOyB9XG4gICAgJi5hbGVydCxcbiAgICAmLmFsZXJ0LWFsZXJ0ICAgICB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRhbGVydC1jb2xvcik7IH1cbiAgICAmLnNlY29uZGFyeSxcbiAgICAmLmFsZXJ0LXNlY29uZGFyeSB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRzZWNvbmRhcnktY29sb3IpOyB9XG4gICAgJi53YXJuaW5nLFxuICAgICYuYWxlcnQtd2FybmluZyAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJHdhcm5pbmctY29sb3IpOyB9XG4gICAgJi5pbmZvLFxuICAgICYuYWxlcnQtaW5mbyAgICAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJGluZm8tY29sb3IpOyB9XG4gICAgJi5hbGVydC1jbG9zZSAgICAgeyBvcGFjaXR5OiAwfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxufVxuXG4uYWxlcnQtYm94X19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgdG9wOiAkYWxlcnQtcGFkZGluZy10b3A7XG4gICAgbGVmdDogLSgkYWxlcnQtc2lkZS1ib3JkZXItc2l6ZS8yICsgLjVyZW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAkYWxlcnQtbGluZS1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkYWxlcnQtbGluZS1oZWlnaHQgKiAxcmVtO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uYWxlcnQtYm94X19tZXNzYWdlLFxuLmFsZXJ0LWJveF9fbWVzc2FnZSA+ICoge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGFsZXJ0LWZvbnQtc2l6ZTtcbn1cbi5hbGVydC1ib3hfX21lc3NhZ2Ugc3Ryb25nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmFsZXJ0LWJveF9fbWVzc2FnZSA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmFsZXJ0LWJveC0td2l0aGZvb3RlciB7XG4gICAgLmFsZXJ0LWJveF9fbWVzc2FnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRhbGVydC1ib3gtZm9vdGVyLXNpemU7XG4gICAgfVxufVxuXG4jY2FydC1ub3RpZnkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5hbGVydC1ib3hfX3Byb2dyZXNzYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uYWxlcnQtYm94X19mb290ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAkYWxlcnQtYm94LWZvb3Rlci1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkYWxlcnQtYm94LWZvb3Rlci1zaXplO1xuXG4gICAgYSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGFsZXJ0LXBhZGRpbmctZGVmYXVsdC1mbG9hdCAwICRhbGVydC1wYWRkaW5nLWRlZmF1bHQtZmxvYXQ7XG4gICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgICAgICYubGVmdCAuZmEge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogLjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLnJpZ2h0IC5mYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC4zcmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLmFsZXJ0LWJveCB7XG4gICAgICAgIG1heC13aWR0aDogNjAlO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLmFsZXJ0LWJveCB7XG4gICAgICAgIG1heC13aWR0aDogNDAlO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgIC5hbGVydC1ib3gge1xuICAgICAgICBtYXgtd2lkdGg6IDMwJTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJvcnJvd2VkIHBhcnRzIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5lZGVuL2FuaW1hdGUuY3NzXG4gKi9cblxuLmFuaW1hdGVkIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sIDFzLCB3ZWJraXQgc3BlYyk7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgYm90aCwgd2Via2l0IHNwZWMpO1xufVxuXG4uYW5pbWF0ZSxcbi5ncm93bC1hbmltYXRlZCB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjRzIGVhc2UtaW4tb3V0KTtcbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGZhZGVJbkRvd24pIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCBub25lLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG4gICAgfVxufVxuXG4uZmFkZUluRG93biB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsIGZhZGVJbkRvd24sIHdlYmtpdCBzcGVjKTtcbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGZhZGVPdXRVcCkge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIH1cbn1cblxuLmZhZGVPdXRVcCB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsIGZhZGVPdXRVcCwgd2Via2l0IHNwZWMpO1xufSIsIi5ibG9jay1pbWFnZS1ncmlkIHtcbiAgICBAaW5jbHVkZSBibG9jay1ncmlkKDMpO1xufSIsIi5ibG9ja19fYm94X19oZWFkbGluZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICBwYWRkaW5nOiAuNXJlbSAkY29sdW1uLWd1dHRlci8yIC41cmVtICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXIta2V5Ym9hcmQtYXJyb3ctZG93bik7XG4gICAgICAgIEBleHRlbmQgLmljb24tbGFyZ2U7XG4gICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gNDAwbXMgZWFzZSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgfVxuXG4gICAgJi50b2dnbGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkcHJpbWFyeS1jb2xvcik7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRleCgxODBkZWcpKTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4uYmxvY2tfX2JveF9fY29udGVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwYWRkaW5nOiAuNXJlbSAkY29sdW1uLWd1dHRlci8yICRjb2x1bW4tZ3V0dGVyICRjb2x1bW4tZ3V0dGVyLzI7XG59XG5cbi5ibG9ja19fYm94IHtcbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICB1bCBsaSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgJi5wYXJlbnQge1xuICAgICAgICAgICAgPiBhLmpzLXRvZ2dsZS12aXNpYmlsaXR5OmJlZm9yZSwgPiAubWFpbi1uYXZfX3RvZ2dsZTpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWFkZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gYS50b2dnbGVkLCA+IC5tYWluLW5hdl9fdG9nZ2xlLnRvZ2dsZWQge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxMzVkZWcpKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gdWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmJsb2NrX19ib3gtLWxvZ29fbGlzdCBhOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uYmxvY2tfX2xvZ2luX19mb3Jnb3RwYXNzd29yZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi1zbWwpO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4jZm9vdGVyIHtcbiAgICAuZm9vdGVyLWJsb2NrOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcblxuICAgICAgICAuYmxvY2tfX2JveDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgbHVtYSgkZm9vdGVyLWJnKSA8IDUwIHtcbiAgICAgICAgJGZvb3Rlci10ZXh0LWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkZm9vdGVyLWJnKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJGZvb3Rlci10ZXh0LWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICRmb290ZXItYmcpO1xuICAgIH1cbiAgICAkZm9vdGVyLWxpbmstcGFkZGluZzogKCgoJHRvdWNoLWZyaWVuZGx5LXNpemUgLSAoMXJlbSAqICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQpKS8yKSArIC4yNXJlbSkgIWRlZmF1bHQ7XG5cbiAgICAuYmxvY2tfX2JveCB7XG4gICAgICAgIGxpIGEubmV1dHJhbC1saW5rOmJlZm9yZSxcbiAgICAgICAgbGkubmV1dHJhbC1saW5rID4gYTpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkZm9vdGVyLWJnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIGEudG9nZ2xlZDpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRhbGVydC1jb2xvciwgJGZvb3Rlci1iZyk7XG4gICAgICAgIH1cbiAgICAgICAgLm1haW4tbmF2X190b2dnbGUsIC5tYWluLW5hdl9fdG9nZ2xlOmJlZm9yZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg1MCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoNTApO1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgbGkubGV2ZWwtMCB7XG4gICAgICAgICAgICAmLCBsaSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHJnYmEoJGZvb3Rlci10ZXh0LWNvbG9yLCAkYm9yZGVyLWRlZmF1bHQtb3BhY2l0eSkgc29saWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkZm9vdGVyLWxpbmstcGFkZGluZyAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPbiBtZW51IGxldmVsIDEgd2UgdXNlIHBsdXMgc2lnbiBhcyBwYXJlbnQgaW5kaWNhdG9yLCBzaW5jZSBsZXZlbCAyXG4gICAgICAgICAqIHN1Ym1lbnVzIG1heSBwb3AgdXAgYm90aCB0byB0aGUgbGVmdCBhbmQgdG8gdGhlIHJpZ2h0XG4gICAgICAgICAqL1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDUge1xuICAgICAgICAgICAgbGkubGV2ZWwtI3skaX0ge1xuICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiAoJGZvb3Rlci1saW5rLXBhZGRpbmcgKiAxLjUpICogJGk7XG4gICAgICAgICAgICAgfVxuICAgICBcdH1cbiAgICAgICAgbGkucGFyZW50IHtcblxuICAgIFx0XHQmID4gYSB7XG4gICAgXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICAgIFx0XHR9XG5cbiAgICBcdFx0Ji5jdXJyZW50LFxuICAgIFx0XHQmLnNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICAmID4gdWwge1xuICAgIFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgI2Zvb3RlciB7XG4gICAgICAgIC5mb290ZXItYmxvY2s6Zmlyc3QtY2hpbGQsXG4gICAgICAgIC5mb290ZXItYmxvY2s6bnRoLWxhc3QtY2hpbGQoMikge1xuICAgICAgICAgICAgLmJsb2NrX19ib3g6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJsb2NrX19ib3g6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9ja19fYm94X19oZWFkbGluZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAmLnRvZ2dsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2tfX2JveF9fY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICNmb290ZXIge1xuICAgICAgICAuZm9vdGVyLWJsb2NrIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xuXG4gICAgICAgICAgICAuYmxvY2tfX2JveDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi5ibG9ja19fYm94LS1iYW5uZXJzLFxuLmJsb2NrX19ib3gtLWJhbm5lcnNfcmlnaHQsXG4uYmxvY2tfX2JveC0tYmFubmVyc19sZWZ0IHtcbiAgICBcbiAgICAmLCAuYmxvY2tfX2JveF9fY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50IWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgXG4gICAgLmJsb2NrX19ib3hfX2hlYWRsaW5lLXdyYXBwZXIsXG4gICAgLmJsb2NrX19ib3hfX2hlYWRsaW5lIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAud3JhcHBlcl9iYW5uZXIge1xuICAgIFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgXHQmID4gZGl2IHtcbiAgICBcdFx0bWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAvLyBGdWxsIHNpemUgdGhlIGltYWdlXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgQGlmICRnbG9iYWwtcmFkaXVzID4gMCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzIC0gMTsgLy8gVmlzdWFsIHNpbWlsYXJpdHkgdG8gYm94ZXNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICBcdFx0JjpsYXN0LWNoaWxkIHtcbiAgICBcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuICAgIFx0XHR9XG4gICAgXHR9XG4gICAgfVxufVxuXG4iLCIlYm9yZGVyZWQge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwO1xufVxuXG4uYm9yZGVyZWQge1xuICAgIEBleHRlbmQgJWJvcmRlcmVkO1xufVxuXG4uYm9yZGVyZWQtLWFsbCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi5ib3JkZXJlZC0tYm90dG9tIHtcbiAgICBAZXh0ZW5kICVib3JkZXJlZDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG5cbiAgICAmLmJvcmRlcmVkX19saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgfVxufVxuXG4uYm9yZGVyZWQtLXRvcCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xufVxuXG4uYm9yZGVyZWQtLWxlZnQge1xuICAgIEBleHRlbmQgJWJvcmRlcmVkO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG59XG5cbi5ib3JkZXJlZC0tcmlnaHQge1xuICAgIEBleHRlbmQgJWJvcmRlcmVkO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xufSIsImJvZHkge1xuICAgIC5idXR0b24sIGJ1dHRvbiB7XG4gICAgXHRAZXh0ZW5kIC5idXR0b24ucmFkaXVzO1xuICAgIH1cbn0iLCIkYnhzbGlkZXItY29udHJvbHMtc2l6ZTogJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kYnhzbGlkZXItY29udHJvbHMtYm9yZGVyLXNpemU6IDIgIWRlZmF1bHQ7XG4kYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcbiRieHNsaWRlci1jb250cm9scy1uYXZpZ2F0aW9uLXJhZGl1czogJGJ4c2xpZGVyLWNvbnRyb2xzLXNpemUvMiAhZGVmYXVsdDtcbiRieHNsaWRlci1jb250cm9scy1uYXZpZ2F0aW9uLWxvY2F0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmc6ICRjb250ZW50LWJnICFkZWZhdWx0O1xuJGJ4c2xpZGVyLW5hdi1hcnJvdy1zaXplOiByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG5cbi5ieC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5ieC1jb250cm9scy1kaXJlY3Rpb24gYSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0jeyRieHNsaWRlci1jb250cm9scy1zaXplLzJ9O1xuICAgIG91dGxpbmU6IDA7XG4gICAgd2lkdGg6ICRieHNsaWRlci1jb250cm9scy1zaXplO1xuICAgIGhlaWdodDogJGJ4c2xpZGVyLWNvbnRyb2xzLXNpemU7XG4gICAgdGV4dC1pbmRlbnQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgei1pbmRleDogMTAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcywgLXdlYmtpdC10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IGVhc2UsIDBzO1xuICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCAtbW96LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgLW8tdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCB0cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAkYnhzbGlkZXItY29udHJvbHMtbmF2aWdhdGlvbi1yYWRpdXMsIG1zIHNwZWMpO1xuICAgIGJvcmRlcjogI3skYnhzbGlkZXItY29udHJvbHMtYm9yZGVyLXNpemV9cHggc29saWQgI2ZmZjtcblxuICAgIC5zbGlkZXJfX3dpdGgtbmF2ICYge1xuICAgICAgICBtYXJnaW4tdG9wOiAtI3skYnhzbGlkZXItY29udHJvbHMtc2l6ZS8yICsgJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZS8yfTtcbiAgICB9XG4gICBcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRleHQtaW5kZW50IDIwMG1zIGVhc2UpO1xuICAgICAgICB3aWR0aDogJGJ4c2xpZGVyLWNvbnRyb2xzLXNpemU7XG4gICAgICAgIGZvbnQtc2l6ZTogJGJ4c2xpZGVyLW5hdi1hcnJvdy1zaXplO1xuICAgICAgICB0b3A6IC0jeyRieHNsaWRlci1jb250cm9scy1ib3JkZXItc2l6ZX1weDtcbiAgICAgICAgbGVmdDogLSN7JGJ4c2xpZGVyLWNvbnRyb2xzLWJvcmRlci1zaXplfXB4O1xuICAgICAgICB6LWluZGV4OiAxMDE7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8vIFJldmVyc2UgY29sb3JzXG5AaWYgbGlnaHRuZXNzKCRjb250ZW50LWJnKSA+IDUwJSB7XG4gICAgLmJ4LWNvbnRyb2xzLWRpcmVjdGlvbiBhIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIC40KTtcbiAgICAgICAgYm9yZGVyOiAjeyRieHNsaWRlci1jb250cm9scy1ib3JkZXItc2l6ZX1weCBzb2xpZCAjZmZmO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIC45KTtcbiAgICAgICAgfVxuICAgIH1cbn0gQGVsc2Uge1xuICAgIC5ieC1jb250cm9scy1kaXJlY3Rpb24gYSB7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LCAuMjUpO1xuICAgICAgICBib3JkZXI6ICN7JGJ4c2xpZGVyLWNvbnRyb2xzLWJvcmRlci1zaXplfXB4IHNvbGlkICMwMDA7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwgLjkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYngtbmV4dCB7XG4gICAgcmlnaHQ6ICN7JGNvbHVtbi1ndXR0ZXIvMn07XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItY2hldnJvbi1yaWdodCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWluZGVudDogM3B4O1xuICAgIH1cblxuICAgICY6aG92ZXI6YWZ0ZXIsXG4gICAgJjpmb2N1czphZnRlciB7XG4gICAgICAgIHRleHQtaW5kZW50OiA5cHg7XG4gICAgfVxuXG4gICAgJjphY3RpdmU6YWZ0ZXIge1xuICAgICAgICB0ZXh0LWluZGVudDogMDtcbiAgICB9XG5cbn1cblxuLmJ4LXByZXYge1xuICAgIGxlZnQ6ICN7JGNvbHVtbi1ndXR0ZXIvMn07XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItY2hldnJvbi1sZWZ0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtaW5kZW50OiAtM3B4O1xuICAgIH1cblxuICAgICY6aG92ZXI6YWZ0ZXIsXG4gICAgJjpmb2N1czphZnRlciB7XG4gICAgICAgIHRleHQtaW5kZW50OiAtOXB4O1xuICAgIH1cblxuICAgICY6YWN0aXZlOmFmdGVyIHtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgfVxufVxuXG4uYngtcGFnZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvLyBUbyBwcmV2ZW50IGxhcmdlIHBhaW50IGZyYW1lcyBvbiBjaHJvbWUgZm9yIC5ieC1wYWdlci1pdGVtXG4gICAgLy8gV2l0aG91dCB0aGlzIC5ieC1wYWdlci1pdGVtIGNvbnN1bWUgNS44TUIgaW5zdGVhZCBvZiA1LjhLQlxuICAgIG92ZXJmbG93OiBoaWRkZW47IFxufVxuXG4uYngtcGFnZXItaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmJ4LXBhZ2VyLWxpbmsge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6ICRieHNsaWRlci1idWxsZXQtbmF2LXNpemU7XG4gICAgd2lkdGg6ICRieHNsaWRlci1idWxsZXQtbmF2LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRieHNsaWRlci1idWxsZXQtbmF2LXNpemU7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogLjhyZW07XG4gICAgICAgIG9wYWNpdHk6IC4yNTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWJyaWdodG5lc3MtMSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRieHNsaWRlci1wYWdlci1saW5rLWJnO1xuICAgICAgICBAaWYgJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmcgIT0gdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgQGlmIGx1bWEoJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmcpIDwgNTAge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkYnhzbGlkZXItcGFnZXItbGluay1iZyk7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoIzAwMCwgJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJGNvbnRlbnQtYmcpO1xuICAgICAgICB9XG4gICAgICAgIGhlaWdodDogJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZTtcbiAgICAgICAgd2lkdGg6ICRieHNsaWRlci1idWxsZXQtbmF2LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oZm9udC1zaXplIDIwMG1zIGVhc2UpO1xuICAgIH1cblxuICAgICYuYWN0aXZlOmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogLjc1O1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxuXG4gICAgJjpob3ZlcjphZnRlcixcbiAgICAmOmZvY3VzOmFmdGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBAaWYgJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmcgIT0gdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkYnhzbGlkZXItcGFnZXItbGluay1iZyk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgIH1cbiAgICAgICAgb3BhY2l0eTogLjc1O1xuICAgIH1cbn1cblxuQGlmICRieHNsaWRlci1jb250cm9scy1uYXZpZ2F0aW9uLWxvY2F0aW9uID09IG91dHNpZGUge1xuICAgIEBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAgICAgLmJ4LXByZXYge1xuICAgICAgICAgICAgbGVmdDogLSN7JGJ4c2xpZGVyLWNvbnRyb2xzLXNpemUgKyAkY29sdW1uLWd1dHRlcn07XG4gICAgICAgIH1cblxuICAgICAgICAuYngtbmV4dCB7XG4gICAgICAgICAgICByaWdodDogLSN7JGJ4c2xpZGVyLWNvbnRyb2xzLXNpemUgKyAkY29sdW1uLWd1dHRlcn07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgfVxufSIsIiRjYXJ0LXN0eWxlOiBmdWxsICFkZWZhdWx0O1xuJGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJGNhcnQtcXVhbnRpdHktYmFkZ2UtcmFkaXVzOiA1MCUgIWRlZmF1bHQ7XG5cbkBpbXBvcnQgXCJjYXJ0LWJ1dHRvbi1mdWxsXCI7XG5AaW1wb3J0IFwiY2FydC1idXR0b24tc2ltcGxlXCI7XG5cbkBpZiAkY2FydC1zdHlsZSA9PSBmdWxsIHtcbiAgICBAaW5jbHVkZSBjYXJ0LWJ1dHRvbi1mdWxsKCk7XG59IEBlbHNlaWYgJGNhcnQtc3R5bGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBjYXJ0LWJ1dHRvbi1zaW1wbGUoKTtcbn1cbiIsIi8vIENhcnQgYnV0dG9uIHdpdGggcXVhbnRpdHksIHN1bSBhbmQgY2hlY2tvdXQgYnV0dG9uXG5cbkBtaXhpbiBjYXJ0LWJ1dHRvbi1mdWxsKCkge1xuICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHksXG4gICAgLmNhcnQtYnV0dG9uX19zdW0sXG4gICAgLmNhcnQtYnV0dG9uX19jdXJyZW5jeSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkY2FydC1xdWFudGl0eS1iYWRnZS1zaXplO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgaGVpZ2h0OiAkY2FydC1xdWFudGl0eS1iYWRnZS1zaXplO1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fc3VtLFxuICAgIC5jYXJ0LWJ1dHRvbl9fY3VycmVuY3kge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICBAZXh0ZW5kIC5jYWxsLXRvLWFjdGlvbi1jb2xvci1iZztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBAaW5jbHVkZSByYWRpdXMoJGNhcnQtcXVhbnRpdHktYmFkZ2UtcmFkaXVzKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aWR0aDogJGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZTtcblxuICAgICAgICAuY2FydC1idXR0b24tLWVtcHR5ICYge1xuICAgICAgICAgICAgQGV4dGVuZCAuc2Vjb25kYXJ5LWNvbG9yLWJnO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtYnV0dG9uOmhvdmVyICYsXG4gICAgICAgIC5jYXJ0LWJ1dHRvbi0taGlnaGxpZ2h0ZWQgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiAkaG92ZXItYmctdGV4dC1jb2xvcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggM3B4IHJnYmEoMCwgMCwgMCwgLjEpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMjAwbXMgZWFzZSk7XG4gICAgfVxuXG4gICAgLmljb24tbGFyZ2VyLXRoYW46YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1jaGV2cm9uLXJpZ2h0KTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTRweDtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b24ge1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzcpO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplKHJlbS1jYWxjKDEwKSk7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY2FsbC10by1hY3Rpb24tY29sb3IsIHRydWUpO1xuICAgICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkYnV0dG9uLXNpemU7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtaWNvbjpiZWZvcmUge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOXB4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uLS1lbXB0eSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgICAgLmNhcnQtYnV0dG9uX19zdW0sXG4gICAgICAgIC5jYXJ0LWJ1dHRvbl9fY3VycmVuY3ksXG4gICAgICAgIH4gLmNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FydF9faWNvbi1jYXJ0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjFyZW07XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX190ZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuY2FydF9faWNvbi1wcm9jZWRlICB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRzbWFsbC1wbHVzLXVwfSB7XG4gICAgICAgIC5jYXJ0LWJ1dHRvbl9fc3VtLFxuICAgICAgICAuY2FydC1idXR0b25fX2N1cnJlbmN5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn0iLCIkY2FydC1xdWFudGl0eS1iYWRnZS1vZmZzZXQ6IDRweDtcblxuQG1peGluIGNhcnQtYnV0dG9uLXNpbXBsZSgpIHtcblxuICAgIC5jYXJ0LWFuZC1jaGVja291dCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b25fX3F1YW50aXR5IHtcbiAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogLSN7JGNhcnQtcXVhbnRpdHktYmFkZ2Utb2Zmc2V0fTtcbiAgICAgICAgcmlnaHQ6IC0jeyRjYXJ0LXF1YW50aXR5LWJhZGdlLW9mZnNldH07XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRjYXJ0LXF1YW50aXR5LWJhZGdlLXNpemU7XG4gICAgICAgIGhlaWdodDogJGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZTtcbiAgICAgICAgQGluY2x1ZGUgcmFkaXVzKDApO1xuICAgICAgICBwYWRkaW5nOiAwIDRweDtcbiAgICAgICAgQGV4dGVuZCAuY2FsbC10by1hY3Rpb24tY29sb3ItYmc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBvcGFjaXR5OiAuOTtcblxuICAgICAgICAuY2FydC1idXR0b24tLWVtcHR5ICYge1xuICAgICAgICAgICAgQGV4dGVuZCAuc2Vjb25kYXJ5LWNvbG9yLWJnO1xuICAgICAgICAgICAgb3BhY2l0eTogLjk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FydC1idXR0b246aG92ZXIgJixcbiAgICAgICAgLmNhcnQtYnV0dG9uLS1oaWdobGlnaHRlZCAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6ICRob3Zlci1iZy10ZXh0LWNvbG9yO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDNweCAzcHggcmdiYSgwLCAwLCAwLCAuMSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAyMDBtcyBlYXNlKTtcbiAgICB9XG5cbiAgICAuaWNvbi1sYXJnZXItdGhhbjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWNoZXZyb24tcmlnaHQpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9faWNvbjpiZWZvcmUge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX190ZXh0LFxuICAgIC5jYXJ0LWJ1dHRvbl9fc3VtLFxuICAgIC5jYXJ0LWJ1dHRvbl9fY3VycmVuY3kge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5jYXJ0LWFuZC1jaGVja291dCAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn0iLCIkY2hlY2tvdXQtc21hbGwtc3BhY2luZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGNoZWNrb3V0LW1lZGl1bS1zcGFjaW5nOiByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG4kY2hlY2tvdXQtbGFyZ2Utc3BhY2luZzogcmVtLWNhbGMoNjkpICFkZWZhdWx0O1xuXG4kY2hlY2tvdXQtc3RlcHMtY29udGFpbmVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBpZiAoJGNoZWNrb3V0LXN0ZXBzLWNvbnRhaW5lci1yYWRpdXMgPiAwKSB7XG4gICAgJGNoZWNrb3V0LXN0ZXBzLWlubmVyLWNvbnRhaW5lci1yYWRpdXM6ICRjaGVja291dC1zdGVwcy1jb250YWluZXItcmFkaXVzIC0gMnB4O1xufSBAZWxzZSB7XG4gICAgJGNoZWNrb3V0LXN0ZXBzLWlubmVyLWNvbnRhaW5lci1yYWRpdXM6ICRjaGVja291dC1zdGVwcy1jb250YWluZXItcmFkaXVzO1xufVxuXG4kZWRpdC1zdGVwLWJ0bi1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8gVXNlIHJlZ3VsYXIgZ3JpZCBtYXJnaW5zIGZvciB0aGUgY2hlY2tvdXQgZm9ybSBncmlkXG4ja2Fzc2Vfb25lX2Zvcm0sXG4ja2Fzc2Vfb25lX2xvZ2dpbm4ge1xuICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjogbmVzdCk7XG5cbiAgICAgICAgLmNvbHVtbixcbiAgICAgICAgLmNvbHVtbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gWmVicmEgdGFibGUgc3R5bGluZ1xuI2thc3NlX29uZV9mb3JtIC56ZWJyYSB7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuI2thc3NlX29uZV9mb3JtIC56ZWJyYSB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXBzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hlY2tvdXQtc3RlcHMtYmc7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRjaGVja291dC1zdGVwcy1jb250YWluZXItcmFkaXVzO1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbn1cblxuLyogRU5JUk8gc2VhcmNoICovXG5cbiNlbmlyb19mZXRjaCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jZW5pcm9fb3B0aW9ucyxcbiNlbmlyb19tZXNzYWdlLFxuI2NsaWVudF9vcHRpb25zIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jZW5pcm9fbWVzc2FnZSB7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4jZW5pcm9fb3B0aW9ucyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogM3B4IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xufVxuXG4uY2FydC1jb250ZW50cyAubWluaS1pbWcge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuXG4ubWluaS1pbWcgaW1nIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBidXR0b25zICovXG5cbi5idXR0b24gLmFycm93IHtcbiAgICBwYWRkaW5nLWxlZnQ6IC40cmVtO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICBidXR0b24sXG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG5hLmRpYWxvZ190cmlnZ2VyLFxuYS5kaWFsb2dfdHJpZ2dlcjpsaW5rLFxuYS5kaWFsb2dfdHJpZ2dlcjp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgLmRpYWxvZy1wb3B1cCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICB9XG59XG5cbi5kaWFsb2ctcG9wdXAgaDIge1xuICAgIG1hcmdpbi10b3A6IDA7XG59XG5cbi5kaWFsb2ctcG9wdXAge1xuICAgIC5rYXNzZV9vbmVfbG9nZ2lubl9lcnJvciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgLmZvcm1fc3VibWl0IHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41ZW07XG4gICAgfVxuXG4gICAgLmZvcmdvdF9wYXNzd2Qge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG59XG5cbi5hZGRvbl9idXR0b25zIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1yaWdodDogJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmc7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG5cbiAgICAuZWRpdF9zdGVwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgICAgICYudG9nZ2xlZCAuaWNvbi1hZGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtMTM1ZGVnKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaWNvbi1hZGQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMS41cmVtO1xuICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAwLjNzIGVhc2UpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDBkZWcpKTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLm5leHQtc3RlcC1idG4ge1xuICAgICYuYnV0dG9uIHtcbiAgICAgICAgQGV4dGVuZCAlY29udGVudF9fcHJpbWFyeS1jb2xvci1iZztcbiAgICB9XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuNWVtO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdGVwICNjbGllbnRfZmV0Y2gge1xuICAgIEBleHRlbmQgJWNvbnRlbnRfX3ByaW1hcnktY29sb3ItYmc7XG59XG5cbi5lZGl0X3N0ZXAsXG4ubWFya2VyX2VkaXRfc3RlcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZzogMCAuNWVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRlZGl0LXN0ZXAtYnV0dG9uLWJnO1xuICAgIGNvbG9yOiAkZWRpdC1zdGVwLWJ1dHRvbi10ZXh0LWNvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkZWRpdC1zdGVwLWJ0bi1ib3JkZXItcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLnBsdXMtaWNvbiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5lZGl0X3N0ZXA6bGluayxcbi5lZGl0X3N0ZXA6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRlZGl0LXN0ZXAtYnV0dG9uLXRleHQtY29sb3I7XG59XG5cbi5jaGVja291dCB7XG4gICAgLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZTpob3ZlciAuZWRpdF9zdGVwLFxuICAgIC5jaGVja291dF9fc3RlcC0taW5hY3RpdmUgLmVkaXRfc3RlcDpmb2N1cyxcbiAgICAuZWRpdF9zdGVwOmhvdmVyLFxuICAgIC5lZGl0X3N0ZXA6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZWRpdC1zdGVwLWhvdmVyLWJnO1xuICAgICAgICBjb2xvcjogJGVkaXQtc3RlcC1ob3Zlci10ZXh0LWNvbG9yO1xuICAgIH1cbn1cblxuLmVkaXRfc3RlcDpob3ZlciAucGx1cy1pY29uIHtcbiAgICBjb2xvcjogJGVkaXQtc3RlcC1ob3Zlci10ZXh0LWNvbG9yO1xufVxuXG4uZWRpdF9zdGVwIHtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbWFyZ2luOiAxOXB4ICRjaGVja291dC1zbWFsbC1zcGFjaW5nIDAgMDtcbn1cblxuLm1hcmtlcl9lZGl0X3N0ZXAge1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IC00cHg7XG59XG5cbiNwcm9ncmVzcy1saXN0IC5jb21wbGV0ZSAubWFya2VyX2VkaXRfc3RlcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiBub25lO1xufVxuXG5pbnB1dC5jaGVja291dF9fcXR5IHtcbiAgICB3aWR0aDogM3JlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi8vIFVwZGF0ZSBjYXJ0IGJ1dHRvblxuXG4uY2hlY2tvdXRfX3VwZGF0ZS1jYXJ0LWJ0biB7XG4gICAgLmNoZWNrb3V0X191cGRhdGUtY2FydC1idG5fX3VwZGF0ZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3VwZGF0ZS1jYXJ0LWJ0bl9fbG9hZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3VwZGF0ZS1jYXJ0LWJ0bjpkaXNhYmxlZCB7XG4gICAgLmNoZWNrb3V0X191cGRhdGUtY2FydC1idG5fX3VwZGF0ZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X191cGRhdGUtY2FydC1idG5fX2xvYWRpbmcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxufVxuXG4vLyBVcGRhdGUgY2FydCBidXR0b24gYW5pbWF0aW9uXG4uZWxsaXBzaXNfb25lLFxuLmVsbGlwc2lzX3R3byxcbi5lbGxpcHNpc190aHJlZSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgb3BhY2l0eTogMDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24oZWxsaXBzaXMgMC45cyBpbmZpbml0ZSk7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDBzKTtcbn1cblxuLmVsbGlwc2lzX3R3byB7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuMnMpO1xufVxuXG4uZWxsaXBzaXNfdGhyZWUge1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjNzKTtcbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGVsbGlwc2lzKSB7XG4gICAgICAwJSB7IG9wYWNpdHk6IDA7IH1cbiAgICAgNTAlIHsgb3BhY2l0eTogMDsgfVxuICAgIDEwMCUgeyBvcGFjaXR5OiAxOyB9XG59XG5cbi5kaWFsb2ctcG9wdXAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLmRpYWxvZy1wb3B1cCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5tc2dib3gge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcGFkZGluZzogMWVtIDFlbSAxZW0gMWVtO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtc2dib3gtYmc7XG4gICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAkbXNnYm94LWJvcmRlci1jb2xvcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMmVtIDAgMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLm1zZ2JveF9fY2xvc2Uge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIxKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJG1zZ2JveC1jbG9zZS10ZXh0LWNvbG9yO1xuICAgIHRleHQtc2hhZG93OiAwIDFweCAwICRtc2dib3gtY2xvc2Utc2hhZG93LWNvbG9yO1xuICAgIG9wYWNpdHk6IDAuMjtcbiAgICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG5cbi5jaGVja291dF9fc3RlcCB7XG4gICAgcGFkZGluZy10b3A6IC41ZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICAgYmFja2dyb3VuZDogJGNvbnRlbnQtYmc7XG59XG5cbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUge1xuICAgIHBhZGRpbmctdG9wOiAwO1xufVxuXG4janMtY2hlY2tvdXRzdGVwX19vdmVydmlldyAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4janMtY2hlY2tvdXRzdGVwX19vdmVydmlldyxcbiNqcy1jaGVja291dHN0ZXBfX3BheW1ldGhvZCB7XG4gICAgLmpzLXRvZ2dsZS12aXNpYmlsaXR5LmVkaXRfc3RlcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N0ZXAge1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkY2hlY2tvdXQtc3RlcHMtaW5uZXItY29udGFpbmVyLXJhZGl1cyAkY2hlY2tvdXQtc3RlcHMtaW5uZXItY29udGFpbmVyLXJhZGl1cyAwIDA7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwICRjaGVja291dC1zdGVwcy1pbm5lci1jb250YWluZXItcmFkaXVzICRjaGVja291dC1zdGVwcy1pbm5lci1jb250YWluZXItcmFkaXVzO1xuICAgIH1cbn1cblxuXG4vKiBJbmFjdGl2ZSBzdGVwIHN0eWxlcyAqL1xuXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kOiAkY2hlY2tvdXQtc3RlcC1pbmFjdGl2ZS1iZztcbn1cblxuLmNoZWNrb3V0X19zdGVwX19taXJyb3IsXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlIC5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUudmFsaWQgLmNoZWNrb3V0X19zdGVwX19taXJyb3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4janMtY2hlY2tvdXRzdGVwX19hZGRyZXNzIHtcbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgfVxuICAgIC5jaGVja291dF9fc3RlcF9fbWlycm9yIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgIHBhZGRpbmc6IDAgJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmc7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbiNrYXNzZV9vbmVfbG9naW5fcXVlc3Rpb24sXG4jd2VsY29tZV9tc2csXG4jd2VsY29tZV9tc2ctLXRydWUge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG59XG5cbiNrYXNzZV9vbmVfbG9naW5fcXVlc3Rpb24gcC5zdWJ0bGUge1xuICAgIG1hcmdpbi10b3A6IDA7XG59XG5cbi5rYXNzZV9vbmVfbG9nZ2lubl9lcnJvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSBoMiB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgY29sb3I6IHJnYmEoJGNvbnRlbnQtdGV4dC1jb2xvciwgMC44KTtcbn1cblxuLmNoZWNrb3V0X19zdGVwX19taXJyb3Ige1xuICAgIGNvbG9yOiAjODg4O1xuICAgIHBhZGRpbmc6IDAgJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmcgMS41ZW0gJGNoZWNrb3V0LWxhcmdlLXNwYWNpbmc7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuXG4gICAgaDMge1xuICAgICAgICBtYXJnaW46IDAgMCAuNWVtIDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG59XG5cbi5taXJyb3JfX2ZpcnN0LW5hbWUsXG4ubWlycm9yX19sYXN0LW5hbWUsXG4ubWlycm9yX196aXAsXG4ubWlycm9yX19jaXR5IHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cblxuLyogZW5kIGluYWN0aXZlIHN0ZXAgc3R5bGVzICovXG5cbi8qIGZyZWlnaHQgb3B0aW9ucyAqL1xuXG4uZnJlaWdodC1vcHRpb25zLFxuLnBheW1lbnQtb3B0aW9ucyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbiAgICAuZnJlaWdodC1vcHRpb24sXG4gICAgLnBheW1lbnQtb3B0aW9uIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgQGV4dGVuZCAuYm9yZGVyZWQtLWJvdHRvbTtcbiAgICAgICAgQGV4dGVuZCAlY29udGVudF9fYm9yZGVyZWQ7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGF5bWVudC1vcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMWVtIDAgMWVtIDA7XG5cbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnBheW1lbnQtb3B0aW9uX19wcmljZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYudGVzdCB7XG4gICAgICAgICAgICAucGF5bWVudC1vcHRpb25fX25hbWU6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLXdhcm5pbmcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYWxlcnQtY29sb3IsICRjb250ZW50LWJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mcmVpZ2h0LW9wdGlvbiB7XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAxZW0gNXB4IDFlbSAkY2hlY2tvdXQtbWVkaXVtLXNwYWNpbmc7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9cmFkaW9dIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZyZWlnaHQtb3B0aW9uX19uYW1lIHtcbiAgICAgICAgd2lkdGg6IDYyJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC5mcmVpZ2h0LW9wdGlvbl9fcHJpY2Uge1xuICAgICAgICB3aWR0aDogMjklO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC5mcmVpZ2h0LW9wdGlvbl9fZGVzYyxcbiAgICAucGF5bWVudC1vcHRpb25fX2Rlc2MsXG4gICAgLmF0dHJpYnV0ZSB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoIzk5OSwgJGNvbnRlbnQtYmcsIDIpO1xuICAgICAgICBwYWRkaW5nOiAuNWVtIDgwcHggLjVlbSAzcHg7XG4gICAgfVxuXG4gICAgLmZyZWlnaHQtb3B0aW9uX19kZXNjIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYXR0cmlidXRlIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAucGF5bWVudC1vcHRpb25fX25hbWUge1xuICAgICAgICB3aWR0aDogNDAlO1xuICAgIH1cblxuICAgIC5wYXltZW50LW9wdGlvbl9faW5wdXQtd3JhcCB7XG4gICAgICAgIHdpZHRoOiAkY2hlY2tvdXQtbWVkaXVtLXNwYWNpbmc7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuXG4gICAgICAgIC5yZW1vdmVfZ2lmdGNhcmQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBheW1lbnQtb3B0aW9uX19wcmljZSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgfVxuXG4vKiBlbmQgZnJlaWdodCBvcHRpb25zICovXG5cblxuLyogZWRpdCBzdGVwIGJ1dHRvbiAqL1xuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZS52YWxpZCAuZWRpdF9zdGVwIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmlzLXRvZ2dsZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmthc3NlX21haW4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4uY2hlY2tvdXRfX3N0ZXBfX2hlYWRsaW5lIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgbWFyZ2luOiAxNnB4IDA7XG4gICAgcGFkZGluZzogMCAxMHB4IDAgMDtcbiAgICBjbGVhcjogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlIHtcbiAgICAmLnZhbGlkIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIC5rYXNzZV9vbmVfc3RlcF9udW1iZXIge1xuICAgICAgICAgICAgQGV4dGVuZCAlY29udGVudF9fcHJpbWFyeS1jb2xvci1iZztcbiAgICAgICAgfVxuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4ua2Fzc2Vfb25lX3N0ZXBfbnVtYmVyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzdGVwLW51bWJlci1iZztcbiAgICBtYXJnaW46IDE2cHggJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmcgOHB4ICRjaGVja291dC1zbWFsbC1zcGFjaW5nO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICRzdGVwLW51bWJlci10ZXh0LWNvbG9yO1xufVxuXG5idXR0b24ucmVtb3ZlX2dpZnRjYXJkLFxuYnV0dG9uLnJlbW92ZV9yYWJhdHQge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW4tbGVmdDogLjVlbTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZzogMDtcblxuICAgICYsXG4gICAgJjpsaW5rLFxuICAgICY6dmlzaXRlZCxcbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGFsZXJ0LWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLmthc3NlX29uZV9zdGVwX251bWJlci0taW5mbyB7XG4gICAgZm9udC1mYW1pbHk6IEdlb3JnaWEsICdUaW1lcyBOZXcgUm9tYW4nLCBUaW1lcywgc2VyaWY7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ja2Fzc2Vfb25lX2Zvcm0gbGFiZWwuZXJyb3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbG9yOiAjYjk0YTQ4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjVlbTtcbn1cblxuI2thc3NlX29uZV9wb3B1cF9hcmVhIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6MzIwcHg7XG4gICAgLypoZWlnaHQ6ICAgMTU1cHg7Ki9cbiAgICBwYWRkaW5nOjE1cHg7XG4gICAgbWFyZ2luOjFlbSAwIDAgMDtcbiAgICBjb2xvcjojMDAwO1xuICAgIGJhY2tncm91bmQ6I2ZmZmZmZjsgLyogZGVmYXVsdCBiYWNrZ3JvdW5kIGZvciBicm93c2VycyB3aXRob3V0IGdyYWRpZW50IHN1cHBvcnQgKi9cbiAgICAvKiBjc3MzICovXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KCNmZmYsICNmMWYxZjEpO1xuICAgIGJvcmRlci1yYWRpdXM6MTBweDtcbiAgICBib3JkZXItc3R5bGU6c29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOjFweDtcbiAgICBib3JkZXItY29sb3I6I2NiY2JjYjtcbn1cblxuI2thc3NlX29uZV9wb3B1cCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTAyO1xufVxuXG4ja2Fzc2Vfb25lX3BvcHVwX2FyZWEgc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5mcmFrdF93cmFwcGVyLFxuLnBheW1lbnRfd3JhcHBlcixcbi5wYXltZW50X3dyYXBwZXIgPiBsYWJlbC5lcnJvcixcbi5mcmFrdF93cmFwcGVyID4gbGFiZWwuZXJyb3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cblxuI2thc3NlX29uZV9vcmRyZV9vdmVyc2lrdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG5cbiAgICB0cjpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLnN1YnRsZSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4ja2Fzc2Vfb25lX2Zvcm0gLnN1YnRheGVzIHtcbiAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbiN3ZWxjb21lX21zZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmhhc1BsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2JiYjtcbn1cblxuLm1pbmktaW1nIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxubGFiZWxbZm9yPVwia2pvcHNiZXRcIl0gYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IGhlbHA7XG4gICAgfVxufVxuXG5sYWJlbFtmb3I9XCJram9wc2JldFwiXSBhIGIge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbnRhYmxlLmxpbmVkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIHBhZGRpbmc6IDVweCA3cHg7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IGRvdHRlZCAkdGFibGUtc3VidGxlLWJvcmRlci1jb2xvcjtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhlYWQgdGgge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICB0Ym9keSB7XG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQgJHRhYmxlLXN1YnRsZS1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGZvb3Qge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLnN1bSB0ZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAzcHggZG91YmxlICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG59XG5cbi5jb250cm9sLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogMTIpO1xuXG4gICAgLnJvdy5jb2xsYXBzZSA+ICYge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N1bS10b28tc21hbGxfX2Vycm9ybXNnIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgLmNoZWNrb3V0X19zdW0tdG9vLXNtYWxsICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3VtLXRvby1zbWFsbCB7XG4gICAgLmNoZWNrb3V0X19zdW0tdG9vLXNtYWxsX19lcnJvcm1zZyB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQtY29sb3I7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy11cH0ge1xuICAgIC5jb250cm9sLWdyb3VwIHtcbiAgICAgICAgd2lkdGg6IGdyaWQtY2FsYygxMCwgJHRvdGFsLWNvbHVtbnMpO1xuICAgIH1cblxuICAgIC5hZGRvbl9idXR0b25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBjbGVhcjogcmlnaHQ7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLmFkZG9uX2J1dHRvbnMge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY2hlY2tvdXQtbWVkaXVtLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLmNhcnQtY29udGVudHMgLm1pbmktaW1nIHtcbiAgICAgICAgcGFkZGluZzogNXB4IDdweDtcbiAgICB9XG5cbiAgICAubWluaS1pbWcgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGNoZWNrb3V0LW1lZGl1bS1zcGFjaW5nIDAgJGNoZWNrb3V0LWxhcmdlLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLmNvbnRyb2wtZ3JvdXAge1xuICAgICAgICB3aWR0aDogZ3JpZC1jYWxjKDEyLCAkdG90YWwtY29sdW1ucyk7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0LWxvZ2luIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgICAgIC5uZXh0LXN0ZXAtYnRuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplO1xuICAgICAgICAgICAgLmFycm93IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19taXJyb3Ige1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjaGVja291dC1sYXJnZS1zcGFjaW5nO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY2hlY2tvdXQtbWVkaXVtLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgI2pzLWNoZWNrb3V0c3RlcF9fYWRkcmVzcy5jaGVja291dF9fc3RlcC0taW5hY3RpdmUudmFsaWQge1xuICAgICAgICAuY2hlY2tvdXRfX3N0ZXBfX21pcnJvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9fbWlycm9yX19hZGRyZXNzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuZnJlaWdodC1vcHRpb24ge1xuICAgICAgICBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMjJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIC5jaGVja291dF9fc3RlcF9fY29udGVudHMsXG4gICAgLmNoZWNrb3V0X19zdGVwX19taXJyb3IsXG4gICAgLmFkZG9uX2J1dHRvbnMge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY2hlY2tvdXQtbGFyZ2Utc3BhY2luZztcbiAgICB9XG59IiwiQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9yZXZlYWxcIjtcbi8vQGltcG9ydCBcInF1aWNrZml4L2Z1bmN0aW9ucy9zYXNzLXN2Z1wiOyB0aGlzIGRvZXMgbm90IHdvcmsgb24gc2Fzc2Mgb24gb3VyIHNlcnZlciwgdXNlIGl0IHdoZW4geW91IG5lZWQgdG8gY2hhbmdlIHRoZSBiYXNlNjQgc3RyaW5nIGJ5IGhhbmRcblxuJGNoZWNrb3V0LWtjby1mb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgJ094eWdlbicsICdVYnVudHUnLCAnQ2FudGFyZWxsJywgJ0ZpcmEgU2FucycsICdEcm9pZCBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nOiAuNXJlbSAuNzVyZW0gIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLXF0eS1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLXJvdy1oZWlnaHQ6ICRjaGVja291dC1rY28tcXR5LWhlaWdodCArIG50aCgkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZywgMSkgKiAyO1xuJGNoZWNrb3V0LWtjby1jYXJ0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1jYXJ0LWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLWF0dHJpYnV0ZS1mbGFnLXNpemU6IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcblxuJGNoZWNrb3V0LWtjby1rbGFybmEtZm9jdXMtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCMwMDg5Y2YsICRjb250ZW50LWJnKSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tdGh1bWItaGVpZ2h0OiAkY2hlY2tvdXQta2NvLWNhcnQtZm9udC1zaXplICogJGNoZWNrb3V0LWtjby1jYXJ0LWxpbmUtaGVpZ2h0ICsgbnRoKCRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nLCAxKSAqIDI7XG4kY2hlY2tvdXQta2NvLXRyYW5zaXRpb24tZHVyYXRpb246IDYwMG1zICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tb3ZlcmxheS1iZzogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJGNvbnRlbnQtYmcsIDUpLCAwLjUpICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1vdmVybGF5LWNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjaGVja291dC1rY28tb3ZlcmxheS1iZywgJGNoZWNrb3V0LWtjby1vdmVybGF5LWJnLCAyMSksIDEpICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1ib3JkZXItY29sb3I6IHJnYmEoJGNvbnRlbnQtdGV4dC1jb2xvciwgMC4yKSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tZGlzY291bnRfX3JhdGVfc3R5bGU6ICd0cmFuc3BhcmVudCcgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLWFjdGl2ZS1ib3JkZXItY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZykgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLXJhZGlvLXNpemU6IDE0cHggIWRlZmF1bHQ7XG5cbi8vIFJlYWwgY2VsbCBwYWRkaW5nOiBTaXplIG9mIHRoZSBiaWdnZXN0IGVsZW1lbnQgcGx1cyBjZWxsIHBhZGRpbmcgbWludXMgYm9yZGVyIHNpemUsIG1pbnVzIHNpemUgb2YgdGV4dCwgZGl2aWRlZCBieSB0d29cbiRjaGVja291dC1rY28tcmVhbC1jZWxsLXBhZGRpbmc6ICgkY2hlY2tvdXQta2NvLXF0eS1oZWlnaHQgKyBudGgoJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmcsIDEpICogMiAtIHJlbS1jYWxjKDIpIC0gJGNoZWNrb3V0LWtjby1jYXJ0LWZvbnQtc2l6ZSAqICRjaGVja291dC1rY28tY2FydC1saW5lLWhlaWdodCkvMiBudGgoJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmcsIDIpIC0gcmVtLWNhbGMoMSk7XG5cbi8vIFZhcmlhYmxlcyB1c2VkIHRvIGNvbXBlbnNhdGUgZm9yIHBhZGRpbmcvbWFyZ2luIGluc2lkZSBLQ08gaWZyYW1lXG4ka2NvLXBhZGRpbmc6IDIwcHggMTJweCAyMHB4IDEycHg7XG4ka2NvLW1heC13aWR0aDogNjQwcHg7XG5cblxuJHNlbGVjdC1pbnB1dC1iZzogJHNlbGVjdC1iZy1jb2xvciAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtYm9yZGVyLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuJHNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtY29sb3I6ICRpbnB1dC1mb250LWNvbG9yO1xuJHNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtYmc6ICRzZWxlY3QtYmctY29sb3I7XG4kc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJHNlbGVjdC1pbnB1dC1iZywgMikgIWRlZmF1bHQ7XG4kc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSh3aGl0ZSwgJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1iZywgMyk7XG4kc2VsZWN0LWlucHV0LWJvcmRlci13aWR0aDogMHB4O1xuXG5AaW1wb3J0IFwicXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3RcIjtcblxuQG1peGluIGFjdGl2aXR5LWluZGljYXRvcigkYWN0aXZpdHktY29sb3I6ICRjb250ZW50LWJnLCAkYWN0aXZpdHktYmc6ICRhY3Rpdml0eS1jb2xvcikge1xuXG4gICAgLyogV2UgY2Fubm90IHJ1biB0aGlzIHVzaW5nIHNhc3NjIHlldFxuICAgIEBpbmNsdWRlIHN2ZygoXG4gICAgICAgIHZpZXdCb3g6IDAgMCAyNCAyNFxuICAgICAgKSkge1xuICAgICAgICBAaW5jbHVkZSBzdmcoJ2RlZnMnKSB7XG4gICAgICAgICAgQGluY2x1ZGUgc3ZnKCdyYWRpYWxHcmFkaWVudCcsIChcbiAgICAgICAgICAgIGN4OiAnMjUlJyxcbiAgICAgICAgICAgIGN5OiAnMjUlJyxcbiAgICAgICAgICAgIGlkOiAnYSdcbiAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3ZnKCdzdG9wJywgKFxuICAgICAgICAgICAgICAgICAgc3RvcC1jb2xvcjogJGFjdGl2aXR5LWNvbG9yLFxuICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAnMTAlJ1xuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHN2Zygnc3RvcCcsIChcbiAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3I6ICRhY3Rpdml0eS1jb2xvcixcbiAgICAgICAgICAgICAgICAgIHN0b3Atb3BhY2l0eTogMC4xLFxuICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAnMTAwJSdcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIHN2ZygnY2lyY2xlJywgKFxuICAgICAgICAgICAgZmlsbDogbm9uZSxcbiAgICAgICAgICAgIGN4OiAxMixcbiAgICAgICAgICAgIGN5OiAxMixcbiAgICAgICAgICAgIHI6IDEwLFxuICAgICAgICAgICAgLy9zdHJva2Utd2lkdGg6IDIsXG4gICAgICAgICAgICBzdHJva2U6IFwidXJsKCNhKVwiXG4gICAgICAgICkpO1xuICAgICAgfVxuICAgICAgLy8qL1xuICAgICAgJGNvbG9yOiBzdHItc2xpY2UoaWUtaGV4LXN0cigkYWN0aXZpdHktY29sb3IpLCA0KTtcbiAgICAgICRiZzogc3RyLXNsaWNlKGllLWhleC1zdHIoJGFjdGl2aXR5LWJnKSwgNCk7XG4gICAgICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3clMkV3MyUyRW9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NkZWZzJTIwJTNFJTNDcmFkaWFsR3JhZGllbnQlMjBjeCUzRCUyMjI1JTI1JTIyJTIwY3klM0QlMjIyNSUyNSUyMiUyMGlkJTNEJTIyYSUyMiUzRSUzQ3N0b3AlMjBzdG9wJTJEY29sb3IlM0QlMjIlMjMjeyRjb2xvcn0lMjIlMjBvZmZzZXQlM0QlMjIxMCUyNSUyMiUyRiUzRSUzQ3N0b3AlMjBzdG9wJTJEY29sb3IlM0QlMjIlMjMjeyRiZ30lMjIlMjBzdG9wJTJEb3BhY2l0eSUzRCUyMjAlMkUxJTIyJTIwb2Zmc2V0JTNEJTIyMTAwJTI1JTIyJTJGJTNFJTNDJTJGcmFkaWFsR3JhZGllbnQlM0UlM0MlMkZkZWZzJTNFJTNDY2lyY2xlJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBjeCUzRCUyMjEyJTIyJTIwY3klM0QlMjIxMiUyMiUyMHIlM0QlMjIxMCUyMiUyMHN0cm9rZSUzRCUyMnVybCUyOCUyM2ElMjklMjIlMkYlM0UlM0MlMkZzdmclM0VcIik7XG59XG5cbiV0YWJ1bGFyLW51bXMge1xuICAgIC8vIHRhYnVsYXIgbnVtYmVyIHNwYWNpbmcgbWFrZXMgbnVtYmVycyBlYXNpZXIgdG8gcmVhZCBpbiB0YWJsZXNcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgIC1tb3otZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInRudW1cIjtcbiAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCI7XG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInRudW1cIjtcbn1cblxuJWRlY29yYXRlZC1yYWRpbyB7XG4gICAgJGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcuJztcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtKCRjaGVja291dC1rY28tcmFkaW8tc2l6ZS8yKTtcbiAgICAgICAgICAgIGxlZnQ6IC0oKCgkY29sdW1uLWd1dHRlcikgKyByZW0tY2FsYygkY2hlY2tvdXQta2NvLXJhZGlvLXNpemUpKS8yKTtcbiAgICAgICAgICAgIHdpZHRoOiAkY2hlY2tvdXQta2NvLXJhZGlvLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjaGVja291dC1rY28tcmFkaW8tc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMDBweDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGN1YmljLWJlemllcigwLjY1LCAwLjA1LCAwLjM2LCAxKSk7XG4gICAgICAgIH1cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuOCkpO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBibGFjayAwIDAgMXB4LCBpbnNldCBibGFjayAwIDAgMXB4O1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIHNwYW4ge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSkpO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuNCkpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaHNsYSgwLCAwJSwgMCUsIDApIDAgMCAxcHgsIGluc2V0IGhzbGEoMCwgMCUsIDAlLCAwKSAwIDAgMXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXVtkaXNhYmxlZF0gKyBzcGFuICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoZ3JheXNjYWxlKCRjb2xvciksIHdoaXRlKTtcbiAgICB9XG59XG5cbmZvcm06aW52YWxpZCB7XG4gICAgLmpzLWthc3NlLW9uZS1zdWJtaXQge1xuICAgICAgICAkYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGdyYXksICRjb250ZW50LWJnKTtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGdyYXksICRiZyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgICAgICAgLyogSUUvRWRnZSAqL1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdGVwLS1zaGlwcGluZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG59XG4uZnJlaWdodC0tcGlja3VwLXBvaW50IHtcbiAgICBjbGVhcjogYm90aDtcbn1cbi5TZWxlY3QtY29udHJvbCB7XG4gICAgLy8gQFRPRE8gcmV1c2Ugb3VyIHZhcmlhYmxlcyBzbyBpdCB3b3JrcyBpbiBhbGwgdGhlbWVzIGFuZCBhbnkgY29uZmlnIGxpa2UgPHNlbGVjdD5cbiAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMXB4O1xuICAgIG1hcmdpbi1yaWdodDogMXB4O1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1ib3JkZXItY29sb3IgMCAwIDAgMXB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJveC1zaGFkb3c6ICRpbnB1dC1ib3JkZXItY29sb3IgMCAwIDAgMXB4LCBoc2xhKDAsIDAlLCAwJSwgLjEpIDAgNXB4IDEwcHg7XG4gICAgfVxufVxuLlNlbGVjdC1vcHRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjZlbTtcbn1cbi5TZWxlY3Qtb3B0aW9uLmlzLXNlbGVjdGVkOmJlZm9yZSB7XG4gICAgY29udGVudDogJ+Kckyc7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHJlbS1jYWxjKDhweCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEuNmVtO1xufVxuLlNlbGVjdC1vcHRpb24uaXMtc2VsZWN0ZWQ6aG92ZXIge1xuICAgIGNvbG9yOiAkc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtYmc7XG59XG4uU2VsZWN0LW1lbnUtb3V0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG59XG4uU2VsZWN0LW1lbnUge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1ib3JkZXItY29sb3IgMCAwIDAgMXB4LCBoc2xhKDAsIDAlLCAwJSwgLjEpIDAgNXB4IDEwcHg7XG59XG5cbi5jaGVja291dC0ta2NvIC5qcy1hdHRhY2hfY29tbWVudCB7XG5cbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWFkZCk7XG4gICAgfVxufVxuXG4ja2xhcm5hLWNoZWNrb3V0LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogJGtjby1tYXgtd2lkdGggKyBudGgoJGtjby1wYWRkaW5nLCAyKSArIG50aCgka2NvLXBhZGRpbmcsIDQpOyAvLyBtYXggd2lkdGggKyBzaWRlIHBhZGRpbmdzXG4gICAgQGlmICRjb250ZW50LWJnICE9ICNmZmYge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIH1cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgLy8ga2xhcm5hcyBpZnJhbWUgaXMgYWx3YXlzIHdoaXRlXG59XG5cbi5jaGVja291dC0ta2NvX19vdmVybGF5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJGNvbnRlbnQtYmcpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICAmLCAmICsgKiB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oNTAlIDAlKTtcbiAgICB9XG5cbiAgICBlbSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKDEwKTtcbiAgICB9XG59XG5cbi5mcmVpZ2h0LW9wdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggcmdiYSgkY2hlY2tvdXQta2NvLWFjdGl2ZS1ib3JkZXItY29sb3IsIDAuNikgc29saWQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLSgkY29sdW1uLWd1dHRlci80KTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogLSgkY29sdW1uLWd1dHRlci84KTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlWCgwLjk4KSBzY2FsZVkoMC44KSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGN1YmljLWJlemllcigwLjY1LCAwLjA1LCAwLjM2LCAxKSk7XG4gICAgfVxuICAgICYuYWN0aXZlIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZVgoMSkgc2NhbGVZKDEpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICA+IGxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBAZXh0ZW5kICVkZWNvcmF0ZWQtcmFkaW87XG4gICAgfVxuICAgICYuaW5hY3RpdmUge1xuICAgICAgICA+ICoge1xuICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICB9XG4gICAgfVxufVxuLmtjb19zaGlwcGluZ19zaG93X21vcmVfb3B0aW9ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIHBhZGRpbmctYm90dG9tOiAuNXJlbTtcbiAgICBwYWRkaW5nLXRvcDogLjc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xufVxuXG4uY2hlY2tvdXQtLWtjb19fcGF5bWVudC1vcHRpb25zLCAuY3VzdG9tZXItdHlwZSB7XG4gICAgLmNvbnRyb2wtZ3JvdXAge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4ycmVtO1xuICAgICAgICBib3gtc2hhZG93LWJvdHRvbTogMCAxcHggMCAkY2hlY2tvdXQta2NvLWJvcmRlci1jb2xvcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTUwbXMgZWFzZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG4gICAgICAgIDpjaGVja2VkICsgbGFiZWwge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBPdmVycmlkZSBzdHVwaWQgaGFyZGNvZGVkIEZvdW5kYXRpb24gc3R5bGluZ1xuLnJldmVhbC1tb2RhbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMTZweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29udGVudC1iZztcblxuICAgIC5jbG9zZS1yZXZlYWwtbW9kYWwge1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtYmcsICRjb250ZW50LWJnKTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2YwMCwgJGNvbnRlbnQtYmcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICBtaW4taGVpZ2h0OiBpbml0aWFsIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5jaGVja291dC0ta2NvX19wYWdlLWhlYWRlciB7XG4gICAgZm9udC1mYW1pbHk6ICRjaGVja291dC1rY28tZm9udC1mYW1pbHk7XG59XG5cbi5jaGVja291dC0ta2NvX19jdXN0b20taW50cm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gICAgQGV4dGVuZCAuYm9yZGVyZWQ7XG4gICAgQGV4dGVuZCAuYm9yZGVyZWQtLWJvdHRvbTtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG59XG5cbi5jaGVja291dC0ta2NvIHtcbiAgICBmb250LWZhbWlseTogJGNoZWNrb3V0LWtjby1mb250LWZhbWlseTtcblxuICAgIC5wcmljZS1kaWZmIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAuY3VycmVudC1wcmljZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3BhY2l0eTogMC43NTtcbiAgICB9XG4gICAgLnBlbmRpbmctcHJpY2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICAgIGhlaWdodDogMWVtO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9faGVhZGxpbmUge1xuICAgICAgICBmb250LWZhbWlseTogJGNoZWNrb3V0LWtjby1mb250LWZhbWlseTtcbiAgICB9XG5cbiAgICAmLmNoZWNrb3V0X19zdGVwcyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgQGV4dGVuZCAuYm9yZGVyZWQ7XG4gICAgICAgIEBleHRlbmQgLmJvcmRlcmVkLS1ib3R0b207XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja291dF9fYm90dG9tLXRvb2xiYXIgPiAuY29sdW1ucyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9faGVhZGxpbmUge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMCAwIC41cmVtIDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAuNXJlbSAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLmthc3NlX29uZV9zdGVwX251bWJlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmFkZG9uX2J1dHRvbnMge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgLmVkaXRfc3RlcCB7XG4gICAgICAgICAgICAkYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWNvbmRhcnktY29sb3IsICRjb250ZW50LWJnLCAxLjIpO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3IsICRjb250ZW50LWJnKTtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2Vjb25kYXJ5LWNvbG9yLCAkYmcsIDYpO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgZWFzZSk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICRiZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlY29uZGFyeS1jb2xvciwgJGNvbnRlbnQtYmcsIDIpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlY29uZGFyeS1jb2xvciwgJGJnLCA2KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBcHBseSB0aGUgS0NPIHN0eWxpbmcsIHRvIG1ha2UgdGhpbmdzIGFwcGVhciBsaWtlIEtDT1xuICAgIC5jaGVja291dC1rY29fX2FkZHJlc3MtZm9ybSB7XG4gICAgICAgIGlucHV0LCBidXR0b24sIHNlbGVjdCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIH1cbiAgICAgICAgLmNoZWNrb3V0LS1rY29fX3NoaXBwaW5nLWNvdW50cnkge1xuICAgICAgICAgICAgc2VsZWN0W2Rpc2FibGVkXSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbixcbiAgICAuYnV0dG9uLFxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4gICAgLmVkaXRfc3RlcCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgLmJ1dHRvbixcbiAgICBpbnB1dFt0eXBlPXN1Ym1pdF0sXG4gICAgLmVkaXRfc3RlcCB7XG4gICAgICAgICY6bm90KC5yZW1vdmVfcmFiYXR0KTpub3QoLnJlbW92ZV9naWZ0Y2FyZCkge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGNoZWNrb3V0LWtjby1mb250LWZhbWlseTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwwLjEpLCBpbnNldCAwIC0zcHggMCByZ2JhKDAsMCwwLDAuMSksIDAgMnB4IDVweCByZ2JhKDAsMCwwLDAuMSk7XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDNweCAwIHJnYmEoMCwwLDAsMC4xKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5leHQtc3RlcC1idG4ge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICB9XG5cbiAgICAuZWRpdF9zdGVwIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG5cbiAgICAgICAgLmljb24tYWRkIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjZyZW07IC8qIHRvIGZpeGVkIGEgbWVzc2VkIHVwIHJvdGF0ZSBhbmltYXRpb24gKi9cbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDE1MG1zIGVhc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7ICAgICAgIC8qIElFL0VkZ2UgKi9cbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbiAgICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSB7XG4gICAgICAgICY6Zm9jdXMsICYuZm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNoZWNrb3V0LWtjby1rbGFybmEtZm9jdXMtY29sb3I7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggMCBoc2xhKDAsIDAlLCAwJSwgMC4xNyksaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wNiksMCAwIDNweCAxcHggJGNoZWNrb3V0LWtjby1rbGFybmEtZm9jdXMtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuemlwIHtcbiAgICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4uY2hlY2tvdXQtLWtjb19fc2hpcHBpbmctemlwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xLjEyNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgY29sb3I6IHJnYmEoJGlucHV0LWZvbnQtY29sb3IsIC41KTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGxlZnQ6IDVlbTtcbiAgICAgICAgbGVmdDogN2NoO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbig5MCUgNTAlKTtcbiAgICB9XG4gICAgaW5wdXQuaW52YWxpZDpub3QoOmZvY3VzKSB7XG4gICAgICAgICRjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2YwMCwgJGNvbnRlbnQtYmcpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZjAwLCAkaW5wdXQtYmctY29sb3IpO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggMCBoc2xhKDAsIDAlLCAwJSwgMC4xNyksaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wNiksMCAwIDNweCAxcHggJGNvbG9yO1xuICAgIH1cbn1cblxuLy8gQ29tcGVuc2F0ZSBmb3IgdGhlIEtDTyB3aW5kb3cncyBwYWRkaW5nL21hcmdpblxuLmNoZWNrb3V0X19zdGVwLS1rY28td2luZG93IHtcbiAgICAmOm9ubHktY2hpbGQge1xuICAgICAgICAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5rY28tcGF5bWVudC13cmFwcGVyLCAuYWx0ZXJuYXRlLXBheW1lbnQtd3JhcHBlciB7XG4gICAgbWluLWhlaWdodDogMzAwcHg7XG59XG4ua2NvLXBheW1lbnQtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyB0byBwb3NpdGlvbiBvdmVybGF5XG4gICAgbWFyZ2luOiAtMSpudGgoJGtjby1wYWRkaW5nLCAxKSAtMSpudGgoJGtjby1wYWRkaW5nLCAyKSAtMSpudGgoJGtjby1wYWRkaW5nLCAyKSAtMSpudGgoJGtjby1wYWRkaW5nLCA0KTsgLy8gQ29tcGVuc2F0ZSBmb3Iga2xhcm5hIHdpbmRvdyBwYWRkaW5nXG59XG5cbi5hbHRlcm5hdGUtcGF5bWVudC13cmFwcGVyIHtcbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2hlYWRsaW5lIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDkpO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdGVwcy0taWNvbml6ZWQge1xuICAgIC5rYXNzZV9vbmVfc3RlcF9udW1iZXIge1xuICAgICAgICB3aWR0aDogMi41cmVtO1xuICAgICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDVweCByZ2JhKDAsMCwwLC41KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA3cHg7XG4gICAgICAgICAgICBsZWZ0OiA3cHg7XG4gICAgICAgICAgICByaWdodDogN3B4O1xuICAgICAgICAgICAgYm90dG9tOiA3cHg7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgICAgIC5pY29uLWxvYWRpbmctaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaSB7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDVweCByZ2JhKDAsMCwwLC41KTtcbiAgICAgICAgICAgIGNvbG9yOiAkY29udGVudC1iZztcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9faGVhZGxpbmUge1xuICAgICAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0LS1rY29fX3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIG1pbi1oZWlnaHQ6IDIxMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDUwdmg7XG5cbiAgICAuYWN0aXZpdHktaW5kaWNhdG9yIHtcbiAgICAgICAgJHNpemU6IDM4cHg7XG4gICAgICAgICRiZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKTtcblxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAgICAgICAvKiBJRS9FZGdlICovXG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgei1pbmRleDogMzAwO1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMDBweDtcbiAgICAgICAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjUpIDAgMCAxcHgsIHJnYmEoMCwgMCwgMCwgMC4zKSAwIDJweCA2cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICB6LWluZGV4OiA0MDA7XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2l6ZSAvIDI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNpemUgLyAyO1xuXG4gICAgICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjYpKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgY3ViaWMtYmV6aWVyKC42NSwuMDUsLjM2LDEpKTtcblxuICAgICAgICAuc3ZnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24oYWN0aXZpdHktcm90YXRlIDYwMG1zIGxpbmVhciBpbmZpbml0ZSk7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhY3Rpdml0eS1pbmRpY2F0b3IoJGNvbnRlbnQtYmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJiArIGRpdiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMzAwbXMgY3ViaWMtYmV6aWVyKC42NSwuMDUsLjM2LDEpKTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWxvYWRpbmcsXG4gICAgJi5pcy11cGxvYWRpbmcge1xuICAgICAgICBjdXJzb3I6IHByb2dyZXNzO1xuXG4gICAgICAgIC5hY3Rpdml0eS1pbmRpY2F0b3Ige1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEpKTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgICAgICYgKyBkaXYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAzMDAwbXMgZWFzZS1vdXQpO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgICAgICAgLyogSUUvRWRnZSAqL1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5rYXNzZV9vbmVfc3RlcF9udW1iZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi8vIEBUT0RPIHdlIG1pZ2h0IHdhbnQgdG8gcmV1c2UgdGhpcyBvdGhlciBwbGFjZXMgaW4gdGhlIGZ1dHVyZVxuLmljb24tbG9hZGluZy1pbmRpY2F0b3IuaXMtbG9hZGluZyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgIG1hcmdpbjogLjNlbTtcblxuICAgICAgICBAaW5jbHVkZSBhY3Rpdml0eS1pbmRpY2F0b3IoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtYmcsICRzdGVwLW51bWJlci1iZyksICRjb250ZW50LWJnKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uKGFjdGl2aXR5LXJvdGF0ZSA2MDBtcyBsaW5lYXIgaW5maW5pdGUpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvKndpZHRoOiAycmVtO1xuICAgIHdpZHRoOiByZW0tY2FsYygyNCk7XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIGhlaWdodDogcmVtLWNhbGMoMjQpO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjQpO1xuICAgICovXG59XG5cbnRhYmxlLmNoZWNrb3V0LS1rY29fX2NhcnQge1xuXG4gICAgLy8gYm94LXNoYWRvdzogMCAwIDFyZW0gcmdiYSgwLDAsMCwwLjEpO1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKCRjb250ZW50LXRleHQtY29sb3IsIDAuMSk7XG5cbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGNoZWNrb3V0LWtjby1jYXJ0LWZvbnQtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRjaGVja291dC1rY28tY2FydC1saW5lLWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmc7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGNvbnRlbnQtdGV4dC1jb2xvciwgMC4wNSk7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucHJpY2Uge1xuICAgICAgICAgICAgQGV4dGVuZCAldGFidWxhci1udW1zO1xuXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRoZWFkIHRoIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMCByZ2JhKDAsMCwwLDAuMDQpO1xuICAgICAgICBwYWRkaW5nOiAuNzVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKCRjb250ZW50LXRleHQtY29sb3IsIDAuMDUpO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgjZmZmLCAwLjUpO1xuICAgIH1cblxuICAgIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQge1xuICAgICAgICBib3gtc2hhZG93OiAwIDNweCAwIHJnYmEoMCwwLDAsMC4wMik7XG4gICAgfVxuXG4gICAgdGZvb3Quc3VtIHRkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoI2ZmZiwgMC41KTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMCByZ2JhKDAsMCwwLDAuMDQpO1xuICAgIH1cblxuICAgIC5taW5pLWltZyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjaGVja291dC1rY28tdGh1bWItaGVpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRpc2NvdW50LFxuICAgIC5zaGlwcGluZyxcbiAgICAuZ2lmdGNhcmQge1xuICAgICAgICAubWluaS1pbWcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgW2NsYXNzXj1cImljb24tXCJdIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogbnRoKCRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nLCAyKTtcbiAgICAgICAgICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IG50aCgkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZywgMikgKiAyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRpc2NvdW50X19yYXRlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IHJlbS1jYWxjKC02IDYgMCA2KTtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMiA1KTtcblxuICAgICAgICBAaWYgJGNoZWNrb3V0LWtjby1kaXNjb3VudF9fcmF0ZV9zdHlsZSA9PSAnc29saWQnIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29udGVudC1iZztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjYWxsLXRvLWFjdGlvbi1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRkaXNjb3VudF9fcmF0ZV9jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAkY29udGVudC1iZykgIWRlZmF1bHQ7XG4gICAgICAgICAgICBjb2xvcjogJGRpc2NvdW50X19yYXRlX2NvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkZGlzY291bnRfX3JhdGVfY29sb3IsIDAuMjUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmF0dHJpYnV0ZXMge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cblxuICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBuZWNlc3NhcnkgZm9yIHRoZSBhdHRyaWJ1dGVzIHBvcHVwXG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19xdHkge1xuICAgICAgICBoZWlnaHQ6ICRjaGVja291dC1rY28tcXR5LWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogLjI1cmVtIDAgLjI1cmVtIC4yNXJlbTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAZXh0ZW5kICV0YWJ1bGFyLW51bXM7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuXG4gICAgICAgICYucHJpbWFyeS1jb2xvci1iZzpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IDAgaHNsYSgwLCAwJSwgMCUsIDAuMTcpLGluc2V0IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMDYpLDAgMCAzcHggMXB4ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN1YnRheGVzIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgLnNlcnZpY2UsXG4gICAgLmRpc2NvdW50LFxuICAgIC5naWZ0Y2FyZCxcbiAgICAuc2hpcHBpbmcge1xuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNoZWNrb3V0LS1rY29fX2ZyZWlnaHQtcHJvdGlwIHtcbiAgICAkYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LWJnLCAkY29udGVudC1iZywgMS4xKTtcbiAgICAkY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRiZywgJGJnKTtcbiAgICBib3R0b206IDEwMCU7XG5cbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IC0wLjVyZW07XG4gICAgcGFkZGluZzogNHB4IDdweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBzdHJvbmcge1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJnLCAkYmcsIDYpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkYmcsIHRvcCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsZWZ0OiA4cHg7XG4gICAgfVxufVxuXG4gLmNoZWNrb3V0LS1rY29fX3BheW1lbnQtbm90aWNlIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5jaGVja291dF9fcHJvZHVjdC1uYW1lLXdyYXAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wcm9kdWN0LW5hbWUtLWhhcy1hdHRyaWJ1dGVzIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgJGNoZWNrb3V0LWtjby1hdHRyaWJ1dGUtZmxhZy1zaXplICRjaGVja291dC1rY28tYXR0cmlidXRlLWZsYWctc2l6ZSAwO1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjYWxsLXRvLWFjdGlvbi1jb2xvciwgJGNvbnRlbnQtYmcpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICAgLmNoZWNrb3V0X19wcm9kdWN0LW5hbWUtd3JhcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAkY2hlY2tvdXQta2NvLXJlYWwtY2VsbC1wYWRkaW5nO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgNCUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDQlKSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29udGVudC1iZztcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNoZWNrb3V0LS1rY29fX2NvcnBvcmF0ZS1saW5rIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uY2hlY2tvdXQtLWtjb19fa2VlcC1zaG9wcGluZyB7XG4gICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xufVxuXG4uY2hlY2tvdXQtLWtjb19fcGF5bWVudC1ub3RpY2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg3KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNyk7XG59XG5cbi5rY29fc2hpcHBpbmdfb3B0aW9ucyB7XG4gICAgbWFyZ2luLXRvcDogJGNvbHVtbi1ndXR0ZXIvNDtcbiAgICBtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlci80O1xuICAgIC5mcmVpZ2h0LW9wdGlvbiB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogKCRjb2x1bW4tZ3V0dGVyLzIpICsgcmVtLWNhbGMoJGNoZWNrb3V0LWtjby1yYWRpby1zaXplKTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jaGVja291dF9fcGF5bWVudC1tZXRob2RzLWxpc3Qge1xuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRjb2x1bW4tZ3V0dGVyLzgpO1xuICAgIH1cbiAgICAkYm9yZGVyLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpO1xuXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgIC5wYXltZW50LW1ldGhvZCB7XG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJveC1zaGFkb3cgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuMDUsIDAuMzYsIDEpKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCAwIHJnYmEoJGNoZWNrb3V0LWtjby1ib3JkZXItY29sb3IsIDApO1xuICAgICAgICAgICAgJjpmaXJzdC1vZi10eXBlOm5vdCgucGF5bWVudC1tZXRob2QtLWFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCAwICRjaGVja291dC1rY28tYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZGlzcGxheTogYmxvY2s7IC8vIERvIG5vdCB1c2UgaW5saW5lLWJsb2NrLCBpdCBjYXVzZXMgaXJyaXRhdGluZyB3aGl0ZS1zcGFjZVxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHJnYmEoJGNoZWNrb3V0LWtjby1hY3RpdmUtYm9yZGVyLWNvbG9yLCAwLjYpIHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29udGVudC1iZztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtKCRjb2x1bW4tZ3V0dGVyLzgpO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAtKCRjb2x1bW4tZ3V0dGVyLzgpO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZVgoMC45OCkgc2NhbGVZKDAuOCkpO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuMDUsIDAuMzYsIDEpKTtcbiAgICAgICAgfVxuICAgICAgICAmLnBheW1lbnQtbWV0aG9kLS1hY3RpdmUge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlWCgxKSBzY2FsZVkoMSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICgkY29sdW1uLWd1dHRlci8yKSArIHJlbS1jYWxjKCRjaGVja291dC1rY28tcmFkaW8tc2l6ZSk7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlci80O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRjb2x1bW4tZ3V0dGVyLzQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBAZXh0ZW5kICVkZWNvcmF0ZWQtcmFkaW87XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMjIpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLjVyZW07XG4gICAgfVxufVxuLmNoZWNrb3V0X19wYXltZW50LW1ldGhvZHMtcHJlZml4LCAucGF5bWVudC1tZXRob2Qge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xufVxuLmNoZWNrb3V0LS1rY29fX2FsdGVybmF0ZS1wYXltZW50IHtcbiAgICBpbnB1dC5jaGVjay12YWxpZGl0eTppbnZhbGlkOm5vdCg6Zm9jdXMpLCBpbnB1dC5jaGVjay12YWxpZGl0eS5pbnZhbGlkOm5vdCg6Zm9jdXMpIHtcbiAgICAgICAgJGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZjAwLCAkY29udGVudC1iZyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmMDAsICRpbnB1dC1iZy1jb2xvcik7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCAwIGhzbGEoMCwgMCUsIDAlLCAwLjE3KSxpbnNldCAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjA2KSwwIDAgM3B4IDFweCAkY29sb3I7XG4gICAgfVxufVxuXG4vLyBAVE9ETyBuZWVkcyBtb3JlIHdvcmtcbi8vQG1lZGlhICN7JHNtYWxsLXBsdXMtZG93bn0ge1xuLy8gICAgLy8gRGlzYWJsZSBpT1MgdGV4dCBpbnB1dCB6b29tLCBpT1MgOSBjaGFuZ2VkIGZvbnQtc2l6ZSBmcm9tIDE2cHggdG8gMjJweFxuLy8gICAgLmNoZWNrb3V0LS1rY28ge1xuLy8gICAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8gICAgICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vICAgICAgICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8gICAgICAgIHNlbGVjdCB7XG4vLyAgICAgICAgICAgIHBhZGRpbmc6IDAuMnJlbSAwLjVyZW07XG4vLyAgICAgICAgfVxuLy8gICAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8gICAgICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vICAgICAgICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8gICAgICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLyAgICAgICAgc2VsZWN0IHtcbi8vICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuLy8gICAgICAgIH1cbi8vICAgIH1cbi8vfVxuLmtjby1wYXltZW50LXdyYXBwZXIge1xuICAgIG1hcmdpbi10b3A6IDA7XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgLmNoZWNrb3V0X19ib3R0b20tdG9vbGJhci1yaWdodCB7XG4gICAgICAgIGJ1dHRvbi5qcy1jaGVja291dF91cGRhdGUge1xuICAgICAgICAgICAgdG9wOiAtKCRjb2x1bW4tZ3V0dGVyLzIpIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2hlY2tvdXRfX3BheW1lbnQtbWV0aG9kcy1saXN0IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHNtYWxsLXBsdXMtdXB9IHtcbiAgICAuY2hlY2tvdXQtLWtjb19fcGF5bWVudCAuY29udHJvbC1ncm91cCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAvLyBAVE9ETyB3aHkgaXMgdGhpcyBrY29zP1xuICAgIC5jaGVja291dC0ta2NvcyB7XG4gICAgICAgIC5hZGRvbl9idXR0b25zIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogcmVtLWNhbGMoNykgKyAxcmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgIC5lZGl0X3N0ZXAuZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAucm93IC5yb3cuY2hlY2tvdXQta2NvX19hZGRyZXNzLWZvcm0ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgIH1cbiAgICAucm93IC5jaGVja291dC0ta2NvX19mcmVpZ2h0LW9wdGlvbnMge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgfVxuICAgIC5jaGVja291dC0ta2NvX19mcmVpZ2h0IHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMXB4IDAgMCAkY2hlY2tvdXQta2NvLWJvcmRlci1jb2xvcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICB9XG4gICAgLmNoZWNrb3V0LS1rY29fX3BheW1lbnQtYWx0ZXJuYXRpdmVzIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgICAgIG1hcmdpbi1yaWdodDogKCRjb2x1bW4tZ3V0dGVyLzIpO1xuICAgIH1cbiAgICAuY2hlY2tvdXRfX3BheW1lbnQtbWV0aG9kcy1saXN0IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgIH1cblxuICAgIC5jaGVja291dC0ta2NvIHtcbiAgICAgICAgLmFkZG9uX2J1dHRvbnMge1xuICAgICAgICAgICAgdG9wOiByZW0tY2FsYyg2KSArIDFyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRhYmxlLmNoZWNrb3V0LS1rY29fX2NhcnQge1xuICAgICAgICAubWluaS1pbWcge1xuICAgICAgICAgICAgd2lkdGg6IDc1cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5kaXNjb3VudCxcbiAgICAgICAgLnNoaXBwaW5nLFxuICAgICAgICAuZ2lmdGNhcmQge1xuICAgICAgICAgICAgLm1pbmktaW1nIHtcbiAgICAgICAgICAgICAgICBbY2xhc3NePVwiaWNvbi1cIl0ge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgICAgICBwYWRkaW5nOiAwIDEuMjVyZW0gMCAxLjI1cmVtO1xuICAgIH1cblxuICAgIC5jaGVja291dC0ta2NvX19vdmVybGF5IHtcbiAgICAgICAgbGVmdDogMS44MTI1cmVtO1xuICAgIH1cblxuICAgIC5jaGVja291dC0ta2NvX19wYXltZW50IHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgJGNvbnRlbnQtYmcgMCAzMHB4IDAsIGluc2V0ICRjb250ZW50LWJnIDAgLTMwcHggMCwgaW5zZXQgJGNoZWNrb3V0LWtjby1ib3JkZXItY29sb3IgMXB4IDFweCAwO1xuICAgIH1cbiAgICAua2NvLXBheW1lbnQtYm9yZGVyZWQtd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEuMTVyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgIH1cblxuICAgIC5rY28tcGF5bWVudC13cmFwcGVyLCAuYWx0ZXJuYXRlLXBheW1lbnQtd3JhcHBlciB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29udGVudC1iZztcbiAgICAgICAgbWFyZ2luOjA7XG4gICAgfVxuXG4gICAgLmFsdGVybmF0ZS1wYXltZW50LXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMS41cmVtO1xuICAgICAgICAuY2hlY2tvdXRfX3N0ZXBfX2hlYWRsaW5lIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0ycmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNSk7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoOSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5qcy1hdHRhY2hfY29tbWVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4uY2hlY2tvdXRfX2JvdHRvbS10b29sYmFyLXJpZ2h0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBidXR0b24uanMtY2hlY2tvdXRfdXBkYXRlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgfVxufVxuLmNoZWNrb3V0LS1rY29fX2ZyZWlnaHQtb3B0aW9ucyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDZyZW07XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAucm93IC5yb3cuY2hlY2tvdXQta2NvX19hZGRyZXNzLWZvcm0sIC5jaGVja291dF9fcGF5bWVudC1tZXRob2RzLWxpc3Qge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlcjtcbiAgICB9XG4gICAgLnJvdyAuY2hlY2tvdXQtLWtjb19fZnJlaWdodC1vcHRpb25zLCAuYWx0ZXJuYXRlLXBheW1lbnQtd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGNvbHVtbi1ndXR0ZXI7XG4gICAgfVxuXG4gICAgLnN1Ym1pdC1mcmVpZ2h0LWRldGFpbHMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtLWtjb19fY29ycG9yYXRlLWxpbmsge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJncmlkXCI7XG5cbi8vXG4vLyBAbmFtZSBfcmV2ZWFsLnNjc3Ncbi8vIEBkZXBlbmRlbmNpZXMgX2dsb2JhbC5zY3NzXG4vL1xuXG4kaW5jbHVkZS1odG1sLXJldmVhbC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBzdHlsZSBvZiB0aGUgcmV2ZWFsIG92ZXJsYXkuXG4kcmV2ZWFsLW92ZXJsYXktYmc6IHJnYmEoJGJsYWNrLCAuNDUpICFkZWZhdWx0O1xuJHJldmVhbC1vdmVybGF5LWJnLW9sZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc3R5bGUgb2YgdGhlIG1vZGFsIGl0c2VsZi5cbiRyZXZlYWwtbW9kYWwtYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiRyZXZlYWwtcG9zaXRpb24tdG9wOiByZW0tY2FsYygxMDApICFkZWZhdWx0O1xuJHJldmVhbC1kZWZhdWx0LXdpZHRoOiA4MCUgIWRlZmF1bHQ7XG4kcmV2ZWFsLW1heC13aWR0aDogJHJvdy13aWR0aCAhZGVmYXVsdDtcbiRyZXZlYWwtbW9kYWwtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJHJldmVhbC1ib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywuNCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgcmV2ZWFsIGNsb3NlIGJ1dHRvblxuJHJldmVhbC1jbG9zZS1mb250LXNpemU6IHJlbS1jYWxjKDQwKSAhZGVmYXVsdDtcbiRyZXZlYWwtY2xvc2UtdG9wOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWNsb3NlLXNpZGU6IHJlbS1jYWxjKDIyKSAhZGVmYXVsdDtcbiRyZXZlYWwtY2xvc2UtY29sb3I6ICRiYXNlICFkZWZhdWx0O1xuJHJldmVhbC1jbG9zZS13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGRlZmF1bHQgcmFkaXVzIHVzZWQgdGhyb3VnaG91dCB0aGUgY29yZS5cbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRyZXZlYWwtcm91bmQ6ICRnbG9iYWwtcm91bmRlZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIG1vZGFsIGJvcmRlclxuJHJldmVhbC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJHJldmVhbC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRyZXZlYWwtYm9yZGVyLWNvbG9yOiAkc3RlZWwgIWRlZmF1bHQ7XG5cbiRyZXZlYWwtbW9kYWwtY2xhc3M6IFwicmV2ZWFsLW1vZGFsXCIgIWRlZmF1bHQ7XG4kY2xvc2UtcmV2ZWFsLW1vZGFsLWNsYXNzOiBcImNsb3NlLXJldmVhbC1tb2RhbFwiICFkZWZhdWx0O1xuXG4vLyBTZXQgYmFzZSB6LWluZGV4XG4kei1pbmRleC1iYXNlOiAxMDA1O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIHRoZSByZXZlYWwgYmFja2dyb3VuZCBvdmVybGF5IHN0eWxlc1xuQG1peGluIHJldmVhbC1iZyggJGluY2x1ZGUtei1pbmRleC12YWx1ZTogdHJ1ZSApIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7IC8vIGFsbG93cyBtb2RhbCBiYWNrZ3JvdW5kIHRvIGV4dGVuZCBiZXlvbmQgd2luZG93IHBvc2l0aW9uXG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJnLW9sZDsgLy8gQXV0b3ByZWZpeGVyIHNob3VsZCBiZSB1c2VkIHRvIGF2b2lkIHN1Y2ggdmFyaWFibGVzIG5lZWRlZCB3aGVuIEZvdW5kYXRpb24gZm9yIFNpdGVzIGNhbiBkbyBzbyBpbiB0aGUgbmVhciBmdXR1cmUuXG4gIGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iZztcbiAgei1pbmRleDogaWYoICRpbmNsdWRlLXotaW5kZXgtdmFsdWUsICR6LWluZGV4LWJhc2UgLSAxLCBhdXRvICk7XG4gIGRpc3BsYXk6IG5vbmU7XG4gICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgdGhlIHN0cnVjdHVyZSBvZiBhIHJldmVhbCBtb2RhbFxuLy9cbi8vICRiYXNlLXN0eWxlIC0gUHJvdmlkZXMgcmV2ZWFsIGJhc2Ugc3R5bGVzLCBjYW4gYmUgc2V0IHRvIGZhbHNlIHRvIG92ZXJyaWRlLiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJHdpZHRoIC0gU2V0cyByZXZlYWwgd2lkdGggRGVmYXVsdDogJHJldmVhbC1kZWZhdWx0LXdpZHRoIHx8IDgwJVxuLy9cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSggJGJhc2Utc3R5bGU6IHRydWUsICR3aWR0aDokcmV2ZWFsLWRlZmF1bHQtd2lkdGgsICRtYXgtd2lkdGg6JHJldmVhbC1tYXgtd2lkdGgsICRib3JkZXItcmFkaXVzOiAkcmV2ZWFsLXJhZGl1cykge1xuICBAaWYgJGJhc2Utc3R5bGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkei1pbmRleC1iYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDowO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgIG1pbi1oZWlnaHQ6MTAwdmg7XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gICAgLmNvbHVtbiwgLmNvbHVtbnMgeyBtaW4td2lkdGg6IDA7IH1cblxuICAgIC8vIEdldCByaWQgb2YgbWFyZ2luIGZyb20gZmlyc3QgYW5kIGxhc3QgZWxlbWVudCBpbnNpZGUgbW9kYWxcbiAgICAmID4gOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMDsgfVxuXG4gICAgJiA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuICB9XG5cbiAgQGlmICR3aWR0aCB7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBzdHlsZSB0aGUgcmV2ZWFsIG1vZGFsIGRlZmF1bHRzXG4vL1xuLy8gJGJnIC0gU2V0cyBiYWNrZ3JvdW5kIGNvbG9yIG9mIHJldmVhbCBtb2RhbC4gRGVmYXVsdDogJHJldmVhbC1tb2RhbC1iZyB8fCAkd2hpdGVcbi8vICRwYWRkaW5nIC0gUGFkZGluZyB0byBhcHBseSB0byByZXZlYWwgbW9kYWwuIERlZmF1bHQ6ICRyZXZlYWwtbW9kYWwtcGFkZGluZy5cbi8vICRib3JkZXIgLSBDaG9vc2Ugd2hldGhlciByZXZlYWwgdXNlcyBhIGJvcmRlci4gRGVmYXVsdDogdHJ1ZSwgT3B0aW9uczogZmFsc2Vcbi8vICRib3JkZXItc3R5bGUgLSBTZXQgcmV2ZWFsIGJvcmRlciBzdHlsZS4gRGVmYXVsdDogJHJldmVhbC1ib3JkZXItc3R5bGUgfHwgc29saWRcbi8vICRib3JkZXItd2lkdGggLSBXaWR0aCBvZiBib3JkZXIgKGkuZS4gMXB4KS4gRGVmYXVsdDogJHJldmVhbC1ib3JkZXItd2lkdGguXG4vLyAkYm9yZGVyLWNvbG9yIC0gQ29sb3Igb2YgYm9yZGVyLiBEZWZhdWx0OiAkcmV2ZWFsLWJvcmRlci1jb2xvci5cbi8vICRib3gtc2hhZG93IC0gQ2hvb3NlIHdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdGhlIGRlZmF1bHQgYm94LXNoYWRvdy4gRGVmYXVsdDogdHJ1ZSwgT3B0aW9uczogZmFsc2Vcbi8vICRyYWRpdXMgLSBJZiB0cnVlLCBzZXQgdG8gbW9kYWwgcmFkaXVzIHdoaWNoIGlzICRnbG9iYWwtcmFkaXVzIHx8IGV4cGxpY2l0bHkgc2V0IHJhZGl1cyBhbW91bnQgaW4gcHggKGV4LiAkcmFkaXVzOjEwcHgpLiBEZWZhdWx0OiBmYWxzZVxuLy8gJHRvcC1vZmZzZXQgLSBEZWZhdWx0OiAkcmV2ZWFsLXBvc2l0aW9uLXRvcCB8fCA1MHB4XG5AbWl4aW4gcmV2ZWFsLW1vZGFsLXN0eWxlKFxuICAkYmc6ZmFsc2UsXG4gICRwYWRkaW5nOmZhbHNlLFxuICAkYm9yZGVyOmZhbHNlLFxuICAkYm9yZGVyLXN0eWxlOiRyZXZlYWwtYm9yZGVyLXN0eWxlLFxuICAkYm9yZGVyLXdpZHRoOiRyZXZlYWwtYm9yZGVyLXdpZHRoLFxuICAkYm9yZGVyLWNvbG9yOiRyZXZlYWwtYm9yZGVyLWNvbG9yLFxuICAkYm94LXNoYWRvdzpmYWxzZSxcbiAgJHJhZGl1czpmYWxzZSxcbiAgJHRvcC1vZmZzZXQ6ZmFsc2UpIHtcblxuICBAaWYgJGJnIHsgYmFja2dyb3VuZC1jb2xvcjogJGJnOyB9XG4gIEBpZiAkcGFkZGluZyAhPSBmYWxzZSB7IHBhZGRpbmc6ICRwYWRkaW5nOyB9XG5cbiAgQGlmICRib3JkZXIgeyBib3JkZXI6ICRib3JkZXItc3R5bGUgJGJvcmRlci13aWR0aCAkYm9yZGVyLWNvbG9yOyB9XG5cbiAgLy8gV2UgY2FuIGNob29zZSB3aGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRoZSBkZWZhdWx0IGJveC1zaGFkb3cuXG4gIEBpZiAkYm94LXNoYWRvdyB7XG4gICAgYm94LXNoYWRvdzogJHJldmVhbC1ib3gtc2hhZG93O1xuICB9XG5cbiAgLy8gV2UgY2FuIGNvbnRyb2wgaG93IG11Y2ggcmFkaXVzIGlzIHVzZWQgb24gdGhlIG1vZGFsXG4gIEBpZiAkcmFkaXVzID09IHRydWUgeyBAaW5jbHVkZSByYWRpdXMoJHJldmVhbC1yYWRpdXMpOyB9XG4gIEBlbHNlIGlmICRyYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoJHJhZGl1cyk7IH1cblxuICBAaWYgJHRvcC1vZmZzZXQge1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIHRvcDogJHRvcC1vZmZzZXQ7XG4gICAgfVxuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSBhIGNsb3NlIGJ1dHRvbiBmb3IgdGhlIHJldmVhbCBtb2RhbFxuLy9cbi8vICRjb2xvciAtIERlZmF1bHQ6ICRyZXZlYWwtY2xvc2UtY29sb3IgfHwgJGJhc2VcbkBtaXhpbiByZXZlYWwtY2xvc2UoJGNvbG9yOiRyZXZlYWwtY2xvc2UtY29sb3IpIHtcbiAgZm9udC1zaXplOiAkcmV2ZWFsLWNsb3NlLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAkcmV2ZWFsLWNsb3NlLXRvcDtcbiAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHJldmVhbC1jbG9zZS1zaWRlO1xuICBjb2xvcjogJGNvbG9yO1xuICBmb250LXdlaWdodDogJHJldmVhbC1jbG9zZS13ZWlnaHQ7XG4gIGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlO1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwicmV2ZWFsXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtcmV2ZWFsLWNsYXNzZXMge1xuXG4gICAgLy8gUmV2ZWFsIE1vZGFsc1xuICAgIC5yZXZlYWwtbW9kYWwtYmcgeyBAaW5jbHVkZSByZXZlYWwtYmc7IH1cblxuICAgIC4jeyRyZXZlYWwtbW9kYWwtY2xhc3N9IHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXN0eWxlKFxuICAgICAgICAkYmc6JHJldmVhbC1tb2RhbC1iZyxcbiAgICAgICAgJHBhZGRpbmc6JHJldmVhbC1tb2RhbC1wYWRkaW5nICogMS41LFxuICAgICAgICAkYm9yZGVyOnRydWUsXG4gICAgICAgICRib3gtc2hhZG93OnRydWUsXG4gICAgICAgICRyYWRpdXM6ZmFsc2UsXG4gICAgICAgICR0b3Atb2Zmc2V0OiRyZXZlYWwtcG9zaXRpb24tdG9wXG4gICAgICApO1xuXG4gICAgICAmLnJhZGl1cyB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1zdHlsZSgkcmFkaXVzOnRydWUpOyB9XG4gICAgICAmLnJvdW5kICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1zdHlsZSgkcmFkaXVzOiRyZXZlYWwtcm91bmQpOyB9XG4gICAgICAmLmNvbGxhcHNlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXN0eWxlKCRwYWRkaW5nOjApOyB9XG4gICAgICAmLnRpbnkgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDMwJSk7IH1cbiAgICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgNDAlKTsgfVxuICAgICAgJi5tZWRpdW0gIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDYwJSk7IH1cbiAgICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgNzAlKTsgfVxuICAgICAgJi54bGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgOTUlKTsgfVxuICAgICAgJi5mdWxsIHtcbiAgICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDEwMCUpO1xuICAgICAgICB0b3A6MDtcbiAgICAgICAgbGVmdDowO1xuICAgICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgbWluLWhlaWdodDoxMDB2aDtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIE1vZGFscyBwdXNoZWQgdG8gYmFja1xuICAgICAgJi50b2JhY2sge1xuICAgICAgICB6LWluZGV4OiAkei1pbmRleC1iYXNlIC0gMjtcbiAgICAgIH1cblxuICAgICAgLiN7JGNsb3NlLXJldmVhbC1tb2RhbC1jbGFzc30geyBAaW5jbHVkZSByZXZlYWwtY2xvc2U7IH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJyZWFjdC1zZWxlY3Qvc2VsZWN0XCI7XG5AaW1wb3J0IFwicmVhY3Qtc2VsZWN0L2NvbnRyb2xcIjtcbkBpbXBvcnQgXCJyZWFjdC1zZWxlY3QvbWVudVwiO1xuQGltcG9ydCBcInJlYWN0LXNlbGVjdC9taXhpbnNcIjtcbkBpbXBvcnQgXCJyZWFjdC1zZWxlY3QvbXVsdGlcIjtcbkBpbXBvcnQgXCJyZWFjdC1zZWxlY3Qvc3Bpbm5lclwiO1xuIiwiLyoqXG4gKiBSZWFjdCBTZWxlY3RcbiAqID09PT09PT09PT09PVxuICogQ3JlYXRlZCBieSBKZWQgV2F0c29uIGFuZCBKb3NzIE1hY2tpc29uIGZvciBLZXlzdG9uZUpTLCBodHRwOi8vd3d3LmtleXN0b25lanMuY29tL1xuICogaHR0cHM6Ly90d2l0dGVyLmNvbS9qZWR3YXRzb24gaHR0cHM6Ly90d2l0dGVyLmNvbS9qb3NzbWFja2lzb24gaHR0cHM6Ly90d2l0dGVyLmNvbS9rZXlzdG9uZWpzXG4gKiBNSVQgTGljZW5zZTogaHR0cHM6Ly9naXRodWIuY29tL2tleXN0b25lanMvcmVhY3Qtc2VsZWN0XG4qL1xuXG4vLyBWYXJpYWJsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBjb250cm9sIG9wdGlvbnNcbiRzZWxlY3QtaW5wdXQtYmc6ICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtYmctZGlzYWJsZWQ6ICAgICAgICAgI2Y5ZjlmOSAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgI2NjYyAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtYm9yZGVyLXJhZGl1czogICAgICAgNHB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1ib3JkZXItZm9jdXM6ICAgICAgICAjMDhjICFkZWZhdWx0OyAvLyBibHVlXG4kc2VsZWN0LWlucHV0LWJvcmRlci13aWR0aDogICAgICAgIDFweCAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtaGVpZ2h0OiAgICAgICAgICAgICAgMzZweCAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtaW50ZXJuYWwtaGVpZ2h0OiAgICAgKCRzZWxlY3QtaW5wdXQtaGVpZ2h0IC0gKCRzZWxlY3QtaW5wdXQtYm9yZGVyLXdpZHRoICogMikpICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1wbGFjZWhvbGRlcjogICAgICAgICAjYWFhICFkZWZhdWx0O1xuJHNlbGVjdC10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAjMzMzICFkZWZhdWx0O1xuJHNlbGVjdC1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAkc2VsZWN0LWlucHV0LWJvcmRlci1mb2N1cyAhZGVmYXVsdDtcblxuJHNlbGVjdC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICA4cHggIWRlZmF1bHQ7XG4kc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgIDEwcHggIWRlZmF1bHQ7XG5cbi8vIG1lbnUgb3B0aW9uc1xuJHNlbGVjdC1tZW51LXppbmRleDogICAgICAgICAgICAgICAxMDAwICFkZWZhdWx0O1xuJHNlbGVjdC1tZW51LW1heC1oZWlnaHQ6ICAgICAgICAgICAyMDBweCAhZGVmYXVsdDtcblxuJHNlbGVjdC1vcHRpb24tY29sb3I6ICAgICAgICAgICAgICBsaWdodGVuKCRzZWxlY3QtdGV4dC1jb2xvciwgMjAlKSAhZGVmYXVsdDtcbiRzZWxlY3Qtb3B0aW9uLWJnOiAgICAgICAgICAgICAgICAgJHNlbGVjdC1pbnB1dC1iZyAhZGVmYXVsdDtcbiRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtY29sb3I6ICAgICAgJHNlbGVjdC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1iZzogICAgICAgICAjZjJmOWZjICFkZWZhdWx0OyAvLyBwYWxlIGJsdWVcbiRzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWNvbG9yOiAgICAgJHNlbGVjdC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJHNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtYmc6ICAgICAgICAjREFEMUQxICFkZWZhdWx0OyAvLyBncmF5XG4kc2VsZWN0LW9wdGlvbi1kaXNhYmxlZC1jb2xvcjogICAgIGxpZ2h0ZW4oJHNlbGVjdC10ZXh0LWNvbG9yLCA2MCUpICFkZWZhdWx0O1xuXG4kc2VsZWN0LW5vcmVzdWx0cy1jb2xvcjogICAgICAgICAgIGxpZ2h0ZW4oJHNlbGVjdC10ZXh0LWNvbG9yLCA0MCUpICFkZWZhdWx0O1xuXG4vLyBjbGVhciBcInhcIiBidXR0b25cbiRzZWxlY3QtY2xlYXItc2l6ZTogICAgICAgICAgICAgICAgZmxvb3IoKCRzZWxlY3QtaW5wdXQtaGVpZ2h0IC8gMikpICFkZWZhdWx0O1xuJHNlbGVjdC1jbGVhci1jb2xvcjogICAgICAgICAgICAgICAjOTk5ICFkZWZhdWx0O1xuJHNlbGVjdC1jbGVhci1ob3Zlci1jb2xvcjogICAgICAgICAjRDAwMjFCICFkZWZhdWx0OyAvLyByZWRcbiRzZWxlY3QtY2xlYXItd2lkdGg6ICAgICAgICAgICAgICAgKCRzZWxlY3QtaW5wdXQtaW50ZXJuYWwtaGVpZ2h0IC8gMikgIWRlZmF1bHQ7XG5cbi8vIGFycm93IGluZGljYXRvclxuJHNlbGVjdC1hcnJvdy1jb2xvcjogICAgICAgICAgICAgICAjOTk5ICFkZWZhdWx0O1xuJHNlbGVjdC1hcnJvdy1jb2xvci1ob3ZlcjogICAgICAgICAjNjY2ICFkZWZhdWx0O1xuJHNlbGVjdC1hcnJvdy13aWR0aDogICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XG5cbi8vIGxvYWRpbmcgaW5kaWNhdG9yXG4kc2VsZWN0LWxvYWRpbmctc2l6ZTogICAgICAgICAgICAgIDE2cHggIWRlZmF1bHQ7XG4kc2VsZWN0LWxvYWRpbmctY29sb3I6ICAgICAgICAgICAgICRzZWxlY3QtdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRzZWxlY3QtbG9hZGluZy1jb2xvci1iZzogICAgICAgICAgJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbi8vIG11bHRpLXNlbGVjdCBpdGVtXG4kc2VsZWN0LWl0ZW0tYm9yZGVyLXJhZGl1czogICAgICAgIDJweCAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1ndXR0ZXI6ICAgICAgICAgICAgICAgNXB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLXBhZGRpbmctdmVydGljYWw6ICAgICAycHggIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsOiAgIDVweCAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1mb250LXNpemU6ICAgICAgICAgICAgLjllbSAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgIzA4YyAhZGVmYXVsdDsgLy8gcGFsZSBibHVlXG4kc2VsZWN0LWl0ZW0tYmc6ICAgICAgICAgICAgICAgICAgICNmMmY5ZmMgIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tYm9yZGVyLWNvbG9yOiAgICAgICAgIGRhcmtlbigkc2VsZWN0LWl0ZW0tYmcsIDEwJSkgIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgIGRhcmtlbigkc2VsZWN0LWl0ZW0tY29sb3IsIDUlKSAhZGVmYXVsdDsgLy8gcGFsZSBibHVlXG4kc2VsZWN0LWl0ZW0taG92ZXItYmc6ICAgICAgICAgICAgIGRhcmtlbigkc2VsZWN0LWl0ZW0tYmcsIDUlKSAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1kaXNhYmxlZC1jb2xvcjogICAgICAgIzMzMyAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1kaXNhYmxlZC1iZzogICAgICAgICAgI2ZjZmNmYyAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1kaXNhYmxlZC1ib3JkZXItY29sb3I6IGRhcmtlbigkc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYmcsIDEwJSkgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29udHJvbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbXBvcnQgJ3NwaW5uZXInO1xuQGltcG9ydCAnbWl4aW5zJztcblxuLlNlbGVjdCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQvLyBwcmVmZXJyZWQgYm94IG1vZGVsXG5cdCYsXG5cdCYgZGl2LFxuXHQmIGlucHV0LFxuXHQmIHNwYW4ge1xuXHRcdEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG5cdH1cblxuXHQvLyBoYW5kbGUgZGlzYWJsZWQgc3RhdGVcblx0Ji5pcy1kaXNhYmxlZCA+IC5TZWxlY3QtY29udHJvbCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pbnB1dC1iZy1kaXNhYmxlZDtcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuXHR9XG5cdCYuaXMtZGlzYWJsZWQgLlNlbGVjdC1hcnJvdy16b25lIHtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cbn1cblxuLy8gYmFzZVxuXG4uU2VsZWN0LWNvbnRyb2wge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWlucHV0LWJnO1xuXHRib3JkZXItY29sb3I6IGxpZ2h0ZW4oJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IsIDUlKSAkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciBkYXJrZW4oJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IsIDEwJSk7XG5cdGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtaW5wdXQtYm9yZGVyLXJhZGl1cztcblx0Ym9yZGVyOiAkc2VsZWN0LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvcjtcblx0Y29sb3I6ICRzZWxlY3QtdGV4dC1jb2xvcjtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRkaXNwbGF5OiB0YWJsZTtcblx0Ym9yZGVyLXNwYWNpbmc6IDA7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG5cdGhlaWdodDogJHNlbGVjdC1pbnB1dC1oZWlnaHQ7XG5cdG91dGxpbmU6IG5vbmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cblx0Jjpob3ZlciB7XG5cdFx0Ym94LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuXHR9XG59XG5cbi5pcy1zZWFyY2hhYmxlIHtcblx0Ji5pcy1vcGVuID4gLlNlbGVjdC1jb250cm9sIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cbn1cblxuLmlzLW9wZW4gPiAuU2VsZWN0LWNvbnRyb2wge1xuXHRAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cyggMCApO1xuXHRiYWNrZ3JvdW5kOiAkc2VsZWN0LWlucHV0LWJnO1xuXHRib3JkZXItY29sb3I6IGRhcmtlbigkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciwgMTAlKSAkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciBsaWdodGVuKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yLCA1JSk7XG5cblx0Ly8gZmxpcCB0aGUgYXJyb3cgc28gaXRzIHBvaW50aW5nIHVwIHdoZW4gdGhlIG1lbnUgaXMgb3BlblxuXHQ+IC5TZWxlY3QtYXJyb3cge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHNlbGVjdC1hcnJvdy1jb2xvcjtcblx0XHRib3JkZXItd2lkdGg6IDAgJHNlbGVjdC1hcnJvdy13aWR0aCAkc2VsZWN0LWFycm93LXdpZHRoO1xuXHR9XG59XG5cbi5pcy1zZWFyY2hhYmxlIHtcblx0Ji5pcy1mb2N1c2VkOm5vdCguaXMtb3BlbikgPiAuU2VsZWN0LWNvbnRyb2wge1xuXHRcdGN1cnNvcjogdGV4dDtcblx0fVxufVxuXG4uaXMtZm9jdXNlZDpub3QoLmlzLW9wZW4pID4gLlNlbGVjdC1jb250cm9sIHtcblx0Ym9yZGVyLWNvbG9yOiAkc2VsZWN0LWlucHV0LWJvcmRlci1mb2N1cyBsaWdodGVuKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWZvY3VzLCA1JSkgbGlnaHRlbigkc2VsZWN0LWlucHV0LWJvcmRlci1mb2N1cywgNSUpO1xuXHRib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDAgNXB4IC0xcHggZmFkZSgkc2VsZWN0LWlucHV0LWJvcmRlci1mb2N1cyw1MCUpO1xufVxuXG4vLyBwbGFjZWhvbGRlclxuXG4uU2VsZWN0LXBsYWNlaG9sZGVyLFxuOm5vdCguU2VsZWN0LS1tdWx0aSkgPiAuU2VsZWN0LWNvbnRyb2wgLlNlbGVjdC12YWx1ZSB7XG5cdGJvdHRvbTogMDtcblx0Y29sb3I6ICRzZWxlY3QtaW5wdXQtcGxhY2Vob2xkZXI7XG5cdGxlZnQ6IDA7XG5cdGxpbmUtaGVpZ2h0OiAkc2VsZWN0LWlucHV0LWludGVybmFsLWhlaWdodDtcblx0cGFkZGluZy1sZWZ0OiAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcblx0cGFkZGluZy1yaWdodDogJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDA7XG5cdHRvcDogMDtcblxuXHQvLyBjcm9wIHRleHRcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmhhcy12YWx1ZTpub3QoLlNlbGVjdC0tbXVsdGkpOm5vdCguaXMtZm9jdXNlZCkgPiAuU2VsZWN0LWNvbnRyb2wgPiAuU2VsZWN0LXZhbHVlLFxuLmhhcy12YWx1ZS5pcy1wc2V1ZG8tZm9jdXNlZDpub3QoLlNlbGVjdC0tbXVsdGkpID4gLlNlbGVjdC1jb250cm9sID4gLlNlbGVjdC12YWx1ZSB7XG5cdC5TZWxlY3QtdmFsdWUtbGFiZWwge1xuXHRcdGNvbG9yOiAkc2VsZWN0LXRleHQtY29sb3I7XG5cdH1cblx0YS5TZWxlY3QtdmFsdWUtbGFiZWwge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiAkc2VsZWN0LWxpbmstaG92ZXItY29sb3I7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHR9XG5cdH1cbn1cblxuXG4vLyB0aGUgPGlucHV0PiBlbGVtZW50IHVzZXJzIHR5cGUgaW5cblxuLlNlbGVjdC1pbnB1dCB7XG5cdC8vIGluaGVyaXRzIGBkaXNwbGF5OiBpbmxpbmUtYmxvY2tgIGZyb20gXCJyZWFjdC1pbnB1dC1hdXRvc2l6ZVwiXG5cdGhlaWdodDogJHNlbGVjdC1pbnB1dC1pbnRlcm5hbC1oZWlnaHQ7XG5cdHBhZGRpbmctbGVmdDogJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG5cdHBhZGRpbmctcmlnaHQ6ICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdD4gaW5wdXQge1xuXHRcdGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyOiAwIG5vbmU7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0XHRoZWlnaHQ6ICRzZWxlY3QtaW5wdXQtaW50ZXJuYWwtaGVpZ2h0O1xuXHRcdG1hcmdpbjogMDtcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXG5cdFx0LmlzLWZvY3VzZWQgJiB7XG5cdFx0XHRjdXJzb3I6IHRleHQ7XG5cdFx0fVxuXHR9XG5cbn1cblxuLy8gZmFrZS1oaWRlIHRoZSBpbnB1dCB3aGVuIHRoZSBjb250cm9sIGlzIHBzZXVkby1mb2N1c2VkXG4uaGFzLXZhbHVlLmlzLXBzZXVkby1mb2N1c2VkIC5TZWxlY3QtaW5wdXQge1xuXHRvcGFjaXR5OiAwO1xufVxuXG4vLyBmYWtlIGlucHV0XG4uU2VsZWN0LWNvbnRyb2w6bm90KC5pcy1zZWFyY2hhYmxlKSA+IC5TZWxlY3QtaW5wdXQge1xuXHRvdXRsaW5lOiBub25lO1xufVxuXG4vLyBsb2FkaW5nIGluZGljYXRvclxuLlNlbGVjdC1sb2FkaW5nLXpvbmUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR3aWR0aDogJHNlbGVjdC1sb2FkaW5nLXNpemU7XG59XG4uU2VsZWN0LWxvYWRpbmcge1xuXHRAaW5jbHVkZSBTZWxlY3Qtc3Bpbm5lcigkc2VsZWN0LWxvYWRpbmctc2l6ZSwgJHNlbGVjdC1sb2FkaW5nLWNvbG9yLWJnLCAkc2VsZWN0LWxvYWRpbmctY29sb3IpO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5cbi8vIHRoZSBsaXR0bGUgY3Jvc3MgdGhhdCBjbGVhcnMgdGhlIGZpZWxkXG5cbi5TZWxlY3QtY2xlYXItem9uZSB7XG5cdEBpbmNsdWRlIGFuaW1hdGlvbiggU2VsZWN0LWFuaW1hdGlvbi1mYWRlSW4gMjAwbXMgKTtcblx0Y29sb3I6ICRzZWxlY3QtY2xlYXItY29sb3I7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHdpZHRoOiAkc2VsZWN0LWNsZWFyLXdpZHRoO1xuXG5cdCY6aG92ZXIge1xuXHRcdGNvbG9yOiAkc2VsZWN0LWNsZWFyLWhvdmVyLWNvbG9yO1xuXHR9XG59XG4uU2VsZWN0LWNsZWFyIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LXNpemU6ICRzZWxlY3QtY2xlYXItc2l6ZTtcblx0bGluZS1oZWlnaHQ6IDE7XG59XG4uU2VsZWN0LS1tdWx0aSAuU2VsZWN0LWNsZWFyLXpvbmUge1xuXHR3aWR0aDogJHNlbGVjdC1jbGVhci13aWR0aDtcbn1cblxuXG4vLyBhcnJvdyBpbmRpY2F0b3JcblxuLlNlbGVjdC1hcnJvdy16b25lIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0d2lkdGg6ICgkc2VsZWN0LWFycm93LXdpZHRoICogNSk7XG5cdHBhZGRpbmctcmlnaHQ6ICRzZWxlY3QtYXJyb3ctd2lkdGg7XG59XG5cbi5TZWxlY3QtYXJyb3cge1xuXHRib3JkZXItY29sb3I6ICRzZWxlY3QtYXJyb3ctY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogJHNlbGVjdC1hcnJvdy13aWR0aCAkc2VsZWN0LWFycm93LXdpZHRoICgkc2VsZWN0LWFycm93LXdpZHRoIC8gMik7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0aGVpZ2h0OiAwO1xuXHR3aWR0aDogMDtcbn1cbi5pcy1vcGVuIC5TZWxlY3QtYXJyb3csXG4uU2VsZWN0LWFycm93LXpvbmU6aG92ZXIgPiAuU2VsZWN0LWFycm93IHtcblx0Ym9yZGVyLXRvcC1jb2xvcjogJHNlbGVjdC1hcnJvdy1jb2xvci1ob3Zlcjtcbn1cblxuXG5cblxuLy8gQW5pbWF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gZmFkZSBpblxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgU2VsZWN0LWFuaW1hdGlvbi1mYWRlSW4ge1xuXHRmcm9tIHsgb3BhY2l0eTogMDsgfVxuXHR0byB7IG9wYWNpdHk6IDE7IH1cbn1cbkBrZXlmcmFtZXMgU2VsZWN0LWFuaW1hdGlvbi1mYWRlSW4ge1xuXHRmcm9tIHsgb3BhY2l0eTogMDsgfVxuXHR0byB7IG9wYWNpdHk6IDE7IH1cbn1cbiIsIi8vXG4vLyBTcGlubmVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbXBvcnQgJ21peGlucyc7XG5cbkBtaXhpbiBTZWxlY3Qtc3Bpbm5lcigkc2l6ZSwgJG9yYml0LCAkc2F0ZWxsaXRlKVxue1xuXHRAaW5jbHVkZSBhbmltYXRpb24oIFNlbGVjdC1hbmltYXRpb24tc3BpbiA0MDBtcyBpbmZpbml0ZSBsaW5lYXIgKTtcblx0QGluY2x1ZGUgc3F1YXJlKCRzaXplKTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRib3JkZXI6IGZsb29yKCgkc2l6ZSAvIDgpKSBzb2xpZCAkb3JiaXQ7XG5cdGJvcmRlci1yaWdodC1jb2xvcjogJHNhdGVsbGl0ZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cbn1cblxuQGtleWZyYW1lcyBTZWxlY3QtYW5pbWF0aW9uLXNwaW4ge1xuXHR0byB7IHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIFNlbGVjdC1hbmltYXRpb24tc3BpbiB7XG5cdHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxdHVybik7IH1cbn1cbiIsIi8vXG4vLyBNaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFV0aWxpdGllc1xuXG5AbWl4aW4gc2l6ZSgkd2lkdGgsICRoZWlnaHQpXG57XG5cdHdpZHRoOiAkd2lkdGg7XG5cdGhlaWdodDogJGhlaWdodDtcbn1cbkBtaXhpbiBzcXVhcmUoJHNpemUpXG57XG5cdEBpbmNsdWRlIHNpemUoJHNpemUsICRzaXplKTtcbn1cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaXVzKVxue1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpdXMpXG57XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbn1cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzKVxue1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGl1cylcbntcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cblxuXG4vLyBWZW5kb3IgUHJlZml4ZXNcblxuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9uKVxue1xuXHQtd2Via2l0LWFuaW1hdGlvbjogJGFuaW1hdGlvbjtcblx0LW8tYW5pbWF0aW9uOiAkYW5pbWF0aW9uO1xuXHRhbmltYXRpb246ICRhbmltYXRpb247XG59XG5AbWl4aW4gYm94LXNpemluZygkYm94bW9kZWwpXG57XG5cdC13ZWJraXQtYm94LXNpemluZzogJGJveG1vZGVsO1xuXHQtbW96LWJveC1zaXppbmc6ICRib3htb2RlbDtcblx0Ym94LXNpemluZzogJGJveG1vZGVsO1xufVxuQG1peGluIHJvdGF0ZSgkZGVncmVlcylcbntcblx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG5cdC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7IC8vIElFOSBvbmx5XG5cdC1vLXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcblx0dHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xufVxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3JtKVxue1xuXHQtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybTtcblx0LW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm07XG5cdC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm07XG5cdHRyYW5zZm9ybTogJHRyYW5zZm9ybTtcbn1cbiIsIi8vXG4vLyBTZWxlY3QgTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gd3JhcHBlciBhcm91bmQgdGhlIG1lbnVcblxuLlNlbGVjdC1tZW51LW91dGVyIHtcblx0Ly8gVW5mb3J0dW5hdGVseSwgaGF2aW5nIGJvdGggYm9yZGVyLXJhZGl1cyBhbmQgYWxsb3dzIHNjcm9sbGluZyB1c2luZyBvdmVyZmxvdyBkZWZpbmVkIG9uIHRoZSBzYW1lXG5cdC8vIGVsZW1lbnQgZm9yY2VzIHRoZSBicm93c2VyIHRvIHJlcGFpbnQgb24gc2Nyb2xsLiAgSG93ZXZlciwgaWYgdGhlc2UgZGVmaW5pdGlvbnMgYXJlIHNwbGl0IGludG8gYW5cblx0Ly8gb3V0ZXIgYW5kIGFuIGlubmVyIGVsZW1lbnQsIHRoZSBicm93c2VyIGlzIGFibGUgdG8gb3B0aW1pemUgdGhlIHNjcm9sbGluZyBiZWhhdmlvciBhbmQgZG9lcyBub3Rcblx0Ly8gaGF2ZSB0byByZXBhaW50IG9uIHNjcm9sbC5cblx0QGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoICRzZWxlY3QtaW5wdXQtYm9yZGVyLXJhZGl1cyApO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWlucHV0LWJnO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvcjtcblx0Ym9yZGVyLXRvcC1jb2xvcjogbWl4KCRzZWxlY3QtaW5wdXQtYmcsICRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yLCA1MCUpO1xuXHRib3gtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC4wNik7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdG1hcmdpbi10b3A6IC0xcHg7XG5cdG1heC1oZWlnaHQ6ICRzZWxlY3QtbWVudS1tYXgtaGVpZ2h0O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cdHotaW5kZXg6ICRzZWxlY3QtbWVudS16aW5kZXg7XG5cdC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuXG4vLyB3cmFwcGVyXG5cbi5TZWxlY3QtbWVudSB7XG5cdG1heC1oZWlnaHQ6ICgkc2VsZWN0LW1lbnUtbWF4LWhlaWdodCAtIDJweCk7XG5cdG92ZXJmbG93LXk6IGF1dG87XG59XG5cblxuLy8gb3B0aW9uc1xuXG4uU2VsZWN0LW9wdGlvbiB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Qtb3B0aW9uLWJnO1xuXHRjb2xvcjogJHNlbGVjdC1vcHRpb24tY29sb3I7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBhZGRpbmc6ICRzZWxlY3QtcGFkZGluZy12ZXJ0aWNhbCAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcblxuXHQmOmxhc3QtY2hpbGQge1xuXHRcdEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCAkc2VsZWN0LWlucHV0LWJvcmRlci1yYWRpdXMgKTtcblx0fVxuXG5cdCYuaXMtZm9jdXNlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1iZztcblx0XHRjb2xvcjogJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1jb2xvcjtcblx0fVxuXG5cdCYuaXMtc2VsZWN0ZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWJnO1xuXHRcdGNvbG9yOiAkc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1jb2xvcjtcblx0fVxuXG5cdCYuaXMtZGlzYWJsZWQge1xuXHRcdGNvbG9yOiAkc2VsZWN0LW9wdGlvbi1kaXNhYmxlZC1jb2xvcjtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdH1cblxufVxuXG5cbi8vIG5vIHJlc3VsdHNcblxuLlNlbGVjdC1ub3Jlc3VsdHMge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRjb2xvcjogJHNlbGVjdC1ub3Jlc3VsdHMtY29sb3I7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBhZGRpbmc6ICRzZWxlY3QtcGFkZGluZy12ZXJ0aWNhbCAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcbn1cbiIsIi8vXG4vLyBNdWx0aS1TZWxlY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2VcblxuLlNlbGVjdC0tbXVsdGkge1xuXG5cdC8vIGFkZCBtYXJnaW4gdG8gdGhlIGlucHV0IGVsZW1lbnRcblx0LlNlbGVjdC1pbnB1dCB7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHQvLyBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRtYXJnaW4tbGVmdDogJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC8vIHJlZHVjZSBtYXJnaW4gb25jZSB0aGVyZSBpcyB2YWx1ZVxuXHQmLmhhcy12YWx1ZSAuU2VsZWN0LWlucHV0IHtcblx0XHRtYXJnaW4tbGVmdDogJHNlbGVjdC1pdGVtLWd1dHRlcjtcblx0fVxuXG5cdC8vIEl0ZW1zXG5cdC5TZWxlY3QtdmFsdWUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaXRlbS1iZztcblx0XHRib3JkZXItcmFkaXVzOiAkc2VsZWN0LWl0ZW0tYm9yZGVyLXJhZGl1cztcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkc2VsZWN0LWl0ZW0tYm9yZGVyLWNvbG9yO1xuXHRcdGNvbG9yOiAkc2VsZWN0LWl0ZW0tY29sb3I7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGZvbnQtc2l6ZTogJHNlbGVjdC1pdGVtLWZvbnQtc2l6ZTtcblx0XHRtYXJnaW4tbGVmdDogJHNlbGVjdC1pdGVtLWd1dHRlcjtcblx0XHRtYXJnaW4tdG9wOiAkc2VsZWN0LWl0ZW0tZ3V0dGVyO1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdH1cblxuXHQvLyBjb21tb25cblx0LlNlbGVjdC12YWx1ZS1pY29uLFxuXHQuU2VsZWN0LXZhbHVlLWxhYmVsIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0fVxuXG5cdC8vIGxhYmVsXG5cdC5TZWxlY3QtdmFsdWUtbGFiZWwge1xuXHRcdEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoICRzZWxlY3QtaXRlbS1ib3JkZXItcmFkaXVzICk7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdHBhZGRpbmc6ICRzZWxlY3QtaXRlbS1wYWRkaW5nLXZlcnRpY2FsICRzZWxlY3QtaXRlbS1wYWRkaW5nLWhvcml6b250YWw7XG5cdH1cblx0YS5TZWxlY3QtdmFsdWUtbGFiZWwge1xuXHRcdGNvbG9yOiAkc2VsZWN0LWl0ZW0tY29sb3I7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG5cblx0Ly8gaWNvblxuXHQuU2VsZWN0LXZhbHVlLWljb24ge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoICRzZWxlY3QtaXRlbS1ib3JkZXItcmFkaXVzICk7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHNlbGVjdC1pdGVtLWJvcmRlci1jb2xvcjtcblxuXHRcdC8vIG1vdmUgdGhlIGJhc2VsaW5lIHVwIGJ5IDFweFxuXHRcdHBhZGRpbmc6ICgkc2VsZWN0LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCAtIDEpICRzZWxlY3QtaXRlbS1wYWRkaW5nLWhvcml6b250YWwgKCRzZWxlY3QtaXRlbS1wYWRkaW5nLXZlcnRpY2FsICsgMSk7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pdGVtLWhvdmVyLWJnO1xuXHRcdFx0Y29sb3I6ICRzZWxlY3QtaXRlbS1ob3Zlci1jb2xvcjtcblx0XHR9XG5cdFx0JjphY3RpdmUge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pdGVtLWJvcmRlci1jb2xvcjtcblx0XHR9XG5cdH1cblxufVxuXG4uU2VsZWN0LS1tdWx0aS5pcy1kaXNhYmxlZCB7XG5cdC5TZWxlY3QtdmFsdWUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaXRlbS1kaXNhYmxlZC1iZztcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYm9yZGVyLWNvbG9yO1xuXHRcdGNvbG9yOiAkc2VsZWN0LWl0ZW0tZGlzYWJsZWQtY29sb3I7XG5cdH1cblx0Ly8gaWNvblxuXHQuU2VsZWN0LXZhbHVlLWljb24ge1xuXHRcdGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJvcmRlci1jb2xvcjtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyxcblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYmc7XG5cdFx0fVxuXHR9XG59XG4iLCIvKipcbiAqIENvbW1lbnRzIHN0eWxpbmcsIGNvdXJ0ZXN5IG9mXG4gKiBodHRwOi8vcmVmaWxscy5ib3VyYm9uLmlvL1xuICovXG5cbiRjb21tZW50LWd1dHRlcjogICAgICAgICAgICAgICAgMS40ZW0gIWRlZmF1bHQ7XG4kY29tbWVudC1pbWFnZS1tYXJnaW46ICAgICAgICAgIC43ZW0gIWRlZmF1bHQ7XG4kY29tbWVudC1pbWFnZS13aWR0aDogICAgICAgICAgIDMwcHggIWRlZmF1bHQ7XG4kY29tbWVudC1pbWFnZS13aWR0aC1sYXJnZTogICAgIDYwcHggIWRlZmF1bHQ7XG4kY29tbWVudC1pbWFnZS1ib3JkZXItcGFkZGluZzogIDNweCAhZGVmYXVsdDtcbiRjb21tZW50LWltYWdlLWJvcmRlci13aWR0aDogICAgMXB4ICFkZWZhdWx0O1xuJGNvbW1lbnQtaGVhZGVyLWZvbnQtc2l6ZTogICAgICByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kY29tbWVudC1jb2xvcjogICAgICAgICAgICAgICAgICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kY29tbWVudC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICRzZWNvbmRhcnktY29sb3IgIWRlZmF1bHQ7XG4kY29tbWVudC1kZXRhaWwtY29sb3I6ICAgICAgICAgIHRyYW5zcGFyZW50aXplKCRjb21tZW50LWNvbG9yLCAuNSkgIWRlZmF1bHQ7XG4kY29tbWVudC1pbWFnZS12ZXJ0LWFsaWdubWVudDogIHRvcCAhZGVmYXVsdDtcbiRjb21tZW50LXN0YXItY29sb3I6ICAgICAgICAgICAgJGNhbGwtdG8tYWN0aW9uLWNvbG9yICFkZWZhdWx0O1xuJGNvbW1lbnQtYXZhdGFyLWJvcmRlci1jb2xvcjogICAjZGRkICFkZWZhdWx0O1xuJGNvbW1lbnQtYXZhdGFyLWJveC1zaXplOiAgICAgICAjeyRjb21tZW50LWltYWdlLXdpZHRoICsgJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXBhZGRpbmcgKiAyICsgJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXdpZHRoICogMn07XG4kY29tbWVudC1hdmF0YXItYm94LXNpemUtbGFyZ2U6ICN7JGNvbW1lbnQtaW1hZ2Utd2lkdGgtbGFyZ2UgKyAkY29tbWVudC1pbWFnZS1ib3JkZXItcGFkZGluZyAqIDIgKyAkY29tbWVudC1pbWFnZS1ib3JkZXItd2lkdGggKiAyfTtcblxuLmNvbW1lbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICN7JHBhcmFncmFwaC1saW5lLWhlaWdodCAqIDFyZW19O1xuICAgIHBhZGRpbmctYm90dG9tOiAxZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50aXplKCRjb21tZW50LWNvbG9yLCAuOSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLmNvbW1lbnQtYXZhdGFyIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXdpZHRoIHNvbGlkIGRhcmtlbigkY29tbWVudC1hdmF0YXItYm9yZGVyLWNvbG9yLCAzMCUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY29tbWVudC1pbWFnZSxcbi5jb21tZW50LWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246ICRjb21tZW50LWltYWdlLXZlcnQtYWxpZ25tZW50O1xufVxuXG4uY29tbWVudC1pbWFnZSB7XG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6ICRjb21tZW50LWltYWdlLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgcGFkZGluZy1yaWdodDogJGNvbW1lbnQtaW1hZ2UtbWFyZ2luO1xufVxuXG4vKipcbiAqIENpcmN1bGFyIGF2YXRhcnNcbiAqIENvdXJ0ZXN5IG9mIGh0dHA6Ly9jb2RlcGVuLmlvL2JyYWRlbmhhbW0vcGVuL3lEdWthXG4gKi9cblxuLmNvbW1lbnQtYXZhdGFyIHtcbiAgICBsaW5lLWhlaWdodDogMDsgICAgIC8qIHJlbW92ZSBsaW5lLWhlaWdodCAqLyBcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICAvKiBjaXJjbGUgd3JhcHMgaW1hZ2UgKi9cbiAgICBib3JkZXItcmFkaXVzOiA1MCU7IC8qIHJlbGF0aXZlIHZhbHVlICovXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3JkZXIgMzAwbXMgZWFzZSk7XG4gICAgaGVpZ2h0OiAkY29tbWVudC1hdmF0YXItYm94LXNpemU7XG4gICAgd2lkdGg6ICRjb21tZW50LWF2YXRhci1ib3gtc2l6ZTtcbiAgICBib3JkZXI6ICRjb21tZW50LWltYWdlLWJvcmRlci13aWR0aCBzb2xpZCAkY29tbWVudC1hdmF0YXItYm9yZGVyLWNvbG9yO1xuICAgIHBhZGRpbmc6ICRjb21tZW50LWltYWdlLWJvcmRlci1wYWRkaW5nO1xufVxuXG4uY29tbWVudC1hdmF0YXIgaW1nIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7IC8qIHJlbGF0aXZlIHZhbHVlIGZvclxuICAgICAgICAgICAgICAgICAgIGFkanVzdGFibGUgaW1hZ2Ugc2l6ZSAqL1xufVxuXG4uY29tbWVudC1jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5jb21tZW50LWNvbnRlbnRfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAkY29tbWVudC1oZWFkZXItZm9udC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xuICAgIH1cblxuICAgIC5jb21tZW50LWRldGFpbCB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC1zaXplOiAuOWVtO1xuICAgICAgICBjb2xvcjogJGNvbW1lbnQtZGV0YWlsLWNvbG9yO1xuICAgIH1cbn1cblxuLmNvbW1lbnQtc3Rhci1yYXRpbmcgaSB7XG4gICAgY29sb3I6ICRjb21tZW50LXN0YXItY29sb3I7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMnB4O1xufVxuXG4uY29tbWVudC1zdGFyLXJhdGluZyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbjogMDtcblxuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbn1cblxuLmNvbW1lbnQtc3Rhci1yYXRpbmctY291bnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jb21tZW50LWRldGFpbCB7XG4gICAgLmNvbW1lbnQtc3Rhci1yYXRpbmcge1xuICAgICAgICBvcGFjaXR5OiAuNTtcbiAgICAgICAgZmlnY2FwdGlvbiB7XG4gICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNvbW1lbnRzLWZvcm0ge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xufVxuXG4uY29tbWVudHMtZm9ybS13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cblxuLmNvbW1lbnRzLWZvcm0tZXJyb3I6ZW1wdHksXG4uY29tbWVudC1mb3JtLXZhbGlkYXRpb24tZXJyb3JzOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uY29tbWVudHMtZ3VpZGVsaW5lcyB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgXG4gICAgcCwgbGkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICB9XG59XG5cbiNwcm9kdWt0X2FubWVsZGVsc2VyX2Zvcm1fdmFsaWRlcnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5jb21tZW50LWltYWdlIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAkY29tbWVudC1pbWFnZS13aWR0aC1sYXJnZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb21tZW50LWF2YXRhciB7XG4gICAgICAgIGhlaWdodDogJGNvbW1lbnQtYXZhdGFyLWJveC1zaXplLWxhcmdlO1xuICAgICAgICB3aWR0aDogJGNvbW1lbnQtYXZhdGFyLWJveC1zaXplLWxhcmdlO1xuICAgIH1cbn0iLCIuY29va2llX25vdGljZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDM5MHB4O1xuICAgIHotaW5kZXg6IDk5OTk5OTk7XG4gICAgbWF4LWhlaWdodDogOTUlO1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIGJvdHRvbTogMjBweDtcbn1cblxuLmNvb2tpZV9ub3RpY2VfYXJlYSB7XG5cdG1hcmdpbi1sZWZ0OiA1JTtcblx0bWFyZ2luLXJpZ2h0OiA1JTtcbiAgICBtYXJnaW4tYm90dG9tOiA1JTtcbn1cblxuI2Nvb2tpZV9ub3RpY2VfdGV4dCB7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICAgIGNvbG9yOndoaXRlO1xufVxuXG4jY29va2llX2J1dHRvbnMgYSB7XG4gICAgcGFkZGluZzogOHB4O1xuXG4gICAgJjp2aXNpdGVkLCBcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG59XG5cbiNjb29raWVfYnV0dG9ucyBzcGFuIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufSIsIi8vIEVxdWFsIGhlaWdodCBjb2x1bW4gZ3JpZCwgbWVkaWEgcXVlcnkgc2V0dGluZ3NcbiRlcXVhbC1jb2wtZ3JpZC1zbWFsbC1yYW5nZTogICAoMGVtLCAyOS45MzdlbSkgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbWVkaXVtLXJhbmdlOiAgKDMwZW0sIDQ3LjkzN2VtKSAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtZ3JpZC1sYXJnZS1yYW5nZTogICAoNDhlbSwgNjMuOTM3ZW0pICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS1yYW5nZTogICg2NGVtLCA5MGVtKSAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtZ3JpZC14eGxhcmdlLXJhbmdlOiAgKDkwLjA2M2VtLCA5OTk5OTk5OWVtKSAhZGVmYXVsdDtcblxuJGVxdWFsLWNvbC1ncmlkLXNtYWxsLXVwOiAgICAgICRzY3JlZW4gIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtc21hbGwtb25seTogICAgXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLXNtYWxsLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbWVkaXVtLXVwOiAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLW1lZGl1bS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLW1lZGl1bS1vbmx5OiAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC1tZWRpdW0tcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQtbWVkaXVtLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbGFyZ2UtdXA6ICAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLWxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbGFyZ2Utb25seTogICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLWxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLWxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQteGxhcmdlLXVwOiAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS1vbmx5OiAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC14bGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQteGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQteHhsYXJnZS11cDogICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLXh4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtZ3JpZC14eGxhcmdlLW9ubHk6ICBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQteHhsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC14eGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAuZmxleGJveCAmIHtcbiAgICAgICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICAgIH1cblxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0rW2NsYXNzKj1cImNvbHVtblwiXTpsYXN0LWNoaWxkIHsgLy8gTmVnYXRlIHRoZSBmb3VuZGF0aW9uIGdyaWQgY3NzXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbn1cblxuLmVxdWFsLWhlaWdodC1jb2x1bW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgLmZsZXhib3ggJiB7XG4gICAgICAgIEBpbmNsdWRlIGRpc3BsYXkoZmxleCk7XG4gICAgfVxuXG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogJGNvbHVtbi1ndXR0ZXIvMjtcbn1cblxuLmVxdWFsLWhlaWdodC1jb2x1bW4taW5uZXJ3cmFwIHtcbiAgICBwYWRkaW5nOiAkZXF1YWwtY29sLWlubmVyLXBhZGRpbmc7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZmxleGJveCxcbi5uby1qcyB7XG4gICAgLmVxdWFsLWhlaWdodC1jb2x1bW4taW5uZXJ3cmFwICB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uX19pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyNTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogLjc1cmVtO1xuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uX19yZWFkb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xufVxuXG4vKiAyIGNvbHVtbnMgKi9cbkBtZWRpYSAjeyRlcXVhbC1jb2wtZ3JpZC1tZWRpdW0tdXB9IHtcbiAgICAuZXF1YWwtaGVpZ2h0LWNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOjYsICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgIH1cblxuICAgIC5lcXVhbC1oZWlnaHQtY29sdW1uX19pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIDMgY29sdW1ucyAqL1xuQG1lZGlhICN7JGVxdWFsLWNvbC1ncmlkLWxhcmdlLXVwfSAge1xuICAgIC5lcXVhbC1oZWlnaHQtY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6NCwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxufVxuXG4vKiA0IGNvbHVtbnMgKi9cbkBtZWRpYSAjeyRlcXVhbC1jb2wtZ3JpZC14bGFyZ2UtdXB9ICB7XG4gICAgLm5vLXNwbGl0LW1lbnUgLmVxdWFsLWhlaWdodC1jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczozLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG59IiwiLyohIGZhbmN5Qm94IHYyLjEuNSBmYW5jeWFwcHMuY29tIHwgZmFuY3lhcHBzLmNvbS9mYW5jeWJveC8jbGljZW5zZSAqL1xuLmZhbmN5Ym94LXdyYXAsXG4uZmFuY3lib3gtc2tpbixcbi5mYW5jeWJveC1vdXRlcixcbi5mYW5jeWJveC1pbm5lcixcbi5mYW5jeWJveC1pbWFnZSxcbi5mYW5jeWJveC13cmFwIGlmcmFtZSxcbi5mYW5jeWJveC13cmFwIG9iamVjdCxcbi5mYW5jeWJveC1uYXYsXG4uZmFuY3lib3gtbmF2IHNwYW4sXG4uZmFuY3lib3gtdG1wXG57XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLmZhbmN5Ym94LXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiA4MDIwO1xufVxuXG4uZmFuY3lib3gtc2tpbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gICAgY29sb3I6ICM0NDQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5mYW5jeWJveC1vcGVuZWQge1xuICAgIHotaW5kZXg6IDgwMzA7XG59XG5cbi5mYW5jeWJveC1vcGVuZWQgLmZhbmN5Ym94LXNraW4ge1xuICAgLW1vei1ib3gtc2hhZG93OiAwIDEwcHggMjVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuLmZhbmN5Ym94LW91dGVyLCAuZmFuY3lib3gtaW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZhbmN5Ym94LWlubmVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZmFuY3lib3gtdHlwZS1pZnJhbWUgLmZhbmN5Ym94LWlubmVyIHtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5mYW5jeWJveC1lcnJvciB7XG4gICAgY29sb3I6ICM0NDQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmZhbmN5Ym94LWltYWdlLCAuZmFuY3lib3gtaWZyYW1lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mYW5jeWJveC1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbiNmYW5jeWJveC1sb2FkaW5nLCAuZmFuY3lib3gtY2xvc2UsIC5mYW5jeWJveC1wcmV2IHNwYW4sIC5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWcvZmFuY3lib3hfc3ByaXRlLnBuZycpO1xufVxuXG4jZmFuY3lib3gtbG9hZGluZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMjJweDtcbiAgICBtYXJnaW4tbGVmdDogLTIycHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTA4cHg7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB6LWluZGV4OiA4MDYwO1xufVxuXG4jZmFuY3lib3gtbG9hZGluZyBkaXYge1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy9hc3NldHMvaW1nL2ZhbmN5Ym94X2xvYWRpbmcuZ2lmJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG59XG5cbi5mYW5jeWJveC1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTE4cHg7XG4gICAgcmlnaHQ6IC0xOHB4O1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgei1pbmRleDogODA0MDtcbn1cblxuLmZhbmN5Ym94LW5hdiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogNDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbiAgICB6LWluZGV4OiA4MDQwO1xufVxuXG4uZmFuY3lib3gtcHJldiB7XG4gICAgbGVmdDogMDtcbn1cblxuLmZhbmN5Ym94LW5leHQge1xuICAgIHJpZ2h0OiAwO1xufVxuXG4uZmFuY3lib3gtbmF2IHNwYW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgbWFyZ2luLXRvcDogLTE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDgwNDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uZmFuY3lib3gtcHJldiBzcGFuIHtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTM2cHg7XG59XG5cbi5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTcycHg7XG59XG5cbi5mYW5jeWJveC1uYXY6aG92ZXIgc3BhbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLmZhbmN5Ym94LXRtcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTk5OTk5cHg7XG4gICAgbGVmdDogLTk5OTk5cHg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG1heC13aWR0aDogOTk5OTlweDtcbiAgICBtYXgtaGVpZ2h0OiA5OTk5OXB4O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi8qIE92ZXJsYXkgaGVscGVyICovXG5cbi5mYW5jeWJveC1sb2NrIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi5mYW5jeWJveC1sb2NrIGJvZHkge1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLmZhbmN5Ym94LWxvY2stdGVzdCB7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5mYW5jeWJveC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHotaW5kZXg6IDgwMTA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuNzUpO1xufVxuXG4uZmFuY3lib3gtb3ZlcmxheS1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbn1cblxuLmZhbmN5Ym94LWxvY2sgLmZhbmN5Ym94LW92ZXJsYXkge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLyogVGl0bGUgaGVscGVyICovXG5cbi5mYW5jeWJveC10aXRsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICB6LWluZGV4OiA4MDUwO1xufVxuXG4uZmFuY3lib3gtb3BlbmVkIC5mYW5jeWJveC10aXRsZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLWZsb2F0LXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDUwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAtMzVweDtcbiAgICB6LWluZGV4OiA4MDUwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLWZsb2F0LXdyYXAgLmNoaWxkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgICBwYWRkaW5nOiAycHggMjBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogRmFsbGJhY2sgZm9yIHdlYiBicm93c2VycyB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBSR0JhICovXG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCAjMjIyO1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5mYW5jeWJveC10aXRsZS1vdXRzaWRlLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uZmFuY3lib3gtdGl0bGUtaW5zaWRlLXdyYXAge1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xufVxuXG4uZmFuY3lib3gtdGl0bGUtb3Zlci13cmFwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjgpO1xufVxuXG4vKlJldGluYSBncmFwaGljcyEqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLFxuICAgICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLFxuICAgICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KXtcblxuICAgICNmYW5jeWJveC1sb2FkaW5nLCAuZmFuY3lib3gtY2xvc2UsIC5mYW5jeWJveC1wcmV2IHNwYW4sIC5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1nL2ZhbmN5Ym94X3Nwcml0ZV8yeC5wbmcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA0NHB4IDE1MnB4OyAvKlRoZSBzaXplIG9mIHRoZSBub3JtYWwgaW1hZ2UsIGhhbGYgdGhlIHNpemUgb2YgdGhlIGhpLXJlcyBpbWFnZSovXG4gICAgfVxuXG4gICAgI2ZhbmN5Ym94LWxvYWRpbmcgZGl2IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltZy9mYW5jeWJveF9sb2FkaW5nXzJ4LmdpZicpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDI0cHggMjRweDsgLypUaGUgc2l6ZSBvZiB0aGUgbm9ybWFsIGltYWdlLCBoYWxmIHRoZSBzaXplIG9mIHRoZSBoaS1yZXMgaW1hZ2UqL1xuICAgIH1cbn0iLCIvLyBBZGRvbiB0byBGb3VuZGF0aW9uIEZvcm1zXG5sYWJlbCB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG59XG5cbmxhYmVsID4gaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICAgIG1hcmdpbi1yaWdodDogJGZvcm0tc3BhY2luZyAqIC41O1xufVxuXG4uZXJyb3ItbXNnIHtcbiAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjVlbTtcbn1cblxuaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgdGV4dC1pbmRlbnQ6IC41cmVtO1xufVxuXG4vL0BUT0RPIGRlYWwgd2l0aCA6cGxhY2Vob2xkZXIgY29sb3JzXG4vKiBXZSB1c2UgdGhpcyB0byBnZXQgYmFzaWMgc3R5bGluZyBvbiBhbGwgYmFzaWMgZm9ybSBlbGVtZW50cyAqL1xuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbmlucHV0W3R5cGU9XCJtb250aFwiXSxcbmlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG5pbnB1dFt0eXBlPVwidGVsXCJdLFxuaW5wdXRbdHlwZT1cInRpbWVcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICAgIEBpbmNsdWRlIHJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cyk7XG59XG5cbi8qIEZvdW5kYXRpb24gaGFyZGNvZGVzIHJhZGl1cyB0byAwLCB0aGlzIGZpeGVzIGl0ICovXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0QGluY2x1ZGUgcmFkaXVzKCRidXR0b24tcmFkaXVzKTtcbn1cblxuLnByZWZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcblx0aW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xuXHRcdEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGlucHV0LWJvcmRlci1yYWRpdXMpO1xuXHR9XG59XG4ucG9zdGZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcblx0aW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xuXHRcdEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRpbnB1dC1ib3JkZXItcmFkaXVzKTtcblx0fVxufVxuXG5ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuICAgIHNlbGVjdCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgfVxufSIsIi5rbGFybmFfYm9rcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBtYXgtaGVpZ2h0OiAxMDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ua2xhcm5hLWluZm8ge1xuICAgIC5rbGFybmEtaW5mb19fYmFkZ2Uge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IFxuICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgfVxufVxuXG4ua2xhcm5hLXdpZGdldCB7XG5cdGhlaWdodDogNzBweDtcbn0iLCIkaTE4bi1wb3B1cC1wb3NpdGlvbjogcmlnaHQgIWRlZmF1bHQ7XG5cbi5zZXR0aW5nX19mb3JtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTAwO1xuXG4gICAgaS5mYSB7XG4gICAgICAgIHdpZHRoOiAuOXJlbTtcbiAgICB9XG59XG5cbi5zZXR0aW5nX19idXR0b246Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi5zZXR0aW5nX19zZWxlY3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IC4zO1xuICAgIHdpZHRoOiAxNXJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRpMThuLXBvcHVwLXBvc2l0aW9uID09IHJpZ2h0LCAwLCAtOTIlKSwgLTFyZW0sIDAsIHNjYWxlM2QoLjksIC45LCAuOSkpO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcywgLXdlYmtpdC10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IGVhc2UsIDBzO1xuICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLCAtbW96LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZSwgLW8tdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLCB0cmFuc2Zvcm0gMTUwbXMgZWFzZTtcblxuICAgICYgPiAqIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBzZWxlY3Qge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDY1JTtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzNyk7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzcpO1xuICAgICAgICBwYWRkaW5nOiAwIC41cmVtO1xuICAgIH1cbn1cblxuI2xhbmd1YWdlLXNob3csXG4jY3VycmVuY3ktc2hvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNsYW5ndWFnZS1jbG9zZSxcbiNjdXJyZW5jeS1jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI2xhbmd1YWdlLXNob3c6dGFyZ2V0LFxuI2N1cnJlbmN5LXNob3c6dGFyZ2V0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuI2xhbmd1YWdlLXNob3c6dGFyZ2V0ICsgI2xhbmd1YWdlLWNsb3NlLFxuI2N1cnJlbmN5LXNob3c6dGFyZ2V0ICsgI2N1cnJlbmN5LWNsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jbGFuZ3VhZ2UtY2xvc2U6dGFyZ2V0LFxuI2N1cnJlbmN5LWNsb3NlOnRhcmdldCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNsYW5ndWFnZS1jbG9zZTp0YXJnZXQgKyAjbGFuZ3VhZ2Utc2hvdyxcbiNjdXJyZW5jeS1jbG9zZTp0YXJnZXQgKyAjY3VycmVuY3ktc2hvdyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI2xhbmd1YWdlLWNsb3NlOnRhcmdldCB+ICNsYW5ndWFnZSxcbiNjdXJyZW5jeS1jbG9zZTp0YXJnZXQgfiAjY3VycmVuY3kge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJGkxOG4tcG9wdXAtcG9zaXRpb24gPT0gcmlnaHQsIDAsIC05MCUpLCAwLCAwLCBzY2FsZTNkKDEsIDEsIDEpKTtcbn1cblxuLmpzLW5hdiAjbGFuZ3VhZ2UsXG4uanMtbmF2ICNjdXJyZW5jeSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn0iLCIucGFnaW5hdGlvbi13cmFwcGVyIHtcbiAgICBwYWRkaW5nLXRvcDogJGNvbHVtbi1ndXR0ZXI7ICAgIFxufSIsIiRzZWN0aW9uLXNwYWNpbmctc2l6ZTogMnJlbSAhZGVmYXVsdDtcblxuLnBhZ2UtZGl2aWRlciB7XG4gICAgcGFkZGluZzogJHNlY3Rpb24tc3BhY2luZy1zaXplIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4ucGFnZS1kaXZpZGVyX19oZWFkZXItd3JhcHBlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZihsdW1hKCRjb250ZW50LWJnKSA8IDUwLCBsaWdodGVuKCRjb250ZW50LWJnLCAxMCUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDEwJSkpO1xuICAgIH1cbn1cblxuLnBhZ2UtZGl2aWRlcl9faGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29udGVudC1iZztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgcGFkZGluZzogMCByZW0tY2FsYygxMCk7XG4gICAgbWFyZ2luOiAwO1xufSIsIi8vIFBhZ2Utc3BlY2lmaWMgc3R5bGVzIFxuQGltcG9ydCBcInBhZ2VzL2NhcnRcIjtcbkBpbXBvcnQgXCJwYWdlcy9mcm9udHBhZ2VcIjtcbkBpbXBvcnQgXCJwYWdlcy9yZWNlaXB0XCI7XG5AaW1wb3J0IFwicGFnZXMvcmVnaXN0ZXItYWNjb3VudFwiO1xuQGltcG9ydCBcInBhZ2VzL3dpc2hsaXN0XCI7XG4iLCIja25hcHBlLW1lbnVfa2pvcCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIH1cbn0iLCIuZnJvbnRwYWdlX19jdXN0b20tY29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG59IiwiLnJlY2VpcHRfX2hlYWRlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5idXR0b24ucmVjZWlwdF9fcHJpbnQge1xuICAgIEBleHRlbmQgJWNvbnRlbnRfX3ByaW1hcnktY29sb3ItYmc7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXRvcDogLjE1cmVtO1xufVxuXG4ucmVjZWlwdF9fdGhhbmtzIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnJlY2VpcHRfX29yZGVyLW92ZXJ2aWV3LFxuLnJlY2VpcHRfX2N1c3RvbWVyLWluZm8ge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLnJlY2VpcHRfX3ByaW50IHtcbiAgICAgICAgbWFyZ2luLXRvcDogLjVyZW07XG4gICAgfVxuXG4gICAgLnJlY2VpcHRfX29yZGVyLW92ZXJ2aWV3LFxuICAgIC5yZWNlaXB0X19jdXN0b21lci1pbmZvIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogNjAlO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLnJlY2VpcHRfX29yZGVyLW92ZXJ2aWV3LFxuICAgIC5yZWNlaXB0X19jdXN0b21lci1pbmZvIHtcbiAgICAgICAgbWluLXdpZHRoOiA1MCU7XG4gICAgfVxufSIsIlxuaHRtbC5wbGFjZWhvbGRlciAuaGFzLXBsYWNlaG9sZGVyIHtcbiAgICBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ubG9naW4tY29sdW1uLCAucmVnaXN0ZXItY29sdW1uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgXG4gICAgPiBmb3JtIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5pY29uLWxvZy1vdXQgYSB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWV4aXQtdG8tYXBwKTtcbiAgICB9XG59XG5cbi5hY2NvdW50LXRhYnMge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcblxuICAgIC50YWItdGl0bGUgYSB7XG4gICAgICAgIHBhZGRpbmc6IDAgLjZyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg0MCk7XG5cbiAgICAgICAgLnRvdWNoICYge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZWRpdC1hY2NvdW50LXBhZ2UsXG4uZ2lmdC1jZXJ0aWZpY2F0ZS1wYWdlIHtcbiAgICBmaWVsZHNldCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBmb3JtIHtcbiAgICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjogbmVzdCk7IFxuXG4gICAgICAgICAgICAuY29sdW1uLCBcbiAgICAgICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigpOyBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250cm9sLWdyb3VwIC5jb250cm9sLWdyb3VwIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZWRpdC1hY2NvdW50X19idXR0b25zIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcblxuICAgIC5pY29uIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICB9XG59XG5cbi5rYXNzZV9vbmVfbG9nZ2lubl9lcnJvciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbn1cblxuQG1lZGlhICN7JHNtYWxsLXBsdXMtZG93bn0ge1xuICAgIC5sb2dpbi1jb2x1bW4ge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIC5pY29uLWxvZy1vdXQgYSB7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50YWJzIC5pY29uLWxvZy1vdXQgPiBhIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLXVwfSB7XG4gICAgLnRhYnMgeyAgICAgIFxuICAgICAgICAudGFiLXRpdGxlID4gYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmljb24tbG9nLW91dCA+IGEge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLmVkaXQtYWNjb3VudF9fYnV0dG9ucyB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59IiwiI3dpc2hsaXN0X3RhYmxlIHtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG59XG5cbi53aXNobGlzdF9fcHJvZHVjdC1uYW1lIHtcbiAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLndpc2hsaXN0X19idXR0b24tY2VsbCB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIGlucHV0W3R5cGU9c3VibWl0XSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4ud2lzaGxpc3RfX2RlbGV0ZSxcbi53aXNobGlzdF9fZGVsZXRlOmhvdmVyIHtcbiAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgI3dpc2hsaXN0X3RhYmxlIHtcbiAgICAgICAgbWluLXdpZHRoOiA4MCU7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAjd2lzaGxpc3RfdGFibGUge1xuICAgICAgICBtaW4td2lkdGg6IDYwJTtcbiAgICB9XG59IiwiJHByb2R1Y3QtdGl0bGUtYm9yZGVyLWNvbG9yOiAgICAgICAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHByb2R1Y3QtcHJpY2UtZm9udHNpemU6ICAgICAgICAgICByZW0tY2FsYygzNikgIWRlZmF1bHQ7XG4kcHJvZHVjdC1wcmljZS1mb250c2l6ZS1sZzogICAgICAgIHJlbS1jYWxjKDM2KSAhZGVmYXVsdDtcbiRwcm9kdWN0LXN0b2NrLXN0YXR1cy1jb2xvcjogICAgICAgJHNtYWxsLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbWFnZS1jYXB0aW9uLXBhZGRpbmc6ICAgIC41cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtaW1hZ2UtY2FwdGlvbi1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJHByb2R1Y3QtaW1hZ2UtY2FwdGlvbi1oZWlnaHQ6ICAgICAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICsgMiAqICRwcm9kdWN0LWltYWdlLWNhcHRpb24tcGFkZGluZyAhZGVmYXVsdDtcbiRwcm9kdWN0LXNob3ctdGh1bWJzLW9uLW1lZGl1bS11cDogdHJ1ZSAhZGVmYXVsdDtcblxuQGlmICRwcm9kdWN0LXNob3ctdGh1bWJzLW9uLW1lZGl1bS11cCA9PSB0cnVlIHtcbiAgICAkdGh1bWItZG90cy1yYW5nZTogJHNtYWxsLW9ubHk7XG59IEBlbHNlIHtcbiAgICAkdGh1bWItZG90cy1yYW5nZTogJHNtYWxsLXVwO1xufVxuXG4ucHJvZHVjdF9faW1hZ2VzIHtcbiAgICAmLmludmlzaWJsZSB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgICAmLnNsaWRlci1sb2FkZWQge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnByb2R1Y3RfX21haW4taW1hZ2VzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLnJlYWRvbi1pY29uX19jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5ieC1jYXB0aW9uIHtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3QtaW1hZ2UtY2FwdGlvbi1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLmJ4LXByZXYge1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIC5ieC1uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgfVxufVxuXG4ucHJvZHVjdF9fYnJlYWRjcnVtYnMge1xuICAgIC5jdXJyZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxufVxuXG4ucHJvZHVjdF9fdGl0bGUge1xuICAgIEBleHRlbmQgLmJvcmRlcmVkLS1ib3R0b207XG4gICAgQGV4dGVuZCAlY29udGVudF9fYm9yZGVyZWQtLWhhcmQ7XG59XG5cbi5wcm9kdWN0X19tZXRhLW51bWJlcnMge1xuICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gLSAwLjVyZW07XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuY29tbWVudC1zdGFyLXJhdGluZyB7XG4gICAgICAgIC5pY29uLXN0YXIsXG4gICAgICAgIC5pY29uLXN0YXItaGFsZixcbiAgICAgICAgLmljb24tc3Rhci1vdXRsaW5lIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb21tZW50LXN0YXItcmF0aW5nLWF2ZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbW1lbnQtc3Rhci1yYXRpbmctY291bnQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiAqIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC41cmVtO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG59XG5cbi5wcm9kdWN0X19hcnQtbnItbGFiZWwsXG4ucHJvZHVjdF9fZWFuLWxhYmVsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuMjVyZW07XG59XG5cbi5wcm9kdWN0X19tZXRhLW51bWJlcnNfX3ZhbHVlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuXG4ucHJvZHVjdF9fYXNpZGUtYWRkb24ge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbn1cblxuLnByb2R1Y3Qge1xuICAgIC5wcmljZSB7XG4gICAgICAgIEBleHRlbmQgJWNvbnRlbnRfX3ByaW1hcnktY29sb3ItYmlnO1xuICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXByaWNlLWZvbnRzaXplO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAucHJpY2UtLW9yaWdpbmFsIHtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY2xlYXI6IGJvdGg7XG5cbiAgICAgICAgLmN1cnJlbmN5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudmF0LWluZm8sXG4gICAgLnByaWNlLS1vcmlnaW5hbCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuICAgIH1cblxuICAgIC5kaXNjb3VudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnZhdC1pbmZvIHtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICB9XG5cbiAgICAuY3VycmVuY3kge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICB9XG5cbiAgICAucHJpY2VfX3NhbGVwcmljZS10ZXh0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XG4gICAgfVxuXG4gICAgLm9mZmVycyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICB9XG59XG5cbi5wcm9kdWN0X19idXktYnV0dG9uLmJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlY29udGVudF9fcHJpbWFyeS1jb2xvci1iZztcblxuICAgIGkge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICB9XG59XG5cbi5wcm9kdWN0IC5wcm9kdWN0X193aXNobGlzdC1idXR0b24uYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVjb250ZW50X19zZWNvbmRhcnktY29sb3ItYmc7XG59XG5cbi5wcm9kdWN0X19zdG9ja3N0YXR1cyB7XG4gICAgQGV4dGVuZCAuc3VidGxlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtcHJpY2UtZm9udHNpemU7XG59XG5cbi5wcm9kdWN0X19zdG9ja3N0YXR1c19fbnVtYmVyIHtcbiAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHN1Y2Nlc3MtY29sb3IsICRjb250ZW50LWJnKTtcbn1cbi5wcm9kdWN0X19zdG9ja3N0YXR1cy0tc29sZC1vdXQgLnByb2R1Y3RfX3N0b2Nrc3RhdHVzX19udW1iZXJ7XG4gICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRhbGVydC1jb2xvciwgJGNvbnRlbnQtYmcpO1xufVxuXG4ucHJvZHVjdF9fc3RvY2tzdGF0dXMtLWhhcy1leHRyYWluZm8ge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5wcm9kdWN0X19tYWluLWltYWdlc19fbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbn1cblxuLnByb2R1Y3RfX3F1YW50dW0tZGlzY291bnRzIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnByb2R1Y3RfX2F0dHJpYnV0ZXMsXG4ucHJvZHVjdF9fZXh0cmFmaWVsZCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QpO1xufVxuXG4ucHJvZHVjdF9fZXh0cmFmaWVsZF9fd3JhcCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDEyKTtcbn1cblxuLnByb2R1Y3RfX2F0dHJpYnV0ZSxcbi5wcm9kdWN0X19xdWFudGl0eSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDYpO1xufVxuXG4ucHJvZHVjdF9fZXh0cmFmaWVsZF9fcHJpY2VpbmZvIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbn1cblxuLnByb2R1Y3RfX3JlbGF0ZWQtcHJvZHVjdHMge1xuICAgIHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgLnByb2R1Y3RfX21haW4taW1hZ2VzIC5ieC1jYXB0aW9uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHRodW1iLWRvdHMtcmFuZ2V9IHtcbiAgICAucHJvZHVjdF9faW1hZ2VnYWxsZXJ5IHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAudGgge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIGhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuNzU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItYnJpZ2h0bmVzcy0xKTsgLy8gQSBjaXJjdWxhciBpY29uXG4gICAgICAgICAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogLjI1O1xuICAgICAgICAgICAgICAgIGhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGZvbnQtc2l6ZSAyMDBtcyBlYXNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5hY3RpdmU6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC43NTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLWRvd259IHtcbiAgICAucHJvZHVjdF9fdGl0bGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLW9ubHl9IHtcbiAgICAucHJvZHVjdF9faW5mbyxcbiAgICAucHJvZHVjdF9fYWJvdXQsXG4gICAgLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeV9fd3JhcHBlcixcbiAgICAucHJvZHVjdF9fcmVsYXRlZC1wcm9kdWN0cyB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEwKTtcbiAgICB9XG5cbiAgICAucHJvZHVjdCB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXByaWNlLWZvbnRzaXplLWxnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX3N0b2Nrc3RhdHVzOm5vdCgucHJvZHVjdF9fc3RvY2tzdGF0dXMtLWhhcy1leHRyYWluZm8pIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXByaWNlLWZvbnRzaXplLWxnO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5wcm9kdWN0X19pbmZvIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNik7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2Fib3V0LFxuICAgIC5wcm9kdWN0X19pbWFnZWdhbGxlcnlfX3dyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2ltYWdlcyxcbiAgICAucHJvZHVjdF9faW5mbyxcbiAgICAucHJvZHVjdF9fbWFpbi1pbWFnZXMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fYnJlYWRjcnVtYnMge1xuICAgICAgICAuY3VycmVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdF9fbWFpbi1pbWFnZXMge1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAucmVhZG9uLWljb25fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0X19tYWluLWltYWdlc19fbGluayB7XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJHByb2R1Y3Qtc2hvdy10aHVtYnMtb24tbWVkaXVtLXVwID09IHRydWUge1xuICAgICAgICAucHJvZHVjdF9faW1hZ2VnYWxsZXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQoNCk7XG4gICAgICAgIH1cblxuICAgICAgICBsaS5wcm9kdWN0X19pbWFnZWdhbGxlcnlfX2ltYWdld3JhcCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDUuNzVyZW07XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRoIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIEBpZiAkdGh1bWItYm9yZGVyLXdpZHRoID4gMCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0aHVtYi1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICR0aHVtYi1ib3gtc2hhZG93ICE9IG5vbmUge1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYmxhY2ssICRjb250ZW50LWJnLCA5KSwuMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogLjg7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBAaWYgJHRodW1iLWJveC1zaGFkb3ctaG92ZXIgIT0gbm9uZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBlYXN5IHdheSB0byBtYW5pcHVsYXRlIHRoZSBib3ggc2hhZG93IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2JveC1zaGFkb3c6ICR0aHVtYi1ib3gtc2hhZG93LWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDZweCAxcHggcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcsIDkpLCAwLjUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2luZ3Jlc3Mge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fc3RvY2tzdGF0dXM6bm90KC5wcm9kdWN0X19zdG9ja3N0YXR1cy0taGFzLWV4dHJhaW5mbykge1xuICAgICAgICBsaW5lLWhlaWdodDogI3skcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICogMXJlbX07XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2J1eS1idXR0b24uYnV0dG9uLFxuICAgIC5wcm9kdWN0X193aXNobGlzdC1idXR0b24uYnV0dG9uIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygkYnV0dG9uLXJhZGl1cyk7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAucHJvZHVjdF9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDQ0KTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9faW5ncmVzcyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fc3RvY2tzdGF0dXM6bm90KC5wcm9kdWN0X19zdG9ja3N0YXR1cy0taGFzLWV4dHJhaW5mbykge1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtcHJpY2UtZm9udHNpemUtbGc7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2Fib3V0Lm1lZGl1bS11bmNlbnRlcmVkOmxhc3QtY2hpbGQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgQGlmICRwcm9kdWN0LXNob3ctdGh1bWJzLW9uLW1lZGl1bS11cCA9PSB0cnVlIHtcbiAgICAgICAgLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkKDUpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkucHJvZHVjdF9faW1hZ2VnYWxsZXJ5X19pbWFnZXdyYXAge1xuICAgICAgICAgICAgaGVpZ2h0OiA2cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2F0dHJpYnV0ZSxcbiAgICAucHJvZHVjdF9fcXVhbnRpdHkge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogNCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2V4dHJhZmllbGRfX3dyYXAge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogOCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3Qge1xuICAgICAgICAucHJvZHVjdF9fYnV5LWJ1dHRvbi5idXR0b24sXG4gICAgICAgIC5wcm9kdWN0X193aXNobGlzdC1idXR0b24uYnV0dG9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCIkcHJvZHVjdC1zZWFyY2gtaG9yaXpvbnRhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmc6IC4yNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXNlYXJjaC1saW5rLWxpbmUtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtYmc6ICNmZmZmZmYgIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtYmcsICRwcm9kdWN0LXNlYXJjaC1yZXN1bHRzLWJnKSAhZGVmYXVsdDtcblxuLnByb2R1Y3Qtc2VhcmNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjAwO1xufVxuXG4ucHJvZHVjdC1zZWFyY2gtcmVzdWx0cyB7XG4gICAgb3BhY2l0eTogLjk1O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1iZztcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC4yNXMgZWFzZSk7XG5cbiAgICAucHJvZHVjdC1zZWFyY2hfX291dHB1dCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmcgMDtcbiAgICB9XG5cbiAgICAmLmlzLWhpZGRlbiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlWCgtOTBkZWcpIHNjYWxlKC44KSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oNTAlIDApO1xuICAgIH1cbn1cblxuLnByb2R1Y3Qtc2VhcmNoX19uby1oaXRzOm5vdCguaXMtaGlkZGVuKSArIC5wcm9kdWN0LXNlYXJjaF9fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5wcm9kdWN0LXNlYXJjaF9fZWxlbWVudCBhIHtcbiAgICBwYWRkaW5nOiAkcHJvZHVjdC1zZWFyY2gtdmVydGljYWwtcGFkZGluZyAkcHJvZHVjdC1zZWFyY2gtaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1iZywgJGhvdmVyLWNvbG9yLCA3KSFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1jb2xvciFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgaHRtbC50b3VjaCAmIHtcbiAgICAgICAgcGFkZGluZzogI3soJHRvdWNoLWZyaWVuZGx5LXNpemUgLSAkYmFzZS1saW5lLWhlaWdodCAqIDFyZW0pLzJ9ICRwcm9kdWN0LXNlYXJjaC1ob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgfVxufVxuXG4ucHJvZHVjdC1zZWFyY2hfX2V4dHJhLWhpdHMge1xuICAgIG1hcmdpbjogMDtcblxuICAgIGEge1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3Qtc2VhcmNoLWxpbmstbGluZS1oZWlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdC1zZWFyY2gtdmVydGljYWwtcGFkZGluZyAkcHJvZHVjdC1zZWFyY2gtaG9yaXpvbnRhbC1wYWRkaW5nO1xuXG4gICAgICAgIGh0bWwudG91Y2ggJiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAjeygkdG91Y2gtZnJpZW5kbHktc2l6ZSAtICRwcm9kdWN0LXNlYXJjaC12ZXJ0aWNhbC1wYWRkaW5nICogMikvMn0gJHByb2R1Y3Qtc2VhcmNoLWhvcml6b250YWwtcGFkZGluZztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnByb2R1Y3Qtc2VhcmNoX19uby1oaXRzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmcgJHByb2R1Y3Qtc2VhcmNoLWhvcml6b250YWwtcGFkZGluZztcbiAgICBjb2xvcjogJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtY29sb3I7XG59IiwiJHJhdGluZy1zdGFyLWNvbG9yOiAkY2FsbC10by1hY3Rpb24tY29sb3IgIWRlZmF1bHQ7XG4kcmF0aW5nLXN0YXItc2l6ZTogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJHJhdGluZy1zdGFyLWZvbnRzaXplOiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XG5cbi5yYXRpbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6ICRyYXRpbmctc3Rhci1zaXplO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICBsYWJlbC5zdGFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGNvbG9yOiBnb2xkO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJHJhdGluZy1zdGFyLWZvbnRzaXplICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAkcmF0aW5nLXN0YXItc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcmF0aW5nLXN0YXItc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRyYXRpbmctc3Rhci1zaXplO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICB9XG5cbiAgICBpbnB1dC5zdGFyLWNoZWNrYm94IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogJHJhdGluZy1zdGFyLXNpemU7XG4gICAgICAgIGhlaWdodDogJHJhdGluZy1zdGFyLXNpemU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgIC5yYXRpbmctY2hlY2tib3gtaGlkZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgICAgLnJlc3AtdGFicy1jb250YWluZXIgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1jb250YWluZXItYmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDUge1xuICAgICAgICBsYWJlbC5zdGFyLSN7JGkgKyAxfSxcbiAgICAgICAgaW5wdXQuc3Rhci1jaGVja2JveC0jeyRpICsgMX0ge1xuICAgICAgICAgICAgbGVmdDogI3skaSAqICRyYXRpbmctc3Rhci1zaXplfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zdGFycy1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtaGlkZSgpO1xuICAgIH1cblxuICAgIGxhYmVsOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLXN0YXIpO1xuICAgICAgICBAZXh0ZW5kIC5pY29uLW1lZGl1bTtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkIH4gbGFiZWwge1xuICAgICAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgfVxuXG4gICAgbGFiZWw6aG92ZXIsXG4gICAgaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGdvbGQ7XG4gICAgfVxuXG4gICAgbGFiZWw6aG92ZXIgfiBsYWJlbCB7XG4gICAgICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICB9XG59IiwiJHJlYWRvbi1pY29uLWJnOiAjMDAwICFkZWZhdWx0O1xuJHJlYWRvbi1pY29uLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJHJlYWRvbi1pY29uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjgpICFkZWZhdWx0O1xuJHJlYWRvbi1vdmVybGF5LW9wYWNpdHk6IC41ICFkZWZhdWx0O1xuJHJlYWRvbi1pY29uLW9wYWNpdHk6IC42ICFkZWZhdWx0O1xuJHJlYWRvbi1pY29uLWhvdmVyLW9wYWNpdHk6IC45ICFkZWZhdWx0O1xuXG4ucmVhZG9uLWljb25fX2NvbnRhaW5lciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRjb250ZW50LWJnLCAkcmVhZG9uLW92ZXJsYXktb3BhY2l0eSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAxNTBtcyBlYXNlKTtcblxuICAgIC50b3VjaCAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5yZWFkb24taWNvbiB7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwwLDAsc2NhbGUzZCgwLjUsIDAuNSwgMC41KSk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zLCAtd2Via2l0LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogZWFzZSwgMHM7XG4gICAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIC1tb3otdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCAtby10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIHRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg0NCk7XG4gICAgd2lkdGg6IHJlbS1jYWxjKDQ0KTtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDQ0KTtcbiAgICBmb250LXNpemU6ICRyZWFkb24taWNvbi1mb250LXNpemU7XG4gICAgY29sb3I6ICRyZWFkb24taWNvbi1jb2xvcjtcbiAgICBvcGFjaXR5OiAuNjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVhZG9uLWljb24tYmc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIHJlbS1jYWxjKDIyKSwgbXMgc3BlYyk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogLjk7XG4gICAgfVxufVxuXG4ucmVhZG9uLWljb25fX3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgIC5yZWFkb24taWNvbl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAucmVhZG9uLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwwLDAsc2NhbGUzZCgxLCAxLCAxKSk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiJHNob3AtZmVhdHVyZS1pY29uLXNpemU6IDVyZW0gIWRlZmF1bHQ7XG4kc2hvcC1mZWF0dXJlLWljb24tYmc6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDEwJSksIGRhcmtlbigkY29udGVudC1iZywgNyUpKSAhZGVmYXVsdDtcbiRzZWN0aW9uLXNwYWNpbmctc2l6ZTogMnJlbSAhZGVmYXVsdDtcbiRzaG9wLWZlYXR1cmUtaWNvbi1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoIzAwMCwgJHNob3AtZmVhdHVyZS1pY29uLWJnKSAhZGVmYXVsdDtcblxuLnNob3AtZmVhdHVyZXMge1xuICAgIEBleHRlbmQgLnBhZ2UtZGl2aWRlcjtcbiAgICBwYWRkaW5nLXRvcDogMDtcbn1cblxuLnNob3AtZmVhdHVyZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206ICRzZWN0aW9uLXNwYWNpbmctc2l6ZS8yO1xufVxuXG4uc2hvcC1mZWF0dXJlX19oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLXRvcDogJHNob3AtZmVhdHVyZS1pY29uLXNpemUgKyAxcmVtO1xufVxuXG4uc2hvcC1mZWF0dXJlX19zdWJoZWFkZXIge1xuICAgIEBleHRlbmQgJXNsYWItc2VwYXJhdG9yO1xuXG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiAxLjNyZW07XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4gICAgcGFkZGluZy10b3A6IC44cmVtO1xufVxuXG4uc2hvcC1mZWF0dXJlX19pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsaW5lLWhlaWdodDogJHNob3AtZmVhdHVyZS1pY29uLXNpemU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNob3AtZmVhdHVyZS1pY29uLWJnO1xuICAgIEBpbmNsdWRlIHJhZGl1cyg1MCUpO1xuICAgIHdpZHRoOiAkc2hvcC1mZWF0dXJlLWljb24tc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaG9wLWZlYXR1cmUtaWNvbi1zaXplO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogMDtcbiAgICBtYXJnaW4tbGVmdDogLSRzaG9wLWZlYXR1cmUtaWNvbi1zaXplLzI7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAwO1xuICAgICAgICBjb2xvcjogJHNob3AtZmVhdHVyZS1pY29uLWNvbG9yO1xuICAgIH1cbn1cblxuYS5zaG9wLWZlYXR1cmUtLWxpbmtlZCB7ICAgXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBcblxuICAgIHAge1xuICAgICAgICBjb2xvcjogJGNvbnRlbnQtdGV4dC1jb2xvcjtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLXVwfSB7XG4gICAgLnNob3AtZmVhdHVyZSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiA2LCAkZmxvYXQ6IG5vbmUpO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5zaG9wLWZlYXR1cmUge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogNCwgJGZsb2F0OiBub25lKTtcbiAgICAgICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59IiwiLnNsaWRlciB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uc2xpZGVyX193cmFwcGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IC0jeyRjb2x1bW4tZ3V0dGVyLzJ9O1xuICAgIG1hcmdpbi1sZWZ0OiAtI3skY29sdW1uLWd1dHRlci8yfTtcbn1cblxuLnNsaWRlLS1hbGlnbi1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnNsaWRlLS1hbGlnbi1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uc2xpZGUtLWFsaWduLXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnNsaWRlIHtcbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAuYngtd3JhcHBlciAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgIC5zbGlkZXJfX3dyYXBwZXIge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH0gICAgXG59IiwiLyogU1BJTk5FUiwgdXNlZCBpbiBjaGVja291dCB3aGlsZSBjYXJ0IGlzIGxvYWRpbmcgZm9yIGluc3RhbmNlICovXG5cbiNzcGlubmVyLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTIwcHg7XG59XG5cbmh0bWwubHQtaWUxMCAjc3Bpbm5lci1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNzcGlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMzBweDtcbiAgICBib3R0b206IDA7XG59XG5cbiNmbG9hdGluZ0NpcmNsZXNHIHtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICB3aWR0aDo2MHB4O1xuICAgIGhlaWdodDo2MHB4O1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjYpKTtcbn1cblxuLmZfY2lyY2xlR3tcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkY7XG4gICAgaGVpZ2h0OjExcHg7XG4gICAgd2lkdGg6MTFweDtcbiAgICBib3JkZXItcmFkaXVzOjVweDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tbmFtZShmX2ZhZGVHKTtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZHVyYXRpb24oMC44cyk7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudChpbmZpbml0ZSk7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRpcmVjdGlvbihub3JtYWwpO1xufVxuXG4jZnJvdGF0ZUdfMDF7XG4gICAgbGVmdDowO1xuICAgIHRvcDoyNXB4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjNzKTtcbn1cblxuI2Zyb3RhdGVHXzAye1xuICAgIGxlZnQ6N3B4O1xuICAgIHRvcDo3cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuNHMpO1xufVxuXG4jZnJvdGF0ZUdfMDN7XG4gICAgbGVmdDoyNXB4O1xuICAgIHRvcDowO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjVzKTtcbn1cblxuI2Zyb3RhdGVHXzA0e1xuICAgIHJpZ2h0OjdweDtcbiAgICB0b3A6N3B4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjZzKTtcbn1cblxuI2Zyb3RhdGVHXzA1e1xuICAgIHJpZ2h0OjA7XG4gICAgdG9wOjI1cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuN3MpO1xufVxuXG4jZnJvdGF0ZUdfMDZ7XG4gICAgcmlnaHQ6N3B4O1xuICAgIGJvdHRvbTo3cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuOHMpO1xufVxuXG4jZnJvdGF0ZUdfMDd7XG4gICAgbGVmdDoyNXB4O1xuICAgIGJvdHRvbTowO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjlzKTtcbn1cblxuI2Zyb3RhdGVHXzA4e1xuICAgIGxlZnQ6N3B4O1xuICAgIGJvdHRvbTo3cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDFzKTtcbn1cblxuQC1tb3ota2V5ZnJhbWVzIGZfZmFkZUd7XG4gICAgMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwfVxuXG4gICAgMTAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkZ9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmX2ZhZGVHe1xuICAgIDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMH1cblxuICAgIDEwMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGfVxufVxuXG5ALW1zLWtleWZyYW1lcyBmX2ZhZGVHe1xuICAgIDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMH1cblxuICAgIDEwMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGfVxufVxuXG5ALW8ta2V5ZnJhbWVzIGZfZmFkZUd7XG4gICAgMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwfVxuXG4gICAgMTAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkZ9XG59XG5cbkBrZXlmcmFtZXMgZl9mYWRlR3tcbiAgICAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDB9XG5cbiAgICAxMDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRn1cbn0iLCIkbmF2LXNpZGUtaGVhZGVyLWZvbnRzaXplOiAkaDQtZm9udC1zaXplICFkZWZhdWx0O1xuJG5hdi1zaWRlLXRvcC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG4kcGFnZS1oZWFkZXItc2l6ZTogKCRwYWdlLXRpdGxlLXBhZGRpbmcgKiAyICsgJGgxLWZvbnQtc2l6ZSAqICRoZWFkZXItbGluZS1oZWlnaHQpICFkZWZhdWx0O1xuJG5hdi1zaWRlLWhlYWRlci10b3AtcGFkZGluZzogKCRwYWdlLWhlYWRlci1zaXplIC0gJHBhZ2UtdGl0bGUtcGFkZGluZyAtICRuYXYtc2lkZS10b3AtbWFyZ2luIC0gJG5hdi1zaWRlLWhlYWRlci1mb250c2l6ZSAqICRoZWFkZXItbGluZS1oZWlnaHQpICFkZWZhdWx0O1xuJHBhcmFncmFwaC1yZW0tbGluZS1oZWlnaHQ6IDFyZW0gKiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuJGFjdGl2ZS1lbGVtLWJvcmRlci1zaXplOiByZW0tY2FsYyg1KTtcblxuLy8gVGhpcyBjb21wb25lbnQgaXMgb3B0aW9uYWwsIHdoaWNoIGlzIHdoeSBpdCBpcyBpbiBhIG1peGluXG5AbWl4aW4gc3BsaXRtZW51LXN0eWxlcygpIHtcblxuICAgIC5uYXYtc2lkZSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICN7bWF4KDAsIC0kY29sdW1uLWd1dHRlciArICRuYXYtc2lkZS10b3AtbWFyZ2luKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNmY2ZjY7XG4gICAgfVxuXG4gICAgLm5hdi1zaWRlX19oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6ICRuYXYtc2lkZS1oZWFkZXItdG9wLXBhZGRpbmcgMXJlbSAkcGFnZS10aXRsZS1wYWRkaW5nO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkbmF2LXNpZGUtaGVhZGVyLWZvbnRzaXplO1xuICAgIH1cbiAgICBcbiAgICAuc3BsaXRtZW51IHtcblxuICAgICAgICAmLmxldmVsLTAge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxldmVsLTAge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgJi5zZWxlY3RlZCxcbiAgICAgICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5sZXZlbC0xIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sZXZlbC0yIGEge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5zcGxpdG1lbnVfX2l0ZW0ge1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjApO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGNvbG9yOiAjNTQ1NDU0O1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkYWN0aXZlLWVsZW0tYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogKHJlbS1jYWxjKDIwKS8yKSAoMXJlbSAtICRhY3RpdmUtZWxlbS1ib3JkZXItc2l6ZSk7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAgIC5uby10b3VjaCAmIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAocmVtLWNhbGMoMTUpLzIpICgxcmVtIC0gJGFjdGl2ZS1lbGVtLWJvcmRlci1zaXplKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cywgXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaG92ZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1cnJlbnQgPiBhIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkYWN0aXZlLWVsZW0tYm9yZGVyLXNpemUgc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuXG4gICAgICAgICAgICAmOmZvY3VzLCBcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkYWN0aXZlLWVsZW0tYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5zZWxlY3RlZCA+IGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLmxldmVsLTAge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubGV2ZWwtMSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxldmVsLTIgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAubGV2ZWwtMyBhIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuQGlmICRtZW51LXR5cGUgPT0gJ3NwbGl0JyB7XG4gICAgQGluY2x1ZGUgc3BsaXRtZW51LXN0eWxlcztcbn0iLCJ0YWJsZSB7XG4gICAgdGQucHJpcyxcbiAgICB0aC5wcmlzIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxufVxuXG50ci5zdW0ge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYm9keS1mb250LWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IDNweCBkb3VibGUgJGJvZHktZm9udC1jb2xvcjtcbn1cblxudGFibGUgdHIge1xuICAgICYuZXZlbixcbiAgICAmLmFsdCxcbiAgICAmOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgICAgICAgY29sb3I6ICR0YWJsZS1ldmVuLXJvdy10ZXh0LWNvbG9yO1xuICAgIH1cbn0iLCIkaW5jbHVkZS1xdWlja2ZpeC10YWItY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcblxuJHRhYnMtaGVpZ2h0OiAgJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kdGFicy1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuJHRhYnMtYm9yZGVyZWQ6IHRydWUgIWRlZmF1bHQ7XG4kdGFicy1ib3JkZXItY29sb3I6ICRib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1hY3RpdmUtYm9yZGVyLWNvbG9yOiAkdGFicy1hY3RpdmUtYmctY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1ob3Zlci1iZy1jb2xvcjogbGlnaHRlbigkdGFicy1hY3RpdmUtYmctY29sb3IsIDE1JSkgIWRlZmF1bHQ7XG5cbkBtaXhpbiB0YWJzLXN0eWxpbmd7XG4gICAgLnRhYnMge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHRhYnMtYWN0aXZlLWJnLWNvbG9yO1xuICAgIH1cblxuICAgIC5qcy10YWJzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgfVxuXG4gICAgLnJlc3AtdGFicy1saXN0IHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIH1cblxuICAgIC5yZXNwLXRhYi1pdGVtIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgfVxuXG4gICAgLnJlc3AtdGFiLWl0ZW0sXG4gICAgLnJlc3AtYWNjb3JkaW9uIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCR0YWJzLWZvbnQtY29sb3IsICR0YWJzLWJnLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtYmctY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IDAgJHRhYnMtcGFkZGluZztcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR0YWJzLWhlaWdodDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMjAwbXMgZWFzZSk7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duKTtcbiAgICAgICAgICAgIEBleHRlbmQgLmljb24tbGFyZ2U7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gNDAwbXMgZWFzZSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkdGFicy1mb250LWNvbG9yLCAkdGFicy1uYXZpZ2F0aW9uLWhvdmVyLWJnLWNvbG9yKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVzcC10YWJzLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLWNvbnRhaW5lci1iZztcbiAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnJlc3AtYWNjb3JkaW9uIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5yZXNwLXRhYi1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogJHRhYnMtcGFkZGluZztcblxuICAgICAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVzcC10YWItYWN0aXZlLFxuICAgIC5yZXNwLWFjY29yZGlvbi5yZXNwLXRhYi1hY3RpdmUge1xuICAgICAgICBjb2xvcjogJHRhYnMtYWN0aXZlLWZvbnQtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLWFjdGl2ZS1iZy1jb2xvcjtcblxuICAgICAgICAvLyBSb3RhdGUgYXJyb3cgd2hlbiBhY3RpdmF0ZWRcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRleCgxODBkZWcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCR0YWJzLWFjdGl2ZS1mb250LWNvbG9yLCAkdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1ob3Zlci1iZy1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1ob3Zlci1iZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZXNwLWNvbnRlbnQtYWN0aXZlLCBcbiAgICAucmVzcC1hY2NvcmRpb24tYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnJlc3AtZWFzeS1hY2NvcmRpb24gLnJlc3AtYWNjb3JkaW9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnJlc3AtamZpdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICB9XG5cbiAgICAucmVzcC10YWItY29udGVudC1hY3RpdmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKkhlcmUgeW91ciBjYW4gY2hhbmdlIHRoZSBicmVha3BvaW50IHRvIHNldCB0aGUgYWNjb3JkaW9uLCB3aGVuIHNjcmVlbiByZXNvbHV0aW9uIGNoYW5nZWQqL1xuXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcblxuICAgICAgICAuanMtdGFicyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHRhYnMtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlc3AtdGFicy1saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucmVzcC1hY2NvcmRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICR0YWJzLXBhZGRpbmc7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNwLXZ0YWJzIC5yZXNwLXRhYnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiBpbml0aWFsO1xuICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucmVzcC1hY2NvcmRpb24tY2xvc2VkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAucmVzcC10YWItY29udGVudC1hY3RpdmUge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0YWJzLWFjdGl2ZS1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgLmpzLXRhYnMge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0YWJzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIEBjb250ZW50O1xufVxuXG5AaWYgJGluY2x1ZGUtcXVpY2tmaXgtdGFiLWNsYXNzZXMge1xuICBAaW5jbHVkZSB0YWJzLXN0eWxpbmc7XG59IiwiYS50aGVtZWQtbmF2IHtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgfVxufSIsIi5zdWJ0bGUge1xuICAgIG9wYWNpdHk6IC42O1xufSIsIiRzdGlja3ktZm9vdGVyLW1lbnU6IGZhbHNlICFkZWZhdWx0O1xuJHNlYXJjaC1tb2RhbDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiAoJHN0aWNreS1mb290ZXItbWVudSkge1xuICAgIEBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL3N0aWNreS1mb290ZXItbWVudVwiO1xuICAgIEBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL3NsaWRlLWluLW1lbnVcIjtcbn1cblxuQGlmICgkc2VhcmNoLW1vZGFsKSB7XG4gICAgQGltcG9ydCBcInF1aWNrZml4L2NvbXBvbmVudHMvc2VhcmNoLW1vZGFsXCI7XG59XG4iLCIkc3RpY2t5LWZvb3Rlci1tZW51LWJnOiAjRUZFRkVGICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItbWVudS1ib3JkZXItY29sb3I6IGRhcmtlbigkc3RpY2t5LWZvb3Rlci1tZW51LWJnLCAxMCUpICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItbWVudS1jb2xvcjogaWYobHVtYSgkc3RpY2t5LWZvb3Rlci1tZW51LWJnKSA8IDUwLCAjZmZmLCAjMDAwKSAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLWljb24tY29sb3I6ICRzdGlja3ktZm9vdGVyLW1lbnUtY29sb3IgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1oZWlnaHQ6IHJlbS1jYWxjKDYwKSAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTogbWluKHJlbS1jYWxjKDI4KSwgLjQgKiAkc3RpY2t5LWZvb3Rlci1oZWlnaHQpICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1pY29uLXRvcC1wb3NpdGlvbjogJHN0aWNreS1mb290ZXItaGVpZ2h0IC0gJHN0aWNreS1mb290ZXItaWNvbi1zaXplIC0gJHN0aWNreS1mb290ZXItbGFiZWwtZm9udC1zaXplIC0gcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yLWFkanVzdG1lbnQ6IDglICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yOiBpZihsdW1hKCRzdGlja3ktZm9vdGVyLW1lbnUtYmcpIDwgNTAsIGxpZ2h0ZW4oJHN0aWNreS1mb290ZXItbWVudS1iZywgJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yLWFkanVzdG1lbnQpLCBkYXJrZW4oJHN0aWNreS1mb290ZXItbWVudS1iZywgJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yLWFkanVzdG1lbnQpKSAhZGVmYXVsdDtcblxuYm9keS5zdGlja3ktZm9vdGVyLW1lbnUgI2VuZCB7XG4gICAgcGFkZGluZy1ib3R0b206ICRzdGlja3ktZm9vdGVyLWhlaWdodDtcbn1cblxuI21lbnUtdG9nZ2xlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI3N0aWNreS1mb290ZXItbWVudSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRzdGlja3ktZm9vdGVyLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkc3RpY2t5LWZvb3Rlci1tZW51LWJnO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc3RpY2t5LWZvb3Rlci1tZW51LWJvcmRlci1jb2xvcjtcbiAgICB6LWluZGV4OiAyMDI7XG5cbiAgICB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMSk7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogNzAlO1xuICAgICAgICAgICAgdG9wOiAxNSU7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmID4gYSxcbiAgICAgICAgJiA+IGxhYmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3RpY2t5LWZvb3Rlci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTtcblxuICAgICAgICAgICAgbGluZSxcbiAgICAgICAgICAgIGNpcmNsZSB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAkc3RpY2t5LWZvb3Rlci1pY29uLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRzdGlja3ktZm9vdGVyLWljb24tY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJHN0aWNreS1mb290ZXItbWVudS1jb2xvcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5zdGlja3ktZm9vdGVyX19pY29uLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN0aWNreS1mb290ZXItbGFiZWwtZm9udC1zaXplO1xuICAgICAgICBwYWRkaW5nLXRvcDogLjM1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6ICRzdGlja3ktZm9vdGVyLW1lbnUtY29sb3I7XG4gICAgfVxuXG4gICAgLyogTWVudSBzdHlsaW5nICovXG4gICAgI25hdi1vcGVuLWJ0biB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkc3RpY2t5LWZvb3Rlci1pY29uLXNpemU7XG4gICAgfVxuXG4gICAgLyogQ2FydCBzdHlsaW5nICovXG4gICAgLmNhcnQtYW5kLWNoZWNrb3V0IHtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICAgIC5jYXJ0LWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3N0aWNreS1mb290ZXItbWVudV9fY2FydCB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICB0b3A6ICRzdGlja3ktZm9vdGVyLWljb24tdG9wLXBvc2l0aW9uIC0gcmVtLWNhbGMoOSk7XG4gICAgICAgIGxlZnQ6IGNhbGMoNTAlICsgM3B4KTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cbn1cbiIsIiRtZW51LWJnOiAjZmZmICFkZWZhdWx0O1xuJG1lbnUtbGluay1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJvZHktZm9udC1jb2xvciwgJG1lbnUtYmcpO1xuJG1lbnUtbGluay1ob3Zlci1jb2xvcjogaWYoXG4gICAgbHVtYSgkcHJpbWFyeS1jb2xvcikgPiBsdW1hKCRtZW51LWJnKSxcbiAgICBsaWdodGVuKCRtZW51LWxpbmstY29sb3IsIDEwJSksXG4gICAgZGFya2VuKCRtZW51LWxpbmstY29sb3IsIDEwJSlcbik7XG4kbWVudS1oZWFkZXItcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcbiRtZW51LWhlYWRlci1mb250LXNpemU6IHJlbS1jYWxjKDIxKSAhZGVmYXVsdDtcbiRtZW51LWhlYWRlci1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuJG1lbnUtaGVhZGVyLWhlaWdodDogJG1lbnUtaGVhZGVyLXBhZGRpbmcgKiAyICsgJG1lbnUtaGVhZGVyLWZvbnQtc2l6ZSAqICRtZW51LWhlYWRlci1saW5lLWhlaWdodDtcbiRtZW51LWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWxpbmUtaGVpZ2h0OiAxLjI1ICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1oZWlnaHQ6IHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tb3BlbmVyLXNpemU6ICRtZW51LWl0ZW0taGVpZ2h0ICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1pbmRlbnRhdGlvbjogMXJlbSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tYm9yZGVyLWNvbG9yOiAjZWVlICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1ib3JkZXItc3R5bGU6IDFweCBzb2xpZCAjeyRtZW51LWl0ZW0tYm9yZGVyLWNvbG9yfSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0taG92ZXItZWZmZWN0LWNvbG9yOiByZ2JhKCNiYmIsIC4xKSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tc21hbGxlci1mb250LXNpemU6ICRtZW51LWl0ZW0tZm9udC1zaXplIC0gcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG4kbWVudS10cmFuc2l0aW9uLXNwZWVkOiAzMDBtcyAhZGVmYXVsdDtcblxuYm9keS5tZW51LW9wZW4ge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cblxuI21lbnUtbWFzayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDE5OTk7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IC0xMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC41KTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRtZW51LXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgI21lbnUtdG9nZ2xlcjpjaGVja2VkIH4gJiB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4jbWVudSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICB6LWluZGV4OiAyMDAwO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxNDBweCAwIHJnYmEoMCwwLDAsLjE2KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAkbWVudS1iZztcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICB3aWR0aDogNDByZW07XG4gICAgbWF4LXdpZHRoOiA4NSU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0ICRtZW51LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgY3Vyc29yOiBhdXRvO1xuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMHJlbSkge1xuICAgICAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgICAgIG1heC13aWR0aDogNzUlO1xuICAgIH1cblxuICAgICNtZW51LXRvZ2dsZXI6Y2hlY2tlZCB+ICYge1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIGhlYWRlciB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDNkM2QzO1xuICAgICAgICBwYWRkaW5nOiAkbWVudS1oZWFkZXItcGFkZGluZyAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtYmc7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWVudS1oZWFkZXItZm9udC1zaXplO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRtZW51LWhlYWRlci1saW5lLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRtZW51LWhlYWRlci1saW5lLWhlaWdodDtcbiAgICAgICAgICAgIGhlaWdodDogJG1lbnUtaGVhZGVyLWxpbmUtaGVpZ2h0ICogJG1lbnUtaGVhZGVyLWZvbnQtc2l6ZSArICRtZW51LWhlYWRlci1wYWRkaW5nICogMjtcbiAgICAgICAgICAgIHdpZHRoOiAkbWVudS1pdGVtLW9wZW5lci1zaXplO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJG1lbnUtaXRlbS1ib3JkZXItc3R5bGU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGVhc2UsIGhlaWdodCAwcyBlYXNlLCBvcGFjaXR5ICRtZW51LXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcblxuICAgICAgICAgICAgbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNCB7XG4gICAgICAgICAgICAmLm1lbnUtLWxldmVsLSN7JGl9IHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkaSA+IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1lbnUtaXRlbS1zbWFsbGVyLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAoJG1lbnUtaXRlbS1oZWlnaHQgLSAoJG1lbnUtaXRlbS1zbWFsbGVyLWZvbnQtc2l6ZSAqICRtZW51LWl0ZW0tbGluZS1oZWlnaHQpKS8yO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICgkbWVudS1pdGVtLWhlaWdodCAtICgkbWVudS1pdGVtLXNtYWxsZXItZm9udC1zaXplICogJG1lbnUtaXRlbS1saW5lLWhlaWdodCkpLzI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRtZW51LWl0ZW0tZm9udC1zaXplO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAoJG1lbnUtaXRlbS1oZWlnaHQgLSAoJG1lbnUtaXRlbS1mb250LXNpemUgKiAkbWVudS1pdGVtLWxpbmUtaGVpZ2h0KSkvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogKCRtZW51LWl0ZW0taGVpZ2h0IC0gKCRtZW51LWl0ZW0tZm9udC1zaXplICogJG1lbnUtaXRlbS1saW5lLWhlaWdodCkpLzI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICgkaSArIDEpICogJG1lbnUtaXRlbS1pbmRlbnRhdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWVudS1pdGVtLXdyYXAge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgYm9yZGVyLXRvcDogJG1lbnUtaXRlbS1ib3JkZXItc3R5bGU7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1lbnUtaXRlbS1mb250LXNpemU7XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWVudS1pdGVtLWZvbnQtc2l6ZSArIHJlbS1jYWxjKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRtZW51LWl0ZW0tYm9yZGVyLXN0eWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgd2lkdGg6ICRtZW51LWl0ZW0tb3BlbmVyLXNpemU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1ob3Zlci1lZmZlY3QtY29sb3I7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDk4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAkbWVudS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogY3VycmVudCBpdGVtIGhpZ2hsaWdodGluZyAqL1xuICAgICAgICAmLmN1cnJlbnQgPiAubWVudS1pdGVtLXdyYXAgYSB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBsaW5lLWhlaWdodDogJG1lbnUtaXRlbS1saW5lLWhlaWdodDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogKCRtZW51LWl0ZW0taGVpZ2h0IC0gJG1lbnUtaXRlbS1saW5lLWhlaWdodCkvMiAkbWVudS1pdGVtLWluZGVudGF0aW9uO1xuICAgICAgICBjb2xvcjogJG1lbnUtbGluay1jb2xvcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVudS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaG92ZXIgZWZmZWN0ICovXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0taG92ZXItZWZmZWN0LWNvbG9yO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgei1pbmRleDogOTg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5tZW51LS1vcGVuZXIge1xuICAgICAgICAmIH4gLm1lbnUtaXRlbS13cmFwIGEge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDgwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDEwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAmIH4gLm1lbnUtaXRlbS13cmFwIHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1ob3Zlci1lZmZlY3QtY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWhvdmVyLWVmZmVjdC1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmIH4gdWwge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiI3NlYXJjaC1tb2RhbCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC44NSk7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAuNXM7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgei1pbmRleDogLTE7XG5cbiAgICAmOnRhcmdldCB7XG4gICAgICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG4gICAgICAgIHotaW5kZXg6IDIwMztcbiAgICAgICAgI3NlYXJjaC1tb2RhbF9fY2xvc2Uge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAjc2VhcmNoLW1vZGFsX19pbnB1dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZmFkZSB7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXM7XG4gICAgfVxufVxuXG4jc2VhcmgtbW9kYWxfX2Zvcm0ge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xufVxuXG4jc2VhcmNoLW1vZGFsX19pbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIG91dGxpbmU6IDA7XG4gICAgcGFkZGluZzogMnJlbSAxcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG59XG5cbiNzZWFyY2gtbW9kYWxfX2Nsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAycmVtO1xuICAgIHJpZ2h0OiAycmVtO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDRyZW07XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxufVxuIiwiJGJlc3RzZWxsZXItaW1hZ2Utc2l6ZTogJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG5cbiNiZXN0c2VsbGVyX19saXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgIGE6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5iZXN0c2VsbGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAuMjVyZW0gMDtcblxuICAgIC5yb3cge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxufVxuXG4uYmVzdHNlbGxlcl9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgfVxufVxuXG4uYmVzdHNlbGxlcl9faW1hZ2Uge1xuICAgIHdpZHRoOiAyNiU7XG5cbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLmJlc3RzZWxsZXJfX3ByaWNlIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4uYmVzdHNlbGxlcl9fY3VycmVuY3kge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmJlc3RzZWxsZXItLW9uLXNhbGUgLnByaWNlIHtcbiAgICAuY29udGVudC1iZyAmIHtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjYWxsLXRvLWFjdGlvbi1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgIH1cblxuICAgIC5mb290ZXItYmcgJiB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY2FsbC10by1hY3Rpb24tY29sb3IsICRmb290ZXItYmcpO1xuICAgIH1cbn1cblxuLmJlc3RzZWxsZXJfX3ByaWNlLS1vcmlnaW5hbCB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgbWFyZ2luLWxlZnQ6ICRkaXNjb3VudC1wcmljZS1tYXJnaW47XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59IiwiJGJ1bGxldC1wb2ludC1yaWdodC1tYXJnaW46IDFyZW07XG4kYmxvY2stYm94LWxpbmtzLXVwcGVyY2FzZTogdHJ1ZSAhZGVmYXVsdDtcbiRibG9jay1ib3gtbGlua3MtZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kYmxvY2stYm94LWxpbmtzLXBhZGRpbmc6IHJlbS1jYWxjKDgpIDAgIWRlZmF1bHQ7XG5cbi5jb250ZW50LWJnIHtcbiAgICAuYmxvY2tfX2JveF9faGVhZGxpbmUtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaWYobHVtYSgkY29udGVudC1iZykgPCA1MCwgbGlnaHRlbigkY29udGVudC1iZywgMTAlKSwgZGFya2VuKCRjb250ZW50LWJnLCAxMCUpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJsb2NrX19ib3hfX2hlYWRsaW5lIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuY29udGVudC1iZyAmIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAwIHJlbS1jYWxjKDEwKTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgfVxuXG4gICAgJi5wcmltYXJ5LWNvbG9yLWJnOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZXgoMTgwZGVnKSk7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgfVxufVxuXG4ubGVmdC1ibG9jayAuYmxvY2tfX2JveF9faGVhZGxpbmUge1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4jZm9vdGVyIC5ibG9ja19fYm94X19oZWFkbGluZS13cmFwcGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uYmxvY2tfX2JveCB7XG4gICAgbGkge1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpZiAoJGJsb2NrLWJveC1saW5rcy11cHBlcmNhc2UpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRibG9jay1ib3gtbGlua3MtZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgICAgICBwYWRkaW5nOiAkYmxvY2stYm94LWxpbmtzLXBhZGRpbmc7XG5cbiAgICAgICAgICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICYuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgICAgICAgICAgLy9UaGlzIGlzIHRvIHJlc29sdmUgYSBzcGVjaWZpY2l0eSBidWcgd2hlcmUgbW9iaWxlIGRldmljZXMgZ2V0IFxuICAgICAgICAgICAgICAgIC8vd2VpcmQgbG9va2luZyBzb2NpYWwgbGlua3MsIHNlZSBpc3N1ZSAjOTEyIGFuZCBcIkFwZXggR3Jhbml0ZSBzb2NpYWwgbGlua3MgZm9vdGVyIG9uIGlwYWRcIlxuICAgICAgICAgICAgICAgIEBleHRlbmQgLnNvY2lhbC1idXR0b25fX2xpbms7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGJ1bGxldC1wb2ludC1yaWdodC1tYXJnaW47XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTEwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuc2VsZWN0ZWQgPiBhLFxuICAgICAgICAmLmN1cnJlbnQgID4gYSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5wYXJlbnQpOm5vdCgubGV2ZWwtMCkge1xuICAgICAgICAgICAgYTpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWJyaWdodG5lc3MtMSk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg0KTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogMzAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg0LjIpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGJ1bGxldC1wb2ludC1yaWdodC1tYXJnaW4gLSByZW0tY2FsYyg0LjIpO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC42O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBGb3IgdGhlIHNwbGl0bWVudSwgd2UgaGF2ZSB0byByZXZlcnNlIHRoZSBsb2dpYyBmb3IgdG9nZ2xlcnMgZm9yIGl0ZW1zIHRoYXQgYXJlIGFscmVhZHkgb3BlbiB3aGVuIHRoZSBtZW51IGxvYWRzICovXG5cbi5ibG9ja19fYm94ICNzcGxpdG1lbnUgbGkucGFyZW50LnNlbGVjdGVkIHtcblxuICAgICYgPiB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYgPiBhOm5vdCgudG9nZ2xlZCk6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSg0NWRlZykpO1xuICAgICAgICBjb2xvcjogJGNhbGwtdG8tYWN0aW9uLWNvbG9yO1xuICAgIH1cblxuICAgICYgPiBhLnRvZ2dsZWQ6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgwKSk7XG4gICAgICAgIC5jb250ZW50LWJnICYge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9vdGVyLWJnICYge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkZm9vdGVyLWJnKTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4uYmxvY2tfX2JveCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLmJsb2NrX19ib3gtLWFjY291bnQge1xuICAgIC5teS1hY2NvdW50X19lbWFpbC1maWVsZCB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLW1haWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm15LWFjY291bnRfX3Bhc3N3b3JkLWZpZWxkIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItdnBuLWtleSk7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDQ1ZGVnKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXktYWNjb3VudF9fZW1haWwtZmllbGQsXG4gICAgLm15LWFjY291bnRfX3Bhc3N3b3JkLWZpZWxkIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtaGlkZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7ICBcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDEuOHJlbTtcbiAgICAgICAgICAgIHRvcDogLjcwcmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5ibG9ja19fYm94LmJsb2NrX19ib3gtLWNvbnRhY3QtaW5mbyBsaTpub3QoLnBhcmVudCkgYSB7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59IiwiLmJyZWFkY3J1bWJzIHtcbiAgICBAZXh0ZW5kICVzbGFiLXNlcGFyYXRvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogaWYobHVtYSgkaGVhZGVyLWJnKSA8IDUwLCAjY2ZjZmNmLCAjMzAzMDMwKTtcbiAgICB9XG4gICAgXG4gICAgbWFyZ2luOiByZW0tY2FsYygyMCkgMCAtMXJlbSAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgICYgPiBsaSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRjcnVtYi1zaWRlLXBhZGRpbmcgKyAwLjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBvcGFjaXR5OiAuNzU7XG4gICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKG9wYWNpdHkpO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLmJ1dHRvbiB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbn0iLCIuYngtcHJldiB7XG4gICAgbGVmdDogMDtcbn1cblxuLmJ4LW5leHQge1xuICAgIHJpZ2h0OiAwO1xufVxuXG4uYngtY29udHJvbHMtZGlyZWN0aW9uIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuXHQuYngtY29udHJvbHMtZGlyZWN0aW9uIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVx0XG59XG5cbkBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAuYngtcHJldiB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmJ4LW5leHQge1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59IiwiLmNhdGVnb3J5bGlzdF9fY2F0ZWdvcnkge1xuICAgIC5ib3JkZXJlZC0tYWxsIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbn1cblxuLmNhdGVnb3J5bGlzdF9fY2F0ZWdvcnlfX2hlYWRsaW5lIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsImxhYmVsIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xufSIsIiRtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4kbWF4LXdpZHRoLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6ICN7JHJvdy13aWR0aH0pXCI7XG4kbmF2LXdpZHRoLW9uLW1heDogc3RyaXAtdW5pdHMoZ3JpZC1jYWxjKDEwLCAkdG90YWwtY29sdW1ucykvMTAwKSAqICRtYXgtd2lkdGg7XG4kbmF2LWl0ZW0taGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAtIDEuMnJlbTtcbiRmcm9udHBhZ2UtbWVudS1mb250LWNvbG9yOiBpZihsdW1hKCRoZWFkZXItYmcpIDwgNTAsICRhbHRlcm5hdGl2ZS1mb250LWNvbG9yLCAkYm9keS1mb250LWNvbG9yKSAhZGVmYXVsdDtcbiRzdGlja3ktbmF2LWJhY2tncm91bmQtY29sb3I6IHJnYmEoJG5hdmlnYXRpb24tYmcsIC45Nyk7XG5cbi5tYWluLW5hdl9fbGlzdC5sZXZlbC0wID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAjbmF2IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAgICAgICAmID4gLnJvdyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tZG93bn0ge1xuICAgICNuYXYge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgI3BhZ2UtaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIC5mcm9udHBhZ2UgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgLy8gTm8gcGFkZGluZyB1bmRlcm5lYXRoIHNsaWRlclxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI25hdi13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAuY29sdW1ucyB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI25hdiB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkOyBcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3RpY2t5LW5hdi1iYWNrZ3JvdW5kLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odG9wIC4yNXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLCBwYWRkaW5nIC4yNXMgZWFzZSk7XG5cbiAgICAgICAgQGlmICgkbWVudS1vdmVybGFwcy1zbGlkZXIpIHtcbiAgICAgICAgICAgIC5mcm9udHBhZ2UgJiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkbmF2aWdhdGlvbi1iZywgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWFpbi1uYXZfX2l0ZW0ubGV2ZWwtMDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnN0aWNreS1uYXYgJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggMnB4IHJnYmEoMCwwLDAsLjEpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN0aWNreS1uYXYtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tYWluLW5hdl9faXRlbSAubWFpbi1uYXZfX2l0ZW0ge1xuICAgICAgICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgcGFkZGluZzogKCR0b3VjaC1mcmllbmRseS1zaXplIC0gKCRiYXNlLWxpbmUtaGVpZ2h0ICogcmVtLWNhbGMoMTIpKSkvMiAxcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJi5oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBDZW50ZXIgbWVudSBpdGVtc1xuICAgICNtYWluLW1lbnUge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgLy8gTmF2IGl0ZW1zIHN0eWxpbmdcbiAgICAubWFpbi1uYXZfX2l0ZW0ge1xuICAgICAgICBoZWlnaHQ6ICRsb2dvLWxhcmdlLWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogKCRsb2dvLWxhcmdlLWhlaWdodCAtICRuYXYtaXRlbS1oZWlnaHQpLzIgcmVtLWNhbGMoMTgpO1xuXG4gICAgICAgICYubGV2ZWwtMCA+IGEge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRuYXYtaXRlbS1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLmxldmVsLTAuY3VycmVudCA+IGEsXG4gICAgICAgICYubGV2ZWwtMC5zZWxlY3RlZCA+IGEge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbWVudS1sZXZlbDAtZm9udC1jb2xvciwgJG5hdmlnYXRpb24tYmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5sZXZlbC0wLnBhcmVudCBhOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihib3JkZXItY29sb3IsIDMwMG1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFjdGl2ZSBlbGVtZW50IHN0eWxlXG4gICAgICAgICYuY3VycmVudCA+IGEsXG4gICAgICAgICYuc2VsZWN0ZWQgPiBhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRmcm9udHBhZ2UtbWVudS1mb250LWNvbG9yLCAkaGVhZGVyLWJnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhvdmVyL2hpZ2hsaWdodCBzdHlsZVxuICAgICAgICBhOmZvY3VzLFxuICAgICAgICBhOmhvdmVyLFxuICAgICAgICBhLmhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRtZW51LWl0ZW0taG92ZXItY29sb3IsICRtZW51LWRyb3Bkb3duLWJnKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJG1lbnUtaXRlbS1ob3Zlci1jb2xvciwgJG1lbnUtZHJvcGRvd24tYmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5sZXZlbC0wID4gYSB7XG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYuaGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJG1lbnUtbGV2ZWwwLWZvbnQtY29sb3IsICRuYXZpZ2F0aW9uLWJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBIb3Zlci9mb2N1cyBzdHlsZSBmb3IgYWN0aXZlIGVsZW1lbnRcbiAgICAgICAgJi5jdXJyZW50ID4gYTpob3ZlcixcbiAgICAgICAgJi5jdXJyZW50ID4gYTpmb2N1cyxcbiAgICAgICAgJi5zZWxlY3RlZCA+IGE6aG92ZXIsXG4gICAgICAgICYuc2VsZWN0ZWQgPiBhOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8vIExhc3Qgb2YgdGhlIHRvcCBtZW51IGl0ZW1zIHNob3VsZCBub3QgaGF2ZSBhIHJpZ2h0IHBhZGRpbmdcbiAgICAubGV2ZWwtMCA+IC5tYWluLW5hdl9faXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG59IiwiLnByb2R1Y3Qge1xuICAgIC5wcmljZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2J1eS1idXR0b24uYnV0dG9uLCBcbiAgICAucHJvZHVjdF9fd2lzaGxpc3QtYnV0dG9uLmJ1dHRvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICB9XG5cbiAgICAuaWNvbi1hZGQtc2hvcHBpbmctY2FydDpiZWZvcmUge1xuICAgICAgICBAZXh0ZW5kIC5pY29uLW1lZGl1bTpiZWZvcmU7XG4gICAgfVxuXG4gICAgLmljb24tZmF2b3JpdGU6YmVmb3JlIHtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1tZWRpdW06YmVmb3JlO1xuICAgIH1cbn1cblxuLnByb2R1Y3RfX3RpdGxlIHtcbiAgICBmb250LXNpemU6ICRoMS1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgI2ZmZiwgIzAwMCk7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSArIHJlbS1jYWxjKDMpO1xufVxuXG4ucHJvZHVjdF9fbWFpbi1pbWFnZXMge1xuICAgIGltZyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IHJlbS1jYWxjKDg0MCk7XG4gICAgfVxuXG4gICAgLmJ4LXByZXYge1xuICAgICAgICBsZWZ0OiAtI3skY29sdW1uLWd1dHRlci80fTtcbiAgICB9XG5cbiAgICAuYngtbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAtI3skY29sdW1uLWd1dHRlci80fTtcbiAgICB9XG59XG5cbi50aCA+IGltZyB7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYm9yZGVyLWJvdHRvbS1jb2xvcik7XG59XG5cbi50aC5hY3RpdmUsXG4udGg6Zm9jdXMsXG4udGg6aG92ZXIge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gaW1nIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gICAgfVxufVxuXG4ucHJvZHVjdF9fZGF0YS1ib3gge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLWNvbnRhaW5lci1iZztcbiAgICBwYWRkaW5nOiAkdGFicy1wYWRkaW5nO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ucHJvZHVjdF9fbWV0YS1udW1iZXJzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgXG4gICAgJiA+ICoge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgJiA+IGR0IHtcbiAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC40cmVtO1xuICAgIH1cbn1cblxuLnByb2R1Y3RfX3N0b2Nrc3RhdHVzIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxuXG4uanMtdGFicyB7XG4gICAgcGFkZGluZy10b3A6IDA7XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeSB7XG4gICAgICAgIC50aCB7XG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmpzLXRhYnMge1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5wcm9kdWN0X190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGgxLWZvbnQtc2l6ZTtcbiAgICAgICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgbGkucHJvZHVjdF9faW1hZ2VnYWxsZXJ5X19pbWFnZXdyYXAge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAucHJvZHVjdF9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6ICRoMS1mb250LXNpemU7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2luZm8ge1xuICAgICAgICB3aWR0aDogZ3JpZC1jYWxjKDUsIDEyKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGdyaWQtY2FsYygwLjUsIDEyKSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5qcy10YWJzIHtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG59XG5cbkBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAucHJvZHVjdF9fbWFpbi1pbWFnZXMge1xuXG4gICAgICAgIC5ieC1wcmV2IHtcbiAgICAgICAgICAgIGxlZnQ6IC0jeyRjb2x1bW4tZ3V0dGVyLzJ9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ4LW5leHQge1xuICAgICAgICAgICAgcmlnaHQ6IC0jeyRjb2x1bW4tZ3V0dGVyLzJ9O1xuICAgICAgICB9XG4gICAgfVxufSIsIi5wcm9kdWN0X19pbWFnZWdhbGxlcnkge1xuICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQoNCk7XG5cbiAgICAudGgge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeV9faW1hZ2V3cmFwIHtcbiAgICAgICAgaGVpZ2h0OiA5cmVtO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA2cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCA0cHggI0ZGRkZGRjsgLy8gRnJvbSBGb3VuZGF0aW9uXG5cbiAgICAgICAgICAgIEBpZiAkdGh1bWItYm9yZGVyLXdpZHRoID4gMCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRodW1iLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICR0aHVtYi1ib3gtc2hhZG93ICE9IG5vbmUge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRibGFjaywgJGNvbnRlbnQtYmcsIDkpLDApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaWYgJHRodW1iLWJveC1zaGFkb3ctaG92ZXIgIT0gbm9uZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5vIGVhc3kgd2F5IHRvIG1hbmlwdWxhdGUgdGhlIGJveCBzaGFkb3cgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgLy9ib3gtc2hhZG93OiAkdGh1bWItYm94LXNoYWRvdy1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDZweCAxcHggcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcsIDkpLCAwLjUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiAuaW1hZ2VnYWxsZXJ5X190aHVtYi10aXRsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JHNtYWxsLXBsdXMtdXB9IHtcbiAgICAucHJvZHVjdF9faW1hZ2VnYWxsZXJ5X193cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeSB7XG4gICAgICAgIGxpLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeV9faW1hZ2V3cmFwIHtcbiAgICAgICAgICAgIGhlaWdodDogOXJlbTtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA2cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIkBpbmNsdWRlIGtleWZyYW1lcyhhY3Rpdml0eS1yb3RhdGUpIHtcbiAgICAwJSAgIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgwZGVnKSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDM2MGRlZykpO1xuICAgIH1cbn1cblxuLnNlYXJjaC1ib3gtLWxvYWRpbmcge1xuXHQuc2VhcmNoLWJveF9fbGFiZWwge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0Lmljb24tc2VhcmNoOmJlZm9yZSB7XG5cdFx0XHQvL2NvbnRlbnQ6IFwiI3skaWNvbi12YXItbG9hZGluZy1pbmRpY2F0b3J9XCI7XG5cdFx0XHRAaW5jbHVkZSBhbmltYXRpb24oYWN0aXZpdHktcm90YXRlIDFzIDE1MG1zIGxpbmVhciBpbmZpbml0ZSk7XG5cdFx0fVxuXHR9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuXHQuc2VhcmNoLWJveC0tbG9hZGluZyB7XG5cdFx0LnNlYXJjaC1ib3hfX2xhYmVsIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IC0xLjhyZW07XG5cdFx0XHR0b3A6IC42cmVtO1xuXHRcdFx0Y29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJGhlYWRlci1iZykgPCA1MCwgI2ZmZiwgIzAwMCksICRoZWFkZXItYmcpO1xuXHRcdH1cblx0fVxufVxuIiwiJGRpc2NvdW50LWJhY2tncm91bmQtY29sb3I6IHJnYmEoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAuOSkgIWRlZmF1bHQ7XG4kZGlzY291bnQtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogcmdiYSgkY2FsbC10by1hY3Rpb24tY29sb3IsIDEpICFkZWZhdWx0O1xuJGRpc2NvdW50LWZvbnQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJGNhbGwtdG8tYWN0aW9uLWNvbG9yKSA8IDUwLCAjRkZGLCAjMDAwKSwgJGRpc2NvdW50LWJhY2tncm91bmQtY29sb3IpICFkZWZhdWx0O1xuJGRpc2NvdW50LXNpemU6IDRyZW0gIWRlZmF1bHQ7XG4kZGlzY291bnQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdCB7XG4gICAgLmJvcmRlcmVkLS1hbGwge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuICAgIFxuICAgIC5vZmZlcnMge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGlmICgkc2hvdy1wcm9kdWN0LXByaWNlID09IDApIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudmF0LWluZm8sXG4gICAgLnByaWNlX19zYWxlcHJpY2UtdGV4dCxcbiAgICAuY3VycmVuY3kge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5kaXNjb3VudCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGlzY291bnQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgY29sb3I6ICRkaXNjb3VudC1mb250LWNvbG9yO1xuICAgICAgICBAaW5jbHVkZSByYWRpdXMoNTAlKTtcbiAgICAgICAgd2lkdGg6ICRkaXNjb3VudC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRkaXNjb3VudC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogJGRpc2NvdW50LXNpemU7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRpc2NvdW50LWZvbnQtc2l6ZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDFyZW07XG4gICAgICAgIHJpZ2h0OiAxcmVtO1xuICAgICAgICBAaWYgKCRkaXNjb3VudC1iYWNrZ3JvdW5kLWNvbG9yICE9ICRkaXNjb3VudC1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5vbi1zYWxlKSB7XG4gICAgICAgIC5wcmljZV9fZGlzcGxheSB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbnRlbnQtdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS0tb3JpZ2luYWwge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRkaXNjb3VudC1wcmljZS1tYXJnaW47XG4gICAgfVxufVxuXG4ucHJvZHVjdGxpc3RfX3Byb2R1Y3Qtd3JhcCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6aG92ZXIgLmRpc2NvdW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2NvdW50LWJhY2tncm91bmQtY29sb3ItaG92ZXI7XG4gICAgICAgIGNvbG9yOiAkZGlzY291bnQtZm9udC1jb2xvcjtcbiAgICB9XG59XG5cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdF9faGVhZGxpbmUge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgfVxufVxuXG4uZXF1YWwtaGVpZ2h0LWNvbHVtbl9faW1hZ2UsXG4uZXF1YWwtaGVpZ2h0LWNvbHVtbl9faW1hZ2UgaW1nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMzUwcHg7XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uX19yZWFkb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uZXF1YWwtaGVpZ2h0LWNvbHVtbl9faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnByb2R1Y3RsaXN0X19wcm9kdWN0X19idXR0b24ge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59IiwiLnNvY2lhbC1idXR0b25zLWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwIDAgMnJlbSAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5mb290ZXItc29jaWFsLWxpbmtzICYge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbn1cblxuLnNvY2lhbC1idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDYpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG59XG5cbi5zb2NpYWwtYnV0dG9uX19saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsaW5lLWhlaWdodDogJHNvY2lhbC1pY29uLXNpemU7XG4gICAgaGVpZ2h0OiAkc29jaWFsLWljb24tc2l6ZTtcbiAgICB3aWR0aDogJHNvY2lhbC1pY29uLXNpemU7XG5cbiAgICAuc29jaWFsLWJ1dHRvbiAmIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgNyUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDclKSk7XG5cbiAgICAgICAgLmZvb3Rlci1zb2NpYWwtbGlua3MgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZigkZm9vdGVyLWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGZvb3Rlci1iZywgNyUpLCBkYXJrZW4oJGZvb3Rlci1iZywgNyUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uby10b3VjaCAmIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDM2KTtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygzNik7XG4gICAgICAgIHdpZHRoOiByZW0tY2FsYygzNik7XG4gICAgfVxufVxuXG4uc29jaWFsLWJ1dHRvbnNfX2hlYWRsaW5lLXdyYXBwZXIge1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbn1cblxuLnNvY2lhbC1idXR0b25zX19oZWFkbGluZSB7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi5zb2NpYWwtYnV0dG9uLS1ibG9nZ2VyIHsgXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0ICYge1xuICAgICAgICAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItYmxvZ2dlcjtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1ibG9nZ2VyO1xuICAgICAgICB9XG4gICAgfVxufVxuLnNvY2lhbC1idXR0b24tLWVsbG8geyBcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3QgJiB7XG4gICAgICAgIC5zb2NpYWwtYnV0dG9uX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1lbGxvO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLWVsbG87XG4gICAgICAgIH1cbiAgICB9XG59XG4uc29jaWFsLWJ1dHRvbi0tZmFjZWJvb2sgeyBcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3QgJiB7XG4gICAgICAgIC5zb2NpYWwtYnV0dG9uX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1mYWNlYm9vaztcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1mYWNlYm9vaztcbiAgICAgICAgfVxuICAgIH1cbn1cbi5zb2NpYWwtYnV0dG9uLS1mbGlja3IgeyBcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3QgJiB7XG4gICAgICAgIC5zb2NpYWwtYnV0dG9uX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1mbGlja3I7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItZmxpY2tyO1xuICAgICAgICB9XG4gICAgfVxufVxuLnNvY2lhbC1idXR0b24tLWdvb2dsZXBsdXMgeyBcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3QgJiB7XG4gICAgICAgIC5zb2NpYWwtYnV0dG9uX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1nb29nbGVwbHVzO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLWdvb2dsZXBsdXM7XG4gICAgICAgIH1cbiAgICB9XG59XG4uc29jaWFsLWJ1dHRvbi0taW5zdGFncmFtIHsgXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0ICYge1xuICAgICAgICAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItaW5zdGFncmFtO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLWluc3RhZ3JhbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5zb2NpYWwtYnV0dG9uLS1saW5rZWRpbiB7IFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAuc29jaWFsLWJ1dHRvbnMtbGlzdC0tcHJvZHVjdCAmIHtcbiAgICAgICAgLnNvY2lhbC1idXR0b25fX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLWxpbmtlZGluO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLWxpbmtlZGluO1xuICAgICAgICB9XG4gICAgfVxufVxuLnNvY2lhbC1idXR0b24tLW1haWwgeyBcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3QgJiB7XG4gICAgICAgIC5zb2NpYWwtYnV0dG9uX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1tYWlsO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLW1haWw7XG4gICAgICAgIH1cbiAgICB9XG59XG4uc29jaWFsLWJ1dHRvbi0tcGludGVyZXN0IHsgXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0ICYge1xuICAgICAgICAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItcGludGVyZXN0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLXBpbnRlcmVzdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5zb2NpYWwtYnV0dG9uLS10d2l0dGVyIHsgXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0ICYge1xuICAgICAgICAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItdHdpdHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci10d2l0dGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuLnNvY2lhbC1idXR0b24tLXZpbWVvIHsgXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0ICYge1xuICAgICAgICAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItdmltZW87XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItdmltZW87XG4gICAgICAgIH1cbiAgICB9XG59XG4uc29jaWFsLWJ1dHRvbi0teW91dHViZSB7IFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAuc29jaWFsLWJ1dHRvbnMtbGlzdC0tcHJvZHVjdCAmIHtcbiAgICAgICAgLnNvY2lhbC1idXR0b25fX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLXlvdXR1YmU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3IteW91dHViZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5uYXYtc2lkZSB7XG4gIC8vIFNob3cgc3VibWVudVxuICAucGFyZW50IHtcbiAgICAmLmN1cnJlbnQsXG4gICAgJi5zZWxlY3RlZCB7XG4gICAgICAmID4gdWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5wcm9kdWN0X19hYm91dCB7XG4gICAgLnJlc3AtdGFicy1jb250YWluZXIgaDIsXG4gICAgLnJlc3AtdGFiLWl0ZW0ge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAucmVzcC10YWItaXRlbSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwIDA7XG4gICAgICAgIH1cbiAgICB9XG59IiwiaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn0iLCIkcHJvZHVjdGxpc3RfcHJvZHVjdC1idXR0b24td3JhcC1iZy1vcGFjaXR5OiAwLjcgIWRlZmF1bHQ7XG4kcHJvZHVjdGxpc3QtYnV5LWJ1dHRvbi13aWR0aDogMTAwJSAhZGVmYXVsdDtcbiRwcm9kdWN0bGlzdC1idXktYnV0dG9uLXNwYWNpbmc6ICRjb2x1bW4tZ3V0dGVyLzIgIWRlZmF1bHQ7XG5cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uIHtcbiAgICB3aWR0aDogJHByb2R1Y3RsaXN0LWJ1eS1idXR0b24td2lkdGg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG59XG5cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uLXdyYXAge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoJGNvbnRlbnQtYmcsICRwcm9kdWN0bGlzdF9wcm9kdWN0LWJ1dHRvbi13cmFwLWJnLW9wYWNpdHkpO1xuICAgIGJvcmRlci1yYWRpdXM6ICRtZWRpYS1ncmlkLWJvcmRlci1yYWRpdXM7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiA0O1xuICAgIG1hcmdpbi1sZWZ0OiAtKCRlcXVhbC1jb2wtaW5uZXItcGFkZGluZyk7XG4gICAgcGFkZGluZzogJHByb2R1Y3QtZ3JpZC1idXktYnV0dG9uLXRvcC1zcGFjaW5nICRwcm9kdWN0bGlzdC1idXktYnV0dG9uLXNwYWNpbmcgJHByb2R1Y3RsaXN0LWJ1eS1idXR0b24tc3BhY2luZyAkcHJvZHVjdGxpc3QtYnV5LWJ1dHRvbi1zcGFjaW5nO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtLCAxNTBtcyBlYXNlKTtcblxuICAgIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLyogQnV5IGJ1dHRvbiB0cmFuc2Zvcm0gKi9cbi5jc3N0cmFuc2Zvcm1zIHtcbiAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3Qtd3JhcDpob3ZlciB7XG4gICAgICAgIC5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uLXdyYXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgwLCAtI3skcHJvZHVjdC1ncmlkLWJ1eS1idXR0b24tZGlzdGFuY2V9KSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIEZvciBicm93c2VycyB3aXRob3V0IHRyYW5zZm9ybSBzdXBwb3J0LCBqdXN0IGNoYW5nZSBib3R0b20gcG9zaXRpb24gKi9cbi5uby1jc3N0cmFuc2Zvcm1zIHtcbiAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2J1dHRvbi13cmFwIHtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBib3R0b206IC0xMDAlO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJvdHRvbSwgMTUwbXMgZWFzZSk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RsaXN0X19wcm9kdWN0LXdyYXA6aG92ZXIge1xuICAgICAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2J1dHRvbi13cmFwIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBGb3IgYnJvd3NlcnMgd2l0aCB0b3VjaCBzdXBwb3J0LCB3ZSBhc3N1bWUgbm8gc3VwcG9ydCBmb3IgOmhvdmVyIGFuZFxuICogbWFrZSBzb21lIGFsdGVyYXRpb25zLlxuICovXG4udG91Y2gge1xuICAgIC5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uLXdyYXAge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn0iLCIkY2FydC1pY29uLWhvdmVyLW1vdmUtbGVuZ3RoOiAuNXJlbSAhZGVmYXVsdDtcbiRjYXJ0LWljb24taG92ZXItaW5kaWNhdG9yLXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuI2xvZ28ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxvZ28td3JhcHBlcixcbi5sb2dvLWxpbmssXG4ubG9nby1saW5rIGgxIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuI2NhcnQtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDQpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC41cmVtO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4jbmF2LW9wZW4tYnRuLFxuLmNhcnQtYW5kLWNoZWNrb3V0LFxuLmNhcnQtYnV0dG9uLFxuLnNlYXJjaC1idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAkbG9nby1oZWlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbWVudS1sZXZlbDAtZm9udC1jb2xvciwgJG5hdmlnYXRpb24tYmcpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRtZW51LWxldmVsMC1mb250LWNvbG9yLCAkbmF2aWdhdGlvbi1iZyk7XG4gICAgfVxufVxuXG4uY2FydC1hbmQtY2hlY2tvdXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC41cmVtO1xuICAgIHJpZ2h0OiByZW0tY2FsYygyMCk7XG4gICAgei1pbmRleDogMjAyO1xufVxuXG4uaWNvbi1tZW51OmJlZm9yZSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiAtMjUlO1xufVxuXG4ubmF2LW9wZW4tdGV4dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNhcnQtYnV0dG9uX19xdWFudGl0eSB7XG4gICAgdG9wOiA1MCU7XG59XG5cbi5zbGlkZXJfX3dyYXBwZXIge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyogZG9uJ3QgdXNlIHRoZSBib3ggc2hhZG93IGZyb20gcGlvbmVlciAqL1xuLmNhcnQtYnV0dG9uOmhvdmVyIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8vIFBvc2l0aW9uIHRoZSB0b3Agc2VjdGlvbiBhYm92ZSB0aGUgc2xpZGVyXG4jcGFnZS1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBtaW4taGVpZ2h0OiAkbG9nby1oZWlnaHQ7XG59XG5cbiNsb2dvLXJvdyB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgcG9zaXRpb246IGlmKCRtZW51LW92ZXJsYXBzLXNsaWRlciA9PSAxLCBhYnNvbHV0ZSwgc3RhdGljKTtcbiAgICB9XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAxMDE7XG4gICAgcGFkZGluZzogLjVyZW0gMDtcbn1cblxuLyogZGlzcGxheSByaWdodCBhcnJvdyBvbiBzaG9wcGluZyBjYXJ0IGhvdmVyICovXG5hLmNhcnQtYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihwYWRkaW5nLXJpZ2h0KTtcblxuICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICAkY2FydC1xdWFudGl0eS1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAkaGVhZGVyLWJnLCAyLjUpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJ0LXF1YW50aXR5LWJnO1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkY2FydC1xdWFudGl0eS1iZykgPCA1MCwgI0ZGRiwgIzAwMCksICRjYXJ0LXF1YW50aXR5LWJnKTtcbiAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24obWFyZ2luLXJpZ2h0KTtcblxuICAgICAgICAuc3RpY2t5LW5hdiAmIHtcbiAgICAgICAgICAgICRjYXJ0LXF1YW50aXR5LWJnLXN0aWNreTogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAkc3RpY2t5LW5hdi1iYWNrZ3JvdW5kLWNvbG9yLCAyLjUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcnQtcXVhbnRpdHktYmctc3RpY2t5O1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJGNhcnQtcXVhbnRpdHktYmctc3RpY2t5KSA8IDUwLCAjRkZGLCAjMDAwKSwgJGNhcnQtcXVhbnRpdHktYmctc3RpY2t5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItY2hldnJvbi1yaWdodCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0ycmVtO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSN7JGNhcnQtaWNvbi1ob3Zlci1pbmRpY2F0b3Itc2l6ZS8yfTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgZm9udC1zaXplOiAkY2FydC1pY29uLWhvdmVyLWluZGljYXRvci1zaXplO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHJpZ2h0IDAuMnMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2UpO1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjYXJ0LWljb24taG92ZXItbW92ZS1sZW5ndGg7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkY2FydC1pY29uLWhvdmVyLW1vdmUtbGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi5oZWFkZXItc2VhcmNoLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLWRvd259IHtcbiAgICAgICAgJiBmb3JtIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAycmVtIDFyZW0gMCAxcmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICYge1xuICAgICAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA3MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VhcmNoLXRvZ2dsZWQgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLnNlYXJjaC1saW5rIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTAlO1xufVxuXG4uc2VhcmNoLWJveF9fY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wcm9kdWN0LXNlYXJjaC1yZXN1bHRzIHtcbiAgICB0b3A6IHJlbS1jYWxjKDM2KTtcbn1cblxuLnByb2R1Y3Qtc2VhcmNoX19lbGVtZW50IHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7XG4gICAgI25hdi1vcGVuLWJ0biB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzcmVtO1xuICAgIH1cblxuICAgIC5jYXJ0LWFuZC1jaGVja291dCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogM3JlbTtcbiAgICB9XG5cbiAgICAjbG9nbyAge1xuICAgICAgICBoZWlnaHQ6ICRsb2dvLW1lZGl1bS1oZWlnaHQ7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6ICRsb2dvLW1lZGl1bS1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBoMSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGxvZ28tbWVkaXVtLWhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNuYXYtb3Blbi1idG4sXG4gICAgLmNhcnQtYW5kLWNoZWNrb3V0LFxuICAgIC5jYXJ0LWJ1dHRvbixcbiAgICAuc2VhcmNoLWJ1dHRvbiB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbG9nby1tZWRpdW0taGVpZ2h0O1xuICAgIH1cblxuICAgICNjYXJ0LXdyYXBwZXIge1xuICAgICAgICB0b3A6IDFyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgI3BhZ2UtaGVhZGVyIHtcbiAgICAgICAgbWluLWhlaWdodDogJGxvZ28tbWVkaXVtLWhlaWdodCArIDJyZW07XG4gICAgfVxuXG4gICAgI2xvZ28tcm93IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgIH1cblxuICAgIC5jYXJ0LWFuZC1jaGVja291dCB7XG4gICAgICAgIHRvcDogMS4xNXJlbTtcbiAgICB9XG59XG5cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgYS5zZWFyY2gtbGluayB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbG9nby1sYXJnZS1oZWlnaHQ7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbWVudS1sZXZlbDAtZm9udC1jb2xvciwgJG5hdmlnYXRpb24tYmcpO1xuXG4gICAgICAgIC5zZWFyY2gtdG9nZ2xlZCAmIC5pY29uLXNlYXJjaDpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItbWVudSk7XG4gICAgICAgICAgICBmb250LXNpemU6IDJlbTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiAtMjUlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3BhZ2UtaGVhZGVyIHtcbiAgICAgICAgbWluLWhlaWdodDogJGxvZ28tbGFyZ2UtaGVpZ2h0ICsgMnJlbTtcbiAgICB9XG5cbiAgICAjbG9nbyB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgI2xvZ28tcm93IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAjbWFpbi1tZW51IHtcbiAgICAgICAgLnNlYXJjaC10b2dnbGVkICYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tYWluLW5hdl9faXRlbSB7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRtZW51LWZvbnQtY29sb3IsICRjb250ZW50LWJnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubGV2ZWwtMCA+IGEge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRtZW51LWxldmVsMC1mb250LWNvbG9yLCAkbmF2aWdhdGlvbi1iZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaGVhZGVyLXNlYXJjaC13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDM1MCk7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgcGFkZGluZzogKHJlbS1jYWxjKDcwKSAtIHJlbS1jYWxjKDM2KSkvMiAwO1xuICAgIH1cblxuICAgIC5zbGlkZXJfX3dyYXBwZXIge1xuICAgICAgICBAaWYgJG1lbnUtb3ZlcmxhcHMtc2xpZGVyID09IDEge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbjogJGxvZ28tbGFyZ2UtaGVpZ2h0ICsgMnJlbSAwIDAgMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWFyY2gtYm94X19pbnB1dCB7XG4gICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMzAwKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnNlYXJjaC1ib3hfX3N1Ym1pdCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygzNik7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzNik7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNlYXJjaC1ib3hfX2xhYmVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuY2FydC1hbmQtY2hlY2tvdXQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgei1pbmRleDogMjAxO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRvcCAuNXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlKTtcblxuICAgICAgICAuc3RpY2t5LW5hdiAmIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiLnBhZ2UtdGl0bGVfX3dyYXBwZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAkc2VjdGlvbi1zcGFjaW5nLXNpemUgMDtcbiAgICBtaW4taGVpZ2h0OiAkc2VjdGlvbi1zcGFjaW5nLXNpemUgKiAyICsgKCRwYWdlLWhlYWRlci1zaXplICogJGhlYWRlci1saW5lLWhlaWdodCk7XG59XG5cbi5wYWdlLXRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAkcGFnZS1oZWFkZXItc2l6ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgLmRpdmlkZXIge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTEwJTtcbiAgICB9XG59XG5cbi5wYWdlLXRpdGxlX19zdGF0aWMtcGFnZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZyb250cGFnZV9fY3VzdG9tLWNvbnRlbnQge1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4jbWFpbi1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAkc2VjdGlvbi1zcGFjaW5nLXNpemUgMDtcblxuICAgICYgPiAucGFnZS1kaXZpZGVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxufVxuXG4ubmF2LXNpZGVfX2hlYWRlciB7XG4gICAgQGV4dGVuZCAuYmxvY2tfX2JveF9faGVhZGxpbmU7XG59XG5cbiNmb290ZXJfX3dyYXBwZXIge1xuICAgIHBhZGRpbmctdG9wOiAkc2VjdGlvbi1zcGFjaW5nLXNpemU7XG59XG5cbi5zZWFyY2gtcGFnZV9fc2VhcmNoLWlucHV0IHtcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDMwMCk7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5zZWFyY2gtYm94X19zdWJtaXQge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4uc2VhcmNoLXBhZ2VfX2Zvcm0td3JhcHBlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAuc2VhcmNoLWJveF9fc3VibWl0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNjVyZW0gMXJlbSFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zZWFyY2gtYm94IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICAuc2VhcmNoLWJveF9fbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcGFkZGluZzogMCAuNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzYpO1xuXG4gICAgICAgIC5pY29uLXNlYXJjaDpiZWZvcmUge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZnJvbnRwYWdlX19zZWFyY2gtaW5wdXQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuOHJlbTtcbiAgICAgICAgd2lkdGg6IDc1JTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbjogMCAwICRzZWN0aW9uLXNwYWNpbmctc2l6ZSAwO1xuICAgIH1cblxuICAgIC5zZWFyY2gtYm94X19zdWJtaXQge1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwIDAgJHNlY3Rpb24tc3BhY2luZy1zaXplIDUlO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzNik7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy11cH0ge1xuICAgIC5zZWFyY2gtYm94IHtcbiAgICAgICAgd2lkdGg6IDc1JTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAuc2VhcmNoLWJveCB7XG4gICAgICAgIHdpZHRoOiA2MCU7XG4gICAgfVxufSIsIi5mb290ZXJfX2xpbmtzIHtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAubm8tdG91Y2ggJiB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgcGFkZGluZzogMCAuNXJlbTtcblxuICAgICAgICAgICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRvdWNoICYge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZvb3Rlcl9fY29va2llX25vdGljZSB7XG4gICAgcGFkZGluZzogMXJlbSAwO1xufVxuXG4uZm9vdGVyX19jb21wYW55LWluZm8sXG4uZm9vdGVyX19tYWRlLWJ5IHtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbn1cblxuLmZvb3Rlcl9fbWFkZS1ieSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5jb21wYW55LWNvbnRhY3QtaW5mbyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGRkLGR0IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuXG4gICAgICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGR0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC40cmVtO1xuICAgICAgICBjbGVhcjogbGVmdDtcbiAgICB9XG59XG5cbi5mb290ZXItc29jaWFsLWxpbmtzIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnRvb2xzLW5hdiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJiA+IGxpIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAudG91Y2ggJiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAuaWNvbi1sYW5ndWFnZSxcbiAgICAgICAgI2xhbmd1YWdlLWNsb3NlIC5pY29uLWNsb3NlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLjJyZW07XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5zZXR0aW5nX19mb3JtIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB9XG5cbiAgICAuc2V0dGluZ19fc2VsZWN0IHtcbiAgICAgICAgdG9wOiAtI3skdXRpbHMtbmF2LWJhci1oZWlnaHQgKyAycmVtfTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTcuNXJlbTtcbiAgICB9XG5cbiAgICAuY3VycmVuY3ktbmFtZSAge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIC50b29scy1uYXYge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgJiA+IGxpIHtcbiAgICAgICAgICAgIC50b3VjaCAmIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zZXR0aW5nX19zZWxlY3Qge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9vdGVyX19pbmZvLWxpbmtzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgICAgICBsaTpmaXJzdC1jaGlsZCBhIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb290ZXJfX2xpbmtzIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLm5vLXRvdWNoICYge1xuICAgICAgICAgICAgcGFkZGluZzogLjc1cmVtIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9vdGVyX19tYWRlLWJ5IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG59XG5cbi5ibG9ja19fYm94LS1uZXdzbGV0dGVyIGxhYmVsIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xufSJdLCJtYXBwaW5ncyI6IjtBSUFBOztHQUVHO0Fhb0NIOzs7Ozs7Ozs7O0dBVUc7QWJQSDs7R0FFRztBQUtIOztHQUVHO0FBS0g7Ozs7OztHQU1HO0FhdkJIOzs7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VTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FB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QixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixHQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixHQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixHQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixHQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFz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QTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJ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cEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixHQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixHQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixHQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixHQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVB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QXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsUUFBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGVBQWUsQ0FBZjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGVBQWUsQ0FBZjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGVBQWUsQ0FBZjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGVBQWUsQ0FBZjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGVBQWUsQ0FBZjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGVBQWUsQ0FBZjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGVBQWUsQ0FBZjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGVBQWUsQ0FBZjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGVBQWUsQ0FBZjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGVBQWUsQ0FBZjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGVBQWUsQ0FBZjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGVBQWUsQ0FBZjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGVBQWUsQ0FBZjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGVBQWUsQ0FBZjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGVBQWUsQ0FBZjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGVBQWUsQ0FBZjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGdCQUFnQixDQUFoQjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGdCQUFnQixDQUFoQjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGdCQUFnQixDQUFoQjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGdC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QWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxvQkFBb0IsRUFBRSxLQUFLLEFBQUEsa0JBQWtCLEVBQUUsS0FBSyxBQUFBLGVBQWUsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxtQkFBbUIsRUFBRSxLQUFLLEFBQUEsZ0JBQWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLGlCQUFpQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsQ0FBdmdCO0lBQ0UsT0FBTyxFQUFFLDZCQUE4QixHQUN4QztFQUNELEtBQUssQUFBQSxvQkFBb0IsRUFBRSxLQUFLLEFBQUEsa0JBQWtCLEVBQUUsS0FBSyxBQUFBLGVBQWUsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxtQkFBbUIsRUFBRSxLQUFLLEFBQUEsZ0JBQWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxvQkFBb0IsRUFBRSxLQUFLLEFBQUEsa0JBQWtCLEVBQUUsS0FBSyxBQUFBLGVBQWUsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxtQkFBbUIsRUFBRSxLQUFLLEFBQUEsZ0JBQWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLGlCQUFpQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsQ0FBdmdCO0lBQ0UsT0FBTyxFQUFFLDBCQUEyQixHQUNyQztFQUNELEVBQUUsQUFBQSxvQkFBb0IsRUFBRSxFQUFFLEFBQUEsa0JBQWtCLEVBQUUsRUFBRSxBQUFBLGVBQWUsRUFBRSxFQUFFLEFBQUEsb0JBQW9CLEVBQUUsRUFBRSxBQUFBLHFCQUFx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SyxBQUFBLGVBQWUsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxtQkFBbUIsRUFBRSxLQUFLLEFBQUEsZ0JBQWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxvQkFBb0IsRUFBRSxLQUFLLEFBQUEsa0JBQWtCLEVBQUUsS0FBSyxBQUFBLGVBQWUsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxtQkFBbUIsRUFBRSxLQUFLLEFBQUEsZ0JBQWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLGlCQUFpQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsQ0FBdmdCO0lBQ0UsT0FBTyxFQUFFLDZCQUE4QixHQUN4QztFQUNELEtBQUssQUFBQSxvQkFBb0IsRUFBRSxLQUFLLEFBQUEsa0JBQWtCLEVBQUUsS0FBSyxBQUFBLGVBQWUsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxtQkFBbUIsRUFBRSxLQUFLLEFBQUEsZ0JBQWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxvQkFBb0IsRUFBRSxLQUFLLEFBQUEsa0JBQWtCLEVBQUUsS0FBSyxBQUFBLGVBQWUsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxtQkFBbUIsRUFBRSxLQUFLLEFBQUEsZ0JBQWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLGlCQUFpQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsQ0FBdmdCO0lBQ0UsT0FBTyxFQUFFLDBCQUEyQixHQUNyQztFQUNELEVBQUUs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RSxLQUFLLEFBQUEsa0JBQWtCLEVBQUUsS0FBSyxBQUFBLGVBQWUsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxtQkFBbUIsRUFBRSxLQUFLLEFBQUEsZ0JBQWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxvQkFBb0IsRUFBRSxLQUFLLEFBQUEsa0JBQWtCLEVBQUUsS0FBSyxBQUFBLGVBQWUsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxtQkFBbUIsRUFBRSxLQUFLLEFBQUEsZ0JBQWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLGlCQUFpQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsQ0FBdmdCO0lBQ0UsT0FBTyxFQUFFLGdCQUFpQixHQUMzQjtFQUNELEtBQUssQUFBQSxvQkFBb0IsRUFBRSxLQUFLLEFBQUEsa0JBQWtCLEVBQUUsS0FBSyxBQUFBLGVBQWUsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxtQkFBbUIsRUFBRSxLQUFLLEFBQUEsZ0JBQWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxvQkFBb0IsRUFBRSxLQUFLLEFBQUEsa0JBQWtCLEVBQUUsS0FBSyxBQUFBLGVBQWUsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxtQkFBbUIsRUFBRSxLQUFLLEFBQUEsZ0JBQWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLGlCQUFpQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsQ0FBdmdCO0lBQ0UsT0FBTyxFQUFFLDZCQUE4QixHQUN4QztFQUNELEtBQUssQUFBQSxvQkFBb0IsRUFBRSxLQUFLLEFBQUEsa0JBQWtCLEVBQUUsS0FBSyxBQUFBLGVBQWUsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxtQkFBbUIsRUFBRSxLQUFLLEFBQUEsZ0JBQWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxvQkFBb0IsRUFBRSxLQUFLLEFBQUEsa0JBQWtCLEVBQUUsS0FBSyxBQUFBLGVBQWUsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxtQkFBbUIsRUFBRSxLQUFLLEFBQUEsZ0JBQWdCLEVBQUUsS0FBSyxBQUFBLHFCQUFxQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsRUFBRSxLQUFLLEFBQUEsb0JBQW9CLEVBQUUsS0FBSyxBQUFBLGlCQUFpQixFQUFFLEtBQUssQUFBQSxzQkFBc0IsQ0FBdmdCO0lBQ0UsT0FBTyxFQUFFLDBCQUEyQixHQUNyQztFQUNELEVBQUUsQUFBQSxvQkFBb0IsRUFBRSxFQUFFLEFBQUEsa0JBQWtCLEVBQUUsRUFBRSxBQUFBLGVBQWUsRUFBRSxFQUFFLEFBQUEsb0JBQW9CLEVBQUUsRUFBRSxBQUFBLHFCQUFxQixFQUFFLEVBQUUsQUFBQSxtQkFBbUIsRUFBRSxFQUFFLEFBQUEsZ0JBQWdCLEVBQUUsRUFBRSxBQUFBLHFCQUFxQixFQUFFLEVBQUUsQUFBQSxvQkFBb0IsRUFBRSxFQUFFLEFBQUEsa0JBQWtCLEVBQUUsRUFBRSxBQUFBLGVBQWUsRUFBRSxFQUFFLEFBQUEsb0JBQW9CLEVBQUUsRUFBRSxBQUFBLHFCQUFxQixFQUFFLEVBQUUsQUFBQSxtQkFBbUIsRUFBRSxFQUFFLEFBQUEsZ0JBQWdCLEVBQUUsRUFBRSxBQUFBLHFCQUFxQixFQUFFLEVBQUUsQUFBQSxzQkFBc0IsRUFBRSxFQUFFLEFBQUEsb0JBQW9CLEVBQUUsRUFBRSxBQUFBLGlCQUFp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SztFQUNaLFVBQVUsRUFBRSxNQUFPO0VBQ25CLFVBQVUsRUFBRSxJQUFLO0VBQ2pCLFFBQVEsRUFBRSxRQUFTLEdBOEJ0QjtFQWxDRCxVQUFVLEdBTUYsRUFBRSxDQUFDO0lBQ0gsS0FBSyxFQUFFLElBQUs7SUFDWixPQUFPLEVBQUUsWUFBYSxHQVd6QjtJQVRHLE1BQU0sQ0FWZCxVQUFVLEdBTUYsRUFBRSxDQUlPO01BQ0wsV0FBVyxFM0pHYixVQUFVLEcySkZYO0lBWlQsVUFBVSxHQU1GLEVBQUUsQ0FRRixjQUFjO0lBZHRCLFVBQVUsR0FNRixFQUFFLENBU0YsZUFBZSxDQUFDLFdBQVcsQ0FBQztNQUN4QixZQUFZLEVBQUUsS0FBTSxHQUN2QjtFQWpCVCxVQUFVLENBcUJOLGNBQWMsQ0FBQztJQUNYLFFBQVEsRUFBRSxNQUFPLEdBQ3BCO0VBdkJMLFVBQVUsQ0F5Qk4sZ0JBQWdCLENBQUM7SUFDYixHQUFHLEVBQUUsS0FBZ0M7SUFDckMsSUFBSSxFQUFFLEdBQUk7SUFDVixXQUFXLEVBQUUsT0FBUSxHQUN4QjtFQTdCTCxVQUFVLENBK0JOLGNBQWMsQ0FBRTtJQUNaLE9BQU8sRUFBRSxpQkFBa0IsR0FDOUI7O0FBR0wsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsUUFBUTtFQUMvQixVQUFVLENBQUM7SUFDUCxVQUFVLEVBQUUsS0FBTSxHQWFyQjtJQVhPLE1BQU0sQ0FIZCxVQUFVLEdBRUYsRUFBRSxDQUNPO01BQ0wsTUFBTSxFM0ozQlosVUFBVTtNMko0QkosV0FBVyxFM0o1QmpCLFVBQVUsRzJKNkJQO0lBTlQsVUFBVSxDQVNOLGdCQUFnQixDQUFDO01BQ2IsSUFBSSxFQUFFLElBQUs7TUFDWCxLQUFLLEVBQUUsQ0FBRTtNQUNULFdBQVcsRUFBRSxDQUFFLEdBQ2xCO0VBR0wsbUJBQW1CLENBQUM7SUFDaEIsVUFBVSxFQUFFLElBQUssR0FLcEI7SUFORCxtQkFBbUIsQ0FHZixFQUFFLEFBQUEsWUFBWSxDQUFDLENBQUMsQ0FBQztNQUNiLFlBQVksRUFBRSxDQUFFLEdBQ25CO0VBR0wsY0FBYyxDQUFDO0lBQ1gsTUFBTSxFQUFFLENBQUU7SUFDVixVQUFVLEVBQUUsZUFBZ0IsR0FLL0I7SUFIRyxTQUFTLENBSmIsY0FBYyxDQUlFO01BQ1IsT0FBTyxFQUFFLFFBQVMsR0FDckI7RUFHTCxnQkFBZ0IsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFLLEdBQ3BCOztBQUdMLHVCQUF1QixDQUFDLEtBQUssQ0FBQztFQUMxQixXQUFXLEVBQUUsTUFBTztFQUNwQixjQUFjLEVBQUUsSUFBSyxHQUN4QiIsIm5hbWVzIjpbXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
