@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
 */
/**
 * 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 {
  background-color: #f4f4f4;
  color: #333333; }
  .top-bg h1, .top-bg h2, .top-bg h3, .top-bg h4, .top-bg h5, .top-bg h6 {
    color: #212121; }
  .top-bg a {
    color: #0378A2; }
    .top-bg a:hover, .top-bg a:focus {
      color: #025370; }
  .top-bg .subtle, .top-bg #kasse_one_form .subtaxes, #kasse_one_form .top-bg .subtaxes, .top-bg .product__main-images .bx-caption, .product__main-images .top-bg .bx-caption, .top-bg .product__meta-numbers, .top-bg .product .price--original, .product .top-bg .price--original, .top-bg .product .vat-info, .product .top-bg .vat-info, .top-bg .product__stockstatus, .top-bg .rating input:checked ~ label, .rating .top-bg input:checked ~ label, .top-bg .rating label:hover ~ label, .rating .top-bg label:hover ~ label, .top-bg .productlist__product-wrap .price--original, .productlist__product-wrap .top-bg .price--original {
    color: #333333; }
  .top-bg .bordered, .top-bg .checkout--kco__custom-intro, .top-bg .checkout--kco .checkout__step, .checkout--kco .top-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .top-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .top-bg a.bordered:hover, .top-bg a.checkout--kco__custom-intro:hover, .top-bg .checkout--kco a.checkout__step:hover, .checkout--kco .top-bg a.checkout__step:hover, .top-bg a.bordered:focus, .top-bg a.checkout--kco__custom-intro:focus, .top-bg .checkout--kco a.checkout__step:focus, .checkout--kco .top-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .top-bg a.bordered--hard:hover, .top-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .top-bg .neutral-link, .top-bg .neutral-link > a {
    color: #333333; }
    .top-bg .neutral-link:hover, .top-bg .neutral-link:focus, .top-bg .neutral-link:active, .top-bg .neutral-link > a:hover, .top-bg .neutral-link > a:focus, .top-bg .neutral-link > a:active {
      color: #212121; }
  .top-bg .primary-color {
    color: #0378A2; }
  .top-bg .primary-color-big {
    color: #0378A2; }
  .top-bg .primary-color-bg {
    background-color: #0378A2;
    color: #fff; }
    .top-bg .primary-color-bg a {
      color: #fff; }
      .top-bg .primary-color-bg a:hover, .top-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #049dd4; }
    .top-bg .primary-color-bg:hover, .top-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #049dd4; }
  .top-bg .secondary-color {
    color: #0378A2; }
  .top-bg .secondary-color-big {
    color: #0378A2; }
  .top-bg .secondary-color-bg, .top-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .top-bg .cart-button__quantity {
    background-color: #0378A2;
    color: #fff; }
    .top-bg .secondary-color-bg a, .top-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .top-bg .cart-button__quantity a {
      color: #fff; }
      .top-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, .top-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 {
        color: #fff;
        background-color: #049dd4; }
    .top-bg .secondary-color-bg:hover, .top-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .top-bg .cart-button__quantity:hover, .top-bg .secondary-color-bg:focus, .top-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .top-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #049dd4; }
  .top-bg .call-to-action-color {
    color: #167C02; }
  .top-bg .call-to-action-color-big {
    color: #167C02; }
  .top-bg .call-to-action-color-bg, .top-bg .cart-button__quantity {
    background-color: #167C02;
    color: #fff; }
    .top-bg .call-to-action-color-bg a, .top-bg .cart-button__quantity a {
      color: #fff; }
      .top-bg .call-to-action-color-bg a:hover, .top-bg .cart-button__quantity a:hover, .top-bg .call-to-action-color-bg a:focus, .top-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #1fae03; }
    .top-bg .call-to-action-color-bg:hover, .top-bg .cart-button__quantity:hover, .top-bg .call-to-action-color-bg:focus, .top-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #1fae03; }
  .top-bg button, .top-bg button.disabled, .top-bg button.disabled:hover, .top-bg button.disabled:focus, .top-bg button[disabled], .top-bg button[disabled]:hover, .top-bg button[disabled]:focus, .top-bg .button, .top-bg .button.disabled, .top-bg .button.disabled:hover, .top-bg .button.disabled:focus, .top-bg .button[disabled], .top-bg .button[disabled]:hover, .top-bg .button[disabled]:focus {
    background-color: #0378A2;
    color: #fff;
    font-weight: normal; }
  .top-bg button:hover, .top-bg button:focus, .top-bg .button:hover, .top-bg .button:focus {
    color: #1c1c1c;
    background-color: #1b9a02; }

.navigation-bg, .navigation__toolbar {
  background-color: #0378A2;
  color: #ffffff; }
  .navigation-bg h1, .navigation__toolbar h1, .navigation-bg h2, .navigation__toolbar h2, .navigation-bg h3, .navigation__toolbar h3, .navigation-bg h4, .navigation__toolbar h4, .navigation-bg h5, .navigation__toolbar h5, .navigation-bg h6, .navigation__toolbar h6 {
    color: white; }
  .navigation-bg a, .navigation__toolbar a {
    color: #e3f7fe; }
    .navigation-bg a:hover, .navigation__toolbar a:hover, .navigation-bg a:focus, .navigation__toolbar a:focus {
      color: white; }
  .navigation-bg .subtle, .navigation__toolbar .subtle, .navigation-bg #kasse_one_form .subtaxes, #kasse_one_form .navigation-bg .subtaxes, .navigation__toolbar #kasse_one_form .subtaxes, #kasse_one_form .navigation__toolbar .subtaxes, .navigation-bg .product__main-images .bx-caption, .product__main-images .navigation-bg .bx-caption, .navigation__toolbar .product__main-images .bx-caption, .product__main-images .navigation__toolbar .bx-caption, .navigation-bg .product__meta-numbers, .navigation__toolbar .product__meta-numbers, .navigation-bg .product .price--original, .product .navigation-bg .price--original, .navigation__toolbar .product .price--original, .product .navigation__toolbar .price--original, .navigation-bg .product .vat-info, .product .navigation-bg .vat-info, .navigation__toolbar .product .vat-info, .product .navigation__toolbar .vat-info, .navigation-bg .product__stockstatus, .navigation__toolbar .product__stockstatus, .navigation-bg .rating input:checked ~ label, .rating .navigation-bg input:checked ~ label, .navigation__toolbar .rating input:checked ~ label, .rating .navigation__toolbar input:checked ~ label, .navigation-bg .rating label:hover ~ label, .rating .navigation-bg label:hover ~ label, .navigation__toolbar .rating label:hover ~ label, .rating .navigation__toolbar label:hover ~ label, .navigation-bg .productlist__product-wrap .price--original, .productlist__product-wrap .navigation-bg .price--original, .navigation__toolbar .productlist__product-wrap .price--original, .productlist__product-wrap .navigation__toolbar .price--original {
    color: #ffffff; }
  .navigation-bg .bordered, .navigation__toolbar .bordered, .navigation-bg .checkout--kco__custom-intro, .navigation__toolbar .checkout--kco__custom-intro, .navigation-bg .checkout--kco .checkout__step, .checkout--kco .navigation-bg .checkout__step, .navigation__toolbar .checkout--kco .checkout__step, .checkout--kco .navigation__toolbar .checkout__step {
    border-color: rgba(255, 255, 255, 0.2); }
  .navigation-bg .bordered--hard, .navigation__toolbar .bordered--hard {
    border-color: rgba(255, 255, 255, 0.4); }
  .navigation-bg a.bordered:hover, .navigation__toolbar a.bordered:hover, .navigation-bg a.checkout--kco__custom-intro:hover, .navigation__toolbar a.checkout--kco__custom-intro:hover, .navigation-bg .checkout--kco a.checkout__step:hover, .checkout--kco .navigation-bg a.checkout__step:hover, .navigation__toolbar .checkout--kco a.checkout__step:hover, .checkout--kco .navigation__toolbar a.checkout__step:hover, .navigation-bg a.bordered:focus, .navigation__toolbar a.bordered:focus, .navigation-bg a.checkout--kco__custom-intro:focus, .navigation__toolbar a.checkout--kco__custom-intro:focus, .navigation-bg .checkout--kco a.checkout__step:focus, .checkout--kco .navigation-bg a.checkout__step:focus, .navigation__toolbar .checkout--kco a.checkout__step:focus, .checkout--kco .navigation__toolbar a.checkout__step:focus {
    border-color: rgba(255, 255, 255, 0.5); }
  .navigation-bg a.bordered--hard:hover, .navigation__toolbar a.bordered--hard:hover, .navigation-bg a.bordered--hard:focus, .navigation__toolbar a.bordered--hard:focus {
    border-color: rgba(255, 255, 255, 0.7); }
  .navigation-bg .neutral-link, .navigation__toolbar .neutral-link, .navigation-bg .neutral-link > a, .navigation__toolbar .neutral-link > a {
    color: #ffffff; }
    .navigation-bg .neutral-link:hover, .navigation__toolbar .neutral-link:hover, .navigation-bg .neutral-link:focus, .navigation__toolbar .neutral-link:focus, .navigation-bg .neutral-link:active, .navigation__toolbar .neutral-link:active, .navigation-bg .neutral-link > a:hover, .navigation__toolbar .neutral-link > a:hover, .navigation-bg .neutral-link > a:focus, .navigation__toolbar .neutral-link > a:focus, .navigation-bg .neutral-link > a:active, .navigation__toolbar .neutral-link > a:active {
      color: white; }
  .navigation-bg .primary-color, .navigation__toolbar .primary-color {
    color: #e3f7fe; }
  .navigation-bg .primary-color-big, .navigation__toolbar .primary-color-big {
    color: #75d9fc; }
  .navigation-bg .primary-color-bg, .navigation__toolbar .primary-color-bg {
    background-color: #0499cf;
    color: #262626; }
    .navigation-bg .primary-color-bg a, .navigation__toolbar .primary-color-bg a {
      color: #262626; }
      .navigation-bg .primary-color-bg a:hover, .navigation__toolbar .primary-color-bg a:hover, .navigation-bg .primary-color-bg a:focus, .navigation__toolbar .primary-color-bg a:focus {
        color: #262626;
        background-color: #0bbbfa; }
    .navigation-bg .primary-color-bg:hover, .navigation__toolbar .primary-color-bg:hover, .navigation-bg .primary-color-bg:focus, .navigation__toolbar .primary-color-bg:focus {
      color: #262626;
      background-color: #0bbbfa; }
  .navigation-bg .secondary-color, .navigation__toolbar .secondary-color {
    color: #e3f7fe; }
  .navigation-bg .secondary-color-big, .navigation__toolbar .secondary-color-big {
    color: #75d9fc; }
  .navigation-bg .secondary-color-bg, .navigation__toolbar .secondary-color-bg, .navigation-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .navigation-bg .cart-button__quantity, .navigation__toolbar .cart-button--empty .cart-button__quantity, .cart-button--empty .navigation__toolbar .cart-button__quantity {
    background-color: #0499cf;
    color: #262626; }
    .navigation-bg .secondary-color-bg a, .navigation__toolbar .secondary-color-bg a, .navigation-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .navigation-bg .cart-button__quantity a, .navigation__toolbar .cart-button--empty .cart-button__quantity a, .cart-button--empty .navigation__toolbar .cart-button__quantity a {
      color: #262626; }
      .navigation-bg .secondary-color-bg a:hover, .navigation__toolbar .secondary-color-bg a:hover, .navigation-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .navigation-bg .cart-button__quantity a:hover, .navigation__toolbar .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .navigation__toolbar .cart-button__quantity a:hover, .navigation-bg .secondary-color-bg a:focus, .navigation__toolbar .secondary-color-bg a:focus, .navigation-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .navigation-bg .cart-button__quantity a:focus, .navigation__toolbar .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .navigation__toolbar .cart-button__quantity a:focus {
        color: #262626;
        background-color: #0bbbfa; }
    .navigation-bg .secondary-color-bg:hover, .navigation__toolbar .secondary-color-bg:hover, .navigation-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .navigation-bg .cart-button__quantity:hover, .navigation__toolbar .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .navigation__toolbar .cart-button__quantity:hover, .navigation-bg .secondary-color-bg:focus, .navigation__toolbar .secondary-color-bg:focus, .navigation-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .navigation-bg .cart-button__quantity:focus, .navigation__toolbar .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .navigation__toolbar .cart-button__quantity:focus {
      color: #262626;
      background-color: #0bbbfa; }
  .navigation-bg .call-to-action-color, .navigation__toolbar .call-to-action-color {
    color: #e0feda; }
  .navigation-bg .call-to-action-color-big, .navigation__toolbar .call-to-action-color-big {
    color: #2aef04; }
  .navigation-bg .call-to-action-color-bg, .navigation__toolbar .call-to-action-color-bg, .navigation-bg .cart-button__quantity, .navigation__toolbar .cart-button__quantity {
    background-color: #1ea903;
    color: #292929; }
    .navigation-bg .call-to-action-color-bg a, .navigation__toolbar .call-to-action-color-bg a, .navigation-bg .cart-button__quantity a, .navigation__toolbar .cart-button__quantity a {
      color: #292929; }
      .navigation-bg .call-to-action-color-bg a:hover, .navigation__toolbar .call-to-action-color-bg a:hover, .navigation-bg .cart-button__quantity a:hover, .navigation__toolbar .cart-button__quantity a:hover, .navigation-bg .call-to-action-color-bg a:focus, .navigation__toolbar .call-to-action-color-bg a:focus, .navigation-bg .cart-button__quantity a:focus, .navigation__toolbar .cart-button__quantity a:focus {
        color: #292929;
        background-color: #27db04; }
    .navigation-bg .call-to-action-color-bg:hover, .navigation__toolbar .call-to-action-color-bg:hover, .navigation-bg .cart-button__quantity:hover, .navigation__toolbar .cart-button__quantity:hover, .navigation-bg .call-to-action-color-bg:focus, .navigation__toolbar .call-to-action-color-bg:focus, .navigation-bg .cart-button__quantity:focus, .navigation__toolbar .cart-button__quantity:focus {
      color: #292929;
      background-color: #27db04; }
  .navigation-bg button, .navigation__toolbar button, .navigation-bg button.disabled, .navigation__toolbar button.disabled, .navigation-bg button.disabled:hover, .navigation__toolbar button.disabled:hover, .navigation-bg button.disabled:focus, .navigation__toolbar button.disabled:focus, .navigation-bg button[disabled], .navigation__toolbar button[disabled], .navigation-bg button[disabled]:hover, .navigation__toolbar button[disabled]:hover, .navigation-bg button[disabled]:focus, .navigation__toolbar button[disabled]:focus, .navigation-bg .button, .navigation__toolbar .button, .navigation-bg .button.disabled, .navigation__toolbar .button.disabled, .navigation-bg .button.disabled:hover, .navigation__toolbar .button.disabled:hover, .navigation-bg .button.disabled:focus, .navigation__toolbar .button.disabled:focus, .navigation-bg .button[disabled], .navigation__toolbar .button[disabled], .navigation-bg .button[disabled]:hover, .navigation__toolbar .button[disabled]:hover, .navigation-bg .button[disabled]:focus, .navigation__toolbar .button[disabled]:focus {
    background-color: #0499cf;
    color: #262626;
    font-weight: normal; }
  .navigation-bg button:hover, .navigation__toolbar button:hover, .navigation-bg button:focus, .navigation__toolbar button:focus, .navigation-bg .button:hover, .navigation__toolbar .button:hover, .navigation-bg .button:focus, .navigation__toolbar .button:focus {
    color: #404040;
    background-color: #23c703; }

.header-bg, .footer-bg, .end-bg {
  background-color: #333333;
  color: #ffffff; }
  .header-bg h1, .footer-bg h1, .end-bg h1, .header-bg h2, .footer-bg h2, .end-bg h2, .header-bg h3, .footer-bg h3, .end-bg h3, .header-bg h4, .footer-bg h4, .end-bg h4, .header-bg h5, .footer-bg h5, .end-bg h5, .header-bg h6, .footer-bg h6, .end-bg h6 {
    color: white; }
  .header-bg a, .footer-bg a, .end-bg a {
    color: #04a8e3; }
    .header-bg a:hover, .footer-bg a:hover, .end-bg a:hover, .header-bg a:focus, .footer-bg a:focus, .end-bg a:focus {
      color: #1fc1fb; }
  .header-bg .subtle, .footer-bg .subtle, .end-bg .subtle, .header-bg #kasse_one_form .subtaxes, #kasse_one_form .header-bg .subtaxes, .footer-bg #kasse_one_form .subtaxes, #kasse_one_form .footer-bg .subtaxes, .end-bg #kasse_one_form .subtaxes, #kasse_one_form .end-bg .subtaxes, .header-bg .product__main-images .bx-caption, .product__main-images .header-bg .bx-caption, .footer-bg .product__main-images .bx-caption, .product__main-images .footer-bg .bx-caption, .end-bg .product__main-images .bx-caption, .product__main-images .end-bg .bx-caption, .header-bg .product__meta-numbers, .footer-bg .product__meta-numbers, .end-bg .product__meta-numbers, .header-bg .product .price--original, .product .header-bg .price--original, .footer-bg .product .price--original, .product .footer-bg .price--original, .end-bg .product .price--original, .product .end-bg .price--original, .header-bg .product .vat-info, .product .header-bg .vat-info, .footer-bg .product .vat-info, .product .footer-bg .vat-info, .end-bg .product .vat-info, .product .end-bg .vat-info, .header-bg .product__stockstatus, .footer-bg .product__stockstatus, .end-bg .product__stockstatus, .header-bg .rating input:checked ~ label, .rating .header-bg input:checked ~ label, .footer-bg .rating input:checked ~ label, .rating .footer-bg input:checked ~ label, .end-bg .rating input:checked ~ label, .rating .end-bg input:checked ~ label, .header-bg .rating label:hover ~ label, .rating .header-bg label:hover ~ label, .footer-bg .rating label:hover ~ label, .rating .footer-bg label:hover ~ label, .end-bg .rating label:hover ~ label, .rating .end-bg label:hover ~ label, .header-bg .productlist__product-wrap .price--original, .productlist__product-wrap .header-bg .price--original, .footer-bg .productlist__product-wrap .price--original, .productlist__product-wrap .footer-bg .price--original, .end-bg .productlist__product-wrap .price--original, .productlist__product-wrap .end-bg .price--original {
    color: #ffffff; }
  .header-bg .bordered, .footer-bg .bordered, .end-bg .bordered, .header-bg .checkout--kco__custom-intro, .footer-bg .checkout--kco__custom-intro, .end-bg .checkout--kco__custom-intro, .header-bg .checkout--kco .checkout__step, .checkout--kco .header-bg .checkout__step, .footer-bg .checkout--kco .checkout__step, .checkout--kco .footer-bg .checkout__step, .end-bg .checkout--kco .checkout__step, .checkout--kco .end-bg .checkout__step {
    border-color: rgba(255, 255, 255, 0.2); }
  .header-bg .bordered--hard, .footer-bg .bordered--hard, .end-bg .bordered--hard {
    border-color: rgba(255, 255, 255, 0.4); }
  .header-bg a.bordered:hover, .footer-bg a.bordered:hover, .end-bg a.bordered:hover, .header-bg a.checkout--kco__custom-intro:hover, .footer-bg a.checkout--kco__custom-intro:hover, .end-bg a.checkout--kco__custom-intro:hover, .header-bg .checkout--kco a.checkout__step:hover, .checkout--kco .header-bg a.checkout__step:hover, .footer-bg .checkout--kco a.checkout__step:hover, .checkout--kco .footer-bg a.checkout__step:hover, .end-bg .checkout--kco a.checkout__step:hover, .checkout--kco .end-bg a.checkout__step:hover, .header-bg a.bordered:focus, .footer-bg a.bordered:focus, .end-bg a.bordered:focus, .header-bg a.checkout--kco__custom-intro:focus, .footer-bg a.checkout--kco__custom-intro:focus, .end-bg a.checkout--kco__custom-intro:focus, .header-bg .checkout--kco a.checkout__step:focus, .checkout--kco .header-bg a.checkout__step:focus, .footer-bg .checkout--kco a.checkout__step:focus, .checkout--kco .footer-bg a.checkout__step:focus, .end-bg .checkout--kco a.checkout__step:focus, .checkout--kco .end-bg a.checkout__step:focus {
    border-color: rgba(255, 255, 255, 0.5); }
  .header-bg a.bordered--hard:hover, .footer-bg a.bordered--hard:hover, .end-bg a.bordered--hard:hover, .header-bg a.bordered--hard:focus, .footer-bg a.bordered--hard:focus, .end-bg a.bordered--hard:focus {
    border-color: rgba(255, 255, 255, 0.7); }
  .header-bg .neutral-link, .footer-bg .neutral-link, .end-bg .neutral-link, .header-bg .neutral-link > a, .footer-bg .neutral-link > a, .end-bg .neutral-link > a {
    color: #ffffff; }
    .header-bg .neutral-link:hover, .footer-bg .neutral-link:hover, .end-bg .neutral-link:hover, .header-bg .neutral-link:focus, .footer-bg .neutral-link:focus, .end-bg .neutral-link:focus, .header-bg .neutral-link:active, .footer-bg .neutral-link:active, .end-bg .neutral-link:active, .header-bg .neutral-link > a:hover, .footer-bg .neutral-link > a:hover, .end-bg .neutral-link > a:hover, .header-bg .neutral-link > a:focus, .footer-bg .neutral-link > a:focus, .end-bg .neutral-link > a:focus, .header-bg .neutral-link > a:active, .footer-bg .neutral-link > a:active, .end-bg .neutral-link > a:active {
      color: white; }
  .header-bg .primary-color, .footer-bg .primary-color, .end-bg .primary-color {
    color: #04a8e3; }
  .header-bg .primary-color-big, .footer-bg .primary-color-big, .end-bg .primary-color-big {
    color: #0387b6; }
  .header-bg .primary-color-bg, .footer-bg .primary-color-bg, .end-bg .primary-color-bg {
    background-color: #0378A2;
    color: #fff; }
    .header-bg .primary-color-bg a, .footer-bg .primary-color-bg a, .end-bg .primary-color-bg a {
      color: #fff; }
      .header-bg .primary-color-bg a:hover, .footer-bg .primary-color-bg a:hover, .end-bg .primary-color-bg a:hover, .header-bg .primary-color-bg a:focus, .footer-bg .primary-color-bg a:focus, .end-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #049dd4; }
    .header-bg .primary-color-bg:hover, .footer-bg .primary-color-bg:hover, .end-bg .primary-color-bg:hover, .header-bg .primary-color-bg:focus, .footer-bg .primary-color-bg:focus, .end-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #049dd4; }
  .header-bg .secondary-color, .footer-bg .secondary-color, .end-bg .secondary-color {
    color: #04a8e3; }
  .header-bg .secondary-color-big, .footer-bg .secondary-color-big, .end-bg .secondary-color-big {
    color: #0387b6; }
  .header-bg .secondary-color-bg, .footer-bg .secondary-color-bg, .end-bg .secondary-color-bg, .header-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .header-bg .cart-button__quantity, .footer-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .footer-bg .cart-button__quantity, .end-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .end-bg .cart-button__quantity {
    background-color: #0378A2;
    color: #fff; }
    .header-bg .secondary-color-bg a, .footer-bg .secondary-color-bg a, .end-bg .secondary-color-bg a, .header-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .header-bg .cart-button__quantity a, .footer-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .footer-bg .cart-button__quantity a, .end-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .end-bg .cart-button__quantity a {
      color: #fff; }
      .header-bg .secondary-color-bg a:hover, .footer-bg .secondary-color-bg a:hover, .end-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, .footer-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .footer-bg .cart-button__quantity a:hover, .end-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .end-bg .cart-button__quantity a:hover, .header-bg .secondary-color-bg a:focus, .footer-bg .secondary-color-bg a:focus, .end-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, .footer-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .footer-bg .cart-button__quantity a:focus, .end-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .end-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #049dd4; }
    .header-bg .secondary-color-bg:hover, .footer-bg .secondary-color-bg:hover, .end-bg .secondary-color-bg:hover, .header-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .header-bg .cart-button__quantity:hover, .footer-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .footer-bg .cart-button__quantity:hover, .end-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .end-bg .cart-button__quantity:hover, .header-bg .secondary-color-bg:focus, .footer-bg .secondary-color-bg:focus, .end-bg .secondary-color-bg:focus, .header-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .header-bg .cart-button__quantity:focus, .footer-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .footer-bg .cart-button__quantity:focus, .end-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .end-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #049dd4; }
  .header-bg .call-to-action-color, .footer-bg .call-to-action-color, .end-bg .call-to-action-color {
    color: #20b303; }
  .header-bg .call-to-action-color-big, .footer-bg .call-to-action-color-big, .end-bg .call-to-action-color-big {
    color: #1a9002; }
  .header-bg .call-to-action-color-bg, .footer-bg .call-to-action-color-bg, .end-bg .call-to-action-color-bg, .header-bg .cart-button__quantity, .footer-bg .cart-button__quantity, .end-bg .cart-button__quantity {
    background-color: #167C02;
    color: #fff; }
    .header-bg .call-to-action-color-bg a, .footer-bg .call-to-action-color-bg a, .end-bg .call-to-action-color-bg a, .header-bg .cart-button__quantity a, .footer-bg .cart-button__quantity a, .end-bg .cart-button__quantity a {
      color: #fff; }
      .header-bg .call-to-action-color-bg a:hover, .footer-bg .call-to-action-color-bg a:hover, .end-bg .call-to-action-color-bg a:hover, .header-bg .cart-button__quantity a:hover, .footer-bg .cart-button__quantity a:hover, .end-bg .cart-button__quantity a:hover, .header-bg .call-to-action-color-bg a:focus, .footer-bg .call-to-action-color-bg a:focus, .end-bg .call-to-action-color-bg a:focus, .header-bg .cart-button__quantity a:focus, .footer-bg .cart-button__quantity a:focus, .end-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #1fae03; }
    .header-bg .call-to-action-color-bg:hover, .footer-bg .call-to-action-color-bg:hover, .end-bg .call-to-action-color-bg:hover, .header-bg .cart-button__quantity:hover, .footer-bg .cart-button__quantity:hover, .end-bg .cart-button__quantity:hover, .header-bg .call-to-action-color-bg:focus, .footer-bg .call-to-action-color-bg:focus, .end-bg .call-to-action-color-bg:focus, .header-bg .cart-button__quantity:focus, .footer-bg .cart-button__quantity:focus, .end-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #1fae03; }
  .header-bg button, .footer-bg button, .end-bg button, .header-bg button.disabled, .footer-bg button.disabled, .end-bg button.disabled, .header-bg button.disabled:hover, .footer-bg button.disabled:hover, .end-bg button.disabled:hover, .header-bg button.disabled:focus, .footer-bg button.disabled:focus, .end-bg button.disabled:focus, .header-bg button[disabled], .footer-bg button[disabled], .end-bg button[disabled], .header-bg button[disabled]:hover, .footer-bg button[disabled]:hover, .end-bg button[disabled]:hover, .header-bg button[disabled]:focus, .footer-bg button[disabled]:focus, .end-bg button[disabled]:focus, .header-bg .button, .footer-bg .button, .end-bg .button, .header-bg .button.disabled, .footer-bg .button.disabled, .end-bg .button.disabled, .header-bg .button.disabled:hover, .footer-bg .button.disabled:hover, .end-bg .button.disabled:hover, .header-bg .button.disabled:focus, .footer-bg .button.disabled:focus, .end-bg .button.disabled:focus, .header-bg .button[disabled], .footer-bg .button[disabled], .end-bg .button[disabled], .header-bg .button[disabled]:hover, .footer-bg .button[disabled]:hover, .end-bg .button[disabled]:hover, .header-bg .button[disabled]:focus, .footer-bg .button[disabled]:focus, .end-bg .button[disabled]:focus {
    background-color: #0378A2;
    color: #fff;
    font-weight: normal; }
  .header-bg button:hover, .footer-bg button:hover, .end-bg button:hover, .header-bg button:focus, .footer-bg button:focus, .end-bg button:focus, .header-bg .button:hover, .footer-bg .button:hover, .end-bg .button:hover, .header-bg .button:focus, .footer-bg .button:focus, .end-bg .button:focus {
    color: #1c1c1c;
    background-color: #1b9a02; }

.content-bg, .aside__footer-bg {
  background-color: #ffffff;
  color: #333333; }
  .content-bg h1, .aside__footer-bg h1, .content-bg h2, .aside__footer-bg h2, .content-bg h3, .aside__footer-bg h3, .content-bg h4, .aside__footer-bg h4, .content-bg h5, .aside__footer-bg h5, .content-bg h6, .aside__footer-bg h6 {
    color: #212121; }
  .content-bg a, .aside__footer-bg a {
    color: #0378A2; }
    .content-bg a:hover, .aside__footer-bg a:hover, .content-bg a:focus, .aside__footer-bg a:focus {
      color: #025370; }
  .content-bg .subtle, .aside__footer-bg .subtle, .content-bg #kasse_one_form .subtaxes, #kasse_one_form .content-bg .subtaxes, .aside__footer-bg #kasse_one_form .subtaxes, #kasse_one_form .aside__footer-bg .subtaxes, .content-bg .product__main-images .bx-caption, .product__main-images .content-bg .bx-caption, .aside__footer-bg .product__main-images .bx-caption, .product__main-images .aside__footer-bg .bx-caption, .content-bg .product__meta-numbers, .aside__footer-bg .product__meta-numbers, .content-bg .product .price--original, .product .content-bg .price--original, .aside__footer-bg .product .price--original, .product .aside__footer-bg .price--original, .content-bg .product .vat-info, .product .content-bg .vat-info, .aside__footer-bg .product .vat-info, .product .aside__footer-bg .vat-info, .content-bg .product__stockstatus, .aside__footer-bg .product__stockstatus, .content-bg .rating input:checked ~ label, .rating .content-bg input:checked ~ label, .aside__footer-bg .rating input:checked ~ label, .rating .aside__footer-bg input:checked ~ label, .content-bg .rating label:hover ~ label, .rating .content-bg label:hover ~ label, .aside__footer-bg .rating label:hover ~ label, .rating .aside__footer-bg label:hover ~ label, .content-bg .productlist__product-wrap .price--original, .productlist__product-wrap .content-bg .price--original, .aside__footer-bg .productlist__product-wrap .price--original, .productlist__product-wrap .aside__footer-bg .price--original {
    color: #333333; }
  .content-bg .bordered, .aside__footer-bg .bordered, .content-bg .checkout--kco__custom-intro, .aside__footer-bg .checkout--kco__custom-intro, .content-bg .checkout--kco .checkout__step, .checkout--kco .content-bg .checkout__step, .aside__footer-bg .checkout--kco .checkout__step, .checkout--kco .aside__footer-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .content-bg .bordered--hard, .aside__footer-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .content-bg a.bordered:hover, .aside__footer-bg a.bordered:hover, .content-bg a.checkout--kco__custom-intro:hover, .aside__footer-bg a.checkout--kco__custom-intro:hover, .content-bg .checkout--kco a.checkout__step:hover, .checkout--kco .content-bg a.checkout__step:hover, .aside__footer-bg .checkout--kco a.checkout__step:hover, .checkout--kco .aside__footer-bg a.checkout__step:hover, .content-bg a.bordered:focus, .aside__footer-bg a.bordered:focus, .content-bg a.checkout--kco__custom-intro:focus, .aside__footer-bg a.checkout--kco__custom-intro:focus, .content-bg .checkout--kco a.checkout__step:focus, .checkout--kco .content-bg a.checkout__step:focus, .aside__footer-bg .checkout--kco a.checkout__step:focus, .checkout--kco .aside__footer-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .content-bg a.bordered--hard:hover, .aside__footer-bg a.bordered--hard:hover, .content-bg a.bordered--hard:focus, .aside__footer-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .content-bg .neutral-link, .aside__footer-bg .neutral-link, .content-bg .neutral-link > a, .aside__footer-bg .neutral-link > a {
    color: #333333; }
    .content-bg .neutral-link:hover, .aside__footer-bg .neutral-link:hover, .content-bg .neutral-link:focus, .aside__footer-bg .neutral-link:focus, .content-bg .neutral-link:active, .aside__footer-bg .neutral-link:active, .content-bg .neutral-link > a:hover, .aside__footer-bg .neutral-link > a:hover, .content-bg .neutral-link > a:focus, .aside__footer-bg .neutral-link > a:focus, .content-bg .neutral-link > a:active, .aside__footer-bg .neutral-link > a:active {
      color: #212121; }
  .content-bg .primary-color, .aside__footer-bg .primary-color {
    color: #0378A2; }
  .content-bg .primary-color-big, .aside__footer-bg .primary-color-big {
    color: #0378A2; }
  .content-bg .primary-color-bg, .aside__footer-bg .primary-color-bg {
    background-color: #0378A2;
    color: #fff; }
    .content-bg .primary-color-bg a, .aside__footer-bg .primary-color-bg a {
      color: #fff; }
      .content-bg .primary-color-bg a:hover, .aside__footer-bg .primary-color-bg a:hover, .content-bg .primary-color-bg a:focus, .aside__footer-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #049dd4; }
    .content-bg .primary-color-bg:hover, .aside__footer-bg .primary-color-bg:hover, .content-bg .primary-color-bg:focus, .aside__footer-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #049dd4; }
  .content-bg .secondary-color, .aside__footer-bg .secondary-color {
    color: #0378A2; }
  .content-bg .secondary-color-big, .aside__footer-bg .secondary-color-big {
    color: #0378A2; }
  .content-bg .secondary-color-bg, .aside__footer-bg .secondary-color-bg, .content-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .content-bg .cart-button__quantity, .aside__footer-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .aside__footer-bg .cart-button__quantity {
    background-color: #0378A2;
    color: #fff; }
    .content-bg .secondary-color-bg a, .aside__footer-bg .secondary-color-bg a, .content-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .content-bg .cart-button__quantity a, .aside__footer-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .aside__footer-bg .cart-button__quantity a {
      color: #fff; }
      .content-bg .secondary-color-bg a:hover, .aside__footer-bg .secondary-color-bg a:hover, .content-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .content-bg .cart-button__quantity a:hover, .aside__footer-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .aside__footer-bg .cart-button__quantity a:hover, .content-bg .secondary-color-bg a:focus, .aside__footer-bg .secondary-color-bg a:focus, .content-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .content-bg .cart-button__quantity a:focus, .aside__footer-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .aside__footer-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #049dd4; }
    .content-bg .secondary-color-bg:hover, .aside__footer-bg .secondary-color-bg:hover, .content-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .content-bg .cart-button__quantity:hover, .aside__footer-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .aside__footer-bg .cart-button__quantity:hover, .content-bg .secondary-color-bg:focus, .aside__footer-bg .secondary-color-bg:focus, .content-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .content-bg .cart-button__quantity:focus, .aside__footer-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .aside__footer-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #049dd4; }
  .content-bg .call-to-action-color, .aside__footer-bg .call-to-action-color {
    color: #167C02; }
  .content-bg .call-to-action-color-big, .aside__footer-bg .call-to-action-color-big {
    color: #167C02; }
  .content-bg .call-to-action-color-bg, .aside__footer-bg .call-to-action-color-bg, .content-bg .cart-button__quantity, .aside__footer-bg .cart-button__quantity {
    background-color: #167C02;
    color: #fff; }
    .content-bg .call-to-action-color-bg a, .aside__footer-bg .call-to-action-color-bg a, .content-bg .cart-button__quantity a, .aside__footer-bg .cart-button__quantity a {
      color: #fff; }
      .content-bg .call-to-action-color-bg a:hover, .aside__footer-bg .call-to-action-color-bg a:hover, .content-bg .cart-button__quantity a:hover, .aside__footer-bg .cart-button__quantity a:hover, .content-bg .call-to-action-color-bg a:focus, .aside__footer-bg .call-to-action-color-bg a:focus, .content-bg .cart-button__quantity a:focus, .aside__footer-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #1fae03; }
    .content-bg .call-to-action-color-bg:hover, .aside__footer-bg .call-to-action-color-bg:hover, .content-bg .cart-button__quantity:hover, .aside__footer-bg .cart-button__quantity:hover, .content-bg .call-to-action-color-bg:focus, .aside__footer-bg .call-to-action-color-bg:focus, .content-bg .cart-button__quantity:focus, .aside__footer-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #1fae03; }
  .content-bg button, .aside__footer-bg button, .content-bg button.disabled, .aside__footer-bg button.disabled, .content-bg button.disabled:hover, .aside__footer-bg button.disabled:hover, .content-bg button.disabled:focus, .aside__footer-bg button.disabled:focus, .content-bg button[disabled], .aside__footer-bg button[disabled], .content-bg button[disabled]:hover, .aside__footer-bg button[disabled]:hover, .content-bg button[disabled]:focus, .aside__footer-bg button[disabled]:focus, .content-bg .button, .aside__footer-bg .button, .content-bg .button.disabled, .aside__footer-bg .button.disabled, .content-bg .button.disabled:hover, .aside__footer-bg .button.disabled:hover, .content-bg .button.disabled:focus, .aside__footer-bg .button.disabled:focus, .content-bg .button[disabled], .aside__footer-bg .button[disabled], .content-bg .button[disabled]:hover, .aside__footer-bg .button[disabled]:hover, .content-bg .button[disabled]:focus, .aside__footer-bg .button[disabled]:focus {
    background-color: #0378A2;
    color: #fff;
    font-weight: normal; }
  .content-bg button:hover, .aside__footer-bg button:hover, .content-bg button:focus, .aside__footer-bg button:focus, .content-bg .button:hover, .aside__footer-bg .button:hover, .content-bg .button:focus, .aside__footer-bg .button:focus {
    color: #1c1c1c;
    background-color: #1b9a02; }

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

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

.product .price {
  color: #0378A2; }

.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: #0378A2;
  color: #fff; }

.product .product__wishlist-button.button {
  background-color: #0378A2;
  color: #fff; }

.aside-bg {
  background-color: #262626;
  color: #ffffff; }
  .aside-bg h1, .aside-bg h2, .aside-bg h3, .aside-bg h4, .aside-bg h5, .aside-bg h6 {
    color: white; }
  .aside-bg a {
    color: #0499cf; }
    .aside-bg a:hover, .aside-bg a:focus {
      color: #0bbbfa; }
  .aside-bg .subtle, .aside-bg #kasse_one_form .subtaxes, #kasse_one_form .aside-bg .subtaxes, .aside-bg .product__main-images .bx-caption, .product__main-images .aside-bg .bx-caption, .aside-bg .product__meta-numbers, .aside-bg .product .price--original, .product .aside-bg .price--original, .aside-bg .product .vat-info, .product .aside-bg .vat-info, .aside-bg .product__stockstatus, .aside-bg .rating input:checked ~ label, .rating .aside-bg input:checked ~ label, .aside-bg .rating label:hover ~ label, .rating .aside-bg label:hover ~ label, .aside-bg .productlist__product-wrap .price--original, .productlist__product-wrap .aside-bg .price--original {
    color: #ffffff; }
  .aside-bg .bordered, .aside-bg .checkout--kco__custom-intro, .aside-bg .checkout--kco .checkout__step, .checkout--kco .aside-bg .checkout__step {
    border-color: rgba(255, 255, 255, 0.2); }
  .aside-bg .bordered--hard {
    border-color: rgba(255, 255, 255, 0.4); }
  .aside-bg a.bordered:hover, .aside-bg a.checkout--kco__custom-intro:hover, .aside-bg .checkout--kco a.checkout__step:hover, .checkout--kco .aside-bg a.checkout__step:hover, .aside-bg a.bordered:focus, .aside-bg a.checkout--kco__custom-intro:focus, .aside-bg .checkout--kco a.checkout__step:focus, .checkout--kco .aside-bg a.checkout__step:focus {
    border-color: rgba(255, 255, 255, 0.5); }
  .aside-bg a.bordered--hard:hover, .aside-bg a.bordered--hard:focus {
    border-color: rgba(255, 255, 255, 0.7); }
  .aside-bg .neutral-link, .aside-bg .neutral-link > a {
    color: #ffffff; }
    .aside-bg .neutral-link:hover, .aside-bg .neutral-link:focus, .aside-bg .neutral-link:active, .aside-bg .neutral-link > a:hover, .aside-bg .neutral-link > a:focus, .aside-bg .neutral-link > a:active {
      color: white; }
  .aside-bg .primary-color {
    color: #0499cf; }
  .aside-bg .primary-color-big {
    color: #0378A2; }
  .aside-bg .primary-color-bg {
    background-color: #0378A2;
    color: #fff; }
    .aside-bg .primary-color-bg a {
      color: #fff; }
      .aside-bg .primary-color-bg a:hover, .aside-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #049dd4; }
    .aside-bg .primary-color-bg:hover, .aside-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #049dd4; }
  .aside-bg .secondary-color {
    color: #0499cf; }
  .aside-bg .secondary-color-big {
    color: #0378A2; }
  .aside-bg .secondary-color-bg, .aside-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .aside-bg .cart-button__quantity {
    background-color: #0378A2;
    color: #fff; }
    .aside-bg .secondary-color-bg a, .aside-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .aside-bg .cart-button__quantity a {
      color: #fff; }
      .aside-bg .secondary-color-bg a:hover, .aside-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .aside-bg .cart-button__quantity a:hover, .aside-bg .secondary-color-bg a:focus, .aside-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .aside-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #049dd4; }
    .aside-bg .secondary-color-bg:hover, .aside-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .aside-bg .cart-button__quantity:hover, .aside-bg .secondary-color-bg:focus, .aside-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .aside-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #049dd4; }
  .aside-bg .call-to-action-color {
    color: #1da403; }
  .aside-bg .call-to-action-color-big {
    color: #178102; }
  .aside-bg .call-to-action-color-bg, .aside-bg .cart-button__quantity {
    background-color: #167C02;
    color: #fff; }
    .aside-bg .call-to-action-color-bg a, .aside-bg .cart-button__quantity a {
      color: #fff; }
      .aside-bg .call-to-action-color-bg a:hover, .aside-bg .cart-button__quantity a:hover, .aside-bg .call-to-action-color-bg a:focus, .aside-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #1fae03; }
    .aside-bg .call-to-action-color-bg:hover, .aside-bg .cart-button__quantity:hover, .aside-bg .call-to-action-color-bg:focus, .aside-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #1fae03; }
  .aside-bg button, .aside-bg button.disabled, .aside-bg button.disabled:hover, .aside-bg button.disabled:focus, .aside-bg button[disabled], .aside-bg button[disabled]:hover, .aside-bg button[disabled]:focus, .aside-bg .button, .aside-bg .button.disabled, .aside-bg .button.disabled:hover, .aside-bg .button.disabled:focus, .aside-bg .button[disabled], .aside-bg .button[disabled]:hover, .aside-bg .button[disabled]:focus {
    background-color: #0378A2;
    color: #fff;
    font-weight: normal; }
  .aside-bg button:hover, .aside-bg button:focus, .aside-bg .button:hover, .aside-bg .button:focus {
    color: #1c1c1c;
    background-color: #1b9a02; }

/*! 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: 39.9375em)/";
  width: 0em; }

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

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

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

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

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

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

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

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: 100%; }

body {
  background: #333333;
  color: #333333;
  padding: 0;
  margin: 0;
  font-family: Helvetica, 'Trebuchet MS', Helvetica, Arial, sans-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 0.9375rem 1.875rem; }

@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: 0.9375rem; }
    .small-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 0.9375rem;
      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.25rem; }
    .small-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.625rem;
      padding-right: 0.625rem; }
    .small-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 1.25rem;
      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.40625rem; }
    .small-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.46875rem;
      padding-right: 0.9375rem; }
    .small-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 0.9375rem;
      padding-right: 0.46875rem; }
    .small-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 1.40625rem;
      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.5rem; }
    .small-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.375rem;
      padding-right: 1.125rem; }
    .small-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.75rem;
      padding-right: 0.75rem; }
    .small-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 1.125rem;
      padding-right: 0.375rem; }
    .small-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1.5rem;
      padding-right: 0rem; } }

@media only screen and (min-width: 40em) {
  .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: 0.9375rem; }
    .medium-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 0.9375rem;
      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.25rem; }
    .medium-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.625rem;
      padding-right: 0.625rem; }
    .medium-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 1.25rem;
      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.40625rem; }
    .medium-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.46875rem;
      padding-right: 0.9375rem; }
    .medium-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 0.9375rem;
      padding-right: 0.46875rem; }
    .medium-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 1.40625rem;
      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.5rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.375rem;
      padding-right: 1.125rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.75rem;
      padding-right: 0.75rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 1.125rem;
      padding-right: 0.375rem; }
    .medium-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1.5rem;
      padding-right: 0rem; } }

@media only screen and (min-width: 64em) {
  .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: 0.9375rem; }
    .large-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 0.9375rem;
      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.25rem; }
    .large-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.625rem;
      padding-right: 0.625rem; }
    .large-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 1.25rem;
      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.40625rem; }
    .large-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.46875rem;
      padding-right: 0.9375rem; }
    .large-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 0.9375rem;
      padding-right: 0.46875rem; }
    .large-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 1.40625rem;
      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.5rem; }
    .large-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.375rem;
      padding-right: 1.125rem; }
    .large-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.75rem;
      padding-right: 0.75rem; }
    .large-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 1.125rem;
      padding-right: 0.375rem; }
    .large-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1.5rem;
      padding-right: 0rem; } }

.breadcrumbs {
  display: block;
  padding: 0;
  overflow: hidden;
  margin-left: 0;
  list-style: none;
  border-style: solid;
  border-width: 0;
  background-color: #fff;
  border-color: #e6e6e6;
  border-radius: 0px; }
  .breadcrumbs > * {
    margin: 0;
    float: left;
    font-size: 1rem;
    line-height: 1rem;
    text-transform: none;
    color: #0378A2; }
    .breadcrumbs > *:hover a, .breadcrumbs > *:focus a {
      text-decoration: underline; }
    .breadcrumbs > * a {
      color: #0378A2; }
    .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.5rem;
      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: 0px;
  cursor: pointer;
  font-family: Helvetica, 'Trebuchet MS', Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: normal;
  margin: 0 0 1.25rem;
  position: relative;
  text-decoration: none;
  text-align: center;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 0;
  display: inline-block;
  padding-top: 1rem;
  padding-right: 2rem;
  padding-bottom: 1.0625rem;
  padding-left: 2rem;
  font-size: 1rem;
  background-color: #0378A2;
  border-color: #026082;
  color: #FFFFFF;
  transition: background-color 300ms ease-out; }
  button:hover, button:focus, .button:hover, .button:focus {
    background-color: #026082; }
  button:hover, button:focus, .button:hover, .button:focus {
    color: #FFFFFF; }
  button.secondary, .button.secondary {
    background-color: #0378A2;
    border-color: #026082;
    color: #FFFFFF; }
    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
      background-color: #026082; }
    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
      color: #FFFFFF; }
  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: 1.125rem;
    padding-right: 2.25rem;
    padding-bottom: 1.1875rem;
    padding-left: 2.25rem;
    font-size: 1.25rem; }
  button.small, .button.small {
    padding-top: 0.875rem;
    padding-right: 1.75rem;
    padding-bottom: 0.9375rem;
    padding-left: 1.75rem;
    font-size: 0.8125rem; }
  button.tiny, .button.tiny {
    padding-top: 0.625rem;
    padding-right: 1.25rem;
    padding-bottom: 0.6875rem;
    padding-left: 1.25rem;
    font-size: 0.6875rem; }
  button.expand, .button.expand {
    padding-right: 0;
    padding-left: 0;
    width: 100%; }
  button.left-align, .button.left-align {
    text-align: left;
    text-indent: 0.75rem; }
  button.right-align, .button.right-align {
    text-align: right;
    padding-right: 0.75rem; }
  button.radius, .button.radius, body .button, body button {
    border-radius: 0px; }
  button.round, .button.round {
    border-radius: 1000px; }
  button.disabled, button[disabled], .button.disabled, .button[disabled] {
    background-color: #0378A2;
    border-color: #026082;
    color: #FFFFFF;
    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: #026082; }
    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: #FFFFFF; }
    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: #0378A2; }
    button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary {
      background-color: #0378A2;
      border-color: #026082;
      color: #FFFFFF;
      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: #026082; }
      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: #FFFFFF; }
      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: #0378A2; }
    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: 40em) {
  button, .button {
    display: inline-block; } }

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

/* Using forms within rows, we need to set some defaults */
form .row .row {
  margin: 0 -0.5rem; }
  form .row .row .column,
  form .row .row .columns {
    padding: 0 0.5rem; }
  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.5rem; }

/* Label Styles */
label {
  font-size: 0.875rem;
  color: #4d4d4d;
  cursor: pointer;
  display: block;
  font-weight: normal;
  line-height: 1.5;
  margin-bottom: 0;
  /* Styles for required inputs */ }
  label.right {
    float: none !important;
    text-align: right; }
  label.inline {
    margin: 0 0 1rem 0;
    padding: 0.5625rem 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.875rem;
  height: 2.3125rem;
  line-height: 2.3125rem; }

/* 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: 0px;
  -webkit-border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
  border-top-left-radius: 0px; }

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

.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: 1px;
  border-color: #cccccc;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  color: rgba(0, 0, 0, 0.75);
  display: block;
  font-size: 0.875rem;
  margin: 0 0 1rem 0;
  padding: 0.5rem;
  height: 2.3125rem;
  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: 0px; }

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: 0px;
  -webkit-border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
  border-top-right-radius: 0px; }

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

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: 0px;
  -webkit-border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
  border-top-left-radius: 0px; }

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

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: 1px;
  border-color: #cccccc;
  padding: 0.5rem;
  font-size: 0.875rem;
  font-family: Helvetica, 'Trebuchet MS', Helvetica, Arial, sans-serif;
  color: rgba(0, 0, 0, 0.75);
  line-height: normal;
  border-radius: 0;
  height: 2.3125rem; }
  select::-ms-expand {
    display: none; }
  select.radius {
    border-radius: 0px; }
  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 1rem 0; }

input[type="checkbox"] + label,
input[type="radio"] + label {
  display: inline-block;
  margin-left: 0.5rem;
  margin-right: 1rem;
  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.25rem;
  margin: 1.125rem 0; }
  fieldset legend {
    font-weight: bold;
    background: #FFFFFF;
    padding: 0 0.1875rem;
    margin: 0;
    margin-left: -0.1875rem; }

/* Error Handling */
[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  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.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  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: 1rem; }

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

.error small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  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: 100%; }
  .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: -0.9375rem;
    margin-right: -0.9375rem;
    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: 0.9375rem;
  padding-right: 0.9375rem;
  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: 0.9375rem;
    padding-right: 0.9375rem;
    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: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; } }

@media only screen and (min-width: 40em) {
  .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: 0.9375rem;
    padding-right: 0.9375rem;
    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: 0.9375rem;
    padding-right: 0.9375rem;
    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: 64em) {
  .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: 0.9375rem;
    padding-right: 0.9375rem;
    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: 0.9375rem;
    padding-right: 0.9375rem;
    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; } }

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

table {
  background: #ffffff;
  margin-bottom: 1.25rem;
  border: solid 0 rgba(51, 51, 51, 0.4);
  table-layout: auto; }
  table caption {
    background: transparent;
    color: #333333;
    font-size: 1rem;
    font-weight: bold; }
  table thead {
    background: #f7f7f7; }
    table thead tr th,
    table thead tr td {
      padding: 0.5rem 0.625rem 0.625rem;
      font-size: 0.875rem;
      font-weight: bold;
      color: #333333; }
  table tfoot {
    background: #f7f7f7; }
    table tfoot tr th,
    table tfoot tr td {
      padding: 0.5rem 0.625rem 0.625rem;
      font-size: 0.875rem;
      font-weight: bold;
      color: #333333; }
  table tr th,
  table tr td {
    padding: 0.5625rem 0.625rem;
    font-size: 0.875rem;
    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.125rem; }

.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: Helvetica, 'Trebuchet MS', Helvetica, Arial, sans-serif;
      font-size: 1rem; }
      .tabs dd > a:hover, .tabs .tab-title > a:hover {
        background-color: #e7e7e7; }
      .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: 0px;
    -webkit-border-top-left-radius: 0px;
    border-bottom-left-radius: 0px;
    border-top-left-radius: 0px; }
  .tabs.radius dd:last-child a, .tabs.radius .tab:last-child a {
    -webkit-border-bottom-right-radius: 0px;
    -webkit-border-top-right-radius: 0px;
    border-bottom-right-radius: 0px;
    border-top-right-radius: 0px; }
  .tabs.vertical dd, .tabs.vertical .tab-title {
    position: inherit;
    float: none;
    display: block;
    top: auto; }

.tabs-content {
  margin-bottom: 1.5rem;
  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: 40em) {
  .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 4px #FFFFFF;
  max-width: 100%;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
  transition: all 200ms ease-out; }
  .th:hover, .th:focus {
    box-shadow: 0 0 6px 1px rgba(3, 120, 162, 0.5); }
  .th.radius {
    border-radius: 0px; }

.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: 39.9375em) {
  .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: 40em) and (max-width: 63.9375em) {
  .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: 40em) {
  .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: 64em) and (max-width: 89.9375em) {
  .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: 64em) {
  .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: 90em) and (max-width: 119.9375em) {
  .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: 90em) {
  .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: 120em) 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: 120em) {
  .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: #0378A2;
  text-decoration: none;
  line-height: inherit; }
  a:hover, a:focus {
    color: #03678b; }
  a img {
    border: none; }

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

/* Default header styles */
h1, h2, h3, h4, h5, h6 {
  font-family:  Roboto+Condensed, 'Roboto Condensed', 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: 80%;
    color: #6f6f6f;
    line-height: 0; }

h1 {
  font-size: 2.125rem; }

h2 {
  font-size: 1.6875rem; }

h3 {
  font-size: 1.375rem; }

h4 {
  font-size: 1.125rem; }

h5 {
  font-size: 1.125rem; }

h6 {
  font-size: 1rem; }

.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.25rem 0 1.1875rem;
  height: 0; }

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

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

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

code {
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #333333;
  background-color: #99e3fd;
  border-width: 1px;
  border-style: solid;
  border-color: #71d8fc;
  padding: 0.125rem 0.3125rem 0.0625rem; }

/* Lists */
ul,
ol,
dl {
  font-size: 1rem;
  line-height: 1.5;
  margin-bottom: 1.25rem;
  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.25rem;
      margin-bottom: 0;
      list-style: none; }

/* Unordered Lists */
ul li ul,
ul li ol {
  margin-left: 1.25rem;
  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.25rem;
    margin-bottom: 0; }

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

dl dd {
  margin-bottom: 0.75rem; }

/* 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.25rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #DDDDDD; }
  blockquote cite {
    display: block;
    font-size: 0.8125rem;
    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.25rem 0;
  border: 1px solid #DDDDDD;
  padding: 0.625rem 0.75rem; }
  .vcard li {
    margin: 0;
    display: block; }
  .vcard .fn {
    font-weight: bold;
    font-size: 0.9375rem; }

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

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

@media only screen and (min-width: 40em) {
  h1, h2, h3, h4, h5, h6 {
    line-height: 1.4; }
  h1 {
    font-size: 2.75rem; }
  h2 {
    font-size: 2.3125rem; }
  h3 {
    font-size: 1.6875rem; }
  h4 {
    font-size: 1.4375rem; }
  h5 {
    font-size: 1.125rem; }
  h6 {
    font-size: 1rem; } }

/* 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: 40em) {
  .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: 64em) {
  .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: 90em) {
  .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: 120em) {
  .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, .nav--horizontal--right {
  list-style: none;
  margin: 0; }

.nav--horizontal > li, .pagination > li, .nav--horizontal--right > li, .nav--horizontal > li > a, .pagination > li > a, .nav--horizontal--right > 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;
  border-radius: 0px; }
  .pagination .pagination__item {
    display: none; }
  .pagination__item:last-child {
    margin-right: 0; }
  .pagination__item a {
    line-height: 2.75rem;
    color: #333333;
    padding: 0 1rem; }
  .pagination__item:hover, .pagination__item:focus {
    background-color: #167C02;
    border-color: #167C02; }
    .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: 2.75rem;
  background-color: #0378A2;
  border-color: #0378A2;
  color: #fff;
  padding: 0 1rem;
  border-radius: 0px; }
  .pagination__item--current:hover, .pagination__item--current:focus {
    background-color: #0378A2;
    border-color: #0378A2;
    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
 *
 * This icon font is largely based on a custom selection
 * of icons from the Material Design icon pack.
 */
@font-face {
  font-family: 'pioneer';
  src: url("/assets2/fonts/pioneer/pioneer.eot?tl2cf7");
  src: url("/assets2/fonts/pioneer/pioneer.eot?tl2cf7#iefix") format("embedded-opentype"), url("/assets2/fonts/pioneer/pioneer.ttf?tl2cf7") format("truetype"), url("/assets2/fonts/pioneer/pioneer.woff?tl2cf7") format("woff"), url("/assets2/fonts/pioneer/pioneer.svg?tl2cf7#pioneer") 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: 'pioneer' !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 {
  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-local-shipping:before {
  content: ""; }

.icon-stockexchange:before {
  content: ""; }

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

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

.icon-wallet-giftcard:before {
  content: ""; }

.icon-flight:before {
  content: ""; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.icon-mail: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-person:before {
  content: ""; }

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

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

.icon-star-outline: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: ""; }

@media only screen and (max-width: 39.9375em) {
  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: 63.9375em) {
  .hide_on_mobile {
    display: none; } }

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

.footer__links li {
  display: inline-block; }
  .footer__links li a {
    display: block;
    padding: 0 .5rem; }
    html.touch .footer__links li a {
      line-height: 2.75rem; }

.footer__company-info,
.footer__made-by {
  line-height: 1.5; }

.footer__made-by {
  padding-top: 1rem;
  font-size: 13px; }

.footer__cookie_notice {
  margin-top: 1.25rem;
  padding-left: 25%;
  padding-right: 25%;
  font-size: 13px; }

@media only screen and (min-width: 40em) {
  .footer__links {
    margin-top: .5rem; } }

/**
 * 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; }

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

.bestseller__title {
  font-size: 0.875rem;
  padding: 0.625rem 0; }

.bestseller__image {
  width: 2.75rem;
  height: 2.75rem;
  position: absolute;
  left: 0;
  top: 50%;
  margin-top: -1.375rem;
  line-height: 2.75rem; }

.bestseller__image img {
  display: inline;
  max-width: 2.75rem;
  max-height: 2.75rem; }

.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 0.9375rem 1.875rem; }
  .block-image-grid > li {
    width: 33.33333%;
    padding: 0 0.9375rem 1.875rem;
    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.25rem; }
    .block-image-grid > li:nth-of-type(3n+2) {
      padding-left: 0.625rem;
      padding-right: 0.625rem; }
    .block-image-grid > li:nth-of-type(3n) {
      padding-left: 1.25rem;
      padding-right: 0rem; }

.block__box__headline {
  text-transform: uppercase;
  font-size: 1.25rem;
  padding: 0.5rem 0.9375rem 0.5rem 0.9375rem;
  margin: 0; }
  .block__box__headline:hover {
    cursor: pointer; }
  .block__box__headline:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !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 {
    background-color: #0378A2;
    color: #fff; }
    .block__box__headline.toggled: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 0.9375rem 1.875rem 0.9375rem; }

.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: 'pioneer' !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.875rem;
  padding-right: 1.75rem;
  padding-bottom: 0.9375rem;
  padding-left: 1.75rem;
  font-size: 0.8125rem;
  padding-left: 0;
  padding-right: 0; }

#footer .footer-block:last-child {
  margin-bottom: 1.875rem; }
  #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: #04a8e3; }
  #footer .block__box li a.toggled:before {
    color: #f17864; }
  #footer .block__box .main-nav__toggle, #footer .block__box .main-nav__toggle:before {
    height: 3.125rem;
    width: 3.125rem;
    line-height: 3.125rem;
    text-indent: 0; }
  #footer .block__box li.level-0, #footer .block__box li.level-0 li {
    position: relative;
    padding: 0;
    border-top: 1px rgba(255, 255, 255, 0.2) solid; }
  #footer .block__box li.level-0:first-child {
    border-top-width: 0px; }
  #footer .block__box li.level-0 a {
    font-size: 0.875rem;
    padding: 0.875rem 0; }
  #footer .block__box li.level-1 {
    text-indent: 1.3125rem; }
  #footer .block__box li.level-2 {
    text-indent: 2.625rem; }
  #footer .block__box li.level-3 {
    text-indent: 3.9375rem; }
  #footer .block__box li.level-4 {
    text-indent: 5.25rem; }
  #footer .block__box li.level-5 {
    text-indent: 6.5625rem; }
  #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: 40em) {
  #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 {
    padding-left: 0;
    padding-right: 0; }
    .block__box__headline.toggled {
      background-color: inherit;
      color: inherit; }
    .block__box__headline:after {
      display: none; }
    .block__box__headline: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: 64em) {
  #footer .footer-block {
    margin-bottom: 1.875rem; }
    #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_right .block__box__headline-wrapper,
.block__box--banners_right .block__box__headline,
.block__box--banners_left .block__box__headline-wrapper,
.block__box--banners_left .block__box__headline {
  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%;
      border-radius: -1px; }
    .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, .page__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, .page__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, .bordered__list-item.page__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; }

/* see foundation/components/breadcrumbs for the base styling and options */
.breadcrumbs {
  font-family: Helvetica, 'Trebuchet MS', Helvetica, Arial, sans-serif;
  margin-bottom: 0;
  background: transparent; }
  .breadcrumbs > li {
    line-height: 1.5; }

.breadcrumbs + h1 {
  margin-top: 0; }

@media only screen and (min-width: 64em) {
  .breadcrumbs {
    float: right;
    height: 3.85rem;
    padding: 1.175rem 0; } }

.bx-wrapper {
  position: relative; }

.bx-controls-direction a {
  position: absolute;
  top: 50%;
  margin-top: -1.375rem;
  outline: 0;
  width: 2.75rem;
  height: 2.75rem;
  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.375rem;
  -ms-border-radius: 1.375rem;
  border-radius: 1.375rem;
  border: 2px solid #fff; }
  .slider__with-nav .bx-controls-direction a {
    margin-top: -2.75rem; }
  .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: 2.75rem;
    font-size: 1.875rem;
    top: -2px;
    left: -2px;
    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: 2px 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: 0.9375rem; }
  .bx-next:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !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: 0.9375rem; }
  .bx-prev:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !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: 2.75rem;
  width: 2.75rem;
  line-height: 2.75rem;
  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: 'pioneer' !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: #ffffff;
    color: #000;
    height: 2.75rem;
    width: 2.75rem;
    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: #0378A2;
    opacity: .75; }

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

.cart-button__quantity,
.cart-button__sum,
.cart-button__currency {
  line-height: 1.5rem;
  font-size: 0.75rem;
  height: 1.5rem; }

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

.cart-button__quantity {
  display: inline-block;
  border-radius: 50%;
  text-align: center;
  width: 1.5rem;
  -webkit-transition: all 200ms ease;
  -moz-transition: all 200ms ease;
  transition: all 200ms ease; }
  .cart-button:hover .cart-button__quantity,
  .cart-button--highlighted .cart-button__quantity {
    background-color: #167C02 !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: 'pioneer' !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 {
  line-height: 2.3125rem;
  float: left;
  font-size: 0.875rem;
  color: #333333;
  padding-right: 1rem; }
  .cart-button:hover {
    color: #333333; }

.checkout-button {
  float: left;
  padding-top: 0.625rem;
  padding-right: 1.25rem;
  padding-bottom: 0.6875rem;
  padding-left: 1.25rem;
  font-size: 0.6875rem;
  background-color: #167C02;
  border-color: #126302;
  color: #FFFFFF;
  border-radius: 0px;
  padding: 0 1rem;
  line-height: 2.3125rem;
  font-size: 0.875rem;
  margin-bottom: 0; }
  .checkout-button:hover, .checkout-button:focus {
    background-color: #126302; }
  .checkout-button:hover, .checkout-button:focus {
    color: #FFFFFF; }
  .checkout-button:hover, .checkout-button:focus {
    background-color: #167C02; }
  .checkout-button .cart-icon:before {
    margin-right: -9px;
    display: inline-block; }

.cart-button--empty {
  padding-right: 0; }
  .cart-button--empty .cart-button__sum,
  .cart-button--empty .cart-button__currency,
  .cart-button--empty ~ .checkout-button {
    display: none !important; }

.cart__icon-cart {
  padding-right: .1rem; }

.cart-button__text {
  display: none; }

.cart__icon-procede {
  font-size: 0.8125rem; }

@media only screen and (min-width: 27em) {
  .cart-button__sum,
  .cart-button__currency {
    display: inline-block; } }

#kasse_one_form .row .row,
#kasse_one_logginn .row .row {
  width: auto;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  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: 0.9375rem;
    padding-right: 0.9375rem;
    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: 0px;
  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.25rem;
  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: 0px;
  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: #47ccfc; }

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

.edit_step {
  line-height: 24px;
  font-size: 12px;
  margin: 19px 1.25rem 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.25rem;
  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.3125rem;
  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: -2px -2px 0 0; }

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

/* 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.25rem;
  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-wrap p.price--original, .productlist__product-wrap #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.25rem 1.5em 4.3125rem;
  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: 'pioneer' !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 1.875rem;
  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: 1.875rem;
  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.25rem 8px 1.25rem;
  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-wrap .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: 0.9375rem;
  padding-right: 0.9375rem;
  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: 40em) {
  .addon_buttons {
    padding-right: 1.875rem; }
  .cart-contents .mini-img {
    padding: 5px 7px; }
  .mini-img img {
    display: block; }
  .checkout__step__contents {
    padding: 0 1.875rem 0 4.3125rem; }
  .control-group {
    width: 100%; }
  .checkout-login {
    font-size: 0.875rem; }
  .checkout__step__contents .next-step-btn {
    padding-top: 1rem;
    padding-right: 2rem;
    padding-bottom: 1.0625rem;
    padding-left: 2rem;
    font-size: 1rem; }
    .checkout__step__contents .next-step-btn .arrow {
      display: inline !important; }
  .checkout__step__contents .close {
    padding: 0; }
  .checkout__step__mirror {
    padding-left: 4.3125rem;
    padding-right: 1.875rem; }
  #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: 64em) {
  .checkout__step__contents,
  .checkout__step__mirror,
  .addon_buttons {
    padding-right: 4.3125rem; } }

.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: 0px;
  left: 0;
  background-color: #FFFFFF;
  padding: 1.875rem;
  border: solid 1px #666666;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }
  @media only screen and (max-width: 39.9375em) {
    .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: 40em) {
    .reveal-modal {
      width: 80%;
      max-width: 100%;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal {
      top: 6.25rem; } }
  .reveal-modal.radius {
    border-radius: 0px; }
  .reveal-modal.round {
    border-radius: 1000px; }
  .reveal-modal.collapse {
    padding: 0; }
  @media only screen and (min-width: 40em) {
    .reveal-modal.tiny {
      width: 30%;
      max-width: 100%;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.small {
      width: 40%;
      max-width: 100%;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.medium {
      width: 60%;
      max-width: 100%;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.large {
      width: 70%;
      max-width: 100%;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.xlarge {
      width: 95%;
      max-width: 100%;
      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: 40em) {
      .reveal-modal.full {
        width: 100%;
        max-width: 100%;
        left: 0;
        right: 0;
        margin: 0 auto; } }
  .reveal-modal.toback {
    z-index: 1003; }
  .reveal-modal .close-reveal-modal {
    font-size: 2.5rem;
    line-height: 1;
    position: absolute;
    top: 0.625rem;
    right: 1.375rem;
    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: #0378A2;
    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.375rem;
    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: #0378A2;
    -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: #535353; }

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.875rem;
  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.875rem;
  padding-left: 1.6em; }

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

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

.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: 'pioneer' !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: 1rem;
    position: absolute;
    top: 0;
    left: 0.625rem;
    right: 0.625rem; }

.freight-option {
  position: relative; }
  .freight-option:before {
    border: 1px rgba(3, 120, 162, 0.6) solid;
    border-radius: 6px;
    content: '';
    display: block;
    position: absolute;
    top: -0.46875rem;
    left: 0;
    right: 0;
    bottom: -0.23438rem;
    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: 39.9375em) {
    .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: #0378A2;
      border-color: #026082;
      color: white;
      -webkit-transition: all 300ms ease;
      -moz-transition: all 300ms ease;
      transition: all 300ms ease; }
      .checkout--kco .addon_buttons .edit_step:hover {
        background-color: #0378A2;
        color: white; }
      .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: 0.875rem; }
  .checkout--kco .edit_step {
    font-size: 0.8125rem; }
    .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.5625rem; }

.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: #0378A2;
    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.8125rem;
    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.21875rem;
      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.6875rem;
    font-weight: normal;
    display: inline-block;
    margin: -0.375rem 0.375rem 0 0.375rem;
    padding: 0.125rem 0.3125rem;
    color: #167C02;
    background-color: rgba(22, 124, 2, 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: #0378A2;
      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 #0378A2; }
  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.625rem 0.625rem 0;
  border-color: transparent #167C02 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.82812rem 0.6875rem;
    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.4375rem;
  padding-bottom: 0.4375rem; }

.kco_shipping_options {
  margin-top: 0.46875rem;
  margin-bottom: 0.46875rem; }
  .kco_shipping_options .freight-option {
    border-bottom: none; }
    .kco_shipping_options .freight-option label {
      padding-bottom: 0.9375rem;
      padding-top: 0.9375rem;
      padding-left: 1.8125rem;
      padding-right: 0.9375rem; }

.checkout__payment-methods-list {
  list-style: none; }
  .checkout__payment-methods-list > :first-child {
    margin-bottom: 0.23438rem; }
  .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(3, 120, 162, 0.6) solid;
      border-radius: 6px;
      content: '';
      background: #ffffff;
      display: block;
      position: absolute;
      top: -0.23438rem;
      left: 0;
      right: 0;
      bottom: -0.23438rem;
      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: 1.8125rem;
      padding-right: 1.875rem;
      padding-top: 0.46875rem;
      padding-bottom: 0.46875rem;
      position: relative; }
      .checkout__payment-methods-list .payment-method label span {
        height: 1.375rem;
        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: 0.9375rem; }

.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: 39.9375em) {
  .checkout__bottom-toolbar-right button.js-checkout_update {
    top: -0.9375rem !important; }
  .checkout__payment-methods-list {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; } }

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

@media only screen and (min-width: 40em) {
  .row .row.checkout-kco__address-form {
    padding-right: 0.9375rem; }
  .row .checkout--kco__freight-options {
    padding-left: 0.9375rem; }
  .checkout--kco__freight {
    box-shadow: inset 1px 0 0 rgba(51, 51, 51, 0.2);
    margin-bottom: 0.9375rem; }
  .checkout--kco__payment-alternatives {
    margin-left: 0.9375rem;
    margin-right: 0.9375rem; }
  .checkout__payment-methods-list {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; }
  .checkout--kco .addon_buttons {
    top: 1.375rem;
    padding-right: 1.875rem; }
  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.3125rem;
      margin-left: 0.5625rem; } }

.js-attach_comment {
  display: block; }

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

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

@media only screen and (min-width: 64em) {
  .row .row.checkout-kco__address-form, .checkout__payment-methods-list {
    padding-right: 1.875rem; }
  .row .checkout--kco__freight-options, .alternate-payment-wrapper {
    padding-left: 1.875rem; }
  .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: 1.25rem;
    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: #167C02;
  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: 0.875rem;
  border-top: 1px solid #dddddd;
  padding-top: 2rem; }
  .comments-guidelines p, .comments-guidelines li {
    font-size: 0.875rem; }

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

@media only screen and (min-width: 40em) {
  .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; }

/*! 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.5rem; }

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

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

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

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

@-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; }

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

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

.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: 40em) {
  .receipt__print {
    margin-top: .5rem; }
  .receipt__order-overview,
  .receipt__customer-info {
    width: auto;
    min-width: 60%; } }

@media only screen and (min-width: 64em) {
  .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: 'pioneer' !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.5rem; }
    .touch .account-tabs .tab-title a {
      line-height: 2.75rem; }

.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: -0.9375rem;
  margin-right: -0.9375rem;
  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: 0.9375rem;
    padding-right: 0.9375rem;
    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: 39.9375em) {
  .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: 40em) {
  .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: 40em) {
  #wishlist_table {
    min-width: 80%; } }

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

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

.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: 0.875rem;
    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.75rem;
  margin-bottom: 0.75rem;
  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.25rem; }

.product .price {
  font-size: 2.25rem;
  font-weight: bold;
  font-family:  Roboto+Condensed, 'Roboto Condensed', 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: 0.875rem; }

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

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

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

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

.product__stockstatus {
  font-size: 0.875rem;
  margin-bottom: 1.25rem;
  line-height: 2.25rem; }

.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: -0.9375rem;
  margin-right: -0.9375rem;
  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: 0.9375rem;
  padding-right: 0.9375rem;
  width: 100%;
  float: left; }

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

.product__extrafield__priceinfo {
  font-size: 0.875rem; }

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

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

@media only screen and (max-width: 39.9375em) {
  .product__imagegallery {
    list-style-type: none;
    margin: 0;
    text-align: center; }
    .product__imagegallery li {
      display: inline-block; }
    .product__imagegallery .th {
      box-shadow: none;
      height: 2.75rem;
      width: 2.75rem;
      line-height: 2.75rem;
      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: #0378A2;
          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: 'pioneer' !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: 2.75rem;
        width: 2.75rem;
        line-height: 2.75rem;
        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: 39.9375em) {
  .product__title {
    padding-top: 1rem; } }

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

@media only screen and (min-width: 40em) {
  .product__info {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 50%;
    float: left; }
  .product__about,
  .product__imagegallery__wrapper {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 100%;
    float: left; }
  .product__images,
  .product__info,
  .product__main-images {
    margin-bottom: 1.875rem; }
  .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 0.9375rem 1.875rem; }
    .product__imagegallery > li {
      width: 25%;
      padding: 0 0.9375rem 1.875rem;
      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.40625rem; }
      .product__imagegallery > li:nth-of-type(4n+2) {
        padding-left: 0.46875rem;
        padding-right: 0.9375rem; }
      .product__imagegallery > li:nth-of-type(4n+3) {
        padding-left: 0.9375rem;
        padding-right: 0.46875rem; }
      .product__imagegallery > li:nth-of-type(4n) {
        padding-left: 1.40625rem;
        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;
      background-color: #FFFFFF;
      box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
      opacity: .8; }
      li.product__imagegallery__imagewrap .th:hover, li.product__imagegallery__imagewrap .th:focus, li.product__imagegallery__imagewrap .th.active {
        box-shadow: 0 0 6px 1px rgba(2, 79, 107, 0.5);
        opacity: 1; }
      li.product__imagegallery__imagewrap .th:after {
        display: none; }
  .product__title {
    font-size: 1.875rem; }
  .product__ingress {
    font-size: 0.875rem; }
  .product__stockstatus:not(.product__stockstatus--has-extrainfo) {
    line-height: 1.5rem; }
  .product__buy-button.button,
  .product__wishlist-button.button {
    font-size: 1rem;
    border-radius: 0px; } }

@media only screen and (min-width: 64em) {
  .product__title {
    font-size: 2.75rem; }
  .product__ingress {
    font-size: 1rem; }
  .product__stockstatus:not(.product__stockstatus--has-extrainfo) {
    line-height: 2.25rem; }
  .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 0.9375rem 1.875rem; }
    .product__imagegallery > li {
      width: 20%;
      padding: 0 0.9375rem 1.875rem;
      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.5rem; }
      .product__imagegallery > li:nth-of-type(5n+2) {
        padding-left: 0.375rem;
        padding-right: 1.125rem; }
      .product__imagegallery > li:nth-of-type(5n+3) {
        padding-left: 0.75rem;
        padding-right: 0.75rem; }
      .product__imagegallery > li:nth-of-type(5n+4) {
        padding-left: 1.125rem;
        padding-right: 0.375rem; }
      .product__imagegallery > li:nth-of-type(5n) {
        padding-left: 1.5rem;
        padding-right: 0rem; }
  li.product__imagegallery__imagewrap {
    height: 6rem; }
  .product__attribute,
  .product__quantity {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 33.33333%;
    float: left; }
  .product__extrafield__wrap {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 66.66667%;
    float: left; }
  .product .product__buy-button.button,
  .product .product__wishlist-button.button {
    font-size: 1.375rem; } }

.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: #167C02 !important; }
  html.touch .product-search__element a {
    padding: 0.625rem 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.125rem 1rem; }

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

.rating {
  position: relative;
  height: 2.75rem;
  margin-bottom: 1rem; }
  .rating label.star {
    position: absolute;
    left: 0;
    top: 0;
    color: gold;
    display: inline-block;
    font-size: 1.375rem !important;
    width: 2.75rem;
    height: 2.75rem;
    line-height: 2.75rem;
    overflow: hidden;
    text-align: center;
    margin: 0;
    z-index: 4; }
  .rating input.star-checkbox {
    position: absolute;
    width: 2.75rem;
    height: 2.75rem;
    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: 2.75rem; }
  .rating label.star-3,
  .rating input.star-checkbox-3 {
    left: 5.5rem; }
  .rating label.star-4,
  .rating input.star-checkbox-4 {
    left: 8.25rem; }
  .rating label.star-5,
  .rating input.star-checkbox-5 {
    left: 11rem; }
  .rating label.star-6,
  .rating input.star-checkbox-6 {
    left: 13.75rem; }
  .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: 'pioneer' !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.5);
  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: 2.75rem;
  width: 2.75rem;
  height: 2.75rem;
  font-size: 1.75rem;
  color: #fff;
  opacity: .6;
  background-color: #000;
  display: inline-block;
  -ms-border-radius: 1.375rem;
  border-radius: 1.375rem; }
  .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); }

/**
 * Expanding search input field
 *
 * Code courtesy of http://codepen.io/sdaitzman/pen/rmqfB
 */
.search-box__container {
  padding: 0.5rem 0;
  height: 3.5rem;
  min-width: 2.5rem;
  position: relative; }

.search-box__submit.hidden {
  display: none; }

input.search-box__input {
  transition: width 0.3s, border-radius 0.3s, background 0.3s, box-shadow 0.3s;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 1.25rem;
  border: none;
  cursor: pointer;
  background: #049dd4;
  margin-bottom: 0;
  display: inline-block;
  right: 0; }
  input.search-box__input::-ms-clear {
    display: none; }
  input.search-box__input ~ label {
    position: absolute;
    right: 0;
    top: 0;
    display: block;
    height: 3.5rem;
    line-height: 2.5rem;
    padding: 0.5rem 0;
    width: 2.5rem;
    text-align: center;
    z-index: 2; }
    input.search-box__input ~ label .icon-search {
      color: #fff; }
      input.search-box__input ~ label .icon-search:before {
        display: inline-block; }
  input.search-box__input ~ .search-box__submit {
    position: absolute;
    right: 0;
    top: 0;
    display: block;
    height: 3.5rem;
    width: 2.5rem;
    opacity: 0; }
    input.search-box__input ~ .search-box__submit ~ label:before {
      content: '.';
      color: transparent;
      display: block;
      position: absolute;
      top: 0.5rem;
      left: 0px;
      right: 0px;
      bottom: 0.5rem;
      background: #10bdfb;
      border-radius: 50%;
      margin: 2px;
      opacity: 0;
      -webkit-transition: opacity 150ms ease;
      -moz-transition: opacity 150ms ease;
      transition: opacity 150ms ease; }
    input.search-box__input ~ .search-box__submit:hover ~ label .icon-search {
      color: white; }
    input.search-box__input ~ .search-box__submit:hover ~ label:before {
      opacity: 1; }
  input.search-box__input:hover {
    color: white;
    background: #10bdfb;
    box-shadow: 0 0 0 2px #5cd2fc; }
    input.search-box__input:hover ~ label .icon-search {
      color: white; }
  input.search-box__input:focus, input.search-box__input.active {
    transition: width 0.3s cubic-bezier(0.6, 0, 0.4, 1), border-radius 0.3s, background 0.3s;
    border: none;
    outline: none;
    box-shadow: none;
    padding-left: 1rem;
    cursor: text;
    width: 200px;
    border-radius: auto;
    background: #42cbfc;
    color: #025370; }
    input.search-box__input:focus::-webkit-input-placeholder, input.search-box__input.active::-webkit-input-placeholder {
      color: rgba(2, 83, 112, 0.75); }
    input.search-box__input:focus::-moz-placeholder, input.search-box__input.active::-moz-placeholder {
      color: rgba(2, 83, 112, 0.75); }
    input.search-box__input:focus:-moz-placeholder, input.search-box__input.active:-moz-placeholder {
      color: rgba(2, 83, 112, 0.75); }
    input.search-box__input:focus:-ms-input-placeholder, input.search-box__input.active:-ms-input-placeholder {
      color: rgba(2, 83, 112, 0.75); }
    input.search-box__input:focus ~ label .icon-search, input.search-box__input.active ~ label .icon-search {
      color: #025370; }
    input.search-box__input:focus ~ .search-box__submit, input.search-box__input.active ~ .search-box__submit {
      z-index: 3; }
  input.search-box__input:not(:focus):not(.active) {
    color: transparent; }
    input.search-box__input:not(:focus):not(.active)::-webkit-input-placeholder {
      color: transparent; }
    input.search-box__input:not(:focus):not(.active)::-moz-placeholder {
      color: transparent; }
    input.search-box__input:not(:focus):not(.active):-moz-placeholder {
      color: transparent; }
    input.search-box__input:not(:focus):not(.active):-ms-input-placeholder {
      color: transparent; }

@-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__label .icon-search::before, .search-box__label .icon-search::after {
  -webkit-transition: -webkit-transform, opacity;
  -moz-transition: -moz-transform, opacity;
  transition: transform, opacity; }

.search-box__label .icon-search::after {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -0.4375rem;
  margin-top: -0.4375rem;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
  opacity: 0; }

.search-box--loading .search-box__label .icon-search::before {
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
  opacity: 0; }

.search-box--loading .search-box__label .icon-search::after {
  opacity: 1;
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
  -webkit-animation: activity-rotate 1s 150ms linear infinite;
  -o-animation: activity-rotate 1s 150ms linear infinite;
  animation: activity-rotate 1s 150ms linear infinite; }

#search-submit {
  border: none;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

.search-box__container .icon-search {
  position: relative;
  width: 2.5rem;
  color: white;
  cursor: pointer; }

@media only screen and (min-width: 27em) {
  input.search-box__input:focus, input.search-box__input.active {
    width: 300px; } }

@media only screen and (min-width: 40em) {
  input.search-box__input:focus, input.search-box__input.active {
    width: 350px; } }

a.search-modal-link.neutral-link:hover {
  background-color: transparent; }

@-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); } }

@media only screen and (min-width: 64em) {
  .search-box--loading .product-search {
    position: relative; }
    .search-box--loading .product-search:before {
      position: absolute;
      top: .65rem;
      right: .3rem;
      -webkit-animation: activity-rotate 1s 150ms linear infinite;
      -o-animation: activity-rotate 1s 150ms linear infinite;
      animation: activity-rotate 1s 150ms linear infinite; } }

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

.slider__wrapper {
  margin-bottom: 1.875rem;
  margin-right: -0.9375rem;
  margin-left: -0.9375rem; }

.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: 90em) {
  .slider__wrapper {
    margin-right: 0;
    margin-left: 0; } }

.social-buttons-list {
  list-style: none;
  margin: 0;
  text-align: center; }

.social-buttons-list--product {
  margin-bottom: 1rem; }

.social-button {
  display: inline-block;
  line-height: 2.75rem;
  margin-bottom: 1rem; }
  .social-buttons-list--product .social-button {
    margin-bottom: 0; }
  .social-button .social-button__link {
    display: block;
    height: 2.75rem;
    width: 2.75rem;
    background-color: #ffffff;
    opacity: .3;
    -webkit-transition: all 0.2s ease;
    -moz-transition: all 0.2s ease;
    transition: all 0.2s ease;
    border-radius: 50%;
    color: #333333;
    font-size: 1.25rem;
    text-align: center; }
    .social-button .social-button__link:hover, .social-button .social-button__link:focus {
      color: #333333;
      opacity: 1; }
    .social-buttons-list--product .social-button .social-button__link {
      background-color: #ffffff;
      color: #333333;
      border: 2px solid #333333;
      opacity: .6; }
      .social-buttons-list--product .social-button .social-button__link:hover, .social-buttons-list--product .social-button .social-button__link:focus {
        color: #ffffff;
        opacity: 1; }

.social-buttons__headline-wrapper {
  display: none; }

.social-button--blogger .social-button__link:hover, .social-button--blogger .social-button__link:focus, .social-button--blogger .social-button__link:active {
  color: #fff;
  background-color: #fc9948;
  border-color: #fc9948; }

.social-button--ello .social-button__link:hover, .social-button--ello .social-button__link:focus, .social-button--ello .social-button__link:active {
  color: #000;
  background-color: rgba(0, 0, 0, 0.1);
  border-color: rgba(0, 0, 0, 0.1); }

.social-button--facebook .social-button__link:hover, .social-button--facebook .social-button__link:focus, .social-button--facebook .social-button__link:active {
  color: #fff;
  background-color: #3b5998;
  border-color: #3b5998; }

.social-button--flickr .social-button__link:hover, .social-button--flickr .social-button__link:focus, .social-button--flickr .social-button__link:active {
  color: #fff;
  background-color: #ff0084;
  border-color: #ff0084; }

.social-button--googleplus .social-button__link:hover, .social-button--googleplus .social-button__link:focus, .social-button--googleplus .social-button__link:active {
  color: #fff;
  background-color: #dd4b39;
  border-color: #dd4b39; }

.social-button--instagram .social-button__link:hover, .social-button--instagram .social-button__link:focus, .social-button--instagram .social-button__link:active {
  color: #fff;
  background-color: #517fa4;
  border-color: #517fa4; }

.social-button--linkedin .social-button__link:hover, .social-button--linkedin .social-button__link:focus, .social-button--linkedin .social-button__link:active {
  color: #fff;
  background-color: #007bb6;
  border-color: #007bb6; }

.social-button--mail .social-button__link:hover, .social-button--mail .social-button__link:focus, .social-button--mail .social-button__link:active {
  color: #fff;
  background-color: #333;
  border-color: #333; }

.social-button--pinterest .social-button__link:hover, .social-button--pinterest .social-button__link:focus, .social-button--pinterest .social-button__link:active {
  color: #fff;
  background-color: #cb2027;
  border-color: #cb2027; }

.social-button--twitter .social-button__link:hover, .social-button--twitter .social-button__link:focus, .social-button--twitter .social-button__link:active {
  color: #fff;
  background-color: #00aced;
  border-color: #00aced; }

.social-button--vimeo .social-button__link:hover, .social-button--vimeo .social-button__link:focus, .social-button--vimeo .social-button__link:active {
  color: #fff;
  background-color: #45bcf9;
  border-color: #45bcf9; }

.social-button--youtube .social-button__link:hover, .social-button--youtube .social-button__link:focus, .social-button--youtube .social-button__link:active {
  color: #fff;
  background-color: #cc181e;
  border-color: #cc181e; }

@media only screen and (min-width: 40em) {
  .social-buttons-list--product {
    margin-bottom: 0; } }

@media only screen and (min-width: 90em) {
  .social-buttons-list--product {
    position: absolute;
    right: -3rem;
    top: 1rem;
    width: 2.75rem; }
    .social-buttons-list--product .social-button {
      margin-bottom: .5rem; }
    #pageframe .social-buttons-list--product {
      right: -4.5rem; } }

/* 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:  Roboto+Condensed, 'Roboto Condensed', 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 1rem;
  line-height: 2.75rem;
  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: 'pioneer' !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: #e7e7e7; }

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

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

.resp-tab-content {
  display: none;
  padding: 1rem; }
  .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: 39.9375em) {
  .js-tabs {
    border-top: 1px solid #dddddd; }
  .resp-tabs-list {
    display: none; }
  .resp-accordion {
    display: block;
    padding: 0 1rem;
    font-size: 1rem; }
  .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: 40em) {
  .resp-tab-content-active {
    border-top: 1px solid #000; } }

@media only screen and (min-width: 64em) {
  .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: #167C02; }

.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-wrap .price--original {
  opacity: .6; }

.nav--horizontal--right {
  text-align: right; }

.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: 'pioneer' !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: 1.875rem;
  line-height: 1;
  color: rgba(0, 0, 0, 0.65);
  top: 50%;
  left: 0;
  text-align: center;
  margin-top: -0.9375rem;
  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.5625rem;
  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);
  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);
  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);
  transform: rotate(-5deg) translatez(0); }

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

#utils-nav {
  font-family: Helvetica, 'Trebuchet MS', Helvetica, Arial, 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: #167C02;
    color: #fff; }

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

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

#tools-nav {
  overflow: visible; }

.piped-nav {
  margin: 0;
  font-size: 0.875rem;
  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: 63.9375em) {
  #nav {
    z-index: 200;
    position: absolute;
    overflow: hidden;
    padding-top: 3rem;
    top: 9.75rem; }
    #nav:not(:target) {
      z-index: -1;
      min-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 {
    min-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);
    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);
    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);
    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);
    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: 40em) and (max-width: 63.9375em) {
  .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);
    transform: translate3d(50%, 0, 0) scale3d(1, 1, 1); } }

#logo-row {
  padding: 1.5rem 0; }

#logo a {
  text-decoration: none; }

#logo h1 {
  margin: 0;
  font-size: 2.75rem; }

#logo img {
  vertical-align: middle; }

#extra-nav .cart-and-checkout {
  padding-top: 0.71875rem; }
  #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: 0px;
  -webkit-border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
  border-top-left-radius: 0px; }

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

#extra-nav .button:hover, #extra-nav .button:focus {
  background-color: #167C02;
  color: #fff; }

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

@media only screen and (min-width: 64em) {
  #logo-row {
    padding: 2.5rem 0; }
  #logo h1 {
    line-height: 5rem; } }

/**
 * 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: Helvetica, 'Trebuchet MS', Helvetica, Arial, sans-serif; }
  .main-nav ul {
    margin: 0;
    list-style-type: none;
    direction: ltr; }
  .main-nav a {
    color: #ffffff;
    transition: background-color 150ms ease-out; }
  .main-nav .icon-menu:before {
    vertical-align: -12%; }

.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: #167C02;
    opacity: 1; }
  .main-nav__close-btn i {
    font-size: 0.75rem;
    padding-left: .4rem; }

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

.nav-compact a {
  color: #ffffff;
  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: #167C02;
      color: #fff; }
    .main-nav__item a .disabled {
      cursor: default; }
  .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);
    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.775rem 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: 0.875rem;
    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: 'pioneer' !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.75rem;
    line-height: 1.2rem;
    padding-right: 0.4rem; }

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

.js-nav .content-wrapper > .row > .large-9, .js-nav #logo-row {
  opacity: .4;
  -webkit-transition: opacity, 500ms;
  -moz-transition: opacity, 500ms;
  transition: opacity, 500ms; }

@media only screen and (max-width: 63.9375em) {
  .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: 40em) and (max-width: 63.9375em) {
  .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: 64em) {
  .main-nav__frontpage-link .icon-home {
    font-size: 1.25rem; }
  .main-nav__item a {
    width: auto;
    padding-left: 1rem;
    padding-right: 1rem;
    white-space: normal;
    color: #ffffff; }
  .main-nav__item.level-0, .main-nav__item {
    display: inline-block;
    border-bottom: none;
    z-index: 101;
    margin-right: 0; }
    .main-nav__item.level-0:hover, .main-nav__item:hover {
      z-index: 102; }
    .main-nav__item.level-0 > a, .main-nav__item > a {
      padding-left: 1rem;
      padding-right: 1rem;
      line-height: 3.5rem;
      padding-top: 0;
      padding-bottom: 0;
      font-weight: normal;
      text-transform: none;
      font-size: 1rem; }
    .main-nav__item.level-0.parent > a:after, .main-nav__item.parent > a:after {
      line-height: 3.5rem !important;
      float: none; }
  .main-nav__item.parent > a.highlighted ~ ul {
    position: absolute;
    min-width: 15em;
    max-width: 20em;
    border: 1px solid #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);
    border: 1px solid #dddddd; }
    .main-nav__submenu a {
      color: #333333; }
  .main-nav__item {
    float: none;
    border-bottom: 1px solid #dddddd; }
    .main-nav__item:last-child {
      border-bottom: none; } }

.setting__form {
  position: relative; }
  .setting__form i.fa {
    width: .9rem; }

.setting__button:focus {
  outline: none; }

.setting__select {
  position: absolute;
  opacity: 0;
  width: 15rem;
  z-index: -1;
  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;
  top: 3rem;
  left: 0;
  z-index: 201; }
  .setting__select > * {
    margin-bottom: 0; }
  .setting__select select {
    float: left;
    width: 65%; }
  .setting__select input[type=submit] {
    float: right;
    width: 30%;
    line-height: 2.3125rem;
    height: 2.3125rem;
    padding: 0 .5rem; }

@media only screen and (min-width: 64em) {
  .setting__select {
    top: auto;
    bottom: 3rem; } }

#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 {
  opacity: 1;
  z-index: 2;
  -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; }

.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: 0.9375rem; }
  .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:nth-of-type(1) {
    padding-top: 0; }

.equal-height-column-innerwrap {
  padding: 0.9375rem;
  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; }

/* 2 columns */
@media only screen and (min-width: 30em) {
  .equal-height-column {
    width: 50%;
    padding: 0.9375rem; }
    .equal-height-column:nth-of-type(2) {
      padding-top: 0; }
    .equal-height-column:nth-of-type(2n+1) {
      padding-left: 0; }
    .equal-height-column:nth-of-type(2n) {
      padding-right: 0; }
  .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%; }
    .equal-height-column:nth-of-type(2n+1) {
      padding-left: 0.9375rem; }
    .equal-height-column:nth-of-type(2n) {
      padding-right: 0.9375rem; }
    .equal-height-column:nth-of-type(3) {
      padding-top: 0; }
    .equal-height-column:nth-of-type(3n+1) {
      padding-left: 0;
      padding-right: 1.25rem; }
    .equal-height-column:nth-of-type(3n+2) {
      padding-left: 0.625rem;
      padding-right: 0.625rem; }
    .equal-height-column:nth-of-type(3n+3) {
      padding-left: 1.25rem;
      padding-right: 0; } }

/* 4 columns */
@media only screen and (min-width: 64em) {
  .no-split-menu .equal-height-column {
    width: 25%; }
    .no-split-menu .equal-height-column:nth-of-type(4) {
      padding-top: 0; }
    .no-split-menu .equal-height-column:nth-of-type(3n+1) {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem; }
    .no-split-menu .equal-height-column:nth-of-type(3n+2) {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem; }
    .no-split-menu .equal-height-column:nth-of-type(3n+3) {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem; }
    .no-split-menu .equal-height-column:nth-of-type(4n+1) {
      padding-left: 0;
      padding-right: 1.40625rem; }
    .no-split-menu .equal-height-column:nth-of-type(4n+2) {
      padding-left: 0.46875rem;
      padding-right: 0.9375rem; }
    .no-split-menu .equal-height-column:nth-of-type(4n+3) {
      padding-left: 0.9375rem;
      padding-right: 0.46875rem; }
    .no-split-menu .equal-height-column:nth-of-type(4n+4) {
      padding-left: 1.40625rem;
      padding-right: 0; } }

#topbanners {
  padding: 2rem 0; }

.productlist__product-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 0px;
  font-size: 0.875rem;
  background-color: white;
  transition: border-color 150ms ease-out;
  -webkit-transform: translateZ(0);
  -moz-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  padding: 0;
  border-color: rgba(0, 0, 0, 0.0925) !important; }
  .productlist__product-wrap .productlist__product__footer {
    padding: 0 1.875rem; }
  .productlist__product-wrap .equal-height-column__image {
    background: white;
    -webkit-transition: all 300ms ease;
    -moz-transition: all 300ms ease;
    transition: all 300ms ease; }
  .productlist__product-wrap .productlist__product__headline,
  .productlist__product-wrap .offers .price,
  .productlist__product-wrap .offers .price--original,
  .productlist__product-wrap .productlist__product__description {
    -webkit-transition: all 300ms ease;
    -moz-transition: all 300ms ease;
    transition: all 300ms ease; }
  .productlist__product-wrap .productlist__product--blurry-bg {
    position: absolute;
    z-index: -1;
    bottom: -7.5rem;
    right: -7.5rem;
    left: -7.5rem;
    height: 15rem;
    background-position: 50% 100%;
    background-size: cover;
    opacity: 0.075;
    -webkit-filter: blur(20px);
    filter: blur(20px); }
  .productlist__product-wrap .productlist__product__button-wrap {
    background-color: transparent !important;
    margin-left: -0.9375rem !important;
    margin-right: -0.9375rem !important;
    margin-top: -0.5rem !important;
    left: 0;
    right: 0;
    width: auto;
    opacity: 0; }
    .productlist__product-wrap .productlist__product__button-wrap .button {
      width: auto; }
  .productlist__product-wrap:hover .productlist__product__button-wrap {
    opacity: 1; }
  .productlist__product-wrap .readon-icon__container {
    background-color: rgba(255, 255, 255, 0.5); }
  .on-sale .productlist__product-wrap {
    border-top-right-radius: 0px; }
    .on-sale .productlist__product-wrap .readon-icon__container {
      background-color: rgba(255, 255, 255, 0.5); }
  .productlist__product-wrap > p {
    font-size: 0.875rem;
    line-height: 1.3; }
    .productlist__product-wrap > p:last-of-type {
      margin-bottom: 0; }
  .productlist__product-wrap .price {
    font-family:  Roboto+Condensed, 'Roboto Condensed', sans-serif;
    font-weight: bold;
    font-size: 1.25rem;
    line-height: 2.5rem; }
  .productlist__product-wrap .price--original {
    text-decoration: line-through;
    line-height: 2.5rem; }
  .productlist__product-wrap .currency {
    display: none; }
  .productlist__product-wrap .price__saleprice-text {
    display: none; }
  .productlist__product-wrap .klarna-info {
    font-size: 0.75rem;
    margin-bottom: 1rem;
    opacity: .7;
    -webkit-backface-visibility: hidden;
    -webkit-transform: translateZ(0); }
    .productlist__product-wrap .klarna-info span {
      color: #0378A2; }
  .productlist__product-wrap .vat-info {
    border: none;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; }
  .on-sale .productlist__product-wrap .productlist__product__footer:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 4;
    border-style: solid;
    border-width: 0 3.75rem 3.75rem 0;
    border-color: transparent #167C02 transparent transparent;
    text-align: right; }
  .productlist__product-wrap .discount {
    font-family:  Roboto+Condensed, 'Roboto Condensed', sans-serif;
    font-weight: bold;
    font-size: 0.95rem;
    display: block;
    position: absolute;
    right: -1.03553rem;
    top: -1.03553rem;
    width: 7.07107rem;
    height: 7.07107rem;
    line-height: 3.53553rem;
    text-align: center;
    z-index: 9;
    color: #fff;
    -webkit-transform: rotate(45deg) translateZ(0);
    -moz-transform: rotate(45deg) translateZ(0);
    -ms-transform: rotate(45deg) translateZ(0);
    transform: rotate(45deg) translateZ(0); }
    .no-csstransforms .productlist__product-wrap .discount {
      line-height: 1rem;
      font-size: 1rem;
      padding: 0.9375rem 0.9375rem 0 0;
      text-align: right;
      right: 0;
      top: 0; }

.productlist__product__headline {
  margin-bottom: 0;
  font-size: 1rem;
  font-weight: bold;
  text-transform: uppercase;
  color: #333333; }

.productlist__product__button {
  width: 100%;
  border-radius: 0px; }

.productlist__product__button-wrap {
  background: rgba(255, 255, 255, 0.7);
  border-radius: 0px;
  position: absolute;
  top: 100%;
  width: 100%;
  z-index: 4;
  margin-left: -0.9375rem;
  padding: 1.25rem 0.9375rem 0.9375rem 0.9375rem;
  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, -5.25rem);
  -moz-transform: translate(0, -5.25rem);
  -ms-transform: translate(0, -5.25rem);
  transform: translate(0, -5.25rem); }

/* 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; }

.categorylist__category-wrap {
  position: relative;
  border-radius: 0px;
  background-color: white;
  transition: border-color 150ms ease-out; }

.categorylist__category__headline {
  text-align: center;
  font-size: 1.5rem; }

.user-nav {
  float: right; }

#main-content,
#main-content-onepage {
  padding-top: 1.875rem;
  padding-bottom: 1.875rem; }
  #main-content > .breadcrumbs__wrapper:first-child,
  #main-content-onepage > .breadcrumbs__wrapper:first-child {
    margin-top: -1.875rem;
    padding: 0.5rem 0; }

#footer {
  padding-top: 1.875rem; }

#end {
  border-top: 1px solid #4d4d4d;
  padding: 1.875rem 0;
  text-align: center; }

.page__title {
  margin-top: -1.875rem;
  padding: 0.5rem 0;
  margin-bottom: 1.5rem; }
  .page__title h1 {
    margin: 0; }

.alert-box {
  top: 2rem !important;
  right: 0 !important;
  border-style: solid;
  border-width: 1px;
  display: block;
  font-weight: normal;
  margin-bottom: 0;
  position: relative;
  padding: 1rem 1.625rem 1rem 1rem;
  font-size: 0.875rem;
  transition: opacity 300ms ease-out;
  border: none;
  border-left: 2rem solid #0378A2;
  background-color: #fff;
  color: #333333;
  line-height: 1.3125; }
  .alert-box.alert-box--withclose {
    padding-right: 2.4375rem; }
  .alert-box > p:last-child {
    margin-bottom: 0; }
  .alert-box .close {
    font-size: 1.375rem;
    padding: 0 6px 4px;
    line-height: .9;
    position: absolute;
    top: 1rem;
    margin-top: -0.6875rem;
    right: 0.25rem;
    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 #0378A2;
    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: 1rem;
  top: 1rem;
  left: -1.5rem;
  line-height: 1.3125;
  height: 1.3125rem;
  color: #fff; }

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

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

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

#cart-notify {
  display: none; }

.alert-box__progressbar {
  display: none; }

.alert-box__footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  right: 0;
  height: 2.75rem;
  line-height: 2.75rem; }
  .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: 40em) {
  .alert-box {
    max-width: 60%; } }

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

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

.block-nav__submenu.toggled {
  display: none; }

@media only screen and (min-width: 64em) {
  .aside__wrapper {
    position: fixed;
    height: 100vh;
    padding-left: 0;
    padding-right: 0;
    overflow: auto; }
  #logo-row {
    padding-top: 3.5rem; }
  .aside__menu {
    padding-bottom: 3rem; }
  .aside__inner {
    position: relative; }
    .aside__inner .row {
      margin-left: 0;
      margin-right: 0; }
    .aside__inner .user-nav {
      position: absolute;
      top: 0;
      right: 0;
      height: 2rem;
      background: #f4f4f4; }
      .aside__inner .user-nav .neutral-link {
        display: inline-block !important; }
      .aside__inner .user-nav:before {
        display: inline-block;
        content: " ";
        float: left;
        width: 0px;
        height: 0px;
        border-left: 2rem solid transparent;
        border-right: 0px solid transparent;
        border-top: 2rem solid #f4f4f4;
        margin-left: -2rem; }
  .main-nav__item, .main-nav__item.level-0 {
    display: block; }
  .aside__footer {
    position: fixed;
    left: 0px;
    bottom: 0px;
    z-index: 1000; }
    .aside__footer:after {
      display: block;
      content: " ";
      position: absolute;
      left: 100%;
      height: 3rem;
      bottom: 0;
      width: 0px;
      border-right: 3rem solid transparent;
      border-left: 0px solid transparent;
      border-bottom: 3rem solid #ffffff; } }

@media only screen and (min-width: 64em) {
  .navigation__row {
    position: relative;
    height: 2rem;
    background: #f4f4f4; }
  .breadcrumbs {
    height: 2rem;
    line-height: 2rem;
    padding: 0 0.625rem;
    float: left; }
    .breadcrumbs li {
      padding: 0;
      margin: 0; }
    .breadcrumbs a, .breadcrumbs .current {
      height: 2rem;
      line-height: 2rem;
      padding: 0 0; }
  .user-nav {
    height: 2rem;
    float: left;
    text-align: right;
    position: absolute;
    top: 0;
    right: 100%;
    width: 100%; }
    .user-nav ul:after {
      display: inline-block;
      content: " ";
      float: right;
      width: 0px;
      height: 0px;
      border-left: 2rem solid transparent;
      border-right: 0px solid transparent;
      border-top: 2rem solid #f4f4f4;
      margin-left: -2rem; }
    .user-nav li {
      display: inline-block;
      float: right; }
    .user-nav a {
      display: inline-block;
      height: 2rem;
      line-height: 2rem;
      margin: 0;
      background-color: #f4f4f4 !important;
      padding: 0 0.625rem; }
      .user-nav a.active {
        color: #012e3e; }
  .navigation__toolbar {
    position: fixed;
    top: 0;
    right: 0;
    height: 2rem;
    background: #0378A2;
    z-index: 500; }
    .navigation__toolbar:before {
      display: inline-block;
      content: " ";
      float: left;
      width: 0px;
      height: 0px;
      border-left: 2rem solid transparent;
      border-right: 0px solid transparent;
      border-top: 2rem solid #0378A2;
      margin-left: -2rem; }
    .navigation__toolbar .js-product-search-form .js-product-search-submit,
    .navigation__toolbar .js-product-search-form .js-product-search {
      margin-bottom: none;
      background: #0378A2;
      color: inherit;
      border-width: 0px;
      -webkit-transition: all 300ms ease;
      -moz-transition: all 300ms ease;
      transition: all 300ms ease;
      height: 2rem;
      line-height: 2rem;
      box-shadow: none; }
      .navigation__toolbar .js-product-search-form .js-product-search-submit::-webkit-input-placeholder,
      .navigation__toolbar .js-product-search-form .js-product-search::-webkit-input-placeholder {
        color: currentColor; }
      .navigation__toolbar .js-product-search-form .js-product-search-submit::-moz-placeholder,
      .navigation__toolbar .js-product-search-form .js-product-search::-moz-placeholder {
        color: currentColor; }
      .navigation__toolbar .js-product-search-form .js-product-search-submit:-moz-placeholder,
      .navigation__toolbar .js-product-search-form .js-product-search:-moz-placeholder {
        color: currentColor; }
      .navigation__toolbar .js-product-search-form .js-product-search-submit:-ms-input-placeholder,
      .navigation__toolbar .js-product-search-form .js-product-search:-ms-input-placeholder {
        color: currentColor; }
      .navigation__toolbar .js-product-search-form .js-product-search-submit:focus,
      .navigation__toolbar .js-product-search-form .js-product-search:focus {
        box-shadow: none; }
    .navigation__toolbar .js-product-search-form .product-search-results {
      margin-top: -1rem;
      margin-left: -1rem;
      width: auto;
      left: 0;
      right: -1rem;
      opacity: 1;
      border-top-width: 0; }
    .navigation__toolbar > * {
      float: left; }
    .navigation__toolbar .cart-and-checkout .cart-button {
      height: 2rem;
      line-height: 2rem;
      position: relative;
      z-index: 1;
      -webkit-transition: all 300ms ease;
      -moz-transition: all 300ms ease;
      transition: all 300ms ease;
      padding-right: 0.5rem; }
      .navigation__toolbar .cart-and-checkout .cart-button:before {
        -webkit-transition: all 300ms ease;
        -moz-transition: all 300ms ease;
        transition: all 300ms ease;
        display: inline-block;
        content: " ";
        float: left;
        top: 0;
        z-index: 3;
        right: 100%;
        width: 0px;
        height: 0px;
        border-left: 2rem solid #0378A2;
        border-right: 0px solid #0378A2;
        border-top: 2rem solid #0378A2; }
      .navigation__toolbar .cart-and-checkout .cart-button:hover {
        background: #167C02;
        color: white !important; }
        .navigation__toolbar .cart-and-checkout .cart-button:hover:before {
          border-top-color: #167C02; }
        .navigation__toolbar .cart-and-checkout .cart-button:hover .cart-button__quantity {
          color: #167C02; }
          .navigation__toolbar .cart-and-checkout .cart-button:hover .cart-button__quantity:after {
            border-top-color: #c7febc; }
    .navigation__toolbar .cart-and-checkout .cart-button--empty .cart-button__quantity {
      display: none; }
    .navigation__toolbar .cart-and-checkout .cart-button__currency {
      padding-right: 0.5rem; }
    .navigation__toolbar .cart-and-checkout .cart-button__quantity {
      -webkit-transition: all 300ms ease;
      -moz-transition: all 300ms ease;
      transition: all 300ms ease;
      display: inline-block;
      float: right;
      height: 2rem;
      width: 1.5rem;
      text-align: center;
      margin-right: -0.5rem;
      line-height: 1.33333rem;
      background-color: transparent !important;
      box-shadow: none !important;
      color: white; }
      .navigation__toolbar .cart-and-checkout .cart-button__quantity:after {
        -webkit-transition: all 300ms ease;
        -moz-transition: all 300ms ease;
        transition: all 300ms ease;
        display: inline-block;
        position: absolute;
        z-index: -1;
        top: 0;
        right: 0;
        content: " ";
        float: right;
        width: 0px;
        height: 0px;
        border-left: 2rem solid transparent;
        border-right: 0px solid transparent;
        border-top: 2rem solid #167C02;
        margin-left: -2rem; }
    .navigation__toolbar .cart-and-checkout .checkout-button {
      display: none !important; } }

#extra-nav-large .js-product-search {
  background: #0378A2;
  box-shadow: none;
  border-width: 0px; }
  #extra-nav-large .js-product-search:focus {
    box-shadow: none; }

#contact-nav {
  text-align: center;
  padding: 1.875rem;
  margin-bottom: 1.875rem; }
  #contact-nav li {
    float: none !important;
    display: inline-block !important; }

/* bonus quickfix */
#__bs_notify__ {
  top: 2rem !important;
  background-color: #a22d03 !important;
  color: white !important; }

/* see foundation/components/breadcrumbs for the base styling and options */
.breadcrumbs > *:before {
  -webkit-transform: rotate(-45deg) scaleY(6);
  -moz-transform: rotate(-45deg) scaleY(6);
  -ms-transform: rotate(-45deg) scaleY(6);
  transform: rotate(-45deg) scaleY(6);
  content: "|" !important;
  display: inline-block;
  margin-left: 0;
  margin-right: 0;
  opacity: 0.25;
  position: relative;
  z-index: 2; }

@media only screen and (min-width: 64em) {
  .breadcrumbs {
    padding-left: 1rem; }
    .breadcrumbs .current {
      margin-left: 0.5rem !important;
      display: inline-block; }
      .breadcrumbs .current:before {
        position: relative;
        left: -0.5rem; }
  .breadcrumbs > li {
    display: none; }
    .breadcrumbs > li:nth-last-of-type( + 4) {
      display: block; }
      .breadcrumbs > li:nth-last-of-type( + 4) a, .breadcrumbs > li:nth-last-of-type( + 4):before {
        display: none; }
      .breadcrumbs > li:nth-last-of-type( + 4):after {
        content: '…';
        color: #333333;
        padding-right: 1rem;
        line-height: 1.75rem; }
    .breadcrumbs > li:nth-last-of-type(-n+3) {
      display: block;
      position: relative; }
      .breadcrumbs > li:nth-last-of-type(-n+3) > a:not(.divider) {
        position: relative;
        z-index: 2;
        padding-right: 1rem;
        padding-left: 0.5rem;
        height: inherit;
        display: inline-block;
        -webkit-transition: all 300ms ease;
        -moz-transition: all 300ms ease;
        transition: all 300ms ease; }
        .breadcrumbs > li:nth-last-of-type(-n+3) > a:not(.divider):hover {
          text-decoration: none;
          color: white; }
      .breadcrumbs > li:nth-last-of-type(-n+3):not(.current):after {
        display: block;
        content: ' ';
        position: absolute;
        background-color: rgba(3, 120, 162, 0);
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 1;
        -webkit-transform: skewX(45deg);
        -moz-transform: skewX(45deg);
        -ms-transform: skewX(45deg);
        transform: skewX(45deg);
        -webkit-transition: all 300ms ease;
        -moz-transition: all 300ms ease;
        transition: all 300ms ease; }
      .breadcrumbs > li:nth-last-of-type(-n+3):hover:not(.current):after {
        background-color: #0378a2; } }

#end,
.pagination-wrapper,
.slider__wrapper.slider__with-nav {
  margin-left: -0.9375rem;
  margin-right: -0.9375rem; }

.slider__wrapper.slider__with-nav {
  margin-top: -1.875rem; }

.pagination-wrapper {
  margin-bottom: 0.9375rem; }

#main-content {
  padding-bottom: 0; }

.pagination-wrapper {
  width: auto;
  border-top: rgba(51, 51, 51, 0.2) solid 1px; }

.bx-prev {
  left: 0.9375rem !important; }

.bx-next {
  right: 0.9375rem !important; }

@media only screen and (max-width: 63.9375em) {
  .js-ready #nav {
    min-height: 100vh; }
  .aside__wrapper {
    padding-left: 0;
    padding-right: 0; }
  #extra-nav-large {
    padding-left: 0;
    padding-right: 0; }
    #extra-nav-large .js-product-search-submit {
      z-index: 1000;
      right: -2.3125rem;
      -webkit-transform: skewX(45deg);
      -moz-transform: skewX(45deg);
      -ms-transform: skewX(45deg);
      transform: skewX(45deg); }
      #extra-nav-large .js-product-search-submit .icon-search {
        display: inline-block;
        -webkit-transform: skewX(-45deg);
        -moz-transform: skewX(-45deg);
        -ms-transform: skewX(-45deg);
        transform: skewX(-45deg); }
    #extra-nav-large #search-box__input {
      text-indent: 3.125rem; }
    #extra-nav-large #search-box__input, #extra-nav-large button[type="submit"] {
      position: relative;
      margin-bottom: 0 !important; }
    #extra-nav-large form {
      position: relative; }
      #extra-nav-large form:after {
        display: inline-block;
        content: " ";
        position: absolute;
        right: 0;
        z-index: 1000;
        top: 0;
        width: 0px;
        height: 0px;
        border-left: 2.3125rem solid transparent;
        border-right: 0px solid transparent;
        border-top: 2.3125rem solid #333333;
        margin-left: -2.3125rem; }
      #extra-nav-large form .small-11:before {
        display: inline-block;
        content: " ";
        position: absolute;
        left: 0;
        z-index: 1000;
        top: 0;
        width: 0px;
        height: 0px;
        border-right: 2.3125rem solid transparent;
        border-left: 0px solid transparent;
        border-bottom: 2.3125rem solid #333333; }
  .nav-open-btn__container {
    height: 2.3125rem;
    line-height: 2.3125rem; }
  .cart-and-checkout .checkout-button {
    display: none !important; } }

#main {
  border-top-width: 0px; }

@media only screen and (min-width: 90em) {
  .social-buttons-list--product {
    position: static !important; } }

#splitmenu, #splitmenu ul {
  margin-left: 0; }

#splitmenu li {
  font-size: 0.875rem; }
  #splitmenu li.level-1 {
    font-size: 0.8125rem; }
    #splitmenu li.level-1 li {
      font-size: 0.75rem; }

.aside .nav-side {
  padding: 0; }

.sidebar .nav-side.block__box__content {
  border-bottom: none; }

.block__box li a:before,
.block__box li.parent > a:before {
  display: none; }

.block__box ul ul li {
  padding-left: 0; }

.nav-side {
  background: #0378A2; }
  .nav-side a {
    color: #fff;
    -webkit-transition: all 300ms ease;
    -moz-transition: all 300ms ease;
    transition: all 300ms ease; }
    .nav-side a:hover {
      -webkit-transition: all 150ms ease;
      -moz-transition: all 150ms ease;
      transition: all 150ms ease;
      background-color: #167C02;
      color: #fff !important; }
  .nav-side .main-nav__item {
    border-bottom-width: 0px; }
  .nav-side .parent > a {
    position: relative;
    line-height: 3.5rem; }
  .nav-side .parent > a:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !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-transition: -webkit-transform, 400ms;
    -moz-transition: -moz-transform, 400ms;
    transition: transform, 400ms;
    -webkit-transform: rotatex(180deg);
    -moz-transform: rotatex(180deg);
    -ms-transform: rotatex(180deg);
    transform: rotatex(180deg);
    position: absolute;
    display: block;
    top: 0;
    right: 0.4rem;
    text-align: right;
    height: 3.5rem;
    line-height: inherit;
    font-size: 1.25rem; }
  .nav-side .parent > a.toggled:after {
    -webkit-transform: rotatex(0deg);
    -moz-transform: rotatex(0deg);
    -ms-transform: rotatex(0deg);
    transform: rotatex(0deg); }
  .nav-side .parent.current > ul, .nav-side .parent.selected > ul {
    display: block;
    background-color: rgba(245, 245, 245, 0.1); }
  .nav-side .parent.current > a:after, .nav-side .parent.selected > a:after {
    -webkit-transform: rotatex(0deg);
    -moz-transform: rotatex(0deg);
    -ms-transform: rotatex(0deg);
    transform: rotatex(0deg); }
  .nav-side .parent.current > a.toggled:after, .nav-side .parent.selected > a.toggled:after {
    -webkit-transform: rotatex(180deg);
    -moz-transform: rotatex(180deg);
    -ms-transform: rotatex(180deg);
    transform: rotatex(180deg); }
  .nav-side .current > a {
    background: #0499cf;
    color: #012a39; }
    .nav-side .current > a:hover {
      background-color: #167C02; }
  .nav-side ul.level-1.toggled {
    background-color: whitesmoke; }
  .nav-side .level-1 {
    background-color: #0385b3; }
  .nav-side .level-1 a {
    padding-left: 1rem;
    border-left: solid 1rem rgba(38, 38, 38, 0.2); }
  .nav-side .level-1.current > a {
    background: #026284;
    color: #93e1fd; }
    .nav-side .level-1.current > a:hover {
      background-color: #167C02; }
  .nav-side .level-2 {
    background-color: #0491c4; }
  .nav-side .level-2 a {
    padding-left: 1rem;
    border-left: solid 2rem rgba(38, 38, 38, 0.2); }
  .nav-side .level-2.current > a {
    background: #036d93;
    color: #c5effe; }
    .nav-side .level-2.current > a:hover {
      background-color: #167C02; }
  .nav-side .level-3 {
    background-color: #049ed5; }
  .nav-side .level-3 a {
    padding-left: 1rem;
    border-left: solid 3rem rgba(38, 38, 38, 0.2); }
  .nav-side .level-3.current > a {
    background: #0378A2;
    color: #e3f7fe; }
    .nav-side .level-3.current > a:hover {
      background-color: #167C02; }
  .nav-side .level-4 {
    background-color: #04aae6; }
  .nav-side .level-4 a {
    padding-left: 1rem;
    border-left: solid 4rem rgba(38, 38, 38, 0.2); }
  .nav-side .level-4.current > a {
    background: #0378A2;
    color: #e3f7fe; }
    .nav-side .level-4.current > a:hover {
      background-color: #167C02; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9ucy5jc3MiLCJzb3VyY2VzIjpbImRpbWVuc2lvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L19fZGVidWcvX21hc3Rlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9fZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX2NvbG9yLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX21hdGguc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19jb25zdGFudHMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19hYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19leHAuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19mYWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fZnJleHAuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19sZGV4cC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX2xvZy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX2x1bWluYW5jZS1wcmVjYWxjLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fcG93LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fbnRoLXJvb3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19zcXJ0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fdHJpZ29ub21ldHJ5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX3JlcGxhY2UtbnRoLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX3N0cmluZ3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9zdHJpbmdzL19zdHItZXhwbG9kZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL191bml0cy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9zdHlsZXMvX2ZvbnRzLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIl9jb2xvci1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3NldHRpbmdzL19iYXNlLXNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvc2V0dGluZ3MvX2Jhc2UtY29sb3Itc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9zdHlsZXMvX2NvbG9yLWNvbnRyYXN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fbm9ybWFsaXplLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9taXhpbnMvX2FjY2Vzc2liaWxpdHkuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L21peGlucy9fY2VudGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9taXhpbnMvX2hhaXJsaW5lLWJvcmRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbWl4aW5zL19udGgtY2hpbGRyZW4uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L21peGlucy9fdHJhbnNmb3JtLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19mbGV4LWJveC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19rZXlmcmFtZXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2ZpbHRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19hbGVydC1ib3hlcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19nbG9iYWwuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vX2Z1bmN0aW9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19ibG9jay1ncmlkLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Zvcm1zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19pbmxpbmUtbGlzdHMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdGFibGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL190aHVtYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdHlwZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9ibG9ja3MvX3BhZ2luYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Jsb2Nrcy9uYXYvX2hvcml6b250YWwuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Jsb2Nrcy9uYXYvX25hdi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19pY29ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19pY29uLXZhcnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvX2dyaWQtZXh0cmFzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L19iYXNlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2FjY2Vzc2liaWxpdHkuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvZm9vdGVyL19mb290ZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYW5pbWF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2Jlc3RzZWxsZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYmxvY2staW1hZ2UtZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ibG9ja3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYmxvY2tzLWJhbm5lcnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYm9yZGVyZWQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ieHNsaWRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jYXJ0X2J1dHRvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jYXJ0LWJ1dHRvbi1mdWxsLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NhcnQtYnV0dG9uLXNpbXBsZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jaGVja291dC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jaGVja291dF9rY28uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fcmV2ZWFsLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19yZWFjdC1zZWxlY3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvcmVhY3Qtc2VsZWN0L3NlbGVjdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3QvY29udHJvbC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3Qvc3Bpbm5lci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3QvbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9tZW51LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9tdWx0aS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jb21tZW50cy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jb29raWUtbm90aWNlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2ZhbmN5Ym94LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2Zvcm1zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2tsYXJuYS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19wYWdlcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3BhZ2VzL19jYXJ0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvcGFnZXMvX2Zyb250cGFnZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3BhZ2VzL19yZWNlaXB0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvcGFnZXMvX3JlZ2lzdGVyLWFjY291bnQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9wYWdlcy9fd2lzaGxpc3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19wcm9kdWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3Byb2R1Y3Qtc2VhcmNoLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3JhdGluZy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19yZWFkb24taWNvbi1jZW50ZXJlZC1vbi1ob3Zlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zZWFyY2gtYm94LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3NlYXJjaC1ib3gtLWFjdGl2aXR5LWluZGljYXRvci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zbGlkZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fc29jaWFsLWJ1dHRvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fc3Bpbm5lci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zcGxpdG1lbnUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fdGFibGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3RhYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fdGhlbWVkLW5hdmlnYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvX2NvbW1vbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9fc3RpY2t5LWZvb3Rlci1tZW51LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19zbGlkZS1pbi1tZW51LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19zZWFyY2gtbW9kYWwuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Jsb2Nrcy9uYXYvX2hvcml6b250YWwtLXJpZ2h0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19ob3ZlcmZ4LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeC9fYmx1ci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L19jb3Zlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L19maWdjYXB0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX2xldml0YXRlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX3Nob3d0aXRsZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L190aWx0LnNjc3MiLCJsZWdhY3kvbGF5b3V0L19oZWFkZXIuc2NzcyIsImxlZ2FjeS9sYXlvdXQvaGVhZGVyL191dGlscy1uYXYuc2NzcyIsImxlZ2FjeS9sYXlvdXQvaGVhZGVyL19vZmZjYW52YXMtbmF2LnNjc3MiLCJsZWdhY3kvbGF5b3V0L2hlYWRlci9fbG9nby1saW5lLnNjc3MiLCJsZWdhY3kvbGF5b3V0L2hlYWRlci9fbWFpbi1uYXYuc2NzcyIsImxlZ2FjeS9fbGFuZ3VhZ2UtY3VycmVuY3kuc2NzcyIsImxlZ2FjeS9fZXF1YWwtaGVpZ2h0LWNvbHVtbnMuc2NzcyIsImxlZ2FjeS9sYXlvdXQvX21haW4uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9fdG9wYmFubmVycy5zY3NzIiwibGVnYWN5L2xheW91dC9tYWluL19wcm9kdWN0bGlzdC5zY3NzIiwibGVnYWN5L2xheW91dC9tYWluL3Byb2R1Y3RsaXN0L19zdHlsZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9tYWluL3Byb2R1Y3RsaXN0L19idXktYnV0dG9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9tYWluL2NhdGVnb3J5bGlzdC9fc3R5bGUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9fcGFnZS5zY3NzIiwibGVnYWN5L19hbGVydC1ib3hlcy5zY3NzIiwiY29tcG9uZW50cy9fYXNpZGUuc2NzcyIsImNvbXBvbmVudHMvX25hdmlnYXRpb24uc2NzcyIsImNvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCJjb21wb25lbnRzL19sYXlvdXQuc2NzcyIsImNvbXBvbmVudHMvX3NwbGl0bWVudS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJ3F1aWNrZml4L19fZGVidWcvbWFzdGVyJztcblxuJGZvbnQtY29tYm86IFwiSGVsdmV0aWNhLCAnVHJlYnVjaGV0IE1TJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgUm9ib3RvK0NvbmRlbnNlZCwgJ1JvYm90byBDb25kZW5zZWQnLCBzYW5zLXNlcmlmXCIgIWRlZmF1bHQ7IC8vIE11c3QgYmUgc2V0IGJlZm9yZSBwaW9uZWVyL3N0eWxlcy9mb250cyBpcyBsb2FkZWRcblxuLy8gUGlvbmVlci9mb3VuZGF0aW9uIHNldHRpbmdzLCBmdW5jdGlvbnMsIGdlbmVyYWwsIG1peGlucyBldGMuXG5AaW1wb3J0IFwiZm91bmRhdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2Z1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3N0eWxlcy9mb250c1wiO1xuXG4vLyBWaW50YWdlIHNldHRpbmdzXG5AaW1wb3J0IFwic2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjb2xvci1zZXR0aW5nc1wiO1xuXG4vLyBQaW9uZWVyIHNldHRpbmdzIGNvbnRpbnVlZFxuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zZXR0aW5ncy9iYXNlLXNldHRpbmdzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NldHRpbmdzL2Jhc2UtY29sb3Itc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc3R5bGVzL2NvbG9yLWNvbnRyYXN0XCI7XG5cbkBpbXBvcnQgXCJxdWlja2ZpeC9ub3JtYWxpemVcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9taXhpbnNcIjtcblxuLy8gQm91cmJvbiBzdHVmZlxuQGltcG9ydCBcImJvdXJib24vc2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2FkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMva2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9wbGFjZWhvbGRlclwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9maWx0ZXJcIjtcblxuLy8gRm91bmRhdGlvbiBjb21wb25lbnRzXG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2FsZXJ0LWJveGVzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2Jsb2NrLWdyaWRcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvZm9ybXNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvZ3JpZFwiO1xuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9pbmxpbmUtbGlzdHNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdGFibGVzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3RhYnNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdGh1bWJzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3R5cGVcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdmlzaWJpbGl0eVwiO1xuXG5AaW1wb3J0IFwicXVpY2tmaXgvYmxvY2tzL3BhZ2luYXRpb25cIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvaWNvbnNcIjtcblxuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYXlvdXQvZ3JpZC1leHRyYXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2Jhc2VcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYWNjZXNzaWJpbGl0eVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYXlvdXQvZm9vdGVyL2Zvb3RlclwiO1xuXG4vLyBQaW9uZWVyIGNvbXBvbmVudHNcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2Jlc3RzZWxsZXJcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYmxvY2staW1hZ2UtZ3JpZFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9ibG9ja3NcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYmxvY2tzLWJhbm5lcnNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYm9yZGVyZWRcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYnV0dG9uc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9ieHNsaWRlclwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9jYXJ0X2J1dHRvblwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9jaGVja291dFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9jaGVja291dF9rY29cIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvY29tbWVudHNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvY29va2llLW5vdGljZVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9mYW5jeWJveFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9mb3Jtc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9rbGFybmFcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcGFnZXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9ibG9ja3MvcGFnaW5hdGlvblwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9wYWdpbmF0aW9uXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3Byb2R1Y3RcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcHJvZHVjdC1zZWFyY2hcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcmF0aW5nXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3JlYWRvbi1pY29uLWNlbnRlcmVkLW9uLWhvdmVyXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NlYXJjaC1ib3hcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc2VhcmNoLWJveC0tYWN0aXZpdHktaW5kaWNhdG9yXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NsaWRlclwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zb2NpYWwtYnV0dG9uc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zcGlubmVyXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NwbGl0bWVudVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS90YWJsZXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvdGFic1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS90aGVtZWQtbmF2aWdhdGlvblwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS90eXBvZ3JhcGh5XCI7XG5cbi8vIENvbW1vbiBzdHVmZiBmb3IgYWxsIHRoZW1lc1xuQGltcG9ydCBcInF1aWNrZml4L2NvbW1vblwiO1xuXG4vLyBRdWlja2ZpeCBjb21wb25lbnRzXG5AaW1wb3J0IFwicXVpY2tmaXgvYmxvY2tzL25hdi9ob3Jpem9udGFsLS1yaWdodFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeFwiO1xuXG4vLyBBbHRlcmVkIFF1aWNrZml4IGxlZ2FjeVxuQGltcG9ydCBcImxlZ2FjeS9sYXlvdXQvaGVhZGVyXCI7XG5AaW1wb3J0IFwibGVnYWN5L2xhbmd1YWdlLWN1cnJlbmN5XCI7XG5AaW1wb3J0IFwibGVnYWN5L2VxdWFsLWhlaWdodC1jb2x1bW5zXCI7XG5AaW1wb3J0IFwibGVnYWN5L2xheW91dC9tYWluXCI7XG5cbi8vIEF3ZXNvbWUgRGltZW5zaW9ucyBjb21wb25lbnRzXG5AaW1wb3J0IFwibGVnYWN5L2FsZXJ0LWJveGVzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9hc2lkZVwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvbmF2aWdhdGlvblwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2xheW91dFwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvc3BsaXRtZW51XCI7IiwiLy8gVGhpcyBpcyBpZiB5b3Ugd2FudCB0byBwbGF5IG1hZXN0cm9cbi8vJHByaW1hcnktY29sb3I6ICM4MDgwODA7XG4vL0BpbXBvcnQgJ2Jhc2UnO1xuXG4vLyRjb250ZW50LWJnOiAjN0E3QTdBO1xuLy8kY2FsbC10by1hY3Rpb24tY29sb3I6ICNiZjU3MmU7IiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gVGhpcyBpcyB0aGUgZGVmYXVsdCBodG1sIGFuZCBib2R5IGZvbnQtc2l6ZSBmb3IgdGhlIGJhc2UgcmVtIHZhbHVlLlxuJHJlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBJTVBPUlQgT05DRVxuLy8gV2UgdXNlIHRoaXMgdG8gcHJldmVudCBzdHlsZXMgZnJvbSBiZWluZyBsb2FkZWQgbXVsdGlwbGUgdGltZXMgZm9yIGNvbXBvbmVudHMgdGhhdCByZWx5IG9uIG90aGVyIGNvbXBvbmVudHMuXG4kbW9kdWxlczogKCkgIWRlZmF1bHQ7XG5AbWl4aW4gZXhwb3J0cygkbmFtZSkge1xuICAvLyBJbXBvcnQgZnJvbSBnbG9iYWwgc2NvcGVcbiAgJG1vZHVsZXM6ICRtb2R1bGVzICFnbG9iYWw7XG4gIC8vIENoZWNrIGlmIGEgbW9kdWxlIGlzIGFscmVhZHkgb24gdGhlIGxpc3RcbiAgJG1vZHVsZV9pbmRleDogaW5kZXgoJG1vZHVsZXMsICRuYW1lKTtcbiAgQGlmICgoJG1vZHVsZV9pbmRleCA9PSBudWxsKSBvciAoJG1vZHVsZV9pbmRleCA9PSBmYWxzZSkpIHtcbiAgICAkbW9kdWxlczogYXBwZW5kKCRtb2R1bGVzLCAkbmFtZSkgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vL1xuLy8gQGZ1bmN0aW9uc1xuLy9cblxuXG4vLyBSQU5HRVNcbi8vIFdlIHVzZSB0aGVzZSBmdW5jdGlvbnMgdG8gZGVmaW5lIHJhbmdlcyBmb3IgdmFyaW91cyB0aGluZ3MsIGxpa2UgbWVkaWEgcXVlcmllcy5cbkBmdW5jdGlvbiBsb3dlci1ib3VuZCgkcmFuZ2Upe1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPD0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEByZXR1cm4gbnRoKCRyYW5nZSwxKTtcbn1cblxuQGZ1bmN0aW9uIHVwcGVyLWJvdW5kKCRyYW5nZSkge1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPCAyIHtcbiAgICBAcmV0dXJuIDk5OTk5OTk5OTk5OTtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xufVxuXG4vLyBTVFJJUCBVTklUXG4vLyBJdCBzdHJpcHMgdGhlIHVuaXQgb2YgbWVhc3VyZSBhbmQgcmV0dXJucyBpdFxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8gVEVYVCBJTlBVVCBUWVBFU1xuXG5AZnVuY3Rpb24gdGV4dC1pbnB1dHMoICR0eXBlczogYWxsLCAkc2VsZWN0b3I6IGlucHV0ICkge1xuXG4gICAgJHJldHVybjogKCk7XG5cbiAgICAkYWxsLXRleHQtaW5wdXQtdHlwZXM6XG4gICAgICB0ZXh0XG4gICAgICBwYXNzd29yZFxuICAgICAgZGF0ZVxuICAgICAgZGF0ZXRpbWVcbiAgICAgIGRhdGV0aW1lLWxvY2FsXG4gICAgICBtb250aFxuICAgICAgd2Vla1xuICAgICAgZW1haWxcbiAgICAgIG51bWJlclxuICAgICAgc2VhcmNoXG4gICAgICB0ZWxcbiAgICAgIHRpbWVcbiAgICAgIHVybFxuICAgICAgY29sb3JcbiAgICAgIHRleHRhcmVhO1xuXG4gICAgQGlmICR0eXBlcyA9PSBhbGwgeyAkdHlwZXM6ICRhbGwtdGV4dC1pbnB1dC10eXBlczsgfVxuXG4gICAgQGVhY2ggJHR5cGUgaW4gJHR5cGVzIHtcbiAgICAgICAgQGlmICR0eXBlID09IHRleHRhcmVhIHtcbiAgICAgICAgICAgIEBpZiAkc2VsZWN0b3IgPT0gaW5wdXQge1xuICAgICAgICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnI3skdHlwZX0nKSwgY29tbWEpXG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHR5cGV9I3skc2VsZWN0b3J9JyksIGNvbW1hKVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyRzZWxlY3Rvcn1bdHlwZT1cIiN7JHR5cGV9XCJdJyksIGNvbW1hKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmV0dXJuO1xuXG59XG5cbi8vIENPTlZFUlQgVE8gUkVNXG5AZnVuY3Rpb24gY29udmVydC10by1yZW0oJHZhbHVlLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSAge1xuICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UtdmFsdWUpICogMXJlbTtcbiAgQGlmICgkdmFsdWUgPT0gMHJlbSkgeyAkdmFsdWU6IDA7IH0gLy8gVHVybiAwcmVtIGludG8gMFxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIGRhdGEoJGF0dHIpIHtcbiAgQGlmICRuYW1lc3BhY2Uge1xuICAgIEByZXR1cm4gJ1tkYXRhLScgKyAkbmFtZXNwYWNlICsgJy0nICsgJGF0dHIgKyAnXSc7XG4gIH1cblxuICBAcmV0dXJuICdbZGF0YS0nICsgJGF0dHIgKyAnXSc7XG59XG5cbi8vIFJFTSBDQUxDXG5cbi8vIE5ldyBTeW50YXgsIGFsbG93cyB0byBvcHRpb25hbGx5IGNhbGN1bGF0ZSBvbiBhIGRpZmZlcmVudCBiYXNlIHZhbHVlIHRvIGNvdW50ZXIgY29tcG91bmRpbmcgZWZmZWN0IG9mIHJlbSdzLlxuLy8gQ2FsbCB3aXRoIDEsIDIsIDMgb3IgNCBwYXJhbWV0ZXJzLCAncHgnIGlzIG5vdCByZXF1aXJlZCBidXQgc3VwcG9ydGVkOlxuLy9cbi8vICAgcmVtLWNhbGMoMTAgMjAgMzBweCA0MCk7XG4vL1xuLy8gU3BhY2UgZGVsaW1pdGVkLCBpZiB5b3Ugd2FudCB0byBkZWxpbWl0IHVzaW5nIGNvbW1hJ3MsIHdyYXAgaXQgaW4gYW5vdGhlciBwYWlyIG9mIGJyYWNrZXRzXG4vL1xuLy8gICByZW0tY2FsYygoMTAsIDIwLCAzMCwgNDBweCkpO1xuLy9cbi8vIE9wdGlvbmFsbHkgY2FsbCB3aXRoIGEgZGlmZmVyZW50IGJhc2UgKGVnOiA4cHgpIHRvIGNhbGN1bGF0ZSByZW0uXG4vL1xuLy8gICByZW0tY2FsYygxNnB4IDMycHggNDhweCwgOHB4KTtcbi8vXG4vLyBJZiB5b3UgcmVxdWlyZSB0byBjb21tYSBzZXBhcmF0ZSB5b3VyIGxpc3Rcbi8vXG4vLyAgIHJlbS1jYWxjKCgxNnB4LCAzMnB4LCA0OCksIDhweCk7XG5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSB7XG4gICRtYXg6IGxlbmd0aCgkdmFsdWVzKTtcblxuICBAaWYgJG1heCA9PSAxIHsgQHJldHVybiBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgMSksICRiYXNlLXZhbHVlKTsgfVxuXG4gICRyZW1WYWx1ZXM6ICgpO1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xuICAgICRyZW1WYWx1ZXM6IGFwcGVuZCgkcmVtVmFsdWVzLCBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZS12YWx1ZSkpO1xuICB9XG4gIEByZXR1cm4gJHJlbVZhbHVlcztcbn1cblxuLy8gT0xEIEVNIENBTENcbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEuMCwgdXNlIHJlbS1jYWxjKClcbkBmdW5jdGlvbiBlbUNhbGMoJHZhbHVlcyl7XG4gIEByZXR1cm4gcmVtLWNhbGMoJHZhbHVlcyk7XG59XG5cbi8vIE9MRCBFTSBDQUxDXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLjAsIHVzZSByZW0tY2FsYygpXG5AZnVuY3Rpb24gZW0tY2FsYygkdmFsdWVzKXtcbiAgQHJldHVybiByZW0tY2FsYygkdmFsdWVzKTtcbn1cbiIsIkBpbXBvcnQgXCJmdW5jdGlvbnMvY29sb3JcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbWF0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9yZXBsYWNlLW50aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpbmdzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VuaXRzXCI7IiwiLyoqXG4gKiBLdWRvcyB0byBodHRwOi8vbWFkZWJ5bWlrZS5jb20uYXUvd3JpdGluZy9hY2Nlc3NpYmxlLWNvbnRyYXN0LXdpdGgtbGVzcy1hbmQtc2Fzcy9cbiAqL1xuXG5AaW1wb3J0IFwibWF0aFwiO1xuXG4vLyBHZXQgdGhlIGx1bWlub3NpdHkgb2YgYSBjb2xvciBvbiBhIHNjYWxlIGZyb20gMCAoZGFya2VzdCkgdG8gMTAwIChsaWdodGVzdClcbkBmdW5jdGlvbiBsdW1hKCRjb2xvcil7XG4gICAgLy8gVGhhbmtzIHZveHBlbGxpIGZvciBhIHZlcnkgY29uY2lzZSBpbXBsZW1lbnRhdGlvbiBvZiBsdW1pbmFuY2UgbWVhc3VyZSBpbiBzYXNzXG4gICAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS92b3hwZWxsaS82MzA0ODEyXG4gICAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICAgJHJnYmEyOiAoKTtcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICAgICAkcmdiOiBtYXgoMCwgcm91bmQoJHJnYikpO1xuICAgICAgICAkcmdiOiBtaW4oMjU1LCByb3VuZCgkcmdiKSk7XG4gICAgICAgIC8vIE9sZCBBbGdvcml0aG06XG4gICAgICAgIC8vICRyZ2I6ICRyZ2IgLyAyNTU7XG4gICAgICAgIC8vICRyZ2I6IGlmKCRyZ2IgPCAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgLjA1NSkgLyAxLjA1NSwgMi40KSk7XG4gICAgICAgIC8vXG4gICAgICAgIC8vIFJlcGxhY2VkIHRoaXMgd2l0aCBMT1ZFTFkgcHJlY2FsY3VsYXRlZCBudW1iZXJzLCBmb3Igc3BlZWQsIHNpbmNlIHBvdyh4LCAyLjQpIGlzIHNsb3cgYXMgSEVMTCBpbiBTYXNzLlxuICAgICAgICAkcmdiOiBudGgoJGx1bWluYW5jZS1wcmVjYWxjLCAkcmdiICsgMSk7XG4gICAgICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gICAgfVxuXG4gICAgQHJldHVybiAoLjIxMjYgKiBudGgoJHJnYmEyLCAxKSArIC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKSkqMTAwO1xufVxuXG4vLyBSZXR1cm5zIGEgbnVtYmVyIGZyb20gMSAobG93IGNvbnRyYXN0KSB0byAyMSAoaGlnaCBjb250cmFzdClcbkBmdW5jdGlvbiBjb250cmFzdC1yYXRpbygkY29sb3IxLCAkY29sb3IyKSB7XG4gICAgJGx1bWExOiBsdW1hKCRjb2xvcjEpICsgNTtcbiAgICAkbHVtYTI6IGx1bWEoJGNvbG9yMikgKyA1O1xuICAgICRyYXRpbzogJGx1bWExIC8gJGx1bWEyO1xuICAgIEBpZiAkbHVtYTEgPCAkbHVtYTIge1xuICAgICAgICAkcmF0aW86IDEgLyAkcmF0aW87XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmF0aW87XG59XG5cbi8qKlxuICogSXMgJGNvbG9yMSBsaWdodGVyIHRoYW4gJGNvbG9yMj9cbiAqL1xuQGZ1bmN0aW9uIGlzLWxpZ2h0ZXIoJGNvbG9yMSwgJGNvbG9yMikge1xuICAgIEByZXR1cm4gbHVtYSgkY29sb3IxKSA+IGx1bWEoJGNvbG9yMik7XG59XG5cbi8qKlxuICogSXMgJGNvbG9yMSBkYXJrZXIgdGhhbiAkY29sb3IyP1xuICovXG5AZnVuY3Rpb24gaXMtZGFya2VyKCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgICBAcmV0dXJuIGx1bWEoJGNvbG9yMSkgPCBsdW1hKCRjb2xvcjIpO1xufVxuXG4vKipcbiAqIEZpbmQgYmVzdCBsaWdodG5lc3MgYWRqdXN0IG1ldGhvZFxuICpcbiAqIElkZWFsbHkgd2Ugc2hvdWxkIG9ubHkgaW5jcmVhc2UgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgY29sb3JzLiBJZiAkY29sb3IxXG4gKiBpcyBsaWdodGVyIHRoYW4gJGNvbG9yMiBidXQgdGhlIGNvbnRyYXN0IGlzIG5vdCBhY2Nlc3NpYmxlLCB0aGVuIHdlIHNob3VsZCB0cnkgdG9cbiAqIG1ha2UgaXQgbGlnaHRlciByYXRoZXIgdGhhbiBkYXJrZXIuXG4gKi9cbkBmdW5jdGlvbiBmaW5kLWxpZ2h0bmVzcy1hZGp1c3QtbWV0aG9kKCRjb2xvcjEsICRjb2xvcjIsICR0aHJlc2hvbGQ6ICRjb2xvci1jb250cmFzdC10aHJlc2hvbGQpIHtcbiAgICAkY29udHJhc3QtdG8td2hpdGU6IGNvbnRyYXN0LXJhdGlvKCNmZmZmZmYsICRjb2xvcjIpO1xuICAgICRjb250cmFzdC10by1ibGFjazogY29udHJhc3QtcmF0aW8oIzAwMDAwMCwgJGNvbG9yMik7XG5cbiAgICBAaWYgaXMtbGlnaHRlcigkY29sb3IxLCAkY29sb3IyKSB7XG4gICAgICAgIEBpZiAkY29udHJhc3QtdG8td2hpdGUgPj0gJHRocmVzaG9sZCB7IC8vIGxpZ2h0ZW4gYSBsaWdodGVyIGNvbG9yIHdpbGwgd29ya1xuICAgICAgICAgICAgQHJldHVybiAnbGlnaHRlbic7XG4gICAgICAgIH0gQGVsc2VpZiAkY29udHJhc3QtdG8tYmxhY2sgPj0gJHRocmVzaG9sZCB7XG4gICAgICAgICAgICBAcmV0dXJuICdkYXJrZW4nO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAkY29udHJhc3QtdG8tYmxhY2sgPj0gJHRocmVzaG9sZCB7IC8vIGRhcmtlbiBhIGRhcmtlciBjb2xvciB3aWxsIHdvcmtcbiAgICAgICAgICAgIEByZXR1cm4gJ2Rhcmtlbic7XG4gICAgICAgIH0gQGVsc2VpZiAkY29udHJhc3QtdG8td2hpdGUgPj0gJHRocmVzaG9sZCB7XG4gICAgICAgICAgICBAcmV0dXJuICdsaWdodGVuJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5vIGFjY2VwdGFibGUgY29udHJhc3QgZm91bmQsIGdvIHdpdGggdGhlIGJlc3Qgb25lXG4gICAgQGlmICgkY29udHJhc3QtdG8td2hpdGUgPiAkY29udHJhc3QtdG8tYmxhY2spIHtcbiAgICAgICAgQHJldHVybiAjZmZmO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICMwMDA7XG4gICAgfVxufVxuXG4vLyBMaWdodGVuIG9yIGRhcmtlbiAkY29sb3IxIHVudGlsIGl0IGhhcyBzdWZmaWNpZW50IGNvbnRyYXN0IHRvICRjb2xvcjJcbi8vIFRPRE86IFJlbW92ZSAkaXRlcmF0aW9ucyB2YXJpYmxlLCBmaW5kIGEgbW9yZSBjbGV2ZXIgd2F5IHRvIGNoZWNrIGlmIHdlIGFyZSBhdCByb2FkcyBlbmRcbkBmdW5jdGlvbiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29sb3IxLCAkY29sb3IyLCAkdGhyZXNob2xkOiAkY29sb3ItY29udHJhc3QtdGhyZXNob2xkLCAkdG9sZXJhbmNlOiAwLjI1KSB7XG5cbiAgICAvLyBSZXR1cm4gZGlyZWN0bHkgaWYgY29udHJhc3QgaXMgZ29vZFxuICAgICRjYW5kaWRhdGUtY29udHJhc3Q6IGNvbnRyYXN0LXJhdGlvKCRjb2xvcjEsICRjb2xvcjIpO1xuICAgIEBpZiAkY2FuZGlkYXRlLWNvbnRyYXN0ID49ICR0aHJlc2hvbGQge1xuICAgICAgICBAcmV0dXJuICRjb2xvcjE7XG4gICAgfVxuXG4gICAgLy8gRmluZCBvdXQgaWYgd2UgbmVlZCB0byBkYXJrZW4gb3IgbGlnaHRlblxuICAgICRtZXRob2Q6IGZpbmQtbGlnaHRuZXNzLWFkanVzdC1tZXRob2QoJGNvbG9yMSwgJGNvbG9yMik7XG5cbiAgICAvLyBJZiB3ZSB3b24ndCBiZSBhYmxlIHRvIGZpbmQgYW4gYWNjZXNzaWJsZSBjb250cmFzdCBhdCBhbGwsIGp1c3QgcmV0dXJuIGJsYWNrIG9yIHdoaXRlIGRpcmVjdGx5XG4gICAgQGlmICRtZXRob2QgIT0gJ2xpZ2h0ZW4nIGFuZCAkbWV0aG9kICE9ICdkYXJrZW4nIHtcbiAgICAgICAgQHJldHVybiAkbWV0aG9kO1xuICAgIH1cblxuICAgIC8vIEJpbmFyeSBzZWFyY2ggdW50aWwgd2UgZmluZCBhIGdvb2QgbGlnaHRuZXNzIGNoYW5nZVxuICAgICRyYW5nZS1zdGFydDogMSU7XG4gICAgJHJhbmdlLWVuZDogMTAwJTtcblxuICAgICRpdGVyYXRpb25zIDogMDtcbiAgICAkY2FuZGlkYXRlOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBXaGlsZSBjb250cmFzdCBpcyBvdXQgb2YgcmFuZ2UsIGtlZXAgc2VhcmNoaW5nXG4gICAgQHdoaWxlICRpdGVyYXRpb25zIDwgNyBhbmQgKCgkY2FuZGlkYXRlLWNvbnRyYXN0IDwgJHRocmVzaG9sZCkgb3IgKCRjYW5kaWRhdGUtY29udHJhc3QgPiAkdGhyZXNob2xkICsgJHRvbGVyYW5jZSkpIHtcbiAgICAgICAgJHJhbmdlLW1pZDogJHJhbmdlLWVuZCAtIHJvdW5kKCgoJHJhbmdlLWVuZCAtICRyYW5nZS1zdGFydCkvMikpO1xuXG4gICAgICAgICRjYW5kaWRhdGU6IGlmKCRtZXRob2QgPT0gJ2xpZ2h0ZW4nLCBsaWdodGVuKCRjb2xvcjEsICRyYW5nZS1taWQpLCBkYXJrZW4oJGNvbG9yMSwgJHJhbmdlLW1pZCkpO1xuXG4gICAgICAgICRjYW5kaWRhdGUtY29udHJhc3Q6IGNvbnRyYXN0LXJhdGlvKCRjYW5kaWRhdGUsICRjb2xvcjIpO1xuXG4gICAgICAgIEBpZiAoJGNhbmRpZGF0ZS1jb250cmFzdCA+PSAkdGhyZXNob2xkKSBhbmQgKCRjYW5kaWRhdGUtY29udHJhc3QgPD0gJHRocmVzaG9sZCArICR0b2xlcmFuY2UpIHtcbiAgICAgICAgICAgIEByZXR1cm4gJGNhbmRpZGF0ZTtcbiAgICAgICAgfSBAZWxzZWlmICRjYW5kaWRhdGUtY29udHJhc3QgPCAkdGhyZXNob2xkIHtcbiAgICAgICAgICAgICRyYW5nZS1zdGFydDogbWluKCRyYW5nZS1taWQgKyAxJSwgMTAwJSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJHJhbmdlLWVuZDogbWF4KCRyYW5nZS1taWQgLSAxJSwgMSUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJGl0ZXJhdGlvbnM6ICRpdGVyYXRpb25zICsgMTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRjYW5kaWRhdGU7XG59XG5cbi8vIEZpbmQgd2hpY2ggJGJnY29sb3IgdG8gdXNlIHdpdGggZ2l2ZW4gdGV4dCBjb2xvciAkY29sb3Jcbi8vIERlZmF1bHRzIHRvIGxpZ2h0ZXIgb3IgZGFya2VyIChtb25vY2hyb21lKSBiYWNrZ3JvdW5kXG5AZnVuY3Rpb24gdGV4dC1jb250cmFzdCgkY29sb3IsICRiZ2NvbG9yOiAkY29sb3IsICR0aHJlc2hvbGQ6IDQuNSkge1xuICAgIEByZXR1cm4gYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJnY29sb3IsICRjb2xvciwgJHRocmVzaG9sZCk7XG59IiwiLy8gQmlnIGt1ZG9zIHRvOiBodHRwczovL2dpdGh1Yi5jb20vdGVya2VsL21hdGhzYXNzXG5cbkBpbXBvcnQgXCJtYXRoL2NvbnN0YW50c1wiO1xuQGltcG9ydCBcIm1hdGgvYWJzXCI7XG5AaW1wb3J0IFwibWF0aC9leHBcIjtcbkBpbXBvcnQgXCJtYXRoL2ZhY3RcIjtcbkBpbXBvcnQgXCJtYXRoL2ZyZXhwXCI7XG5AaW1wb3J0IFwibWF0aC9sZGV4cFwiO1xuQGltcG9ydCBcIm1hdGgvbG9nXCI7XG5AaW1wb3J0IFwibWF0aC9sdW1pbmFuY2UtcHJlY2FsY1wiO1xuQGltcG9ydCBcIm1hdGgvcG93XCI7XG5AaW1wb3J0IFwibWF0aC9udGgtcm9vdFwiO1xuQGltcG9ydCBcIm1hdGgvc3FydFwiO1xuQGltcG9ydCBcIm1hdGgvdHJpZ29ub21ldHJ5XCI7IiwiJEU6ICAgICAyLjcxODI4MTgyODQ1OTA0NTtcbiRQSTogICAgMy4xNDE1OTI2NTM1ODk3OTM7XG4kTE4yOiAgIDAuNjkzMTQ3MTgwNTU5OTQ1MztcbiRTUVJUMjogMS40MTQyMTM1NjIzNzMwOTUxOyIsIiIsIi8vIFJldHVybnMgRV54LCB3aGVyZSB4IGlzIHRoZSBhcmd1bWVudCwgYW5kIEUgaXMgRXVsZXIncyBjb25zdGFudCwgdGhlIGJhc2Ugb2YgdGhlIG5hdHVyYWwgbG9nYXJpdGhtcy5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQGV4YW1wbGVcbi8vICAgICBleHAoMSkgIC8vIDIuNzE4Mjhcbi8vICAgICBleHAoLTEpIC8vIDAuMzY3ODhcbkBmdW5jdGlvbiBleHAoJHgpIHtcbiAgICAkcmV0OiAwO1xuICAgIEBmb3IgJG4gZnJvbSAwIHRvIDI0IHtcbiAgICAgICAgJHJldDogJHJldCArIHBvdygkeCwgJG4pIC8gZmFjdCgkbik7XG4gICAgfVxuICAgIEByZXR1cm4gJHJldDtcbn0iLCIvLyBSZXR1cm5zIHRoZSBmYWN0b3JpYWwgb2YgYSBub24tbmVnYXRpdmUgaW50ZWdlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeCBBIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLlxuLy8gQHJldHVybiB7TnVtYmVyfVxuLy8gQGV4YW1wbGVcbi8vICAgICBmYWN0KDApIC8vIDFcbi8vICAgICBmYWN0KDgpIC8vIDQwMzIwXG5AZnVuY3Rpb24gZmFjdCgkeCkge1xuICAgIEBpZiAkeCA8IDAgb3IgICR4ICE9IGZsb29yKCR4KSB7XG4gICAgICAgIEB3YXJuIFwiQXJndW1lbnQgZm9yIGBmYWN0KClgIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLlwiO1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICAgICRyZXQ6IDE7XG4gICAgQHdoaWxlICR4ID4gMCB7XG4gICAgICAgICRyZXQ6ICRyZXQgKiAkeDtcbiAgICAgICAgJHg6ICR4IC0gMTtcbiAgICB9XG4gICAgQHJldHVybiAkcmV0O1xufSIsIi8vIFJldHVybnMgYSB0d28tZWxlbWVudCBsaXN0IGNvbnRhaW5pbmcgdGhlIG5vcm1hbGl6ZWQgZnJhY3Rpb24gYW5kIGV4cG9uZW50IG9mIG51bWJlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQHJldHVybiB7TGlzdH0gZnJhY3Rpb24sIGV4cG9uZW50XG5AZnVuY3Rpb24gZnJleHAoJHgpIHtcbiAgICAkZXhwOiAwO1xuICAgIEBpZiAkeCA8IDAge1xuICAgICAgICAkeDogJHggKiAtMTtcbiAgICB9XG4gICAgQGlmICR4IDwgMC41IHtcbiAgICAgICAgQHdoaWxlICR4IDwgMC41IHtcbiAgICAgICAgICAgICR4OiAkeCAqIDI7XG4gICAgICAgICAgICAkZXhwOiAkZXhwIC0gMTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHggPj0gMSB7XG4gICAgICAgIEB3aGlsZSAkeCA+PSAxIHtcbiAgICAgICAgICAgICR4OiAkeCAvIDI7XG4gICAgICAgICAgICAkZXhwOiAkZXhwICsgMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICR4LCAkZXhwO1xufSIsIi8vIFJldHVybnMgJHggKiAyXiRleHBcbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBcbkBmdW5jdGlvbiBsZGV4cCgkeCwgJGV4cCkge1xuICAgICRiOiBpZigkZXhwID49IDAsIDIsIDEgLyAyKTtcbiAgICBAaWYgJGV4cCA8IDAge1xuICAgICAgICAkZXhwOiAkZXhwICogLTE7XG4gICAgfVxuICAgIEB3aGlsZSAkZXhwID4gMCB7XG4gICAgICAgIEBpZiAkZXhwICUgMiA9PSAxIHtcbiAgICAgICAgICAgICR4OiAkeCAqICRiO1xuICAgICAgICB9XG4gICAgICAgICRiOiAkYiAqICRiO1xuICAgICAgICAkZXhwOiBmbG9vcigkZXhwICogMC41KTtcbiAgICB9XG4gICAgQHJldHVybiAkeDtcbn0iLCIvLyBSZXR1cm5zIHRoZSBuYXR1cmFsIGxvZ2FyaXRobSBvZiBhIG51bWJlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQGV4YW1wbGVcbi8vICAgICBsb2coMikgIC8vIDAuNjkzMTVcbi8vICAgICBsb2coMTApIC8vIDIuMzAyNTlcbkBmdW5jdGlvbiBsb2coJHgpIHtcbiAgICBAaWYgJHggPD0gMCB7XG4gICAgICAgIEByZXR1cm4gMCAvIDA7XG4gICAgfVxuICAgICRrOiBudGgoZnJleHAoJHggLyAkU1FSVDIpLCAyKTtcbiAgICAkeDogJHggLyBsZGV4cCgxLCAkayk7XG4gICAgJHg6ICgkeCAtIDEpIC8gKCR4ICsgMSk7XG4gICAgJHgyOiAkeCAqICR4O1xuICAgICRpOiAxO1xuICAgICRzOiAkeDtcbiAgICAkc3A6IG51bGw7XG4gICAgQHdoaWxlICRzcCAhPSAkcyB7XG4gICAgICAgICR4OiAkeCAqICR4MjtcbiAgICAgICAgJGk6ICRpICsgMjtcbiAgICAgICAgJHNwOiAkcztcbiAgICAgICAgJHM6ICRzICsgJHggLyAkaTtcbiAgICB9XG4gICAgQHJldHVybiAkTE4yICogJGsgKyAyICogJHM7XG59IiwiLy8gVXNlZnVsIE9OTFkgd2hlbiBjYWxjdWxhdGluZyBsaWdodG5lc3Mgb24gYSBjb2xvci5cbi8vIFxuLy8gV2UgYXJlIHJlcGxhY2luZyB0aGlzIGNhbGN1bGF0aW9uOlxuLy8gJHJnYjogaWYoJHJnYiA8IC4wMzkyOCwgJHJnYiAvIDEyLjkyLCBwb3coKCRyZ2IgKyAuMDU1KSAvIDEuMDU1LCAyLjQpKTtcbi8vICgkcmdiID0gYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUgZGl2aWRlZCBieSAyNTUpLlxuXG4kbHVtaW5hbmNlLXByZWNhbGM6IFxuMCwgMC4wMDAzMDM1MjY5ODM1LCAwLjAwMDYwNzA1Mzk2NzEsIDAuMDAwOTEwNTgwOTUwNiwgMC4wMDEyMTQxMDc5MzQsIDAuMDAxNTE3NjM0OTE4LCAwLjAwMTgyMTE2MTkwMSwgMC4wMDIxMjQ2ODg4ODUsIDAuMDAyNDI4MjE1ODY4LCAwLjAwMjczMTc0Mjg1MiwgXG4wLjAwMzAzNTI2OTgzNSwgMC4wMDMzNDY1MzU3NjQsIDAuMDAzNjc2NTA3MzI0LCAwLjAwNDAyNDcxNzAxOCwgMC4wMDQzOTE0NDIwMzcsIDAuMDA0Nzc2OTUzNDgxLCAwLjAwNTE4MTUxNjcwMiwgMC4wMDU2MDUzOTE2MjQsIDAuMDA2MDQ4ODMzMDIzLCBcbjAuMDA2NTEyMDkwNzkzLCAwLjAwNjk5NTQxMDE4NywgMC4wMDc0OTkwMzIwNDMsIDAuMDA4MDIzMTkyOTg1LCAwLjAwODU2ODEyNTYxOCwgMC4wMDkxMzQwNTg3MDIsIDAuMDA5NzIxMjE3MzIsIDAuMDEwMzI5ODIzMDMsIDAuMDEwOTYwMDk0MDEsIFxuMC4wMTE2MTIyNDUxOCwgMC4wMTIyODY0ODgzNiwgMC4wMTI5ODMwMzIzNCwgMC4wMTM3MDIwODMwNSwgMC4wMTQ0NDM4NDM2LCAwLjAxNTIwODUxNDQyLCAwLjAxNTk5NjI5MzM3LCAwLjAxNjgwNzM3NTc1LCAwLjAxNzY0MTk1NDQ5LCBcbjAuMDE4NTAwMjIwMTMsIDAuMDE5MzgyMzYwOTYsIDAuMDIwMjg4NTYzMDYsIDAuMDIxMjE5MDEwMzgsIDAuMDIyMTczODg0NzksIDAuMDIzMTUzMzY2MTgsIDAuMDI0MTU3NjMyNDUsIDAuMDI1MTg2ODU5NjMsIDAuMDI2MjQxMjIxODksIFxuMC4wMjczMjA4OTE2NCwgMC4wMjg0MjYwMzk1LCAwLjAyOTU1NjgzNDQ0LCAwLjAzMDcxMzQ0MzczLCAwLjAzMTg5NjAzMzA3LCAwLjAzMzEwNDc2NjU3LCAwLjAzNDMzOTgwNjgxLCAwLjAzNTYwMTMxNDg4LCAwLjAzNjg4OTQ1MDQsIFxuMC4wMzgyMDQzNzE2LCAwLjAzOTU0NjIzNTI4LCAwLjA0MDkxNTE5NjkxLCAwLjA0MjMxMTQxMDYyLCAwLjA0MzczNTAyOTI2LCAwLjA0NTE4NjIwNDM5LCAwLjA0NjY2NTA4NjM0LCAwLjA0ODE3MTgyNDIzLCAwLjA0OTcwNjU2NTk4LCBcbjAuMDUxMjY5NDU4MzcsIDAuMDUyODYwNjQ3MDIsIDAuMDU0NDgwMjc2NDQsIDAuMDU2MTI4NDkwMDUsIDAuMDU3ODA1NDMwMTksIDAuMDU5NTExMjM4MTYsIDAuMDYxMjQ2MDU0MjMsIDAuMDYzMDEwMDE3NjUsIDAuMDY0ODAzMjY2NjksIFxuMC4wNjY2MjU5Mzg2NCwgMC4wNjg0NzgxNjk4NCwgMC4wNzAzNjAwOTU3LCAwLjA3MjI3MTg1MDY4LCAwLjA3NDIxMzU2ODM4LCAwLjA3NjE4NTM4MTQ4LCAwLjA3ODE4NzQyMTgxLCAwLjA4MDIxOTgyMDMxLCAwLjA4MjI4MjcwNzEzLCBcbjAuMDg0Mzc2MjExNTQsIDAuMDg2NTAwNDYyMDQsIDAuMDg4NjU1NTg2MjksIDAuMDkwODQxNzExMTgsIDAuMDkzMDU4OTYyODUsIDAuMDk1MzA3NDY2NjMsIDAuMDk3NTg3MzQ3MTQsIDAuMDk5ODk4NzI4MjUsIDAuMTAyMjQxNzMzMSwgXG4wLjEwNDYxNjQ4NDEsIDAuMTA3MDIzMTAzLCAwLjEwOTQ2MTcxMDgsIDAuMTExOTMyNDI3OCwgMC4xMTQ0MzUzNzM4LCAwLjExNjk3MDY2NzgsIDAuMTE5NTM4NDI4LCAwLjEyMjEzODc3MjIsIDAuMTI0NzcxODE3NiwgMC4xMjc0Mzc2ODA0LCBcbjAuMTMwMTM2NDc2NywgMC4xMzI4NjgzMjE2LCAwLjEzNTYzMzMyOTcsIDAuMTM4NDMxNjE1LCAwLjE0MTI2MzI5MTEsIDAuMTQ0MTI4NDcwOSwgMC4xNDcwMjcyNjY1LCAwLjE0OTk1OTc4OTgsIDAuMTUyOTI2MTUyLCAwLjE1NTkyNjQ2MzcsIFxuMC4xNTg5NjA4MzUxLCAwLjE2MjAyOTM3NTYsIDAuMTY1MTMyMTk0NSwgMC4xNjgyNjk0MDAyLCAwLjE3MTQ0MTEwMDcsIDAuMTc0NjQ3NDAzNywgMC4xNzc4ODg0MTYsIDAuMTgxMTY0MjQ0MiwgMC4xODQ0NzQ5OTQ1LCAwLjE4NzgyMDc3MjMsIFxuMC4xOTEyMDE2ODI3LCAwLjE5NDYxNzgzMDQsIDAuMTk4MDY5MzE5NiwgMC4yMDE1NTYyNTM4LCAwLjIwNTA3ODczNjQsIDAuMjA4NjM2ODcwMSwgMC4yMTIyMzA3NTc0LCAwLjIxNTg2MDUwMDEsIDAuMjE5NTI2MTk5NywgMC4yMjMyMjc5NTczLCBcbjAuMjI2OTY1ODczNSwgMC4yMzA3NDAwNDg1LCAwLjIzNDU1MDU4MjIsIDAuMjM4Mzk3NTczOCwgMC4yNDIyODExMjI1LCAwLjI0NjIwMTMyNjcsIDAuMjUwMTU4Mjg0NywgMC4yNTQxNTIwOTQzLCAwLjI1ODE4Mjg1MjksIDAuMjYyMjUwNjU3NSwgXG4wLjI2NjM1NTYwNDgsIDAuMjcwNDk3NzkxLCAwLjI3NDY3NzMxMjEsIDAuMjc4ODk0MjYzNSwgMC4yODMxNDg3NDA0LCAwLjI4NzQ0MDgzNzcsIDAuMjkxNzcwNjQ5OCwgMC4yOTYxMzgyNzA4LCAwLjMwMDU0Mzc5NDQsIDAuMzA0OTg3MzE0MSwgXG4wLjMwOTQ2ODkyMjgsIDAuMzEzOTg4NzEzNCwgMC4zMTg1NDY3NzgxLCAwLjMyMzE0MzIwOTEsIDAuMzI3Nzc4MDk4MSwgMC4zMzI0NTE1MzYzLCAwLjMzNzE2MzYxNSwgMC4zNDE5MTQ0MjQ5LCAwLjM0NjcwNDA1NjQsIDAuMzUxNTMyNTk5NSwgXG4wLjM1NjQwMDE0NDEsIDAuMzYxMzA2Nzc5OCwgMC4zNjYyNTI1OTU2LCAwLjM3MTIzNzY4MDUsIDAuMzc2MjYyMTIzLCAwLjM4MTMyNjAxMTQsIDAuMzg2NDI5NDMzOCwgMC4zOTE1NzI0Nzc3LCAwLjM5Njc1NTIzMDcsIDAuNDAxOTc3Nzc5OCwgXG4wLjQwNzI0MDIxMTksIDAuNDEyNTQyNjEzNSwgMC40MTc4ODUwNzA4LCAwLjQyMzI2NzY3LCAwLjQyODY5MDQ5NjYsIDAuNDM0MTUzNjM2MiwgMC40Mzk2NTcxNzM4LCAwLjQ0NTIwMTE5NDUsIDAuNDUwNzg1NzgyOCwgMC40NTY0MTEwMjMyLCBcbjAuNDYyMDc2OTk5NywgMC40Njc3ODM3OTYxLCAwLjQ3MzUzMTQ5NjEsIDAuNDc5MzIwMTgzMSwgMC40ODUxNDk5NDAxLCAwLjQ5MTAyMDg0OTgsIDAuNDk2OTMyOTk1MSwgMC41MDI4ODY0NTgsIDAuNTA4ODgxMzIwOSwgMC41MTQ5MTc2NjU0LCBcbjAuNTIwOTk1NTczMiwgMC41MjcxMTUxMjU3LCAwLjUzMzI3NjQwNCwgMC41Mzk0Nzk0ODksIDAuNTQ1NzI0NDYxNCwgMC41NTIwMTE0MDE1LCAwLjU1ODM0MDM4OTYsIDAuNTY0NzExNTA1NywgMC41NzExMjQ4Mjk1LCAwLjU3NzU4MDQ0MDQsIFxuMC41ODQwNzg0MTc5LCAwLjU5MDYxODg0MDksIDAuNTk3MjAxNzg4NCwgMC42MDM4MjczMzg5LCAwLjYxMDQ5NTU3MDgsIDAuNjE3MjA2NTYyNCwgMC42MjM5NjAzOTE3LCAwLjYzMDc1NzEzNjMsIDAuNjM3NTk2ODc0LCAwLjY0NDQ3OTY4MiwgXG4wLjY1MTQwNTYzNzQsIDAuNjU4Mzc0ODE3MywgMC42NjUzODcyOTgzLCAwLjY3MjQ0MzE1NywgMC42Nzk1NDI0Njk2LCAwLjY4NjY4NTMxMjQsIDAuNjkzODcxNzYxMywgMC43MDExMDE4OTE5LCAwLjcwODM3NTc3OTksIDAuNzE1NjkzNTAwNSwgXG4wLjcyMzA1NTEyODksIDAuNzMwNDYwNzQwMSwgMC43Mzc5MTA0MDg4LCAwLjc0NTQwNDIwOTUsIDAuNzUyOTQyMjE2OCwgMC43NjA1MjQ1MDQ3LCAwLjc2ODE1MTE0NzIsIDAuNzc1ODIyMjE4MywgMC43ODM1Mzc3OTE1LCAwLjc5MTI5Nzk0MDMsIFxuMC43OTkxMDI3MzgsIDAuODA2OTUyMjU3NywgMC44MTQ4NDY1NzIyLCAwLjgyMjc4NTc1NDQsIDAuODMwNzY5ODc2OCwgMC44Mzg3OTkwMTE3LCAwLjg0Njg3MzIzMTUsIDAuODU0OTkyNjA4MSwgMC44NjMxNTcyMTM1LCAwLjg3MTM2NzExOTIsIFxuMC44Nzk2MjIzOTY5LCAwLjg4NzkyMzExNzksIDAuODk2MjY5MzUzNCwgMC45MDQ2NjExNzQ0LCAwLjkxMzA5ODY1MTgsIDAuOTIxNTgxODU2MywgMC45MzAxMTA4NTg0LCAwLjkzODY4NTcyODUsIDAuOTQ3MzA2NTM2NywgMC45NTU5NzMzNTMyLCBcbjAuOTY0Njg2MjQ3OSwgMC45NzM0NDUyOTA0LCAwLjk4MjI1MDU1MDMsIDAuOTkxMTAyMDk3MSwgMTsiLCIvLyBSZXR1cm5zIGJhc2UgdG8gdGhlIGV4cG9uZW50IHBvd2VyLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFRoZSBiYXNlIG51bWJlclxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHAgVGhlIGV4cG9uZW50IHRvIHdoaWNoIHRvIHJhaXNlIGJhc2Vcbi8vIEByZXR1cm4ge051bWJlcn1cbi8vIEBleGFtcGxlXG4vLyAgICAgcG93KDQsIDIpICAgLy8gMTZcbi8vICAgICBwb3coNCwgLTIpICAvLyAwLjA2MjVcbi8vICAgICBwb3coNCwgMC4yKSAvLyAxLjMxOTUxXG4vLyBAZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwKSB7XG4vLyAgICAgQGlmICRleHAgPT0gZmxvb3IoJGV4cCkge1xuLy8gICAgICAgICAkcjogMTtcbi8vICAgICAgICAgJHM6IDA7XG4vLyAgICAgICAgIEBpZiAkZXhwIDwgMCB7XG4vLyAgICAgICAgICAgICAkZXhwOiAkZXhwICogLTE7XG4vLyAgICAgICAgICAgICAkczogMTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgICBAd2hpbGUgJGV4cCA+IDAge1xuLy8gICAgICAgICAgICAgQGlmICRleHAgJSAyID09IDEge1xuLy8gICAgICAgICAgICAgICAgICRyOiAkciAqICRiYXNlO1xuLy8gICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgJGV4cDogZmxvb3IoJGV4cCAqIDAuNSk7XG4vLyAgICAgICAgICAgICAkYmFzZTogJGJhc2UgKiAkYmFzZTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgICBAcmV0dXJuIGlmKCRzICE9IDAsIDEgLyAkciwgJHIpO1xuLy8gICAgIH0gQGVsc2Uge1xuLy8gICAgICAgICBAcmV0dXJuIGV4cChsb2coJGJhc2UpICogJGV4cCk7XG4vLyAgICAgfVxuLy8gfVxuXG4vLyBTaW1wbGVyIFBPVygpLCBmb3Igc3BlZWQhXG5AZnVuY3Rpb24gcG93KCRudW1iZXIsICRleHApIHtcbiAgJHZhbHVlOiAkbnVtYmVyO1xuICBAaWYgJGV4cCA+IDAge1xuICAgIC8vIElmIHRoZSBleHBvbmVudCBpcyBwb3NpdGl2ZSwgbXVsdGlwbHkuXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cCA8IDAge1xuICAgIC8vIElmIHRoZSBleHBvbmVudCBpcyBuZWdhdGl2ZSwgZGl2aWRlLlxuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSgkZXhwKSB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBJZiB0aGUgZXhwb25lbnQgaXMgemVybywganVzdCByZXR1cm4gMS5cbiAgICAkdmFsdWU6IDE7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn0iLCJAZnVuY3Rpb24gbnRoLXJvb3QtZXN0aW1hdGUoJG51bWJlciwgJGd1ZXNzLCAkbikge1xuICBAcmV0dXJuIDEvJG4gKiAoKCRudW1iZXIvcG93KCRndWVzcywgJG4gLSAxKSkgLSAkZ3Vlc3MpO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bWJlciwgJGRlZ3JlZSwgJHByZWNpc2lvbjogNSkge1xuICAkZ3Vlc3M6IDIuNztcbiAgJHByZXZpb3VzLWd1ZXNzOiAwO1xuICBcbiAgLy8gV2hpbGUgcHJlY2lzaW9uIGhhcyBub3QgYmVlbiBtZXQsIGtlZXAgZ3Vlc3NpbmdcbiAgQHdoaWxlIHJvdW5kKCRwcmV2aW91cy1ndWVzcyAqIHBvdygxMCwgJHByZWNpc2lvbikpICE9IHJvdW5kKCRndWVzcyAqIHBvdygxMCwgJHByZWNpc2lvbikpIHtcbiAgICAkcHJldmlvdXMtZ3Vlc3M6ICRndWVzcztcbiAgICAkZ3Vlc3M6ICRndWVzcyArIG50aC1yb290LWVzdGltYXRlKCRudW1iZXIsICRndWVzcywgNSk7XG4gIH1cbiAgXG4gIEByZXR1cm4gJGd1ZXNzO1xufSIsIi8vIFJldHVybnMgdGhlIHNxdWFyZSByb290IG9mIGEgbnVtYmVyLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICR4XG4vLyBAZXhhbXBsZVxuLy8gICAgIHNxcnQoMikgLy8gMS40MTQyMVxuLy8gICAgIHNxcnQoNSkgLy8gMi4yMzYwN1xuQGZ1bmN0aW9uIHNxcnQgKCR4KSB7XG4gICAgQGlmICR4IDwgMCB7XG4gICAgICAgIEB3YXJuIFwiQXJndW1lbnQgZm9yIGBzcXJ0KClgIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIuXCI7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgJHJldDogMTtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDI0IHtcbiAgICAgICAgJHJldDogJHJldCAtIChwb3coJHJldCwgMikgLSAkeCkgLyAoMiAqICRyZXQpO1xuICAgIH1cbiAgICBAcmV0dXJuICRyZXQ7XG59IiwiQGZ1bmN0aW9uIHBpKCkge1xuICAgIEByZXR1cm4gMy4xNDE1OTI2NTM1OTtcbn1cblxuQGZ1bmN0aW9uIHJhZCgkYW5nbGUpIHtcbiAgICAkdW5pdDogdW5pdCgkYW5nbGUpO1xuICAgICR1bml0bGVzczogJGFuZ2xlIC8gKCRhbmdsZSAqIDAgKyAxKTtcbiAgICAvLyBJZiB0aGUgYW5nbGUgaGFzICdkZWcnIGFzIHVuaXQsIGNvbnZlcnQgdG8gcmFkaWFucy5cbiAgICBAaWYgJHVuaXQgPT0gZGVnIHtcbiAgICAgICAgJHVuaXRsZXNzOiAkdW5pdGxlc3MgLyAxODAgKiBwaSgpO1xuICAgIH1cbiAgICBAcmV0dXJuICR1bml0bGVzcztcbn1cblxuQGZ1bmN0aW9uIHNpbigkYW5nbGUpIHtcbiAgICAkc2luOiAwO1xuICAgICRhbmdsZTogcmFkKCRhbmdsZSk7XG4gICAgLy8gSXRlcmF0ZSBhIGJ1bmNoIG9mIHRpbWVzLlxuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggMTAge1xuICAgICAgICAkc2luOiAkc2luICsgcG93KC0xLCAkaSkgKiBwb3coJGFuZ2xlLCAoMiAqICRpICsgMSkpIC8gZmFjdCgyICogJGkgKyAxKTtcbiAgICB9XG4gICAgQHJldHVybiAkc2luO1xufVxuXG5AZnVuY3Rpb24gY29zKCRhbmdsZSkge1xuICAgICRjb3M6IDA7XG4gICAgJGFuZ2xlOiByYWQoJGFuZ2xlKTtcbiAgICAvLyBJdGVyYXRlIGEgYnVuY2ggb2YgdGltZXMuXG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAxMCB7XG4gICAgICAgICRjb3M6ICRjb3MgKyBwb3coLTEsICRpKSAqIHBvdygkYW5nbGUsIDIgKiAkaSkgLyBmYWN0KDIgKiAkaSk7XG4gICAgfVxuICAgIEByZXR1cm4gJGNvcztcbn1cblxuQGZ1bmN0aW9uIHRhbigkYW5nbGUpIHtcbiAgICBAcmV0dXJuIHNpbigkYW5nbGUpIC8gY29zKCRhbmdsZSk7XG59XG5cbi8qKlxuICogb24tY2lyY2xlIHRha2VzIGEgcmFkaXVzLCBwb3NpdGlvbiBvbiBhIGNpcmNsZSwgbnVtYmVyIG9mIHBvc3NpYmxlIHBvc2l0aW9ucyBhbmQgcmV0dXJucyB0b3AgYW5kIGxlZnQgcHJvcGVydGllc1xuICpcbiAqICRvcmRpbmFsUG9zaXRpb24ge051bWJlcn0gdGhlIHBvc2l0aW9uIG9mIHRoZSBpdGVtIG9uIHRoZSBjaXJjbGUsIGNvdW50aW5nIGZyb20gMSAoTm9ydGgpIHRocm91Z2ggTlxuICogJHJhZGl1cyB7TnVtYmVyfSAgICByYWRpdXMgb2YgdGhlIGNpcmNsZSBpbiBwaXhlbHNcbiAqICRwb3NpdGlvbnMge051bWJlcn0gICB0aGUgbnVtYmVyIG9mIHBvc2l0aW9ucyBvbiB0aGUgY2lyY2xlXG4gKiAkb3JpZ2luWCB7TnVtYmVyfSAgIG9wdGlvbmFsIFggb3JpZ2luIHBvaW50IGZvciB0aGUgY2lyY2xlLCBkZWZhdWx0cyB0byB0aGUgcmFkaXVzXG4gKiAkb3JpZ2luWSB7TnVtYmVyfSAgIG9wdGlvbmFsIFkgb3JpZ2luIHBvaW50IGZvciB0aGUgY2lyY2xlLCBkZWZhdWx0cyB0byB0aGUgcmFkaXVzXG4gKiAkb2Zmc2V0WCB7TnVtYmVyfSAgIG9wdGlvbmFsIFggb2Zmc2V0IGZvciB0aGUgaXRlbSwgeW91IG1pZ2h0IHVzZSAxLzIgb2YgdGhlIHdpZHRoIG9mIGFuIGl0ZW0sIGRlZmF1bHQgaXMgMFxuICogJG9mZnNldFkge051bWJlcn0gICBvcHRpb25hbCBZIG9mZnNldCBmb3IgdGhlIGl0ZW0sIHlvdSBtaWdodCB1c2UgMS8yIG9mIHRoZSBoZWlnaHQgb2YgYW4gaXRlbSwgZGVmYXVsdCBpcyAwXG4gKi9cbkBmdW5jdGlvbiBvbi1jaXJjbGUoJG9yZGluYWxQb3NpdGlvbiwgJHJhZGl1czogMTgwLCAkcG9zaXRpb25zOiAxMywgJG9yaWdpblg6ICRyYWRpdXMsICRvcmlnaW5ZOiAkcmFkaXVzLCAkb2Zmc2V0WDogMCwgJG9mZnNldFk6IDAsICRjaXJjbGVTaXplOiAzNjAsICRzdGFydFBvczogOTAsICRyZXZlcnNlT3JkZXI6IHRydWUpIHtcblxuICAgIEBpZiAkcmV2ZXJzZU9yZGVyIHtcbiAgICAgICAgJHBvc2l0aW9uQW5nbGVEZWdyZWVzOiAtMSAqICgkb3JkaW5hbFBvc2l0aW9uIC0gMSkgKiAkY2lyY2xlU2l6ZSAvICRwb3NpdGlvbnMgKyAkc3RhcnRQb3M7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICRwb3NpdGlvbkFuZ2xlRGVncmVlczogKCRvcmRpbmFsUG9zaXRpb24gLSAxKSAqICRjaXJjbGVTaXplIC8gJHBvc2l0aW9ucyArICRzdGFydFBvcztcbiAgICB9XG5cbiAgICAkcG9zaXRpb25BbmdsZVJhZGlhbnM6ICRwb3NpdGlvbkFuZ2xlRGVncmVlcyAqIHBpKCkgLyAxODA7XG5cbiAgICAkY2lyY2xlWHBvczogI3tyb3VuZCgkb3JpZ2luWCArICRvZmZzZXRYICsgJHJhZGl1cyAqIGNvcygkcG9zaXRpb25BbmdsZVJhZGlhbnMpKX1weDtcbiAgICAkY2lyY2xlWXBvczogI3tyb3VuZCgkb3JpZ2luWSArICRvZmZzZXRZICsgJHJhZGl1cyAqIHNpbigkcG9zaXRpb25BbmdsZVJhZGlhbnMpKX1weDtcblxuICAgIEByZXR1cm4gKCRjaXJjbGVYcG9zLCAkY2lyY2xlWXBvcyk7XG5cbn0iLCIvLyBLdWRvczogaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxMy8wOC8wOC9hZHZhbmNlZC1zYXNzLWxpc3QtZnVuY3Rpb25zL1xuXG5AZnVuY3Rpb24gcmVwbGFjZS1udGgoJGxpc3QsICRpbmRleCwgJHZhbHVlKSB7XG4gICRyZXN1bHQ6IG51bGw7XG4gICAgICBcbiAgQGlmIHR5cGUtb2YoJGluZGV4KSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiJGluZGV4OiAje3F1b3RlKCRpbmRleCl9IGlzIG5vdCBhIG51bWJlciBmb3IgYHJlcGxhY2UtbnRoYC5cIjtcbiAgfVxuXG4gIEBlbHNlIGlmICRpbmRleCA9PSAwIHtcbiAgICBAd2FybiBcIkxpc3QgaW5kZXggMCBtdXN0IGJlIGEgbm9uLXplcm8gaW50ZWdlciBmb3IgYHJlcGxhY2UtbnRoYC5cIjtcbiAgfVxuICAgICAgXG4gIEBlbHNlIGlmIGFicygkaW5kZXgpID4gbGVuZ3RoKCRsaXN0KSB7XG4gICAgQHdhcm4gXCJMaXN0IGluZGV4IGlzICN7JGluZGV4fSBidXQgbGlzdCBpcyBvbmx5ICN7bGVuZ3RoKCRsaXN0KX0gaXRlbSBsb25nIGZvciBgcmVwbGFjZS1udGhgLlwiO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRyZXN1bHQ6ICgpO1xuICAgICRpbmRleDogaWYoJGluZGV4IDwgMCwgbGVuZ3RoKCRsaXN0KSArICRpbmRleCArIDEsICRpbmRleCk7ICBcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRsaXN0KSB7XG4gICAgICBAaWYgJGkgPT0gJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICR2YWx1ZSk7XG4gICAgICB9XG4gICAgXG4gICAgICBAZWxzZSB7XG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gXG4gIEByZXR1cm4gJHJlc3VsdDtcbn0iLCJAaW1wb3J0IFwic3RyaW5ncy9zdHItZXhwbG9kZVwiOyIsIi8vLyBTcGxpdCBgJHN0cmluZ2AgaW50byBzZXZlcmFsIHBhcnRzIHVzaW5nIGAkZGVsaW1pdGVyYC5cbi8vLyBAc2luY2UgMS4yLjBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0cmluZyAgICAtIHN0cmluZyB0byBzcGxpdFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVsaW1pdGVyICgnJykgLSBzdHJpbmcgdG8gdXNlIGFzIGEgZGVsaW1pdGVyIHRvIHNwbGl0IGAkc3RyaW5nYFxuLy8vIEByZXR1cm4ge0xpc3R9XG5AZnVuY3Rpb24gX3NzLXN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXI6IFwiXCIpIHtcbiAgICAkcmVzdWx0OiAoKTtcbiAgICAkbGVuZ3RoOiBzdHItbGVuZ3RoKCRzdHJpbmcpO1xuICAgIFxuICAgIEBpZiBzdHItbGVuZ3RoKCRkZWxpbWl0ZXIpID09IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQHJldHVybiAkcmVzdWx0O1xuICAgIH1cbiAgICBcbiAgICAkcnVubmluZzogdHJ1ZTtcbiAgICAkcmVtYWluaW5nOiAkc3RyaW5nO1xuICAgIFxuICAgIEB3aGlsZSAkcnVubmluZyB7XG4gICAgICAgICRpbmRleDogc3RyLWluZGV4KCRyZW1haW5pbmcsICRkZWxpbWl0ZXIpO1xuICAgICAgICBcbiAgICAgICAgQGlmICRpbmRleCB7XG4gICAgICAgICAgICAkc2xpY2U6IHN0ci1zbGljZSgkcmVtYWluaW5nLCAxLCAkaW5kZXggLSAxKTtcbiAgICAgICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkc2xpY2UpO1xuICAgICAgICAgICAgJHJlbWFpbmluZzogc3RyLXNsaWNlKCRyZW1haW5pbmcsICRpbmRleCArIHN0ci1sZW5ndGgoJGRlbGltaXRlcikpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRydW5uaW5nOiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBAcmV0dXJuIGFwcGVuZCgkcmVzdWx0LCAkcmVtYWluaW5nKTtcbn1cblxuQGZ1bmN0aW9uIHN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXI6ICcnKSB7XG4gICAgLy9AaWYgdHlwZS1vZigkc3RyaW5nKSAhPSBcInN0cmluZ1wiIHtcbiAgICAvLyAgICBAZXJyb3IgXCJgZXhwbG9kZWAgZnVuY3Rpb24gZXhwZWN0aW5nIGEgc3RyaW5nOyAje3R5cGUtb2YoJHN0cmluZyl9IGdpdmVuLlwiO1xuICAgIC8vfVxuICAgIFxuICAgIC8vQGlmIHR5cGUtb2YoJGRlbGltaXRlcikgIT0gXCJzdHJpbmdcIiB7XG4gICAgLy8gICAgQGVycm9yIFwiYGV4cGxvZGVgIGZ1bmN0aW9uIGV4cGVjdGluZyBhIHN0cmluZzsgI3t0eXBlLW9mKCRkZWxpbWl0ZXIpfSBnaXZlbi5cIjtcbiAgICAvL31cbiAgICBcbiAgICBAcmV0dXJuIF9zcy1zdHItZXhwbG9kZSgkc3RyaW5nLCAkZGVsaW1pdGVyKTtcbn0iLCJAZnVuY3Rpb24gc3RyaXAtdW5pdHMoJG51bWJlcikge1xuICAgIEByZXR1cm4gJG51bWJlciAvICgkbnVtYmVyICogMCArIDEpO1xufSIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcbiRvY3RhdmU6ICAgICAgICAgICAyO1xuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcbiRtYWpvci10d2VsZnRoOiAgICAzO1xuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCR2YWx1ZSwgJGluY3JlbWVudCwgJHJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy9Ob3RlIHRoYXQgOyBpcyB0aGUgQGltcG9ydCBzZXBhcmF0b3JcbiRmb250LWNvbWJvOiBcIlRpdGlsbGl1bStXZWI6NDAwLDcwMDsgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgJ1RpdGlsbGl1bSBXZWInLCBzYW5zLXNlcmlmXCIgIWRlZmF1bHQ7XG5cbiRmb250LXBhcnRzOiBzdHItZXhwbG9kZSgkZm9udC1jb21ibywgJzsnKTtcblxuQGlmIGxlbmd0aCgkZm9udC1wYXJ0cykgPCAyIHtcbiAgICAkZm9udC1wYXJ0czogc3RyLWV4cGxvZGUoXCJUaXRpbGxpdW0rV2ViOjQwMCw3MDA7ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICdUaXRpbGxpdW0gV2ViJywgc2Fucy1zZXJpZlwiLCAnOycpO1xufVxuXG5AaWYgbGVuZ3RoKCRmb250LXBhcnRzKSA+IDIge1xuICAgICRmb250LWltcG9ydDogdW5xdW90ZShudGgoJGZvbnQtcGFydHMsIDEpKTtcbiAgICAkZm9udC1pcy1pbXBvcnRlZDogZmFsc2UgIWRlZmF1bHQgIWdsb2JhbDtcblxuICAgIEBpZiAkZm9udC1pcy1pbXBvcnRlZCAhPSB0cnVlIHtcbiAgICAgICAgQGltcG9ydCB1cmwoJy8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT0jeyRmb250LWltcG9ydH0nKTtcbiAgICAgICAgJGZvbnQtaXMtaW1wb3J0ZWQ6IHRydWU7XG4gICAgfVxuXG4gICAgJGJvZHktZm9udC1mYW1pbHk6IHVucXVvdGUobnRoKCRmb250LXBhcnRzLCAyKSk7XG4gICAgJGhlYWRlci1mb250LWZhbWlseTogdW5xdW90ZShudGgoJGZvbnQtcGFydHMsIDMpKTtcbn0gQGVsc2Uge1xuICAgICRib2R5LWZvbnQtZmFtaWx5OiB1bnF1b3RlKG50aCgkZm9udC1wYXJ0cywgMSkpO1xuICAgICRoZWFkZXItZm9udC1mYW1pbHk6IHVucXVvdGUobnRoKCRmb250LXBhcnRzLCAyKSk7XG59XG5cbkBpZiAoc3RyLWluZGV4KCRmb250LWNvbWJvLCAnTm90byBTYW5zJykpIHtcbiAgICAkbWVudS1mb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseSAhZGVmYXVsdDtcbiAgICAkdXRpbHMtbmF2LWZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xufSIsIiRnbG9iYWwtcmFkaXVzOiAwcHggIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kYnV0dG9uLWJvcmRlci13aWR0aDogMHB4ICFkZWZhdWx0O1xuJG1lZGlhLWdyaWQtYm9yZGVyLXJhZGl1czogMHB4ICFkZWZhdWx0O1xuXG4vLyBMZXRzIGJlIGZ1bGxzY3JlZW4hXG4kcm93LXdpZHRoOiAxMDAlO1xuXG4kbmF2aWdhdGlvbi10b29sYmFyLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcblxuLy8kY29sdW1uLWd1dHRlcjogMDtcbi8vJGVxdWFsLWhlaWdodC1ndXR0ZXI6IDA7XG5cblxuLy8gRnJvbSBoZWFkZXIvX3NldHRpbmdzXG4kbG9nby1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICByZW0tY2FsYyg2MCkgIWRlZmF1bHQ7XG4kbG9nby1sYXJnZS1oZWlnaHQ6ICAgICAgICAgICAgICByZW0tY2FsYyg4MCkgIWRlZmF1bHQ7XG4kbG9nby1yb3ctc3BhY2luZzogICAgICAgICAgICAgICAxLjVyZW0gIWRlZmF1bHQ7XG4kbG9nby1sYXJnZS1yb3ctc3BhY2luZzogICAgICAgICAyLjVyZW0gIWRlZmF1bHQ7XG4kbWVudS1pdGVtcy1zcGFjaW5nOiAgICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuJHV0aWxzLW5hdi1iYXItaGVpZ2h0OiAgICAgICAgICAgM3JlbSAhZGVmYXVsdDtcblxuJHV0aWxzLW5hdi1mb250LXNpemU6ICAgICAgICAgICAgcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4kdXRpbHMtbmF2LWl0ZW0tc3BhY2luZzogICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiR1dGlscy1uYXYtbGluZS1oZWlnaHQ6ICAgICAgICAgIDEuMnJlbSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWJhY2tncm91bmQ6ICAgICAgICAgICMzMzMgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1saW5rLWNvbG9yOiAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtaXRlbS1wYWRkaW5nOiAgICAgICAgMnJlbSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0taGVpZ2h0OiAgICAgICAgIHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0tbGluZS1jb2xvcjogICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0tbGluZS1oZWlnaHQ6ICAgIDEuMiAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW9uLW1lZGl1bTogICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy10b3AtcGFkZGluZzogICAgICAgICAkdXRpbHMtbmF2LWJhci1oZWlnaHQgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy10b3AtcG9zaXRpb246ICAgICAgICAkbG9nby1oZWlnaHQgKyAkb2ZmLWNhbnZhcy10b3AtcGFkZGluZyArICRsb2dvLXJvdy1zcGFjaW5nICogMiAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplOiAgICAgIDcwJSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZTogICAgIDUwJSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWNsb3NlLWJ0bi1oZWlnaHQ6ICAgICR1dGlscy1uYXYtYmFyLWhlaWdodCAhZGVmYXVsdDtcbiRuYXYtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgIDMuNXJlbSAhZGVmYXVsdDtcbiRuYXYtYnRuLWhlaWdodDogICAgICAgICAgICAgICAgIDNyZW0gIWRlZmF1bHQ7XG4kbmF2LWljb24tc3BhY2luZzogICAgICAgICAgICAgICAuNHJlbSAhZGVmYXVsdDtcblxuJG5hdi1maXJzdC1sZXZlbC1mb250LXdlaWdodDogICAgYm9sZCAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kbmF2LWZpcnN0LWxldmVsLWZvbnQtc2l6ZTogICAgICAxcmVtICFkZWZhdWx0O1xuJG5hdi1ob3Jpem9udGFsLXNpZGUtcGFkZGluZzogICAgMXJlbSAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtc3BhY2luZzogICAgICAgIDAgIWRlZmF1bHQ7XG4kbmF2LWZpcnN0LWxldmVsLXNpZGUtcGFkZGluZzogICAxcmVtICFkZWZhdWx0O1xuXG4kbmF2LWZpcnN0LWxldmVsLWZvbnQtd2VpZ2h0OiBub3JtYWw7IiwiLy8gQ29sb3IgY29udHJhc3QgYW5hbHlzaXMgdmFyaWFibGVzLCBzZWUgZnVuY3Rpb25zL2NvbG9yXG4kY29sb3ItY29udHJhc3QtdGhyZXNob2xkICAgIDogNC41ICFkZWZhdWx0OyAgLy8gNC41ID0gV0NBRyBBQSwgNz0gV0NBRyBBQUFcblxuLy8gTWFpbiBjb2xvcnMgc3R1ZmZcbiRwcmltYXJ5LWNvbG9yICAgICAgICAgICAgICAgOiAjMDM3OEEyICFkZWZhdWx0OyAvLyBDb2xvciBwcmVzZXQgVGVhbCAjMDBhZWFlXG4kc2Vjb25kYXJ5LWNvbG9yICAgICAgICAgICAgIDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kY2FsbC10by1hY3Rpb24tY29sb3IgICAgICAgIDogIzE2N0MwMiAhZGVmYXVsdDtcbiRob3Zlci1jb2xvciAgICAgICAgICAgICAgICAgOiAjMTY3QzAyICFkZWZhdWx0O1xuJGJvcmRlci1jb2xvciAgICAgICAgICAgICAgICA6ICNkZGRkZGQgIWRlZmF1bHQ7XG5cbiRhbGVydC1jb2xvciAgICAgICAgICAgICAgICAgOiAjZTAzMTE0ICFkZWZhdWx0O1xuJHN1Y2Nlc3MtY29sb3IgICAgICAgICAgICAgICA6ICM1Y2I4NWMgIWRlZmF1bHQ7XG4kd2FybmluZy1jb2xvciAgICAgICAgICAgICAgIDogI2ZmYTIwMCAhZGVmYXVsdDtcbiRpbmZvLWNvbG9yICAgICAgICAgICAgICAgICAgOiAjNWJjMGRlICFkZWZhdWx0O1xuJGRhbmdlci1jb2xvciAgICAgICAgICAgICAgICA6ICNkOTUzNGYgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3JzXG4kYm9keS1iZyAgICAgICAgICAgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiR0b3AtYmcgICAgICAgICAgICAgICAgICAgICAgOiAjZjRmNGY0ICFkZWZhdWx0O1xuJGhlYWRlci1iZyAgICAgICAgICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG4vLyRuYXZpZ2F0aW9uLWJnICAgICAgICAgICAgICAgOiAjZjlmOWY5ICFkZWZhdWx0O1xuJGNvbnRlbnQtYmcgICAgICAgICAgICAgICAgICA6ICNmZmZmZmYgIWRlZmF1bHQ7XG4kYXNpZGUtYmcgICAgICAgICAgICAgICAgICAgIDogIzI2MjYyNiAhZGVmYXVsdDtcbiRmb290ZXItYmcgICAgICAgICAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuJGVuZC1iZyAgICAgICAgICAgICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG5cbi8vIEZvbnQgY29sb3JzXG4kYm9keS1mb250LWNvbG9yICAgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRoZWFkZXItZm9udC1jb2xvciAgICAgICAgICAgOiBkYXJrZW4oJGJvZHktZm9udC1jb2xvciwgNyUpICFkZWZhdWx0O1xuJGFsdGVybmF0aXZlLWZvbnQtY29sb3IgICAgICA6ICNmZmZmZmYgIWRlZmF1bHQ7XG5cbiRkYXJrLWJvZHktdGV4dCAgICAgICAgICAgICAgOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuJGxpZ2h0LWJvZHktdGV4dCAgICAgICAgICAgICA6ICRhbHRlcm5hdGl2ZS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBEeW5hbWljIGRpbWVuc2lvbnMgbWFzaGl6emxlXG4kbmF2aWdhdGlvbi1iZyAgICAgICAgICAgICAgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnLCAxLjEpIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbi10b29sYmFyLWZpeGVkLWJnIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJG5hdmlnYXRpb24tYmcsICRjb250ZW50LWJnLCAxLjMpIWRlZmF1bHQ7XG5cbiRhc2lkZV9fZm9vdGVyLWJnICAgICAgICAgICAgOiAjZmZmZmZmICFkZWZhdWx0O1xuXG4vLyBFbGVtZW50IGFuZCBzZWN0aW9uIGNvbG9yIHNldHRpbmdzXG4vLyBAVE9ETzogV2hlbiB3ZSBjYW4gdXNlIFNhc3MgMy4zLCBjbGVhbiB0aGlzIHVwIGludG8gbWFwcyB3aXRoIGtleS92YWx1ZSBwYWlycyFcbiRjb2xvci1lbGVtZW50cyAgICAgICAgICAgICAgOiBcInByaW1hcnktY29sb3JcIiwgXCJzZWNvbmRhcnktY29sb3JcIiwgXCJjYWxsLXRvLWFjdGlvbi1jb2xvclwiICFkZWZhdWx0O1xuJGNvbG9yLWVsZW1lbnRzLWNvbG9ycyAgICAgICA6ICRwcmltYXJ5LWNvbG9yLCAkc2Vjb25kYXJ5LWNvbG9yLCAkY2FsbC10by1hY3Rpb24tY29sb3IgIWRlZmF1bHQ7IC8vIGxpc3QgbGVuZ3RoIHNob3VsZCBtYXRjaCB0aGF0IG9mICRjb2xvci1lbGVtZW50c1xuJHNlY3Rpb25zICAgICAgICAgICAgICAgICAgICA6IFwidG9wXCIsIFwibmF2aWdhdGlvblwiLCBcIm5hdmlnYXRpb25fX3Rvb2xiYXJcIiwgXCJoZWFkZXJcIiwgXCJjb250ZW50XCIsIFwiZm9vdGVyXCIsIFwiZW5kXCIsIFwiYXNpZGVcIiwgXCJhc2lkZV9fZm9vdGVyXCIgIWRlZmF1bHQ7XG4kc2VjdGlvbi1zZWxlY3RvcnMgICAgICAgICAgIDogXCIudG9wLWJnXCIsIFwiLm5hdmlnYXRpb24tYmdcIiwgXCIubmF2aWdhdGlvbl9fdG9vbGJhclwiLCBcIi5oZWFkZXItYmdcIiwgXCIuY29udGVudC1iZ1wiLCBcIi5mb290ZXItYmdcIiwgXCIuZW5kLWJnXCIsIFwiLmFzaWRlLWJnXCIsIFwiLmFzaWRlX19mb290ZXItYmdcIiAhZGVmYXVsdDsgLy8gbGlzdCBsZW5ndGggc2hvdWxkIG1hdGNoIHRoYXQgb2YgJHNlY3Rpb25zXG4kc2VjdGlvbi1iYWNrZ3JvdW5kcyAgICAgICAgIDogJHRvcC1iZywgJG5hdmlnYXRpb24tYmcsICRuYXZpZ2F0aW9uLXRvb2xiYXItZml4ZWQtYmcsICRoZWFkZXItYmcsICRjb250ZW50LWJnLCAkZm9vdGVyLWJnLCAkZW5kLWJnLCAkYXNpZGUtYmcsICRhc2lkZV9fZm9vdGVyLWJnICFkZWZhdWx0OyAvLyBsaXN0IGxlbmd0aCBzaG91bGQgbWF0Y2ggdGhhdCBvZiAkc2VjdGlvbnNcblxuJG5hdmlnYXRpb24tdG9vbGJhci1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHRvcC1iZywgJGNvbnRlbnQtYmcsIDEuMDUpICFkZWZhdWx0O1xuXG4vLyBTZXQgc29tZSBleHRyYSBjb2xvciB2YXJpYWJsZXNcbiRjb250ZW50LWJnLWlzLWRhcmsgICAgICAgICAgOiBpZihsdW1hKCRjb250ZW50LWJnKSA8IDUwLCB0cnVlLCBmYWxzZSkgIWRlZmF1bHQ7XG4kaG92ZXItYmctdGV4dC1jb2xvciAgICAgICAgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJGhvdmVyLWNvbG9yKSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yICAgICAgICAgICAgOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpICFkZWZhdWx0O1xuJGNvbnRlbnQtdGV4dC1jb2xvciAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRjb250ZW50LWJnKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkY29udGVudC1iZykpICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtY29sb3ItY3VycmVudCAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LXRleHQtY29sb3IsICRuYXZpZ2F0aW9uLXRvb2xiYXItYmcpICFkZWZhdWx0O1xuXG4vLyBUYWJzIHNldHRpbmdzXG4kdGFicy1vbi1kYXJrLWJnICAgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgdHJ1ZSwgZmFsc2UpICFkZWZhdWx0O1xuJHRhYnMtYmctY29sb3IgICAgICAgICAgICAgICA6IGlmKCR0YWJzLW9uLWRhcmstYmcsIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDEwJSksIGRhcmtlbigkY29udGVudC1iZywgMTAlKSkgIWRlZmF1bHQ7XG4kdGFicy1mb250LWNvbG9yICAgICAgICAgICAgIDogaW52ZXJ0KCR0YWJzLWJnLWNvbG9yKSAhZGVmYXVsdDtcbiR0YWJzLWFjdGl2ZS1iZy1jb2xvciAgICAgICAgOiBpZigkdGFicy1vbi1kYXJrLWJnLCAjZmZmLCAjMDAwKSAhZGVmYXVsdDtcbiR0YWJzLWFjdGl2ZS1mb250LWNvbG9yICAgICAgOiBpbnZlcnQoJHRhYnMtYWN0aXZlLWJnLWNvbG9yKSAhZGVmYXVsdDtcbiR0YWJzLWNvbnRhaW5lci1iZyAgICAgICAgICAgOiBpZigkdGFicy1vbi1kYXJrLWJnLCBsaWdodGVuKCRjb250ZW50LWJnLCAzJSksIGRhcmtlbigkY29udGVudC1iZywgMyUpKSAhZGVmYXVsdDtcblxuLy8gU2V0dGluZ3MgZm9yIHRhYmxlc1xuJHRhYmxlLWJnICAgICAgICAgICAgICAgICAgICA6ICRjb250ZW50LWJnICFkZWZhdWx0O1xuJHRhYmxlLWV2ZW4tcm93LWJnICAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDUlKSwgIGRhcmtlbigkY29udGVudC1iZywgNSUpKSAhZGVmYXVsdDtcbiR0YWJsZS1ib3JkZXItY29sb3IgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCByZ2JhKCRsaWdodC1ib2R5LXRleHQsIDAuNCksIHJnYmEoJGRhcmstYm9keS10ZXh0LCAwLjQpKSAhZGVmYXVsdDtcbiR0YWJsZS1zdWJ0bGUtYm9yZGVyLWNvbG9yICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCByZ2JhKCRsaWdodC1ib2R5LXRleHQsIDAuNCksIHJnYmEoJGRhcmstYm9keS10ZXh0LCAwLjQpKSAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLWJnICAgICAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCAzJSksIGRhcmtlbigkY29udGVudC1iZywgMyUpKSAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3IgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkdGFibGUtaGVhZC1iZyksIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJHRhYmxlLWhlYWQtYmcpKSAhZGVmYXVsdDtcbiR0YWJsZS1ldmVuLXJvdy10ZXh0LWNvbG9yICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkdGFibGUtZXZlbi1yb3ctYmcgKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkdGFibGUtZXZlbi1yb3ctYmcgKSkgIWRlZmF1bHQ7XG4kdGFibGUtcm93LWZvbnQtY29sb3IgICAgICAgIDogJGNvbnRlbnQtdGV4dC1jb2xvciAhZGVmYXVsdDtcblxuLy8gQ2hlY2tvdXQgY29sb3JzXG4kY2hlY2tvdXQtc3RlcHMtYmcgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgMTUlKSwgZGFya2VuKCRjb250ZW50LWJnLCAxNSUpKSAhZGVmYXVsdDtcbiRjaGVja291dC1zdGVwLWluYWN0aXZlLWJnICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCA4JSksIGRhcmtlbigkY29udGVudC1iZywgOCUpKSAhZGVmYXVsdDtcbiRlZGl0LXN0ZXAtYnV0dG9uLWJnICAgICAgICAgOiAkY29udGVudC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJGVkaXQtc3RlcC1idXR0b24tdGV4dC1jb2xvciA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRlZGl0LXN0ZXAtYnV0dG9uLWJnKSAhZGVmYXVsdDtcbiRlZGl0LXN0ZXAtaG92ZXItYmcgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBkYXJrZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDEwJSksIGxpZ2h0ZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDEwJSkpICFkZWZhdWx0O1xuJGVkaXQtc3RlcC1ob3Zlci10ZXh0LWNvbG9yICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkZWRpdC1zdGVwLWhvdmVyLWJnKSAhZGVmYXVsdDtcbiRzdGVwLW51bWJlci1iZyAgICAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBkYXJrZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDIwJSksIGxpZ2h0ZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDIwJSkpICFkZWZhdWx0O1xuJHN0ZXAtbnVtYmVyLXRleHQtY29sb3IgICAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNkZGQsICRzdGVwLW51bWJlci1iZykgIWRlZmF1bHQ7XG5cbi8vIE1lc3NhZ2Vib3gvYWxlcnRzXG4kbXNnYm94LWJnICAgICAgICAgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgNSUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDUlKSkgIWRlZmF1bHQ7XG4kbXNnYm94LWJvcmRlci1jb2xvciAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkbXNnYm94LWJnLCAxMCUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDEwJSkpICFkZWZhdWx0O1xuJG1zZ2JveC1jbG9zZS10ZXh0LWNvbG9yICAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCMwMDAsICRtc2dib3gtYmcpICFkZWZhdWx0O1xuJG1zZ2JveC1jbG9zZS1zaGFkb3ctY29sb3IgICA6IGludmVydCgkbXNnYm94LWNsb3NlLXRleHQtY29sb3IpICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtY29sb3ItYWx0ICAgICAgICA6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIFRhYnMgbmF2aWdhdGlvbiBjb2xvciAobmVlZHMgZml4aW5nKVxuJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvciAgICAgICAgICA6ICR0YWJzLWJnLWNvbG9yICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3IgICA6ICR0YWJzLWFjdGl2ZS1iZy1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3IgICAgOiBzY2FsZS1jb2xvcigkdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiA2JSkgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3IgICAgICAgIDogJHRhYnMtZm9udC1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWZvbnQtY29sb3IgOiAkdGFicy1hY3RpdmUtZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8gQm9yZGVyc1xuJGJvcmRlci1kZWZhdWx0LW9wYWNpdHk6IDAuMiAhZGVmYXVsdDtcbiRib3JkZXItZGVmYXVsdC1ob3Zlci1vcGFjaXR5OiAwLjQgIWRlZmF1bHQ7XG4kYm9yZGVyLWhhcmQtb3BhY2l0eTogMC41ICFkZWZhdWx0O1xuJGJvcmRlci1oYXJkLWhvdmVyLW9wYWNpdHk6IDAuNyAhZGVmYXVsdDtcblxuLy8gU29jaWFsIGljb24gY29sb3JzXG4kc29jaWFsLWNvbG9yLWJsb2dnZXI6ICNmYzk5NDggIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLWVsbG86IHJnYmEoIzAwMCwgLjEpICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1mYWNlYm9vazogIzNiNTk5OCAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItZmxpY2tyOiAjZmYwMDg0ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1nb29nbGVwbHVzOiAjZGQ0YjM5ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1pbnN0YWdyYW06ICM1MTdmYTQgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLWxpbmtlZGluOiAjMDA3YmI2ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1tYWlsOiAjMzMzICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1waW50ZXJlc3Q6ICNjYjIwMjcgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLXR3aXR0ZXI6ICMwMGFjZWQgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLXZpbWVvOiAjNDViY2Y5ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci15b3V0dWJlOiAjY2MxODFlICFkZWZhdWx0O1xuXG4vLyBQYWdpbmF0aW9uIGNvbG9yc1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kOiAgICAgICAgICAgIHJnYmEoJGNvbnRlbnQtYmcsIDApICFkZWZhdWx0OyAvLyB0cmFuc3BhcmVudFxuJHBhZ2luYXRpb24taXRlbS1ib3JkZXItY29sb3I6ICAgICAgICAgICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAkY29udGVudC10ZXh0LWNvbG9yO1xuXG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZDogICAgJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYm9yZGVyLWNvbG9yOiAgJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tY29sb3I6ICAgICAgICAgYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZCkgPCA1MCwgI2ZmZiwgIzAwMCksICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kOiAgICAgICRob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYm9yZGVyLWNvbG9yOiAgICAkcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWNvbG9yOiAgICAgICAgICAgYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQpIDwgNTAsICNmZmYsICMwMDApLCAkcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQpICFkZWZhdWx0O1xuXG4vLyBGcm9tIGhlYWRlci9fc2V0dGluZ3NcbiR1dGlscy1uYXYtZm9udC1jb2xvcjogICAgICAgICAgICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LXNlcGFyYXRvci1jb2xvcjogICAgICBsaWdodGVuKCR1dGlscy1uYXYtZm9udC1jb2xvciwgNTAlKSAhZGVmYXVsdDtcbiRuYXYtc3VibWVudS1ib3JkZXItY29sb3I6ICAgICAgICRib3JkZXItY29sb3IgIWRlZmF1bHQ7IiwiLy8gVGhlc2UgYXJlIHRoZSBvbGQgUElPTkVFUiBzZXR0aW5ncywgd2hpY2ggd2FzIFRoZSBUaGVtZSBUaGF0IFN0YXJ0ZWQgSXQgQWxsIOKEolxuXG4vLyBHbG9iYWwgc2V0dGluZ3NcbiR0b3VjaC1mcmllbmRseS1zaXplOiByZW0tY2FsYyg0NCkgIWRlZmF1bHQ7XG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8gRm9udCBzZXR0aW5nc1xuJHBhcmFncmFwaC1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuJHBhZ2UtdGl0bGUtcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLyBMYXlvdXQgc2V0dGluZ3NcbiRtZW51LXR5cGU6ICdkcm9wZG93bicgIWRlZmF1bHQ7IC8vIE11c3QgbWF0Y2ggdGhlIGRlZmF1bHQgc2V0dGluZyBpbiB0aGUgY29uZmlnLnBocC1maWxlXG4kcGFnZS1sYXlvdXQ6ICdmdWxsJyAhZGVmYXVsdDsgICAvLyAnZnJhbWVkJyBvciAnZnVsbCdcbiRvZmYtY2FudmFzLXBvc2l0aW9uOiBsZWZ0ICFkZWZhdWx0O1xuXG4vLyBBbGVydCBib3ggc2V0dGluZ3NcbiRpbmNsdWRlLWh0bWwtYWxlcnQtY2xhc3NlczogZmFsc2U7XG4kYWxlcnQtcGFkZGluZy10b3A6IDFyZW0gIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2UtdG9wOiAxcmVtICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJGFsZXJ0LWxpbmUtaGVpZ2h0OiAkYWxlcnQtZm9udC1zaXplLzFyZW0gKiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuJGFsZXJ0LXNpZGUtYm9yZGVyLXNpemU6IDJyZW0gIWRlZmF1bHQ7XG4kYWxlcnQtcmFkaXVzOiA0cHggIWRlZmF1bHQ7XG4kYWxlcnQtYm90dG9tLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8gR3JpZCBzZXR0aW5nc1xuJHJvdy13aWR0aDogcmVtLWNhbGMoMTI4MCkgIWRlZmF1bHQ7XG4kdG90YWwtY29sdW1uczogMTIgIWRlZmF1bHQ7XG4kY29sdW1uLWd1dHRlcjogcmVtLWNhbGMoMzApICFkZWZhdWx0O1xuXG4vLyBFcXVhbCBjb2x1bW4gaGVpZ2h0IGdyaWQgc2V0dGluZ1xuJGVxdWFsLWNvbC1pbm5lci1wYWRkaW5nOiAkY29sdW1uLWd1dHRlci8yICFkZWZhdWx0O1xuXG4vLyBCbG9jayBncmlkIHNldHRpbmdzXG4kaW5jbHVkZS1odG1sLWJsb2NrLWdyaWQtY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcbiRibG9jay1ncmlkLWVsZW1lbnRzOiA1ICFkZWZhdWx0O1xuJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gTWVkaWEgcXVlcnkgcmFuZ2VzXG4kc21hbGwtcmFuZ2U6ICgwZW0sIDM5LjkzNzVlbSkgIWRlZmF1bHQ7XG4kbWVkaXVtLXJhbmdlOiAoNDBlbSwgNjMuOTM3NWVtKSAhZGVmYXVsdDtcbiRsYXJnZS1yYW5nZTogKDY0ZW0sIDg5LjkzNzVlbSkgIWRlZmF1bHQ7XG4keGxhcmdlLXJhbmdlOiAoOTBlbSwgMTE5LjkzNzVlbSkgIWRlZmF1bHQ7XG4keHhsYXJnZS1yYW5nZTogKDEyMGVtLCA5OTk5OTk5OWVtKSAhZGVmYXVsdDtcblxuLy8gQnJlYWRjcnVtYnMgc2V0dGluZ3NcbiRjcnVtYi1iZzogI2ZmZiAhZGVmYXVsdDtcbiRjcnVtYi1wYWRkaW5nOiAwICFkZWZhdWx0O1xuJGNydW1iLWJvcmRlci1zaXplOiAwICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtdHJhbnNmb3JtOiBub25lICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRjcnVtYi1zaWRlLXBhZGRpbmc6IC41cmVtICFkZWZhdWx0O1xuXG4vLyBUYWJsZSBzdHlsaW5nXG4kdGFibGUtYm9yZGVyLXNpemU6IDA7XG5cbi8vIFRhYnMgc3R5bGluZ1xuJHRhYnMtbmF2aWdhdGlvbi1wYWRkaW5nOiAwLjRyZW0gIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kdGFicy1jb250ZW50LW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDI0KSAhZGVmYXVsdDtcbiR0YWJzLWNvbnRlbnQtcGFkZGluZzogLjVyZW0gIWRlZmF1bHQ7XG4kdGFicy12ZXJ0aWNhbC1uYXZpZ2F0aW9uLW1hcmdpbi1ib3R0b206IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vIFNvY2lhbCBpY29uc1xuJHNvY2lhbC1pY29uLXNpemU6ICR0b3VjaC1mcmllbmRseS1zaXplICFkZWZhdWx0O1xuXG4vLyBCdXR0b25zXG4kYnV0dG9uLXNpemU6IHJlbS1jYWxjKDM3KSAhZGVmYXVsdDtcbiRidXR0b24tZm9udC13ZWlnaHQ6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8gUGFnaW5hdGlvbiBzZXR0aW5nc1xuJHBhZ2luYXRpb24taXRlbS1oZWlnaHQ6ICAgICAgICAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tc2lkZS1wYWRkaW5nOiAgMXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1ib3JkZXItc2l6ZTogICAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tZnVsbC1icmVha3BvaW50OiAgICBcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MHJlbSlcIiAhZGVmYXVsdDtcbiIsIi8vIE1haW4gY29sb3JzIHN0dWZmXG4kcHJpbWFyeS1jb2xvciAgICAgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRzZWNvbmRhcnktY29sb3IgICAgICAgICAgICAgOiAjZTdlN2U3ICFkZWZhdWx0O1xuJGNhbGwtdG8tYWN0aW9uLWNvbG9yICAgICAgICA6ICNFRjNBM0IgIWRlZmF1bHQ7XG4kaG92ZXItY29sb3IgICAgICAgICAgICAgICAgIDogI0VGM0EzQiAhZGVmYXVsdDtcbiRib3JkZXItY29sb3IgICAgICAgICAgICAgICAgOiAjZGRkZGRkICFkZWZhdWx0O1xuXG4kYWxlcnQtY29sb3IgICAgICAgICAgICAgICAgIDogI2UwMzExNCAhZGVmYXVsdDtcbiRzdWNjZXNzLWNvbG9yICAgICAgICAgICAgICAgOiAjNWNiODVjICFkZWZhdWx0O1xuJHdhcm5pbmctY29sb3IgICAgICAgICAgICAgICA6ICNmZmEyMDAgIWRlZmF1bHQ7XG4kaW5mby1jb2xvciAgICAgICAgICAgICAgICAgIDogIzViYzBkZSAhZGVmYXVsdDtcbiRkYW5nZXItY29sb3IgICAgICAgICAgICAgICAgOiAjZDk1MzRmICFkZWZhdWx0O1xuXG4vLyBCYWNrZ3JvdW5kIGNvbG9yc1xuJGJvZHktYmcgICAgICAgICAgICAgICAgICAgICA6ICNGRkZGRkYgIWRlZmF1bHQ7XG4kdG9wLWJnICAgICAgICAgICAgICAgICAgICAgIDogI2Y1ZjVmNSAhZGVmYXVsdDtcbiRoZWFkZXItYmcgICAgICAgICAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuJG5hdmlnYXRpb24tYmcgICAgICAgICAgICAgICA6ICMyMTIxMjEgIWRlZmF1bHQ7XG4kY29udGVudC1iZyAgICAgICAgICAgICAgICAgIDogI2ZmZmZmZiAhZGVmYXVsdDtcbiRmb290ZXItYmcgICAgICAgICAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuJGVuZC1iZyAgICAgICAgICAgICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG5cbi8vIEZvbnQgY29sb3JzXG4kYm9keS1mb250LWNvbG9yICAgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRoZWFkZXItZm9udC1jb2xvciAgICAgICAgICAgOiBkYXJrZW4oJGJvZHktZm9udC1jb2xvciwgNyUpICFkZWZhdWx0O1xuJGFsdGVybmF0aXZlLWZvbnQtY29sb3IgICAgICA6ICNjY2NjY2MgIWRlZmF1bHQ7XG5cbi8vIENvbG9yIGNvbnRyYXN0IGFuYWx5c2lzIHZhcmlhYmxlcywgc2VlIGZ1bmN0aW9ucy9jb2xvclxuJGNvbG9yLWNvbnRyYXN0LXRocmVzaG9sZCAgICA6IDQuNSAhZGVmYXVsdDsgIC8vIDQuNSA9IFdDQUcgQUEsIDc9IFdDQUcgQUFBXG4kZGFyay1ib2R5LXRleHQgICAgICAgICAgICAgIDogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcbiRsaWdodC1ib2R5LXRleHQgICAgICAgICAgICAgOiAkYWx0ZXJuYXRpdmUtZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8gRWxlbWVudCBhbmQgc2VjdGlvbiBjb2xvciBzZXR0aW5nc1xuLy8gQFRPRE86IFdoZW4gd2UgY2FuIHVzZSBTYXNzIDMuMywgY2xlYW4gdGhpcyB1cCBpbnRvIG1hcHMgd2l0aCBrZXkvdmFsdWUgcGFpcnMhXG4kY29sb3ItZWxlbWVudHMgICAgICAgICAgICAgIDogXCJwcmltYXJ5LWNvbG9yXCIsIFwic2Vjb25kYXJ5LWNvbG9yXCIsIFwiY2FsbC10by1hY3Rpb24tY29sb3JcIiAhZGVmYXVsdDtcbiRjb2xvci1lbGVtZW50cy1jb2xvcnMgICAgICAgOiAkcHJpbWFyeS1jb2xvciwgJHNlY29uZGFyeS1jb2xvciwgJGNhbGwtdG8tYWN0aW9uLWNvbG9yICFkZWZhdWx0OyAvLyBsaXN0IGxlbmd0aCBzaG91bGQgbWF0Y2ggdGhhdCBvZiAkY29sb3ItZWxlbWVudHNcbiRzZWN0aW9ucyAgICAgICAgICAgICAgICAgICAgOiBcInRvcFwiLCBcIm5hdmlnYXRpb25cIiwgXCJoZWFkZXJcIiwgXCJjb250ZW50XCIsIFwiZm9vdGVyXCIsIFwiZW5kXCIgIWRlZmF1bHQ7XG4kc2VjdGlvbi1zZWxlY3RvcnMgICAgICAgICAgIDogXCIudG9wLWJnXCIsIFwiLm5hdmlnYXRpb24tYmdcIiwgXCIuaGVhZGVyLWJnXCIsIFwiLmNvbnRlbnQtYmdcIiwgXCIuZm9vdGVyLWJnXCIsIFwiLmVuZC1iZ1wiICFkZWZhdWx0OyAvLyBsaXN0IGxlbmd0aCBzaG91bGQgbWF0Y2ggdGhhdCBvZiAkc2VjdGlvbnNcbiRzZWN0aW9uLWJhY2tncm91bmRzICAgICAgICAgOiAkdG9wLWJnLCAkbmF2aWdhdGlvbi1iZywgJGhlYWRlci1iZywgJGNvbnRlbnQtYmcsICRmb290ZXItYmcsICRlbmQtYmcgIWRlZmF1bHQ7IC8vIGxpc3QgbGVuZ3RoIHNob3VsZCBtYXRjaCB0aGF0IG9mICRzZWN0aW9uc1xuXG4vLyBTZXQgc29tZSBleHRyYSBjb2xvciB2YXJpYWJsZXNcbiRjb250ZW50LWJnLWlzLWRhcmsgICAgICAgICAgOiBpZihsdW1hKCRjb250ZW50LWJnKSA8IDUwLCB0cnVlLCBmYWxzZSkgIWRlZmF1bHQ7XG4kaG92ZXItYmctdGV4dC1jb2xvciAgICAgICAgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJGhvdmVyLWNvbG9yKSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yICAgICAgICAgICAgOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpICFkZWZhdWx0O1xuJGNvbnRlbnQtdGV4dC1jb2xvciAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRjb250ZW50LWJnKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkY29udGVudC1iZykpICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtY29sb3ItY3VycmVudCAgICA6ICRjb250ZW50LXRleHQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIFRhYnMgc2V0dGluZ3NcbiR0YWJzLW9uLWRhcmstYmcgICAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCB0cnVlLCBmYWxzZSkgIWRlZmF1bHQ7XG4kdGFicy1iZy1jb2xvciAgICAgICAgICAgICAgIDogaWYoJHRhYnMtb24tZGFyay1iZywgbGlnaHRlbigkY29udGVudC1iZywgMTAlKSwgZGFya2VuKCRjb250ZW50LWJnLCAxMCUpKSAhZGVmYXVsdDtcbiR0YWJzLWZvbnQtY29sb3IgICAgICAgICAgICAgOiBpbnZlcnQoJHRhYnMtYmctY29sb3IpICFkZWZhdWx0O1xuJHRhYnMtYWN0aXZlLWJnLWNvbG9yICAgICAgICA6IGlmKCR0YWJzLW9uLWRhcmstYmcsICNmZmYsICMwMDApICFkZWZhdWx0O1xuJHRhYnMtYWN0aXZlLWZvbnQtY29sb3IgICAgICA6IGludmVydCgkdGFicy1hY3RpdmUtYmctY29sb3IpICFkZWZhdWx0O1xuJHRhYnMtY29udGFpbmVyLWJnICAgICAgICAgICA6IGlmKCR0YWJzLW9uLWRhcmstYmcsIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDMlKSwgZGFya2VuKCRjb250ZW50LWJnLCAzJSkpICFkZWZhdWx0O1xuXG4vLyBTZXR0aW5ncyBmb3IgdGFibGVzXG4kdGFibGUtYmcgICAgICAgICAgICAgICAgICAgIDogJGNvbnRlbnQtYmcgIWRlZmF1bHQ7XG4kdGFibGUtZXZlbi1yb3ctYmcgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgNSUpLCAgZGFya2VuKCRjb250ZW50LWJnLCA1JSkpICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1jb2xvciAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIHJnYmEoJGxpZ2h0LWJvZHktdGV4dCwgMC40KSwgcmdiYSgkZGFyay1ib2R5LXRleHQsIDAuNCkpICFkZWZhdWx0O1xuJHRhYmxlLXN1YnRsZS1ib3JkZXItY29sb3IgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIHJnYmEoJGxpZ2h0LWJvZHktdGV4dCwgMC40KSwgcmdiYSgkZGFyay1ib2R5LXRleHQsIDAuNCkpICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtYmcgICAgICAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDMlKSwgZGFya2VuKCRjb250ZW50LWJnLCAzJSkpICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtZm9udC1jb2xvciAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICR0YWJsZS1oZWFkLWJnKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkdGFibGUtaGVhZC1iZykpICFkZWZhdWx0O1xuJHRhYmxlLWV2ZW4tcm93LXRleHQtY29sb3IgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICR0YWJsZS1ldmVuLXJvdy1iZyApLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICR0YWJsZS1ldmVuLXJvdy1iZyApKSAhZGVmYXVsdDtcbiR0YWJsZS1yb3ctZm9udC1jb2xvciAgICAgICAgOiAkY29udGVudC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBDaGVja291dCBjb2xvcnNcbiRjaGVja291dC1zdGVwcy1iZyAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCAxNSUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDE1JSkpICFkZWZhdWx0O1xuJGNoZWNrb3V0LXN0ZXAtaW5hY3RpdmUtYmcgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDglKSwgZGFya2VuKCRjb250ZW50LWJnLCA4JSkpICFkZWZhdWx0O1xuJGVkaXQtc3RlcC1idXR0b24tYmcgICAgICAgICA6ICRjb250ZW50LXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kZWRpdC1zdGVwLWJ1dHRvbi10ZXh0LWNvbG9yIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJGVkaXQtc3RlcC1idXR0b24tYmcpICFkZWZhdWx0O1xuJGVkaXQtc3RlcC1ob3Zlci1iZyAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGRhcmtlbigkZWRpdC1zdGVwLWJ1dHRvbi1iZywgMTAlKSwgbGlnaHRlbigkZWRpdC1zdGVwLWJ1dHRvbi1iZywgMTAlKSkgIWRlZmF1bHQ7XG4kZWRpdC1zdGVwLWhvdmVyLXRleHQtY29sb3IgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRlZGl0LXN0ZXAtaG92ZXItYmcpICFkZWZhdWx0O1xuJHN0ZXAtbnVtYmVyLWJnICAgICAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGRhcmtlbigkZWRpdC1zdGVwLWJ1dHRvbi1iZywgMjAlKSwgbGlnaHRlbigkZWRpdC1zdGVwLWJ1dHRvbi1iZywgMjAlKSkgIWRlZmF1bHQ7XG4kc3RlcC1udW1iZXItdGV4dC1jb2xvciAgICAgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2RkZCwgJHN0ZXAtbnVtYmVyLWJnKSAhZGVmYXVsdDtcblxuLy8gTWVzc2FnZWJveC9hbGVydHNcbiRtc2dib3gtYmcgICAgICAgICAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCA1JSksIGRhcmtlbigkY29udGVudC1iZywgNSUpKSAhZGVmYXVsdDtcbiRtc2dib3gtYm9yZGVyLWNvbG9yICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRtc2dib3gtYmcsIDEwJSksIGRhcmtlbigkY29udGVudC1iZywgMTAlKSkgIWRlZmF1bHQ7XG4kbXNnYm94LWNsb3NlLXRleHQtY29sb3IgICAgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoIzAwMCwgJG1zZ2JveC1iZykgIWRlZmF1bHQ7XG4kbXNnYm94LWNsb3NlLXNoYWRvdy1jb2xvciAgIDogaW52ZXJ0KCRtc2dib3gtY2xvc2UtdGV4dC1jb2xvcikgIWRlZmF1bHQ7XG4kYWxlcnQtZm9udC1jb2xvci1hbHQgICAgICAgIDogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8gVGFicyBuYXZpZ2F0aW9uIGNvbG9yIChuZWVkcyBmaXhpbmcpXG4kdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yICAgICAgICAgIDogJHRhYnMtYmctY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1iZy1jb2xvciAgIDogJHRhYnMtYWN0aXZlLWJnLWNvbG9yICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvciAgICA6IHNjYWxlLWNvbG9yKCR0YWJzLW5hdmlnYXRpb24tYmctY29sb3IsICRsaWdodG5lc3M6IC0xNi42JSkgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3IgICAgICAgIDogJHRhYnMtZm9udC1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWZvbnQtY29sb3IgOiAkdGFicy1hY3RpdmUtZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8gQm9yZGVyc1xuJGJvcmRlci1kZWZhdWx0LW9wYWNpdHk6IDAuMiAhZGVmYXVsdDtcbiRib3JkZXItZGVmYXVsdC1ob3Zlci1vcGFjaXR5OiAwLjQgIWRlZmF1bHQ7XG4kYm9yZGVyLWhhcmQtb3BhY2l0eTogMC41ICFkZWZhdWx0O1xuJGJvcmRlci1oYXJkLWhvdmVyLW9wYWNpdHk6IDAuNyAhZGVmYXVsdDtcblxuLy8gU29jaWFsIGljb24gY29sb3JzXG4kc29jaWFsLWNvbG9yLWJsb2dnZXI6ICNmYzk5NDggIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLWVsbG86IHJnYmEoIzAwMCwgLjEpICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1mYWNlYm9vazogIzNiNTk5OCAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItZmxpY2tyOiAjZmYwMDg0ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1nb29nbGVwbHVzOiAjZGQ0YjM5ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1pbnN0YWdyYW06ICM1MTdmYTQgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLWxpbmtlZGluOiAjMDA3YmI2ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1tYWlsOiAjMzMzICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1waW50ZXJlc3Q6ICNjYjIwMjcgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLXR3aXR0ZXI6ICMwMGFjZWQgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLXZpbWVvOiAjNDViY2Y5ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci15b3V0dWJlOiAjY2MxODFlICFkZWZhdWx0O1xuXG4vLyBQYWdpbmF0aW9uIGNvbG9yc1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kOiAgICAgICAgICAgIHJnYmEoJGNvbnRlbnQtYmcsIDApICFkZWZhdWx0OyAvLyB0cmFuc3BhcmVudFxuJHBhZ2luYXRpb24taXRlbS1ib3JkZXItY29sb3I6ICAgICAgICAgICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAkY29udGVudC10ZXh0LWNvbG9yO1xuXG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZDogICAgJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYm9yZGVyLWNvbG9yOiAgJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tY29sb3I6ICAgICAgICAgYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZCkgPCA1MCwgI2ZmZiwgIzAwMCksICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kOiAgICAgICRob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYm9yZGVyLWNvbG9yOiAgICAkcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWNvbG9yOiAgICAgICAgICAgYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQpIDwgNTAsICNmZmYsICMwMDApLCAkcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQpICFkZWZhdWx0OyIsIkBpZiBsZW5ndGgoJGNvbG9yLWVsZW1lbnRzKSAhPSBsZW5ndGgoJGNvbG9yLWVsZW1lbnRzLWNvbG9ycykge1xuICAgIEB3YXJuIFwiTGVuZ3RoIG9mICRjb2xvci1lbGVtZW50cyBkb2VzIG5vdCBtYXRjaCBsZW5ndGggb2YgJGNvbG9yLWVsZW1lbnRzLWNvbG9yc1wiO1xufVxuXG5AaWYgbGVuZ3RoKCRzZWN0aW9uLXNlbGVjdG9ycykgIT0gbGVuZ3RoKCRzZWN0aW9uLWJhY2tncm91bmRzKSB7XG4gICAgQHdhcm4gXCJMZW5ndGggb2YgJHNlY3Rpb24tc2VsZWN0b3JzIGRvZXMgbm90IG1hdGNoIGxlbmd0aCBvZiAkc2VjdGlvbi1iYWNrZ3JvdW5kc1wiO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBlbGVtZW50IHdpdGggYSBjb2xvcmVkIGJhY2tncm91bmRcbiAqXG4gKiBUaGlzIG1peGluIG91dHB1dHMgYSBjb2xvciBhbmQgYSBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBcbiAqIEBwYXJhbSAgc3RyaW5nICRjb2xvciAgICAgICAgICAgICAgICAgICAgVGhlIGJhY2tncm91bmQgY29sb3IgeW91IHdhbnQgdG8gdXNlLCBmb3IgaW5zdGFuY2UgI2ZmY2MwMFxuICogQHBhcmFtICBzdHJpbmcgJGZvcmVncm91bmQtY29sb3I6ICNmZmYgICBUaGUgZm9yZWdyb3VuZC90ZXh0IGNvbG9yIHlvdSB3YW50IHRvIHVzZS4gVGhpcyB3aWxsIGhhdmUgYW4gYWNjZXNzaWJsZSBsdW1pbmFuY2UsIGFkanVzdGVkIHRvIHdvcmsgd2l0aCAkY29sb3JcbiAqIEBwYXJhbSAgc3RyaW5nICRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICAgVGhlIGJhY2tncm91bmQgb24gd2hpY2ggdGhlIGVsZW1lbnQgaXMgc2l0dWF0ZWQgKGVsZW1lbnRzIGJhY2tncm91bmQgd2lsbCBiZSBhZGp1c3RlZCB0byBoYXZlIGF0IGxlYXN0IGEgc21hbGwgY29udHJhc3QgdG8gdGhpcylcbiAqL1xuQG1peGluIGNvbG9yZWQtYmctZWxlbWVudCgkY29sb3IsICRmb3JlZ3JvdW5kLWNvbG9yOiAjZmZmLCAkYmFja2dyb3VuZC1jb2xvcjogI2ZmZikge1xuICAgICRjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbG9yLCAkYmFja2dyb3VuZC1jb2xvciwgMS41KTtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRmb3JlZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xufVxuXG4vLyBDYW4gd2UgY29tYmluZSB0aGUgc3R5bGVzIGZvciBzb21lIG9mIHRoZSBoZWFkZXJzIHRvIHJlZHVjZSB0aGUgc2l6ZSBvZiBvdXIgY3NzP1xuJHVuaXF1ZS1zZWN0aW9uczogKCk7XG4kdW5pcXVlLWJhY2tncm91bmRzOiAoKTtcbiR1bmlxdWUtc2VsZWN0b3JzOiAoKTtcbiRzaGFyZWQtc2VjdGlvbnM6ICgpO1xuXG5AZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkc2VjdGlvbi1iYWNrZ3JvdW5kcykge1xuICAgICR0ZXN0aW5nLWJhY2tncm91bmQ6IG50aCgkc2VjdGlvbi1iYWNrZ3JvdW5kcywgJGkpO1xuICAgICRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbmRleCgkdW5pcXVlLWJhY2tncm91bmRzLCAkdGVzdGluZy1iYWNrZ3JvdW5kKTtcbiAgICBcbiAgICBAaWYgJGJhY2tncm91bmQtcG9zaXRpb24gPT0gZmFsc2Ugb3IgJGJhY2tncm91bmQtcG9zaXRpb24gPT0gbnVsbCB7XG4gICAgICAgICR1bmlxdWUtYmFja2dyb3VuZHM6IGFwcGVuZCgkdW5pcXVlLWJhY2tncm91bmRzLCAkdGVzdGluZy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgJHVuaXF1ZS1zZWxlY3RvcnM6IGFwcGVuZCgkdW5pcXVlLXNlbGVjdG9ycywgbnRoKCRzZWN0aW9uLXNlbGVjdG9ycywgJGkpKTtcbiAgICAgICAgJHVuaXF1ZS1zZWN0aW9uczogYXBwZW5kKCR1bmlxdWUtc2VjdGlvbnMsIG50aCgkc2VjdGlvbnMsICRpKSk7XG4gICAgICAgICRzaGFyZWQtc2VjdGlvbnM6IGFwcGVuZCgkc2hhcmVkLXNlY3Rpb25zLCBudGgoJHNlY3Rpb25zLCAkaSkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAkZXhpc3RpbmctYmctcG9zaXRpb246IGluZGV4KCR1bmlxdWUtYmFja2dyb3VuZHMsICR0ZXN0aW5nLWJhY2tncm91bmQpO1xuICAgICAgICAkc2hhcmVkLXNlY3Rpb25zOiBhcHBlbmQoJHNoYXJlZC1zZWN0aW9ucywgbnRoKCR1bmlxdWUtc2VjdGlvbnMsICRleGlzdGluZy1iZy1wb3NpdGlvbikpO1xuICAgIH1cbn1cblxuJGNvbnRlbnQtc2VjdGlvbi1kb25lOiBmYWxzZTtcblxuLy8gT3V0cHV0IHNlY3Rpb25zIHdpdGggdGhlaXIgY29sb3JzLCBib3JkZXJzIGFuZCBiYWNrZ3JvdW5kc1xuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHVuaXF1ZS1zZWN0aW9ucykge1xuICAgICRzZWN0aW9uLWJhY2tncm91bmQ6IG50aCgkdW5pcXVlLWJhY2tncm91bmRzLCAkaSk7XG4gICAgJHNlY3Rpb24tbGluay1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRzZWN0aW9uLWJhY2tncm91bmQpO1xuXG4gICAgLy8gU2V0IHRleHQgY29sb3JcbiAgICAkc2VjdGlvbi10ZXh0LWNvbG9yOiBpZihcbiAgICAgICAgbHVtYSgkc2VjdGlvbi1iYWNrZ3JvdW5kKSA8IDUwLFxuICAgICAgICBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkc2VjdGlvbi1iYWNrZ3JvdW5kKSxcbiAgICAgICAgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkc2VjdGlvbi1iYWNrZ3JvdW5kKVxuICAgICk7XG5cbiAgICAvLyBFbXBoYXNpcyB0ZXh0IGNvbG9yIHNob3VsZCBiZSBvZiBjcmVhdGVyIGNvbnRyYXN0IHRoYW4gdGhlIHRleHQgY29sb3JcbiAgICAkc2VjdGlvbi1lbXBoYXNpcy10ZXh0LWNvbG9yOiBpZihcbiAgICAgICAgbHVtYSgkc2VjdGlvbi10ZXh0LWNvbG9yKSA+IGx1bWEoJHNlY3Rpb24tYmFja2dyb3VuZCksXG4gICAgICAgIGxpZ2h0ZW4oJHNlY3Rpb24tdGV4dC1jb2xvciwgNyUpLFxuICAgICAgICBkYXJrZW4oJHNlY3Rpb24tdGV4dC1jb2xvciwgNyUpXG4gICAgKTtcblxuICAgIC8vIExpbmsgaG92ZXIgY29sb3Igc2hvdWxkIGJlIG9mIGdyZWF0ZXIgY29udHJhc3QgdGhhbiB0aGUgbGluayBjb2xvclxuICAgICRzZWN0aW9uLWxpbmstaG92ZXItY29sb3I6IGlmKFxuICAgICAgICBsdW1hKCRzZWN0aW9uLWxpbmstY29sb3IpID4gbHVtYSgkc2VjdGlvbi1iYWNrZ3JvdW5kKSxcbiAgICAgICAgbGlnaHRlbigkc2VjdGlvbi1saW5rLWNvbG9yLCAxMCUpLFxuICAgICAgICBkYXJrZW4oJHNlY3Rpb24tbGluay1jb2xvciwgMTAlKVxuICAgICk7XG5cbiAgICAlI3tudGgoJHVuaXF1ZS1zZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlcl9fc3VidGxlIHtcbiAgICAgICAgY29sb3I6ICRzZWN0aW9uLXRleHQtY29sb3I7XG4gICAgfVxuXG4gICAgJSN7bnRoKCR1bmlxdWUtc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXJfX25ldXRyYWwtbGluayB7XG4gICAgICAgIGNvbG9yOiAkc2VjdGlvbi10ZXh0LWNvbG9yO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2VjdGlvbi1lbXBoYXNpcy10ZXh0LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJSN7bnRoKCR1bmlxdWUtc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VjdGlvbi1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJHNlY3Rpb24tdGV4dC1jb2xvcjtcblxuICAgICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2VjdGlvbi1lbXBoYXNpcy10ZXh0LWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTGlua3Mgbm90IG9uIGEgY29sb3JlZCBiYWNrZ3JvdW5kIGFuZCBub3Qgc2V0IHRvIG5ldXRyYWwgc2hvdWxkIGJlIGFjY2Vzc2libGVcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tbGluay1jb2xvcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2VjdGlvbi1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnN1YnRsZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3JkZXJlZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgJGJvcmRlci1kZWZhdWx0LW9wYWNpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJvcmRlcmVkLS1oYXJkIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgkc2VjdGlvbi10ZXh0LWNvbG9yLCAkYm9yZGVyLWRlZmF1bHQtaG92ZXItb3BhY2l0eSk7XG4gICAgICAgIH1cblxuICAgICAgICBhLmJvcmRlcmVkOmhvdmVyLFxuICAgICAgICBhLmJvcmRlcmVkOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgkc2VjdGlvbi10ZXh0LWNvbG9yLCAkYm9yZGVyLWhhcmQtb3BhY2l0eSk7XG4gICAgICAgIH1cblxuICAgICAgICBhLmJvcmRlcmVkLS1oYXJkOmhvdmVyLFxuICAgICAgICBhLmJvcmRlcmVkLS1oYXJkOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgkc2VjdGlvbi10ZXh0LWNvbG9yLCAkYm9yZGVyLWhhcmQtaG92ZXItb3BhY2l0eSk7XG4gICAgICAgIH1cblxuICAgICAgICAubmV1dHJhbC1saW5rLFxuICAgICAgICAubmV1dHJhbC1saW5rID4gYSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tdGV4dC1jb2xvcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLWVtcGhhc2lzLXRleHQtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWZpbmUgLnByaW1hcnktY29sb3IsIC5zZWNvbmRhcnktY29sb3IgZXRjLlxuICAgICAgICBAZm9yICRqIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkY29sb3ItZWxlbWVudHMpIHtcbiAgICAgICAgICAgICRjb2xvci1lbGVtZW50LWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShudGgoJGNvbG9yLWVsZW1lbnRzLWNvbG9ycywgJGopLCAkc2VjdGlvbi1iYWNrZ3JvdW5kLCAxLjUpO1xuICAgICAgICAgICAgJGNvbG9yLWVsZW1lbnQtYmctbGluazogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJGNvbG9yLWVsZW1lbnQtYmcpO1xuXG4gICAgICAgICAgICAuI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UobnRoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMsICRqKSwgJHNlY3Rpb24tYmFja2dyb3VuZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE5lZWQgbGVzcyBjb250cmFzdCBhZGp1c3RtZW50IGZvciBpdGVtcyB3aXRoIGxhcmdlIHRleHQgKDE4cHggb3IgbW9yZSlcbiAgICAgICAgICAgIC4je250aCgkY29sb3ItZWxlbWVudHMsICRqKX0tYmlnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UobnRoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMsICRqKSwgJHNlY3Rpb24tYmFja2dyb3VuZCwgMyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4je250aCgkY29sb3ItZWxlbWVudHMsICRqKX0tYmcge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1lbGVtZW50LWJnO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItZWxlbWVudC1iZy1saW5rO1xuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItZWxlbWVudC1iZy1saW5rO1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1lbGVtZW50LWJnLWxpbms7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci1lbGVtZW50LWJnLCAxMCUpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLWVsZW1lbnQtYmctbGluaztcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkY29sb3ItZWxlbWVudC1iZywgMTAlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gRm91bmRhdGlvbiBidXR0b24gY29tcG9uZW50cyB1c2UgcHJpbWFyeSBiZyBieSBkZWZhdWx0IG9uIGJ1dHRvbnNcbiAgICAgICAgYnV0dG9uLCAuYnV0dG9uIHtcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgaG93IHRoZSB2YXJpYWJsZSBpcyBkZWZpbmVkIGludGVybmFsbHkgaW4gRm91bmRhdGlvblxuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgZGVmaW5lIHRoaXMgdmFyaWFibGUgaW4gb3VyIHRoZW1lcyB5ZXQsIHNvIHdlIGhhdmUgaXQgaGVyZSBpZi91bnRpbCB3ZSBkb1xuICAgICAgICAgICAgJGJ1dHRvbi1jb2xvci1iZzogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICRfYnV0dG9uLWNvbG9yLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYnV0dG9uLWNvbG9yLWJnLCAkc2VjdGlvbi1iYWNrZ3JvdW5kLCAxLjUpO1xuICAgICAgICAgICAgJF9idXR0b24tY29sb3ItZm9udDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkX2J1dHRvbi1jb2xvci1iZykgPCA1MCwgI2ZmZiwgIzAwMCksICRfYnV0dG9uLWNvbG9yLWJnKTtcbiAgICAgICAgICAgICRfYnV0dG9uLWhvdmVyLWNvbG9yLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkaG92ZXItY29sb3IsICRfYnV0dG9uLWNvbG9yLWJnLCAxLjI1KSwgJHNlY3Rpb24tYmFja2dyb3VuZCwgMik7XG4gICAgICAgICAgICAkX2J1dHRvbi1ob3Zlci1jb2xvci10ZXh0OiBhY2Nlc3NpYmxlLWx1bWluYW5jZShpZihsdW1hKCRfYnV0dG9uLWhvdmVyLWNvbG9yLWJnKSA8IDUwLCAjZmZmLCAjMDAwKSwgJF9idXR0b24taG92ZXItY29sb3ItYmcpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmLCBcbiAgICAgICAgICAgICYuZGlzYWJsZWQsXG4gICAgICAgICAgICAmLmRpc2FibGVkOmhvdmVyLFxuICAgICAgICAgICAgJi5kaXNhYmxlZDpmb2N1cywgXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICZbZGlzYWJsZWRdOmhvdmVyLFxuICAgICAgICAgICAgJltkaXNhYmxlZF06Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfYnV0dG9uLWNvbG9yLWJnO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkX2J1dHRvbi1jb2xvci1mb250O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYnV0dG9uLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRfYnV0dG9uLWhvdmVyLWNvbG9yLXRleHQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9idXR0b24taG92ZXItY29sb3ItYmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gUGxhY2Vob2xkZXJzIHNlbGVjdG9ycyB5b3UgY2FuIHVzZSB2aWEgQGV4dGVuZCAlPHBsYWNlaG9sZGVyIG5hbWU+IGluIHlvdXIgY29udGVudCBzZWN0aW9uLlxuICAgIEBpZiAkY29udGVudC1zZWN0aW9uLWRvbmUgPT0gZmFsc2UgYW5kICRzZWN0aW9uLWJhY2tncm91bmQgPT0gJGNvbnRlbnQtYmcge1xuICAgICAgICAlY29udGVudF9fYm9yZGVyZWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRzZWN0aW9uLXRleHQtY29sb3IsIDAuMik7XG4gICAgICAgIH1cblxuICAgICAgICAlY29udGVudF9fYm9yZGVyZWQtLWhhcmQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRzZWN0aW9uLXRleHQtY29sb3IsIDAuNSk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIENvbG9yIGVsZW1lbnRzIHBsYWNlaG9sZGVyc1xuICAgICAgICBAZm9yICRqIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkY29sb3ItZWxlbWVudHMpIHtcbiAgICAgICAgICAgICRjb2xvci1lbGVtZW50LWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShudGgoJGNvbG9yLWVsZW1lbnRzLWNvbG9ycywgJGopLCAkY29udGVudC1iZywgMS41KTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJWNvbnRlbnRfXyN7bnRoKCRjb2xvci1lbGVtZW50cywgJGopfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKG50aCgkY29sb3ItZWxlbWVudHMtY29sb3JzLCAkaiksICRjb250ZW50LWJnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJWNvbnRlbnRfXyN7bnRoKCRjb2xvci1lbGVtZW50cywgJGopfS1iaWcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShudGgoJGNvbG9yLWVsZW1lbnRzLWNvbG9ycywgJGopLCAkY29udGVudC1iZywgMyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICVjb250ZW50X18je250aCgkY29sb3ItZWxlbWVudHMsICRqKX0tYmcge1xuICAgICAgICAgICAgICAgICRjb2xvci1lbGVtZW50LWNvbG9yOiBpZihsdW1hKCRjb2xvci1lbGVtZW50LWJnKSA8IDUwLCAjZmZmLCAjMDAwKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZWxlbWVudC1iZztcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbG9yLWVsZW1lbnQtY29sb3IsICRjb2xvci1lbGVtZW50LWJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICRjb250ZW50LXNlY3Rpb24tZG9uZTogdHJ1ZTtcbiAgICB9XG59XG5cbi8vIEVhdGluZyBvdXIgb3duIGRvZ2Zvb2QsIHlvdSBjYW4gQGV4dGVuZCAlY29udGVudC1wbGFjZWhvbGRlciB3aGVyZXZlciB5b3Ugd2FudFxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHNlY3Rpb24tc2VsZWN0b3JzKSB7XG4gICAgXG4gICAgI3tudGgoJHNlY3Rpb24tc2VsZWN0b3JzLCAkaSl9IHtcbiAgICAgICAgQGV4dGVuZCAlI3tudGgoJHNoYXJlZC1zZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBAaWYgbnRoKCRzaGFyZWQtc2VjdGlvbnMsICRpKSAhPSBudGgoJHNlY3Rpb25zLCAkaSkge1xuICAgICAgICAvLyBBbGxvd2luZyBjb21iaW5lZCBwbGFjZWhvbGRlcnMgdG8gYmUgdXNlZFxuICAgICAgICAlI3tudGgoJHNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIEBleHRlbmQgJSN7bnRoKCRzaGFyZWQtc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXI7XG4gICAgICAgIH1cbiAgICAgICAgJSN7bnRoKCRzZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlcl9fc3VidGxlIHtcbiAgICAgICAgICAgIEBleHRlbmQgJSN7bnRoKCRzaGFyZWQtc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXJfX3N1YnRsZTtcbiAgICAgICAgfVxuICAgICAgICAlI3tudGgoJHNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyX19uZXV0cmFsLWxpbmsge1xuICAgICAgICAgICAgQGV4dGVuZCAlI3tudGgoJHNoYXJlZC1zZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlcl9fbmV1dHJhbC1saW5rO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjIgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiQGltcG9ydCBcIm1peGlucy9hY2Nlc3NpYmlsaXR5XCI7XG5AaW1wb3J0IFwibWl4aW5zL2NlbnRlclwiO1xuQGltcG9ydCBcIm1peGlucy9oYWlybGluZS1ib3JkZXJcIjtcbkBpbXBvcnQgXCJtaXhpbnMvbnRoLWNoaWxkcmVuXCI7XG5AaW1wb3J0IFwibWl4aW5zL3RyYW5zZm9ybVwiOyIsIkBtaXhpbiBhY2Nlc3NpYmxlLWhpZGUoKSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbn1cblxuQG1peGluIGFjY2Vzc2libGUtc2hvdygkY2xpcDogYXV0bywgJGhlaWdodDogYXV0bywgJG1hcmdpbjogMCwgJG92ZXJmbG93OiB2aXNpYmxlLCAkcG9zaXRpb246IHJlbGF0aXZlLCAkd2lkdGg6IGF1dG8sICRwYWRkaW5nOiAwLCAkYm9yZGVyOiBub25lKSB7XG4gICAgYm9yZGVyOiAkYm9yZGVyO1xuICAgIGNsaXA6ICRjbGlwO1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICBtYXJnaW46ICRtYXJnaW47XG4gICAgb3ZlcmZsb3c6ICRvdmVyZmxvdztcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuICAgIHdpZHRoOiAkd2lkdGg7XG59IiwiQG1peGluIGNlbnRlcigkeHk6eHkpIHtcbiAgQGlmICR4eSA9PSB4eSB7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogNTAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpKTtcbiAgfVxuICBAZWxzZSBpZiAkeHkgPT0geCB7XG4gICAgbGVmdDogNTAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC01MCUpKTtcbiAgfVxuICBAZWxzZSBpZiAkeHkgPT0geSB7XG4gICAgdG9wOiA1MCU7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgfVxufSIsIi8vIDFweCBvbiByZXRpbmEsIGFuZCAxcHggb24gbm9uLXJldGluYSwgc2luY2UgYm9yZGVyLXdpZHRoOiAwLjVweDsgZG9lcyBub3Qgd29yayBpbiBDU1NcbkBtaXhpbiBoYWlybGluZS1ib3JkZXIoJGhhaXJsaW5lLWNvbG9yLCAkcG9zaXRpb246IHRvcCBsZWZ0LCAkdmVydGljYWw6IGZhbHNlKSB7XG4gICAgXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJHBvc2l0aW9uOyBcbiAgICBAaWYgJHZlcnRpY2FsIHtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC15O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEnIGhlaWdodD0nMTAwJz48cmVjdCBmaWxsPScjeyRoYWlybGluZS1jb2xvcn0nIHg9JzAnIHk9JzAnIHdpZHRoPScwLjUnIGhlaWdodD0nMTAwJy8+PC9zdmc+XCIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTAwJyBoZWlnaHQ9JzEnPjxyZWN0IGZpbGw9JyN7JGhhaXJsaW5lLWNvbG9yfScgeD0nMCcgeT0nMCcgd2lkdGg9JzEwMCcgaGVpZ2h0PScwLjUnLz48L3N2Zz5cIik7XG4gICAgfVxuICAgIFxufSIsIi8vIFVzZSB0aGlzIHRvIHNlbGVjdCBpdGVtcyBkZXBlbmRpbmcgb24gaG93IG1hbnkgc2libGluZ3MgdGhlcmUgYXJlLlxuLy8gVmVyeSB1c2VmdWwgdG8gc3R5bGUgaXRlbXMgZGVwZW5kaW5nIG9uIGhvdyBtYW55IGl0ZW1zIHRoZXJlIGFyZVxuLy8gZm9yIGluc3RhbmNlLCAxIGl0ZW0gbnRoLWNoaWxkcmVuKDEpLCBtb3JlIHRoYW4gNSBudGgtY2hpbGRyZW4oXCJuKzVcIilcblxuQG1peGluIG50aC1jaGlsZHJlbigkbnRoKSB7XG4gICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRudGh9KSxcbiAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JG50aH0pIH4gJiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiIsIkBtaXhpbiB0cmFuc2xhdGUzZCgkdHg6MCwkdHk6MCwkdHo6MCwgJHBlcnNwZWN0aXZlOmZhbHNlKSB7XG4gICAgXG4gICAgQGlmICRwZXJzcGVjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgdHJhbnNsYXRlKCR0eCwkdHkpICRwZXJzcGVjdGl2ZSwgbXMpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlM2QoJHR4LCAkdHksICR0eikgJHBlcnNwZWN0aXZlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCB0cmFuc2xhdGUoJHR4LCR0eSksIG1zKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZTNkKCR0eCwgJHR5LCAkdHopKTtcbiAgICB9XG59IiwiLy8gVmFyaWFibGUgc2V0dGluZ3MgZm9yIC9hZGRvbnMvcHJlZml4ZXIuc2Nzc1xuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0OyAvLyByZXF1aXJlZCBmb3Iga2V5ZnJhbWUgbWl4aW5cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsICRyYWRpaSwgd2Via2l0IG1zIHNwZWMpO1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gVmFyaWFibGVzIGxvY2F0ZWQgaW4gL3NldHRpbmdzL19wcmVmaXhlci5zY3NzXG5cbkBtaXhpbiBwcmVmaXhlciAoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZTtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZTtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZTtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZTtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZTtcbn1cbiIsIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cblxuLy8gT2ZmaWNpYWwgYW5pbWF0aW9uIHNob3J0aGFuZCBwcm9wZXJ0eS5cbkBtaXhpbiBhbmltYXRpb24gKCRhbmltYXRpb25zLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIEluZGl2aWR1YWwgQW5pbWF0aW9uIFByb3BlcnRpZXNcbkBtaXhpbiBhbmltYXRpb24tbmFtZSAoJG5hbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbiAoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uICgkbW90aW9ucy4uLikge1xuLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50ICgkdmFsdWVzLi4uKSB7XG4vLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24gKCRkaXJlY3Rpb25zLi4uKSB7XG4vLyBub3JtYWwgfCBhbHRlcm5hdGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlICgkc3RhdGVzLi4uKSB7XG4vLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZGVsYXkgKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSAoJG1vZGVzLi4uKSB7XG4vLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tmYWNlLXZpc2liaWxpdHkgbWl4aW5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBfYWRkLXByZWZpeCgkaW1hZ2VzLCB3ZWJraXQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBfYWRkLXByZWZpeCgkaW1hZ2VzKTtcbn1cblxuQGZ1bmN0aW9uIF9hZGQtcHJlZml4KCRpbWFnZXMsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRpbWFnZXMtcHJlZml4ZWQ6ICgpO1xuICAkZ3JhZGllbnQtcG9zaXRpb25zOiBmYWxzZTtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGltYWdlcykge1xuICAgICR0eXBlOiB0eXBlLW9mKG50aCgkaW1hZ2VzLCAkaSkpOyAvLyBHZXQgdHlwZSBvZiB2YXJpYWJsZSAtIExpc3Qgb3IgU3RyaW5nXG5cbiAgICAvLyBJZiB2YXJpYWJsZSBpcyBhIGxpc3QgLSBHcmFkaWVudFxuICAgIEBpZiAkdHlwZSA9PSBsaXN0IHtcbiAgICAgICRncmFkaWVudC10eXBlOiBudGgobnRoKCRpbWFnZXMsICRpKSwgMSk7IC8vIGxpbmVhciBvciByYWRpYWxcbiAgICAgICRncmFkaWVudC1wb3M6IG51bGw7XG4gICAgICAkZ3JhZGllbnQtYXJnczogbnVsbDtcblxuICAgICAgQGlmICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpIG9yICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpIHtcbiAgICAgICAgJGdyYWRpZW50LXBvczogIG50aChudGgoJGltYWdlcywgJGkpLCAyKTsgLy8gR2V0IGdyYWRpZW50IHBvc2l0aW9uXG4gICAgICAgICRncmFkaWVudC1hcmdzOiBudGgobnRoKCRpbWFnZXMsICRpKSwgMyk7IC8vIEdldCBhY3R1YWwgZ3JhZGllbnQgKHJlZCwgYmx1ZSlcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJGdyYWRpZW50LWFyZ3M6IG50aChudGgoJGltYWdlcywgJGkpLCAyKTsgLy8gR2V0IGFjdHVhbCBncmFkaWVudCAocmVkLCBibHVlKVxuICAgICAgfVxuXG4gICAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvcyk7XG4gICAgICAkZ3JhZGllbnQ6IF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudC1hcmdzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcik7XG4gICAgICAkaW1hZ2VzLXByZWZpeGVkOiBhcHBlbmQoJGltYWdlcy1wcmVmaXhlZCwgJGdyYWRpZW50LCBjb21tYSk7XG4gICAgfVxuICAgIC8vIElmIHZhcmlhYmxlIGlzIGEgc3RyaW5nIC0gSW1hZ2VcbiAgICBAZWxzZSBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGltYWdlcy1wcmVmaXhlZDogam9pbigkaW1hZ2VzLXByZWZpeGVkLCBudGgoJGltYWdlcywgJGkpLCBjb21tYSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGltYWdlcy1wcmVmaXhlZDtcbn1cblxuLy9FeGFtcGxlczpcbiAgLy9AaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKGxpbmVhci1ncmFkaWVudCh0b3AsIG9yYW5nZSwgcmVkKSk7XG4gIC8vQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShyYWRpYWwtZ3JhZGllbnQoNTAlIDUwJSwgY292ZXIgY2lyY2xlLCBvcmFuZ2UsIHJlZCkpO1xuICAvL0BpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2UodXJsKFwiL2ltYWdlcy9hLnBuZ1wiKSwgbGluZWFyLWdyYWRpZW50KG9yYW5nZSwgcmVkKSk7XG4gIC8vQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIiksIGxpbmVhci1ncmFkaWVudChvcmFuZ2UsIHJlZCksIHVybChcImltYWdlLnBuZ1wiKSk7XG4gIC8vQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShsaW5lYXItZ3JhZGllbnQoaHNsYSgwLCAxMDAlLCAxMDAlLCAwLjI1KSAwJSwgaHNsYSgwLCAxMDAlLCAxMDAlLCAwLjA4KSA1MCUsIHRyYW5zcGFyZW50IDUwJSksIGxpbmVhci1ncmFkaWVudChvcmFuZ2UsIHJlZCkpO1xuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gU2hvcnRoYW5kIEJvcmRlci1yYWRpdXMgbWl4aW5zXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItdG9wLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDAuMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyAgZmxleCB8IGlubGluZS1mbGV4XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgICAgIC8vIDIwMDlcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgICAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAgICAgLy8gMjAxMlxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICAgICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiAkdmFsdWU7XG4gICAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpICAgICAgXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAgIC8vIEFsdCB2YWx1ZXMuXG4gICAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAgICRkaXJlY3Rpb246IFwibm9ybWFsXCI7XG5cbiAgICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gICAgfVxuXG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIEBpZiAkZGlyZWN0aW9uID09IFwicmV2ZXJzZVwiIHtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuXG4gICAgLy8gQWx0IHZhbHVlcy5cbiAgICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCAoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgICAvLyBBbHQgdmFsdWVzLlxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogZW5kO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAgICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogY2VudGVyO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogZW5kO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuICAgIFxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlOyAgICBcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cblxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZTtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZTtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYztcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJEcxLCAkRzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHMzogbnVsbCwgJEc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzU6IG51bGwsICRHNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc3OiBudWxsLCAkRzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHOTogbnVsbCwgJEcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkRzEwOiAkRzk7ICRHOTogJEc4OyAkRzg6ICRHNzsgJEc3OiAkRzY7ICRHNjogJEc1O1xuICAgICAkRzU6ICRHNDsgJEc0OiAkRzM7ICRHMzogJEcyOyAkRzI6ICRHMTsgJEcxOiAkcG9zO1xuICAgICAkcG9zOiBudWxsO1xuICB9XG5cbiAgQGlmICRwb3Mge1xuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xuICAgICRwb3Mtc3BlYzogICBudGgoJHBvc2l0aW9ucywgMik7XG4gIH1cblxuICAkZnVsbDogJEcxLCAkRzIsICRHMywgJEc0LCAkRzUsICRHNiwgJEc3LCAkRzgsICRHOSwgJEcxMDtcblxuICAvLyBTZXQgJEcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRHMSwgMSk7XG5cbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCgjeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XG4vLyAgbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcbi8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXG4vLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlICgkc3R5bGU6IGZsYXQpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxuICAkbmVlZHMtcHJlZml4ZXM6IGZhbHNlO1xuICAkd2Via2l0OiAoKTtcbiAgJG1vejogKCk7XG4gICRzcGVjOiAoKTtcblxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cbiAgQGVhY2ggJGxpc3QgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xuICAgICAgJGxpc3QxOiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XG4gICAgICAkbGlzdDM6ICgpO1xuXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XG5cbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XG4gICAgICAgICAgJGxpc3QyOiBqb2luKCRsaXN0MiwgJHZhcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdDMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcbiAgfSBAZWxzZSB7XG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59IiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xufVxuXG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBBbGVydCBCb3ggVmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1hbGVydC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYWxlcnQgcGFkZGluZy5cbiRhbGVydC1wYWRkaW5nLXRvcDogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJGFsZXJ0LXBhZGRpbmctZGVmYXVsdC1mbG9hdDogJGFsZXJ0LXBhZGRpbmctdG9wICFkZWZhdWx0O1xuJGFsZXJ0LXBhZGRpbmctb3Bwb3NpdGUtZGlyZWN0aW9uOiAkYWxlcnQtcGFkZGluZy10b3AgKyByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kYWxlcnQtcGFkZGluZy1ib3R0b206ICRhbGVydC1wYWRkaW5nLXRvcCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGV4dCBzdHlsZS5cbiRhbGVydC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRhbGVydC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcbiRhbGVydC1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kYWxlcnQtZm9udC1jb2xvci1hbHQ6IHNjYWxlLWNvbG9yKCRzZWNvbmRhcnktY29sb3IsICRsaWdodG5lc3M6IC02NiUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyBmb3IgY2xvc2UgaG92ZXIgZWZmZWN0LlxuJGFsZXJ0LWZ1bmN0aW9uLWZhY3RvcjogLTE0JSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYm9yZGVyIHN0eWxlcy5cbiRhbGVydC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGFsZXJ0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGFsZXJ0LWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHByaW1hcnktY29sb3IsICRsaWdodG5lc3M6ICRhbGVydC1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGFsZXJ0LWJvdHRvbS1tYXJnaW46IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBjbG9zZSBidXR0b25zXG4kYWxlcnQtY2xvc2UtY29sb3I6ICRvaWwgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2UtdG9wOiA1MCUgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2UtcG9zaXRpb246IHJlbS1jYWxjKDQpICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLW9wYWNpdHk6IDAuMyAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1vcGFjaXR5LWhvdmVyOiAwLjUgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2UtcGFkZGluZzogMCA2cHggNHB4ICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLWJhY2tncm91bmQ6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYm9yZGVyIHJhZGl1c1xuJGFsZXJ0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbiRhbGVydC10cmFuc2l0aW9uLXNwZWVkOiAzMDBtcyAhZGVmYXVsdDtcbiRhbGVydC10cmFuc2l0aW9uLWVhc2U6IGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vL1xuLy8gQWxlcnQgTWl4aW5zXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgYSBkZWZhdWx0IGFsZXJ0IGJhc2UuXG5AbWl4aW4gYWxlcnQtYmFzZSB7XG4gIGJvcmRlci1zdHlsZTogJGFsZXJ0LWJvcmRlci1zdHlsZTtcbiAgYm9yZGVyLXdpZHRoOiAkYWxlcnQtYm9yZGVyLXdpZHRoO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6ICRhbGVydC1mb250LXdlaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogJGFsZXJ0LWJvdHRvbS1tYXJnaW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogJGFsZXJ0LXBhZGRpbmctdG9wICRhbGVydC1wYWRkaW5nLW9wcG9zaXRlLWRpcmVjdGlvbiAkYWxlcnQtcGFkZGluZy1ib3R0b20gJGFsZXJ0LXBhZGRpbmctZGVmYXVsdC1mbG9hdDtcbiAgZm9udC1zaXplOiAkYWxlcnQtZm9udC1zaXplO1xuICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihvcGFjaXR5LCAkYWxlcnQtdHJhbnNpdGlvbi1zcGVlZCwgJGFsZXJ0LXRyYW5zaXRpb24tZWFzZSlcbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gYWRkIGFsZXJ0IHN0eWxlc1xuLy9cbi8vICRiZyAtIFRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBhbGVydC4gRGVmYXVsdDogJHByaW1hcnktY29sb3IuXG5AbWl4aW4gYWxlcnQtc3R5bGUoJGJnOiRwcmltYXJ5LWNvbG9yKSB7XG5cbiAgLy8gVGhpcyBmaW5kcyB0aGUgbGlnaHRuZXNzIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG4gICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuXG4gIC8vIFdlIGNvbnRyb2wgd2hpY2ggYmFja2dyb3VuZCBjb2xvciBhbmQgYm9yZGVyIGNvbWUgdGhyb3VnaC5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICBib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRiZywgJGxpZ2h0bmVzczogJGFsZXJ0LWZ1bmN0aW9uLWZhY3Rvcik7XG5cbiAgLy8gV2UgY29udHJvbCB0aGUgdGV4dCBjb2xvciBmb3IgeW91IGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICBAaWYgJGJnLWxpZ2h0bmVzcyA+IDcwJSB7IGNvbG9yOiAkYWxlcnQtZm9udC1jb2xvci1hbHQ7IH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgeyBjb2xvcjogJGFsZXJ0LWZvbnQtY29sb3I7IH1cblxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgdGhlIGNsb3NlIGJ1dHRvbi5cbkBtaXhpbiBhbGVydC1jbG9zZSB7XG4gIGZvbnQtc2l6ZTogJGFsZXJ0LWNsb3NlLWZvbnQtc2l6ZTtcbiAgcGFkZGluZzogJGFsZXJ0LWNsb3NlLXBhZGRpbmc7XG4gIGxpbmUtaGVpZ2h0OiAuOTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICRhbGVydC1jbG9zZS10b3A7XG4gIG1hcmdpbi10b3A6IC0oJGFsZXJ0LWNsb3NlLWZvbnQtc2l6ZSAvIDIpO1xuICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkYWxlcnQtY2xvc2UtcG9zaXRpb247XG4gIGNvbG9yOiAkYWxlcnQtY2xvc2UtY29sb3I7XG4gIG9wYWNpdHk6ICRhbGVydC1jbG9zZS1vcGFjaXR5O1xuICBiYWNrZ3JvdW5kOiAkYWxlcnQtY2xvc2UtYmFja2dyb3VuZDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7IG9wYWNpdHk6ICRhbGVydC1jbG9zZS1vcGFjaXR5LWhvdmVyOyB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHF1aWNrbHkgY3JlYXRlIGFsZXJ0cyB3aXRoIGEgc2luZ2xlIG1peGluLlxuLy9cbi8vICRiZyAtIEJhY2tncm91bmQgb2YgYWxlcnQuIERlZmF1bHQ6ICRwcmltYXJ5LWNvbG9yLlxuLy8gJHJhZGl1cyAtIFJhZGl1cyBvZiBhbGVydCBib3guIERlZmF1bHQ6IGZhbHNlLlxuQG1peGluIGFsZXJ0KCRiZzokcHJpbWFyeS1jb2xvciwgJHJhZGl1czpmYWxzZSkge1xuICBAaW5jbHVkZSBhbGVydC1iYXNlO1xuICBAaW5jbHVkZSBhbGVydC1zdHlsZSgkYmcpO1xuICBAaW5jbHVkZSByYWRpdXMoJHJhZGl1cyk7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJhbGVydC1ib3hcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1hbGVydC1jbGFzc2VzIHtcbiAgICAuYWxlcnQtYm94IHtcbiAgICAgIEBpbmNsdWRlIGFsZXJ0O1xuXG4gICAgICAuY2xvc2UgICAgICB7IEBpbmNsdWRlIGFsZXJ0LWNsb3NlOyB9XG5cbiAgICAgICYucmFkaXVzICAgIHsgQGluY2x1ZGUgcmFkaXVzKCRhbGVydC1yYWRpdXMpOyB9XG4gICAgICAmLnJvdW5kICAgICB7IEBpbmNsdWRlIHJhZGl1cygkZ2xvYmFsLXJvdW5kZWQpOyB9XG5cbiAgICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJHN1Y2Nlc3MtY29sb3IpOyB9XG4gICAgICAmLmFsZXJ0ICAgICB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRhbGVydC1jb2xvcik7IH1cbiAgICAgICYuc2Vjb25kYXJ5IHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJHNlY29uZGFyeS1jb2xvcik7IH1cbiAgICAgICYud2FybmluZyB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCR3YXJuaW5nLWNvbG9yKTsgfVxuICAgICAgJi5pbmZvIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJGluZm8tY29sb3IpOyB9XG4gICAgICAmLmFsZXJ0LWNsb3NlIHsgb3BhY2l0eTogMH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCIuLi9mdW5jdGlvbnNcIjtcbi8vXG4vLyBGb3VuZGF0aW9uIFZhcmlhYmxlc1xuLy9cblxuLy8gRGF0YSBhdHRyaWJ1dGUgbmFtZXNwYWNlXG4vLyBzdHlsZXMgZ2V0IGFwcGxpZWQgdG8gW2RhdGEtbXlzaXRlLXBsdWdpbl0sIGV0Y1xuJG5hbWVzcGFjZTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQtc2l6ZSBpcyBzZXQgdG8gMTAwJSBvZiB0aGUgYnJvd3NlciBzdHlsZSBzaGVldCAodXN1YWxseSAxNnB4KVxuLy8gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBicm93c2VyLWJhc2VkIHRleHQgem9vbSBvciB1c2VyLXNldCBkZWZhdWx0cy5cblxuLy8gU2luY2UgdGhlIHR5cGljYWwgZGVmYXVsdCBicm93c2VyIGZvbnQtc2l6ZSBpcyAxNnB4LCB0aGF0IG1ha2VzIHRoZSBjYWxjdWxhdGlvbiBmb3IgZ3JpZCBzaXplLlxuLy8gSWYgeW91IHdhbnQgeW91ciBiYXNlIGZvbnQtc2l6ZSB0byBiZSBkaWZmZXJlbnQgYW5kIG5vdCBoYXZlIGl0IGFmZmVjdCB0aGUgZ3JpZCBicmVha3BvaW50cyxcbi8vIHNldCAkcmVtLWJhc2UgdG8gJGJhc2UtZm9udC1zaXplIGFuZCBtYWtlIHN1cmUgJGJhc2UtZm9udC1zaXplIGlzIGEgcHggdmFsdWUuXG4kYmFzZS1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vICRiYXNlLWxpbmUtaGVpZ2h0IGlzIDI0cHggd2hpbGUgJGJhc2UtZm9udC1zaXplIGlzIDE2cHhcbiRiYXNlLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vXG4vLyBHbG9iYWwgRm91bmRhdGlvbiBNaXhpbnNcbi8vXG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGJvcmRlciByYWRpdXMuXG4vLyAkcmFkaXVzIC0gRGVmYXVsdDogJGdsb2JhbC1yYWRpdXMgfHwgNHB4XG5AbWl4aW4gcmFkaXVzKCRyYWRpdXM6JGdsb2JhbC1yYWRpdXMpIHtcbiAgQGlmICRyYWRpdXMge1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSBlcXVhbCBzaWRlIGJvcmRlciByYWRpdXMgb24gZWxlbWVudHMuXG4vLyAkc2lkZSAtIE9wdGlvbnM6IGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbVxuQG1peGluIHNpZGUtcmFkaXVzKCRzaWRlLCAkcmFkaXVzOiRnbG9iYWwtcmFkaXVzKSB7XG4gIEBpZiAoJHNpZGUgPT0gbGVmdCBvciAkc2lkZSA9PSByaWdodCkge1xuICAgIC13ZWJraXQtYm9yZGVyLWJvdHRvbS0jeyRzaWRlfS1yYWRpdXM6ICRyYWRpdXM7XG4gICAgLXdlYmtpdC1ib3JkZXItdG9wLSN7JHNpZGV9LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItYm90dG9tLSN7JHNpZGV9LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItdG9wLSN7JHNpZGV9LXJhZGl1czogJHJhZGl1cztcbiAgfSBAZWxzZSB7XG4gICAgLXdlYmtpdC0jeyRzaWRlfS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICAtd2Via2l0LSN7JHNpZGV9LXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItI3skc2lkZX0tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLSN7JHNpZGV9LXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgY2FuIGNvbnRyb2wgd2hldGhlciBvciBub3Qgd2UgaGF2ZSBpbnNldCBzaGFkb3dzIGVkZ2VzLlxuLy8gJGFjdGl2ZSAtIERlZmF1bHQ6IHRydWUsIE9wdGlvbnM6IGZhbHNlXG5AbWl4aW4gaW5zZXQtc2hhZG93KCRhY3RpdmU6dHJ1ZSkge1xuICBib3gtc2hhZG93OiAkc2hpbnktZWRnZS1zaXplICRzaGlueS1lZGdlLWNvbG9yIGluc2V0O1xuXG4gIEBpZiAkYWN0aXZlIHsgJjphY3RpdmUge1xuICAgIGJveC1zaGFkb3c6ICRzaGlueS1lZGdlLXNpemUgJHNoaW55LWVkZ2UtYWN0aXZlLWNvbG9yIGluc2V0OyB9IH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGFkZCB0cmFuc2l0aW9ucyB0byBlbGVtZW50c1xuLy8gJHByb3BlcnR5IC0gRGVmYXVsdDogYWxsLCBPcHRpb25zOiBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXRyYW5zaXRpb25zLyNhbmltYXRhYmxlLXByb3BlcnRpZXNcbi8vICRzcGVlZCAtIERlZmF1bHQ6IDMwMG1zXG4vLyAkZWFzZSAtIERlZmF1bHQ6ZWFzZS1vdXQsIE9wdGlvbnM6IGh0dHA6Ly9jc3MtdHJpY2tzLmNvbS9hbG1hbmFjL3Byb3BlcnRpZXMvdC90cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbi9cbkBtaXhpbiBzaW5nbGUtdHJhbnNpdGlvbigkcHJvcGVydHk6YWxsLCAkc3BlZWQ6MzAwbXMsICRlYXNlOmVhc2Utb3V0KSB7XG4gIHRyYW5zaXRpb246ICRwcm9wZXJ0eSAkc3BlZWQgJGVhc2U7XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBhZGQgYm94LXNpemluZyBhY3Jvc3MgYnJvd3NlciBwcmVmaXhlc1xuQG1peGluIGJveC1zaXppbmcoJHR5cGU6Ym9yZGVyLWJveCkge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICR0eXBlOyAvLyBBbmRyb2lkIDwgMi4zLCBpT1MgPCA0XG4gICAgIC1tb3otYm94LXNpemluZzogJHR5cGU7IC8vIEZpcmVmb3ggPCAyOVxuICAgICAgICAgIGJveC1zaXppbmc6ICR0eXBlOyAvLyBDaHJvbWUsIElFIDgrLCBPcGVyYSwgU2FmYXJpIDUuMVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGlzb3NjZWxlcyB0cmlhbmdsZXNcbi8vICR0cmlhbmdsZS1zaXplIC0gVXNlZCB0byBzZXQgYm9yZGVyLXNpemUuIE5vIGRlZmF1bHQsIHNldCBhIHB4IG9yIGVtIHNpemUuXG4vLyAkdHJpYW5nbGUtY29sb3IgLSBVc2VkIHRvIHNldCBib3JkZXItY29sb3Igd2hpY2ggbWFrZXMgdXAgdHJpYW5nbGUuIE5vIGRlZmF1bHRcbi8vICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBVc2VkIHRvIGRldGVybWluZSB3aGljaCBkaXJlY3Rpb24gdHJpYW5nbGUgcG9pbnRzLiBPcHRpb25zOiB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHRcbkBtaXhpbiBjc3MtdHJpYW5nbGUoJHRyaWFuZ2xlLXNpemUsICR0cmlhbmdsZS1jb2xvciwgJHRyaWFuZ2xlLWRpcmVjdGlvbikge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHRvcCkge1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBib3R0b20pIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgdGhlIGljb24gd2l0aCB0aHJlZSBsaW5lcyBha2EgdGhlIGhhbWJ1cmdlciBpY29uLCB0aGUgbWVudS1pY29uIG9yIHRoZSBuYXZpY29uXG4vLyAkd2lkdGggLSBXaWR0aCBvZiBoYW1idXJnZXIgaWNvbiBpbiByZW1cbi8vICRsZWZ0IC0gSWYgZmFsc2UsIGljb24gd2lsbCBiZSBjZW50ZXJlZCBob3Jpem9udGFsbHkgfHwgZXhwbGljaXRseSBzZXQgdmFsdWUgaW4gcmVtXG4vLyAkdG9wIC0gSWYgZmFsc2UsIGljb24gd2lsbCBiZSBjZW50ZXJlZCB2ZXJ0aWNhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbVxuLy8gJHRoaWNrbmVzcyAtIHRoaWNrbmVzcyBvZiBsaW5lcyBpbiBoYW1idXJnZXIgaWNvbiwgc2V0IHZhbHVlIGluIHB4XG4vLyAkZ2FwIC0gc3BhY2luZyBiZXR3ZWVuIHRoZSBsaW5lcyBpbiBoYW1idXJnZXIgaWNvbiwgc2V0IHZhbHVlIGluIHB4XG4vLyAkY29sb3IgLSBpY29uIGNvbG9yXG4vLyAkaG92ZXItY29sb3IgLSBpY29uIGNvbG9yIGR1cmluZyBob3ZlclxuLy8gJG9mZmNhbnZhcyAtIFNldCB0byB0cnVlIG9mIEBpbmNsdWRlIGluIG9mZmNhbnZhc1xuQG1peGluIGhhbWJ1cmdlcigkd2lkdGgsICRsZWZ0LCAkdG9wLCAkdGhpY2tuZXNzLCAkZ2FwLCAkY29sb3IsICRob3Zlci1jb2xvciwgJG9mZmNhbnZhcykge1xuICBzcGFuOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuXG4gICAgQGlmICRvZmZjYW52YXMge1xuICAgICAgQGlmICR0b3Age1xuICAgICAgICB0b3A6ICR0b3A7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSR3aWR0aC8yKTtcbiAgICAgIH1cbiAgICAgIEBpZiAkbGVmdCB7XG4gICAgICAgIGxlZnQ6ICRsZWZ0O1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiAoJHRhYmJhci1tZW51LWljb24td2lkdGggLSAkd2lkdGgpLzI7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLSgkd2lkdGgvMik7XG4gICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OlxuICAgICAgMCAwIDAgJHRoaWNrbmVzcyAkY29sb3IsXG4gICAgICAwICRnYXAgKyAkdGhpY2tuZXNzIDAgJHRoaWNrbmVzcyAkY29sb3IsXG4gICAgICAwICgyICogJGdhcCArIDIqJHRoaWNrbmVzcykgMCAkdGhpY2tuZXNzICRjb2xvcjtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9XG4gIHNwYW46aG92ZXI6YWZ0ZXIge1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAwIDAgMCAkdGhpY2tuZXNzICRob3Zlci1jb2xvcixcbiAgICAgIDAgJGdhcCArICR0aGlja25lc3MgMCAkdGhpY2tuZXNzICRob3Zlci1jb2xvcixcbiAgICAgIDAgKDIgKiAkZ2FwICsgMiokdGhpY2tuZXNzKSAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yO1xuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGRvIGNsZWFyIGZsb2F0c1xuQG1peGluIGNsZWFyZml4IHtcbiAgJjpiZWZvcmUsICY6YWZ0ZXIgeyBjb250ZW50OiBcIiBcIjsgZGlzcGxheTogdGFibGU7IH1cbiAgJjphZnRlciB7IGNsZWFyOiBib3RoOyB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBhZGQgYSBnbG93aW5nIGVmZmVjdCB0byBibG9jayBlbGVtZW50c1xuLy8gJHNlbGVjdG9yIC0gVXNlZCBmb3Igc2VsZWN0b3Igc3RhdGUuIERlZmF1bHQ6IGZvY3VzLCBPcHRpb25zOiBob3ZlciwgYWN0aXZlLCB2aXNpdGVkXG4vLyAkZmFkZS10aW1lIC0gRGVmYXVsdDogMzAwbXNcbi8vICRnbG93aW5nLWVmZmVjdC1jb2xvciAtIERlZmF1bHQ6IGZhZGUtb3V0KCRwcmltYXJ5LWNvbG9yLCAuMjUpXG5AbWl4aW4gYmxvY2stZ2xvd2luZy1lZmZlY3QoJHNlbGVjdG9yOmZvY3VzLCAkZmFkZS10aW1lOjMwMG1zLCAkZ2xvd2luZy1lZmZlY3QtY29sb3I6ZmFkZS1vdXQoJHByaW1hcnktY29sb3IsIC4yNSkpIHtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAkZmFkZS10aW1lLCBib3JkZXItY29sb3IgJGZhZGUtdGltZSBlYXNlLWluLW91dDtcblxuICAmOiN7JHNlbGVjdG9yfSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAkZ2xvd2luZy1lZmZlY3QtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkZ2xvd2luZy1lZmZlY3QtY29sb3I7XG4gIH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIHRyYW5zbGF0ZSBlbGVtZW50cyBpbiAyRFxuLy8gJGhvcml6b250YWw6IERlZmF1bHQ6IDBcbi8vICR2ZXJ0aWNhbDogRGVmYXVsdDogMFxuQG1peGluIHRyYW5zbGF0ZTJkKCRob3Jpem9udGFsOjAsICR2ZXJ0aWNhbDowKSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKCRob3Jpem9udGFsLCR2ZXJ0aWNhbClcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgYWNjZXNzaWJsZS5cbi8vIEBzZWUgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4O1xuICB3aWR0aDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBUdXJucyBvZmYgdGhlIGVsZW1lbnQtaW52aXNpYmxlIGVmZmVjdC5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xufVxuXG4kd2hpdGUgICAgICAgICA6ICNGRkZGRkYgIWRlZmF1bHQ7XG4kZ2hvc3QgICAgICAgICA6ICNGQUZBRkEgIWRlZmF1bHQ7XG4kc25vdyAgICAgICAgICA6ICNGOUY5RjkgIWRlZmF1bHQ7XG4kdmFwb3IgICAgICAgICA6ICNGNkY2RjYgIWRlZmF1bHQ7XG4kd2hpdGUtc21va2UgICA6ICNGNUY1RjUgIWRlZmF1bHQ7XG4kc2lsdmVyICAgICAgICA6ICNFRkVGRUYgIWRlZmF1bHQ7XG4kc21va2UgICAgICAgICA6ICNFRUVFRUUgIWRlZmF1bHQ7XG4kZ2FpbnNib3JvICAgICA6ICNEREREREQgIWRlZmF1bHQ7XG4kaXJvbiAgICAgICAgICA6ICNDQ0NDQ0MgIWRlZmF1bHQ7XG4kYmFzZSAgICAgICAgICA6ICNBQUFBQUEgIWRlZmF1bHQ7XG4kYWx1bWludW0gICAgICA6ICM5OTk5OTkgIWRlZmF1bHQ7XG4kanVtYm8gICAgICAgICA6ICM4ODg4ODggIWRlZmF1bHQ7XG4kbW9uc29vbiAgICAgICA6ICM3Nzc3NzcgIWRlZmF1bHQ7XG4kc3RlZWwgICAgICAgICA6ICM2NjY2NjYgIWRlZmF1bHQ7XG4kY2hhcmNvYWwgICAgICA6ICM1NTU1NTUgIWRlZmF1bHQ7XG4kdHVhdGFyYSAgICAgICA6ICM0NDQ0NDQgIWRlZmF1bHQ7XG4kb2lsICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG4kamV0ICAgICAgICAgICA6ICMyMjIyMjIgIWRlZmF1bHQ7XG4kYmxhY2sgICAgICAgICA6ICMwMDAwMDAgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSBhcyBkZWZhdWx0IGNvbG9ycyB0aHJvdWdob3V0XG4kcHJpbWFyeS1jb2xvcjogIzAwOENCQSAhZGVmYXVsdDsgICAvLyBib25kaS1ibHVlXG4kc2Vjb25kYXJ5LWNvbG9yOiAjZTdlN2U3ICFkZWZhdWx0OyAvLyB3aGl0ZS1saWxhY1xuJGFsZXJ0LWNvbG9yOiAjZjA0MTI0ICFkZWZhdWx0OyAgICAgLy8gY2lubmFiYXJcbiRzdWNjZXNzLWNvbG9yOiAjNDNBQzZBICFkZWZhdWx0OyAgIC8vIHNlYS1ncmVlblxuJHdhcm5pbmctY29sb3I6ICNmMDhhMjQgIWRlZmF1bHQ7ICAgLy8gY2Fycm90XG4kaW5mby1jb2xvcjogI2EwZDNlOCAhZGVmYXVsdDsgICAgICAvLyBjb3JuZmxvd2VyXG5cbi8vIFdlIHVzZSB0aGVzZSB0byBkZWZpbmUgZGVmYXVsdCBmb250IHN0YWNrc1xuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LXNlcmlmOiBHZW9yZ2lhLCBDYW1icmlhLCBcIlRpbWVzIE5ldyBSb21hblwiLCBUaW1lcywgc2VyaWYgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gZGVmaW5lIGRlZmF1bHQgZm9udCB3ZWlnaHRzXG4kZm9udC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG4kZm9udC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdmFyaW91cyBnbG9iYWwgc3R5bGVzXG4kYm9keS1iZzogI2ZmZiAhZGVmYXVsdDtcbiRib2R5LWZvbnQtY29sb3I6ICMyMjIgIWRlZmF1bHQ7XG4kYm9keS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kYm9keS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRib2R5LWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBmb250LXNtb290aGluZ1xuJGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGV4dCBkaXJlY3Rpb24gc2V0dGluZ3NcbiR0ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuJGRlZmF1bHQtZmxvYXQ6IGxlZnQgIWRlZmF1bHQ7XG4kb3Bwb3NpdGUtZGlyZWN0aW9uOiByaWdodCAhZGVmYXVsdDtcbkBpZiAkdGV4dC1kaXJlY3Rpb24gPT0gbHRyIHtcbiAgJGRlZmF1bHQtZmxvYXQ6IGxlZnQ7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0O1xufSBAZWxzZSB7XG4gICRkZWZhdWx0LWZsb2F0OiByaWdodDtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogbGVmdDtcbn1cblxuLy8gV2UgdXNlIHRoZXNlIHRvIG1ha2Ugc3VyZSBib3JkZXIgcmFkaXVzIG1hdGNoZXMgdW5sZXNzIHdlIHdhbnQgaXQgZGlmZmVyZW50LlxuJGdsb2JhbC1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRnbG9iYWwtcm91bmRlZDogMTAwMHB4ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBpbnNldCBzaGFkb3cgc2hpbnkgZWRnZXMgYW5kIGRlcHJlc3Npb25zLlxuJHNoaW55LWVkZ2Utc2l6ZTogMCAxcHggMCAhZGVmYXVsdDtcbiRzaGlueS1lZGdlLWNvbG9yOiByZ2JhKCNmZmYsIC41KSAhZGVmYXVsdDtcbiRzaGlueS1lZGdlLWFjdGl2ZS1jb2xvcjogcmdiYSgjMDAwLCAuMikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgd2hldGhlciBvciBub3QgQ1NTIGNsYXNzZXMgY29tZSB0aHJvdWdoIGluIHRoZSBnZW0gZmlsZXMuXG4kaW5jbHVkZS1odG1sLWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kaW5jbHVkZS1wcmludC1zdHlsZXM6IHRydWUgIWRlZmF1bHQ7XG4kaW5jbHVkZS1odG1sLWdsb2JhbC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbiRjb2x1bW4tZ3V0dGVyOiByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG5cbi8vIE1lZGlhIFF1ZXJ5IFJhbmdlc1xuJHNtYWxsLXJhbmdlOiAoMCwgNDBlbSkgIWRlZmF1bHQ7XG4kbWVkaXVtLXJhbmdlOiAoNDAuMDYzZW0sIDY0ZW0pICFkZWZhdWx0O1xuJGxhcmdlLXJhbmdlOiAoNjQuMDYzZW0sIDkwZW0pICFkZWZhdWx0O1xuJHhsYXJnZS1yYW5nZTogKDkwLjA2M2VtLCAxMjBlbSkgIWRlZmF1bHQ7XG4keHhsYXJnZS1yYW5nZTogKDEyMC4wNjNlbSwgOTk5OTk5OTllbSkgIWRlZmF1bHQ7XG5cblxuJHNjcmVlbjogXCJvbmx5IHNjcmVlblwiICFkZWZhdWx0O1xuXG4kbGFuZHNjYXBlOiBcIiN7JHNjcmVlbn0gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKVwiICFkZWZhdWx0O1xuJHBvcnRyYWl0OiBcIiN7JHNjcmVlbn0gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpXCIgIWRlZmF1bHQ7XG5cbiRzbWFsbC11cDogJHNjcmVlbiAhZGVmYXVsdDtcbiRzbWFsbC1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJHNtYWxsLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiRtZWRpdW0tdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiRtZWRpdW0tb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIiAhZGVmYXVsdDtcblxuJGxhcmdlLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiRsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcblxuJHhsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJHhsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4keHhsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiR4eGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcblxuLy8gTGVnYWN5XG4kc21hbGw6ICRtZWRpdW0tdXA7XG4kbWVkaXVtOiAkbWVkaXVtLXVwO1xuJGxhcmdlOiAkbGFyZ2UtdXA7XG5cblxuLy9XZSB1c2UgdGhpcyBhcyBjdXJzb3JzIHZhbHVlcyBmb3IgZW5hYmxpbmcgdGhlIG9wdGlvbiBvZiBoYXZpbmcgY3VzdG9tIGN1cnNvcnMgaW4gdGhlIHdob2xlIHNpdGUncyBzdHlsZXNoZWV0XG4kY3Vyc29yLWF1dG8tdmFsdWU6IGF1dG8gIWRlZmF1bHQ7XG4kY3Vyc29yLWNyb3NzaGFpci12YWx1ZTogY3Jvc3NoYWlyICFkZWZhdWx0O1xuJGN1cnNvci1kZWZhdWx0LXZhbHVlOiBkZWZhdWx0ICFkZWZhdWx0O1xuJGN1cnNvci1kaXNhYmxlZC12YWx1ZTogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG4kY3Vyc29yLXBvaW50ZXItdmFsdWU6IHBvaW50ZXIgIWRlZmF1bHQ7XG4kY3Vyc29yLWhlbHAtdmFsdWU6IGhlbHAgIWRlZmF1bHQ7XG4kY3Vyc29yLXRleHQtdmFsdWU6IHRleHQgIWRlZmF1bHQ7XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcImdsb2JhbFwiKSB7XG5cbiAgLy8gTWV0YSBzdHlsZXMgYXJlIGluY2x1ZGVkIGluIGFsbCBidWlsZHMsIGFzIHRoZXkgYXJlIGEgZGVwZW5kYW5jeSBvZiB0aGUgSmF2YXNjcmlwdC5cbiAgLy8gVXNlZCB0byBwcm92aWRlIG1lZGlhIHF1ZXJ5IHZhbHVlcyBmb3IgamF2YXNjcmlwdCBjb21wb25lbnRzLlxuICAvLyBGb3J3YXJkIHNsYXNoIHBsYWNlZCBhcm91bmQgZXZlcnl0aGluZyB0byBjb252aW5jZSBQaGFudG9tSlMgdG8gcmVhZCB0aGUgdmFsdWUuXG5cbiAgbWV0YS5mb3VuZGF0aW9uLXZlcnNpb24ge1xuICAgIGZvbnQtZmFtaWx5OiBcIi81LjUuMS9cIjtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1zbWFsbCB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkc21hbGwtdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRzbWFsbC1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEtc21hbGwtb25seSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkc21hbGwtb25seSkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJHNtYWxsLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1tZWRpdW0ge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJG1lZGl1bS11cCkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEtbWVkaXVtLW9ubHkge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJG1lZGl1bS1vbmx5KSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1sYXJnZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkbGFyZ2UtdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEtbGFyZ2Utb25seSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkbGFyZ2Utb25seSkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS14bGFyZ2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHhsYXJnZS11cCkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEteGxhcmdlLW9ubHkge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHhsYXJnZS1vbmx5KSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS14eGxhcmdlIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCR4eGxhcmdlLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkeHhsYXJnZS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tZGF0YS1hdHRyaWJ1dGUtbmFtZXNwYWNlIHtcbiAgICBmb250LWZhbWlseTogI3skbmFtZXNwYWNlfTtcbiAgfVxuXG4gIEBpZiAkaW5jbHVkZS1odG1sLWdsb2JhbC1jbGFzc2VzIHtcblxuICAgIC8vIE11c3QgYmUgMTAwJSBmb3Igb2ZmIGNhbnZhcyB0byB3b3JrXG4gICAgaHRtbCwgYm9keSB7IGhlaWdodDogMTAwJTsgfVxuXG4gICAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgICAqLFxuICAgICo6YmVmb3JlLFxuICAgICo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICB9XG5cbiAgICBodG1sLFxuICAgIGJvZHkgeyBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTsgfVxuXG4gICAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICAgIGJvZHkge1xuICAgICAgYmFja2dyb3VuZDogJGJvZHktYmc7XG4gICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgICBmb250LXdlaWdodDogJGJvZHktZm9udC13ZWlnaHQ7XG4gICAgICBmb250LXN0eWxlOiAkYm9keS1mb250LXN0eWxlO1xuICAgICAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0OyAvLyBTZXQgdG8gJGJhc2UtbGluZS1oZWlnaHQgdG8gdGFrZSBvbiBicm93c2VyIGRlZmF1bHQgb2YgMTUwJVxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgY3Vyc29yOiAkY3Vyc29yLWF1dG8tdmFsdWU7XG4gICAgfVxuXG4gIGE6aG92ZXIgeyBjdXJzb3I6ICRjdXJzb3ItcG9pbnRlci12YWx1ZTsgfVxuXG4gICAgLy8gR3JpZCBEZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyB9XG5cbiAgICBpbWcgeyAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljOyB9XG5cbiAgICAjbWFwX2NhbnZhcyxcbiAgICAubWFwX2NhbnZhcyB7XG4gICAgICBpbWcsXG4gICAgICBlbWJlZCxcbiAgICAgIG9iamVjdCB7IG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1pc2NlbGxhbmVvdXMgdXNlZnVsIEhUTUwgY2xhc3Nlc1xuICAgIC5sZWZ0IHsgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgfVxuICAgIC5yaWdodCB7IGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XG4gICAgLmNsZWFyZml4IHsgQGluY2x1ZGUgY2xlYXJmaXg7IH1cblxuICAgIC8vIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVuIHJlYWRlcnNcbiAgICAuaGlkZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8vIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVuIHJlYWRlcnMsIGJ1dCBtYWludGFpbiBsYXlvdXRcbiAgICAuaW52aXNpYmxlIHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbiAgICAvLyBGb250IHNtb290aGluZ1xuICAgIC8vIEFudGlhbGlhc2VkIGZvbnQgc21vb3RoaW5nIHdvcmtzIGJlc3QgZm9yIGxpZ2h0IHRleHQgb24gYSBkYXJrIGJhY2tncm91bmQuXG4gICAgLy8gQXBwbHkgdG8gc2luZ2xlIGVsZW1lbnRzIGluc3RlYWQgb2YgZ2xvYmFsbHkgdG8gYm9keS5cbiAgICAvLyBOb3RlIHRoaXMgb25seSBhcHBsaWVzIHRvIHdlYmtpdC1iYXNlZCBkZXNrdG9wIGJyb3dzZXJzIGFuZCBGaXJlZm94IDI1IChhbmQgbGF0ZXIpIG9uIHRoZSBNYWMuXG4gICAgLmFudGlhbGlhc2VkIHsgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAvL1xuICAgIC8vIEdsb2JhbCByZXNldHMgZm9yIGZvcm1zXG4gICAgLy9cblxuICAgIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICAgIHRleHRhcmVhIHsgaGVpZ2h0OiBhdXRvOyBtaW4taGVpZ2h0OiA1MHB4OyB9XG5cbiAgICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyAxMDAlIHdpZHRoIGJ5IGRlZmF1bHRcbiAgICBzZWxlY3QgeyB3aWR0aDogMTAwJTsgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBUaGlzIGlzIHRoZSBkZWZhdWx0IGh0bWwgYW5kIGJvZHkgZm9udC1zaXplIGZvciB0aGUgYmFzZSByZW0gdmFsdWUuXG4kcmVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG5cbi8vIElNUE9SVCBPTkNFXG4vLyBXZSB1c2UgdGhpcyB0byBwcmV2ZW50IHN0eWxlcyBmcm9tIGJlaW5nIGxvYWRlZCBtdWx0aXBsZSB0aW1lcyBmb3IgY29tcG9uZW50cyB0aGF0IHJlbHkgb24gb3RoZXIgY29tcG9uZW50cy5cbiRtb2R1bGVzOiAoKSAhZGVmYXVsdDtcbkBtaXhpbiBleHBvcnRzKCRuYW1lKSB7XG4gIC8vIEltcG9ydCBmcm9tIGdsb2JhbCBzY29wZVxuICAkbW9kdWxlczogJG1vZHVsZXMgIWdsb2JhbDtcbiAgLy8gQ2hlY2sgaWYgYSBtb2R1bGUgaXMgYWxyZWFkeSBvbiB0aGUgbGlzdFxuICAkbW9kdWxlX2luZGV4OiBpbmRleCgkbW9kdWxlcywgJG5hbWUpO1xuICBAaWYgKCgkbW9kdWxlX2luZGV4ID09IG51bGwpIG9yICgkbW9kdWxlX2luZGV4ID09IGZhbHNlKSkge1xuICAgICRtb2R1bGVzOiBhcHBlbmQoJG1vZHVsZXMsICRuYW1lKSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vXG4vLyBAZnVuY3Rpb25zXG4vL1xuXG5cbi8vIFJBTkdFU1xuLy8gV2UgdXNlIHRoZXNlIGZ1bmN0aW9ucyB0byBkZWZpbmUgcmFuZ2VzIGZvciB2YXJpb3VzIHRoaW5ncywgbGlrZSBtZWRpYSBxdWVyaWVzLlxuQGZ1bmN0aW9uIGxvd2VyLWJvdW5kKCRyYW5nZSl7XG4gIEBpZiBsZW5ndGgoJHJhbmdlKSA8PSAwIHtcbiAgICBAcmV0dXJuIDA7XG4gIH1cbiAgQHJldHVybiBudGgoJHJhbmdlLDEpO1xufVxuXG5AZnVuY3Rpb24gdXBwZXItYm91bmQoJHJhbmdlKSB7XG4gIEBpZiBsZW5ndGgoJHJhbmdlKSA8IDIge1xuICAgIEByZXR1cm4gOTk5OTk5OTk5OTk5O1xuICB9XG4gIEByZXR1cm4gbnRoKCRyYW5nZSwgMik7XG59XG5cbi8vIFNUUklQIFVOSVRcbi8vIEl0IHN0cmlwcyB0aGUgdW5pdCBvZiBtZWFzdXJlIGFuZCByZXR1cm5zIGl0XG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLyBURVhUIElOUFVUIFRZUEVTXG5cbkBmdW5jdGlvbiB0ZXh0LWlucHV0cyggJHR5cGVzOiBhbGwsICRzZWxlY3RvcjogaW5wdXQgKSB7XG5cbiAgICAkcmV0dXJuOiAoKTtcblxuICAgICRhbGwtdGV4dC1pbnB1dC10eXBlczpcbiAgICAgIHRleHRcbiAgICAgIHBhc3N3b3JkXG4gICAgICBkYXRlXG4gICAgICBkYXRldGltZVxuICAgICAgZGF0ZXRpbWUtbG9jYWxcbiAgICAgIG1vbnRoXG4gICAgICB3ZWVrXG4gICAgICBlbWFpbFxuICAgICAgbnVtYmVyXG4gICAgICBzZWFyY2hcbiAgICAgIHRlbFxuICAgICAgdGltZVxuICAgICAgdXJsXG4gICAgICBjb2xvclxuICAgICAgdGV4dGFyZWE7XG5cbiAgICBAaWYgJHR5cGVzID09IGFsbCB7ICR0eXBlczogJGFsbC10ZXh0LWlucHV0LXR5cGVzOyB9XG5cbiAgICBAZWFjaCAkdHlwZSBpbiAkdHlwZXMge1xuICAgICAgICBAaWYgJHR5cGUgPT0gdGV4dGFyZWEge1xuICAgICAgICAgICAgQGlmICRzZWxlY3RvciA9PSBpbnB1dCB7XG4gICAgICAgICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyR0eXBlfScpLCBjb21tYSlcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnI3skdHlwZX0jeyRzZWxlY3Rvcn0nKSwgY29tbWEpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHNlbGVjdG9yfVt0eXBlPVwiI3skdHlwZX1cIl0nKSwgY29tbWEpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXR1cm47XG5cbn1cblxuLy8gQ09OVkVSVCBUTyBSRU1cbkBmdW5jdGlvbiBjb252ZXJ0LXRvLXJlbSgkdmFsdWUsICRiYXNlLXZhbHVlOiAkcmVtLWJhc2UpICB7XG4gICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZS12YWx1ZSkgKiAxcmVtO1xuICBAaWYgKCR2YWx1ZSA9PSAwcmVtKSB7ICR2YWx1ZTogMDsgfSAvLyBUdXJuIDByZW0gaW50byAwXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gZGF0YSgkYXR0cikge1xuICBAaWYgJG5hbWVzcGFjZSB7XG4gICAgQHJldHVybiAnW2RhdGEtJyArICRuYW1lc3BhY2UgKyAnLScgKyAkYXR0ciArICddJztcbiAgfVxuXG4gIEByZXR1cm4gJ1tkYXRhLScgKyAkYXR0ciArICddJztcbn1cblxuLy8gUkVNIENBTENcblxuLy8gTmV3IFN5bnRheCwgYWxsb3dzIHRvIG9wdGlvbmFsbHkgY2FsY3VsYXRlIG9uIGEgZGlmZmVyZW50IGJhc2UgdmFsdWUgdG8gY291bnRlciBjb21wb3VuZGluZyBlZmZlY3Qgb2YgcmVtJ3MuXG4vLyBDYWxsIHdpdGggMSwgMiwgMyBvciA0IHBhcmFtZXRlcnMsICdweCcgaXMgbm90IHJlcXVpcmVkIGJ1dCBzdXBwb3J0ZWQ6XG4vL1xuLy8gICByZW0tY2FsYygxMCAyMCAzMHB4IDQwKTtcbi8vXG4vLyBTcGFjZSBkZWxpbWl0ZWQsIGlmIHlvdSB3YW50IHRvIGRlbGltaXQgdXNpbmcgY29tbWEncywgd3JhcCBpdCBpbiBhbm90aGVyIHBhaXIgb2YgYnJhY2tldHNcbi8vXG4vLyAgIHJlbS1jYWxjKCgxMCwgMjAsIDMwLCA0MHB4KSk7XG4vL1xuLy8gT3B0aW9uYWxseSBjYWxsIHdpdGggYSBkaWZmZXJlbnQgYmFzZSAoZWc6IDhweCkgdG8gY2FsY3VsYXRlIHJlbS5cbi8vXG4vLyAgIHJlbS1jYWxjKDE2cHggMzJweCA0OHB4LCA4cHgpO1xuLy9cbi8vIElmIHlvdSByZXF1aXJlIHRvIGNvbW1hIHNlcGFyYXRlIHlvdXIgbGlzdFxuLy9cbi8vICAgcmVtLWNhbGMoKDE2cHgsIDMycHgsIDQ4KSwgOHB4KTtcblxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlLXZhbHVlOiAkcmVtLWJhc2UpIHtcbiAgJG1heDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIEBpZiAkbWF4ID09IDEgeyBAcmV0dXJuIGNvbnZlcnQtdG8tcmVtKG50aCgkdmFsdWVzLCAxKSwgJGJhc2UtdmFsdWUpOyB9XG5cbiAgJHJlbVZhbHVlczogKCk7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1heCB7XG4gICAgJHJlbVZhbHVlczogYXBwZW5kKCRyZW1WYWx1ZXMsIGNvbnZlcnQtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlLXZhbHVlKSk7XG4gIH1cbiAgQHJldHVybiAkcmVtVmFsdWVzO1xufVxuXG4vLyBPTEQgRU0gQ0FMQ1xuLy8gRGVwcmVjYXRlZDogV2UnbGwgZHJvcCBzdXBwb3J0IGZvciB0aGlzIGluIDUuMS4wLCB1c2UgcmVtLWNhbGMoKVxuQGZ1bmN0aW9uIGVtQ2FsYygkdmFsdWVzKXtcbiAgQHJldHVybiByZW0tY2FsYygkdmFsdWVzKTtcbn1cblxuLy8gT0xEIEVNIENBTENcbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEuMCwgdXNlIHJlbS1jYWxjKClcbkBmdW5jdGlvbiBlbS1jYWxjKCR2YWx1ZXMpe1xuICBAcmV0dXJuIHJlbS1jYWxjKCR2YWx1ZXMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQmxvY2sgR3JpZCBWYXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWJsb2NrLWdyaWQtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuJGluY2x1ZGUteGwtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBtYXhpbXVtIG51bWJlciBvZiBibG9jayBncmlkIGVsZW1lbnRzIHBlciByb3dcbiRibG9jay1ncmlkLWVsZW1lbnRzOiAxMiAhZGVmYXVsdDtcbiRibG9jay1ncmlkLWRlZmF1bHQtc3BhY2luZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4kYWxpZ24tYmxvY2stZ3JpZC10by1ncmlkOiBmYWxzZSAhZGVmYXVsdDtcbkBpZiAkYWxpZ24tYmxvY2stZ3JpZC10by1ncmlkIHtcbiAgJGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nOiAkY29sdW1uLWd1dHRlcjtcbn1cblxuLy8gRW5hYmxlcyBtZWRpYSBxdWVyaWVzIGZvciBibG9jay1ncmlkIGNsYXNzZXMuIFNldCB0byBmYWxzZSBpZiB3cml0aW5nIHNlbWFudGljIEhUTUwuXG4kYmxvY2stZ3JpZC1tZWRpYS1xdWVyaWVzOiB0cnVlICFkZWZhdWx0O1xuXG4vL1xuLy8gQmxvY2sgR3JpZCBNaXhpbnNcbi8vXG5cbi8vIENyZWF0ZSBhIGN1c3RvbSBibG9jayBncmlkXG4vL1xuLy8gJHBlci1yb3cgLSAjIG9mIGl0ZW1zIHRvIGRpc3BsYXkgcGVyIHJvdy4gRGVmYXVsdDogZmFsc2UuXG4vLyAkc3BhY2luZyAtICMgb2YgZW1zIHRvIHVzZSBhcyBwYWRkaW5nIG9uIGVhY2ggYmxvY2sgaXRlbS4gRGVmYXVsdDogcmVtLWNhbGMoMjApLlxuLy8gJGluY2x1ZGUtc3BhY2luZyAtIEFkZHMgcGFkZGluZyB0byBvdXIgbGlzdCBpdGVtLiBEZWZhdWx0OiB0cnVlLlxuLy8gJGJhc2Utc3R5bGUgLSBBcHBseSBhIGJhc2Ugc3R5bGUgdG8gYmxvY2sgZ3JpZC4gRGVmYXVsdDogdHJ1ZS5cbkBtaXhpbiBibG9jay1ncmlkKFxuICAkcGVyLXJvdzpmYWxzZSxcbiAgJHNwYWNpbmc6JGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nLFxuICAkaW5jbHVkZS1zcGFjaW5nOnRydWUsXG4gICRiYXNlLXN0eWxlOnRydWUpIHtcblxuICBAaWYgJGJhc2Utc3R5bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgQGlmICRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luOiAwICgtJHNwYWNpbmcvMik7XG4gICAgfVxuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gICAgJj5saSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgIEBpZiAkaW5jbHVkZS1zcGFjaW5nIHtcbiAgICAgICAgcGFkZGluZzogMCAoJHNwYWNpbmcvMikgJHNwYWNpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRwZXItcm93IHtcbiAgICAmPmxpIHtcbiAgICAgIHdpZHRoOiAxMDAlLyRwZXItcm93O1xuICAgICAgQGlmICRpbmNsdWRlLXNwYWNpbmcge1xuICAgICAgICBwYWRkaW5nOiAwICgkc3BhY2luZy8yKSAkc3BhY2luZztcbiAgICAgIH1cbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICY6bnRoLW9mLXR5cGUoMW4pIHsgY2xlYXI6IG5vbmU7IH1cbiAgICAgICY6bnRoLW9mLXR5cGUoI3skcGVyLXJvd31uKzEpIHsgY2xlYXI6IGJvdGg7IH1cbiAgICAgIEBpZiAkYWxpZ24tYmxvY2stZ3JpZC10by1ncmlkIHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1hbGlnbmVkKCRwZXItcm93LCAkc3BhY2luZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBibG9jay1ncmlkLWFsaWduZWQoJHBlci1yb3csICRzcGFjaW5nKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtZWxlbWVudHMge1xuICAgIEBpZiAkcGVyLXJvdyA+PSAkaSB7XG4gICAgICAkZ3JpZC1jb2x1bW46ICcrJyArICRpO1xuICAgICAgQGlmICRwZXItcm93ID09ICRpIHtcbiAgICAgICAgJGdyaWQtY29sdW1uOiAnJztcbiAgICAgIH1cbiAgICAgICY6bnRoLW9mLXR5cGUoI3skcGVyLXJvd31uI3t1bnF1b3RlKCRncmlkLWNvbHVtbil9KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogKCRzcGFjaW5nIC0gKCgkc3BhY2luZyAvICRwZXItcm93KSAqICgkcGVyLXJvdyAtICgkaSAtIDEpKSkpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAoJHNwYWNpbmcgLSAoKCRzcGFjaW5nIC8gJHBlci1yb3cpICogJGkpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gR2VuZXJhdGUgcHJlc2VudGF0aW9uYWwgbWFya3VwIGZvciBibG9jayBncmlkLlxuLy9cbi8vICRzaXplIC0gTmFtZSBvZiBjbGFzcyB0byB1c2UsIGkuZS4gXCJsYXJnZVwiIHdpbGwgZ2VuZXJhdGUgLmxhcmdlLWJsb2NrLWdyaWQtMSwgLmxhcmdlLWJsb2NrLWdyaWQtMiwgZXRjLlxuQG1peGluIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplLCRpbmNsdWRlLXNwYWNpbmcpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1lbGVtZW50cyB7XG4gICAgLiN7JHNpemV9LWJsb2NrLWdyaWQtI3soJGkpfSB7XG4gICAgICBAaW5jbHVkZSBibG9jay1ncmlkKCRpLCRibG9jay1ncmlkLWRlZmF1bHQtc3BhY2luZywkaW5jbHVkZS1zcGFjaW5nLGZhbHNlKTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImJsb2NrLWdyaWRcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXMge1xuXG4gICAgW2NsYXNzKj1cImJsb2NrLWdyaWQtXCJdIHsgQGluY2x1ZGUgYmxvY2stZ3JpZDsgfVxuXG4gICAgQGlmICRibG9jay1ncmlkLW1lZGlhLXF1ZXJpZXMge1xuICAgICAgQG1lZGlhICN7JHNtYWxsLXVwfSB7XG4gICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnNtYWxsLCRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOm1lZGl1bSwkaW5jbHVkZS1zcGFjaW5nOmZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOmxhcmdlLCRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBAaWYgJGluY2x1ZGUteGwtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXMge1xuICAgICAgICBAbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eGxhcmdlLCRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICN7JHh4bGFyZ2UtdXB9IHtcbiAgICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4eGxhcmdlLCRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBCcmVhZGNydW1iIFZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtbmF2LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgYnJlYWRjcnVtYiBjb250YWluZXIuXG4kY3J1bWItYmc6IHNjYWxlLWNvbG9yKCRzZWNvbmRhcnktY29sb3IsICRsaWdodG5lc3M6IDU1JSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzZXQgdGhlIHBhZGRpbmcgYXJvdW5kIHRoZSBicmVhZGNydW1icy5cbiRjcnVtYi1wYWRkaW5nOiByZW0tY2FsYyg5IDE0IDkpICFkZWZhdWx0O1xuJGNydW1iLXNpZGUtcGFkZGluZzogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBib3JkZXIgc3R5bGVzLlxuJGNydW1iLWZ1bmN0aW9uLWZhY3RvcjogLTEwJSAhZGVmYXVsdDtcbiRjcnVtYi1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJGNydW1iLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kY3J1bWItYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkY3J1bWItYmcsICRsaWdodG5lc3M6ICRjcnVtYi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGNydW1iLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzZXQgdmFyaW91cyB0ZXh0IHN0eWxlcyBmb3IgYnJlYWRjcnVtYnMuXG4kY3J1bWItZm9udC1zaXplOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1jb2xvci1jdXJyZW50OiAkb2lsICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtY29sb3ItdW5hdmFpbGFibGU6ICRhbHVtaW51bSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJGNydW1iLWxpbmstZGVjb3I6IHVuZGVybGluZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHNsYXNoIGJldHdlZW4gYnJlYWRjcnVtYnNcbiRjcnVtYi1zbGFzaC1jb2xvcjogJGJhc2UgIWRlZmF1bHQ7XG4kY3J1bWItc2xhc2g6IFwiL1wiICFkZWZhdWx0O1xuXG4vL1xuLy8gQnJlYWRjcnVtYiBNaXhpbnNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBhIGNvbnRhaW5lciBhcm91bmQgb3VyIGJyZWFkY3J1bWJzXG5AbWl4aW4gY3J1bWItY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRjcnVtYi1wYWRkaW5nO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJvcmRlci1zdHlsZTogJGNydW1iLWJvcmRlci1zdHlsZTtcbiAgYm9yZGVyLXdpZHRoOiAkY3J1bWItYm9yZGVyLXNpemU7XG5cbiAgLy8gV2UgY29udHJvbCB3aGljaCBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBib3JkZXIgY29tZSB0aHJvdWdoLlxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3J1bWItYmc7XG4gIGJvcmRlci1jb2xvcjogJGNydW1iLWJvcmRlci1jb2xvcjtcbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGJyZWFkY3J1bWIgc3R5bGVzIGZyb20gbGlzdCBpdGVtcy5cbkBtaXhpbiBjcnVtYnMge1xuXG4gIC8vIEEgbm9ybWFsIHN0YXRlIHdpbGwgbWFrZSB0aGUgbGlua3MgbG9vayBhbmQgYWN0IGxpa2UgY2xpY2thYmxlIGJyZWFkY3J1bWJzLlxuICBtYXJnaW46IDA7XG4gIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgZm9udC1zaXplOiAkY3J1bWItZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJGNydW1iLWZvbnQtc2l6ZTtcbiAgdGV4dC10cmFuc2Zvcm06ICRjcnVtYi1mb250LXRyYW5zZm9ybTtcbiAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yO1xuXG4gICY6aG92ZXIgYSwgJjpmb2N1cyBhIHsgdGV4dC1kZWNvcmF0aW9uOiAkY3J1bWItbGluay1kZWNvcjsgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIEN1cnJlbnQgaXMgZm9yIHRoZSBsaW5rIG9mIHRoZSBjdXJyZW50IHBhZ2VcbiAgJi5jdXJyZW50IHtcbiAgICBjdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZTtcbiAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItY3VycmVudDtcbiAgICBhIHtcbiAgICAgIGN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlO1xuICAgICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yLWN1cnJlbnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlciwgJjpob3ZlciBhLFxuICAgICY6Zm9jdXMsICY6Zm9jdXMgYSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICB9XG5cbiAgLy8gVW5hdmFpbGFibGUgcmVtb3ZlZCBjb2xvciBhbmQgbGluayBzdHlsZXMgc28gaXQgbG9va3MgaW5hY3RpdmUuXG4gICYudW5hdmFpbGFibGUge1xuICAgIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvci11bmF2YWlsYWJsZTtcbiAgICBhIHsgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yLXVuYXZhaWxhYmxlOyB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6aG92ZXIgYSxcbiAgICAmOmZvY3VzLFxuICAgIGE6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yLXVuYXZhaWxhYmxlO1xuICAgICAgY3Vyc29yOiAkY3Vyc29yLWRpc2FibGVkLXZhbHVlO1xuICAgIH1cbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIiN7JGNydW1iLXNsYXNofVwiO1xuICAgIGNvbG9yOiAkY3J1bWItc2xhc2gtY29sb3I7XG4gICAgbWFyZ2luOiAwICRjcnVtYi1zaWRlLXBhZGRpbmc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYnJlYWRjcnVtYnNcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1uYXYtY2xhc3NlcyB7XG4gICAgLmJyZWFkY3J1bWJzIHtcbiAgICAgIEBpbmNsdWRlIGNydW1iLWNvbnRhaW5lcjtcbiAgICAgIEBpbmNsdWRlIHJhZGl1cygkY3J1bWItcmFkaXVzKTtcblxuICAgICAgJj4qIHtcbiAgICAgICAgQGluY2x1ZGUgY3J1bWJzO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiBBY2Nlc3NpYmlsaXR5IC0gaGlkZXMgdGhlIGZvcndhcmQgc2xhc2ggKi9cblthcmlhLWxhYmVsPVwiYnJlYWRjcnVtYnNcIl0gW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiL1wiO1xuICB9XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiYnV0dG9uc1wiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtZm9ybS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgYmFzZSBmb3IgbG90cyBvZiBmb3JtIHNwYWNpbmcgYW5kIHBvc2l0aW9uaW5nIHN0eWxlc1xuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGxhYmVscyBpbiBkaWZmZXJlbnQgd2F5c1xuJGZvcm0tbGFiZWwtcG9pbnRlcjogcG9pbnRlciAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGJsYWNrLCAkbGlnaHRuZXNzOiAzMCUpICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtc21hbGwtdHJhbnNmb3JtOiBjYXBpdGFsaXplICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtYm90dG9tLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcbiRpbnB1dC1mb250LWNvbG9yOiByZ2JhKDAsMCwwLDAuNzUpICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJGlucHV0LWJnLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kaW5wdXQtZm9jdXMtYmctY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTIlKSAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTIwJSkgIWRlZmF1bHQ7XG4kaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC00MCUpICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG4kaW5wdXQtZGlzYWJsZWQtYmc6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG4kaW5wdXQtZGlzYWJsZWQtY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWUgIWRlZmF1bHQ7XG4kaW5wdXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4xKSAhZGVmYXVsdDtcbiRpbnB1dC1pbmNsdWRlLWdsb3dpbmctZWZmZWN0OiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBmaWVsZHNldCBib3JkZXIgYW5kIHNwYWNpbmcuXG4kZmllbGRzZXQtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRmaWVsZHNldC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRmaWVsZHNldC1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgbGVnZW5kcyB3aGVuIHlvdSB1c2UgdGhlbVxuJGxlZ2VuZC1iZzogJHdoaXRlICFkZWZhdWx0O1xuJGxlZ2VuZC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgcHJlZml4IGFuZCBwb3N0Zml4IGlucHV0IGVsZW1lbnRzXG4kaW5wdXQtcHJlZml4LWJnOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC01JSkgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMjAlKSAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyLXR5cGU6IHNvbGlkICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1vdmVyZmxvdzogdmlzaWJsZSAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtZm9udC1jb2xvcjogJG9pbCAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtZm9udC1jb2xvci1hbHQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgc2V0dGluZyB0byB0dXJuIG9uL29mZiBIVE1MNSBudW1iZXIgc3Bpbm5lcnMgKHRoZSB1cC9kb3duIGFycm93cylcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgZXJyb3Igc3RhdGVzIGZvciBpbnB1dHMgYW5kIGxhYmVsc1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtcGFkZGluZzogcmVtLWNhbGMoNiA5IDkpICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtdG9wOiAtMXB4ICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWJnLWNvbG9yOiAkYWxlcnQtY29sb3IgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yLWFsdDogJG9pbCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc3R5bGUgdGhlIGdsb3dpbmcgZWZmZWN0IG9mIGlucHV0cyB3aGVuIGZvY3VzZWRcbiRnbG93aW5nLWVmZmVjdC1mYWRlLXRpbWU6IDAuNDVzICFkZWZhdWx0O1xuJGdsb3dpbmctZWZmZWN0LWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4vLyBTZWxlY3QgdmFyaWFibGVzXG4kc2VsZWN0LWJnLWNvbG9yOiAkZ2hvc3QgIWRlZmF1bHQ7XG4kc2VsZWN0LWhvdmVyLWJnLWNvbG9yOiBzY2FsZS1jb2xvcigkc2VsZWN0LWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAtMyUpICFkZWZhdWx0O1xuXG4vL1xuLy8gQE1JWElOU1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gZ2l2ZSB1cyBmb3JtIHN0eWxlcyBmb3Igcm93cyBpbnNpZGUgb2YgZm9ybXNcbkBtaXhpbiBmb3JtLXJvdy1iYXNlIHtcbiAgLnJvdyB7IG1hcmdpbjogMCAoKC0kZm9ybS1zcGFjaW5nKSAvIDIpO1xuXG4gICAgLmNvbHVtbixcbiAgICAuY29sdW1ucyB7IHBhZGRpbmc6IDAgKCRmb3JtLXNwYWNpbmcgLyAyKTsgfVxuXG4gICAgLy8gVXNlIHRoaXMgdG8gY29sbGFwc2UgdGhlIG1hcmdpbnMgb2YgYSBmb3JtIHJvd1xuICAgICYuY29sbGFwc2UgeyBtYXJnaW46IDA7XG5cbiAgICAgIC5jb2x1bW4sXG4gICAgICAuY29sdW1ucyB7IHBhZGRpbmc6IDA7IH1cbiAgICAgIGlucHV0IHtcbiAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgMCk7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cbiAgaW5wdXQuY29sdW1uLFxuICBpbnB1dC5jb2x1bW5zLFxuICB0ZXh0YXJlYS5jb2x1bW4sXG4gIHRleHRhcmVhLmNvbHVtbnMgeyBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAoJGZvcm0tc3BhY2luZyAvIDIpOyB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGdpdmUgYWxsIGJhc2ljIGZvcm0gZWxlbWVudHMgdGhlaXIgc3R5bGVcbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmctY29sb3I7XG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGJvcmRlcjoge1xuICAgIHN0eWxlOiAkaW5wdXQtYm9yZGVyLXN0eWxlO1xuICAgIHdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoO1xuICAgIGNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICB9XG4gIGJveC1zaGFkb3c6ICRpbnB1dC1ib3gtc2hhZG93O1xuICBjb2xvcjogJGlucHV0LWZvbnQtY29sb3I7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmcgMDtcbiAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4gIGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG4gIHdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICBAaWYgJGlucHV0LWluY2x1ZGUtZ2xvd2luZy1lZmZlY3Qge1xuICAgIEBpbmNsdWRlIGJsb2NrLWdsb3dpbmctZWZmZWN0KGZvY3VzLCAkZ2xvd2luZy1lZmZlY3QtZmFkZS10aW1lLCAkZ2xvd2luZy1lZmZlY3QtY29sb3IpO1xuICB9XG4gIC8vIEJhc2ljIGZvY3VzIHN0eWxlc1xuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtZm9jdXMtYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbiAgLy8gRGlzYmFsZWQgU3R5bGVzXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1iZztcbiAgICBjdXJzb3I6ICRpbnB1dC1kaXNhYmxlZC1jdXJzb3I7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBiYWNrZ3JvdW5kIGlucHV0IGJhY2tncm91bmQgY29sb3JcbiAgJltkaXNhYmxlZF0sXG4gICZbcmVhZG9ubHldLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWRpc2FibGVkLWJnO1xuICAgIGN1cnNvcjogJGlucHV0LWRpc2FibGVkLWN1cnNvcjtcbiAgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgZm9ybSBsYWJlbHNcbi8vXG4vLyAkYWxpZ25tZW50IC0gQWxpZ25tZW50IG9wdGlvbnMuIERlZmF1bHQ6IGZhbHNlLiBPcHRpb25zOiBbcmlnaHQsIGlubGluZSwgZmFsc2VdXG4vLyAkYmFzZS1zdHlsZSAtIENvbnRyb2wgd2hldGhlciBvciBub3QgdGhlIGJhc2Ugc3R5bGVzIGNvbWUgdGhyb3VnaC4gRGVmYXVsdDogdHJ1ZS5cbkBtaXhpbiBmb3JtLWxhYmVsKCRhbGlnbm1lbnQ6ZmFsc2UsICRiYXNlLXN0eWxlOnRydWUpIHtcblxuICAvLyBDb250cm9sIHdoZXRoZXIgb3Igbm90IHRoZSBiYXNlIHN0eWxlcyBjb21lIHRocm91Z2guXG4gIEBpZiAkYmFzZS1zdHlsZSB7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gICAgY29sb3I6ICRmb3JtLWxhYmVsLWZvbnQtY29sb3I7XG4gICAgY3Vyc29yOiAkZm9ybS1sYWJlbC1wb2ludGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tbGFiZWwtYm90dG9tLW1hcmdpbjtcbiAgfVxuXG4gIC8vIEFsaWdubWVudCBvcHRpb25zXG4gIEBpZiAkYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gaW5saW5lIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XG4gICAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSAwO1xuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBwb3N0Zml4L3ByZWZpeCBmb3JtIExhYmVsc1xuQG1peGluIHByZWZpeC1wb3N0Zml4LWJhc2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGJvcmRlci1zdHlsZTogJGlucHV0LXByZWZpeC1ib3JkZXItdHlwZTtcbiAgYm9yZGVyLXdpZHRoOiAkaW5wdXQtcHJlZml4LWJvcmRlci1zaXplO1xuICBvdmVyZmxvdzogJGlucHV0LXByZWZpeC1vdmVyZmxvdztcbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG4gIGxpbmUtaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIHByZWZpeCBsYWJlbCBzdHlsZXNcbi8vICRiZyAtIERlZmF1bHQ6JGlucHV0LXByZWZpeC1iZyB8fCBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC01JSkgIWRlZmF1bHQ7XG4vLyAkaXMtYnV0dG9uIC0gVG9nZ2xlIHBvc2l0aW9uIHNldHRpbmdzIGlmIHByZWZpeCBpcyBhIGJ1dHRvbi4gRGVmYXVsdDpmYWxzZVxuLy9cbkBtaXhpbiBwcmVmaXgoJGJnOiRpbnB1dC1wcmVmaXgtYmcsICRib3JkZXI6JGlucHV0LXByZWZpeC1ib3JkZXItY29sb3IsICRpcy1idXR0b246ZmFsc2UpIHtcblxuICBAaWYgJGJnIHtcbiAgICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcbiAgICBiYWNrZ3JvdW5kOiAkYmc7XG4gICAgYm9yZGVyLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IG5vbmU7XG5cbiAgICAvLyBDb250cm9sIHRoZSBmb250IGNvbG9yIGJhc2VkIG9uIGJhY2tncm91bmQgYnJpZ2h0bmVzc1xuICAgIEBpZiAkYmctbGlnaHRuZXNzID4gNzAlIG9yICRiZyA9PSB5ZWxsb3cgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yOyB9XG4gICAgQGVsc2UgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDsgfVxuICB9XG5cbiAgQGlmICRib3JkZXIge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgfVxuXG4gIEBpZiAkaXMtYnV0dG9uIHtcbiAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIHBvc3RmaXggbGFiZWwgc3R5bGVzXG4vLyAkYmcgLSBEZWZhdWx0OiRpbnB1dC1wcmVmaXgtYmcgfHwgc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNSUpICFkZWZhdWx0O1xuLy8gJGlzLWJ1dHRvbiAtIFRvZ2dsZSBwb3NpdGlvbiBzZXR0aW5ncyBpZiBwcmVmaXggaXMgYSBidXR0b24uIERlZmF1bHQ6IGZhbHNlXG5AbWl4aW4gcG9zdGZpeCgkYmc6JGlucHV0LXByZWZpeC1iZywgJGJvcmRlcjokaW5wdXQtcHJlZml4LWJvcmRlci1jb2xvciwgJGlzLWJ1dHRvbjpmYWxzZSkge1xuXG4gIEBpZiAkYmcge1xuICAgICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICAgIGJhY2tncm91bmQ6ICRiZztcbiAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH06IG5vbmU7XG5cbiAgICAvLyBDb250cm9sIHRoZSBmb250IGNvbG9yIGJhc2VkIG9uIGJhY2tncm91bmQgYnJpZ2h0bmVzc1xuICAgIEBpZiAkYmctbGlnaHRuZXNzID4gNzAlICBvciAkYmcgPT0geWVsbG93IHsgY29sb3I6ICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvcjsgfVxuICAgIEBlbHNlIHsgY29sb3I6ICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvci1hbHQ7IH1cbiAgfVxuXG4gIEBpZiAkYm9yZGVyIHtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gIH1cblxuICBAaWYgJGlzLWJ1dHRvbiB7XG4gICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuXG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIHN0eWxlIGZpZWxkc2V0c1xuQG1peGluIGZpZWxkc2V0IHtcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyLXdpZHRoICRmaWVsZHNldC1ib3JkZXItc3R5bGUgJGZpZWxkc2V0LWJvcmRlci1jb2xvcjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcblxuICAvLyBhbmQgbGVnZW5kIHN0eWxlc1xuICBsZWdlbmQge1xuICAgIGZvbnQtd2VpZ2h0OiAkbGVnZW5kLWZvbnQtd2VpZ2h0O1xuICAgIGJhY2tncm91bmQ6ICRsZWdlbmQtYmc7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IHJlbS1jYWxjKC0zKTtcbiAgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjb250cm9sIGJvcmRlciBhbmQgYmFja2dyb3VuZCBjb2xvciBvZiBlcnJvciBpbnB1dHNcbi8vICRjb2xvciAtIERlZmF1bHQ6ICRhbGVydC1jb2xvciAoZm91bmQgaW4gc2V0dGluZ3MgZmlsZSlcbkBtaXhpbiBmb3JtLWVycm9yLWNvbG9yKCRjb2xvcjokYWxlcnQtY29sb3IpIHtcbiAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGNvbG9yLCAwLjEpO1xuXG4gIC8vIEdvIGJhY2sgdG8gbm9ybWFsIG9uIGZvY3VzXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1mb2N1cy1iZy1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I7XG4gIH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgc2ltcGxlIG1peGluIHRvIHN0eWxlIGxhYmVscyBmb3IgZXJyb3IgaW5wdXRzXG4vLyAkY29sb3IgLSBEZWZhdWx0OiRhbGVydC1jb2xvci4gRm91bmQgaW4gc2V0dGluZ3MgZmlsZVxuQG1peGluIGZvcm0tbGFiZWwtZXJyb3ItY29sb3IoJGNvbG9yOiRhbGVydC1jb2xvcikgeyBjb2xvcjogJGNvbG9yOyB9XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBlcnJvciBtZXNzYWdlIHN0eWxlc1xuLy8gJGJnIC0gRGVmYXVsdDogJGFsZXJ0LWNvbG9yIChGb3VuZCBpbiBzZXR0aW5ncyBmaWxlKVxuQG1peGluIGZvcm0tZXJyb3ItbWVzc2FnZSgkYmc6JGlucHV0LWVycm9yLW1lc3NhZ2UtYmctY29sb3IpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRpbnB1dC1lcnJvci1tZXNzYWdlLXBhZGRpbmc7XG4gIG1hcmdpbi10b3A6ICRpbnB1dC1lcnJvci1tZXNzYWdlLXRvcDtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXdlaWdodDtcbiAgZm9udC1zdHlsZTogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1zdHlsZTtcblxuICAvLyBXZSBjYW4gY29udHJvbCB0aGUgdGV4dCBjb2xvciBiYXNlZCBvbiB0aGUgYnJpZ2h0bmVzcyBvZiB0aGUgYmFja2dyb3VuZC5cbiAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG4gIGJhY2tncm91bmQ6ICRiZztcbiAgQGlmICRiZy1saWdodG5lc3MgPCA3MCUgb3IgJGJnID09IHllbGxvdyB7IGNvbG9yOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yOyB9XG4gIEBlbHNlIHsgY29sb3I6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtY29sb3ItYWx0OyB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIHN0eWxlIHNlbGVjdCBlbGVtZW50c1xuQG1peGluIGZvcm0tc2VsZWN0ICB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJnLWNvbG9yO1xuXG4gIC8vIEhpZGUgdGhlIGRyb3Bkb3duIGFycm93IHNob3duIGluIG5ld2VyIElFIHZlcnNpb25zXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBUaGUgY3VzdG9tIGFycm93IGhhcyBzb21lIGZha2UgaG9yaXpvbnRhbCBwYWRkaW5nIHNvIHdlIGNhbiBhbGlnbiBpdFxuICAvLyBmcm9tIHRoZSByaWdodCBzaWRlIG9mIHRoZSBlbGVtZW50IHdpdGhvdXQgcmVseWluZyBvbiBDU1MzXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpsY25OcGIyNDlJakV1TVNJZ2VEMGlNVEp3ZUNJZ2VUMGlNSEI0SWlCM2FXUjBhRDBpTWpSd2VDSWdhR1ZwWjJoMFBTSXpjSGdpSUhacFpYZENiM2c5SWpBZ01DQTJJRE1pSUdWdVlXSnNaUzFpWVdOclozSnZkVzVrUFNKdVpYY2dNQ0F3SURZZ015SWdlRzFzT25Od1lXTmxQU0p3Y21WelpYSjJaU0krUEhCdmJIbG5iMjRnY0c5cGJuUnpQU0kxTGprNU1pd3dJREl1T1RreUxETWdMVEF1TURBNExEQWdJaTgrUEM5emRtYyspO1xuXG4gIC8vIFdlIGNhbiBzYWZlbHkgdXNlIGxlZnRtb3N0IGFuZCByaWdodG1vc3Qgbm93XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGlmKCR0ZXh0LWRpcmVjdGlvbiA9PSAncnRsJywgMCUsIDEwMCUpIGNlbnRlcjtcblxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBib3JkZXI6IHtcbiAgICBzdHlsZTogJGlucHV0LWJvcmRlci1zdHlsZTtcbiAgICB3aWR0aDogJGlucHV0LWJvcmRlci13aWR0aDtcbiAgICBjb2xvcjogJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgfVxuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIpO1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgY29sb3I6ICRpbnB1dC1mb250LWNvbG9yO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBAaW5jbHVkZSByYWRpdXMoMCk7XG4gICYucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRnbG9iYWwtcmFkaXVzKTsgfVxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWhvdmVyLWJnLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgfVxuICAvLyBEaXNhYmxlZCBTdHlsZXNcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWRpc2FibGVkLWJnO1xuICAgIGN1cnNvcjogJGlucHV0LWRpc2FibGVkLWN1cnNvcjtcbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byB0dXJuIG9uL29mZiBIVE1MNSBudW1iZXIgc3Bpbm5lcnNcbkBtaXhpbiBodG1sNW51bWJlcigkYnJvd3NlciwgJG9uOnRydWUpIHtcbiAgQGlmICRvbj09ZmFsc2Uge1xuICAgICAgQGlmICRicm93c2VyPT13ZWJraXQge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH0gQGVsc2UgaWYgJGJyb3dzZXI9PW1veiB7XG4gICAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAgICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJmb3JtXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtZm9ybS1jbGFzc2VzIHtcbiAgICAvKiBTdGFuZGFyZCBGb3JtcyAqL1xuICAgIGZvcm0geyBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nOyB9XG5cbiAgICAvKiBVc2luZyBmb3JtcyB3aXRoaW4gcm93cywgd2UgbmVlZCB0byBzZXQgc29tZSBkZWZhdWx0cyAqL1xuICAgIGZvcm0gLnJvdyB7IEBpbmNsdWRlIGZvcm0tcm93LWJhc2U7IH1cblxuICAgIC8qIExhYmVsIFN0eWxlcyAqL1xuICAgIGxhYmVsIHsgQGluY2x1ZGUgZm9ybS1sYWJlbDtcbiAgICAgICYucmlnaHQgeyBAaW5jbHVkZSBmb3JtLWxhYmVsKHJpZ2h0LGZhbHNlKTsgfVxuICAgICAgJi5pbmxpbmUgeyBAaW5jbHVkZSBmb3JtLWxhYmVsKGlubGluZSxmYWxzZSk7IH1cbiAgICAgIC8qIFN0eWxlcyBmb3IgcmVxdWlyZWQgaW5wdXRzICovXG4gICAgICBzbWFsbCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZm9ybS1sYWJlbC1zbWFsbC10cmFuc2Zvcm07XG4gICAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkZm9ybS1sYWJlbC1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAxNSUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIEF0dGFjaCBlbGVtZW50cyB0byB0aGUgYmVnaW5uaW5nIG9yIGVuZCBvZiBhbiBpbnB1dCAqL1xuICAgIC5wcmVmaXgsXG4gICAgLnBvc3RmaXggeyBAaW5jbHVkZSBwcmVmaXgtcG9zdGZpeC1iYXNlOyB9XG5cbiAgICAvKiBBZGp1c3QgcGFkZGluZywgYWxpZ25tZW50IGFuZCByYWRpdXMgaWYgcHJlL3Bvc3QgZWxlbWVudCBpcyBhIGJ1dHRvbiAqL1xuICAgIC5wb3N0Zml4LmJ1dHRvbiB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKGZhbHNlLGZhbHNlKTsgQGluY2x1ZGUgcG9zdGZpeChmYWxzZSwgZmFsc2UsIHRydWUpOyB9XG4gICAgLnByZWZpeC5idXR0b24geyBAaW5jbHVkZSBidXR0b24tc2l6ZShmYWxzZSxmYWxzZSk7IEBpbmNsdWRlIHByZWZpeChmYWxzZSwgZmFsc2UsIHRydWUpOyB9XG5cbiAgICAucHJlZml4LmJ1dHRvbi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAucG9zdGZpeC5idXR0b24ucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAucHJlZml4LmJ1dHRvbi5yb3VuZCB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcm91bmQpOyB9XG4gICAgLnBvc3RmaXguYnV0dG9uLnJvdW5kIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJvdW5kKTsgfVxuXG4gICAgLyogU2VwYXJhdGUgcHJlZml4IGFuZCBwb3N0Zml4IHN0eWxlcyB3aGVuIG9uIHNwYW4gb3IgbGFiZWwgc28gYnV0dG9ucyBrZWVwIHRoZWlyIG93biAqL1xuICAgIHNwYW4ucHJlZml4LGxhYmVsLnByZWZpeCB7IEBpbmNsdWRlIHByZWZpeCgpOyB9XG4gICAgc3Bhbi5wb3N0Zml4LGxhYmVsLnBvc3RmaXggeyBAaW5jbHVkZSBwb3N0Zml4KCk7IH1cblxuICAgIC8qIFdlIHVzZSB0aGlzIHRvIGdldCBiYXNpYyBzdHlsaW5nIG9uIGFsbCBiYXNpYyBmb3JtIGVsZW1lbnRzICovXG4gICAgI3t0ZXh0LWlucHV0cyhhbGwsICdpbnB1dCcpfSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgICAgQGlmICRpbnB1dC1pbmNsdWRlLWdsb3dpbmctZWZmZWN0ID09IGZhbHNlIHtcbiAgICAgICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihhbGwsIDAuMTVzLCBsaW5lYXIpO1xuICAgICAgfVxuICAgICAgJi5yYWRpdXMge1xuICAgICAgICBAaW5jbHVkZSByYWRpdXMoJGlucHV0LWJvcmRlci1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvcm0ge1xuICAgICAgLnJvdyB7XG4gICAgICAgIC5wcmVmaXgtcmFkaXVzLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgICAgICAgLnByZWZpeCB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcmFkaXVzKTsgfVxuICAgICAgICB9XG4gICAgICAgIC5wb3N0Zml4LXJhZGl1cy5yb3cuY29sbGFwc2Uge1xuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIHRleHRhcmVhLFxuICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICBidXR0b24geyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgICAucG9zdGZpeCB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgICAgIH1cbiAgICAgICAgLnByZWZpeC1yb3VuZC5yb3cuY29sbGFwc2Uge1xuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIHRleHRhcmVhLFxuICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICBidXR0b24geyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcm91bmQpOyB9XG4gICAgICAgICAgLnByZWZpeCB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcm91bmQpOyB9XG4gICAgICAgIH1cbiAgICAgICAgLnBvc3RmaXgtcm91bmQucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAgICAgICAucG9zdGZpeCB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAvKiBSZXNwZWN0IGVuZm9yY2VkIGFtb3VudCBvZiByb3dzIGZvciB0ZXh0YXJlYSAqL1xuICAgIHRleHRhcmVhW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cblx0LyogTm90IGFsbG93IHJlc2l6ZSBvdXQgb2YgcGFyZW50ICovXG5cdHRleHRhcmVhIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cblxuICAgIC8qIEFkZCBoZWlnaHQgdmFsdWUgZm9yIHNlbGVjdCBlbGVtZW50cyB0byBtYXRjaCB0ZXh0IGlucHV0IGhlaWdodCAqL1xuICAgIHNlbGVjdCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgICAgIGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG4gICAgICAmW211bHRpcGxlXSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBBZGp1c3QgbWFyZ2luIGZvciBmb3JtIGVsZW1lbnRzIGJlbG93ICovXG4gICAgaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgICBzZWxlY3Qge1xuICAgICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZyAwO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsLFxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGZvcm0tc3BhY2luZyAqIC41O1xuICAgICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRmb3JtLXNwYWNpbmc7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIH1cblxuICAgIC8qIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoICovXG4gICAgaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAgICAgd2lkdGg6MTAwJTtcbiAgICB9XG5cbiAgICAvKiBIVE1MNSBOdW1iZXIgc3Bpbm5lcnMgc2V0dGluZ3MgKi9cbiAgICBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICAgICAgQGluY2x1ZGUgaHRtbDVudW1iZXIobW96LCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzKVxuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgQGluY2x1ZGUgaHRtbDVudW1iZXIod2Via2l0LCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzKTtcbiAgICB9XG5cbiAgICAvKiBXZSBhZGQgYmFzaWMgZmllbGRzZXQgc3R5bGluZyAqL1xuICAgIGZpZWxkc2V0IHtcbiAgICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICAgIH1cblxuICAgIC8qIEVycm9yIEhhbmRsaW5nICovXG5cbiAgICAje2RhdGEoJ2FiaWRlJyl9IHtcbiAgICAgIC5lcnJvciBzbWFsbC5lcnJvciwgLmVycm9yIHNwYW4uZXJyb3IsIHNwYW4uZXJyb3IsIHNtYWxsLmVycm9yIHtcbiAgICAgICAgQGluY2x1ZGUgZm9ybS1lcnJvci1tZXNzYWdlO1xuICAgICAgfVxuICAgICAgc3Bhbi5lcnJvciwgc21hbGwuZXJyb3IgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgfVxuXG4gICAgc3Bhbi5lcnJvciwgc21hbGwuZXJyb3Ige1xuICAgICAgQGluY2x1ZGUgZm9ybS1lcnJvci1tZXNzYWdlO1xuICAgIH1cblxuICAgIC5lcnJvciB7XG4gICAgICBpbnB1dCxcbiAgICAgIHRleHRhcmVhLFxuICAgICAgc2VsZWN0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZ1xuICAgICAgfVxuXG4gICAgICBsYWJlbCxcbiAgICAgIGxhYmVsLmVycm9yIHtcbiAgICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1lcnJvci1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgc21hbGwuZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmb3JtLWVycm9yLW1lc3NhZ2U7XG4gICAgICB9XG5cbiAgICAgID4gbGFiZWwge1xuICAgICAgICA+IHNtYWxsIHtcbiAgICAgICAgICBjb2xvcjogc2NhbGUtY29sb3IoJGZvcm0tbGFiZWwtZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMTUlKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZm9ybS1sYWJlbC1zbWFsbC10cmFuc2Zvcm07XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtc2l6ZTogNjAlO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3Bhbi5lcnJvci1tZXNzYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXQuZXJyb3IsXG4gICAgdGV4dGFyZWEuZXJyb3IsXG4gICAgc2VsZWN0LmVycm9yIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIGxhYmVsLmVycm9yIHsgQGluY2x1ZGUgZm9ybS1sYWJlbC1lcnJvci1jb2xvcjsgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1idXR0b24tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gYnVpbGQgcGFkZGluZyBmb3IgYnV0dG9ucy5cbiRidXR0b24tdG55OiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kYnV0dG9uLXNtbDogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJGJ1dHRvbi1tZWQ6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiRidXR0b24tbHJnOiByZW0tY2FsYygxOCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIGRpc3BsYXkgcHJvcGVydHkuXG4kYnV0dG9uLWRpc3BsYXk6IGlubGluZS1ibG9jayAhZGVmYXVsdDtcbiRidXR0b24tbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBidXR0b24gdGV4dCBzdHlsZXMuXG4kYnV0dG9uLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWNvbG9yLWFsdDogJG9pbCAhZGVmYXVsdDtcbiRidXR0b24tZm9udC10bnk6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1zbWw6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1tZWQ6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1scmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRidXR0b24tZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtYWxpZ246IGNlbnRlciAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdmFyaW91cyBob3ZlciBlZmZlY3RzLlxuJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3I6IC0yMCUgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJ1dHRvbiBib3JkZXIgc3R5bGVzLlxuJGJ1dHRvbi1ib3JkZXItd2lkdGg6IDAgIWRlZmF1bHQ7XG4kYnV0dG9uLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kYnV0dG9uLWJnLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmctY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRidXR0b24tYm9yZGVyLWNvbG9yOiAkYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuJHNlY29uZGFyeS1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRzZWNvbmRhcnktY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRzZWNvbmRhcnktYnV0dG9uLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kc3VjY2Vzcy1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRzdWNjZXNzLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kc3VjY2Vzcy1idXR0b24tYm9yZGVyLWNvbG9yOiAkc3VjY2Vzcy1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kYWxlcnQtYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkYWxlcnQtY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRhbGVydC1idXR0b24tYm9yZGVyLWNvbG9yOiAkYWxlcnQtYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuJHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkd2FybmluZy1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcjogJHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuJGluZm8tYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkaW5mby1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcjogJGluZm8tYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGRlZmF1bHQgcmFkaXVzIHVzZWQgdGhyb3VnaG91dCB0aGUgY29yZS5cbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRidXR0b24tcm91bmQ6ICRnbG9iYWwtcm91bmRlZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IGRlZmF1bHQgb3BhY2l0eSBhbmQgY3Vyc29yIGZvciBkaXNhYmxlZCBidXR0b25zLlxuJGJ1dHRvbi1kaXNhYmxlZC1vcGFjaXR5OiAwLjcgIWRlZmF1bHQ7XG4kYnV0dG9uLWRpc2FibGVkLWN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlICFkZWZhdWx0O1xuXG5cbi8vXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgYSBkZWZhdWx0IGJ1dHRvbiBiYXNlLlxuLy9cbi8vICRzdHlsZSAtIFNldHMgYmFzZSBzdHlsZXMuIENhbiBiZSBzZXQgdG8gZmFsc2UuIERlZmF1bHQ6IHRydWUuXG4vLyAkZGlzcGxheSAtIFVzZWQgdG8gY29udHJvbCBkaXNwbGF5IHByb3BlcnR5LiBEZWZhdWx0OiAkYnV0dG9uLWRpc3BsYXkgfHwgaW5saW5lLWJsb2NrXG5cbkBtaXhpbiBidXR0b24tYmFzZSgkc3R5bGU6dHJ1ZSwgJGRpc3BsYXk6JGJ1dHRvbi1kaXNwbGF5KSB7XG4gIEBpZiAkc3R5bGUge1xuICAgIGJvcmRlci1zdHlsZTogJGJ1dHRvbi1ib3JkZXItc3R5bGU7XG4gICAgYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWJvcmRlci13aWR0aDtcbiAgICBjdXJzb3I6ICRjdXJzb3ItcG9pbnRlci12YWx1ZTtcbiAgICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGJ1dHRvbi1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbjogMCAwICRidXR0b24tbWFyZ2luLWJvdHRvbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtYWxpZ246ICRidXR0b24tZm9udC1hbGlnbjtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6MDtcbiAgfVxuICBAaWYgJGRpc3BsYXkgeyBkaXNwbGF5OiAkZGlzcGxheTsgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBhZGQgYnV0dG9uIHNpemUgc3R5bGVzXG4vL1xuLy8gJHBhZGRpbmcgLSBVc2VkIHRvIGJ1aWxkIHBhZGRpbmcgZm9yIGJ1dHRvbnMgRGVmYXVsdDogJGJ1dHRvbi1tZWQgfHw9IHJlbS1jYWxjKDEyKVxuLy8gJGZ1bGwtd2lkdGggLSBXZSBjYW4gc2V0ICRmdWxsLXdpZHRoOnRydWUgdG8gcmVtb3ZlIHNpZGUgcGFkZGluZyBleHRlbmQgd2lkdGggLSBEZWZhdWx0OiBmYWxzZVxuXG5AbWl4aW4gYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi1tZWQsICRmdWxsLXdpZHRoOmZhbHNlKSB7XG5cbiAgLy8gV2UgY29udHJvbCB3aGljaCBwYWRkaW5nIHN0eWxlcyBjb21lIHRocm91Z2gsXG4gIC8vIHRoZXNlIGNhbiBiZSB0dXJuZWQgb2ZmIGJ5IHNldHRpbmcgJHBhZGRpbmc6ZmFsc2VcbiAgQGlmICRwYWRkaW5nIHtcbiAgICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkcGFkZGluZyAqIDI7XG4gICAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nICsgcmVtLWNhbGMoMSk7XG4gICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogJHBhZGRpbmcgKiAyO1xuXG4gICAgLy8gV2UgY29udHJvbCB0aGUgZm9udC1zaXplIGJhc2VkIG9uIG1peGluIGlucHV0LlxuICAgIEBpZiAgICAgICRwYWRkaW5nID09ICRidXR0b24tbWVkIHsgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtbWVkOyB9XG4gICAgQGVsc2UgaWYgJHBhZGRpbmcgPT0gJGJ1dHRvbi10bnkgeyBmb250LXNpemU6ICRidXR0b24tZm9udC10bnk7IH1cbiAgICBAZWxzZSBpZiAkcGFkZGluZyA9PSAkYnV0dG9uLXNtbCB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LXNtbDsgfVxuICAgIEBlbHNlIGlmICRwYWRkaW5nID09ICRidXR0b24tbHJnIHsgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtbHJnOyB9XG4gIH1cblxuICAvLyBXZSBjYW4gc2V0ICRmdWxsLXdpZHRoOnRydWUgdG8gcmVtb3ZlIHNpZGUgcGFkZGluZyBleHRlbmQgd2lkdGguXG4gIEBpZiAkZnVsbC13aWR0aCB7XG4gICAgLy8gV2Ugc3RpbGwgbmVlZCB0byBjaGVjayBpZiAkcGFkZGluZyBpcyBzZXQuXG4gICAgQGlmICRwYWRkaW5nIHtcbiAgICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nICsgcmVtLWNhbGMoMSk7XG4gICAgfSBAZWxzZSBpZiAkcGFkZGluZyA9PSBmYWxzZSB7XG4gICAgICBwYWRkaW5nLXRvcDowO1xuICAgICAgcGFkZGluZy1ib3R0b206MDtcbiAgICB9XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gd2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIHRoZSBidXR0b24gaG92ZXIgYW5kIGJvcmRlciBjb2xvcnNcblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gYWRkIGJ1dHRvbiBjb2xvciBzdHlsZXNcbi8vXG4vLyAkYmcgLSBCYWNrZ3JvdW5kIGNvbG9yLiBXZSBjYW4gc2V0ICRiZzpmYWxzZSBmb3IgYSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kLiBEZWZhdWx0OiAkcHJpbWFyeS1jb2xvci5cbi8vICRyYWRpdXMgLSBJZiB0cnVlLCBzZXQgdG8gYnV0dG9uIHJhZGl1cyB3aGljaCBpcyAkYnV0dG9uLXJhZGl1cyB8fCBleHBsaWNpdGx5IHNldCByYWRpdXMgYW1vdW50IGluIHB4IChleC4gJHJhZGl1czoxMHB4KS4gRGVmYXVsdDogZmFsc2Vcbi8vICRkaXNhYmxlZCAtIFdlIGNhbiBzZXQgJGRpc2FibGVkOnRydWUgdG8gY3JlYXRlIGEgZGlzYWJsZWQgdHJhbnNwYXJlbnQgYnV0dG9uLiBEZWZhdWx0OiBmYWxzZVxuLy8gJGJnLWhvdmVyIC0gQnV0dG9uIEhvdmVyIEJhY2tncm91bmQgQ29sb3IuIERlZmF1bHQ6ICRidXR0b24tYmctaG92ZXJcbi8vICRib3JkZXItY29sb3IgLSBCdXR0b24gQm9yZGVyIENvbG9yLiBEZWZhdWx0OiAkYnV0dG9uLWJvcmRlci1jb2xvclxuQG1peGluIGJ1dHRvbi1zdHlsZSgkYmc6JGJ1dHRvbi1iZy1jb2xvciwgJHJhZGl1czpmYWxzZSwgJGRpc2FibGVkOmZhbHNlLCAkYmctaG92ZXI6bnVsbCwgJGJvcmRlci1jb2xvcjpudWxsKSB7XG5cbiAgLy8gV2UgY29udHJvbCB3aGljaCBiYWNrZ3JvdW5kIHN0eWxlcyBhcmUgdXNlZCxcbiAgLy8gdGhlc2UgY2FuIGJlIHJlbW92ZWQgYnkgc2V0dGluZyAkYmc6ZmFsc2VcbiAgQGlmICRiZyB7XG5cbiAgICBAaWYgJGJnLWhvdmVyID09IG51bGwge1xuICAgICAgJGJnLWhvdmVyOiBpZigkYmcgPT0gJGJ1dHRvbi1iZy1jb2xvciwgJGJ1dHRvbi1iZy1ob3Zlciwgc2NhbGUtY29sb3IoJGJnLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikpO1xuICAgIH1cblxuICAgIEBpZiAkYm9yZGVyLWNvbG9yID09IG51bGwge1xuICAgICAgJGJvcmRlci1jb2xvcjogaWYoJGJnID09ICRidXR0b24tYmctY29sb3IsICRidXR0b24tYm9yZGVyLWNvbG9yLCBzY2FsZS1jb2xvcigkYmcsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmaW5kIHRoZSBsaWdodG5lc3MgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbiAgICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcbiAgICAkYmctaG92ZXItbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnLWhvdmVyKTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJGJnLWhvdmVyOyB9XG5cbiAgICAvLyBXZSBjb250cm9sIHRoZSB0ZXh0IGNvbG9yIGZvciB5b3UgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4gICAgY29sb3I6IGlmKCRiZy1saWdodG5lc3MgPiA3MCUsICRidXR0b24tZm9udC1jb2xvci1hbHQsICRidXR0b24tZm9udC1jb2xvcik7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IGlmKCRiZy1ob3Zlci1saWdodG5lc3MgPiA3MCUsICRidXR0b24tZm9udC1jb2xvci1hbHQsICRidXR0b24tZm9udC1jb2xvcik7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgY2FuIHNldCAkZGlzYWJsZWQ6dHJ1ZSB0byBjcmVhdGUgYSBkaXNhYmxlZCB0cmFuc3BhcmVudCBidXR0b24uXG4gIEBpZiAkZGlzYWJsZWQge1xuICAgIGN1cnNvcjogJGJ1dHRvbi1kaXNhYmxlZC1jdXJzb3I7XG4gICAgb3BhY2l0eTogJGJ1dHRvbi1kaXNhYmxlZC1vcGFjaXR5O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJGJnOyB9XG4gIH1cblxuICAvLyBXZSBjYW4gY29udHJvbCBob3cgbXVjaCBidXR0b24gcmFkaXVzIGlzIHVzZWQuXG4gIEBpZiAkcmFkaXVzID09IHRydWUgeyBAaW5jbHVkZSByYWRpdXMoJGJ1dHRvbi1yYWRpdXMpOyB9XG4gIEBlbHNlIGlmICRyYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoJHJhZGl1cyk7IH1cblxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBxdWlja2x5IGNyZWF0ZSBidXR0b25zIHdpdGggYSBzaW5nbGUgbWl4aW4uIEFzIEBqYXJlZGhhcmR5IHB1dHMgaXQsIFwidGhlIGtpdGNoZW4gc2luayBtaXhpblwiXG4vL1xuLy8gJHBhZGRpbmcgLSBVc2VkIHRvIGJ1aWxkIHBhZGRpbmcgZm9yIGJ1dHRvbnMgRGVmYXVsdDogJGJ1dHRvbi1tZWQgfHw9IHJlbS1jYWxjKDEyKVxuLy8gJGJnIC0gUHJpbWFyeSBjb2xvciBzZXQgaW4gc2V0dGluZ3MgZmlsZS4gRGVmYXVsdDogJGJ1dHRvbi1iZy5cbi8vICRyYWRpdXMgLSBJZiB0cnVlLCBzZXQgdG8gYnV0dG9uIHJhZGl1cyB3aGljaCBpcyAkZ2xvYmFsLXJhZGl1cyB8fCBleHBsaWNpdGx5IHNldCByYWRpdXMgYW1vdW50IGluIHB4IChleC4gJHJhZGl1czoxMHB4KS4gRGVmYXVsdDpmYWxzZS5cbi8vICRmdWxsLXdpZHRoIC0gV2UgY2FuIHNldCAkZnVsbC13aWR0aDp0cnVlIHRvIHJlbW92ZSBzaWRlIHBhZGRpbmcgZXh0ZW5kIHdpZHRoLiBEZWZhdWx0OmZhbHNlLlxuLy8gJGRpc2FibGVkIC0gV2UgY2FuIHNldCAkZGlzYWJsZWQ6dHJ1ZSB0byBjcmVhdGUgYSBkaXNhYmxlZCB0cmFuc3BhcmVudCBidXR0b24uIERlZmF1bHQ6ZmFsc2UuXG4vLyAkaXMtcHJlZml4IC0gTm90IHVzZWQ/IERlZmF1bHQ6ZmFsc2UuXG4vLyAkYmctaG92ZXIgLSBCdXR0b24gSG92ZXIgQ29sb3IgLSBEZWZhdWx0IG51bGwgLSBzZWUgYnV0dG9uLXN0eWxlIG1peGluXG4vLyAkYm9yZGVyLWNvbG9yIC0gQnV0dG9uIEJvcmRlciBDb2xvciAtIERlZmF1bHQgbnVsbCAtIHNlZSBidXR0b24tc3R5bGUgbWl4aW5cbi8vICR0cmFuc2l0aW9uIC0gV2UgY2FuIGNvbnRyb2wgd2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0aGUgYmFja2dyb3VuZC1jb2xvciB0cmFuc2l0aW9uIHByb3BlcnR5IC0gRGVmYXVsdDp0cnVlLlxuQG1peGluIGJ1dHRvbigkcGFkZGluZzokYnV0dG9uLW1lZCwgJGJnOiRidXR0b24tYmctY29sb3IsICRyYWRpdXM6ZmFsc2UsICRmdWxsLXdpZHRoOmZhbHNlLCAkZGlzYWJsZWQ6ZmFsc2UsICRpcy1wcmVmaXg6ZmFsc2UsICRiZy1ob3ZlcjpudWxsLCAkYm9yZGVyLWNvbG9yOm51bGwsICR0cmFuc2l0aW9uOiB0cnVlKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZywgJGZ1bGwtd2lkdGgpO1xuICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnLCAkcmFkaXVzLCAkZGlzYWJsZWQsICRiZy1ob3ZlciwgJGJvcmRlci1jb2xvcik7XG5cbiAgQGlmICR0cmFuc2l0aW9uIHtcbiAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxufVxuXG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJidXR0b25cIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1idXR0b24tY2xhc3NlcyB7XG5cbiAgICAvLyBEZWZhdWx0IHN0eWxlcyBhcHBsaWVkIG91dHNpZGUgb2YgbWVkaWEgcXVlcnlcbiAgICBidXR0b24sIC5idXR0b24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG4gICAgICBAaW5jbHVkZSBidXR0b24tc2l6ZTtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZTtcblxuICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG5cbiAgICAgICYuc2Vjb25kYXJ5IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokc2Vjb25kYXJ5LWNvbG9yLCAkYmctaG92ZXI6JHNlY29uZGFyeS1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgJi5zdWNjZXNzICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzdWNjZXNzLWNvbG9yLCAkYmctaG92ZXI6JHN1Y2Nlc3MtYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRzdWNjZXNzLWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLmFsZXJ0ICAgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGFsZXJ0LWNvbG9yLCAkYmctaG92ZXI6JGFsZXJ0LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokYWxlcnQtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICYud2FybmluZyAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokd2FybmluZy1jb2xvciwgJGJnLWhvdmVyOiR3YXJuaW5nLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokd2FybmluZy1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgJi5pbmZvICAgICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRpbmZvLWNvbG9yLCAkYmctaG92ZXI6JGluZm8tYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRpbmZvLWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG5cbiAgICAgICYubGFyZ2UgIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi1scmcpOyB9XG4gICAgICAmLnNtYWxsICB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOiRidXR0b24tc21sKTsgfVxuICAgICAgJi50aW55ICAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLXRueSk7IH1cbiAgICAgICYuZXhwYW5kIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6bnVsbCwkZnVsbC13aWR0aDp0cnVlKTsgfVxuXG4gICAgICAmLmxlZnQtYWxpZ24gIHsgdGV4dC1hbGlnbjogbGVmdDsgdGV4dC1pbmRlbnQ6IHJlbS1jYWxjKDEyKTsgfVxuICAgICAgJi5yaWdodC1hbGlnbiB7IHRleHQtYWxpZ246IHJpZ2h0OyBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygxMik7IH1cblxuICAgICAgJi5yYWRpdXMgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOmZhbHNlLCAkcmFkaXVzOnRydWUpOyB9XG4gICAgICAmLnJvdW5kICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6ZmFsc2UsICRyYWRpdXM6JGJ1dHRvbi1yb3VuZCk7IH1cblxuICAgICAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0geyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRidXR0b24tYmctY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JGJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokYnV0dG9uLWJvcmRlci1jb2xvcik7XG4gICAgICAgICYuc2Vjb25kYXJ5IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokc2Vjb25kYXJ5LWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRzZWNvbmRhcnktYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRzZWNvbmRhcnktYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi5zdWNjZXNzIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokc3VjY2Vzcy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3Zlcjokc3VjY2Vzcy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHN1Y2Nlc3MtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi5hbGVydCB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGFsZXJ0LWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRhbGVydC1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGFsZXJ0LWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAgICYud2FybmluZyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHdhcm5pbmctY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiR3YXJuaW5nLWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAgICYuaW5mbyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGluZm8tY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JGluZm8tYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRpbmZvLWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9maXJlZm94IDJweCBmaXhcbiAgICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIge2JvcmRlcjowOyBwYWRkaW5nOjA7fVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgYnV0dG9uLCAuYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWJhc2UoJHN0eWxlOmZhbHNlLCAkZGlzcGxheTppbmxpbmUtYmxvY2spO1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzpmYWxzZSwgJGZ1bGwtd2lkdGg6ZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtZ3JpZC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlczogZmFsc2UgIWRlZmF1bHQ7XG5cbiRyb3ctd2lkdGg6IHJlbS1jYWxjKDEwMDApICFkZWZhdWx0O1xuJHRvdGFsLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4kbGFzdC1jaGlsZC1mbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbiAhZGVmYXVsdDtcblxuLy9cbi8vIEdyaWQgRnVuY3Rpb25zXG4vL1xuXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLCB1c2UgZ3JpZC1jYWxjKClcbkBmdW5jdGlvbiBncmlkQ2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKSB7XG4gIEB3YXJuIFwiZ3JpZENhbGMoKSBpcyBkZXByZWNhdGVkLCB1c2UgZ3JpZC1jYWxjKClcIjtcbiAgQHJldHVybiBncmlkLWNhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucyk7XG59XG5cbi8vIEBGVU5DVElPTlxuLy8gJGNvbE51bWJlciAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbi8vICR0b3RhbENvbHVtbnMgLSBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG5AZnVuY3Rpb24gZ3JpZC1jYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpIHtcbiAgQHJldHVybiBwZXJjZW50YWdlKCgkY29sTnVtYmVyIC8gJHRvdGFsQ29sdW1ucykpO1xufVxuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuLy8gRm9yIGNyZWF0aW5nIGNvbnRhaW5lciwgbmVzdGVkLCBhbmQgY29sbGFwc2VkIHJvd3MuXG4vL1xuLy9cbi8vICRiZWhhdmlvciAtIEFueSBzcGVjaWFsIGJlaGF2aW9yIGZvciB0aGlzIHJvdz8gRGVmYXVsdDogZmFsc2UuIE9wdGlvbnM6IG5lc3QsIGNvbGxhcHNlLCBuZXN0LWNvbGxhcHNlLCBmYWxzZS5cbkBtaXhpbiBncmlkLXJvdygkYmVoYXZpb3I6IGZhbHNlKSB7XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KG5lc3QpOyB0byBpbmNsdWRlIGEgbmVzdGVkIHJvd1xuICBAaWYgJGJlaGF2aW9yID09IG5lc3Qge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogLSgkY29sdW1uLWd1dHRlci8yKTtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogLSgkY29sdW1uLWd1dHRlci8yKTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KGNvbGxhcHNlKTsgdG8gY29sbGFwc2VkIGEgY29udGFpbmVyIHJvdyBtYXJnaW5zXG4gIEBlbHNlIGlmICRiZWhhdmlvciA9PSBjb2xsYXBzZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogJHJvdy13aWR0aDtcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhuZXN0LWNvbGxhcHNlKTsgdG8gY29sbGFwc2Ugb3V0ZXIgbWFyZ2lucyBvbiBhIG5lc3RlZCByb3dcbiAgQGVsc2UgaWYgJGJlaGF2aW9yID09IG5lc3QtY29sbGFwc2Uge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3c7IHRvIHVzZSBhIGNvbnRhaW5lciByb3dcbiAgQGVsc2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWF4LXdpZHRoOiAkcm93LXdpZHRoO1xuICB9XG5cbiAgLy8gQ2xlYXJmaXggZm9yIGFsbCByb3dzXG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG5cbi8vIENyZWF0ZXMgYSBjb2x1bW4sIHNob3VsZCBiZSB1c2VkIGluc2lkZSBvZiBhIG1lZGlhIHF1ZXJ5IHRvIGNvbnRyb2wgbGF5b3V0c1xuLy9cbi8vICRjb2x1bW5zIC0gVGhlIG51bWJlciBvZiBjb2x1bW5zIHRoaXMgc2hvdWxkIGJlXG4vLyAkbGFzdC1jb2x1bW4gLSBJcyB0aGlzIHRoZSBsYXN0IGNvbHVtbj8gRGVmYXVsdDogZmFsc2UuXG4vLyAkY2VudGVyIC0gQ2VudGVyIHRoZXNlIGNvbHVtbnM/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJG9mZnNldCAtICMgb2YgY29sdW1ucyB0byBvZmZzZXQuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJHB1c2ggLSAjIG9mIGNvbHVtbnMgdG8gcHVzaC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkcHVsbCAtICMgb2YgY29sdW1ucyB0byBwdWxsLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRjb2xsYXBzZSAtIEdldCByaWQgb2YgZ3V0dGVyIHBhZGRpbmcgb24gY29sdW1uPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRmbG9hdCAtIFNob3VsZCB0aGlzIGZsb2F0PyBEZWZhdWx0OiB0cnVlLiBPcHRpb25zOiB0cnVlLCBmYWxzZSwgbGVmdCwgcmlnaHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOmZhbHNlLFxuICAkbGFzdC1jb2x1bW46ZmFsc2UsXG4gICRjZW50ZXI6ZmFsc2UsXG4gICRvZmZzZXQ6ZmFsc2UsXG4gICRwdXNoOmZhbHNlLFxuICAkcHVsbDpmYWxzZSxcbiAgJGNvbGxhcHNlOmZhbHNlLFxuICAkZmxvYXQ6dHJ1ZSxcbiAgJHBvc2l0aW9uOmZhbHNlKSB7XG5cbiAgLy8gSWYgcG9zaXRpb25lZCBmb3IgZGVmYXVsdCAuY29sdW1uLCBpbmNsdWRlIHJlbGF0aXZlIHBvc2l0aW9uXG4gIC8vIHB1c2ggYW5kIHB1bGwgcmVxdWlyZSBwb3NpdGlvbiBzZXRcbiAgQGlmICRwb3NpdGlvbiBvciAkcHVzaCBvciAkcHVsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLy8gSWYgY29sbGFwc2VkLCBnZXQgcmlkIG9mIGd1dHRlciBwYWRkaW5nXG4gIEBpZiAkY29sbGFwc2Uge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgLy8gR3V0dGVyIHBhZGRpbmcgd2hlbmV2ZXIgYSBjb2x1bW4gaXNuJ3Qgc2V0IHRvIGNvbGxhcHNlXG4gIC8vICh1c2UgJGNvbGxhcHNlOm51bGwgdG8gZG8gbm90aGluZylcbiAgQGVsc2UgaWYgJGNvbGxhcHNlID09IGZhbHNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkY29sdW1uLWd1dHRlciAvIDIpO1xuICAgIHBhZGRpbmctcmlnaHQ6ICgkY29sdW1uLWd1dHRlciAvIDIpO1xuICB9XG5cbiAgLy8gSWYgYSBjb2x1bW4gbnVtYmVyIGlzIGdpdmVuLCBjYWxjdWxhdGUgd2lkdGhcbiAgQGlmICRjb2x1bW5zIHtcbiAgICB3aWR0aDogZ3JpZC1jYWxjKCRjb2x1bW5zLCAkdG90YWwtY29sdW1ucyk7XG5cbiAgICAvLyBJZiBsYXN0IGNvbHVtbiwgZmxvYXQgbmF0dXJhbGx5IGluc3RlYWQgb2YgdG8gdGhlIHJpZ2h0XG4gICAgQGlmICRsYXN0LWNvbHVtbiB7IGZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uOyB9XG4gIH1cblxuICAvLyBTb3VyY2UgT3JkZXJpbmcsIGFkZHMgbGVmdC9yaWdodCBkZXBlbmRpbmcgb24gd2hpY2ggeW91IHVzZS5cbiAgQGlmICRwdXNoIHsgI3skZGVmYXVsdC1mbG9hdH06IGdyaWQtY2FsYygkcHVzaCwgJHRvdGFsLWNvbHVtbnMpOyAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBhdXRvOyB9XG4gIEBpZiAkcHVsbCB7ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGdyaWQtY2FsYygkcHVsbCwgJHRvdGFsLWNvbHVtbnMpOyAjeyRkZWZhdWx0LWZsb2F0fTogYXV0bzsgfVxuXG4gIEBpZiAkZmxvYXQge1xuICAgIEBpZiAkZmxvYXQgPT0gbGVmdCBvciAkZmxvYXQgPT0gdHJ1ZSB7IGZsb2F0OiAkZGVmYXVsdC1mbG9hdDsgfVxuICAgIEBlbHNlIGlmICRmbG9hdCA9PSByaWdodCB7IGZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uOyB9XG4gICAgQGVsc2UgeyBmbG9hdDogbm9uZTsgfVxuICB9XG5cbiAgLy8gSWYgY2VudGVyZWQsIGdldCByaWQgb2YgZmxvYXQgYW5kIGFkZCBhcHByb3ByaWF0ZSBtYXJnaW5zXG4gIEBpZiAkY2VudGVyIHtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGF1dG87XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICAvLyBJZiBvZmZzZXQsIGNhbGN1bGF0ZSBhcHByb3ByaWF0ZSBtYXJnaW5zXG4gIEBpZiAkb2Zmc2V0IHsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiBncmlkLWNhbGMoJG9mZnNldCwgJHRvdGFsLWNvbHVtbnMpICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vLyBDcmVhdGUgcHJlc2VudGF0aW9uYWwgY2xhc3NlcyBmb3IgZ3JpZFxuLy9cbi8vICRzaXplIC0gTmFtZSBvZiBjbGFzcyB0byB1c2UsIGkuZS4gXCJsYXJnZVwiIHdpbGwgZ2VuZXJhdGUgLmxhcmdlLTEsIC5sYXJnZS0yLCBldGMuXG5AbWl4aW4gZ3JpZC1odG1sLWNsYXNzZXMoJHNpemUpIHtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgLiN7JHNpemV9LXB1c2gtI3skaX0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgIH1cbiAgICAuI3skc2l6ZX0tcHVsbC0jeyRpfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLmNvbHVtbixcbiAgLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczpmYWxzZSwgJHBvc2l0aW9uOnRydWUpOyB9XG5cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIHtcbiAgICAuI3skc2l6ZX0tI3skaX0geyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczokaSwkY29sbGFwc2U6bnVsbCwkZmxvYXQ6ZmFsc2UpOyB9XG4gIH1cblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgLiN7JHNpemV9LW9mZnNldC0jeyRpfSB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRvZmZzZXQ6JGksICRjb2xsYXBzZTpudWxsLCRmbG9hdDpmYWxzZSk7IH1cbiAgfVxuXG4gIC4jeyRzaXplfS1yZXNldC1vcmRlciB7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS1jZW50ZXJlZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tY2VudGVyZWQgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY2VudGVyOnRydWUsICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkIHtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLy8gRmlnaHRpbmcgW2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl06bGFzdC1jaGlsZFxuICAuY29sdW1uLiN7JHNpemV9LWNlbnRlcmVkOmxhc3QtY2hpbGQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LWNlbnRlcmVkOmxhc3QtY2hpbGR7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICAvLyBGaWdodGluZyAuY29sdW1uLjxwcmV2aW91cy1zaXplPi1jZW50ZXJlZDpsYXN0LWNoaWxkXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZDpsYXN0LWNoaWxkLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgfVxuXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZC5vcHBvc2l0ZSxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZC5vcHBvc2l0ZSB7XG4gICAgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG4gIH1cblxuXHQucm93IHtcblx0XHQmLiN7JHNpemV9LWNvbGxhcHNlIHtcblx0XHRcdD4gLmNvbHVtbixcblx0XHRcdD4gLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sbGFwc2U6dHJ1ZSwgJGZsb2F0OmZhbHNlKTsgfVxuXG5cdFx0XHQucm93IHttYXJnaW4tbGVmdDowOyBtYXJnaW4tcmlnaHQ6MDt9XG5cdFx0fVxuXHRcdCYuI3skc2l6ZX0tdW5jb2xsYXBzZSB7XG5cdFx0XHQ+IC5jb2x1bW4sXG5cdFx0XHQ+IC5jb2x1bW5zIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2x1bW47XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJncmlkXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtZ3JpZC1jbGFzc2VzIHtcbiAgICAucm93IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93O1xuXG4gICAgICAmLmNvbGxhcHNlIHtcbiAgICAgICAgID4gLmNvbHVtbixcbiAgICAgICAgID4gLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sbGFwc2U6dHJ1ZSwgJGZsb2F0OmZhbHNlKTsgfVxuXG4gICAgICAgIC5yb3cge21hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowO31cbiAgICAgIH1cblxuICAgICAgLnJvdyB7IEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjpuZXN0KTtcbiAgICAgICAgJi5jb2xsYXBzZSB7IEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjpuZXN0LWNvbGxhcHNlKTsgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5jb2x1bW4sXG4gICAgLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczokdG90YWwtY29sdW1ucyk7IH1cblxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdOmxhc3QtY2hpbGQgeyBmbG9hdDogJGxhc3QtY2hpbGQtZmxvYXQ7IH1cbiAgICBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXS5lbmQgeyBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7IH1cblxuICAgIEBtZWRpYSAjeyRzbWFsbC11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6c21hbGwpO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOm1lZGl1bSk7XG4gICAgICAvLyBPbGQgcHVzaCBhbmQgcHVsbCBjbGFzc2VzXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgICAgIC5wdXNoLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLnB1bGwtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOmxhcmdlKTtcbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAgICAgLnB1c2gtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICAucHVsbC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlcyB7XG4gICAgQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eGxhcmdlKTtcbiAgICB9XG4gICAgQG1lZGlhICN7JHh4bGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnh4bGFyZ2UpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtaW5saW5lLWxpc3QtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBtYXJnaW5zIGFuZCBwYWRkaW5nIG9mIHRoZSBpbmxpbmUgbGlzdC5cbiRpbmxpbmUtbGlzdC10b3AtbWFyZ2luOiAwICFkZWZhdWx0O1xuJGlubGluZS1saXN0LW9wcG9zaXRlLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRpbmxpbmUtbGlzdC1ib3R0b20tbWFyZ2luOiByZW0tY2FsYygxNykgIWRlZmF1bHQ7XG4kaW5saW5lLWxpc3QtZGVmYXVsdC1mbG9hdC1tYXJnaW46IHJlbS1jYWxjKC0yMikgIWRlZmF1bHQ7XG4kaW5saW5lLWxpc3QtZGVmYXVsdC1mbG9hdC1saXN0LW1hcmdpbjogcmVtLWNhbGMoMjIpICFkZWZhdWx0O1xuXG4kaW5saW5lLWxpc3QtcGFkZGluZzogMCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgb3ZlcmZsb3cgb2YgdGhlIGlubGluZSBsaXN0LlxuJGlubGluZS1saXN0LW92ZXJmbG93OiBoaWRkZW4gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIGxpc3QgaXRlbXNcbiRpbmxpbmUtbGlzdC1kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhbnkgZWxlbWVudHMgd2l0aGluIGxpc3QgaXRlbXNcbiRpbmxpbmUtbGlzdC1jaGlsZHJlbi1kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcblxuLy9cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgaW5saW5lIGxpc3RzXG5AbWl4aW4gaW5saW5lLWxpc3Qge1xuICBtYXJnaW46ICRpbmxpbmUtbGlzdC10b3AtbWFyZ2luIGF1dG8gJGlubGluZS1saXN0LWJvdHRvbS1tYXJnaW4gYXV0bztcbiAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkaW5saW5lLWxpc3QtZGVmYXVsdC1mbG9hdC1tYXJnaW47XG4gIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkaW5saW5lLWxpc3Qtb3Bwb3NpdGUtbWFyZ2luO1xuICBwYWRkaW5nOiAkaW5saW5lLWxpc3QtcGFkZGluZztcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgb3ZlcmZsb3c6ICRpbmxpbmUtbGlzdC1vdmVyZmxvdztcblxuICAmID4gbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGlubGluZS1saXN0LWRlZmF1bHQtZmxvYXQtbGlzdC1tYXJnaW47XG4gICAgZGlzcGxheTogJGlubGluZS1saXN0LWRpc3BsYXk7XG4gICAgJj4qIHsgZGlzcGxheTogJGlubGluZS1saXN0LWNoaWxkcmVuLWRpc3BsYXk7IH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiaW5saW5lLWxpc3RcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1pbmxpbmUtbGlzdC1jbGFzc2VzIHtcbiAgICAuaW5saW5lLWxpc3Qge1xuICAgICAgQGluY2x1ZGUgaW5saW5lLWxpc3QoKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEBuYW1lIF90YWJsZXMuc2Nzc1xuLy8gQGRlcGVuZGVuY2llcyBfZ2xvYmFsLnNjc3Ncbi8vXG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuXG4kaW5jbHVkZS1odG1sLXRhYmxlLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYmxlIGFuZCBldmVuIHJvd3NcbiR0YWJsZS1iZzogJHdoaXRlICFkZWZhdWx0O1xuJHRhYmxlLWV2ZW4tcm93LWJnOiAkc25vdyAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgdGFibGUgY2VsbCBib3JkZXIgc3R5bGVcbiR0YWJsZS1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kdGFibGUtYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSB0YWJsZSBoZWFkIHN0eWxlc1xuJHRhYmxlLWhlYWQtYmc6ICR3aGl0ZS1zbW9rZSAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSB0YWJsZSBmb290IHN0eWxlc1xuJHRhYmxlLWZvb3QtYmc6ICR0YWJsZS1oZWFkLWJnICFkZWZhdWx0O1xuJHRhYmxlLWZvb3QtZm9udC1zaXplOiAkdGFibGUtaGVhZC1mb250LXNpemUgIWRlZmF1bHQ7XG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLWZvb3QtZm9udC13ZWlnaHQ6ICR0YWJsZS1oZWFkLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJHRhYmxlLWZvb3QtcGFkZGluZzogJHRhYmxlLWhlYWQtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgY2FwdGlvblxuJHRhYmxlLWNhcHRpb24tYmc6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHRhYmxlLWNhcHRpb24tZm9udC1jb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvciAhZGVmYXVsdDtcbiR0YWJsZS1jYXB0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJHRhYmxlLWNhcHRpb24tZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHJvdyBwYWRkaW5nIGFuZCBmb250IHN0eWxlc1xuJHRhYmxlLXJvdy1wYWRkaW5nOiByZW0tY2FsYyg5IDEwKSAhZGVmYXVsdDtcbiR0YWJsZS1yb3ctZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kdGFibGUtcm93LWZvbnQtY29sb3I6ICRqZXQgIWRlZmF1bHQ7XG4kdGFibGUtbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcblxuLy8gVGhlc2UgYXJlIGZvciBjb250cm9sbGluZyB0aGUgbGF5b3V0LCBkaXNwbGF5IGFuZCBtYXJnaW4gb2YgdGFibGVzXG4kdGFibGUtbGF5b3V0OiBhdXRvICFkZWZhdWx0O1xuJHRhYmxlLWRpc3BsYXk6IHRhYmxlLWNlbGwgIWRlZmF1bHQ7XG4kdGFibGUtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG5AbWl4aW4gdGFibGUge1xuICBiYWNrZ3JvdW5kOiAkdGFibGUtYmc7XG4gIG1hcmdpbi1ib3R0b206ICR0YWJsZS1tYXJnaW4tYm90dG9tO1xuICBib3JkZXI6ICR0YWJsZS1ib3JkZXItc3R5bGUgJHRhYmxlLWJvcmRlci1zaXplICR0YWJsZS1ib3JkZXItY29sb3I7XG4gIHRhYmxlLWxheW91dDogJHRhYmxlLWxheW91dDtcblxuICBjYXB0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtY2FwdGlvbi1iZztcbiAgICBjb2xvcjogJHRhYmxlLWNhcHRpb24tZm9udC1jb2xvcjtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiAkdGFibGUtY2FwdGlvbi1mb250LXNpemU7XG4gICAgICB3ZWlnaHQ6ICR0YWJsZS1jYXB0aW9uLWZvbnQtd2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtaGVhZC1iZztcblxuICAgIHRyIHtcbiAgICAgIHRoLFxuICAgICAgdGQge1xuICAgICAgICBwYWRkaW5nOiAkdGFibGUtaGVhZC1wYWRkaW5nO1xuICAgICAgICBmb250LXNpemU6ICR0YWJsZS1oZWFkLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR0YWJsZS1oZWFkLWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWZvb3QtYmc7XG5cbiAgICB0ciB7XG4gICAgICB0aCxcbiAgICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzogJHRhYmxlLWZvb3QtcGFkZGluZztcbiAgICAgICAgZm9udC1zaXplOiAkdGFibGUtZm9vdC1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkdGFibGUtZm9vdC1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICR0YWJsZS1mb290LWZvbnQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdHIge1xuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1yb3ctcGFkZGluZztcbiAgICAgIGZvbnQtc2l6ZTogJHRhYmxlLXJvdy1mb250LXNpemU7XG4gICAgICBjb2xvcjogJHRhYmxlLXJvdy1mb250LWNvbG9yO1xuICAgICAgdGV4dC1hbGlnbjogJGRlZmF1bHQtZmxvYXQ7XG4gICAgfVxuXG4gICAgJi5ldmVuLFxuICAgICYuYWx0LFxuICAgICY6bnRoLW9mLXR5cGUoZXZlbikgeyBiYWNrZ3JvdW5kOiAkdGFibGUtZXZlbi1yb3ctYmc7IH1cbiAgfVxuXG4gIHRoZWFkIHRyIHRoLFxuICB0Zm9vdCB0ciB0aCxcbiAgdGZvb3QgdHIgdGQsXG4gIHRib2R5IHRyIHRoLFxuICB0Ym9keSB0ciB0ZCxcbiAgdHIgdGQgeyBkaXNwbGF5OiAkdGFibGUtZGlzcGxheTsgbGluZS1oZWlnaHQ6ICR0YWJsZS1saW5lLWhlaWdodDsgfVxufVxuXG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJ0YWJsZVwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLXRhYmxlLWNsYXNzZXMge1xuICAgIHRhYmxlIHtcbiAgICAgIEBpbmNsdWRlIHRhYmxlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImdyaWRcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG5cbiRpbmNsdWRlLWh0bWwtdGFicy1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbiR0YWJzLW5hdmlnYXRpb24tcGFkZGluZzogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvcjogJHNpbHZlciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWJnLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWhvdmVyLWJnLWNvbG9yOiBzY2FsZS1jb2xvcigkdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAtNiUpICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtZm9udC1jb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1mb250LWNvbG9yICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4kdGFicy1jb250ZW50LW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDI0KSAhZGVmYXVsdDtcbiR0YWJzLWNvbnRlbnQtcGFkZGluZzogKCRjb2x1bW4tZ3V0dGVyLzIpICFkZWZhdWx0O1xuXG4kdGFicy12ZXJ0aWNhbC1uYXZpZ2F0aW9uLW1hcmdpbi1ib3R0b206IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJ0YWJcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC10YWJzLWNsYXNzZXMge1xuICAgIC50YWJzIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBkZCwgLnRhYi10aXRsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgICAgID4gYSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgYmFja2dyb3VuZDoge1xuICAgICAgICAgICAgY29sb3I6ICR0YWJzLW5hdmlnYXRpb24tYmctY29sb3I7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3I7XG4gICAgICAgICAgcGFkZGluZzogJHRhYnMtbmF2aWdhdGlvbi1wYWRkaW5nICR0YWJzLW5hdmlnYXRpb24tcGFkZGluZyAqIDI7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICR0YWJzLW5hdmlnYXRpb24tZm9udC1mYW1pbHk7XG4gICAgICAgICAgZm9udC1zaXplOiAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtc2l6ZTtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHtcbiAgICAgICAgICAgICAgY29sb3I6ICR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICY6Zm9jdXN7XG4gICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuYWN0aXZlIGEge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHtcbiAgICAgICAgICAgIGNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1iZy1jb2xvcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29sb3I6JHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtZm9udC1jb2xvcjtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLnJhZGl1cyB7XG4gICAgICAgIGRkOmZpcnN0LWNoaWxkLCAudGFiOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBhIHsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRnbG9iYWwtcmFkaXVzKTsgfVxuICAgICAgICB9XG4gICAgICAgIGRkOmxhc3QtY2hpbGQsIC50YWI6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYSB7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRnbG9iYWwtcmFkaXVzKTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgZGQsIC50YWItdGl0bGUge1xuICAgICAgICAgIHBvc2l0aW9uOiBpbmhlcml0O1xuICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC50YWJzLWNvbnRlbnQge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkdGFicy1jb250ZW50LW1hcmdpbi1ib3R0b207XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgID4gLmNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJzLWNvbnRlbnQtcGFkZGluZyAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgJi5hY3RpdmUgeyBkaXNwbGF5OiBibG9jazsgZmxvYXQ6IG5vbmU7IH1cbiAgICAgICAgJi5jb250YWluZWQgeyBwYWRkaW5nOiAkdGFicy1jb250ZW50LXBhZGRpbmc7IH1cbiAgICAgIH1cbiAgICAgICYudmVydGljYWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgPiAuY29udGVudCB7IHBhZGRpbmc6IDAgJHRhYnMtY29udGVudC1wYWRkaW5nOyB9XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIC50YWJzIHtcbiAgICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDIwJTtcbiAgICAgICAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgICAgICAgbWFyZ2luOiAwIDAgJHRhYnMtdmVydGljYWwtbmF2aWdhdGlvbi1tYXJnaW4tYm90dG9tO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAudGFicy1jb250ZW50IHtcbiAgICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDgwJTtcbiAgICAgICAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAtMXB4O1xuICAgICAgICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06IDFyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLm5vLWpzIHtcbiAgICAgIC50YWJzLWNvbnRlbnQgPiAuY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWdyaWQtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuJGluY2x1ZGUteGwtaHRtbC1ncmlkLWNsYXNzZXM6IGZhbHNlICFkZWZhdWx0O1xuXG4kcm93LXdpZHRoOiByZW0tY2FsYygxMDAwKSAhZGVmYXVsdDtcbiR0b3RhbC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcblxuJGxhc3QtY2hpbGQtZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb24gIWRlZmF1bHQ7XG5cbi8vXG4vLyBHcmlkIEZ1bmN0aW9uc1xuLy9cblxuLy8gRGVwcmVjYXRlZDogV2UnbGwgZHJvcCBzdXBwb3J0IGZvciB0aGlzIGluIDUuMSwgdXNlIGdyaWQtY2FsYygpXG5AZnVuY3Rpb24gZ3JpZENhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucykge1xuICBAd2FybiBcImdyaWRDYWxjKCkgaXMgZGVwcmVjYXRlZCwgdXNlIGdyaWQtY2FsYygpXCI7XG4gIEByZXR1cm4gZ3JpZC1jYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpO1xufVxuXG4vLyBARlVOQ1RJT05cbi8vICRjb2xOdW1iZXIgLSBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG4vLyAkdG90YWxDb2x1bW5zIC0gRm91bmQgaW4gc2V0dGluZ3MgZmlsZVxuQGZ1bmN0aW9uIGdyaWQtY2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKSB7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgoJGNvbE51bWJlciAvICR0b3RhbENvbHVtbnMpKTtcbn1cblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbi8vIEZvciBjcmVhdGluZyBjb250YWluZXIsIG5lc3RlZCwgYW5kIGNvbGxhcHNlZCByb3dzLlxuLy9cbi8vXG4vLyAkYmVoYXZpb3IgLSBBbnkgc3BlY2lhbCBiZWhhdmlvciBmb3IgdGhpcyByb3c/IERlZmF1bHQ6IGZhbHNlLiBPcHRpb25zOiBuZXN0LCBjb2xsYXBzZSwgbmVzdC1jb2xsYXBzZSwgZmFsc2UuXG5AbWl4aW4gZ3JpZC1yb3coJGJlaGF2aW9yOiBmYWxzZSkge1xuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhuZXN0KTsgdG8gaW5jbHVkZSBhIG5lc3RlZCByb3dcbiAgQGlmICRiZWhhdmlvciA9PSBuZXN0IHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IC0oJGNvbHVtbi1ndXR0ZXIvMik7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IC0oJGNvbHVtbi1ndXR0ZXIvMik7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhjb2xsYXBzZSk7IHRvIGNvbGxhcHNlZCBhIGNvbnRhaW5lciByb3cgbWFyZ2luc1xuICBAZWxzZSBpZiAkYmVoYXZpb3IgPT0gY29sbGFwc2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3cobmVzdC1jb2xsYXBzZSk7IHRvIGNvbGxhcHNlIG91dGVyIG1hcmdpbnMgb24gYSBuZXN0ZWQgcm93XG4gIEBlbHNlIGlmICRiZWhhdmlvciA9PSBuZXN0LWNvbGxhcHNlIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93OyB0byB1c2UgYSBjb250YWluZXIgcm93XG4gIEBlbHNlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGF1dG87XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1heC13aWR0aDogJHJvdy13aWR0aDtcbiAgfVxuXG4gIC8vIENsZWFyZml4IGZvciBhbGwgcm93c1xuICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xufVxuXG4vLyBDcmVhdGVzIGEgY29sdW1uLCBzaG91bGQgYmUgdXNlZCBpbnNpZGUgb2YgYSBtZWRpYSBxdWVyeSB0byBjb250cm9sIGxheW91dHNcbi8vXG4vLyAkY29sdW1ucyAtIFRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGlzIHNob3VsZCBiZVxuLy8gJGxhc3QtY29sdW1uIC0gSXMgdGhpcyB0aGUgbGFzdCBjb2x1bW4/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJGNlbnRlciAtIENlbnRlciB0aGVzZSBjb2x1bW5zPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRvZmZzZXQgLSAjIG9mIGNvbHVtbnMgdG8gb2Zmc2V0LiBEZWZhdWx0OiBmYWxzZS5cbi8vICRwdXNoIC0gIyBvZiBjb2x1bW5zIHRvIHB1c2guIERlZmF1bHQ6IGZhbHNlLlxuLy8gJHB1bGwgLSAjIG9mIGNvbHVtbnMgdG8gcHVsbC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkY29sbGFwc2UgLSBHZXQgcmlkIG9mIGd1dHRlciBwYWRkaW5nIG9uIGNvbHVtbj8gRGVmYXVsdDogZmFsc2UuXG4vLyAkZmxvYXQgLSBTaG91bGQgdGhpcyBmbG9hdD8gRGVmYXVsdDogdHJ1ZS4gT3B0aW9uczogdHJ1ZSwgZmFsc2UsIGxlZnQsIHJpZ2h0LlxuQG1peGluIGdyaWQtY29sdW1uKFxuICAkY29sdW1uczpmYWxzZSxcbiAgJGxhc3QtY29sdW1uOmZhbHNlLFxuICAkY2VudGVyOmZhbHNlLFxuICAkb2Zmc2V0OmZhbHNlLFxuICAkcHVzaDpmYWxzZSxcbiAgJHB1bGw6ZmFsc2UsXG4gICRjb2xsYXBzZTpmYWxzZSxcbiAgJGZsb2F0OnRydWUsXG4gICRwb3NpdGlvbjpmYWxzZSkge1xuXG4gIC8vIElmIHBvc2l0aW9uZWQgZm9yIGRlZmF1bHQgLmNvbHVtbiwgaW5jbHVkZSByZWxhdGl2ZSBwb3NpdGlvblxuICAvLyBwdXNoIGFuZCBwdWxsIHJlcXVpcmUgcG9zaXRpb24gc2V0XG4gIEBpZiAkcG9zaXRpb24gb3IgJHB1c2ggb3IgJHB1bGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC8vIElmIGNvbGxhcHNlZCwgZ2V0IHJpZCBvZiBndXR0ZXIgcGFkZGluZ1xuICBAaWYgJGNvbGxhcHNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gIC8vIEd1dHRlciBwYWRkaW5nIHdoZW5ldmVyIGEgY29sdW1uIGlzbid0IHNldCB0byBjb2xsYXBzZVxuICAvLyAodXNlICRjb2xsYXBzZTpudWxsIHRvIGRvIG5vdGhpbmcpXG4gIEBlbHNlIGlmICRjb2xsYXBzZSA9PSBmYWxzZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAoJGNvbHVtbi1ndXR0ZXIgLyAyKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAoJGNvbHVtbi1ndXR0ZXIgLyAyKTtcbiAgfVxuXG4gIC8vIElmIGEgY29sdW1uIG51bWJlciBpcyBnaXZlbiwgY2FsY3VsYXRlIHdpZHRoXG4gIEBpZiAkY29sdW1ucyB7XG4gICAgd2lkdGg6IGdyaWQtY2FsYygkY29sdW1ucywgJHRvdGFsLWNvbHVtbnMpO1xuXG4gICAgLy8gSWYgbGFzdCBjb2x1bW4sIGZsb2F0IG5hdHVyYWxseSBpbnN0ZWFkIG9mIHRvIHRoZSByaWdodFxuICAgIEBpZiAkbGFzdC1jb2x1bW4geyBmbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjsgfVxuICB9XG5cbiAgLy8gU291cmNlIE9yZGVyaW5nLCBhZGRzIGxlZnQvcmlnaHQgZGVwZW5kaW5nIG9uIHdoaWNoIHlvdSB1c2UuXG4gIEBpZiAkcHVzaCB7ICN7JGRlZmF1bHQtZmxvYXR9OiBncmlkLWNhbGMoJHB1c2gsICR0b3RhbC1jb2x1bW5zKTsgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bzsgfVxuICBAaWYgJHB1bGwgeyAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBncmlkLWNhbGMoJHB1bGwsICR0b3RhbC1jb2x1bW5zKTsgI3skZGVmYXVsdC1mbG9hdH06IGF1dG87IH1cblxuICBAaWYgJGZsb2F0IHtcbiAgICBAaWYgJGZsb2F0ID09IGxlZnQgb3IgJGZsb2F0ID09IHRydWUgeyBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7IH1cbiAgICBAZWxzZSBpZiAkZmxvYXQgPT0gcmlnaHQgeyBmbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjsgfVxuICAgIEBlbHNlIHsgZmxvYXQ6IG5vbmU7IH1cbiAgfVxuXG4gIC8vIElmIGNlbnRlcmVkLCBnZXQgcmlkIG9mIGZsb2F0IGFuZCBhZGQgYXBwcm9wcmlhdGUgbWFyZ2luc1xuICBAaWYgJGNlbnRlciB7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBhdXRvO1xuICAgIGZsb2F0OiBub25lO1xuICB9XG5cbiAgLy8gSWYgb2Zmc2V0LCBjYWxjdWxhdGUgYXBwcm9wcmlhdGUgbWFyZ2luc1xuICBAaWYgJG9mZnNldCB7IG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogZ3JpZC1jYWxjKCRvZmZzZXQsICR0b3RhbC1jb2x1bW5zKSAhaW1wb3J0YW50OyB9XG5cbn1cblxuLy8gQ3JlYXRlIHByZXNlbnRhdGlvbmFsIGNsYXNzZXMgZm9yIGdyaWRcbi8vXG4vLyAkc2l6ZSAtIE5hbWUgb2YgY2xhc3MgdG8gdXNlLCBpLmUuIFwibGFyZ2VcIiB3aWxsIGdlbmVyYXRlIC5sYXJnZS0xLCAubGFyZ2UtMiwgZXRjLlxuQG1peGluIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplKSB7XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgIC4jeyRzaXplfS1wdXNoLSN7JGl9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG4gICAgLiN7JHNpemV9LXB1bGwtI3skaX0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC5jb2x1bW4sXG4gIC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6ZmFsc2UsICRwb3NpdGlvbjp0cnVlKTsgfVxuXG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkdG90YWwtY29sdW1ucyB7XG4gICAgLiN7JHNpemV9LSN7JGl9IHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6JGksJGNvbGxhcHNlOm51bGwsJGZsb2F0OmZhbHNlKTsgfVxuICB9XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgIC4jeyRzaXplfS1vZmZzZXQtI3skaX0geyBAaW5jbHVkZSBncmlkLWNvbHVtbigkb2Zmc2V0OiRpLCAkY29sbGFwc2U6bnVsbCwkZmxvYXQ6ZmFsc2UpOyB9XG4gIH1cblxuICAuI3skc2l6ZX0tcmVzZXQtb3JkZXIge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgfVxuXG4gIC5jb2x1bW4uI3skc2l6ZX0tY2VudGVyZWQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LWNlbnRlcmVkIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNlbnRlcjp0cnVlLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTsgfVxuXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZCB7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgfVxuXG4gIC8vIEZpZ2h0aW5nIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdOmxhc3QtY2hpbGRcbiAgLmNvbHVtbi4jeyRzaXplfS1jZW50ZXJlZDpsYXN0LWNoaWxkLFxuICAuY29sdW1ucy4jeyRzaXplfS1jZW50ZXJlZDpsYXN0LWNoaWxke1xuICAgIGZsb2F0OiBub25lO1xuICB9XG5cbiAgLy8gRmlnaHRpbmcgLmNvbHVtbi48cHJldmlvdXMtc2l6ZT4tY2VudGVyZWQ6bGFzdC1jaGlsZFxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQ6bGFzdC1jaGlsZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQub3Bwb3NpdGUsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQub3Bwb3NpdGUge1xuICAgIGZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xuICB9XG5cblx0LnJvdyB7XG5cdFx0Ji4jeyRzaXplfS1jb2xsYXBzZSB7XG5cdFx0XHQ+IC5jb2x1bW4sXG5cdFx0XHQ+IC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbGxhcHNlOnRydWUsICRmbG9hdDpmYWxzZSk7IH1cblxuXHRcdFx0LnJvdyB7bWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7fVxuXHRcdH1cblx0XHQmLiN7JHNpemV9LXVuY29sbGFwc2Uge1xuXHRcdFx0PiAuY29sdW1uLFxuXHRcdFx0PiAuY29sdW1ucyB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWQtY29sdW1uO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiZ3JpZFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWdyaWQtY2xhc3NlcyB7XG4gICAgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdztcblxuICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgICA+IC5jb2x1bW4sXG4gICAgICAgICA+IC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbGxhcHNlOnRydWUsICRmbG9hdDpmYWxzZSk7IH1cblxuICAgICAgICAucm93IHttYXJnaW4tbGVmdDowOyBtYXJnaW4tcmlnaHQ6MDt9XG4gICAgICB9XG5cbiAgICAgIC5yb3cgeyBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6bmVzdCk7XG4gICAgICAgICYuY29sbGFwc2UgeyBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6bmVzdC1jb2xsYXBzZSk7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sdW1uLFxuICAgIC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6JHRvdGFsLWNvbHVtbnMpOyB9XG5cbiAgICBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXTpsYXN0LWNoaWxkIHsgZmxvYXQ6ICRsYXN0LWNoaWxkLWZsb2F0OyB9XG4gICAgW2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl0uZW5kIHsgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0OyB9XG5cbiAgICBAbWVkaWEgI3skc21hbGwtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnNtYWxsKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTptZWRpdW0pO1xuICAgICAgLy8gT2xkIHB1c2ggYW5kIHB1bGwgY2xhc3Nlc1xuICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgICAgICAucHVzaC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIC5wdWxsLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTpsYXJnZSk7XG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgICAgIC5wdXNoLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLnB1bGwtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaWYgJGluY2x1ZGUteGwtaHRtbC1ncmlkLWNsYXNzZXMge1xuICAgIEBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnhsYXJnZSk7XG4gICAgfVxuICAgIEBtZWRpYSAjeyR4eGxhcmdlLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4eGxhcmdlKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEBuYW1lIF90aHVtYnMuc2Nzc1xuLy8gQGRlcGVuZGVuY2llcyBfZ2xvYmFscy5zY3NzXG4vL1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cblxuJGluY2x1ZGUtaHRtbC1tZWRpYS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJvcmRlciBzdHlsZXNcbiR0aHVtYi1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJHRodW1iLWJvcmRlci13aWR0aDogNHB4ICFkZWZhdWx0O1xuJHRodW1iLWJvcmRlci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHRodW1iLWJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywuMikgIWRlZmF1bHQ7XG4kdGh1bWItYm94LXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwwLjUpICFkZWZhdWx0O1xuXG4vLyBSYWRpdXMgYW5kIHRyYW5zaXRpb24gc3BlZWQgZm9yIHRodW1ic1xuJHRodW1iLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG4kdGh1bWItdHJhbnNpdGlvbi1zcGVlZDogMjAwbXMgIWRlZmF1bHQ7XG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgaW1hZ2UgdGh1bWJuYWlsIHN0eWxlcy5cbi8vXG4vLyAkYm9yZGVyLXdpZHRoIC0gV2lkdGggb2YgYm9yZGVyIGFyb3VuZCB0aHVtYm5haWwuIERlZmF1bHQ6ICR0aHVtYi1ib3JkZXItd2lkdGguXG4vLyAkYm94LXNoYWRvdyAtIEJveCBzaGFkb3cgdG8gYXBwbHkgdG8gdGh1bWJuYWlsLiBEZWZhdWx0OiAkdGh1bWItYm94LXNoYWRvdy5cbi8vICRib3gtc2hhZG93LWhvdmVyIC0gQm94IHNoYWRvdyB0byBhcHBseSBvbiBob3Zlci4gRGVmYXVsdDogJHRodW1iLWJveC1zaGFkb3ctaG92ZXIuXG5AbWl4aW4gdGh1bWIoXG4gICRib3JkZXItd2lkdGg6JHRodW1iLWJvcmRlci13aWR0aCwgXG4gICRib3gtc2hhZG93OiR0aHVtYi1ib3gtc2hhZG93LCBcbiAgJGJveC1zaGFkb3ctaG92ZXI6JHRodW1iLWJveC1zaGFkb3ctaG92ZXIpIHtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiAkdGh1bWItYm9yZGVyLXN0eWxlICRib3JkZXItd2lkdGggJHRodW1iLWJvcmRlci1jb2xvcjtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3gtc2hhZG93OiAkYm94LXNoYWRvdztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAkYm94LXNoYWRvdy1ob3ZlcjtcbiAgfVxufVxuXG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJ0aHVtYlwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLW1lZGlhLWNsYXNzZXMge1xuXG4gICAgLyogSW1hZ2UgVGh1bWJuYWlscyAqL1xuICAgIC50aCB7XG4gICAgICBAaW5jbHVkZSB0aHVtYjtcbiAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGFsbCwkdGh1bWItdHJhbnNpdGlvbi1zcGVlZCxlYXNlLW91dCk7XG5cbiAgICAgICYucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCR0aHVtYi1yYWRpdXMpOyB9XG4gICAgfVxuICB9XG59IiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4kaW5jbHVkZS1odG1sLXR5cGUtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkZXIgZm9udCBzdHlsZXNcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGhlYWRlci1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuJGhlYWRlci1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xuJGhlYWRlci1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xuJGhlYWRlci10b3AtbWFyZ2luOiAuMnJlbSAhZGVmYXVsdDtcbiRoZWFkZXItYm90dG9tLW1hcmdpbjogLjVyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBmb250IHNpemVzXG4kaDEtZm9udC1zaXplOiByZW0tY2FsYyg0NCkgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiByZW0tY2FsYygzNykgIWRlZmF1bHQ7XG4kaDMtZm9udC1zaXplOiByZW0tY2FsYygyNykgIWRlZmF1bHQ7XG4kaDQtZm9udC1zaXplOiByZW0tY2FsYygyMykgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiByZW0tY2FsYygxOCkgIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkZXIgc2l6ZSByZWR1Y3Rpb24gb24gc21hbGwgc2NyZWVuc1xuJGgxLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kaDItZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRoMy1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoNSkgIWRlZmF1bHQ7XG4kaDQtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDUpICFkZWZhdWx0O1xuJGg1LWZvbnQtcmVkdWN0aW9uOiAwICFkZWZhdWx0O1xuJGg2LWZvbnQtcmVkdWN0aW9uOiAwICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIGhvdyBzdWJoZWFkZXJzIGFyZSBzdHlsZWQuXG4kc3ViaGVhZGVyLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG4kc3ViaGVhZGVyLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRoZWFkZXItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMzUlKSAhZGVmYXVsdDtcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kc3ViaGVhZGVyLXRvcC1tYXJnaW46IC4ycmVtICFkZWZhdWx0O1xuJHN1YmhlYWRlci1ib3R0b20tbWFyZ2luOiAuNXJlbSAhZGVmYXVsdDtcblxuLy8gQSBnZW5lcmFsIDxzbWFsbD4gc3R5bGluZ1xuJHNtYWxsLWZvbnQtc2l6ZTogNjAlICFkZWZhdWx0O1xuJHNtYWxsLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRoZWFkZXItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMzUlKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHBhcmFncmFwaHNcbiRwYXJhZ3JhcGgtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJHBhcmFncmFwaC1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWxpbmUtaGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWFzaWRlLWxpbmUtaGVpZ2h0OiAxLjM1ICFkZWZhdWx0O1xuJHBhcmFncmFwaC1hc2lkZS1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSA8Y29kZT4gdGFnc1xuJGNvZGUtY29sb3I6ICRvaWwgIWRlZmF1bHQ7XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGNvZGUtYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogNzAlKSAhZGVmYXVsdDtcbiRjb2RlLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kY29kZS1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGNvZGUtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkY29kZS1iYWNrZ3JvdW5kLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTAlKSAhZGVmYXVsdDtcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIpIHJlbS1jYWxjKDUpIHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgYW5jaG9yc1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcbiRhbmNob3ItZm9udC1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kYW5jaG9yLWZvbnQtY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgPGhyPiBlbGVtZW50XG4kaHItYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kaHItYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRoci1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBsaXN0c1xuJGxpc3QtZm9udC1mYW1pbHk6ICRwYXJhZ3JhcGgtZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kbGlzdC1mb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplICFkZWZhdWx0O1xuJGxpc3QtbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjFyZW0gIWRlZmF1bHQ7XG4kbGlzdC1vcmRlcmVkLXNpZGUtbWFyZ2luOiAxLjRyZW0gIWRlZmF1bHQ7XG4kbGlzdC1zaWRlLW1hcmdpbi1uby1idWxsZXQ6IDAgIWRlZmF1bHQ7XG4kbGlzdC1uZXN0ZWQtbWFyZ2luOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kZGVmaW5pdGlvbi1saXN0LWhlYWRlci13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJGRlZmluaXRpb24tbGlzdC1oZWFkZXItbWFyZ2luLWJvdHRvbTogLjNyZW0gIWRlZmF1bHQ7XG4kZGVmaW5pdGlvbi1saXN0LW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGJsb2NrcXVvdGVzXG4kYmxvY2txdW90ZS1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJGdhaW5zYm9ybyAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1jaXRlLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRoZWFkZXItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMjMlKSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWNpdGUtbGluay1jb2xvcjogJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBBY3JvbnltIHN0eWxlc1xuJGFjcm9ueW0tdW5kZXJsaW5lOiAxcHggZG90dGVkICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHBhZGRpbmcgYW5kIG1hcmdpblxuJG1pY3JvZm9ybWF0LXBhZGRpbmc6IHJlbS1jYWxjKDEwIDEyKSAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1tYXJnaW46IHJlbS1jYWxjKDAgMCAyMCAwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIGJvcmRlciBzdHlsZXNcbiRtaWNyb2Zvcm1hdC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJG1pY3JvZm9ybWF0LWJvcmRlci1jb2xvcjogJGdhaW5zYm9ybyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgZnVsbCBuYW1lIGZvbnQgc3R5bGVzXG4kbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBzdW1tYXJ5IGZvbnQgc3R5bGVzXG4kbWljcm9mb3JtYXQtc3VtbWFyeS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYWJiciBwYWRkaW5nXG4kbWljcm9mb3JtYXQtYWJici1wYWRkaW5nOiByZW0tY2FsYygwIDEpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFiYnIgZm9udCBzdHlsZXNcbiRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8gVGV4dCBhbGlnbm1lbnQgY2xhc3MgbmFtZXNcbiRhbGlnbi1jbGFzcy1uYW1lczpcbiAgc21hbGwtb25seSxcbiAgc21hbGwsXG4gIG1lZGl1bS1vbmx5LFxuICBtZWRpdW0sXG4gIGxhcmdlLW9ubHksXG4gIGxhcmdlLFxuICB4bGFyZ2Utb25seSxcbiAgeGxhcmdlLFxuICB4eGxhcmdlLW9ubHksXG4gIHh4bGFyZ2U7XG5cbi8vIFRleHQgYWxpZ25tZW50IGJyZWFrcG9pbnRzXG4kYWxpZ24tY2xhc3MtYnJlYWtwb2ludHM6XG4gICRzbWFsbC1vbmx5LFxuICAkc21hbGwtdXAsXG4gICRtZWRpdW0tb25seSxcbiAgJG1lZGl1bS11cCxcbiAgJGxhcmdlLW9ubHksXG4gICRsYXJnZS11cCxcbiAgJHhsYXJnZS1vbmx5LFxuICAkeGxhcmdlLXVwLFxuICAkeHhsYXJnZS1vbmx5LFxuICAkeHhsYXJnZS11cDtcblxuLy8gR2VuZXJhdGVzIHRleHQgYWxpZ24gYW5kIGp1c3RpZnkgY2xhc3Nlc1xuQG1peGluIGFsaWduLWNsYXNzZXN7XG4gIC50ZXh0LWxlZnQgICAgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgLnRleHQtcmlnaHQgICB7IHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgLnRleHQtY2VudGVyICB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LWp1c3RpZnkgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7IH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkYWxpZ24tY2xhc3MtbmFtZXMpIHtcbiAgICBAbWVkaWEgI3sobnRoKCRhbGlnbi1jbGFzcy1icmVha3BvaW50cywgJGkpKX0ge1xuICAgICAgLiN7KG50aCgkYWxpZ24tY2xhc3MtbmFtZXMsICRpKSl9LXRleHQtbGVmdCB7IHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAgICAgLiN7KG50aCgkYWxpZ24tY2xhc3MtbmFtZXMsICRpKSl9LXRleHQtcmlnaHQgICB7IHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LWNlbnRlciAgeyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAgICAgLiN7KG50aCgkYWxpZ24tY2xhc3MtbmFtZXMsICRpKSl9LXRleHQtanVzdGlmeSB7IHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuXG4vL1xuLy8gVHlwb2dyYXBoeSBQbGFjZWhvbGRlcnNcbi8vXG5cbi8vIFRoZXNlIHdpbGwgdGhyb3cgYSBkZXByZWNhdGlvbiB3YXJuaW5nIGlmIHVzZWQgd2l0aGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gbGVhZCB7XG4gIGZvbnQtc2l6ZTogJHBhcmFncmFwaC1mb250LXNpemUgKyByZW0tY2FsYygzLjUpO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG5AbWl4aW4gc3ViaGVhZGVyIHtcbiAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkc3ViaGVhZGVyLWZvbnQtY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLXRvcC1tYXJnaW47XG4gIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItYm90dG9tLW1hcmdpbjtcbn1cbkBpbmNsdWRlIGV4cG9ydHMoXCJ0eXBlXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtdHlwZS1jbGFzc2VzIHtcbiAgICAvLyBSZXNwb25zaXZlIFRleHQgYWxpZ25tZW50XG4gICAgQGluY2x1ZGUgYWxpZ24tY2xhc3NlcztcblxuICAgIC8qIFR5cG9ncmFwaHkgcmVzZXRzICovXG4gICAgZGl2LFxuICAgIGRsLFxuICAgIGR0LFxuICAgIGRkLFxuICAgIHVsLFxuICAgIG9sLFxuICAgIGxpLFxuICAgIGgxLFxuICAgIGgyLFxuICAgIGgzLFxuICAgIGg0LFxuICAgIGg1LFxuICAgIGg2LFxuICAgIHByZSxcbiAgICBmb3JtLFxuICAgIHAsXG4gICAgYmxvY2txdW90ZSxcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBtYXJnaW46MDtcbiAgICAgIHBhZGRpbmc6MDtcbiAgICB9XG5cbiAgICAvKiBEZWZhdWx0IExpbmsgU3R5bGVzICovXG4gICAgYSB7XG4gICAgICBjb2xvcjogJGFuY2hvci1mb250LWNvbG9yO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3ItaG92ZXI7XG4gICAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIFx0dGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpbWcgeyBib3JkZXI6bm9uZTsgfVxuICAgIH1cblxuICAgIC8qIERlZmF1bHQgcGFyYWdyYXBoIHN0eWxlcyAqL1xuICAgIHAge1xuICAgICAgZm9udC1mYW1pbHk6ICRwYXJhZ3JhcGgtZm9udC1mYW1pbHk7XG4gICAgICBmb250LXdlaWdodDogJHBhcmFncmFwaC1mb250LXdlaWdodDtcbiAgICAgIGZvbnQtc2l6ZTogJHBhcmFncmFwaC1mb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgICAmLmxlYWQgeyBAaW5jbHVkZSBsZWFkOyB9XG5cbiAgICAgICYgYXNpZGUge1xuICAgICAgICBmb250LXNpemU6ICRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1hc2lkZS1saW5lLWhlaWdodDtcbiAgICAgICAgZm9udC1zdHlsZTogJHBhcmFncmFwaC1hc2lkZS1mb250LXN0eWxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIERlZmF1bHQgaGVhZGVyIHN0eWxlcyAqL1xuICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLWZvbnQtY29sb3I7XG4gICAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcbiAgICAgIG1hcmdpbi10b3A6ICRoZWFkZXItdG9wLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRoZWFkZXItYm90dG9tLW1hcmdpbjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWxpbmUtaGVpZ2h0O1xuXG4gICAgICBzbWFsbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRzbWFsbC1mb250LWNvbG9yO1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBoMSB7IGZvbnQtc2l6ZTogJGgxLWZvbnQtc2l6ZSAtICRoMS1mb250LXJlZHVjdGlvbjsgfVxuICAgIGgyIHsgZm9udC1zaXplOiAkaDItZm9udC1zaXplIC0gJGgyLWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDMgeyBmb250LXNpemU6ICRoMy1mb250LXNpemUgLSAkaDMtZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoNCB7IGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZSAtICRoNC1mb250LXJlZHVjdGlvbjsgfVxuICAgIGg1IHsgZm9udC1zaXplOiAkaDUtZm9udC1zaXplIC0gJGg1LWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDYgeyBmb250LXNpemU6ICRoNi1mb250LXNpemUgLSAkaDYtZm9udC1yZWR1Y3Rpb247IH1cblxuICAgIC5zdWJoZWFkZXIgeyBAaW5jbHVkZSBzdWJoZWFkZXI7IH1cblxuICAgIGhyIHtcbiAgICAgIGJvcmRlcjogJGhyLWJvcmRlci1zdHlsZSAkaHItYm9yZGVyLWNvbG9yO1xuICAgICAgYm9yZGVyLXdpZHRoOiAkaHItYm9yZGVyLXdpZHRoIDAgMDtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgbWFyZ2luOiAkaHItbWFyZ2luIDAgKCRoci1tYXJnaW4gLSByZW0tY2FsYygkaHItYm9yZGVyLXdpZHRoKSk7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyogSGVscGZ1bCBUeXBvZ3JhcGh5IERlZmF1bHRzICovXG4gICAgZW0sXG4gICAgaSB7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICBzdHJvbmcsXG4gICAgYiB7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICBzbWFsbCB7XG4gICAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICBjb2RlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6ICRjb2RlLWJvcmRlci1zaXplO1xuICAgICAgYm9yZGVyLXN0eWxlOiAkY29kZS1ib3JkZXItc3R5bGU7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2RlLWJvcmRlci1jb2xvcjtcbiAgICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLyogTGlzdHMgKi9cbiAgICB1bCxcbiAgICBvbCxcbiAgICBkbCB7XG4gICAgICBmb250LXNpemU6ICRsaXN0LWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5lLWhlaWdodDtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICAgIGZvbnQtZmFtaWx5OiAkbGlzdC1mb250LWZhbWlseTtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgICAgJi5uby1idWxsZXQge1xuICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luLW5vLWJ1bGxldDtcbiAgICAgICAgbGkge1xuICAgICAgICAgIHVsLFxuICAgICAgICAgIG9sIHtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3QtbmVzdGVkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qIFVub3JkZXJlZCBMaXN0cyAqL1xuICAgIHVsIHtcbiAgICAgIGxpIHtcbiAgICAgICAgdWwsXG4gICAgICAgIG9sIHtcbiAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW5lc3RlZC1tYXJnaW47XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5zcXVhcmUsXG4gICAgICAmLmNpcmNsZSxcbiAgICAgICYuZGlzYyB7XG4gICAgICAgIGxpIHVsIHsgbGlzdC1zdHlsZTogaW5oZXJpdDsgfVxuICAgICAgfVxuXG4gICAgICAmLnNxdWFyZSB7IGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlOyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luO31cbiAgICAgICYuY2lyY2xlIHsgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7IG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW47fVxuICAgICAgJi5kaXNjIHsgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luO31cbiAgICAgICYubm8tYnVsbGV0IHsgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAgIH1cblxuICAgIC8qIE9yZGVyZWQgTGlzdHMgKi9cbiAgICBvbCB7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW9yZGVyZWQtc2lkZS1tYXJnaW47XG4gICAgICBsaSB7XG4gICAgICAgIHVsLFxuICAgICAgICBvbCB7XG4gICAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1uZXN0ZWQtbWFyZ2luO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBEZWZpbml0aW9uIExpc3RzICovXG4gICAgZGwge1xuICAgICAgZHQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGVmaW5pdGlvbi1saXN0LWhlYWRlci1tYXJnaW4tYm90dG9tO1xuICAgICAgICBmb250LXdlaWdodDogJGRlZmluaXRpb24tbGlzdC1oZWFkZXItd2VpZ2h0O1xuICAgICAgfVxuICAgICAgZGQgeyBtYXJnaW4tYm90dG9tOiAkZGVmaW5pdGlvbi1saXN0LW1hcmdpbi1ib3R0b207IH1cbiAgICB9XG5cbiAgICAvKiBBYmJyZXZpYXRpb25zICovXG4gICAgYWJicixcbiAgICBhY3JvbnltIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IDkwJTtcbiAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgY3Vyc29yOiAkY3Vyc29yLWhlbHAtdmFsdWU7XG4gICAgfVxuICAgIGFiYnIge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAmW3RpdGxlXSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRhY3JvbnltLXVuZGVybGluZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBCbG9ja3F1b3RlcyAqL1xuICAgIGJsb2NrcXVvdGUge1xuICAgICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICAgIGJvcmRlci0jeyRkZWZhdWx0LWZsb2F0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgICBjaXRlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJGJsb2NrcXVvdGUtY2l0ZS1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jaXRlLWZvbnQtY29sb3I7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBcIlxcMjAxNCBcXDAwMjBcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGEsXG4gICAgICAgIGE6dmlzaXRlZCB7XG4gICAgICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtbGluay1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBibG9ja3F1b3RlLFxuICAgIGJsb2NrcXVvdGUgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1mb250LWNvbG9yO1xuICAgIH1cblxuICAgIC8qIE1pY3JvZm9ybWF0cyAqL1xuICAgIC52Y2FyZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46ICRtaWNyb2Zvcm1hdC1tYXJnaW47XG4gICAgICBib3JkZXI6ICRtaWNyb2Zvcm1hdC1ib3JkZXItd2lkdGggJG1pY3JvZm9ybWF0LWJvcmRlci1zdHlsZSAkbWljcm9mb3JtYXQtYm9yZGVyLWNvbG9yO1xuICAgICAgcGFkZGluZzogJG1pY3JvZm9ybWF0LXBhZGRpbmc7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIC5mbiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC13ZWlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtc2l6ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudmV2ZW50IHtcbiAgICAgIC5zdW1tYXJ5IHsgZm9udC13ZWlnaHQ6ICRtaWNyb2Zvcm1hdC1zdW1tYXJ5LWZvbnQtd2VpZ2h0OyB9XG5cbiAgICAgIGFiYnIge1xuICAgICAgICBjdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkbWljcm9mb3JtYXQtYWJici1mb250LWRlY29yYXRpb247XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkbWljcm9mb3JtYXQtYWJici1mb250LXdlaWdodDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAkbWljcm9mb3JtYXQtYWJici1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgaDEsaDIsaDMsaDQsaDUsaDYgeyBsaW5lLWhlaWdodDogJGhlYWRlci1saW5lLWhlaWdodDsgfVxuICAgICAgaDEgeyBmb250LXNpemU6ICRoMS1mb250LXNpemU7IH1cbiAgICAgIGgyIHsgZm9udC1zaXplOiAkaDItZm9udC1zaXplOyB9XG4gICAgICBoMyB7IGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZTsgfVxuICAgICAgaDQgeyBmb250LXNpemU6ICRoNC1mb250LXNpemU7IH1cbiAgICAgIGg1IHsgZm9udC1zaXplOiAkaDUtZm9udC1zaXplOyB9XG4gICAgICBoNiB7IGZvbnQtc2l6ZTogJGg2LWZvbnQtc2l6ZTsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gRm91bmRhdGlvbiBWaXNpYmlsaXR5IENsYXNzZXNcbi8vXG4kaW5jbHVkZS1odG1sLXZpc2liaWxpdHktY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuJGluY2x1ZGUtYWNjZXNzaWJpbGl0eS1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuJGluY2x1ZGUtdGFibGUtdmlzaWJpbGl0eS1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuJGluY2x1ZGUtbGVnYWN5LXZpc2liaWxpdHktY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcblxuLy9cbi8vIE1lZGlhIENsYXNzIE5hbWVzXG4vL1xuLy8gVmlzaWJpbGl0eSBCcmVha3BvaW50c1xuJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplczpcbiAgc21hbGwsXG4gIG1lZGl1bSxcbiAgbGFyZ2UsXG4gIHhsYXJnZSxcbiAgeHhsYXJnZTtcblxuJHZpc2liaWxpdHktYnJlYWtwb2ludC1xdWVyaWVzOlxuICB1bnF1b3RlKCRzbWFsbC11cCksXG4gIHVucXVvdGUoJG1lZGl1bS11cCksXG4gIHVucXVvdGUoJGxhcmdlLXVwKSxcbiAgdW5xdW90ZSgkeGxhcmdlLXVwKSxcbiAgdW5xdW90ZSgkeHhsYXJnZS11cCk7XG5cbkBtaXhpbiB2aXNpYmlsaXR5LWxvb3Age1xuICBAZWFjaCAkY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnQgaW4gJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcyB7XG4gICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6ICgpO1xuXG4gICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogKCk7XG5cbiAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6ICgpO1xuXG4gICAgQGVhY2ggJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50IGluICR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMge1xuICAgICAgQGlmIGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgPCBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgLy8gU21hbGxlciB0aGFuIGN1cnJlbnQgYnJlYWtwb2ludFxuXG4gICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG5cbiAgICAgICAgLy8gRm91bmRhdGlvbiA0IGNvbXBhdGliaWxpdHk6XG4gICAgICAgIC8vIEluY2x1ZGUgLnNob3cvaGlkZS1mb3ItW3NpemVdIGFuZCAuc2hvdy9oaWRlLWZvci1bc2l6ZV0tZG93biBjbGFzc2VzXG4gICAgICAgIC8vIGZvciBzbWFsbCwgbWVkaXVtLCBhbmQgbGFyZ2UgYnJlYWtwb2ludHMgb25seVxuICAgICAgICBAaWYgJGluY2x1ZGUtbGVnYWN5LXZpc2liaWxpdHktY2xhc3NlcyBhbmQgaW5kZXgoKHNtYWxsLCBtZWRpdW0sIGxhcmdlKSwgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSAhPSBmYWxzZSB7XG4gICAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duLCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgIH1cblxuICAgICAgfSBAZWxzZSBpZiBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpID4gaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50KSB7XG4gICAgICAgIC8vIExhcmdlciB0aGFuIGN1cnJlbnQgYnJlYWtwb2ludFxuXG4gICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG5cbiAgICAgICAgLy8gRm91bmRhdGlvbiA0IGNvbXBhdGliaWxpdHk6XG4gICAgICAgIC8vIEluY2x1ZGUgLnNob3cvaGlkZS1mb3ItW3NpemVdIGFuZCAuc2hvdy9oaWRlLWZvci1bc2l6ZV0tZG93biBjbGFzc2VzXG4gICAgICAgIC8vIGZvciBzbWFsbCwgbWVkaXVtLCBhbmQgbGFyZ2UgYnJlYWtwb2ludHMgb25seVxuICAgICAgICBAaWYgJGluY2x1ZGUtbGVnYWN5LXZpc2liaWxpdHktY2xhc3NlcyBhbmQgaW5kZXgoKHNtYWxsLCBtZWRpdW0sIGxhcmdlKSwgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSAhPSBmYWxzZSB7XG4gICAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duLCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgIH1cblxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIEN1cnJlbnQgYnJlYWtwb2ludFxuXG4gICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG5cbiAgICAgICAgLy8gRm91bmRhdGlvbiA0IGNvbXBhdGliaWxpdHk6XG4gICAgICAgIC8vIEluY2x1ZGUgLnNob3cvaGlkZS1mb3ItW3NpemVdIGFuZCAuc2hvdy9oaWRlLWZvci1bc2l6ZV0tZG93biBjbGFzc2VzXG4gICAgICAgIC8vIGZvciBzbWFsbCwgbWVkaXVtLCBhbmQgbGFyZ2UgYnJlYWtwb2ludHMgb25seVxuICAgICAgICBAaWYgJGluY2x1ZGUtbGVnYWN5LXZpc2liaWxpdHktY2xhc3NlcyBhbmQgaW5kZXgoKHNtYWxsLCBtZWRpdW0sIGxhcmdlKSwgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSAhPSBmYWxzZSB7XG4gICAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duLCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiAjeyRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludH0gZGlzcGxheXMgKi9cbiAgICBAbWVkaWEgI3tudGgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1xdWVyaWVzLCBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnQpKX0ge1xuICAgICAgI3skdmlzaWJpbGl0eS1pbmhlcml0LWxpc3R9IHtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgI3skdmlzaWJpbGl0eS1ub25lLWxpc3R9IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgQGlmICRpbmNsdWRlLWFjY2Vzc2liaWxpdHktY2xhc3NlcyAhPSBmYWxzZSB7XG4gICAgICAgICN7JHZpc2liaWxpdHktdmlzaWJsZS1saXN0fSB7XG4gICAgICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgICAgICB9XG4gICAgICAgICN7JHZpc2liaWxpdHktaGlkZGVuLWxpc3R9IHtcbiAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGlmICRpbmNsdWRlLXRhYmxlLXZpc2liaWxpdHktY2xhc3NlcyAhPSBmYWxzZSB7XG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgICAgICB9XG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuQGlmICRpbmNsdWRlLWh0bWwtdmlzaWJpbGl0eS1jbGFzc2VzICE9IGZhbHNlIHtcblxuICBAaW5jbHVkZSB2aXNpYmlsaXR5LWxvb3A7XG5cbiAgLyogT3JpZW50YXRpb24gdGFyZ2V0aW5nICovXG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAvKiBTcGVjaWZpYyB2aXNpYmlsaXR5IGZvciB0YWJsZXMgKi9cbiAgdGFibGUge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIH1cbiAgdGhlYWQge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICB9XG4gIHRib2R5IHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgfVxuICB0ciB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIH1cbiAgdGQsXG4gIHRoIHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIH1cblxuICBAbWVkaWEgI3skbGFuZHNjYXBlfSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXG4gICAgdGFibGUge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0aGVhZCB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0Ym9keSB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0ciB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0ZCxcbiAgICB0aCB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAbWVkaWEgI3skcG9ydHJhaXR9IHtcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCxcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICAvKiBTcGVjaWZpYyB2aXNpYmlsaXR5IGZvciB0YWJsZXMgKi9cbiAgICB0YWJsZSB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRoZWFkIHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRib2R5IHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRyIHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRkLFxuICAgIHRoIHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIC8qIFRvdWNoLWVuYWJsZWQgZGV2aWNlIHRhcmdldGluZyAqL1xuICAuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCAuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIC8qIFNwZWNpZmljIHZpc2liaWxpdHkgZm9yIHRhYmxlcyAqL1xuICB0YWJsZS5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRhYmxlLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0aGVhZC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0aGVhZC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRib2R5LmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRib2R5LnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdHIuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdHIuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0ZC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGQuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgdGguaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRoLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgLy8gT25seSBpbmNsdWRlIHRoZXNlIHN0eWxlcyBpZiB5b3Ugd2FudCB0aGVtLlxuICAgIEBpZiAkaW5jbHVkZS1wcmludC1zdHlsZXMge1xuICAgICAgLypcbiAgICAgICAqIFByaW50IHN0eWxlcy5cbiAgICAgICAqXG4gICAgICAgKiBJbmxpbmVkIHRvIGF2b2lkIHJlcXVpcmVkIEhUVFAgY29ubmVjdGlvbjogd3d3LnBocGllZC5jb20vZGVsYXktbG9hZGluZy15b3VyLXByaW50LWNzcy9cbiAgICAgICAqIENyZWRpdCB0byBQYXVsIElyaXNoIGFuZCBIVE1MNSBCb2lsZXJwbGF0ZSAoaHRtbDVib2lsZXJwbGF0ZS5jb20pXG4gICAgICAqL1xuICAgICAgLnByaW50LW9ubHkgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICoge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgY29sb3I6ICRibGFjayAhaW1wb3J0YW50OyAvKiBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zICovXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgICAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgICAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgICAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgICAgIGEsXG4gICAgICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG5cbiAgICAgICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cblxuICAgICAgICAvLyBEb24ndCBzaG93IGxpbmtzIGZvciBpbWFnZXMsIG9yIGphdmFzY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAgICAgLmlyIGE6YWZ0ZXIsXG4gICAgICAgIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlcixcbiAgICAgICAgYVtocmVmXj1cIiNcIl06YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyB9XG5cbiAgICAgICAgcHJlLFxuICAgICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYWx1bWludW07XG4gICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IC8qIGg1YnAuY29tL3QgKi8gfVxuXG4gICAgICAgIHRyLFxuICAgICAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgICAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgICAgIHAsXG4gICAgICAgIGgyLFxuICAgICAgICBoMyB7XG4gICAgICAgICAgb3JwaGFuczogMztcbiAgICAgICAgICB3aWRvd3M6IDM7XG4gICAgICAgIH1cblxuICAgICAgICBoMixcbiAgICAgICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICAgICAgIC5oaWRlLW9uLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5wcmludC1vbmx5IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgICAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gICAgICB9XG4gICAgfVxuXG4gIC8qIFByaW50IHZpc2liaWxpdHkgKi9cbiAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgfVxufVxuIiwiQGltcG9ydCBcIm5hdi9ob3Jpem9udGFsXCI7XG5cbiRwYWdpbmF0aW9uLWl0ZW0taGVpZ2h0OiAgICAgICAgMnJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tc2lkZS1wYWRkaW5nOiAgMXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogICAgICAgMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZDogICAgI2VmZWZlZiAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1czogMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemU6ICAgMXB4ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1ib3JkZXItY29sb3I6ICAjY2NjICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogICAgICAgICAjMzMzICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZDogICAgIzAwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1ib3JkZXItY29sb3I6ICAjMDAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWNvbG9yOiAgICAgICAgICNlZWUgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYmFja2dyb3VuZDogICAgICAjY2NjICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItaXRlbS1jb2xvcjogICAgICAgICAgICMwMDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJvcmRlci1jb2xvcjogICAgI2FhYSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24taW5jbHVkZS1tZWRpYXF1ZXJpZXM6ICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1mdWxsLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzAwcHgpXCIgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWlzLWxvYWRlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiAkcGFnaW5hdGlvbi1pcy1sb2FkZWQgPT0gZmFsc2Uge1xuICAgIC5wYWdpbmF0aW9uLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbiB7XG4gICAgICAgIEBleHRlbmQgJW5hdi0taG9yaXpvbnRhbDtcbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbl9faXRlbSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQ7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgICAgIFxuICAgICAgICAucGFnaW5hdGlvbiAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItc2l6ZSA+IDAge1xuICAgICAgICAgICAgYm9yZGVyOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1zaXplIHNvbGlkICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLWNvbG9yO1xuXG4gICAgICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID09IDAge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXMgPiAwIGFuZCAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcgPiAwIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyA9PSAwIGFuZCAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXMgPiAwIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgICAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemUgPiAwIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcgPT0gMCBhbmQgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzID4gMCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHBhZ2luYXRpb24taXRlbS1oZWlnaHQ7XG4gICAgICAgICAgICBjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHBhZ2luYXRpb24taXRlbS1zaWRlLXBhZGRpbmc7XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJvcmRlci1jb2xvcjtcblxuICAgICAgICAgICAgYSxcbiAgICAgICAgICAgIGE6aG92ZXIsXG4gICAgICAgICAgICBhOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHBhZ2luYXRpb24taG92ZXItaXRlbS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uIHtcblxuICAgICAgICAucGFnaW5hdGlvbl9faXRlbS0tbmV4dCxcbiAgICAgICAgLnBhZ2luYXRpb25fX2l0ZW0tLXByZXZpb3VzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwYWdpbmF0aW9uLWl0ZW0taGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYm9yZGVyLWNvbG9yO1xuICAgICAgICBjb2xvcjogJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAwICRwYWdpbmF0aW9uLWl0ZW0tc2lkZS1wYWRkaW5nO1xuXG4gICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcgPiAwIGFuZCAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXMgPiAwIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcgPT0gMCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICRwYWdpbmF0aW9uLWlzLWxvYWRlZDogdHJ1ZTtcblxuICAgIEBpZiAkcGFnaW5hdGlvbi1pbmNsdWRlLW1lZGlhcXVlcmllcyA9PSB0cnVlIHtcbiAgICAgICAgQG1lZGlhICN7JHBhZ2luYXRpb24tZnVsbC1icmVha3BvaW50fSB7XG4gICAgICAgICAgICAucGFnaW5hdGlvbiAucGFnaW5hdGlvbl9faXRlbSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIkBpbXBvcnQgXCJuYXZcIjtcblxuJG5hdi0taG9yaXpvbnRhbC1pcy1sb2FkZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgJG5hdi0taG9yaXpvbnRhbC1pcy1sb2FkZWQgPT0gZmFsc2Uge1xuICAgICVuYXYtLWhvcml6b250YWwge1xuICAgICAgICBAZXh0ZW5kICVuYXY7XG5cbiAgICAgICAgPiBsaSB7XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uYXYtLWhvcml6b250YWwge1xuICAgICAgICBAZXh0ZW5kICVuYXYtLWhvcml6b250YWw7XG4gICAgfVxuXG4gICAgJG5hdi0taG9yaXpvbnRhbC1pcy1sb2FkZWQ6IHRydWU7XG59IiwiJG5hdi1pcy1sb2FkZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgJG5hdi1pcy1sb2FkZWQgPT0gZmFsc2Uge1xuICAgICVuYXYge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJG5hdi1pcy1sb2FkZWQ6IHRydWU7XG59IiwiLyoqXG4gKiBJY29Nb29uIGdlbmVyYXRlZCBpY29uc1xuICogU2VlIHRoZSB0aGVtZSBhc3NldHMvZm9udHMgZm9sZGVyIGZvciBmb250IGZpbGVzXG4gKiBhbmQganNvbiBmaWxlIHRvIHVzZSBvbiBpY29tb29uIHRvIGRldmVsb3AgdGhpc1xuICogZm9udCBmdXJ0aGVyXG4gKlxuICogVGhpcyBpY29uIGZvbnQgaXMgbGFyZ2VseSBiYXNlZCBvbiBhIGN1c3RvbSBzZWxlY3Rpb25cbiAqIG9mIGljb25zIGZyb20gdGhlIE1hdGVyaWFsIERlc2lnbiBpY29uIHBhY2suXG4gKi9cblxuQGltcG9ydCAnaWNvbi12YXJzJztcblxuJGljb21vb24tZm9udC1wYXRoOiBcIi9hc3NldHMyL2ZvbnRzL3Bpb25lZXJcIiAhZGVmYXVsdDtcblxuQG1peGluIGljb24oJGljb246IGZhbHNlKSB7XG5cdC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gICAgZm9udC1mYW1pbHk6ICdwaW9uZWVyJyAhaW1wb3J0YW50O1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxuXHRAaWYgJGljb24ge1xuXHRcdGNvbnRlbnQ6IFwiI3skaWNvbn1cIjtcblx0fVxufVxuXG5AZm9udC1mYWNlIHtcblx0Zm9udC1mYW1pbHk6ICdwaW9uZWVyJztcbiAgICBzcmM6dXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vcGlvbmVlci5lb3Q/dGwyY2Y3Jyk7XG4gICAgc3JjOnVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9L3Bpb25lZXIuZW90P3RsMmNmNyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgdXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vcGlvbmVlci50dGY/dGwyY2Y3JykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICB1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS9waW9uZWVyLndvZmY/dGwyY2Y3JykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9L3Bpb25lZXIuc3ZnP3RsMmNmNyNwaW9uZWVyJykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuW2NsYXNzXj1cImljb24tXCJdLFxuW2NsYXNzKj1cIiBpY29uLVwiXSB7XG5cdEBpbmNsdWRlIGljb24oKTtcbn1cblxuLmljb24tbWVkaXVtOmJlZm9yZSB7XG5cdGZvbnQtc2l6ZTogMS4yNWVtO1xuXHR2ZXJ0aWNhbC1hbGlnbjogLTcuNSU7XG59XG5cbi5pY29uLWxhcmdlOmJlZm9yZSB7XG5cdGZvbnQtc2l6ZTogMS41ZW07XG5cdHZlcnRpY2FsLWFsaWduOiAtMTUlO1xufVxuXG4uaWNvbi14bGFyZ2U6YmVmb3JlIHtcblx0Zm9udC1zaXplOiAyZW07XG5cdHZlcnRpY2FsLWFsaWduOiAtMTUlO1xufVxuXG4uaWNvbi1sb2NhbC1zaGlwcGluZyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItbG9jYWwtc2hpcHBpbmc7XG4gICAgfVxufVxuLmljb24tc3RvY2tleGNoYW5nZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItc3RvY2tleGNoYW5nZTtcbiAgICB9XG59XG4uaWNvbi1jcmVkaXQtY2FyZCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItY3JlZGl0LWNhcmQ7XG4gICAgfVxufVxuLmljb24tcGxhY2Uge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXBsYWNlO1xuICAgIH1cbn1cbi5pY29uLXdhbGxldC1naWZ0Y2FyZCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItd2FsbGV0LWdpZnRjYXJkO1xuICAgIH1cbn1cbi5pY29uLWZsaWdodCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZmxpZ2h0O1xuICAgIH1cbn1cbi5pY29uLWFkZC1zaG9wcGluZy1jYXJ0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1hZGQtc2hvcHBpbmctY2FydDtcbiAgICB9XG59XG4uaWNvbi1kZWxldGUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWRlbGV0ZTtcbiAgICB9XG59XG4uaWNvbi1leGl0LXRvLWFwcCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZXhpdC10by1hcHA7XG4gICAgfVxufVxuLmljb24tZmF2b3JpdGUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWZhdm9yaXRlO1xuICAgIH1cbn1cbi5pY29uLWhvbWUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWhvbWU7XG4gICAgfVxufVxuLmljb24taW5mbyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItaW5mbztcbiAgICB9XG59XG4uaWNvbi1sYW5ndWFnZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItbGFuZ3VhZ2U7XG4gICAgfVxufVxuLmljb24tcHJpbnQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXByaW50O1xuICAgIH1cbn1cbi5pY29uLXNlYXJjaCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItc2VhcmNoO1xuICAgIH1cbn1cbi5pY29uLXNob3BwaW5nLWNhcnQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXNob3BwaW5nLWNhcnQ7XG4gICAgfVxufVxuLmljb24tZXJyb3Ige1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWVycm9yO1xuICAgIH1cbn1cbi5pY29uLXdhcm5pbmcge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXdhcm5pbmc7XG4gICAgfVxufVxuLmljb24tY2FsbCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItY2FsbDtcbiAgICB9XG59XG4uaWNvbi12cG4ta2V5IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci12cG4ta2V5O1xuICAgIH1cbn1cbi5pY29uLWFkZCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItYWRkO1xuICAgIH1cbn1cbi5pY29uLW1haWwge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLW1haWw7XG4gICAgfVxufVxuLmljb24tYXR0YWNoLW1vbmV5IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1hdHRhY2gtbW9uZXk7XG4gICAgfVxufVxuLmljb24ta2V5Ym9hcmQtYXJyb3ctZG93biB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXIta2V5Ym9hcmQtYXJyb3ctZG93bjtcbiAgICB9XG59XG4uaWNvbi1icmlnaHRuZXNzLTEge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWJyaWdodG5lc3MtMTtcbiAgICB9XG59XG4uaWNvbi1jaGVjayB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItY2hlY2s7XG4gICAgfVxufVxuLmljb24tY2hldnJvbi1sZWZ0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1jaGV2cm9uLWxlZnQ7XG4gICAgfVxufVxuLmljb24tY2hldnJvbi1yaWdodCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItY2hldnJvbi1yaWdodDtcbiAgICB9XG59XG4uaWNvbi1jbG9zZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItY2xvc2U7XG4gICAgfVxufVxuLmljb24tbWVudSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItbWVudTtcbiAgICB9XG59XG4uaWNvbi1yZWZyZXNoIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1yZWZyZXNoO1xuICAgIH1cbn1cbi5pY29uLXBlcnNvbiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItcGVyc29uO1xuICAgIH1cbn1cbi5pY29uLXN0YXIge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXN0YXI7XG4gICAgfVxufVxuLmljb24tc3Rhci1oYWxmIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zdGFyLWhhbGY7XG4gICAgfVxufVxuLmljb24tc3Rhci1vdXRsaW5lIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zdGFyLW91dGxpbmU7XG4gICAgfVxufVxuLmljb24tZ29vZ2xlcGx1cyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZ29vZ2xlcGx1cztcbiAgICB9XG59XG4uaWNvbi1mYWNlYm9vayB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZmFjZWJvb2s7XG4gICAgfVxufVxuLmljb24tZWxsbyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZWxsbztcbiAgICB9XG59XG4uaWNvbi1pbnN0YWdyYW0ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWluc3RhZ3JhbTtcbiAgICB9XG59XG4uaWNvbi10d2l0dGVyIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci10d2l0dGVyO1xuICAgIH1cbn1cbi5pY29uLXlvdXR1YmUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXlvdXR1YmU7XG4gICAgfVxufVxuLmljb24tdmltZW8ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXZpbWVvO1xuICAgIH1cbn1cbi5pY29uLWZsaWNrciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZmxpY2tyO1xuICAgIH1cbn1cbi5pY29uLWJsb2dnZXIge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWJsb2dnZXI7XG4gICAgfVxufVxuLmljb24tbGlua2VkaW4ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWxpbmtlZGluO1xuICAgIH1cbn1cbi5pY29uLXBpbnRlcmVzdCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItcGludGVyZXN0O1xuICAgIH1cbn1cbiIsIiRpY29uLXZhci1sb2NhbC1zaGlwcGluZzogXCJcXGU2MjNcIjtcbiRpY29uLXZhci1zdG9ja2V4Y2hhbmdlOiBcIlxcZTYyMFwiO1xuJGljb24tdmFyLWNyZWRpdC1jYXJkOiBcIlxcZTYyMlwiO1xuJGljb24tdmFyLXBsYWNlOiBcIlxcZTYyMVwiO1xuJGljb24tdmFyLXdhbGxldC1naWZ0Y2FyZDogXCJcXGU2MWVcIjtcbiRpY29uLXZhci1mbGlnaHQ6IFwiXFxlNjFmXCI7XG4kaWNvbi12YXItYWRkLXNob3BwaW5nLWNhcnQ6IFwiXFxlNjAwXCI7XG4kaWNvbi12YXItZGVsZXRlOiBcIlxcZTYwMVwiO1xuJGljb24tdmFyLWV4aXQtdG8tYXBwOiBcIlxcZTYwMlwiO1xuJGljb24tdmFyLWZhdm9yaXRlOiBcIlxcZTYwM1wiO1xuJGljb24tdmFyLWhvbWU6IFwiXFxlNjFjXCI7XG4kaWNvbi12YXItaW5mbzogXCJcXGU2MThcIjtcbiRpY29uLXZhci1sYW5ndWFnZTogXCJcXGU2MDRcIjtcbiRpY29uLXZhci1wcmludDogXCJcXGU2MDVcIjtcbiRpY29uLXZhci1zZWFyY2g6IFwiXFxlNjA2XCI7XG4kaWNvbi12YXItc2hvcHBpbmctY2FydDogXCJcXGU2MDdcIjtcbiRpY29uLXZhci1lcnJvcjogXCJcXGU2MTlcIjtcbiRpY29uLXZhci13YXJuaW5nOiBcIlxcZTYxYVwiO1xuJGljb24tdmFyLWNhbGw6IFwiXFxlNjA4XCI7XG4kaWNvbi12YXItdnBuLWtleTogXCJcXGU2MDlcIjtcbiRpY29uLXZhci1hZGQ6IFwiXFxlNjBhXCI7XG4kaWNvbi12YXItbWFpbDogXCJcXGU2MGJcIjtcbiRpY29uLXZhci1hdHRhY2gtbW9uZXk6IFwiXFxlNjBjXCI7XG4kaWNvbi12YXIta2V5Ym9hcmQtYXJyb3ctZG93bjogXCJcXGU2MGRcIjtcbiRpY29uLXZhci1icmlnaHRuZXNzLTE6IFwiXFxlNjBlXCI7XG4kaWNvbi12YXItY2hlY2s6IFwiXFxlNjFiXCI7XG4kaWNvbi12YXItY2hldnJvbi1sZWZ0OiBcIlxcZTYwZlwiO1xuJGljb24tdmFyLWNoZXZyb24tcmlnaHQ6IFwiXFxlNjEwXCI7XG4kaWNvbi12YXItY2xvc2U6IFwiXFxlNjExXCI7XG4kaWNvbi12YXItbWVudTogXCJcXGU2MTJcIjtcbiRpY29uLXZhci1yZWZyZXNoOiBcIlxcZTYxN1wiO1xuJGljb24tdmFyLXBlcnNvbjogXCJcXGU2MTNcIjtcbiRpY29uLXZhci1zdGFyOiBcIlxcZTYxNFwiO1xuJGljb24tdmFyLXN0YXItaGFsZjogXCJcXGU2MTVcIjtcbiRpY29uLXZhci1zdGFyLW91dGxpbmU6IFwiXFxlNjE2XCI7XG4kaWNvbi12YXItZ29vZ2xlcGx1czogXCJcXGVhODhcIjtcbiRpY29uLXZhci1mYWNlYm9vazogXCJcXGVhOGNcIjtcbiRpY29uLXZhci1lbGxvOiBcIlxcZWE4ZlwiO1xuJGljb24tdmFyLWluc3RhZ3JhbTogXCJcXGVhOTBcIjtcbiRpY29uLXZhci10d2l0dGVyOiBcIlxcZWE5MVwiO1xuJGljb24tdmFyLXlvdXR1YmU6IFwiXFxlYTk5XCI7XG4kaWNvbi12YXItdmltZW86IFwiXFxlYTljXCI7XG4kaWNvbi12YXItZmxpY2tyOiBcIlxcZWFhMVwiO1xuJGljb24tdmFyLWJsb2dnZXI6IFwiXFxlYWI5XCI7XG4kaWNvbi12YXItbGlua2VkaW46IFwiXFxlYWM5XCI7XG4kaWNvbi12YXItcGludGVyZXN0OiBcIlxcZWFkMFwiOyIsIiRzbWFsbC1wbHVzLXJhbmdlOiAoMjdlbSwgdXBwZXItYm91bmQoJHNtYWxsLXJhbmdlKSkgIWRlZmF1bHQ7XG4kbWVkaXVtLWRvd246ICAgICAgXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiAje3VwcGVyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIjtcbiRzbWFsbC1kb3duOiAgICAgICBcIiN7JHNjcmVlbn0gYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJHNtYWxsLXJhbmdlKX0pXCI7XG4kc21hbGwtcGx1czogICAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRzbWFsbC1wbHVzLXJhbmdlKX0pXCI7XG4kc21hbGwtcGx1cy11cDogICAgJHNtYWxsLXBsdXM7XG4kc21hbGwtcGx1cy1kb3duOiAgXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHNtYWxsLXBsdXMtcmFuZ2UpfSlcIjtcbiRzbWFsbC1wbHVzLW9ubHk6ICBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6ICN7bG93ZXItYm91bmQoJHNtYWxsLXBsdXMtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkc21hbGwtcGx1cy1yYW5nZSl9KVwiOyIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICBodG1sIHtcbiAgICAgICAgZm9udC1zaXplOiA4Ny41JTtcbiAgICB9XG59XG5cbi52ZXJ0aWNhbC1wb3MtaGVscGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tZG93bn0ge1xuICAgIC5oaWRlX29uX21vYmlsZSB7XG4gICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59IiwiLy8gRG9uJ3Qgb3V0bGluZSBtYWluIGNvbnRlbnQgd2hlbiBza2lwcGluZyBuYXZpZ2F0aW9uXG4jbWFpbi1jb250ZW50OmZvY3VzIHtcblx0b3V0bGluZTogbm9uZTtcbn1cblxuLy8gU2NyZWVuIHJlYWRlciBvbmx5XG4uc3Itb25seSB7XG4gICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1oaWRlKCk7XG59IiwiLmZvb3Rlcl9fbGlua3Mge1xuICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIC41cmVtO1xuXG4gICAgICAgICAgICBodG1sLnRvdWNoICYge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZvb3Rlcl9fY29tcGFueS1pbmZvLFxuLmZvb3Rlcl9fbWFkZS1ieSB7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG59XG5cbi5mb290ZXJfX21hZGUtYnkge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLmZvb3Rlcl9fY29va2llX25vdGljZSB7XG4gICAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6MjUlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDI1JTtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAuZm9vdGVyX19saW5rcyB7XG4gICAgICAgIG1hcmdpbi10b3A6IC41cmVtO1xuICAgIH1cbn0iLCIvKipcbiAqIEJvcnJvd2VkIHBhcnRzIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5lZGVuL2FuaW1hdGUuY3NzXG4gKi9cblxuLmFuaW1hdGVkIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sIDFzLCB3ZWJraXQgc3BlYyk7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgYm90aCwgd2Via2l0IHNwZWMpO1xufVxuXG4uYW5pbWF0ZSxcbi5ncm93bC1hbmltYXRlZCB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjRzIGVhc2UtaW4tb3V0KTtcbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGZhZGVJbkRvd24pIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCBub25lLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG4gICAgfVxufVxuXG4uZmFkZUluRG93biB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsIGZhZGVJbkRvd24sIHdlYmtpdCBzcGVjKTtcbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGZhZGVPdXRVcCkge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIH1cbn1cblxuLmZhZGVPdXRVcCB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsIGZhZGVPdXRVcCwgd2Via2l0IHNwZWMpO1xufSIsIiRiZXN0c2VsbGVyLWltYWdlLXNpemU6ICR0b3VjaC1mcmllbmRseS1zaXplICFkZWZhdWx0O1xuXG4uYmVzdHNlbGxlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogLjI1cmVtIDA7XG5cbiAgICAucm93IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbn1cblxuLmJlc3RzZWxsZXJfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBwYWRkaW5nOiAoKCR0b3VjaC1mcmllbmRseS1zaXplIC0gKDFyZW0gKiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0KSkvMikgMDtcbn1cblxuLmJlc3RzZWxsZXJfX2ltYWdlIHtcbiAgICB3aWR0aDogJGJlc3RzZWxsZXItaW1hZ2Utc2l6ZTtcbiAgICBoZWlnaHQ6ICRiZXN0c2VsbGVyLWltYWdlLXNpemU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLSN7JGJlc3RzZWxsZXItaW1hZ2Utc2l6ZSAvIDJ9O1xuICAgIGxpbmUtaGVpZ2h0OiAkYmVzdHNlbGxlci1pbWFnZS1zaXplO1xufVxuXG4uYmVzdHNlbGxlcl9faW1hZ2UgaW1nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWF4LXdpZHRoOiAkYmVzdHNlbGxlci1pbWFnZS1zaXplO1xuICAgIG1heC1oZWlnaHQ6ICRiZXN0c2VsbGVyLWltYWdlLXNpemU7XG59IiwiLmJsb2NrLWltYWdlLWdyaWQge1xuICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQoMyk7XG59IiwiLmJsb2NrX19ib3hfX2hlYWRsaW5lIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgIHBhZGRpbmc6IC41cmVtICRjb2x1bW4tZ3V0dGVyLzIgLjVyZW0gJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duKTtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1sYXJnZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuNXJlbTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSA0MDBtcyBlYXNlKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB9XG5cbiAgICAmLnRvZ2dsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRwcmltYXJ5LWNvbG9yKTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGV4KDE4MGRlZykpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi5ibG9ja19fYm94X19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBhZGRpbmc6IC41cmVtICRjb2x1bW4tZ3V0dGVyLzIgJGNvbHVtbi1ndXR0ZXIgJGNvbHVtbi1ndXR0ZXIvMjtcbn1cblxuLmJsb2NrX19ib3gge1xuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIHVsIGxpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cblxuICAgICAgICAmLnBhcmVudCB7XG4gICAgICAgICAgICA+IGEuanMtdG9nZ2xlLXZpc2liaWxpdHk6YmVmb3JlLCA+IC5tYWluLW5hdl9fdG9nZ2xlOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgZWFzZSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItYWRkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBhLnRvZ2dsZWQsID4gLm1haW4tbmF2X190b2dnbGUudG9nZ2xlZCB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDEzNWRlZykpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiB1bCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYmxvY2tfX2JveC0tbG9nb19saXN0IGE6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5ibG9ja19fbG9naW5fX2ZvcmdvdHBhc3N3b3JkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLXNtbCk7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbiNmb290ZXIge1xuICAgIC5mb290ZXItYmxvY2s6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xuXG4gICAgICAgIC5ibG9ja19fYm94Omxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiBsdW1hKCRmb290ZXItYmcpIDwgNTAge1xuICAgICAgICAkZm9vdGVyLXRleHQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRmb290ZXItYmcpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAkZm9vdGVyLXRleHQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJGZvb3Rlci1iZyk7XG4gICAgfVxuICAgICRmb290ZXItbGluay1wYWRkaW5nOiAoKCgkdG91Y2gtZnJpZW5kbHktc2l6ZSAtICgxcmVtICogJHBhcmFncmFwaC1saW5lLWhlaWdodCkpLzIpICsgLjI1cmVtKSAhZGVmYXVsdDtcblxuICAgIC5ibG9ja19fYm94IHtcbiAgICAgICAgbGkgYS5uZXV0cmFsLWxpbms6YmVmb3JlLFxuICAgICAgICBsaS5uZXV0cmFsLWxpbmsgPiBhOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRmb290ZXItYmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkgYS50b2dnbGVkOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGFsZXJ0LWNvbG9yLCAkZm9vdGVyLWJnKTtcbiAgICAgICAgfVxuICAgICAgICAubWFpbi1uYXZfX3RvZ2dsZSwgLm1haW4tbmF2X190b2dnbGU6YmVmb3JlIHtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoNTApO1xuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg1MCk7XG4gICAgICAgICAgICB0ZXh0LWluZGVudDogMDtcbiAgICAgICAgfVxuICAgICAgICBsaS5sZXZlbC0wIHtcbiAgICAgICAgICAgICYsIGxpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggcmdiYSgkZm9vdGVyLXRleHQtY29sb3IsICRib3JkZXItZGVmYXVsdC1vcGFjaXR5KSBzb2xpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRmb290ZXItbGluay1wYWRkaW5nIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9uIG1lbnUgbGV2ZWwgMSB3ZSB1c2UgcGx1cyBzaWduIGFzIHBhcmVudCBpbmRpY2F0b3IsIHNpbmNlIGxldmVsIDJcbiAgICAgICAgICogc3VibWVudXMgbWF5IHBvcCB1cCBib3RoIHRvIHRoZSBsZWZ0IGFuZCB0byB0aGUgcmlnaHRcbiAgICAgICAgICovXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAgICAgICBsaS5sZXZlbC0jeyRpfSB7XG4gICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6ICgkZm9vdGVyLWxpbmstcGFkZGluZyAqIDEuNSkgKiAkaTtcbiAgICAgICAgICAgICB9XG4gICAgIFx0fVxuICAgICAgICBsaS5wYXJlbnQge1xuXG4gICAgXHRcdCYgPiBhIHtcbiAgICBcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXHRcdH1cblxuICAgIFx0XHQmLmN1cnJlbnQsXG4gICAgXHRcdCYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgICYgPiB1bCB7XG4gICAgXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAjZm9vdGVyIHtcbiAgICAgICAgLmZvb3Rlci1ibG9jazpmaXJzdC1jaGlsZCxcbiAgICAgICAgLmZvb3Rlci1ibG9jazpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAuYmxvY2tfX2JveDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYmxvY2tfX2JveDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrX19ib3hfX2hlYWRsaW5lIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICYudG9nZ2xlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9ja19fYm94X19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgI2Zvb3RlciB7XG4gICAgICAgIC5mb290ZXItYmxvY2sge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG5cbiAgICAgICAgICAgIC5ibG9ja19fYm94Omxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmJsb2NrX19ib3gtLWJhbm5lcnMsXG4uYmxvY2tfX2JveC0tYmFubmVyc19yaWdodCxcbi5ibG9ja19fYm94LS1iYW5uZXJzX2xlZnQge1xuICAgIFxuICAgICYsIC5ibG9ja19fYm94X19jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICBcbiAgICAuYmxvY2tfX2JveF9faGVhZGxpbmUtd3JhcHBlcixcbiAgICAuYmxvY2tfX2JveF9faGVhZGxpbmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC53cmFwcGVyX2Jhbm5lciB7XG4gICAgXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBcdCYgPiBkaXYge1xuICAgIFx0XHRtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIC8vIEZ1bGwgc2l6ZSB0aGUgaW1hZ2VcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBAaWYgJGdsb2JhbC1yYWRpdXMgPiAwIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgLSAxOyAvLyBWaXN1YWwgc2ltaWxhcml0eSB0byBib3hlc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgIFx0XHQmOmxhc3QtY2hpbGQge1xuICAgIFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG4gICAgXHRcdH1cbiAgICBcdH1cbiAgICB9XG59XG5cbiIsIiVib3JkZXJlZCB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDA7XG59XG5cbi5ib3JkZXJlZCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG59XG5cbi5ib3JkZXJlZC0tYWxsIHtcbiAgICBAZXh0ZW5kICVib3JkZXJlZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbn1cblxuLmJvcmRlcmVkLS1ib3R0b20ge1xuICAgIEBleHRlbmQgJWJvcmRlcmVkO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcblxuICAgICYuYm9yZGVyZWRfX2xpc3QtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICB9XG59XG5cbi5ib3JkZXJlZC0tdG9wIHtcbiAgICBAZXh0ZW5kICVib3JkZXJlZDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XG59XG5cbi5ib3JkZXJlZC0tbGVmdCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbn1cblxuLmJvcmRlcmVkLS1yaWdodCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG59IiwiLyogc2VlIGZvdW5kYXRpb24vY29tcG9uZW50cy9icmVhZGNydW1icyBmb3IgdGhlIGJhc2Ugc3R5bGluZyBhbmQgb3B0aW9ucyAqL1xuXG4vLyBUaGlzIGlzIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gZGlzYWJsZSBmb3VuZGF0aW9uIG5hdiBzdHlsaW5nIHdpdGhvdXQgbG9zaW5nIGJyZWFkY3J1bWJzXG4kaW5jbHVkZS1xdWlja2ZpeC1icmVhZGNydW1icy1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYi1jb250YWluZXItaGVpZ2h0OiAkaDEtZm9udC1zaXplICogJGhlYWRlci1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWxpbmUtaGVpZ2h0OiAgICAgICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1wYWRkaW5nOiAgICAgICAgICAoJGJyZWFkY3J1bWItY29udGFpbmVyLWhlaWdodCAtICRjcnVtYi1mb250LXNpemUgKiAkYnJlYWRjcnVtYi1saW5lLWhlaWdodCkgLyAyICFkZWZhdWx0O1xuXG5AaWYgJGluY2x1ZGUtcXVpY2tmaXgtYnJlYWRjcnVtYnMtY2xhc3NlcyBhbmQgbm90ICRpbmNsdWRlLWh0bWwtbmF2LWNsYXNzZXMge1xuICAgIC5icmVhZGNydW1icyB7XG4gICAgICBAaW5jbHVkZSBjcnVtYi1jb250YWluZXI7XG4gICAgICBAaW5jbHVkZSByYWRpdXMoJGNydW1iLXJhZGl1cyk7XG5cbiAgICAgICY+KiB7XG4gICAgICAgIEBpbmNsdWRlIGNydW1icztcbiAgICAgIH1cbiAgICB9XG59XG5cbkBpZiAkaW5jbHVkZS1xdWlja2ZpeC1icmVhZGNydW1icy1jbGFzc2VzIHtcbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgICBmb250LWZhbWlseTogJGNydW1iLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAmID4gbGkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRicmVhZGNydW1iLWxpbmUtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJyZWFkY3J1bWJzICsgaDEge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkaDEtZm9udC1zaXplICogJGhlYWRlci1saW5lLWhlaWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRicmVhZGNydW1iLXBhZGRpbmcgMDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJib2R5IHtcbiAgICAuYnV0dG9uLCBidXR0b24ge1xuICAgIFx0QGV4dGVuZCAuYnV0dG9uLnJhZGl1cztcbiAgICB9XG59IiwiJGJ4c2xpZGVyLWNvbnRyb2xzLXNpemU6ICR0b3VjaC1mcmllbmRseS1zaXplICFkZWZhdWx0O1xuJGJ4c2xpZGVyLWNvbnRyb2xzLWJvcmRlci1zaXplOiAyICFkZWZhdWx0O1xuJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZTogJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kYnhzbGlkZXItY29udHJvbHMtbmF2aWdhdGlvbi1yYWRpdXM6ICRieHNsaWRlci1jb250cm9scy1zaXplLzIgIWRlZmF1bHQ7XG4kYnhzbGlkZXItY29udHJvbHMtbmF2aWdhdGlvbi1sb2NhdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcbiRieHNsaWRlci1wYWdlci1saW5rLWJnOiAkY29udGVudC1iZyAhZGVmYXVsdDtcbiRieHNsaWRlci1uYXYtYXJyb3ctc2l6ZTogcmVtLWNhbGMoMzApICFkZWZhdWx0O1xuXG4uYngtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYngtY29udHJvbHMtZGlyZWN0aW9uIGEge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtI3skYnhzbGlkZXItY29udHJvbHMtc2l6ZS8yfTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHdpZHRoOiAkYnhzbGlkZXItY29udHJvbHMtc2l6ZTtcbiAgICBoZWlnaHQ6ICRieHNsaWRlci1jb250cm9scy1zaXplO1xuICAgIHRleHQtaW5kZW50OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMsIC13ZWJraXQtdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiBlYXNlLCAwcztcbiAgICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgLW1vei10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIC1vLXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMik7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgJGJ4c2xpZGVyLWNvbnRyb2xzLW5hdmlnYXRpb24tcmFkaXVzLCBtcyBzcGVjKTtcbiAgICBib3JkZXI6ICN7JGJ4c2xpZGVyLWNvbnRyb2xzLWJvcmRlci1zaXplfXB4IHNvbGlkICNmZmY7XG5cbiAgICAuc2xpZGVyX193aXRoLW5hdiAmIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLSN7JGJ4c2xpZGVyLWNvbnRyb2xzLXNpemUvMiArICRieHNsaWRlci1idWxsZXQtbmF2LXNpemUvMn07XG4gICAgfVxuICAgXG4gICAgJjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0ZXh0LWluZGVudCAyMDBtcyBlYXNlKTtcbiAgICAgICAgd2lkdGg6ICRieHNsaWRlci1jb250cm9scy1zaXplO1xuICAgICAgICBmb250LXNpemU6ICRieHNsaWRlci1uYXYtYXJyb3ctc2l6ZTtcbiAgICAgICAgdG9wOiAtI3skYnhzbGlkZXItY29udHJvbHMtYm9yZGVyLXNpemV9cHg7XG4gICAgICAgIGxlZnQ6IC0jeyRieHNsaWRlci1jb250cm9scy1ib3JkZXItc2l6ZX1weDtcbiAgICAgICAgei1pbmRleDogMTAxO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vLyBSZXZlcnNlIGNvbG9yc1xuQGlmIGxpZ2h0bmVzcygkY29udGVudC1iZykgPiA1MCUge1xuICAgIC5ieC1jb250cm9scy1kaXJlY3Rpb24gYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAuNCk7XG4gICAgICAgIGJvcmRlcjogI3skYnhzbGlkZXItY29udHJvbHMtYm9yZGVyLXNpemV9cHggc29saWQgI2ZmZjtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAuOSk7XG4gICAgICAgIH1cbiAgICB9XG59IEBlbHNlIHtcbiAgICAuYngtY29udHJvbHMtZGlyZWN0aW9uIGEge1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwgLjI1KTtcbiAgICAgICAgYm9yZGVyOiAjeyRieHNsaWRlci1jb250cm9scy1ib3JkZXItc2l6ZX1weCBzb2xpZCAjMDAwO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsIC45KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJ4LW5leHQge1xuICAgIHJpZ2h0OiAjeyRjb2x1bW4tZ3V0dGVyLzJ9O1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWNoZXZyb24tcmlnaHQpO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDNweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyOmFmdGVyLFxuICAgICY6Zm9jdXM6YWZ0ZXIge1xuICAgICAgICB0ZXh0LWluZGVudDogOXB4O1xuICAgIH1cblxuICAgICY6YWN0aXZlOmFmdGVyIHtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgfVxuXG59XG5cbi5ieC1wcmV2IHtcbiAgICBsZWZ0OiAjeyRjb2x1bW4tZ3V0dGVyLzJ9O1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWNoZXZyb24tbGVmdCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWluZGVudDogLTNweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyOmFmdGVyLFxuICAgICY6Zm9jdXM6YWZ0ZXIge1xuICAgICAgICB0ZXh0LWluZGVudDogLTlweDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZTphZnRlciB7XG4gICAgICAgIHRleHQtaW5kZW50OiAwO1xuICAgIH1cbn1cblxuLmJ4LXBhZ2VyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLy8gVG8gcHJldmVudCBsYXJnZSBwYWludCBmcmFtZXMgb24gY2hyb21lIGZvciAuYngtcGFnZXItaXRlbVxuICAgIC8vIFdpdGhvdXQgdGhpcyAuYngtcGFnZXItaXRlbSBjb25zdW1lIDUuOE1CIGluc3RlYWQgb2YgNS44S0JcbiAgICBvdmVyZmxvdzogaGlkZGVuOyBcbn1cblxuLmJ4LXBhZ2VyLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5ieC1wYWdlci1saW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAkYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplO1xuICAgIHdpZHRoOiAkYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplO1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBmb250LXNpemU6IC44cmVtO1xuICAgICAgICBvcGFjaXR5OiAuMjU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1icmlnaHRuZXNzLTEpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnhzbGlkZXItcGFnZXItbGluay1iZztcbiAgICAgICAgQGlmICRieHNsaWRlci1wYWdlci1saW5rLWJnICE9IHRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgIEBpZiBsdW1hKCRieHNsaWRlci1wYWdlci1saW5rLWJnKSA8IDUwIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmcpO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCMwMDAsICRieHNsaWRlci1wYWdlci1saW5rLWJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtYmcsICRjb250ZW50LWJnKTtcbiAgICAgICAgfVxuICAgICAgICBoZWlnaHQ6ICRieHNsaWRlci1idWxsZXQtbmF2LXNpemU7XG4gICAgICAgIHdpZHRoOiAkYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGZvbnQtc2l6ZSAyMDBtcyBlYXNlKTtcbiAgICB9XG5cbiAgICAmLmFjdGl2ZTphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IC43NTtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cblxuICAgICY6aG92ZXI6YWZ0ZXIsXG4gICAgJjpmb2N1czphZnRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgQGlmICRieHNsaWRlci1wYWdlci1saW5rLWJnICE9IHRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmcpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgICAgICB9XG4gICAgICAgIG9wYWNpdHk6IC43NTtcbiAgICB9XG59XG5cbkBpZiAkYnhzbGlkZXItY29udHJvbHMtbmF2aWdhdGlvbi1sb2NhdGlvbiA9PSBvdXRzaWRlIHtcbiAgICBAbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgICAgIC5ieC1wcmV2IHtcbiAgICAgICAgICAgIGxlZnQ6IC0jeyRieHNsaWRlci1jb250cm9scy1zaXplICsgJGNvbHVtbi1ndXR0ZXJ9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ4LW5leHQge1xuICAgICAgICAgICAgcmlnaHQ6IC0jeyRieHNsaWRlci1jb250cm9scy1zaXplICsgJGNvbHVtbi1ndXR0ZXJ9O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cbn0iLCIkY2FydC1zdHlsZTogZnVsbCAhZGVmYXVsdDtcbiRjYXJ0LXF1YW50aXR5LWJhZGdlLXNpemU6IDEuNXJlbSAhZGVmYXVsdDtcbiRjYXJ0LXF1YW50aXR5LWJhZGdlLXJhZGl1czogNTAlICFkZWZhdWx0O1xuXG5AaW1wb3J0IFwiY2FydC1idXR0b24tZnVsbFwiO1xuQGltcG9ydCBcImNhcnQtYnV0dG9uLXNpbXBsZVwiO1xuXG5AaWYgJGNhcnQtc3R5bGUgPT0gZnVsbCB7XG4gICAgQGluY2x1ZGUgY2FydC1idXR0b24tZnVsbCgpO1xufSBAZWxzZWlmICRjYXJ0LXN0eWxlID09IHNpbXBsZSB7XG4gICAgQGluY2x1ZGUgY2FydC1idXR0b24tc2ltcGxlKCk7XG59XG4iLCIvLyBDYXJ0IGJ1dHRvbiB3aXRoIHF1YW50aXR5LCBzdW0gYW5kIGNoZWNrb3V0IGJ1dHRvblxuXG5AbWl4aW4gY2FydC1idXR0b24tZnVsbCgpIHtcbiAgICAuY2FydC1idXR0b25fX3F1YW50aXR5LFxuICAgIC5jYXJ0LWJ1dHRvbl9fc3VtLFxuICAgIC5jYXJ0LWJ1dHRvbl9fY3VycmVuY3kge1xuICAgICAgICBsaW5lLWhlaWdodDogJGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIGhlaWdodDogJGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZTtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b25fX3N1bSxcbiAgICAuY2FydC1idXR0b25fX2N1cnJlbmN5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b25fX3F1YW50aXR5IHtcbiAgICAgICAgQGV4dGVuZCAuY2FsbC10by1hY3Rpb24tY29sb3ItYmc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgQGluY2x1ZGUgcmFkaXVzKCRjYXJ0LXF1YW50aXR5LWJhZGdlLXJhZGl1cyk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRjYXJ0LXF1YW50aXR5LWJhZGdlLXNpemU7XG5cbiAgICAgICAgLmNhcnQtYnV0dG9uLS1lbXB0eSAmIHtcbiAgICAgICAgICAgIEBleHRlbmQgLnNlY29uZGFyeS1jb2xvci1iZztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJ0LWJ1dHRvbjpob3ZlciAmLFxuICAgICAgICAuY2FydC1idXR0b24tLWhpZ2hsaWdodGVkICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogJGhvdmVyLWJnLXRleHQtY29sb3I7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIC4xKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDIwMG1zIGVhc2UpO1xuICAgIH1cblxuICAgIC5pY29uLWxhcmdlci10aGFuOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItY2hldnJvbi1yaWdodCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTNweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDM3KTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tc2l6ZShyZW0tY2FsYygxMCkpO1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCB0cnVlKTtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogJGJ1dHRvbi1zaXplO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJ0LWljb246YmVmb3JlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTlweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbi0tZW1wdHkge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgIC5jYXJ0LWJ1dHRvbl9fc3VtLFxuICAgICAgICAuY2FydC1idXR0b25fX2N1cnJlbmN5LFxuICAgICAgICB+IC5jaGVja291dC1idXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhcnRfX2ljb24tY2FydCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC4xcmVtO1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmNhcnRfX2ljb24tcHJvY2VkZSAge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skc21hbGwtcGx1cy11cH0ge1xuICAgICAgICAuY2FydC1idXR0b25fX3N1bSxcbiAgICAgICAgLmNhcnQtYnV0dG9uX19jdXJyZW5jeSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59IiwiJGNhcnQtcXVhbnRpdHktYmFkZ2Utb2Zmc2V0OiA0cHg7XG5cbkBtaXhpbiBjYXJ0LWJ1dHRvbi1zaW1wbGUoKSB7XG5cbiAgICAuY2FydC1hbmQtY2hlY2tvdXQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX19xdWFudGl0eSB7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICBib3R0b206IC0jeyRjYXJ0LXF1YW50aXR5LWJhZGdlLW9mZnNldH07XG4gICAgICAgIHJpZ2h0OiAtI3skY2FydC1xdWFudGl0eS1iYWRnZS1vZmZzZXR9O1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkY2FydC1xdWFudGl0eS1iYWRnZS1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRjYXJ0LXF1YW50aXR5LWJhZGdlLXNpemU7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygwKTtcbiAgICAgICAgcGFkZGluZzogMCA0cHg7XG4gICAgICAgIEBleHRlbmQgLmNhbGwtdG8tYWN0aW9uLWNvbG9yLWJnO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgb3BhY2l0eTogLjk7XG5cbiAgICAgICAgLmNhcnQtYnV0dG9uLS1lbXB0eSAmIHtcbiAgICAgICAgICAgIEBleHRlbmQgLnNlY29uZGFyeS1jb2xvci1iZztcbiAgICAgICAgICAgIG9wYWNpdHk6IC45O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtYnV0dG9uOmhvdmVyICYsXG4gICAgICAgIC5jYXJ0LWJ1dHRvbi0taGlnaGxpZ2h0ZWQgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiAkaG92ZXItYmctdGV4dC1jb2xvcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggM3B4IHJnYmEoMCwgMCwgMCwgLjEpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMjAwbXMgZWFzZSk7XG4gICAgfVxuXG4gICAgLmljb24tbGFyZ2VyLXRoYW46YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1jaGV2cm9uLXJpZ2h0KTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTRweDtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b25fX2ljb246YmVmb3JlIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fdGV4dCxcbiAgICAuY2FydC1idXR0b25fX3N1bSxcbiAgICAuY2FydC1idXR0b25fX2N1cnJlbmN5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuY2FydC1hbmQtY2hlY2tvdXQgLmNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59IiwiJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRjaGVja291dC1tZWRpdW0tc3BhY2luZzogcmVtLWNhbGMoMzApICFkZWZhdWx0O1xuJGNoZWNrb3V0LWxhcmdlLXNwYWNpbmc6IHJlbS1jYWxjKDY5KSAhZGVmYXVsdDtcblxuJGNoZWNrb3V0LXN0ZXBzLWNvbnRhaW5lci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AaWYgKCRjaGVja291dC1zdGVwcy1jb250YWluZXItcmFkaXVzID4gMCkge1xuICAgICRjaGVja291dC1zdGVwcy1pbm5lci1jb250YWluZXItcmFkaXVzOiAkY2hlY2tvdXQtc3RlcHMtY29udGFpbmVyLXJhZGl1cyAtIDJweDtcbn0gQGVsc2Uge1xuICAgICRjaGVja291dC1zdGVwcy1pbm5lci1jb250YWluZXItcmFkaXVzOiAkY2hlY2tvdXQtc3RlcHMtY29udGFpbmVyLXJhZGl1cztcbn1cblxuJGVkaXQtc3RlcC1idG4tYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vIFVzZSByZWd1bGFyIGdyaWQgbWFyZ2lucyBmb3IgdGhlIGNoZWNrb3V0IGZvcm0gZ3JpZFxuI2thc3NlX29uZV9mb3JtLFxuI2thc3NlX29uZV9sb2dnaW5uIHtcbiAgICAucm93IC5yb3cge1xuICAgICAgICBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6IG5lc3QpO1xuXG4gICAgICAgIC5jb2x1bW4sXG4gICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIFplYnJhIHRhYmxlIHN0eWxpbmdcbiNrYXNzZV9vbmVfZm9ybSAuemVicmEge1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbiNrYXNzZV9vbmVfZm9ybSAuemVicmEgdHI6bGFzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLmNoZWNrb3V0X19zdGVwcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNoZWNrb3V0LXN0ZXBzLWJnO1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICBib3JkZXItcmFkaXVzOiAkY2hlY2tvdXQtc3RlcHMtY29udGFpbmVyLXJhZGl1cztcbiAgICBtYXJnaW4tdG9wOiAxZW07XG59XG5cbi8qIEVOSVJPIHNlYXJjaCAqL1xuXG4jZW5pcm9fZmV0Y2gge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuI2VuaXJvX29wdGlvbnMsXG4jZW5pcm9fbWVzc2FnZSxcbiNjbGllbnRfb3B0aW9ucyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI2VuaXJvX21lc3NhZ2Uge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuI2VuaXJvX29wdGlvbnMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbn1cblxuLmNhcnQtY29udGVudHMgLm1pbmktaW1nIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbn1cblxuLm1pbmktaW1nIGltZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogYnV0dG9ucyAqL1xuXG4uYnV0dG9uIC5hcnJvdyB7XG4gICAgcGFkZGluZy1sZWZ0OiAuNHJlbTtcbn1cblxuLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgYnV0dG9uLFxuICAgIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuYS5kaWFsb2dfdHJpZ2dlcixcbmEuZGlhbG9nX3RyaWdnZXI6bGluayxcbmEuZGlhbG9nX3RyaWdnZXI6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgIC5kaWFsb2ctcG9wdXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgfVxufVxuXG4uZGlhbG9nLXBvcHVwIGgyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xufVxuXG4uZGlhbG9nLXBvcHVwIHtcbiAgICAua2Fzc2Vfb25lX2xvZ2dpbm5fZXJyb3Ige1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC5mb3JtX3N1Ym1pdCB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xuICAgIH1cblxuICAgIC5mb3Jnb3RfcGFzc3dkIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxufVxuXG4uYWRkb25fYnV0dG9ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmctcmlnaHQ6ICRjaGVja291dC1zbWFsbC1zcGFjaW5nO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuXG4gICAgLmVkaXRfc3RlcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgICAgICAmLnRvZ2dsZWQgLmljb24tYWRkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoLTEzNWRlZykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmljb24tYWRkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgd2lkdGg6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gMC4zcyBlYXNlKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgwZGVnKSk7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5uZXh0LXN0ZXAtYnRuIHtcbiAgICAmLmJ1dHRvbiB7XG4gICAgICAgIEBleHRlbmQgJWNvbnRlbnRfX3ByaW1hcnktY29sb3ItYmc7XG4gICAgfVxuXG4gICAgLmljb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogLjVlbTtcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3RlcCAjY2xpZW50X2ZldGNoIHtcbiAgICBAZXh0ZW5kICVjb250ZW50X19wcmltYXJ5LWNvbG9yLWJnO1xufVxuXG4uZWRpdF9zdGVwLFxuLm1hcmtlcl9lZGl0X3N0ZXAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmc6IDAgLjVlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZWRpdC1zdGVwLWJ1dHRvbi1iZztcbiAgICBjb2xvcjogJGVkaXQtc3RlcC1idXR0b24tdGV4dC1jb2xvcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGVkaXQtc3RlcC1idG4tYm9yZGVyLXJhZGl1cztcbiAgICBmb250LXNpemU6IDExcHg7XG59XG5cbi5wbHVzLWljb24ge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZWRpdF9zdGVwOmxpbmssXG4uZWRpdF9zdGVwOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkZWRpdC1zdGVwLWJ1dHRvbi10ZXh0LWNvbG9yO1xufVxuXG4uY2hlY2tvdXQge1xuICAgIC5jaGVja291dF9fc3RlcC0taW5hY3RpdmU6aG92ZXIgLmVkaXRfc3RlcCxcbiAgICAuY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlIC5lZGl0X3N0ZXA6Zm9jdXMsXG4gICAgLmVkaXRfc3RlcDpob3ZlcixcbiAgICAuZWRpdF9zdGVwOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVkaXQtc3RlcC1ob3Zlci1iZztcbiAgICAgICAgY29sb3I6ICRlZGl0LXN0ZXAtaG92ZXItdGV4dC1jb2xvcjtcbiAgICB9XG59XG5cbi5lZGl0X3N0ZXA6aG92ZXIgLnBsdXMtaWNvbiB7XG4gICAgY29sb3I6ICRlZGl0LXN0ZXAtaG92ZXItdGV4dC1jb2xvcjtcbn1cblxuLmVkaXRfc3RlcCB7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbjogMTlweCAkY2hlY2tvdXQtc21hbGwtc3BhY2luZyAwIDA7XG59XG5cbi5tYXJrZXJfZWRpdF9zdGVwIHtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBtYXJnaW4tdG9wOiAtNHB4O1xufVxuXG4jcHJvZ3Jlc3MtbGlzdCAuY29tcGxldGUgLm1hcmtlcl9lZGl0X3N0ZXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbn1cblxuaW5wdXQuY2hlY2tvdXRfX3F0eSB7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4vLyBVcGRhdGUgY2FydCBidXR0b25cblxuLmNoZWNrb3V0X191cGRhdGUtY2FydC1idG4ge1xuICAgIC5jaGVja291dF9fdXBkYXRlLWNhcnQtYnRuX191cGRhdGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X191cGRhdGUtY2FydC1idG5fX2xvYWRpbmcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X191cGRhdGUtY2FydC1idG46ZGlzYWJsZWQge1xuICAgIC5jaGVja291dF9fdXBkYXRlLWNhcnQtYnRuX191cGRhdGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fdXBkYXRlLWNhcnQtYnRuX19sb2FkaW5nIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbn1cblxuLy8gVXBkYXRlIGNhcnQgYnV0dG9uIGFuaW1hdGlvblxuLmVsbGlwc2lzX29uZSxcbi5lbGxpcHNpc190d28sXG4uZWxsaXBzaXNfdGhyZWUge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uKGVsbGlwc2lzIDAuOXMgaW5maW5pdGUpO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwcyk7XG59XG5cbi5lbGxpcHNpc190d28ge1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjJzKTtcbn1cblxuLmVsbGlwc2lzX3RocmVlIHtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC4zcyk7XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhlbGxpcHNpcykge1xuICAgICAgMCUgeyBvcGFjaXR5OiAwOyB9XG4gICAgIDUwJSB7IG9wYWNpdHk6IDA7IH1cbiAgICAxMDAlIHsgb3BhY2l0eTogMTsgfVxufVxuXG4uZGlhbG9nLXBvcHVwIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi5kaWFsb2ctcG9wdXAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4ubXNnYm94IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBhZGRpbmc6IDFlbSAxZW0gMWVtIDFlbTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbXNnYm94LWJnO1xuICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgJG1zZ2JveC1ib3JkZXItY29sb3I7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuXG4gICAgYSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBwYWRkaW5nOiAwIDJlbSAwIDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbi5tc2dib3hfX2Nsb3NlIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMSk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRtc2dib3gtY2xvc2UtdGV4dC1jb2xvcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkbXNnYm94LWNsb3NlLXNoYWRvdy1jb2xvcjtcbiAgICBvcGFjaXR5OiAwLjI7XG4gICAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuXG4uY2hlY2tvdXRfX3N0ZXAge1xuICAgIHBhZGRpbmctdG9wOiAuNWVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgIGJhY2tncm91bmQ6ICRjb250ZW50LWJnO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbn1cblxuI2pzLWNoZWNrb3V0c3RlcF9fb3ZlcnZpZXcgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI2pzLWNoZWNrb3V0c3RlcF9fb3ZlcnZpZXcsXG4janMtY2hlY2tvdXRzdGVwX19wYXltZXRob2Qge1xuICAgIC5qcy10b2dnbGUtdmlzaWJpbGl0eS5lZGl0X3N0ZXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdGVwIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGNoZWNrb3V0LXN0ZXBzLWlubmVyLWNvbnRhaW5lci1yYWRpdXMgJGNoZWNrb3V0LXN0ZXBzLWlubmVyLWNvbnRhaW5lci1yYWRpdXMgMCAwO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkY2hlY2tvdXQtc3RlcHMtaW5uZXItY29udGFpbmVyLXJhZGl1cyAkY2hlY2tvdXQtc3RlcHMtaW5uZXItY29udGFpbmVyLXJhZGl1cztcbiAgICB9XG59XG5cblxuLyogSW5hY3RpdmUgc3RlcCBzdHlsZXMgKi9cblxuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgYmFja2dyb3VuZDogJGNoZWNrb3V0LXN0ZXAtaW5hY3RpdmUtYmc7XG59XG5cbi5jaGVja291dF9fc3RlcF9fbWlycm9yLFxuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlLnZhbGlkIC5jaGVja291dF9fc3RlcF9fbWlycm9yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbn1cblxuI2pzLWNoZWNrb3V0c3RlcF9fYWRkcmVzcyB7XG4gICAgaDIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIH1cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX21pcnJvciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICBwYWRkaW5nOiAwICRjaGVja291dC1zbWFsbC1zcGFjaW5nO1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4ja2Fzc2Vfb25lX2xvZ2luX3F1ZXN0aW9uLFxuI3dlbGNvbWVfbXNnLFxuI3dlbGNvbWVfbXNnLS10cnVlIHtcbiAgICBsaW5lLWhlaWdodDogMS41cmVtO1xufVxuXG4ja2Fzc2Vfb25lX2xvZ2luX3F1ZXN0aW9uIHAuc3VidGxlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ua2Fzc2Vfb25lX2xvZ2dpbm5fZXJyb3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUgaDIge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGNvbG9yOiByZ2JhKCRjb250ZW50LXRleHQtY29sb3IsIDAuOCk7XG59XG5cbi5jaGVja291dF9fc3RlcF9fbWlycm9yIHtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBwYWRkaW5nOiAwICRjaGVja291dC1zbWFsbC1zcGFjaW5nIDEuNWVtICRjaGVja291dC1sYXJnZS1zcGFjaW5nO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcblxuICAgIGgzIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjVlbSAwO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgfVxufVxuXG4ubWlycm9yX19maXJzdC1uYW1lLFxuLm1pcnJvcl9fbGFzdC1uYW1lLFxuLm1pcnJvcl9femlwLFxuLm1pcnJvcl9fY2l0eSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG5cbi8qIGVuZCBpbmFjdGl2ZSBzdGVwIHN0eWxlcyAqL1xuXG4vKiBmcmVpZ2h0IG9wdGlvbnMgKi9cblxuLmZyZWlnaHQtb3B0aW9ucyxcbi5wYXltZW50LW9wdGlvbnMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4gICAgLmZyZWlnaHQtb3B0aW9uLFxuICAgIC5wYXltZW50LW9wdGlvbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIEBleHRlbmQgLmJvcmRlcmVkLS1ib3R0b207XG4gICAgICAgIEBleHRlbmQgJWNvbnRlbnRfX2JvcmRlcmVkO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBheW1lbnQtb3B0aW9uIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAmID4gKiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFlbSAwIDFlbSAwO1xuXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wYXltZW50LW9wdGlvbl9fcHJpY2Uge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLnRlc3Qge1xuICAgICAgICAgICAgLnBheW1lbnQtb3B0aW9uX19uYW1lOjphZnRlciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci13YXJuaW5nKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGFsZXJ0LWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZnJlaWdodC1vcHRpb24ge1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZzogMWVtIDVweCAxZW0gJGNoZWNrb3V0LW1lZGl1bS1zcGFjaW5nO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMjJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mcmVpZ2h0LW9wdGlvbl9fbmFtZSB7XG4gICAgICAgIHdpZHRoOiA2MiU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogM3B4O1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAuZnJlaWdodC1vcHRpb25fX3ByaWNlIHtcbiAgICAgICAgd2lkdGg6IDI5JTtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICAuZnJlaWdodC1vcHRpb25fX2Rlc2MsXG4gICAgLnBheW1lbnQtb3B0aW9uX19kZXNjLFxuICAgIC5hdHRyaWJ1dGUge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCM5OTksICRjb250ZW50LWJnLCAyKTtcbiAgICAgICAgcGFkZGluZzogLjVlbSA4MHB4IC41ZW0gM3B4O1xuICAgIH1cblxuICAgIC5mcmVpZ2h0LW9wdGlvbl9fZGVzYyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmF0dHJpYnV0ZSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLnBheW1lbnQtb3B0aW9uX19uYW1lIHtcbiAgICAgICAgd2lkdGg6IDQwJTtcbiAgICB9XG5cbiAgICAucGF5bWVudC1vcHRpb25fX2lucHV0LXdyYXAge1xuICAgICAgICB3aWR0aDogJGNoZWNrb3V0LW1lZGl1bS1zcGFjaW5nO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcblxuICAgICAgICAucmVtb3ZlX2dpZnRjYXJkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYXltZW50LW9wdGlvbl9fcHJpY2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgIH1cblxuLyogZW5kIGZyZWlnaHQgb3B0aW9ucyAqL1xuXG5cbi8qIGVkaXQgc3RlcCBidXR0b24gKi9cbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUudmFsaWQgLmVkaXRfc3RlcCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5pcy10b2dnbGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5rYXNzZV9tYWluIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLmNoZWNrb3V0X19zdGVwX19oZWFkbGluZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIG1hcmdpbjogMTZweCAwO1xuICAgIHBhZGRpbmc6IDAgMTBweCAwIDA7XG4gICAgY2xlYXI6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSB7XG4gICAgJi52YWxpZCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAua2Fzc2Vfb25lX3N0ZXBfbnVtYmVyIHtcbiAgICAgICAgICAgIEBleHRlbmQgJWNvbnRlbnRfX3ByaW1hcnktY29sb3ItYmc7XG4gICAgICAgIH1cblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLmthc3NlX29uZV9zdGVwX251bWJlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3RlcC1udW1iZXItYmc7XG4gICAgbWFyZ2luOiAxNnB4ICRjaGVja291dC1zbWFsbC1zcGFjaW5nIDhweCAkY2hlY2tvdXQtc21hbGwtc3BhY2luZztcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiAkc3RlcC1udW1iZXItdGV4dC1jb2xvcjtcbn1cblxuYnV0dG9uLnJlbW92ZV9naWZ0Y2FyZCxcbmJ1dHRvbi5yZW1vdmVfcmFiYXR0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luLWxlZnQ6IC41ZW07XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmLFxuICAgICY6bGluayxcbiAgICAmOnZpc2l0ZWQsXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRhbGVydC1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5rYXNzZV9vbmVfc3RlcF9udW1iZXItLWluZm8ge1xuICAgIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCAnVGltZXMgTmV3IFJvbWFuJywgVGltZXMsIHNlcmlmO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuI2thc3NlX29uZV9mb3JtIGxhYmVsLmVycm9yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb2xvcjogI2I5NGE0ODtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgcGFkZGluZy1ib3R0b206IC41ZW07XG59XG5cbiNrYXNzZV9vbmVfcG9wdXBfYXJlYSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOjMyMHB4O1xuICAgIC8qaGVpZ2h0OiAgIDE1NXB4OyovXG4gICAgcGFkZGluZzoxNXB4O1xuICAgIG1hcmdpbjoxZW0gMCAwIDA7XG4gICAgY29sb3I6IzAwMDtcbiAgICBiYWNrZ3JvdW5kOiNmZmZmZmY7IC8qIGRlZmF1bHQgYmFja2dyb3VuZCBmb3IgYnJvd3NlcnMgd2l0aG91dCBncmFkaWVudCBzdXBwb3J0ICovXG4gICAgLyogY3NzMyAqL1xuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCgjZmZmLCAjZjFmMWYxKTtcbiAgICBib3JkZXItcmFkaXVzOjEwcHg7XG4gICAgYm9yZGVyLXN0eWxlOnNvbGlkO1xuICAgIGJvcmRlci13aWR0aDoxcHg7XG4gICAgYm9yZGVyLWNvbG9yOiNjYmNiY2I7XG59XG5cbiNrYXNzZV9vbmVfcG9wdXAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDEwMjtcbn1cblxuI2thc3NlX29uZV9wb3B1cF9hcmVhIHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZnJha3Rfd3JhcHBlcixcbi5wYXltZW50X3dyYXBwZXIsXG4ucGF5bWVudF93cmFwcGVyID4gbGFiZWwuZXJyb3IsXG4uZnJha3Rfd3JhcHBlciA+IGxhYmVsLmVycm9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5cbiNrYXNzZV9vbmVfb3JkcmVfb3ZlcnNpa3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuXG4gICAgdHI6bnRoLW9mLXR5cGUoZXZlbikge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5zdWJ0bGUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuI2thc3NlX29uZV9mb3JtIC5zdWJ0YXhlcyB7XG4gICAgQGV4dGVuZCAuc3VidGxlO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4jd2VsY29tZV9tc2cge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5oYXNQbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICNiYmI7XG59XG5cbi5taW5pLWltZyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbmxhYmVsW2Zvcj1cImtqb3BzYmV0XCJdIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBoZWxwO1xuICAgIH1cbn1cblxubGFiZWxbZm9yPVwia2pvcHNiZXRcIl0gYSBiIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG50YWJsZS5saW5lZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICBwYWRkaW5nOiA1cHggN3B4O1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBkb3R0ZWQgJHRhYmxlLXN1YnRsZS1ib3JkZXItY29sb3I7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRoZWFkIHRoIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgfVxuXG4gICAgdGJvZHkge1xuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICR0YWJsZS1zdWJ0bGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgdHI6Zmlyc3QtY2hpbGQgdGQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRmb290IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5zdW0gdGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IGRvdWJsZSAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxufVxuXG4uY29udHJvbC1ncm91cCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDEyKTtcblxuICAgIC5yb3cuY29sbGFwc2UgPiAmIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdW0tdG9vLXNtYWxsX19lcnJvcm1zZyB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIC5jaGVja291dF9fc3VtLXRvby1zbWFsbCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N1bS10b28tc21hbGwge1xuICAgIC5jaGVja291dF9fc3VtLXRvby1zbWFsbF9fZXJyb3Jtc2cge1xuICAgICAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cblxuQG1lZGlhICN7JHNtYWxsLXBsdXMtdXB9IHtcbiAgICAuY29udHJvbC1ncm91cCB7XG4gICAgICAgIHdpZHRoOiBncmlkLWNhbGMoMTAsICR0b3RhbC1jb2x1bW5zKTtcbiAgICB9XG5cbiAgICAuYWRkb25fYnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgY2xlYXI6IHJpZ2h0O1xuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5hZGRvbl9idXR0b25zIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNoZWNrb3V0LW1lZGl1bS1zcGFjaW5nO1xuICAgIH1cblxuICAgIC5jYXJ0LWNvbnRlbnRzIC5taW5pLWltZyB7XG4gICAgICAgIHBhZGRpbmc6IDVweCA3cHg7XG4gICAgfVxuXG4gICAgLm1pbmktaW1nIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgICAgICBwYWRkaW5nOiAwICRjaGVja291dC1tZWRpdW0tc3BhY2luZyAwICRjaGVja291dC1sYXJnZS1zcGFjaW5nO1xuICAgIH1cblxuICAgIC5jb250cm9sLWdyb3VwIHtcbiAgICAgICAgd2lkdGg6IGdyaWQtY2FsYygxMiwgJHRvdGFsLWNvbHVtbnMpO1xuICAgIH1cblxuICAgIC5jaGVja291dC1sb2dpbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgICAgICAubmV4dC1zdGVwLWJ0biB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc2l6ZTtcbiAgICAgICAgICAgIC5hcnJvdyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9fbWlycm9yIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY2hlY2tvdXQtbGFyZ2Utc3BhY2luZztcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNoZWNrb3V0LW1lZGl1bS1zcGFjaW5nO1xuICAgIH1cblxuICAgICNqcy1jaGVja291dHN0ZXBfX2FkZHJlc3MuY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlLnZhbGlkIHtcbiAgICAgICAgLmNoZWNrb3V0X19zdGVwX19taXJyb3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX21pcnJvcl9fYWRkcmVzcyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmZyZWlnaHQtb3B0aW9uIHtcbiAgICAgICAgaW5wdXRbdHlwZT1yYWRpb10ge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzLFxuICAgIC5jaGVja291dF9fc3RlcF9fbWlycm9yLFxuICAgIC5hZGRvbl9idXR0b25zIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNoZWNrb3V0LWxhcmdlLXNwYWNpbmc7XG4gICAgfVxufSIsIkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvcmV2ZWFsXCI7XG4vL0BpbXBvcnQgXCJxdWlja2ZpeC9mdW5jdGlvbnMvc2Fzcy1zdmdcIjsgdGhpcyBkb2VzIG5vdCB3b3JrIG9uIHNhc3NjIG9uIG91ciBzZXJ2ZXIsIHVzZSBpdCB3aGVuIHlvdSBuZWVkIHRvIGNoYW5nZSB0aGUgYmFzZTY0IHN0cmluZyBieSBoYW5kXG5cbiRjaGVja291dC1rY28tZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsICdPeHlnZW4nLCAnVWJ1bnR1JywgJ0NhbnRhcmVsbCcsICdGaXJhIFNhbnMnLCAnRHJvaWQgU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZzogLjVyZW0gLjc1cmVtICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1xdHktaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1yb3ctaGVpZ2h0OiAkY2hlY2tvdXQta2NvLXF0eS1oZWlnaHQgKyBudGgoJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmcsIDEpICogMjtcbiRjaGVja291dC1rY28tY2FydC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tY2FydC1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1hdHRyaWJ1dGUtZmxhZy1zaXplOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG5cbiRjaGVja291dC1rY28ta2xhcm5hLWZvY3VzLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjMDA4OWNmLCAkY29udGVudC1iZykgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLXRodW1iLWhlaWdodDogJGNoZWNrb3V0LWtjby1jYXJ0LWZvbnQtc2l6ZSAqICRjaGVja291dC1rY28tY2FydC1saW5lLWhlaWdodCArIG50aCgkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZywgMSkgKiAyO1xuJGNoZWNrb3V0LWtjby10cmFuc2l0aW9uLWR1cmF0aW9uOiA2MDBtcyAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tdHJhbnNpdGlvbi10aW1pbmc6IGVhc2UgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLW92ZXJsYXktYmc6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtYmcsICRjb250ZW50LWJnLCA1KSwgMC41KSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tb3ZlcmxheS1jb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY2hlY2tvdXQta2NvLW92ZXJsYXktYmcsICRjaGVja291dC1rY28tb3ZlcmxheS1iZywgMjEpLCAxKSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tYm9yZGVyLWNvbG9yOiByZ2JhKCRjb250ZW50LXRleHQtY29sb3IsIDAuMikgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLWRpc2NvdW50X19yYXRlX3N0eWxlOiAndHJhbnNwYXJlbnQnICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1hY3RpdmUtYm9yZGVyLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1yYWRpby1zaXplOiAxNHB4ICFkZWZhdWx0O1xuXG4vLyBSZWFsIGNlbGwgcGFkZGluZzogU2l6ZSBvZiB0aGUgYmlnZ2VzdCBlbGVtZW50IHBsdXMgY2VsbCBwYWRkaW5nIG1pbnVzIGJvcmRlciBzaXplLCBtaW51cyBzaXplIG9mIHRleHQsIGRpdmlkZWQgYnkgdHdvXG4kY2hlY2tvdXQta2NvLXJlYWwtY2VsbC1wYWRkaW5nOiAoJGNoZWNrb3V0LWtjby1xdHktaGVpZ2h0ICsgbnRoKCRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nLCAxKSAqIDIgLSByZW0tY2FsYygyKSAtICRjaGVja291dC1rY28tY2FydC1mb250LXNpemUgKiAkY2hlY2tvdXQta2NvLWNhcnQtbGluZS1oZWlnaHQpLzIgbnRoKCRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nLCAyKSAtIHJlbS1jYWxjKDEpO1xuXG4vLyBWYXJpYWJsZXMgdXNlZCB0byBjb21wZW5zYXRlIGZvciBwYWRkaW5nL21hcmdpbiBpbnNpZGUgS0NPIGlmcmFtZVxuJGtjby1wYWRkaW5nOiAyMHB4IDEycHggMjBweCAxMnB4O1xuJGtjby1tYXgtd2lkdGg6IDY0MHB4O1xuXG5cbiRzZWxlY3QtaW5wdXQtYmc6ICRzZWxlY3QtYmctY29sb3IgIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWJvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWNvbG9yOiAkaW5wdXQtZm9udC1jb2xvcjtcbiRzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWJnOiAkc2VsZWN0LWJnLWNvbG9yO1xuJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRzZWxlY3QtaW5wdXQtYmcsIDIpICFkZWZhdWx0O1xuJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2Uod2hpdGUsICRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtYmcsIDMpO1xuJHNlbGVjdC1pbnB1dC1ib3JkZXItd2lkdGg6IDBweDtcblxuQGltcG9ydCBcInF1aWNrZml4L2NvbXBvbmVudHMvcmVhY3Qtc2VsZWN0XCI7XG5cbkBtaXhpbiBhY3Rpdml0eS1pbmRpY2F0b3IoJGFjdGl2aXR5LWNvbG9yOiAkY29udGVudC1iZywgJGFjdGl2aXR5LWJnOiAkYWN0aXZpdHktY29sb3IpIHtcblxuICAgIC8qIFdlIGNhbm5vdCBydW4gdGhpcyB1c2luZyBzYXNzYyB5ZXRcbiAgICBAaW5jbHVkZSBzdmcoKFxuICAgICAgICB2aWV3Qm94OiAwIDAgMjQgMjRcbiAgICAgICkpIHtcbiAgICAgICAgQGluY2x1ZGUgc3ZnKCdkZWZzJykge1xuICAgICAgICAgIEBpbmNsdWRlIHN2ZygncmFkaWFsR3JhZGllbnQnLCAoXG4gICAgICAgICAgICBjeDogJzI1JScsXG4gICAgICAgICAgICBjeTogJzI1JScsXG4gICAgICAgICAgICBpZDogJ2EnXG4gICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHN2Zygnc3RvcCcsIChcbiAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3I6ICRhY3Rpdml0eS1jb2xvcixcbiAgICAgICAgICAgICAgICAgIG9mZnNldDogJzEwJSdcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzdmcoJ3N0b3AnLCAoXG4gICAgICAgICAgICAgICAgICBzdG9wLWNvbG9yOiAkYWN0aXZpdHktY29sb3IsXG4gICAgICAgICAgICAgICAgICBzdG9wLW9wYWNpdHk6IDAuMSxcbiAgICAgICAgICAgICAgICAgIG9mZnNldDogJzEwMCUnXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBzdmcoJ2NpcmNsZScsIChcbiAgICAgICAgICAgIGZpbGw6IG5vbmUsXG4gICAgICAgICAgICBjeDogMTIsXG4gICAgICAgICAgICBjeTogMTIsXG4gICAgICAgICAgICByOiAxMCxcbiAgICAgICAgICAgIC8vc3Ryb2tlLXdpZHRoOiAyLFxuICAgICAgICAgICAgc3Ryb2tlOiBcInVybCgjYSlcIlxuICAgICAgICApKTtcbiAgICAgIH1cbiAgICAgIC8vKi9cbiAgICAgICRjb2xvcjogc3RyLXNsaWNlKGllLWhleC1zdHIoJGFjdGl2aXR5LWNvbG9yKSwgNCk7XG4gICAgICAkYmc6IHN0ci1zbGljZShpZS1oZXgtc3RyKCRhY3Rpdml0eS1iZyksIDQpO1xuICAgICAgY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3JTJFdzMlMkVvcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDZGVmcyUyMCUzRSUzQ3JhZGlhbEdyYWRpZW50JTIwY3glM0QlMjIyNSUyNSUyMiUyMGN5JTNEJTIyMjUlMjUlMjIlMjBpZCUzRCUyMmElMjIlM0UlM0NzdG9wJTIwc3RvcCUyRGNvbG9yJTNEJTIyJTIzI3skY29sb3J9JTIyJTIwb2Zmc2V0JTNEJTIyMTAlMjUlMjIlMkYlM0UlM0NzdG9wJTIwc3RvcCUyRGNvbG9yJTNEJTIyJTIzI3skYmd9JTIyJTIwc3RvcCUyRG9wYWNpdHklM0QlMjIwJTJFMSUyMiUyMG9mZnNldCUzRCUyMjEwMCUyNSUyMiUyRiUzRSUzQyUyRnJhZGlhbEdyYWRpZW50JTNFJTNDJTJGZGVmcyUzRSUzQ2NpcmNsZSUyMGZpbGwlM0QlMjJub25lJTIyJTIwY3glM0QlMjIxMiUyMiUyMGN5JTNEJTIyMTIlMjIlMjByJTNEJTIyMTAlMjIlMjBzdHJva2UlM0QlMjJ1cmwlMjglMjNhJTI5JTIyJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuXG4ldGFidWxhci1udW1zIHtcbiAgICAvLyB0YWJ1bGFyIG51bWJlciBzcGFjaW5nIG1ha2VzIG51bWJlcnMgZWFzaWVyIHRvIHJlYWQgaW4gdGFibGVzXG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAtbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCI7XG4gICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IFwidG51bVwiO1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCI7XG59XG5cbiVkZWNvcmF0ZWQtcmFkaW8ge1xuICAgICRjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKTtcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnLic7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLSgkY2hlY2tvdXQta2NvLXJhZGlvLXNpemUvMik7XG4gICAgICAgICAgICBsZWZ0OiAtKCgoJGNvbHVtbi1ndXR0ZXIpICsgcmVtLWNhbGMoJGNoZWNrb3V0LWtjby1yYWRpby1zaXplKSkvMik7XG4gICAgICAgICAgICB3aWR0aDogJGNoZWNrb3V0LWtjby1yYWRpby1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY2hlY2tvdXQta2NvLXJhZGlvLXNpemU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAwcHg7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBjdWJpYy1iZXppZXIoMC42NSwgMC4wNSwgMC4zNiwgMSkpO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjgpKTtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogYmxhY2sgMCAwIDFweCwgaW5zZXQgYmxhY2sgMCAwIDFweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBzcGFuIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEpKTtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjQpKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGhzbGEoMCwgMCUsIDAlLCAwKSAwIDAgMXB4LCBpbnNldCBoc2xhKDAsIDAlLCAwJSwgMCkgMCAwIDFweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl1bZGlzYWJsZWRdICsgc3BhbiAmOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGdyYXlzY2FsZSgkY29sb3IpLCB3aGl0ZSk7XG4gICAgfVxufVxuXG5mb3JtOmludmFsaWQge1xuICAgIC5qcy1rYXNzZS1vbmUtc3VibWl0IHtcbiAgICAgICAgJGJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShncmF5LCAkY29udGVudC1iZyk7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShncmF5LCAkYmcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7ICAgICAgIC8qIElFL0VkZ2UgKi9cbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3RlcC0tc2hpcHBpbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xufVxuLmZyZWlnaHQtLXBpY2t1cC1wb2ludCB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG4uU2VsZWN0LWNvbnRyb2wge1xuICAgIC8vIEBUT0RPIHJldXNlIG91ciB2YXJpYWJsZXMgc28gaXQgd29ya3MgaW4gYWxsIHRoZW1lcyBhbmQgYW55IGNvbmZpZyBsaWtlIDxzZWxlY3Q+XG4gICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtYm9yZGVyLWNvbG9yIDAgMCAwIDFweDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3gtc2hhZG93OiAkaW5wdXQtYm9yZGVyLWNvbG9yIDAgMCAwIDFweCwgaHNsYSgwLCAwJSwgMCUsIC4xKSAwIDVweCAxMHB4O1xuICAgIH1cbn1cbi5TZWxlY3Qtb3B0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICAgIHBhZGRpbmctbGVmdDogMS42ZW07XG59XG4uU2VsZWN0LW9wdGlvbi5pcy1zZWxlY3RlZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICfinJMnO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiByZW0tY2FsYyg4cHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxLjZlbTtcbn1cbi5TZWxlY3Qtb3B0aW9uLmlzLXNlbGVjdGVkOmhvdmVyIHtcbiAgICBjb2xvcjogJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWJnO1xufVxuLlNlbGVjdC1tZW51LW91dGVyIHtcbiAgICBib3JkZXItd2lkdGg6IDBweDtcbiAgICBtYXJnaW4tbGVmdDogMXB4O1xuICAgIG1hcmdpbi1yaWdodDogMXB4O1xufVxuLlNlbGVjdC1tZW51IHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtYm9yZGVyLWNvbG9yIDAgMCAwIDFweCwgaHNsYSgwLCAwJSwgMCUsIC4xKSAwIDVweCAxMHB4O1xufVxuXG4uY2hlY2tvdXQtLWtjbyAuanMtYXR0YWNoX2NvbW1lbnQge1xuXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1hZGQpO1xuICAgIH1cbn1cblxuI2tsYXJuYS1jaGVja291dC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6ICRrY28tbWF4LXdpZHRoICsgbnRoKCRrY28tcGFkZGluZywgMikgKyBudGgoJGtjby1wYWRkaW5nLCA0KTsgLy8gbWF4IHdpZHRoICsgc2lkZSBwYWRkaW5nc1xuICAgIEBpZiAkY29udGVudC1iZyAhPSAjZmZmIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IC8vIGtsYXJuYXMgaWZyYW1lIGlzIGFsd2F5cyB3aGl0ZVxufVxuXG4uY2hlY2tvdXQtLWtjb19fb3ZlcmxheSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtYmcsICRjb250ZW50LWJnKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgJiwgJiArICoge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tb3JpZ2luKDUwJSAwJSk7XG4gICAgfVxuXG4gICAgZW0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiByZW0tY2FsYygxMCk7XG4gICAgICAgIHJpZ2h0OiByZW0tY2FsYygxMCk7XG4gICAgfVxufVxuXG4uZnJlaWdodC1vcHRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHJnYmEoJGNoZWNrb3V0LWtjby1hY3RpdmUtYm9yZGVyLWNvbG9yLCAwLjYpIHNvbGlkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC0oJGNvbHVtbi1ndXR0ZXIvNCk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IC0oJGNvbHVtbi1ndXR0ZXIvOCk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZVgoMC45OCkgc2NhbGVZKDAuOCkpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBjdWJpYy1iZXppZXIoMC42NSwgMC4wNSwgMC4zNiwgMSkpO1xuICAgIH1cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGVYKDEpIHNjYWxlWSgxKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgPiBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgQGV4dGVuZCAlZGVjb3JhdGVkLXJhZGlvO1xuICAgIH1cbiAgICAmLmluYWN0aXZlIHtcbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgfVxuICAgIH1cbn1cbi5rY29fc2hpcHBpbmdfc2hvd19tb3JlX29wdGlvbnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjVyZW07XG4gICAgcGFkZGluZy10b3A6IC43NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbn1cblxuLmNoZWNrb3V0LS1rY29fX3BheW1lbnQtb3B0aW9ucywgLmN1c3RvbWVyLXR5cGUge1xuICAgIC5jb250cm9sLWdyb3VwIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMnJlbTtcbiAgICAgICAgYm94LXNoYWRvdy1ib3R0b206IDAgMXB4IDAgJGNoZWNrb3V0LWtjby1ib3JkZXItY29sb3I7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDE1MG1zIGVhc2UpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICA6Y2hlY2tlZCArIGxhYmVsIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gT3ZlcnJpZGUgc3R1cGlkIGhhcmRjb2RlZCBGb3VuZGF0aW9uIHN0eWxpbmdcbi5yZXZlYWwtbW9kYWwge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDE2cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmc7XG5cbiAgICAuY2xvc2UtcmV2ZWFsLW1vZGFsIHtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LWJnLCAkY29udGVudC1iZyk7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmMDAsICRjb250ZW50LWJnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgbWluLWhlaWdodDogaW5pdGlhbCFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtLWtjb19fcGFnZS1oZWFkZXIge1xuICAgIGZvbnQtZmFtaWx5OiAkY2hlY2tvdXQta2NvLWZvbnQtZmFtaWx5O1xufVxuXG4uY2hlY2tvdXQtLWtjb19fY3VzdG9tLWludHJvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgIEBleHRlbmQgLmJvcmRlcmVkO1xuICAgIEBleHRlbmQgLmJvcmRlcmVkLS1ib3R0b207XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtLWtjbyB7XG4gICAgZm9udC1mYW1pbHk6ICRjaGVja291dC1rY28tZm9udC1mYW1pbHk7XG5cbiAgICAucHJpY2UtZGlmZiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG4gICAgLmN1cnJlbnQtcHJpY2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgfVxuICAgIC5wZW5kaW5nLXByaWNlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2hlYWRsaW5lIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRjaGVja291dC1rY28tZm9udC1mYW1pbHk7XG4gICAgfVxuXG4gICAgJi5jaGVja291dF9fc3RlcHMge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXAge1xuICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgIEBleHRlbmQgLmJvcmRlcmVkO1xuICAgICAgICBAZXh0ZW5kIC5ib3JkZXJlZC0tYm90dG9tO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX2JvdHRvbS10b29sYmFyID4gLmNvbHVtbnMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2hlYWRsaW5lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDAgMCAuNXJlbSAwO1xuICAgICAgICBwYWRkaW5nOiAwIDAgLjVyZW0gMDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC5rYXNzZV9vbmVfc3RlcF9udW1iZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5hZGRvbl9idXR0b25zIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIC5lZGl0X3N0ZXAge1xuICAgICAgICAgICAgJGJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2Vjb25kYXJ5LWNvbG9yLCAkY29udGVudC1iZywgMS4yKTtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlY29uZGFyeS1jb2xvciwgJGJnLCA2KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAkYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWNvbmRhcnktY29sb3IsICRjb250ZW50LWJnLCAyKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWNvbmRhcnktY29sb3IsICRiZywgNik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQXBwbHkgdGhlIEtDTyBzdHlsaW5nLCB0byBtYWtlIHRoaW5ncyBhcHBlYXIgbGlrZSBLQ09cbiAgICAuY2hlY2tvdXQta2NvX19hZGRyZXNzLWZvcm0ge1xuICAgICAgICBpbnB1dCwgYnV0dG9uLCBzZWxlY3Qge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICB9XG4gICAgICAgIC5jaGVja291dC0ta2NvX19zaGlwcGluZy1jb3VudHJ5IHtcbiAgICAgICAgICAgIHNlbGVjdFtkaXNhYmxlZF0ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgLmJ1dHRvbixcbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuICAgIC5lZGl0X3N0ZXAge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIC5idXR0b24sXG4gICAgaW5wdXRbdHlwZT1zdWJtaXRdLFxuICAgIC5lZGl0X3N0ZXAge1xuICAgICAgICAmOm5vdCgucmVtb3ZlX3JhYmF0dCk6bm90KC5yZW1vdmVfZ2lmdGNhcmQpIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRjaGVja291dC1rY28tZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsMC4xKSwgaW5zZXQgMCAtM3B4IDAgcmdiYSgwLDAsMCwwLjEpLCAwIDJweCA1cHggcmdiYSgwLDAsMCwwLjEpO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAzcHggMCByZ2JhKDAsMCwwLDAuMSk7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uZXh0LXN0ZXAtYnRuIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgfVxuXG4gICAgLmVkaXRfc3RlcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuXG4gICAgICAgIC5pY29uLWFkZCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS42cmVtOyAvKiB0byBmaXhlZCBhIG1lc3NlZCB1cCByb3RhdGUgYW5pbWF0aW9uICovXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxNTBtcyBlYXNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAgICAgICAvKiBJRS9FZGdlICovXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4gICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbiAgICBpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuICAgICAgICAmOmZvY3VzLCAmLmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjaGVja291dC1rY28ta2xhcm5hLWZvY3VzLWNvbG9yO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IDAgaHNsYSgwLCAwJSwgMCUsIDAuMTcpLGluc2V0IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMDYpLDAgMCAzcHggMXB4ICRjaGVja291dC1rY28ta2xhcm5hLWZvY3VzLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnppcCB7XG4gICAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuLmNoZWNrb3V0LS1rY29fX3NoaXBwaW5nLXppcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMS4xMjVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRpbnB1dC1mb250LWNvbG9yLCAuNSk7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBsZWZ0OiA1ZW07XG4gICAgICAgIGxlZnQ6IDdjaDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oOTAlIDUwJSk7XG4gICAgfVxuICAgIGlucHV0LmludmFsaWQ6bm90KDpmb2N1cykge1xuICAgICAgICAkY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmMDAsICRjb250ZW50LWJnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yO1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2YwMCwgJGlucHV0LWJnLWNvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IDAgaHNsYSgwLCAwJSwgMCUsIDAuMTcpLGluc2V0IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMDYpLDAgMCAzcHggMXB4ICRjb2xvcjtcbiAgICB9XG59XG5cbi8vIENvbXBlbnNhdGUgZm9yIHRoZSBLQ08gd2luZG93J3MgcGFkZGluZy9tYXJnaW5cbi5jaGVja291dF9fc3RlcC0ta2NvLXdpbmRvdyB7XG4gICAgJjpvbmx5LWNoaWxkIHtcbiAgICAgICAgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ua2NvLXBheW1lbnQtd3JhcHBlciwgLmFsdGVybmF0ZS1wYXltZW50LXdyYXBwZXIge1xuICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xufVxuLmtjby1wYXltZW50LXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gdG8gcG9zaXRpb24gb3ZlcmxheVxuICAgIG1hcmdpbjogLTEqbnRoKCRrY28tcGFkZGluZywgMSkgLTEqbnRoKCRrY28tcGFkZGluZywgMikgLTEqbnRoKCRrY28tcGFkZGluZywgMikgLTEqbnRoKCRrY28tcGFkZGluZywgNCk7IC8vIENvbXBlbnNhdGUgZm9yIGtsYXJuYSB3aW5kb3cgcGFkZGluZ1xufVxuXG4uYWx0ZXJuYXRlLXBheW1lbnQtd3JhcHBlciB7XG4gICAgLmNoZWNrb3V0X19zdGVwX19oZWFkbGluZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg5KTtcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3RlcHMtLWljb25pemVkIHtcbiAgICAua2Fzc2Vfb25lX3N0ZXBfbnVtYmVyIHtcbiAgICAgICAgd2lkdGg6IDIuNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA1cHggcmdiYSgwLDAsMCwuNSk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogN3B4O1xuICAgICAgICAgICAgbGVmdDogN3B4O1xuICAgICAgICAgICAgcmlnaHQ6IDdweDtcbiAgICAgICAgICAgIGJvdHRvbTogN3B4O1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuICAgICAgICAuaWNvbi1sb2FkaW5nLWluZGljYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGkge1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCA1cHggcmdiYSgwLDAsMCwuNSk7XG4gICAgICAgICAgICBjb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2hlYWRsaW5lIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcbiAgICB9XG59XG5cbi5jaGVja291dC0ta2NvX193cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBtaW4taGVpZ2h0OiAyMTBweDtcbiAgICBtaW4taGVpZ2h0OiA1MHZoO1xuXG4gICAgLmFjdGl2aXR5LWluZGljYXRvciB7XG4gICAgICAgICRzaXplOiAzOHB4O1xuICAgICAgICAkYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZyk7XG5cbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgICAgICAgLyogSUUvRWRnZSAqL1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDMwMDtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAwcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC41KSAwIDAgMXB4LCByZ2JhKDAsIDAsIDAsIDAuMykgMCAycHggNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgei1pbmRleDogNDAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNpemUgLyAyO1xuICAgICAgICBtYXJnaW4tbGVmdDogLSRzaXplIC8gMjtcblxuICAgICAgICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC42KSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGN1YmljLWJlemllciguNjUsLjA1LC4zNiwxKSk7XG5cbiAgICAgICAgLnN2ZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uKGFjdGl2aXR5LXJvdGF0ZSA2MDBtcyBsaW5lYXIgaW5maW5pdGUpO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYWN0aXZpdHktaW5kaWNhdG9yKCRjb250ZW50LWJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYgKyBkaXYge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDMwMG1zIGN1YmljLWJlemllciguNjUsLjA1LC4zNiwxKSk7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1sb2FkaW5nLFxuICAgICYuaXMtdXBsb2FkaW5nIHtcbiAgICAgICAgY3Vyc29yOiBwcm9ncmVzcztcblxuICAgICAgICAuYWN0aXZpdHktaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxKSk7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgICAgICAmICsgZGl2IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMzAwMG1zIGVhc2Utb3V0KTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7ICAgICAgIC8qIElFL0VkZ2UgKi9cbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ua2Fzc2Vfb25lX3N0ZXBfbnVtYmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4vLyBAVE9ETyB3ZSBtaWdodCB3YW50IHRvIHJldXNlIHRoaXMgb3RoZXIgcGxhY2VzIGluIHRoZSBmdXR1cmVcbi5pY29uLWxvYWRpbmctaW5kaWNhdG9yLmlzLWxvYWRpbmcge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIGhlaWdodDogMWVtO1xuICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICBtYXJnaW46IC4zZW07XG5cbiAgICAgICAgQGluY2x1ZGUgYWN0aXZpdHktaW5kaWNhdG9yKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LWJnLCAkc3RlcC1udW1iZXItYmcpLCAkY29udGVudC1iZyk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGFuaW1hdGlvbihhY3Rpdml0eS1yb3RhdGUgNjAwbXMgbGluZWFyIGluZmluaXRlKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLyp3aWR0aDogMnJlbTtcbiAgICB3aWR0aDogcmVtLWNhbGMoMjQpO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDI0KTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDI0KTtcbiAgICAqL1xufVxuXG50YWJsZS5jaGVja291dC0ta2NvX19jYXJ0IHtcblxuICAgIC8vIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwwLDAsMC4xKTtcbiAgICBvdXRsaW5lOiAxcHggc29saWQgcmdiYSgkY29udGVudC10ZXh0LWNvbG9yLCAwLjEpO1xuXG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgICBmb250LXNpemU6ICRjaGVja291dC1rY28tY2FydC1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkY2hlY2tvdXQta2NvLWNhcnQtbGluZS1oZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6ICRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRjb250ZW50LXRleHQtY29sb3IsIDAuMDUpO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLnByaWNlIHtcbiAgICAgICAgICAgIEBleHRlbmQgJXRhYnVsYXItbnVtcztcblxuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGVhZCB0aCB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDAgcmdiYSgwLDAsMCwwLjA0KTtcbiAgICAgICAgcGFkZGluZzogLjc1cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgkY29udGVudC10ZXh0LWNvbG9yLCAwLjA1KTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoI2ZmZiwgMC41KTtcbiAgICB9XG5cbiAgICB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMCByZ2JhKDAsMCwwLDAuMDIpO1xuICAgIH1cblxuICAgIHRmb290LnN1bSB0ZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKCNmZmYsIDAuNSk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDAgcmdiYSgwLDAsMCwwLjA0KTtcbiAgICB9XG5cbiAgICAubWluaS1pbWcge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAkY2hlY2tvdXQta2NvLXRodW1iLWhlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kaXNjb3VudCxcbiAgICAuc2hpcHBpbmcsXG4gICAgLmdpZnRjYXJkIHtcbiAgICAgICAgLm1pbmktaW1nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIFtjbGFzc149XCJpY29uLVwiXSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IG50aCgkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZywgMik7XG4gICAgICAgICAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiBudGgoJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmcsIDIpICogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kaXNjb3VudF9fcmF0ZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiByZW0tY2FsYygtNiA2IDAgNik7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDIgNSk7XG5cbiAgICAgICAgQGlmICRjaGVja291dC1rY28tZGlzY291bnRfX3JhdGVfc3R5bGUgPT0gJ3NvbGlkJyB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY2FsbC10by1hY3Rpb24tY29sb3IsICRjb250ZW50LWJnKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkZGlzY291bnRfX3JhdGVfY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjYWxsLXRvLWFjdGlvbi1jb2xvciwgJGNvbnRlbnQtYmcpICFkZWZhdWx0O1xuICAgICAgICAgICAgY29sb3I6ICRkaXNjb3VudF9fcmF0ZV9jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGRpc2NvdW50X19yYXRlX2NvbG9yLCAwLjI1KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hdHRyaWJ1dGVzIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gbmVjZXNzYXJ5IGZvciB0aGUgYXR0cmlidXRlcyBwb3B1cFxuICAgIH1cblxuICAgIC5jaGVja291dF9fcXR5IHtcbiAgICAgICAgaGVpZ2h0OiAkY2hlY2tvdXQta2NvLXF0eS1oZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6IC4yNXJlbSAwIC4yNXJlbSAuMjVyZW07XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgQGV4dGVuZCAldGFidWxhci1udW1zO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBlYXNlKTtcblxuICAgICAgICAmLnByaW1hcnktY29sb3ItYmc6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCAwIGhzbGEoMCwgMCUsIDAlLCAwLjE3KSxpbnNldCAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjA2KSwwIDAgM3B4IDFweCAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zdWJ0YXhlcyB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cblxuICAgIC5zZXJ2aWNlLFxuICAgIC5kaXNjb3VudCxcbiAgICAuZ2lmdGNhcmQsXG4gICAgLnNoaXBwaW5nIHtcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jaGVja291dC0ta2NvX19mcmVpZ2h0LXByb3RpcCB7XG4gICAgJGJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJGNvbnRlbnQtYmcsIDEuMSk7XG4gICAgJGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYmcsICRiZyk7XG4gICAgYm90dG9tOiAxMDAlO1xuXG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMC41cmVtO1xuICAgIHBhZGRpbmc6IDRweCA3cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgc3Ryb25nIHtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRiZywgJGJnLCA2KTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJGJnLCB0b3ApO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGVmdDogOHB4O1xuICAgIH1cbn1cblxuIC5jaGVja291dC0ta2NvX19wYXltZW50LW5vdGljZSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4uY2hlY2tvdXRfX3Byb2R1Y3QtbmFtZS13cmFwIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ucHJvZHVjdC1uYW1lLS1oYXMtYXR0cmlidXRlcyB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwICRjaGVja291dC1rY28tYXR0cmlidXRlLWZsYWctc2l6ZSAkY2hlY2tvdXQta2NvLWF0dHJpYnV0ZS1mbGFnLXNpemUgMDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY2FsbC10by1hY3Rpb24tY29sb3IsICRjb250ZW50LWJnKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgIC5jaGVja291dF9fcHJvZHVjdC1uYW1lLXdyYXAge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogJGNoZWNrb3V0LWtjby1yZWFsLWNlbGwtcGFkZGluZztcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDQlKSwgZGFya2VuKCRjb250ZW50LWJnLCA0JSkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbnRlbnQtYmc7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsMCwwLDAuMSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jaGVja291dC0ta2NvX19jb3Jwb3JhdGUtbGluayB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmNoZWNrb3V0LS1rY29fX2tlZXAtc2hvcHBpbmcge1xuICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbn1cblxuLmNoZWNrb3V0LS1rY29fX3BheW1lbnQtbm90aWNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoNyk7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDcpO1xufVxuXG4ua2NvX3NoaXBwaW5nX29wdGlvbnMge1xuICAgIG1hcmdpbi10b3A6ICRjb2x1bW4tZ3V0dGVyLzQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXIvNDtcbiAgICAuZnJlaWdodC1vcHRpb24ge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkY29sdW1uLWd1dHRlci8yO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICgkY29sdW1uLWd1dHRlci8yKSArIHJlbS1jYWxjKCRjaGVja291dC1rY28tcmFkaW8tc2l6ZSk7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3BheW1lbnQtbWV0aG9kcy1saXN0IHtcbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICgkY29sdW1uLWd1dHRlci84KTtcbiAgICB9XG4gICAgJGJvcmRlci1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKTtcblxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAucGF5bWVudC1tZXRob2Qge1xuICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3gtc2hhZG93IDMwMG1zIGN1YmljLWJlemllcigwLjY1LCAwLjA1LCAwLjM2LCAxKSk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggMCByZ2JhKCRjaGVja291dC1rY28tYm9yZGVyLWNvbG9yLCAwKTtcbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZTpub3QoLnBheW1lbnQtbWV0aG9kLS1hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggMCAkY2hlY2tvdXQta2NvLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyAvLyBEbyBub3QgdXNlIGlubGluZS1ibG9jaywgaXQgY2F1c2VzIGlycml0YXRpbmcgd2hpdGUtc3BhY2VcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCByZ2JhKCRjaGVja291dC1rY28tYWN0aXZlLWJvcmRlci1jb2xvciwgMC42KSBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbnRlbnQtYmc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLSgkY29sdW1uLWd1dHRlci84KTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogLSgkY29sdW1uLWd1dHRlci84KTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGVYKDAuOTgpIHNjYWxlWSgwLjgpKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGN1YmljLWJlemllcigwLjY1LCAwLjA1LCAwLjM2LCAxKSk7XG4gICAgICAgIH1cbiAgICAgICAgJi5wYXltZW50LW1ldGhvZC0tYWN0aXZlIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZVgoMSkgc2NhbGVZKDEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAoJGNvbHVtbi1ndXR0ZXIvMikgKyByZW0tY2FsYygkY2hlY2tvdXQta2NvLXJhZGlvLXNpemUpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGNvbHVtbi1ndXR0ZXIvNDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkY29sdW1uLWd1dHRlci80O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgQGV4dGVuZCAlZGVjb3JhdGVkLXJhZGlvO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDIyKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC41cmVtO1xuICAgIH1cbn1cbi5jaGVja291dF9fcGF5bWVudC1tZXRob2RzLXByZWZpeCwgLnBheW1lbnQtbWV0aG9kIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE1KTtcbn1cbi5jaGVja291dC0ta2NvX19hbHRlcm5hdGUtcGF5bWVudCB7XG4gICAgaW5wdXQuY2hlY2stdmFsaWRpdHk6aW52YWxpZDpub3QoOmZvY3VzKSwgaW5wdXQuY2hlY2stdmFsaWRpdHkuaW52YWxpZDpub3QoOmZvY3VzKSB7XG4gICAgICAgICRjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2YwMCwgJGNvbnRlbnQtYmcpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZjAwLCAkaW5wdXQtYmctY29sb3IpO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggMCBoc2xhKDAsIDAlLCAwJSwgMC4xNyksaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wNiksMCAwIDNweCAxcHggJGNvbG9yO1xuICAgIH1cbn1cblxuLy8gQFRPRE8gbmVlZHMgbW9yZSB3b3JrXG4vL0BtZWRpYSAjeyRzbWFsbC1wbHVzLWRvd259IHtcbi8vICAgIC8vIERpc2FibGUgaU9TIHRleHQgaW5wdXQgem9vbSwgaU9TIDkgY2hhbmdlZCBmb250LXNpemUgZnJvbSAxNnB4IHRvIDIycHhcbi8vICAgIC5jaGVja291dC0ta2NvIHtcbi8vICAgICAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi8vICAgICAgICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4vLyAgICAgICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vICAgICAgICBzZWxlY3Qge1xuLy8gICAgICAgICAgICBwYWRkaW5nOiAwLjJyZW0gMC41cmVtO1xuLy8gICAgICAgIH1cbi8vICAgICAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi8vICAgICAgICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4vLyAgICAgICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vICAgICAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLy8gICAgICAgIHNlbGVjdCB7XG4vLyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbi8vICAgICAgICB9XG4vLyAgICB9XG4vL31cbi5rY28tcGF5bWVudC13cmFwcGVyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xufVxuXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgIC5jaGVja291dF9fYm90dG9tLXRvb2xiYXItcmlnaHQge1xuICAgICAgICBidXR0b24uanMtY2hlY2tvdXRfdXBkYXRlIHtcbiAgICAgICAgICAgIHRvcDogLSgkY29sdW1uLWd1dHRlci8yKSFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNoZWNrb3V0X19wYXltZW50LW1ldGhvZHMtbGlzdCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLXVwfSB7XG4gICAgLmNoZWNrb3V0LS1rY29fX3BheW1lbnQgLmNvbnRyb2wtZ3JvdXAge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLy8gQFRPRE8gd2h5IGlzIHRoaXMga2Nvcz9cbiAgICAuY2hlY2tvdXQtLWtjb3Mge1xuICAgICAgICAuYWRkb25fYnV0dG9ucyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDcpICsgMXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAuZWRpdF9zdGVwLmRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2shaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLnJvdyAucm93LmNoZWNrb3V0LWtjb19fYWRkcmVzcy1mb3JtIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICB9XG4gICAgLnJvdyAuY2hlY2tvdXQtLWtjb19fZnJlaWdodC1vcHRpb25zIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgIH1cbiAgICAuY2hlY2tvdXQtLWtjb19fZnJlaWdodCB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDFweCAwIDAgJGNoZWNrb3V0LWtjby1ib3JkZXItY29sb3I7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgfVxuICAgIC5jaGVja291dC0ta2NvX19wYXltZW50LWFsdGVybmF0aXZlcyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICgkY29sdW1uLWd1dHRlci8yKTtcbiAgICB9XG4gICAgLmNoZWNrb3V0X19wYXltZW50LW1ldGhvZHMtbGlzdCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtLWtjbyB7XG4gICAgICAgIC5hZGRvbl9idXR0b25zIHtcbiAgICAgICAgICAgIHRvcDogcmVtLWNhbGMoNikgKyAxcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0YWJsZS5jaGVja291dC0ta2NvX19jYXJ0IHtcbiAgICAgICAgLm1pbmktaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiA3NXB4O1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZGlzY291bnQsXG4gICAgICAgIC5zaGlwcGluZyxcbiAgICAgICAgLmdpZnRjYXJkIHtcbiAgICAgICAgICAgIC5taW5pLWltZyB7XG4gICAgICAgICAgICAgICAgW2NsYXNzXj1cImljb24tXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWluZGVudDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICAgICAgcGFkZGluZzogMCAxLjI1cmVtIDAgMS4yNXJlbTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtLWtjb19fb3ZlcmxheSB7XG4gICAgICAgIGxlZnQ6IDEuODEyNXJlbTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtLWtjb19fcGF5bWVudCB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0ICRjb250ZW50LWJnIDAgMzBweCAwLCBpbnNldCAkY29udGVudC1iZyAwIC0zMHB4IDAsIGluc2V0ICRjaGVja291dC1rY28tYm9yZGVyLWNvbG9yIDFweCAxcHggMDtcbiAgICB9XG4gICAgLmtjby1wYXltZW50LWJvcmRlcmVkLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0xLjE1cmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICB9XG5cbiAgICAua2NvLXBheW1lbnQtd3JhcHBlciwgLmFsdGVybmF0ZS1wYXltZW50LXdyYXBwZXIge1xuICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgICAgIG1hcmdpbjowO1xuICAgIH1cblxuICAgIC5hbHRlcm5hdGUtcGF5bWVudC13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEuNXJlbTtcbiAgICAgICAgLmNoZWNrb3V0X19zdGVwX19oZWFkbGluZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDUpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uanMtYXR0YWNoX2NvbW1lbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLmNoZWNrb3V0X19ib3R0b20tdG9vbGJhci1yaWdodCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYnV0dG9uLmpzLWNoZWNrb3V0X3VwZGF0ZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIHJpZ2h0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgIH1cbn1cbi5jaGVja291dC0ta2NvX19mcmVpZ2h0LW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4taGVpZ2h0OiA2cmVtO1xuICAgIG1hcmdpbi10b3A6IDA7XG59XG5cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLnJvdyAucm93LmNoZWNrb3V0LWtjb19fYWRkcmVzcy1mb3JtLCAuY2hlY2tvdXRfX3BheW1lbnQtbWV0aG9kcy1saXN0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXI7XG4gICAgfVxuICAgIC5yb3cgLmNoZWNrb3V0LS1rY29fX2ZyZWlnaHQtb3B0aW9ucywgLmFsdGVybmF0ZS1wYXltZW50LXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyO1xuICAgIH1cblxuICAgIC5zdWJtaXQtZnJlaWdodC1kZXRhaWxzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0LS1rY29fX2NvcnBvcmF0ZS1saW5rIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiZ3JpZFwiO1xuXG4vL1xuLy8gQG5hbWUgX3JldmVhbC5zY3NzXG4vLyBAZGVwZW5kZW5jaWVzIF9nbG9iYWwuc2Nzc1xuLy9cblxuJGluY2x1ZGUtaHRtbC1yZXZlYWwtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc3R5bGUgb2YgdGhlIHJldmVhbCBvdmVybGF5LlxuJHJldmVhbC1vdmVybGF5LWJnOiByZ2JhKCRibGFjaywgLjQ1KSAhZGVmYXVsdDtcbiRyZXZlYWwtb3ZlcmxheS1iZy1vbGQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHN0eWxlIG9mIHRoZSBtb2RhbCBpdHNlbGYuXG4kcmV2ZWFsLW1vZGFsLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kcmV2ZWFsLXBvc2l0aW9uLXRvcDogcmVtLWNhbGMoMTAwKSAhZGVmYXVsdDtcbiRyZXZlYWwtZGVmYXVsdC13aWR0aDogODAlICFkZWZhdWx0O1xuJHJldmVhbC1tYXgtd2lkdGg6ICRyb3ctd2lkdGggIWRlZmF1bHQ7XG4kcmV2ZWFsLW1vZGFsLXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRyZXZlYWwtYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssLjQpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIHJldmVhbCBjbG9zZSBidXR0b25cbiRyZXZlYWwtY2xvc2UtZm9udC1zaXplOiByZW0tY2FsYyg0MCkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWNsb3NlLXRvcDogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJHJldmVhbC1jbG9zZS1zaWRlOiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XG4kcmV2ZWFsLWNsb3NlLWNvbG9yOiAkYmFzZSAhZGVmYXVsdDtcbiRyZXZlYWwtY2xvc2Utd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBkZWZhdWx0IHJhZGl1cyB1c2VkIHRocm91Z2hvdXQgdGhlIGNvcmUuXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG4kcmV2ZWFsLXJvdW5kOiAkZ2xvYmFsLXJvdW5kZWQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBtb2RhbCBib3JkZXJcbiRyZXZlYWwtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRyZXZlYWwtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kcmV2ZWFsLWJvcmRlci1jb2xvcjogJHN0ZWVsICFkZWZhdWx0O1xuXG4kcmV2ZWFsLW1vZGFsLWNsYXNzOiBcInJldmVhbC1tb2RhbFwiICFkZWZhdWx0O1xuJGNsb3NlLXJldmVhbC1tb2RhbC1jbGFzczogXCJjbG9zZS1yZXZlYWwtbW9kYWxcIiAhZGVmYXVsdDtcblxuLy8gU2V0IGJhc2Ugei1pbmRleFxuJHotaW5kZXgtYmFzZTogMTAwNTtcblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSB0aGUgcmV2ZWFsIGJhY2tncm91bmQgb3ZlcmxheSBzdHlsZXNcbkBtaXhpbiByZXZlYWwtYmcoICRpbmNsdWRlLXotaW5kZXgtdmFsdWU6IHRydWUgKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgLy8gcG9zaXRpb246IGFic29sdXRlOyAvLyBhbGxvd3MgbW9kYWwgYmFja2dyb3VuZCB0byBleHRlbmQgYmV5b25kIHdpbmRvdyBwb3NpdGlvblxuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iZy1vbGQ7IC8vIEF1dG9wcmVmaXhlciBzaG91bGQgYmUgdXNlZCB0byBhdm9pZCBzdWNoIHZhcmlhYmxlcyBuZWVkZWQgd2hlbiBGb3VuZGF0aW9uIGZvciBTaXRlcyBjYW4gZG8gc28gaW4gdGhlIG5lYXIgZnV0dXJlLlxuICBiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmc7XG4gIHotaW5kZXg6IGlmKCAkaW5jbHVkZS16LWluZGV4LXZhbHVlLCAkei1pbmRleC1iYXNlIC0gMSwgYXV0byApO1xuICBkaXNwbGF5OiBub25lO1xuICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIHRoZSBzdHJ1Y3R1cmUgb2YgYSByZXZlYWwgbW9kYWxcbi8vXG4vLyAkYmFzZS1zdHlsZSAtIFByb3ZpZGVzIHJldmVhbCBiYXNlIHN0eWxlcywgY2FuIGJlIHNldCB0byBmYWxzZSB0byBvdmVycmlkZS4gRGVmYXVsdDogdHJ1ZSwgT3B0aW9uczogZmFsc2Vcbi8vICR3aWR0aCAtIFNldHMgcmV2ZWFsIHdpZHRoIERlZmF1bHQ6ICRyZXZlYWwtZGVmYXVsdC13aWR0aCB8fCA4MCVcbi8vXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWJhc2UoICRiYXNlLXN0eWxlOiB0cnVlLCAkd2lkdGg6JHJldmVhbC1kZWZhdWx0LXdpZHRoLCAkbWF4LXdpZHRoOiRyZXZlYWwtbWF4LXdpZHRoLCAkYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXMpIHtcbiAgQGlmICRiYXNlLXN0eWxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJHotaW5kZXgtYmFzZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6MDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcblxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICBtaW4taGVpZ2h0OjEwMHZoO1xuICAgIH1cblxuICAgIC8vIE1ha2Ugc3VyZSByb3dzIGRvbid0IGhhdmUgYSBtaW4td2lkdGggb24gdGhlbVxuICAgIC5jb2x1bW4sIC5jb2x1bW5zIHsgbWluLXdpZHRoOiAwOyB9XG5cbiAgICAvLyBHZXQgcmlkIG9mIG1hcmdpbiBmcm9tIGZpcnN0IGFuZCBsYXN0IGVsZW1lbnQgaW5zaWRlIG1vZGFsXG4gICAgJiA+IDpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDA7IH1cblxuICAgICYgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cbiAgfVxuXG4gIEBpZiAkd2lkdGgge1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gc3R5bGUgdGhlIHJldmVhbCBtb2RhbCBkZWZhdWx0c1xuLy9cbi8vICRiZyAtIFNldHMgYmFja2dyb3VuZCBjb2xvciBvZiByZXZlYWwgbW9kYWwuIERlZmF1bHQ6ICRyZXZlYWwtbW9kYWwtYmcgfHwgJHdoaXRlXG4vLyAkcGFkZGluZyAtIFBhZGRpbmcgdG8gYXBwbHkgdG8gcmV2ZWFsIG1vZGFsLiBEZWZhdWx0OiAkcmV2ZWFsLW1vZGFsLXBhZGRpbmcuXG4vLyAkYm9yZGVyIC0gQ2hvb3NlIHdoZXRoZXIgcmV2ZWFsIHVzZXMgYSBib3JkZXIuIERlZmF1bHQ6IHRydWUsIE9wdGlvbnM6IGZhbHNlXG4vLyAkYm9yZGVyLXN0eWxlIC0gU2V0IHJldmVhbCBib3JkZXIgc3R5bGUuIERlZmF1bHQ6ICRyZXZlYWwtYm9yZGVyLXN0eWxlIHx8IHNvbGlkXG4vLyAkYm9yZGVyLXdpZHRoIC0gV2lkdGggb2YgYm9yZGVyIChpLmUuIDFweCkuIERlZmF1bHQ6ICRyZXZlYWwtYm9yZGVyLXdpZHRoLlxuLy8gJGJvcmRlci1jb2xvciAtIENvbG9yIG9mIGJvcmRlci4gRGVmYXVsdDogJHJldmVhbC1ib3JkZXItY29sb3IuXG4vLyAkYm94LXNoYWRvdyAtIENob29zZSB3aGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRoZSBkZWZhdWx0IGJveC1zaGFkb3cuIERlZmF1bHQ6IHRydWUsIE9wdGlvbnM6IGZhbHNlXG4vLyAkcmFkaXVzIC0gSWYgdHJ1ZSwgc2V0IHRvIG1vZGFsIHJhZGl1cyB3aGljaCBpcyAkZ2xvYmFsLXJhZGl1cyB8fCBleHBsaWNpdGx5IHNldCByYWRpdXMgYW1vdW50IGluIHB4IChleC4gJHJhZGl1czoxMHB4KS4gRGVmYXVsdDogZmFsc2Vcbi8vICR0b3Atb2Zmc2V0IC0gRGVmYXVsdDogJHJldmVhbC1wb3NpdGlvbi10b3AgfHwgNTBweFxuQG1peGluIHJldmVhbC1tb2RhbC1zdHlsZShcbiAgJGJnOmZhbHNlLFxuICAkcGFkZGluZzpmYWxzZSxcbiAgJGJvcmRlcjpmYWxzZSxcbiAgJGJvcmRlci1zdHlsZTokcmV2ZWFsLWJvcmRlci1zdHlsZSxcbiAgJGJvcmRlci13aWR0aDokcmV2ZWFsLWJvcmRlci13aWR0aCxcbiAgJGJvcmRlci1jb2xvcjokcmV2ZWFsLWJvcmRlci1jb2xvcixcbiAgJGJveC1zaGFkb3c6ZmFsc2UsXG4gICRyYWRpdXM6ZmFsc2UsXG4gICR0b3Atb2Zmc2V0OmZhbHNlKSB7XG5cbiAgQGlmICRiZyB7IGJhY2tncm91bmQtY29sb3I6ICRiZzsgfVxuICBAaWYgJHBhZGRpbmcgIT0gZmFsc2UgeyBwYWRkaW5nOiAkcGFkZGluZzsgfVxuXG4gIEBpZiAkYm9yZGVyIHsgYm9yZGVyOiAkYm9yZGVyLXN0eWxlICRib3JkZXItd2lkdGggJGJvcmRlci1jb2xvcjsgfVxuXG4gIC8vIFdlIGNhbiBjaG9vc2Ugd2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0aGUgZGVmYXVsdCBib3gtc2hhZG93LlxuICBAaWYgJGJveC1zaGFkb3cge1xuICAgIGJveC1zaGFkb3c6ICRyZXZlYWwtYm94LXNoYWRvdztcbiAgfVxuXG4gIC8vIFdlIGNhbiBjb250cm9sIGhvdyBtdWNoIHJhZGl1cyBpcyB1c2VkIG9uIHRoZSBtb2RhbFxuICBAaWYgJHJhZGl1cyA9PSB0cnVlIHsgQGluY2x1ZGUgcmFkaXVzKCRyZXZlYWwtcmFkaXVzKTsgfVxuICBAZWxzZSBpZiAkcmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRyYWRpdXMpOyB9XG5cbiAgQGlmICR0b3Atb2Zmc2V0IHtcbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICB0b3A6ICR0b3Atb2Zmc2V0O1xuICAgIH1cbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgYSBjbG9zZSBidXR0b24gZm9yIHRoZSByZXZlYWwgbW9kYWxcbi8vXG4vLyAkY29sb3IgLSBEZWZhdWx0OiAkcmV2ZWFsLWNsb3NlLWNvbG9yIHx8ICRiYXNlXG5AbWl4aW4gcmV2ZWFsLWNsb3NlKCRjb2xvcjokcmV2ZWFsLWNsb3NlLWNvbG9yKSB7XG4gIGZvbnQtc2l6ZTogJHJldmVhbC1jbG9zZS1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHJldmVhbC1jbG9zZS10b3A7XG4gICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRyZXZlYWwtY2xvc2Utc2lkZTtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZm9udC13ZWlnaHQ6ICRyZXZlYWwtY2xvc2Utd2VpZ2h0O1xuICBjdXJzb3I6ICRjdXJzb3ItcG9pbnRlci12YWx1ZTtcbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcInJldmVhbFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLXJldmVhbC1jbGFzc2VzIHtcblxuICAgIC8vIFJldmVhbCBNb2RhbHNcbiAgICAucmV2ZWFsLW1vZGFsLWJnIHsgQGluY2x1ZGUgcmV2ZWFsLWJnOyB9XG5cbiAgICAuI3skcmV2ZWFsLW1vZGFsLWNsYXNzfSB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZTtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1zdHlsZShcbiAgICAgICAgJGJnOiRyZXZlYWwtbW9kYWwtYmcsXG4gICAgICAgICRwYWRkaW5nOiRyZXZlYWwtbW9kYWwtcGFkZGluZyAqIDEuNSxcbiAgICAgICAgJGJvcmRlcjp0cnVlLFxuICAgICAgICAkYm94LXNoYWRvdzp0cnVlLFxuICAgICAgICAkcmFkaXVzOmZhbHNlLFxuICAgICAgICAkdG9wLW9mZnNldDokcmV2ZWFsLXBvc2l0aW9uLXRvcFxuICAgICAgKTtcblxuICAgICAgJi5yYWRpdXMgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoJHJhZGl1czp0cnVlKTsgfVxuICAgICAgJi5yb3VuZCAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoJHJhZGl1czokcmV2ZWFsLXJvdW5kKTsgfVxuICAgICAgJi5jb2xsYXBzZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1zdHlsZSgkcGFkZGluZzowKTsgfVxuICAgICAgJi50aW55ICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCAzMCUpOyB9XG4gICAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDQwJSk7IH1cbiAgICAgICYubWVkaXVtICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA2MCUpOyB9XG4gICAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDcwJSk7IH1cbiAgICAgICYueGxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDk1JSk7IH1cbiAgICAgICYuZnVsbCB7XG4gICAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCAxMDAlKTtcbiAgICAgICAgdG9wOjA7XG4gICAgICAgIGxlZnQ6MDtcbiAgICAgICAgaGVpZ2h0OjEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIG1pbi1oZWlnaHQ6MTAwdmg7XG4gICAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBNb2RhbHMgcHVzaGVkIHRvIGJhY2tcbiAgICAgICYudG9iYWNrIHtcbiAgICAgICAgei1pbmRleDogJHotaW5kZXgtYmFzZSAtIDI7XG4gICAgICB9XG5cbiAgICAgIC4jeyRjbG9zZS1yZXZlYWwtbW9kYWwtY2xhc3N9IHsgQGluY2x1ZGUgcmV2ZWFsLWNsb3NlOyB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwicmVhY3Qtc2VsZWN0L3NlbGVjdFwiO1xuQGltcG9ydCBcInJlYWN0LXNlbGVjdC9jb250cm9sXCI7XG5AaW1wb3J0IFwicmVhY3Qtc2VsZWN0L21lbnVcIjtcbkBpbXBvcnQgXCJyZWFjdC1zZWxlY3QvbWl4aW5zXCI7XG5AaW1wb3J0IFwicmVhY3Qtc2VsZWN0L211bHRpXCI7XG5AaW1wb3J0IFwicmVhY3Qtc2VsZWN0L3NwaW5uZXJcIjtcbiIsIi8qKlxuICogUmVhY3QgU2VsZWN0XG4gKiA9PT09PT09PT09PT1cbiAqIENyZWF0ZWQgYnkgSmVkIFdhdHNvbiBhbmQgSm9zcyBNYWNraXNvbiBmb3IgS2V5c3RvbmVKUywgaHR0cDovL3d3dy5rZXlzdG9uZWpzLmNvbS9cbiAqIGh0dHBzOi8vdHdpdHRlci5jb20vamVkd2F0c29uIGh0dHBzOi8vdHdpdHRlci5jb20vam9zc21hY2tpc29uIGh0dHBzOi8vdHdpdHRlci5jb20va2V5c3RvbmVqc1xuICogTUlUIExpY2Vuc2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9rZXlzdG9uZWpzL3JlYWN0LXNlbGVjdFxuKi9cblxuLy8gVmFyaWFibGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gY29udHJvbCBvcHRpb25zXG4kc2VsZWN0LWlucHV0LWJnOiAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWJnLWRpc2FibGVkOiAgICAgICAgICNmOWY5ZjkgIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvcjogICAgICAgICNjY2MgIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWJvcmRlci1yYWRpdXM6ICAgICAgIDRweCAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtYm9yZGVyLWZvY3VzOiAgICAgICAgIzA4YyAhZGVmYXVsdDsgLy8gYmx1ZVxuJHNlbGVjdC1pbnB1dC1ib3JkZXItd2lkdGg6ICAgICAgICAxcHggIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWhlaWdodDogICAgICAgICAgICAgIDM2cHggIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWludGVybmFsLWhlaWdodDogICAgICgkc2VsZWN0LWlucHV0LWhlaWdodCAtICgkc2VsZWN0LWlucHV0LWJvcmRlci13aWR0aCAqIDIpKSAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtcGxhY2Vob2xkZXI6ICAgICAgICAgI2FhYSAhZGVmYXVsdDtcbiRzZWxlY3QtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgIzMzMyAhZGVmYXVsdDtcbiRzZWxlY3QtbGluay1ob3Zlci1jb2xvcjogICAgICAgICAgJHNlbGVjdC1pbnB1dC1ib3JkZXItZm9jdXMgIWRlZmF1bHQ7XG5cbiRzZWxlY3QtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgOHB4ICFkZWZhdWx0O1xuJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAxMHB4ICFkZWZhdWx0O1xuXG4vLyBtZW51IG9wdGlvbnNcbiRzZWxlY3QtbWVudS16aW5kZXg6ICAgICAgICAgICAgICAgMTAwMCAhZGVmYXVsdDtcbiRzZWxlY3QtbWVudS1tYXgtaGVpZ2h0OiAgICAgICAgICAgMjAwcHggIWRlZmF1bHQ7XG5cbiRzZWxlY3Qtb3B0aW9uLWNvbG9yOiAgICAgICAgICAgICAgbGlnaHRlbigkc2VsZWN0LXRleHQtY29sb3IsIDIwJSkgIWRlZmF1bHQ7XG4kc2VsZWN0LW9wdGlvbi1iZzogICAgICAgICAgICAgICAgICRzZWxlY3QtaW5wdXQtYmcgIWRlZmF1bHQ7XG4kc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWNvbG9yOiAgICAgICRzZWxlY3QtdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtYmc6ICAgICAgICAgI2YyZjlmYyAhZGVmYXVsdDsgLy8gcGFsZSBibHVlXG4kc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1jb2xvcjogICAgICRzZWxlY3QtdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWJnOiAgICAgICAgI0RBRDFEMSAhZGVmYXVsdDsgLy8gZ3JheVxuJHNlbGVjdC1vcHRpb24tZGlzYWJsZWQtY29sb3I6ICAgICBsaWdodGVuKCRzZWxlY3QtdGV4dC1jb2xvciwgNjAlKSAhZGVmYXVsdDtcblxuJHNlbGVjdC1ub3Jlc3VsdHMtY29sb3I6ICAgICAgICAgICBsaWdodGVuKCRzZWxlY3QtdGV4dC1jb2xvciwgNDAlKSAhZGVmYXVsdDtcblxuLy8gY2xlYXIgXCJ4XCIgYnV0dG9uXG4kc2VsZWN0LWNsZWFyLXNpemU6ICAgICAgICAgICAgICAgIGZsb29yKCgkc2VsZWN0LWlucHV0LWhlaWdodCAvIDIpKSAhZGVmYXVsdDtcbiRzZWxlY3QtY2xlYXItY29sb3I6ICAgICAgICAgICAgICAgIzk5OSAhZGVmYXVsdDtcbiRzZWxlY3QtY2xlYXItaG92ZXItY29sb3I6ICAgICAgICAgI0QwMDIxQiAhZGVmYXVsdDsgLy8gcmVkXG4kc2VsZWN0LWNsZWFyLXdpZHRoOiAgICAgICAgICAgICAgICgkc2VsZWN0LWlucHV0LWludGVybmFsLWhlaWdodCAvIDIpICFkZWZhdWx0O1xuXG4vLyBhcnJvdyBpbmRpY2F0b3JcbiRzZWxlY3QtYXJyb3ctY29sb3I6ICAgICAgICAgICAgICAgIzk5OSAhZGVmYXVsdDtcbiRzZWxlY3QtYXJyb3ctY29sb3ItaG92ZXI6ICAgICAgICAgIzY2NiAhZGVmYXVsdDtcbiRzZWxlY3QtYXJyb3ctd2lkdGg6ICAgICAgICAgICAgICAgNXB4ICFkZWZhdWx0O1xuXG4vLyBsb2FkaW5nIGluZGljYXRvclxuJHNlbGVjdC1sb2FkaW5nLXNpemU6ICAgICAgICAgICAgICAxNnB4ICFkZWZhdWx0O1xuJHNlbGVjdC1sb2FkaW5nLWNvbG9yOiAgICAgICAgICAgICAkc2VsZWN0LXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kc2VsZWN0LWxvYWRpbmctY29sb3ItYmc6ICAgICAgICAgICRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4vLyBtdWx0aS1zZWxlY3QgaXRlbVxuJHNlbGVjdC1pdGVtLWJvcmRlci1yYWRpdXM6ICAgICAgICAycHggIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tZ3V0dGVyOiAgICAgICAgICAgICAgIDVweCAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgMnB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogICA1cHggIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tZm9udC1zaXplOiAgICAgICAgICAgIC45ZW0gIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICMwOGMgIWRlZmF1bHQ7IC8vIHBhbGUgYmx1ZVxuJHNlbGVjdC1pdGVtLWJnOiAgICAgICAgICAgICAgICAgICAjZjJmOWZjICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWJvcmRlci1jb2xvcjogICAgICAgICBkYXJrZW4oJHNlbGVjdC1pdGVtLWJnLCAxMCUpICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICBkYXJrZW4oJHNlbGVjdC1pdGVtLWNvbG9yLCA1JSkgIWRlZmF1bHQ7IC8vIHBhbGUgYmx1ZVxuJHNlbGVjdC1pdGVtLWhvdmVyLWJnOiAgICAgICAgICAgICBkYXJrZW4oJHNlbGVjdC1pdGVtLWJnLCA1JSkgIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tZGlzYWJsZWQtY29sb3I6ICAgICAgICMzMzMgIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYmc6ICAgICAgICAgICNmY2ZjZmMgIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiBkYXJrZW4oJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJnLCAxMCUpICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvbnRyb2xcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW1wb3J0ICdzcGlubmVyJztcbkBpbXBvcnQgJ21peGlucyc7XG5cbi5TZWxlY3Qge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0Ly8gcHJlZmVycmVkIGJveCBtb2RlbFxuXHQmLFxuXHQmIGRpdixcblx0JiBpbnB1dCxcblx0JiBzcGFuIHtcblx0XHRAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuXHR9XG5cblx0Ly8gaGFuZGxlIGRpc2FibGVkIHN0YXRlXG5cdCYuaXMtZGlzYWJsZWQgPiAuU2VsZWN0LWNvbnRyb2wge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaW5wdXQtYmctZGlzYWJsZWQ7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdH1cblx0fVxuXHQmLmlzLWRpc2FibGVkIC5TZWxlY3QtYXJyb3ctem9uZSB7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG59XG5cbi8vIGJhc2VcblxuLlNlbGVjdC1jb250cm9sIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pbnB1dC1iZztcblx0Ym9yZGVyLWNvbG9yOiBsaWdodGVuKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yLCA1JSkgJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IgZGFya2VuKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yLCAxMCUpO1xuXHRib3JkZXItcmFkaXVzOiAkc2VsZWN0LWlucHV0LWJvcmRlci1yYWRpdXM7XG5cdGJvcmRlcjogJHNlbGVjdC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3I7XG5cdGNvbG9yOiAkc2VsZWN0LXRleHQtY29sb3I7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0ZGlzcGxheTogdGFibGU7XG5cdGJvcmRlci1zcGFjaW5nOiAwO1xuXHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuXHRoZWlnaHQ6ICRzZWxlY3QtaW5wdXQtaGVpZ2h0O1xuXHRvdXRsaW5lOiBub25lO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiAxMDAlO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjA2KTtcblx0fVxufVxuXG4uaXMtc2VhcmNoYWJsZSB7XG5cdCYuaXMtb3BlbiA+IC5TZWxlY3QtY29udHJvbCB7XG5cdFx0Y3Vyc29yOiB0ZXh0O1xuXHR9XG59XG5cbi5pcy1vcGVuID4gLlNlbGVjdC1jb250cm9sIHtcblx0QGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoIDAgKTtcblx0YmFja2dyb3VuZDogJHNlbGVjdC1pbnB1dC1iZztcblx0Ym9yZGVyLWNvbG9yOiBkYXJrZW4oJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IsIDEwJSkgJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IgbGlnaHRlbigkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciwgNSUpO1xuXG5cdC8vIGZsaXAgdGhlIGFycm93IHNvIGl0cyBwb2ludGluZyB1cCB3aGVuIHRoZSBtZW51IGlzIG9wZW5cblx0PiAuU2VsZWN0LWFycm93IHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRzZWxlY3QtYXJyb3ctY29sb3I7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwICRzZWxlY3QtYXJyb3ctd2lkdGggJHNlbGVjdC1hcnJvdy13aWR0aDtcblx0fVxufVxuXG4uaXMtc2VhcmNoYWJsZSB7XG5cdCYuaXMtZm9jdXNlZDpub3QoLmlzLW9wZW4pID4gLlNlbGVjdC1jb250cm9sIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cbn1cblxuLmlzLWZvY3VzZWQ6bm90KC5pcy1vcGVuKSA+IC5TZWxlY3QtY29udHJvbCB7XG5cdGJvcmRlci1jb2xvcjogJHNlbGVjdC1pbnB1dC1ib3JkZXItZm9jdXMgbGlnaHRlbigkc2VsZWN0LWlucHV0LWJvcmRlci1mb2N1cywgNSUpIGxpZ2h0ZW4oJHNlbGVjdC1pbnB1dC1ib3JkZXItZm9jdXMsIDUlKTtcblx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAwIDVweCAtMXB4IGZhZGUoJHNlbGVjdC1pbnB1dC1ib3JkZXItZm9jdXMsNTAlKTtcbn1cblxuLy8gcGxhY2Vob2xkZXJcblxuLlNlbGVjdC1wbGFjZWhvbGRlcixcbjpub3QoLlNlbGVjdC0tbXVsdGkpID4gLlNlbGVjdC1jb250cm9sIC5TZWxlY3QtdmFsdWUge1xuXHRib3R0b206IDA7XG5cdGNvbG9yOiAkc2VsZWN0LWlucHV0LXBsYWNlaG9sZGVyO1xuXHRsZWZ0OiAwO1xuXHRsaW5lLWhlaWdodDogJHNlbGVjdC1pbnB1dC1pbnRlcm5hbC1oZWlnaHQ7XG5cdHBhZGRpbmctbGVmdDogJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG5cdHBhZGRpbmctcmlnaHQ6ICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAwO1xuXHR0b3A6IDA7XG5cblx0Ly8gY3JvcCB0ZXh0XG5cdG1heC13aWR0aDogMTAwJTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5oYXMtdmFsdWU6bm90KC5TZWxlY3QtLW11bHRpKTpub3QoLmlzLWZvY3VzZWQpID4gLlNlbGVjdC1jb250cm9sID4gLlNlbGVjdC12YWx1ZSxcbi5oYXMtdmFsdWUuaXMtcHNldWRvLWZvY3VzZWQ6bm90KC5TZWxlY3QtLW11bHRpKSA+IC5TZWxlY3QtY29udHJvbCA+IC5TZWxlY3QtdmFsdWUge1xuXHQuU2VsZWN0LXZhbHVlLWxhYmVsIHtcblx0XHRjb2xvcjogJHNlbGVjdC10ZXh0LWNvbG9yO1xuXHR9XG5cdGEuU2VsZWN0LXZhbHVlLWxhYmVsIHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJHNlbGVjdC1saW5rLWhvdmVyLWNvbG9yO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gdGhlIDxpbnB1dD4gZWxlbWVudCB1c2VycyB0eXBlIGluXG5cbi5TZWxlY3QtaW5wdXQge1xuXHQvLyBpbmhlcml0cyBgZGlzcGxheTogaW5saW5lLWJsb2NrYCBmcm9tIFwicmVhY3QtaW5wdXQtYXV0b3NpemVcIlxuXHRoZWlnaHQ6ICRzZWxlY3QtaW5wdXQtaW50ZXJuYWwtaGVpZ2h0O1xuXHRwYWRkaW5nLWxlZnQ6ICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xuXHRwYWRkaW5nLXJpZ2h0OiAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuXHQ+IGlucHV0IHtcblx0XHRiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlcjogMCBub25lO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0XHRmb250LXNpemU6IGluaGVyaXQ7XG5cdFx0aGVpZ2h0OiAkc2VsZWN0LWlucHV0LWludGVybmFsLWhlaWdodDtcblx0XHRtYXJnaW46IDA7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuXHRcdC5pcy1mb2N1c2VkICYge1xuXHRcdFx0Y3Vyc29yOiB0ZXh0O1xuXHRcdH1cblx0fVxuXG59XG5cbi8vIGZha2UtaGlkZSB0aGUgaW5wdXQgd2hlbiB0aGUgY29udHJvbCBpcyBwc2V1ZG8tZm9jdXNlZFxuLmhhcy12YWx1ZS5pcy1wc2V1ZG8tZm9jdXNlZCAuU2VsZWN0LWlucHV0IHtcblx0b3BhY2l0eTogMDtcbn1cblxuLy8gZmFrZSBpbnB1dFxuLlNlbGVjdC1jb250cm9sOm5vdCguaXMtc2VhcmNoYWJsZSkgPiAuU2VsZWN0LWlucHV0IHtcblx0b3V0bGluZTogbm9uZTtcbn1cblxuLy8gbG9hZGluZyBpbmRpY2F0b3Jcbi5TZWxlY3QtbG9hZGluZy16b25lIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0d2lkdGg6ICRzZWxlY3QtbG9hZGluZy1zaXplO1xufVxuLlNlbGVjdC1sb2FkaW5nIHtcblx0QGluY2x1ZGUgU2VsZWN0LXNwaW5uZXIoJHNlbGVjdC1sb2FkaW5nLXNpemUsICRzZWxlY3QtbG9hZGluZy1jb2xvci1iZywgJHNlbGVjdC1sb2FkaW5nLWNvbG9yKTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuXG4vLyB0aGUgbGl0dGxlIGNyb3NzIHRoYXQgY2xlYXJzIHRoZSBmaWVsZFxuXG4uU2VsZWN0LWNsZWFyLXpvbmUge1xuXHRAaW5jbHVkZSBhbmltYXRpb24oIFNlbGVjdC1hbmltYXRpb24tZmFkZUluIDIwMG1zICk7XG5cdGNvbG9yOiAkc2VsZWN0LWNsZWFyLWNvbG9yO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR3aWR0aDogJHNlbGVjdC1jbGVhci13aWR0aDtcblxuXHQmOmhvdmVyIHtcblx0XHRjb2xvcjogJHNlbGVjdC1jbGVhci1ob3Zlci1jb2xvcjtcblx0fVxufVxuLlNlbGVjdC1jbGVhciB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Zm9udC1zaXplOiAkc2VsZWN0LWNsZWFyLXNpemU7XG5cdGxpbmUtaGVpZ2h0OiAxO1xufVxuLlNlbGVjdC0tbXVsdGkgLlNlbGVjdC1jbGVhci16b25lIHtcblx0d2lkdGg6ICRzZWxlY3QtY2xlYXItd2lkdGg7XG59XG5cblxuLy8gYXJyb3cgaW5kaWNhdG9yXG5cbi5TZWxlY3QtYXJyb3ctem9uZSB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHdpZHRoOiAoJHNlbGVjdC1hcnJvdy13aWR0aCAqIDUpO1xuXHRwYWRkaW5nLXJpZ2h0OiAkc2VsZWN0LWFycm93LXdpZHRoO1xufVxuXG4uU2VsZWN0LWFycm93IHtcblx0Ym9yZGVyLWNvbG9yOiAkc2VsZWN0LWFycm93LWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRib3JkZXItd2lkdGg6ICRzZWxlY3QtYXJyb3ctd2lkdGggJHNlbGVjdC1hcnJvdy13aWR0aCAoJHNlbGVjdC1hcnJvdy13aWR0aCAvIDIpO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGhlaWdodDogMDtcblx0d2lkdGg6IDA7XG59XG4uaXMtb3BlbiAuU2VsZWN0LWFycm93LFxuLlNlbGVjdC1hcnJvdy16b25lOmhvdmVyID4gLlNlbGVjdC1hcnJvdyB7XG5cdGJvcmRlci10b3AtY29sb3I6ICRzZWxlY3QtYXJyb3ctY29sb3ItaG92ZXI7XG59XG5cblxuXG5cbi8vIEFuaW1hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIGZhZGUgaW5cblxuQC13ZWJraXQta2V5ZnJhbWVzIFNlbGVjdC1hbmltYXRpb24tZmFkZUluIHtcblx0ZnJvbSB7IG9wYWNpdHk6IDA7IH1cblx0dG8geyBvcGFjaXR5OiAxOyB9XG59XG5Aa2V5ZnJhbWVzIFNlbGVjdC1hbmltYXRpb24tZmFkZUluIHtcblx0ZnJvbSB7IG9wYWNpdHk6IDA7IH1cblx0dG8geyBvcGFjaXR5OiAxOyB9XG59XG4iLCIvL1xuLy8gU3Bpbm5lclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wb3J0ICdtaXhpbnMnO1xuXG5AbWl4aW4gU2VsZWN0LXNwaW5uZXIoJHNpemUsICRvcmJpdCwgJHNhdGVsbGl0ZSlcbntcblx0QGluY2x1ZGUgYW5pbWF0aW9uKCBTZWxlY3QtYW5pbWF0aW9uLXNwaW4gNDAwbXMgaW5maW5pdGUgbGluZWFyICk7XG5cdEBpbmNsdWRlIHNxdWFyZSgkc2l6ZSk7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0Ym9yZGVyOiBmbG9vcigoJHNpemUgLyA4KSkgc29saWQgJG9yYml0O1xuXHRib3JkZXItcmlnaHQtY29sb3I6ICRzYXRlbGxpdGU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG59XG5cbkBrZXlmcmFtZXMgU2VsZWN0LWFuaW1hdGlvbi1zcGluIHtcblx0dG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgxdHVybik7IH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBTZWxlY3QtYW5pbWF0aW9uLXNwaW4ge1xuXHR0byB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pOyB9XG59XG4iLCIvL1xuLy8gTWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBVdGlsaXRpZXNcblxuQG1peGluIHNpemUoJHdpZHRoLCAkaGVpZ2h0KVxue1xuXHR3aWR0aDogJHdpZHRoO1xuXHRoZWlnaHQ6ICRoZWlnaHQ7XG59XG5AbWl4aW4gc3F1YXJlKCRzaXplKVxue1xuXHRAaW5jbHVkZSBzaXplKCRzaXplLCAkc2l6ZSk7XG59XG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1cylcbntcblx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG59XG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzKVxue1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcblx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG59XG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1cylcbntcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG59XG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpdXMpXG57XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG59XG5cblxuLy8gVmVuZG9yIFByZWZpeGVzXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbilcbntcblx0LXdlYmtpdC1hbmltYXRpb246ICRhbmltYXRpb247XG5cdC1vLWFuaW1hdGlvbjogJGFuaW1hdGlvbjtcblx0YW5pbWF0aW9uOiAkYW5pbWF0aW9uO1xufVxuQG1peGluIGJveC1zaXppbmcoJGJveG1vZGVsKVxue1xuXHQtd2Via2l0LWJveC1zaXppbmc6ICRib3htb2RlbDtcblx0LW1vei1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG5cdGJveC1zaXppbmc6ICRib3htb2RlbDtcbn1cbkBtaXhpbiByb3RhdGUoJGRlZ3JlZXMpXG57XG5cdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuXHQtbXMtdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuXHQtby10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG5cdHRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbn1cbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybSlcbntcblx0LXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm07XG5cdC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xuXHQtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xuXHR0cmFuc2Zvcm06ICR0cmFuc2Zvcm07XG59XG4iLCIvL1xuLy8gU2VsZWN0IE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIHdyYXBwZXIgYXJvdW5kIHRoZSBtZW51XG5cbi5TZWxlY3QtbWVudS1vdXRlciB7XG5cdC8vIFVuZm9ydHVuYXRlbHksIGhhdmluZyBib3RoIGJvcmRlci1yYWRpdXMgYW5kIGFsbG93cyBzY3JvbGxpbmcgdXNpbmcgb3ZlcmZsb3cgZGVmaW5lZCBvbiB0aGUgc2FtZVxuXHQvLyBlbGVtZW50IGZvcmNlcyB0aGUgYnJvd3NlciB0byByZXBhaW50IG9uIHNjcm9sbC4gIEhvd2V2ZXIsIGlmIHRoZXNlIGRlZmluaXRpb25zIGFyZSBzcGxpdCBpbnRvIGFuXG5cdC8vIG91dGVyIGFuZCBhbiBpbm5lciBlbGVtZW50LCB0aGUgYnJvd3NlciBpcyBhYmxlIHRvIG9wdGltaXplIHRoZSBzY3JvbGxpbmcgYmVoYXZpb3IgYW5kIGRvZXMgbm90XG5cdC8vIGhhdmUgdG8gcmVwYWludCBvbiBzY3JvbGwuXG5cdEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCAkc2VsZWN0LWlucHV0LWJvcmRlci1yYWRpdXMgKTtcblx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pbnB1dC1iZztcblx0Ym9yZGVyOiAxcHggc29saWQgJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3I7XG5cdGJvcmRlci10b3AtY29sb3I6IG1peCgkc2VsZWN0LWlucHV0LWJnLCAkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciwgNTAlKTtcblx0Ym94LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRtYXJnaW4tdG9wOiAtMXB4O1xuXHRtYXgtaGVpZ2h0OiAkc2VsZWN0LW1lbnUtbWF4LWhlaWdodDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuXHR6LWluZGV4OiAkc2VsZWN0LW1lbnUtemluZGV4O1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cblxuLy8gd3JhcHBlclxuXG4uU2VsZWN0LW1lbnUge1xuXHRtYXgtaGVpZ2h0OiAoJHNlbGVjdC1tZW51LW1heC1oZWlnaHQgLSAycHgpO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xufVxuXG5cbi8vIG9wdGlvbnNcblxuLlNlbGVjdC1vcHRpb24ge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LW9wdGlvbi1iZztcblx0Y29sb3I6ICRzZWxlY3Qtb3B0aW9uLWNvbG9yO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAkc2VsZWN0LXBhZGRpbmctdmVydGljYWwgJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG5cblx0JjpsYXN0LWNoaWxkIHtcblx0XHRAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cyggJHNlbGVjdC1pbnB1dC1ib3JkZXItcmFkaXVzICk7XG5cdH1cblxuXHQmLmlzLWZvY3VzZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtYmc7XG5cdFx0Y29sb3I6ICRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtY29sb3I7XG5cdH1cblxuXHQmLmlzLXNlbGVjdGVkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1iZztcblx0XHRjb2xvcjogJHNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtY29sb3I7XG5cdH1cblxuXHQmLmlzLWRpc2FibGVkIHtcblx0XHRjb2xvcjogJHNlbGVjdC1vcHRpb24tZGlzYWJsZWQtY29sb3I7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR9XG5cbn1cblxuXG4vLyBubyByZXN1bHRzXG5cbi5TZWxlY3Qtbm9yZXN1bHRzIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Y29sb3I6ICRzZWxlY3Qtbm9yZXN1bHRzLWNvbG9yO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAkc2VsZWN0LXBhZGRpbmctdmVydGljYWwgJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG59XG4iLCIvL1xuLy8gTXVsdGktU2VsZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlXG5cbi5TZWxlY3QtLW11bHRpIHtcblxuXHQvLyBhZGQgbWFyZ2luIHRvIHRoZSBpbnB1dCBlbGVtZW50XG5cdC5TZWxlY3QtaW5wdXQge1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0Ly8gYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0bWFyZ2luLWxlZnQ6ICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHQvLyByZWR1Y2UgbWFyZ2luIG9uY2UgdGhlcmUgaXMgdmFsdWVcblx0Ji5oYXMtdmFsdWUgLlNlbGVjdC1pbnB1dCB7XG5cdFx0bWFyZ2luLWxlZnQ6ICRzZWxlY3QtaXRlbS1ndXR0ZXI7XG5cdH1cblxuXHQvLyBJdGVtc1xuXHQuU2VsZWN0LXZhbHVlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWl0ZW0tYmc7XG5cdFx0Ym9yZGVyLXJhZGl1czogJHNlbGVjdC1pdGVtLWJvcmRlci1yYWRpdXM7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHNlbGVjdC1pdGVtLWJvcmRlci1jb2xvcjtcblx0XHRjb2xvcjogJHNlbGVjdC1pdGVtLWNvbG9yO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRmb250LXNpemU6ICRzZWxlY3QtaXRlbS1mb250LXNpemU7XG5cdFx0bWFyZ2luLWxlZnQ6ICRzZWxlY3QtaXRlbS1ndXR0ZXI7XG5cdFx0bWFyZ2luLXRvcDogJHNlbGVjdC1pdGVtLWd1dHRlcjtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHR9XG5cblx0Ly8gY29tbW9uXG5cdC5TZWxlY3QtdmFsdWUtaWNvbixcblx0LlNlbGVjdC12YWx1ZS1sYWJlbCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdH1cblxuXHQvLyBsYWJlbFxuXHQuU2VsZWN0LXZhbHVlLWxhYmVsIHtcblx0XHRAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKCAkc2VsZWN0LWl0ZW0tYm9yZGVyLXJhZGl1cyApO1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRwYWRkaW5nOiAkc2VsZWN0LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCAkc2VsZWN0LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsO1xuXHR9XG5cdGEuU2VsZWN0LXZhbHVlLWxhYmVsIHtcblx0XHRjb2xvcjogJHNlbGVjdC1pdGVtLWNvbG9yO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdH1cblx0fVxuXG5cdC8vIGljb25cblx0LlNlbGVjdC12YWx1ZS1pY29uIHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0QGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKCAkc2VsZWN0LWl0ZW0tYm9yZGVyLXJhZGl1cyApO1xuXHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRzZWxlY3QtaXRlbS1ib3JkZXItY29sb3I7XG5cblx0XHQvLyBtb3ZlIHRoZSBiYXNlbGluZSB1cCBieSAxcHhcblx0XHRwYWRkaW5nOiAoJHNlbGVjdC1pdGVtLXBhZGRpbmctdmVydGljYWwgLSAxKSAkc2VsZWN0LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsICgkc2VsZWN0LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCArIDEpO1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaXRlbS1ob3Zlci1iZztcblx0XHRcdGNvbG9yOiAkc2VsZWN0LWl0ZW0taG92ZXItY29sb3I7XG5cdFx0fVxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaXRlbS1ib3JkZXItY29sb3I7XG5cdFx0fVxuXHR9XG5cbn1cblxuLlNlbGVjdC0tbXVsdGkuaXMtZGlzYWJsZWQge1xuXHQuU2VsZWN0LXZhbHVlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYmc7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJvcmRlci1jb2xvcjtcblx0XHRjb2xvcjogJHNlbGVjdC1pdGVtLWRpc2FibGVkLWNvbG9yO1xuXHR9XG5cdC8vIGljb25cblx0LlNlbGVjdC12YWx1ZS1pY29uIHtcblx0XHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRzZWxlY3QtaXRlbS1kaXNhYmxlZC1ib3JkZXItY29sb3I7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMsXG5cdFx0JjphY3RpdmUge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJnO1xuXHRcdH1cblx0fVxufVxuIiwiLyoqXG4gKiBDb21tZW50cyBzdHlsaW5nLCBjb3VydGVzeSBvZlxuICogaHR0cDovL3JlZmlsbHMuYm91cmJvbi5pby9cbiAqL1xuXG4kY29tbWVudC1ndXR0ZXI6ICAgICAgICAgICAgICAgIDEuNGVtICFkZWZhdWx0O1xuJGNvbW1lbnQtaW1hZ2UtbWFyZ2luOiAgICAgICAgICAuN2VtICFkZWZhdWx0O1xuJGNvbW1lbnQtaW1hZ2Utd2lkdGg6ICAgICAgICAgICAzMHB4ICFkZWZhdWx0O1xuJGNvbW1lbnQtaW1hZ2Utd2lkdGgtbGFyZ2U6ICAgICA2MHB4ICFkZWZhdWx0O1xuJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXBhZGRpbmc6ICAzcHggIWRlZmF1bHQ7XG4kY29tbWVudC1pbWFnZS1ib3JkZXItd2lkdGg6ICAgIDFweCAhZGVmYXVsdDtcbiRjb21tZW50LWhlYWRlci1mb250LXNpemU6ICAgICAgcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGNvbW1lbnQtY29sb3I6ICAgICAgICAgICAgICAgICAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuJGNvbW1lbnQtYmFja2dyb3VuZDogICAgICAgICAgICAkc2Vjb25kYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGNvbW1lbnQtZGV0YWlsLWNvbG9yOiAgICAgICAgICB0cmFuc3BhcmVudGl6ZSgkY29tbWVudC1jb2xvciwgLjUpICFkZWZhdWx0O1xuJGNvbW1lbnQtaW1hZ2UtdmVydC1hbGlnbm1lbnQ6ICB0b3AgIWRlZmF1bHQ7XG4kY29tbWVudC1zdGFyLWNvbG9yOiAgICAgICAgICAgICRjYWxsLXRvLWFjdGlvbi1jb2xvciAhZGVmYXVsdDtcbiRjb21tZW50LWF2YXRhci1ib3JkZXItY29sb3I6ICAgI2RkZCAhZGVmYXVsdDtcbiRjb21tZW50LWF2YXRhci1ib3gtc2l6ZTogICAgICAgI3skY29tbWVudC1pbWFnZS13aWR0aCArICRjb21tZW50LWltYWdlLWJvcmRlci1wYWRkaW5nICogMiArICRjb21tZW50LWltYWdlLWJvcmRlci13aWR0aCAqIDJ9O1xuJGNvbW1lbnQtYXZhdGFyLWJveC1zaXplLWxhcmdlOiAjeyRjb21tZW50LWltYWdlLXdpZHRoLWxhcmdlICsgJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXBhZGRpbmcgKiAyICsgJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXdpZHRoICogMn07XG5cbi5jb21tZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAjeyRwYXJhZ3JhcGgtbGluZS1oZWlnaHQgKiAxcmVtfTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudGl6ZSgkY29tbWVudC1jb2xvciwgLjkpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIC5jb21tZW50LWF2YXRhciB7XG4gICAgICAgICAgICBib3JkZXI6ICRjb21tZW50LWltYWdlLWJvcmRlci13aWR0aCBzb2xpZCBkYXJrZW4oJGNvbW1lbnQtYXZhdGFyLWJvcmRlci1jb2xvciwgMzAlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNvbW1lbnQtaW1hZ2UsXG4uY29tbWVudC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiAkY29tbWVudC1pbWFnZS12ZXJ0LWFsaWdubWVudDtcbn1cblxuLmNvbW1lbnQtaW1hZ2Uge1xuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAkY29tbWVudC1pbWFnZS13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgIHBhZGRpbmctcmlnaHQ6ICRjb21tZW50LWltYWdlLW1hcmdpbjtcbn1cblxuLyoqXG4gKiBDaXJjdWxhciBhdmF0YXJzXG4gKiBDb3VydGVzeSBvZiBodHRwOi8vY29kZXBlbi5pby9icmFkZW5oYW1tL3Blbi95RHVrYVxuICovXG5cbi5jb21tZW50LWF2YXRhciB7XG4gICAgbGluZS1oZWlnaHQ6IDA7ICAgICAvKiByZW1vdmUgbGluZS1oZWlnaHQgKi8gXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAgLyogY2lyY2xlIHdyYXBzIGltYWdlICovXG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyAvKiByZWxhdGl2ZSB2YWx1ZSAqL1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYm9yZGVyIDMwMG1zIGVhc2UpO1xuICAgIGhlaWdodDogJGNvbW1lbnQtYXZhdGFyLWJveC1zaXplO1xuICAgIHdpZHRoOiAkY29tbWVudC1hdmF0YXItYm94LXNpemU7XG4gICAgYm9yZGVyOiAkY29tbWVudC1pbWFnZS1ib3JkZXItd2lkdGggc29saWQgJGNvbW1lbnQtYXZhdGFyLWJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nOiAkY29tbWVudC1pbWFnZS1ib3JkZXItcGFkZGluZztcbn1cblxuLmNvbW1lbnQtYXZhdGFyIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyAvKiByZWxhdGl2ZSB2YWx1ZSBmb3JcbiAgICAgICAgICAgICAgICAgICBhZGp1c3RhYmxlIGltYWdlIHNpemUgKi9cbn1cblxuLmNvbW1lbnQtY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuY29tbWVudC1jb250ZW50X190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGNvbW1lbnQtaGVhZGVyLWZvbnQtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgICB9XG5cbiAgICAuY29tbWVudC1kZXRhaWwge1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgICAgICAgY29sb3I6ICRjb21tZW50LWRldGFpbC1jb2xvcjtcbiAgICB9XG59XG5cbi5jb21tZW50LXN0YXItcmF0aW5nIGkge1xuICAgIGNvbG9yOiAkY29tbWVudC1zdGFyLWNvbG9yO1xuICAgIG1hcmdpbi1yaWdodDogLTJweDtcbn1cblxuLmNvbW1lbnQtc3Rhci1yYXRpbmcge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG59XG5cbi5jb21tZW50LXN0YXItcmF0aW5nLWNvdW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uY29tbWVudC1kZXRhaWwge1xuICAgIC5jb21tZW50LXN0YXItcmF0aW5nIHtcbiAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgIGZpZ2NhcHRpb24ge1xuICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb21tZW50cy1mb3JtIHtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbn1cblxuLmNvbW1lbnRzLWZvcm0td3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG5cbi5jb21tZW50cy1mb3JtLWVycm9yOmVtcHR5LFxuLmNvbW1lbnQtZm9ybS12YWxpZGF0aW9uLWVycm9yczplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNvbW1lbnRzLWd1aWRlbGluZXMge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIFxuICAgIHAsIGxpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgfVxufVxuXG4jcHJvZHVrdF9hbm1lbGRlbHNlcl9mb3JtX3ZhbGlkZXJ0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAuY29tbWVudC1pbWFnZSB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogJGNvbW1lbnQtaW1hZ2Utd2lkdGgtbGFyZ2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29tbWVudC1hdmF0YXIge1xuICAgICAgICBoZWlnaHQ6ICRjb21tZW50LWF2YXRhci1ib3gtc2l6ZS1sYXJnZTtcbiAgICAgICAgd2lkdGg6ICRjb21tZW50LWF2YXRhci1ib3gtc2l6ZS1sYXJnZTtcbiAgICB9XG59IiwiLmNvb2tpZV9ub3RpY2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAzOTBweDtcbiAgICB6LWluZGV4OiA5OTk5OTk5O1xuICAgIG1heC1oZWlnaHQ6IDk1JTtcbiAgICByaWdodDogMjBweDtcbiAgICBib3R0b206IDIwcHg7XG59XG5cbi5jb29raWVfbm90aWNlX2FyZWEge1xuXHRtYXJnaW4tbGVmdDogNSU7XG5cdG1hcmdpbi1yaWdodDogNSU7XG4gICAgbWFyZ2luLWJvdHRvbTogNSU7XG59XG5cbiNjb29raWVfbm90aWNlX3RleHQge1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICBjb2xvcjp3aGl0ZTtcbn1cblxuI2Nvb2tpZV9idXR0b25zIGEge1xuICAgIHBhZGRpbmc6IDhweDtcblxuICAgICY6dmlzaXRlZCwgXG4gICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxufVxuXG4jY29va2llX2J1dHRvbnMgc3BhbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn0iLCIvKiEgZmFuY3lCb3ggdjIuMS41IGZhbmN5YXBwcy5jb20gfCBmYW5jeWFwcHMuY29tL2ZhbmN5Ym94LyNsaWNlbnNlICovXG4uZmFuY3lib3gtd3JhcCxcbi5mYW5jeWJveC1za2luLFxuLmZhbmN5Ym94LW91dGVyLFxuLmZhbmN5Ym94LWlubmVyLFxuLmZhbmN5Ym94LWltYWdlLFxuLmZhbmN5Ym94LXdyYXAgaWZyYW1lLFxuLmZhbmN5Ym94LXdyYXAgb2JqZWN0LFxuLmZhbmN5Ym94LW5hdixcbi5mYW5jeWJveC1uYXYgc3Bhbixcbi5mYW5jeWJveC10bXBcbntcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4uZmFuY3lib3gtd3JhcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDgwMjA7XG59XG5cbi5mYW5jeWJveC1za2luIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgICBjb2xvcjogIzQ0NDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLmZhbmN5Ym94LW9wZW5lZCB7XG4gICAgei1pbmRleDogODAzMDtcbn1cblxuLmZhbmN5Ym94LW9wZW5lZCAuZmFuY3lib3gtc2tpbiB7XG4gICAtbW96LWJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDI1cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuXG4uZmFuY3lib3gtb3V0ZXIsIC5mYW5jeWJveC1pbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmFuY3lib3gtaW5uZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5mYW5jeWJveC10eXBlLWlmcmFtZSAuZmFuY3lib3gtaW5uZXIge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLmZhbmN5Ym94LWVycm9yIHtcbiAgICBjb2xvcjogIzQ0NDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZmFuY3lib3gtaW1hZ2UsIC5mYW5jeWJveC1pZnJhbWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLmZhbmN5Ym94LWltYWdlIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuI2ZhbmN5Ym94LWxvYWRpbmcsIC5mYW5jeWJveC1jbG9zZSwgLmZhbmN5Ym94LXByZXYgc3BhbiwgLmZhbmN5Ym94LW5leHQgc3BhbiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltZy9mYW5jeWJveF9zcHJpdGUucG5nJyk7XG59XG5cbiNmYW5jeWJveC1sb2FkaW5nIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0yMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtMjJweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xMDhweDtcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDgwNjA7XG59XG5cbiNmYW5jeWJveC1sb2FkaW5nIGRpdiB7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGJhY2tncm91bmQ6IHVybCgnL2Fzc2V0cy9pbWcvZmFuY3lib3hfbG9hZGluZy5naWYnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbn1cblxuLmZhbmN5Ym94LWNsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMThweDtcbiAgICByaWdodDogLTE4cHg7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB6LWluZGV4OiA4MDQwO1xufVxuXG4uZmFuY3lib3gtbmF2IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiA0MCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuICAgIHotaW5kZXg6IDgwNDA7XG59XG5cbi5mYW5jeWJveC1wcmV2IHtcbiAgICBsZWZ0OiAwO1xufVxuXG4uZmFuY3lib3gtbmV4dCB7XG4gICAgcmlnaHQ6IDA7XG59XG5cbi5mYW5jeWJveC1uYXYgc3BhbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBtYXJnaW4tdG9wOiAtMThweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgei1pbmRleDogODA0MDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5mYW5jeWJveC1wcmV2IHNwYW4ge1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMzZweDtcbn1cblxuLmZhbmN5Ym94LW5leHQgc3BhbiB7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNzJweDtcbn1cblxuLmZhbmN5Ym94LW5hdjpob3ZlciBzcGFuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZmFuY3lib3gtdG1wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOTk5OTlweDtcbiAgICBsZWZ0OiAtOTk5OTlweDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgbWF4LXdpZHRoOiA5OTk5OXB4O1xuICAgIG1heC1oZWlnaHQ6IDk5OTk5cHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLyogT3ZlcmxheSBoZWxwZXIgKi9cblxuLmZhbmN5Ym94LWxvY2sge1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLmZhbmN5Ym94LWxvY2sgYm9keSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4uZmFuY3lib3gtbG9jay10ZXN0IHtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLmZhbmN5Ym94LW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgei1pbmRleDogODAxMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC43NSk7XG59XG5cbi5mYW5jeWJveC1vdmVybGF5LWZpeGVkIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4uZmFuY3lib3gtbG9jayAuZmFuY3lib3gtb3ZlcmxheSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4vKiBUaXRsZSBoZWxwZXIgKi9cblxuLmZhbmN5Ym94LXRpdGxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIHotaW5kZXg6IDgwNTA7XG59XG5cbi5mYW5jeWJveC1vcGVuZWQgLmZhbmN5Ym94LXRpdGxlIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZmFuY3lib3gtdGl0bGUtZmxvYXQtd3JhcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogNTAlO1xuICAgIG1hcmdpbi1ib3R0b206IC0zNXB4O1xuICAgIHotaW5kZXg6IDgwNTA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZmFuY3lib3gtdGl0bGUtZmxvYXQtd3JhcCAuY2hpbGQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IC0xMDAlO1xuICAgIHBhZGRpbmc6IDJweCAyMHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyAvKiBGYWxsYmFjayBmb3Igd2ViIGJyb3dzZXJzIHRoYXQgZG9lc24ndCBzdXBwb3J0IFJHQmEgKi9cbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4ICMyMjI7XG4gICAgY29sb3I6ICNGRkY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLW91dHNpZGUtd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5mYW5jeWJveC10aXRsZS1pbnNpZGUtd3JhcCB7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG59XG5cbi5mYW5jeWJveC10aXRsZS1vdmVyLXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuOCk7XG59XG5cbi8qUmV0aW5hIGdyYXBoaWNzISovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksXG4gICAgICAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksXG4gICAgICAgb25seSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpe1xuXG4gICAgI2ZhbmN5Ym94LWxvYWRpbmcsIC5mYW5jeWJveC1jbG9zZSwgLmZhbmN5Ym94LXByZXYgc3BhbiwgLmZhbmN5Ym94LW5leHQgc3BhbiB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWcvZmFuY3lib3hfc3ByaXRlXzJ4LnBuZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDQ0cHggMTUycHg7IC8qVGhlIHNpemUgb2YgdGhlIG5vcm1hbCBpbWFnZSwgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgaGktcmVzIGltYWdlKi9cbiAgICB9XG5cbiAgICAjZmFuY3lib3gtbG9hZGluZyBkaXYge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1nL2ZhbmN5Ym94X2xvYWRpbmdfMnguZ2lmJyk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjRweCAyNHB4OyAvKlRoZSBzaXplIG9mIHRoZSBub3JtYWwgaW1hZ2UsIGhhbGYgdGhlIHNpemUgb2YgdGhlIGhpLXJlcyBpbWFnZSovXG4gICAgfVxufSIsIi8vIEFkZG9uIHRvIEZvdW5kYXRpb24gRm9ybXNcbmxhYmVsIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbn1cblxubGFiZWwgPiBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkZm9ybS1zcGFjaW5nICogLjU7XG59XG5cbi5lcnJvci1tc2cge1xuICAgIGNvbG9yOiAkYWxlcnQtY29sb3I7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAuNWVtO1xufVxuXG5pbnB1dFt0eXBlPXNlYXJjaF0ge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB0ZXh0LWluZGVudDogLjVyZW07XG59XG5cbi8vQFRPRE8gZGVhbCB3aXRoIDpwbGFjZWhvbGRlciBjb2xvcnNcbi8qIFdlIHVzZSB0aGlzIHRvIGdldCBiYXNpYyBzdHlsaW5nIG9uIGFsbCBiYXNpYyBmb3JtIGVsZW1lbnRzICovXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbmlucHV0W3R5cGU9XCJkYXRlXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuaW5wdXRbdHlwZT1cIndlZWtcIl0sXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbmlucHV0W3R5cGU9XCJ0ZWxcIl0sXG5pbnB1dFt0eXBlPVwidGltZVwiXSxcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gICAgQGluY2x1ZGUgcmFkaXVzKCRpbnB1dC1ib3JkZXItcmFkaXVzKTtcbn1cblxuLyogRm91bmRhdGlvbiBoYXJkY29kZXMgcmFkaXVzIHRvIDAsIHRoaXMgZml4ZXMgaXQgKi9cbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRAaW5jbHVkZSByYWRpdXMoJGJ1dHRvbi1yYWRpdXMpO1xufVxuXG4ucHJlZml4LXJhZGl1cy5yb3cuY29sbGFwc2Uge1xuXHRpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCB7XG5cdFx0QGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkaW5wdXQtYm9yZGVyLXJhZGl1cyk7XG5cdH1cbn1cbi5wb3N0Zml4LXJhZGl1cy5yb3cuY29sbGFwc2Uge1xuXHRpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCB7XG5cdFx0QGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGlucHV0LWJvcmRlci1yYWRpdXMpO1xuXHR9XG59XG5cbkAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKSB7XG4gICAgc2VsZWN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICB9XG59IiwiLmtsYXJuYV9ib2tzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIG1heC1oZWlnaHQ6IDEwMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5rbGFybmEtaW5mbyB7XG4gICAgLmtsYXJuYS1pbmZvX19iYWRnZSB7XG4gICAgICAgIGZsb2F0OiByaWdodDsgXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbiAgICB9XG59XG5cbi5rbGFybmEtd2lkZ2V0IHtcblx0aGVpZ2h0OiA3MHB4O1xufSIsIi8vIFBhZ2Utc3BlY2lmaWMgc3R5bGVzIFxuQGltcG9ydCBcInBhZ2VzL2NhcnRcIjtcbkBpbXBvcnQgXCJwYWdlcy9mcm9udHBhZ2VcIjtcbkBpbXBvcnQgXCJwYWdlcy9yZWNlaXB0XCI7XG5AaW1wb3J0IFwicGFnZXMvcmVnaXN0ZXItYWNjb3VudFwiO1xuQGltcG9ydCBcInBhZ2VzL3dpc2hsaXN0XCI7XG4iLCIja25hcHBlLW1lbnVfa2pvcCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIH1cbn0iLCIuZnJvbnRwYWdlX19jdXN0b20tY29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG59IiwiLnJlY2VpcHRfX2hlYWRlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5idXR0b24ucmVjZWlwdF9fcHJpbnQge1xuICAgIEBleHRlbmQgJWNvbnRlbnRfX3ByaW1hcnktY29sb3ItYmc7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXRvcDogLjE1cmVtO1xufVxuXG4ucmVjZWlwdF9fdGhhbmtzIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnJlY2VpcHRfX29yZGVyLW92ZXJ2aWV3LFxuLnJlY2VpcHRfX2N1c3RvbWVyLWluZm8ge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLnJlY2VpcHRfX3ByaW50IHtcbiAgICAgICAgbWFyZ2luLXRvcDogLjVyZW07XG4gICAgfVxuXG4gICAgLnJlY2VpcHRfX29yZGVyLW92ZXJ2aWV3LFxuICAgIC5yZWNlaXB0X19jdXN0b21lci1pbmZvIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogNjAlO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLnJlY2VpcHRfX29yZGVyLW92ZXJ2aWV3LFxuICAgIC5yZWNlaXB0X19jdXN0b21lci1pbmZvIHtcbiAgICAgICAgbWluLXdpZHRoOiA1MCU7XG4gICAgfVxufSIsIlxuaHRtbC5wbGFjZWhvbGRlciAuaGFzLXBsYWNlaG9sZGVyIHtcbiAgICBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ubG9naW4tY29sdW1uLCAucmVnaXN0ZXItY29sdW1uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgXG4gICAgPiBmb3JtIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5pY29uLWxvZy1vdXQgYSB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWV4aXQtdG8tYXBwKTtcbiAgICB9XG59XG5cbi5hY2NvdW50LXRhYnMge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcblxuICAgIC50YWItdGl0bGUgYSB7XG4gICAgICAgIHBhZGRpbmc6IDAgLjZyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg0MCk7XG5cbiAgICAgICAgLnRvdWNoICYge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZWRpdC1hY2NvdW50LXBhZ2UsXG4uZ2lmdC1jZXJ0aWZpY2F0ZS1wYWdlIHtcbiAgICBmaWVsZHNldCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBmb3JtIHtcbiAgICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjogbmVzdCk7IFxuXG4gICAgICAgICAgICAuY29sdW1uLCBcbiAgICAgICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigpOyBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250cm9sLWdyb3VwIC5jb250cm9sLWdyb3VwIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZWRpdC1hY2NvdW50X19idXR0b25zIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcblxuICAgIC5pY29uIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICB9XG59XG5cbi5rYXNzZV9vbmVfbG9nZ2lubl9lcnJvciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbn1cblxuQG1lZGlhICN7JHNtYWxsLXBsdXMtZG93bn0ge1xuICAgIC5sb2dpbi1jb2x1bW4ge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIC5pY29uLWxvZy1vdXQgYSB7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50YWJzIC5pY29uLWxvZy1vdXQgPiBhIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLXVwfSB7XG4gICAgLnRhYnMgeyAgICAgIFxuICAgICAgICAudGFiLXRpdGxlID4gYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmljb24tbG9nLW91dCA+IGEge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLmVkaXQtYWNjb3VudF9fYnV0dG9ucyB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59IiwiI3dpc2hsaXN0X3RhYmxlIHtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG59XG5cbi53aXNobGlzdF9fcHJvZHVjdC1uYW1lIHtcbiAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLndpc2hsaXN0X19idXR0b24tY2VsbCB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIGlucHV0W3R5cGU9c3VibWl0XSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4ud2lzaGxpc3RfX2RlbGV0ZSxcbi53aXNobGlzdF9fZGVsZXRlOmhvdmVyIHtcbiAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgI3dpc2hsaXN0X3RhYmxlIHtcbiAgICAgICAgbWluLXdpZHRoOiA4MCU7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAjd2lzaGxpc3RfdGFibGUge1xuICAgICAgICBtaW4td2lkdGg6IDYwJTtcbiAgICB9XG59IiwiLnBhZ2luYXRpb24td3JhcHBlciB7XG4gICAgcGFkZGluZy10b3A6ICRjb2x1bW4tZ3V0dGVyOyAgICBcbn0iLCIkcHJvZHVjdC10aXRsZS1ib3JkZXItY29sb3I6ICAgICAgICRib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kcHJvZHVjdC1wcmljZS1mb250c2l6ZTogICAgICAgICAgIHJlbS1jYWxjKDM2KSAhZGVmYXVsdDtcbiRwcm9kdWN0LXByaWNlLWZvbnRzaXplLWxnOiAgICAgICAgcmVtLWNhbGMoMzYpICFkZWZhdWx0O1xuJHByb2R1Y3Qtc3RvY2stc3RhdHVzLWNvbG9yOiAgICAgICAkc21hbGwtZm9udC1jb2xvciAhZGVmYXVsdDtcbiRwcm9kdWN0LWltYWdlLWNhcHRpb24tcGFkZGluZzogICAgLjVyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbWFnZS1jYXB0aW9uLWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbWFnZS1jYXB0aW9uLWhlaWdodDogICAgICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQgKyAyICogJHByb2R1Y3QtaW1hZ2UtY2FwdGlvbi1wYWRkaW5nICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2hvdy10aHVtYnMtb24tbWVkaXVtLXVwOiB0cnVlICFkZWZhdWx0O1xuXG5AaWYgJHByb2R1Y3Qtc2hvdy10aHVtYnMtb24tbWVkaXVtLXVwID09IHRydWUge1xuICAgICR0aHVtYi1kb3RzLXJhbmdlOiAkc21hbGwtb25seTtcbn0gQGVsc2Uge1xuICAgICR0aHVtYi1kb3RzLXJhbmdlOiAkc21hbGwtdXA7XG59XG5cbi5wcm9kdWN0X19pbWFnZXMge1xuICAgICYuaW52aXNpYmxlIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgICAgICYuc2xpZGVyLWxvYWRlZCB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucHJvZHVjdF9fbWFpbi1pbWFnZXMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGltZyB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAucmVhZG9uLWljb25fX2NvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmJ4LWNhcHRpb24ge1xuICAgICAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdC1pbWFnZS1jYXB0aW9uLXBhZGRpbmcgMDtcbiAgICB9XG5cbiAgICAuYngtcHJldiB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmJ4LW5leHQge1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59XG5cbi5wcm9kdWN0X19icmVhZGNydW1icyB7XG4gICAgLmN1cnJlbnQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5icmVhZGNydW1icyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG59XG5cbi5wcm9kdWN0X190aXRsZSB7XG4gICAgQGV4dGVuZCAuYm9yZGVyZWQtLWJvdHRvbTtcbiAgICBAZXh0ZW5kICVjb250ZW50X19ib3JkZXJlZC0taGFyZDtcbn1cblxuLnByb2R1Y3RfX21ldGEtbnVtYmVycyB7XG4gICAgQGV4dGVuZCAuc3VidGxlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAtIDAuNXJlbTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5jb21tZW50LXN0YXItcmF0aW5nIHtcbiAgICAgICAgLmljb24tc3RhcixcbiAgICAgICAgLmljb24tc3Rhci1oYWxmLFxuICAgICAgICAuaWNvbi1zdGFyLW91dGxpbmUge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiAtMXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNvbW1lbnQtc3Rhci1yYXRpbmctYXZnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuY29tbWVudC1zdGFyLXJhdGluZy1jb3VudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+ICoge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogLjVyZW07XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbn1cblxuLnByb2R1Y3RfX2FydC1uci1sYWJlbCxcbi5wcm9kdWN0X19lYW4tbGFiZWwge1xuICAgIHBhZGRpbmctcmlnaHQ6IC4yNXJlbTtcbn1cblxuLnByb2R1Y3RfX21ldGEtbnVtYmVyc19fdmFsdWUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG59XG5cbi5wcm9kdWN0X19hc2lkZS1hZGRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xufVxuXG4ucHJvZHVjdCB7XG4gICAgLnByaWNlIHtcbiAgICAgICAgQGV4dGVuZCAlY29udGVudF9fcHJpbWFyeS1jb2xvci1iaWc7XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtcHJpY2UtZm9udHNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5wcmljZS0tb3JpZ2luYWwge1xuICAgICAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjbGVhcjogYm90aDtcblxuICAgICAgICAuY3VycmVuY3kge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC52YXQtaW5mbyxcbiAgICAucHJpY2UtLW9yaWdpbmFsIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLmRpc2NvdW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAudmF0LWluZm8ge1xuICAgICAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIH1cblxuICAgIC5jdXJyZW5jeSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC41cmVtO1xuICAgIH1cblxuICAgIC5wcmljZV9fc2FsZXByaWNlLXRleHQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICB9XG5cbiAgICAub2ZmZXJzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIH1cbn1cblxuLnByb2R1Y3RfX2J1eS1idXR0b24uYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVjb250ZW50X19wcmltYXJ5LWNvbG9yLWJnO1xuXG4gICAgaSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC41cmVtO1xuICAgIH1cbn1cblxuLnByb2R1Y3QgLnByb2R1Y3RfX3dpc2hsaXN0LWJ1dHRvbi5idXR0b24ge1xuICAgIEBleHRlbmQgJWNvbnRlbnRfX3NlY29uZGFyeS1jb2xvci1iZztcbn1cblxuLnByb2R1Y3RfX3N0b2Nrc3RhdHVzIHtcbiAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIGxpbmUtaGVpZ2h0OiAkcHJvZHVjdC1wcmljZS1mb250c2l6ZTtcbn1cblxuLnByb2R1Y3RfX3N0b2Nrc3RhdHVzX19udW1iZXIge1xuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc3VjY2Vzcy1jb2xvciwgJGNvbnRlbnQtYmcpO1xufVxuLnByb2R1Y3RfX3N0b2Nrc3RhdHVzLS1zb2xkLW91dCAucHJvZHVjdF9fc3RvY2tzdGF0dXNfX251bWJlcntcbiAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGFsZXJ0LWNvbG9yLCAkY29udGVudC1iZyk7XG59XG5cbi5wcm9kdWN0X19zdG9ja3N0YXR1cy0taGFzLWV4dHJhaW5mbyB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnByb2R1Y3RfX21haW4taW1hZ2VzX19saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3V0bGluZTogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxufVxuXG4ucHJvZHVjdF9fcXVhbnR1bS1kaXNjb3VudHMge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ucHJvZHVjdF9fYXR0cmlidXRlcyxcbi5wcm9kdWN0X19leHRyYWZpZWxkIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6bmVzdCk7XG59XG5cbi5wcm9kdWN0X19leHRyYWZpZWxkX193cmFwIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogMTIpO1xufVxuXG4ucHJvZHVjdF9fYXR0cmlidXRlLFxuLnByb2R1Y3RfX3F1YW50aXR5IHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogNik7XG59XG5cbi5wcm9kdWN0X19leHRyYWZpZWxkX19wcmljZWluZm8ge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xufVxuXG4ucHJvZHVjdF9fcmVsYXRlZC1wcm9kdWN0cyB7XG4gICAgcGFkZGluZy10b3A6ICRjb2x1bW4tZ3V0dGVyO1xuICAgIHBhZGRpbmctYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcbn1cblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAucHJvZHVjdF9fbWFpbi1pbWFnZXMgLmJ4LWNhcHRpb24ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skdGh1bWItZG90cy1yYW5nZX0ge1xuICAgIC5wcm9kdWN0X19pbWFnZWdhbGxlcnkge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC50aCB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IC43NTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1icmlnaHRuZXNzLTEpOyAvLyBBIGNpcmN1bGFyIGljb25cbiAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAuMjU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IC44cmVtO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oZm9udC1zaXplIDIwMG1zIGVhc2UpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmFjdGl2ZTphZnRlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogLjc1O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JHNtYWxsLXBsdXMtZG93bn0ge1xuICAgIC5wcm9kdWN0X190aXRsZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHNtYWxsLXBsdXMtb25seX0ge1xuICAgIC5wcm9kdWN0X19pbmZvLFxuICAgIC5wcm9kdWN0X19hYm91dCxcbiAgICAucHJvZHVjdF9faW1hZ2VnYWxsZXJ5X193cmFwcGVyLFxuICAgIC5wcm9kdWN0X19yZWxhdGVkLXByb2R1Y3RzIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTApO1xuICAgIH1cblxuICAgIC5wcm9kdWN0IHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtcHJpY2UtZm9udHNpemUtbGc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdF9fc3RvY2tzdGF0dXM6bm90KC5wcm9kdWN0X19zdG9ja3N0YXR1cy0taGFzLWV4dHJhaW5mbykge1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtcHJpY2UtZm9udHNpemUtbGc7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLnByb2R1Y3RfX2luZm8ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbig2KTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fYWJvdXQsXG4gICAgLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeV9fd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEyKTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9faW1hZ2VzLFxuICAgIC5wcm9kdWN0X19pbmZvLFxuICAgIC5wcm9kdWN0X19tYWluLWltYWdlcyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19icmVhZGNydW1icyB7XG4gICAgICAgIC5jdXJyZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0X19tYWluLWltYWdlcyB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZWFkb24taWNvbl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX21haW4taW1hZ2VzX19saW5rIHtcbiAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkcHJvZHVjdC1zaG93LXRodW1icy1vbi1tZWRpdW0tdXAgPT0gdHJ1ZSB7XG4gICAgICAgIC5wcm9kdWN0X19pbWFnZWdhbGxlcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZCg0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeV9faW1hZ2V3cmFwIHtcbiAgICAgICAgICAgIGhlaWdodDogNS43NXJlbTtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudGgge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgQGlmICR0aHVtYi1ib3JkZXItd2lkdGggPiAwIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRodW1iLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgJHRodW1iLWJveC1zaGFkb3cgIT0gbm9uZSB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRibGFjaywgJGNvbnRlbnQtYmcsIDkpLC4yKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAuODtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAkdGh1bWItYm94LXNoYWRvdy1ob3ZlciAhPSBub25lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vIGVhc3kgd2F5IHRvIG1hbmlwdWxhdGUgdGhlIGJveCBzaGFkb3cgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vYm94LXNoYWRvdzogJHRodW1iLWJveC1zaGFkb3ctaG92ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNnB4IDFweCByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZywgOSksIDAuNSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdF9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDMwKTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9faW5ncmVzcyB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19zdG9ja3N0YXR1czpub3QoLnByb2R1Y3RfX3N0b2Nrc3RhdHVzLS1oYXMtZXh0cmFpbmZvKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAjeyRwYXJhZ3JhcGgtbGluZS1oZWlnaHQgKiAxcmVtfTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fYnV5LWJ1dHRvbi5idXR0b24sXG4gICAgLnByb2R1Y3RfX3dpc2hsaXN0LWJ1dHRvbi5idXR0b24ge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgQGluY2x1ZGUgcmFkaXVzKCRidXR0b24tcmFkaXVzKTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIC5wcm9kdWN0X190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNDQpO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19pbmdyZXNzIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19zdG9ja3N0YXR1czpub3QoLnByb2R1Y3RfX3N0b2Nrc3RhdHVzLS1oYXMtZXh0cmFpbmZvKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcHJvZHVjdC1wcmljZS1mb250c2l6ZS1sZztcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fYWJvdXQubWVkaXVtLXVuY2VudGVyZWQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICBAaWYgJHByb2R1Y3Qtc2hvdy10aHVtYnMtb24tbWVkaXVtLXVwID09IHRydWUge1xuICAgICAgICAucHJvZHVjdF9faW1hZ2VnYWxsZXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQoNSk7XG4gICAgICAgIH1cblxuICAgICAgICBsaS5wcm9kdWN0X19pbWFnZWdhbGxlcnlfX2ltYWdld3JhcCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDZyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdF9fYXR0cmlidXRlLFxuICAgIC5wcm9kdWN0X19xdWFudGl0eSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiA0KTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fZXh0cmFmaWVsZF9fd3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiA4KTtcbiAgICB9XG5cbiAgICAucHJvZHVjdCB7XG4gICAgICAgIC5wcm9kdWN0X19idXktYnV0dG9uLmJ1dHRvbixcbiAgICAgICAgLnByb2R1Y3RfX3dpc2hsaXN0LWJ1dHRvbi5idXR0b24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIiRwcm9kdWN0LXNlYXJjaC1ob3Jpem9udGFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtdmVydGljYWwtcGFkZGluZzogLjI1cmVtICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLWxpbmstbGluZS1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1iZzogI2ZmZmZmZiAhZGVmYXVsdDtcbiRwcm9kdWN0LXNlYXJjaC1yZXN1bHRzLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1iZywgJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtYmcpICFkZWZhdWx0O1xuXG4ucHJvZHVjdC1zZWFyY2gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyMDA7XG59XG5cbi5wcm9kdWN0LXNlYXJjaC1yZXN1bHRzIHtcbiAgICBvcGFjaXR5OiAuOTU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9kdWN0LXNlYXJjaC1yZXN1bHRzLWJnO1xuICAgIHotaW5kZXg6IDIwMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjI1cyBlYXNlKTtcblxuICAgIC5wcm9kdWN0LXNlYXJjaF9fb3V0cHV0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdC1zZWFyY2gtdmVydGljYWwtcGFkZGluZyAwO1xuICAgIH1cblxuICAgICYuaXMtaGlkZGVuIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGVYKC05MGRlZykgc2NhbGUoLjgpKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbig1MCUgMCk7XG4gICAgfVxufVxuXG4ucHJvZHVjdC1zZWFyY2hfX25vLWhpdHM6bm90KC5pcy1oaWRkZW4pICsgLnByb2R1Y3Qtc2VhcmNoX19jb250YWluZXIge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnByb2R1Y3Qtc2VhcmNoX19lbGVtZW50IGEge1xuICAgIHBhZGRpbmc6ICRwcm9kdWN0LXNlYXJjaC12ZXJ0aWNhbC1wYWRkaW5nICRwcm9kdWN0LXNlYXJjaC1ob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcm9kdWN0LXNlYXJjaC1yZXN1bHRzLWJnLCAkaG92ZXItY29sb3IsIDcpIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWNvbG9yIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBodG1sLnRvdWNoICYge1xuICAgICAgICBwYWRkaW5nOiAjeygkdG91Y2gtZnJpZW5kbHktc2l6ZSAtICRiYXNlLWxpbmUtaGVpZ2h0ICogMXJlbSkvMn0gJHByb2R1Y3Qtc2VhcmNoLWhvcml6b250YWwtcGFkZGluZztcbiAgICB9XG59XG5cbi5wcm9kdWN0LXNlYXJjaF9fZXh0cmEtaGl0cyB7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcHJvZHVjdC1zZWFyY2gtbGluay1saW5lLWhlaWdodDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LXNlYXJjaC12ZXJ0aWNhbC1wYWRkaW5nICRwcm9kdWN0LXNlYXJjaC1ob3Jpem9udGFsLXBhZGRpbmc7XG5cbiAgICAgICAgaHRtbC50b3VjaCAmIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICN7KCR0b3VjaC1mcmllbmRseS1zaXplIC0gJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmcgKiAyKS8yfSAkcHJvZHVjdC1zZWFyY2gtaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucHJvZHVjdC1zZWFyY2hfX25vLWhpdHMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAkcHJvZHVjdC1zZWFyY2gtdmVydGljYWwtcGFkZGluZyAkcHJvZHVjdC1zZWFyY2gtaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIGNvbG9yOiAkcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1jb2xvcjtcbn0iLCIkcmF0aW5nLXN0YXItY29sb3I6ICRjYWxsLXRvLWFjdGlvbi1jb2xvciAhZGVmYXVsdDtcbiRyYXRpbmctc3Rhci1zaXplOiByZW0tY2FsYyg0NCkgIWRlZmF1bHQ7XG4kcmF0aW5nLXN0YXItZm9udHNpemU6IHJlbS1jYWxjKDIyKSAhZGVmYXVsdDtcblxuLnJhdGluZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogJHJhdGluZy1zdGFyLXNpemU7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgIGxhYmVsLnN0YXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgY29sb3I6IGdvbGQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAkcmF0aW5nLXN0YXItZm9udHNpemUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6ICRyYXRpbmctc3Rhci1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRyYXRpbmctc3Rhci1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogJHJhdGluZy1zdGFyLXNpemU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB6LWluZGV4OiA0O1xuICAgIH1cblxuICAgIGlucHV0LnN0YXItY2hlY2tib3gge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAkcmF0aW5nLXN0YXItc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcmF0aW5nLXN0YXItc2l6ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgLnJhdGluZy1jaGVja2JveC1oaWRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29udGVudC1iZztcbiAgICAgICAgei1pbmRleDogMjtcblxuICAgICAgICAucmVzcC10YWJzLWNvbnRhaW5lciAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLWNvbnRhaW5lci1iZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAgIGxhYmVsLnN0YXItI3skaSArIDF9LFxuICAgICAgICBpbnB1dC5zdGFyLWNoZWNrYm94LSN7JGkgKyAxfSB7XG4gICAgICAgICAgICBsZWZ0OiAjeyRpICogJHJhdGluZy1zdGFyLXNpemV9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN0YXJzLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1oaWRlKCk7XG4gICAgfVxuXG4gICAgbGFiZWw6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItc3Rhcik7XG4gICAgICAgIEBleHRlbmQgLmljb24tbWVkaXVtO1xuICAgIH1cblxuICAgIGlucHV0OmNoZWNrZWQgfiBsYWJlbCB7XG4gICAgICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICB9XG5cbiAgICBsYWJlbDpob3ZlcixcbiAgICBpbnB1dDpjaGVja2VkIH4gbGFiZWw6aG92ZXIge1xuICAgICAgICBjb2xvcjogZ29sZDtcbiAgICB9XG5cbiAgICBsYWJlbDpob3ZlciB+IGxhYmVsIHtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgIH1cbn0iLCIkcmVhZG9uLWljb24tYmc6ICMwMDAgIWRlZmF1bHQ7XG4kcmVhZG9uLWljb24tY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4kcmVhZG9uLWljb24tZm9udC1zaXplOiByZW0tY2FsYygyOCkgIWRlZmF1bHQ7XG4kcmVhZG9uLW92ZXJsYXktb3BhY2l0eTogLjUgIWRlZmF1bHQ7XG4kcmVhZG9uLWljb24tb3BhY2l0eTogLjYgIWRlZmF1bHQ7XG4kcmVhZG9uLWljb24taG92ZXItb3BhY2l0eTogLjkgIWRlZmF1bHQ7XG5cbi5yZWFkb24taWNvbl9fY29udGFpbmVyIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoJGNvbnRlbnQtYmcsICRyZWFkb24tb3ZlcmxheS1vcGFjaXR5KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDE1MG1zIGVhc2UpO1xuXG4gICAgLnRvdWNoICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLnJlYWRvbi1pY29uIHtcbiAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZCgwLDAsMCxzY2FsZTNkKDAuNSwgMC41LCAwLjUpKTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMsIC13ZWJraXQtdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiBlYXNlLCAwcztcbiAgICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgLW1vei10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIC1vLXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDQ0KTtcbiAgICB3aWR0aDogcmVtLWNhbGMoNDQpO1xuICAgIGhlaWdodDogcmVtLWNhbGMoNDQpO1xuICAgIGZvbnQtc2l6ZTogJHJlYWRvbi1pY29uLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJHJlYWRvbi1pY29uLWNvbG9yO1xuICAgIG9wYWNpdHk6IC42O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWFkb24taWNvbi1iZztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgcmVtLWNhbGMoMjIpLCBtcyBzcGVjKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAuOTtcbiAgICB9XG59XG5cbi5yZWFkb24taWNvbl9fd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICAgLnJlYWRvbi1pY29uX19jb250YWluZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZWFkb24taWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZCgwLDAsMCxzY2FsZTNkKDEsIDEsIDEpKTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAaW1wb3J0IFwiYm91cmJvbi9jc3MzL3BsYWNlaG9sZGVyXCI7XG5cbi8qKlxuICogRXhwYW5kaW5nIHNlYXJjaCBpbnB1dCBmaWVsZFxuICpcbiAqIENvZGUgY291cnRlc3kgb2YgaHR0cDovL2NvZGVwZW4uaW8vc2RhaXR6bWFuL3Blbi9ybXFmQlxuICovXG5cbkBpZiBsaWdodG5lc3MoJG5hdmlnYXRpb24tYmcpIDwgNTAlIHtcbiAgICAkc2VhcmNoLWJveC1pbnB1dC1iZzogbGlnaHRlbigkbmF2aWdhdGlvbi1iZywgMTAlKSAhZGVmYXVsdDtcbiAgICAkc2VhcmNoLWJveC1pbnB1dC1ob3Zlci1iZzogbGlnaHRlbigkbmF2aWdhdGlvbi1iZywgMjAlKSAhZGVmYXVsdDtcbiAgICAkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtYmc6IGxpZ2h0ZW4oJG5hdmlnYXRpb24tYmcsIDMwJSkgIWRlZmF1bHQ7XG4gICAgJHNlYXJjaC1ib3gtaWNvbi1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiAgICAkc2VhcmNoLWJveC1zaGFkb3c6IGxpZ2h0ZW4oJHNlYXJjaC1ib3gtaW5wdXQtYmcsIDI1JSkgIWRlZmF1bHQ7XG59IEBlbHNlIHtcbiAgICAkc2VhcmNoLWJveC1pbnB1dC1iZzogZGFya2VuKCRuYXZpZ2F0aW9uLWJnLCA1JSkgIWRlZmF1bHQ7XG4gICAgJHNlYXJjaC1ib3gtaW5wdXQtaG92ZXItYmc6ICNjOGM4YzggIWRlZmF1bHQ7XG4gICAgJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWJnOiBkYXJrZW4oJG5hdmlnYXRpb24tYmcsIDMwJSkgIWRlZmF1bHQ7XG4gICAgJHNlYXJjaC1ib3gtaWNvbi1jb2xvcjogIzAwMCAhZGVmYXVsdDtcbiAgICAkc2VhcmNoLWJveC1zaGFkb3c6IGRhcmtlbigkc2VhcmNoLWJveC1pbnB1dC1iZywgMjUlKSAhZGVmYXVsdDtcbn1cblxuJHNlYXJjaC1ib3gtaW5wdXQtY29sb3I6YWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlYXJjaC1ib3gtaW5wdXQtYmcsICRzZWFyY2gtYm94LWlucHV0LWJnKSAhZGVmYXVsdDtcbiRzZWFyY2gtYm94LWlucHV0LWhvdmVyLWNvbG9yOmFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWFyY2gtYm94LWlucHV0LWhvdmVyLWJnLCAkc2VhcmNoLWJveC1pbnB1dC1ob3Zlci1iZykgIWRlZmF1bHQ7XG4kc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtY29sb3I6YWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWJnLCAkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtYmcpICFkZWZhdWx0O1xuXG4kc2VhcmNoLWJveC10cmFuc2l0aW9uOiAwLjNzICFkZWZhdWx0OyAvLyB0cmFuc2l0aW9uIGxlbmd0aFxuJHNlYXJjaC1ib3gtc2l6ZTogcmVtLWNhbGMoNDApICFkZWZhdWx0O1xuXG4uc2VhcmNoLWJveF9fY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAoJG5hdi1saW5lLWhlaWdodCAtICRzZWFyY2gtYm94LXNpemUpLzIgMDtcbiAgICBoZWlnaHQ6ICRuYXYtbGluZS1oZWlnaHQ7XG4gICAgbWluLXdpZHRoOiAkc2VhcmNoLWJveC1zaXplO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNlYXJjaC1ib3hfX3N1Ym1pdC5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbmlucHV0LnNlYXJjaC1ib3hfX2lucHV0IHtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAkc2VhcmNoLWJveC10cmFuc2l0aW9uLCBib3JkZXItcmFkaXVzICRzZWFyY2gtYm94LXRyYW5zaXRpb24sIGJhY2tncm91bmQgJHNlYXJjaC1ib3gtdHJhbnNpdGlvbiwgYm94LXNoYWRvdyAkc2VhcmNoLWJveC10cmFuc2l0aW9uO1xuICAgIHdpZHRoOiAkc2VhcmNoLWJveC1zaXplO1xuICAgIGhlaWdodDogJHNlYXJjaC1ib3gtc2l6ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkc2VhcmNoLWJveC1zaXplLzI7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkc2VhcmNoLWJveC1pbnB1dC1iZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICByaWdodDogMDtcblxuICAgICY6Oi1tcy1jbGVhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJiB+IGxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgICAgICBsaW5lLWhlaWdodDogJHNlYXJjaC1ib3gtc2l6ZTtcbiAgICAgICAgcGFkZGluZzogKCRuYXYtbGluZS1oZWlnaHQgLSAkc2VhcmNoLWJveC1zaXplKS8yIDA7XG4gICAgICAgIHdpZHRoOiAkc2VhcmNoLWJveC1zaXplO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgICAgLmljb24tc2VhcmNoIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2VhcmNoLWJveC1pY29uLWNvbG9yO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYgfiAuc2VhcmNoLWJveF9fc3VibWl0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuXG4gICAgICAgIHdpZHRoOiAkc2VhcmNoLWJveC1zaXplO1xuICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICAgICB+IGxhYmVsOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnLic7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogKCRuYXYtbGluZS1oZWlnaHQgLSAkc2VhcmNoLWJveC1zaXplKS8yO1xuICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgICAgIGJvdHRvbTogKCRuYXYtbGluZS1oZWlnaHQgLSAkc2VhcmNoLWJveC1zaXplKS8yO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNlYXJjaC1ib3gtaW5wdXQtaG92ZXItYmc7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMTUwbXMgZWFzZSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIH4gbGFiZWwge1xuICAgICAgICAgICAgLmljb24tc2VhcmNoIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZWFyY2gtYm94LWlucHV0LWhvdmVyLWJnO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHNlYXJjaC1ib3gtc2hhZG93O1xuXG4gICAgICAgICYgfiBsYWJlbCAuaWNvbi1zZWFyY2gge1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpmb2N1cywgJi5hY3RpdmUge1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAkc2VhcmNoLWJveC10cmFuc2l0aW9uIGN1YmljLWJlemllciguNjAsMCwuNDAsMSksIGJvcmRlci1yYWRpdXMgJHNlYXJjaC1ib3gtdHJhbnNpdGlvbiwgYmFja2dyb3VuZCAkc2VhcmNoLWJveC10cmFuc2l0aW9uO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1iZztcbiAgICAgICAgY29sb3I6ICRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1jb2xvcjtcblxuICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlcntcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1iZywgJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWJnKSwgLjc1KTtcbiAgICAgICAgfTtcblxuICAgICAgICAmIH4gbGFiZWwgLmljb24tc2VhcmNoIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmIH4gLnNlYXJjaC1ib3hfX3N1Ym1pdCB7XG4gICAgICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoOmZvY3VzKTpub3QoLmFjdGl2ZSkge1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVye1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9O1xuICAgIH1cbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGFjdGl2aXR5LXJvdGF0ZSkge1xuICAgIDAlICAge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDBkZWcpKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMzYwZGVnKSk7XG4gICAgfVxufVxuXG4uc2VhcmNoLWJveF9fbGFiZWwgLmljb24tc2VhcmNoIHtcbiAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gMTUwbXMgZWFzZSwgb3BhY2l0eSAxNTBtcyBlYXNlKTtcbiAgICB9XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICAvL2NvbnRlbnQ6IFwiI3skaWNvbi12YXItbG9hZGluZy1pbmRpY2F0b3J9XCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgJGljb24tc2VhcmNoLW9mZnNldDogcmVtLWNhbGMoLTdweCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkaWNvbi1zZWFyY2gtb2Zmc2V0O1xuICAgICAgICBtYXJnaW4tdG9wOiAgJGljb24tc2VhcmNoLW9mZnNldDtcblxuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMCkpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cbi5zZWFyY2gtYm94LS1sb2FkaW5nIC5zZWFyY2gtYm94X19sYWJlbCAuaWNvbi1zZWFyY2gge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwKSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEpKTtcbiAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uKGFjdGl2aXR5LXJvdGF0ZSAxcyAxNTBtcyBsaW5lYXIgaW5maW5pdGUpO1xuICAgIH1cbn1cblxuI3NlYXJjaC1zdWJtaXQge1xuICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtaGlkZTtcbn1cblxuLnNlYXJjaC1ib3hfX2NvbnRhaW5lciB7XG4gICAgLmljb24tc2VhcmNoIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogJHNlYXJjaC1ib3gtc2l6ZTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy11cH0ge1xuICAgIGlucHV0LnNlYXJjaC1ib3hfX2lucHV0IHtcbiAgICAgICAgJjpmb2N1cywgJi5hY3RpdmUge1xuICAgICAgICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICBpbnB1dC5zZWFyY2gtYm94X19pbnB1dCB7XG4gICAgICAgICY6Zm9jdXMsICYuYWN0aXZlIHtcbiAgICAgICAgICAgIHdpZHRoOiAzNTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYS5zZWFyY2gtbW9kYWwtbGluay5uZXV0cmFsLWxpbms6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufSIsIi8vIFNob3cgYWN0aXZpdHkgaW5kaWNhdG9yIHdoZW4gc2VhcmNoaW5nXG5cbkBpbmNsdWRlIGtleWZyYW1lcyhhY3Rpdml0eS1yb3RhdGUpIHtcbiAgICAwJSAgIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgwZGVnKSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDM2MGRlZykpO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG5cdC5zZWFyY2gtYm94LS1sb2FkaW5nIHtcblx0XHQucHJvZHVjdC1zZWFyY2gge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdC8vQGluY2x1ZGUgaWNvbigkaWNvbi12YXItbG9hZGluZy1pbmRpY2F0b3IpO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogLjY1cmVtO1xuXHRcdFx0XHRyaWdodDogLjNyZW07XG5cdFx0XHRcdEBpbmNsdWRlIGFuaW1hdGlvbihhY3Rpdml0eS1yb3RhdGUgMXMgMTUwbXMgbGluZWFyIGluZmluaXRlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi5zbGlkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLnNsaWRlcl9fd3JhcHBlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAtI3skY29sdW1uLWd1dHRlci8yfTtcbiAgICBtYXJnaW4tbGVmdDogLSN7JGNvbHVtbi1ndXR0ZXIvMn07XG59XG5cbi5zbGlkZS0tYWxpZ24tY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5zbGlkZS0tYWxpZ24tbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnNsaWRlLS1hbGlnbi1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5zbGlkZSB7XG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgLmJ4LXdyYXBwZXIgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAuc2xpZGVyX193cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9ICAgIFxufSIsIi8vIFNldCB0ZXh0IGNvbG9yXG5AaWYgbHVtYSgkZW5kLWJnKSA8IDUwIHtcbiAgICAkc29jaWFsLWljb24tYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRlbmQtYmcpICFkZWZhdWx0O1xufSBAZWxzZSB7XG4gICAgJHNvY2lhbC1pY29uLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICRlbmQtYmcpICFkZWZhdWx0O1xufVxuXG5AaWYgbHVtYSgkY29udGVudC1iZykgPCA1MCB7XG4gICAgJHByb2R1Y3Qtc29jaWFsLWljb24tYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRjb250ZW50LWJnKTtcbn0gQGVsc2Uge1xuICAgICRwcm9kdWN0LXNvY2lhbC1pY29uLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICRjb250ZW50LWJnKTtcbn1cblxuLnNvY2lhbC1idXR0b25zLWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5zb2NpYWwtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6ICRzb2NpYWwtaWNvbi1zaXplO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAuc29jaWFsLWJ1dHRvbnMtbGlzdC0tcHJvZHVjdCAmIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6ICRzb2NpYWwtaWNvbi1zaXplO1xuICAgICAgICB3aWR0aDogJHNvY2lhbC1pY29uLXNpemU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtaWNvbi1iZztcbiAgICAgICAgb3BhY2l0eTogLjM7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC4ycyBlYXNlKTtcbiAgICAgICAgQGluY2x1ZGUgcmFkaXVzKDUwJSk7XG4gICAgICAgIGNvbG9yOiAkZW5kLWJnO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRlbmQtYmc7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3QgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29udGVudC1iZztcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC1zb2NpYWwtaWNvbi1iZztcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRwcm9kdWN0LXNvY2lhbC1pY29uLWJnO1xuICAgICAgICAgICAgb3BhY2l0eTogLjY7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNvY2lhbC1idXR0b25zX19oZWFkbGluZS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uc29jaWFsLWJ1dHRvbi0tYmxvZ2dlciB7IC5zb2NpYWwtYnV0dG9uX19saW5rIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlICAgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItYmxvZ2dlcjsgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLWJsb2dnZXI7IH19fVxuLnNvY2lhbC1idXR0b24tLWVsbG8geyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgICAgICB7IGNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLWVsbG87IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1lbGxvOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1mYWNlYm9vayB7IC5zb2NpYWwtYnV0dG9uX19saW5rIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1mYWNlYm9vazsgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLWZhY2Vib29rOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1mbGlja3IgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1mbGlja3I7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1mbGlja3I7IH19fVxuLnNvY2lhbC1idXR0b24tLWdvb2dsZXBsdXMgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLWdvb2dsZXBsdXM7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1nb29nbGVwbHVzOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1pbnN0YWdyYW0geyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1pbnN0YWdyYW07IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1pbnN0YWdyYW07IH19fVxuLnNvY2lhbC1idXR0b24tLWxpbmtlZGluIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgICB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLWxpbmtlZGluOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItbGlua2VkaW47IH19fVxuLnNvY2lhbC1idXR0b24tLW1haWwgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgICAgICB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLW1haWw7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1tYWlsOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1waW50ZXJlc3QgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1waW50ZXJlc3Q7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1waW50ZXJlc3Q7IH19fVxuLnNvY2lhbC1idXR0b24tLXR3aXR0ZXIgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgICB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLXR3aXR0ZXI7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci10d2l0dGVyOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS12aW1lbyB7IC5zb2NpYWwtYnV0dG9uX19saW5rIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlICAgICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci12aW1lbzsgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLXZpbWVvOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS15b3V0dWJlIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci15b3V0dWJlOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3IteW91dHViZTsgfX19XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAuc29jaWFsLWJ1dHRvbnMtbGlzdC0tcHJvZHVjdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAtM3JlbTtcbiAgICAgICAgdG9wOiAxcmVtO1xuICAgICAgICB3aWR0aDogJHNvY2lhbC1pY29uLXNpemU7XG5cbiAgICAgICAgLnNvY2lhbC1idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAjcGFnZWZyYW1lICYge1xuICAgICAgICAgICAgcmlnaHQ6IC00LjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyogU1BJTk5FUiwgdXNlZCBpbiBjaGVja291dCB3aGlsZSBjYXJ0IGlzIGxvYWRpbmcgZm9yIGluc3RhbmNlICovXG5cbiNzcGlubmVyLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTIwcHg7XG59XG5cbmh0bWwubHQtaWUxMCAjc3Bpbm5lci1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNzcGlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMzBweDtcbiAgICBib3R0b206IDA7XG59XG5cbiNmbG9hdGluZ0NpcmNsZXNHIHtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICB3aWR0aDo2MHB4O1xuICAgIGhlaWdodDo2MHB4O1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjYpKTtcbn1cblxuLmZfY2lyY2xlR3tcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkY7XG4gICAgaGVpZ2h0OjExcHg7XG4gICAgd2lkdGg6MTFweDtcbiAgICBib3JkZXItcmFkaXVzOjVweDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tbmFtZShmX2ZhZGVHKTtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZHVyYXRpb24oMC44cyk7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudChpbmZpbml0ZSk7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRpcmVjdGlvbihub3JtYWwpO1xufVxuXG4jZnJvdGF0ZUdfMDF7XG4gICAgbGVmdDowO1xuICAgIHRvcDoyNXB4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjNzKTtcbn1cblxuI2Zyb3RhdGVHXzAye1xuICAgIGxlZnQ6N3B4O1xuICAgIHRvcDo3cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuNHMpO1xufVxuXG4jZnJvdGF0ZUdfMDN7XG4gICAgbGVmdDoyNXB4O1xuICAgIHRvcDowO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjVzKTtcbn1cblxuI2Zyb3RhdGVHXzA0e1xuICAgIHJpZ2h0OjdweDtcbiAgICB0b3A6N3B4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjZzKTtcbn1cblxuI2Zyb3RhdGVHXzA1e1xuICAgIHJpZ2h0OjA7XG4gICAgdG9wOjI1cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuN3MpO1xufVxuXG4jZnJvdGF0ZUdfMDZ7XG4gICAgcmlnaHQ6N3B4O1xuICAgIGJvdHRvbTo3cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuOHMpO1xufVxuXG4jZnJvdGF0ZUdfMDd7XG4gICAgbGVmdDoyNXB4O1xuICAgIGJvdHRvbTowO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjlzKTtcbn1cblxuI2Zyb3RhdGVHXzA4e1xuICAgIGxlZnQ6N3B4O1xuICAgIGJvdHRvbTo3cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDFzKTtcbn1cblxuQC1tb3ota2V5ZnJhbWVzIGZfZmFkZUd7XG4gICAgMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwfVxuXG4gICAgMTAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkZ9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmX2ZhZGVHe1xuICAgIDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMH1cblxuICAgIDEwMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGfVxufVxuXG5ALW1zLWtleWZyYW1lcyBmX2ZhZGVHe1xuICAgIDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMH1cblxuICAgIDEwMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGfVxufVxuXG5ALW8ta2V5ZnJhbWVzIGZfZmFkZUd7XG4gICAgMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwfVxuXG4gICAgMTAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkZ9XG59XG5cbkBrZXlmcmFtZXMgZl9mYWRlR3tcbiAgICAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDB9XG5cbiAgICAxMDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRn1cbn0iLCIkbmF2LXNpZGUtaGVhZGVyLWZvbnRzaXplOiAkaDQtZm9udC1zaXplICFkZWZhdWx0O1xuJG5hdi1zaWRlLXRvcC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG4kcGFnZS1oZWFkZXItc2l6ZTogKCRwYWdlLXRpdGxlLXBhZGRpbmcgKiAyICsgJGgxLWZvbnQtc2l6ZSAqICRoZWFkZXItbGluZS1oZWlnaHQpICFkZWZhdWx0O1xuJG5hdi1zaWRlLWhlYWRlci10b3AtcGFkZGluZzogKCRwYWdlLWhlYWRlci1zaXplIC0gJHBhZ2UtdGl0bGUtcGFkZGluZyAtICRuYXYtc2lkZS10b3AtbWFyZ2luIC0gJG5hdi1zaWRlLWhlYWRlci1mb250c2l6ZSAqICRoZWFkZXItbGluZS1oZWlnaHQpICFkZWZhdWx0O1xuJHBhcmFncmFwaC1yZW0tbGluZS1oZWlnaHQ6IDFyZW0gKiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuJGFjdGl2ZS1lbGVtLWJvcmRlci1zaXplOiByZW0tY2FsYyg1KTtcblxuLy8gVGhpcyBjb21wb25lbnQgaXMgb3B0aW9uYWwsIHdoaWNoIGlzIHdoeSBpdCBpcyBpbiBhIG1peGluXG5AbWl4aW4gc3BsaXRtZW51LXN0eWxlcygpIHtcblxuICAgIC5uYXYtc2lkZSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICN7bWF4KDAsIC0kY29sdW1uLWd1dHRlciArICRuYXYtc2lkZS10b3AtbWFyZ2luKX07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNmY2ZjY7XG4gICAgfVxuXG4gICAgLm5hdi1zaWRlX19oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6ICRuYXYtc2lkZS1oZWFkZXItdG9wLXBhZGRpbmcgMXJlbSAkcGFnZS10aXRsZS1wYWRkaW5nO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkbmF2LXNpZGUtaGVhZGVyLWZvbnRzaXplO1xuICAgIH1cbiAgICBcbiAgICAuc3BsaXRtZW51IHtcblxuICAgICAgICAmLmxldmVsLTAge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxldmVsLTAge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgJi5zZWxlY3RlZCxcbiAgICAgICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5sZXZlbC0xIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sZXZlbC0yIGEge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5zcGxpdG1lbnVfX2l0ZW0ge1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjApO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGNvbG9yOiAjNTQ1NDU0O1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkYWN0aXZlLWVsZW0tYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogKHJlbS1jYWxjKDIwKS8yKSAoMXJlbSAtICRhY3RpdmUtZWxlbS1ib3JkZXItc2l6ZSk7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAgIC5uby10b3VjaCAmIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAocmVtLWNhbGMoMTUpLzIpICgxcmVtIC0gJGFjdGl2ZS1lbGVtLWJvcmRlci1zaXplKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cywgXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaG92ZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1cnJlbnQgPiBhIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkYWN0aXZlLWVsZW0tYm9yZGVyLXNpemUgc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuXG4gICAgICAgICAgICAmOmZvY3VzLCBcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkYWN0aXZlLWVsZW0tYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5zZWxlY3RlZCA+IGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLmxldmVsLTAge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubGV2ZWwtMSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxldmVsLTIgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAubGV2ZWwtMyBhIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuQGlmICRtZW51LXR5cGUgPT0gJ3NwbGl0JyB7XG4gICAgQGluY2x1ZGUgc3BsaXRtZW51LXN0eWxlcztcbn0iLCJ0YWJsZSB7XG4gICAgdGQucHJpcyxcbiAgICB0aC5wcmlzIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxufVxuXG50ci5zdW0ge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYm9keS1mb250LWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IDNweCBkb3VibGUgJGJvZHktZm9udC1jb2xvcjtcbn1cblxudGFibGUgdHIge1xuICAgICYuZXZlbixcbiAgICAmLmFsdCxcbiAgICAmOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgICAgICAgY29sb3I6ICR0YWJsZS1ldmVuLXJvdy10ZXh0LWNvbG9yO1xuICAgIH1cbn0iLCIkaW5jbHVkZS1xdWlja2ZpeC10YWItY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcblxuJHRhYnMtaGVpZ2h0OiAgJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kdGFicy1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuJHRhYnMtYm9yZGVyZWQ6IHRydWUgIWRlZmF1bHQ7XG4kdGFicy1ib3JkZXItY29sb3I6ICRib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1hY3RpdmUtYm9yZGVyLWNvbG9yOiAkdGFicy1hY3RpdmUtYmctY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1ob3Zlci1iZy1jb2xvcjogbGlnaHRlbigkdGFicy1hY3RpdmUtYmctY29sb3IsIDE1JSkgIWRlZmF1bHQ7XG5cbkBtaXhpbiB0YWJzLXN0eWxpbmd7XG4gICAgLnRhYnMge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHRhYnMtYWN0aXZlLWJnLWNvbG9yO1xuICAgIH1cblxuICAgIC5qcy10YWJzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgfVxuXG4gICAgLnJlc3AtdGFicy1saXN0IHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIH1cblxuICAgIC5yZXNwLXRhYi1pdGVtIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgfVxuXG4gICAgLnJlc3AtdGFiLWl0ZW0sXG4gICAgLnJlc3AtYWNjb3JkaW9uIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCR0YWJzLWZvbnQtY29sb3IsICR0YWJzLWJnLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtYmctY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IDAgJHRhYnMtcGFkZGluZztcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR0YWJzLWhlaWdodDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMjAwbXMgZWFzZSk7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duKTtcbiAgICAgICAgICAgIEBleHRlbmQgLmljb24tbGFyZ2U7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gNDAwbXMgZWFzZSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkdGFicy1mb250LWNvbG9yLCAkdGFicy1uYXZpZ2F0aW9uLWhvdmVyLWJnLWNvbG9yKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVzcC10YWJzLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLWNvbnRhaW5lci1iZztcbiAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnJlc3AtYWNjb3JkaW9uIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5yZXNwLXRhYi1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogJHRhYnMtcGFkZGluZztcblxuICAgICAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVzcC10YWItYWN0aXZlLFxuICAgIC5yZXNwLWFjY29yZGlvbi5yZXNwLXRhYi1hY3RpdmUge1xuICAgICAgICBjb2xvcjogJHRhYnMtYWN0aXZlLWZvbnQtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLWFjdGl2ZS1iZy1jb2xvcjtcblxuICAgICAgICAvLyBSb3RhdGUgYXJyb3cgd2hlbiBhY3RpdmF0ZWRcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRleCgxODBkZWcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCR0YWJzLWFjdGl2ZS1mb250LWNvbG9yLCAkdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1ob3Zlci1iZy1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1ob3Zlci1iZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZXNwLWNvbnRlbnQtYWN0aXZlLCBcbiAgICAucmVzcC1hY2NvcmRpb24tYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnJlc3AtZWFzeS1hY2NvcmRpb24gLnJlc3AtYWNjb3JkaW9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnJlc3AtamZpdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICB9XG5cbiAgICAucmVzcC10YWItY29udGVudC1hY3RpdmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKkhlcmUgeW91ciBjYW4gY2hhbmdlIHRoZSBicmVha3BvaW50IHRvIHNldCB0aGUgYWNjb3JkaW9uLCB3aGVuIHNjcmVlbiByZXNvbHV0aW9uIGNoYW5nZWQqL1xuXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcblxuICAgICAgICAuanMtdGFicyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHRhYnMtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlc3AtdGFicy1saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucmVzcC1hY2NvcmRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICR0YWJzLXBhZGRpbmc7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNwLXZ0YWJzIC5yZXNwLXRhYnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiBpbml0aWFsO1xuICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucmVzcC1hY2NvcmRpb24tY2xvc2VkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAucmVzcC10YWItY29udGVudC1hY3RpdmUge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0YWJzLWFjdGl2ZS1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgLmpzLXRhYnMge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0YWJzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIEBjb250ZW50O1xufVxuXG5AaWYgJGluY2x1ZGUtcXVpY2tmaXgtdGFiLWNsYXNzZXMge1xuICBAaW5jbHVkZSB0YWJzLXN0eWxpbmc7XG59IiwiYS50aGVtZWQtbmF2IHtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgfVxufSIsIi5zdWJ0bGUge1xuICAgIG9wYWNpdHk6IC42O1xufSIsIiRzdGlja3ktZm9vdGVyLW1lbnU6IGZhbHNlICFkZWZhdWx0O1xuJHNlYXJjaC1tb2RhbDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiAoJHN0aWNreS1mb290ZXItbWVudSkge1xuICAgIEBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL3N0aWNreS1mb290ZXItbWVudVwiO1xuICAgIEBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL3NsaWRlLWluLW1lbnVcIjtcbn1cblxuQGlmICgkc2VhcmNoLW1vZGFsKSB7XG4gICAgQGltcG9ydCBcInF1aWNrZml4L2NvbXBvbmVudHMvc2VhcmNoLW1vZGFsXCI7XG59XG4iLCIkc3RpY2t5LWZvb3Rlci1tZW51LWJnOiAjRUZFRkVGICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItbWVudS1ib3JkZXItY29sb3I6IGRhcmtlbigkc3RpY2t5LWZvb3Rlci1tZW51LWJnLCAxMCUpICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItbWVudS1jb2xvcjogaWYobHVtYSgkc3RpY2t5LWZvb3Rlci1tZW51LWJnKSA8IDUwLCAjZmZmLCAjMDAwKSAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLWljb24tY29sb3I6ICRzdGlja3ktZm9vdGVyLW1lbnUtY29sb3IgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1oZWlnaHQ6IHJlbS1jYWxjKDYwKSAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTogbWluKHJlbS1jYWxjKDI4KSwgLjQgKiAkc3RpY2t5LWZvb3Rlci1oZWlnaHQpICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1pY29uLXRvcC1wb3NpdGlvbjogJHN0aWNreS1mb290ZXItaGVpZ2h0IC0gJHN0aWNreS1mb290ZXItaWNvbi1zaXplIC0gJHN0aWNreS1mb290ZXItbGFiZWwtZm9udC1zaXplIC0gcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yLWFkanVzdG1lbnQ6IDglICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yOiBpZihsdW1hKCRzdGlja3ktZm9vdGVyLW1lbnUtYmcpIDwgNTAsIGxpZ2h0ZW4oJHN0aWNreS1mb290ZXItbWVudS1iZywgJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yLWFkanVzdG1lbnQpLCBkYXJrZW4oJHN0aWNreS1mb290ZXItbWVudS1iZywgJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yLWFkanVzdG1lbnQpKSAhZGVmYXVsdDtcblxuYm9keS5zdGlja3ktZm9vdGVyLW1lbnUgI2VuZCB7XG4gICAgcGFkZGluZy1ib3R0b206ICRzdGlja3ktZm9vdGVyLWhlaWdodDtcbn1cblxuI21lbnUtdG9nZ2xlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI3N0aWNreS1mb290ZXItbWVudSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRzdGlja3ktZm9vdGVyLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkc3RpY2t5LWZvb3Rlci1tZW51LWJnO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc3RpY2t5LWZvb3Rlci1tZW51LWJvcmRlci1jb2xvcjtcbiAgICB6LWluZGV4OiAyMDI7XG5cbiAgICB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMSk7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogNzAlO1xuICAgICAgICAgICAgdG9wOiAxNSU7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmID4gYSxcbiAgICAgICAgJiA+IGxhYmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3RpY2t5LWZvb3Rlci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTtcblxuICAgICAgICAgICAgbGluZSxcbiAgICAgICAgICAgIGNpcmNsZSB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAkc3RpY2t5LWZvb3Rlci1pY29uLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRzdGlja3ktZm9vdGVyLWljb24tY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJHN0aWNreS1mb290ZXItbWVudS1jb2xvcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5zdGlja3ktZm9vdGVyX19pY29uLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN0aWNreS1mb290ZXItbGFiZWwtZm9udC1zaXplO1xuICAgICAgICBwYWRkaW5nLXRvcDogLjM1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6ICRzdGlja3ktZm9vdGVyLW1lbnUtY29sb3I7XG4gICAgfVxuXG4gICAgLyogTWVudSBzdHlsaW5nICovXG4gICAgI25hdi1vcGVuLWJ0biB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkc3RpY2t5LWZvb3Rlci1pY29uLXNpemU7XG4gICAgfVxuXG4gICAgLyogQ2FydCBzdHlsaW5nICovXG4gICAgLmNhcnQtYW5kLWNoZWNrb3V0IHtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICAgIC5jYXJ0LWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3N0aWNreS1mb290ZXItbWVudV9fY2FydCB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICB0b3A6ICRzdGlja3ktZm9vdGVyLWljb24tdG9wLXBvc2l0aW9uIC0gcmVtLWNhbGMoOSk7XG4gICAgICAgIGxlZnQ6IGNhbGMoNTAlICsgM3B4KTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cbn1cbiIsIiRtZW51LWJnOiAjZmZmICFkZWZhdWx0O1xuJG1lbnUtbGluay1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJvZHktZm9udC1jb2xvciwgJG1lbnUtYmcpO1xuJG1lbnUtbGluay1ob3Zlci1jb2xvcjogaWYoXG4gICAgbHVtYSgkcHJpbWFyeS1jb2xvcikgPiBsdW1hKCRtZW51LWJnKSxcbiAgICBsaWdodGVuKCRtZW51LWxpbmstY29sb3IsIDEwJSksXG4gICAgZGFya2VuKCRtZW51LWxpbmstY29sb3IsIDEwJSlcbik7XG4kbWVudS1oZWFkZXItcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcbiRtZW51LWhlYWRlci1mb250LXNpemU6IHJlbS1jYWxjKDIxKSAhZGVmYXVsdDtcbiRtZW51LWhlYWRlci1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuJG1lbnUtaGVhZGVyLWhlaWdodDogJG1lbnUtaGVhZGVyLXBhZGRpbmcgKiAyICsgJG1lbnUtaGVhZGVyLWZvbnQtc2l6ZSAqICRtZW51LWhlYWRlci1saW5lLWhlaWdodDtcbiRtZW51LWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWxpbmUtaGVpZ2h0OiAxLjI1ICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1oZWlnaHQ6IHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tb3BlbmVyLXNpemU6ICRtZW51LWl0ZW0taGVpZ2h0ICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1pbmRlbnRhdGlvbjogMXJlbSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tYm9yZGVyLWNvbG9yOiAjZWVlICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1ib3JkZXItc3R5bGU6IDFweCBzb2xpZCAjeyRtZW51LWl0ZW0tYm9yZGVyLWNvbG9yfSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0taG92ZXItZWZmZWN0LWNvbG9yOiByZ2JhKCNiYmIsIC4xKSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tc21hbGxlci1mb250LXNpemU6ICRtZW51LWl0ZW0tZm9udC1zaXplIC0gcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG4kbWVudS10cmFuc2l0aW9uLXNwZWVkOiAzMDBtcyAhZGVmYXVsdDtcblxuYm9keS5tZW51LW9wZW4ge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cblxuI21lbnUtbWFzayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDE5OTk7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IC0xMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC41KTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRtZW51LXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgI21lbnUtdG9nZ2xlcjpjaGVja2VkIH4gJiB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4jbWVudSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICB6LWluZGV4OiAyMDAwO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxNDBweCAwIHJnYmEoMCwwLDAsLjE2KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAkbWVudS1iZztcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICB3aWR0aDogNDByZW07XG4gICAgbWF4LXdpZHRoOiA4NSU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0ICRtZW51LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgY3Vyc29yOiBhdXRvO1xuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMHJlbSkge1xuICAgICAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgICAgIG1heC13aWR0aDogNzUlO1xuICAgIH1cblxuICAgICNtZW51LXRvZ2dsZXI6Y2hlY2tlZCB+ICYge1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIGhlYWRlciB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDNkM2QzO1xuICAgICAgICBwYWRkaW5nOiAkbWVudS1oZWFkZXItcGFkZGluZyAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtYmc7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWVudS1oZWFkZXItZm9udC1zaXplO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRtZW51LWhlYWRlci1saW5lLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRtZW51LWhlYWRlci1saW5lLWhlaWdodDtcbiAgICAgICAgICAgIGhlaWdodDogJG1lbnUtaGVhZGVyLWxpbmUtaGVpZ2h0ICogJG1lbnUtaGVhZGVyLWZvbnQtc2l6ZSArICRtZW51LWhlYWRlci1wYWRkaW5nICogMjtcbiAgICAgICAgICAgIHdpZHRoOiAkbWVudS1pdGVtLW9wZW5lci1zaXplO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJG1lbnUtaXRlbS1ib3JkZXItc3R5bGU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGVhc2UsIGhlaWdodCAwcyBlYXNlLCBvcGFjaXR5ICRtZW51LXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcblxuICAgICAgICAgICAgbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNCB7XG4gICAgICAgICAgICAmLm1lbnUtLWxldmVsLSN7JGl9IHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkaSA+IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1lbnUtaXRlbS1zbWFsbGVyLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAoJG1lbnUtaXRlbS1oZWlnaHQgLSAoJG1lbnUtaXRlbS1zbWFsbGVyLWZvbnQtc2l6ZSAqICRtZW51LWl0ZW0tbGluZS1oZWlnaHQpKS8yO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICgkbWVudS1pdGVtLWhlaWdodCAtICgkbWVudS1pdGVtLXNtYWxsZXItZm9udC1zaXplICogJG1lbnUtaXRlbS1saW5lLWhlaWdodCkpLzI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRtZW51LWl0ZW0tZm9udC1zaXplO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAoJG1lbnUtaXRlbS1oZWlnaHQgLSAoJG1lbnUtaXRlbS1mb250LXNpemUgKiAkbWVudS1pdGVtLWxpbmUtaGVpZ2h0KSkvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogKCRtZW51LWl0ZW0taGVpZ2h0IC0gKCRtZW51LWl0ZW0tZm9udC1zaXplICogJG1lbnUtaXRlbS1saW5lLWhlaWdodCkpLzI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICgkaSArIDEpICogJG1lbnUtaXRlbS1pbmRlbnRhdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWVudS1pdGVtLXdyYXAge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgYm9yZGVyLXRvcDogJG1lbnUtaXRlbS1ib3JkZXItc3R5bGU7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1lbnUtaXRlbS1mb250LXNpemU7XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWVudS1pdGVtLWZvbnQtc2l6ZSArIHJlbS1jYWxjKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRtZW51LWl0ZW0tYm9yZGVyLXN0eWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgd2lkdGg6ICRtZW51LWl0ZW0tb3BlbmVyLXNpemU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1ob3Zlci1lZmZlY3QtY29sb3I7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDk4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAkbWVudS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogY3VycmVudCBpdGVtIGhpZ2hsaWdodGluZyAqL1xuICAgICAgICAmLmN1cnJlbnQgPiAubWVudS1pdGVtLXdyYXAgYSB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBsaW5lLWhlaWdodDogJG1lbnUtaXRlbS1saW5lLWhlaWdodDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogKCRtZW51LWl0ZW0taGVpZ2h0IC0gJG1lbnUtaXRlbS1saW5lLWhlaWdodCkvMiAkbWVudS1pdGVtLWluZGVudGF0aW9uO1xuICAgICAgICBjb2xvcjogJG1lbnUtbGluay1jb2xvcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVudS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaG92ZXIgZWZmZWN0ICovXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0taG92ZXItZWZmZWN0LWNvbG9yO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgei1pbmRleDogOTg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5tZW51LS1vcGVuZXIge1xuICAgICAgICAmIH4gLm1lbnUtaXRlbS13cmFwIGEge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDgwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDEwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAmIH4gLm1lbnUtaXRlbS13cmFwIHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1ob3Zlci1lZmZlY3QtY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWhvdmVyLWVmZmVjdC1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmIH4gdWwge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiI3NlYXJjaC1tb2RhbCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC44NSk7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAuNXM7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgei1pbmRleDogLTE7XG5cbiAgICAmOnRhcmdldCB7XG4gICAgICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG4gICAgICAgIHotaW5kZXg6IDIwMztcbiAgICAgICAgI3NlYXJjaC1tb2RhbF9fY2xvc2Uge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAjc2VhcmNoLW1vZGFsX19pbnB1dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZmFkZSB7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXM7XG4gICAgfVxufVxuXG4jc2VhcmgtbW9kYWxfX2Zvcm0ge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xufVxuXG4jc2VhcmNoLW1vZGFsX19pbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIG91dGxpbmU6IDA7XG4gICAgcGFkZGluZzogMnJlbSAxcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG59XG5cbiNzZWFyY2gtbW9kYWxfX2Nsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAycmVtO1xuICAgIHJpZ2h0OiAycmVtO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDRyZW07XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxufVxuIiwiQGltcG9ydCBcImhvcml6b250YWxcIjtcblxuJG5hdi0taG9yaXpvbnRhbC0tcmlnaHQtaXMtbG9hZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmICRuYXYtLWhvcml6b250YWwtLXJpZ2h0LWlzLWxvYWRlZCA9PSBmYWxzZSB7XG5cbiAgICAubmF2LS1ob3Jpem9udGFsLS1yaWdodCB7XG4gICAgICAgIEBleHRlbmQgJW5hdi0taG9yaXpvbnRhbDtcblxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICAkbmF2LS1ob3Jpem9udGFsLS1yaWdodC1pcy1sb2FkZWQ6IHRydWU7XG59IiwiQGltcG9ydCBcImJvdXJib24vY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvdHJhbnNpdGlvblwiO1xuXG5AaW1wb3J0IFwiaG92ZXJmeC9iYXNlXCI7XG5AaW1wb3J0IFwiaG92ZXJmeC9ibHVyXCI7XG5AaW1wb3J0IFwiaG92ZXJmeC9jb3ZlclwiO1xuQGltcG9ydCBcImhvdmVyZngvZmlnY2FwdGlvblwiO1xuQGltcG9ydCBcImhvdmVyZngvbGV2aXRhdGVcIjtcbkBpbXBvcnQgXCJob3ZlcmZ4L3Nob3d0aXRsZVwiO1xuQGltcG9ydCBcImhvdmVyZngvdGlsdFwiO1xuXG5hW2NsYXNzXj1cImhmeC0tXCJdLFxuYVtjbGFzcyo9XCIgaGZ4LS1cIl0ge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59IiwiJWhmeC1iYXNlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn0iLCIkaGZ4LWJsdXItdmFsdWU6IDJweCAhZGVmYXVsdDtcblxuLmhmeC0tYmx1ciB7XG5cdCY6aG92ZXIgaW1nIHtcblx0XHRAaW5jbHVkZSBmaWx0ZXIoYmx1cigkaGZ4LWJsdXItdmFsdWUpKTtcblx0fVxufSIsIkBpZiB2YXJpYWJsZS1leGlzdHMoXCJpY29uLXZhci1zZWFyY2hcIikgPT0gZmFsc2Uge1xuXHRAZXJyb3IgXCJNaXNzaW5nIGljb24gdmFyaWFibGVcIjsgXG59XG5cbkBpZiBtaXhpbi1leGlzdHMoXCJpY29uXCIpID09IGZhbHNlIHtcblx0QGVycm9yIFwiTWlzc2luZyBpY29uIG1peGluXCI7IFx0XG59XG5cbiRoZngtaWNvbi1zaXplOiByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG5cbi5oZngtLWNvdmVyLS1saWdodCxcbi5oZngtLWNvdmVyLS1kYXJrIHtcblx0QGV4dGVuZCAlaGZ4LWJhc2U7XG5cblx0Jjo6YmVmb3JlLFxuXHQmOjphZnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1x0XHRcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0b3BhY2l0eTogMDtcblx0XHR6LWluZGV4OiAxO1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjNzIGVhc2UpO1xuXHR9XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoI2ZmZiwgLjY1KTtcblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRAaW5jbHVkZSBpY29uKCRpY29uLXZhci1zZWFyY2gpO1xuXHRcdGZvbnQtc2l6ZTogJGhmeC1pY29uLXNpemU7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0Y29sb3I6IHJnYmEoIzAwMCwgMC42NSk7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bGVmdDogMDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0bWFyZ2luLXRvcDogJGhmeC1pY29uLXNpemUvLTI7XG5cdFx0aGVpZ2h0OiAxZW07XG5cdFx0ei1pbmRleDogMjtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4uaGZ4LS1jb3Zlci0tZGFyayB7XG5cdCY6OmJlZm9yZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMDAwLCAuNjUpO1xuXHR9XG5cblx0Jjo6YWZ0ZXIge1xuXHRcdGNvbG9yOiByZ2JhKCNmZmYsIDAuNzUpO1xuXHR9XG59IiwiJGhmeC1maWdjYXB0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjUpICFkZWZhdWx0O1xuJGhmeC1maWdjYXB0aW9uLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kaGZ4LWZpZ2NhcHRpb24tZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG4kaGZ4LWZpZ2NhcHRpb24tdHJhaWxlci1zeW1ib2w6IGZhbHNlICFkZWZhdWx0O1xuJGhmeC1maWdjYXB0aW9uLWxpZ2h0LWNvbG9yOiByZ2JhKCNmZmYsIC45KSAhZGVmYXVsdDtcbiRoZngtZmlnY2FwdGlvbi1kYXJrLWNvbG9yOiByZ2JhKCMwMDAsIC45KSAhZGVmYXVsdDtcblxuLmhmeC0tZmlnY2FwdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXNpemU6ICRoZngtZmlnY2FwdGlvbi1mb250LXNpemU7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRoZngtZmlnY2FwdGlvbi10ZXh0LXRyYW5zZm9ybTtcbiAgICBmb250LXdlaWdodDogJGhmeC1maWdjYXB0aW9uLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogLjVlbTtcbiAgICAgICAgei1pbmRleDoyO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IC4zcyBlYXNlLWluLW91dCwgY29sb3IgLjNzIGVhc2UtaW4tb3V0KTtcblxuICAgICAgICBAaWYgJGhmeC1maWdjYXB0aW9uLXRyYWlsZXItc3ltYm9sICE9IGZhbHNlIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRoZngtZmlnY2FwdGlvbi10cmFpbGVyLXN5bWJvbH1cIjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC4yNWVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhmeC0tZmlnY2FwdGlvbi0tYm90dG9tLWxlZnQge1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmhmeC0tZmlnY2FwdGlvbi0tYm90dG9tLXJpZ2h0IHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG5cbiAgICAuaGZ4LS1maWdjYXB0aW9uLS10b3AtbGVmdCB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAuaGZ4LS1maWdjYXB0aW9uLS10b3AtcmlnaHQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5iYWNrZ3JvdW5kLS1saWdodCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tZGFyay1jb2xvcjtcblxuICAgICAgICAuaGZ4LS1jb3Zlci0tZGFyazpob3ZlciAmLFxuICAgICAgICAuaGZ4LS1jb3Zlci0tZGFyazpmb2N1cyAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tbGlnaHQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmFja2dyb3VuZC0tZGFyayB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tbGlnaHQtY29sb3I7XG5cbiAgICAgICAgLmhmeC0tY292ZXItLWxpZ2h0OmhvdmVyICYsXG4gICAgICAgIC5oZngtLWNvdmVyLS1saWdodDpmb2N1cyAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tZGFyay1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuaGZ4LS1sZXZpdGF0ZSB7XG5cdGltZyB7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gLjNzIGVhc2UsIGJveC1zaGFkb3cgLjNzIGVhc2UpO1xuXHR9XG5cblx0Jjpob3ZlciB7XG5cdFx0aW1nIHtcblx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxLjEpIHRyYW5zbGF0ZXooMCkpO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAzcHggMTBweCByZ2JhKCMwMDAsIC4yNSk7XG5cdFx0fVxuXHR9XG59IiwiQGlmIHZhcmlhYmxlLWV4aXN0cyhcImNvbnRlbnQtYmdcIikgPT0gZmFsc2Uge1xuXHRAZXJyb3IgXCJNaXNzaW5nIGNvbnRlbnQtYmcgdmFyaWFibGVcIjsgXG59XG5cblxuLmhmeC0tc2hvdy10aXRsZSB7XG5cdEBleHRlbmQgJWhmeC1iYXNlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdGltZyB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4yNXMgZWFzZSk7XG5cdH1cblxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OiBhdHRyKHRpdGxlKTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Y29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCMzMzMsICRjb250ZW50LWJnLCA2KTtcblx0XHRib3R0b206IC0xMDAlO1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoJGNvbnRlbnQtYmcsIDAuNzUpO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZzogMXJlbTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJvdHRvbSAwLjI1cyBlYXNlKTtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdGltZyB7XG5cdFx0XHRvcGFjaXR5OiAwLjM7XG5cdFx0fVxuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0fVxuXHR9XG59IiwiJGhmeC10aWx0LWFuZ2xlOiA1ZGVnICFkZWZhdWx0O1xuXG4uaGZ4LS10aWx0LS1yaWdodCxcbi5oZngtLXRpbHQtLWxlZnQge1xuXHRAZXh0ZW5kICVoZngtYmFzZTtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblx0aW1nIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gMC4ycyBlYXNlKTtcblx0fVxufVxuXG4uaGZ4LS10aWx0LS1yaWdodCB7XG5cdCY6aG92ZXIge1xuXHRcdGltZyB7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKCRoZngtdGlsdC1hbmdsZSkgdHJhbnNsYXRleigwKSk7XG5cdFx0fVxuXHR9XG59XG5cbi5oZngtLXRpbHQtLWxlZnQge1xuXHQmOmhvdmVyIHtcblx0XHRpbWcge1xuXHRcdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtJGhmeC10aWx0LWFuZ2xlKSB0cmFuc2xhdGV6KDApKTtcblx0XHR9XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCJoZWFkZXIvdXRpbHMtbmF2XCI7XG5AaW1wb3J0IFwiaGVhZGVyL29mZmNhbnZhcy1uYXZcIjtcbkBpbXBvcnQgXCJoZWFkZXIvbG9nby1saW5lXCI7XG5AaW1wb3J0IFwiaGVhZGVyL21haW4tbmF2XCI7XG4iLCIkdXRpbHMtbmF2LWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuI3V0aWxzLW5hdiB7XG4gICAgZm9udC1mYW1pbHk6ICR1dGlscy1uYXYtZm9udC1mYW1pbHk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgIC5pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTclO1xuICAgIH1cbn1cblxuI3VzZXItbmF2IHtcbiAgICAmLnJpZ2h0IGxpOmxhc3QtY2hpbGQgYSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICR1dGlscy1uYXYtaXRlbS1zcGFjaW5nO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAjdXNlci1uYXYge1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdXRpbHMtbmF2LWJhci1oZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAjdXRpbHMtbmF2IHtcbiAgICAgICAgc3Bhbi5oaWRlLWZvci1zbWFsbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI3Rvb2xzLW5hdiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5waXBlZC1uYXYge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6ICR1dGlscy1uYXYtZm9udC1zaXplO1xuICAgIGhlaWdodDogJHV0aWxzLW5hdi1iYXItaGVpZ2h0O1xuXG4gICAgbGkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkdXRpbHMtbmF2LWJhci1oZWlnaHQ7XG4gICAgICAgIGhlaWdodDogJHV0aWxzLW5hdi1iYXItaGVpZ2h0O1xuICAgIH1cblxuICAgICYubGVmdCB7XG4gICAgICAgIGxpOmZpcnN0LWNoaWxkIGEge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5yaWdodCB7XG4gICAgICAgIGxpOmxhc3QtY2hpbGQgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5uby1zZXBhcmF0b3Ige1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJHV0aWxzLW5hdi1pdGVtLXNwYWNpbmc7XG4gICAgfVxuXG59IiwiQGlmICgkb2ZmLWNhbnZhcy1wb3NpdGlvbiAhPSBsZWZ0IGFuZCAkb2ZmLWNhbnZhcy1wb3NpdGlvbiAhPSByaWdodCkge1xuICAgIEB3YXJuIFwiJG9mZi1jYW52YXMtcG9zaXRpb24gbXVzdCBiZSBsZWZ0IG9yIHJpZ2h0LCB3YXMgI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn0uXCI7XG59XG5cbi8vIE9mZiBjYW52YXMgbWVkaWEgcXVlcnkgaXMgbm90IG1vYmlsZSBmaXJzdC4gVGhlIHNoYW1lIVxuJG9mZi1jYW52YXMtYXQ6IGlmKCRvZmYtY2FudmFzLW9uLW1lZGl1bSA9PSB0cnVlLCAkbWVkaXVtLWRvd24sICRzbWFsbC1kb3duKTtcblxuYm9keSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMjBlbTtcbn1cblxuI291dGVyLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4jaW5uZXItd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uYmxvY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmJsb2NrLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLWhpZGUoKTtcbn1cblxuQG1lZGlhICN7JG9mZi1jYW52YXMtYXR9IHtcbiAgICAjbmF2IHtcbiAgICAgICAgei1pbmRleDogMjAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmctdG9wOiAkb2ZmLWNhbnZhcy10b3AtcGFkZGluZztcbiAgICAgICAgdG9wOiAkb2ZmLWNhbnZhcy10b3AtcG9zaXRpb247XG5cbiAgICAgICAgJjpub3QoOnRhcmdldCkge1xuICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOnRhcmdldCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgLm1haW4tbmF2X19jbG9zZS1idG4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJsb2NrIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbHVtbnMge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgJjpiZWZvcmUsIFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuanMtcmVhZHl7XG4gICAgICAgICNuYXYge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAkb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZTtcbiAgICAgICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAtI3skb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZX07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNoYWRvdywgaW5zZXQgaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgLTEuNWVtLCAxLjVlbSkgMCAxLjVlbSAtMC43NWVtIHJnYmEoMCwgMCwgMCwgMC4yNSksIG1veiBzcGVjKTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkb2ZmLWNhbnZhcy10b3AtcGFkZGluZztcblxuICAgICAgICAgICAgLmJsb2NrIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICNpbm5lci13cmFwIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9IFxuXG4gICAgLmpzLW5hdiAjaW5uZXItd3JhcCB7XG4gICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAkb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZTtcbiAgICB9XG5cbiAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLXJlYWR5IHtcbiAgICAgICAgI25hdiB7XG4gICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsIC0xMDAlLCAxMDAlKSwgMCwgMCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWNrZmFjZS12aXNpYmlsaXR5KGhpZGRlbik7XG4gICAgICAgIH1cblxuICAgICAgICAjaW5uZXItd3JhcCB7XG4gICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLy8gQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwwLDApOyAvLyBEaXNhYmxlZCEgQ2F1c2VkIGFsbCBraW5kcyBvZiB3ZWlyZCBibHVycmluZyBpbiBBbmRyb2lkIEZpcmVmb3hcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDUwMG1zIGVhc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1uYXYgI2lubmVyLXdyYXAge1xuICAgICAgICBAaW5jbHVkZSBiYWNrZmFjZS12aXNpYmlsaXR5KGhpZGRlbik7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsICRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplLCAtJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemUpLCAwLCAwLCBzY2FsZTNkKDEsIDEsIDEpKTtcbiAgICB9XG5cbiAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLXJlYWR5ICNuYXYgLmJsb2NrIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgMTAwbXMgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gNTAwbXMgZWFzZSwgdmlzaWJpbGl0eSA1MDBtcyBlYXNlO1xuICAgICAgICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgMTAwbXMgZWFzZSwgLW1vei10cmFuc2Zvcm0gNTAwbXMgZWFzZSwgdmlzaWJpbGl0eSA1MDBtcyBlYXNlO1xuICAgICAgICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIDEwMG1zIGVhc2UsIC1vLXRyYW5zZm9ybSA1MDBtcyBlYXNlLCB2aXNpYmlsaXR5IDUwMG1zIGVhc2U7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgMTAwbXMgZWFzZSwgdHJhbnNmb3JtIDUwMG1zIGVhc2UsIHZpc2liaWxpdHkgNTAwbXMgZWFzZTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemUsIC0kb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZSksIDAsIDAsIHNjYWxlM2QoMC45LCAwLjksIDAuOSkpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tb3JpZ2luKDUwJSAwJSk7XG4gICAgfVxuXG4gICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1uYXYgI25hdiAuYmxvY2sge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgfVxuICAgIFxuICAgIC8vIFRvIGF2b2lkIG1lbW9yeSBsZWFrcyBvbiBtb2JpbGUgZGV2aWNlc1xuICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMgI25hdiB7XG4gICAgICAgIC8vIGFzIHRlbXB0aW5nIGFzIGl0IGlzIHRvIHVzZSBkaXNwbGF5OiBub25lLCB2aXNpYmlsaXR5OiBoaWRkZW4gaXMgYW5pbWF0YWJsZVxuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odmlzaWJpbGl0eSA1MDBtcyBlYXNlKTtcbiAgICB9XG4gICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1uYXYgI25hdiB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxufVxuXG5AaWYgJG9mZi1jYW52YXMtb24tbWVkaXVtIHtcbiAgICAvLyBEaWZmZXJlbnQgbmF2IHNpemUgb24gbWVkaXVtXG4gICAgQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7XG4gICAgICAgIC5qcy1yZWFkeSB7XG4gICAgICAgICAgICAjbmF2IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplO1xuICAgICAgICAgICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAtI3skb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemV9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmpzLW5hdiAjaW5uZXItd3JhcCB7XG4gICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1uYXYgI2lubmVyLXdyYXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplLCAtJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplKSwgMCwgMCwgc2NhbGUzZCgxLCAxLCAxKSk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiJG5hdi1zZWFyY2gtcmFkaXVzOiAkYnV0dG9uLXJhZGl1cyAhZGVmYXVsdDtcbiR0ZXh0LWxvZ28tZm9udC1zaXplOiAkaDEtZm9udC1zaXplICFkZWZhdWx0O1xuXG4jbG9nby1yb3cge1xuICAgIHBhZGRpbmc6ICRsb2dvLXJvdy1zcGFjaW5nIDA7XG59XG5cbiNsb2dvIHtcbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6ICR0ZXh0LWxvZ28tZm9udC1zaXplO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuXG4jZXh0cmEtbmF2IHtcbiAgICAuY2FydC1hbmQtY2hlY2tvdXQge1xuICAgICAgICBwYWRkaW5nLXRvcDogI3soJGxvZ28taGVpZ2h0IC0gJGJ1dHRvbi1zaXplKS8yfTtcblxuICAgICAgICAmLnJpZ2h0IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvcm0ge1xuICAgICAgICBpbnB1dCwgLmJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIEBpZigkbmF2LXNlYXJjaC1yYWRpdXMpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cyhsZWZ0LCAkbmF2LXNlYXJjaC1yYWRpdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBAaWYoJG5hdi1zZWFyY2gtcmFkaXVzKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXMocmlnaHQsICRuYXYtc2VhcmNoLXJhZGl1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogJGhvdmVyLWJnLXRleHQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNjb250YWN0LW5hdiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgXG4gICAgbGkge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgaGVpZ2h0OiAjeyRsb2dvLWhlaWdodCAtICRidXR0b24tc2l6ZX07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAjbG9nby1yb3cge1xuICAgICAgICBwYWRkaW5nOiAkbG9nby1sYXJnZS1yb3ctc3BhY2luZyAwO1xuICAgIH1cblxuICAgICNsb2dvIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRsb2dvLWxhcmdlLWhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIFdlJ3JlIHVzaW5nIHR3byBtZW51IGNvbmNlcHRzIGhlcmVcbiAqIE9mZiBjYW52YXMgbmF2aWdhdGlvbiwgYXMgc2VlbiBvbiBodHRwOi8vd3d3LnNtYXNoaW5nbWFnYXppbmUuY29tLzIwMTMvMDEvMTUvb2ZmLWNhbnZhcy1uYXZpZ2F0aW9uLWZvci1yZXNwb25zaXZlLXdlYnNpdGUvIFxuICogU21hcnQgbWVudXMsIGFzIHNlZW4gb24gaHR0cDovL3d3dy5zbWFydG1lbnVzLm9yZy9cbiAqL1xuJG1lbnUtZm9udC1mYW1pbHkgICAgICAgICAgOiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRtZW51LWZvbnQtY29sb3IgICAgICAgICAgIDogaWYobHVtYSgkbmF2aWdhdGlvbi1iZykgPCA1MCwgJGFsdGVybmF0aXZlLWZvbnQtY29sb3IsICRib2R5LWZvbnQtY29sb3IpICFkZWZhdWx0O1xuJG1lbnUtZHJvcGRvd24tYmcgICAgICAgICAgOiByZ2JhKCNmZmYsIC45NykgIWRlZmF1bHQ7XG4kbWVudS1kcm9wZG93bi1saW5rLWNvbG9yICA6IGlmKGx1bWEoJG1lbnUtZHJvcGRvd24tYmcpIDwgNTAsIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRtZW51LWRyb3Bkb3duLWJnKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkbWVudS1kcm9wZG93bi1iZykpICFkZWZhdWx0O1xuJG1lbnUtbmF2aWdhdGlvbi1saW5rLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbWVudS1mb250LWNvbG9yLCAkbmF2aWdhdGlvbi1iZykgIWRlZmF1bHQ7XG4vLyRtZW51LWl0ZW0tY29sb3IgICAgICAgICAgIDogXG4vLyRtZW51LWl0ZW0tYmcgICAgICAgICAgICAgIDogXG4kbWVudS1pdGVtLWNvbnRyYXN0LWNvbG9yICA6ICRuYXZpZ2F0aW9uLWJnICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1ob3Zlci1jb2xvciAgICAgOiAkaG92ZXItYmctdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRtZW51LWl0ZW0taG92ZXItYmcgICAgICAgIDogJGhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1hY3RpdmUtY29sb3IgICAgOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tYWN0aXZlLWJnICAgICAgIDogJG5hdmlnYXRpb24tYmcgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1jb2xvcjogJG5hdmlnYXRpb24tYmcgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1iZyA6IGlmKGx1bWEoJHByaW1hcnktY29sb3IpIDwgNTAsIGxpZ2h0ZW4oJHByaW1hcnktY29sb3IsIDEwJSksIGRhcmtlbigkcHJpbWFyeS1jb2xvciwgMTAlKSkgIWRlZmF1bHQ7XG5cbiRtZW51LWhvcml6b250YWwtYnJlYWtwb2ludDogaWYoJG9mZi1jYW52YXMtb24tbWVkaXVtID09IHRydWUsICRsYXJnZS11cCwgJG1lZGl1bS11cCk7XG4kb3ZlcnJpZGUtaW5saW5lLXBvcy1hdDogaWYoJG9mZi1jYW52YXMtb24tbWVkaXVtID09IHRydWUsICRtZWRpdW0tZG93biwgJHNtYWxsLWRvd24pO1xuXG4vLyBOYXZpZ2F0aW9uIGNvbnRhaW5lclxuLm1haW4tbmF2IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgZm9udC1mYW1pbHk6ICRtZW51LWZvbnQtZmFtaWx5O1xuXG4gICAgdWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkbWVudS1uYXZpZ2F0aW9uLWxpbmstY29sb3I7XG4gICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICB9XG4gICAgXG4gICAgLmljb24tbWVudTpiZWZvcmUge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTEyJTtcbiAgICB9XG59XG5cbi8vIE9mZiBjYW52YXMgbWVudSBpdGVtc1xuLm1haW4tbmF2X19pdGVtIGEsIGEubWFpbi1uYXZfX2Nsb3NlLWJ0biB7ICAgIFxuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkb2ZmLWNhbnZhcy1saW5rLWNvbG9yLCAkb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kKTtcbn1cblxuLy8gT2ZmLWNhbnZhcyBuYXZpZ2F0aW9uIGNsb3NlIGJ1dHRvblxuLm1haW4tbmF2X19jbG9zZS1idG4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3BhY2l0eTogMC43O1xuICAgIHRleHQtYWxpZ246IGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsIHJpZ2h0LCBsZWZ0KTtcbiAgICBsaW5lLWhlaWdodDogJG9mZi1jYW52YXMtY2xvc2UtYnRuLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRvZmYtY2FudmFzLWNsb3NlLWJ0bi1oZWlnaHQ7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIodGFwLWhpZ2hsaWdodC1jb2xvciwgcmdiYSgwLCAwLCAwLCAwKSwgd2Via2l0KTtcblxuICAgICY6Zm9jdXMsIFxuICAgICY6aG92ZXIsXG4gICAgJi5oaWdobGlnaHRlZCB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkb2ZmLWNhbnZhcy1saW5rLWNvbG9yLCAkaG92ZXItY29sb3IpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICBpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIHBhZGRpbmctI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06IC40cmVtO1xuICAgIH1cbn1cblxuLy8gVGhlIG1lbnUvc2VhcmNoIGJ1dHRvbnMgaW4gdGhlIGNvbXBhY3QgbWVudVxuLm5hdi1jb21wYWN0IHtcbiAgICBsaSB7XG4gICAgICAgIGhlaWdodDogJG5hdi1saW5lLWhlaWdodDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRtZW51LW5hdmlnYXRpb24tbGluay1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG59XG5cbiNuYXYtb3Blbi1idG4ge1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbn1cblxuLm5hdi1vZmZjYW52YXMge1xuICAgIGxpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtY29sb3I7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBOYXYgaXRlbXMgc3R5bGluZ1xuLm1haW4tbmF2X19pdGVtIHtcbiAgICBkaXJlY3Rpb246IGx0cjtcblxuICAgIGEge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwICRuYXYtaG9yaXpvbnRhbC1zaWRlLXBhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzLCBcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJi5oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWhvdmVyLWJnO1xuICAgICAgICAgICAgY29sb3I6ICRtZW51LWl0ZW0taG92ZXItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAuZGlzYWJsZWQge1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5jdXJyZW50LFxuICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAvL0BpbmNsdWRlIGNvbG9yZWQtYmctZWxlbWVudCgkbWVudS1pdGVtLWFjdGl2ZS1iZywgJG1lbnUtaXRlbS1hY3RpdmUtY29sb3IsICRtZW51LWl0ZW0tY29udHJhc3QtY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgLy8kYWN0aXZlLWhvdmVyLWJnOiBpZihsdW1hKCRtZW51LWl0ZW0tYWN0aXZlLWhvdmVyLWJnKSA8IDUwLCBsaWdodGVuKCRtZW51LWl0ZW0tYWN0aXZlLWhvdmVyLWJnLCAxMCUpLCBkYXJrZW4oJG1lbnUtaXRlbS1hY3RpdmUtaG92ZXItYmcsIDEwJSkpICFkZWZhdWx0O1xuICAgICAgICAgICAgICAgIC8vQGluY2x1ZGUgY29sb3JlZC1iZy1lbGVtZW50KCRhY3RpdmUtaG92ZXItYmcsICNmZmYsICRtZW51LWl0ZW0tY29udHJhc3QtY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9UaGlzIHN0eWxpbmcgb25seSBhcHBsaWVzIGlmIC5zbSBpcyBhZGRlZCB0byB0aGUgdG9wIDx1bD4gZWxlbWVudCwgYXMgYXJyb3dzIGRvbid0IHdvcmsgaWYgc21hcnRtZW51IGlzbid0IGxvYWRlZCBhbnl3YXlcbiAgICAmLnBhcmVudCA+IGEge1xuICAgICAgICAvLyBTaG93IGFycm93IGZvciBwYXJlbnQgaXRlbXNcbiAgICBcblxuICAgICAgICAmLmhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICYgfiB1bCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1zaG93KCRwb3NpdGlvbjogcmVsYXRpdmUpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBSb3RhdGUgYXJyb3cgb24gaG92ZXJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGV4KDE4MGRlZykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5wYXJlbnQubGV2ZWwtMSA+IGE6YWZ0ZXIge1xuICAgICAgICBAZXh0ZW5kIC5pY29uLWtleWJvYXJkLWFycm93LWRvd246YmVmb3JlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBOYXYgaXRlbXMgc2hvdWxkIGhhdmUgcGFkZGluZyBhbmQgYSBsb3cgbGluZSBoZWlnaHRcbiAqIElmIG5vdCwgbXVsdGktbGluZSBpdGVtcyB3aWxsIGJlIGh1Z2VcbiAqL1xuLm1haW4tbmF2X19saXN0IHtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG5cbiAgICBhIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRvZmYtY2FudmFzLWl0ZW0tbGluZS1oZWlnaHQgKiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAjeygkb2ZmLWNhbnZhcy1pdGVtLWhlaWdodCAtICRvZmYtY2FudmFzLWl0ZW0tbGluZS1oZWlnaHQgKiAxcmVtKS8yfSAxcmVtO1xuICAgIH1cblxuICAgIC8vIEV4dHJhIGJvdHRvbSBib3JkZXIgZm9yIHRoZSBsYXN0IG9mIHRoZSBmaXJzdCBsZXZlbCBlbGVtZW50c1xuICAgICYubGV2ZWwtMCA+IGxpOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG9mZi1jYW52YXMtaXRlbS1saW5lLWNvbG9yO1xuICAgIH1cbn1cblxuLy8gU3VibWVudVxuLm1haW4tbmF2X19zdWJtZW51IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAyMDE7XG4gICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1oaWRlKCk7XG5cbiAgICBhIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICB9XG5cbiAgICBodG1sLm5vLWpzICYuYWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1zaG93KCk7XG4gICAgfVxuXG59XG5cbi8vU3Vic3VibWVudVxuLm1haW4tbmF2X19zdWJtZW51LmxldmVsLTIge1xuICAgIGEge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMuNXJlbTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1jaGV2cm9uLXJpZ2h0KTtcbiAgICAgICAgICAgIG9wYWNpdHk6IC41O1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJG9mZi1jYW52YXMtaXRlbS1saW5lLWhlaWdodCAqIDFyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbmF2LWljb24tc3BhY2luZztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmpzLW5hdiB7XG4gICAgI291dGVyLXdyYXAge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC5jb250ZW50LXdyYXBwZXIgPiAucm93ID4gLmxhcmdlLTksICNsb2dvLXJvdyB7XG4gICAgICAgIG9wYWNpdHk6IC40O1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHksIDUwMG1zKTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRvdmVycmlkZS1pbmxpbmUtcG9zLWF0fSB7XG4gICAgLy8gT3ZlcnJpZGUgaW5saW5lIHBvc2l0aW9uaW5nIGRvbmUgYnkgSlNcbiAgICAubWFpbi1uYXZfX2l0ZW0ucGFyZW50ID4gYS5oaWdobGlnaHRlZCB+IHVsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuQGlmICRvZmYtY2FudmFzLW9uLW1lZGl1bSB7XG4gICAgLyogSW5jcmVhc2UgcGFkZGluZyBpbiBtZW51IGl0ZW1zIG9uIG1lZGl1bSBzY3JlZW5zICovXG4gICAgQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7XG4gICAgICAgIC5tYWluLW5hdl9fbGlzdCB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWFpbi1uYXZfX3N1Ym1lbnUge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWFpbi1uYXZfX2Nsb3NlLWJ0biB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lbnUtaG9yaXpvbnRhbC1icmVha3BvaW50fSB7XG5cbiAgICAubWFpbi1uYXZfX2Zyb250cGFnZS1saW5rIC5pY29uLWhvbWUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICB9XG5cbiAgICAubWFpbi1uYXZfX2l0ZW0ge1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXYtaG9yaXpvbnRhbC1zaWRlLXBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbmF2LWhvcml6b250YWwtc2lkZS1wYWRkaW5nO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVudS1uYXZpZ2F0aW9uLWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIEZpcnN0IGxldmVsIG1lbnUgaXRlbXNcbiAgICAgICAgJi5sZXZlbC0wLCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDE7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRuYXYtZmlyc3QtbGV2ZWwtc3BhY2luZztcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQGlmICRuYXYtZmlyc3QtbGV2ZWwtc3BhY2luZyA+IDAge1xuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXYtZmlyc3QtbGV2ZWwtc2lkZS1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRuYXYtZmlyc3QtbGV2ZWwtc2lkZS1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbmF2LWZpcnN0LWxldmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkbmF2LWZpcnN0LWxldmVsLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJG5hdi1maXJzdC1sZXZlbC1mb250LXNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucGFyZW50ID4gYTphZnRlciB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRuYXYtbGluZS1oZWlnaHQhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2hvdyBzdWJtZW51IG9uIGhpZ2hsaWdodGluZ1xuICAgICAgICAmLnBhcmVudCA+IGEuaGlnaGxpZ2h0ZWQgfiB1bCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDE1ZW07XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIE92ZXJyaWRlIHNtYWxsIHNjcmVlbiBzZXR0aW5nc1xuICAgIC5uYXYtb2ZmY2FudmFzIHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgKixcbiAgICAgICAgICAgICo6YmVmb3JlLFxuICAgICAgICAgICAgKjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhjb250ZW50LWJveCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWFpbi1uYXZfX2Nsb3NlLWJ0biB7XG4gICAgICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtaGlkZSgpO1xuICAgIH1cbiAgICBcbiAgICAvLyBIaWRlIHN1Ym1lbnVzIGJ5IGRlZmF1bHRcbiAgICAubWFpbi1uYXZfX3N1Ym1lbnUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTk5OTk5OXB4O1xuICAgICAgICBsZWZ0OiAtODAwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWRyb3Bkb3duLWJnO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRtZW51LWRyb3Bkb3duLWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWFpbi1uYXZfX2l0ZW0ge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRuYXYtc3VibWVudS1ib3JkZXItY29sb3I7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLy8gQFRPRE8gdHJhbnNmb3JtIGNvbnRyb2xzIHRvIGlubGluZVxuXG4kaTE4bi1wb3B1cC1wb3NpdGlvbjogcmlnaHQgIWRlZmF1bHQ7XG5cbi5zZXR0aW5nX19mb3JtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBpLmZhIHtcbiAgICAgICAgd2lkdGg6IC45cmVtO1xuICAgIH1cbn1cblxuLnNldHRpbmdfX2J1dHRvbjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNldHRpbmdfX3NlbGVjdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lkdGg6IDE1cmVtO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRpMThuLXBvcHVwLXBvc2l0aW9uID09IHJpZ2h0LCAwLCAtOTIlKSwgLTFyZW0sIDAsIHNjYWxlM2QoLjksIC45LCAuOSkpO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcywgLXdlYmtpdC10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IGVhc2UsIDBzO1xuICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLCAtbW96LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZSwgLW8tdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLCB0cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICB0b3A6ICR1dGlscy1uYXYtYmFyLWhlaWdodDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDIwMTtcblxuICAgICYgPiAqIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBzZWxlY3Qge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDY1JTtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzNyk7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzcpO1xuICAgICAgICBwYWRkaW5nOiAwIC41cmVtO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLnNldHRpbmdfX3NlbGVjdCB7XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgYm90dG9tOiAkdXRpbHMtbmF2LWJhci1oZWlnaHQ7XG4gICAgfVxufVxuXG4jbGFuZ3VhZ2Utc2hvdyxcbiNjdXJyZW5jeS1zaG93IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuI2xhbmd1YWdlLWNsb3NlLFxuI2N1cnJlbmN5LWNsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jbGFuZ3VhZ2Utc2hvdzp0YXJnZXQsXG4jY3VycmVuY3ktc2hvdzp0YXJnZXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jbGFuZ3VhZ2Utc2hvdzp0YXJnZXQgKyAjbGFuZ3VhZ2UtY2xvc2UsXG4jY3VycmVuY3ktc2hvdzp0YXJnZXQgKyAjY3VycmVuY3ktY2xvc2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNsYW5ndWFnZS1jbG9zZTp0YXJnZXQsXG4jY3VycmVuY3ktY2xvc2U6dGFyZ2V0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuI2xhbmd1YWdlLWNsb3NlOnRhcmdldCArICNsYW5ndWFnZS1zaG93LFxuI2N1cnJlbmN5LWNsb3NlOnRhcmdldCArICNjdXJyZW5jeS1zaG93IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jbGFuZ3VhZ2UtY2xvc2U6dGFyZ2V0IH4gI2xhbmd1YWdlLFxuI2N1cnJlbmN5LWNsb3NlOnRhcmdldCB+ICNjdXJyZW5jeSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiAyO1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRpMThuLXBvcHVwLXBvc2l0aW9uID09IHJpZ2h0LCAwLCAtOTAlKSwgMCwgMCwgc2NhbGUzZCgxLCAxLCAxKSk7XG59XG5cbi5qcy1uYXYgI2xhbmd1YWdlLFxuLmpzLW5hdiAjY3VycmVuY3kge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59IiwiJGVxdWFsLWhlaWdodC1ndXR0ZXI6ICRjb2x1bW4tZ3V0dGVyIWRlZmF1bHQ7XG5cbi8vIEVxdWFsIGhlaWdodCBjb2x1bW4gZ3JpZCwgbWVkaWEgcXVlcnkgc2V0dGluZ3NcbiRlcXVhbC1jb2wtZ3JpZC1zbWFsbC1yYW5nZTogICAoMGVtLCAyOS45MzdlbSkgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbWVkaXVtLXJhbmdlOiAgKDMwZW0sIDQ3LjkzN2VtKSAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtZ3JpZC1sYXJnZS1yYW5nZTogICAoNDhlbSwgNjMuOTM3ZW0pICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS1yYW5nZTogICg2NGVtLCA5OTk5OTk5OWVtKSAhZGVmYXVsdDtcblxuJGVxdWFsLWNvbC1ncmlkLXNtYWxsLXVwOiAgICAgICRzY3JlZW4gIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtc21hbGwtb25seTogICAgXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLXNtYWxsLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbWVkaXVtLXVwOiAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLW1lZGl1bS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLW1lZGl1bS1vbmx5OiAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC1tZWRpdW0tcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQtbWVkaXVtLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbGFyZ2UtdXA6ICAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLWxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbGFyZ2Utb25seTogICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLWxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLWxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQteGxhcmdlLXVwOiAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS1vbmx5OiAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC14bGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQteGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAuZmxleGJveCAmIHtcbiAgICAgICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICAgIH1cbiAgICBcbiAgICBbY2xhc3MqPVwiY29sdW1uXCJdK1tjbGFzcyo9XCJjb2x1bW5cIl06bGFzdC1jaGlsZCB7IC8vIE5lZ2F0ZSB0aGUgZm91bmRhdGlvbiBncmlkIGNzc1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIC5mbGV4Ym94ICYge1xuICAgICAgICBAaW5jbHVkZSBkaXNwbGF5KGZsZXgpO1xuICAgIH1cblxuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6ICRlcXVhbC1oZWlnaHQtZ3V0dGVyLzI7XG5cbiAgICAmOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxufVxuXG4uZXF1YWwtaGVpZ2h0LWNvbHVtbi1pbm5lcndyYXAge1xuICAgIHBhZGRpbmc6ICRlcXVhbC1jb2wtaW5uZXItcGFkZGluZztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mbGV4Ym94LFxuLm5vLWpzIHtcbiAgICAuZXF1YWwtaGVpZ2h0LWNvbHVtbi1pbm5lcndyYXAgIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbn1cblxuLmVxdWFsLWhlaWdodC1jb2x1bW5fX2ltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAuNzVyZW07XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtaGVpZ2h0OiAyNTBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cblxuLyogMiBjb2x1bW5zICovXG5cbkBtZWRpYSAjeyRlcXVhbC1jb2wtZ3JpZC1tZWRpdW0tdXB9IHtcbiAgICAuZXF1YWwtaGVpZ2h0LWNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOjYsICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuXG4gICAgICAgIHBhZGRpbmc6ICRlcXVhbC1oZWlnaHQtZ3V0dGVyLzI7XG5cbiAgICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtb2YtdHlwZSgybikge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5lcXVhbC1oZWlnaHQtY29sdW1uX19pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIDMgY29sdW1ucyAqL1xuXG5AbWVkaWEgI3skZXF1YWwtY29sLWdyaWQtbGFyZ2UtdXB9ICB7XG4gICAgLmVxdWFsLWhlaWdodC1jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczo0LCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcblxuICAgICAgICAmOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGVxdWFsLWhlaWdodC1ndXR0ZXIvMjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLW9mLXR5cGUoMm4pIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRlcXVhbC1oZWlnaHQtZ3V0dGVyLzI7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1vZi10eXBlKDMpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZXF1YWwtaGVpZ2h0LWd1dHRlciAqIDIvMztcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLW9mLXR5cGUoM24rMikge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkZXF1YWwtaGVpZ2h0LWd1dHRlciAqIDEvMztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRlcXVhbC1oZWlnaHQtZ3V0dGVyICogMS8zO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtb2YtdHlwZSgzbiszKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRlcXVhbC1oZWlnaHQtZ3V0dGVyICogMi8zO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG4vKiA0IGNvbHVtbnMgKi9cblxuQG1lZGlhICN7JGVxdWFsLWNvbC1ncmlkLXhsYXJnZS11cH0gIHtcbiAgICAubm8tc3BsaXQtbWVudSAuZXF1YWwtaGVpZ2h0LWNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOjMsICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuXG4gICAgICAgICY6bnRoLW9mLXR5cGUoNCkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGVxdWFsLWhlaWdodC1ndXR0ZXIvMjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRlcXVhbC1oZWlnaHQtZ3V0dGVyLzI7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1vZi10eXBlKDNuKzIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGVxdWFsLWhlaWdodC1ndXR0ZXIvMjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRlcXVhbC1oZWlnaHQtZ3V0dGVyLzI7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1vZi10eXBlKDNuKzMpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGVxdWFsLWhlaWdodC1ndXR0ZXIvMjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRlcXVhbC1oZWlnaHQtZ3V0dGVyLzI7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRlcXVhbC1oZWlnaHQtZ3V0dGVyICogMy80O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtb2YtdHlwZSg0bisyKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRlcXVhbC1oZWlnaHQtZ3V0dGVyICogMS80O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGVxdWFsLWhlaWdodC1ndXR0ZXIgKiAyLzQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1vZi10eXBlKDRuKzMpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGVxdWFsLWhlaWdodC1ndXR0ZXIgKiAyLzQ7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZXF1YWwtaGVpZ2h0LWd1dHRlciAqIDEvNDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLW9mLXR5cGUoNG4rNCkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkZXF1YWwtaGVpZ2h0LWd1dHRlciAqIDMvNDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgIH1cbn0iLCJAaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2xheW91dC9tYWluL3RvcGJhbm5lcnNcIjtcbkBpbXBvcnQgXCJtYWluL3Byb2R1Y3RsaXN0XCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2xheW91dC9tYWluL2NhdGVnb3J5bGlzdC9zdHlsZVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9wYWdlXCI7IiwiI3RvcGJhbm5lcnMge1xuICAgIHBhZGRpbmc6IDJyZW0gMDtcbn0iLCIkcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvcm5lci1zaXplOiAgICA1ICFkZWZhdWx0O1xuJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1jb2xvcjogICAgICAgICAgJGNhbGwtdG8tYWN0aW9uLWNvbG9yICFkZWZhdWx0O1xuJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1zaXplOiAgICAgICAgICAgc3FydCgyICogKHBvdygkcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvcm5lci1zaXplLCAyKSkpO1xuJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1mb250LXNpemU6ICAgICAgcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1wb3M6ICAgICAgICAgICAgKCRwcm9kdWN0LWdyaWQtZGlzY291bnQtc2l6ZSAtICRwcm9kdWN0LWdyaWQtZGlzY291bnQtY29ybmVyLXNpemUpIC8gMjtcbiRwcm9kdWN0LWdyaWQtZGlzY291bnQtZm9udC1jb2xvcjogICAgIGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRwcm9kdWN0LWdyaWQtZGlzY291bnQtY29sb3IpICFkZWZhdWx0O1xuJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1mb250LWNvbG9yLWFsdDogIzMzMyAhZGVmYXVsdDtcbiRwcm9kdWN0LWdyaWQtZGlzY291bnQtYmctbGlnaHRuZXNzOiAgIGxpZ2h0bmVzcygkcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvbG9yKSAhZGVmYXVsdDtcblxuJHByb2R1Y3QtZ3JpZC1idXktYnV0dG9uLXRvcC1zcGFjaW5nOiAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuJHByb2R1Y3QtZ3JpZC1idXktYnV0dG9uLWRpc3RhbmNlOiAgICAgcmVtLWNhbGMoMTgpICsgJGJ1dHRvbi1tZWQgKyAkcHJvZHVjdC1ncmlkLWJ1eS1idXR0b24tdG9wLXNwYWNpbmcgKyAkY29sdW1uLWd1dHRlcjsgLy8gYnV0dG9uIGxpbmUgaGVpZ2h0ICsgYnV0dG9uIHBhZGRpbmcgKyBidXR0b24gdG9wIHNwYWNpbmcgKyBwcm9kdWN0IGJveCBwYWRkaW5nXG5cbkBpbXBvcnQgXCJwcm9kdWN0bGlzdC9zdHlsZVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9wcm9kdWN0bGlzdC9idXktYnV0dG9uc1wiO1xuIiwiLnByb2R1Y3RsaXN0X19wcm9kdWN0LXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlci1yYWRpdXM6ICRtZWRpYS1ncmlkLWJvcmRlci1yYWRpdXM7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkY29udGVudC1iZywgMTAlKTtcbiAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihib3JkZXItY29sb3IsIDE1MG1zKTtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWigwKSk7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoYmxhY2ssIDAuMDkyNSkgIWltcG9ydGFudDtcbiAgICBcbiAgICBcbiAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2Zvb3RlciB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGNvbHVtbi1ndXR0ZXI7XG4gICAgICAgIC8vYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQgdG9wLCByZ2JhKGJsYWNrLCAwLjA1KSwgcmdiYSh3aGl0ZSwgMC4wNSkpO1xuICAgIH1cbiAgICAuZXF1YWwtaGVpZ2h0LWNvbHVtbl9faW1hZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuICAgIH1cbiAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2hlYWRsaW5lLFxuICAgIC5vZmZlcnMgLnByaWNlLFxuICAgIC5vZmZlcnMgLnByaWNlLS1vcmlnaW5hbCxcbiAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgZWFzZSk7XG4gICAgfVxuICAgIC5wcm9kdWN0bGlzdF9fcHJvZHVjdC0tYmx1cnJ5LWJnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgJHRtcC1ibHVycnktYmctcG9zOiAtJGNvbHVtbi1ndXR0ZXIqNDtcbiAgICAgICAgYm90dG9tOiAkdG1wLWJsdXJyeS1iZy1wb3M7XG4gICAgICAgIHJpZ2h0OiAkdG1wLWJsdXJyeS1iZy1wb3M7XG4gICAgICAgIGxlZnQ6ICR0bXAtYmx1cnJ5LWJnLXBvcztcbiAgICAgICAgaGVpZ2h0OiAkY29sdW1uLWd1dHRlcio0KjI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBvcGFjaXR5OiAwLjA3NTtcbiAgICAgICAgQGluY2x1ZGUgZmlsdGVyKGJsdXIoMjBweCkpO1xuICAgIH1cbiAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2J1dHRvbi13cmFwIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0kY29sdW1uLWd1dHRlci8yICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLSRjb2x1bW4tZ3V0dGVyLzIgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIFxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2J1dHRvbi13cmFwIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnJlYWRvbi1pY29uX19jb250YWluZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcm9kdWN0LWdyaWQtZGlzY291bnQtZm9udC1jb2xvciwgMC41KTtcbiAgICB9XG5cbiAgICAub24tc2FsZSAmIHtcbiAgICAgICAgLy9ib3JkZXItY29sb3I6ICRwcm9kdWN0LWdyaWQtZGlzY291bnQtY29sb3I7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XG4gICAgICAgIFxuICAgICAgICAucmVhZG9uLWljb25fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcm9kdWN0LWdyaWQtZGlzY291bnQtZm9udC1jb2xvciwgMC41KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYgPiBwIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg0MCk7XG4gICAgfVxuXG4gICAgLnByaWNlLS1vcmlnaW5hbCB7XG4gICAgICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg0MCk7XG4gICAgfVxuXG4gICAgLmN1cnJlbmN5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucHJpY2VfX3NhbGVwcmljZS10ZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAua2xhcm5hLWluZm8ge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgb3BhY2l0eTogLjc7XG4gICAgICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsgXG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJGFuY2hvci1mb250LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnZhdC1pbmZvIHtcbiAgICAgICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1oaWRlKCk7XG4gICAgfVxuXG4gICAgLm9uLXNhbGUgJiAucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2Zvb3RlcjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAjeyRwcm9kdWN0LWdyaWQtZGlzY291bnQtY29ybmVyLXNpemUgLSAxLjI1fXJlbSAjeyRwcm9kdWN0LWdyaWQtZGlzY291bnQtY29ybmVyLXNpemUgLSAxLjI1fXJlbSAwO1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICRwcm9kdWN0LWdyaWQtZGlzY291bnQtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIC5kaXNjb3VudCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC1ncmlkLWRpc2NvdW50LWZvbnQtc2l6ZSAtIDAuMztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0jeyRwcm9kdWN0LWdyaWQtZGlzY291bnQtcG9zfXJlbTtcbiAgICAgICAgdG9wOiAtI3skcHJvZHVjdC1ncmlkLWRpc2NvdW50LXBvc31yZW07XG4gICAgICAgIHdpZHRoOiAjeyRwcm9kdWN0LWdyaWQtZGlzY291bnQtc2l6ZX1yZW07XG4gICAgICAgIGhlaWdodDogICN7JHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1zaXplfXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICN7JHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1zaXplLzJ9cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHotaW5kZXg6IDk7XG5cbiAgICAgICAgQGlmICRwcm9kdWN0LWdyaWQtZGlzY291bnQtYmctbGlnaHRuZXNzID4gNzAge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LWdyaWQtZGlzY291bnQtZm9udC1jb2xvci1hbHQ7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LWdyaWQtZGlzY291bnQtZm9udC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZVooMCkpO1xuXG4gICAgICAgIC5uby1jc3N0cmFuc2Zvcm1zICYge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAjeyRjb2x1bW4tZ3V0dGVyLzJ9ICN7JGNvbHVtbi1ndXR0ZXIvMn0gMCAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnByb2R1Y3RsaXN0X19wcm9kdWN0X19oZWFkbGluZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xufVxuXG4iLCIkcHJvZHVjdGxpc3RfcHJvZHVjdC1idXR0b24td3JhcC1iZy1vcGFjaXR5OiAwLjcgIWRlZmF1bHQ7XG4kcHJvZHVjdGxpc3QtYnV5LWJ1dHRvbi13aWR0aDogMTAwJSAhZGVmYXVsdDtcbiRwcm9kdWN0bGlzdC1idXktYnV0dG9uLXNwYWNpbmc6ICRjb2x1bW4tZ3V0dGVyLzIgIWRlZmF1bHQ7XG5cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uIHtcbiAgICB3aWR0aDogJHByb2R1Y3RsaXN0LWJ1eS1idXR0b24td2lkdGg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG59XG5cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uLXdyYXAge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoJGNvbnRlbnQtYmcsICRwcm9kdWN0bGlzdF9wcm9kdWN0LWJ1dHRvbi13cmFwLWJnLW9wYWNpdHkpO1xuICAgIGJvcmRlci1yYWRpdXM6ICRtZWRpYS1ncmlkLWJvcmRlci1yYWRpdXM7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiA0O1xuICAgIG1hcmdpbi1sZWZ0OiAtKCRlcXVhbC1jb2wtaW5uZXItcGFkZGluZyk7XG4gICAgcGFkZGluZzogJHByb2R1Y3QtZ3JpZC1idXktYnV0dG9uLXRvcC1zcGFjaW5nICRwcm9kdWN0bGlzdC1idXktYnV0dG9uLXNwYWNpbmcgJHByb2R1Y3RsaXN0LWJ1eS1idXR0b24tc3BhY2luZyAkcHJvZHVjdGxpc3QtYnV5LWJ1dHRvbi1zcGFjaW5nO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtLCAxNTBtcyBlYXNlKTtcblxuICAgIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLyogQnV5IGJ1dHRvbiB0cmFuc2Zvcm0gKi9cbi5jc3N0cmFuc2Zvcm1zIHtcbiAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3Qtd3JhcDpob3ZlciB7XG4gICAgICAgIC5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uLXdyYXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgwLCAtI3skcHJvZHVjdC1ncmlkLWJ1eS1idXR0b24tZGlzdGFuY2V9KSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIEZvciBicm93c2VycyB3aXRob3V0IHRyYW5zZm9ybSBzdXBwb3J0LCBqdXN0IGNoYW5nZSBib3R0b20gcG9zaXRpb24gKi9cbi5uby1jc3N0cmFuc2Zvcm1zIHtcbiAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2J1dHRvbi13cmFwIHtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBib3R0b206IC0xMDAlO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJvdHRvbSwgMTUwbXMgZWFzZSk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RsaXN0X19wcm9kdWN0LXdyYXA6aG92ZXIge1xuICAgICAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2J1dHRvbi13cmFwIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBGb3IgYnJvd3NlcnMgd2l0aCB0b3VjaCBzdXBwb3J0LCB3ZSBhc3N1bWUgbm8gc3VwcG9ydCBmb3IgOmhvdmVyIGFuZFxuICogbWFrZSBzb21lIGFsdGVyYXRpb25zLlxuICovXG4udG91Y2gge1xuICAgIC5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uLXdyYXAge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn0iLCIkY2F0ZWdvcnktZ3JpZC1ib3JkZXItY29sb3I6ICAjZWFlYWVhICFkZWZhdWx0O1xuJGNhdGVnb3J5LWdyaWQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMrMiAhZGVmYXVsdDtcbiRjYXRlZ29yeS1ncmlkLWJvcmRlci1zaXplOiAgIDFweCAhZGVmYXVsdDtcbiRjYXRlZ29yeS1ncmlkLWZvbnQtY29sb3I6ICAgIGxpZ2h0ZW4oJGJvZHktZm9udC1jb2xvciwgMzAlKSAhZGVmYXVsdDtcblxuLmNhdGVnb3J5bGlzdF9fY2F0ZWdvcnktd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRtZWRpYS1ncmlkLWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkY29udGVudC1iZywgMTAlKTtcbiAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihib3JkZXItY29sb3IsIDE1MG1zKTtcbn1cblxuLmNhdGVnb3J5bGlzdF9fY2F0ZWdvcnlfX2hlYWRsaW5lIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XG59IiwiLy8gSWYgc2VjdGlvbiBjb2xvcnMgZG8gbm90IGRpZmZlciBlbm91Z2ggaW4gYmFja2dyb3VuZCBjb2xvciwgd2Ugc2V0IHVwIGEgYm9yZGVyXG4vLyBUaGUgYm9yZGVyIHNob3VsZCBiZSBsaWdodGVyIHRoYW4gdGhlIGxpZ2h0ZXN0IHNlY3Rpb24gaWYgdGhlIHNlY3Rpb25zIGFyZSBkYXJrLFxuLy8gYW5kIGRhcmtlciB0aGFuIHRoZSBkYXJrZXJzdCBzZWN0aW9uIGlmIHNlY3Rpb25zIGFyZSBsaWdodFxuQG1peGluIHNlY3Rpb24tYm9yZGVyLWNvbG9yKCRzZWN0aW9uLWJnLWNvbG9yLCAkcHJldmlvdXMtc2VjdGlvbi1jb2xvciwgJGNvbnRyYXN0LXJhdGlvLXRocmVzaG9sZDogMiwgJHJldGluYTogZmFsc2UpIHtcbiAgICBAaWYgY29udHJhc3QtcmF0aW8oJHNlY3Rpb24tYmctY29sb3IsICRwcmV2aW91cy1zZWN0aW9uLWNvbG9yKSA8PSAkY29udHJhc3QtcmF0aW8tdGhyZXNob2xkIHtcbiAgICAgICAgQGlmIGx1bWEoJHNlY3Rpb24tYmctY29sb3IpIDwgbHVtYSgkcHJldmlvdXMtc2VjdGlvbi1jb2xvcikge1xuICAgICAgICAgICAgJGRhcmtlc3Qtc2VjdGlvbi1jb2xvcjogJHNlY3Rpb24tYmctY29sb3I7XG4gICAgICAgICAgICAkbGlnaHRlc3Qtc2VjdGlvbi1jb2xvcjogJHByZXZpb3VzLXNlY3Rpb24tY29sb3I7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJGxpZ2h0ZXN0LXNlY3Rpb24tY29sb3I6ICRzZWN0aW9uLWJnLWNvbG9yO1xuICAgICAgICAgICAgJGRhcmtlc3Qtc2VjdGlvbi1jb2xvcjogJHByZXZpb3VzLXNlY3Rpb24tY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAkc2VjdGlvbi1ib3JkZXItY29sb3I6IGlmKGx1bWEoJHNlY3Rpb24tYmctY29sb3IpIDwgNSwgbGlnaHRlbigkbGlnaHRlc3Qtc2VjdGlvbi1jb2xvciwgMTAlKSwgZGFya2VuKCRkYXJrZXN0LXNlY3Rpb24tY29sb3IsIDEwJSkpO1xuXG4gICAgICAgIEBpZiAkcmV0aW5hIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhhaXJsaW5lLWJvcmRlcigkc2VjdGlvbi1ib3JkZXItY29sb3IpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2VjdGlvbi1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNsb2dvLXJvdyB7XG4gICAgQGluY2x1ZGUgc2VjdGlvbi1ib3JkZXItY29sb3IoJGhlYWRlci1iZywgJG5hdmlnYXRpb24tYmcsIDEpO1xufVxuXG4udXNlci1uYXYge1xuICAgIGZsb2F0OiByaWdodDtcbn1cblxuI25hdiB7XG4gICAgQGluY2x1ZGUgc2VjdGlvbi1ib3JkZXItY29sb3IoJG5hdmlnYXRpb24tYmcsICRoZWFkZXItYmcsIDEpO1xufVxuXG4jbWFpbiB7XG4gICAgQGluY2x1ZGUgc2VjdGlvbi1ib3JkZXItY29sb3IoJGNvbnRlbnQtYmcsICRuYXZpZ2F0aW9uLWJnLCAxKTtcbn1cblxuI21haW4tY29udGVudCxcbiNtYWluLWNvbnRlbnQtb25lcGFnZSB7XG4gICAgcGFkZGluZy10b3A6ICRjb2x1bW4tZ3V0dGVyO1xuICAgIHBhZGRpbmctYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcblxuICAgICYgPiAuYnJlYWRjcnVtYnNfX3dyYXBwZXI6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAtJGNvbHVtbi1ndXR0ZXI7XG4gICAgICAgIHBhZGRpbmc6ICRwYWdlLXRpdGxlLXBhZGRpbmcgMDtcbiAgICB9XG59XG5cbiNmb290ZXIge1xuICAgIHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlcjtcbiAgICBAaW5jbHVkZSBzZWN0aW9uLWJvcmRlci1jb2xvcigkZm9vdGVyLWJnLCAkY29udGVudC1iZyk7XG59XG5cbiNlbmQge1xuICAgIEBpbmNsdWRlIHNlY3Rpb24tYm9yZGVyLWNvbG9yKCRlbmQtYmcsICRmb290ZXItYmcpO1xuICAgIHBhZGRpbmc6ICRjb2x1bW4tZ3V0dGVyIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucGFnZV9fdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IC0kY29sdW1uLWd1dHRlcjtcbiAgICBwYWRkaW5nOiAkcGFnZS10aXRsZS1wYWRkaW5nIDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAqICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG5cbiAgICBAZXh0ZW5kIC5ib3JkZXJlZC0tYm90dG9tO1xuICAgIEBleHRlbmQgJWNvbnRlbnRfX2JvcmRlcmVkLS1oYXJkO1xuXG4gICAgaDEge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufSIsIiRuYXYtbGluZS1oZWlnaHQ6IDMuNXJlbSAhZGVmYXVsdDtcblxuJG5hdmlnYXRpb24tdG9vbGJhci1oZWlnaHQ6ICRuYXYtbGluZS1oZWlnaHQgLyA0ICFkZWZhdWx0O1xuXG4kYWxlcnQtYm94LWZvb3Rlci1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcblxuQG1peGluIGFsZXJ0LXN0eWxlKCRjb2xvcikge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItbGVmdDogJGFsZXJ0LXNpZGUtYm9yZGVyLXNpemUgc29saWQgJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG59XG5cbi8vIFVzaW5nIGZvdW5kYXRpb24ncyBhbGVydCBib3hlcyBzdHlsaW5nXG4uYWxlcnQtYm94IHtcbiAgICB0b3A6ICRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0IWltcG9ydGFudDtcbiAgICByaWdodDogMCFpbXBvcnRhbnQ7XG4gICAgXG4gICAgQGluY2x1ZGUgYWxlcnQ7XG4gICAgbGluZS1oZWlnaHQ6ICRhbGVydC1saW5lLWhlaWdodDtcbiAgICBcbiAgICAmLmFsZXJ0LWJveC0td2l0aGNsb3NlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogI3skYWxlcnQtcGFkZGluZy1vcHBvc2l0ZS1kaXJlY3Rpb24gKiAxLjV9O1xuICAgIH1cbiAgXG4gICAgPiBwOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5jbG9zZSAgICAgIHsgQGluY2x1ZGUgYWxlcnQtY2xvc2U7IH1cbiAgICAmLnJhZGl1cyAgICB7IEBpbmNsdWRlIHJhZGl1cygkYWxlcnQtcmFkaXVzKTsgfVxuICAgICYucm91bmQgICAgIHsgQGluY2x1ZGUgcmFkaXVzKCRnbG9iYWwtcm91bmRlZCk7IH1cblxuICAgICYuc3VjY2VzcyxcbiAgICAmLmFsZXJ0LXN1Y2Nlc3MgICB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRzdWNjZXNzLWNvbG9yKTsgfVxuICAgICYuYWxlcnQsXG4gICAgJi5hbGVydC1hbGVydCAgICAgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkYWxlcnQtY29sb3IpOyB9XG4gICAgJi5zZWNvbmRhcnksXG4gICAgJi5hbGVydC1zZWNvbmRhcnkgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkc2Vjb25kYXJ5LWNvbG9yKTsgfVxuICAgICYud2FybmluZyxcbiAgICAmLmFsZXJ0LXdhcm5pbmcgICB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCR3YXJuaW5nLWNvbG9yKTsgfVxuICAgICYuaW5mbyxcbiAgICAmLmFsZXJ0LWluZm8gICAgICB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRpbmZvLWNvbG9yKTsgfVxuICAgICYuYWxlcnQtY2xvc2UgICAgIHsgb3BhY2l0eTogMH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbn1cblxuLmFsZXJ0LWJveF9faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgIHRvcDogJGFsZXJ0LXBhZGRpbmctdG9wO1xuICAgIGxlZnQ6IC0oJGFsZXJ0LXNpZGUtYm9yZGVyLXNpemUvMiArIC41cmVtKTtcbiAgICBsaW5lLWhlaWdodDogJGFsZXJ0LWxpbmUtaGVpZ2h0O1xuICAgIGhlaWdodDogJGFsZXJ0LWxpbmUtaGVpZ2h0ICogMXJlbTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLmFsZXJ0LWJveF9fbWVzc2FnZSxcbi5hbGVydC1ib3hfX21lc3NhZ2UgPiAqIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRhbGVydC1mb250LXNpemU7XG59XG5cbi5hbGVydC1ib3hfX21lc3NhZ2UgOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5hbGVydC1ib3gtLXdpdGhmb290ZXIge1xuICAgIC5hbGVydC1ib3hfX21lc3NhZ2Uge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYWxlcnQtYm94LWZvb3Rlci1zaXplO1xuICAgIH1cbn1cblxuI2NhcnQtbm90aWZ5IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uYWxlcnQtYm94X19wcm9ncmVzc2JhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmFsZXJ0LWJveF9fZm9vdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogJGFsZXJ0LWJveC1mb290ZXItc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGFsZXJ0LWJveC1mb290ZXItc2l6ZTtcblxuICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAwICRhbGVydC1wYWRkaW5nLWRlZmF1bHQtZmxvYXQgMCAkYWxlcnQtcGFkZGluZy1kZWZhdWx0LWZsb2F0O1xuICAgICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgICAgICAmLmxlZnQgLmZhIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IC4zcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5yaWdodCAuZmEge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAuM3JlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5hbGVydC1ib3gge1xuICAgICAgICBtYXgtd2lkdGg6IDYwJTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIC5hbGVydC1ib3gge1xuICAgICAgICBtYXgtd2lkdGg6IDQwJTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAuYWxlcnQtYm94IHtcbiAgICAgICAgbWF4LXdpZHRoOiAzMCU7XG4gICAgfVxufVxuIiwiJG5hdi1saW5lLWhlaWdodDogMy41cmVtICFkZWZhdWx0O1xuXG4kbmF2aWdhdGlvbi10b29sYmFyLWhlaWdodDogJG5hdi1saW5lLWhlaWdodCAhZGVmYXVsdDtcblxuJHVzZXItdG9vbGJhci1oZWlnaHQ6ICRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0ICFkZWZhdWx0O1xuJHVzZXItdG9vbGJhci1iZzogbWl4KCRjb250ZW50LWJnLCAkYXNpZGUtYmcsIDk1JSkgIWRlZmF1bHQ7XG5cbi5ibG9jay1uYXZfX3N1Ym1lbnUudG9nZ2xlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLmFzaWRlX193cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cbiAgICBcbiAgICAjbG9nby1yb3cge1xuICAgICAgICBwYWRkaW5nLXRvcDogJHVzZXItdG9vbGJhci1oZWlnaHQgKyAkbG9nby1yb3ctc3BhY2luZztcbiAgICB9XG4gICAgLmFzaWRlX19tZW51IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICR1dGlscy1uYXYtYmFyLWhlaWdodDtcbiAgICB9XG4gICAgXG4gICAgLmFzaWRlX19pbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgXG4gICAgICAgIC5yb3cge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC51c2VyLW5hdiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHVzZXItdG9vbGJhci1oZWlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdXNlci10b29sYmFyLWJnO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAubmV1dHJhbC1saW5rIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2shaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIHdpZHRoOjBweDsgXG4gICAgICAgICAgICAgICAgaGVpZ2h0OjBweDsgXG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6JHVzZXItdG9vbGJhci1oZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OjBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiR1c2VyLXRvb2xiYXItaGVpZ2h0IHNvbGlkICR1c2VyLXRvb2xiYXItYmc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kdXNlci10b29sYmFyLWhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAubWFpbi1uYXZfX2l0ZW0sIC5tYWluLW5hdl9faXRlbS5sZXZlbC0wIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIFxuICAgIC5hc2lkZV9fZm9vdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgICB6LWluZGV4OiAxMDAwO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAkdXRpbHMtbmF2LWJhci1oZWlnaHQ7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB3aWR0aDowcHg7IFxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkdXRpbHMtbmF2LWJhci1oZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHV0aWxzLW5hdi1iYXItaGVpZ2h0IHNvbGlkICRhc2lkZV9fZm9vdGVyLWJnO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCIkbmF2LWxpbmUtaGVpZ2h0OiAzLjVyZW0gIWRlZmF1bHQ7XG5cbiRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0IC8gNCAhZGVmYXVsdDtcblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLm5hdmlnYXRpb25fX3JvdyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAkbmF2aWdhdGlvbi10b29sYmFyLWhlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogJG5hdmlnYXRpb24tdG9vbGJhci1iZztcbiAgICB9XG4gICAgXG4gICAgLmJyZWFkY3J1bWJzIHtcbiAgICAgICAgaGVpZ2h0OiAkbmF2aWdhdGlvbi10b29sYmFyLWhlaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0O1xuICAgICAgICBwYWRkaW5nOiAwIHJlbS1jYWxjKDEwKTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIFxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBhLCAuY3VycmVudCB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMCByZW0tY2FsYygwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAudXNlci1uYXYge1xuICAgICAgICBoZWlnaHQ6ICRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0O1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIFxuICAgICAgICB1bCB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgIHdpZHRoOjBweDsgXG4gICAgICAgICAgICAgICAgaGVpZ2h0OjBweDsgXG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6JHVzZXItdG9vbGJhci1oZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OjBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiR1c2VyLXRvb2xiYXItaGVpZ2h0IHNvbGlkICRuYXZpZ2F0aW9uLXRvb2xiYXItYmc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kdXNlci10b29sYmFyLWhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6ICR1c2VyLXRvb2xiYXItaGVpZ2h0O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR1c2VyLXRvb2xiYXItaGVpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmlnYXRpb24tdG9vbGJhci1iZyFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbS1jYWxjKDEwKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQGlmIGx1bWEoJHByaW1hcnktY29sb3IpID4gbHVtYSgkbmF2aWdhdGlvbi10b29sYmFyLWJnKSB7XG4gICAgICAgICAgICAgICAgJHVzZXItdG9vbGJhci1hY3RpdmUtbGluay1jb2xvcjogbGlnaHRlbigkcHJpbWFyeS1jb2xvciwgMjAlKTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICR1c2VyLXRvb2xiYXItYWN0aXZlLWxpbmstY29sb3I6IGRhcmtlbigkcHJpbWFyeS1jb2xvciwgMjAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkdXNlci10b29sYmFyLWFjdGl2ZS1saW5rLWNvbG9yLCAkbmF2aWdhdGlvbi10b29sYmFyLWJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAubmF2aWdhdGlvbl9fdG9vbGJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgaGVpZ2h0OiAkbmF2aWdhdGlvbi10b29sYmFyLWhlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogJG5hdmlnYXRpb24tdG9vbGJhci1maXhlZC1iZztcbiAgICAgICAgei1pbmRleDogNTAwO1xuICAgICAgICBcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOjBweDsgXG4gICAgICAgICAgICBoZWlnaHQ6MHB4OyBcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OjBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6JG5hdmlnYXRpb24tdG9vbGJhci1oZWlnaHQgc29saWQgJG5hdmlnYXRpb24tdG9vbGJhci1maXhlZC1iZztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJG5hdmlnYXRpb24tdG9vbGJhci1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5qcy1wcm9kdWN0LXNlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIC5qcy1wcm9kdWN0LXNlYXJjaC1zdWJtaXQsXG4gICAgICAgICAgICAuanMtcHJvZHVjdC1zZWFyY2gge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG5hdmlnYXRpb24tdG9vbGJhci1maXhlZC1iZztcbiAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDBweDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBlYXNlKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGhlaWdodDogJG5hdmlnYXRpb24tdG9vbGJhci1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0O1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAucHJvZHVjdC1zZWFyY2gtcmVzdWx0cyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLSRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0LzI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kbmF2aWdhdGlvbi10b29sYmFyLWhlaWdodC8yO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IC0kbmF2aWdhdGlvbi10b29sYmFyLWhlaWdodC8yO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuY2FydC1hbmQtY2hlY2tvdXQge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAuY2FydC1idXR0b24ge1xuICAgICAgICAgICAgICAgIGhlaWdodDogJG5hdmlnYXRpb24tdG9vbGJhci1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0IC8gNDtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6MHB4OyBcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OjBweDsgXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiR1c2VyLXRvb2xiYXItaGVpZ2h0IHNvbGlkICRuYXZpZ2F0aW9uLXRvb2xiYXItZml4ZWQtYmc7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDowcHggc29saWQgJG5hdmlnYXRpb24tdG9vbGJhci1maXhlZC1iZztcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDokdXNlci10b29sYmFyLWhlaWdodCBzb2xpZCAkbmF2aWdhdGlvbi10b29sYmFyLWZpeGVkLWJnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2Uod2hpdGUsICRob3Zlci1jb2xvcikhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9IFxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgLmNhcnQtYnV0dG9uX19xdWFudGl0eSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0ZXh0LWNvbnRyYXN0KCRob3Zlci1jb2xvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC5jYXJ0LWJ1dHRvbi0tZW1wdHkge1xuICAgICAgICAgICAgICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLmNhcnQtYnV0dG9uX19jdXJyZW5jeSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJG5hdmlnYXRpb24tdG9vbGJhci1oZWlnaHQgLyA0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAuY2FydC1idXR0b25fX3F1YW50aXR5IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBlYXNlKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogJG5hdmlnYXRpb24tdG9vbGJhci1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0IC8gMS4zMzMzMztcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJG5hdmlnYXRpb24tdG9vbGJhci1oZWlnaHQgLyA0O1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbmF2aWdhdGlvbi10b29sYmFyLWhlaWdodCAvIDEuNTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRob3Zlci1jb2xvciwgJGhvdmVyLWNvbG9yLCA2KTtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBlYXNlKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDowcHg7IFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6MHB4OyBcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6JHVzZXItdG9vbGJhci1oZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDowcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6JHVzZXItdG9vbGJhci1oZWlnaHQgc29saWQgJGhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLSR1c2VyLXRvb2xiYXItaGVpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLmNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgXG59XG5cbiNleHRyYS1uYXYtbGFyZ2Uge1xuICAgIC5qcy1wcm9kdWN0LXNlYXJjaCB7XG4gICAgICAgIGJhY2tncm91bmQ6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRuYXZpZ2F0aW9uLXRvb2xiYXItZml4ZWQtYmcsICRoZWFkZXItYmcsIDEuMik7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlci13aWR0aDogMHB4O1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNjb250YWN0LW5hdiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6ICRjb2x1bW4tZ3V0dGVyO1xuICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xuICAgIFxuICAgIGxpIHtcbiAgICAgICAgZmxvYXQ6IG5vbmUhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2shaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLyogYm9udXMgcXVpY2tmaXggKi9cbiNfX2JzX25vdGlmeV9fIHtcbiAgICB0b3A6ICRuYXZpZ2F0aW9uLXRvb2xiYXItaGVpZ2h0IWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb21wbGVtZW50KCRuYXZpZ2F0aW9uLXRvb2xiYXItZml4ZWQtYmcpIWltcG9ydGFudDtcbiAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2Uod2hpdGUsIGNvbXBsZW1lbnQoJG5hdmlnYXRpb24tdG9vbGJhci1maXhlZC1iZykpIWltcG9ydGFudDtcbn0iLCIvKiBzZWUgZm91bmRhdGlvbi9jb21wb25lbnRzL2JyZWFkY3J1bWJzIGZvciB0aGUgYmFzZSBzdHlsaW5nIGFuZCBvcHRpb25zICovXG5cbiRuYXYtbGluZS1oZWlnaHQ6IDMuNXJlbSAhZGVmYXVsdDtcblxuJGJyZWFkY3J1bWJzLXZpc2libGUtbGFzdDogMyFkZWZhdWx0O1xuXG4uYnJlYWRjcnVtYnMgPiAqOmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtNDVkZWcpIHNjYWxlWSg2KSk7XG4gICAgY29udGVudDogXCJ8XCIhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgb3BhY2l0eTogMC4yNTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLmJyZWFkY3J1bWJzIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICBcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgLy9wYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICAvL3BhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmN1cnJlbnQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAuYnJlYWRjcnVtYnMgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIFxuICAgICAgICAvLyBJbmRpY2F0b3Igd2hlbiBtb3JlIHRoYW4gMyBsZXZlbHNcbiAgICAgICAgJjpudGgtbGFzdC1vZi10eXBlKCsjeyRicmVhZGNydW1icy12aXNpYmxlLWxhc3QrMX0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBhLCAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KApic7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yLWN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJG5hdi1saW5lLWhlaWdodC8yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBcbiAgICAgICAgXG4gICAgICAgIC8vIE9ubHkgc2hvdyBsYXN0IHR3b1xuICAgICAgICAmOm50aC1sYXN0LW9mLXR5cGUoLW4rI3skYnJlYWRjcnVtYnMtdmlzaWJsZS1sYXN0fSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgID4gYTpub3QoLmRpdmlkZXIpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgZWFzZSk7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKHdoaXRlLCAkcHJpbWFyeS1jb2xvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOm5vdCguY3VycmVudCk6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJpbWFyeS1jb2xvciwgMCk7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNrZXdYKDQ1ZGVnKSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgZWFzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICY6bm90KC5jdXJyZW50KTphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHByaW1hcnktY29sb3IsIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIlxuXG4jZW5kLFxuLnBhZ2luYXRpb24td3JhcHBlcixcbi5zbGlkZXJfX3dyYXBwZXIuc2xpZGVyX193aXRoLW5hdiB7XG4gICAgbWFyZ2luLWxlZnQ6IC0kY29sdW1uLWd1dHRlci8yO1xuICAgIG1hcmdpbi1yaWdodDogLSRjb2x1bW4tZ3V0dGVyLzI7XG59XG4uc2xpZGVyX193cmFwcGVyLnNsaWRlcl9fd2l0aC1uYXYge1xuICAgIG1hcmdpbi10b3A6IC0kY29sdW1uLWd1dHRlcjtcbn1cbi5wYWdpbmF0aW9uLXdyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyLzI7XG59XG5cbiNtYWluLWNvbnRlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuLnBhZ2luYXRpb24td3JhcHBlciB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyLXRvcDogcmdiYSg1MSwgNTEsIDUxLCAwLjIpIHNvbGlkIDFweDtcbn1cblxuLmJ4LXByZXYge1xuICAgIGxlZnQ6ICRjb2x1bW4tZ3V0dGVyLzIgIWltcG9ydGFudDtcbn1cbi5ieC1uZXh0IHtcbiAgICByaWdodDogJGNvbHVtbi1ndXR0ZXIvMiAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgI3skc2NyZWVufSBhbmQgKG1heC13aWR0aDogI3t1cHBlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pIHtcbiAgICBcbiAgICAuanMtcmVhZHkgI25hdiB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgIH1cbiAgICBcbiAgICAuYXNpZGVfX3dyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICAgIFxuICAgICNleHRyYS1uYXYtbGFyZ2Uge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIFxuICAgICAgICAuanMtcHJvZHVjdC1zZWFyY2gtc3VibWl0IHtcbiAgICAgICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgICAgICByaWdodDogLSgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2tld1goNDVkZWcpKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLmljb24tc2VhcmNoIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNrZXdYKC00NWRlZykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICNzZWFyY2gtYm94X19pbnB1dCB7XG4gICAgICAgICAgICB0ZXh0LWluZGVudDogcmVtLWNhbGMoNTApO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAjc2VhcmNoLWJveF9faW5wdXQsIGJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIGZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHdpZHRoOjBweDsgXG4gICAgICAgICAgICAgICAgaGVpZ2h0OjBweDsgXG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6KCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSkgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OjBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOigkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpIHNvbGlkICRoZWFkZXItYmc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0oJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zbWFsbC0xMTpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB3aWR0aDowcHg7IFxuICAgICAgICAgICAgICAgIGhlaWdodDowcHg7IFxuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDooJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDowcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTooJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKSBzb2xpZCAkaGVhZGVyLWJnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC5uYXYtb3Blbi1idG5fX2NvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAgKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG4gICAgfVxuICAgIFxuICAgIC5jYXJ0LWFuZC1jaGVja291dCAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4jbWFpbiB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xufVxuXG5AbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3Qge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljIWltcG9ydGFudDtcbiAgICB9XG59IiwiJG5vbmUtdG91Y2gtZnJpZW5kbHktc2l6ZTogcmVtLWNhbGMoMzApIWltcG9ydGFudDtcbiRzaWRlYmFyLXNpZGUtcGFkZGluZzogJG5hdi1maXJzdC1sZXZlbC1zaWRlLXBhZGRpbmcgO1xuJHNwbGl0bWVudS1ib3JkZXItY29sb3I6IGlmKGx1bWEoJGNvbnRlbnQtYmcpIDwgNTAsIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDE1JSksIGRhcmtlbigkY29udGVudC1iZywgMTUlKSkgIWRlZmF1bHQ7XG4kc3BsaXRtZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogaWYobHVtYSgkY29udGVudC1iZykgPCA1MCwgbGlnaHRlbigkY29udGVudC1iZywgNCUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDQlKSkgIWRlZmF1bHQ7XG4kc3BsaXRtZW51LXN1Ym1lbnUtYmFja2dyb3VuZC1ob3ZlcjogaWYobHVtYSgkY29udGVudC1iZykgPCA1MCwgbGlnaHRlbigkY29udGVudC1iZywgNiUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDYlKSkgIWRlZmF1bHQ7XG5cbiNzcGxpdG1lbnUge1xuXHQmLCB1bCB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblx0XG5cdGxpIHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcblxuXHRcdCYubGV2ZWwtMSB7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcblxuXHRcdFx0bGkge1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmFzaWRlIC5uYXYtc2lkZSB7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi5zaWRlYmFyIC5uYXYtc2lkZS5ibG9ja19fYm94X19jb250ZW50IHtcblx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLy8gSGlkZSBkZWZhdWx0IHBsdXMvY2hldnJvblxuLmJsb2NrX19ib3ggbGkgYTpiZWZvcmUsXG4uYmxvY2tfX2JveCBsaS5wYXJlbnQgPiBhOmJlZm9yZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIFJlbW92ZSBsZWZ0IHBhZGRpbmdcbi5ibG9ja19fYm94IHVsIHVsIGxpIHtcblx0cGFkZGluZy1sZWZ0OiAwO1xufVxuXG4ubmF2LXNpZGUge1xuXHRiYWNrZ3JvdW5kOiAkbmF2aWdhdGlvbi1iZztcblx0YSB7XG5cdFx0Y29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRuYXZpZ2F0aW9uLWJnKTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBlYXNlKTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTUwbXMgZWFzZSk7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3I7XG5cdFx0XHRjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJGhvdmVyLWNvbG9yKSFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cdC5tYWluLW5hdl9faXRlbSB7XG5cdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMHB4O1xuXHR9XG5cblx0Ly8gU2hvdyBzdWJtZW51XG5cdC5wYXJlbnQge1xuXG5cdFx0JiA+IGEge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0bGluZS1oZWlnaHQ6ICRuYXYtbGluZS1oZWlnaHQ7XG5cdFx0fVxuXG5cdFx0JiA+IGE6YWZ0ZXIge1xuXHRcdFx0QGluY2x1ZGUgaWNvbigkaWNvbi12YXIta2V5Ym9hcmQtYXJyb3ctZG93bik7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSwgNDAwbXMgZWFzZSk7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRleCgxODBkZWcpKTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0cmlnaHQ6IDAuNHJlbTtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0aGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuXHRcdFx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcblx0XHR9XG5cblx0XHQmID4gYS50b2dnbGVkOmFmdGVyIHtcblx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGV4KDBkZWcpKTtcblx0XHR9XG5cblx0XHQmLmN1cnJlbnQsICYuc2VsZWN0ZWQge1xuXHRcdFx0JiA+IHVsIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNwbGl0bWVudS1zdWJtZW51LWJhY2tncm91bmQsIDAuMSk7XG5cdFx0XHR9XG5cblx0XHRcdCYgPiBhOmFmdGVyIHtcblx0XHRcdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZXgoMGRlZykpO1xuXHRcdFx0fVxuXG5cdFx0XHQmID4gYS50b2dnbGVkOmFmdGVyIHtcblx0XHRcdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZXgoMTgwZGVnKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQuY3VycmVudCA+IGEge1xuXHRcdEBpbmNsdWRlIGNvbG9yZWQtYmctZWxlbWVudCgkbmF2aWdhdGlvbi1iZywgJHByaW1hcnktY29sb3IsICRuYXZpZ2F0aW9uLWJnKTtcblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1jb2xvcjtcblx0XHR9XG5cdH1cblxuXHR1bC5sZXZlbC0xLnRvZ2dsZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzcGxpdG1lbnUtc3VibWVudS1iYWNrZ3JvdW5kO1xuXHR9XG5cblx0LmN1cnJlbnQgPiBhIHtcblx0fVxuXG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNCB7XG5cdFx0LmxldmVsLSN7JGl9IHtcblx0XHRcdFxuXHRcdFx0QGlmIGx1bWEoJG5hdmlnYXRpb24tYmcpID4gMjUge1xuXHRcdFx0XHQkbGV2ZWwtY29sb3I6IHNjYWxlLWNvbG9yKCRuYXZpZ2F0aW9uLWJnLCAkbGlnaHRuZXNzOiAtNSUgKiAkaSk7XG5cdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0JGxldmVsLWNvbG9yOiBzY2FsZS1jb2xvcigkbmF2aWdhdGlvbi1iZywgJGxpZ2h0bmVzczogNSUgKiAkaSk7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCYge1x0XHRcdFx0XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsZXZlbC1jb2xvcjtcblx0XHRcdH1cblx0XHRcdGEge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDFyZW07XG5cdFx0XHRcdGJvcmRlci1sZWZ0OiBzb2xpZCAoJHNpZGViYXItc2lkZS1wYWRkaW5nICogKDEgKyAkaSkpIC0gMXJlbSByZ2JhKCRhc2lkZS1iZywgMC4yKTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5jdXJyZW50ID4gYSB7XG5cdFx0XHRcdEBpbmNsdWRlIGNvbG9yZWQtYmctZWxlbWVudCgkbmF2aWdhdGlvbi1iZywgJHByaW1hcnktY29sb3IsICRsZXZlbC1jb2xvcik7XG5cdFx0XHRcdFxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3I7XG5cdFx0XHRcdFx0Ly9AaW5jbHVkZSBjb2xvcmVkLWJnLWVsZW1lbnQoJGhvdmVyLWNvbG9yLCAkaG92ZXItY29sb3IsICRsZXZlbC1jb2xvcik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBSUFBOztHQUVHO0Fhb0NIOzs7Ozs7Ozs7O0dBVUc7QWJQSDs7R0FFRztBQUtIOztHQUVHO0FBS0g7Ozs7OztHQU1HO0FhdkJIOzs7Ozs7Ozs7O0dBVUc7QVd4Q0g7Ozs7Ozs7O0dBUUc7QUFnT0MsT0FBTyxDQTFKUDtFQUNJLGdCQUFnQixFSHJFTyxPQUFPO0VHc0U5QixLQUFLLEVIN0RrQixPQUFPLEdHK0tqQztFQXNDRCxPQUFPLENBdEpILEVBQUUsRUFzSk4sT0FBTyxDQXRKQyxFQUFFLEVBc0pWLE9BQU8sQ0F0SkssRUFBRSxFQXNKZCxPQUFPLENBdEpTLEVBQUUsRUFzSmxCLE9BQU8sQ0F0SmEsRUFBRSxFQXNKdEIsT0FBTyxDQXRKaUIsRUFBRSxDQUFDO0lBQ25CLEtBQUssRUE3QlQsT0FBTSxHQThCTDtFQW9KTCxPQUFPLENBakpILENBQUMsQ0FBQztJQUNFLEtBQUssRUg1RmMsT0FBTyxHR2tHN0I7SUEwSUwsT0FBTyxDQWpKSCxDQUFDLEFBR0ksTUFBTSxFQThJZixPQUFPLENBakpILENBQUMsQUFJSSxNQUFNLENBQUM7TUFDSixLQUFL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LFFBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFFBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JC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SUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsUUFBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsUUFBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGVBQWUsQ0FBZjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGVBQWUsQ0FBZjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGVBQWUsQ0FBZjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGVBQWUsQ0FBZjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUdILE9BQU87RUFDUCxRQUFRLENBQUM7SUE3RFAsUUFBUSxFQUFFLFFBQVM7SUFZbkIsWUFBWSxFQUFHLFNBQWM7SUFDN0IsYUFBYSxFQUFHLFNBQWM7SUFnQlMsS0FBSyxFTjJJOUIsSUFBSSxHTTNHK0M7RUFJakUsU0FBUyxDQUFUO0lBL0NBLEtBQUssRUE3RkMsUUFBVSxHQTRJbUQ7RUFBbkUsU0FBUyxDQUFUO0lBL0NBLEtBQUssRUE3RkMsU0FBVSxHQTRJbUQ7RUFBbkUsU0FBUyxDQUFUO0lBL0NBLEtBQUssRUE3RkMsR0FBVSxHQTRJbUQ7RUFBbkUsU0FBUyxDQUFUO0lBL0NBLEtBQUssRUE3RkMsU0FBVSxHQTRJbUQ7RUFBbkUsU0FBUyxDQUFUO0lBL0NBLEtBQUssRUE3RkMsU0FBVSxHQTRJbUQ7RUFBbkUsU0FBUyxDQUFUO0lBL0NBLEtBQUssRUE3RkMsR0FBVSxHQTRJbUQ7RUFBbkUsU0FBUyxDQUFUO0lBL0NBLEtBQUssRUE3RkMsU0FBVSxHQTRJbUQ7RUFBbkUsU0FBUyxDQUFUO0lBL0NBLEtBQUssRUE3RkMsU0FBVSxHQTRJbUQ7RUFBbkUsU0FBUyxDQUFUO0lBL0NBLEtBQUssRUE3RkMsR0FBVSxHQTRJbUQ7RUFBbkUsVUFBVSxDQUFWO0lBL0NBLEtBQUssRUE3RkMsU0FBVSxHQTRJbUQ7RUFBbkUsVUFBVSxDQUFWO0lBL0NBLEtBQUssRUE3RkMsU0FBVSxHQTRJbUQ7RUFBbkUsVUFBVSxDQUFWO0lBL0NBLEtBQUssRUE3RkMsSUFBVSxHQTRJbUQ7RUFJbkUsZ0JBQWdCLENBQWhCO0lBM0JZLFdBQXdCLEVBckg5QixFQUFVLENBcUhnRSxVQUFVLEdBMkJ2QjtFQUFuRSxnQkFBZ0IsQ0FBaEI7SUEzQlksV0FBd0IsRUFySDlCLFFBQVUsQ0FxSGdFLFVBQVUsR0EyQnZCO0VBQW5FLGdCQUFnQixDQUFoQjtJQTNCWSxXQUF3QixFQXJIOUIsU0FBVSxDQXFIZ0UsVUFBVSxHQTJCdkI7RUFBbkUsZ0JBQWdCLENBQWhCO0lBM0JZLFdBQXdCLEVBckg5QixHQUFVLENBcUhnRSxVQUFVLEdBMkJ2QjtFQUFuRSxnQkFBZ0IsQ0FBaEI7SUEzQlksV0FBd0IsRUFySDlCLFNBQVUsQ0FxSGdFLFVBQVUsR0EyQnZCO0VBQW5FLGdCQUFnQixDQUFoQjtJQTNCWSxXQUF3QixFQXJIOUIsU0FBVSxDQXFIZ0UsVUFBVSxHQTJCdkI7RUFBbkUsZ0JBQWdCLENBQWhCO0lBM0JZLFdBQXdCLEVBckg5QixHQUFVLENBcUhnRSxVQUFVLEdBMkJ2QjtFQUFuRSxnQkFBZ0IsQ0FBaEI7SUEzQlksV0FBd0IsRUFySDlCLFNBQVUsQ0FxSGdFLFVBQVUsR0EyQnZCO0VBQW5FLGdCQUFnQixDQUFoQjtJQTNCWSxXQUF3QixFQXJIOUIsU0FBVSxDQXFIZ0UsVUFBVSxHQTJCdkI7RUFBbkUsZ0JBQWdCLENBQWhCO0lBM0JZLFdBQXdCLEVBckg5QixHQUFVLENBcUhnRSxVQUFVLEdBMkJ2QjtFQUFuRSxpQkFBaUIsQ0FBakI7SUEzQlksV0FBd0IsRUFySDlCLFNBQVUsQ0FxSGdFLFVBQVUsR0EyQnZCO0VBQW5FLGlCQUFpQixDQUFqQjtJQTNCWSxXQUF3QixFQXJIOUIsU0FBVSxDQXFIZ0UsVUFBVSxHQTJCdkI7RUFHckUsbUJBQW1CLENBQW5CO0lBQ0UsV0FBd0IsRUFBUyxDQUFFO0lBQ25DLFlBQTZCLEVBQVMsQ0FBRTtJQUN4QyxJQUFJLEVBQUUsSUFBSztJQUNYLEtBQUssRUFBRSxJQUFLO0lBQ1osS0FBSyxFTjJGUyxJQUFJLEdNMUZuQjtFQUVELE9BQU8sQUFBQSxnQkFBZ0I7RUFDdkIsUUFBUSxBQUFBLGdCQUFnQixDQUR4QjtJQTVDRSxXQUF3QixFQUFTLElBQUs7SUFDdEMsWUFBNkIsRUFBUyxJQUFLO0lBQzNDLEtBQUssRUFBRSxJQUFLLEdBMEN3RDtFQUV0RSxPQUFPLEFBQUEsa0JBQWtCO0VBQ3pCLFFBQVEsQUFBQSxrQkFBa0IsQ0FEMUI7SUFDRSxXQUF3QixFQUFTLENBQUU7SUFDbkMsWUFBNkIsRUFBUyxDQUFFO0lBQ3hDLEtBQUssRU5tRlMsSUFBSSxHTWxGbkI7RUFHRCxPQUFPLEFBQUEsZ0JBQWdCLEFBQUEsV0FBVztFQUNsQyxRQUFRLEFBQUEsZ0JBQWdCLEFBQUEsV0FBVyxDQURuQztJQUNFLEtBQUssRUFBRSxJQUFLLEdBQ2I7RUFHRCxPQUFPLEFBQUEsa0JBQWtCLEFBQUEsV0FBVztFQUNwQyxRQUFRLEFBQUEsa0JBQWtCLEFBQUEsV0FBVyxDQURyQztJQUNFLEtBQUssRU55RVMsSUFBSSxHTXhFbkI7RUFFRCxPQUFPLEFBQUEsa0JBQWtCLEFBQUEsU0FBUztFQUNsQyxRQUFRLEFBQUEsa0JBQWtCLEFBQUEsU0FBUyxDQURuQztJQUNFLEtBQUssRU5zRWMsS0FBSyxHTXJFekI7RUFFRixJQUFJLEFBQ0YsZ0JBQWdCLEdBQ2QsT0FBTztFQUZYLElBQUksQUFDRixnQkFBZ0IsR0FFZCxRQUFRLENBQUM7SUFwR1YsWUFBWSxFQUFFLENBQUU7SUFDaEIsYUFBYSxFQUFFLENBQUUsR0FtR2lEO0VBSHJFLElBQUksQUFDRixnQkFBZ0IsQ0FJaEIsSUFBSSxDQUFDO0lBQUMsV0FBVyxFQUFDLENBQUU7SUFBRSxZQUFZLEVBQUMsQ0FBRSxHQUFHO0VBTDFDLElBQUksQUFPRixrQkFBa0IsR0FDaEIsT0FBTztFQVJYLElBQUksQUFPRixrQkFBa0IsR0FFaEIsUUFBUSxDQUFDO0lBbkdWLFlBQVksRUFBRyxTQUFjO0lBQzdCLGFBQWEsRUFBRyxTQUFjO0lBZ0JTLEtBQUssRU4ySTlCLElBQUksR012RGxCO0VBb0NJLE9BQU8sQ0FBUDtJQXJKSixRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsRUFBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBOEh2RjtFQUNELE9BQU8sQ0FBUDtJQXhKSixRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsRUFBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBZ0l2RjtFQUxELE9BQU8sQ0FBUDtJQXJKSixRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsUUFBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBOEh2RjtFQUNELE9BQU8sQ0FBUDtJQXhKSixRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsUUFBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBZ0l2RjtFQUxELE9BQU8sQ0FBUDtJQXJKSixRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBOEh2RjtFQUNELE9BQU8sQ0FBUDtJQXhKSixRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBZ0l2RjtFQUxELE9BQU8sQ0FBUDtJQXJKSixRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBOEh2RjtFQUNELE9BQU8sQ0FBUDtJQXhKSixRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBZ0l2RjtFQUxELE9BQU8sQ0FBUDtJQXJKSixRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBOEh2RjtFQUNELE9BQU8sQ0FBUDtJQXhKSixRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBZ0l2RjtFQUxELE9BQU8sQ0FBUDtJQXJKSixRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBOEh2RjtFQUNELE9BQU8sQ0FBUDtJQXhKSixRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBZ0l2RjtFQUxELE9BQU8sQ0FBUDtJQXJKSixRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBOEh2RjtFQUNELE9BQU8sQ0FBUDtJQXhKSixRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBZ0l2RjtFQUxELE9BQU8sQ0FBUDtJQXJKSixRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBOEh2RjtFQUNELE9BQU8sQ0FBUDtJQXhKSixRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBZ0l2RjtFQUxELE9BQU8sQ0FBUDtJQXJKSixRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBOEh2RjtFQUNELE9BQU8sQ0FBUDtJQXhKSixRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBZ0l2RjtFQUxELE9BQU8sQ0FBUDtJQXJKSixRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBOEh2RjtFQUNELE9BQU8sQ0FBUDtJQXhKSixRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBZ0l2RjtFQUxELFFBQVEsQ0FBUjtJQXJKSixRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBOEh2RjtFQUNELFFBQVEsQ0FBUjtJQXhKSixRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBZ0l2RjtFQUxELFFBQVEsQ0FBUjtJQXJKSixRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBOEh2RjtFQUNELFFBQVEsQ0FBUjtJQXhKSixRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBZ0l2Rjs7QUFHTCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxJQUFJO0VBekcvQixhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEVBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEVBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFFBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFFBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFB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T0FBTTtJd0JqRzdFLEtBQUssRXhCaUdvQyxPQUFPLEdzSnVCaEQ7SUFqR0osU0FBUyxDQTBFUCxRQUFRLEFBZ0JOLFFBQVEsR0FBRyxDQUFDLEFBR1gsTUFBTSxDQUFDO01BQ1AsZ0JBQWdCLEVqSWxJVSxPQUFPLEdpSW9JakM7RUFoR0wsU0FBUyxDQTBFUCxRQUFRLENBUUw7SUFDRCxnQkFBZ0IsRUFKRixPQUFXLEdBS3pCO0VBcEZKLFNBQVMsQ0EwRVAsUUFBUSxDQVdQLENBQUMsQ0FBQztJQUNELFlBQVksRUFBRSxJQUFLO0lBQ25CLFdBQVcsRUFBRSxLQUFLLENBQUUsSUFBcUIsQ2pJNUdkLHFCQUFPLEdpSTZHbEM7RUF4RkosU0FBUyxDQTBFUCxRQUFRLEFBZ0JOLFFBQVEsR0FBRyxDQUFDLENBQUM7STlIbEhiLFVBQVUsRXhCa0c2RCxPQUFNO0l3QmpHN0UsS0FBSyxFeEJpR29DLE9BQU8sR3NKdUJoRDtJQWpHSixTQUFTLENBMEVQLFFBQVEsQUFnQk4sUUFBUSxHQUFHLENBQUMsQUFHWCxNQUFNLENBQUM7TUFDUCxnQkFBZ0IsRWpJbElVLE9BQU8sR2lJb0lqQztFQWhHTCxTQUFTLENBMEVQLFFBQVEsQ0FRTDtJQUNELGdCQUFnQixFQUpGLE9BQVcsR0FLekI7RUFwRkosU0FBUyxDQTBFUCxRQUFRLENBV1AsQ0FBQyxDQUFDO0lBQ0QsWUFBWSxFQUFFLElBQUs7SUFDbkIsV0FBVyxFQUFFLEtBQUssQ0FBRSxJQUFxQixDakk1R2QscUJBQU8sR2lJNkdsQztFQXhGSixTQUFTLENBMEVQLFFBQVEsQUFnQk4sUUFBUSxHQUFHLENBQUMsQ0FBQztJOUhsSGIsVUFBVSxFSGZpQixPQUFPO0lHZ0JsQyxLQUFLLEV4QmlHb0MsT0FBTyxHc0p1QmhEO0lBakdKLFNBQVMsQ0EwRVAsUUFBUSxBQWdCTixRQUFRLEdBQUcsQ0FBQyxBQUdYLE1BQU0sQ0FBQztNQUNQLGdCQUFnQixFaklsSVUsT0FBTyxHaUlvSWpDO0VBaEdMLFNBQVMsQ0EwRVAsUUFBUSxDQVFMO0lBQ0QsZ0JBQWdCLEVBSkYsT0FBVyxHQUt6QjtFQXBGSixTQUFTLENBMEVQLFFBQVEsQ0FXUCxDQUFDLENBQUM7SUFDRCxZQUFZLEVBQUUsSUFBSztJQUNuQixXQUFXLEVBQUUsS0FBSyxDQUFFLElBQXFCLENqSTVHZCxxQkFBTyxHaUk2R2xDO0VBeEZKLFNBQVMsQ0EwRVAsUUFBUSxBQWdCTixRQUFRLEdBQUcsQ0FBQyxDQUFDO0k5SGxIYixVQUFVLEVIZmlCLE9BQU87SUdnQmxDLEtBQUssRXhCaUdvQyxPQUFPLEdzSnVCaEQ7SUFqR0osU0FBUyxDQTBFUCxRQUFRLEFBZ0JOLFFBQVEsR0FBRyxDQUFDLEFBR1gsTUFBTSxDQUFDO01BQ1AsZ0JBQWdCLEVqSWxJVSxPQUFPLEdpSW9JakMiLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
