@charset "UTF-8";
/**
 * Kudos to http://madebymike.com.au/writing/accessible-contrast-with-less-and-sass/
 */
/**
 * on-circle takes a radius, position on a circle, number of possible positions and returns top and left properties
 *
 * $ordinalPosition {Number} the position of the item on the circle, counting from 1 (North) through N
 * $radius {Number}    radius of the circle in pixels
 * $positions {Number}   the number of positions on the circle
 * $originX {Number}   optional X origin point for the circle, defaults to the radius
 * $originY {Number}   optional Y origin point for the circle, defaults to the radius
 * $offsetX {Number}   optional X offset for the item, you might use 1/2 of the width of an item, default is 0
 * $offsetY {Number}   optional Y offset for the item, you might use 1/2 of the height of an item, default is 0
 */
/**
 * Is $color1 lighter than $color2?
 */
/**
 * Is $color1 darker than $color2?
 */
/**
 * Find best lightness adjust method
 *
 * Ideally we should only increase the difference between the colors. If $color1
 * is lighter than $color2 but the contrast is not accessible, then we should try to
 * make it lighter rather than darker.
 */
/**
 * on-circle takes a radius, position on a circle, number of possible positions and returns top and left properties
 *
 * $ordinalPosition {Number} the position of the item on the circle, counting from 1 (North) through N
 * $radius {Number}    radius of the circle in pixels
 * $positions {Number}   the number of positions on the circle
 * $originX {Number}   optional X origin point for the circle, defaults to the radius
 * $originY {Number}   optional Y origin point for the circle, defaults to the radius
 * $offsetX {Number}   optional X offset for the item, you might use 1/2 of the width of an item, default is 0
 * $offsetY {Number}   optional Y offset for the item, you might use 1/2 of the height of an item, default is 0
 */
@import url("//fonts.googleapis.com/css?family=Source+Sans+Pro:400,700,400italic,700italic|Droid+Sans:400,700");
/**
 * 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: #007DB9;
  color: white; }
  .top-bg h1, .top-bg h2, .top-bg h3, .top-bg h4, .top-bg h5, .top-bg h6 {
    color: white; }
  .top-bg a {
    color: black; }
    .top-bg a:hover, .top-bg a:focus {
      color: black; }
  .top-bg .subtle, .top-bg .productlist__product-wrap .price--original, .productlist__product-wrap .top-bg .price--original, .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 {
    color: white; }
  .top-bg .bordered, .top-bg .checkout--kco__custom-intro, .top-bg .checkout--kco .checkout__step, .checkout--kco .top-bg .checkout__step {
    border-color: rgba(255, 255, 255, 0.2); }
  .top-bg .bordered--hard {
    border-color: rgba(255, 255, 255, 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(255, 255, 255, 0.5); }
  .top-bg a.bordered--hard:hover, .top-bg a.bordered--hard:focus {
    border-color: rgba(255, 255, 255, 0.7); }
  .top-bg .neutral-link, .top-bg .neutral-link > a {
    color: white; }
    .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: white; }
  .top-bg .primary-color {
    color: black; }
  .top-bg .primary-color-big {
    color: #002c41; }
  .top-bg .primary-color-bg {
    background-color: #005c88;
    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: #007ebb; }
    .top-bg .primary-color-bg:hover, .top-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #007ebb; }
  .top-bg .secondary-color {
    color: white; }
  .top-bg .secondary-color-big {
    color: #e7e7e7; }
  .top-bg .secondary-color-bg, .top-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .top-bg .cart-button__quantity {
    background-color: #e7e7e7;
    color: #666666; }
    .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: #666666; }
      .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: #666666;
        background-color: white; }
    .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: #666666;
      background-color: white; }
  .top-bg .call-to-action-color {
    color: black; }
  .top-bg .call-to-action-color-big {
    color: #57140b; }
  .top-bg .call-to-action-color-bg, .top-bg .cart-button__quantity {
    background-color: #a52514;
    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: #d22f1a; }
    .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: #d22f1a; }
  .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: #005c88;
    color: #fff;
    font-weight: normal; }
  .top-bg button:hover, .top-bg button:focus, .top-bg .button:hover, .top-bg .button:focus {
    color: #454545;
    background-color: #f79d9e; }

.navigation-bg {
  background-color: #212121;
  color: #cccccc; }
  .navigation-bg h1, .navigation-bg h2, .navigation-bg h3, .navigation-bg h4, .navigation-bg h5, .navigation-bg h6 {
    color: #dedede; }
  .navigation-bg a {
    color: #0090d5; }
    .navigation-bg a:hover, .navigation-bg a:focus {
      color: #09afff; }
  .navigation-bg .subtle, .navigation-bg .productlist__product-wrap .price--original, .productlist__product-wrap .navigation-bg .price--original, .navigation-bg #kasse_one_form .subtaxes, #kasse_one_form .navigation-bg .subtaxes, .navigation-bg .product__main-images .bx-caption, .product__main-images .navigation-bg .bx-caption, .navigation-bg .product__meta-numbers, .navigation-bg .product .price--original, .product .navigation-bg .price--original, .navigation-bg .product .vat-info, .product .navigation-bg .vat-info, .navigation-bg .product__stockstatus, .navigation-bg .rating input:checked ~ label, .rating .navigation-bg input:checked ~ label, .navigation-bg .rating label:hover ~ label, .rating .navigation-bg label:hover ~ label {
    color: #cccccc; }
  .navigation-bg .bordered, .navigation-bg .checkout--kco__custom-intro, .navigation-bg .checkout--kco .checkout__step, .checkout--kco .navigation-bg .checkout__step {
    border-color: rgba(204, 204, 204, 0.2); }
  .navigation-bg .bordered--hard {
    border-color: rgba(204, 204, 204, 0.4); }
  .navigation-bg a.bordered:hover, .navigation-bg a.checkout--kco__custom-intro:hover, .navigation-bg .checkout--kco a.checkout__step:hover, .checkout--kco .navigation-bg a.checkout__step:hover, .navigation-bg a.bordered:focus, .navigation-bg a.checkout--kco__custom-intro:focus, .navigation-bg .checkout--kco a.checkout__step:focus, .checkout--kco .navigation-bg a.checkout__step:focus {
    border-color: rgba(204, 204, 204, 0.5); }
  .navigation-bg a.bordered--hard:hover, .navigation-bg a.bordered--hard:focus {
    border-color: rgba(204, 204, 204, 0.7); }
  .navigation-bg .neutral-link, .navigation-bg .neutral-link > a {
    color: #cccccc; }
    .navigation-bg .neutral-link:hover, .navigation-bg .neutral-link:focus, .navigation-bg .neutral-link:active, .navigation-bg .neutral-link > a:hover, .navigation-bg .neutral-link > a:focus, .navigation-bg .neutral-link > a:active {
      color: #dedede; }
  .navigation-bg .primary-color {
    color: #0090d5; }
  .navigation-bg .primary-color-big {
    color: #007bb6; }
  .navigation-bg .primary-color-bg {
    background-color: #007bb6;
    color: #fff; }
    .navigation-bg .primary-color-bg a {
      color: #fff; }
      .navigation-bg .primary-color-bg a:hover, .navigation-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #009de9; }
    .navigation-bg .primary-color-bg:hover, .navigation-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #009de9; }
  .navigation-bg .secondary-color {
    color: #e7e7e7; }
  .navigation-bg .secondary-color-big {
    color: #e7e7e7; }
  .navigation-bg .secondary-color-bg, .navigation-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .navigation-bg .cart-button__quantity {
    background-color: #e7e7e7;
    color: #666666; }
    .navigation-bg .secondary-color-bg a, .navigation-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .navigation-bg .cart-button__quantity a {
      color: #666666; }
      .navigation-bg .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-bg .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 {
        color: #666666;
        background-color: white; }
    .navigation-bg .secondary-color-bg:hover, .navigation-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .navigation-bg .cart-button__quantity:hover, .navigation-bg .secondary-color-bg:focus, .navigation-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .navigation-bg .cart-button__quantity:focus {
      color: #666666;
      background-color: white; }
  .navigation-bg .call-to-action-color {
    color: #e95d4a; }
  .navigation-bg .call-to-action-color-big {
    color: #DB311B; }
  .navigation-bg .call-to-action-color-bg, .navigation-bg .cart-button__quantity {
    background-color: #DB311B;
    color: #fff; }
    .navigation-bg .call-to-action-color-bg a, .navigation-bg .cart-button__quantity a {
      color: #fff; }
      .navigation-bg .call-to-action-color-bg a:hover, .navigation-bg .cart-button__quantity a:hover, .navigation-bg .call-to-action-color-bg a:focus, .navigation-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e85441; }
    .navigation-bg .call-to-action-color-bg:hover, .navigation-bg .cart-button__quantity:hover, .navigation-bg .call-to-action-color-bg:focus, .navigation-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e85441; }
  .navigation-bg button, .navigation-bg button.disabled, .navigation-bg button.disabled:hover, .navigation-bg button.disabled:focus, .navigation-bg button[disabled], .navigation-bg button[disabled]:hover, .navigation-bg button[disabled]:focus, .navigation-bg .button, .navigation-bg .button.disabled, .navigation-bg .button.disabled:hover, .navigation-bg .button.disabled:focus, .navigation-bg .button[disabled], .navigation-bg .button[disabled]:hover, .navigation-bg .button[disabled]:focus {
    background-color: #007bb6;
    color: #fff;
    font-weight: normal; }
  .navigation-bg button:hover, .navigation-bg button:focus, .navigation-bg .button:hover, .navigation-bg .button:focus {
    color: #242424;
    background-color: #f15657; }

.header-bg {
  background-color: #0074AC;
  color: #f2f2f2; }
  .header-bg h1, .header-bg h2, .header-bg h3, .header-bg h4, .header-bg h5, .header-bg h6 {
    color: white; }
  .header-bg a {
    color: #e4f6ff; }
    .header-bg a:hover, .header-bg a:focus {
      color: white; }
  .header-bg .subtle, .header-bg .productlist__product-wrap .price--original, .productlist__product-wrap .header-bg .price--original, .header-bg #kasse_one_form .subtaxes, #kasse_one_form .header-bg .subtaxes, .header-bg .product__main-images .bx-caption, .product__main-images .header-bg .bx-caption, .header-bg .product__meta-numbers, .header-bg .product .price--original, .product .header-bg .price--original, .header-bg .product .vat-info, .product .header-bg .vat-info, .header-bg .product__stockstatus, .header-bg .rating input:checked ~ label, .rating .header-bg input:checked ~ label, .header-bg .rating label:hover ~ label, .rating .header-bg label:hover ~ label {
    color: #f2f2f2; }
  .header-bg .bordered, .header-bg .checkout--kco__custom-intro, .header-bg .checkout--kco .checkout__step, .checkout--kco .header-bg .checkout__step {
    border-color: rgba(242, 242, 242, 0.2); }
  .header-bg .bordered--hard {
    border-color: rgba(242, 242, 242, 0.4); }
  .header-bg a.bordered:hover, .header-bg a.checkout--kco__custom-intro:hover, .header-bg .checkout--kco a.checkout__step:hover, .checkout--kco .header-bg a.checkout__step:hover, .header-bg a.bordered:focus, .header-bg a.checkout--kco__custom-intro:focus, .header-bg .checkout--kco a.checkout__step:focus, .checkout--kco .header-bg a.checkout__step:focus {
    border-color: rgba(242, 242, 242, 0.5); }
  .header-bg a.bordered--hard:hover, .header-bg a.bordered--hard:focus {
    border-color: rgba(242, 242, 242, 0.7); }
  .header-bg .neutral-link, .header-bg .neutral-link > a {
    color: #f2f2f2; }
    .header-bg .neutral-link:hover, .header-bg .neutral-link:focus, .header-bg .neutral-link:active, .header-bg .neutral-link > a:hover, .header-bg .neutral-link > a:focus, .header-bg .neutral-link > a:active {
      color: white; }
  .header-bg .primary-color {
    color: #e4f6ff; }
  .header-bg .primary-color-big {
    color: #74d2ff; }
  .header-bg .primary-color-bg {
    background-color: #009ae4;
    color: #292929; }
    .header-bg .primary-color-bg a {
      color: #292929; }
      .header-bg .primary-color-bg a:hover, .header-bg .primary-color-bg a:focus {
        color: #292929;
        background-color: #18b4ff; }
    .header-bg .primary-color-bg:hover, .header-bg .primary-color-bg:focus {
      color: #292929;
      background-color: #18b4ff; }
  .header-bg .secondary-color {
    color: #f6f6f6; }
  .header-bg .secondary-color-big {
    color: #e7e7e7; }
  .header-bg .secondary-color-bg, .header-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .header-bg .cart-button__quantity {
    background-color: #e7e7e7;
    color: #666666; }
    .header-bg .secondary-color-bg a, .header-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .header-bg .cart-button__quantity a {
      color: #666666; }
      .header-bg .secondary-color-bg a:hover, .header-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .header-bg .cart-button__quantity a:hover, .header-bg .secondary-color-bg a:focus, .header-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .header-bg .cart-button__quantity a:focus {
        color: #666666;
        background-color: white; }
    .header-bg .secondary-color-bg:hover, .header-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .header-bg .cart-button__quantity:hover, .header-bg .secondary-color-bg:focus, .header-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .header-bg .cart-button__quantity:focus {
      color: #666666;
      background-color: white; }
  .header-bg .call-to-action-color {
    color: #fdf0ee; }
  .header-bg .call-to-action-color-big {
    color: #f6bbb3; }
  .header-bg .call-to-action-color-bg, .header-bg .cart-button__quantity {
    background-color: #ea6958;
    color: #292929; }
    .header-bg .call-to-action-color-bg a, .header-bg .cart-button__quantity a {
      color: #292929; }
      .header-bg .call-to-action-color-bg a:hover, .header-bg .cart-button__quantity a:hover, .header-bg .call-to-action-color-bg a:focus, .header-bg .cart-button__quantity a:focus {
        color: #292929;
        background-color: #f09285; }
    .header-bg .call-to-action-color-bg:hover, .header-bg .cart-button__quantity:hover, .header-bg .call-to-action-color-bg:focus, .header-bg .cart-button__quantity:focus {
      color: #292929;
      background-color: #f09285; }
  .header-bg button, .header-bg button.disabled, .header-bg button.disabled:hover, .header-bg button.disabled:focus, .header-bg button[disabled], .header-bg button[disabled]:hover, .header-bg button[disabled]:focus, .header-bg .button, .header-bg .button.disabled, .header-bg .button.disabled:hover, .header-bg .button.disabled:focus, .header-bg .button[disabled], .header-bg .button[disabled]:hover, .header-bg .button[disabled]:focus {
    background-color: #009ae4;
    color: #292929;
    font-weight: normal; }
  .header-bg button:hover, .header-bg button:focus, .header-bg .button:hover, .header-bg .button:focus {
    color: #383838;
    background-color: #f58181; }

.breadcrumbs-bg {
  background-color: #171717;
  color: #cccccc; }
  .breadcrumbs-bg h1, .breadcrumbs-bg h2, .breadcrumbs-bg h3, .breadcrumbs-bg h4, .breadcrumbs-bg h5, .breadcrumbs-bg h6 {
    color: #dedede; }
  .breadcrumbs-bg a {
    color: #0089ca; }
    .breadcrumbs-bg a:hover, .breadcrumbs-bg a:focus {
      color: #00abfd; }
  .breadcrumbs-bg .subtle, .breadcrumbs-bg .productlist__product-wrap .price--original, .productlist__product-wrap .breadcrumbs-bg .price--original, .breadcrumbs-bg #kasse_one_form .subtaxes, #kasse_one_form .breadcrumbs-bg .subtaxes, .breadcrumbs-bg .product__main-images .bx-caption, .product__main-images .breadcrumbs-bg .bx-caption, .breadcrumbs-bg .product__meta-numbers, .breadcrumbs-bg .product .price--original, .product .breadcrumbs-bg .price--original, .breadcrumbs-bg .product .vat-info, .product .breadcrumbs-bg .vat-info, .breadcrumbs-bg .product__stockstatus, .breadcrumbs-bg .rating input:checked ~ label, .rating .breadcrumbs-bg input:checked ~ label, .breadcrumbs-bg .rating label:hover ~ label, .rating .breadcrumbs-bg label:hover ~ label {
    color: #cccccc; }
  .breadcrumbs-bg .bordered, .breadcrumbs-bg .checkout--kco__custom-intro, .breadcrumbs-bg .checkout--kco .checkout__step, .checkout--kco .breadcrumbs-bg .checkout__step {
    border-color: rgba(204, 204, 204, 0.2); }
  .breadcrumbs-bg .bordered--hard {
    border-color: rgba(204, 204, 204, 0.4); }
  .breadcrumbs-bg a.bordered:hover, .breadcrumbs-bg a.checkout--kco__custom-intro:hover, .breadcrumbs-bg .checkout--kco a.checkout__step:hover, .checkout--kco .breadcrumbs-bg a.checkout__step:hover, .breadcrumbs-bg a.bordered:focus, .breadcrumbs-bg a.checkout--kco__custom-intro:focus, .breadcrumbs-bg .checkout--kco a.checkout__step:focus, .checkout--kco .breadcrumbs-bg a.checkout__step:focus {
    border-color: rgba(204, 204, 204, 0.5); }
  .breadcrumbs-bg a.bordered--hard:hover, .breadcrumbs-bg a.bordered--hard:focus {
    border-color: rgba(204, 204, 204, 0.7); }
  .breadcrumbs-bg .neutral-link, .breadcrumbs-bg .neutral-link > a {
    color: #cccccc; }
    .breadcrumbs-bg .neutral-link:hover, .breadcrumbs-bg .neutral-link:focus, .breadcrumbs-bg .neutral-link:active, .breadcrumbs-bg .neutral-link > a:hover, .breadcrumbs-bg .neutral-link > a:focus, .breadcrumbs-bg .neutral-link > a:active {
      color: #dedede; }
  .breadcrumbs-bg .primary-color {
    color: #0089ca; }
  .breadcrumbs-bg .primary-color-big {
    color: #007bb6; }
  .breadcrumbs-bg .primary-color-bg {
    background-color: #007bb6;
    color: #fff; }
    .breadcrumbs-bg .primary-color-bg a {
      color: #fff; }
      .breadcrumbs-bg .primary-color-bg a:hover, .breadcrumbs-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #009de9; }
    .breadcrumbs-bg .primary-color-bg:hover, .breadcrumbs-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #009de9; }
  .breadcrumbs-bg .secondary-color {
    color: #e7e7e7; }
  .breadcrumbs-bg .secondary-color-big {
    color: #e7e7e7; }
  .breadcrumbs-bg .secondary-color-bg, .breadcrumbs-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .breadcrumbs-bg .cart-button__quantity {
    background-color: #e7e7e7;
    color: #666666; }
    .breadcrumbs-bg .secondary-color-bg a, .breadcrumbs-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .breadcrumbs-bg .cart-button__quantity a {
      color: #666666; }
      .breadcrumbs-bg .secondary-color-bg a:hover, .breadcrumbs-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .breadcrumbs-bg .cart-button__quantity a:hover, .breadcrumbs-bg .secondary-color-bg a:focus, .breadcrumbs-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .breadcrumbs-bg .cart-button__quantity a:focus {
        color: #666666;
        background-color: white; }
    .breadcrumbs-bg .secondary-color-bg:hover, .breadcrumbs-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .breadcrumbs-bg .cart-button__quantity:hover, .breadcrumbs-bg .secondary-color-bg:focus, .breadcrumbs-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .breadcrumbs-bg .cart-button__quantity:focus {
      color: #666666;
      background-color: white; }
  .breadcrumbs-bg .call-to-action-color {
    color: #e64834; }
  .breadcrumbs-bg .call-to-action-color-big {
    color: #DB311B; }
  .breadcrumbs-bg .call-to-action-color-bg, .breadcrumbs-bg .cart-button__quantity {
    background-color: #DB311B;
    color: #fff; }
    .breadcrumbs-bg .call-to-action-color-bg a, .breadcrumbs-bg .cart-button__quantity a {
      color: #fff; }
      .breadcrumbs-bg .call-to-action-color-bg a:hover, .breadcrumbs-bg .cart-button__quantity a:hover, .breadcrumbs-bg .call-to-action-color-bg a:focus, .breadcrumbs-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e85441; }
    .breadcrumbs-bg .call-to-action-color-bg:hover, .breadcrumbs-bg .cart-button__quantity:hover, .breadcrumbs-bg .call-to-action-color-bg:focus, .breadcrumbs-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e85441; }
  .breadcrumbs-bg button, .breadcrumbs-bg button.disabled, .breadcrumbs-bg button.disabled:hover, .breadcrumbs-bg button.disabled:focus, .breadcrumbs-bg button[disabled], .breadcrumbs-bg button[disabled]:hover, .breadcrumbs-bg button[disabled]:focus, .breadcrumbs-bg .button, .breadcrumbs-bg .button.disabled, .breadcrumbs-bg .button.disabled:hover, .breadcrumbs-bg .button.disabled:focus, .breadcrumbs-bg .button[disabled], .breadcrumbs-bg .button[disabled]:hover, .breadcrumbs-bg .button[disabled]:focus {
    background-color: #007bb6;
    color: #fff;
    font-weight: normal; }
  .breadcrumbs-bg button:hover, .breadcrumbs-bg button:focus, .breadcrumbs-bg .button:hover, .breadcrumbs-bg .button:focus {
    color: #242424;
    background-color: #f15657; }

.content-bg {
  background-color: #FFFFFF;
  color: #333333; }
  .content-bg h1, .content-bg h2, .content-bg h3, .content-bg h4, .content-bg h5, .content-bg h6 {
    color: #212121; }
  .content-bg a {
    color: #007bb6; }
    .content-bg a:hover, .content-bg a:focus {
      color: #005983; }
  .content-bg .subtle, .content-bg .productlist__product-wrap .price--original, .productlist__product-wrap .content-bg .price--original, .content-bg #kasse_one_form .subtaxes, #kasse_one_form .content-bg .subtaxes, .content-bg .product__main-images .bx-caption, .product__main-images .content-bg .bx-caption, .content-bg .product__meta-numbers, .content-bg .product .price--original, .product .content-bg .price--original, .content-bg .product .vat-info, .product .content-bg .vat-info, .content-bg .product__stockstatus, .content-bg .rating input:checked ~ label, .rating .content-bg input:checked ~ label, .content-bg .rating label:hover ~ label, .rating .content-bg label:hover ~ label {
    color: #333333; }
  .content-bg .bordered, .content-bg .checkout--kco__custom-intro, .content-bg .checkout--kco .checkout__step, .checkout--kco .content-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .content-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .content-bg a.bordered:hover, .content-bg a.checkout--kco__custom-intro:hover, .content-bg .checkout--kco a.checkout__step:hover, .checkout--kco .content-bg a.checkout__step:hover, .content-bg a.bordered:focus, .content-bg a.checkout--kco__custom-intro:focus, .content-bg .checkout--kco a.checkout__step:focus, .checkout--kco .content-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .content-bg a.bordered--hard:hover, .content-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .content-bg .neutral-link, .content-bg .neutral-link > a {
    color: #333333; }
    .content-bg .neutral-link:hover, .content-bg .neutral-link:focus, .content-bg .neutral-link:active, .content-bg .neutral-link > a:hover, .content-bg .neutral-link > a:focus, .content-bg .neutral-link > a:active {
      color: #212121; }
  .content-bg .primary-color {
    color: #007bb6; }
  .content-bg .primary-color-big {
    color: #007bb6; }
  .content-bg .primary-color-bg {
    background-color: #007bb6;
    color: #fff; }
    .content-bg .primary-color-bg a {
      color: #fff; }
      .content-bg .primary-color-bg a:hover, .content-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #009de9; }
    .content-bg .primary-color-bg:hover, .content-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #009de9; }
  .content-bg .secondary-color {
    color: #747474; }
  .content-bg .secondary-color-big {
    color: #909090; }
  .content-bg .secondary-color-bg, .content-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .content-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .content-bg .secondary-color-bg a, .content-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .content-bg .cart-button__quantity a {
      color: #525252; }
      .content-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, .content-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 {
        color: #525252;
        background-color: #e2e2e2; }
    .content-bg .secondary-color-bg:hover, .content-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .content-bg .cart-button__quantity:hover, .content-bg .secondary-color-bg:focus, .content-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .content-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .content-bg .call-to-action-color {
    color: #DB311B; }
  .content-bg .call-to-action-color-big {
    color: #DB311B; }
  .content-bg .call-to-action-color-bg, .content-bg .cart-button__quantity {
    background-color: #DB311B;
    color: #fff; }
    .content-bg .call-to-action-color-bg a, .content-bg .cart-button__quantity a {
      color: #fff; }
      .content-bg .call-to-action-color-bg a:hover, .content-bg .cart-button__quantity a:hover, .content-bg .call-to-action-color-bg a:focus, .content-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e85441; }
    .content-bg .call-to-action-color-bg:hover, .content-bg .cart-button__quantity:hover, .content-bg .call-to-action-color-bg:focus, .content-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e85441; }
  .content-bg button, .content-bg button.disabled, .content-bg button.disabled:hover, .content-bg button.disabled:focus, .content-bg button[disabled], .content-bg button[disabled]:hover, .content-bg button[disabled]:focus, .content-bg .button, .content-bg .button.disabled, .content-bg .button.disabled:hover, .content-bg .button.disabled:focus, .content-bg .button[disabled], .content-bg .button[disabled]:hover, .content-bg .button[disabled]:focus {
    background-color: #007bb6;
    color: #fff;
    font-weight: normal; }
  .content-bg button:hover, .content-bg button:focus, .content-bg .button:hover, .content-bg .button:focus {
    color: #242424;
    background-color: #f15657; }

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

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

.product .price {
  color: #007bb6; }

.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: #007bb6;
  color: #fff; }

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

.footer-bg, .end-bg {
  background-color: #333333;
  color: #cccccc; }
  .footer-bg h1, .end-bg h1, .footer-bg h2, .end-bg h2, .footer-bg h3, .end-bg h3, .footer-bg h4, .end-bg h4, .footer-bg h5, .end-bg h5, .footer-bg h6, .end-bg h6 {
    color: #dedede; }
  .footer-bg a, .end-bg a {
    color: #00a4f3; }
    .footer-bg a:hover, .end-bg a:hover, .footer-bg a:focus, .end-bg a:focus {
      color: #27b9ff; }
  .footer-bg .subtle, .end-bg .subtle, .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, .footer-bg #kasse_one_form .subtaxes, #kasse_one_form .footer-bg .subtaxes, .end-bg #kasse_one_form .subtaxes, #kasse_one_form .end-bg .subtaxes, .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, .footer-bg .product__meta-numbers, .end-bg .product__meta-numbers, .footer-bg .product .price--original, .product .footer-bg .price--original, .end-bg .product .price--original, .product .end-bg .price--original, .footer-bg .product .vat-info, .product .footer-bg .vat-info, .end-bg .product .vat-info, .product .end-bg .vat-info, .footer-bg .product__stockstatus, .end-bg .product__stockstatus, .footer-bg .rating input:checked ~ label, .rating .footer-bg input:checked ~ label, .end-bg .rating input:checked ~ label, .rating .end-bg input:checked ~ 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 {
    color: #cccccc; }
  .footer-bg .bordered, .end-bg .bordered, .footer-bg .checkout--kco__custom-intro, .end-bg .checkout--kco__custom-intro, .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(204, 204, 204, 0.2); }
  .footer-bg .bordered--hard, .end-bg .bordered--hard {
    border-color: rgba(204, 204, 204, 0.4); }
  .footer-bg a.bordered:hover, .end-bg a.bordered:hover, .footer-bg a.checkout--kco__custom-intro:hover, .end-bg a.checkout--kco__custom-intro: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, .footer-bg a.bordered:focus, .end-bg a.bordered:focus, .footer-bg a.checkout--kco__custom-intro:focus, .end-bg a.checkout--kco__custom-intro: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(204, 204, 204, 0.5); }
  .footer-bg a.bordered--hard:hover, .end-bg a.bordered--hard:hover, .footer-bg a.bordered--hard:focus, .end-bg a.bordered--hard:focus {
    border-color: rgba(204, 204, 204, 0.7); }
  .footer-bg .neutral-link, .end-bg .neutral-link, .footer-bg .neutral-link > a, .end-bg .neutral-link > a {
    color: #cccccc; }
    .footer-bg .neutral-link:hover, .end-bg .neutral-link:hover, .footer-bg .neutral-link:focus, .end-bg .neutral-link:focus, .footer-bg .neutral-link:active, .end-bg .neutral-link:active, .footer-bg .neutral-link > a:hover, .end-bg .neutral-link > a:hover, .footer-bg .neutral-link > a:focus, .end-bg .neutral-link > a:focus, .footer-bg .neutral-link > a:active, .end-bg .neutral-link > a:active {
      color: #dedede; }
  .footer-bg .primary-color, .end-bg .primary-color {
    color: #00a4f3; }
  .footer-bg .primary-color-big, .end-bg .primary-color-big {
    color: #0085c5; }
  .footer-bg .primary-color-bg, .end-bg .primary-color-bg {
    background-color: #007bb6;
    color: #fff; }
    .footer-bg .primary-color-bg a, .end-bg .primary-color-bg a {
      color: #fff; }
      .footer-bg .primary-color-bg a:hover, .end-bg .primary-color-bg a:hover, .footer-bg .primary-color-bg a:focus, .end-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #009de9; }
    .footer-bg .primary-color-bg:hover, .end-bg .primary-color-bg:hover, .footer-bg .primary-color-bg:focus, .end-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #009de9; }
  .footer-bg .secondary-color, .end-bg .secondary-color {
    color: #e7e7e7; }
  .footer-bg .secondary-color-big, .end-bg .secondary-color-big {
    color: #e7e7e7; }
  .footer-bg .secondary-color-bg, .end-bg .secondary-color-bg, .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: #e7e7e7;
    color: #666666; }
    .footer-bg .secondary-color-bg a, .end-bg .secondary-color-bg 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: #666666; }
      .footer-bg .secondary-color-bg a:hover, .end-bg .secondary-color-bg 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, .footer-bg .secondary-color-bg a:focus, .end-bg .secondary-color-bg 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: #666666;
        background-color: white; }
    .footer-bg .secondary-color-bg:hover, .end-bg .secondary-color-bg: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, .footer-bg .secondary-color-bg:focus, .end-bg .secondary-color-bg: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: #666666;
      background-color: white; }
  .footer-bg .call-to-action-color, .end-bg .call-to-action-color {
    color: #ed796a; }
  .footer-bg .call-to-action-color-big, .end-bg .call-to-action-color-big {
    color: #e5442f; }
  .footer-bg .call-to-action-color-bg, .end-bg .call-to-action-color-bg, .footer-bg .cart-button__quantity, .end-bg .cart-button__quantity {
    background-color: #DB311B;
    color: #fff; }
    .footer-bg .call-to-action-color-bg a, .end-bg .call-to-action-color-bg a, .footer-bg .cart-button__quantity a, .end-bg .cart-button__quantity a {
      color: #fff; }
      .footer-bg .call-to-action-color-bg a:hover, .end-bg .call-to-action-color-bg a:hover, .footer-bg .cart-button__quantity a:hover, .end-bg .cart-button__quantity a:hover, .footer-bg .call-to-action-color-bg a:focus, .end-bg .call-to-action-color-bg a:focus, .footer-bg .cart-button__quantity a:focus, .end-bg .cart-button__quantity a:focus {
        color: #fff;
        background-color: #e85441; }
    .footer-bg .call-to-action-color-bg:hover, .end-bg .call-to-action-color-bg:hover, .footer-bg .cart-button__quantity:hover, .end-bg .cart-button__quantity:hover, .footer-bg .call-to-action-color-bg:focus, .end-bg .call-to-action-color-bg:focus, .footer-bg .cart-button__quantity:focus, .end-bg .cart-button__quantity:focus {
      color: #fff;
      background-color: #e85441; }
  .footer-bg button, .end-bg button, .footer-bg button.disabled, .end-bg button.disabled, .footer-bg button.disabled:hover, .end-bg button.disabled:hover, .footer-bg button.disabled:focus, .end-bg button.disabled:focus, .footer-bg button[disabled], .end-bg button[disabled], .footer-bg button[disabled]:hover, .end-bg button[disabled]:hover, .footer-bg button[disabled]:focus, .end-bg button[disabled]:focus, .footer-bg .button, .end-bg .button, .footer-bg .button.disabled, .end-bg .button.disabled, .footer-bg .button.disabled:hover, .end-bg .button.disabled:hover, .footer-bg .button.disabled:focus, .end-bg .button.disabled:focus, .footer-bg .button[disabled], .end-bg .button[disabled], .footer-bg .button[disabled]:hover, .end-bg .button[disabled]:hover, .footer-bg .button[disabled]:focus, .end-bg .button[disabled]:focus {
    background-color: #007bb6;
    color: #fff;
    font-weight: normal; }
  .footer-bg button:hover, .end-bg button:hover, .footer-bg button:focus, .end-bg button:focus, .footer-bg .button:hover, .end-bg .button:hover, .footer-bg .button:focus, .end-bg .button:focus {
    color: #242424;
    background-color: #f15657; }

/*! 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:  'Source Sans Pro', 'Helvetica Neue', 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.625rem 1.25rem; }

@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.625rem; }
    .small-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 0.625rem;
      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: 0.83333rem; }
    .small-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.41667rem;
      padding-right: 0.41667rem; }
    .small-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 0.83333rem;
      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: 0.9375rem; }
    .small-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.3125rem;
      padding-right: 0.625rem; }
    .small-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 0.625rem;
      padding-right: 0.3125rem; }
    .small-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 0.9375rem;
      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: 1rem; }
    .small-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.25rem;
      padding-right: 0.75rem; }
    .small-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.5rem;
      padding-right: 0.5rem; }
    .small-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 0.75rem;
      padding-right: 0.25rem; }
    .small-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1rem;
      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.625rem; }
    .medium-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 0.625rem;
      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: 0.83333rem; }
    .medium-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.41667rem;
      padding-right: 0.41667rem; }
    .medium-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 0.83333rem;
      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: 0.9375rem; }
    .medium-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.3125rem;
      padding-right: 0.625rem; }
    .medium-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 0.625rem;
      padding-right: 0.3125rem; }
    .medium-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 0.9375rem;
      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: 1rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.25rem;
      padding-right: 0.75rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.5rem;
      padding-right: 0.5rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 0.75rem;
      padding-right: 0.25rem; }
    .medium-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1rem;
      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.625rem; }
    .large-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 0.625rem;
      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: 0.83333rem; }
    .large-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.41667rem;
      padding-right: 0.41667rem; }
    .large-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 0.83333rem;
      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: 0.9375rem; }
    .large-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.3125rem;
      padding-right: 0.625rem; }
    .large-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 0.625rem;
      padding-right: 0.3125rem; }
    .large-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 0.9375rem;
      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: 1rem; }
    .large-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.25rem;
      padding-right: 0.75rem; }
    .large-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.5rem;
      padding-right: 0.5rem; }
    .large-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 0.75rem;
      padding-right: 0.25rem; }
    .large-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1rem;
      padding-right: 0rem; } }

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

button, .button {
  border-style: solid;
  border-width: 0;
  cursor: pointer;
  font-family:  'Source Sans Pro', 'Helvetica Neue', 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: 0.75rem;
  padding-right: 1.5rem;
  padding-bottom: 0.8125rem;
  padding-left: 1.5rem;
  font-size: 1rem;
  background-color: #007bb6;
  border-color: #006292;
  color: #FFFFFF;
  transition: background-color 300ms ease-out; }
  button:hover, button:focus, .button:hover, .button:focus {
    background-color: #006292; }
  button:hover, button:focus, .button:hover, .button:focus {
    color: #FFFFFF; }
  button.secondary, .button.secondary {
    background-color: #e7e7e7;
    border-color: #b9b9b9;
    color: #333333; }
    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
      background-color: #b9b9b9; }
    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
      color: #333333; }
  button.success, .button.success {
    background-color: #5cb85c;
    border-color: #439a43;
    color: #FFFFFF; }
    button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
      background-color: #439a43; }
    button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
      color: #FFFFFF; }
  button.alert, .button.alert {
    background-color: #e03114;
    border-color: #b32710;
    color: #FFFFFF; }
    button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
      background-color: #b32710; }
    button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
      color: #FFFFFF; }
  button.warning, .button.warning {
    background-color: #ffa200;
    border-color: #cc8200;
    color: #FFFFFF; }
    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
      background-color: #cc8200; }
    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
      color: #FFFFFF; }
  button.info, .button.info {
    background-color: #5bc0de;
    border-color: #2aaad0;
    color: #FFFFFF; }
    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
      background-color: #2aaad0; }
    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
      color: #FFFFFF; }
  button.large, .button.large {
    padding-top: 0.875rem;
    padding-right: 1.75rem;
    padding-bottom: 0.9375rem;
    padding-left: 1.75rem;
    font-size: 1.25rem; }
  button.small, .button.small {
    padding-top: 0.625rem;
    padding-right: 1.25rem;
    padding-bottom: 0.6875rem;
    padding-left: 1.25rem;
    font-size: 0.8125rem; }
  button.tiny, .button.tiny {
    padding-top: 0.375rem;
    padding-right: 0.75rem;
    padding-bottom: 0.4375rem;
    padding-left: 0.75rem;
    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: 5px; }
  button.round, .button.round {
    border-radius: 1000px; }
  button.disabled, button[disabled], .button.disabled, .button[disabled] {
    background-color: #007bb6;
    border-color: #006292;
    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: #006292; }
    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: #007bb6; }
    button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary {
      background-color: #e7e7e7;
      border-color: #b9b9b9;
      color: #333333;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #b9b9b9; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        color: #333333; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #e7e7e7; }
    button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success {
      background-color: #5cb85c;
      border-color: #439a43;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #439a43; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        color: #FFFFFF; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #5cb85c; }
    button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert {
      background-color: #e03114;
      border-color: #b32710;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #b32710; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        color: #FFFFFF; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #e03114; }
    button.disabled.warning, button[disabled].warning, .button.disabled.warning, .button[disabled].warning {
      background-color: #ffa200;
      border-color: #cc8200;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #cc8200; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        color: #FFFFFF; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #ffa200; }
    button.disabled.info, button[disabled].info, .button.disabled.info, .button[disabled].info {
      background-color: #5bc0de;
      border-color: #2aaad0;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        background-color: #2aaad0; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        color: #FFFFFF; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        background-color: #5bc0de; }

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

@media only screen and (min-width: 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: 5px;
  -webkit-border-top-left-radius: 5px;
  border-bottom-left-radius: 5px;
  border-top-left-radius: 5px; }

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

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

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

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

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

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

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:  'Source Sans Pro', 'Helvetica Neue', 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: 5px; }
  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: 70rem; }
  .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.625rem;
    margin-right: -0.625rem;
    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.625rem;
  padding-right: 0.625rem;
  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.625rem;
    padding-right: 0.625rem;
    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.625rem;
    padding-right: 0.625rem;
    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.625rem;
    padding-right: 0.625rem;
    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.625rem;
    padding-right: 0.625rem;
    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.625rem;
    padding-right: 0.625rem;
    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.625rem;
    padding-right: 0.625rem;
    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:  'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
      font-size: 1rem; }
      .tabs dd > a:hover, .tabs .tab-title > a:hover {
        background-color: #bfbfbf; }
      .tabs dd > a:focus, .tabs .tab-title > a:focus {
        outline: none; }
    .tabs dd.active a, .tabs .tab-title.active a {
      background-color: #000;
      color: white; }
  .tabs.radius dd:first-child a, .tabs.radius .tab:first-child a {
    -webkit-border-bottom-left-radius: 5px;
    -webkit-border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
    border-top-left-radius: 5px; }
  .tabs.radius dd:last-child a, .tabs.radius .tab:last-child a {
    -webkit-border-bottom-right-radius: 5px;
    -webkit-border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
    border-top-right-radius: 5px; }
  .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(0, 123, 182, 0.5); }
  .th.radius {
    border-radius: 5px; }

.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: #007bb6;
  text-decoration: none;
  line-height: inherit; }
  a:hover, a:focus {
    color: #006a9d; }
  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:  'Droid Sans', sans-serif;
  font-weight: normal;
  font-style: normal;
  color: #212121;
  text-rendering: optimizeLegibility;
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  line-height: 1.4; }
  h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
    font-size: 80%;
    color: #6f6f6f;
    line-height: 0; }

h1 {
  font-size: 1.75rem; }

h2 {
  font-size: 1.4375rem; }

h3 {
  font-size: 1.375rem; }

h4 {
  font-size: 1.125rem; }

h5 {
  font-size: 1rem; }

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: #f8f8f8;
  border-width: 1px;
  border-style: solid;
  border-color: #dfdfdf;
  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.1875rem; }
  h2 {
    font-size: 1.75rem; }
  h3 {
    font-size: 1.5625rem; }
  h4 {
    font-size: 1.25rem; }
  h5 {
    font-size: 1rem; }
  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 {
  list-style: none;
  margin: 0; }

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

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

.pagination__item {
  margin-right: 0.5rem;
  background-color: rgba(255, 255, 255, 0);
  transition: all 0.3s ease;
  border-radius: 5px; }
  .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: #EF3A3B;
    border-color: #EF3A3B; }
    .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: #171717; }

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

.pagination__item--current {
  line-height: 2.75rem;
  background-color: #007bb6;
  border-color: #007bb6;
  color: #fff;
  padding: 0 1rem;
  border-radius: 5px; }
  .pagination__item--current:hover, .pagination__item--current:focus {
    background-color: #007bb6;
    border-color: #007bb6;
    color: #fff; }

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

/**
 * IcoMoon generated icons
 * See the theme assets/fonts folder for font files
 * and json file to use on icomoon to develop this
 * font further
 */
@font-face {
  font-family: 'zenith';
  src: url("/assets2/fonts/zenith/zenith.eot?sxntua");
  src: url("/assets2/fonts/zenith/zenith.eot?sxntua#iefix") format("embedded-opentype"), url("/assets2/fonts/zenith/zenith.ttf?sxntua") format("truetype"), url("/assets2/fonts/zenith/zenith.woff?sxntua") format("woff"), url("/assets2/fonts/zenith/zenith.svg?sxntua#zenith") 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: 'zenith' !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-xxlarge:before {
  font-size: 3em;
  vertical-align: -15%; }

.icon-local-shipping:before {
  content: ""; }

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

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

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

.icon-search: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-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-shopping-bag: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: ""; }

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

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

@media only screen and (max-width: 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; } }

#utils-nav {
  font-family:  'Source Sans Pro', 'Helvetica Neue', 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: #EF3A3B;
    color: #300404; }

@media only screen and (max-width: 39.9375em) {
  #user-nav .icon {
    font-size: 1.375rem;
    line-height: 1.875rem;
    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: 1.875rem; }
  .piped-nav li {
    margin: 0;
    line-height: 1.875rem;
    height: 1.875rem; }
  .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: 2.4rem;
    top: 7.15rem; }
    #nav:not(:target) {
      z-index: -1;
      height: 0;
      padding-top: 0; }
    #nav:target {
      background: #333; }
      #nav:target .main-nav__close-btn {
        display: block; }
    #nav .block {
      position: relative;
      z-index: 2;
      padding: 0; }
    #nav .columns {
      padding: 0; }
    #nav ul:before, #nav ul:after {
      content: "";
      display: table; }
    #nav ul:after {
      clear: both; }
  .js-ready #nav {
    height: 100%;
    width: 70%;
    right: -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: 2.4rem; }
    .js-ready #nav .block {
      background: transparent; }
  .js-ready #inner-wrap {
    left: 0; }
  .js-nav #inner-wrap {
    right: 70%; }
  .csstransforms3d.csstransitions.js-ready #nav {
    right: 0;
    -ms-transform: translate(100%, 0);
    -webkit-transform: translate3d(100%, 0, 0);
    -moz-transform: translate3d(100%, 0, 0);
    -ms-transform: translate3d(100%, 0, 0);
    -o-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden; }
  .csstransforms3d.csstransitions.js-ready #inner-wrap {
    right: 0 !important;
    -webkit-transition: all 500ms ease;
    -moz-transition: all 500ms ease;
    transition: all 500ms ease; }
  .csstransforms3d.csstransitions.js-nav #inner-wrap {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -ms-transform: translate(-70%, 0) scale3d(1, 1, 1);
    -webkit-transform: translate3d(-70%, 0, 0) scale3d(1, 1, 1);
    -moz-transform: translate3d(-70%, 0, 0) scale3d(1, 1, 1);
    -ms-transform: translate3d(-70%, 0, 0) scale3d(1, 1, 1);
    -o-transform: translate3d(-70%, 0, 0) scale3d(1, 1, 1);
    transform: translate3d(-70%, 0, 0) scale3d(1, 1, 1); }
  .csstransforms3d.csstransitions.js-ready #nav .block {
    opacity: 0.7;
    -webkit-transition: opacity 300ms 100ms ease, -webkit-transform 500ms ease, visibility 500ms ease;
    -moz-transition: opacity 300ms 100ms ease, -moz-transform 500ms ease, visibility 500ms ease;
    -o-transition: opacity 300ms 100ms ease, -o-transform 500ms ease, visibility 500ms ease;
    transition: opacity 300ms 100ms ease, transform 500ms ease, visibility 500ms ease;
    -ms-transform: translate(-70%, 0) scale3d(0.9, 0.9, 0.9);
    -webkit-transform: translate3d(-70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -moz-transform: translate3d(-70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -ms-transform: translate3d(-70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -o-transform: translate3d(-70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    transform: translate3d(-70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -webkit-transform-origin: 50% 0%;
    -moz-transform-origin: 50% 0%;
    -ms-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%; }
  .csstransforms3d.csstransitions.js-nav #nav .block {
    opacity: 1;
    -ms-transform: translate(0, 0);
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    -o-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  .csstransforms3d.csstransitions #nav {
    visibility: hidden;
    -webkit-transition: visibility 500ms ease;
    -moz-transition: visibility 500ms ease;
    transition: visibility 500ms ease; }
  .csstransforms3d.csstransitions.js-nav #nav {
    visibility: visible; } }

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

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

#logo {
  height: 3.75rem;
  white-space: nowrap; }
  #logo a {
    text-decoration: none; }
  #logo h1 {
    line-height: 3.75rem;
    margin: 0;
    font-size: 2.1875rem; }
  #logo img {
    max-height: 3.75rem;
    max-width: 100%;
    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: 5px;
  -webkit-border-top-left-radius: 5px;
  border-bottom-left-radius: 5px;
  border-top-left-radius: 5px; }

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

#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: 1rem 0; }
  #extra-nav .cart-and-checkout {
    padding-top: 1.34375rem; }
  #extra-nav .piped-nav li:first-child a {
    padding-left: 0; }
  #logo {
    height: 5rem; }
    #logo h1 {
      line-height: 5rem; }
    #logo img {
      max-height: 5rem; }
  #contact-nav {
    height: 1.34375rem;
    line-height: 1.34375rem; } }

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

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

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

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

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

.nav-compact a {
  color: #cccccc;
  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: #EF3A3B;
      color: #171717; }
    .main-nav__item a .disabled {
      cursor: default; }
  .main-nav__item.current > a, .main-nav__item.selected > a {
    background: #404040;
    color: #22b7ff; }
    .main-nav__item.current > a:hover, .main-nav__item.current > a:focus, .main-nav__item.selected > a:hover, .main-nav__item.selected > a:focus {
      background: #1db6ff;
      color: #404040; }
  .main-nav__item.parent > a:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'zenith' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    padding-left: 0.4rem;
    -webkit-transition: -webkit-transform, 400ms;
    -moz-transition: -moz-transform, 400ms;
    transition: transform, 400ms;
    float: right; }
  .main-nav__item.parent > a.highlighted ~ ul {
    border: none;
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    padding: 0;
    position: relative;
    width: auto;
    width: 100%; }
  .main-nav__item.parent > a.highlighted:after {
    -webkit-transform: rotatex(180deg);
    -moz-transform: rotatex(180deg);
    -ms-transform: rotatex(180deg);
    -o-transform: rotatex(180deg);
    transform: rotatex(180deg); }

/**
 * Nav items should have padding and a low line height
 * If not, multi-line items will be huge
 */
.main-nav__list {
  -webkit-tap-highlight-color: transparent; }
  .main-nav__list a {
    line-height: 1.2rem;
    padding: 0.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: 'zenith' !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 > *:not(#nav) {
  opacity: .4;
  -webkit-transition: opacity, 500ms;
  -moz-transition: opacity, 500ms;
  transition: opacity, 500ms; }

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

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

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

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

.current > .main-nav__toggle:hover {
  background-color: #009de9; }
  .current > .main-nav__toggle:hover:before {
    color: white !important; }

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

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

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

#topbanners {
  padding: 2rem 0; }

.productlist__product-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 5px;
  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);
  -o-transform: translateZ(0);
  transform: translateZ(0); }
  .on-sale .productlist__product-wrap {
    border-color: #DB311B;
    border-top-right-radius: 0px; }
    .on-sale .productlist__product-wrap:hover {
      border-color: #DB311B !important; }
  .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:  'Droid Sans', 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: #007bb6; }
  .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:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    border-style: solid;
    border-width: 0 5rem 5rem 0;
    border-color: transparent #DB311B transparent transparent;
    text-align: right; }
  .productlist__product-wrap .discount {
    font-family:  'Droid Sans', sans-serif;
    font-weight: bold;
    font-size: 1.25rem;
    display: block;
    position: absolute;
    right: -1.03553rem;
    top: -1.03553rem;
    width: 7.07107rem;
    height: 7.07107rem;
    line-height: 4.53553rem;
    text-align: center;
    z-index: 3;
    color: #fff;
    -webkit-transform: rotate(45deg) translateZ(0);
    -moz-transform: rotate(45deg) translateZ(0);
    -ms-transform: rotate(45deg) translateZ(0);
    -o-transform: rotate(45deg) translateZ(0);
    transform: rotate(45deg) translateZ(0); }
    .no-csstransforms .productlist__product-wrap .discount {
      line-height: 1rem;
      font-size: 1rem;
      padding: 0.625rem 0.625rem 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: 5px; }

.productlist__product__button-wrap {
  background: rgba(255, 255, 255, 0.7);
  border-radius: 5px;
  position: absolute;
  top: 100%;
  width: 100%;
  z-index: 4;
  margin-left: -0.625rem;
  padding: 1.2rem 0.625rem 0.625rem 0.625rem;
  text-align: center;
  -webkit-transition: -webkit-transform, 150ms;
  -moz-transition: -moz-transform, 150ms;
  transition: transform, 150ms; }
  .productlist__product__button-wrap .button {
    margin-bottom: 0; }

/* Buy button transform */
.csstransforms .productlist__product-wrap:hover .productlist__product__button-wrap {
  -webkit-transform: translate(0, -4.575rem);
  -moz-transform: translate(0, -4.575rem);
  -ms-transform: translate(0, -4.575rem);
  -o-transform: translate(0, -4.575rem);
  transform: translate(0, -4.575rem); }

/* 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: 5px;
  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.25rem;
  padding-bottom: 1.25rem; }
  #main-content > .breadcrumbs__wrapper:first-child,
  #main-content-onepage > .breadcrumbs__wrapper:first-child {
    margin-top: -1.25rem;
    padding: 0.5rem 0; }

#footer {
  padding-top: 1.25rem; }

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

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

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

.main-content a {
  text-decoration: underline; }

.main-content .productlist__product a,
.main-content .product__breadcrumbs a,
.main-content .categorylist__category a,
.main-content .checkout a,
.main-content a.button,
.main-content .social-buttons-list a {
  text-decoration: none; }

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

.alert-box {
  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 #007bb6;
  background-color: #fff;
  color: #333333;
  line-height: 1.3125;
  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4); }
  .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 #e7e7e7;
    background-color: #fff;
    color: #333333; }
  .alert-box.warning, .alert-box.alert-warning {
    border: none;
    border-left: 2rem solid #ffa200;
    background-color: #fff;
    color: #333333; }
  .alert-box.info, .alert-box.alert-info {
    border: none;
    border-left: 2rem solid #5bc0de;
    background-color: #fff;
    color: #333333; }
  .alert-box.alert-close {
    opacity: 0; }
  .alert-box:focus {
    outline: none; }

.alert-box__icon {
  position: absolute;
  font-size: 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 strong {
  display: inline;
  white-space: nowrap; }

.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%; } }

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

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

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

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

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

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

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

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

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

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

.block-image-grid {
  display: block;
  padding: 0;
  margin: 0; }
  .block-image-grid:before, .block-image-grid:after {
    content: " ";
    display: table; }
  .block-image-grid:after {
    clear: both; }
  .block-image-grid > li {
    display: block;
    height: auto;
    float: left;
    padding: 0 0.625rem 1.25rem; }
  .block-image-grid > li {
    width: 33.33333%;
    padding: 0 0.625rem 1.25rem;
    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: 0.83333rem; }
    .block-image-grid > li:nth-of-type(3n+2) {
      padding-left: 0.41667rem;
      padding-right: 0.41667rem; }
    .block-image-grid > li:nth-of-type(3n) {
      padding-left: 0.83333rem;
      padding-right: 0rem; }

.block__box__headline {
  text-transform: uppercase;
  font-size: 1.25rem;
  padding: 0.5rem 0.625rem 0.5rem 0.625rem;
  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: 'zenith' !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: #007bb6;
    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.625rem 1.25rem 0.625rem; }

.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: 'zenith' !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.625rem;
  padding-right: 1.25rem;
  padding-bottom: 0.6875rem;
  padding-left: 1.25rem;
  font-size: 0.8125rem;
  padding-left: 0;
  padding-right: 0; }

#footer .footer-block:last-child {
  margin-bottom: 1.25rem; }
  #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: #00a4f3; }
  #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(204, 204, 204, 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.25rem; }
    #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: 4px; }
    .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, .page__title, .freight-option,
.payment-option, .product__title, .bordered--top, .bordered--left, .bordered--right {
  border-style: solid;
  border-width: 0; }

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

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

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

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

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

.bx-wrapper {
  position: relative; }

.bx-controls-direction a {
  position: absolute;
  top: 50%;
  margin-top: -1.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.625rem; }
  .bx-next:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'zenith' !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.625rem; }
  .bx-prev:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'zenith' !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: 'zenith' !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: #007bb6;
    opacity: .75; }

.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: #EF3A3B !important;
    color: #171717;
    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: 'zenith' !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.8125rem;
  background-color: #DB311B;
  border-color: #af2716;
  color: #FFFFFF;
  border-radius: 5px;
  padding: 0 1rem;
  line-height: 2.3125rem;
  font-size: 0.875rem;
  margin-bottom: 0; }
  .checkout-button:hover, .checkout-button:focus {
    background-color: #af2716; }
  .checkout-button:hover, .checkout-button:focus {
    color: #FFFFFF; }
  .checkout-button:hover, .checkout-button:focus {
    background-color: #EF3A3B; }
  .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.625rem;
  margin-right: -0.625rem;
  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.625rem;
    padding-right: 0.625rem;
    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: 5px;
  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: 5px;
  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: #64cdff; }

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

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

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

/* 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 .productlist__product-wrap p.price--original, .productlist__product-wrap #kasse_one_login_question p.price--original, #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 {
  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: 'zenith' !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, .productlist__product-wrap .price--original, #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 {
  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.625rem;
  padding-right: 0.625rem;
  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: 0.75rem;
    padding-right: 1.5rem;
    padding-bottom: 0.8125rem;
    padding-left: 1.5rem;
    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: 5px;
  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: 70rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal {
      top: 6.25rem; } }
  .reveal-modal.radius {
    border-radius: 5px; }
  .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: 70rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.small {
      width: 40%;
      max-width: 70rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.medium {
      width: 60%;
      max-width: 70rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.large {
      width: 70%;
      max-width: 70rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.xlarge {
      width: 95%;
      max-width: 70rem;
      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: 70rem;
        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: #007bb6;
    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.0625rem;
    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: #007bb6;
    -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: #5b5b5b; }

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: #007bb6; }

.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: 'zenith' !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(0, 123, 182, 0.6) solid;
    border-radius: 6px;
    content: '';
    display: block;
    position: absolute;
    top: -0.3125rem;
    left: 0;
    right: 0;
    bottom: -0.15625rem;
    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: #e7e7e7;
      border-color: #747474;
      color: #535353;
      -webkit-transition: all 300ms ease;
      -moz-transition: all 300ms ease;
      transition: all 300ms ease; }
      .checkout--kco .addon_buttons .edit_step:hover {
        background-color: #b1b1b1;
        color: #2f2f2f; }
      .checkout--kco .addon_buttons .edit_step:first-child {
        margin-left: 0; }
  .checkout--kco .checkout-kco__address-form input, .checkout--kco .checkout-kco__address-form button, .checkout--kco .checkout-kco__address-form select {
    border-radius: 3px; }
  .checkout--kco .checkout-kco__address-form .checkout--kco__shipping-country select[disabled] {
    display: none; }
  .checkout--kco button,
  .checkout--kco .button,
  .checkout--kco input[type="number"],
  .checkout--kco .edit_step {
    border-radius: 3px; }
  .checkout--kco button:not(.remove_rabatt):not(.remove_giftcard),
  .checkout--kco .button:not(.remove_rabatt):not(.remove_giftcard),
  .checkout--kco input[type=submit]:not(.remove_rabatt):not(.remove_giftcard),
  .checkout--kco .edit_step:not(.remove_rabatt):not(.remove_giftcard) {
    font-weight: bold;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), inset 0 -3px 0 rgba(0, 0, 0, 0.1), 0 2px 5px rgba(0, 0, 0, 0.1); }
    .checkout--kco button:not(.remove_rabatt):not(.remove_giftcard):active,
    .checkout--kco .button:not(.remove_rabatt):not(.remove_giftcard):active,
    .checkout--kco input[type=submit]:not(.remove_rabatt):not(.remove_giftcard):active,
    .checkout--kco .edit_step:not(.remove_rabatt):not(.remove_giftcard):active {
      box-shadow: inset 0 3px 0 rgba(0, 0, 0, 0.1);
      outline: none; }
  .checkout--kco .next-step-btn {
    font-size: 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: #007bb6;
    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: #DB311B;
    background-color: rgba(219, 49, 27, 0.25); }
  table.checkout--kco__cart .attributes {
    font-weight: normal; }
  table.checkout--kco__cart .product-name {
    border-left: none;
    position: relative; }
  table.checkout--kco__cart .checkout__qty {
    height: 2rem;
    padding: .25rem 0 .25rem .25rem;
    box-shadow: none;
    text-align: center;
    -webkit-transition: all 300ms ease;
    -moz-transition: all 300ms ease;
    transition: all 300ms ease; }
    table.checkout--kco__cart .checkout__qty.primary-color-bg:focus {
      border-color: #007bb6;
      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 #007bb6; }
  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 #DB311B transparent transparent; }

.product-name--has-attributes:hover, .product-name--has-attributes:focus {
  outline: none; }
  .product-name--has-attributes:hover .checkout__product-name-wrap, .product-name--has-attributes:focus .checkout__product-name-wrap {
    display: block;
    position: absolute;
    z-index: 3;
    top: 0;
    left: 0;
    width: 100%;
    padding: 0.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.3125rem;
  margin-bottom: 0.3125rem; }
  .kco_shipping_options .freight-option {
    border-bottom: none; }
    .kco_shipping_options .freight-option label {
      padding-bottom: 0.625rem;
      padding-top: 0.625rem;
      padding-left: 1.5rem;
      padding-right: 0.625rem; }

.checkout__payment-methods-list {
  list-style: none; }
  .checkout__payment-methods-list > :first-child {
    margin-bottom: 0.15625rem; }
  .checkout__payment-methods-list .payment-method {
    display: block;
    position: relative; }
    .checkout__payment-methods-list .payment-method:first-of-type {
      -webkit-transition: box-shadow 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      -moz-transition: box-shadow 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      transition: box-shadow 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      box-shadow: 0 -1px 0 rgba(51, 51, 51, 0); }
      .checkout__payment-methods-list .payment-method:first-of-type:first-of-type:not(.payment-method--active) {
        box-shadow: 0 -1px 0 rgba(51, 51, 51, 0.2); }
    .checkout__payment-methods-list .payment-method:before {
      border: 1px rgba(0, 123, 182, 0.6) solid;
      border-radius: 6px;
      content: '';
      background: #FFFFFF;
      display: block;
      position: absolute;
      top: -0.15625rem;
      left: 0;
      right: 0;
      bottom: -0.15625rem;
      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.5rem;
      padding-right: 1.25rem;
      padding-top: 0.3125rem;
      padding-bottom: 0.3125rem;
      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.625rem !important; }
  .checkout__payment-methods-list {
    padding-left: 0.625rem;
    padding-right: 0.625rem; } }

@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.625rem; }
  .row .checkout--kco__freight-options {
    padding-left: 0.625rem; }
  .checkout--kco__freight {
    box-shadow: inset 1px 0 0 rgba(51, 51, 51, 0.2);
    margin-bottom: 0.625rem; }
  .checkout--kco__payment-alternatives {
    margin-left: 0.625rem;
    margin-right: 0.625rem; }
  .checkout__payment-methods-list {
    padding-left: 0.625rem;
    padding-right: 0.625rem; }
  .checkout--kco .addon_buttons {
    top: 1.375rem;
    padding-right: 1.25rem; }
  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.625rem; }

.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.25rem; }
  .row .checkout--kco__freight-options, .alternate-payment-wrapper {
    padding-left: 1.25rem; }
  .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: #DB311B;
  margin-right: -2px; }

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

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

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

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

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

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

.comments-guidelines {
  font-size: 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: 5px; }

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

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

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

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

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

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

.klarna-widget {
  height: 70px; }

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

.setting__button:focus {
  outline: none; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.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: 'zenith' !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.625rem;
  margin-right: -0.625rem;
  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.625rem;
    padding-right: 0.625rem;
    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.25rem; }

.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:  'Droid Sans', sans-serif;
  display: block;
  clear: both; }

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

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

.product .discount {
  display: none; }

.product .vat-info {
  font-size: 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.625rem;
  margin-right: -0.625rem;
  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.625rem;
  padding-right: 0.625rem;
  width: 100%;
  float: left; }

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

.product__extrafield__priceinfo {
  font-size: 0.875rem; }

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

@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: #007bb6;
          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: 'zenith' !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.625rem;
    padding-right: 0.625rem;
    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.625rem;
    padding-right: 0.625rem;
    width: 50%;
    float: left; }
  .product__about,
  .product__imagegallery__wrapper {
    padding-left: 0.625rem;
    padding-right: 0.625rem;
    width: 100%;
    float: left; }
  .product__images,
  .product__info,
  .product__main-images {
    margin-bottom: 1.25rem; }
  .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.625rem 1.25rem; }
    .product__imagegallery > li {
      width: 25%;
      padding: 0 0.625rem 1.25rem;
      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: 0.9375rem; }
      .product__imagegallery > li:nth-of-type(4n+2) {
        padding-left: 0.3125rem;
        padding-right: 0.625rem; }
      .product__imagegallery > li:nth-of-type(4n+3) {
        padding-left: 0.625rem;
        padding-right: 0.3125rem; }
      .product__imagegallery > li:nth-of-type(4n) {
        padding-left: 0.9375rem;
        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(0, 75, 111, 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: 5px; } }

@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.625rem 1.25rem; }
    .product__imagegallery > li {
      width: 20%;
      padding: 0 0.625rem 1.25rem;
      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: 1rem; }
      .product__imagegallery > li:nth-of-type(5n+2) {
        padding-left: 0.25rem;
        padding-right: 0.75rem; }
      .product__imagegallery > li:nth-of-type(5n+3) {
        padding-left: 0.5rem;
        padding-right: 0.5rem; }
      .product__imagegallery > li:nth-of-type(5n+4) {
        padding-left: 0.75rem;
        padding-right: 0.25rem; }
      .product__imagegallery > li:nth-of-type(5n) {
        padding-left: 1rem;
        padding-right: 0rem; }
  li.product__imagegallery__imagewrap {
    height: 6rem; }
  .product__attribute,
  .product__quantity {
    padding-left: 0.625rem;
    padding-right: 0.625rem;
    width: 33.33333%;
    float: left; }
  .product__extrafield__wrap {
    padding-left: 0.625rem;
    padding-right: 0.625rem;
    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: black !important;
    background-color: #EF3A3B !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: #FFFFFF; }
  .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: 'zenith' !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: #3b3b3b;
  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: #545454;
      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: #545454;
    box-shadow: 0 0 0 2px #7a7a7a; }
    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: #6e6e6e;
    color: whitesmoke; }
    input.search-box__input:focus::-webkit-input-placeholder, input.search-box__input.active::-webkit-input-placeholder {
      color: rgba(245, 245, 245, 0.75); }
    input.search-box__input:focus::-moz-placeholder, input.search-box__input.active::-moz-placeholder {
      color: rgba(245, 245, 245, 0.75); }
    input.search-box__input:focus:-moz-placeholder, input.search-box__input.active:-moz-placeholder {
      color: rgba(245, 245, 245, 0.75); }
    input.search-box__input:focus:-ms-input-placeholder, input.search-box__input.active:-ms-input-placeholder {
      color: rgba(245, 245, 245, 0.75); }
    input.search-box__input:focus ~ label .icon-search, input.search-box__input.active ~ label .icon-search {
      color: whitesmoke; }
    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; } }

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

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

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

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

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

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

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

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

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

.slider__wrapper {
  margin-bottom: 1.25rem;
  margin-right: -0.625rem;
  margin-left: -0.625rem; }

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

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

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

/**
 * Define number of columns at each breakpoint
 *
 * Format is a map with number of columns as key and the breakpoint range as a value.
 * The ranges here are based on a minimum block size of roughly 280px, so two columns 
 * gives a minimum width of 560px, which equals 35em, and so on.
 * 
 * @type map
 */
.equal-height-columns {
  display: block;
  margin-left: -0.625rem;
  margin-right: -0.625rem; }
  .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-column {
  float: left;
  width: 100%;
  margin-bottom: 1.25rem;
  padding: 0 0.625rem; }
  .flexbox .equal-height-column {
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex; }

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

@media screen and (min-width: 0rem) and (max-width: 23.9375rem) {
  .equal-height-column {
    width: 100%; } }

@media screen and (min-width: 24rem) and (max-width: 35.9375rem) {
  .equal-height-column {
    width: 50%; } }

@media screen and (min-width: 36rem) and (max-width: 47.9375rem) {
  .equal-height-column {
    width: 33.33333%; } }

@media screen and (min-width: 48rem) and (max-width: 99999999rem) {
  .equal-height-column {
    width: 25%; } }

.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: 'zenith' !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; }

.iconized-list [class^="icon-"]:before,
.iconized-list [class*=" icon-"]:before {
  position: absolute;
  top: 0;
  left: 0;
  width: 2rem;
  text-align: center;
  color: #000; }

.iconized-list__header {
  position: relative;
  padding-left: 2rem; }

.iconized-list__content {
  padding-left: 2rem;
  margin-bottom: 1rem; }

#footer .block__box__headline {
  text-transform: none;
  font-size: 1rem; }

.block__box--about_menu li {
  font-size: 0.875rem; }

@media only screen and (min-width: 27em) {
  #footer .block__box__headline {
    margin-bottom: .5rem;
    border-bottom: 1px solid #737373;
    color: #fff; }
  #footer .block__box {
    border-bottom: none; } }

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

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

.bestseller__title {
  font-size: 0.8125rem;
  font-weight: normal;
  margin: 0;
  padding: .25rem 0 .25rem 0; }

.bestseller__image {
  width: 25%; }
  .bestseller__image img {
    max-width: 100%;
    padding: 2px;
    border-width: 1px;
    border-style: solid;
    max-height: 4.375rem;
    border-radius: 5px; }

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

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

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

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

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

.iconized-list__header {
  font-family:  'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif !important; }
  .iconized-list__header:before {
    font-family: 'zenith' !important; }

.header-functions {
  height: 3.75rem; }

.cart-button,
#nav-open-btn {
  line-height: 3.75rem; }

#user-nav .icon-search {
  font-size: 1.2rem; }

#nav-open-btn {
  font-size: 1.25rem;
  margin-left: 1rem; }

#user-nav .search-toggler:focus, #user-nav .search-toggler:hover, #user-nav .search-toggler.toggled {
  background-color: #005c88;
  color: #fff; }

#hidden-search-wrapper {
  padding: 1rem 10%; }
  #hidden-search-wrapper input, #hidden-search-wrapper button {
    margin-bottom: 0; }

.search-toggler.toggled .icon-search:before {
  content: ""; }

@media only screen and (min-width: 40em) {
  #user-nav .icon-search {
    font-size: .9rem; }
  #hidden-search-wrapper {
    padding: 1rem 0; } }

@media only screen and (min-width: 64em) {
  .header-functions {
    height: 5rem; }
  .cart-button,
  #nav-open-btn {
    line-height: 5rem; }
  #nav {
    display: none; }
  #hidden-search-wrapper {
    display: none !important; } }

#main {
  padding-top: 1.25rem; }

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

.slider__wrapper {
  margin-left: 0;
  margin-right: 0; }

.shop-features {
  padding-top: 1.25rem; }

.page__title {
  margin-top: 0;
  padding-top: 0; }

.block-nav {
  display: block;
  margin: 0;
  padding: 0;
  list-style-type: none;
  list-style-position: outside;
  font-family:  'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif; }
  .block-nav li {
    margin: 0;
    font-size: 0.875rem;
    font-weight: normal; }
    .block-nav li a:not(.button) {
      display: block;
      color: #007bb6;
      margin: 0;
      padding: 0.4375rem 1rem; }
      .block-nav li a:not(.button):hover, .block-nav li a:not(.button):focus {
        background: #EF3A3B;
        color: white; }
    .block-nav li.active > a:first-child:not(.button) {
      color: #19b5ff;
      font-weight: normal;
      font-family:  'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif; }
    .block-nav li.divider {
      border-top: 1px solid;
      height: 0;
      padding: 0;
      list-style: none;
      border-top-color: white; }
    .block-nav li.heading {
      color: #007bb6;
      font-size: 0.875rem;
      font-weight: bold;
      text-transform: uppercase; }

.block__box li a:before {
  display: none; }

#splitmenu .block-nav__item a {
  color: #333333;
  text-decoration: none; }
  #splitmenu .block-nav__item a:hover {
    color: #171717; }

.block-nav__item a {
  -webkit-transition: all 300ms ease;
  -moz-transition: all 300ms ease;
  transition: all 300ms ease;
  border-bottom: 1px solid #e6e6e6; }
  .block-nav__item a:hover + .main-nav__toggle:before {
    color: white !important; }

.block-nav__item.current {
  border-left-color: #007bb6;
  border-right-color: #007bb6;
  margin-right: -1px;
  margin-left: -1px; }
  .block-nav__item.current > a {
    background: #007bb6 !important;
    color: white !important; }

.block-nav__item.parent {
  position: relative; }
  .block-nav__item.parent > a {
    padding-right: 2.1875rem !important; }

.block-nav__item.level-0 {
  border-left: 1px solid #d9d9d9;
  border-right: 1px solid #d9d9d9; }
  .block-nav__item.level-0.current > a {
    padding-left: 1.125rem !important; }
  .block-nav__item.level-0 > a {
    border-bottom: 1px solid #d9d9d9; }
  .block-nav__item.level-0:last-child {
    border-bottom: 1px solid #d9d9d9;
    border-bottom-right-radius: 5px;
    border-bottom-left-radius: 5px; }
    .block-nav__item.level-0:last-child > a {
      border-bottom: none; }
    .block-nav__item.level-0:last-child > .block-nav__submenu.toggled {
      border-top: 1px solid #d9d9d9; }
    .block-nav__item.level-0:last-child .level-1:last-child > a {
      border-bottom: none; }
    .block-nav__item.level-0:last-child .main-nav__toggle:not(.toggled):hover {
      border-bottom-right-radius: 5px; }

.block-nav__item.level-1 > a {
  padding-left: 2rem !important;
  font-size: 0.8125rem;
  line-height: 1.3125rem; }

.block-nav__item.level-1.current > a {
  padding-left: 2.125rem !important; }

.block-nav__item.level-2 > a {
  padding-left: 3rem !important;
  font-size: 0.75rem;
  line-height: 1.3125rem; }

.block-nav__item.level-2.current > a {
  padding-left: 3.125rem !important; }

.block-nav__item.level-3 > a {
  padding-left: 4rem !important;
  font-size: 0.6875rem;
  line-height: 1.3125rem; }

.block-nav__item.level-3.current > a {
  padding-left: 4.125rem !important; }

.block-nav__item.level-4 > a {
  padding-left: 5rem !important;
  font-size: 0.625rem;
  line-height: 1.3125rem; }

.block-nav__item.level-4.current > a {
  padding-left: 5.125rem !important; }

.block-nav__item.level-5 > a {
  padding-left: 6rem !important;
  font-size: 0.5625rem;
  line-height: 1.3125rem; }

.block-nav__item.level-5.current > a {
  padding-left: 6.125rem !important; }

.block-nav__item.level-1:last-child > a {
  border-bottom: 1px solid #d9d9d9; }

.block-nav__item .block-nav__item {
  padding-left: 0; }

.block-nav__submenu.level-1 {
  background-color: #f6f6f6;
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1); }

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

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

.current > .main-nav__toggle:hover {
  background-color: #009de9; }
  .current > .main-nav__toggle:hover:before {
    color: white !important; }

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

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

.block-nav__item.selected.parent > .block-nav__submenu, .block-nav__item.current.parent > .block-nav__submenu {
  display: block; }

.block-nav__item.selected > a {
  font-weight: bold; }

ul > .level-0:last-child > a, ul > li.level-0:last-child .level-1:last-child > a {
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px; }

.page-divider__header {
  font-size: 1rem;
  font-weight: bold;
  text-transform: uppercase; }

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

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

.productlist__product__headline {
  text-transform: none;
  font-size: 0.875rem;
  text-align: center;
  font-weight: normal; }

.productlist__product .price {
  position: absolute;
  bottom: 0;
  right: 0.625rem;
  color: rgba(51, 51, 51, 0.9); }

.productlist__product .price--original {
  position: absolute;
  font-size: 0.875rem;
  bottom: 0;
  left: 0.625rem;
  display: inline-block; }

.productlist__product .discount {
  display: block;
  background-color: rgba(219, 49, 27, 0.8);
  color: #fff;
  border-radius: 5px;
  width: auto;
  height: auto;
  padding: .25rem .5rem;
  line-height: inherit;
  font-size: 1rem;
  font-weight: normal;
  position: absolute;
  top: .5rem;
  right: .5rem;
  -webkit-transform: scale(1, 1);
  -moz-transform: scale(1, 1);
  -ms-transform: scale(1, 1);
  transform: scale(1, 1);
  transition: background-color 300ms ease-out; }

.productlist__product .productlist__product__description {
  padding-top: .5rem;
  opacity: .8;
  font-size: 0.8125rem; }

.on-sale .productlist__product-wrap {
  border-top-width: 3px;
  border-color: rgba(51, 51, 51, 0.2);
  border-top-color: #DB311B;
  border-top-right-radius: 5px; }
  .on-sale .productlist__product-wrap .equal-height-column__image {
    margin-top: -2px; }
  .on-sale .productlist__product-wrap:after {
    display: none; }
  .on-sale .productlist__product-wrap .price {
    color: #DB311B; }

.productlist__product-wrap {
  padding-bottom: 2.625rem; }
  .productlist__product-wrap:hover .discount {
    background-color: rgba(219, 49, 27, 0.96);
    color: #fff; }

@media only screen and (min-width: 24rem) {
  .equal-height-column__image {
    height: 180px; }
    .equal-height-column__image img {
      max-height: 180px; } }

.sidebar .block--bordered {
  border: 1px solid #d9d9d9;
  border-radius: 5px; }

.sidebar .block__box__headline-wrapper {
  padding: 0.625rem 0;
  background-color: #f6f6f6;
  border: 1px solid #d9d9d9;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px; }

.sidebar .block__box__headline {
  padding: 0;
  font-size: 0.875rem;
  font-weight: bold;
  padding: 0 1rem;
  color: #707070; }

.sidebar .block__box__content {
  padding: 0;
  background-color: #fbfbfb;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px; }

#block-venstre {
  padding-top: 1.875rem; }
  #block-venstre .block__box {
    border: 1px solid #d9d9d9;
    background-color: #fbfbfb;
    border-top: 3px solid #007bb6;
    border-radius: 5px;
    margin-bottom: 1.875rem; }
  #block-venstre .block__box__headline {
    padding: 0.625rem 1rem; }
  #block-venstre .block__box__content {
    padding: 0 1rem 1rem 1rem; }
    #block-venstre .block__box__content [type=submit] {
      margin-bottom: 0; }
  #block-venstre .block__box--newsletter #epost_newsletter {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    margin-bottom: 0; }
  #block-venstre .block__box--banners_left,
  #block-venstre .block__box--banners_right {
    border: none; }
    #block-venstre .block__box--banners_left .block__box__content,
    #block-venstre .block__box--banners_right .block__box__content {
      padding: 0; }
  #block-venstre .block__box--manufacturers select {
    margin-bottom: 0; }

.block__box--newsletter #epost_newsletter {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0; }

.block__box--newsletter__pitch {
  opacity: .8;
  font-size: 0.875rem; }

.block__box--points-of-contact .iconized-list {
  font-size: 0.875rem; }

.block__box--points-of-contact .iconized-list [class^="icon-"]:before,
.block__box--points-of-contact .iconized-list [class*=" icon-"]:before {
  font-size: 1rem;
  top: -0.0625rem;
  color: #00a4f3; }

.block__box--points-of-contact .social-button__link {
  margin: 0 0.1875rem;
  width: 1.8rem;
  height: 1.8rem;
  line-height: 1.8rem; }
  .block__box--points-of-contact .social-button__link [class^="icon-"]:before,
  .block__box--points-of-contact .social-button__link [class*=" icon-"]:before {
    top: auto;
    color: #333333;
    font-size: 1rem; }
  .block__box--points-of-contact .social-button__link:hover [class^="icon-"]:before,
  .block__box--points-of-contact .social-button__link:hover [class*=" icon-"]:before {
    color: inherit; }

#utils-nav,
#user-nav,
#tools-nav {
  font-size: 0.75rem; }
  #utils-nav .subtle, #utils-nav .productlist__product-wrap .price--original, .productlist__product-wrap #utils-nav .price--original, #utils-nav #kasse_one_form .subtaxes, #kasse_one_form #utils-nav .subtaxes, #utils-nav .product__main-images .bx-caption, .product__main-images #utils-nav .bx-caption, #utils-nav .product__meta-numbers, #utils-nav .product .price--original, .product #utils-nav .price--original, #utils-nav .product .vat-info, .product #utils-nav .vat-info, #utils-nav .product__stockstatus, #utils-nav .rating input:checked ~ label, .rating #utils-nav input:checked ~ label, #utils-nav .rating label:hover ~ label, .rating #utils-nav label:hover ~ label,
  #user-nav .subtle,
  #user-nav .productlist__product-wrap .price--original, .productlist__product-wrap
  #user-nav .price--original,
  #user-nav #kasse_one_form .subtaxes, #kasse_one_form
  #user-nav .subtaxes,
  #user-nav .product__main-images .bx-caption, .product__main-images
  #user-nav .bx-caption,
  #user-nav .product__meta-numbers,
  #user-nav .product .price--original, .product
  #user-nav .price--original,
  #user-nav .product .vat-info, .product
  #user-nav .vat-info,
  #user-nav .product__stockstatus,
  #user-nav .rating input:checked ~ label, .rating
  #user-nav input:checked ~ label,
  #user-nav .rating label:hover ~ label, .rating
  #user-nav label:hover ~ label,
  #tools-nav .subtle,
  #tools-nav .productlist__product-wrap .price--original, .productlist__product-wrap
  #tools-nav .price--original,
  #tools-nav #kasse_one_form .subtaxes, #kasse_one_form
  #tools-nav .subtaxes,
  #tools-nav .product__main-images .bx-caption, .product__main-images
  #tools-nav .bx-caption,
  #tools-nav .product__meta-numbers,
  #tools-nav .product .price--original, .product
  #tools-nav .price--original,
  #tools-nav .product .vat-info, .product
  #tools-nav .vat-info,
  #tools-nav .product__stockstatus,
  #tools-nav .rating input:checked ~ label, .rating
  #tools-nav input:checked ~ label,
  #tools-nav .rating label:hover ~ label, .rating
  #tools-nav label:hover ~ label {
    font-size: 0.75rem; }

#utils-nav .icon-language,
#utils-nav #language-close .icon-close {
  margin-right: .25rem; }

.setting__select {
  border-radius: 5px; }
  .setting__select .button {
    border-radius: 5px; }

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

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

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

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

.resp-tab-item,
.resp-accordion {
  outline: none;
  color: #333333;
  background-color: #f0f0f0;
  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: 'zenith' !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: #333333;
    background-color: #f0f0f0; }

.resp-tabs-container {
  padding: 0;
  background-color: #FFFFFF;
  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: #007bb6;
  background-color: #FFFFFF; }
  .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: #007bb6;
    background-color: #FFFFFF; }

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

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

.resp-tabs-list {
  position: relative;
  bottom: -1px;
  z-index: 1; }

@media only screen and (max-width: 39.9375em) {
  .resp-accordion {
    border-radius: 5px; } }

@media only screen and (min-width: 40em) {
  .resp-tab-item {
    border: 1px solid #e0e0e0;
    border-top-width: 3px;
    border-bottom-width: 0;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px; }
    .resp-tab-item:hover {
      border-top-color: #0071a7; }
  .resp-tab-active, .resp-tab-active:hover {
    border-top-color: #007bb6; }
  .resp-tab-content-active {
    border: 1px solid #e0e0e0;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px; } }

ul.partner-logos {
  list-style: none;
  margin: 0; }

.partner-logo {
  display: inline-block; }
  .partner-logo img {
    max-width: 55px;
    margin: 0 .5rem;
    opacity: .75;
    -webkit-transition: opacity 0.25s ease;
    -moz-transition: opacity 0.25s ease;
    transition: opacity 0.25s ease; }
  .partner-logo:hover img {
    opacity: 1; }
  .partner-logo:first-child {
    margin-left: 0; }
  .partner-logo:last-child {
    margin-right: 0; }

form.js-product-search-form .postfix-radius.row.collapse input.js-product-search {
  background-color: #005279;
  border-color: #005279;
  color: #65cdff;
  box-shadow: rgba(101, 205, 255, 0) 0 0 10px;
  border-top-left-radius: 1.25rem;
  border-bottom-left-radius: 1.25rem; }
  form.js-product-search-form .postfix-radius.row.collapse input.js-product-search::-webkit-input-placeholder {
    -webkit-transition: color 150ms ease-out;
    -moz-transition: color 150ms ease-out;
    transition: color 150ms ease-out;
    color: rgba(101, 205, 255, 0.75); }
  form.js-product-search-form .postfix-radius.row.collapse input.js-product-search::-moz-placeholder {
    -webkit-transition: color 150ms ease-out;
    -moz-transition: color 150ms ease-out;
    transition: color 150ms ease-out;
    color: rgba(101, 205, 255, 0.75); }
  form.js-product-search-form .postfix-radius.row.collapse input.js-product-search:-moz-placeholder {
    -webkit-transition: color 150ms ease-out;
    -moz-transition: color 150ms ease-out;
    transition: color 150ms ease-out;
    color: rgba(101, 205, 255, 0.75); }
  form.js-product-search-form .postfix-radius.row.collapse input.js-product-search:-ms-input-placeholder {
    -webkit-transition: color 150ms ease-out;
    -moz-transition: color 150ms ease-out;
    transition: color 150ms ease-out;
    color: rgba(101, 205, 255, 0.75); }
  form.js-product-search-form .postfix-radius.row.collapse input.js-product-search:hover::-webkit-input-placeholder {
    color: rgba(101, 205, 255, 0.9); }
  form.js-product-search-form .postfix-radius.row.collapse input.js-product-search:hover::-moz-placeholder {
    color: rgba(101, 205, 255, 0.9); }
  form.js-product-search-form .postfix-radius.row.collapse input.js-product-search:hover:-moz-placeholder {
    color: rgba(101, 205, 255, 0.9); }
  form.js-product-search-form .postfix-radius.row.collapse input.js-product-search:hover:-ms-input-placeholder {
    color: rgba(101, 205, 255, 0.9); }
  form.js-product-search-form .postfix-radius.row.collapse input.js-product-search:focus {
    box-shadow: #65cdff 0 0 10px; }

form.js-product-search-form .js-product-search-submit.postfix {
  background-color: #005279;
  border-left: #006393 1px solid;
  color: #65cdff;
  -webkit-transition: color 150ms ease-out, text-shadow 150ms ease-out, box-shadow 150ms linear;
  -moz-transition: color 150ms ease-out, text-shadow 150ms ease-out, box-shadow 150ms linear;
  transition: color 150ms ease-out, text-shadow 150ms ease-out, box-shadow 150ms linear;
  border-top-right-radius: 1.25rem;
  border-bottom-right-radius: 1.25rem; }
  form.js-product-search-form .js-product-search-submit.postfix:hover, form.js-product-search-form .js-product-search-submit.postfix:active, form.js-product-search-form .js-product-search-submit.postfix:focus {
    color: #e4f6ff; }
  form.js-product-search-form .js-product-search-submit.postfix:focus {
    outline: none;
    text-shadow: #005279 0 1px 0, #005279 -1px 0, #005279 0 -1px 0, #005279 1px 0, white 0 0 10px;
    box-shadow: #65cdff 0 0 10px; }

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

.cart-and-checkout .cart-button__sum {
  margin-left: 0.5rem; }

.cart-and-checkout .cart-button__sum,
.cart-and-checkout .cart-button__currency {
  font-size: 0.875rem;
  height: 3.75rem;
  line-height: 3.75rem; }

.cart-and-checkout .cart-button__icon, .cart-and-checkout .cart-button__sum, .cart-and-checkout .cart-button__currency, .cart-and-checkout .cart-button__quantity .icon-larger-than {
  color: #e9f8ff;
  -webkit-transition: color 300ms ease;
  -moz-transition: color 300ms ease;
  transition: color 300ms ease; }

.cart-and-checkout .cart-button__quantity {
  width: 2rem;
  margin-left: -2.5rem;
  background: transparent !important;
  line-height: 3.75rem;
  height: 3.75rem;
  color: #0074AC !important;
  font-size: 1.5em;
  font-weight: bold;
  vertical-align: -0.125rem; }
  .cart-and-checkout .cart-button__quantity .icon-larger-than {
    margin-left: -5px;
    margin-right: -3px;
    vertical-align: -0.0625rem;
    color: #0074AC !important; }

.cart-and-checkout .cart-button__quantity--large {
  font-size: 1.4em; }

.cart-and-checkout .cart-button:hover .cart-button__icon, .cart-and-checkout .cart-button:hover .cart-button__sum, .cart-and-checkout .cart-button:hover .cart-button__currency, .cart-and-checkout .cart-button:hover .cart-button__quantity .icon-larger-than, .cart-and-checkout .cart-button--highlighted .cart-button__icon, .cart-and-checkout .cart-button--highlighted .cart-button__sum, .cart-and-checkout .cart-button--highlighted .cart-button__currency, .cart-and-checkout .cart-button--highlighted .cart-button__quantity .icon-larger-than {
  color: #6aceff; }

.cart-and-checkout .cart-button:hover .cart-button__quantity, .cart-and-checkout .cart-button--highlighted .cart-button__quantity {
  background: transparent !important;
  box-shadow: none;
  color: #00557e; }

.cart-button {
  padding-right: 0;
  /* Fixing a FF bug */
  white-space: nowrap; }

@media only screen and (min-width: 64em) {
  .cart-and-checkout .cart-button__sum,
  .cart-and-checkout .cart-button__currency {
    height: 5rem;
    line-height: 5rem; }
  .cart-and-checkout .cart-button__quantity {
    line-height: 5rem;
    height: 5rem; } }

/* see foundation/components/breadcrumbs for the base styling and options */
.breadcrumbs .current {
  display: none; }

@media only screen and (min-width: 40em) {
  .breadcrumbs .current {
    display: list-item; } }

.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: 5px; }
  .breadcrumbs > * {
    margin: 0;
    float: left;
    font-size: 0.875rem;
    line-height: 0.875rem;
    text-transform: none;
    color: #fff; }
    .breadcrumbs > *:hover a, .breadcrumbs > *:focus a {
      text-decoration: underline; }
    .breadcrumbs > * a {
      color: #fff; }
    .breadcrumbs > *.current {
      cursor: default;
      color: #fff; }
      .breadcrumbs > *.current a {
        cursor: default;
        color: #fff; }
      .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; }

.breadcrumbs {
  font-family:  'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  margin-bottom: 0;
  background: transparent; }
  .breadcrumbs > ::before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'zenith' !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.25em;
    vertical-align: -5%;
    margin: 0;
    font-weight: bold;
    color: #fff; }
  .breadcrumbs > li {
    height: 2.75rem;
    line-height: 2.75rem; }
    .breadcrumbs > li > a {
      display: inline-block;
      height: 2.75rem;
      line-height: 2.75rem; }
      .breadcrumbs > li > a:hover {
        color: #fff; }

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

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

.block__box--infobox .block-nav__item {
  border-left-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px !important; }
  .block__box--infobox .block-nav__item a {
    text-decoration: none; }

#block-venstre .block__box--infobox .block__box__headline {
  border-bottom: 1px solid #d9d9d9; }

#block-venstre .block__box--infobox .block__box__content {
  display: block !important;
  height: auto !important;
  opacity: 1 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important; }

#footer .block__box--infobox .block-nav__item, #footer .block__box--infobox a {
  border-radius: 0px !important;
  border-color: #737373;
  color: #fff; }
  #footer .block__box--infobox .block-nav__item:hover, #footer .block__box--infobox a:hover {
    color: #171717; }

#footer .block__box--infobox .block-nav__submenu.level-1 {
  background-color: rgba(246, 246, 246, 0.05) !important;
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1); }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXMiOlsic3R5bGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fX2RlYnVnL19tYXN0ZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vX2Z1bmN0aW9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvX2Z1bmN0aW9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL19jb2xvci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL19tYXRoLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fY29uc3RhbnRzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fYWJzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fZXhwLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fZmFjdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX2ZyZXhwLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fbGRleHAuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19sb2cuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19sdW1pbmFuY2UtcHJlY2FsYy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX3Bvdy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX250aC1yb290LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fc3FydC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX3RyaWdvbm9tZXRyeS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL19yZXBsYWNlLW50aC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL19zdHJpbmdzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvc3RyaW5ncy9fc3RyLWV4cGxvZGUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9fdW5pdHMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9zdHlsZXMvX2ZvbnRzLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIl9zZXR0aW5ncy1lcXVhbC1oZWlnaHQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9zZXR0aW5ncy9fYmFzZS1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3NldHRpbmdzL19iYXNlLWNvbG9yLXNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvc3R5bGVzL19jb2xvci1jb250cmFzdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvX25vcm1hbGl6ZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvX21peGlucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbWl4aW5zL19hY2Nlc3NpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9taXhpbnMvX2NlbnRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbWl4aW5zL19oYWlybGluZS1ib3JkZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L21peGlucy9fbnRoLWNoaWxkcmVuLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9taXhpbnMvX3RyYW5zZm9ybS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vYWRkb25zL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19hbmltYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19ib3JkZXItcmFkaXVzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2ZsZXgtYm94LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2tleWZyYW1lcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fYWxlcnQtYm94ZXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZ2xvYmFsLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL19mdW5jdGlvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fYmxvY2stZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19idXR0b25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2dyaWQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9faW5saW5lLWxpc3RzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3RhYmxlcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL190YWJzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2dyaWQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdGh1bWJzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3R5cGUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19zaWRlLW5hdi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvYmxvY2tzL19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9ibG9ja3MvbmF2L19ob3Jpem9udGFsLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9ibG9ja3MvbmF2L19uYXYuc2NzcyIsImNvbXBvbmVudHMvX2ljb25zLnNjc3MiLCJjb21wb25lbnRzL19pY29uLXZhcnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvX2dyaWQtZXh0cmFzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2FjY2Vzc2liaWxpdHkuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvX2hlYWRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9oZWFkZXIvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2hlYWRlci9fdXRpbHMtbmF2LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2hlYWRlci9fb2ZmY2FudmFzLW5hdi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9oZWFkZXIvX2xvZ28tbGluZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9oZWFkZXIvX21haW4tbmF2LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L19tYWluLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L21haW4vX3RvcGJhbm5lcnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9fcHJvZHVjdGxpc3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9wcm9kdWN0bGlzdC9fc3R5bGUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9wcm9kdWN0bGlzdC9fYnV5LWJ1dHRvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9jYXRlZ29yeWxpc3QvX3N0eWxlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L21haW4vX3BhZ2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvZm9vdGVyL19mb290ZXIuc2NzcyIsIl9jb21wb25lbnRzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvc3R5bGVzL19saW5rLXZpc2liaWxpdHktZml4LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3NsYWItc2VwYXJhdG9yLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2FsZXJ0LWJveGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2FuaW1hdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ibG9jay1pbWFnZS1ncmlkLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2Jsb2Nrcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ibG9ja3MtYmFubmVycy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ib3JkZXJlZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19idXR0b25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2J4c2xpZGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NhcnRfYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NhcnQtYnV0dG9uLWZ1bGwuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fY2FydC1idXR0b24tc2ltcGxlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NoZWNrb3V0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NoZWNrb3V0X2tjby5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvX3JlYWN0LXNlbGVjdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3Qvc2VsZWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9jb250cm9sLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9zcGlubmVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9taXhpbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvcmVhY3Qtc2VsZWN0L21lbnUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvcmVhY3Qtc2VsZWN0L211bHRpLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NvbW1lbnRzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2Nvb2tpZS1ub3RpY2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fZmFuY3lib3guc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fZm9ybXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fa2xhcm5hLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2xhbmd1YWdlLWN1cnJlbmN5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3BhZ2UtZGl2aWRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19wYWdlcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3BhZ2VzL19jYXJ0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvcGFnZXMvX2Zyb250cGFnZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3BhZ2VzL19yZWNlaXB0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvcGFnZXMvX3JlZ2lzdGVyLWFjY291bnQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9wYWdlcy9fd2lzaGxpc3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19wcm9kdWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3Byb2R1Y3Qtc2VhcmNoLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3JhdGluZy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19yZWFkb24taWNvbi1jZW50ZXJlZC1vbi1ob3Zlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zZWFyY2gtYm94LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3NlYXJjaC1ib3gtLWFjdGl2aXR5LWluZGljYXRvci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zaG9wLWZlYXR1cmVzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3NsaWRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zb2NpYWwtYnV0dG9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zcGlubmVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3NwbGl0bWVudS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L190YWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fdGhlbWVkLW5hdmlnYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvX2NvbW1vbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9fc3RpY2t5LWZvb3Rlci1tZW51LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19zbGlkZS1pbi1tZW51LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19zZWFyY2gtbW9kYWwuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvX2VxdWFsLWhlaWdodC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9lcXVhbC1oZWlnaHQvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2VxdWFsLWhlaWdodC9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9faG92ZXJmeC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19maWx0ZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeC9fYmFzZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L19ibHVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX2NvdmVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX2ZpZ2NhcHRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeC9fbGV2aXRhdGUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeC9fc2hvd3RpdGxlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX3RpbHQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvX2ljb25pemVkLWxpc3Quc2NzcyIsImNvbXBvbmVudHMvX2Jsb2Nrcy5zY3NzIiwiY29tcG9uZW50cy9fYmVzdHNlbGxlci5zY3NzIiwiY29tcG9uZW50cy9fZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19oZWFkZXIuc2NzcyIsImNvbXBvbmVudHMvX2xheW91dC5zY3NzIiwiY29tcG9uZW50cy9fbWFpbi1uYXYuc2NzcyIsImNvbXBvbmVudHMvX3BhZ2UtZGl2aWRlci5zY3NzIiwiY29tcG9uZW50cy9fcHJvZHVjdGxpc3Quc2NzcyIsImNvbXBvbmVudHMvX3NpZGViYXIuc2NzcyIsImNvbXBvbmVudHMvX3R5cGUuc2NzcyIsImNvbXBvbmVudHMvX3V0aWxzLW5hdi5zY3NzIiwiY29tcG9uZW50cy9fdGFicy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L190YWJzLnNjc3MiLCJjb21wb25lbnRzL19wYXJ0bmVyLWxvZ29zLnNjc3MiLCJjb21wb25lbnRzL19zZWFyY2gtYm94LnNjc3MiLCJjb21wb25lbnRzL19jYXJ0LWJ1dHRvbi5zY3NzIiwiY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsImNvbXBvbmVudHMvX2luZm9ib3guc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICdxdWlja2ZpeC9fX2RlYnVnL21hc3Rlcic7XG5cbiRmb250LWNvbWJvOiBcIlNvdXJjZStTYW5zK1Bybzo0MDAsNzAwLDQwMGl0YWxpYyw3MDBpdGFsaWN8RHJvaWQrU2Fuczo0MDAsNzAwOyAnU291cmNlIFNhbnMgUHJvJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgJ0Ryb2lkIFNhbnMnLCBzYW5zLXNlcmlmXCIgIWRlZmF1bHQ7XG5cbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zdHlsZXMvZm9udHNcIjtcblxuQGltcG9ydCBcInNldHRpbmdzXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MtZXF1YWwtaGVpZ2h0XCI7XG5cbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc2V0dGluZ3MvYmFzZS1zZXR0aW5nc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zZXR0aW5ncy9iYXNlLWNvbG9yLXNldHRpbmdzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3N0eWxlcy9jb2xvci1jb250cmFzdFwiO1xuQGltcG9ydCBcInF1aWNrZml4L25vcm1hbGl6ZVwiO1xuQGltcG9ydCBcInF1aWNrZml4L21peGluc1wiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi9oZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9zZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImJvdXJib24vYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2FuaW1hdGlvblwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMva2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9wbGFjZWhvbGRlclwiO1xuXG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2FsZXJ0LWJveGVzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2Jsb2NrLWdyaWRcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvZm9ybXNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvZ3JpZFwiO1xuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9pbmxpbmUtbGlzdHNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdGFibGVzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3RhYnNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdGh1bWJzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3R5cGVcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9zaWRlLW5hdlwiO1xuXG5AaW1wb3J0IFwicXVpY2tmaXgvYmxvY2tzL3BhZ2luYXRpb25cIjtcblxuQGltcG9ydCBcImNvbXBvbmVudHMvaWNvbnNcIjtcblxuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYXlvdXQvZ3JpZC1leHRyYXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYWNjZXNzaWJpbGl0eVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYXlvdXQvYmFzZVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYXlvdXQvaGVhZGVyXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2xheW91dC9tYWluXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2xheW91dC9mb290ZXIvZm9vdGVyXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50c1wiO1xuIiwiLy8gVGhpcyBpcyBpZiB5b3Ugd2FudCB0byBwbGF5IG1hZXN0cm9cbi8vJHByaW1hcnktY29sb3I6ICM4MDgwODA7XG4vL0BpbXBvcnQgJ2Jhc2UnO1xuXG4vLyRjb250ZW50LWJnOiAjN0E3QTdBO1xuLy8kY2FsbC10by1hY3Rpb24tY29sb3I6ICNiZjU3MmU7IiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gVGhpcyBpcyB0aGUgZGVmYXVsdCBodG1sIGFuZCBib2R5IGZvbnQtc2l6ZSBmb3IgdGhlIGJhc2UgcmVtIHZhbHVlLlxuJHJlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBJTVBPUlQgT05DRVxuLy8gV2UgdXNlIHRoaXMgdG8gcHJldmVudCBzdHlsZXMgZnJvbSBiZWluZyBsb2FkZWQgbXVsdGlwbGUgdGltZXMgZm9yIGNvbXBvbmVudHMgdGhhdCByZWx5IG9uIG90aGVyIGNvbXBvbmVudHMuXG4kbW9kdWxlczogKCkgIWRlZmF1bHQ7XG5AbWl4aW4gZXhwb3J0cygkbmFtZSkge1xuICAvLyBJbXBvcnQgZnJvbSBnbG9iYWwgc2NvcGVcbiAgJG1vZHVsZXM6ICRtb2R1bGVzICFnbG9iYWw7XG4gIC8vIENoZWNrIGlmIGEgbW9kdWxlIGlzIGFscmVhZHkgb24gdGhlIGxpc3RcbiAgJG1vZHVsZV9pbmRleDogaW5kZXgoJG1vZHVsZXMsICRuYW1lKTtcbiAgQGlmICgoJG1vZHVsZV9pbmRleCA9PSBudWxsKSBvciAoJG1vZHVsZV9pbmRleCA9PSBmYWxzZSkpIHtcbiAgICAkbW9kdWxlczogYXBwZW5kKCRtb2R1bGVzLCAkbmFtZSkgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vL1xuLy8gQGZ1bmN0aW9uc1xuLy9cblxuXG4vLyBSQU5HRVNcbi8vIFdlIHVzZSB0aGVzZSBmdW5jdGlvbnMgdG8gZGVmaW5lIHJhbmdlcyBmb3IgdmFyaW91cyB0aGluZ3MsIGxpa2UgbWVkaWEgcXVlcmllcy5cbkBmdW5jdGlvbiBsb3dlci1ib3VuZCgkcmFuZ2Upe1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPD0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEByZXR1cm4gbnRoKCRyYW5nZSwxKTtcbn1cblxuQGZ1bmN0aW9uIHVwcGVyLWJvdW5kKCRyYW5nZSkge1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPCAyIHtcbiAgICBAcmV0dXJuIDk5OTk5OTk5OTk5OTtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xufVxuXG4vLyBTVFJJUCBVTklUXG4vLyBJdCBzdHJpcHMgdGhlIHVuaXQgb2YgbWVhc3VyZSBhbmQgcmV0dXJucyBpdFxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8gVEVYVCBJTlBVVCBUWVBFU1xuXG5AZnVuY3Rpb24gdGV4dC1pbnB1dHMoICR0eXBlczogYWxsLCAkc2VsZWN0b3I6IGlucHV0ICkge1xuXG4gICAgJHJldHVybjogKCk7XG5cbiAgICAkYWxsLXRleHQtaW5wdXQtdHlwZXM6XG4gICAgICB0ZXh0XG4gICAgICBwYXNzd29yZFxuICAgICAgZGF0ZVxuICAgICAgZGF0ZXRpbWVcbiAgICAgIGRhdGV0aW1lLWxvY2FsXG4gICAgICBtb250aFxuICAgICAgd2Vla1xuICAgICAgZW1haWxcbiAgICAgIG51bWJlclxuICAgICAgc2VhcmNoXG4gICAgICB0ZWxcbiAgICAgIHRpbWVcbiAgICAgIHVybFxuICAgICAgY29sb3JcbiAgICAgIHRleHRhcmVhO1xuXG4gICAgQGlmICR0eXBlcyA9PSBhbGwgeyAkdHlwZXM6ICRhbGwtdGV4dC1pbnB1dC10eXBlczsgfVxuXG4gICAgQGVhY2ggJHR5cGUgaW4gJHR5cGVzIHtcbiAgICAgICAgQGlmICR0eXBlID09IHRleHRhcmVhIHtcbiAgICAgICAgICAgIEBpZiAkc2VsZWN0b3IgPT0gaW5wdXQge1xuICAgICAgICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnI3skdHlwZX0nKSwgY29tbWEpXG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHR5cGV9I3skc2VsZWN0b3J9JyksIGNvbW1hKVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyRzZWxlY3Rvcn1bdHlwZT1cIiN7JHR5cGV9XCJdJyksIGNvbW1hKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmV0dXJuO1xuXG59XG5cbi8vIENPTlZFUlQgVE8gUkVNXG5AZnVuY3Rpb24gY29udmVydC10by1yZW0oJHZhbHVlLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSAge1xuICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UtdmFsdWUpICogMXJlbTtcbiAgQGlmICgkdmFsdWUgPT0gMHJlbSkgeyAkdmFsdWU6IDA7IH0gLy8gVHVybiAwcmVtIGludG8gMFxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIGRhdGEoJGF0dHIpIHtcbiAgQGlmICRuYW1lc3BhY2Uge1xuICAgIEByZXR1cm4gJ1tkYXRhLScgKyAkbmFtZXNwYWNlICsgJy0nICsgJGF0dHIgKyAnXSc7XG4gIH1cblxuICBAcmV0dXJuICdbZGF0YS0nICsgJGF0dHIgKyAnXSc7XG59XG5cbi8vIFJFTSBDQUxDXG5cbi8vIE5ldyBTeW50YXgsIGFsbG93cyB0byBvcHRpb25hbGx5IGNhbGN1bGF0ZSBvbiBhIGRpZmZlcmVudCBiYXNlIHZhbHVlIHRvIGNvdW50ZXIgY29tcG91bmRpbmcgZWZmZWN0IG9mIHJlbSdzLlxuLy8gQ2FsbCB3aXRoIDEsIDIsIDMgb3IgNCBwYXJhbWV0ZXJzLCAncHgnIGlzIG5vdCByZXF1aXJlZCBidXQgc3VwcG9ydGVkOlxuLy9cbi8vICAgcmVtLWNhbGMoMTAgMjAgMzBweCA0MCk7XG4vL1xuLy8gU3BhY2UgZGVsaW1pdGVkLCBpZiB5b3Ugd2FudCB0byBkZWxpbWl0IHVzaW5nIGNvbW1hJ3MsIHdyYXAgaXQgaW4gYW5vdGhlciBwYWlyIG9mIGJyYWNrZXRzXG4vL1xuLy8gICByZW0tY2FsYygoMTAsIDIwLCAzMCwgNDBweCkpO1xuLy9cbi8vIE9wdGlvbmFsbHkgY2FsbCB3aXRoIGEgZGlmZmVyZW50IGJhc2UgKGVnOiA4cHgpIHRvIGNhbGN1bGF0ZSByZW0uXG4vL1xuLy8gICByZW0tY2FsYygxNnB4IDMycHggNDhweCwgOHB4KTtcbi8vXG4vLyBJZiB5b3UgcmVxdWlyZSB0byBjb21tYSBzZXBhcmF0ZSB5b3VyIGxpc3Rcbi8vXG4vLyAgIHJlbS1jYWxjKCgxNnB4LCAzMnB4LCA0OCksIDhweCk7XG5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSB7XG4gICRtYXg6IGxlbmd0aCgkdmFsdWVzKTtcblxuICBAaWYgJG1heCA9PSAxIHsgQHJldHVybiBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgMSksICRiYXNlLXZhbHVlKTsgfVxuXG4gICRyZW1WYWx1ZXM6ICgpO1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xuICAgICRyZW1WYWx1ZXM6IGFwcGVuZCgkcmVtVmFsdWVzLCBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZS12YWx1ZSkpO1xuICB9XG4gIEByZXR1cm4gJHJlbVZhbHVlcztcbn1cblxuLy8gT0xEIEVNIENBTENcbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEuMCwgdXNlIHJlbS1jYWxjKClcbkBmdW5jdGlvbiBlbUNhbGMoJHZhbHVlcyl7XG4gIEByZXR1cm4gcmVtLWNhbGMoJHZhbHVlcyk7XG59XG5cbi8vIE9MRCBFTSBDQUxDXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLjAsIHVzZSByZW0tY2FsYygpXG5AZnVuY3Rpb24gZW0tY2FsYygkdmFsdWVzKXtcbiAgQHJldHVybiByZW0tY2FsYygkdmFsdWVzKTtcbn1cbiIsIkBpbXBvcnQgXCJmdW5jdGlvbnMvY29sb3JcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbWF0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9yZXBsYWNlLW50aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpbmdzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VuaXRzXCI7IiwiLyoqXG4gKiBLdWRvcyB0byBodHRwOi8vbWFkZWJ5bWlrZS5jb20uYXUvd3JpdGluZy9hY2Nlc3NpYmxlLWNvbnRyYXN0LXdpdGgtbGVzcy1hbmQtc2Fzcy9cbiAqL1xuXG5AaW1wb3J0IFwibWF0aFwiO1xuXG4vLyBHZXQgdGhlIGx1bWlub3NpdHkgb2YgYSBjb2xvciBvbiBhIHNjYWxlIGZyb20gMCAoZGFya2VzdCkgdG8gMTAwIChsaWdodGVzdClcbkBmdW5jdGlvbiBsdW1hKCRjb2xvcil7XG4gICAgLy8gVGhhbmtzIHZveHBlbGxpIGZvciBhIHZlcnkgY29uY2lzZSBpbXBsZW1lbnRhdGlvbiBvZiBsdW1pbmFuY2UgbWVhc3VyZSBpbiBzYXNzXG4gICAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS92b3hwZWxsaS82MzA0ODEyXG4gICAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICAgJHJnYmEyOiAoKTtcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICAgICAkcmdiOiBtYXgoMCwgcm91bmQoJHJnYikpO1xuICAgICAgICAkcmdiOiBtaW4oMjU1LCByb3VuZCgkcmdiKSk7XG4gICAgICAgIC8vIE9sZCBBbGdvcml0aG06XG4gICAgICAgIC8vICRyZ2I6ICRyZ2IgLyAyNTU7XG4gICAgICAgIC8vICRyZ2I6IGlmKCRyZ2IgPCAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgLjA1NSkgLyAxLjA1NSwgMi40KSk7XG4gICAgICAgIC8vXG4gICAgICAgIC8vIFJlcGxhY2VkIHRoaXMgd2l0aCBMT1ZFTFkgcHJlY2FsY3VsYXRlZCBudW1iZXJzLCBmb3Igc3BlZWQsIHNpbmNlIHBvdyh4LCAyLjQpIGlzIHNsb3cgYXMgSEVMTCBpbiBTYXNzLlxuICAgICAgICAkcmdiOiBudGgoJGx1bWluYW5jZS1wcmVjYWxjLCAkcmdiICsgMSk7XG4gICAgICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gICAgfVxuXG4gICAgQHJldHVybiAoLjIxMjYgKiBudGgoJHJnYmEyLCAxKSArIC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKSkqMTAwO1xufVxuXG4vLyBSZXR1cm5zIGEgbnVtYmVyIGZyb20gMSAobG93IGNvbnRyYXN0KSB0byAyMSAoaGlnaCBjb250cmFzdClcbkBmdW5jdGlvbiBjb250cmFzdC1yYXRpbygkY29sb3IxLCAkY29sb3IyKSB7XG4gICAgJGx1bWExOiBsdW1hKCRjb2xvcjEpICsgNTtcbiAgICAkbHVtYTI6IGx1bWEoJGNvbG9yMikgKyA1O1xuICAgICRyYXRpbzogJGx1bWExIC8gJGx1bWEyO1xuICAgIEBpZiAkbHVtYTEgPCAkbHVtYTIge1xuICAgICAgICAkcmF0aW86IDEgLyAkcmF0aW87XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmF0aW87XG59XG5cbi8qKlxuICogSXMgJGNvbG9yMSBsaWdodGVyIHRoYW4gJGNvbG9yMj9cbiAqL1xuQGZ1bmN0aW9uIGlzLWxpZ2h0ZXIoJGNvbG9yMSwgJGNvbG9yMikge1xuICAgIEByZXR1cm4gbHVtYSgkY29sb3IxKSA+IGx1bWEoJGNvbG9yMik7XG59XG5cbi8qKlxuICogSXMgJGNvbG9yMSBkYXJrZXIgdGhhbiAkY29sb3IyP1xuICovXG5AZnVuY3Rpb24gaXMtZGFya2VyKCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgICBAcmV0dXJuIGx1bWEoJGNvbG9yMSkgPCBsdW1hKCRjb2xvcjIpO1xufVxuXG4vKipcbiAqIEZpbmQgYmVzdCBsaWdodG5lc3MgYWRqdXN0IG1ldGhvZFxuICpcbiAqIElkZWFsbHkgd2Ugc2hvdWxkIG9ubHkgaW5jcmVhc2UgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgY29sb3JzLiBJZiAkY29sb3IxXG4gKiBpcyBsaWdodGVyIHRoYW4gJGNvbG9yMiBidXQgdGhlIGNvbnRyYXN0IGlzIG5vdCBhY2Nlc3NpYmxlLCB0aGVuIHdlIHNob3VsZCB0cnkgdG9cbiAqIG1ha2UgaXQgbGlnaHRlciByYXRoZXIgdGhhbiBkYXJrZXIuXG4gKi9cbkBmdW5jdGlvbiBmaW5kLWxpZ2h0bmVzcy1hZGp1c3QtbWV0aG9kKCRjb2xvcjEsICRjb2xvcjIsICR0aHJlc2hvbGQ6ICRjb2xvci1jb250cmFzdC10aHJlc2hvbGQpIHtcbiAgICAkY29udHJhc3QtdG8td2hpdGU6IGNvbnRyYXN0LXJhdGlvKCNmZmZmZmYsICRjb2xvcjIpO1xuICAgICRjb250cmFzdC10by1ibGFjazogY29udHJhc3QtcmF0aW8oIzAwMDAwMCwgJGNvbG9yMik7XG5cbiAgICBAaWYgaXMtbGlnaHRlcigkY29sb3IxLCAkY29sb3IyKSB7XG4gICAgICAgIEBpZiAkY29udHJhc3QtdG8td2hpdGUgPj0gJHRocmVzaG9sZCB7IC8vIGxpZ2h0ZW4gYSBsaWdodGVyIGNvbG9yIHdpbGwgd29ya1xuICAgICAgICAgICAgQHJldHVybiAnbGlnaHRlbic7XG4gICAgICAgIH0gQGVsc2VpZiAkY29udHJhc3QtdG8tYmxhY2sgPj0gJHRocmVzaG9sZCB7XG4gICAgICAgICAgICBAcmV0dXJuICdkYXJrZW4nO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAkY29udHJhc3QtdG8tYmxhY2sgPj0gJHRocmVzaG9sZCB7IC8vIGRhcmtlbiBhIGRhcmtlciBjb2xvciB3aWxsIHdvcmtcbiAgICAgICAgICAgIEByZXR1cm4gJ2Rhcmtlbic7XG4gICAgICAgIH0gQGVsc2VpZiAkY29udHJhc3QtdG8td2hpdGUgPj0gJHRocmVzaG9sZCB7XG4gICAgICAgICAgICBAcmV0dXJuICdsaWdodGVuJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5vIGFjY2VwdGFibGUgY29udHJhc3QgZm91bmQsIGdvIHdpdGggdGhlIGJlc3Qgb25lXG4gICAgQGlmICgkY29udHJhc3QtdG8td2hpdGUgPiAkY29udHJhc3QtdG8tYmxhY2spIHtcbiAgICAgICAgQHJldHVybiAjZmZmO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICMwMDA7XG4gICAgfVxufVxuXG4vLyBMaWdodGVuIG9yIGRhcmtlbiAkY29sb3IxIHVudGlsIGl0IGhhcyBzdWZmaWNpZW50IGNvbnRyYXN0IHRvICRjb2xvcjJcbi8vIFRPRE86IFJlbW92ZSAkaXRlcmF0aW9ucyB2YXJpYmxlLCBmaW5kIGEgbW9yZSBjbGV2ZXIgd2F5IHRvIGNoZWNrIGlmIHdlIGFyZSBhdCByb2FkcyBlbmRcbkBmdW5jdGlvbiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29sb3IxLCAkY29sb3IyLCAkdGhyZXNob2xkOiAkY29sb3ItY29udHJhc3QtdGhyZXNob2xkLCAkdG9sZXJhbmNlOiAwLjI1KSB7XG5cbiAgICAvLyBSZXR1cm4gZGlyZWN0bHkgaWYgY29udHJhc3QgaXMgZ29vZFxuICAgICRjYW5kaWRhdGUtY29udHJhc3Q6IGNvbnRyYXN0LXJhdGlvKCRjb2xvcjEsICRjb2xvcjIpO1xuICAgIEBpZiAkY2FuZGlkYXRlLWNvbnRyYXN0ID49ICR0aHJlc2hvbGQge1xuICAgICAgICBAcmV0dXJuICRjb2xvcjE7XG4gICAgfVxuXG4gICAgLy8gRmluZCBvdXQgaWYgd2UgbmVlZCB0byBkYXJrZW4gb3IgbGlnaHRlblxuICAgICRtZXRob2Q6IGZpbmQtbGlnaHRuZXNzLWFkanVzdC1tZXRob2QoJGNvbG9yMSwgJGNvbG9yMik7XG5cbiAgICAvLyBJZiB3ZSB3b24ndCBiZSBhYmxlIHRvIGZpbmQgYW4gYWNjZXNzaWJsZSBjb250cmFzdCBhdCBhbGwsIGp1c3QgcmV0dXJuIGJsYWNrIG9yIHdoaXRlIGRpcmVjdGx5XG4gICAgQGlmICRtZXRob2QgIT0gJ2xpZ2h0ZW4nIGFuZCAkbWV0aG9kICE9ICdkYXJrZW4nIHtcbiAgICAgICAgQHJldHVybiAkbWV0aG9kO1xuICAgIH1cblxuICAgIC8vIEJpbmFyeSBzZWFyY2ggdW50aWwgd2UgZmluZCBhIGdvb2QgbGlnaHRuZXNzIGNoYW5nZVxuICAgICRyYW5nZS1zdGFydDogMSU7XG4gICAgJHJhbmdlLWVuZDogMTAwJTtcblxuICAgICRpdGVyYXRpb25zIDogMDtcbiAgICAkY2FuZGlkYXRlOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBXaGlsZSBjb250cmFzdCBpcyBvdXQgb2YgcmFuZ2UsIGtlZXAgc2VhcmNoaW5nXG4gICAgQHdoaWxlICRpdGVyYXRpb25zIDwgNyBhbmQgKCgkY2FuZGlkYXRlLWNvbnRyYXN0IDwgJHRocmVzaG9sZCkgb3IgKCRjYW5kaWRhdGUtY29udHJhc3QgPiAkdGhyZXNob2xkICsgJHRvbGVyYW5jZSkpIHtcbiAgICAgICAgJHJhbmdlLW1pZDogJHJhbmdlLWVuZCAtIHJvdW5kKCgoJHJhbmdlLWVuZCAtICRyYW5nZS1zdGFydCkvMikpO1xuXG4gICAgICAgICRjYW5kaWRhdGU6IGlmKCRtZXRob2QgPT0gJ2xpZ2h0ZW4nLCBsaWdodGVuKCRjb2xvcjEsICRyYW5nZS1taWQpLCBkYXJrZW4oJGNvbG9yMSwgJHJhbmdlLW1pZCkpO1xuXG4gICAgICAgICRjYW5kaWRhdGUtY29udHJhc3Q6IGNvbnRyYXN0LXJhdGlvKCRjYW5kaWRhdGUsICRjb2xvcjIpO1xuXG4gICAgICAgIEBpZiAoJGNhbmRpZGF0ZS1jb250cmFzdCA+PSAkdGhyZXNob2xkKSBhbmQgKCRjYW5kaWRhdGUtY29udHJhc3QgPD0gJHRocmVzaG9sZCArICR0b2xlcmFuY2UpIHtcbiAgICAgICAgICAgIEByZXR1cm4gJGNhbmRpZGF0ZTtcbiAgICAgICAgfSBAZWxzZWlmICRjYW5kaWRhdGUtY29udHJhc3QgPCAkdGhyZXNob2xkIHtcbiAgICAgICAgICAgICRyYW5nZS1zdGFydDogbWluKCRyYW5nZS1taWQgKyAxJSwgMTAwJSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJHJhbmdlLWVuZDogbWF4KCRyYW5nZS1taWQgLSAxJSwgMSUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJGl0ZXJhdGlvbnM6ICRpdGVyYXRpb25zICsgMTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRjYW5kaWRhdGU7XG59XG5cbi8vIEZpbmQgd2hpY2ggJGJnY29sb3IgdG8gdXNlIHdpdGggZ2l2ZW4gdGV4dCBjb2xvciAkY29sb3Jcbi8vIERlZmF1bHRzIHRvIGxpZ2h0ZXIgb3IgZGFya2VyIChtb25vY2hyb21lKSBiYWNrZ3JvdW5kXG5AZnVuY3Rpb24gdGV4dC1jb250cmFzdCgkY29sb3IsICRiZ2NvbG9yOiAkY29sb3IsICR0aHJlc2hvbGQ6IDQuNSkge1xuICAgIEByZXR1cm4gYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJnY29sb3IsICRjb2xvciwgJHRocmVzaG9sZCk7XG59IiwiLy8gQmlnIGt1ZG9zIHRvOiBodHRwczovL2dpdGh1Yi5jb20vdGVya2VsL21hdGhzYXNzXG5cbkBpbXBvcnQgXCJtYXRoL2NvbnN0YW50c1wiO1xuQGltcG9ydCBcIm1hdGgvYWJzXCI7XG5AaW1wb3J0IFwibWF0aC9leHBcIjtcbkBpbXBvcnQgXCJtYXRoL2ZhY3RcIjtcbkBpbXBvcnQgXCJtYXRoL2ZyZXhwXCI7XG5AaW1wb3J0IFwibWF0aC9sZGV4cFwiO1xuQGltcG9ydCBcIm1hdGgvbG9nXCI7XG5AaW1wb3J0IFwibWF0aC9sdW1pbmFuY2UtcHJlY2FsY1wiO1xuQGltcG9ydCBcIm1hdGgvcG93XCI7XG5AaW1wb3J0IFwibWF0aC9udGgtcm9vdFwiO1xuQGltcG9ydCBcIm1hdGgvc3FydFwiO1xuQGltcG9ydCBcIm1hdGgvdHJpZ29ub21ldHJ5XCI7IiwiJEU6ICAgICAyLjcxODI4MTgyODQ1OTA0NTtcbiRQSTogICAgMy4xNDE1OTI2NTM1ODk3OTM7XG4kTE4yOiAgIDAuNjkzMTQ3MTgwNTU5OTQ1MztcbiRTUVJUMjogMS40MTQyMTM1NjIzNzMwOTUxOyIsIiIsIi8vIFJldHVybnMgRV54LCB3aGVyZSB4IGlzIHRoZSBhcmd1bWVudCwgYW5kIEUgaXMgRXVsZXIncyBjb25zdGFudCwgdGhlIGJhc2Ugb2YgdGhlIG5hdHVyYWwgbG9nYXJpdGhtcy5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQGV4YW1wbGVcbi8vICAgICBleHAoMSkgIC8vIDIuNzE4Mjhcbi8vICAgICBleHAoLTEpIC8vIDAuMzY3ODhcbkBmdW5jdGlvbiBleHAoJHgpIHtcbiAgICAkcmV0OiAwO1xuICAgIEBmb3IgJG4gZnJvbSAwIHRvIDI0IHtcbiAgICAgICAgJHJldDogJHJldCArIHBvdygkeCwgJG4pIC8gZmFjdCgkbik7XG4gICAgfVxuICAgIEByZXR1cm4gJHJldDtcbn0iLCIvLyBSZXR1cm5zIHRoZSBmYWN0b3JpYWwgb2YgYSBub24tbmVnYXRpdmUgaW50ZWdlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeCBBIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLlxuLy8gQHJldHVybiB7TnVtYmVyfVxuLy8gQGV4YW1wbGVcbi8vICAgICBmYWN0KDApIC8vIDFcbi8vICAgICBmYWN0KDgpIC8vIDQwMzIwXG5AZnVuY3Rpb24gZmFjdCgkeCkge1xuICAgIEBpZiAkeCA8IDAgb3IgICR4ICE9IGZsb29yKCR4KSB7XG4gICAgICAgIEB3YXJuIFwiQXJndW1lbnQgZm9yIGBmYWN0KClgIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLlwiO1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICAgICRyZXQ6IDE7XG4gICAgQHdoaWxlICR4ID4gMCB7XG4gICAgICAgICRyZXQ6ICRyZXQgKiAkeDtcbiAgICAgICAgJHg6ICR4IC0gMTtcbiAgICB9XG4gICAgQHJldHVybiAkcmV0O1xufSIsIi8vIFJldHVybnMgYSB0d28tZWxlbWVudCBsaXN0IGNvbnRhaW5pbmcgdGhlIG5vcm1hbGl6ZWQgZnJhY3Rpb24gYW5kIGV4cG9uZW50IG9mIG51bWJlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQHJldHVybiB7TGlzdH0gZnJhY3Rpb24sIGV4cG9uZW50XG5AZnVuY3Rpb24gZnJleHAoJHgpIHtcbiAgICAkZXhwOiAwO1xuICAgIEBpZiAkeCA8IDAge1xuICAgICAgICAkeDogJHggKiAtMTtcbiAgICB9XG4gICAgQGlmICR4IDwgMC41IHtcbiAgICAgICAgQHdoaWxlICR4IDwgMC41IHtcbiAgICAgICAgICAgICR4OiAkeCAqIDI7XG4gICAgICAgICAgICAkZXhwOiAkZXhwIC0gMTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHggPj0gMSB7XG4gICAgICAgIEB3aGlsZSAkeCA+PSAxIHtcbiAgICAgICAgICAgICR4OiAkeCAvIDI7XG4gICAgICAgICAgICAkZXhwOiAkZXhwICsgMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICR4LCAkZXhwO1xufSIsIi8vIFJldHVybnMgJHggKiAyXiRleHBcbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBcbkBmdW5jdGlvbiBsZGV4cCgkeCwgJGV4cCkge1xuICAgICRiOiBpZigkZXhwID49IDAsIDIsIDEgLyAyKTtcbiAgICBAaWYgJGV4cCA8IDAge1xuICAgICAgICAkZXhwOiAkZXhwICogLTE7XG4gICAgfVxuICAgIEB3aGlsZSAkZXhwID4gMCB7XG4gICAgICAgIEBpZiAkZXhwICUgMiA9PSAxIHtcbiAgICAgICAgICAgICR4OiAkeCAqICRiO1xuICAgICAgICB9XG4gICAgICAgICRiOiAkYiAqICRiO1xuICAgICAgICAkZXhwOiBmbG9vcigkZXhwICogMC41KTtcbiAgICB9XG4gICAgQHJldHVybiAkeDtcbn0iLCIvLyBSZXR1cm5zIHRoZSBuYXR1cmFsIGxvZ2FyaXRobSBvZiBhIG51bWJlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQGV4YW1wbGVcbi8vICAgICBsb2coMikgIC8vIDAuNjkzMTVcbi8vICAgICBsb2coMTApIC8vIDIuMzAyNTlcbkBmdW5jdGlvbiBsb2coJHgpIHtcbiAgICBAaWYgJHggPD0gMCB7XG4gICAgICAgIEByZXR1cm4gMCAvIDA7XG4gICAgfVxuICAgICRrOiBudGgoZnJleHAoJHggLyAkU1FSVDIpLCAyKTtcbiAgICAkeDogJHggLyBsZGV4cCgxLCAkayk7XG4gICAgJHg6ICgkeCAtIDEpIC8gKCR4ICsgMSk7XG4gICAgJHgyOiAkeCAqICR4O1xuICAgICRpOiAxO1xuICAgICRzOiAkeDtcbiAgICAkc3A6IG51bGw7XG4gICAgQHdoaWxlICRzcCAhPSAkcyB7XG4gICAgICAgICR4OiAkeCAqICR4MjtcbiAgICAgICAgJGk6ICRpICsgMjtcbiAgICAgICAgJHNwOiAkcztcbiAgICAgICAgJHM6ICRzICsgJHggLyAkaTtcbiAgICB9XG4gICAgQHJldHVybiAkTE4yICogJGsgKyAyICogJHM7XG59IiwiLy8gVXNlZnVsIE9OTFkgd2hlbiBjYWxjdWxhdGluZyBsaWdodG5lc3Mgb24gYSBjb2xvci5cbi8vIFxuLy8gV2UgYXJlIHJlcGxhY2luZyB0aGlzIGNhbGN1bGF0aW9uOlxuLy8gJHJnYjogaWYoJHJnYiA8IC4wMzkyOCwgJHJnYiAvIDEyLjkyLCBwb3coKCRyZ2IgKyAuMDU1KSAvIDEuMDU1LCAyLjQpKTtcbi8vICgkcmdiID0gYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUgZGl2aWRlZCBieSAyNTUpLlxuXG4kbHVtaW5hbmNlLXByZWNhbGM6IFxuMCwgMC4wMDAzMDM1MjY5ODM1LCAwLjAwMDYwNzA1Mzk2NzEsIDAuMDAwOTEwNTgwOTUwNiwgMC4wMDEyMTQxMDc5MzQsIDAuMDAxNTE3NjM0OTE4LCAwLjAwMTgyMTE2MTkwMSwgMC4wMDIxMjQ2ODg4ODUsIDAuMDAyNDI4MjE1ODY4LCAwLjAwMjczMTc0Mjg1MiwgXG4wLjAwMzAzNTI2OTgzNSwgMC4wMDMzNDY1MzU3NjQsIDAuMDAzNjc2NTA3MzI0LCAwLjAwNDAyNDcxNzAxOCwgMC4wMDQzOTE0NDIwMzcsIDAuMDA0Nzc2OTUzNDgxLCAwLjAwNTE4MTUxNjcwMiwgMC4wMDU2MDUzOTE2MjQsIDAuMDA2MDQ4ODMzMDIzLCBcbjAuMDA2NTEyMDkwNzkzLCAwLjAwNjk5NTQxMDE4NywgMC4wMDc0OTkwMzIwNDMsIDAuMDA4MDIzMTkyOTg1LCAwLjAwODU2ODEyNTYxOCwgMC4wMDkxMzQwNTg3MDIsIDAuMDA5NzIxMjE3MzIsIDAuMDEwMzI5ODIzMDMsIDAuMDEwOTYwMDk0MDEsIFxuMC4wMTE2MTIyNDUxOCwgMC4wMTIyODY0ODgzNiwgMC4wMTI5ODMwMzIzNCwgMC4wMTM3MDIwODMwNSwgMC4wMTQ0NDM4NDM2LCAwLjAxNTIwODUxNDQyLCAwLjAxNTk5NjI5MzM3LCAwLjAxNjgwNzM3NTc1LCAwLjAxNzY0MTk1NDQ5LCBcbjAuMDE4NTAwMjIwMTMsIDAuMDE5MzgyMzYwOTYsIDAuMDIwMjg4NTYzMDYsIDAuMDIxMjE5MDEwMzgsIDAuMDIyMTczODg0NzksIDAuMDIzMTUzMzY2MTgsIDAuMDI0MTU3NjMyNDUsIDAuMDI1MTg2ODU5NjMsIDAuMDI2MjQxMjIxODksIFxuMC4wMjczMjA4OTE2NCwgMC4wMjg0MjYwMzk1LCAwLjAyOTU1NjgzNDQ0LCAwLjAzMDcxMzQ0MzczLCAwLjAzMTg5NjAzMzA3LCAwLjAzMzEwNDc2NjU3LCAwLjAzNDMzOTgwNjgxLCAwLjAzNTYwMTMxNDg4LCAwLjAzNjg4OTQ1MDQsIFxuMC4wMzgyMDQzNzE2LCAwLjAzOTU0NjIzNTI4LCAwLjA0MDkxNTE5NjkxLCAwLjA0MjMxMTQxMDYyLCAwLjA0MzczNTAyOTI2LCAwLjA0NTE4NjIwNDM5LCAwLjA0NjY2NTA4NjM0LCAwLjA0ODE3MTgyNDIzLCAwLjA0OTcwNjU2NTk4LCBcbjAuMDUxMjY5NDU4MzcsIDAuMDUyODYwNjQ3MDIsIDAuMDU0NDgwMjc2NDQsIDAuMDU2MTI4NDkwMDUsIDAuMDU3ODA1NDMwMTksIDAuMDU5NTExMjM4MTYsIDAuMDYxMjQ2MDU0MjMsIDAuMDYzMDEwMDE3NjUsIDAuMDY0ODAzMjY2NjksIFxuMC4wNjY2MjU5Mzg2NCwgMC4wNjg0NzgxNjk4NCwgMC4wNzAzNjAwOTU3LCAwLjA3MjI3MTg1MDY4LCAwLjA3NDIxMzU2ODM4LCAwLjA3NjE4NTM4MTQ4LCAwLjA3ODE4NzQyMTgxLCAwLjA4MDIxOTgyMDMxLCAwLjA4MjI4MjcwNzEzLCBcbjAuMDg0Mzc2MjExNTQsIDAuMDg2NTAwNDYyMDQsIDAuMDg4NjU1NTg2MjksIDAuMDkwODQxNzExMTgsIDAuMDkzMDU4OTYyODUsIDAuMDk1MzA3NDY2NjMsIDAuMDk3NTg3MzQ3MTQsIDAuMDk5ODk4NzI4MjUsIDAuMTAyMjQxNzMzMSwgXG4wLjEwNDYxNjQ4NDEsIDAuMTA3MDIzMTAzLCAwLjEwOTQ2MTcxMDgsIDAuMTExOTMyNDI3OCwgMC4xMTQ0MzUzNzM4LCAwLjExNjk3MDY2NzgsIDAuMTE5NTM4NDI4LCAwLjEyMjEzODc3MjIsIDAuMTI0NzcxODE3NiwgMC4xMjc0Mzc2ODA0LCBcbjAuMTMwMTM2NDc2NywgMC4xMzI4NjgzMjE2LCAwLjEzNTYzMzMyOTcsIDAuMTM4NDMxNjE1LCAwLjE0MTI2MzI5MTEsIDAuMTQ0MTI4NDcwOSwgMC4xNDcwMjcyNjY1LCAwLjE0OTk1OTc4OTgsIDAuMTUyOTI2MTUyLCAwLjE1NTkyNjQ2MzcsIFxuMC4xNTg5NjA4MzUxLCAwLjE2MjAyOTM3NTYsIDAuMTY1MTMyMTk0NSwgMC4xNjgyNjk0MDAyLCAwLjE3MTQ0MTEwMDcsIDAuMTc0NjQ3NDAzNywgMC4xNzc4ODg0MTYsIDAuMTgxMTY0MjQ0MiwgMC4xODQ0NzQ5OTQ1LCAwLjE4NzgyMDc3MjMsIFxuMC4xOTEyMDE2ODI3LCAwLjE5NDYxNzgzMDQsIDAuMTk4MDY5MzE5NiwgMC4yMDE1NTYyNTM4LCAwLjIwNTA3ODczNjQsIDAuMjA4NjM2ODcwMSwgMC4yMTIyMzA3NTc0LCAwLjIxNTg2MDUwMDEsIDAuMjE5NTI2MTk5NywgMC4yMjMyMjc5NTczLCBcbjAuMjI2OTY1ODczNSwgMC4yMzA3NDAwNDg1LCAwLjIzNDU1MDU4MjIsIDAuMjM4Mzk3NTczOCwgMC4yNDIyODExMjI1LCAwLjI0NjIwMTMyNjcsIDAuMjUwMTU4Mjg0NywgMC4yNTQxNTIwOTQzLCAwLjI1ODE4Mjg1MjksIDAuMjYyMjUwNjU3NSwgXG4wLjI2NjM1NTYwNDgsIDAuMjcwNDk3NzkxLCAwLjI3NDY3NzMxMjEsIDAuMjc4ODk0MjYzNSwgMC4yODMxNDg3NDA0LCAwLjI4NzQ0MDgzNzcsIDAuMjkxNzcwNjQ5OCwgMC4yOTYxMzgyNzA4LCAwLjMwMDU0Mzc5NDQsIDAuMzA0OTg3MzE0MSwgXG4wLjMwOTQ2ODkyMjgsIDAuMzEzOTg4NzEzNCwgMC4zMTg1NDY3NzgxLCAwLjMyMzE0MzIwOTEsIDAuMzI3Nzc4MDk4MSwgMC4zMzI0NTE1MzYzLCAwLjMzNzE2MzYxNSwgMC4zNDE5MTQ0MjQ5LCAwLjM0NjcwNDA1NjQsIDAuMzUxNTMyNTk5NSwgXG4wLjM1NjQwMDE0NDEsIDAuMzYxMzA2Nzc5OCwgMC4zNjYyNTI1OTU2LCAwLjM3MTIzNzY4MDUsIDAuMzc2MjYyMTIzLCAwLjM4MTMyNjAxMTQsIDAuMzg2NDI5NDMzOCwgMC4zOTE1NzI0Nzc3LCAwLjM5Njc1NTIzMDcsIDAuNDAxOTc3Nzc5OCwgXG4wLjQwNzI0MDIxMTksIDAuNDEyNTQyNjEzNSwgMC40MTc4ODUwNzA4LCAwLjQyMzI2NzY3LCAwLjQyODY5MDQ5NjYsIDAuNDM0MTUzNjM2MiwgMC40Mzk2NTcxNzM4LCAwLjQ0NTIwMTE5NDUsIDAuNDUwNzg1NzgyOCwgMC40NTY0MTEwMjMyLCBcbjAuNDYyMDc2OTk5NywgMC40Njc3ODM3OTYxLCAwLjQ3MzUzMTQ5NjEsIDAuNDc5MzIwMTgzMSwgMC40ODUxNDk5NDAxLCAwLjQ5MTAyMDg0OTgsIDAuNDk2OTMyOTk1MSwgMC41MDI4ODY0NTgsIDAuNTA4ODgxMzIwOSwgMC41MTQ5MTc2NjU0LCBcbjAuNTIwOTk1NTczMiwgMC41MjcxMTUxMjU3LCAwLjUzMzI3NjQwNCwgMC41Mzk0Nzk0ODksIDAuNTQ1NzI0NDYxNCwgMC41NTIwMTE0MDE1LCAwLjU1ODM0MDM4OTYsIDAuNTY0NzExNTA1NywgMC41NzExMjQ4Mjk1LCAwLjU3NzU4MDQ0MDQsIFxuMC41ODQwNzg0MTc5LCAwLjU5MDYxODg0MDksIDAuNTk3MjAxNzg4NCwgMC42MDM4MjczMzg5LCAwLjYxMDQ5NTU3MDgsIDAuNjE3MjA2NTYyNCwgMC42MjM5NjAzOTE3LCAwLjYzMDc1NzEzNjMsIDAuNjM3NTk2ODc0LCAwLjY0NDQ3OTY4MiwgXG4wLjY1MTQwNTYzNzQsIDAuNjU4Mzc0ODE3MywgMC42NjUzODcyOTgzLCAwLjY3MjQ0MzE1NywgMC42Nzk1NDI0Njk2LCAwLjY4NjY4NTMxMjQsIDAuNjkzODcxNzYxMywgMC43MDExMDE4OTE5LCAwLjcwODM3NTc3OTksIDAuNzE1NjkzNTAwNSwgXG4wLjcyMzA1NTEyODksIDAuNzMwNDYwNzQwMSwgMC43Mzc5MTA0MDg4LCAwLjc0NTQwNDIwOTUsIDAuNzUyOTQyMjE2OCwgMC43NjA1MjQ1MDQ3LCAwLjc2ODE1MTE0NzIsIDAuNzc1ODIyMjE4MywgMC43ODM1Mzc3OTE1LCAwLjc5MTI5Nzk0MDMsIFxuMC43OTkxMDI3MzgsIDAuODA2OTUyMjU3NywgMC44MTQ4NDY1NzIyLCAwLjgyMjc4NTc1NDQsIDAuODMwNzY5ODc2OCwgMC44Mzg3OTkwMTE3LCAwLjg0Njg3MzIzMTUsIDAuODU0OTkyNjA4MSwgMC44NjMxNTcyMTM1LCAwLjg3MTM2NzExOTIsIFxuMC44Nzk2MjIzOTY5LCAwLjg4NzkyMzExNzksIDAuODk2MjY5MzUzNCwgMC45MDQ2NjExNzQ0LCAwLjkxMzA5ODY1MTgsIDAuOTIxNTgxODU2MywgMC45MzAxMTA4NTg0LCAwLjkzODY4NTcyODUsIDAuOTQ3MzA2NTM2NywgMC45NTU5NzMzNTMyLCBcbjAuOTY0Njg2MjQ3OSwgMC45NzM0NDUyOTA0LCAwLjk4MjI1MDU1MDMsIDAuOTkxMTAyMDk3MSwgMTsiLCIvLyBSZXR1cm5zIGJhc2UgdG8gdGhlIGV4cG9uZW50IHBvd2VyLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFRoZSBiYXNlIG51bWJlclxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHAgVGhlIGV4cG9uZW50IHRvIHdoaWNoIHRvIHJhaXNlIGJhc2Vcbi8vIEByZXR1cm4ge051bWJlcn1cbi8vIEBleGFtcGxlXG4vLyAgICAgcG93KDQsIDIpICAgLy8gMTZcbi8vICAgICBwb3coNCwgLTIpICAvLyAwLjA2MjVcbi8vICAgICBwb3coNCwgMC4yKSAvLyAxLjMxOTUxXG4vLyBAZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwKSB7XG4vLyAgICAgQGlmICRleHAgPT0gZmxvb3IoJGV4cCkge1xuLy8gICAgICAgICAkcjogMTtcbi8vICAgICAgICAgJHM6IDA7XG4vLyAgICAgICAgIEBpZiAkZXhwIDwgMCB7XG4vLyAgICAgICAgICAgICAkZXhwOiAkZXhwICogLTE7XG4vLyAgICAgICAgICAgICAkczogMTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgICBAd2hpbGUgJGV4cCA+IDAge1xuLy8gICAgICAgICAgICAgQGlmICRleHAgJSAyID09IDEge1xuLy8gICAgICAgICAgICAgICAgICRyOiAkciAqICRiYXNlO1xuLy8gICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgJGV4cDogZmxvb3IoJGV4cCAqIDAuNSk7XG4vLyAgICAgICAgICAgICAkYmFzZTogJGJhc2UgKiAkYmFzZTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgICBAcmV0dXJuIGlmKCRzICE9IDAsIDEgLyAkciwgJHIpO1xuLy8gICAgIH0gQGVsc2Uge1xuLy8gICAgICAgICBAcmV0dXJuIGV4cChsb2coJGJhc2UpICogJGV4cCk7XG4vLyAgICAgfVxuLy8gfVxuXG4vLyBTaW1wbGVyIFBPVygpLCBmb3Igc3BlZWQhXG5AZnVuY3Rpb24gcG93KCRudW1iZXIsICRleHApIHtcbiAgJHZhbHVlOiAkbnVtYmVyO1xuICBAaWYgJGV4cCA+IDAge1xuICAgIC8vIElmIHRoZSBleHBvbmVudCBpcyBwb3NpdGl2ZSwgbXVsdGlwbHkuXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cCA8IDAge1xuICAgIC8vIElmIHRoZSBleHBvbmVudCBpcyBuZWdhdGl2ZSwgZGl2aWRlLlxuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSgkZXhwKSB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBJZiB0aGUgZXhwb25lbnQgaXMgemVybywganVzdCByZXR1cm4gMS5cbiAgICAkdmFsdWU6IDE7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn0iLCJAZnVuY3Rpb24gbnRoLXJvb3QtZXN0aW1hdGUoJG51bWJlciwgJGd1ZXNzLCAkbikge1xuICBAcmV0dXJuIDEvJG4gKiAoKCRudW1iZXIvcG93KCRndWVzcywgJG4gLSAxKSkgLSAkZ3Vlc3MpO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bWJlciwgJGRlZ3JlZSwgJHByZWNpc2lvbjogNSkge1xuICAkZ3Vlc3M6IDIuNztcbiAgJHByZXZpb3VzLWd1ZXNzOiAwO1xuICBcbiAgLy8gV2hpbGUgcHJlY2lzaW9uIGhhcyBub3QgYmVlbiBtZXQsIGtlZXAgZ3Vlc3NpbmdcbiAgQHdoaWxlIHJvdW5kKCRwcmV2aW91cy1ndWVzcyAqIHBvdygxMCwgJHByZWNpc2lvbikpICE9IHJvdW5kKCRndWVzcyAqIHBvdygxMCwgJHByZWNpc2lvbikpIHtcbiAgICAkcHJldmlvdXMtZ3Vlc3M6ICRndWVzcztcbiAgICAkZ3Vlc3M6ICRndWVzcyArIG50aC1yb290LWVzdGltYXRlKCRudW1iZXIsICRndWVzcywgNSk7XG4gIH1cbiAgXG4gIEByZXR1cm4gJGd1ZXNzO1xufSIsIi8vIFJldHVybnMgdGhlIHNxdWFyZSByb290IG9mIGEgbnVtYmVyLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICR4XG4vLyBAZXhhbXBsZVxuLy8gICAgIHNxcnQoMikgLy8gMS40MTQyMVxuLy8gICAgIHNxcnQoNSkgLy8gMi4yMzYwN1xuQGZ1bmN0aW9uIHNxcnQgKCR4KSB7XG4gICAgQGlmICR4IDwgMCB7XG4gICAgICAgIEB3YXJuIFwiQXJndW1lbnQgZm9yIGBzcXJ0KClgIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIuXCI7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgJHJldDogMTtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDI0IHtcbiAgICAgICAgJHJldDogJHJldCAtIChwb3coJHJldCwgMikgLSAkeCkgLyAoMiAqICRyZXQpO1xuICAgIH1cbiAgICBAcmV0dXJuICRyZXQ7XG59IiwiQGZ1bmN0aW9uIHBpKCkge1xuICAgIEByZXR1cm4gMy4xNDE1OTI2NTM1OTtcbn1cblxuQGZ1bmN0aW9uIHJhZCgkYW5nbGUpIHtcbiAgICAkdW5pdDogdW5pdCgkYW5nbGUpO1xuICAgICR1bml0bGVzczogJGFuZ2xlIC8gKCRhbmdsZSAqIDAgKyAxKTtcbiAgICAvLyBJZiB0aGUgYW5nbGUgaGFzICdkZWcnIGFzIHVuaXQsIGNvbnZlcnQgdG8gcmFkaWFucy5cbiAgICBAaWYgJHVuaXQgPT0gZGVnIHtcbiAgICAgICAgJHVuaXRsZXNzOiAkdW5pdGxlc3MgLyAxODAgKiBwaSgpO1xuICAgIH1cbiAgICBAcmV0dXJuICR1bml0bGVzcztcbn1cblxuQGZ1bmN0aW9uIHNpbigkYW5nbGUpIHtcbiAgICAkc2luOiAwO1xuICAgICRhbmdsZTogcmFkKCRhbmdsZSk7XG4gICAgLy8gSXRlcmF0ZSBhIGJ1bmNoIG9mIHRpbWVzLlxuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggMTAge1xuICAgICAgICAkc2luOiAkc2luICsgcG93KC0xLCAkaSkgKiBwb3coJGFuZ2xlLCAoMiAqICRpICsgMSkpIC8gZmFjdCgyICogJGkgKyAxKTtcbiAgICB9XG4gICAgQHJldHVybiAkc2luO1xufVxuXG5AZnVuY3Rpb24gY29zKCRhbmdsZSkge1xuICAgICRjb3M6IDA7XG4gICAgJGFuZ2xlOiByYWQoJGFuZ2xlKTtcbiAgICAvLyBJdGVyYXRlIGEgYnVuY2ggb2YgdGltZXMuXG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAxMCB7XG4gICAgICAgICRjb3M6ICRjb3MgKyBwb3coLTEsICRpKSAqIHBvdygkYW5nbGUsIDIgKiAkaSkgLyBmYWN0KDIgKiAkaSk7XG4gICAgfVxuICAgIEByZXR1cm4gJGNvcztcbn1cblxuQGZ1bmN0aW9uIHRhbigkYW5nbGUpIHtcbiAgICBAcmV0dXJuIHNpbigkYW5nbGUpIC8gY29zKCRhbmdsZSk7XG59XG5cbi8qKlxuICogb24tY2lyY2xlIHRha2VzIGEgcmFkaXVzLCBwb3NpdGlvbiBvbiBhIGNpcmNsZSwgbnVtYmVyIG9mIHBvc3NpYmxlIHBvc2l0aW9ucyBhbmQgcmV0dXJucyB0b3AgYW5kIGxlZnQgcHJvcGVydGllc1xuICpcbiAqICRvcmRpbmFsUG9zaXRpb24ge051bWJlcn0gdGhlIHBvc2l0aW9uIG9mIHRoZSBpdGVtIG9uIHRoZSBjaXJjbGUsIGNvdW50aW5nIGZyb20gMSAoTm9ydGgpIHRocm91Z2ggTlxuICogJHJhZGl1cyB7TnVtYmVyfSAgICByYWRpdXMgb2YgdGhlIGNpcmNsZSBpbiBwaXhlbHNcbiAqICRwb3NpdGlvbnMge051bWJlcn0gICB0aGUgbnVtYmVyIG9mIHBvc2l0aW9ucyBvbiB0aGUgY2lyY2xlXG4gKiAkb3JpZ2luWCB7TnVtYmVyfSAgIG9wdGlvbmFsIFggb3JpZ2luIHBvaW50IGZvciB0aGUgY2lyY2xlLCBkZWZhdWx0cyB0byB0aGUgcmFkaXVzXG4gKiAkb3JpZ2luWSB7TnVtYmVyfSAgIG9wdGlvbmFsIFkgb3JpZ2luIHBvaW50IGZvciB0aGUgY2lyY2xlLCBkZWZhdWx0cyB0byB0aGUgcmFkaXVzXG4gKiAkb2Zmc2V0WCB7TnVtYmVyfSAgIG9wdGlvbmFsIFggb2Zmc2V0IGZvciB0aGUgaXRlbSwgeW91IG1pZ2h0IHVzZSAxLzIgb2YgdGhlIHdpZHRoIG9mIGFuIGl0ZW0sIGRlZmF1bHQgaXMgMFxuICogJG9mZnNldFkge051bWJlcn0gICBvcHRpb25hbCBZIG9mZnNldCBmb3IgdGhlIGl0ZW0sIHlvdSBtaWdodCB1c2UgMS8yIG9mIHRoZSBoZWlnaHQgb2YgYW4gaXRlbSwgZGVmYXVsdCBpcyAwXG4gKi9cbkBmdW5jdGlvbiBvbi1jaXJjbGUoJG9yZGluYWxQb3NpdGlvbiwgJHJhZGl1czogMTgwLCAkcG9zaXRpb25zOiAxMywgJG9yaWdpblg6ICRyYWRpdXMsICRvcmlnaW5ZOiAkcmFkaXVzLCAkb2Zmc2V0WDogMCwgJG9mZnNldFk6IDAsICRjaXJjbGVTaXplOiAzNjAsICRzdGFydFBvczogOTAsICRyZXZlcnNlT3JkZXI6IHRydWUpIHtcblxuICAgIEBpZiAkcmV2ZXJzZU9yZGVyIHtcbiAgICAgICAgJHBvc2l0aW9uQW5nbGVEZWdyZWVzOiAtMSAqICgkb3JkaW5hbFBvc2l0aW9uIC0gMSkgKiAkY2lyY2xlU2l6ZSAvICRwb3NpdGlvbnMgKyAkc3RhcnRQb3M7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICRwb3NpdGlvbkFuZ2xlRGVncmVlczogKCRvcmRpbmFsUG9zaXRpb24gLSAxKSAqICRjaXJjbGVTaXplIC8gJHBvc2l0aW9ucyArICRzdGFydFBvcztcbiAgICB9XG5cbiAgICAkcG9zaXRpb25BbmdsZVJhZGlhbnM6ICRwb3NpdGlvbkFuZ2xlRGVncmVlcyAqIHBpKCkgLyAxODA7XG5cbiAgICAkY2lyY2xlWHBvczogI3tyb3VuZCgkb3JpZ2luWCArICRvZmZzZXRYICsgJHJhZGl1cyAqIGNvcygkcG9zaXRpb25BbmdsZVJhZGlhbnMpKX1weDtcbiAgICAkY2lyY2xlWXBvczogI3tyb3VuZCgkb3JpZ2luWSArICRvZmZzZXRZICsgJHJhZGl1cyAqIHNpbigkcG9zaXRpb25BbmdsZVJhZGlhbnMpKX1weDtcblxuICAgIEByZXR1cm4gKCRjaXJjbGVYcG9zLCAkY2lyY2xlWXBvcyk7XG5cbn0iLCIvLyBLdWRvczogaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxMy8wOC8wOC9hZHZhbmNlZC1zYXNzLWxpc3QtZnVuY3Rpb25zL1xuXG5AZnVuY3Rpb24gcmVwbGFjZS1udGgoJGxpc3QsICRpbmRleCwgJHZhbHVlKSB7XG4gICRyZXN1bHQ6IG51bGw7XG4gICAgICBcbiAgQGlmIHR5cGUtb2YoJGluZGV4KSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiJGluZGV4OiAje3F1b3RlKCRpbmRleCl9IGlzIG5vdCBhIG51bWJlciBmb3IgYHJlcGxhY2UtbnRoYC5cIjtcbiAgfVxuXG4gIEBlbHNlIGlmICRpbmRleCA9PSAwIHtcbiAgICBAd2FybiBcIkxpc3QgaW5kZXggMCBtdXN0IGJlIGEgbm9uLXplcm8gaW50ZWdlciBmb3IgYHJlcGxhY2UtbnRoYC5cIjtcbiAgfVxuICAgICAgXG4gIEBlbHNlIGlmIGFicygkaW5kZXgpID4gbGVuZ3RoKCRsaXN0KSB7XG4gICAgQHdhcm4gXCJMaXN0IGluZGV4IGlzICN7JGluZGV4fSBidXQgbGlzdCBpcyBvbmx5ICN7bGVuZ3RoKCRsaXN0KX0gaXRlbSBsb25nIGZvciBgcmVwbGFjZS1udGhgLlwiO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRyZXN1bHQ6ICgpO1xuICAgICRpbmRleDogaWYoJGluZGV4IDwgMCwgbGVuZ3RoKCRsaXN0KSArICRpbmRleCArIDEsICRpbmRleCk7ICBcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRsaXN0KSB7XG4gICAgICBAaWYgJGkgPT0gJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICR2YWx1ZSk7XG4gICAgICB9XG4gICAgXG4gICAgICBAZWxzZSB7XG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gXG4gIEByZXR1cm4gJHJlc3VsdDtcbn0iLCJAaW1wb3J0IFwic3RyaW5ncy9zdHItZXhwbG9kZVwiOyIsIi8vLyBTcGxpdCBgJHN0cmluZ2AgaW50byBzZXZlcmFsIHBhcnRzIHVzaW5nIGAkZGVsaW1pdGVyYC5cbi8vLyBAc2luY2UgMS4yLjBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0cmluZyAgICAtIHN0cmluZyB0byBzcGxpdFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVsaW1pdGVyICgnJykgLSBzdHJpbmcgdG8gdXNlIGFzIGEgZGVsaW1pdGVyIHRvIHNwbGl0IGAkc3RyaW5nYFxuLy8vIEByZXR1cm4ge0xpc3R9XG5AZnVuY3Rpb24gX3NzLXN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXI6IFwiXCIpIHtcbiAgICAkcmVzdWx0OiAoKTtcbiAgICAkbGVuZ3RoOiBzdHItbGVuZ3RoKCRzdHJpbmcpO1xuICAgIFxuICAgIEBpZiBzdHItbGVuZ3RoKCRkZWxpbWl0ZXIpID09IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQHJldHVybiAkcmVzdWx0O1xuICAgIH1cbiAgICBcbiAgICAkcnVubmluZzogdHJ1ZTtcbiAgICAkcmVtYWluaW5nOiAkc3RyaW5nO1xuICAgIFxuICAgIEB3aGlsZSAkcnVubmluZyB7XG4gICAgICAgICRpbmRleDogc3RyLWluZGV4KCRyZW1haW5pbmcsICRkZWxpbWl0ZXIpO1xuICAgICAgICBcbiAgICAgICAgQGlmICRpbmRleCB7XG4gICAgICAgICAgICAkc2xpY2U6IHN0ci1zbGljZSgkcmVtYWluaW5nLCAxLCAkaW5kZXggLSAxKTtcbiAgICAgICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkc2xpY2UpO1xuICAgICAgICAgICAgJHJlbWFpbmluZzogc3RyLXNsaWNlKCRyZW1haW5pbmcsICRpbmRleCArIHN0ci1sZW5ndGgoJGRlbGltaXRlcikpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRydW5uaW5nOiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBAcmV0dXJuIGFwcGVuZCgkcmVzdWx0LCAkcmVtYWluaW5nKTtcbn1cblxuQGZ1bmN0aW9uIHN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXI6ICcnKSB7XG4gICAgLy9AaWYgdHlwZS1vZigkc3RyaW5nKSAhPSBcInN0cmluZ1wiIHtcbiAgICAvLyAgICBAZXJyb3IgXCJgZXhwbG9kZWAgZnVuY3Rpb24gZXhwZWN0aW5nIGEgc3RyaW5nOyAje3R5cGUtb2YoJHN0cmluZyl9IGdpdmVuLlwiO1xuICAgIC8vfVxuICAgIFxuICAgIC8vQGlmIHR5cGUtb2YoJGRlbGltaXRlcikgIT0gXCJzdHJpbmdcIiB7XG4gICAgLy8gICAgQGVycm9yIFwiYGV4cGxvZGVgIGZ1bmN0aW9uIGV4cGVjdGluZyBhIHN0cmluZzsgI3t0eXBlLW9mKCRkZWxpbWl0ZXIpfSBnaXZlbi5cIjtcbiAgICAvL31cbiAgICBcbiAgICBAcmV0dXJuIF9zcy1zdHItZXhwbG9kZSgkc3RyaW5nLCAkZGVsaW1pdGVyKTtcbn0iLCJAZnVuY3Rpb24gc3RyaXAtdW5pdHMoJG51bWJlcikge1xuICAgIEByZXR1cm4gJG51bWJlciAvICgkbnVtYmVyICogMCArIDEpO1xufSIsIi8vTm90ZSB0aGF0IDsgaXMgdGhlIEBpbXBvcnQgc2VwYXJhdG9yXG4kZm9udC1jb21ibzogXCJUaXRpbGxpdW0rV2ViOjQwMCw3MDA7ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICdUaXRpbGxpdW0gV2ViJywgc2Fucy1zZXJpZlwiICFkZWZhdWx0O1xuXG4kZm9udC1wYXJ0czogc3RyLWV4cGxvZGUoJGZvbnQtY29tYm8sICc7Jyk7XG5cbkBpZiBsZW5ndGgoJGZvbnQtcGFydHMpIDwgMiB7XG4gICAgJGZvbnQtcGFydHM6IHN0ci1leHBsb2RlKFwiVGl0aWxsaXVtK1dlYjo0MDAsNzAwOyAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyAnVGl0aWxsaXVtIFdlYicsIHNhbnMtc2VyaWZcIiwgJzsnKTtcbn1cblxuQGlmIGxlbmd0aCgkZm9udC1wYXJ0cykgPiAyIHtcbiAgICAkZm9udC1pbXBvcnQ6IHVucXVvdGUobnRoKCRmb250LXBhcnRzLCAxKSk7XG4gICAgJGZvbnQtaXMtaW1wb3J0ZWQ6IGZhbHNlICFkZWZhdWx0ICFnbG9iYWw7XG5cbiAgICBAaWYgJGZvbnQtaXMtaW1wb3J0ZWQgIT0gdHJ1ZSB7XG4gICAgICAgIEBpbXBvcnQgdXJsKCcvL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9I3skZm9udC1pbXBvcnR9Jyk7XG4gICAgICAgICRmb250LWlzLWltcG9ydGVkOiB0cnVlO1xuICAgIH1cblxuICAgICRib2R5LWZvbnQtZmFtaWx5OiB1bnF1b3RlKG50aCgkZm9udC1wYXJ0cywgMikpO1xuICAgICRoZWFkZXItZm9udC1mYW1pbHk6IHVucXVvdGUobnRoKCRmb250LXBhcnRzLCAzKSk7XG59IEBlbHNlIHtcbiAgICAkYm9keS1mb250LWZhbWlseTogdW5xdW90ZShudGgoJGZvbnQtcGFydHMsIDEpKTtcbiAgICAkaGVhZGVyLWZvbnQtZmFtaWx5OiB1bnF1b3RlKG50aCgkZm9udC1wYXJ0cywgMikpO1xufVxuXG5AaWYgKHN0ci1pbmRleCgkZm9udC1jb21ibywgJ05vdG8gU2FucycpKSB7XG4gICAgJG1lbnUtZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4gICAgJHV0aWxzLW5hdi1mb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseSAhZGVmYXVsdDtcbn0iLCIvLyBHcmlkL2xheW91dFxuJHJvdy13aWR0aDogNzByZW0gIWRlZmF1bHQ7XG4kY29sdW1uLWd1dHRlcjogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGdsb2JhbC1yYWRpdXM6IDVweCAhZGVmYXVsdDtcbiRwYWdlLWxheW91dDogJ2ZyYW1lZCcgIWRlZmF1bHQ7IFxuJG9mZi1jYW52YXMtcG9zaXRpb246IHJpZ2h0ICFkZWZhdWx0O1xuJGJ4c2xpZGVyLWNvbnRyb2xzLW5hdmlnYXRpb24tbG9jYXRpb246IGlubGluZSAhZGVmYXVsdDtcblxuLy8gQ29sb3JzXG4kcHJpbWFyeS1jb2xvcjogIzAwN2JiNiAhZGVmYXVsdDtcbiR0b3AtYmc6ICMwMDdEQjkgIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbi1iZzogIzIxMjEyMSAhZGVmYXVsdDtcbiRoZWFkZXItYmc6ICMwMDc0QUMgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnMtYmc6ICMxNzE3MTcgIWRlZmF1bHQ7XG4kY29udGVudC1iZzogI0ZGRkZGRiAhZGVmYXVsdDtcbiRmb290ZXItYmc6ICMzMzMzMzMgIWRlZmF1bHQ7XG4kZW5kLWJnOiAjMzMzMzMzICFkZWZhdWx0O1xuJGJvZHktYmc6ICRlbmQtYmcgIWRlZmF1bHQ7XG4kY29udGVudC1iZy1pcy1kYXJrOiBpZihsdW1hKCRjb250ZW50LWJnKSA8IDUwLCB0cnVlLCBmYWxzZSk7XG4kY2FsbC10by1hY3Rpb24tY29sb3I6ICNEQjMxMUIgIWRlZmF1bHQ7XG4kZGlzY291bnQtYmFja2dyb3VuZDogJGNhbGwtdG8tYWN0aW9uLWNvbG9yICFkZWZhdWx0O1xuXG4kY29sb3ItY29udHJhc3QtdGhyZXNob2xkOiA0LjUgIWRlZmF1bHQ7ICAvLyA0LjUgPSBXQ0FHIEFBLCA3PSBXQ0FHIEFBQVxuXG4vLyBGb250IGNvbG9yc1xuJGJvZHktZm9udC1jb2xvciAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG4kYWx0ZXJuYXRpdmUtZm9udC1jb2xvcjogI2NjY2NjYyAhZGVmYXVsdDtcbiRkYXJrLWJvZHktdGV4dCAgICAgICAgOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuJGxpZ2h0LWJvZHktdGV4dCAgICAgICA6ICRhbHRlcm5hdGl2ZS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBCcmVhZGNydW1icyBjb2xvcnNcbiRjcnVtYi1mb250LWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkYnJlYWRjcnVtYnMtYmcsIDcpICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtY29sb3ItY3VycmVudDogJGNydW1iLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1wYWRkaW5nOiAwICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItY29udGFpbmVyLWhlaWdodDogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuXG4vLyBTZWN0aW9uIGNvbG9yc1xuJHNlY3Rpb25zICAgICAgICAgICAgIDogXCJ0b3BcIiwgXCJuYXZpZ2F0aW9uXCIsIFwiaGVhZGVyXCIsIFwiYnJlYWRjcnVtYnNcIiwgXCJjb250ZW50XCIsIFwiZm9vdGVyXCIsIFwiZW5kXCIgIWRlZmF1bHQ7XG4kc2VjdGlvbi1zZWxlY3RvcnMgICAgOiBcIi50b3AtYmdcIiwgXCIubmF2aWdhdGlvbi1iZ1wiLCBcIi5oZWFkZXItYmdcIiwgXCIuYnJlYWRjcnVtYnMtYmdcIiwgXCIuY29udGVudC1iZ1wiLCBcIi5mb290ZXItYmdcIiwgXCIuZW5kLWJnXCIgIWRlZmF1bHQ7XG4kc2VjdGlvbi1iYWNrZ3JvdW5kcyAgOiAkdG9wLWJnLCAkbmF2aWdhdGlvbi1iZywgJGhlYWRlci1iZywgJGJyZWFkY3J1bWJzLWJnLCAkY29udGVudC1iZywgJGZvb3Rlci1iZywgJGVuZC1iZyAhZGVmYXVsdDtcblxuLy8gRm9udCBzaXplc1xuJGgxLWZvbnQtc2l6ZTogcmVtLWNhbGMoMzUpICFkZWZhdWx0O1xuJGgyLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjgpICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjUpICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGg1LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIHNpemUgcmVkdWN0aW9uIG9uIHNtYWxsIHNjcmVlbnNcbiRoMS1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoNykgIWRlZmF1bHQ7XG4kaDItZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDUpICFkZWZhdWx0O1xuJGgzLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYygzKSAhZGVmYXVsdDtcbiRoNC1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMikgIWRlZmF1bHQ7XG4kaDUtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG4kaDYtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG5cbi8vIFRhYnNcbiRpbmNsdWRlLXF1aWNrZml4LXRhYi1jbGFzc2VzOiBmYWxzZTtcbiR0YWJzLWNvbnRhaW5lci1iZzogJGNvbnRlbnQtYmc7XG5cbi8vIGhlYWRlciBzdHVmZlxuJGxvZ28taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgcmVtLWNhbGMoNjApICFkZWZhdWx0O1xuJGxvZ28tbGFyZ2UtaGVpZ2h0OiAgICAgICAgICAgICAgcmVtLWNhbGMoODApICFkZWZhdWx0O1xuJGxvZ28tcm93LXNwYWNpbmc6ICAgICAgICAgICAgICAgMC41cmVtICFkZWZhdWx0O1xuJGxvZ28tbGFyZ2Utcm93LXNwYWNpbmc6ICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRtZW51LWl0ZW1zLXNwYWNpbmc6ICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LWJhci1oZWlnaHQ6ICAgICAgICAgICByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LWZvbnQtc2l6ZTogICAgICAgICAgICByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LWl0ZW0tc3BhY2luZzogICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiR1dGlscy1uYXYtbGluZS1oZWlnaHQ6ICAgICAgICAgIDEuMnJlbSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWJhY2tncm91bmQ6ICAgICAgICAgICMzMzMgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1saW5rLWNvbG9yOiAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtaXRlbS1wYWRkaW5nOiAgICAgICAgMnJlbSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0taGVpZ2h0OiAgICAgICAgIHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0tbGluZS1jb2xvcjogICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0tbGluZS1oZWlnaHQ6ICAgIDEuMiAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW9uLW1lZGl1bTogICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy10b3AtcGFkZGluZzogICAgICAgICAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtaGVpZ2h0ICogMnJlbSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLXRvcC1wb3NpdGlvbjogICAgICAgICRsb2dvLWhlaWdodCArICRvZmYtY2FudmFzLXRvcC1wYWRkaW5nICsgJGxvZ28tcm93LXNwYWNpbmcgKiAyICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemU6ICAgICAgNzAlICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplOiAgICAgNTAlICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtY2xvc2UtYnRuLWhlaWdodDogICAgJG9mZi1jYW52YXMtdG9wLXBhZGRpbmcgIWRlZmF1bHQ7XG4kbmF2LWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAzLjVyZW0gIWRlZmF1bHQ7XG4kbmF2LWJ0bi1oZWlnaHQ6ICAgICAgICAgICAgICAgICAzcmVtICFkZWZhdWx0O1xuJG5hdi1pY29uLXNwYWNpbmc6ICAgICAgICAgICAgICAgLjRyZW0gIWRlZmF1bHQ7XG4kbmF2LWZpcnN0LWxldmVsLWZvbnQtd2VpZ2h0OiAgICBib2xkICFkZWZhdWx0O1xuJG5hdi1maXJzdC1sZXZlbC10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtZm9udC1zaXplOiAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kbmF2LWhvcml6b250YWwtc2lkZS1wYWRkaW5nOiAgICAxcmVtICFkZWZhdWx0O1xuJG5hdi1maXJzdC1sZXZlbC1zcGFjaW5nOiAgICAgICAgMCAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtc2lkZS1wYWRkaW5nOiAgIDFyZW0gIWRlZmF1bHQ7XG4kZm9yY2UtaGlkZS1zZWFyY2gtb24tbGFyZ2UtdXA6ICB0cnVlICFkZWZhdWx0O1xuXG4vLyBTaWRlYmFyXG4kc2lkZWJhci1ib3gtYm9yZGVyLWNvbG9yOiBcdFx0IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDE1JSksIGRhcmtlbigkY29udGVudC1iZywgMTUlKSkgIWRlZmF1bHQ7XG4kc2lkZWJhci1ib3gtaGVhZGVyLWJhY2tncm91bmQ6ICBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCAzLjUlKSwgZGFya2VuKCRjb250ZW50LWJnLCAzLjUlKSkgIWRlZmF1bHQ7XG4kc2lkZWJhci1ib3gtY29udGVudC1iYWNrZ3JvdW5kOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCAxLjUlKSwgZGFya2VuKCRjb250ZW50LWJnLCAxLjUlKSkgIWRlZmF1bHQ7XG5cbi8vIFNpZGUgbmF2XG4kaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzOiBmYWxzZSAhZGVmYXVsdDtcbiRzaWRlLW5hdi1wYWRkaW5nOiAwICFkZWZhdWx0O1xuJHNpZGUtbmF2LWxpc3QtbWFyZ2luOiAwICFkZWZhdWx0O1xuJHNpZGUtbmF2LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJHNpZGUtbmF2LWxpbmstcGFkZGluZzogcmVtLWNhbGMoNyAxNikgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtaXRlbS1ib3JkZXItY29sb3I6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDEwJSksIGRhcmtlbigkY29udGVudC1iZywgMTAlKSkgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtaXRlbS1ib3JkZXItY29sb3ItbGV2ZWwtMDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgMTUlKSwgZGFya2VuKCRjb250ZW50LWJnLCAxNSUpKSAhZGVmYXVsdDtcbiRzaWRlLW5hdi1iZ2NvbG9yOiAkc2lkZWJhci1ib3gtY29udGVudC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHNpZGUtbmF2LXN1Ym1lbnUtYmdjb2xvcjogaWYobHVtYSgkc2lkZWJhci1ib3gtY29udGVudC1iYWNrZ3JvdW5kKSA8IDUwLCBsaWdodGVuKCRzaWRlYmFyLWJveC1jb250ZW50LWJhY2tncm91bmQsIDIlKSwgZGFya2VuKCRzaWRlYmFyLWJveC1jb250ZW50LWJhY2tncm91bmQsIDIlKSkgIWRlZmF1bHQ7XG5cbi8vIEJ1dHRvbnNcbiRidXR0b24tdG55OiByZW0tY2FsYyg2KSAhZGVmYXVsdDtcbiRidXR0b24tc21sOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kYnV0dG9uLW1lZDogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuJGJ1dHRvbi1scmc6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8gU29jaWFsIGljb25zIGluIGZvb3RlclxuQGlmIGx1bWEoJGZvb3Rlci1iZykgPCA1MCB7XG4gICAgJHNvY2lhbC1pY29uLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkZm9vdGVyLWJnKSAhZGVmYXVsdDtcbn0gQGVsc2Uge1xuICAgICRzb2NpYWwtaWNvbi1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkZm9vdGVyLWJnKSAhZGVmYXVsdDtcbn1cblxuLy8gUHJvZHVjdGxpc3RcbiRwcm9kdWN0bGlzdC1pbWFnZS1oZWlnaHQ6IDMwMHB4ICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1pbm5lci1wYWRkaW5nOiAkY29sdW1uLWd1dHRlci8yICFkZWZhdWx0O1xuJHByb2R1Y3QtZ3JpZC1idXktYnV0dG9uLXRvcC1zcGFjaW5nOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC1ncmlkLWJ1eS1idXR0b24tZGlzdGFuY2U6IHJlbS1jYWxjKDE4KSArICRidXR0b24tbWVkICsgJHByb2R1Y3QtZ3JpZC1idXktYnV0dG9uLXRvcC1zcGFjaW5nICsgJGNvbHVtbi1ndXR0ZXIgKiAxLjIgIWRlZmF1bHQ7XG5cbi8vIFNob3AgZmVhdHVyZXNcbiRzbGFiLXNlcGFyYXRvci13aWR0aDogMTAwcHggIWRlZmF1bHQ7XG4kc2xhYi1zZXBhcmF0b3ItY29sb3I6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssICNjY2MsICMzMzMpICFkZWZhdWx0O1xuJHNlY3Rpb24tc3BhY2luZy1zaXplOiAkY29sdW1uLWd1dHRlciAhZGVmYXVsdDtcbiIsIiRjb2x1bW4tZ3V0dGVyOiAxcmVtICFkZWZhdWx0O1xuJGVxdWFsLWhlaWdodC1jb2x1bW4taW1hZ2UtaGVpZ2h0OiAyMDBweCAhZGVmYXVsdDtcbiRlcXVhbC1oZWlnaHQtY29sdW1uLXdpZHRoOiAxMnJlbSAhZGVmYXVsdDtcbiRlcXVhbC1oZWlnaHQtaXRlbS1zcGFjaW5nOiAkY29sdW1uLWd1dHRlciAhZGVmYXVsdDtcblxuLy8gQ2FsY3VsYXRlIHRoZSBlcXVhbCBoZWlnaHQgcmFuZ2VzIG5vd1xuJG1heC1jb2x1bW5zOiA0ICFkZWZhdWx0O1xuJGVxdWFsLWhlaWdodC1sYXlvdXQtcmFuZ2VzOiAoMTogKDByZW0sICRlcXVhbC1oZWlnaHQtY29sdW1uLXdpZHRoICogMiAtIHJlbS1jYWxjKDEpKSk7XG5cbkBmb3IgJGNvbHMgZnJvbSAyIHRocm91Z2ggJG1heC1jb2x1bW5zIHtcblx0JG5leHQtbG93ZXItYm91bmQ6ICRlcXVhbC1oZWlnaHQtY29sdW1uLXdpZHRoICogJGNvbHM7XG5cdCRuZXh0LWhpZ2hlci1ib3VuZDogaWYoJGNvbHMgIT0gJG1heC1jb2x1bW5zLCAkZXF1YWwtaGVpZ2h0LWNvbHVtbi13aWR0aCAqICgkY29scyArIDEpIC0gcmVtLWNhbGMoMSksIDk5OTk5OTk5cmVtKTtcblx0JGVxdWFsLWhlaWdodC1sYXlvdXQtcmFuZ2VzOiBtYXAtbWVyZ2UoJGVxdWFsLWhlaWdodC1sYXlvdXQtcmFuZ2VzLCAoJGNvbHM6ICgkbmV4dC1sb3dlci1ib3VuZCwgJG5leHQtaGlnaGVyLWJvdW5kKSkpO1xufSIsIi8vIFRoZXNlIGFyZSB0aGUgb2xkIFBJT05FRVIgc2V0dGluZ3MsIHdoaWNoIHdhcyBUaGUgVGhlbWUgVGhhdCBTdGFydGVkIEl0IEFsbCDihKJcblxuLy8gR2xvYmFsIHNldHRpbmdzXG4kdG91Y2gtZnJpZW5kbHktc2l6ZTogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vIEZvbnQgc2V0dGluZ3NcbiRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcbiRwYWdlLXRpdGxlLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8gTGF5b3V0IHNldHRpbmdzXG4kbWVudS10eXBlOiAnZHJvcGRvd24nICFkZWZhdWx0OyAvLyBNdXN0IG1hdGNoIHRoZSBkZWZhdWx0IHNldHRpbmcgaW4gdGhlIGNvbmZpZy5waHAtZmlsZVxuJHBhZ2UtbGF5b3V0OiAnZnVsbCcgIWRlZmF1bHQ7ICAgLy8gJ2ZyYW1lZCcgb3IgJ2Z1bGwnXG4kb2ZmLWNhbnZhcy1wb3NpdGlvbjogbGVmdCAhZGVmYXVsdDtcblxuLy8gQWxlcnQgYm94IHNldHRpbmdzXG4kaW5jbHVkZS1odG1sLWFsZXJ0LWNsYXNzZXM6IGZhbHNlO1xuJGFsZXJ0LXBhZGRpbmctdG9wOiAxcmVtICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLXRvcDogMXJlbSAhZGVmYXVsdDtcbiRhbGVydC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRhbGVydC1saW5lLWhlaWdodDogJGFsZXJ0LWZvbnQtc2l6ZS8xcmVtICogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiRhbGVydC1zaWRlLWJvcmRlci1zaXplOiAycmVtICFkZWZhdWx0O1xuJGFsZXJ0LXJhZGl1czogNHB4ICFkZWZhdWx0O1xuJGFsZXJ0LWJvdHRvbS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vIEdyaWQgc2V0dGluZ3NcbiRyb3ctd2lkdGg6IHJlbS1jYWxjKDEyODApICFkZWZhdWx0O1xuJHRvdGFsLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuJGNvbHVtbi1ndXR0ZXI6IHJlbS1jYWxjKDMwKSAhZGVmYXVsdDtcblxuLy8gRXF1YWwgY29sdW1uIGhlaWdodCBncmlkIHNldHRpbmdcbiRlcXVhbC1jb2wtaW5uZXItcGFkZGluZzogJGNvbHVtbi1ndXR0ZXIvMiAhZGVmYXVsdDtcblxuLy8gQmxvY2sgZ3JpZCBzZXR0aW5nc1xuJGluY2x1ZGUtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kYmxvY2stZ3JpZC1lbGVtZW50czogNSAhZGVmYXVsdDtcbiRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIE1lZGlhIHF1ZXJ5IHJhbmdlc1xuJHNtYWxsLXJhbmdlOiAoMGVtLCAzOS45Mzc1ZW0pICFkZWZhdWx0O1xuJG1lZGl1bS1yYW5nZTogKDQwZW0sIDYzLjkzNzVlbSkgIWRlZmF1bHQ7XG4kbGFyZ2UtcmFuZ2U6ICg2NGVtLCA4OS45Mzc1ZW0pICFkZWZhdWx0O1xuJHhsYXJnZS1yYW5nZTogKDkwZW0sIDExOS45Mzc1ZW0pICFkZWZhdWx0O1xuJHh4bGFyZ2UtcmFuZ2U6ICgxMjBlbSwgOTk5OTk5OTllbSkgIWRlZmF1bHQ7XG5cbi8vIEJyZWFkY3J1bWJzIHNldHRpbmdzXG4kY3J1bWItYmc6ICNmZmYgIWRlZmF1bHQ7XG4kY3J1bWItcGFkZGluZzogMCAhZGVmYXVsdDtcbiRjcnVtYi1ib3JkZXItc2l6ZTogMCAhZGVmYXVsdDtcbiRjcnVtYi1mb250LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kY3J1bWItc2lkZS1wYWRkaW5nOiAuNXJlbSAhZGVmYXVsdDtcblxuLy8gVGFibGUgc3R5bGluZ1xuJHRhYmxlLWJvcmRlci1zaXplOiAwO1xuXG4vLyBUYWJzIHN0eWxpbmdcbiR0YWJzLW5hdmlnYXRpb24tcGFkZGluZzogMC40cmVtICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJHRhYnMtY29udGVudC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNCkgIWRlZmF1bHQ7XG4kdGFicy1jb250ZW50LXBhZGRpbmc6IC41cmVtICFkZWZhdWx0O1xuJHRhYnMtdmVydGljYWwtbmF2aWdhdGlvbi1tYXJnaW4tYm90dG9tOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLyBTb2NpYWwgaWNvbnNcbiRzb2NpYWwtaWNvbi1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcblxuLy8gQnV0dG9uc1xuJGJ1dHRvbi1zaXplOiByZW0tY2FsYygzNykgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vIFBhZ2luYXRpb24gc2V0dGluZ3NcbiRwYWdpbmF0aW9uLWl0ZW0taGVpZ2h0OiAgICAgICAgJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNpZGUtcGFkZGluZzogIDFyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6ICAgICAgIC41cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemU6ICAgMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWZ1bGwtYnJlYWtwb2ludDogICAgXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTByZW0pXCIgIWRlZmF1bHQ7XG4iLCIvLyBNYWluIGNvbG9ycyBzdHVmZlxuJHByaW1hcnktY29sb3IgICAgICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWNvbG9yICAgICAgICAgICAgIDogI2U3ZTdlNyAhZGVmYXVsdDtcbiRjYWxsLXRvLWFjdGlvbi1jb2xvciAgICAgICAgOiAjRUYzQTNCICFkZWZhdWx0O1xuJGhvdmVyLWNvbG9yICAgICAgICAgICAgICAgICA6ICNFRjNBM0IgIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yICAgICAgICAgICAgICAgIDogI2RkZGRkZCAhZGVmYXVsdDtcblxuJGFsZXJ0LWNvbG9yICAgICAgICAgICAgICAgICA6ICNlMDMxMTQgIWRlZmF1bHQ7XG4kc3VjY2Vzcy1jb2xvciAgICAgICAgICAgICAgIDogIzVjYjg1YyAhZGVmYXVsdDtcbiR3YXJuaW5nLWNvbG9yICAgICAgICAgICAgICAgOiAjZmZhMjAwICFkZWZhdWx0O1xuJGluZm8tY29sb3IgICAgICAgICAgICAgICAgICA6ICM1YmMwZGUgIWRlZmF1bHQ7XG4kZGFuZ2VyLWNvbG9yICAgICAgICAgICAgICAgIDogI2Q5NTM0ZiAhZGVmYXVsdDtcblxuLy8gQmFja2dyb3VuZCBjb2xvcnNcbiRib2R5LWJnICAgICAgICAgICAgICAgICAgICAgOiAjRkZGRkZGICFkZWZhdWx0O1xuJHRvcC1iZyAgICAgICAgICAgICAgICAgICAgICA6ICNmNWY1ZjUgIWRlZmF1bHQ7XG4kaGVhZGVyLWJnICAgICAgICAgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRuYXZpZ2F0aW9uLWJnICAgICAgICAgICAgICAgOiAjMjEyMTIxICFkZWZhdWx0O1xuJGNvbnRlbnQtYmcgICAgICAgICAgICAgICAgICA6ICNmZmZmZmYgIWRlZmF1bHQ7XG4kZm9vdGVyLWJnICAgICAgICAgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRlbmQtYmcgICAgICAgICAgICAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuXG4vLyBGb250IGNvbG9yc1xuJGJvZHktZm9udC1jb2xvciAgICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtY29sb3IgICAgICAgICAgIDogZGFya2VuKCRib2R5LWZvbnQtY29sb3IsIDclKSAhZGVmYXVsdDtcbiRhbHRlcm5hdGl2ZS1mb250LWNvbG9yICAgICAgOiAjY2NjY2NjICFkZWZhdWx0O1xuXG4vLyBDb2xvciBjb250cmFzdCBhbmFseXNpcyB2YXJpYWJsZXMsIHNlZSBmdW5jdGlvbnMvY29sb3JcbiRjb2xvci1jb250cmFzdC10aHJlc2hvbGQgICAgOiA0LjUgIWRlZmF1bHQ7ICAvLyA0LjUgPSBXQ0FHIEFBLCA3PSBXQ0FHIEFBQVxuJGRhcmstYm9keS10ZXh0ICAgICAgICAgICAgICA6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kbGlnaHQtYm9keS10ZXh0ICAgICAgICAgICAgIDogJGFsdGVybmF0aXZlLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIEVsZW1lbnQgYW5kIHNlY3Rpb24gY29sb3Igc2V0dGluZ3Ncbi8vIEBUT0RPOiBXaGVuIHdlIGNhbiB1c2UgU2FzcyAzLjMsIGNsZWFuIHRoaXMgdXAgaW50byBtYXBzIHdpdGgga2V5L3ZhbHVlIHBhaXJzIVxuJGNvbG9yLWVsZW1lbnRzICAgICAgICAgICAgICA6IFwicHJpbWFyeS1jb2xvclwiLCBcInNlY29uZGFyeS1jb2xvclwiLCBcImNhbGwtdG8tYWN0aW9uLWNvbG9yXCIgIWRlZmF1bHQ7XG4kY29sb3ItZWxlbWVudHMtY29sb3JzICAgICAgIDogJHByaW1hcnktY29sb3IsICRzZWNvbmRhcnktY29sb3IsICRjYWxsLXRvLWFjdGlvbi1jb2xvciAhZGVmYXVsdDsgLy8gbGlzdCBsZW5ndGggc2hvdWxkIG1hdGNoIHRoYXQgb2YgJGNvbG9yLWVsZW1lbnRzXG4kc2VjdGlvbnMgICAgICAgICAgICAgICAgICAgIDogXCJ0b3BcIiwgXCJuYXZpZ2F0aW9uXCIsIFwiaGVhZGVyXCIsIFwiY29udGVudFwiLCBcImZvb3RlclwiLCBcImVuZFwiICFkZWZhdWx0O1xuJHNlY3Rpb24tc2VsZWN0b3JzICAgICAgICAgICA6IFwiLnRvcC1iZ1wiLCBcIi5uYXZpZ2F0aW9uLWJnXCIsIFwiLmhlYWRlci1iZ1wiLCBcIi5jb250ZW50LWJnXCIsIFwiLmZvb3Rlci1iZ1wiLCBcIi5lbmQtYmdcIiAhZGVmYXVsdDsgLy8gbGlzdCBsZW5ndGggc2hvdWxkIG1hdGNoIHRoYXQgb2YgJHNlY3Rpb25zXG4kc2VjdGlvbi1iYWNrZ3JvdW5kcyAgICAgICAgIDogJHRvcC1iZywgJG5hdmlnYXRpb24tYmcsICRoZWFkZXItYmcsICRjb250ZW50LWJnLCAkZm9vdGVyLWJnLCAkZW5kLWJnICFkZWZhdWx0OyAvLyBsaXN0IGxlbmd0aCBzaG91bGQgbWF0Y2ggdGhhdCBvZiAkc2VjdGlvbnNcblxuLy8gU2V0IHNvbWUgZXh0cmEgY29sb3IgdmFyaWFibGVzXG4kY29udGVudC1iZy1pcy1kYXJrICAgICAgICAgIDogaWYobHVtYSgkY29udGVudC1iZykgPCA1MCwgdHJ1ZSwgZmFsc2UpICFkZWZhdWx0O1xuJGhvdmVyLWJnLXRleHQtY29sb3IgICAgICAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRob3Zlci1jb2xvcikgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1jb2xvciAgICAgICAgICAgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKSAhZGVmYXVsdDtcbiRjb250ZW50LXRleHQtY29sb3IgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkY29udGVudC1iZyksIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJGNvbnRlbnQtYmcpKSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yLWN1cnJlbnQgICAgOiAkY29udGVudC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBUYWJzIHNldHRpbmdzXG4kdGFicy1vbi1kYXJrLWJnICAgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgdHJ1ZSwgZmFsc2UpICFkZWZhdWx0O1xuJHRhYnMtYmctY29sb3IgICAgICAgICAgICAgICA6IGlmKCR0YWJzLW9uLWRhcmstYmcsIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDEwJSksIGRhcmtlbigkY29udGVudC1iZywgMTAlKSkgIWRlZmF1bHQ7XG4kdGFicy1mb250LWNvbG9yICAgICAgICAgICAgIDogaW52ZXJ0KCR0YWJzLWJnLWNvbG9yKSAhZGVmYXVsdDtcbiR0YWJzLWFjdGl2ZS1iZy1jb2xvciAgICAgICAgOiBpZigkdGFicy1vbi1kYXJrLWJnLCAjZmZmLCAjMDAwKSAhZGVmYXVsdDtcbiR0YWJzLWFjdGl2ZS1mb250LWNvbG9yICAgICAgOiBpbnZlcnQoJHRhYnMtYWN0aXZlLWJnLWNvbG9yKSAhZGVmYXVsdDtcbiR0YWJzLWNvbnRhaW5lci1iZyAgICAgICAgICAgOiBpZigkdGFicy1vbi1kYXJrLWJnLCBsaWdodGVuKCRjb250ZW50LWJnLCAzJSksIGRhcmtlbigkY29udGVudC1iZywgMyUpKSAhZGVmYXVsdDtcblxuLy8gU2V0dGluZ3MgZm9yIHRhYmxlc1xuJHRhYmxlLWJnICAgICAgICAgICAgICAgICAgICA6ICRjb250ZW50LWJnICFkZWZhdWx0O1xuJHRhYmxlLWV2ZW4tcm93LWJnICAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDUlKSwgIGRhcmtlbigkY29udGVudC1iZywgNSUpKSAhZGVmYXVsdDtcbiR0YWJsZS1ib3JkZXItY29sb3IgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCByZ2JhKCRsaWdodC1ib2R5LXRleHQsIDAuNCksIHJnYmEoJGRhcmstYm9keS10ZXh0LCAwLjQpKSAhZGVmYXVsdDtcbiR0YWJsZS1zdWJ0bGUtYm9yZGVyLWNvbG9yICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCByZ2JhKCRsaWdodC1ib2R5LXRleHQsIDAuNCksIHJnYmEoJGRhcmstYm9keS10ZXh0LCAwLjQpKSAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLWJnICAgICAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCAzJSksIGRhcmtlbigkY29udGVudC1iZywgMyUpKSAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3IgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkdGFibGUtaGVhZC1iZyksIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJHRhYmxlLWhlYWQtYmcpKSAhZGVmYXVsdDtcbiR0YWJsZS1ldmVuLXJvdy10ZXh0LWNvbG9yICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkdGFibGUtZXZlbi1yb3ctYmcgKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkdGFibGUtZXZlbi1yb3ctYmcgKSkgIWRlZmF1bHQ7XG4kdGFibGUtcm93LWZvbnQtY29sb3IgICAgICAgIDogJGNvbnRlbnQtdGV4dC1jb2xvciAhZGVmYXVsdDtcblxuLy8gQ2hlY2tvdXQgY29sb3JzXG4kY2hlY2tvdXQtc3RlcHMtYmcgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgMTUlKSwgZGFya2VuKCRjb250ZW50LWJnLCAxNSUpKSAhZGVmYXVsdDtcbiRjaGVja291dC1zdGVwLWluYWN0aXZlLWJnICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCA4JSksIGRhcmtlbigkY29udGVudC1iZywgOCUpKSAhZGVmYXVsdDtcbiRlZGl0LXN0ZXAtYnV0dG9uLWJnICAgICAgICAgOiAkY29udGVudC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJGVkaXQtc3RlcC1idXR0b24tdGV4dC1jb2xvciA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRlZGl0LXN0ZXAtYnV0dG9uLWJnKSAhZGVmYXVsdDtcbiRlZGl0LXN0ZXAtaG92ZXItYmcgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBkYXJrZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDEwJSksIGxpZ2h0ZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDEwJSkpICFkZWZhdWx0O1xuJGVkaXQtc3RlcC1ob3Zlci10ZXh0LWNvbG9yICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkZWRpdC1zdGVwLWhvdmVyLWJnKSAhZGVmYXVsdDtcbiRzdGVwLW51bWJlci1iZyAgICAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBkYXJrZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDIwJSksIGxpZ2h0ZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDIwJSkpICFkZWZhdWx0O1xuJHN0ZXAtbnVtYmVyLXRleHQtY29sb3IgICAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNkZGQsICRzdGVwLW51bWJlci1iZykgIWRlZmF1bHQ7XG5cbi8vIE1lc3NhZ2Vib3gvYWxlcnRzXG4kbXNnYm94LWJnICAgICAgICAgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgNSUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDUlKSkgIWRlZmF1bHQ7XG4kbXNnYm94LWJvcmRlci1jb2xvciAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkbXNnYm94LWJnLCAxMCUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDEwJSkpICFkZWZhdWx0O1xuJG1zZ2JveC1jbG9zZS10ZXh0LWNvbG9yICAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCMwMDAsICRtc2dib3gtYmcpICFkZWZhdWx0O1xuJG1zZ2JveC1jbG9zZS1zaGFkb3ctY29sb3IgICA6IGludmVydCgkbXNnYm94LWNsb3NlLXRleHQtY29sb3IpICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtY29sb3ItYWx0ICAgICAgICA6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIFRhYnMgbmF2aWdhdGlvbiBjb2xvciAobmVlZHMgZml4aW5nKVxuJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvciAgICAgICAgICA6ICR0YWJzLWJnLWNvbG9yICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3IgICA6ICR0YWJzLWFjdGl2ZS1iZy1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3IgICAgOiBzY2FsZS1jb2xvcigkdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTYuNiUpICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1mb250LWNvbG9yICAgICAgICA6ICR0YWJzLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1mb250LWNvbG9yIDogJHRhYnMtYWN0aXZlLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlcnNcbiRib3JkZXItZGVmYXVsdC1vcGFjaXR5OiAwLjIgIWRlZmF1bHQ7XG4kYm9yZGVyLWRlZmF1bHQtaG92ZXItb3BhY2l0eTogMC40ICFkZWZhdWx0O1xuJGJvcmRlci1oYXJkLW9wYWNpdHk6IDAuNSAhZGVmYXVsdDtcbiRib3JkZXItaGFyZC1ob3Zlci1vcGFjaXR5OiAwLjcgIWRlZmF1bHQ7XG5cbi8vIFNvY2lhbCBpY29uIGNvbG9yc1xuJHNvY2lhbC1jb2xvci1ibG9nZ2VyOiAjZmM5OTQ4ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1lbGxvOiByZ2JhKCMwMDAsIC4xKSAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItZmFjZWJvb2s6ICMzYjU5OTggIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLWZsaWNrcjogI2ZmMDA4NCAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItZ29vZ2xlcGx1czogI2RkNGIzOSAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItaW5zdGFncmFtOiAjNTE3ZmE0ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1saW5rZWRpbjogIzAwN2JiNiAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItbWFpbDogIzMzMyAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItcGludGVyZXN0OiAjY2IyMDI3ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci10d2l0dGVyOiAjMDBhY2VkICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci12aW1lbzogIzQ1YmNmOSAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3IteW91dHViZTogI2NjMTgxZSAhZGVmYXVsdDtcblxuLy8gUGFnaW5hdGlvbiBjb2xvcnNcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZDogICAgICAgICAgICByZ2JhKCRjb250ZW50LWJnLCAwKSAhZGVmYXVsdDsgLy8gdHJhbnNwYXJlbnRcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLWNvbG9yOiAgICAgICAgICAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgJGNvbnRlbnQtdGV4dC1jb2xvcjtcblxuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQ6ICAgICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJvcmRlci1jb2xvcjogICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWNvbG9yOiAgICAgICAgIGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQpIDwgNTAsICNmZmYsICMwMDApLCAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZCkgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYmFja2dyb3VuZDogICAgICAkaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJvcmRlci1jb2xvcjogICAgJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItaXRlbS1jb2xvcjogICAgICAgICAgIGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kKSA8IDUwLCAjZmZmLCAjMDAwKSwgJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kKSAhZGVmYXVsdDsiLCJAaWYgbGVuZ3RoKCRjb2xvci1lbGVtZW50cykgIT0gbGVuZ3RoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMpIHtcbiAgICBAd2FybiBcIkxlbmd0aCBvZiAkY29sb3ItZWxlbWVudHMgZG9lcyBub3QgbWF0Y2ggbGVuZ3RoIG9mICRjb2xvci1lbGVtZW50cy1jb2xvcnNcIjtcbn1cblxuQGlmIGxlbmd0aCgkc2VjdGlvbi1zZWxlY3RvcnMpICE9IGxlbmd0aCgkc2VjdGlvbi1iYWNrZ3JvdW5kcykge1xuICAgIEB3YXJuIFwiTGVuZ3RoIG9mICRzZWN0aW9uLXNlbGVjdG9ycyBkb2VzIG5vdCBtYXRjaCBsZW5ndGggb2YgJHNlY3Rpb24tYmFja2dyb3VuZHNcIjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZWxlbWVudCB3aXRoIGEgY29sb3JlZCBiYWNrZ3JvdW5kXG4gKlxuICogVGhpcyBtaXhpbiBvdXRwdXRzIGEgY29sb3IgYW5kIGEgYmFja2dyb3VuZCBjb2xvclxuICogXG4gKiBAcGFyYW0gIHN0cmluZyAkY29sb3IgICAgICAgICAgICAgICAgICAgIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIHlvdSB3YW50IHRvIHVzZSwgZm9yIGluc3RhbmNlICNmZmNjMDBcbiAqIEBwYXJhbSAgc3RyaW5nICRmb3JlZ3JvdW5kLWNvbG9yOiAjZmZmICAgVGhlIGZvcmVncm91bmQvdGV4dCBjb2xvciB5b3Ugd2FudCB0byB1c2UuIFRoaXMgd2lsbCBoYXZlIGFuIGFjY2Vzc2libGUgbHVtaW5hbmNlLCBhZGp1c3RlZCB0byB3b3JrIHdpdGggJGNvbG9yXG4gKiBAcGFyYW0gIHN0cmluZyAkYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAgIFRoZSBiYWNrZ3JvdW5kIG9uIHdoaWNoIHRoZSBlbGVtZW50IGlzIHNpdHVhdGVkIChlbGVtZW50cyBiYWNrZ3JvdW5kIHdpbGwgYmUgYWRqdXN0ZWQgdG8gaGF2ZSBhdCBsZWFzdCBhIHNtYWxsIGNvbnRyYXN0IHRvIHRoaXMpXG4gKi9cbkBtaXhpbiBjb2xvcmVkLWJnLWVsZW1lbnQoJGNvbG9yLCAkZm9yZWdyb3VuZC1jb2xvcjogI2ZmZiwgJGJhY2tncm91bmQtY29sb3I6ICNmZmYpIHtcbiAgICAkY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb2xvciwgJGJhY2tncm91bmQtY29sb3IsIDEuNSk7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZm9yZWdyb3VuZC1jb2xvciwgJGNvbG9yKTtcbn1cblxuLy8gQ2FuIHdlIGNvbWJpbmUgdGhlIHN0eWxlcyBmb3Igc29tZSBvZiB0aGUgaGVhZGVycyB0byByZWR1Y2UgdGhlIHNpemUgb2Ygb3VyIGNzcz9cbiR1bmlxdWUtc2VjdGlvbnM6ICgpO1xuJHVuaXF1ZS1iYWNrZ3JvdW5kczogKCk7XG4kdW5pcXVlLXNlbGVjdG9yczogKCk7XG4kc2hhcmVkLXNlY3Rpb25zOiAoKTtcblxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHNlY3Rpb24tYmFja2dyb3VuZHMpIHtcbiAgICAkdGVzdGluZy1iYWNrZ3JvdW5kOiBudGgoJHNlY3Rpb24tYmFja2dyb3VuZHMsICRpKTtcbiAgICAkYmFja2dyb3VuZC1wb3NpdGlvbjogaW5kZXgoJHVuaXF1ZS1iYWNrZ3JvdW5kcywgJHRlc3RpbmctYmFja2dyb3VuZCk7XG4gICAgXG4gICAgQGlmICRiYWNrZ3JvdW5kLXBvc2l0aW9uID09IGZhbHNlIG9yICRiYWNrZ3JvdW5kLXBvc2l0aW9uID09IG51bGwge1xuICAgICAgICAkdW5pcXVlLWJhY2tncm91bmRzOiBhcHBlbmQoJHVuaXF1ZS1iYWNrZ3JvdW5kcywgJHRlc3RpbmctYmFja2dyb3VuZCk7XG4gICAgICAgICR1bmlxdWUtc2VsZWN0b3JzOiBhcHBlbmQoJHVuaXF1ZS1zZWxlY3RvcnMsIG50aCgkc2VjdGlvbi1zZWxlY3RvcnMsICRpKSk7XG4gICAgICAgICR1bmlxdWUtc2VjdGlvbnM6IGFwcGVuZCgkdW5pcXVlLXNlY3Rpb25zLCBudGgoJHNlY3Rpb25zLCAkaSkpO1xuICAgICAgICAkc2hhcmVkLXNlY3Rpb25zOiBhcHBlbmQoJHNoYXJlZC1zZWN0aW9ucywgbnRoKCRzZWN0aW9ucywgJGkpKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJGV4aXN0aW5nLWJnLXBvc2l0aW9uOiBpbmRleCgkdW5pcXVlLWJhY2tncm91bmRzLCAkdGVzdGluZy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgJHNoYXJlZC1zZWN0aW9uczogYXBwZW5kKCRzaGFyZWQtc2VjdGlvbnMsIG50aCgkdW5pcXVlLXNlY3Rpb25zLCAkZXhpc3RpbmctYmctcG9zaXRpb24pKTtcbiAgICB9XG59XG5cbiRjb250ZW50LXNlY3Rpb24tZG9uZTogZmFsc2U7XG5cbi8vIE91dHB1dCBzZWN0aW9ucyB3aXRoIHRoZWlyIGNvbG9ycywgYm9yZGVycyBhbmQgYmFja2dyb3VuZHNcbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCR1bmlxdWUtc2VjdGlvbnMpIHtcbiAgICAkc2VjdGlvbi1iYWNrZ3JvdW5kOiBudGgoJHVuaXF1ZS1iYWNrZ3JvdW5kcywgJGkpO1xuICAgICRzZWN0aW9uLWxpbmstY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkc2VjdGlvbi1iYWNrZ3JvdW5kKTtcblxuICAgIC8vIFNldCB0ZXh0IGNvbG9yXG4gICAgJHNlY3Rpb24tdGV4dC1jb2xvcjogaWYoXG4gICAgICAgIGx1bWEoJHNlY3Rpb24tYmFja2dyb3VuZCkgPCA1MCxcbiAgICAgICAgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGxpZ2h0LWJvZHktdGV4dCwgJHNlY3Rpb24tYmFja2dyb3VuZCksXG4gICAgICAgIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJHNlY3Rpb24tYmFja2dyb3VuZClcbiAgICApO1xuXG4gICAgLy8gRW1waGFzaXMgdGV4dCBjb2xvciBzaG91bGQgYmUgb2YgY3JlYXRlciBjb250cmFzdCB0aGFuIHRoZSB0ZXh0IGNvbG9yXG4gICAgJHNlY3Rpb24tZW1waGFzaXMtdGV4dC1jb2xvcjogaWYoXG4gICAgICAgIGx1bWEoJHNlY3Rpb24tdGV4dC1jb2xvcikgPiBsdW1hKCRzZWN0aW9uLWJhY2tncm91bmQpLFxuICAgICAgICBsaWdodGVuKCRzZWN0aW9uLXRleHQtY29sb3IsIDclKSxcbiAgICAgICAgZGFya2VuKCRzZWN0aW9uLXRleHQtY29sb3IsIDclKVxuICAgICk7XG5cbiAgICAvLyBMaW5rIGhvdmVyIGNvbG9yIHNob3VsZCBiZSBvZiBncmVhdGVyIGNvbnRyYXN0IHRoYW4gdGhlIGxpbmsgY29sb3JcbiAgICAkc2VjdGlvbi1saW5rLWhvdmVyLWNvbG9yOiBpZihcbiAgICAgICAgbHVtYSgkc2VjdGlvbi1saW5rLWNvbG9yKSA+IGx1bWEoJHNlY3Rpb24tYmFja2dyb3VuZCksXG4gICAgICAgIGxpZ2h0ZW4oJHNlY3Rpb24tbGluay1jb2xvciwgMTAlKSxcbiAgICAgICAgZGFya2VuKCRzZWN0aW9uLWxpbmstY29sb3IsIDEwJSlcbiAgICApO1xuXG4gICAgJSN7bnRoKCR1bmlxdWUtc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXJfX3N1YnRsZSB7XG4gICAgICAgIGNvbG9yOiAkc2VjdGlvbi10ZXh0LWNvbG9yO1xuICAgIH1cblxuICAgICUje250aCgkdW5pcXVlLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyX19uZXV0cmFsLWxpbmsge1xuICAgICAgICBjb2xvcjogJHNlY3Rpb24tdGV4dC1jb2xvcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tZW1waGFzaXMtdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICUje250aCgkdW5pcXVlLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY3Rpb24tYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRzZWN0aW9uLXRleHQtY29sb3I7XG5cbiAgICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tZW1waGFzaXMtdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExpbmtzIG5vdCBvbiBhIGNvbG9yZWQgYmFja2dyb3VuZCBhbmQgbm90IHNldCB0byBuZXV0cmFsIHNob3VsZCBiZSBhY2Nlc3NpYmxlXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLWxpbmstY29sb3I7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWJ0bGUge1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLXRleHQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAuYm9yZGVyZWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRzZWN0aW9uLXRleHQtY29sb3IsICRib3JkZXItZGVmYXVsdC1vcGFjaXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3JkZXJlZC0taGFyZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgJGJvcmRlci1kZWZhdWx0LWhvdmVyLW9wYWNpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYS5ib3JkZXJlZDpob3ZlcixcbiAgICAgICAgYS5ib3JkZXJlZDpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgJGJvcmRlci1oYXJkLW9wYWNpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYS5ib3JkZXJlZC0taGFyZDpob3ZlcixcbiAgICAgICAgYS5ib3JkZXJlZC0taGFyZDpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgJGJvcmRlci1oYXJkLWhvdmVyLW9wYWNpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5ldXRyYWwtbGluayxcbiAgICAgICAgLm5ldXRyYWwtbGluayA+IGEge1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLXRleHQtY29sb3I7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2VjdGlvbi1lbXBoYXNpcy10ZXh0LWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVmaW5lIC5wcmltYXJ5LWNvbG9yLCAuc2Vjb25kYXJ5LWNvbG9yIGV0Yy5cbiAgICAgICAgQGZvciAkaiBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGNvbG9yLWVsZW1lbnRzKSB7XG4gICAgICAgICAgICAkY29sb3ItZWxlbWVudC1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UobnRoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMsICRqKSwgJHNlY3Rpb24tYmFja2dyb3VuZCwgMS41KTtcbiAgICAgICAgICAgICRjb2xvci1lbGVtZW50LWJnLWxpbms6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRjb2xvci1lbGVtZW50LWJnKTtcblxuICAgICAgICAgICAgLiN7bnRoKCRjb2xvci1lbGVtZW50cywgJGopfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKG50aCgkY29sb3ItZWxlbWVudHMtY29sb3JzLCAkaiksICRzZWN0aW9uLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBOZWVkIGxlc3MgY29udHJhc3QgYWRqdXN0bWVudCBmb3IgaXRlbXMgd2l0aCBsYXJnZSB0ZXh0ICgxOHB4IG9yIG1vcmUpXG4gICAgICAgICAgICAuI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9LWJpZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKG50aCgkY29sb3ItZWxlbWVudHMtY29sb3JzLCAkaiksICRzZWN0aW9uLWJhY2tncm91bmQsIDMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9LWJnIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZWxlbWVudC1iZztcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLWVsZW1lbnQtYmctbGluaztcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLWVsZW1lbnQtYmctbGluaztcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItZWxlbWVudC1iZy1saW5rO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkY29sb3ItZWxlbWVudC1iZywgMTAlKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1lbGVtZW50LWJnLWxpbms7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLWVsZW1lbnQtYmcsIDEwJSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIEZvdW5kYXRpb24gYnV0dG9uIGNvbXBvbmVudHMgdXNlIHByaW1hcnkgYmcgYnkgZGVmYXVsdCBvbiBidXR0b25zXG4gICAgICAgIGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgICAgICAgICAvLyBUaGlzIGlzIGhvdyB0aGUgdmFyaWFibGUgaXMgZGVmaW5lZCBpbnRlcm5hbGx5IGluIEZvdW5kYXRpb25cbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGRlZmluZSB0aGlzIHZhcmlhYmxlIGluIG91ciB0aGVtZXMgeWV0LCBzbyB3ZSBoYXZlIGl0IGhlcmUgaWYvdW50aWwgd2UgZG9cbiAgICAgICAgICAgICRidXR0b24tY29sb3ItYmc6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAkX2J1dHRvbi1jb2xvci1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJ1dHRvbi1jb2xvci1iZywgJHNlY3Rpb24tYmFja2dyb3VuZCwgMS41KTtcbiAgICAgICAgICAgICRfYnV0dG9uLWNvbG9yLWZvbnQ6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJF9idXR0b24tY29sb3ItYmcpIDwgNTAsICNmZmYsICMwMDApLCAkX2J1dHRvbi1jb2xvci1iZyk7XG4gICAgICAgICAgICAkX2J1dHRvbi1ob3Zlci1jb2xvci1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGhvdmVyLWNvbG9yLCAkX2J1dHRvbi1jb2xvci1iZywgMS4yNSksICRzZWN0aW9uLWJhY2tncm91bmQsIDIpO1xuICAgICAgICAgICAgJF9idXR0b24taG92ZXItY29sb3ItdGV4dDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkX2J1dHRvbi1ob3Zlci1jb2xvci1iZykgPCA1MCwgI2ZmZiwgIzAwMCksICRfYnV0dG9uLWhvdmVyLWNvbG9yLWJnKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJiwgXG4gICAgICAgICAgICAmLmRpc2FibGVkLFxuICAgICAgICAgICAgJi5kaXNhYmxlZDpob3ZlcixcbiAgICAgICAgICAgICYuZGlzYWJsZWQ6Zm9jdXMsIFxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmW2Rpc2FibGVkXTpob3ZlcixcbiAgICAgICAgICAgICZbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX2J1dHRvbi1jb2xvci1iZztcbiAgICAgICAgICAgICAgICBjb2xvcjogJF9idXR0b24tY29sb3ItZm9udDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJGJ1dHRvbi1mb250LXdlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkX2J1dHRvbi1ob3Zlci1jb2xvci10ZXh0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfYnV0dG9uLWhvdmVyLWNvbG9yLWJnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIFBsYWNlaG9sZGVycyBzZWxlY3RvcnMgeW91IGNhbiB1c2UgdmlhIEBleHRlbmQgJTxwbGFjZWhvbGRlciBuYW1lPiBpbiB5b3VyIGNvbnRlbnQgc2VjdGlvbi5cbiAgICBAaWYgJGNvbnRlbnQtc2VjdGlvbi1kb25lID09IGZhbHNlIGFuZCAkc2VjdGlvbi1iYWNrZ3JvdW5kID09ICRjb250ZW50LWJnIHtcbiAgICAgICAgJWNvbnRlbnRfX2JvcmRlcmVkIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgkc2VjdGlvbi10ZXh0LWNvbG9yLCAwLjIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJWNvbnRlbnRfX2JvcmRlcmVkLS1oYXJkIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgkc2VjdGlvbi10ZXh0LWNvbG9yLCAwLjUpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBDb2xvciBlbGVtZW50cyBwbGFjZWhvbGRlcnNcbiAgICAgICAgQGZvciAkaiBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGNvbG9yLWVsZW1lbnRzKSB7XG4gICAgICAgICAgICAkY29sb3ItZWxlbWVudC1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UobnRoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMsICRqKSwgJGNvbnRlbnQtYmcsIDEuNSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICVjb250ZW50X18je250aCgkY29sb3ItZWxlbWVudHMsICRqKX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShudGgoJGNvbG9yLWVsZW1lbnRzLWNvbG9ycywgJGopLCAkY29udGVudC1iZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICVjb250ZW50X18je250aCgkY29sb3ItZWxlbWVudHMsICRqKX0tYmlnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UobnRoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMsICRqKSwgJGNvbnRlbnQtYmcsIDMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAlY29udGVudF9fI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9LWJnIHtcbiAgICAgICAgICAgICAgICAkY29sb3ItZWxlbWVudC1jb2xvcjogaWYobHVtYSgkY29sb3ItZWxlbWVudC1iZykgPCA1MCwgI2ZmZiwgIzAwMCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWVsZW1lbnQtYmc7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb2xvci1lbGVtZW50LWNvbG9yLCAkY29sb3ItZWxlbWVudC1iZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAkY29udGVudC1zZWN0aW9uLWRvbmU6IHRydWU7XG4gICAgfVxufVxuXG4vLyBFYXRpbmcgb3VyIG93biBkb2dmb29kLCB5b3UgY2FuIEBleHRlbmQgJWNvbnRlbnQtcGxhY2Vob2xkZXIgd2hlcmV2ZXIgeW91IHdhbnRcbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRzZWN0aW9uLXNlbGVjdG9ycykge1xuICAgIFxuICAgICN7bnRoKCRzZWN0aW9uLXNlbGVjdG9ycywgJGkpfSB7XG4gICAgICAgIEBleHRlbmQgJSN7bnRoKCRzaGFyZWQtc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgQGlmIG50aCgkc2hhcmVkLXNlY3Rpb25zLCAkaSkgIT0gbnRoKCRzZWN0aW9ucywgJGkpIHtcbiAgICAgICAgLy8gQWxsb3dpbmcgY29tYmluZWQgcGxhY2Vob2xkZXJzIHRvIGJlIHVzZWRcbiAgICAgICAgJSN7bnRoKCRzZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBAZXh0ZW5kICUje250aCgkc2hhcmVkLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyO1xuICAgICAgICB9XG4gICAgICAgICUje250aCgkc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXJfX3N1YnRsZSB7XG4gICAgICAgICAgICBAZXh0ZW5kICUje250aCgkc2hhcmVkLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyX19zdWJ0bGU7XG4gICAgICAgIH1cbiAgICAgICAgJSN7bnRoKCRzZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlcl9fbmV1dHJhbC1saW5rIHtcbiAgICAgICAgICAgIEBleHRlbmQgJSN7bnRoKCRzaGFyZWQtc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXJfX25ldXRyYWwtbGluaztcbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4yIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIkBpbXBvcnQgXCJtaXhpbnMvYWNjZXNzaWJpbGl0eVwiO1xuQGltcG9ydCBcIm1peGlucy9jZW50ZXJcIjtcbkBpbXBvcnQgXCJtaXhpbnMvaGFpcmxpbmUtYm9yZGVyXCI7XG5AaW1wb3J0IFwibWl4aW5zL250aC1jaGlsZHJlblwiO1xuQGltcG9ydCBcIm1peGlucy90cmFuc2Zvcm1cIjsiLCJAbWl4aW4gYWNjZXNzaWJsZS1oaWRlKCkge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG59XG5cbkBtaXhpbiBhY2Nlc3NpYmxlLXNob3coJGNsaXA6IGF1dG8sICRoZWlnaHQ6IGF1dG8sICRtYXJnaW46IDAsICRvdmVyZmxvdzogdmlzaWJsZSwgJHBvc2l0aW9uOiByZWxhdGl2ZSwgJHdpZHRoOiBhdXRvLCAkcGFkZGluZzogMCwgJGJvcmRlcjogbm9uZSkge1xuICAgIGJvcmRlcjogJGJvcmRlcjtcbiAgICBjbGlwOiAkY2xpcDtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgbWFyZ2luOiAkbWFyZ2luO1xuICAgIG92ZXJmbG93OiAkb3ZlcmZsb3c7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgcG9zaXRpb246ICRwb3NpdGlvbjtcbiAgICB3aWR0aDogJHdpZHRoO1xufSIsIkBtaXhpbiBjZW50ZXIoJHh5Onh5KSB7XG4gIEBpZiAkeHkgPT0geHkge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDUwJTtcbiAgICBib3R0b206IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSk7XG4gIH1cbiAgQGVsc2UgaWYgJHh5ID09IHgge1xuICAgIGxlZnQ6IDUwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gIH1cbiAgQGVsc2UgaWYgJHh5ID09IHkge1xuICAgIHRvcDogNTAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG4gIH1cbn0iLCIvLyAxcHggb24gcmV0aW5hLCBhbmQgMXB4IG9uIG5vbi1yZXRpbmEsIHNpbmNlIGJvcmRlci13aWR0aDogMC41cHg7IGRvZXMgbm90IHdvcmsgaW4gQ1NTXG5AbWl4aW4gaGFpcmxpbmUtYm9yZGVyKCRoYWlybGluZS1jb2xvciwgJHBvc2l0aW9uOiB0b3AgbGVmdCwgJHZlcnRpY2FsOiBmYWxzZSkge1xuICAgIFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRwb3NpdGlvbjsgXG4gICAgQGlmICR2ZXJ0aWNhbCB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxJyBoZWlnaHQ9JzEwMCc+PHJlY3QgZmlsbD0nI3skaGFpcmxpbmUtY29sb3J9JyB4PScwJyB5PScwJyB3aWR0aD0nMC41JyBoZWlnaHQ9JzEwMCcvPjwvc3ZnPlwiKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEwMCcgaGVpZ2h0PScxJz48cmVjdCBmaWxsPScjeyRoYWlybGluZS1jb2xvcn0nIHg9JzAnIHk9JzAnIHdpZHRoPScxMDAnIGhlaWdodD0nMC41Jy8+PC9zdmc+XCIpO1xuICAgIH1cbiAgICBcbn0iLCIvLyBVc2UgdGhpcyB0byBzZWxlY3QgaXRlbXMgZGVwZW5kaW5nIG9uIGhvdyBtYW55IHNpYmxpbmdzIHRoZXJlIGFyZS5cbi8vIFZlcnkgdXNlZnVsIHRvIHN0eWxlIGl0ZW1zIGRlcGVuZGluZyBvbiBob3cgbWFueSBpdGVtcyB0aGVyZSBhcmVcbi8vIGZvciBpbnN0YW5jZSwgMSBpdGVtIG50aC1jaGlsZHJlbigxKSwgbW9yZSB0aGFuIDUgbnRoLWNoaWxkcmVuKFwibis1XCIpXG5cbkBtaXhpbiBudGgtY2hpbGRyZW4oJG50aCkge1xuICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skbnRofSksXG4gICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRudGh9KSB+ICYge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG4iLCJAbWl4aW4gdHJhbnNsYXRlM2QoJHR4OjAsJHR5OjAsJHR6OjAsICRwZXJzcGVjdGl2ZTpmYWxzZSkge1xuICAgIFxuICAgIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sIHRyYW5zbGF0ZSgkdHgsJHR5KSAkcGVyc3BlY3RpdmUsIG1zKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZTNkKCR0eCwgJHR5LCAkdHopICRwZXJzcGVjdGl2ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgdHJhbnNsYXRlKCR0eCwkdHkpLCBtcyk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUzZCgkdHgsICR0eSwgJHR6KSk7XG4gICAgfVxufSIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwiLy8gVmFyaWFibGUgc2V0dGluZ3MgZm9yIC9hZGRvbnMvcHJlZml4ZXIuc2Nzc1xuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0OyAvLyByZXF1aXJlZCBmb3Iga2V5ZnJhbWUgbWl4aW5cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsICRyYWRpaSwgd2Via2l0IG1zIHNwZWMpO1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gVmFyaWFibGVzIGxvY2F0ZWQgaW4gL3NldHRpbmdzL19wcmVmaXhlci5zY3NzXG5cbkBtaXhpbiBwcmVmaXhlciAoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZTtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZTtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZTtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZTtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZTtcbn1cbiIsIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cblxuLy8gT2ZmaWNpYWwgYW5pbWF0aW9uIHNob3J0aGFuZCBwcm9wZXJ0eS5cbkBtaXhpbiBhbmltYXRpb24gKCRhbmltYXRpb25zLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIEluZGl2aWR1YWwgQW5pbWF0aW9uIFByb3BlcnRpZXNcbkBtaXhpbiBhbmltYXRpb24tbmFtZSAoJG5hbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbiAoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uICgkbW90aW9ucy4uLikge1xuLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50ICgkdmFsdWVzLi4uKSB7XG4vLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24gKCRkaXJlY3Rpb25zLi4uKSB7XG4vLyBub3JtYWwgfCBhbHRlcm5hdGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlICgkc3RhdGVzLi4uKSB7XG4vLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZGVsYXkgKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSAoJG1vZGVzLi4uKSB7XG4vLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tmYWNlLXZpc2liaWxpdHkgbWl4aW5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBTaG9ydGhhbmQgQm9yZGVyLXJhZGl1cyBtaXhpbnNcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaWkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItdG9wLXJpZ2h0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG59XG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcblxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XG59XG5cbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XG4vLyBzaW5nbGV8bXVsdGlwbGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMC4wKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXG5cbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcbi8vICBmbGV4IHwgaW5saW5lLWZsZXhcbiAgICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcbiAgICAgICAgLy8gMjAwOVxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgZGlzcGxheTogLW1vei1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGJveDtcblxuICAgICAgICAvLyAyMDEyXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuICAgICAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XG5cbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgICB9XG59XG5cbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcblxuICAgIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cbiAgICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSkgICAgICBcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xuXG4gICAgLy8gQWx0IHZhbHVlcy5cbiAgICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgJGRpcmVjdGlvbjogXCJub3JtYWxcIjtcblxuICAgIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAgICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcbiAgICAgICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAgICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICAgICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgQGlmICRkaXJlY3Rpb24gPT0gXCJyZXZlcnNlXCIge1xuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG5cbiAgICAvLyBBbHQgdmFsdWVzLlxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSB3cmFwIHtcbiAgICAgICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xufVxuXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xufVxuXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXG5AbWl4aW4ganVzdGlmeS1jb250ZW50ICgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcblxuICAgIC8vIEFsdCB2YWx1ZXMuXG4gICAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICAgJGFsdC12YWx1ZTogJHZhbHVlO1xuXG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICAgIH0gICAgXG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gICAgfVxuXG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG4gICAgXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7ICAgIFxufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuXG4gICAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICAgIH0gICAgXG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogZW5kO1xuICAgIH1cblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICAgIH0gICAgXG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogZW5kO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xuICAgIH1cblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xufVxuXG4iLCIvLyBBZGRzIGtleWZyYW1lcyBibG9ja3MgZm9yIHN1cHBvcnRlZCBwcmVmaXhlcywgcmVtb3ZpbmcgcmVkdW5kYW50IHByZWZpeGVzIGluIHRoZSBibG9jaydzIGNvbnRlbnRcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0OiAgICAkcHJlZml4LWZvci13ZWJraXQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE6ICAgJHByZWZpeC1mb3ItbW96aWxsYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0OiAkcHJlZml4LWZvci1taWNyb3NvZnQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhOiAgICAgJHByZWZpeC1mb3Itb3BlcmE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM6ICAgICAgJHByZWZpeC1mb3Itc3BlYztcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0IHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3Itd2Via2l0OiB0cnVlO1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlO1xuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjIHtcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkRzEsICRHMjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEczOiBudWxsLCAkRzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHNTogbnVsbCwgJEc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzc6IG51bGwsICRHODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc5OiBudWxsLCAkRzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHBvcy1zcGVjOiBudWxsO1xuICAkcG9zLWRlZ3JlZTogbnVsbDtcblxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xuICAgICRHMTA6ICRHOTsgJEc5OiAkRzg7ICRHODogJEc3OyAkRzc6ICRHNjsgJEc2OiAkRzU7XG4gICAgICRHNTogJEc0OyAkRzQ6ICRHMzsgJEczOiAkRzI7ICRHMjogJEcxOyAkRzE6ICRwb3M7XG4gICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkRzEsICRHMiwgJEczLCAkRzQsICRHNSwgJEc2LCAkRzcsICRHOCwgJEc5LCAkRzEwO1xuXG4gIC8vIFNldCAkRzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJEcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcbi8vICBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xuLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcbi8vIHktYXhpcyAtIHRvcCAgfCBjZW50ZXIgfCBib3R0b20gfCBsZW5ndGggfCAlXG4vLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUgKCRzdHlsZTogZmxhdCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAxcyBlYXNlLWluIDJzLCB3aWR0aCAycyBlYXNlLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn0iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEFsZXJ0IEJveCBWYXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWFsZXJ0LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhbGVydCBwYWRkaW5nLlxuJGFsZXJ0LXBhZGRpbmctdG9wOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kYWxlcnQtcGFkZGluZy1kZWZhdWx0LWZsb2F0OiAkYWxlcnQtcGFkZGluZy10b3AgIWRlZmF1bHQ7XG4kYWxlcnQtcGFkZGluZy1vcHBvc2l0ZS1kaXJlY3Rpb246ICRhbGVydC1wYWRkaW5nLXRvcCArIHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nLWJvdHRvbTogJGFsZXJ0LXBhZGRpbmctdG9wICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0ZXh0IHN0eWxlLlxuJGFsZXJ0LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRhbGVydC1mb250LWNvbG9yLWFsdDogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogLTY2JSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIGZvciBjbG9zZSBob3ZlciBlZmZlY3QuXG4kYWxlcnQtZnVuY3Rpb24tZmFjdG9yOiAtMTQlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBib3JkZXIgc3R5bGVzLlxuJGFsZXJ0LWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kYWxlcnQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kYWxlcnQtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkcHJpbWFyeS1jb2xvciwgJGxpZ2h0bmVzczogJGFsZXJ0LWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kYWxlcnQtYm90dG9tLW1hcmdpbjogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGNsb3NlIGJ1dHRvbnNcbiRhbGVydC1jbG9zZS1jb2xvcjogJG9pbCAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS10b3A6IDUwJSAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1wb3NpdGlvbjogcmVtLWNhbGMoNCkgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2UtZm9udC1zaXplOiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2Utb3BhY2l0eTogMC4zICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLW9wYWNpdHktaG92ZXI6IDAuNSAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1wYWRkaW5nOiAwIDZweCA0cHggIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2UtYmFja2dyb3VuZDogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBib3JkZXIgcmFkaXVzXG4kYWxlcnQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuJGFsZXJ0LXRyYW5zaXRpb24tc3BlZWQ6IDMwMG1zICFkZWZhdWx0O1xuJGFsZXJ0LXRyYW5zaXRpb24tZWFzZTogZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vXG4vLyBBbGVydCBNaXhpbnNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBhIGRlZmF1bHQgYWxlcnQgYmFzZS5cbkBtaXhpbiBhbGVydC1iYXNlIHtcbiAgYm9yZGVyLXN0eWxlOiAkYWxlcnQtYm9yZGVyLXN0eWxlO1xuICBib3JkZXItd2lkdGg6ICRhbGVydC1ib3JkZXItd2lkdGg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogJGFsZXJ0LWZvbnQtd2VpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkYWxlcnQtYm90dG9tLW1hcmdpbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAkYWxlcnQtcGFkZGluZy10b3AgJGFsZXJ0LXBhZGRpbmctb3Bwb3NpdGUtZGlyZWN0aW9uICRhbGVydC1wYWRkaW5nLWJvdHRvbSAkYWxlcnQtcGFkZGluZy1kZWZhdWx0LWZsb2F0O1xuICBmb250LXNpemU6ICRhbGVydC1mb250LXNpemU7XG4gIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKG9wYWNpdHksICRhbGVydC10cmFuc2l0aW9uLXNwZWVkLCAkYWxlcnQtdHJhbnNpdGlvbi1lYXNlKVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBhZGQgYWxlcnQgc3R5bGVzXG4vL1xuLy8gJGJnIC0gVGhlIGJhY2tncm91bmQgb2YgdGhlIGFsZXJ0LiBEZWZhdWx0OiAkcHJpbWFyeS1jb2xvci5cbkBtaXhpbiBhbGVydC1zdHlsZSgkYmc6JHByaW1hcnktY29sb3IpIHtcblxuICAvLyBUaGlzIGZpbmRzIHRoZSBsaWdodG5lc3MgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbiAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG5cbiAgLy8gV2UgY29udHJvbCB3aGljaCBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBib3JkZXIgY29tZSB0aHJvdWdoLlxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gIGJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGJnLCAkbGlnaHRuZXNzOiAkYWxlcnQtZnVuY3Rpb24tZmFjdG9yKTtcblxuICAvLyBXZSBjb250cm9sIHRoZSB0ZXh0IGNvbG9yIGZvciB5b3UgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4gIEBpZiAkYmctbGlnaHRuZXNzID4gNzAlIHsgY29sb3I6ICRhbGVydC1mb250LWNvbG9yLWFsdDsgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICB7IGNvbG9yOiAkYWxlcnQtZm9udC1jb2xvcjsgfVxuXG59XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSB0aGUgY2xvc2UgYnV0dG9uLlxuQG1peGluIGFsZXJ0LWNsb3NlIHtcbiAgZm9udC1zaXplOiAkYWxlcnQtY2xvc2UtZm9udC1zaXplO1xuICBwYWRkaW5nOiAkYWxlcnQtY2xvc2UtcGFkZGluZztcbiAgbGluZS1oZWlnaHQ6IC45O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJGFsZXJ0LWNsb3NlLXRvcDtcbiAgbWFyZ2luLXRvcDogLSgkYWxlcnQtY2xvc2UtZm9udC1zaXplIC8gMik7XG4gICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRhbGVydC1jbG9zZS1wb3NpdGlvbjtcbiAgY29sb3I6ICRhbGVydC1jbG9zZS1jb2xvcjtcbiAgb3BhY2l0eTogJGFsZXJ0LWNsb3NlLW9wYWNpdHk7XG4gIGJhY2tncm91bmQ6ICRhbGVydC1jbG9zZS1iYWNrZ3JvdW5kO1xuICAmOmhvdmVyLFxuICAmOmZvY3VzIHsgb3BhY2l0eTogJGFsZXJ0LWNsb3NlLW9wYWNpdHktaG92ZXI7IH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gcXVpY2tseSBjcmVhdGUgYWxlcnRzIHdpdGggYSBzaW5nbGUgbWl4aW4uXG4vL1xuLy8gJGJnIC0gQmFja2dyb3VuZCBvZiBhbGVydC4gRGVmYXVsdDogJHByaW1hcnktY29sb3IuXG4vLyAkcmFkaXVzIC0gUmFkaXVzIG9mIGFsZXJ0IGJveC4gRGVmYXVsdDogZmFsc2UuXG5AbWl4aW4gYWxlcnQoJGJnOiRwcmltYXJ5LWNvbG9yLCAkcmFkaXVzOmZhbHNlKSB7XG4gIEBpbmNsdWRlIGFsZXJ0LWJhc2U7XG4gIEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRiZyk7XG4gIEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTtcbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImFsZXJ0LWJveFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWFsZXJ0LWNsYXNzZXMge1xuICAgIC5hbGVydC1ib3gge1xuICAgICAgQGluY2x1ZGUgYWxlcnQ7XG5cbiAgICAgIC5jbG9zZSAgICAgIHsgQGluY2x1ZGUgYWxlcnQtY2xvc2U7IH1cblxuICAgICAgJi5yYWRpdXMgICAgeyBAaW5jbHVkZSByYWRpdXMoJGFsZXJ0LXJhZGl1cyk7IH1cbiAgICAgICYucm91bmQgICAgIHsgQGluY2x1ZGUgcmFkaXVzKCRnbG9iYWwtcm91bmRlZCk7IH1cblxuICAgICAgJi5zdWNjZXNzICAgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkc3VjY2Vzcy1jb2xvcik7IH1cbiAgICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJGFsZXJ0LWNvbG9yKTsgfVxuICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkc2Vjb25kYXJ5LWNvbG9yKTsgfVxuICAgICAgJi53YXJuaW5nIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJHdhcm5pbmctY29sb3IpOyB9XG4gICAgICAmLmluZm8geyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkaW5mby1jb2xvcik7IH1cbiAgICAgICYuYWxlcnQtY2xvc2UgeyBvcGFjaXR5OiAwfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcIi4uL2Z1bmN0aW9uc1wiO1xuLy9cbi8vIEZvdW5kYXRpb24gVmFyaWFibGVzXG4vL1xuXG4vLyBEYXRhIGF0dHJpYnV0ZSBuYW1lc3BhY2Vcbi8vIHN0eWxlcyBnZXQgYXBwbGllZCB0byBbZGF0YS1teXNpdGUtcGx1Z2luXSwgZXRjXG4kbmFtZXNwYWNlOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZm9udC1zaXplIGlzIHNldCB0byAxMDAlIG9mIHRoZSBicm93c2VyIHN0eWxlIHNoZWV0ICh1c3VhbGx5IDE2cHgpXG4vLyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGJyb3dzZXItYmFzZWQgdGV4dCB6b29tIG9yIHVzZXItc2V0IGRlZmF1bHRzLlxuXG4vLyBTaW5jZSB0aGUgdHlwaWNhbCBkZWZhdWx0IGJyb3dzZXIgZm9udC1zaXplIGlzIDE2cHgsIHRoYXQgbWFrZXMgdGhlIGNhbGN1bGF0aW9uIGZvciBncmlkIHNpemUuXG4vLyBJZiB5b3Ugd2FudCB5b3VyIGJhc2UgZm9udC1zaXplIHRvIGJlIGRpZmZlcmVudCBhbmQgbm90IGhhdmUgaXQgYWZmZWN0IHRoZSBncmlkIGJyZWFrcG9pbnRzLFxuLy8gc2V0ICRyZW0tYmFzZSB0byAkYmFzZS1mb250LXNpemUgYW5kIG1ha2Ugc3VyZSAkYmFzZS1mb250LXNpemUgaXMgYSBweCB2YWx1ZS5cbiRiYXNlLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8gJGJhc2UtbGluZS1oZWlnaHQgaXMgMjRweCB3aGlsZSAkYmFzZS1mb250LXNpemUgaXMgMTZweFxuJGJhc2UtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy9cbi8vIEdsb2JhbCBGb3VuZGF0aW9uIE1peGluc1xuLy9cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYm9yZGVyIHJhZGl1cy5cbi8vICRyYWRpdXMgLSBEZWZhdWx0OiAkZ2xvYmFsLXJhZGl1cyB8fCA0cHhcbkBtaXhpbiByYWRpdXMoJHJhZGl1czokZ2xvYmFsLXJhZGl1cykge1xuICBAaWYgJHJhZGl1cyB7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGVxdWFsIHNpZGUgYm9yZGVyIHJhZGl1cyBvbiBlbGVtZW50cy5cbi8vICRzaWRlIC0gT3B0aW9uczogbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tXG5AbWl4aW4gc2lkZS1yYWRpdXMoJHNpZGUsICRyYWRpdXM6JGdsb2JhbC1yYWRpdXMpIHtcbiAgQGlmICgkc2lkZSA9PSBsZWZ0IG9yICRzaWRlID09IHJpZ2h0KSB7XG4gICAgLXdlYmtpdC1ib3JkZXItYm90dG9tLSN7JHNpZGV9LXJhZGl1czogJHJhZGl1cztcbiAgICAtd2Via2l0LWJvcmRlci10b3AtI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci10b3AtI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICB9IEBlbHNlIHtcbiAgICAtd2Via2l0LSN7JHNpZGV9LWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIC13ZWJraXQtI3skc2lkZX0tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci0jeyRzaWRlfS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItI3skc2lkZX0tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB3ZSBoYXZlIGluc2V0IHNoYWRvd3MgZWRnZXMuXG4vLyAkYWN0aXZlIC0gRGVmYXVsdDogdHJ1ZSwgT3B0aW9uczogZmFsc2VcbkBtaXhpbiBpbnNldC1zaGFkb3coJGFjdGl2ZTp0cnVlKSB7XG4gIGJveC1zaGFkb3c6ICRzaGlueS1lZGdlLXNpemUgJHNoaW55LWVkZ2UtY29sb3IgaW5zZXQ7XG5cbiAgQGlmICRhY3RpdmUgeyAmOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogJHNoaW55LWVkZ2Utc2l6ZSAkc2hpbnktZWRnZS1hY3RpdmUtY29sb3IgaW5zZXQ7IH0gfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIHRyYW5zaXRpb25zIHRvIGVsZW1lbnRzXG4vLyAkcHJvcGVydHkgLSBEZWZhdWx0OiBhbGwsIE9wdGlvbnM6IGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtdHJhbnNpdGlvbnMvI2FuaW1hdGFibGUtcHJvcGVydGllc1xuLy8gJHNwZWVkIC0gRGVmYXVsdDogMzAwbXNcbi8vICRlYXNlIC0gRGVmYXVsdDplYXNlLW91dCwgT3B0aW9uczogaHR0cDovL2Nzcy10cmlja3MuY29tL2FsbWFuYWMvcHJvcGVydGllcy90L3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uL1xuQG1peGluIHNpbmdsZS10cmFuc2l0aW9uKCRwcm9wZXJ0eTphbGwsICRzcGVlZDozMDBtcywgJGVhc2U6ZWFzZS1vdXQpIHtcbiAgdHJhbnNpdGlvbjogJHByb3BlcnR5ICRzcGVlZCAkZWFzZTtcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGFkZCBib3gtc2l6aW5nIGFjcm9zcyBicm93c2VyIHByZWZpeGVzXG5AbWl4aW4gYm94LXNpemluZygkdHlwZTpib3JkZXItYm94KSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHR5cGU7IC8vIEFuZHJvaWQgPCAyLjMsIGlPUyA8IDRcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkdHlwZTsgLy8gRmlyZWZveCA8IDI5XG4gICAgICAgICAgYm94LXNpemluZzogJHR5cGU7IC8vIENocm9tZSwgSUUgOCssIE9wZXJhLCBTYWZhcmkgNS4xXG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgaXNvc2NlbGVzIHRyaWFuZ2xlc1xuLy8gJHRyaWFuZ2xlLXNpemUgLSBVc2VkIHRvIHNldCBib3JkZXItc2l6ZS4gTm8gZGVmYXVsdCwgc2V0IGEgcHggb3IgZW0gc2l6ZS5cbi8vICR0cmlhbmdsZS1jb2xvciAtIFVzZWQgdG8gc2V0IGJvcmRlci1jb2xvciB3aGljaCBtYWtlcyB1cCB0cmlhbmdsZS4gTm8gZGVmYXVsdFxuLy8gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIFVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIGRpcmVjdGlvbiB0cmlhbmdsZSBwb2ludHMuIE9wdGlvbnM6IHRvcCwgYm90dG9tLCBsZWZ0LCByaWdodFxuQG1peGluIGNzcy10cmlhbmdsZSgkdHJpYW5nbGUtc2l6ZSwgJHRyaWFuZ2xlLWNvbG9yLCAkdHJpYW5nbGUtZGlyZWN0aW9uKSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdG9wKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGJvdHRvbSkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSB0aGUgaWNvbiB3aXRoIHRocmVlIGxpbmVzIGFrYSB0aGUgaGFtYnVyZ2VyIGljb24sIHRoZSBtZW51LWljb24gb3IgdGhlIG5hdmljb25cbi8vICR3aWR0aCAtIFdpZHRoIG9mIGhhbWJ1cmdlciBpY29uIGluIHJlbVxuLy8gJGxlZnQgLSBJZiBmYWxzZSwgaWNvbiB3aWxsIGJlIGNlbnRlcmVkIGhvcml6b250YWxseSB8fCBleHBsaWNpdGx5IHNldCB2YWx1ZSBpbiByZW1cbi8vICR0b3AgLSBJZiBmYWxzZSwgaWNvbiB3aWxsIGJlIGNlbnRlcmVkIHZlcnRpY2FsbHkgfHwgZXhwbGljaXRseSBzZXQgdmFsdWUgaW4gcmVtXG4vLyAkdGhpY2tuZXNzIC0gdGhpY2tuZXNzIG9mIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHhcbi8vICRnYXAgLSBzcGFjaW5nIGJldHdlZW4gdGhlIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHhcbi8vICRjb2xvciAtIGljb24gY29sb3Jcbi8vICRob3Zlci1jb2xvciAtIGljb24gY29sb3IgZHVyaW5nIGhvdmVyXG4vLyAkb2ZmY2FudmFzIC0gU2V0IHRvIHRydWUgb2YgQGluY2x1ZGUgaW4gb2ZmY2FudmFzXG5AbWl4aW4gaGFtYnVyZ2VyKCR3aWR0aCwgJGxlZnQsICR0b3AsICR0aGlja25lc3MsICRnYXAsICRjb2xvciwgJGhvdmVyLWNvbG9yLCAkb2ZmY2FudmFzKSB7XG4gIHNwYW46OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG5cbiAgICBAaWYgJG9mZmNhbnZhcyB7XG4gICAgICBAaWYgJHRvcCB7XG4gICAgICAgIHRvcDogJHRvcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJHdpZHRoLzIpO1xuICAgICAgfVxuICAgICAgQGlmICRsZWZ0IHtcbiAgICAgICAgbGVmdDogJGxlZnQ7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxlZnQ6ICgkdGFiYmFyLW1lbnUtaWNvbi13aWR0aCAtICR3aWR0aCkvMjtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtKCR3aWR0aC8yKTtcbiAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6XG4gICAgICAwIDAgMCAkdGhpY2tuZXNzICRjb2xvcixcbiAgICAgIDAgJGdhcCArICR0aGlja25lc3MgMCAkdGhpY2tuZXNzICRjb2xvcixcbiAgICAgIDAgKDIgKiAkZ2FwICsgMiokdGhpY2tuZXNzKSAwICR0aGlja25lc3MgJGNvbG9yO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH1cbiAgc3Bhbjpob3ZlcjphZnRlciB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMCAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAkZ2FwICsgJHRoaWNrbmVzcyAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAoMiAqICRnYXAgKyAyKiR0aGlja25lc3MpIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3I7XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gZG8gY2xlYXIgZmxvYXRzXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOmJlZm9yZSwgJjphZnRlciB7IGNvbnRlbnQ6IFwiIFwiOyBkaXNwbGF5OiB0YWJsZTsgfVxuICAmOmFmdGVyIHsgY2xlYXI6IGJvdGg7IH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGFkZCBhIGdsb3dpbmcgZWZmZWN0IHRvIGJsb2NrIGVsZW1lbnRzXG4vLyAkc2VsZWN0b3IgLSBVc2VkIGZvciBzZWxlY3RvciBzdGF0ZS4gRGVmYXVsdDogZm9jdXMsIE9wdGlvbnM6IGhvdmVyLCBhY3RpdmUsIHZpc2l0ZWRcbi8vICRmYWRlLXRpbWUgLSBEZWZhdWx0OiAzMDBtc1xuLy8gJGdsb3dpbmctZWZmZWN0LWNvbG9yIC0gRGVmYXVsdDogZmFkZS1vdXQoJHByaW1hcnktY29sb3IsIC4yNSlcbkBtaXhpbiBibG9jay1nbG93aW5nLWVmZmVjdCgkc2VsZWN0b3I6Zm9jdXMsICRmYWRlLXRpbWU6MzAwbXMsICRnbG93aW5nLWVmZmVjdC1jb2xvcjpmYWRlLW91dCgkcHJpbWFyeS1jb2xvciwgLjI1KSkge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93ICRmYWRlLXRpbWUsIGJvcmRlci1jb2xvciAkZmFkZS10aW1lIGVhc2UtaW4tb3V0O1xuXG4gICY6I3skc2VsZWN0b3J9IHtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICRnbG93aW5nLWVmZmVjdC1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRnbG93aW5nLWVmZmVjdC1jb2xvcjtcbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gdHJhbnNsYXRlIGVsZW1lbnRzIGluIDJEXG4vLyAkaG9yaXpvbnRhbDogRGVmYXVsdDogMFxuLy8gJHZlcnRpY2FsOiBEZWZhdWx0OiAwXG5AbWl4aW4gdHJhbnNsYXRlMmQoJGhvcml6b250YWw6MCwgJHZlcnRpY2FsOjApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJGhvcml6b250YWwsJHZlcnRpY2FsKVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBhY2Nlc3NpYmxlLlxuLy8gQHNlZSBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHdpZHRoOiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFR1cm5zIG9mZiB0aGUgZWxlbWVudC1pbnZpc2libGUgZWZmZWN0LlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5cbiR3aGl0ZSAgICAgICAgIDogI0ZGRkZGRiAhZGVmYXVsdDtcbiRnaG9zdCAgICAgICAgIDogI0ZBRkFGQSAhZGVmYXVsdDtcbiRzbm93ICAgICAgICAgIDogI0Y5RjlGOSAhZGVmYXVsdDtcbiR2YXBvciAgICAgICAgIDogI0Y2RjZGNiAhZGVmYXVsdDtcbiR3aGl0ZS1zbW9rZSAgIDogI0Y1RjVGNSAhZGVmYXVsdDtcbiRzaWx2ZXIgICAgICAgIDogI0VGRUZFRiAhZGVmYXVsdDtcbiRzbW9rZSAgICAgICAgIDogI0VFRUVFRSAhZGVmYXVsdDtcbiRnYWluc2Jvcm8gICAgIDogI0RERERERCAhZGVmYXVsdDtcbiRpcm9uICAgICAgICAgIDogI0NDQ0NDQyAhZGVmYXVsdDtcbiRiYXNlICAgICAgICAgIDogI0FBQUFBQSAhZGVmYXVsdDtcbiRhbHVtaW51bSAgICAgIDogIzk5OTk5OSAhZGVmYXVsdDtcbiRqdW1ibyAgICAgICAgIDogIzg4ODg4OCAhZGVmYXVsdDtcbiRtb25zb29uICAgICAgIDogIzc3Nzc3NyAhZGVmYXVsdDtcbiRzdGVlbCAgICAgICAgIDogIzY2NjY2NiAhZGVmYXVsdDtcbiRjaGFyY29hbCAgICAgIDogIzU1NTU1NSAhZGVmYXVsdDtcbiR0dWF0YXJhICAgICAgIDogIzQ0NDQ0NCAhZGVmYXVsdDtcbiRvaWwgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRqZXQgICAgICAgICAgIDogIzIyMjIyMiAhZGVmYXVsdDtcbiRibGFjayAgICAgICAgIDogIzAwMDAwMCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIGFzIGRlZmF1bHQgY29sb3JzIHRocm91Z2hvdXRcbiRwcmltYXJ5LWNvbG9yOiAjMDA4Q0JBICFkZWZhdWx0OyAgIC8vIGJvbmRpLWJsdWVcbiRzZWNvbmRhcnktY29sb3I6ICNlN2U3ZTcgIWRlZmF1bHQ7IC8vIHdoaXRlLWxpbGFjXG4kYWxlcnQtY29sb3I6ICNmMDQxMjQgIWRlZmF1bHQ7ICAgICAvLyBjaW5uYWJhclxuJHN1Y2Nlc3MtY29sb3I6ICM0M0FDNkEgIWRlZmF1bHQ7ICAgLy8gc2VhLWdyZWVuXG4kd2FybmluZy1jb2xvcjogI2YwOGEyNCAhZGVmYXVsdDsgICAvLyBjYXJyb3RcbiRpbmZvLWNvbG9yOiAjYTBkM2U4ICFkZWZhdWx0OyAgICAgIC8vIGNvcm5mbG93ZXJcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGRlZmluZSBkZWZhdWx0IGZvbnQgc3RhY2tzXG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktc2VyaWY6IEdlb3JnaWEsIENhbWJyaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZiAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBkZWZpbmUgZGVmYXVsdCBmb250IHdlaWdodHNcbiRmb250LXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcbiRmb250LXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2YXJpb3VzIGdsb2JhbCBzdHlsZXNcbiRib2R5LWJnOiAjZmZmICFkZWZhdWx0O1xuJGJvZHktZm9udC1jb2xvcjogIzIyMiAhZGVmYXVsdDtcbiRib2R5LWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRib2R5LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGJvZHktZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGZvbnQtc21vb3RoaW5nXG4kZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0ZXh0IGRpcmVjdGlvbiBzZXR0aW5nc1xuJHRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG4kZGVmYXVsdC1mbG9hdDogbGVmdCAhZGVmYXVsdDtcbiRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0ICFkZWZhdWx0O1xuQGlmICR0ZXh0LWRpcmVjdGlvbiA9PSBsdHIge1xuICAkZGVmYXVsdC1mbG9hdDogbGVmdDtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogcmlnaHQ7XG59IEBlbHNlIHtcbiAgJGRlZmF1bHQtZmxvYXQ6IHJpZ2h0O1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBsZWZ0O1xufVxuXG4vLyBXZSB1c2UgdGhlc2UgdG8gbWFrZSBzdXJlIGJvcmRlciByYWRpdXMgbWF0Y2hlcyB1bmxlc3Mgd2Ugd2FudCBpdCBkaWZmZXJlbnQuXG4kZ2xvYmFsLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuJGdsb2JhbC1yb3VuZGVkOiAxMDAwcHggIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGluc2V0IHNoYWRvdyBzaGlueSBlZGdlcyBhbmQgZGVwcmVzc2lvbnMuXG4kc2hpbnktZWRnZS1zaXplOiAwIDFweCAwICFkZWZhdWx0O1xuJHNoaW55LWVkZ2UtY29sb3I6IHJnYmEoI2ZmZiwgLjUpICFkZWZhdWx0O1xuJHNoaW55LWVkZ2UtYWN0aXZlLWNvbG9yOiByZ2JhKCMwMDAsIC4yKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB3aGV0aGVyIG9yIG5vdCBDU1MgY2xhc3NlcyBjb21lIHRocm91Z2ggaW4gdGhlIGdlbSBmaWxlcy5cbiRpbmNsdWRlLWh0bWwtY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcbiRpbmNsdWRlLXByaW50LXN0eWxlczogdHJ1ZSAhZGVmYXVsdDtcbiRpbmNsdWRlLWh0bWwtZ2xvYmFsLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuJGNvbHVtbi1ndXR0ZXI6IHJlbS1jYWxjKDMwKSAhZGVmYXVsdDtcblxuLy8gTWVkaWEgUXVlcnkgUmFuZ2VzXG4kc21hbGwtcmFuZ2U6ICgwLCA0MGVtKSAhZGVmYXVsdDtcbiRtZWRpdW0tcmFuZ2U6ICg0MC4wNjNlbSwgNjRlbSkgIWRlZmF1bHQ7XG4kbGFyZ2UtcmFuZ2U6ICg2NC4wNjNlbSwgOTBlbSkgIWRlZmF1bHQ7XG4keGxhcmdlLXJhbmdlOiAoOTAuMDYzZW0sIDEyMGVtKSAhZGVmYXVsdDtcbiR4eGxhcmdlLXJhbmdlOiAoMTIwLjA2M2VtLCA5OTk5OTk5OWVtKSAhZGVmYXVsdDtcblxuXG4kc2NyZWVuOiBcIm9ubHkgc2NyZWVuXCIgIWRlZmF1bHQ7XG5cbiRsYW5kc2NhcGU6IFwiI3skc2NyZWVufSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpXCIgIWRlZmF1bHQ7XG4kcG9ydHJhaXQ6IFwiI3skc2NyZWVufSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdClcIiAhZGVmYXVsdDtcblxuJHNtYWxsLXVwOiAkc2NyZWVuICFkZWZhdWx0O1xuJHNtYWxsLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1heC13aWR0aDogI3t1cHBlci1ib3VuZCgkc21hbGwtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcblxuJG1lZGl1bS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJG1lZGl1bS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4kbGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4keGxhcmdlLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4keGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiR4eGxhcmdlLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeHhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJHh4bGFyZ2Utb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkeHhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4vLyBMZWdhY3lcbiRzbWFsbDogJG1lZGl1bS11cDtcbiRtZWRpdW06ICRtZWRpdW0tdXA7XG4kbGFyZ2U6ICRsYXJnZS11cDtcblxuXG4vL1dlIHVzZSB0aGlzIGFzIGN1cnNvcnMgdmFsdWVzIGZvciBlbmFibGluZyB0aGUgb3B0aW9uIG9mIGhhdmluZyBjdXN0b20gY3Vyc29ycyBpbiB0aGUgd2hvbGUgc2l0ZSdzIHN0eWxlc2hlZXRcbiRjdXJzb3ItYXV0by12YWx1ZTogYXV0byAhZGVmYXVsdDtcbiRjdXJzb3ItY3Jvc3NoYWlyLXZhbHVlOiBjcm9zc2hhaXIgIWRlZmF1bHQ7XG4kY3Vyc29yLWRlZmF1bHQtdmFsdWU6IGRlZmF1bHQgIWRlZmF1bHQ7XG4kY3Vyc29yLWRpc2FibGVkLXZhbHVlOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcbiRjdXJzb3ItcG9pbnRlci12YWx1ZTogcG9pbnRlciAhZGVmYXVsdDtcbiRjdXJzb3ItaGVscC12YWx1ZTogaGVscCAhZGVmYXVsdDtcbiRjdXJzb3ItdGV4dC12YWx1ZTogdGV4dCAhZGVmYXVsdDtcblxuXG5AaW5jbHVkZSBleHBvcnRzKFwiZ2xvYmFsXCIpIHtcblxuICAvLyBNZXRhIHN0eWxlcyBhcmUgaW5jbHVkZWQgaW4gYWxsIGJ1aWxkcywgYXMgdGhleSBhcmUgYSBkZXBlbmRhbmN5IG9mIHRoZSBKYXZhc2NyaXB0LlxuICAvLyBVc2VkIHRvIHByb3ZpZGUgbWVkaWEgcXVlcnkgdmFsdWVzIGZvciBqYXZhc2NyaXB0IGNvbXBvbmVudHMuXG4gIC8vIEZvcndhcmQgc2xhc2ggcGxhY2VkIGFyb3VuZCBldmVyeXRoaW5nIHRvIGNvbnZpbmNlIFBoYW50b21KUyB0byByZWFkIHRoZSB2YWx1ZS5cblxuICBtZXRhLmZvdW5kYXRpb24tdmVyc2lvbiB7XG4gICAgZm9udC1mYW1pbHk6IFwiLzUuNS4xL1wiO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXNtYWxsIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRzbWFsbC11cCkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJHNtYWxsLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1zbWFsbC1vbmx5IHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRzbWFsbC1vbmx5KSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkc21hbGwtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLW1lZGl1bSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkbWVkaXVtLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1tZWRpdW0tb25seSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkbWVkaXVtLW9ubHkpICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLWxhcmdlIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRsYXJnZS11cCkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1sYXJnZS1vbmx5IHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRsYXJnZS1vbmx5KSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXhsYXJnZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkeGxhcmdlLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS14bGFyZ2Utb25seSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkeGxhcmdlLW9ubHkpICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXh4bGFyZ2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHh4bGFyZ2UtdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1kYXRhLWF0dHJpYnV0ZS1uYW1lc3BhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAjeyRuYW1lc3BhY2V9O1xuICB9XG5cbiAgQGlmICRpbmNsdWRlLWh0bWwtZ2xvYmFsLWNsYXNzZXMge1xuXG4gICAgLy8gTXVzdCBiZSAxMDAlIGZvciBvZmYgY2FudmFzIHRvIHdvcmtcbiAgICBodG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9XG5cbiAgICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAgICosXG4gICAgKjpiZWZvcmUsXG4gICAgKjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIH1cblxuICAgIGh0bWwsXG4gICAgYm9keSB7IGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplOyB9XG5cbiAgICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gICAgYm9keSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYm9keS1iZztcbiAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYm9keS1mb250LXdlaWdodDtcbiAgICAgIGZvbnQtc3R5bGU6ICRib2R5LWZvbnQtc3R5bGU7XG4gICAgICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7IC8vIFNldCB0byAkYmFzZS1saW5lLWhlaWdodCB0byB0YWtlIG9uIGJyb3dzZXIgZGVmYXVsdCBvZiAxNTAlXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItYXV0by12YWx1ZTtcbiAgICB9XG5cbiAgYTpob3ZlciB7IGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlOyB9XG5cbiAgICAvLyBHcmlkIERlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IH1cblxuICAgIGltZyB7IC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxuICAgICNtYXBfY2FudmFzLFxuICAgIC5tYXBfY2FudmFzIHtcbiAgICAgIGltZyxcbiAgICAgIGVtYmVkLFxuICAgICAgb2JqZWN0IHsgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWlzY2VsbGFuZW91cyB1c2VmdWwgSFRNTCBjbGFzc2VzXG4gICAgLmxlZnQgeyBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG4gICAgLnJpZ2h0IHsgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgICAuY2xlYXJmaXggeyBAaW5jbHVkZSBjbGVhcmZpeDsgfVxuXG4gICAgLy8gSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVyc1xuICAgIC5oaWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVycywgYnV0IG1haW50YWluIGxheW91dFxuICAgIC5pbnZpc2libGUgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuICAgIC8vIEZvbnQgc21vb3RoaW5nXG4gICAgLy8gQW50aWFsaWFzZWQgZm9udCBzbW9vdGhpbmcgd29ya3MgYmVzdCBmb3IgbGlnaHQgdGV4dCBvbiBhIGRhcmsgYmFja2dyb3VuZC5cbiAgICAvLyBBcHBseSB0byBzaW5nbGUgZWxlbWVudHMgaW5zdGVhZCBvZiBnbG9iYWxseSB0byBib2R5LlxuICAgIC8vIE5vdGUgdGhpcyBvbmx5IGFwcGxpZXMgdG8gd2Via2l0LWJhc2VkIGRlc2t0b3AgYnJvd3NlcnMgYW5kIEZpcmVmb3ggMjUgKGFuZCBsYXRlcikgb24gdGhlIE1hYy5cbiAgICAuYW50aWFsaWFzZWQgeyAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gR2xvYmFsIHJlc2V0cyBmb3IgZm9ybXNcbiAgICAvL1xuXG4gICAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XG4gICAgdGV4dGFyZWEgeyBoZWlnaHQ6IGF1dG87IG1pbi1oZWlnaHQ6IDUwcHg7IH1cblxuICAgIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICAgIHNlbGVjdCB7IHdpZHRoOiAxMDAlOyB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIFRoaXMgaXMgdGhlIGRlZmF1bHQgaHRtbCBhbmQgYm9keSBmb250LXNpemUgZm9yIHRoZSBiYXNlIHJlbSB2YWx1ZS5cbiRyZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcblxuLy8gSU1QT1JUIE9OQ0Vcbi8vIFdlIHVzZSB0aGlzIHRvIHByZXZlbnQgc3R5bGVzIGZyb20gYmVpbmcgbG9hZGVkIG11bHRpcGxlIHRpbWVzIGZvciBjb21wb25lbnRzIHRoYXQgcmVseSBvbiBvdGhlciBjb21wb25lbnRzLlxuJG1vZHVsZXM6ICgpICFkZWZhdWx0O1xuQG1peGluIGV4cG9ydHMoJG5hbWUpIHtcbiAgLy8gSW1wb3J0IGZyb20gZ2xvYmFsIHNjb3BlXG4gICRtb2R1bGVzOiAkbW9kdWxlcyAhZ2xvYmFsO1xuICAvLyBDaGVjayBpZiBhIG1vZHVsZSBpcyBhbHJlYWR5IG9uIHRoZSBsaXN0XG4gICRtb2R1bGVfaW5kZXg6IGluZGV4KCRtb2R1bGVzLCAkbmFtZSk7XG4gIEBpZiAoKCRtb2R1bGVfaW5kZXggPT0gbnVsbCkgb3IgKCRtb2R1bGVfaW5kZXggPT0gZmFsc2UpKSB7XG4gICAgJG1vZHVsZXM6IGFwcGVuZCgkbW9kdWxlcywgJG5hbWUpICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy9cbi8vIEBmdW5jdGlvbnNcbi8vXG5cblxuLy8gUkFOR0VTXG4vLyBXZSB1c2UgdGhlc2UgZnVuY3Rpb25zIHRvIGRlZmluZSByYW5nZXMgZm9yIHZhcmlvdXMgdGhpbmdzLCBsaWtlIG1lZGlhIHF1ZXJpZXMuXG5AZnVuY3Rpb24gbG93ZXItYm91bmQoJHJhbmdlKXtcbiAgQGlmIGxlbmd0aCgkcmFuZ2UpIDw9IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsMSk7XG59XG5cbkBmdW5jdGlvbiB1cHBlci1ib3VuZCgkcmFuZ2UpIHtcbiAgQGlmIGxlbmd0aCgkcmFuZ2UpIDwgMiB7XG4gICAgQHJldHVybiA5OTk5OTk5OTk5OTk7XG4gIH1cbiAgQHJldHVybiBudGgoJHJhbmdlLCAyKTtcbn1cblxuLy8gU1RSSVAgVU5JVFxuLy8gSXQgc3RyaXBzIHRoZSB1bml0IG9mIG1lYXN1cmUgYW5kIHJldHVybnMgaXRcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vIFRFWFQgSU5QVVQgVFlQRVNcblxuQGZ1bmN0aW9uIHRleHQtaW5wdXRzKCAkdHlwZXM6IGFsbCwgJHNlbGVjdG9yOiBpbnB1dCApIHtcblxuICAgICRyZXR1cm46ICgpO1xuXG4gICAgJGFsbC10ZXh0LWlucHV0LXR5cGVzOlxuICAgICAgdGV4dFxuICAgICAgcGFzc3dvcmRcbiAgICAgIGRhdGVcbiAgICAgIGRhdGV0aW1lXG4gICAgICBkYXRldGltZS1sb2NhbFxuICAgICAgbW9udGhcbiAgICAgIHdlZWtcbiAgICAgIGVtYWlsXG4gICAgICBudW1iZXJcbiAgICAgIHNlYXJjaFxuICAgICAgdGVsXG4gICAgICB0aW1lXG4gICAgICB1cmxcbiAgICAgIGNvbG9yXG4gICAgICB0ZXh0YXJlYTtcblxuICAgIEBpZiAkdHlwZXMgPT0gYWxsIHsgJHR5cGVzOiAkYWxsLXRleHQtaW5wdXQtdHlwZXM7IH1cblxuICAgIEBlYWNoICR0eXBlIGluICR0eXBlcyB7XG4gICAgICAgIEBpZiAkdHlwZSA9PSB0ZXh0YXJlYSB7XG4gICAgICAgICAgICBAaWYgJHNlbGVjdG9yID09IGlucHV0IHtcbiAgICAgICAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHR5cGV9JyksIGNvbW1hKVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyR0eXBlfSN7JHNlbGVjdG9yfScpLCBjb21tYSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnI3skc2VsZWN0b3J9W3R5cGU9XCIjeyR0eXBlfVwiXScpLCBjb21tYSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gJHJldHVybjtcblxufVxuXG4vLyBDT05WRVJUIFRPIFJFTVxuQGZ1bmN0aW9uIGNvbnZlcnQtdG8tcmVtKCR2YWx1ZSwgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZSkgIHtcbiAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlLXZhbHVlKSAqIDFyZW07XG4gIEBpZiAoJHZhbHVlID09IDByZW0pIHsgJHZhbHVlOiAwOyB9IC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBkYXRhKCRhdHRyKSB7XG4gIEBpZiAkbmFtZXNwYWNlIHtcbiAgICBAcmV0dXJuICdbZGF0YS0nICsgJG5hbWVzcGFjZSArICctJyArICRhdHRyICsgJ10nO1xuICB9XG5cbiAgQHJldHVybiAnW2RhdGEtJyArICRhdHRyICsgJ10nO1xufVxuXG4vLyBSRU0gQ0FMQ1xuXG4vLyBOZXcgU3ludGF4LCBhbGxvd3MgdG8gb3B0aW9uYWxseSBjYWxjdWxhdGUgb24gYSBkaWZmZXJlbnQgYmFzZSB2YWx1ZSB0byBjb3VudGVyIGNvbXBvdW5kaW5nIGVmZmVjdCBvZiByZW0ncy5cbi8vIENhbGwgd2l0aCAxLCAyLCAzIG9yIDQgcGFyYW1ldGVycywgJ3B4JyBpcyBub3QgcmVxdWlyZWQgYnV0IHN1cHBvcnRlZDpcbi8vXG4vLyAgIHJlbS1jYWxjKDEwIDIwIDMwcHggNDApO1xuLy9cbi8vIFNwYWNlIGRlbGltaXRlZCwgaWYgeW91IHdhbnQgdG8gZGVsaW1pdCB1c2luZyBjb21tYSdzLCB3cmFwIGl0IGluIGFub3RoZXIgcGFpciBvZiBicmFja2V0c1xuLy9cbi8vICAgcmVtLWNhbGMoKDEwLCAyMCwgMzAsIDQwcHgpKTtcbi8vXG4vLyBPcHRpb25hbGx5IGNhbGwgd2l0aCBhIGRpZmZlcmVudCBiYXNlIChlZzogOHB4KSB0byBjYWxjdWxhdGUgcmVtLlxuLy9cbi8vICAgcmVtLWNhbGMoMTZweCAzMnB4IDQ4cHgsIDhweCk7XG4vL1xuLy8gSWYgeW91IHJlcXVpcmUgdG8gY29tbWEgc2VwYXJhdGUgeW91ciBsaXN0XG4vL1xuLy8gICByZW0tY2FsYygoMTZweCwgMzJweCwgNDgpLCA4cHgpO1xuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZSkge1xuICAkbWF4OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgQGlmICRtYXggPT0gMSB7IEByZXR1cm4gY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsIDEpLCAkYmFzZS12YWx1ZSk7IH1cblxuICAkcmVtVmFsdWVzOiAoKTtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcbiAgICAkcmVtVmFsdWVzOiBhcHBlbmQoJHJlbVZhbHVlcywgY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UtdmFsdWUpKTtcbiAgfVxuICBAcmV0dXJuICRyZW1WYWx1ZXM7XG59XG5cbi8vIE9MRCBFTSBDQUxDXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLjAsIHVzZSByZW0tY2FsYygpXG5AZnVuY3Rpb24gZW1DYWxjKCR2YWx1ZXMpe1xuICBAcmV0dXJuIHJlbS1jYWxjKCR2YWx1ZXMpO1xufVxuXG4vLyBPTEQgRU0gQ0FMQ1xuLy8gRGVwcmVjYXRlZDogV2UnbGwgZHJvcCBzdXBwb3J0IGZvciB0aGlzIGluIDUuMS4wLCB1c2UgcmVtLWNhbGMoKVxuQGZ1bmN0aW9uIGVtLWNhbGMoJHZhbHVlcyl7XG4gIEByZXR1cm4gcmVtLWNhbGMoJHZhbHVlcyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBCbG9jayBHcmlkIFZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS14bC1odG1sLWJsb2NrLWdyaWQtY2xhc3NlczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJsb2NrIGdyaWQgZWxlbWVudHMgcGVyIHJvd1xuJGJsb2NrLWdyaWQtZWxlbWVudHM6IDEyICFkZWZhdWx0O1xuJGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbiRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQ6IGZhbHNlICFkZWZhdWx0O1xuQGlmICRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQge1xuICAkYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmc6ICRjb2x1bW4tZ3V0dGVyO1xufVxuXG4vLyBFbmFibGVzIG1lZGlhIHF1ZXJpZXMgZm9yIGJsb2NrLWdyaWQgY2xhc3Nlcy4gU2V0IHRvIGZhbHNlIGlmIHdyaXRpbmcgc2VtYW50aWMgSFRNTC5cbiRibG9jay1ncmlkLW1lZGlhLXF1ZXJpZXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vXG4vLyBCbG9jayBHcmlkIE1peGluc1xuLy9cblxuLy8gQ3JlYXRlIGEgY3VzdG9tIGJsb2NrIGdyaWRcbi8vXG4vLyAkcGVyLXJvdyAtICMgb2YgaXRlbXMgdG8gZGlzcGxheSBwZXIgcm93LiBEZWZhdWx0OiBmYWxzZS5cbi8vICRzcGFjaW5nIC0gIyBvZiBlbXMgdG8gdXNlIGFzIHBhZGRpbmcgb24gZWFjaCBibG9jayBpdGVtLiBEZWZhdWx0OiByZW0tY2FsYygyMCkuXG4vLyAkaW5jbHVkZS1zcGFjaW5nIC0gQWRkcyBwYWRkaW5nIHRvIG91ciBsaXN0IGl0ZW0uIERlZmF1bHQ6IHRydWUuXG4vLyAkYmFzZS1zdHlsZSAtIEFwcGx5IGEgYmFzZSBzdHlsZSB0byBibG9jayBncmlkLiBEZWZhdWx0OiB0cnVlLlxuQG1peGluIGJsb2NrLWdyaWQoXG4gICRwZXItcm93OmZhbHNlLFxuICAkc3BhY2luZzokYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmcsXG4gICRpbmNsdWRlLXNwYWNpbmc6dHJ1ZSxcbiAgJGJhc2Utc3R5bGU6dHJ1ZSkge1xuXG4gIEBpZiAkYmFzZS1zdHlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBAaWYgJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfSBAZWxzZSB7XG4gICAgICBtYXJnaW46IDAgKC0kc3BhY2luZy8yKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAmPmxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgQGlmICRpbmNsdWRlLXNwYWNpbmcge1xuICAgICAgICBwYWRkaW5nOiAwICgkc3BhY2luZy8yKSAkc3BhY2luZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJHBlci1yb3cge1xuICAgICY+bGkge1xuICAgICAgd2lkdGg6IDEwMCUvJHBlci1yb3c7XG4gICAgICBAaWYgJGluY2x1ZGUtc3BhY2luZyB7XG4gICAgICAgIHBhZGRpbmc6IDAgKCRzcGFjaW5nLzIpICRzcGFjaW5nO1xuICAgICAgfVxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgJjpudGgtb2YtdHlwZSgxbikgeyBjbGVhcjogbm9uZTsgfVxuICAgICAgJjpudGgtb2YtdHlwZSgjeyRwZXItcm93fW4rMSkgeyBjbGVhcjogYm90aDsgfVxuICAgICAgQGlmICRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQge1xuICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWFsaWduZWQoJHBlci1yb3csICRzcGFjaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJsb2NrLWdyaWQtYWxpZ25lZCgkcGVyLXJvdywgJHNwYWNpbmcpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1lbGVtZW50cyB7XG4gICAgQGlmICRwZXItcm93ID49ICRpIHtcbiAgICAgICRncmlkLWNvbHVtbjogJysnICsgJGk7XG4gICAgICBAaWYgJHBlci1yb3cgPT0gJGkge1xuICAgICAgICAkZ3JpZC1jb2x1bW46ICcnO1xuICAgICAgfVxuICAgICAgJjpudGgtb2YtdHlwZSgjeyRwZXItcm93fW4je3VucXVvdGUoJGdyaWQtY29sdW1uKX0pIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAoJHNwYWNpbmcgLSAoKCRzcGFjaW5nIC8gJHBlci1yb3cpICogKCRwZXItcm93IC0gKCRpIC0gMSkpKSk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICgkc3BhY2luZyAtICgoJHNwYWNpbmcgLyAkcGVyLXJvdykgKiAkaSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSBwcmVzZW50YXRpb25hbCBtYXJrdXAgZm9yIGJsb2NrIGdyaWQuXG4vL1xuLy8gJHNpemUgLSBOYW1lIG9mIGNsYXNzIHRvIHVzZSwgaS5lLiBcImxhcmdlXCIgd2lsbCBnZW5lcmF0ZSAubGFyZ2UtYmxvY2stZ3JpZC0xLCAubGFyZ2UtYmxvY2stZ3JpZC0yLCBldGMuXG5AbWl4aW4gYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemUsJGluY2x1ZGUtc3BhY2luZykge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLWVsZW1lbnRzIHtcbiAgICAuI3skc2l6ZX0tYmxvY2stZ3JpZC0jeygkaSl9IHtcbiAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQoJGksJGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nLCRpbmNsdWRlLXNwYWNpbmcsZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYmxvY2stZ3JpZFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWJsb2NrLWdyaWQtY2xhc3NlcyB7XG5cbiAgICBbY2xhc3MqPVwiYmxvY2stZ3JpZC1cIl0geyBAaW5jbHVkZSBibG9jay1ncmlkOyB9XG5cbiAgICBAaWYgJGJsb2NrLWdyaWQtbWVkaWEtcXVlcmllcyB7XG4gICAgICBAbWVkaWEgI3skc21hbGwtdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6c21hbGwsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bWVkaXVtLCRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bGFyZ2UsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkaW5jbHVkZS14bC1odG1sLWJsb2NrLWdyaWQtY2xhc3NlcyB7XG4gICAgICAgIEBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4bGFyZ2UsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skeHhsYXJnZS11cH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnh4bGFyZ2UsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEJyZWFkY3J1bWIgVmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1uYXYtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBicmVhZGNydW1iIGNvbnRhaW5lci5cbiRjcnVtYi1iZzogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogNTUlKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCB0aGUgcGFkZGluZyBhcm91bmQgdGhlIGJyZWFkY3J1bWJzLlxuJGNydW1iLXBhZGRpbmc6IHJlbS1jYWxjKDkgMTQgOSkgIWRlZmF1bHQ7XG4kY3J1bWItc2lkZS1wYWRkaW5nOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJvcmRlciBzdHlsZXMuXG4kY3J1bWItZnVuY3Rpb24tZmFjdG9yOiAtMTAlICFkZWZhdWx0O1xuJGNydW1iLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kY3J1bWItYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRjcnVtYi1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRjcnVtYi1iZywgJGxpZ2h0bmVzczogJGNydW1iLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kY3J1bWItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCB2YXJpb3VzIHRleHQgc3R5bGVzIGZvciBicmVhZGNydW1icy5cbiRjcnVtYi1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yLWN1cnJlbnQ6ICRvaWwgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1jb2xvci11bmF2YWlsYWJsZTogJGFsdW1pbnVtICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kY3J1bWItbGluay1kZWNvcjogdW5kZXJsaW5lICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc2xhc2ggYmV0d2VlbiBicmVhZGNydW1ic1xuJGNydW1iLXNsYXNoLWNvbG9yOiAkYmFzZSAhZGVmYXVsdDtcbiRjcnVtYi1zbGFzaDogXCIvXCIgIWRlZmF1bHQ7XG5cbi8vXG4vLyBCcmVhZGNydW1iIE1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGEgY29udGFpbmVyIGFyb3VuZCBvdXIgYnJlYWRjcnVtYnNcbkBtaXhpbiBjcnVtYi1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJGNydW1iLXBhZGRpbmc7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYm9yZGVyLXN0eWxlOiAkY3J1bWItYm9yZGVyLXN0eWxlO1xuICBib3JkZXItd2lkdGg6ICRjcnVtYi1ib3JkZXItc2l6ZTtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIGJhY2tncm91bmQgY29sb3IgYW5kIGJvcmRlciBjb21lIHRocm91Z2guXG4gIGJhY2tncm91bmQtY29sb3I6ICRjcnVtYi1iZztcbiAgYm9yZGVyLWNvbG9yOiAkY3J1bWItYm9yZGVyLWNvbG9yO1xufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgYnJlYWRjcnVtYiBzdHlsZXMgZnJvbSBsaXN0IGl0ZW1zLlxuQG1peGluIGNydW1icyB7XG5cbiAgLy8gQSBub3JtYWwgc3RhdGUgd2lsbCBtYWtlIHRoZSBsaW5rcyBsb29rIGFuZCBhY3QgbGlrZSBjbGlja2FibGUgYnJlYWRjcnVtYnMuXG4gIG1hcmdpbjogMDtcbiAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICBmb250LXNpemU6ICRjcnVtYi1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkY3J1bWItZm9udC1zaXplO1xuICB0ZXh0LXRyYW5zZm9ybTogJGNydW1iLWZvbnQtdHJhbnNmb3JtO1xuICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3I7XG5cbiAgJjpob3ZlciBhLCAmOmZvY3VzIGEgeyB0ZXh0LWRlY29yYXRpb246ICRjcnVtYi1saW5rLWRlY29yOyB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gQ3VycmVudCBpcyBmb3IgdGhlIGxpbmsgb2YgdGhlIGN1cnJlbnQgcGFnZVxuICAmLmN1cnJlbnQge1xuICAgIGN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlO1xuICAgIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvci1jdXJyZW50O1xuICAgIGEge1xuICAgICAgY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWU7XG4gICAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItY3VycmVudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLCAmOmhvdmVyIGEsXG4gICAgJjpmb2N1cywgJjpmb2N1cyBhIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIH1cblxuICAvLyBVbmF2YWlsYWJsZSByZW1vdmVkIGNvbG9yIGFuZCBsaW5rIHN0eWxlcyBzbyBpdCBsb29rcyBpbmFjdGl2ZS5cbiAgJi51bmF2YWlsYWJsZSB7XG4gICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yLXVuYXZhaWxhYmxlO1xuICAgIGEgeyBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItdW5hdmFpbGFibGU7IH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpob3ZlciBhLFxuICAgICY6Zm9jdXMsXG4gICAgYTpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItdW5hdmFpbGFibGU7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQtdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiI3skY3J1bWItc2xhc2h9XCI7XG4gICAgY29sb3I6ICRjcnVtYi1zbGFzaC1jb2xvcjtcbiAgICBtYXJnaW46IDAgJGNydW1iLXNpZGUtcGFkZGluZztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJicmVhZGNydW1ic1wiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzIHtcbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgQGluY2x1ZGUgY3J1bWItY29udGFpbmVyO1xuICAgICAgQGluY2x1ZGUgcmFkaXVzKCRjcnVtYi1yYWRpdXMpO1xuXG4gICAgICAmPioge1xuICAgICAgICBAaW5jbHVkZSBjcnVtYnM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIEFjY2Vzc2liaWxpdHkgLSBoaWRlcyB0aGUgZm9yd2FyZCBzbGFzaCAqL1xuW2FyaWEtbGFiZWw9XCJicmVhZGNydW1ic1wiXSBbYXJpYS1oaWRkZW49XCJ0cnVlXCJdOmFmdGVyIHtcbiAgY29udGVudDogXCIvXCI7XG4gIH1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJidXR0b25zXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1mb3JtLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBiYXNlIGZvciBsb3RzIG9mIGZvcm0gc3BhY2luZyBhbmQgcG9zaXRpb25pbmcgc3R5bGVzXG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgbGFiZWxzIGluIGRpZmZlcmVudCB3YXlzXG4kZm9ybS1sYWJlbC1wb2ludGVyOiBwb2ludGVyICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkYmxhY2ssICRsaWdodG5lc3M6IDMwJSkgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1zbWFsbC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1ib3R0b20tbWFyZ2luOiAwICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtY29sb3I6IHJnYmEoMCwwLDAsMC43NSkgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kaW5wdXQtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMiUpICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMjAlKSAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTQwJSkgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRpbnB1dC1kaXNhYmxlZC1iZzogJGdhaW5zYm9ybyAhZGVmYXVsdDtcbiRpbnB1dC1kaXNhYmxlZC1jdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZSAhZGVmYXVsdDtcbiRpbnB1dC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjEpICFkZWZhdWx0O1xuJGlucHV0LWluY2x1ZGUtZ2xvd2luZy1lZmZlY3Q6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGZpZWxkc2V0IGJvcmRlciBhbmQgc3BhY2luZy5cbiRmaWVsZHNldC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGZpZWxkc2V0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGZpZWxkc2V0LWJvcmRlci1jb2xvcjogJGdhaW5zYm9ybyAhZGVmYXVsdDtcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsZWdlbmRzIHdoZW4geW91IHVzZSB0aGVtXG4kbGVnZW5kLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kbGVnZW5kLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBwcmVmaXggYW5kIHBvc3RmaXggaW5wdXQgZWxlbWVudHNcbiRpbnB1dC1wcmVmaXgtYmc6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1ib3JkZXItdHlwZTogc29saWQgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LW92ZXJmbG93OiB2aXNpYmxlICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1mb250LWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyBzZXR0aW5nIHRvIHR1cm4gb24vb2ZmIEhUTUw1IG51bWJlciBzcGlubmVycyAodGhlIHVwL2Rvd24gYXJyb3dzKVxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBlcnJvciBzdGF0ZXMgZm9yIGlucHV0cyBhbmQgbGFiZWxzXG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1wYWRkaW5nOiByZW0tY2FsYyg2IDkgOSkgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS10b3A6IC0xcHggIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtYmctY29sb3I6ICRhbGVydC1jb2xvciAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtY29sb3ItYWx0OiAkb2lsICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzdHlsZSB0aGUgZ2xvd2luZyBlZmZlY3Qgb2YgaW5wdXRzIHdoZW4gZm9jdXNlZFxuJGdsb3dpbmctZWZmZWN0LWZhZGUtdGltZTogMC40NXMgIWRlZmF1bHQ7XG4kZ2xvd2luZy1lZmZlY3QtY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbi8vIFNlbGVjdCB2YXJpYWJsZXNcbiRzZWxlY3QtYmctY29sb3I6ICRnaG9zdCAhZGVmYXVsdDtcbiRzZWxlY3QtaG92ZXItYmctY29sb3I6IHNjYWxlLWNvbG9yKCRzZWxlY3QtYmctY29sb3IsICRsaWdodG5lc3M6IC0zJSkgIWRlZmF1bHQ7XG5cbi8vXG4vLyBATUlYSU5TXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBnaXZlIHVzIGZvcm0gc3R5bGVzIGZvciByb3dzIGluc2lkZSBvZiBmb3Jtc1xuQG1peGluIGZvcm0tcm93LWJhc2Uge1xuICAucm93IHsgbWFyZ2luOiAwICgoLSRmb3JtLXNwYWNpbmcpIC8gMik7XG5cbiAgICAuY29sdW1uLFxuICAgIC5jb2x1bW5zIHsgcGFkZGluZzogMCAoJGZvcm0tc3BhY2luZyAvIDIpOyB9XG5cbiAgICAvLyBVc2UgdGhpcyB0byBjb2xsYXBzZSB0aGUgbWFyZ2lucyBvZiBhIGZvcm0gcm93XG4gICAgJi5jb2xsYXBzZSB7IG1hcmdpbjogMDtcblxuICAgICAgLmNvbHVtbixcbiAgICAgIC5jb2x1bW5zIHsgcGFkZGluZzogMDsgfVxuICAgICAgaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAwKTtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuICBpbnB1dC5jb2x1bW4sXG4gIGlucHV0LmNvbHVtbnMsXG4gIHRleHRhcmVhLmNvbHVtbixcbiAgdGV4dGFyZWEuY29sdW1ucyB7IHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06ICgkZm9ybS1zcGFjaW5nIC8gMik7IH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gZ2l2ZSBhbGwgYmFzaWMgZm9ybSBlbGVtZW50cyB0aGVpciBzdHlsZVxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iZy1jb2xvcjtcbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgYm9yZGVyOiB7XG4gICAgc3R5bGU6ICRpbnB1dC1ib3JkZXItc3R5bGU7XG4gICAgd2lkdGg6ICRpbnB1dC1ib3JkZXItd2lkdGg7XG4gICAgY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gIH1cbiAgYm94LXNoYWRvdzogJGlucHV0LWJveC1zaGFkb3c7XG4gIGNvbG9yOiAkaW5wdXQtZm9udC1jb2xvcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZyAwO1xuICBwYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcbiAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgd2lkdGg6IDEwMCU7XG4gIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gIEBpZiAkaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdCB7XG4gICAgQGluY2x1ZGUgYmxvY2stZ2xvd2luZy1lZmZlY3QoZm9jdXMsICRnbG93aW5nLWVmZmVjdC1mYWRlLXRpbWUsICRnbG93aW5nLWVmZmVjdC1jb2xvcik7XG4gIH1cbiAgLy8gQmFzaWMgZm9jdXMgc3R5bGVzXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1mb2N1cy1iZy1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuICAvLyBEaXNiYWxlZCBTdHlsZXNcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWRpc2FibGVkLWJnO1xuICAgIGN1cnNvcjogJGlucHV0LWRpc2FibGVkLWN1cnNvcjtcbiAgfVxuXG4gIC8vIERpc2FibGVkIGJhY2tncm91bmQgaW5wdXQgYmFja2dyb3VuZCBjb2xvclxuICAmW2Rpc2FibGVkXSxcbiAgJltyZWFkb25seV0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiAkaW5wdXQtZGlzYWJsZWQtY3Vyc29yO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBmb3JtIGxhYmVsc1xuLy9cbi8vICRhbGlnbm1lbnQgLSBBbGlnbm1lbnQgb3B0aW9ucy4gRGVmYXVsdDogZmFsc2UuIE9wdGlvbnM6IFtyaWdodCwgaW5saW5lLCBmYWxzZV1cbi8vICRiYXNlLXN0eWxlIC0gQ29udHJvbCB3aGV0aGVyIG9yIG5vdCB0aGUgYmFzZSBzdHlsZXMgY29tZSB0aHJvdWdoLiBEZWZhdWx0OiB0cnVlLlxuQG1peGluIGZvcm0tbGFiZWwoJGFsaWdubWVudDpmYWxzZSwgJGJhc2Utc3R5bGU6dHJ1ZSkge1xuXG4gIC8vIENvbnRyb2wgd2hldGhlciBvciBub3QgdGhlIGJhc2Ugc3R5bGVzIGNvbWUgdGhyb3VnaC5cbiAgQGlmICRiYXNlLXN0eWxlIHtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGZvcm0tbGFiZWwtZm9udC1jb2xvcjtcbiAgICBjdXJzb3I6ICRmb3JtLWxhYmVsLXBvaW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1sYWJlbC1ib3R0b20tbWFyZ2luO1xuICB9XG5cbiAgLy8gQWxpZ25tZW50IG9wdGlvbnNcbiAgQGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBpbmxpbmUge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmcgMDtcbiAgICBwYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpIDA7XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIHBvc3RmaXgvcHJlZml4IGZvcm0gTGFiZWxzXG5AbWl4aW4gcHJlZml4LXBvc3RmaXgtYmFzZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgYm9yZGVyLXN0eWxlOiAkaW5wdXQtcHJlZml4LWJvcmRlci10eXBlO1xuICBib3JkZXItd2lkdGg6ICRpbnB1dC1wcmVmaXgtYm9yZGVyLXNpemU7XG4gIG92ZXJmbG93OiAkaW5wdXQtcHJlZml4LW92ZXJmbG93O1xuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgbGluZS1oZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcHJlZml4IGxhYmVsIHN0eWxlc1xuLy8gJGJnIC0gRGVmYXVsdDokaW5wdXQtcHJlZml4LWJnIHx8IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbi8vICRpcy1idXR0b24gLSBUb2dnbGUgcG9zaXRpb24gc2V0dGluZ3MgaWYgcHJlZml4IGlzIGEgYnV0dG9uLiBEZWZhdWx0OmZhbHNlXG4vL1xuQG1peGluIHByZWZpeCgkYmc6JGlucHV0LXByZWZpeC1iZywgJGJvcmRlcjokaW5wdXQtcHJlZml4LWJvcmRlci1jb2xvciwgJGlzLWJ1dHRvbjpmYWxzZSkge1xuXG4gIEBpZiAkYmcge1xuICAgICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICAgIGJhY2tncm91bmQ6ICRiZztcbiAgICBib3JkZXItI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogbm9uZTtcblxuICAgIC8vIENvbnRyb2wgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gYmFja2dyb3VuZCBicmlnaHRuZXNzXG4gICAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgb3IgJGJnID09IHllbGxvdyB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3I7IH1cbiAgICBAZWxzZSB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3ItYWx0OyB9XG4gIH1cblxuICBAaWYgJGJvcmRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICB9XG5cbiAgQGlmICRpcy1idXR0b24ge1xuICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcG9zdGZpeCBsYWJlbCBzdHlsZXNcbi8vICRiZyAtIERlZmF1bHQ6JGlucHV0LXByZWZpeC1iZyB8fCBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC01JSkgIWRlZmF1bHQ7XG4vLyAkaXMtYnV0dG9uIC0gVG9nZ2xlIHBvc2l0aW9uIHNldHRpbmdzIGlmIHByZWZpeCBpcyBhIGJ1dHRvbi4gRGVmYXVsdDogZmFsc2VcbkBtaXhpbiBwb3N0Zml4KCRiZzokaW5wdXQtcHJlZml4LWJnLCAkYm9yZGVyOiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yLCAkaXMtYnV0dG9uOmZhbHNlKSB7XG5cbiAgQGlmICRiZyB7XG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICAgIGJvcmRlci0jeyRkZWZhdWx0LWZsb2F0fTogbm9uZTtcblxuICAgIC8vIENvbnRyb2wgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gYmFja2dyb3VuZCBicmlnaHRuZXNzXG4gICAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgIG9yICRiZyA9PSB5ZWxsb3cgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yOyB9XG4gICAgQGVsc2UgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDsgfVxuICB9XG5cbiAgQGlmICRib3JkZXIge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgfVxuXG4gIEBpZiAkaXMtYnV0dG9uIHtcbiAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gc3R5bGUgZmllbGRzZXRzXG5AbWl4aW4gZmllbGRzZXQge1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXItd2lkdGggJGZpZWxkc2V0LWJvcmRlci1zdHlsZSAkZmllbGRzZXQtYm9yZGVyLWNvbG9yO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuXG4gIC8vIGFuZCBsZWdlbmQgc3R5bGVzXG4gIGxlZ2VuZCB7XG4gICAgZm9udC13ZWlnaHQ6ICRsZWdlbmQtZm9udC13ZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogJGxlZ2VuZC1iZztcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogcmVtLWNhbGMoLTMpO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNvbnRyb2wgYm9yZGVyIGFuZCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGVycm9yIGlucHV0c1xuLy8gJGNvbG9yIC0gRGVmYXVsdDogJGFsZXJ0LWNvbG9yIChmb3VuZCBpbiBzZXR0aW5ncyBmaWxlKVxuQG1peGluIGZvcm0tZXJyb3ItY29sb3IoJGNvbG9yOiRhbGVydC1jb2xvcikge1xuICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3IsIDAuMSk7XG5cbiAgLy8gR28gYmFjayB0byBub3JtYWwgb24gZm9jdXNcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LWZvY3VzLWJnLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBzaW1wbGUgbWl4aW4gdG8gc3R5bGUgbGFiZWxzIGZvciBlcnJvciBpbnB1dHNcbi8vICRjb2xvciAtIERlZmF1bHQ6JGFsZXJ0LWNvbG9yLiBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG5AbWl4aW4gZm9ybS1sYWJlbC1lcnJvci1jb2xvcigkY29sb3I6JGFsZXJ0LWNvbG9yKSB7IGNvbG9yOiAkY29sb3I7IH1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGVycm9yIG1lc3NhZ2Ugc3R5bGVzXG4vLyAkYmcgLSBEZWZhdWx0OiAkYWxlcnQtY29sb3IgKEZvdW5kIGluIHNldHRpbmdzIGZpbGUpXG5AbWl4aW4gZm9ybS1lcnJvci1tZXNzYWdlKCRiZzokaW5wdXQtZXJyb3ItbWVzc2FnZS1iZy1jb2xvcikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJGlucHV0LWVycm9yLW1lc3NhZ2UtcGFkZGluZztcbiAgbWFyZ2luLXRvcDogJGlucHV0LWVycm9yLW1lc3NhZ2UtdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtd2VpZ2h0O1xuICBmb250LXN0eWxlOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXN0eWxlO1xuXG4gIC8vIFdlIGNhbiBjb250cm9sIHRoZSB0ZXh0IGNvbG9yIGJhc2VkIG9uIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBiYWNrZ3JvdW5kLlxuICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcbiAgYmFja2dyb3VuZDogJGJnO1xuICBAaWYgJGJnLWxpZ2h0bmVzcyA8IDcwJSBvciAkYmcgPT0geWVsbG93IHsgY29sb3I6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtY29sb3I7IH1cbiAgQGVsc2UgeyBjb2xvcjogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvci1hbHQ7IH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gc3R5bGUgc2VsZWN0IGVsZW1lbnRzXG5AbWl4aW4gZm9ybS1zZWxlY3QgIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmctY29sb3I7XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBjdXN0b20gYXJyb3cgaGFzIHNvbWUgZmFrZSBob3Jpem9udGFsIHBhZGRpbmcgc28gd2UgY2FuIGFsaWduIGl0XG4gIC8vIGZyb20gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGVsZW1lbnQgd2l0aG91dCByZWx5aW5nIG9uIENTUzNcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWmxjbk5wYjI0OUlqRXVNU0lnZUQwaU1USndlQ0lnZVQwaU1IQjRJaUIzYVdSMGFEMGlNalJ3ZUNJZ2FHVnBaMmgwUFNJemNIZ2lJSFpwWlhkQ2IzZzlJakFnTUNBMklETWlJR1Z1WVdKc1pTMWlZV05yWjNKdmRXNWtQU0p1WlhjZ01DQXdJRFlnTXlJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStQSEJ2YkhsbmIyNGdjRzlwYm5SelBTSTFMams1TWl3d0lESXVPVGt5TERNZ0xUQXVNREE0TERBZ0lpOCtQQzl6ZG1jKyk7XG5cbiAgLy8gV2UgY2FuIHNhZmVseSB1c2UgbGVmdG1vc3QgYW5kIHJpZ2h0bW9zdCBub3dcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogaWYoJHRleHQtZGlyZWN0aW9uID09ICdydGwnLCAwJSwgMTAwJSkgY2VudGVyO1xuXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJvcmRlcjoge1xuICAgIHN0eWxlOiAkaW5wdXQtYm9yZGVyLXN0eWxlO1xuICAgIHdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoO1xuICAgIGNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICB9XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMik7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICBjb2xvcjogJGlucHV0LWZvbnQtY29sb3I7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIEBpbmNsdWRlIHJhZGl1cygwKTtcbiAgJi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoJGdsb2JhbC1yYWRpdXMpOyB9XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaG92ZXItYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuICB9XG4gIC8vIERpc2FibGVkIFN0eWxlc1xuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiAkaW5wdXQtZGlzYWJsZWQtY3Vyc29yO1xuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIHR1cm4gb24vb2ZmIEhUTUw1IG51bWJlciBzcGlubmVyc1xuQG1peGluIGh0bWw1bnVtYmVyKCRicm93c2VyLCAkb246dHJ1ZSkge1xuICBAaWYgJG9uPT1mYWxzZSB7XG4gICAgICBAaWYgJGJyb3dzZXI9PXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfSBAZWxzZSBpZiAkYnJvd3Nlcj09bW96IHtcbiAgICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gICAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImZvcm1cIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1mb3JtLWNsYXNzZXMge1xuICAgIC8qIFN0YW5kYXJkIEZvcm1zICovXG4gICAgZm9ybSB7IG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7IH1cblxuICAgIC8qIFVzaW5nIGZvcm1zIHdpdGhpbiByb3dzLCB3ZSBuZWVkIHRvIHNldCBzb21lIGRlZmF1bHRzICovXG4gICAgZm9ybSAucm93IHsgQGluY2x1ZGUgZm9ybS1yb3ctYmFzZTsgfVxuXG4gICAgLyogTGFiZWwgU3R5bGVzICovXG4gICAgbGFiZWwgeyBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuICAgICAgJi5yaWdodCB7IEBpbmNsdWRlIGZvcm0tbGFiZWwocmlnaHQsZmFsc2UpOyB9XG4gICAgICAmLmlubGluZSB7IEBpbmNsdWRlIGZvcm0tbGFiZWwoaW5saW5lLGZhbHNlKTsgfVxuICAgICAgLyogU3R5bGVzIGZvciByZXF1aXJlZCBpbnB1dHMgKi9cbiAgICAgIHNtYWxsIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTtcbiAgICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRmb3JtLWxhYmVsLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDE1JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQXR0YWNoIGVsZW1lbnRzIHRvIHRoZSBiZWdpbm5pbmcgb3IgZW5kIG9mIGFuIGlucHV0ICovXG4gICAgLnByZWZpeCxcbiAgICAucG9zdGZpeCB7IEBpbmNsdWRlIHByZWZpeC1wb3N0Zml4LWJhc2U7IH1cblxuICAgIC8qIEFkanVzdCBwYWRkaW5nLCBhbGlnbm1lbnQgYW5kIHJhZGl1cyBpZiBwcmUvcG9zdCBlbGVtZW50IGlzIGEgYnV0dG9uICovXG4gICAgLnBvc3RmaXguYnV0dG9uIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoZmFsc2UsZmFsc2UpOyBAaW5jbHVkZSBwb3N0Zml4KGZhbHNlLCBmYWxzZSwgdHJ1ZSk7IH1cbiAgICAucHJlZml4LmJ1dHRvbiB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKGZhbHNlLGZhbHNlKTsgQGluY2x1ZGUgcHJlZml4KGZhbHNlLCBmYWxzZSwgdHJ1ZSk7IH1cblxuICAgIC5wcmVmaXguYnV0dG9uLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcmFkaXVzKTsgfVxuICAgIC5wb3N0Zml4LmJ1dHRvbi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcmFkaXVzKTsgfVxuICAgIC5wcmVmaXguYnV0dG9uLnJvdW5kIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAucG9zdGZpeC5idXR0b24ucm91bmQgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcm91bmQpOyB9XG5cbiAgICAvKiBTZXBhcmF0ZSBwcmVmaXggYW5kIHBvc3RmaXggc3R5bGVzIHdoZW4gb24gc3BhbiBvciBsYWJlbCBzbyBidXR0b25zIGtlZXAgdGhlaXIgb3duICovXG4gICAgc3Bhbi5wcmVmaXgsbGFiZWwucHJlZml4IHsgQGluY2x1ZGUgcHJlZml4KCk7IH1cbiAgICBzcGFuLnBvc3RmaXgsbGFiZWwucG9zdGZpeCB7IEBpbmNsdWRlIHBvc3RmaXgoKTsgfVxuXG4gICAgLyogV2UgdXNlIHRoaXMgdG8gZ2V0IGJhc2ljIHN0eWxpbmcgb24gYWxsIGJhc2ljIGZvcm0gZWxlbWVudHMgKi9cbiAgICAje3RleHQtaW5wdXRzKGFsbCwgJ2lucHV0Jyl9IHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgICBAaWYgJGlucHV0LWluY2x1ZGUtZ2xvd2luZy1lZmZlY3QgPT0gZmFsc2Uge1xuICAgICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGFsbCwgMC4xNXMsIGxpbmVhcik7XG4gICAgICB9XG4gICAgICAmLnJhZGl1cyB7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAucm93IHtcbiAgICAgICAgLnByZWZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgICAucHJlZml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgICAgIH1cbiAgICAgICAgLnBvc3RmaXgtcmFkaXVzLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcmFkaXVzKTsgfVxuICAgICAgICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgICAucHJlZml4LXJvdW5kLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAgICAgICAucHJlZml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAgICAgfVxuICAgICAgICAucG9zdGZpeC1yb3VuZC5yb3cuY29sbGFwc2Uge1xuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIHRleHRhcmVhLFxuICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICBidXR0b24geyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC8qIFJlc3BlY3QgZW5mb3JjZWQgYW1vdW50IG9mIHJvd3MgZm9yIHRleHRhcmVhICovXG4gICAgdGV4dGFyZWFbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuXHQvKiBOb3QgYWxsb3cgcmVzaXplIG91dCBvZiBwYXJlbnQgKi9cblx0dGV4dGFyZWEge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0fVxuXG4gICAgLyogQWRkIGhlaWdodCB2YWx1ZSBmb3Igc2VsZWN0IGVsZW1lbnRzIHRvIG1hdGNoIHRleHQgaW5wdXQgaGVpZ2h0ICovXG4gICAgc2VsZWN0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICAgICAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgICAgICZbbXVsdGlwbGVdIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIEFkanVzdCBtYXJnaW4gZm9yIGZvcm0gZWxlbWVudHMgYmVsb3cgKi9cbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAgIHNlbGVjdCB7XG4gICAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWwsXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWwge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkZm9ybS1zcGFjaW5nICogLjU7XG4gICAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGZvcm0tc3BhY2luZztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgfVxuXG4gICAgLyogTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGggKi9cbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgICB3aWR0aDoxMDAlO1xuICAgIH1cblxuICAgIC8qIEhUTUw1IE51bWJlciBzcGlubmVycyBzZXR0aW5ncyAqL1xuICAgIGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gICAgICBAaW5jbHVkZSBodG1sNW51bWJlcihtb3osICRpbnB1dC1udW1iZXItc3Bpbm5lcnMpXG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBodG1sNW51bWJlcih3ZWJraXQsICRpbnB1dC1udW1iZXItc3Bpbm5lcnMpO1xuICAgIH1cblxuICAgIC8qIFdlIGFkZCBiYXNpYyBmaWVsZHNldCBzdHlsaW5nICovXG4gICAgZmllbGRzZXQge1xuICAgICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gICAgfVxuXG4gICAgLyogRXJyb3IgSGFuZGxpbmcgKi9cblxuICAgICN7ZGF0YSgnYWJpZGUnKX0ge1xuICAgICAgLmVycm9yIHNtYWxsLmVycm9yLCAuZXJyb3Igc3Bhbi5lcnJvciwgc3Bhbi5lcnJvciwgc21hbGwuZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmb3JtLWVycm9yLW1lc3NhZ2U7XG4gICAgICB9XG4gICAgICBzcGFuLmVycm9yLCBzbWFsbC5lcnJvciB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICB9XG5cbiAgICBzcGFuLmVycm9yLCBzbWFsbC5lcnJvciB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWVycm9yLW1lc3NhZ2U7XG4gICAgfVxuXG4gICAgLmVycm9yIHtcbiAgICAgIGlucHV0LFxuICAgICAgdGV4dGFyZWEsXG4gICAgICBzZWxlY3Qge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nXG4gICAgICB9XG5cbiAgICAgIGxhYmVsLFxuICAgICAgbGFiZWwuZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLWVycm9yLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICBzbWFsbC5lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZvcm0tZXJyb3ItbWVzc2FnZTtcbiAgICAgIH1cblxuICAgICAgPiBsYWJlbCB7XG4gICAgICAgID4gc21hbGwge1xuICAgICAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkZm9ybS1sYWJlbC1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAxNSUpO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC1zaXplOiA2MCU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzcGFuLmVycm9yLW1lc3NhZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dC5lcnJvcixcbiAgICB0ZXh0YXJlYS5lcnJvcixcbiAgICBzZWxlY3QuZXJyb3Ige1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgbGFiZWwuZXJyb3IgeyBAaW5jbHVkZSBmb3JtLWxhYmVsLWVycm9yLWNvbG9yOyB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBidWlsZCBwYWRkaW5nIGZvciBidXR0b25zLlxuJGJ1dHRvbi10bnk6IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRidXR0b24tc21sOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kYnV0dG9uLW1lZDogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJGJ1dHRvbi1scmc6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgZGlzcGxheSBwcm9wZXJ0eS5cbiRidXR0b24tZGlzcGxheTogaW5saW5lLWJsb2NrICFkZWZhdWx0O1xuJGJ1dHRvbi1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJ1dHRvbiB0ZXh0IHN0eWxlcy5cbiRidXR0b24tZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtY29sb3ItYWx0OiAkb2lsICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXRueTogcmVtLWNhbGMoMTEpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXNtbDogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LW1lZDogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWxyZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2YXJpb3VzIGhvdmVyIGVmZmVjdHMuXG4kYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcjogLTIwJSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYnV0dG9uIGJvcmRlciBzdHlsZXMuXG4kYnV0dG9uLWJvcmRlci13aWR0aDogMCAhZGVmYXVsdDtcbiRidXR0b24tYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRidXR0b24tYmctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iZy1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGJ1dHRvbi1ib3JkZXItY29sb3I6ICRidXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHN1Y2Nlc3MtY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRzdWNjZXNzLWJ1dHRvbi1ib3JkZXItY29sb3I6ICRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRhbGVydC1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRhbGVydC1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGFsZXJ0LWJ1dHRvbi1ib3JkZXItY29sb3I6ICRhbGVydC1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kd2FybmluZy1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCR3YXJuaW5nLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kd2FybmluZy1idXR0b24tYm9yZGVyLWNvbG9yOiAkd2FybmluZy1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kaW5mby1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRpbmZvLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kaW5mby1idXR0b24tYm9yZGVyLWNvbG9yOiAkaW5mby1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgZGVmYXVsdCByYWRpdXMgdXNlZCB0aHJvdWdob3V0IHRoZSBjb3JlLlxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJGJ1dHRvbi1yb3VuZDogJGdsb2JhbC1yb3VuZGVkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgZGVmYXVsdCBvcGFjaXR5IGFuZCBjdXJzb3IgZm9yIGRpc2FibGVkIGJ1dHRvbnMuXG4kYnV0dG9uLWRpc2FibGVkLW9wYWNpdHk6IDAuNyAhZGVmYXVsdDtcbiRidXR0b24tZGlzYWJsZWQtY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWUgIWRlZmF1bHQ7XG5cblxuLy9cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBhIGRlZmF1bHQgYnV0dG9uIGJhc2UuXG4vL1xuLy8gJHN0eWxlIC0gU2V0cyBiYXNlIHN0eWxlcy4gQ2FuIGJlIHNldCB0byBmYWxzZS4gRGVmYXVsdDogdHJ1ZS5cbi8vICRkaXNwbGF5IC0gVXNlZCB0byBjb250cm9sIGRpc3BsYXkgcHJvcGVydHkuIERlZmF1bHQ6ICRidXR0b24tZGlzcGxheSB8fCBpbmxpbmUtYmxvY2tcblxuQG1peGluIGJ1dHRvbi1iYXNlKCRzdHlsZTp0cnVlLCAkZGlzcGxheTokYnV0dG9uLWRpc3BsYXkpIHtcbiAgQGlmICRzdHlsZSB7XG4gICAgYm9yZGVyLXN0eWxlOiAkYnV0dG9uLWJvcmRlci1zdHlsZTtcbiAgICBib3JkZXItd2lkdGg6ICRidXR0b24tYm9yZGVyLXdpZHRoO1xuICAgIGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlO1xuICAgIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkYnV0dG9uLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luOiAwIDAgJGJ1dHRvbi1tYXJnaW4tYm90dG9tO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogJGJ1dHRvbi1mb250LWFsaWduO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czowO1xuICB9XG4gIEBpZiAkZGlzcGxheSB7IGRpc3BsYXk6ICRkaXNwbGF5OyB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBidXR0b24gc2l6ZSBzdHlsZXNcbi8vXG4vLyAkcGFkZGluZyAtIFVzZWQgdG8gYnVpbGQgcGFkZGluZyBmb3IgYnV0dG9ucyBEZWZhdWx0OiAkYnV0dG9uLW1lZCB8fD0gcmVtLWNhbGMoMTIpXG4vLyAkZnVsbC13aWR0aCAtIFdlIGNhbiBzZXQgJGZ1bGwtd2lkdGg6dHJ1ZSB0byByZW1vdmUgc2lkZSBwYWRkaW5nIGV4dGVuZCB3aWR0aCAtIERlZmF1bHQ6IGZhbHNlXG5cbkBtaXhpbiBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLW1lZCwgJGZ1bGwtd2lkdGg6ZmFsc2UpIHtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIHBhZGRpbmcgc3R5bGVzIGNvbWUgdGhyb3VnaCxcbiAgLy8gdGhlc2UgY2FuIGJlIHR1cm5lZCBvZmYgYnkgc2V0dGluZyAkcGFkZGluZzpmYWxzZVxuICBAaWYgJHBhZGRpbmcge1xuICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRwYWRkaW5nICogMjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcgKyByZW0tY2FsYygxKTtcbiAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAkcGFkZGluZyAqIDI7XG5cbiAgICAvLyBXZSBjb250cm9sIHRoZSBmb250LXNpemUgYmFzZWQgb24gbWl4aW4gaW5wdXQuXG4gICAgQGlmICAgICAgJHBhZGRpbmcgPT0gJGJ1dHRvbi1tZWQgeyBmb250LXNpemU6ICRidXR0b24tZm9udC1tZWQ7IH1cbiAgICBAZWxzZSBpZiAkcGFkZGluZyA9PSAkYnV0dG9uLXRueSB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LXRueTsgfVxuICAgIEBlbHNlIGlmICRwYWRkaW5nID09ICRidXR0b24tc21sIHsgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtc21sOyB9XG4gICAgQGVsc2UgaWYgJHBhZGRpbmcgPT0gJGJ1dHRvbi1scmcgeyBmb250LXNpemU6ICRidXR0b24tZm9udC1scmc7IH1cbiAgfVxuXG4gIC8vIFdlIGNhbiBzZXQgJGZ1bGwtd2lkdGg6dHJ1ZSB0byByZW1vdmUgc2lkZSBwYWRkaW5nIGV4dGVuZCB3aWR0aC5cbiAgQGlmICRmdWxsLXdpZHRoIHtcbiAgICAvLyBXZSBzdGlsbCBuZWVkIHRvIGNoZWNrIGlmICRwYWRkaW5nIGlzIHNldC5cbiAgICBAaWYgJHBhZGRpbmcge1xuICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcgKyByZW0tY2FsYygxKTtcbiAgICB9IEBlbHNlIGlmICRwYWRkaW5nID09IGZhbHNlIHtcbiAgICAgIHBhZGRpbmctdG9wOjA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTowO1xuICAgIH1cbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyB3ZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgdGhlIGJ1dHRvbiBob3ZlciBhbmQgYm9yZGVyIGNvbG9yc1xuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBhZGQgYnV0dG9uIGNvbG9yIHN0eWxlc1xuLy9cbi8vICRiZyAtIEJhY2tncm91bmQgY29sb3IuIFdlIGNhbiBzZXQgJGJnOmZhbHNlIGZvciBhIHRyYW5zcGFyZW50IGJhY2tncm91bmQuIERlZmF1bHQ6ICRwcmltYXJ5LWNvbG9yLlxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBidXR0b24gcmFkaXVzIHdoaWNoIGlzICRidXR0b24tcmFkaXVzIHx8IGV4cGxpY2l0bHkgc2V0IHJhZGl1cyBhbW91bnQgaW4gcHggKGV4LiAkcmFkaXVzOjEwcHgpLiBEZWZhdWx0OiBmYWxzZVxuLy8gJGRpc2FibGVkIC0gV2UgY2FuIHNldCAkZGlzYWJsZWQ6dHJ1ZSB0byBjcmVhdGUgYSBkaXNhYmxlZCB0cmFuc3BhcmVudCBidXR0b24uIERlZmF1bHQ6IGZhbHNlXG4vLyAkYmctaG92ZXIgLSBCdXR0b24gSG92ZXIgQmFja2dyb3VuZCBDb2xvci4gRGVmYXVsdDogJGJ1dHRvbi1iZy1ob3ZlclxuLy8gJGJvcmRlci1jb2xvciAtIEJ1dHRvbiBCb3JkZXIgQ29sb3IuIERlZmF1bHQ6ICRidXR0b24tYm9yZGVyLWNvbG9yXG5AbWl4aW4gYnV0dG9uLXN0eWxlKCRiZzokYnV0dG9uLWJnLWNvbG9yLCAkcmFkaXVzOmZhbHNlLCAkZGlzYWJsZWQ6ZmFsc2UsICRiZy1ob3ZlcjpudWxsLCAkYm9yZGVyLWNvbG9yOm51bGwpIHtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIGJhY2tncm91bmQgc3R5bGVzIGFyZSB1c2VkLFxuICAvLyB0aGVzZSBjYW4gYmUgcmVtb3ZlZCBieSBzZXR0aW5nICRiZzpmYWxzZVxuICBAaWYgJGJnIHtcblxuICAgIEBpZiAkYmctaG92ZXIgPT0gbnVsbCB7XG4gICAgICAkYmctaG92ZXI6IGlmKCRiZyA9PSAkYnV0dG9uLWJnLWNvbG9yLCAkYnV0dG9uLWJnLWhvdmVyLCBzY2FsZS1jb2xvcigkYmcsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSk7XG4gICAgfVxuXG4gICAgQGlmICRib3JkZXItY29sb3IgPT0gbnVsbCB7XG4gICAgICAkYm9yZGVyLWNvbG9yOiBpZigkYmcgPT0gJGJ1dHRvbi1iZy1jb2xvciwgJGJ1dHRvbi1ib3JkZXItY29sb3IsIHNjYWxlLWNvbG9yKCRiZywgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZpbmQgdGhlIGxpZ2h0bmVzcyBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICAgICRiZy1ob3Zlci1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmctaG92ZXIpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctaG92ZXI7IH1cblxuICAgIC8vIFdlIGNvbnRyb2wgdGhlIHRleHQgY29sb3IgZm9yIHlvdSBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbiAgICBjb2xvcjogaWYoJGJnLWxpZ2h0bmVzcyA+IDcwJSwgJGJ1dHRvbi1mb250LWNvbG9yLWFsdCwgJGJ1dHRvbi1mb250LWNvbG9yKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogaWYoJGJnLWhvdmVyLWxpZ2h0bmVzcyA+IDcwJSwgJGJ1dHRvbi1mb250LWNvbG9yLWFsdCwgJGJ1dHRvbi1mb250LWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi5cbiAgQGlmICRkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiAkYnV0dG9uLWRpc2FibGVkLWN1cnNvcjtcbiAgICBvcGFjaXR5OiAkYnV0dG9uLWRpc2FibGVkLW9wYWNpdHk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7IH1cbiAgfVxuXG4gIC8vIFdlIGNhbiBjb250cm9sIGhvdyBtdWNoIGJ1dHRvbiByYWRpdXMgaXMgdXNlZC5cbiAgQGlmICRyYWRpdXMgPT0gdHJ1ZSB7IEBpbmNsdWRlIHJhZGl1cygkYnV0dG9uLXJhZGl1cyk7IH1cbiAgQGVsc2UgaWYgJHJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTsgfVxuXG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIHF1aWNrbHkgY3JlYXRlIGJ1dHRvbnMgd2l0aCBhIHNpbmdsZSBtaXhpbi4gQXMgQGphcmVkaGFyZHkgcHV0cyBpdCwgXCJ0aGUga2l0Y2hlbiBzaW5rIG1peGluXCJcbi8vXG4vLyAkcGFkZGluZyAtIFVzZWQgdG8gYnVpbGQgcGFkZGluZyBmb3IgYnV0dG9ucyBEZWZhdWx0OiAkYnV0dG9uLW1lZCB8fD0gcmVtLWNhbGMoMTIpXG4vLyAkYmcgLSBQcmltYXJ5IGNvbG9yIHNldCBpbiBzZXR0aW5ncyBmaWxlLiBEZWZhdWx0OiAkYnV0dG9uLWJnLlxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBidXR0b24gcmFkaXVzIHdoaWNoIGlzICRnbG9iYWwtcmFkaXVzIHx8IGV4cGxpY2l0bHkgc2V0IHJhZGl1cyBhbW91bnQgaW4gcHggKGV4LiAkcmFkaXVzOjEwcHgpLiBEZWZhdWx0OmZhbHNlLlxuLy8gJGZ1bGwtd2lkdGggLSBXZSBjYW4gc2V0ICRmdWxsLXdpZHRoOnRydWUgdG8gcmVtb3ZlIHNpZGUgcGFkZGluZyBleHRlbmQgd2lkdGguIERlZmF1bHQ6ZmFsc2UuXG4vLyAkZGlzYWJsZWQgLSBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi4gRGVmYXVsdDpmYWxzZS5cbi8vICRpcy1wcmVmaXggLSBOb3QgdXNlZD8gRGVmYXVsdDpmYWxzZS5cbi8vICRiZy1ob3ZlciAtIEJ1dHRvbiBIb3ZlciBDb2xvciAtIERlZmF1bHQgbnVsbCAtIHNlZSBidXR0b24tc3R5bGUgbWl4aW5cbi8vICRib3JkZXItY29sb3IgLSBCdXR0b24gQm9yZGVyIENvbG9yIC0gRGVmYXVsdCBudWxsIC0gc2VlIGJ1dHRvbi1zdHlsZSBtaXhpblxuLy8gJHRyYW5zaXRpb24gLSBXZSBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIHRyYW5zaXRpb24gcHJvcGVydHkgLSBEZWZhdWx0OnRydWUuXG5AbWl4aW4gYnV0dG9uKCRwYWRkaW5nOiRidXR0b24tbWVkLCAkYmc6JGJ1dHRvbi1iZy1jb2xvciwgJHJhZGl1czpmYWxzZSwgJGZ1bGwtd2lkdGg6ZmFsc2UsICRkaXNhYmxlZDpmYWxzZSwgJGlzLXByZWZpeDpmYWxzZSwgJGJnLWhvdmVyOm51bGwsICRib3JkZXItY29sb3I6bnVsbCwgJHRyYW5zaXRpb246IHRydWUpIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nLCAkZnVsbC13aWR0aCk7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmcsICRyYWRpdXMsICRkaXNhYmxlZCwgJGJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yKTtcblxuICBAaWYgJHRyYW5zaXRpb24ge1xuICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuICB9XG59XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcImJ1dHRvblwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzIHtcblxuICAgIC8vIERlZmF1bHQgc3R5bGVzIGFwcGxpZWQgb3V0c2lkZSBvZiBtZWRpYSBxdWVyeVxuICAgIGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tYmFzZTtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplO1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlO1xuXG4gICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IsICRiZy1ob3Zlcjokc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLnN1Y2Nlc3MgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHN1Y2Nlc3MtY29sb3IsICRiZy1ob3Zlcjokc3VjY2Vzcy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHN1Y2Nlc3MtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYWxlcnQtY29sb3IsICRiZy1ob3ZlcjokYWxlcnQtYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRhbGVydC1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgJi53YXJuaW5nICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiR3YXJuaW5nLWNvbG9yLCAkYmctaG92ZXI6JHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiR3YXJuaW5nLWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLmluZm8gICAgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGluZm8tY29sb3IsICRiZy1ob3ZlcjokaW5mby1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cblxuICAgICAgJi5sYXJnZSAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLWxyZyk7IH1cbiAgICAgICYuc21hbGwgIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi1zbWwpOyB9XG4gICAgICAmLnRpbnkgICB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOiRidXR0b24tdG55KTsgfVxuICAgICAgJi5leHBhbmQgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzpudWxsLCRmdWxsLXdpZHRoOnRydWUpOyB9XG5cbiAgICAgICYubGVmdC1hbGlnbiAgeyB0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDogcmVtLWNhbGMoMTIpOyB9XG4gICAgICAmLnJpZ2h0LWFsaWduIHsgdGV4dC1hbGlnbjogcmlnaHQ7IHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDEyKTsgfVxuXG4gICAgICAmLnJhZGl1cyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6ZmFsc2UsICRyYWRpdXM6dHJ1ZSk7IH1cbiAgICAgICYucm91bmQgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzpmYWxzZSwgJHJhZGl1czokYnV0dG9uLXJvdW5kKTsgfVxuXG4gICAgICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGJ1dHRvbi1iZy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRidXR0b24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JHNlY29uZGFyeS1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLnN1Y2Nlc3MgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzdWNjZXNzLWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc3VjY2Vzcy1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLmFsZXJ0IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYWxlcnQtY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JGFsZXJ0LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokYWxlcnQtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi53YXJuaW5nIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokd2FybmluZy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3Zlcjokd2FybmluZy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi5pbmZvIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokaW5mby1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokaW5mby1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL2ZpcmVmb3ggMnB4IGZpeFxuICAgIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7Ym9yZGVyOjA7IHBhZGRpbmc6MDt9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBidXR0b24sIC5idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tYmFzZSgkc3R5bGU6ZmFsc2UsICRkaXNwbGF5OmlubGluZS1ibG9jayk7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOmZhbHNlLCAkZnVsbC13aWR0aDpmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1ncmlkLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcbiRpbmNsdWRlLXhsLWh0bWwtZ3JpZC1jbGFzc2VzOiBmYWxzZSAhZGVmYXVsdDtcblxuJHJvdy13aWR0aDogcmVtLWNhbGMoMTAwMCkgIWRlZmF1bHQ7XG4kdG90YWwtY29sdW1uczogMTIgIWRlZmF1bHQ7XG5cbiRsYXN0LWNoaWxkLWZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uICFkZWZhdWx0O1xuXG4vL1xuLy8gR3JpZCBGdW5jdGlvbnNcbi8vXG5cbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEsIHVzZSBncmlkLWNhbGMoKVxuQGZ1bmN0aW9uIGdyaWRDYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpIHtcbiAgQHdhcm4gXCJncmlkQ2FsYygpIGlzIGRlcHJlY2F0ZWQsIHVzZSBncmlkLWNhbGMoKVwiO1xuICBAcmV0dXJuIGdyaWQtY2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKTtcbn1cblxuLy8gQEZVTkNUSU9OXG4vLyAkY29sTnVtYmVyIC0gRm91bmQgaW4gc2V0dGluZ3MgZmlsZVxuLy8gJHRvdGFsQ29sdW1ucyAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbkBmdW5jdGlvbiBncmlkLWNhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucykge1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoKCRjb2xOdW1iZXIgLyAkdG90YWxDb2x1bW5zKSk7XG59XG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG4vLyBGb3IgY3JlYXRpbmcgY29udGFpbmVyLCBuZXN0ZWQsIGFuZCBjb2xsYXBzZWQgcm93cy5cbi8vXG4vL1xuLy8gJGJlaGF2aW9yIC0gQW55IHNwZWNpYWwgYmVoYXZpb3IgZm9yIHRoaXMgcm93PyBEZWZhdWx0OiBmYWxzZS4gT3B0aW9uczogbmVzdCwgY29sbGFwc2UsIG5lc3QtY29sbGFwc2UsIGZhbHNlLlxuQG1peGluIGdyaWQtcm93KCRiZWhhdmlvcjogZmFsc2UpIHtcblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3cobmVzdCk7IHRvIGluY2x1ZGUgYSBuZXN0ZWQgcm93XG4gIEBpZiAkYmVoYXZpb3IgPT0gbmVzdCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3coY29sbGFwc2UpOyB0byBjb2xsYXBzZWQgYSBjb250YWluZXIgcm93IG1hcmdpbnNcbiAgQGVsc2UgaWYgJGJlaGF2aW9yID09IGNvbGxhcHNlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LXdpZHRoOiAkcm93LXdpZHRoO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KG5lc3QtY29sbGFwc2UpOyB0byBjb2xsYXBzZSBvdXRlciBtYXJnaW5zIG9uIGEgbmVzdGVkIHJvd1xuICBAZWxzZSBpZiAkYmVoYXZpb3IgPT0gbmVzdC1jb2xsYXBzZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdzsgdG8gdXNlIGEgY29udGFpbmVyIHJvd1xuICBAZWxzZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gIH1cblxuICAvLyBDbGVhcmZpeCBmb3IgYWxsIHJvd3NcbiAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGNvbHVtbiwgc2hvdWxkIGJlIHVzZWQgaW5zaWRlIG9mIGEgbWVkaWEgcXVlcnkgdG8gY29udHJvbCBsYXlvdXRzXG4vL1xuLy8gJGNvbHVtbnMgLSBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhpcyBzaG91bGQgYmVcbi8vICRsYXN0LWNvbHVtbiAtIElzIHRoaXMgdGhlIGxhc3QgY29sdW1uPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRjZW50ZXIgLSBDZW50ZXIgdGhlc2UgY29sdW1ucz8gRGVmYXVsdDogZmFsc2UuXG4vLyAkb2Zmc2V0IC0gIyBvZiBjb2x1bW5zIHRvIG9mZnNldC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkcHVzaCAtICMgb2YgY29sdW1ucyB0byBwdXNoLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRwdWxsIC0gIyBvZiBjb2x1bW5zIHRvIHB1bGwuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJGNvbGxhcHNlIC0gR2V0IHJpZCBvZiBndXR0ZXIgcGFkZGluZyBvbiBjb2x1bW4/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJGZsb2F0IC0gU2hvdWxkIHRoaXMgZmxvYXQ/IERlZmF1bHQ6IHRydWUuIE9wdGlvbnM6IHRydWUsIGZhbHNlLCBsZWZ0LCByaWdodC5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ZmFsc2UsXG4gICRsYXN0LWNvbHVtbjpmYWxzZSxcbiAgJGNlbnRlcjpmYWxzZSxcbiAgJG9mZnNldDpmYWxzZSxcbiAgJHB1c2g6ZmFsc2UsXG4gICRwdWxsOmZhbHNlLFxuICAkY29sbGFwc2U6ZmFsc2UsXG4gICRmbG9hdDp0cnVlLFxuICAkcG9zaXRpb246ZmFsc2UpIHtcblxuICAvLyBJZiBwb3NpdGlvbmVkIGZvciBkZWZhdWx0IC5jb2x1bW4sIGluY2x1ZGUgcmVsYXRpdmUgcG9zaXRpb25cbiAgLy8gcHVzaCBhbmQgcHVsbCByZXF1aXJlIHBvc2l0aW9uIHNldFxuICBAaWYgJHBvc2l0aW9uIG9yICRwdXNoIG9yICRwdWxsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAvLyBJZiBjb2xsYXBzZWQsIGdldCByaWQgb2YgZ3V0dGVyIHBhZGRpbmdcbiAgQGlmICRjb2xsYXBzZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAvLyBHdXR0ZXIgcGFkZGluZyB3aGVuZXZlciBhIGNvbHVtbiBpc24ndCBzZXQgdG8gY29sbGFwc2VcbiAgLy8gKHVzZSAkY29sbGFwc2U6bnVsbCB0byBkbyBub3RoaW5nKVxuICBAZWxzZSBpZiAkY29sbGFwc2UgPT0gZmFsc2Uge1xuICAgIHBhZGRpbmctbGVmdDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gICAgcGFkZGluZy1yaWdodDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gIH1cblxuICAvLyBJZiBhIGNvbHVtbiBudW1iZXIgaXMgZ2l2ZW4sIGNhbGN1bGF0ZSB3aWR0aFxuICBAaWYgJGNvbHVtbnMge1xuICAgIHdpZHRoOiBncmlkLWNhbGMoJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zKTtcblxuICAgIC8vIElmIGxhc3QgY29sdW1uLCBmbG9hdCBuYXR1cmFsbHkgaW5zdGVhZCBvZiB0byB0aGUgcmlnaHRcbiAgICBAaWYgJGxhc3QtY29sdW1uIHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgfVxuXG4gIC8vIFNvdXJjZSBPcmRlcmluZywgYWRkcyBsZWZ0L3JpZ2h0IGRlcGVuZGluZyBvbiB3aGljaCB5b3UgdXNlLlxuICBAaWYgJHB1c2ggeyAjeyRkZWZhdWx0LWZsb2F0fTogZ3JpZC1jYWxjKCRwdXNoLCAkdG90YWwtY29sdW1ucyk7ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87IH1cbiAgQGlmICRwdWxsIHsgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogZ3JpZC1jYWxjKCRwdWxsLCAkdG90YWwtY29sdW1ucyk7ICN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvOyB9XG5cbiAgQGlmICRmbG9hdCB7XG4gICAgQGlmICRmbG9hdCA9PSBsZWZ0IG9yICRmbG9hdCA9PSB0cnVlIHsgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0OyB9XG4gICAgQGVsc2UgaWYgJGZsb2F0ID09IHJpZ2h0IHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgICBAZWxzZSB7IGZsb2F0OiBub25lOyB9XG4gIH1cblxuICAvLyBJZiBjZW50ZXJlZCwgZ2V0IHJpZCBvZiBmbG9hdCBhbmQgYWRkIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRjZW50ZXIge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIElmIG9mZnNldCwgY2FsY3VsYXRlIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRvZmZzZXQgeyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGdyaWQtY2FsYygkb2Zmc2V0LCAkdG90YWwtY29sdW1ucykgIWltcG9ydGFudDsgfVxuXG59XG5cbi8vIENyZWF0ZSBwcmVzZW50YXRpb25hbCBjbGFzc2VzIGZvciBncmlkXG4vL1xuLy8gJHNpemUgLSBOYW1lIG9mIGNsYXNzIHRvIHVzZSwgaS5lLiBcImxhcmdlXCIgd2lsbCBnZW5lcmF0ZSAubGFyZ2UtMSwgLmxhcmdlLTIsIGV0Yy5cbkBtaXhpbiBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZSkge1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAuI3skc2l6ZX0tcHVzaC0jeyRpfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxuICAgIC4jeyRzaXplfS1wdWxsLSN7JGl9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAuY29sdW1uLFxuICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOmZhbHNlLCAkcG9zaXRpb246dHJ1ZSk7IH1cblxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMge1xuICAgIC4jeyRzaXplfS0jeyRpfSB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiRpLCRjb2xsYXBzZTpudWxsLCRmbG9hdDpmYWxzZSk7IH1cbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAuI3skc2l6ZX0tb2Zmc2V0LSN7JGl9IHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJG9mZnNldDokaSwgJGNvbGxhcHNlOm51bGwsJGZsb2F0OmZhbHNlKTsgfVxuICB9XG5cbiAgLiN7JHNpemV9LXJlc2V0LW9yZGVyIHtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAuY29sdW1uLiN7JHNpemV9LWNlbnRlcmVkLFxuICAuY29sdW1ucy4jeyRzaXplfS1jZW50ZXJlZCB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjZW50ZXI6dHJ1ZSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7IH1cblxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAvLyBGaWdodGluZyBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXTpsYXN0LWNoaWxkXG4gIC5jb2x1bW4uI3skc2l6ZX0tY2VudGVyZWQ6bGFzdC1jaGlsZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tY2VudGVyZWQ6bGFzdC1jaGlsZHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ2h0aW5nIC5jb2x1bW4uPHByZXZpb3VzLXNpemU+LWNlbnRlcmVkOmxhc3QtY2hpbGRcbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkOmxhc3QtY2hpbGQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlIHtcbiAgICBmbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjtcbiAgfVxuXG5cdC5yb3cge1xuXHRcdCYuI3skc2l6ZX0tY29sbGFwc2Uge1xuXHRcdFx0PiAuY29sdW1uLFxuXHRcdFx0PiAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2xsYXBzZTp0cnVlLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cblx0XHRcdC5yb3cge21hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowO31cblx0XHR9XG5cdFx0Ji4jeyRzaXplfS11bmNvbGxhcHNlIHtcblx0XHRcdD4gLmNvbHVtbixcblx0XHRcdD4gLmNvbHVtbnMge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImdyaWRcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1ncmlkLWNsYXNzZXMge1xuICAgIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAgICYuY29sbGFwc2Uge1xuICAgICAgICAgPiAuY29sdW1uLFxuICAgICAgICAgPiAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2xsYXBzZTp0cnVlLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cbiAgICAgICAgLnJvdyB7bWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7fVxuICAgICAgfVxuXG4gICAgICAucm93IHsgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QpO1xuICAgICAgICAmLmNvbGxhcHNlIHsgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QtY29sbGFwc2UpOyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbHVtbixcbiAgICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiR0b3RhbC1jb2x1bW5zKTsgfVxuXG4gICAgW2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl06bGFzdC1jaGlsZCB7IGZsb2F0OiAkbGFzdC1jaGlsZC1mbG9hdDsgfVxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdLmVuZCB7IGZsb2F0OiAkZGVmYXVsdC1mbG9hdDsgfVxuXG4gICAgQG1lZGlhICN7JHNtYWxsLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTpzbWFsbCk7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bWVkaXVtKTtcbiAgICAgIC8vIE9sZCBwdXNoIGFuZCBwdWxsIGNsYXNzZXNcbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAgICAgLnB1c2gtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICAucHVsbC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bGFyZ2UpO1xuICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgICAgICAucHVzaC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIC5wdWxsLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGlmICRpbmNsdWRlLXhsLWh0bWwtZ3JpZC1jbGFzc2VzIHtcbiAgICBAbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4bGFyZ2UpO1xuICAgIH1cbiAgICBAbWVkaWEgI3skeHhsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eHhsYXJnZSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1pbmxpbmUtbGlzdC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIG1hcmdpbnMgYW5kIHBhZGRpbmcgb2YgdGhlIGlubGluZSBsaXN0LlxuJGlubGluZS1saXN0LXRvcC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kaW5saW5lLWxpc3Qtb3Bwb3NpdGUtbWFyZ2luOiAwICFkZWZhdWx0O1xuJGlubGluZS1saXN0LWJvdHRvbS1tYXJnaW46IHJlbS1jYWxjKDE3KSAhZGVmYXVsdDtcbiRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LW1hcmdpbjogcmVtLWNhbGMoLTIyKSAhZGVmYXVsdDtcbiRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LWxpc3QtbWFyZ2luOiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XG5cbiRpbmxpbmUtbGlzdC1wYWRkaW5nOiAwICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBvdmVyZmxvdyBvZiB0aGUgaW5saW5lIGxpc3QuXG4kaW5saW5lLWxpc3Qtb3ZlcmZsb3c6IGhpZGRlbiAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgbGlzdCBpdGVtc1xuJGlubGluZS1saXN0LWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFueSBlbGVtZW50cyB3aXRoaW4gbGlzdCBpdGVtc1xuJGlubGluZS1saXN0LWNoaWxkcmVuLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBpbmxpbmUgbGlzdHNcbkBtaXhpbiBpbmxpbmUtbGlzdCB7XG4gIG1hcmdpbjogJGlubGluZS1saXN0LXRvcC1tYXJnaW4gYXV0byAkaW5saW5lLWxpc3QtYm90dG9tLW1hcmdpbiBhdXRvO1xuICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LW1hcmdpbjtcbiAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRpbmxpbmUtbGlzdC1vcHBvc2l0ZS1tYXJnaW47XG4gIHBhZGRpbmc6ICRpbmxpbmUtbGlzdC1wYWRkaW5nO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogJGlubGluZS1saXN0LW92ZXJmbG93O1xuXG4gICYgPiBsaSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkaW5saW5lLWxpc3QtZGVmYXVsdC1mbG9hdC1saXN0LW1hcmdpbjtcbiAgICBkaXNwbGF5OiAkaW5saW5lLWxpc3QtZGlzcGxheTtcbiAgICAmPiogeyBkaXNwbGF5OiAkaW5saW5lLWxpc3QtY2hpbGRyZW4tZGlzcGxheTsgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJpbmxpbmUtbGlzdFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWlubGluZS1saXN0LWNsYXNzZXMge1xuICAgIC5pbmxpbmUtbGlzdCB7XG4gICAgICBAaW5jbHVkZSBpbmxpbmUtbGlzdCgpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQG5hbWUgX3RhYmxlcy5zY3NzXG4vLyBAZGVwZW5kZW5jaWVzIF9nbG9iYWwuc2Nzc1xuLy9cblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG5cbiRpbmNsdWRlLWh0bWwtdGFibGUtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdGFibGUgYW5kIGV2ZW4gcm93c1xuJHRhYmxlLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGFibGUtZXZlbi1yb3ctYmc6ICRzbm93ICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSB0YWJsZSBjZWxsIGJvcmRlciBzdHlsZVxuJHRhYmxlLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kdGFibGUtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiR0YWJsZS1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGhlYWQgc3R5bGVzXG4kdGFibGUtaGVhZC1iZzogJHdoaXRlLXNtb2tlICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGZvb3Qgc3R5bGVzXG4kdGFibGUtZm9vdC1iZzogJHRhYmxlLWhlYWQtYmcgIWRlZmF1bHQ7XG4kdGFibGUtZm9vdC1mb250LXNpemU6ICR0YWJsZS1oZWFkLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdGFibGUtZm9vdC1mb250LXdlaWdodDogJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kdGFibGUtZm9vdC1wYWRkaW5nOiAkdGFibGUtaGVhZC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSBjYXB0aW9uXG4kdGFibGUtY2FwdGlvbi1iZzogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdGFibGUtY2FwdGlvbi1mb250LWNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLWNhcHRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kdGFibGUtY2FwdGlvbi1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgcm93IHBhZGRpbmcgYW5kIGZvbnQgc3R5bGVzXG4kdGFibGUtcm93LXBhZGRpbmc6IHJlbS1jYWxjKDkgMTApICFkZWZhdWx0O1xuJHRhYmxlLXJvdy1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiR0YWJsZS1yb3ctZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcbiR0YWJsZS1saW5lLWhlaWdodDogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBhcmUgZm9yIGNvbnRyb2xsaW5nIHRoZSBsYXlvdXQsIGRpc3BsYXkgYW5kIG1hcmdpbiBvZiB0YWJsZXNcbiR0YWJsZS1sYXlvdXQ6IGF1dG8gIWRlZmF1bHQ7XG4kdGFibGUtZGlzcGxheTogdGFibGUtY2VsbCAhZGVmYXVsdDtcbiR0YWJsZS1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbkBtaXhpbiB0YWJsZSB7XG4gIGJhY2tncm91bmQ6ICR0YWJsZS1iZztcbiAgbWFyZ2luLWJvdHRvbTogJHRhYmxlLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlcjogJHRhYmxlLWJvcmRlci1zdHlsZSAkdGFibGUtYm9yZGVyLXNpemUgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgdGFibGUtbGF5b3V0OiAkdGFibGUtbGF5b3V0O1xuXG4gIGNhcHRpb24ge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1jYXB0aW9uLWJnO1xuICAgIGNvbG9yOiAkdGFibGUtY2FwdGlvbi1mb250LWNvbG9yO1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6ICR0YWJsZS1jYXB0aW9uLWZvbnQtc2l6ZTtcbiAgICAgIHdlaWdodDogJHRhYmxlLWNhcHRpb24tZm9udC13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJnO1xuXG4gICAgdHIge1xuICAgICAgdGgsXG4gICAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJsZS1oZWFkLXBhZGRpbmc7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlLWhlYWQtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iZztcblxuICAgIHRyIHtcbiAgICAgIHRoLFxuICAgICAgdGQge1xuICAgICAgICBwYWRkaW5nOiAkdGFibGUtZm9vdC1wYWRkaW5nO1xuICAgICAgICBmb250LXNpemU6ICR0YWJsZS1mb290LWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR0YWJsZS1mb290LWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJHRhYmxlLWZvb3QtZm9udC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0ciB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXJvdy1wYWRkaW5nO1xuICAgICAgZm9udC1zaXplOiAkdGFibGUtcm93LWZvbnQtc2l6ZTtcbiAgICAgIGNvbG9yOiAkdGFibGUtcm93LWZvbnQtY29sb3I7XG4gICAgICB0ZXh0LWFsaWduOiAkZGVmYXVsdC1mbG9hdDtcbiAgICB9XG5cbiAgICAmLmV2ZW4sXG4gICAgJi5hbHQsXG4gICAgJjpudGgtb2YtdHlwZShldmVuKSB7IGJhY2tncm91bmQ6ICR0YWJsZS1ldmVuLXJvdy1iZzsgfVxuICB9XG5cbiAgdGhlYWQgdHIgdGgsXG4gIHRmb290IHRyIHRoLFxuICB0Zm9vdCB0ciB0ZCxcbiAgdGJvZHkgdHIgdGgsXG4gIHRib2R5IHRyIHRkLFxuICB0ciB0ZCB7IGRpc3BsYXk6ICR0YWJsZS1kaXNwbGF5OyBsaW5lLWhlaWdodDogJHRhYmxlLWxpbmUtaGVpZ2h0OyB9XG59XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcInRhYmxlXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtdGFibGUtY2xhc3NlcyB7XG4gICAgdGFibGUge1xuICAgICAgQGluY2x1ZGUgdGFibGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiZ3JpZFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cblxuJGluY2x1ZGUtaHRtbC10YWJzLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuJHRhYnMtbmF2aWdhdGlvbi1wYWRkaW5nOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yOiAkc2lsdmVyICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I6IHNjYWxlLWNvbG9yKCR0YWJzLW5hdmlnYXRpb24tYmctY29sb3IsICRsaWdodG5lc3M6IC02JSkgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3I6ICRqZXQgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1mb250LWNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbiR0YWJzLWNvbnRlbnQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjQpICFkZWZhdWx0O1xuJHRhYnMtY29udGVudC1wYWRkaW5nOiAoJGNvbHVtbi1ndXR0ZXIvMikgIWRlZmF1bHQ7XG5cbiR0YWJzLXZlcnRpY2FsLW5hdmlnYXRpb24tbWFyZ2luLWJvdHRvbTogMS4yNXJlbSAhZGVmYXVsdDtcblxuQGluY2x1ZGUgZXhwb3J0cyhcInRhYlwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLXRhYnMtY2xhc3NlcyB7XG4gICAgLnRhYnMge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIGRkLCAudGFiLXRpdGxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgPiBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB7XG4gICAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29sb3I6ICR0YWJzLW5hdmlnYXRpb24tZm9udC1jb2xvcjtcbiAgICAgICAgICBwYWRkaW5nOiAkdGFicy1uYXZpZ2F0aW9uLXBhZGRpbmcgJHRhYnMtbmF2aWdhdGlvbi1wYWRkaW5nICogMjtcbiAgICAgICAgICBmb250LWZhbWlseTogJHRhYnMtbmF2aWdhdGlvbi1mb250LWZhbWlseTtcbiAgICAgICAgICBmb250LXNpemU6ICR0YWJzLW5hdmlnYXRpb24tZm9udC1zaXplO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDoge1xuICAgICAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpmb2N1c3tcbiAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUgYSB7XG4gICAgICAgICAgYmFja2dyb3VuZDoge1xuICAgICAgICAgICAgY29sb3I6ICR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWJnLWNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb2xvcjokdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1mb250LWNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYucmFkaXVzIHtcbiAgICAgICAgZGQ6Zmlyc3QtY2hpbGQsIC50YWI6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGEgeyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGdsb2JhbC1yYWRpdXMpOyB9XG4gICAgICAgIH1cbiAgICAgICAgZGQ6bGFzdC1jaGlsZCwgLnRhYjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBhIHsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGdsb2JhbC1yYWRpdXMpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYudmVydGljYWwge1xuICAgICAgICBkZCwgLnRhYi10aXRsZSB7XG4gICAgICAgICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRhYnMtY29udGVudCB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR0YWJzLWNvbnRlbnQtbWFyZ2luLWJvdHRvbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgPiAuY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgcGFkZGluZzogJHRhYnMtY29udGVudC1wYWRkaW5nIDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAmLmFjdGl2ZSB7IGRpc3BsYXk6IGJsb2NrOyBmbG9hdDogbm9uZTsgfVxuICAgICAgICAmLmNvbnRhaW5lZCB7IHBhZGRpbmc6ICR0YWJzLWNvbnRlbnQtcGFkZGluZzsgfVxuICAgICAgfVxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICA+IC5jb250ZW50IHsgcGFkZGluZzogMCAkdGFicy1jb250ZW50LXBhZGRpbmc7IH1cbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgLnRhYnMge1xuICAgICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICAgIG1heC13aWR0aDogMjAlO1xuICAgICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgICBtYXJnaW46IDAgMCAkdGFicy12ZXJ0aWNhbC1uYXZpZ2F0aW9uLW1hcmdpbi1ib3R0b207XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC50YWJzLWNvbnRlbnQge1xuICAgICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgIG1heC13aWR0aDogODAlO1xuICAgICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IC0xcHg7XG4gICAgICAgICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAubm8tanMge1xuICAgICAgLnRhYnMtY29udGVudCA+IC5jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtZ3JpZC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlczogZmFsc2UgIWRlZmF1bHQ7XG5cbiRyb3ctd2lkdGg6IHJlbS1jYWxjKDEwMDApICFkZWZhdWx0O1xuJHRvdGFsLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4kbGFzdC1jaGlsZC1mbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbiAhZGVmYXVsdDtcblxuLy9cbi8vIEdyaWQgRnVuY3Rpb25zXG4vL1xuXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLCB1c2UgZ3JpZC1jYWxjKClcbkBmdW5jdGlvbiBncmlkQ2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKSB7XG4gIEB3YXJuIFwiZ3JpZENhbGMoKSBpcyBkZXByZWNhdGVkLCB1c2UgZ3JpZC1jYWxjKClcIjtcbiAgQHJldHVybiBncmlkLWNhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucyk7XG59XG5cbi8vIEBGVU5DVElPTlxuLy8gJGNvbE51bWJlciAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbi8vICR0b3RhbENvbHVtbnMgLSBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG5AZnVuY3Rpb24gZ3JpZC1jYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpIHtcbiAgQHJldHVybiBwZXJjZW50YWdlKCgkY29sTnVtYmVyIC8gJHRvdGFsQ29sdW1ucykpO1xufVxuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuLy8gRm9yIGNyZWF0aW5nIGNvbnRhaW5lciwgbmVzdGVkLCBhbmQgY29sbGFwc2VkIHJvd3MuXG4vL1xuLy9cbi8vICRiZWhhdmlvciAtIEFueSBzcGVjaWFsIGJlaGF2aW9yIGZvciB0aGlzIHJvdz8gRGVmYXVsdDogZmFsc2UuIE9wdGlvbnM6IG5lc3QsIGNvbGxhcHNlLCBuZXN0LWNvbGxhcHNlLCBmYWxzZS5cbkBtaXhpbiBncmlkLXJvdygkYmVoYXZpb3I6IGZhbHNlKSB7XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KG5lc3QpOyB0byBpbmNsdWRlIGEgbmVzdGVkIHJvd1xuICBAaWYgJGJlaGF2aW9yID09IG5lc3Qge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogLSgkY29sdW1uLWd1dHRlci8yKTtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogLSgkY29sdW1uLWd1dHRlci8yKTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KGNvbGxhcHNlKTsgdG8gY29sbGFwc2VkIGEgY29udGFpbmVyIHJvdyBtYXJnaW5zXG4gIEBlbHNlIGlmICRiZWhhdmlvciA9PSBjb2xsYXBzZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogJHJvdy13aWR0aDtcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhuZXN0LWNvbGxhcHNlKTsgdG8gY29sbGFwc2Ugb3V0ZXIgbWFyZ2lucyBvbiBhIG5lc3RlZCByb3dcbiAgQGVsc2UgaWYgJGJlaGF2aW9yID09IG5lc3QtY29sbGFwc2Uge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3c7IHRvIHVzZSBhIGNvbnRhaW5lciByb3dcbiAgQGVsc2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWF4LXdpZHRoOiAkcm93LXdpZHRoO1xuICB9XG5cbiAgLy8gQ2xlYXJmaXggZm9yIGFsbCByb3dzXG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG5cbi8vIENyZWF0ZXMgYSBjb2x1bW4sIHNob3VsZCBiZSB1c2VkIGluc2lkZSBvZiBhIG1lZGlhIHF1ZXJ5IHRvIGNvbnRyb2wgbGF5b3V0c1xuLy9cbi8vICRjb2x1bW5zIC0gVGhlIG51bWJlciBvZiBjb2x1bW5zIHRoaXMgc2hvdWxkIGJlXG4vLyAkbGFzdC1jb2x1bW4gLSBJcyB0aGlzIHRoZSBsYXN0IGNvbHVtbj8gRGVmYXVsdDogZmFsc2UuXG4vLyAkY2VudGVyIC0gQ2VudGVyIHRoZXNlIGNvbHVtbnM/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJG9mZnNldCAtICMgb2YgY29sdW1ucyB0byBvZmZzZXQuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJHB1c2ggLSAjIG9mIGNvbHVtbnMgdG8gcHVzaC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkcHVsbCAtICMgb2YgY29sdW1ucyB0byBwdWxsLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRjb2xsYXBzZSAtIEdldCByaWQgb2YgZ3V0dGVyIHBhZGRpbmcgb24gY29sdW1uPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRmbG9hdCAtIFNob3VsZCB0aGlzIGZsb2F0PyBEZWZhdWx0OiB0cnVlLiBPcHRpb25zOiB0cnVlLCBmYWxzZSwgbGVmdCwgcmlnaHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOmZhbHNlLFxuICAkbGFzdC1jb2x1bW46ZmFsc2UsXG4gICRjZW50ZXI6ZmFsc2UsXG4gICRvZmZzZXQ6ZmFsc2UsXG4gICRwdXNoOmZhbHNlLFxuICAkcHVsbDpmYWxzZSxcbiAgJGNvbGxhcHNlOmZhbHNlLFxuICAkZmxvYXQ6dHJ1ZSxcbiAgJHBvc2l0aW9uOmZhbHNlKSB7XG5cbiAgLy8gSWYgcG9zaXRpb25lZCBmb3IgZGVmYXVsdCAuY29sdW1uLCBpbmNsdWRlIHJlbGF0aXZlIHBvc2l0aW9uXG4gIC8vIHB1c2ggYW5kIHB1bGwgcmVxdWlyZSBwb3NpdGlvbiBzZXRcbiAgQGlmICRwb3NpdGlvbiBvciAkcHVzaCBvciAkcHVsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLy8gSWYgY29sbGFwc2VkLCBnZXQgcmlkIG9mIGd1dHRlciBwYWRkaW5nXG4gIEBpZiAkY29sbGFwc2Uge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgLy8gR3V0dGVyIHBhZGRpbmcgd2hlbmV2ZXIgYSBjb2x1bW4gaXNuJ3Qgc2V0IHRvIGNvbGxhcHNlXG4gIC8vICh1c2UgJGNvbGxhcHNlOm51bGwgdG8gZG8gbm90aGluZylcbiAgQGVsc2UgaWYgJGNvbGxhcHNlID09IGZhbHNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkY29sdW1uLWd1dHRlciAvIDIpO1xuICAgIHBhZGRpbmctcmlnaHQ6ICgkY29sdW1uLWd1dHRlciAvIDIpO1xuICB9XG5cbiAgLy8gSWYgYSBjb2x1bW4gbnVtYmVyIGlzIGdpdmVuLCBjYWxjdWxhdGUgd2lkdGhcbiAgQGlmICRjb2x1bW5zIHtcbiAgICB3aWR0aDogZ3JpZC1jYWxjKCRjb2x1bW5zLCAkdG90YWwtY29sdW1ucyk7XG5cbiAgICAvLyBJZiBsYXN0IGNvbHVtbiwgZmxvYXQgbmF0dXJhbGx5IGluc3RlYWQgb2YgdG8gdGhlIHJpZ2h0XG4gICAgQGlmICRsYXN0LWNvbHVtbiB7IGZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uOyB9XG4gIH1cblxuICAvLyBTb3VyY2UgT3JkZXJpbmcsIGFkZHMgbGVmdC9yaWdodCBkZXBlbmRpbmcgb24gd2hpY2ggeW91IHVzZS5cbiAgQGlmICRwdXNoIHsgI3skZGVmYXVsdC1mbG9hdH06IGdyaWQtY2FsYygkcHVzaCwgJHRvdGFsLWNvbHVtbnMpOyAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBhdXRvOyB9XG4gIEBpZiAkcHVsbCB7ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGdyaWQtY2FsYygkcHVsbCwgJHRvdGFsLWNvbHVtbnMpOyAjeyRkZWZhdWx0LWZsb2F0fTogYXV0bzsgfVxuXG4gIEBpZiAkZmxvYXQge1xuICAgIEBpZiAkZmxvYXQgPT0gbGVmdCBvciAkZmxvYXQgPT0gdHJ1ZSB7IGZsb2F0OiAkZGVmYXVsdC1mbG9hdDsgfVxuICAgIEBlbHNlIGlmICRmbG9hdCA9PSByaWdodCB7IGZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uOyB9XG4gICAgQGVsc2UgeyBmbG9hdDogbm9uZTsgfVxuICB9XG5cbiAgLy8gSWYgY2VudGVyZWQsIGdldCByaWQgb2YgZmxvYXQgYW5kIGFkZCBhcHByb3ByaWF0ZSBtYXJnaW5zXG4gIEBpZiAkY2VudGVyIHtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGF1dG87XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICAvLyBJZiBvZmZzZXQsIGNhbGN1bGF0ZSBhcHByb3ByaWF0ZSBtYXJnaW5zXG4gIEBpZiAkb2Zmc2V0IHsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiBncmlkLWNhbGMoJG9mZnNldCwgJHRvdGFsLWNvbHVtbnMpICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vLyBDcmVhdGUgcHJlc2VudGF0aW9uYWwgY2xhc3NlcyBmb3IgZ3JpZFxuLy9cbi8vICRzaXplIC0gTmFtZSBvZiBjbGFzcyB0byB1c2UsIGkuZS4gXCJsYXJnZVwiIHdpbGwgZ2VuZXJhdGUgLmxhcmdlLTEsIC5sYXJnZS0yLCBldGMuXG5AbWl4aW4gZ3JpZC1odG1sLWNsYXNzZXMoJHNpemUpIHtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgLiN7JHNpemV9LXB1c2gtI3skaX0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgIH1cbiAgICAuI3skc2l6ZX0tcHVsbC0jeyRpfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLmNvbHVtbixcbiAgLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczpmYWxzZSwgJHBvc2l0aW9uOnRydWUpOyB9XG5cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIHtcbiAgICAuI3skc2l6ZX0tI3skaX0geyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczokaSwkY29sbGFwc2U6bnVsbCwkZmxvYXQ6ZmFsc2UpOyB9XG4gIH1cblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgLiN7JHNpemV9LW9mZnNldC0jeyRpfSB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRvZmZzZXQ6JGksICRjb2xsYXBzZTpudWxsLCRmbG9hdDpmYWxzZSk7IH1cbiAgfVxuXG4gIC4jeyRzaXplfS1yZXNldC1vcmRlciB7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS1jZW50ZXJlZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tY2VudGVyZWQgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY2VudGVyOnRydWUsICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkIHtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLy8gRmlnaHRpbmcgW2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl06bGFzdC1jaGlsZFxuICAuY29sdW1uLiN7JHNpemV9LWNlbnRlcmVkOmxhc3QtY2hpbGQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LWNlbnRlcmVkOmxhc3QtY2hpbGR7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICAvLyBGaWdodGluZyAuY29sdW1uLjxwcmV2aW91cy1zaXplPi1jZW50ZXJlZDpsYXN0LWNoaWxkXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZDpsYXN0LWNoaWxkLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgfVxuXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZC5vcHBvc2l0ZSxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZC5vcHBvc2l0ZSB7XG4gICAgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG4gIH1cblxuXHQucm93IHtcblx0XHQmLiN7JHNpemV9LWNvbGxhcHNlIHtcblx0XHRcdD4gLmNvbHVtbixcblx0XHRcdD4gLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sbGFwc2U6dHJ1ZSwgJGZsb2F0OmZhbHNlKTsgfVxuXG5cdFx0XHQucm93IHttYXJnaW4tbGVmdDowOyBtYXJnaW4tcmlnaHQ6MDt9XG5cdFx0fVxuXHRcdCYuI3skc2l6ZX0tdW5jb2xsYXBzZSB7XG5cdFx0XHQ+IC5jb2x1bW4sXG5cdFx0XHQ+IC5jb2x1bW5zIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2x1bW47XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJncmlkXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtZ3JpZC1jbGFzc2VzIHtcbiAgICAucm93IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93O1xuXG4gICAgICAmLmNvbGxhcHNlIHtcbiAgICAgICAgID4gLmNvbHVtbixcbiAgICAgICAgID4gLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sbGFwc2U6dHJ1ZSwgJGZsb2F0OmZhbHNlKTsgfVxuXG4gICAgICAgIC5yb3cge21hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowO31cbiAgICAgIH1cblxuICAgICAgLnJvdyB7IEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjpuZXN0KTtcbiAgICAgICAgJi5jb2xsYXBzZSB7IEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjpuZXN0LWNvbGxhcHNlKTsgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5jb2x1bW4sXG4gICAgLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczokdG90YWwtY29sdW1ucyk7IH1cblxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdOmxhc3QtY2hpbGQgeyBmbG9hdDogJGxhc3QtY2hpbGQtZmxvYXQ7IH1cbiAgICBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXS5lbmQgeyBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7IH1cblxuICAgIEBtZWRpYSAjeyRzbWFsbC11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6c21hbGwpO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOm1lZGl1bSk7XG4gICAgICAvLyBPbGQgcHVzaCBhbmQgcHVsbCBjbGFzc2VzXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgICAgIC5wdXNoLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLnB1bGwtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOmxhcmdlKTtcbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAgICAgLnB1c2gtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICAucHVsbC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlcyB7XG4gICAgQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eGxhcmdlKTtcbiAgICB9XG4gICAgQG1lZGlhICN7JHh4bGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnh4bGFyZ2UpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQG5hbWUgX3RodW1icy5zY3NzXG4vLyBAZGVwZW5kZW5jaWVzIF9nbG9iYWxzLnNjc3Ncbi8vXG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuXG4kaW5jbHVkZS1odG1sLW1lZGlhLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYm9yZGVyIHN0eWxlc1xuJHRodW1iLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kdGh1bWItYm9yZGVyLXdpZHRoOiA0cHggIWRlZmF1bHQ7XG4kdGh1bWItYm9yZGVyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGh1bWItYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLC4yKSAhZGVmYXVsdDtcbiR0aHVtYi1ib3gtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLDAuNSkgIWRlZmF1bHQ7XG5cbi8vIFJhZGl1cyBhbmQgdHJhbnNpdGlvbiBzcGVlZCBmb3IgdGh1bWJzXG4kdGh1bWItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiR0aHVtYi10cmFuc2l0aW9uLXNwZWVkOiAyMDBtcyAhZGVmYXVsdDtcblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSBpbWFnZSB0aHVtYm5haWwgc3R5bGVzLlxuLy9cbi8vICRib3JkZXItd2lkdGggLSBXaWR0aCBvZiBib3JkZXIgYXJvdW5kIHRodW1ibmFpbC4gRGVmYXVsdDogJHRodW1iLWJvcmRlci13aWR0aC5cbi8vICRib3gtc2hhZG93IC0gQm94IHNoYWRvdyB0byBhcHBseSB0byB0aHVtYm5haWwuIERlZmF1bHQ6ICR0aHVtYi1ib3gtc2hhZG93LlxuLy8gJGJveC1zaGFkb3ctaG92ZXIgLSBCb3ggc2hhZG93IHRvIGFwcGx5IG9uIGhvdmVyLiBEZWZhdWx0OiAkdGh1bWItYm94LXNoYWRvdy1ob3Zlci5cbkBtaXhpbiB0aHVtYihcbiAgJGJvcmRlci13aWR0aDokdGh1bWItYm9yZGVyLXdpZHRoLCBcbiAgJGJveC1zaGFkb3c6JHRodW1iLWJveC1zaGFkb3csIFxuICAkYm94LXNoYWRvdy1ob3ZlcjokdGh1bWItYm94LXNoYWRvdy1ob3Zlcikge1xuICBsaW5lLWhlaWdodDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6ICR0aHVtYi1ib3JkZXItc3R5bGUgJGJvcmRlci13aWR0aCAkdGh1bWItYm9yZGVyLWNvbG9yO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LWhvdmVyO1xuICB9XG59XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcInRodW1iXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlcyB7XG5cbiAgICAvKiBJbWFnZSBUaHVtYm5haWxzICovXG4gICAgLnRoIHtcbiAgICAgIEBpbmNsdWRlIHRodW1iO1xuICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYWxsLCR0aHVtYi10cmFuc2l0aW9uLXNwZWVkLGVhc2Utb3V0KTtcblxuICAgICAgJi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoJHRodW1iLXJhZGl1cyk7IH1cbiAgICB9XG4gIH1cbn0iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbiRpbmNsdWRlLWh0bWwtdHlwZS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBmb250IHN0eWxlc1xuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtY29sb3I6ICRqZXQgIWRlZmF1bHQ7XG4kaGVhZGVyLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG4kaGVhZGVyLXRvcC1tYXJnaW46IC4ycmVtICFkZWZhdWx0O1xuJGhlYWRlci1ib3R0b20tbWFyZ2luOiAuNXJlbSAhZGVmYXVsdDtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIGZvbnQgc2l6ZXNcbiRoMS1mb250LXNpemU6IHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRoMi1mb250LXNpemU6IHJlbS1jYWxjKDM3KSAhZGVmYXVsdDtcbiRoMy1mb250LXNpemU6IHJlbS1jYWxjKDI3KSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6IHJlbS1jYWxjKDIzKSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcbiRoNi1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBzaXplIHJlZHVjdGlvbiBvbiBzbWFsbCBzY3JlZW5zXG4kaDEtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRoMi1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGgzLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYyg1KSAhZGVmYXVsdDtcbiRoNC1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoNSkgIWRlZmF1bHQ7XG4kaDUtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG4kaDYtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgaG93IHN1YmhlYWRlcnMgYXJlIHN0eWxlZC5cbiRzdWJoZWFkZXItbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRzdWJoZWFkZXItZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRzdWJoZWFkZXItdG9wLW1hcmdpbjogLjJyZW0gIWRlZmF1bHQ7XG4kc3ViaGVhZGVyLWJvdHRvbS1tYXJnaW46IC41cmVtICFkZWZhdWx0O1xuXG4vLyBBIGdlbmVyYWwgPHNtYWxsPiBzdHlsaW5nXG4kc21hbGwtZm9udC1zaXplOiA2MCUgIWRlZmF1bHQ7XG4kc21hbGwtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgcGFyYWdyYXBoc1xuJHBhcmFncmFwaC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ6IDEuNiAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJHBhcmFncmFwaC1hc2lkZS1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtYXNpZGUtbGluZS1oZWlnaHQ6IDEuMzUgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWFzaWRlLWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIDxjb2RlPiB0YWdzXG4kY29kZS1jb2xvcjogJG9pbCAhZGVmYXVsdDtcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kY29kZS1iYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiA3MCUpICFkZWZhdWx0O1xuJGNvZGUtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiRjb2RlLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kY29kZS1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRjb2RlLWJhY2tncm91bmQtY29sb3IsICRsaWdodG5lc3M6IC0xMCUpICFkZWZhdWx0O1xuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMikgcmVtLWNhbGMoNSkgcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBhbmNob3JzXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuJGFuY2hvci1mb250LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRhbmNob3ItZm9udC1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSA8aHI+IGVsZW1lbnRcbiRoci1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRoci1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGhyLWJvcmRlci1jb2xvcjogJGdhaW5zYm9ybyAhZGVmYXVsdDtcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGxpc3RzXG4kbGlzdC1mb250LWZhbWlseTogJHBhcmFncmFwaC1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRsaXN0LWZvbnQtc2l6ZTogJHBhcmFncmFwaC1mb250LXNpemUgIWRlZmF1bHQ7XG4kbGlzdC1saW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMXJlbSAhZGVmYXVsdDtcbiRsaXN0LW9yZGVyZWQtc2lkZS1tYXJnaW46IDEuNHJlbSAhZGVmYXVsdDtcbiRsaXN0LXNpZGUtbWFyZ2luLW5vLWJ1bGxldDogMCAhZGVmYXVsdDtcbiRsaXN0LW5lc3RlZC1tYXJnaW46IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kZGVmaW5pdGlvbi1saXN0LWhlYWRlci1tYXJnaW4tYm90dG9tOiAuM3JlbSAhZGVmYXVsdDtcbiRkZWZpbml0aW9uLWxpc3QtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgYmxvY2txdW90ZXNcbiRibG9ja3F1b3RlLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRoZWFkZXItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMzUlKSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAyMyUpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtY2l0ZS1saW5rLWNvbG9yOiAkYmxvY2txdW90ZS1jaXRlLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIEFjcm9ueW0gc3R5bGVzXG4kYWNyb255bS11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGdhaW5zYm9ybyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgcGFkZGluZyBhbmQgbWFyZ2luXG4kbWljcm9mb3JtYXQtcGFkZGluZzogcmVtLWNhbGMoMTAgMTIpICFkZWZhdWx0O1xuJG1pY3JvZm9ybWF0LW1hcmdpbjogcmVtLWNhbGMoMCAwIDIwIDApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgYm9yZGVyIHN0eWxlc1xuJG1pY3JvZm9ybWF0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJG1pY3JvZm9ybWF0LWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBmdWxsIG5hbWUgZm9udCBzdHlsZXNcbiRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC1zaXplOiByZW0tY2FsYygxNSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIHN1bW1hcnkgZm9udCBzdHlsZXNcbiRtaWNyb2Zvcm1hdC1zdW1tYXJ5LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhYmJyIHBhZGRpbmdcbiRtaWNyb2Zvcm1hdC1hYmJyLXBhZGRpbmc6IHJlbS1jYWxjKDAgMSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYWJiciBmb250IHN0eWxlc1xuJG1pY3JvZm9ybWF0LWFiYnItZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJG1pY3JvZm9ybWF0LWFiYnItZm9udC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLyBUZXh0IGFsaWdubWVudCBjbGFzcyBuYW1lc1xuJGFsaWduLWNsYXNzLW5hbWVzOlxuICBzbWFsbC1vbmx5LFxuICBzbWFsbCxcbiAgbWVkaXVtLW9ubHksXG4gIG1lZGl1bSxcbiAgbGFyZ2Utb25seSxcbiAgbGFyZ2UsXG4gIHhsYXJnZS1vbmx5LFxuICB4bGFyZ2UsXG4gIHh4bGFyZ2Utb25seSxcbiAgeHhsYXJnZTtcblxuLy8gVGV4dCBhbGlnbm1lbnQgYnJlYWtwb2ludHNcbiRhbGlnbi1jbGFzcy1icmVha3BvaW50czpcbiAgJHNtYWxsLW9ubHksXG4gICRzbWFsbC11cCxcbiAgJG1lZGl1bS1vbmx5LFxuICAkbWVkaXVtLXVwLFxuICAkbGFyZ2Utb25seSxcbiAgJGxhcmdlLXVwLFxuICAkeGxhcmdlLW9ubHksXG4gICR4bGFyZ2UtdXAsXG4gICR4eGxhcmdlLW9ubHksXG4gICR4eGxhcmdlLXVwO1xuXG4vLyBHZW5lcmF0ZXMgdGV4dCBhbGlnbiBhbmQganVzdGlmeSBjbGFzc2VzXG5AbWl4aW4gYWxpZ24tY2xhc3Nlc3tcbiAgLnRleHQtbGVmdCAgICB7IHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAudGV4dC1yaWdodCAgIHsgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAudGV4dC1jZW50ZXIgIHsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgLnRleHQtanVzdGlmeSB7IHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDsgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRhbGlnbi1jbGFzcy1uYW1lcykge1xuICAgIEBtZWRpYSAjeyhudGgoJGFsaWduLWNsYXNzLWJyZWFrcG9pbnRzLCAkaSkpfSB7XG4gICAgICAuI3sobnRoKCRhbGlnbi1jbGFzcy1uYW1lcywgJGkpKX0tdGV4dC1sZWZ0IHsgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gICAgICAuI3sobnRoKCRhbGlnbi1jbGFzcy1uYW1lcywgJGkpKX0tdGV4dC1yaWdodCAgIHsgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAgICAgLiN7KG50aCgkYWxpZ24tY2xhc3MtbmFtZXMsICRpKSl9LXRleHQtY2VudGVyICB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gICAgICAuI3sobnRoKCRhbGlnbi1jbGFzcy1uYW1lcywgJGkpKX0tdGV4dC1qdXN0aWZ5IHsgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG5cbi8vXG4vLyBUeXBvZ3JhcGh5IFBsYWNlaG9sZGVyc1xuLy9cblxuLy8gVGhlc2Ugd2lsbCB0aHJvdyBhIGRlcHJlY2F0aW9uIHdhcm5pbmcgaWYgdXNlZCB3aXRoaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBsZWFkIHtcbiAgZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZSArIHJlbS1jYWxjKDMuNSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbkBtaXhpbiBzdWJoZWFkZXIge1xuICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRzdWJoZWFkZXItZm9udC1jb2xvcjtcbiAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItdG9wLW1hcmdpbjtcbiAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1ib3R0b20tbWFyZ2luO1xufVxuQGluY2x1ZGUgZXhwb3J0cyhcInR5cGVcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC10eXBlLWNsYXNzZXMge1xuICAgIC8vIFJlc3BvbnNpdmUgVGV4dCBhbGlnbm1lbnRcbiAgICBAaW5jbHVkZSBhbGlnbi1jbGFzc2VzO1xuXG4gICAgLyogVHlwb2dyYXBoeSByZXNldHMgKi9cbiAgICBkaXYsXG4gICAgZGwsXG4gICAgZHQsXG4gICAgZGQsXG4gICAgdWwsXG4gICAgb2wsXG4gICAgbGksXG4gICAgaDEsXG4gICAgaDIsXG4gICAgaDMsXG4gICAgaDQsXG4gICAgaDUsXG4gICAgaDYsXG4gICAgcHJlLFxuICAgIGZvcm0sXG4gICAgcCxcbiAgICBibG9ja3F1b3RlLFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIG1hcmdpbjowO1xuICAgICAgcGFkZGluZzowO1xuICAgIH1cblxuICAgIC8qIERlZmF1bHQgTGluayBTdHlsZXMgKi9cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRhbmNob3ItZm9udC1jb2xvci1ob3ZlcjtcbiAgICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgXHR0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGltZyB7IGJvcmRlcjpub25lOyB9XG4gICAgfVxuXG4gICAgLyogRGVmYXVsdCBwYXJhZ3JhcGggc3R5bGVzICovXG4gICAgcCB7XG4gICAgICBmb250LWZhbWlseTogJHBhcmFncmFwaC1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkcGFyYWdyYXBoLWZvbnQtd2VpZ2h0O1xuICAgICAgZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG5cbiAgICAgICYubGVhZCB7IEBpbmNsdWRlIGxlYWQ7IH1cblxuICAgICAgJiBhc2lkZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHBhcmFncmFwaC1hc2lkZS1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWFzaWRlLWxpbmUtaGVpZ2h0O1xuICAgICAgICBmb250LXN0eWxlOiAkcGFyYWdyYXBoLWFzaWRlLWZvbnQtc3R5bGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogRGVmYXVsdCBoZWFkZXIgc3R5bGVzICovXG4gICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgICAgY29sb3I6ICRoZWFkZXItZm9udC1jb2xvcjtcbiAgICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuICAgICAgbWFyZ2luLXRvcDogJGhlYWRlci10b3AtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGhlYWRlci1ib3R0b20tbWFyZ2luO1xuICAgICAgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZS1oZWlnaHQ7XG5cbiAgICAgIHNtYWxsIHtcbiAgICAgICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJHNtYWxsLWZvbnQtY29sb3I7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGgxIHsgZm9udC1zaXplOiAkaDEtZm9udC1zaXplIC0gJGgxLWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDIgeyBmb250LXNpemU6ICRoMi1mb250LXNpemUgLSAkaDItZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoMyB7IGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZSAtICRoMy1mb250LXJlZHVjdGlvbjsgfVxuICAgIGg0IHsgZm9udC1zaXplOiAkaDQtZm9udC1zaXplIC0gJGg0LWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDUgeyBmb250LXNpemU6ICRoNS1mb250LXNpemUgLSAkaDUtZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoNiB7IGZvbnQtc2l6ZTogJGg2LWZvbnQtc2l6ZSAtICRoNi1mb250LXJlZHVjdGlvbjsgfVxuXG4gICAgLnN1YmhlYWRlciB7IEBpbmNsdWRlIHN1YmhlYWRlcjsgfVxuXG4gICAgaHIge1xuICAgICAgYm9yZGVyOiAkaHItYm9yZGVyLXN0eWxlICRoci1ib3JkZXItY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6ICRoci1ib3JkZXItd2lkdGggMCAwO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBtYXJnaW46ICRoci1tYXJnaW4gMCAoJGhyLW1hcmdpbiAtIHJlbS1jYWxjKCRoci1ib3JkZXItd2lkdGgpKTtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKiBIZWxwZnVsIFR5cG9ncmFwaHkgRGVmYXVsdHMgKi9cbiAgICBlbSxcbiAgICBpIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIHN0cm9uZyxcbiAgICBiIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIGNvZGUge1xuICAgICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgICAgY29sb3I6ICRjb2RlLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogJGNvZGUtYm9yZGVyLXNpemU7XG4gICAgICBib3JkZXItc3R5bGU6ICRjb2RlLWJvcmRlci1zdHlsZTtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvZGUtYm9yZGVyLWNvbG9yO1xuICAgICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcbiAgICB9XG5cbiAgICAvKiBMaXN0cyAqL1xuICAgIHVsLFxuICAgIG9sLFxuICAgIGRsIHtcbiAgICAgIGZvbnQtc2l6ZTogJGxpc3QtZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmUtaGVpZ2h0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgICAgZm9udC1mYW1pbHk6ICRsaXN0LWZvbnQtZmFtaWx5O1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgICAmLm5vLWJ1bGxldCB7XG4gICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW4tbm8tYnVsbGV0O1xuICAgICAgICBsaSB7XG4gICAgICAgICAgdWwsXG4gICAgICAgICAgb2wge1xuICAgICAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1uZXN0ZWQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogVW5vcmRlcmVkIExpc3RzICovXG4gICAgdWwge1xuICAgICAgbGkge1xuICAgICAgICB1bCxcbiAgICAgICAgb2wge1xuICAgICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3QtbmVzdGVkLW1hcmdpbjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLnNxdWFyZSxcbiAgICAgICYuY2lyY2xlLFxuICAgICAgJi5kaXNjIHtcbiAgICAgICAgbGkgdWwgeyBsaXN0LXN0eWxlOiBpbmhlcml0OyB9XG4gICAgICB9XG5cbiAgICAgICYuc3F1YXJlIHsgbGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7IG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW47fVxuICAgICAgJi5jaXJjbGUgeyBsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjt9XG4gICAgICAmLmRpc2MgeyBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW47fVxuICAgICAgJi5uby1idWxsZXQgeyBsaXN0LXN0eWxlOiBub25lOyB9XG4gICAgfVxuXG4gICAgLyogT3JkZXJlZCBMaXN0cyAqL1xuICAgIG9sIHtcbiAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtb3JkZXJlZC1zaWRlLW1hcmdpbjtcbiAgICAgIGxpIHtcbiAgICAgICAgdWwsXG4gICAgICAgIG9sIHtcbiAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW5lc3RlZC1tYXJnaW47XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qIERlZmluaXRpb24gTGlzdHMgKi9cbiAgICBkbCB7XG4gICAgICBkdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLW1hcmdpbi1ib3R0b207XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmaW5pdGlvbi1saXN0LWhlYWRlci13ZWlnaHQ7XG4gICAgICB9XG4gICAgICBkZCB7IG1hcmdpbi1ib3R0b206ICRkZWZpbml0aW9uLWxpc3QtbWFyZ2luLWJvdHRvbTsgfVxuICAgIH1cblxuICAgIC8qIEFiYnJldmlhdGlvbnMgKi9cbiAgICBhYmJyLFxuICAgIGFjcm9ueW0ge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogOTAlO1xuICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItaGVscC12YWx1ZTtcbiAgICB9XG4gICAgYWJiciB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICZbdGl0bGVdIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGFjcm9ueW0tdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIEJsb2NrcXVvdGVzICovXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAgIGNpdGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAkYmxvY2txdW90ZS1jaXRlLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvcjtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0IFxcMDAyMFwiO1xuICAgICAgICB9XG5cbiAgICAgICAgYSxcbiAgICAgICAgYTp2aXNpdGVkIHtcbiAgICAgICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY2l0ZS1saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGJsb2NrcXVvdGUsXG4gICAgYmxvY2txdW90ZSBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWZvbnQtY29sb3I7XG4gICAgfVxuXG4gICAgLyogTWljcm9mb3JtYXRzICovXG4gICAgLnZjYXJkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbjogJG1pY3JvZm9ybWF0LW1hcmdpbjtcbiAgICAgIGJvcmRlcjogJG1pY3JvZm9ybWF0LWJvcmRlci13aWR0aCAkbWljcm9mb3JtYXQtYm9yZGVyLXN0eWxlICRtaWNyb2Zvcm1hdC1ib3JkZXItY29sb3I7XG4gICAgICBwYWRkaW5nOiAkbWljcm9mb3JtYXQtcGFkZGluZztcblxuICAgICAgbGkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLmZuIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXdlaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC1zaXplO1xuICAgICAgfVxuICAgIH1cblxuICAgIC52ZXZlbnQge1xuICAgICAgLnN1bW1hcnkgeyBmb250LXdlaWdodDogJG1pY3JvZm9ybWF0LXN1bW1hcnktZm9udC13ZWlnaHQ7IH1cblxuICAgICAgYWJiciB7XG4gICAgICAgIGN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtZGVjb3JhdGlvbjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtd2VpZ2h0O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6ICRtaWNyb2Zvcm1hdC1hYmJyLXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBoMSxoMixoMyxoNCxoNSxoNiB7IGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWxpbmUtaGVpZ2h0OyB9XG4gICAgICBoMSB7IGZvbnQtc2l6ZTogJGgxLWZvbnQtc2l6ZTsgfVxuICAgICAgaDIgeyBmb250LXNpemU6ICRoMi1mb250LXNpemU7IH1cbiAgICAgIGgzIHsgZm9udC1zaXplOiAkaDMtZm9udC1zaXplOyB9XG4gICAgICBoNCB7IGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZTsgfVxuICAgICAgaDUgeyBmb250LXNpemU6ICRoNS1mb250LXNpemU7IH1cbiAgICAgIGg2IHsgZm9udC1zaXplOiAkaDYtZm9udC1zaXplOyB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBGb3VuZGF0aW9uIFZpc2liaWxpdHkgQ2xhc3Nlc1xuLy9cbiRpbmNsdWRlLWh0bWwtdmlzaWJpbGl0eS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS1hY2Nlc3NpYmlsaXR5LWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kaW5jbHVkZS10YWJsZS12aXNpYmlsaXR5LWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuXG4vL1xuLy8gTWVkaWEgQ2xhc3MgTmFtZXNcbi8vXG4vLyBWaXNpYmlsaXR5IEJyZWFrcG9pbnRzXG4kdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzOlxuICBzbWFsbCxcbiAgbWVkaXVtLFxuICBsYXJnZSxcbiAgeGxhcmdlLFxuICB4eGxhcmdlO1xuXG4kdmlzaWJpbGl0eS1icmVha3BvaW50LXF1ZXJpZXM6XG4gIHVucXVvdGUoJHNtYWxsLXVwKSxcbiAgdW5xdW90ZSgkbWVkaXVtLXVwKSxcbiAgdW5xdW90ZSgkbGFyZ2UtdXApLFxuICB1bnF1b3RlKCR4bGFyZ2UtdXApLFxuICB1bnF1b3RlKCR4eGxhcmdlLXVwKTtcblxuQG1peGluIHZpc2liaWxpdHktbG9vcCB7XG4gIEBlYWNoICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCBpbiAkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzIHtcbiAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogKCk7XG5cbiAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiAoKTtcblxuICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogKCk7XG5cbiAgICBAZWFjaCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQgaW4gJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcyB7XG4gICAgICBAaWYgaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSA8IGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCkge1xuICAgICAgICAvLyBTbWFsbGVyIHRoYW4gY3VycmVudCBicmVha3BvaW50XG5cbiAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwLCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcblxuICAgICAgICAvLyBGb3VuZGF0aW9uIDQgY29tcGF0aWJpbGl0eTpcbiAgICAgICAgLy8gSW5jbHVkZSAuc2hvdy9oaWRlLWZvci1bc2l6ZV0gYW5kIC5zaG93L2hpZGUtZm9yLVtzaXplXS1kb3duIGNsYXNzZXNcbiAgICAgICAgLy8gZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSBicmVha3BvaW50cyBvbmx5XG4gICAgICAgIEBpZiAkaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzIGFuZCBpbmRleCgoc21hbGwsIG1lZGl1bSwgbGFyZ2UpLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpICE9IGZhbHNlIHtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24sIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgfVxuXG4gICAgICB9IEBlbHNlIGlmIGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgPiBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgLy8gTGFyZ2VyIHRoYW4gY3VycmVudCBicmVha3BvaW50XG5cbiAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwLCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcblxuICAgICAgICAvLyBGb3VuZGF0aW9uIDQgY29tcGF0aWJpbGl0eTpcbiAgICAgICAgLy8gSW5jbHVkZSAuc2hvdy9oaWRlLWZvci1bc2l6ZV0gYW5kIC5zaG93L2hpZGUtZm9yLVtzaXplXS1kb3duIGNsYXNzZXNcbiAgICAgICAgLy8gZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSBicmVha3BvaW50cyBvbmx5XG4gICAgICAgIEBpZiAkaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzIGFuZCBpbmRleCgoc21hbGwsIG1lZGl1bSwgbGFyZ2UpLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpICE9IGZhbHNlIHtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24sIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgfVxuXG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gQ3VycmVudCBicmVha3BvaW50XG5cbiAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3Rib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwLCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcblxuICAgICAgICAvLyBGb3VuZGF0aW9uIDQgY29tcGF0aWJpbGl0eTpcbiAgICAgICAgLy8gSW5jbHVkZSAuc2hvdy9oaWRlLWZvci1bc2l6ZV0gYW5kIC5zaG93L2hpZGUtZm9yLVtzaXplXS1kb3duIGNsYXNzZXNcbiAgICAgICAgLy8gZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSBicmVha3BvaW50cyBvbmx5XG4gICAgICAgIEBpZiAkaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzIGFuZCBpbmRleCgoc21hbGwsIG1lZGl1bSwgbGFyZ2UpLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpICE9IGZhbHNlIHtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24sIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qICN7JGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50fSBkaXNwbGF5cyAqL1xuICAgIEBtZWRpYSAje250aCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXF1ZXJpZXMsIGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCkpfSB7XG4gICAgICAjeyR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdH0ge1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAjeyR2aXNpYmlsaXR5LW5vbmUtbGlzdH0ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBAaWYgJGluY2x1ZGUtYWNjZXNzaWJpbGl0eS1jbGFzc2VzICE9IGZhbHNlIHtcbiAgICAgICAgI3skdmlzaWJpbGl0eS12aXNpYmxlLWxpc3R9IHtcbiAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS1oaWRkZW4tbGlzdH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaWYgJGluY2x1ZGUtdGFibGUtdmlzaWJpbGl0eS1jbGFzc2VzICE9IGZhbHNlIHtcbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtcm93LWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5AaWYgJGluY2x1ZGUtaHRtbC12aXNpYmlsaXR5LWNsYXNzZXMgIT0gZmFsc2Uge1xuXG4gIEBpbmNsdWRlIHZpc2liaWxpdHktbG9vcDtcblxuICAvKiBPcmllbnRhdGlvbiB0YXJnZXRpbmcgKi9cbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIC8qIFNwZWNpZmljIHZpc2liaWxpdHkgZm9yIHRhYmxlcyAqL1xuICB0YWJsZSB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgfVxuICB0aGVhZCB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIH1cbiAgdGJvZHkge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB9XG4gIHRyIHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgfVxuICB0ZCxcbiAgdGgge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgfVxuXG4gIEBtZWRpYSAjeyRsYW5kc2NhcGV9IHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICAvKiBTcGVjaWZpYyB2aXNpYmlsaXR5IGZvciB0YWJsZXMgKi9cbiAgICB0YWJsZSB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRoZWFkIHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRib2R5IHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRyIHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRkLFxuICAgIHRoIHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAjeyRwb3J0cmFpdH0ge1xuICAgIC5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0LFxuICAgIC5zaG93LWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIC8qIFNwZWNpZmljIHZpc2liaWxpdHkgZm9yIHRhYmxlcyAqL1xuICAgIHRhYmxlIHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGhlYWQge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGJvZHkge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdHIge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGQsXG4gICAgdGgge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgLyogVG91Y2gtZW5hYmxlZCBkZXZpY2UgdGFyZ2V0aW5nICovXG4gIC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAudG91Y2ggLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXG4gIHRhYmxlLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGFibGUuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIHRoZWFkLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRoZWFkLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdGJvZHkuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGJvZHkuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0ci5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0ci5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRkLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0ZC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB0aC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGguc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAvLyBPbmx5IGluY2x1ZGUgdGhlc2Ugc3R5bGVzIGlmIHlvdSB3YW50IHRoZW0uXG4gICAgQGlmICRpbmNsdWRlLXByaW50LXN0eWxlcyB7XG4gICAgICAvKlxuICAgICAgICogUHJpbnQgc3R5bGVzLlxuICAgICAgICpcbiAgICAgICAqIElubGluZWQgdG8gYXZvaWQgcmVxdWlyZWQgSFRUUCBjb25uZWN0aW9uOiB3d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuICAgICAgICogQ3JlZGl0IHRvIFBhdWwgSXJpc2ggYW5kIEhUTUw1IEJvaWxlcnBsYXRlIChodG1sNWJvaWxlcnBsYXRlLmNvbSlcbiAgICAgICovXG4gICAgICAucHJpbnQtb25seSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgKiB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICBjb2xvcjogJGJsYWNrICFpbXBvcnRhbnQ7IC8qIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3MgKi9cbiAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAgICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgICAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAgICAgYSxcbiAgICAgICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cblxuICAgICAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuXG4gICAgICAgIC8vIERvbid0IHNob3cgbGlua3MgZm9yIGltYWdlcywgb3IgamF2YXNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgICAgICAuaXIgYTphZnRlcixcbiAgICAgICAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyLFxuICAgICAgICBhW2hyZWZePVwiI1wiXTphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IH1cblxuICAgICAgICBwcmUsXG4gICAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRhbHVtaW51bTtcbiAgICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgLyogaDVicC5jb20vdCAqLyB9XG5cbiAgICAgICAgdHIsXG4gICAgICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICAgICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICAgICAgcCxcbiAgICAgICAgaDIsXG4gICAgICAgIGgzIHtcbiAgICAgICAgICBvcnBoYW5zOiAzO1xuICAgICAgICAgIHdpZG93czogMztcbiAgICAgICAgfVxuXG4gICAgICAgIGgyLFxuICAgICAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAgICAgLmhpZGUtb24tcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLnByaW50LW9ubHkgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgLyogUHJpbnQgdmlzaWJpbGl0eSAqL1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuXG4kaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgcGFkZGluZy5cbiRzaWRlLW5hdi1wYWRkaW5nOiByZW0tY2FsYygxNCAwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgbGlzdCBzdHlsZXMuXG4kc2lkZS1uYXYtbGlzdC10eXBlOiBub25lICFkZWZhdWx0O1xuJHNpZGUtbmF2LWxpc3QtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtbGlzdC1tYXJnaW46IHJlbS1jYWxjKDAgMCA3IDApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBsaW5rIHN0eWxlcy5cbiRzaWRlLW5hdi1saW5rLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRzaWRlLW5hdi1saW5rLWNvbG9yLWFjdGl2ZTogc2NhbGUtY29sb3IoJHNpZGUtbmF2LWxpbmstY29sb3IsICRsaWdodG5lc3M6IDMwJSkgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtbGluay1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJHNpZGUtbmF2LWxpbmstY29sb3IsICRsaWdodG5lc3M6IDMwJSkgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtbGluay1iZy1ob3ZlcjogaHNsYSgwLCAwLCAwLCAwLjAyNSkgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtbGluay1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtbGluay1wYWRkaW5nOiByZW0tY2FsYyg3IDE0KSAhZGVmYXVsdDtcbiRzaWRlLW5hdi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRzaWRlLW5hdi1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRzaWRlLW5hdi1mb250LXdlaWdodC1hY3RpdmU6ICRzaWRlLW5hdi1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRzaWRlLW5hdi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtZm9udC1mYW1pbHktYWN0aXZlOiAkc2lkZS1uYXYtZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRpbmcgc3R5bGVzLlxuJHNpZGUtbmF2LWhlYWRpbmctY29sb3I6ICRzaWRlLW5hdi1saW5rLWNvbG9yICFkZWZhdWx0O1xuJHNpZGUtbmF2LWhlYWRpbmctZm9udC1zaXplOiAkc2lkZS1uYXYtZm9udC1zaXplICFkZWZhdWx0O1xuJHNpZGUtbmF2LWhlYWRpbmctZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtaGVhZGluZy10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBib3JkZXIgc3R5bGVzXG4kc2lkZS1uYXYtZGl2aWRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kc2lkZS1uYXYtZGl2aWRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtZGl2aWRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAxMCUpICFkZWZhdWx0O1xuXG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG5cbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSBzaWRlLW5hdlxuLy9cbi8vICRkaXZpZGVyLWNvbG9yIC0gQm9yZGVyIGNvbG9yIG9mIGRpdmlkZXIuIERlZmF1bHQ6ICRzaWRlLW5hdi1kaXZpZGVyLWNvbG9yLlxuLy8gJGZvbnQtc2l6ZSAtIEZvbnQgc2l6ZSBvZiBuYXYgaXRlbXMuIERlZmF1bHQ6ICRzaWRlLW5hdi1mb250LXNpemUuXG4vLyAkbGluay1jb2xvciAtIENvbG9yIG9mIG5hdmlnYXRpb24gbGlua3MuIERlZmF1bHQ6ICRzaWRlLW5hdi1saW5rLWNvbG9yLlxuLy8gJGxpbmstY29sb3ItaG92ZXIgLSBDb2xvciBvZiBuYXZpZ2F0aW9uIGxpbmtzIHdoZW4gaG92ZXJlZC4gRGVmYXVsdDogJHNpZGUtbmF2LWxpbmstY29sb3ItaG92ZXIuXG5AbWl4aW4gc2lkZS1uYXYoXG4gICRkaXZpZGVyLWNvbG9yOiRzaWRlLW5hdi1kaXZpZGVyLWNvbG9yLFxuICAkZm9udC1zaXplOiRzaWRlLW5hdi1mb250LXNpemUsXG4gICRsaW5rLWNvbG9yOiRzaWRlLW5hdi1saW5rLWNvbG9yLFxuICAkbGluay1jb2xvci1ob3Zlcjokc2lkZS1uYXYtbGluay1jb2xvci1ob3ZlcixcbiAgJGxpbmstYmctaG92ZXI6JHNpZGUtbmF2LWxpbmstYmctaG92ZXIpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogJHNpZGUtbmF2LXBhZGRpbmc7XG4gIGxpc3Qtc3R5bGUtdHlwZTogJHNpZGUtbmF2LWxpc3QtdHlwZTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJHNpZGUtbmF2LWxpc3QtcG9zaXRpb247XG4gIGZvbnQtZmFtaWx5OiAkc2lkZS1uYXYtZm9udC1mYW1pbHk7XG5cbiAgbGkge1xuICAgIG1hcmdpbjogJHNpZGUtbmF2LWxpc3QtbWFyZ2luO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJHNpZGUtbmF2LWZvbnQtd2VpZ2h0O1xuXG4gICAgYTpub3QoLmJ1dHRvbikge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb2xvcjogJGxpbmstY29sb3I7XG4gICAgICBtYXJnaW46ICRzaWRlLW5hdi1saW5rLW1hcmdpbjtcbiAgICAgIHBhZGRpbmc6ICRzaWRlLW5hdi1saW5rLXBhZGRpbmc7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRsaW5rLWJnLWhvdmVyO1xuICAgICAgICBjb2xvcjogJGxpbmstY29sb3ItaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hY3RpdmUgPiBhOmZpcnN0LWNoaWxkOm5vdCguYnV0dG9uKSB7XG4gICAgICBjb2xvcjogJHNpZGUtbmF2LWxpbmstY29sb3ItYWN0aXZlO1xuICAgICAgZm9udC13ZWlnaHQ6ICRzaWRlLW5hdi1mb250LXdlaWdodC1hY3RpdmU7XG4gICAgICBmb250LWZhbWlseTogJHNpZGUtbmF2LWZvbnQtZmFtaWx5LWFjdGl2ZTtcbiAgICB9XG5cbiAgICAmLmRpdmlkZXIge1xuICAgICAgYm9yZGVyLXRvcDogJHNpZGUtbmF2LWRpdmlkZXItc2l6ZSAkc2lkZS1uYXYtZGl2aWRlci1zdHlsZTtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGRpdmlkZXItY29sb3I7XG4gICAgfVxuXG4gICAgJi5oZWFkaW5nIHtcbiAgICAgIGNvbG9yOiAkc2lkZS1uYXYtaGVhZGluZy1jb2xvcjtcbiAgICAgIGZvbnQ6IHtcbiAgICAgICAgc2l6ZTogJHNpZGUtbmF2LWhlYWRpbmctZm9udC1zaXplO1xuICAgICAgICB3ZWlnaHQ6ICRzaWRlLW5hdi1oZWFkaW5nLWZvbnQtd2VpZ2h0O1xuICAgICAgfVxuICAgICAgdGV4dC10cmFuc2Zvcm06ICRzaWRlLW5hdi1oZWFkaW5nLXRleHQtdHJhbnNmb3JtO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwic2lkZS1uYXZcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1uYXYtY2xhc3NlcyB7XG4gICAgLnNpZGUtbmF2IHsgQGluY2x1ZGUgc2lkZS1uYXY7IH1cbiAgfVxufVxuIiwiQGltcG9ydCBcIm5hdi9ob3Jpem9udGFsXCI7XG5cbiRwYWdpbmF0aW9uLWl0ZW0taGVpZ2h0OiAgICAgICAgMnJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tc2lkZS1wYWRkaW5nOiAgMXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogICAgICAgMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZDogICAgI2VmZWZlZiAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1czogMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemU6ICAgMXB4ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1ib3JkZXItY29sb3I6ICAjY2NjICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogICAgICAgICAjMzMzICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZDogICAgIzAwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1ib3JkZXItY29sb3I6ICAjMDAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWNvbG9yOiAgICAgICAgICNlZWUgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYmFja2dyb3VuZDogICAgICAjY2NjICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItaXRlbS1jb2xvcjogICAgICAgICAgICMwMDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJvcmRlci1jb2xvcjogICAgI2FhYSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24taW5jbHVkZS1tZWRpYXF1ZXJpZXM6ICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1mdWxsLWJyZWFrcG9pbnQ6ICAgICAgICAgICAgXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzAwcHgpXCIgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWlzLWxvYWRlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiAkcGFnaW5hdGlvbi1pcy1sb2FkZWQgPT0gZmFsc2Uge1xuICAgIC5wYWdpbmF0aW9uLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbiB7XG4gICAgICAgIEBleHRlbmQgJW5hdi0taG9yaXpvbnRhbDtcbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbl9faXRlbSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQ7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgICAgIFxuICAgICAgICAucGFnaW5hdGlvbiAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItc2l6ZSA+IDAge1xuICAgICAgICAgICAgYm9yZGVyOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1zaXplIHNvbGlkICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLWNvbG9yO1xuXG4gICAgICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID09IDAge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXMgPiAwIGFuZCAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcgPiAwIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyA9PSAwIGFuZCAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXMgPiAwIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgICAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemUgPiAwIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcgPT0gMCBhbmQgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzID4gMCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHBhZ2luYXRpb24taXRlbS1oZWlnaHQ7XG4gICAgICAgICAgICBjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHBhZ2luYXRpb24taXRlbS1zaWRlLXBhZGRpbmc7XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJvcmRlci1jb2xvcjtcblxuICAgICAgICAgICAgYSxcbiAgICAgICAgICAgIGE6aG92ZXIsXG4gICAgICAgICAgICBhOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHBhZ2luYXRpb24taG92ZXItaXRlbS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uIHtcblxuICAgICAgICAucGFnaW5hdGlvbl9faXRlbS0tbmV4dCxcbiAgICAgICAgLnBhZ2luYXRpb25fX2l0ZW0tLXByZXZpb3VzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwYWdpbmF0aW9uLWl0ZW0taGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYm9yZGVyLWNvbG9yO1xuICAgICAgICBjb2xvcjogJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAwICRwYWdpbmF0aW9uLWl0ZW0tc2lkZS1wYWRkaW5nO1xuXG4gICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcgPiAwIGFuZCAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXMgPiAwIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcgPT0gMCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICRwYWdpbmF0aW9uLWlzLWxvYWRlZDogdHJ1ZTtcblxuICAgIEBpZiAkcGFnaW5hdGlvbi1pbmNsdWRlLW1lZGlhcXVlcmllcyA9PSB0cnVlIHtcbiAgICAgICAgQG1lZGlhICN7JHBhZ2luYXRpb24tZnVsbC1icmVha3BvaW50fSB7XG4gICAgICAgICAgICAucGFnaW5hdGlvbiAucGFnaW5hdGlvbl9faXRlbSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIkBpbXBvcnQgXCJuYXZcIjtcblxuJG5hdi0taG9yaXpvbnRhbC1pcy1sb2FkZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgJG5hdi0taG9yaXpvbnRhbC1pcy1sb2FkZWQgPT0gZmFsc2Uge1xuICAgICVuYXYtLWhvcml6b250YWwge1xuICAgICAgICBAZXh0ZW5kICVuYXY7XG5cbiAgICAgICAgPiBsaSB7XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uYXYtLWhvcml6b250YWwge1xuICAgICAgICBAZXh0ZW5kICVuYXYtLWhvcml6b250YWw7XG4gICAgfVxuXG4gICAgJG5hdi0taG9yaXpvbnRhbC1pcy1sb2FkZWQ6IHRydWU7XG59IiwiJG5hdi1pcy1sb2FkZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgJG5hdi1pcy1sb2FkZWQgPT0gZmFsc2Uge1xuICAgICVuYXYge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJG5hdi1pcy1sb2FkZWQ6IHRydWU7XG59IiwiLyoqXG4gKiBJY29Nb29uIGdlbmVyYXRlZCBpY29uc1xuICogU2VlIHRoZSB0aGVtZSBhc3NldHMvZm9udHMgZm9sZGVyIGZvciBmb250IGZpbGVzXG4gKiBhbmQganNvbiBmaWxlIHRvIHVzZSBvbiBpY29tb29uIHRvIGRldmVsb3AgdGhpc1xuICogZm9udCBmdXJ0aGVyXG4gKi9cblxuQGltcG9ydCAnaWNvbi12YXJzJztcblxuJGljb21vb24tZm9udC1wYXRoOiBcIi9hc3NldHMyL2ZvbnRzL3plbml0aFwiICFkZWZhdWx0O1xuXG5AbWl4aW4gaWNvbigkaWNvbjogZmFsc2UpIHtcbiAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgIGZvbnQtZmFtaWx5OiAnemVuaXRoJyAhaW1wb3J0YW50O1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxuICAgIEBpZiAkaWNvbiB7XG4gICAgICAgIGNvbnRlbnQ6IFwiI3skaWNvbn1cIjtcbiAgICB9XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnemVuaXRoJztcbiAgICBzcmM6dXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vemVuaXRoLmVvdD9zeG50dWEnKTtcbiAgICBzcmM6dXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vemVuaXRoLmVvdD9zeG50dWEjaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9L3plbml0aC50dGY/c3hudHVhJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICB1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS96ZW5pdGgud29mZj9zeG50dWEnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vemVuaXRoLnN2Zz9zeG50dWEjemVuaXRoJykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuW2NsYXNzXj1cImljb24tXCJdLFxuW2NsYXNzKj1cIiBpY29uLVwiXSB7XG4gICAgQGluY2x1ZGUgaWNvbigpO1xufVxuXG4uaWNvbi1tZWRpdW06YmVmb3JlIHtcbiAgICBmb250LXNpemU6IDEuMjVlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLTcuNSU7XG59XG5cbi5pY29uLWxhcmdlOmJlZm9yZSB7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLTE1JTtcbn1cblxuLmljb24teGxhcmdlOmJlZm9yZSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgdmVydGljYWwtYWxpZ246IC0xNSU7XG59XG5cbi5pY29uLXh4bGFyZ2U6YmVmb3JlIHtcbiAgICBmb250LXNpemU6IDNlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLTE1JTtcbn1cblxuLmljb24tbG9jYWwtc2hpcHBpbmcge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWxvY2FsLXNoaXBwaW5nO1xuICAgIH1cbn1cbi5pY29uLWNyZWRpdC1jYXJkIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1jcmVkaXQtY2FyZDtcbiAgICB9XG59XG4uaWNvbi1zdG9ja2V4Y2hhbmdlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zdG9ja2V4Y2hhbmdlO1xuICAgIH1cbn1cbi5pY29uLXBsYWNlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1wbGFjZTtcbiAgICB9XG59XG4uaWNvbi1zZWFyY2gge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXNlYXJjaDtcbiAgICB9XG59XG4uaWNvbi13YWxsZXQtZ2lmdGNhcmQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXdhbGxldC1naWZ0Y2FyZDtcbiAgICB9XG59XG4uaWNvbi1mbGlnaHQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWZsaWdodDtcbiAgICB9XG59XG4uaWNvbi1hZGQtc2hvcHBpbmctY2FydCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItYWRkLXNob3BwaW5nLWNhcnQ7XG4gICAgfVxufVxuLmljb24tZGVsZXRlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1kZWxldGU7XG4gICAgfVxufVxuLmljb24tZXhpdC10by1hcHAge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWV4aXQtdG8tYXBwO1xuICAgIH1cbn1cbi5pY29uLWZhdm9yaXRlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1mYXZvcml0ZTtcbiAgICB9XG59XG4uaWNvbi1ob21lIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1ob21lO1xuICAgIH1cbn1cbi5pY29uLWluZm8ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWluZm87XG4gICAgfVxufVxuLmljb24tbGFuZ3VhZ2Uge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWxhbmd1YWdlO1xuICAgIH1cbn1cbi5pY29uLXByaW50IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1wcmludDtcbiAgICB9XG59XG4uaWNvbi1zaG9wcGluZy1jYXJ0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zaG9wcGluZy1jYXJ0O1xuICAgIH1cbn1cbi5pY29uLWVycm9yIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1lcnJvcjtcbiAgICB9XG59XG4uaWNvbi13YXJuaW5nIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci13YXJuaW5nO1xuICAgIH1cbn1cbi5pY29uLWNhbGwge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNhbGw7XG4gICAgfVxufVxuLmljb24tdnBuLWtleSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItdnBuLWtleTtcbiAgICB9XG59XG4uaWNvbi1hZGQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWFkZDtcbiAgICB9XG59XG4uaWNvbi1tYWlsIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1tYWlsO1xuICAgIH1cbn1cbi5pY29uLWF0dGFjaC1tb25leSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItYXR0YWNoLW1vbmV5O1xuICAgIH1cbn1cbi5pY29uLWtleWJvYXJkLWFycm93LWRvd24ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWtleWJvYXJkLWFycm93LWRvd247XG4gICAgfVxufVxuLmljb24tYnJpZ2h0bmVzcy0xIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1icmlnaHRuZXNzLTE7XG4gICAgfVxufVxuLmljb24tY2hlY2sge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNoZWNrO1xuICAgIH1cbn1cbi5pY29uLWNoZXZyb24tbGVmdCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItY2hldnJvbi1sZWZ0O1xuICAgIH1cbn1cbi5pY29uLWNoZXZyb24tcmlnaHQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNoZXZyb24tcmlnaHQ7XG4gICAgfVxufVxuLmljb24tY2xvc2Uge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNsb3NlO1xuICAgIH1cbn1cbi5pY29uLW1lbnUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLW1lbnU7XG4gICAgfVxufVxuLmljb24tcmVmcmVzaCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItcmVmcmVzaDtcbiAgICB9XG59XG4uaWNvbi1wZXJzb24ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXBlcnNvbjtcbiAgICB9XG59XG4uaWNvbi1zdGFyIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zdGFyO1xuICAgIH1cbn1cbi5pY29uLXN0YXItaGFsZiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItc3Rhci1oYWxmO1xuICAgIH1cbn1cbi5pY29uLXN0YXItb3V0bGluZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItc3Rhci1vdXRsaW5lO1xuICAgIH1cbn1cbi5pY29uLXNob3BwaW5nLWJhZyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItc2hvcHBpbmctYmFnO1xuICAgIH1cbn1cbi5pY29uLWdvb2dsZXBsdXMge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWdvb2dsZXBsdXM7XG4gICAgfVxufVxuLmljb24tZmFjZWJvb2sge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWZhY2Vib29rO1xuICAgIH1cbn1cbi5pY29uLWVsbG8ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWVsbG87XG4gICAgfVxufVxuLmljb24taW5zdGFncmFtIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1pbnN0YWdyYW07XG4gICAgfVxufVxuLmljb24tdHdpdHRlciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItdHdpdHRlcjtcbiAgICB9XG59XG4uaWNvbi15b3V0dWJlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci15b3V0dWJlO1xuICAgIH1cbn1cbi5pY29uLXZpbWVvIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci12aW1lbztcbiAgICB9XG59XG4uaWNvbi1mbGlja3Ige1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWZsaWNrcjtcbiAgICB9XG59XG4uaWNvbi1ibG9nZ2VyIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1ibG9nZ2VyO1xuICAgIH1cbn1cbi5pY29uLWxpbmtlZGluIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1saW5rZWRpbjtcbiAgICB9XG59XG4uaWNvbi1waW50ZXJlc3Qge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXBpbnRlcmVzdDtcbiAgICB9XG59IiwiJGljb24tdmFyLWxvY2FsLXNoaXBwaW5nOiBcIlxcZTFmMFwiO1xuJGljb24tdmFyLWNyZWRpdC1jYXJkOiBcIlxcZTYyM1wiO1xuJGljb24tdmFyLXN0b2NrZXhjaGFuZ2U6IFwiXFxlNjIwXCI7XG4kaWNvbi12YXItcGxhY2U6IFwiXFxlNjIyXCI7XG4kaWNvbi12YXItc2VhcmNoOiBcIlxcZTYwNlwiO1xuJGljb24tdmFyLXdhbGxldC1naWZ0Y2FyZDogXCJcXGU2MWVcIjtcbiRpY29uLXZhci1mbGlnaHQ6IFwiXFxlNjFmXCI7XG4kaWNvbi12YXItYWRkLXNob3BwaW5nLWNhcnQ6IFwiXFxlNjAwXCI7XG4kaWNvbi12YXItZGVsZXRlOiBcIlxcZTYwMVwiO1xuJGljb24tdmFyLWV4aXQtdG8tYXBwOiBcIlxcZTYwMlwiO1xuJGljb24tdmFyLWZhdm9yaXRlOiBcIlxcZTYwM1wiO1xuJGljb24tdmFyLWhvbWU6IFwiXFxlNjFjXCI7XG4kaWNvbi12YXItaW5mbzogXCJcXGU2MThcIjtcbiRpY29uLXZhci1sYW5ndWFnZTogXCJcXGU2MDRcIjtcbiRpY29uLXZhci1wcmludDogXCJcXGU2MDVcIjtcbiRpY29uLXZhci1zaG9wcGluZy1jYXJ0OiBcIlxcZTYwN1wiO1xuJGljb24tdmFyLWVycm9yOiBcIlxcZTYxOVwiO1xuJGljb24tdmFyLXdhcm5pbmc6IFwiXFxlNjFhXCI7XG4kaWNvbi12YXItY2FsbDogXCJcXGU2MDhcIjtcbiRpY29uLXZhci12cG4ta2V5OiBcIlxcZTYwOVwiO1xuJGljb24tdmFyLWFkZDogXCJcXGU2MGFcIjtcbiRpY29uLXZhci1tYWlsOiBcIlxcZTYwYlwiO1xuJGljb24tdmFyLWF0dGFjaC1tb25leTogXCJcXGU2MGNcIjtcbiRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duOiBcIlxcZTYwZFwiO1xuJGljb24tdmFyLWJyaWdodG5lc3MtMTogXCJcXGU2MGVcIjtcbiRpY29uLXZhci1jaGVjazogXCJcXGU2MWJcIjtcbiRpY29uLXZhci1jaGV2cm9uLWxlZnQ6IFwiXFxlNjBmXCI7XG4kaWNvbi12YXItY2hldnJvbi1yaWdodDogXCJcXGU2MTBcIjtcbiRpY29uLXZhci1jbG9zZTogXCJcXGU2MTFcIjtcbiRpY29uLXZhci1tZW51OiBcIlxcZTYxMlwiO1xuJGljb24tdmFyLXJlZnJlc2g6IFwiXFxlNjE3XCI7XG4kaWNvbi12YXItcGVyc29uOiBcIlxcZTYxM1wiO1xuJGljb24tdmFyLXN0YXI6IFwiXFxlNjE0XCI7XG4kaWNvbi12YXItc3Rhci1oYWxmOiBcIlxcZTYxNVwiO1xuJGljb24tdmFyLXN0YXItb3V0bGluZTogXCJcXGU2MTZcIjtcbiRpY29uLXZhci1zaG9wcGluZy1iYWc6IFwiXFxlNjIxXCI7XG4kaWNvbi12YXItZ29vZ2xlcGx1czogXCJcXGVhODhcIjtcbiRpY29uLXZhci1mYWNlYm9vazogXCJcXGVhOGNcIjtcbiRpY29uLXZhci1lbGxvOiBcIlxcZWE4ZlwiO1xuJGljb24tdmFyLWluc3RhZ3JhbTogXCJcXGVhOTBcIjtcbiRpY29uLXZhci10d2l0dGVyOiBcIlxcZWE5MVwiO1xuJGljb24tdmFyLXlvdXR1YmU6IFwiXFxlYTk5XCI7XG4kaWNvbi12YXItdmltZW86IFwiXFxlYTljXCI7XG4kaWNvbi12YXItZmxpY2tyOiBcIlxcZWFhMVwiO1xuJGljb24tdmFyLWJsb2dnZXI6IFwiXFxlYWI5XCI7XG4kaWNvbi12YXItbGlua2VkaW46IFwiXFxlYWM5XCI7XG4kaWNvbi12YXItcGludGVyZXN0OiBcIlxcZWFkMFwiO1xuIiwiJHNtYWxsLXBsdXMtcmFuZ2U6ICgyN2VtLCB1cHBlci1ib3VuZCgkc21hbGwtcmFuZ2UpKSAhZGVmYXVsdDtcbiRtZWRpdW0tZG93bjogICAgICBcIiN7JHNjcmVlbn0gYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KVwiO1xuJHNtYWxsLWRvd246ICAgICAgIFwiI3skc2NyZWVufSBhbmQgKG1heC13aWR0aDogI3t1cHBlci1ib3VuZCgkc21hbGwtcmFuZ2UpfSlcIjtcbiRzbWFsbC1wbHVzOiAgICAgICBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6ICN7bG93ZXItYm91bmQoJHNtYWxsLXBsdXMtcmFuZ2UpfSlcIjtcbiRzbWFsbC1wbHVzLXVwOiAgICAkc21hbGwtcGx1cztcbiRzbWFsbC1wbHVzLWRvd246ICBcIiN7JHNjcmVlbn0gYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkc21hbGwtcGx1cy1yYW5nZSl9KVwiO1xuJHNtYWxsLXBsdXMtb25seTogIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDogI3tsb3dlci1ib3VuZCgkc21hbGwtcGx1cy1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRzbWFsbC1wbHVzLXJhbmdlKX0pXCI7IiwiLy8gRG9uJ3Qgb3V0bGluZSBtYWluIGNvbnRlbnQgd2hlbiBza2lwcGluZyBuYXZpZ2F0aW9uXG4jbWFpbi1jb250ZW50OmZvY3VzIHtcblx0b3V0bGluZTogbm9uZTtcbn1cblxuLy8gU2NyZWVuIHJlYWRlciBvbmx5XG4uc3Itb25seSB7XG4gICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1oaWRlKCk7XG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgIGh0bWwge1xuICAgICAgICBmb250LXNpemU6IDg3LjUlO1xuICAgIH1cbn1cblxuLnZlcnRpY2FsLXBvcy1oZWxwZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS1kb3dufSB7XG4gICAgLmhpZGVfb25fbW9iaWxlIHtcbiAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn0iLCJAaW1wb3J0IFwiaGVhZGVyL3NldHRpbmdzXCI7XG5AaW1wb3J0IFwiaGVhZGVyL3V0aWxzLW5hdlwiO1xuQGltcG9ydCBcImhlYWRlci9vZmZjYW52YXMtbmF2XCI7XG5AaW1wb3J0IFwiaGVhZGVyL2xvZ28tbGluZVwiO1xuQGltcG9ydCBcImhlYWRlci9tYWluLW5hdlwiO1xuIiwiJGxvZ28taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgcmVtLWNhbGMoNjApICFkZWZhdWx0O1xuJGxvZ28tbGFyZ2UtaGVpZ2h0OiAgICAgICAgICAgICAgcmVtLWNhbGMoODApICFkZWZhdWx0O1xuJGxvZ28tcm93LXNwYWNpbmc6ICAgICAgICAgICAgICAgMS41cmVtICFkZWZhdWx0O1xuJGxvZ28tbGFyZ2Utcm93LXNwYWNpbmc6ICAgICAgICAgMi41cmVtICFkZWZhdWx0O1xuJG1lbnUtaXRlbXMtc3BhY2luZzogICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiR1dGlscy1uYXYtYmFyLWhlaWdodDogICAgICAgICAgIDNyZW0gIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LWZvbnQtY29sb3I6ICAgICAgICAgICAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuJHV0aWxzLW5hdi1mb250LXNpemU6ICAgICAgICAgICAgcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJHV0aWxzLW5hdi1zZXBhcmF0b3ItY29sb3I6ICAgICAgbGlnaHRlbigkdXRpbHMtbmF2LWZvbnQtY29sb3IsIDUwJSkgIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LWl0ZW0tc3BhY2luZzogICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiR1dGlscy1uYXYtbGluZS1oZWlnaHQ6ICAgICAgICAgIDEuMnJlbSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWJhY2tncm91bmQ6ICAgICAgICAgICMzMzMgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1saW5rLWNvbG9yOiAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtaXRlbS1wYWRkaW5nOiAgICAgICAgMnJlbSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0taGVpZ2h0OiAgICAgICAgIHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0tbGluZS1jb2xvcjogICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0tbGluZS1oZWlnaHQ6ICAgIDEuMiAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW9uLW1lZGl1bTogICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy10b3AtcGFkZGluZzogICAgICAgICAkdXRpbHMtbmF2LWJhci1oZWlnaHQgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy10b3AtcG9zaXRpb246ICAgICAgICAkbG9nby1oZWlnaHQgKyAkb2ZmLWNhbnZhcy10b3AtcGFkZGluZyArICRsb2dvLXJvdy1zcGFjaW5nICogMiAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplOiAgICAgIDcwJSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZTogICAgIDUwJSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWNsb3NlLWJ0bi1oZWlnaHQ6ICAgICR1dGlscy1uYXYtYmFyLWhlaWdodCAhZGVmYXVsdDtcbiRuYXYtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgIDMuNXJlbSAhZGVmYXVsdDtcbiRuYXYtYnRuLWhlaWdodDogICAgICAgICAgICAgICAgIDNyZW0gIWRlZmF1bHQ7XG4kbmF2LWljb24tc3BhY2luZzogICAgICAgICAgICAgICAuNHJlbSAhZGVmYXVsdDtcbiRuYXYtc3VibWVudS1ib3JkZXItY29sb3I6ICAgICAgICRib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kbmF2LWZpcnN0LWxldmVsLWZvbnQtd2VpZ2h0OiAgICBib2xkICFkZWZhdWx0O1xuJG5hdi1maXJzdC1sZXZlbC10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtZm9udC1zaXplOiAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kbmF2LWhvcml6b250YWwtc2lkZS1wYWRkaW5nOiAgICAxcmVtICFkZWZhdWx0O1xuJG5hdi1maXJzdC1sZXZlbC1zcGFjaW5nOiAgICAgICAgMCAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtc2lkZS1wYWRkaW5nOiAgIDFyZW0gIWRlZmF1bHQ7IiwiJHV0aWxzLW5hdi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbiN1dGlscy1uYXYge1xuICAgIGZvbnQtZmFtaWx5OiAkdXRpbHMtbmF2LWZvbnQtZmFtaWx5O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IC03JTtcbiAgICB9XG59XG5cbiN1c2VyLW5hdiB7XG4gICAgJi5yaWdodCBsaTpsYXN0LWNoaWxkIGEge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkdXRpbHMtbmF2LWl0ZW0tc3BhY2luZztcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRob3Zlci1jb2xvciwgJGhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAjdXNlci1uYXYge1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdXRpbHMtbmF2LWJhci1oZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAjdXRpbHMtbmF2IHtcbiAgICAgICAgc3Bhbi5oaWRlLWZvci1zbWFsbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI3Rvb2xzLW5hdiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5waXBlZC1uYXYge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6ICR1dGlscy1uYXYtZm9udC1zaXplO1xuICAgIGhlaWdodDogJHV0aWxzLW5hdi1iYXItaGVpZ2h0O1xuXG4gICAgbGkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkdXRpbHMtbmF2LWJhci1oZWlnaHQ7XG4gICAgICAgIGhlaWdodDogJHV0aWxzLW5hdi1iYXItaGVpZ2h0O1xuICAgIH1cblxuICAgICYubGVmdCB7XG4gICAgICAgIGxpOmZpcnN0LWNoaWxkIGEge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5yaWdodCB7XG4gICAgICAgIGxpOmxhc3QtY2hpbGQgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5uby1zZXBhcmF0b3Ige1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJHV0aWxzLW5hdi1pdGVtLXNwYWNpbmc7XG4gICAgfVxuXG59IiwiQGlmICgkb2ZmLWNhbnZhcy1wb3NpdGlvbiAhPSBsZWZ0IGFuZCAkb2ZmLWNhbnZhcy1wb3NpdGlvbiAhPSByaWdodCkge1xuICAgIEB3YXJuIFwiJG9mZi1jYW52YXMtcG9zaXRpb24gbXVzdCBiZSBsZWZ0IG9yIHJpZ2h0LCB3YXMgI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn0uXCI7XG59XG5cbiRvZmYtY2FudmFzLW9uLWxhcmdlOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gT2ZmIGNhbnZhcyBtZWRpYSBxdWVyeSBpcyBub3QgbW9iaWxlIGZpcnN0LiBUaGUgc2hhbWUhXG4kb2ZmLWNhbnZhcy1hdDogaWYoJG9mZi1jYW52YXMtb24tbWVkaXVtID09IHRydWUsICRtZWRpdW0tZG93biwgJHNtYWxsLWRvd24pO1xuXG5ib2R5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAyMGVtO1xufVxuXG4jb3V0ZXItd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbiNpbm5lci13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5ibG9jayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYmxvY2stdGl0bGUge1xuICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtaGlkZSgpO1xufVxuXG5AbWVkaWEgI3skb2ZmLWNhbnZhcy1hdH0ge1xuICAgICNuYXYge1xuICAgICAgICB6LWluZGV4OiAyMDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZy10b3A6ICRvZmYtY2FudmFzLXRvcC1wYWRkaW5nO1xuICAgICAgICB0b3A6ICRvZmYtY2FudmFzLXRvcC1wb3NpdGlvbjtcblxuICAgICAgICAmOm5vdCg6dGFyZ2V0KSB7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjp0YXJnZXQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIC5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ibG9jayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmpzLXJlYWR5e1xuICAgICAgICAjbmF2IHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAkb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZTtcbiAgICAgICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAtI3skb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZX07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNoYWRvdywgaW5zZXQgaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgLTEuNWVtLCAxLjVlbSkgMCAxLjVlbSAtMC43NWVtIHJnYmEoMCwgMCwgMCwgMC4yNSksIG1veiBzcGVjKTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkb2ZmLWNhbnZhcy10b3AtcGFkZGluZztcblxuICAgICAgICAgICAgLmJsb2NrIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICNpbm5lci13cmFwIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuanMtbmF2ICNpbm5lci13cmFwIHtcbiAgICAgICAgI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06ICRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplO1xuICAgIH1cblxuICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMuanMtcmVhZHkge1xuICAgICAgICAjbmF2IHtcbiAgICAgICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgLTEwMCUsIDEwMCUpLCAwLCAwKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhY2tmYWNlLXZpc2liaWxpdHkoaGlkZGVuKTtcbiAgICAgICAgfVxuXG4gICAgICAgICNpbm5lci13cmFwIHtcbiAgICAgICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAvLyBAaW5jbHVkZSB0cmFuc2xhdGUzZCgwLDAsMCk7IC8vIERpc2FibGVkISBDYXVzZWQgYWxsIGtpbmRzIG9mIHdlaXJkIGJsdXJyaW5nIGluIEFuZHJvaWQgRmlyZWZveFxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgNTAwbXMgZWFzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLW5hdiAjaW5uZXItd3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIGJhY2tmYWNlLXZpc2liaWxpdHkoaGlkZGVuKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemUsIC0kb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZSksIDAsIDAsIHNjYWxlM2QoMSwgMSwgMSkpO1xuICAgIH1cblxuICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMuanMtcmVhZHkgI25hdiAuYmxvY2sge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyAxMDBtcyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSA1MDBtcyBlYXNlLCB2aXNpYmlsaXR5IDUwMG1zIGVhc2U7XG4gICAgICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyAxMDBtcyBlYXNlLCAtbW96LXRyYW5zZm9ybSA1MDBtcyBlYXNlLCB2aXNpYmlsaXR5IDUwMG1zIGVhc2U7XG4gICAgICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgMTAwbXMgZWFzZSwgLW8tdHJhbnNmb3JtIDUwMG1zIGVhc2UsIHZpc2liaWxpdHkgNTAwbXMgZWFzZTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyAxMDBtcyBlYXNlLCB0cmFuc2Zvcm0gNTAwbXMgZWFzZSwgdmlzaWJpbGl0eSA1MDBtcyBlYXNlO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZChpZigkb2ZmLWNhbnZhcy1wb3NpdGlvbiA9PSBsZWZ0LCAkb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZSwgLSRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplKSwgMCwgMCwgc2NhbGUzZCgwLjksIDAuOSwgMC45KSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oNTAlIDAlKTtcbiAgICAgICAgLy92aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1uYXYgI25hdiAuYmxvY2sge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAvL3Zpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICB9XG5cbiAgICAvLyBUbyBhdm9pZCBtZW1vcnkgbGVha3Mgb24gbW9iaWxlIGRldmljZXNcbiAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zICNuYXYge1xuICAgICAgICAvLyBhcyB0ZW1wdGluZyBhcyBpdCBpcyB0byB1c2UgZGlzcGxheTogbm9uZSwgdmlzaWJpbGl0eTogaGlkZGVuIGlzIGFuaW1hdGFibGVcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHZpc2liaWxpdHkgNTAwbXMgZWFzZSk7XG4gICAgfVxuICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMuanMtbmF2ICNuYXYge1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbn1cblxuQGlmICRvZmYtY2FudmFzLW9uLW1lZGl1bSB7XG4gICAgLy8gRGlmZmVyZW50IG5hdiBzaXplIG9uIG1lZGl1bVxuICAgIEBtZWRpYSAjeyRtZWRpdW0tb25seX0ge1xuICAgICAgICAuanMtcmVhZHkge1xuICAgICAgICAgICAgI25hdiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZTtcbiAgICAgICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogLSN7JG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5qcy1uYXYgI2lubmVyLXdyYXAge1xuICAgICAgICAgICAgI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06ICRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMuanMtbmF2ICNpbm5lci13cmFwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsICRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZSwgLSRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZSksIDAsIDAsIHNjYWxlM2QoMSwgMSwgMSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaWYgJG9mZi1jYW52YXMtb24tbGFyZ2Uge1xuICAgIC8vIERpZmZlcmVudCBuYXYgc2l6ZSBvbiBtZWRpdW1cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgLmpzLW5hdiB7XG4gICAgICAgICAgICAjbmF2IHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAyMDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICRvZmYtY2FudmFzLXRvcC1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIHRvcDogJG9mZi1jYW52YXMtdG9wLXBvc2l0aW9uO1xuXG4gICAgICAgICAgICAgICAgJjpub3QoOnRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOnRhcmdldCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmYtY2FudmFzLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgICAgIC5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmJsb2NrIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuanMtbmF2ICNpbm5lci13cmFwIHtcbiAgICAgICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAkb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLW5hdiAjaW5uZXItd3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZChpZigkb2ZmLWNhbnZhcy1wb3NpdGlvbiA9PSBsZWZ0LCAkb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemUsIC0kb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemUpLCAwLCAwLCBzY2FsZTNkKDEsIDEsIDEpKTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIkbmF2LXNlYXJjaC1yYWRpdXM6ICRidXR0b24tcmFkaXVzICFkZWZhdWx0O1xuJHRleHQtbG9nby1mb250LXNpemU6ICRoMS1mb250LXNpemUgIWRlZmF1bHQ7XG5cbiNsb2dvLXJvdyB7XG4gICAgcGFkZGluZzogJGxvZ28tcm93LXNwYWNpbmcgMDtcbn1cblxuI2xvZ28ge1xuICAgIGhlaWdodDogJGxvZ28taGVpZ2h0O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsb2dvLWhlaWdodDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6ICR0ZXh0LWxvZ28tZm9udC1zaXplO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIG1heC1oZWlnaHQ6ICRsb2dvLWhlaWdodDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cblxuI2V4dHJhLW5hdiB7XG4gICAgLmNhcnQtYW5kLWNoZWNrb3V0IHtcbiAgICAgICAgcGFkZGluZy10b3A6ICN7KCRsb2dvLWhlaWdodCAtICRidXR0b24tc2l6ZSkvMn07XG5cbiAgICAgICAgJi5yaWdodCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JtIHtcbiAgICAgICAgaW5wdXQsIC5idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBAaWYoJG5hdi1zZWFyY2gtcmFkaXVzKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXMobGVmdCwgJG5hdi1zZWFyY2gtcmFkaXVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgQGlmKCRuYXYtc2VhcmNoLXJhZGl1cykge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNpZGUtcmFkaXVzKHJpZ2h0LCAkbmF2LXNlYXJjaC1yYWRpdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4jY29udGFjdC1uYXYge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIFxuICAgIGxpIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIGhlaWdodDogI3skbG9nby1oZWlnaHQgLSAkYnV0dG9uLXNpemV9O1xuICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgI2xvZ28tcm93IHtcbiAgICAgICAgcGFkZGluZzogJGxvZ28tbGFyZ2Utcm93LXNwYWNpbmcgMDtcbiAgICB9XG5cbiAgICAjZXh0cmEtbmF2IHtcbiAgICAgICAgLmNhcnQtYW5kLWNoZWNrb3V0e1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICN7KCRsb2dvLWxhcmdlLWhlaWdodCAtICRidXR0b24tc2l6ZSkvMn07XG4gICAgICAgIH1cblxuICAgICAgICAucGlwZWQtbmF2IHtcbiAgICAgICAgICAgIGxpOmZpcnN0LWNoaWxkIGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICNsb2dvIHtcbiAgICAgICAgaGVpZ2h0OiAkbG9nby1sYXJnZS1oZWlnaHQ7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRsb2dvLWxhcmdlLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAkbG9nby1sYXJnZS1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjY29udGFjdC1uYXYge1xuICAgICAgICBoZWlnaHQ6ICN7KCRsb2dvLWxhcmdlLWhlaWdodCAtICRidXR0b24tc2l6ZSkvMn07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAjeygkbG9nby1sYXJnZS1oZWlnaHQgLSAkYnV0dG9uLXNpemUpLzJ9O1xuICAgIH1cbn0iLCIvKipcbiAqIFdlJ3JlIHVzaW5nIHR3byBtZW51IGNvbmNlcHRzIGhlcmVcbiAqIE9mZiBjYW52YXMgbmF2aWdhdGlvbiwgYXMgc2VlbiBvbiBodHRwOi8vd3d3LnNtYXNoaW5nbWFnYXppbmUuY29tLzIwMTMvMDEvMTUvb2ZmLWNhbnZhcy1uYXZpZ2F0aW9uLWZvci1yZXNwb25zaXZlLXdlYnNpdGUvXG4gKiBTbWFydCBtZW51cywgYXMgc2VlbiBvbiBodHRwOi8vd3d3LnNtYXJ0bWVudXMub3JnL1xuICovXG4kbWVudS1mb250LWZhbWlseSAgICAgICAgICA6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJG1lbnUtZm9udC1jb2xvciAgICAgICAgICAgOiBpZihsdW1hKCRuYXZpZ2F0aW9uLWJnKSA8IDUwLCAkYWx0ZXJuYXRpdmUtZm9udC1jb2xvciwgJGJvZHktZm9udC1jb2xvcikgIWRlZmF1bHQ7XG4kbWVudS1kcm9wZG93bi1iZyAgICAgICAgICA6IHJnYmEoI2ZmZiwgLjk3KSAhZGVmYXVsdDtcbiRtZW51LWRyb3Bkb3duLWxpbmstY29sb3IgIDogaWYobHVtYSgkbWVudS1kcm9wZG93bi1iZykgPCA1MCwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGxpZ2h0LWJvZHktdGV4dCwgJG1lbnUtZHJvcGRvd24tYmcpLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICRtZW51LWRyb3Bkb3duLWJnKSkgIWRlZmF1bHQ7XG4kbWVudS1uYXZpZ2F0aW9uLWxpbmstY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRtZW51LWZvbnQtY29sb3IsICRuYXZpZ2F0aW9uLWJnKSAhZGVmYXVsdDtcbi8vJG1lbnUtaXRlbS1jb2xvciAgICAgICAgICAgOlxuLy8kbWVudS1pdGVtLWJnICAgICAgICAgICAgICA6XG4kbWVudS1pdGVtLWNvbnRyYXN0LWNvbG9yICA6ICRuYXZpZ2F0aW9uLWJnICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1ob3Zlci1jb2xvciAgICAgOiAkaG92ZXItYmctdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRtZW51LWl0ZW0taG92ZXItYmcgICAgICAgIDogJGhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1hY3RpdmUtY29sb3IgICAgOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tYWN0aXZlLWJnICAgICAgIDogJG5hdmlnYXRpb24tYmcgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1jb2xvcjogJG5hdmlnYXRpb24tYmcgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1iZyA6IGlmKGx1bWEoJHByaW1hcnktY29sb3IpIDwgNTAsIGxpZ2h0ZW4oJHByaW1hcnktY29sb3IsIDEwJSksIGRhcmtlbigkcHJpbWFyeS1jb2xvciwgMTAlKSkgIWRlZmF1bHQ7XG5cbiRuYXYtdG9nZ2xlci1zaXplOiAoJGxpc3QtbGluZS1oZWlnaHQgKiAkbGlzdC1mb250LXNpemUpICFkZWZhdWx0O1xuJG5hdi10b2dnbGVyLWJhY2tkcm9wOiAkY29udGVudC1iZyAhZGVmYXVsdDtcbiRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRuYXYtdG9nZ2xlci1ob3Zlci1iZzogJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuJG1lbnUtaG9yaXpvbnRhbC1icmVha3BvaW50OiBpZigkb2ZmLWNhbnZhcy1vbi1tZWRpdW0gPT0gdHJ1ZSwgJGxhcmdlLXVwLCAkbWVkaXVtLXVwKTtcbiRvdmVycmlkZS1pbmxpbmUtcG9zLWF0OiBpZigkb2ZmLWNhbnZhcy1vbi1tZWRpdW0gPT0gdHJ1ZSwgJG1lZGl1bS1kb3duLCAkc21hbGwtZG93bik7XG5cbi8vIE5hdmlnYXRpb24gY29udGFpbmVyXG4ubWFpbi1uYXYge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMDtcbiAgICBmb250LWZhbWlseTogJG1lbnUtZm9udC1mYW1pbHk7XG5cbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBkaXJlY3Rpb246IGx0cjtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRtZW51LW5hdmlnYXRpb24tbGluay1jb2xvcjtcbiAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgIH1cblxuICAgIC5pY29uLW1lbnU6YmVmb3JlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IC0xMiU7XG4gICAgfVxufVxuXG4vLyBqcyBrZWVwSW5WaWV3cG9ydCBidWdmaXhcbi5zbSB7XG4gICAgLnNjcm9sbC11cCwgLnNjcm9sbC1kb3duIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vLyBPZmYgY2FudmFzIG1lbnUgaXRlbXNcbi5tYWluLW5hdl9faXRlbSBhLCBhLm1haW4tbmF2X19jbG9zZS1idG4ge1xuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkb2ZmLWNhbnZhcy1saW5rLWNvbG9yLCAkb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kKTtcbn1cblxuLy8gT2ZmLWNhbnZhcyBuYXZpZ2F0aW9uIGNsb3NlIGJ1dHRvblxuLm1haW4tbmF2X19jbG9zZS1idG4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3BhY2l0eTogMC43O1xuICAgIHRleHQtYWxpZ246IGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsIHJpZ2h0LCBsZWZ0KTtcbiAgICBsaW5lLWhlaWdodDogJG9mZi1jYW52YXMtY2xvc2UtYnRuLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRvZmYtY2FudmFzLWNsb3NlLWJ0bi1oZWlnaHQ7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIodGFwLWhpZ2hsaWdodC1jb2xvciwgcmdiYSgwLCAwLCAwLCAwKSwgd2Via2l0KTtcblxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlcixcbiAgICAmLmhpZ2hsaWdodGVkIHtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRvZmYtY2FudmFzLWxpbmstY29sb3IsICRob3Zlci1jb2xvcikgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogJGhvdmVyLWNvbG9yO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIGkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgcGFkZGluZy0jeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogLjRyZW07XG4gICAgfVxufVxuXG4vLyBUaGUgbWVudS9zZWFyY2ggYnV0dG9ucyBpbiB0aGUgY29tcGFjdCBtZW51XG4ubmF2LWNvbXBhY3Qge1xuICAgIGxpIHtcbiAgICAgICAgaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJG1lbnUtbmF2aWdhdGlvbi1saW5rLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRuYXYtbGluZS1oZWlnaHQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbn1cblxuI25hdi1vcGVuLWJ0biB7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxufVxuXG4ubmF2LW9mZmNhbnZhcyB7XG4gICAgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRvZmYtY2FudmFzLWl0ZW0tbGluZS1jb2xvcjtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIE5hdiBpdGVtcyBzdHlsaW5nXG4ubWFpbi1uYXZfX2l0ZW0ge1xuICAgIGRpcmVjdGlvbjogbHRyO1xuXG4gICAgYSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAgJG5hdi1ob3Jpem9udGFsLXNpZGUtcGFkZGluZztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICYuaGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1ob3Zlci1iZztcbiAgICAgICAgICAgIGNvbG9yOiAkbWVudS1pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRpc2FibGVkIHtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuY3VycmVudCxcbiAgICAmLnNlbGVjdGVkIHtcbiAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29sb3JlZC1iZy1lbGVtZW50KCRtZW51LWl0ZW0tYWN0aXZlLWJnLCAkbWVudS1pdGVtLWFjdGl2ZS1jb2xvciwgJG1lbnUtaXRlbS1jb250cmFzdC1jb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAkYWN0aXZlLWhvdmVyLWJnOiBpZihsdW1hKCRtZW51LWl0ZW0tYWN0aXZlLWhvdmVyLWJnKSA8IDUwLCBsaWdodGVuKCRtZW51LWl0ZW0tYWN0aXZlLWhvdmVyLWJnLCAxMCUpLCBkYXJrZW4oJG1lbnUtaXRlbS1hY3RpdmUtaG92ZXItYmcsIDEwJSkpICFkZWZhdWx0O1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbG9yZWQtYmctZWxlbWVudCgkYWN0aXZlLWhvdmVyLWJnLCAjZmZmLCAkbWVudS1pdGVtLWNvbnRyYXN0LWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vVGhpcyBzdHlsaW5nIG9ubHkgYXBwbGllcyBpZiAuc20gaXMgYWRkZWQgdG8gdGhlIHRvcCA8dWw+IGVsZW1lbnQsIGFzIGFycm93cyBkb24ndCB3b3JrIGlmIHNtYXJ0bWVudSBpc24ndCBsb2FkZWQgYW55d2F5XG4gICAgJi5wYXJlbnQgPiBhIHtcbiAgICAgICAgLy8gU2hvdyBhcnJvdyBmb3IgcGFyZW50IGl0ZW1zXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXIta2V5Ym9hcmQtYXJyb3ctZG93bik7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXYtaWNvbi1zcGFjaW5nO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDQwMG1zIGVhc2UpO1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAmIH4gdWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtc2hvdygkcG9zaXRpb246IHJlbGF0aXZlKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gUm90YXRlIGFycm93IG9uIGhvdmVyXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRleCgxODBkZWcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucGFyZW50LmxldmVsLTEgPiBhOmFmdGVyIHtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1rZXlib2FyZC1hcnJvdy1kb3duOmJlZm9yZTtcbiAgICB9XG59XG5cbi8qKlxuICogTmF2IGl0ZW1zIHNob3VsZCBoYXZlIHBhZGRpbmcgYW5kIGEgbG93IGxpbmUgaGVpZ2h0XG4gKiBJZiBub3QsIG11bHRpLWxpbmUgaXRlbXMgd2lsbCBiZSBodWdlXG4gKi9cbi5tYWluLW5hdl9fbGlzdCB7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuXG4gICAgYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtaGVpZ2h0ICogMXJlbTtcbiAgICAgICAgcGFkZGluZzogI3soJG9mZi1jYW52YXMtaXRlbS1oZWlnaHQgLSAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtaGVpZ2h0ICogMXJlbSkvMn0gMXJlbTtcbiAgICB9XG5cbiAgICAvLyBFeHRyYSBib3R0b20gYm9yZGVyIGZvciB0aGUgbGFzdCBvZiB0aGUgZmlyc3QgbGV2ZWwgZWxlbWVudHNcbiAgICAmLmxldmVsLTAgPiBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRvZmYtY2FudmFzLWl0ZW0tbGluZS1jb2xvcjtcbiAgICB9XG59XG5cbi8vIFN1Ym1lbnVcbi5tYWluLW5hdl9fc3VibWVudSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMjAxO1xuICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtaGlkZSgpO1xuXG4gICAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgfVxuXG4gICAgaHRtbC5uby1qcyAmLmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtc2hvdygpO1xuICAgIH1cblxufVxuXG4vL1N1YnN1Ym1lbnVcbi5tYWluLW5hdl9fc3VibWVudS5sZXZlbC0yIHtcbiAgICBhIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzLjVyZW07XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItY2hldnJvbi1yaWdodCk7XG4gICAgICAgICAgICBvcGFjaXR5OiAuNTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRvZmYtY2FudmFzLWl0ZW0tbGluZS1oZWlnaHQgKiAxcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJG5hdi1pY29uLXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5qcy1uYXYge1xuICAgICNvdXRlci13cmFwIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAuY29udGVudC13cmFwcGVyID4gKjpub3QoI25hdikge1xuICAgICAgICBvcGFjaXR5OiAuNDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5LCA1MDBtcyk7XG4gICAgfVxufVxuXG4vKiBGaXggd2VpcmQgYnVnIGluIENocm9tZSB3aGVyZSBtZW51IGRpc2FwcGVhcnMgb24gaG92ZXIgKi9cbi5tYWluLW5hdl9faXRlbSxcbi5tYWluLW5hdl9fc3VibWVudSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xufVxuXG4uYmxvY2stbmF2X19pdGVtLnBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5AbWl4aW4gbWFpbi1uYXZfX3RvZ2dsZS0tY29sb3JzKCRjb2xvcjogJHByaW1hcnktY29sb3IsICRiYWNrZHJvcDogJG5hdi10b2dnbGVyLWJhY2tkcm9wLCAkaG92ZXItYmc6ICRuYXYtdG9nZ2xlci1ob3Zlci1iZywgJGhvdmVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcil7XG4gICAgJixcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb2xvciwgJGJhY2tkcm9wKSwgMC45KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICYudG9nZ2xlZDpiZWZvcmUge1xuICAgICAgICBjb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZShpZihsdW1hKCRiYWNrZHJvcCkgPCA1MCwgIzAwMCwgI2ZmZiksICRiYWNrZHJvcCksIC43KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgYmFja2dyb3VuZDogJGhvdmVyLWJnO1xuXG4gICAgICAgICYsICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShyZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRob3Zlci1jb2xvciwgJGJhY2tkcm9wKSwgMC45KSwgJGhvdmVyLWJnKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubWFpbi1uYXZfX3RvZ2dsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6ICRuYXYtdG9nZ2xlci1zaXplO1xuICAgIHdpZHRoOiAkbmF2LXRvZ2dsZXItc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJG5hdi10b2dnbGVyLXNpemU7XG5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgZWFzZSk7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAkbmF2LXRvZ2dsZXItc2l6ZTtcbiAgICAgICAgd2lkdGg6ICRuYXYtdG9nZ2xlci1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1haW4tbmF2X190b2dnbGUtLWNvbG9ycygpO1xuXG4gICAgLmZvb3Rlci1iZyAmIHtcbiAgICAgICAgQGluY2x1ZGUgbWFpbi1uYXZfX3RvZ2dsZS0tY29sb3JzKCRjb2xvcjogJHByaW1hcnktY29sb3IsICRiYWNrZHJvcDogJGZvb3Rlci1iZywgJGhvdmVyLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbmF2LXRvZ2dsZXItaG92ZXItYmcsICRmb290ZXItYmcsIDEuMSkpO1xuICAgIH1cbn1cbi5jdXJyZW50IHtcbiAgICA+IC5tYWluLW5hdl9fdG9nZ2xlIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJG5hdi10b2dnbGVyLWN1cnJlbnQtYmFja2Ryb3ApLCAwLjc1KSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAuZm9vdGVyLWJnICYge1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRmb290ZXItYmcpLCAwLjc1KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZihsdW1hKCRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wKSA8IDUwLCBsaWdodGVuKCRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wLCAxMCUpLCBkYXJrZW4oJG5hdi10b2dnbGVyLWN1cnJlbnQtYmFja2Ryb3AsIDEwJSkpO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJG5hdi10b2dnbGVyLWN1cnJlbnQtYmFja2Ryb3ApLCAxKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBTdHlsaW5nIGZvciBpbml0aWFsaXppbmcgdGhlIG1lbnUgd2l0aCBzdWJtZW51cyBvcGVuXG4uYmxvY2stbmF2X19pdGVtIHtcbiAgICAmLnNlbGVjdGVkLnBhcmVudCxcbiAgICAmLmN1cnJlbnQucGFyZW50IHtcbiAgICAgICAgLy8gUm90YXRlIHRoZSBjcm9zc1xuICAgICAgICA+IC5tYWluLW5hdl9fdG9nZ2xlOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDEzNWRlZykpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAubWFpbi1uYXZfX3RvZ2dsZS50b2dnbGVkOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDBkZWcpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JG92ZXJyaWRlLWlubGluZS1wb3MtYXR9IHtcbiAgICAvLyBPdmVycmlkZSBpbmxpbmUgcG9zaXRpb25pbmcgZG9uZSBieSBKU1xuICAgIC5tYWluLW5hdl9faXRlbS5wYXJlbnQgPiBhLmhpZ2hsaWdodGVkIH4gdWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5AaWYgJG9mZi1jYW52YXMtb24tbWVkaXVtIHtcbiAgICAvKiBJbmNyZWFzZSBwYWRkaW5nIGluIG1lbnUgaXRlbXMgb24gbWVkaXVtIHNjcmVlbnMgKi9cbiAgICBAbWVkaWEgI3skbWVkaXVtLW9ubHl9IHtcbiAgICAgICAgLm1haW4tbmF2X19saXN0IHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tYWluLW5hdl9fc3VibWVudSB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVudS1ob3Jpem9udGFsLWJyZWFrcG9pbnR9IHtcblxuICAgIC5tYWluLW5hdl9fZnJvbnRwYWdlLWxpbmsgLmljb24taG9tZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgIH1cblxuICAgIC5tYWluLW5hdl9faXRlbSB7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJG5hdi1ob3Jpem9udGFsLXNpZGUtcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRuYXYtaG9yaXpvbnRhbC1zaWRlLXBhZGRpbmc7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAgICAgY29sb3I6ICRtZW51LW5hdmlnYXRpb24tbGluay1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpcnN0IGxldmVsIG1lbnUgaXRlbXNcbiAgICAgICAgJi5sZXZlbC0wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDE7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRuYXYtZmlyc3QtbGV2ZWwtc3BhY2luZztcblxuICAgICAgICAgICAgQGlmICRuYXYtZmlyc3QtbGV2ZWwtc3BhY2luZyA+IDAge1xuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXYtZmlyc3QtbGV2ZWwtc2lkZS1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRuYXYtZmlyc3QtbGV2ZWwtc2lkZS1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbmF2LWZpcnN0LWxldmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkbmF2LWZpcnN0LWxldmVsLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJG5hdi1maXJzdC1sZXZlbC1mb250LXNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucGFyZW50ID4gYTphZnRlciB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRuYXYtbGluZS1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaG93IHN1Ym1lbnUgb24gaGlnaGxpZ2h0aW5nXG4gICAgICAgICYucGFyZW50ID4gYS5oaWdobGlnaHRlZCB+IHVsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTVlbTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjBlbTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDFweCAwIDAgJG5hdi1zdWJtZW51LWJvcmRlci1jb2xvciwgMCAxcHggMCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yLCAtMXB4IDAgMCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yLCAwIC0xcHggMCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRuYXYtc3VibWVudS1ib3JkZXItY29sb3I7IC8vIE5vdCBhbGwgYnJvd3NlcnMgc3VwcG9ydCB0aGlzXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBPdmVycmlkZSBzbWFsbCBzY3JlZW4gc2V0dGluZ3NcbiAgICAubmF2LW9mZmNhbnZhcyB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICosXG4gICAgICAgICAgICAqOmJlZm9yZSxcbiAgICAgICAgICAgICo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoY29udGVudC1ib3gpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1haW4tbmF2X19jbG9zZS1idG4ge1xuICAgICAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLWhpZGUoKTtcbiAgICB9XG5cbiAgICAvLyBIaWRlIHN1Ym1lbnVzIGJ5IGRlZmF1bHRcbiAgICAubWFpbi1uYXZfX3N1Ym1lbnUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTk5OTk5OXB4O1xuICAgICAgICBsZWZ0OiAtODAwcHg7IC8vIEBUT0RPIEludmVzdGlnYXRlIGlmIHRoaXMgaXMgdGhlIGN1bHByaXQgYmVoaW5kIGEgZmxhc2ggYnVnIG9uIENocm9tZSB3aGVyZSB0aGUgc3VibWVudSBqdXN0IGRpc3NhcHBlYXJzIHJhbmRvbWx5XG4gICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWRyb3Bkb3duLWJnO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRtZW51LWRyb3Bkb3duLWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWFpbi1uYXZfX2l0ZW0ge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRuYXYtc3VibWVudS1ib3JkZXItY29sb3I7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBtZW51IGxldmVsIDEgd2UgdXNlIHBsdXMgc2lnbiBhcyBwYXJlbnQgaW5kaWNhdG9yLCBzaW5jZSBsZXZlbCAyXG4gICAgICogc3VibWVudXMgbWF5IHBvcCB1cCBib3RoIHRvIHRoZSBsZWZ0IGFuZCB0byB0aGUgcmlnaHRcbiAgICAgKi9cbiAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA1IHtcbiAgICAgICAgIC5tYWluLW5hdl9faXRlbS5sZXZlbC0jeyRpfS5wYXJlbnQge1xuICAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAkaWNvbi12YXItYWRkO1xuICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSwgMzAwbXMgZWFzZSk7XG4gICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuNjtcbiAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgJi5oaWdobGlnaHRlZDphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDEzNWRlZykpO1xuICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgIH1cbiAgICAgICAgIH1cbiBcdH1cblxuXG4gICAgLm1haW4tbmF2X19zdWJtZW51LmxldmVsLTIgYSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufSIsIiRtZWRpYS1ncmlkLWJvcmRlci1yYWRpdXM6IG1heCgkZ2xvYmFsLXJhZGl1cywgMnB4KSAhZGVmYXVsdDtcblxuQGltcG9ydCBcIm1haW4vdG9wYmFubmVyc1wiO1xuQGltcG9ydCBcIm1haW4vcHJvZHVjdGxpc3RcIjtcbkBpbXBvcnQgXCJtYWluL2NhdGVnb3J5bGlzdC9zdHlsZVwiO1xuQGltcG9ydCBcIm1haW4vcGFnZVwiOyIsIiN0b3BiYW5uZXJzIHtcbiAgICBwYWRkaW5nOiAycmVtIDA7XG59IiwiJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1jb3JuZXItc2l6ZTogICAgNSAhZGVmYXVsdDtcbiRwcm9kdWN0LWdyaWQtZGlzY291bnQtY29sb3I6ICAgICAgICAgICRjYWxsLXRvLWFjdGlvbi1jb2xvciAhZGVmYXVsdDtcbiRwcm9kdWN0LWdyaWQtZGlzY291bnQtc2l6ZTogICAgICAgICAgIHNxcnQoMiAqIChwb3coJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1jb3JuZXItc2l6ZSwgMikpKTtcbiRwcm9kdWN0LWdyaWQtZGlzY291bnQtZm9udC1zaXplOiAgICAgIHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRwcm9kdWN0LWdyaWQtZGlzY291bnQtcG9zOiAgICAgICAgICAgICgkcHJvZHVjdC1ncmlkLWRpc2NvdW50LXNpemUgLSAkcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvcm5lci1zaXplKSAvIDI7XG4kcHJvZHVjdC1ncmlkLWRpc2NvdW50LWZvbnQtY29sb3I6ICAgICBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvbG9yKSAhZGVmYXVsdDtcbiRwcm9kdWN0LWdyaWQtZGlzY291bnQtZm9udC1jb2xvci1hbHQ6ICMzMzMgIWRlZmF1bHQ7XG4kcHJvZHVjdC1ncmlkLWRpc2NvdW50LWJnLWxpZ2h0bmVzczogICBsaWdodG5lc3MoJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1jb2xvcikgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LWdyaWQtYnV5LWJ1dHRvbi10b3Atc3BhY2luZzogICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcbiRwcm9kdWN0LWdyaWQtYnV5LWJ1dHRvbi1kaXN0YW5jZTogICAgIHJlbS1jYWxjKDE4KSArICRidXR0b24tbWVkICsgJHByb2R1Y3QtZ3JpZC1idXktYnV0dG9uLXRvcC1zcGFjaW5nICsgJGNvbHVtbi1ndXR0ZXIgIWRlZmF1bHQ7IC8vIGJ1dHRvbiBsaW5lIGhlaWdodCArIGJ1dHRvbiBwYWRkaW5nICsgYnV0dG9uIHRvcCBzcGFjaW5nICsgcHJvZHVjdCBib3ggcGFkZGluZ1xuXG5AaW1wb3J0IFwicHJvZHVjdGxpc3Qvc3R5bGVcIjtcbkBpbXBvcnQgXCJwcm9kdWN0bGlzdC9idXktYnV0dG9uc1wiO1xuIiwiLnByb2R1Y3RsaXN0X19wcm9kdWN0LXdyYXAge1xuICAgICRfcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvbG9yLCAkY29udGVudC1iZywgMS4xKTtcbiAgICBcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXItcmFkaXVzOiAkbWVkaWEtZ3JpZC1ib3JkZXItcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDEwJSk7XG4gICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yLCAxNTBtcyk7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVooMCkpO1xuXG4gICAgLm9uLXNhbGUgJiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJF9wcm9kdWN0LWdyaWQtZGlzY291bnQtY29sb3I7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRfcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2Uge1xuICAgICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoNDApO1xuICAgIH1cblxuICAgIC5wcmljZS0tb3JpZ2luYWwge1xuICAgICAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoNDApO1xuICAgIH1cblxuICAgIC5jdXJyZW5jeSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnByaWNlX19zYWxlcHJpY2UtdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmtsYXJuYS1pbmZvIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIG9wYWNpdHk6IC43O1xuICAgICAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7IFxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRhbmNob3ItZm9udC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC52YXQtaW5mbyB7XG4gICAgICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtaGlkZSgpO1xuICAgIH1cblxuICAgIC5vbi1zYWxlICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgI3skcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvcm5lci1zaXplfXJlbSAjeyRwcm9kdWN0LWdyaWQtZGlzY291bnQtY29ybmVyLXNpemV9cmVtIDA7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJF9wcm9kdWN0LWdyaWQtZGlzY291bnQtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIC5kaXNjb3VudCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC1ncmlkLWRpc2NvdW50LWZvbnQtc2l6ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0jeyRwcm9kdWN0LWdyaWQtZGlzY291bnQtcG9zfXJlbTtcbiAgICAgICAgdG9wOiAtI3skcHJvZHVjdC1ncmlkLWRpc2NvdW50LXBvc31yZW07XG4gICAgICAgIHdpZHRoOiAjeyRwcm9kdWN0LWdyaWQtZGlzY291bnQtc2l6ZX1yZW07XG4gICAgICAgIGhlaWdodDogICN7JHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1zaXplfXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICN7JHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1zaXplLzIgKyAxfXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB6LWluZGV4OiAzO1xuXG4gICAgICAgIEBpZiBsdW1hKCRfcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvbG9yKSA+IDcwIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC1ncmlkLWRpc2NvdW50LWZvbnQtY29sb3ItYWx0O1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC1ncmlkLWRpc2NvdW50LWZvbnQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGVaKDApKTtcblxuICAgICAgICAubm8tY3NzdHJhbnNmb3JtcyAmIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgcGFkZGluZzogI3skY29sdW1uLWd1dHRlci8yfSAjeyRjb2x1bW4tZ3V0dGVyLzJ9IDAgMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdF9faGVhZGxpbmUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbn1cblxuIiwiJHByb2R1Y3RsaXN0X3Byb2R1Y3QtYnV0dG9uLXdyYXAtYmctb3BhY2l0eTogMC43ICFkZWZhdWx0O1xuJHByb2R1Y3RsaXN0LWJ1eS1idXR0b24td2lkdGg6IDEwMCUgIWRlZmF1bHQ7XG4kcHJvZHVjdGxpc3QtYnV5LWJ1dHRvbi1zcGFjaW5nOiAkY29sdW1uLWd1dHRlci8yICFkZWZhdWx0O1xuXG4ucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2J1dHRvbiB7XG4gICAgd2lkdGg6ICRwcm9kdWN0bGlzdC1idXktYnV0dG9uLXdpZHRoO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xufVxuXG4ucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2J1dHRvbi13cmFwIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRjb250ZW50LWJnLCAkcHJvZHVjdGxpc3RfcHJvZHVjdC1idXR0b24td3JhcC1iZy1vcGFjaXR5KTtcbiAgICBib3JkZXItcmFkaXVzOiAkbWVkaWEtZ3JpZC1ib3JkZXItcmFkaXVzO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogNDtcbiAgICBtYXJnaW4tbGVmdDogLSgkZXF1YWwtY29sLWlubmVyLXBhZGRpbmcpO1xuICAgIHBhZGRpbmc6ICRwcm9kdWN0LWdyaWQtYnV5LWJ1dHRvbi10b3Atc3BhY2luZyAkcHJvZHVjdGxpc3QtYnV5LWJ1dHRvbi1zcGFjaW5nICRwcm9kdWN0bGlzdC1idXktYnV0dG9uLXNwYWNpbmcgJHByb2R1Y3RsaXN0LWJ1eS1idXR0b24tc3BhY2luZztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSwgMTUwbXMgZWFzZSk7XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi8qIEJ1eSBidXR0b24gdHJhbnNmb3JtICovXG4uY3NzdHJhbnNmb3JtcyB7XG4gICAgLnByb2R1Y3RsaXN0X19wcm9kdWN0LXdyYXA6aG92ZXIge1xuICAgICAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2J1dHRvbi13cmFwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoMCwgLSN7JHByb2R1Y3QtZ3JpZC1idXktYnV0dG9uLWRpc3RhbmNlfSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBGb3IgYnJvd3NlcnMgd2l0aG91dCB0cmFuc2Zvcm0gc3VwcG9ydCwganVzdCBjaGFuZ2UgYm90dG9tIHBvc2l0aW9uICovXG4ubm8tY3NzdHJhbnNmb3JtcyB7XG4gICAgLnByb2R1Y3RsaXN0X19wcm9kdWN0X19idXR0b24td3JhcCB7XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgYm90dG9tOiAtMTAwJTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3R0b20sIDE1MG1zIGVhc2UpO1xuICAgIH1cblxuICAgIC5wcm9kdWN0bGlzdF9fcHJvZHVjdC13cmFwOmhvdmVyIHtcbiAgICAgICAgLnByb2R1Y3RsaXN0X19wcm9kdWN0X19idXR0b24td3JhcCB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogRm9yIGJyb3dzZXJzIHdpdGggdG91Y2ggc3VwcG9ydCwgd2UgYXNzdW1lIG5vIHN1cHBvcnQgZm9yIDpob3ZlciBhbmRcbiAqIG1ha2Ugc29tZSBhbHRlcmF0aW9ucy5cbiAqL1xuLnRvdWNoIHtcbiAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2J1dHRvbi13cmFwIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59IiwiJGNhdGVnb3J5LWdyaWQtYm9yZGVyLWNvbG9yOiAgI2VhZWFlYSAhZGVmYXVsdDtcbiRjYXRlZ29yeS1ncmlkLWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzKzIgIWRlZmF1bHQ7XG4kY2F0ZWdvcnktZ3JpZC1ib3JkZXItc2l6ZTogICAxcHggIWRlZmF1bHQ7XG4kY2F0ZWdvcnktZ3JpZC1mb250LWNvbG9yOiAgICBsaWdodGVuKCRib2R5LWZvbnQtY29sb3IsIDMwJSkgIWRlZmF1bHQ7XG5cbi5jYXRlZ29yeWxpc3RfX2NhdGVnb3J5LXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkbWVkaWEtZ3JpZC1ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDEwJSk7XG4gICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yLCAxNTBtcyk7XG59XG5cbi5jYXRlZ29yeWxpc3RfX2NhdGVnb3J5X19oZWFkbGluZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xufSIsIi8vIElmIHNlY3Rpb24gY29sb3JzIGRvIG5vdCBkaWZmZXIgZW5vdWdoIGluIGJhY2tncm91bmQgY29sb3IsIHdlIHNldCB1cCBhIGJvcmRlclxuLy8gVGhlIGJvcmRlciBzaG91bGQgYmUgbGlnaHRlciB0aGFuIHRoZSBsaWdodGVzdCBzZWN0aW9uIGlmIHRoZSBzZWN0aW9ucyBhcmUgZGFyayxcbi8vIGFuZCBkYXJrZXIgdGhhbiB0aGUgZGFya2Vyc3Qgc2VjdGlvbiBpZiBzZWN0aW9ucyBhcmUgbGlnaHRcbkBtaXhpbiBzZWN0aW9uLWJvcmRlci1jb2xvcigkc2VjdGlvbi1iZy1jb2xvciwgJHByZXZpb3VzLXNlY3Rpb24tY29sb3IsICRjb250cmFzdC1yYXRpby10aHJlc2hvbGQ6IDIsICRyZXRpbmE6IGZhbHNlKSB7XG4gICAgQGlmIGNvbnRyYXN0LXJhdGlvKCRzZWN0aW9uLWJnLWNvbG9yLCAkcHJldmlvdXMtc2VjdGlvbi1jb2xvcikgPD0gJGNvbnRyYXN0LXJhdGlvLXRocmVzaG9sZCB7XG4gICAgICAgIEBpZiBsdW1hKCRzZWN0aW9uLWJnLWNvbG9yKSA8IGx1bWEoJHByZXZpb3VzLXNlY3Rpb24tY29sb3IpIHtcbiAgICAgICAgICAgICRkYXJrZXN0LXNlY3Rpb24tY29sb3I6ICRzZWN0aW9uLWJnLWNvbG9yO1xuICAgICAgICAgICAgJGxpZ2h0ZXN0LXNlY3Rpb24tY29sb3I6ICRwcmV2aW91cy1zZWN0aW9uLWNvbG9yO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRsaWdodGVzdC1zZWN0aW9uLWNvbG9yOiAkc2VjdGlvbi1iZy1jb2xvcjtcbiAgICAgICAgICAgICRkYXJrZXN0LXNlY3Rpb24tY29sb3I6ICRwcmV2aW91cy1zZWN0aW9uLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJHNlY3Rpb24tYm9yZGVyLWNvbG9yOiBpZihsdW1hKCRzZWN0aW9uLWJnLWNvbG9yKSA8IDUsIGxpZ2h0ZW4oJGxpZ2h0ZXN0LXNlY3Rpb24tY29sb3IsIDEwJSksIGRhcmtlbigkZGFya2VzdC1zZWN0aW9uLWNvbG9yLCAxMCUpKTtcblxuICAgICAgICBAaWYgJHJldGluYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoYWlybGluZS1ib3JkZXIoJHNlY3Rpb24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNlY3Rpb24tYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jbG9nby1yb3cge1xuICAgIEBpbmNsdWRlIHNlY3Rpb24tYm9yZGVyLWNvbG9yKCRoZWFkZXItYmcsICRuYXZpZ2F0aW9uLWJnLCAxKTtcbn1cblxuLnVzZXItbmF2IHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbiNuYXYge1xuICAgIEBpbmNsdWRlIHNlY3Rpb24tYm9yZGVyLWNvbG9yKCRuYXZpZ2F0aW9uLWJnLCAkaGVhZGVyLWJnLCAxKTtcbn1cblxuI21haW4ge1xuICAgIEBpbmNsdWRlIHNlY3Rpb24tYm9yZGVyLWNvbG9yKCRjb250ZW50LWJnLCAkbmF2aWdhdGlvbi1iZywgMSk7XG59XG5cbiNtYWluLWNvbnRlbnQsXG4jbWFpbi1jb250ZW50LW9uZXBhZ2Uge1xuICAgIHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG5cbiAgICAmID4gLmJyZWFkY3J1bWJzX193cmFwcGVyOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRjb2x1bW4tZ3V0dGVyO1xuICAgICAgICBwYWRkaW5nOiAkcGFnZS10aXRsZS1wYWRkaW5nIDA7XG4gICAgfVxufVxuXG4jZm9vdGVyIHtcbiAgICBwYWRkaW5nLXRvcDogJGNvbHVtbi1ndXR0ZXI7XG4gICAgQGluY2x1ZGUgc2VjdGlvbi1ib3JkZXItY29sb3IoJGZvb3Rlci1iZywgJGNvbnRlbnQtYmcpO1xufVxuXG4jZW5kIHtcbiAgICBAaW5jbHVkZSBzZWN0aW9uLWJvcmRlci1jb2xvcigkZW5kLWJnLCAkZm9vdGVyLWJnKTtcbiAgICBwYWRkaW5nOiAkY29sdW1uLWd1dHRlciAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnBhZ2VfX3RpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiAtJGNvbHVtbi1ndXR0ZXI7XG4gICAgcGFkZGluZzogJHBhZ2UtdGl0bGUtcGFkZGluZyAwO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gKiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuXG4gICAgQGV4dGVuZCAuYm9yZGVyZWQtLWJvdHRvbTtcbiAgICBAZXh0ZW5kICVjb250ZW50X19ib3JkZXJlZC0taGFyZDtcblxuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn0iLCIuZm9vdGVyX19saW5rcyB7XG4gICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgLjVyZW07XG5cbiAgICAgICAgICAgIGh0bWwudG91Y2ggJiB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uZm9vdGVyX19jb21wYW55LWluZm8sXG4uZm9vdGVyX19tYWRlLWJ5IHtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbn1cblxuLmZvb3Rlcl9fbWFkZS1ieSB7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4uZm9vdGVyX19jb29raWVfbm90aWNlIHtcbiAgICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDoyNSU7XG4gICAgcGFkZGluZy1yaWdodDogMjUlO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5mb290ZXJfX2xpbmtzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLjVyZW07XG4gICAgfVxufSIsIkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc3R5bGVzL2xpbmstdmlzaWJpbGl0eS1maXhcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc2xhYi1zZXBhcmF0b3JcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYWxlcnQtYm94ZXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2Jsb2NrLWltYWdlLWdyaWRcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYmxvY2tzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2Jsb2Nrcy1iYW5uZXJzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2JvcmRlcmVkXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYnhzbGlkZXJcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvY2FydF9idXR0b25cIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvY2hlY2tvdXRcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvY2hlY2tvdXRfa2NvXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2NvbW1lbnRzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2Nvb2tpZS1ub3RpY2VcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvZmFuY3lib3hcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvZm9ybXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kva2xhcm5hXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2xhbmd1YWdlLWN1cnJlbmN5XCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3BhZ2UtZGl2aWRlclwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9wYWdlc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9wYWdpbmF0aW9uXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3Byb2R1Y3RcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcHJvZHVjdC1zZWFyY2hcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcmF0aW5nXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3JlYWRvbi1pY29uLWNlbnRlcmVkLW9uLWhvdmVyXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NlYXJjaC1ib3hcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc2VhcmNoLWJveC0tYWN0aXZpdHktaW5kaWNhdG9yXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3Nob3AtZmVhdHVyZXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc2xpZGVyXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NvY2lhbC1idXR0b25zXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NwaW5uZXJcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc3BsaXRtZW51XCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3RhYmxlc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS90aGVtZWQtbmF2aWdhdGlvblwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS90eXBvZ3JhcGh5XCI7XG5cbi8vIENvbW1vbiBzdHVmZiBmb3IgYWxsIHRoZW1lc1xuQGltcG9ydCBcInF1aWNrZml4L2NvbW1vblwiO1xuXG5AaW1wb3J0IFwicXVpY2tmaXgvY29tcG9uZW50cy9lcXVhbC1oZWlnaHRcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZnhcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL2ljb25pemVkLWxpc3RcIjtcblxuLy8gWmVuaXRoIGNvbXBvbmVudHMgYW5kIFF1aWNrZml4IG92ZXJyaWRlc1xuQGltcG9ydCBcImNvbXBvbmVudHMvYmxvY2tzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9iZXN0c2VsbGVyXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9mb290ZXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2hlYWRlclwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvbGF5b3V0XCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9tYWluLW5hdlwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvcGFnZS1kaXZpZGVyXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9wcm9kdWN0bGlzdFwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvc2lkZWJhclwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvdHlwZVwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvdXRpbHMtbmF2XCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90YWJzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9wYXJ0bmVyLWxvZ29zXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zZWFyY2gtYm94XCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jYXJ0LWJ1dHRvblwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2luZm9ib3hcIjsiLCIubWFpbi1jb250ZW50IHtcblx0YSB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdH1cblxuXHQucHJvZHVjdGxpc3RfX3Byb2R1Y3QgYSxcblx0LnByb2R1Y3RfX2JyZWFkY3J1bWJzIGEsXG5cdC5jYXRlZ29yeWxpc3RfX2NhdGVnb3J5IGEsXG5cdC5jaGVja291dCBhLFxuXHRhLmJ1dHRvbixcblx0LnNvY2lhbC1idXR0b25zLWxpc3QgYSB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR9XG59IiwiJHNsYWItc2VwYXJhdG9yLXdpZHRoOiA1MHB4ICFkZWZhdWx0O1xuJHNsYWItc2VwYXJhdG9yLWhlaWdodDogMnB4ICFkZWZhdWx0O1xuJHNsYWItc2VwYXJhdG9yLWNvbG9yOiAjMDAwICFkZWZhdWx0O1xuXG4lc2xhYi1zZXBhcmF0b3Ige1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogJHNsYWItc2VwYXJhdG9yLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRzbGFiLXNlcGFyYXRvci1oZWlnaHQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IC00cHggLSAoJHNsYWItc2VwYXJhdG9yLWhlaWdodC8yKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0jeyRzbGFiLXNlcGFyYXRvci13aWR0aCAvIDJ9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2xhYi1zZXBhcmF0b3ItY29sb3I7XG4gICAgfVxufSIsIiRhbGVydC1ib3gtZm9vdGVyLXNpemU6ICR0b3VjaC1mcmllbmRseS1zaXplICFkZWZhdWx0O1xuXG5AbWl4aW4gYWxlcnQtc3R5bGUoJGNvbG9yKSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1sZWZ0OiAkYWxlcnQtc2lkZS1ib3JkZXItc2l6ZSBzb2xpZCAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbn1cblxuLy8gVXNpbmcgZm91bmRhdGlvbidzIGFsZXJ0IGJveGVzIHN0eWxpbmdcbi5hbGVydC1ib3gge1xuICAgIEBpbmNsdWRlIGFsZXJ0O1xuICAgIGxpbmUtaGVpZ2h0OiAkYWxlcnQtbGluZS1oZWlnaHQ7XG4gICAgYm94LXNoYWRvdzogMnB4IDJweCA0cHggcmdiYSgwLDAsMCwuNCk7XG4gICAgXG4gICAgJi5hbGVydC1ib3gtLXdpdGhjbG9zZSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICN7JGFsZXJ0LXBhZGRpbmctb3Bwb3NpdGUtZGlyZWN0aW9uICogMS41fTtcbiAgICB9XG4gIFxuICAgID4gcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuY2xvc2UgICAgICB7IEBpbmNsdWRlIGFsZXJ0LWNsb3NlOyB9XG4gICAgJi5yYWRpdXMgICAgeyBAaW5jbHVkZSByYWRpdXMoJGFsZXJ0LXJhZGl1cyk7IH1cbiAgICAmLnJvdW5kICAgICB7IEBpbmNsdWRlIHJhZGl1cygkZ2xvYmFsLXJvdW5kZWQpOyB9XG5cbiAgICAmLnN1Y2Nlc3MsXG4gICAgJi5hbGVydC1zdWNjZXNzICAgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkc3VjY2Vzcy1jb2xvcik7IH1cbiAgICAmLmFsZXJ0LFxuICAgICYuYWxlcnQtYWxlcnQgICAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJGFsZXJ0LWNvbG9yKTsgfVxuICAgICYuc2Vjb25kYXJ5LFxuICAgICYuYWxlcnQtc2Vjb25kYXJ5IHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJHNlY29uZGFyeS1jb2xvcik7IH1cbiAgICAmLndhcm5pbmcsXG4gICAgJi5hbGVydC13YXJuaW5nICAgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkd2FybmluZy1jb2xvcik7IH1cbiAgICAmLmluZm8sXG4gICAgJi5hbGVydC1pbmZvICAgICAgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkaW5mby1jb2xvcik7IH1cbiAgICAmLmFsZXJ0LWNsb3NlICAgICB7IG9wYWNpdHk6IDB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG59XG5cbi5hbGVydC1ib3hfX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICB0b3A6ICRhbGVydC1wYWRkaW5nLXRvcDtcbiAgICBsZWZ0OiAtKCRhbGVydC1zaWRlLWJvcmRlci1zaXplLzIgKyAuNXJlbSk7XG4gICAgbGluZS1oZWlnaHQ6ICRhbGVydC1saW5lLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRhbGVydC1saW5lLWhlaWdodCAqIDFyZW07XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5hbGVydC1ib3hfX21lc3NhZ2UsXG4uYWxlcnQtYm94X19tZXNzYWdlID4gKiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkYWxlcnQtZm9udC1zaXplO1xufVxuLmFsZXJ0LWJveF9fbWVzc2FnZSBzdHJvbmcge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uYWxlcnQtYm94X19tZXNzYWdlIDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYWxlcnQtYm94LS13aXRoZm9vdGVyIHtcbiAgICAuYWxlcnQtYm94X19tZXNzYWdlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGFsZXJ0LWJveC1mb290ZXItc2l6ZTtcbiAgICB9XG59XG5cbiNjYXJ0LW5vdGlmeSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmFsZXJ0LWJveF9fcHJvZ3Jlc3NiYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5hbGVydC1ib3hfX2Zvb3RlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6ICRhbGVydC1ib3gtZm9vdGVyLXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRhbGVydC1ib3gtZm9vdGVyLXNpemU7XG5cbiAgICBhIHtcbiAgICAgICAgcGFkZGluZzogMCAkYWxlcnQtcGFkZGluZy1kZWZhdWx0LWZsb2F0IDAgJGFsZXJ0LXBhZGRpbmctZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG5cbiAgICAgICAgJi5sZWZ0IC5mYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucmlnaHQgLmZhIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLjNyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAuYWxlcnQtYm94IHtcbiAgICAgICAgbWF4LXdpZHRoOiA2MCU7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAuYWxlcnQtYm94IHtcbiAgICAgICAgbWF4LXdpZHRoOiA0MCU7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgLmFsZXJ0LWJveCB7XG4gICAgICAgIG1heC13aWR0aDogMzAlO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQm9ycm93ZWQgcGFydHMgb2YgaHR0cHM6Ly9naXRodWIuY29tL2RhbmVkZW4vYW5pbWF0ZS5jc3NcbiAqL1xuXG4uYW5pbWF0ZWQge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgMXMsIHdlYmtpdCBzcGVjKTtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCBib3RoLCB3ZWJraXQgc3BlYyk7XG59XG5cbi5hbmltYXRlLFxuLmdyb3dsLWFuaW1hdGVkIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuNHMgZWFzZS1pbi1vdXQpO1xufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMoZmFkZUluRG93bikge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sIG5vbmUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbiAgICB9XG59XG5cbi5mYWRlSW5Eb3duIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgZmFkZUluRG93biwgd2Via2l0IHNwZWMpO1xufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMoZmFkZU91dFVwKSB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgfVxufVxuXG4uZmFkZU91dFVwIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgZmFkZU91dFVwLCB3ZWJraXQgc3BlYyk7XG59IiwiLmJsb2NrLWltYWdlLWdyaWQge1xuICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQoMyk7XG59IiwiLmJsb2NrX19ib3hfX2hlYWRsaW5lIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgIHBhZGRpbmc6IC41cmVtICRjb2x1bW4tZ3V0dGVyLzIgLjVyZW0gJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duKTtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1sYXJnZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuNXJlbTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSA0MDBtcyBlYXNlKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB9XG5cbiAgICAmLnRvZ2dsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRwcmltYXJ5LWNvbG9yKTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGV4KDE4MGRlZykpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi5ibG9ja19fYm94X19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBhZGRpbmc6IC41cmVtICRjb2x1bW4tZ3V0dGVyLzIgJGNvbHVtbi1ndXR0ZXIgJGNvbHVtbi1ndXR0ZXIvMjtcbn1cblxuLmJsb2NrX19ib3gge1xuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIHVsIGxpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cblxuICAgICAgICAmLnBhcmVudCB7XG4gICAgICAgICAgICA+IGEuanMtdG9nZ2xlLXZpc2liaWxpdHk6YmVmb3JlLCA+IC5tYWluLW5hdl9fdG9nZ2xlOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgZWFzZSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItYWRkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBhLnRvZ2dsZWQsID4gLm1haW4tbmF2X190b2dnbGUudG9nZ2xlZCB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDEzNWRlZykpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiB1bCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYmxvY2tfX2JveC0tbG9nb19saXN0IGE6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5ibG9ja19fbG9naW5fX2ZvcmdvdHBhc3N3b3JkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLXNtbCk7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbiNmb290ZXIge1xuICAgIC5mb290ZXItYmxvY2s6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xuXG4gICAgICAgIC5ibG9ja19fYm94Omxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiBsdW1hKCRmb290ZXItYmcpIDwgNTAge1xuICAgICAgICAkZm9vdGVyLXRleHQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRmb290ZXItYmcpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAkZm9vdGVyLXRleHQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJGZvb3Rlci1iZyk7XG4gICAgfVxuICAgICRmb290ZXItbGluay1wYWRkaW5nOiAoKCgkdG91Y2gtZnJpZW5kbHktc2l6ZSAtICgxcmVtICogJHBhcmFncmFwaC1saW5lLWhlaWdodCkpLzIpICsgLjI1cmVtKSAhZGVmYXVsdDtcblxuICAgIC5ibG9ja19fYm94IHtcbiAgICAgICAgbGkgYS5uZXV0cmFsLWxpbms6YmVmb3JlLFxuICAgICAgICBsaS5uZXV0cmFsLWxpbmsgPiBhOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRmb290ZXItYmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkgYS50b2dnbGVkOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGFsZXJ0LWNvbG9yLCAkZm9vdGVyLWJnKTtcbiAgICAgICAgfVxuICAgICAgICAubWFpbi1uYXZfX3RvZ2dsZSwgLm1haW4tbmF2X190b2dnbGU6YmVmb3JlIHtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoNTApO1xuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg1MCk7XG4gICAgICAgICAgICB0ZXh0LWluZGVudDogMDtcbiAgICAgICAgfVxuICAgICAgICBsaS5sZXZlbC0wIHtcbiAgICAgICAgICAgICYsIGxpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggcmdiYSgkZm9vdGVyLXRleHQtY29sb3IsICRib3JkZXItZGVmYXVsdC1vcGFjaXR5KSBzb2xpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRmb290ZXItbGluay1wYWRkaW5nIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9uIG1lbnUgbGV2ZWwgMSB3ZSB1c2UgcGx1cyBzaWduIGFzIHBhcmVudCBpbmRpY2F0b3IsIHNpbmNlIGxldmVsIDJcbiAgICAgICAgICogc3VibWVudXMgbWF5IHBvcCB1cCBib3RoIHRvIHRoZSBsZWZ0IGFuZCB0byB0aGUgcmlnaHRcbiAgICAgICAgICovXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAgICAgICBsaS5sZXZlbC0jeyRpfSB7XG4gICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6ICgkZm9vdGVyLWxpbmstcGFkZGluZyAqIDEuNSkgKiAkaTtcbiAgICAgICAgICAgICB9XG4gICAgIFx0fVxuICAgICAgICBsaS5wYXJlbnQge1xuXG4gICAgXHRcdCYgPiBhIHtcbiAgICBcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXHRcdH1cblxuICAgIFx0XHQmLmN1cnJlbnQsXG4gICAgXHRcdCYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgICYgPiB1bCB7XG4gICAgXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAjZm9vdGVyIHtcbiAgICAgICAgLmZvb3Rlci1ibG9jazpmaXJzdC1jaGlsZCxcbiAgICAgICAgLmZvb3Rlci1ibG9jazpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAuYmxvY2tfX2JveDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYmxvY2tfX2JveDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrX19ib3hfX2hlYWRsaW5lIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICYudG9nZ2xlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9ja19fYm94X19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgI2Zvb3RlciB7XG4gICAgICAgIC5mb290ZXItYmxvY2sge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG5cbiAgICAgICAgICAgIC5ibG9ja19fYm94Omxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmJsb2NrX19ib3gtLWJhbm5lcnMsXG4uYmxvY2tfX2JveC0tYmFubmVyc19yaWdodCxcbi5ibG9ja19fYm94LS1iYW5uZXJzX2xlZnQge1xuICAgIFxuICAgICYsIC5ibG9ja19fYm94X19jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICBcbiAgICAuYmxvY2tfX2JveF9faGVhZGxpbmUtd3JhcHBlcixcbiAgICAuYmxvY2tfX2JveF9faGVhZGxpbmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC53cmFwcGVyX2Jhbm5lciB7XG4gICAgXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBcdCYgPiBkaXYge1xuICAgIFx0XHRtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIC8vIEZ1bGwgc2l6ZSB0aGUgaW1hZ2VcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBAaWYgJGdsb2JhbC1yYWRpdXMgPiAwIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgLSAxOyAvLyBWaXN1YWwgc2ltaWxhcml0eSB0byBib3hlc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgIFx0XHQmOmxhc3QtY2hpbGQge1xuICAgIFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG4gICAgXHRcdH1cbiAgICBcdH1cbiAgICB9XG59XG5cbiIsIiVib3JkZXJlZCB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDA7XG59XG5cbi5ib3JkZXJlZCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG59XG5cbi5ib3JkZXJlZC0tYWxsIHtcbiAgICBAZXh0ZW5kICVib3JkZXJlZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbn1cblxuLmJvcmRlcmVkLS1ib3R0b20ge1xuICAgIEBleHRlbmQgJWJvcmRlcmVkO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcblxuICAgICYuYm9yZGVyZWRfX2xpc3QtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICB9XG59XG5cbi5ib3JkZXJlZC0tdG9wIHtcbiAgICBAZXh0ZW5kICVib3JkZXJlZDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XG59XG5cbi5ib3JkZXJlZC0tbGVmdCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbn1cblxuLmJvcmRlcmVkLS1yaWdodCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG59IiwiYm9keSB7XG4gICAgLmJ1dHRvbiwgYnV0dG9uIHtcbiAgICBcdEBleHRlbmQgLmJ1dHRvbi5yYWRpdXM7XG4gICAgfVxufSIsIiRieHNsaWRlci1jb250cm9scy1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcbiRieHNsaWRlci1jb250cm9scy1ib3JkZXItc2l6ZTogMiAhZGVmYXVsdDtcbiRieHNsaWRlci1idWxsZXQtbmF2LXNpemU6ICR0b3VjaC1mcmllbmRseS1zaXplICFkZWZhdWx0O1xuJGJ4c2xpZGVyLWNvbnRyb2xzLW5hdmlnYXRpb24tcmFkaXVzOiAkYnhzbGlkZXItY29udHJvbHMtc2l6ZS8yICFkZWZhdWx0O1xuJGJ4c2xpZGVyLWNvbnRyb2xzLW5hdmlnYXRpb24tbG9jYXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG4kYnhzbGlkZXItcGFnZXItbGluay1iZzogJGNvbnRlbnQtYmcgIWRlZmF1bHQ7XG4kYnhzbGlkZXItbmF2LWFycm93LXNpemU6IHJlbS1jYWxjKDMwKSAhZGVmYXVsdDtcblxuLmJ4LXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmJ4LWNvbnRyb2xzLWRpcmVjdGlvbiBhIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLSN7JGJ4c2xpZGVyLWNvbnRyb2xzLXNpemUvMn07XG4gICAgb3V0bGluZTogMDtcbiAgICB3aWR0aDogJGJ4c2xpZGVyLWNvbnRyb2xzLXNpemU7XG4gICAgaGVpZ2h0OiAkYnhzbGlkZXItY29udHJvbHMtc2l6ZTtcbiAgICB0ZXh0LWluZGVudDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zLCAtd2Via2l0LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogZWFzZSwgMHM7XG4gICAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIC1tb3otdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCAtby10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIHRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsICRieHNsaWRlci1jb250cm9scy1uYXZpZ2F0aW9uLXJhZGl1cywgbXMgc3BlYyk7XG4gICAgYm9yZGVyOiAjeyRieHNsaWRlci1jb250cm9scy1ib3JkZXItc2l6ZX1weCBzb2xpZCAjZmZmO1xuXG4gICAgLnNsaWRlcl9fd2l0aC1uYXYgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0jeyRieHNsaWRlci1jb250cm9scy1zaXplLzIgKyAkYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplLzJ9O1xuICAgIH1cbiAgIFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odGV4dC1pbmRlbnQgMjAwbXMgZWFzZSk7XG4gICAgICAgIHdpZHRoOiAkYnhzbGlkZXItY29udHJvbHMtc2l6ZTtcbiAgICAgICAgZm9udC1zaXplOiAkYnhzbGlkZXItbmF2LWFycm93LXNpemU7XG4gICAgICAgIHRvcDogLSN7JGJ4c2xpZGVyLWNvbnRyb2xzLWJvcmRlci1zaXplfXB4O1xuICAgICAgICBsZWZ0OiAtI3skYnhzbGlkZXItY29udHJvbHMtYm9yZGVyLXNpemV9cHg7XG4gICAgICAgIHotaW5kZXg6IDEwMTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICYuZGlzYWJsZWQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLy8gUmV2ZXJzZSBjb2xvcnNcbkBpZiBsaWdodG5lc3MoJGNvbnRlbnQtYmcpID4gNTAlIHtcbiAgICAuYngtY29udHJvbHMtZGlyZWN0aW9uIGEge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwgLjQpO1xuICAgICAgICBib3JkZXI6ICN7JGJ4c2xpZGVyLWNvbnRyb2xzLWJvcmRlci1zaXplfXB4IHNvbGlkICNmZmY7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwgLjkpO1xuICAgICAgICB9XG4gICAgfVxufSBAZWxzZSB7XG4gICAgLmJ4LWNvbnRyb2xzLWRpcmVjdGlvbiBhIHtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsIC4yNSk7XG4gICAgICAgIGJvcmRlcjogI3skYnhzbGlkZXItY29udHJvbHMtYm9yZGVyLXNpemV9cHggc29saWQgIzAwMDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LCAuOSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5ieC1uZXh0IHtcbiAgICByaWdodDogI3skY29sdW1uLWd1dHRlci8yfTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1jaGV2cm9uLXJpZ2h0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtaW5kZW50OiAzcHg7XG4gICAgfVxuXG4gICAgJjpob3ZlcjphZnRlcixcbiAgICAmOmZvY3VzOmFmdGVyIHtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDlweDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZTphZnRlciB7XG4gICAgICAgIHRleHQtaW5kZW50OiAwO1xuICAgIH1cblxufVxuXG4uYngtcHJldiB7XG4gICAgbGVmdDogI3skY29sdW1uLWd1dHRlci8yfTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1jaGV2cm9uLWxlZnQpO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC0zcHg7XG4gICAgfVxuXG4gICAgJjpob3ZlcjphZnRlcixcbiAgICAmOmZvY3VzOmFmdGVyIHtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC05cHg7XG4gICAgfVxuXG4gICAgJjphY3RpdmU6YWZ0ZXIge1xuICAgICAgICB0ZXh0LWluZGVudDogMDtcbiAgICB9XG59XG5cbi5ieC1wYWdlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8vIFRvIHByZXZlbnQgbGFyZ2UgcGFpbnQgZnJhbWVzIG9uIGNocm9tZSBmb3IgLmJ4LXBhZ2VyLWl0ZW1cbiAgICAvLyBXaXRob3V0IHRoaXMgLmJ4LXBhZ2VyLWl0ZW0gY29uc3VtZSA1LjhNQiBpbnN0ZWFkIG9mIDUuOEtCXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgXG59XG5cbi5ieC1wYWdlci1pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYngtcGFnZXItbGluayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZTtcbiAgICB3aWR0aDogJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZTtcbiAgICBmb250LXNpemU6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICAgICAgb3BhY2l0eTogLjI1O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItYnJpZ2h0bmVzcy0xKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmc7XG4gICAgICAgIEBpZiAkYnhzbGlkZXItcGFnZXItbGluay1iZyAhPSB0cmFuc3BhcmVudCB7XG4gICAgICAgICAgICBAaWYgbHVtYSgkYnhzbGlkZXItcGFnZXItbGluay1iZykgPCA1MCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRieHNsaWRlci1wYWdlci1saW5rLWJnKTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjMDAwLCAkYnhzbGlkZXItcGFnZXItbGluay1iZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LWJnLCAkY29udGVudC1iZyk7XG4gICAgICAgIH1cbiAgICAgICAgaGVpZ2h0OiAkYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplO1xuICAgICAgICB3aWR0aDogJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihmb250LXNpemUgMjAwbXMgZWFzZSk7XG4gICAgfVxuXG4gICAgJi5hY3RpdmU6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAuNzU7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOmFmdGVyLFxuICAgICY6Zm9jdXM6YWZ0ZXIge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIEBpZiAkYnhzbGlkZXItcGFnZXItbGluay1iZyAhPSB0cmFuc3BhcmVudCB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRieHNsaWRlci1wYWdlci1saW5rLWJnKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKTtcbiAgICAgICAgfVxuICAgICAgICBvcGFjaXR5OiAuNzU7XG4gICAgfVxufVxuXG5AaWYgJGJ4c2xpZGVyLWNvbnRyb2xzLW5hdmlnYXRpb24tbG9jYXRpb24gPT0gb3V0c2lkZSB7XG4gICAgQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgICAgICAuYngtcHJldiB7XG4gICAgICAgICAgICBsZWZ0OiAtI3skYnhzbGlkZXItY29udHJvbHMtc2l6ZSArICRjb2x1bW4tZ3V0dGVyfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ieC1uZXh0IHtcbiAgICAgICAgICAgIHJpZ2h0OiAtI3skYnhzbGlkZXItY29udHJvbHMtc2l6ZSArICRjb2x1bW4tZ3V0dGVyfTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG59IiwiJGNhcnQtc3R5bGU6IGZ1bGwgIWRlZmF1bHQ7XG4kY2FydC1xdWFudGl0eS1iYWRnZS1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kY2FydC1xdWFudGl0eS1iYWRnZS1yYWRpdXM6IDUwJSAhZGVmYXVsdDtcblxuQGltcG9ydCBcImNhcnQtYnV0dG9uLWZ1bGxcIjtcbkBpbXBvcnQgXCJjYXJ0LWJ1dHRvbi1zaW1wbGVcIjtcblxuQGlmICRjYXJ0LXN0eWxlID09IGZ1bGwge1xuICAgIEBpbmNsdWRlIGNhcnQtYnV0dG9uLWZ1bGwoKTtcbn0gQGVsc2VpZiAkY2FydC1zdHlsZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIGNhcnQtYnV0dG9uLXNpbXBsZSgpO1xufVxuIiwiLy8gQ2FydCBidXR0b24gd2l0aCBxdWFudGl0eSwgc3VtIGFuZCBjaGVja291dCBidXR0b25cblxuQG1peGluIGNhcnQtYnV0dG9uLWZ1bGwoKSB7XG4gICAgLmNhcnQtYnV0dG9uX19xdWFudGl0eSxcbiAgICAuY2FydC1idXR0b25fX3N1bSxcbiAgICAuY2FydC1idXR0b25fX2N1cnJlbmN5IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRjYXJ0LXF1YW50aXR5LWJhZGdlLXNpemU7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICBoZWlnaHQ6ICRjYXJ0LXF1YW50aXR5LWJhZGdlLXNpemU7XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX19zdW0sXG4gICAgLmNhcnQtYnV0dG9uX19jdXJyZW5jeSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX19xdWFudGl0eSB7XG4gICAgICAgIEBleHRlbmQgLmNhbGwtdG8tYWN0aW9uLWNvbG9yLWJnO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygkY2FydC1xdWFudGl0eS1iYWRnZS1yYWRpdXMpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkY2FydC1xdWFudGl0eS1iYWRnZS1zaXplO1xuXG4gICAgICAgIC5jYXJ0LWJ1dHRvbi0tZW1wdHkgJiB7XG4gICAgICAgICAgICBAZXh0ZW5kIC5zZWNvbmRhcnktY29sb3ItYmc7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FydC1idXR0b246aG92ZXIgJixcbiAgICAgICAgLmNhcnQtYnV0dG9uLS1oaWdobGlnaHRlZCAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6ICRob3Zlci1iZy10ZXh0LWNvbG9yO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDNweCAzcHggcmdiYSgwLCAwLCAwLCAuMSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAyMDBtcyBlYXNlKTtcbiAgICB9XG5cbiAgICAuaWNvbi1sYXJnZXItdGhhbjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWNoZXZyb24tcmlnaHQpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbiB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzNyk7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja291dC1idXR0b24ge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNpemUocmVtLWNhbGMoMTApKTtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjYWxsLXRvLWFjdGlvbi1jb2xvciwgdHJ1ZSk7XG4gICAgICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRidXR0b24tc2l6ZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FydC1pY29uOmJlZm9yZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC05cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FydC1idXR0b24tLWVtcHR5IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAuY2FydC1idXR0b25fX3N1bSxcbiAgICAgICAgLmNhcnQtYnV0dG9uX19jdXJyZW5jeSxcbiAgICAgICAgfiAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJ0X19pY29uLWNhcnQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuMXJlbTtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b25fX3RleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5jYXJ0X19pY29uLXByb2NlZGUgIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JHNtYWxsLXBsdXMtdXB9IHtcbiAgICAgICAgLmNhcnQtYnV0dG9uX19zdW0sXG4gICAgICAgIC5jYXJ0LWJ1dHRvbl9fY3VycmVuY3kge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufSIsIiRjYXJ0LXF1YW50aXR5LWJhZGdlLW9mZnNldDogNHB4O1xuXG5AbWl4aW4gY2FydC1idXR0b24tc2ltcGxlKCkge1xuXG4gICAgLmNhcnQtYW5kLWNoZWNrb3V0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtI3skY2FydC1xdWFudGl0eS1iYWRnZS1vZmZzZXR9O1xuICAgICAgICByaWdodDogLSN7JGNhcnQtcXVhbnRpdHktYmFkZ2Utb2Zmc2V0fTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICBsaW5lLWhlaWdodDogJGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkY2FydC1xdWFudGl0eS1iYWRnZS1zaXplO1xuICAgICAgICBAaW5jbHVkZSByYWRpdXMoMCk7XG4gICAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgICBAZXh0ZW5kIC5jYWxsLXRvLWFjdGlvbi1jb2xvci1iZztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IC45O1xuXG4gICAgICAgIC5jYXJ0LWJ1dHRvbi0tZW1wdHkgJiB7XG4gICAgICAgICAgICBAZXh0ZW5kIC5zZWNvbmRhcnktY29sb3ItYmc7XG4gICAgICAgICAgICBvcGFjaXR5OiAuOTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJ0LWJ1dHRvbjpob3ZlciAmLFxuICAgICAgICAuY2FydC1idXR0b24tLWhpZ2hsaWdodGVkICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogJGhvdmVyLWJnLXRleHQtY29sb3I7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIC4xKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDIwMG1zIGVhc2UpO1xuICAgIH1cblxuICAgIC5pY29uLWxhcmdlci10aGFuOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItY2hldnJvbi1yaWdodCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTNweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX19pY29uOmJlZm9yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b25fX3RleHQsXG4gICAgLmNhcnQtYnV0dG9uX19zdW0sXG4gICAgLmNhcnQtYnV0dG9uX19jdXJyZW5jeSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmNhcnQtYW5kLWNoZWNrb3V0IC5jaGVja291dC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufSIsIiRjaGVja291dC1zbWFsbC1zcGFjaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kY2hlY2tvdXQtbWVkaXVtLXNwYWNpbmc6IHJlbS1jYWxjKDMwKSAhZGVmYXVsdDtcbiRjaGVja291dC1sYXJnZS1zcGFjaW5nOiByZW0tY2FsYyg2OSkgIWRlZmF1bHQ7XG5cbiRjaGVja291dC1zdGVwcy1jb250YWluZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQGlmICgkY2hlY2tvdXQtc3RlcHMtY29udGFpbmVyLXJhZGl1cyA+IDApIHtcbiAgICAkY2hlY2tvdXQtc3RlcHMtaW5uZXItY29udGFpbmVyLXJhZGl1czogJGNoZWNrb3V0LXN0ZXBzLWNvbnRhaW5lci1yYWRpdXMgLSAycHg7XG59IEBlbHNlIHtcbiAgICAkY2hlY2tvdXQtc3RlcHMtaW5uZXItY29udGFpbmVyLXJhZGl1czogJGNoZWNrb3V0LXN0ZXBzLWNvbnRhaW5lci1yYWRpdXM7XG59XG5cbiRlZGl0LXN0ZXAtYnRuLWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLyBVc2UgcmVndWxhciBncmlkIG1hcmdpbnMgZm9yIHRoZSBjaGVja291dCBmb3JtIGdyaWRcbiNrYXNzZV9vbmVfZm9ybSxcbiNrYXNzZV9vbmVfbG9nZ2lubiB7XG4gICAgLnJvdyAucm93IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOiBuZXN0KTtcblxuICAgICAgICAuY29sdW1uLFxuICAgICAgICAuY29sdW1ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBaZWJyYSB0YWJsZSBzdHlsaW5nXG4ja2Fzc2Vfb25lX2Zvcm0gLnplYnJhIHtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ja2Fzc2Vfb25lX2Zvcm0gLnplYnJhIHRyOmxhc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5jaGVja291dF9fc3RlcHMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja291dC1zdGVwcy1iZztcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGNoZWNrb3V0LXN0ZXBzLWNvbnRhaW5lci1yYWRpdXM7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xufVxuXG4vKiBFTklSTyBzZWFyY2ggKi9cblxuI2VuaXJvX2ZldGNoIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbiNlbmlyb19vcHRpb25zLFxuI2VuaXJvX21lc3NhZ2UsXG4jY2xpZW50X29wdGlvbnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNlbmlyb19tZXNzYWdlIHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbiNlbmlyb19vcHRpb25zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG59XG5cbi5jYXJ0LWNvbnRlbnRzIC5taW5pLWltZyB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG59XG5cbi5taW5pLWltZyBpbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIGJ1dHRvbnMgKi9cblxuLmJ1dHRvbiAuYXJyb3cge1xuICAgIHBhZGRpbmctbGVmdDogLjRyZW07XG59XG5cbi5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgIGJ1dHRvbixcbiAgICAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbmEuZGlhbG9nX3RyaWdnZXIsXG5hLmRpYWxvZ190cmlnZ2VyOmxpbmssXG5hLmRpYWxvZ190cmlnZ2VyOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICAuZGlhbG9nLXBvcHVwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIH1cbn1cblxuLmRpYWxvZy1wb3B1cCBoMiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmRpYWxvZy1wb3B1cCB7XG4gICAgLmthc3NlX29uZV9sb2dnaW5uX2Vycm9yIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICAuZm9ybV9zdWJtaXQge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgICB9XG5cbiAgICAuZm9yZ290X3Bhc3N3ZCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbn1cblxuLmFkZG9uX2J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkY2hlY2tvdXQtc21hbGwtc3BhY2luZztcbiAgICBjbGVhcjogYm90aDtcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcblxuICAgIC5lZGl0X3N0ZXAge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgJi50b2dnbGVkIC5pY29uLWFkZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKC0xMzVkZWcpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pY29uLWFkZCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDAuM3MgZWFzZSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMGRlZykpO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcC0taW5hY3RpdmUgJiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ubmV4dC1zdGVwLWJ0biB7XG4gICAgJi5idXR0b24ge1xuICAgICAgICBAZXh0ZW5kICVjb250ZW50X19wcmltYXJ5LWNvbG9yLWJnO1xuICAgIH1cblxuICAgIC5pY29uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC41ZW07XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N0ZXAgI2NsaWVudF9mZXRjaCB7XG4gICAgQGV4dGVuZCAlY29udGVudF9fcHJpbWFyeS1jb2xvci1iZztcbn1cblxuLmVkaXRfc3RlcCxcbi5tYXJrZXJfZWRpdF9zdGVwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBwYWRkaW5nOiAwIC41ZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGVkaXQtc3RlcC1idXR0b24tYmc7XG4gICAgY29sb3I6ICRlZGl0LXN0ZXAtYnV0dG9uLXRleHQtY29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRlZGl0LXN0ZXAtYnRuLWJvcmRlci1yYWRpdXM7XG4gICAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4ucGx1cy1pY29uIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmVkaXRfc3RlcDpsaW5rLFxuLmVkaXRfc3RlcDp2aXNpdGVkIHtcbiAgICBjb2xvcjogJGVkaXQtc3RlcC1idXR0b24tdGV4dC1jb2xvcjtcbn1cblxuLmNoZWNrb3V0IHtcbiAgICAuY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlOmhvdmVyIC5lZGl0X3N0ZXAsXG4gICAgLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSAuZWRpdF9zdGVwOmZvY3VzLFxuICAgIC5lZGl0X3N0ZXA6aG92ZXIsXG4gICAgLmVkaXRfc3RlcDpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlZGl0LXN0ZXAtaG92ZXItYmc7XG4gICAgICAgIGNvbG9yOiAkZWRpdC1zdGVwLWhvdmVyLXRleHQtY29sb3I7XG4gICAgfVxufVxuXG4uZWRpdF9zdGVwOmhvdmVyIC5wbHVzLWljb24ge1xuICAgIGNvbG9yOiAkZWRpdC1zdGVwLWhvdmVyLXRleHQtY29sb3I7XG59XG5cbi5lZGl0X3N0ZXAge1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW46IDE5cHggJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmcgMCAwO1xufVxuXG4ubWFya2VyX2VkaXRfc3RlcCB7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogLTRweDtcbn1cblxuI3Byb2dyZXNzLWxpc3QgLmNvbXBsZXRlIC5tYXJrZXJfZWRpdF9zdGVwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG59XG5cbmlucHV0LmNoZWNrb3V0X19xdHkge1xuICAgIHdpZHRoOiAzcmVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLy8gVXBkYXRlIGNhcnQgYnV0dG9uXG5cbi5jaGVja291dF9fdXBkYXRlLWNhcnQtYnRuIHtcbiAgICAuY2hlY2tvdXRfX3VwZGF0ZS1jYXJ0LWJ0bl9fdXBkYXRlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fdXBkYXRlLWNhcnQtYnRuX19sb2FkaW5nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5jaGVja291dF9fdXBkYXRlLWNhcnQtYnRuOmRpc2FibGVkIHtcbiAgICAuY2hlY2tvdXRfX3VwZGF0ZS1jYXJ0LWJ0bl9fdXBkYXRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3VwZGF0ZS1jYXJ0LWJ0bl9fbG9hZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG59XG5cbi8vIFVwZGF0ZSBjYXJ0IGJ1dHRvbiBhbmltYXRpb25cbi5lbGxpcHNpc19vbmUsXG4uZWxsaXBzaXNfdHdvLFxuLmVsbGlwc2lzX3RocmVlIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbihlbGxpcHNpcyAwLjlzIGluZmluaXRlKTtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMHMpO1xufVxuXG4uZWxsaXBzaXNfdHdvIHtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC4ycyk7XG59XG5cbi5lbGxpcHNpc190aHJlZSB7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuM3MpO1xufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMoZWxsaXBzaXMpIHtcbiAgICAgIDAlIHsgb3BhY2l0eTogMDsgfVxuICAgICA1MCUgeyBvcGFjaXR5OiAwOyB9XG4gICAgMTAwJSB7IG9wYWNpdHk6IDE7IH1cbn1cblxuLmRpYWxvZy1wb3B1cCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4uZGlhbG9nLXBvcHVwIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLm1zZ2JveCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwYWRkaW5nOiAxZW0gMWVtIDFlbSAxZW07XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1zZ2JveC1iZztcbiAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkICRtc2dib3gtYm9yZGVyLWNvbG9yO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcblxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgcGFkZGluZzogMCAyZW0gMCAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4ubXNnYm94X19jbG9zZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjEpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkbXNnYm94LWNsb3NlLXRleHQtY29sb3I7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJG1zZ2JveC1jbG9zZS1zaGFkb3ctY29sb3I7XG4gICAgb3BhY2l0eTogMC4yO1xuICAgIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50IWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cblxuLmNoZWNrb3V0X19zdGVwIHtcbiAgICBwYWRkaW5nLXRvcDogLjVlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAkY29udGVudC1iZztcbn1cblxuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSB7XG4gICAgcGFkZGluZy10b3A6IDA7XG59XG5cbiNqcy1jaGVja291dHN0ZXBfX292ZXJ2aWV3IC5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNqcy1jaGVja291dHN0ZXBfX292ZXJ2aWV3LFxuI2pzLWNoZWNrb3V0c3RlcF9fcGF5bWV0aG9kIHtcbiAgICAuanMtdG9nZ2xlLXZpc2liaWxpdHkuZWRpdF9zdGVwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3RlcCB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRjaGVja291dC1zdGVwcy1pbm5lci1jb250YWluZXItcmFkaXVzICRjaGVja291dC1zdGVwcy1pbm5lci1jb250YWluZXItcmFkaXVzIDAgMDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgJGNoZWNrb3V0LXN0ZXBzLWlubmVyLWNvbnRhaW5lci1yYWRpdXMgJGNoZWNrb3V0LXN0ZXBzLWlubmVyLWNvbnRhaW5lci1yYWRpdXM7XG4gICAgfVxufVxuXG5cbi8qIEluYWN0aXZlIHN0ZXAgc3R5bGVzICovXG5cbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6ICRjaGVja291dC1zdGVwLWluYWN0aXZlLWJnO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXBfX21pcnJvcixcbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZS52YWxpZCAuY2hlY2tvdXRfX3N0ZXBfX21pcnJvciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbiNqcy1jaGVja291dHN0ZXBfX2FkZHJlc3Mge1xuICAgIGgyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG4gICAgLmNoZWNrb3V0X19zdGVwX19taXJyb3Ige1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgcGFkZGluZzogMCAkY2hlY2tvdXQtc21hbGwtc3BhY2luZztcbiAgICBjbGVhcjogYm90aDtcbn1cblxuI2thc3NlX29uZV9sb2dpbl9xdWVzdGlvbixcbiN3ZWxjb21lX21zZyxcbiN3ZWxjb21lX21zZy0tdHJ1ZSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbn1cblxuI2thc3NlX29uZV9sb2dpbl9xdWVzdGlvbiBwLnN1YnRsZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmthc3NlX29uZV9sb2dnaW5uX2Vycm9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlIGgyIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBjb2xvcjogcmdiYSgkY29udGVudC10ZXh0LWNvbG9yLCAwLjgpO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXBfX21pcnJvciB7XG4gICAgY29sb3I6ICM4ODg7XG4gICAgcGFkZGluZzogMCAkY2hlY2tvdXQtc21hbGwtc3BhY2luZyAxLjVlbSAkY2hlY2tvdXQtbGFyZ2Utc3BhY2luZztcbiAgICBmb250LXNpemU6IDEzcHg7XG5cbiAgICBoMyB7XG4gICAgICAgIG1hcmdpbjogMCAwIC41ZW0gMDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cbn1cblxuLm1pcnJvcl9fZmlyc3QtbmFtZSxcbi5taXJyb3JfX2xhc3QtbmFtZSxcbi5taXJyb3JfX3ppcCxcbi5taXJyb3JfX2NpdHkge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbn1cblxuXG4vKiBlbmQgaW5hY3RpdmUgc3RlcCBzdHlsZXMgKi9cblxuLyogZnJlaWdodCBvcHRpb25zICovXG5cbi5mcmVpZ2h0LW9wdGlvbnMsXG4ucGF5bWVudC1vcHRpb25zIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuICAgIC5mcmVpZ2h0LW9wdGlvbixcbiAgICAucGF5bWVudC1vcHRpb24ge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBAZXh0ZW5kIC5ib3JkZXJlZC0tYm90dG9tO1xuICAgICAgICBAZXh0ZW5kICVjb250ZW50X19ib3JkZXJlZDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYXltZW50LW9wdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgJiA+ICoge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxZW0gMCAxZW0gMDtcblxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucGF5bWVudC1vcHRpb25fX3ByaWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi50ZXN0IHtcbiAgICAgICAgICAgIC5wYXltZW50LW9wdGlvbl9fbmFtZTo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItd2FybmluZyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRhbGVydC1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZyZWlnaHQtb3B0aW9uIHtcblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFlbSA1cHggMWVtICRjaGVja291dC1tZWRpdW0tc3BhY2luZztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXRbdHlwZT1yYWRpb10ge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZnJlaWdodC1vcHRpb25fX25hbWUge1xuICAgICAgICB3aWR0aDogNjIlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLmZyZWlnaHQtb3B0aW9uX19wcmljZSB7XG4gICAgICAgIHdpZHRoOiAyOSU7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgLmZyZWlnaHQtb3B0aW9uX19kZXNjLFxuICAgIC5wYXltZW50LW9wdGlvbl9fZGVzYyxcbiAgICAuYXR0cmlidXRlIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjOTk5LCAkY29udGVudC1iZywgMik7XG4gICAgICAgIHBhZGRpbmc6IC41ZW0gODBweCAuNWVtIDNweDtcbiAgICB9XG5cbiAgICAuZnJlaWdodC1vcHRpb25fX2Rlc2Mge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5hdHRyaWJ1dGUge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5wYXltZW50LW9wdGlvbl9fbmFtZSB7XG4gICAgICAgIHdpZHRoOiA0MCU7XG4gICAgfVxuXG4gICAgLnBheW1lbnQtb3B0aW9uX19pbnB1dC13cmFwIHtcbiAgICAgICAgd2lkdGg6ICRjaGVja291dC1tZWRpdW0tc3BhY2luZztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG5cbiAgICAgICAgLnJlbW92ZV9naWZ0Y2FyZCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGF5bWVudC1vcHRpb25fX3ByaWNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICB9XG5cbi8qIGVuZCBmcmVpZ2h0IG9wdGlvbnMgKi9cblxuXG4vKiBlZGl0IHN0ZXAgYnV0dG9uICovXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlLnZhbGlkIC5lZGl0X3N0ZXAge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaXMtdG9nZ2xlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ua2Fzc2VfbWFpbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5jaGVja291dF9fc3RlcF9faGVhZGxpbmUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBtYXJnaW46IDE2cHggMDtcbiAgICBwYWRkaW5nOiAwIDEwcHggMCAwO1xuICAgIGNsZWFyOiByaWdodDtcbiAgICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUge1xuICAgICYudmFsaWQge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgLmthc3NlX29uZV9zdGVwX251bWJlciB7XG4gICAgICAgICAgICBAZXh0ZW5kICVjb250ZW50X19wcmltYXJ5LWNvbG9yLWJnO1xuICAgICAgICB9XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi5rYXNzZV9vbmVfc3RlcF9udW1iZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMjhweDtcbiAgICB3aWR0aDogMjhweDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgei1pbmRleDogMTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHN0ZXAtbnVtYmVyLWJnO1xuICAgIG1hcmdpbjogMTZweCAkY2hlY2tvdXQtc21hbGwtc3BhY2luZyA4cHggJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmc7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogJHN0ZXAtbnVtYmVyLXRleHQtY29sb3I7XG59XG5cbmJ1dHRvbi5yZW1vdmVfZ2lmdGNhcmQsXG5idXR0b24ucmVtb3ZlX3JhYmF0dCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbi1sZWZ0OiAuNWVtO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJixcbiAgICAmOmxpbmssXG4gICAgJjp2aXNpdGVkLFxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYWxlcnQtY29sb3IsICRjb250ZW50LWJnKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG4ua2Fzc2Vfb25lX3N0ZXBfbnVtYmVyLS1pbmZvIHtcbiAgICBmb250LWZhbWlseTogR2VvcmdpYSwgJ1RpbWVzIE5ldyBSb21hbicsIFRpbWVzLCBzZXJpZjtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbiNrYXNzZV9vbmVfZm9ybSBsYWJlbC5lcnJvciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29sb3I6ICNiOTRhNDg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAuNWVtO1xufVxuXG4ja2Fzc2Vfb25lX3BvcHVwX2FyZWEge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDozMjBweDtcbiAgICAvKmhlaWdodDogICAxNTVweDsqL1xuICAgIHBhZGRpbmc6MTVweDtcbiAgICBtYXJnaW46MWVtIDAgMCAwO1xuICAgIGNvbG9yOiMwMDA7XG4gICAgYmFja2dyb3VuZDojZmZmZmZmOyAvKiBkZWZhdWx0IGJhY2tncm91bmQgZm9yIGJyb3dzZXJzIHdpdGhvdXQgZ3JhZGllbnQgc3VwcG9ydCAqL1xuICAgIC8qIGNzczMgKi9cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQoI2ZmZiwgI2YxZjFmMSk7XG4gICAgYm9yZGVyLXJhZGl1czoxMHB4O1xuICAgIGJvcmRlci1zdHlsZTpzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6MXB4O1xuICAgIGJvcmRlci1jb2xvcjojY2JjYmNiO1xufVxuXG4ja2Fzc2Vfb25lX3BvcHVwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMDI7XG59XG5cbiNrYXNzZV9vbmVfcG9wdXBfYXJlYSBzcGFuIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmZyYWt0X3dyYXBwZXIsXG4ucGF5bWVudF93cmFwcGVyLFxuLnBheW1lbnRfd3JhcHBlciA+IGxhYmVsLmVycm9yLFxuLmZyYWt0X3dyYXBwZXIgPiBsYWJlbC5lcnJvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4ja2Fzc2Vfb25lX29yZHJlX292ZXJzaWt0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcblxuICAgIHRyOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG4uc3VidGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbiNrYXNzZV9vbmVfZm9ybSAuc3VidGF4ZXMge1xuICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuI3dlbGNvbWVfbXNnIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uaGFzUGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjYmJiO1xufVxuXG4ubWluaS1pbWcge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5sYWJlbFtmb3I9XCJram9wc2JldFwiXSBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogaGVscDtcbiAgICB9XG59XG5cbmxhYmVsW2Zvcj1cImtqb3BzYmV0XCJdIGEgYiB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxudGFibGUubGluZWQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgcGFkZGluZzogNXB4IDdweDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggZG90dGVkICR0YWJsZS1zdWJ0bGUtYm9yZGVyLWNvbG9yO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGVhZCB0aCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIHRib2R5IHtcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCAkdGFibGUtc3VidGxlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0Zm9vdCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc3VtIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDNweCBkb3VibGUgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbn1cblxuLmNvbnRyb2wtZ3JvdXAge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiAxMik7XG5cbiAgICAucm93LmNvbGxhcHNlID4gJiB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3VtLXRvby1zbWFsbF9fZXJyb3Jtc2cge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAuY2hlY2tvdXRfX3N1bS10b28tc21hbGwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdW0tdG9vLXNtYWxsIHtcbiAgICAuY2hlY2tvdXRfX3N1bS10b28tc21hbGxfX2Vycm9ybXNnIHtcbiAgICAgICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLXVwfSB7XG4gICAgLmNvbnRyb2wtZ3JvdXAge1xuICAgICAgICB3aWR0aDogZ3JpZC1jYWxjKDEwLCAkdG90YWwtY29sdW1ucyk7XG4gICAgfVxuXG4gICAgLmFkZG9uX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGNsZWFyOiByaWdodDtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAuYWRkb25fYnV0dG9ucyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjaGVja291dC1tZWRpdW0tc3BhY2luZztcbiAgICB9XG5cbiAgICAuY2FydC1jb250ZW50cyAubWluaS1pbWcge1xuICAgICAgICBwYWRkaW5nOiA1cHggN3B4O1xuICAgIH1cblxuICAgIC5taW5pLWltZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICAgICAgcGFkZGluZzogMCAkY2hlY2tvdXQtbWVkaXVtLXNwYWNpbmcgMCAkY2hlY2tvdXQtbGFyZ2Utc3BhY2luZztcbiAgICB9XG5cbiAgICAuY29udHJvbC1ncm91cCB7XG4gICAgICAgIHdpZHRoOiBncmlkLWNhbGMoMTIsICR0b3RhbC1jb2x1bW5zKTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtbG9naW4ge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICAgICAgLm5leHQtc3RlcC1idG4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNpemU7XG4gICAgICAgICAgICAuYXJyb3cge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX21pcnJvciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGNoZWNrb3V0LWxhcmdlLXNwYWNpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjaGVja291dC1tZWRpdW0tc3BhY2luZztcbiAgICB9XG5cbiAgICAjanMtY2hlY2tvdXRzdGVwX19hZGRyZXNzLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZS52YWxpZCB7XG4gICAgICAgIC5jaGVja291dF9fc3RlcF9fbWlycm9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19taXJyb3JfX2FkZHJlc3Mge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5mcmVpZ2h0LW9wdGlvbiB7XG4gICAgICAgIGlucHV0W3R5cGU9cmFkaW9dIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyxcbiAgICAuY2hlY2tvdXRfX3N0ZXBfX21pcnJvcixcbiAgICAuYWRkb25fYnV0dG9ucyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjaGVja291dC1sYXJnZS1zcGFjaW5nO1xuICAgIH1cbn0iLCJAaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3JldmVhbFwiO1xuLy9AaW1wb3J0IFwicXVpY2tmaXgvZnVuY3Rpb25zL3Nhc3Mtc3ZnXCI7IHRoaXMgZG9lcyBub3Qgd29yayBvbiBzYXNzYyBvbiBvdXIgc2VydmVyLCB1c2UgaXQgd2hlbiB5b3UgbmVlZCB0byBjaGFuZ2UgdGhlIGJhc2U2NCBzdHJpbmcgYnkgaGFuZFxuXG4kY2hlY2tvdXQta2NvLWZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCAnT3h5Z2VuJywgJ1VidW50dScsICdDYW50YXJlbGwnLCAnRmlyYSBTYW5zJywgJ0Ryb2lkIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmc6IC41cmVtIC43NXJlbSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tcXR5LWhlaWdodDogMnJlbSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tcm93LWhlaWdodDogJGNoZWNrb3V0LWtjby1xdHktaGVpZ2h0ICsgbnRoKCRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nLCAxKSAqIDI7XG4kY2hlY2tvdXQta2NvLWNhcnQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLWNhcnQtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tYXR0cmlidXRlLWZsYWctc2l6ZTogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuXG4kY2hlY2tvdXQta2NvLWtsYXJuYS1mb2N1cy1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoIzAwODljZiwgJGNvbnRlbnQtYmcpICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby10aHVtYi1oZWlnaHQ6ICRjaGVja291dC1rY28tY2FydC1mb250LXNpemUgKiAkY2hlY2tvdXQta2NvLWNhcnQtbGluZS1oZWlnaHQgKyBudGgoJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmcsIDEpICogMjtcbiRjaGVja291dC1rY28tdHJhbnNpdGlvbi1kdXJhdGlvbjogNjAwbXMgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1vdmVybGF5LWJnOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LWJnLCAkY29udGVudC1iZywgNSksIDAuNSkgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLW92ZXJsYXktY29sb3I6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNoZWNrb3V0LWtjby1vdmVybGF5LWJnLCAkY2hlY2tvdXQta2NvLW92ZXJsYXktYmcsIDIxKSwgMSkgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLWJvcmRlci1jb2xvcjogcmdiYSgkY29udGVudC10ZXh0LWNvbG9yLCAwLjIpICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1kaXNjb3VudF9fcmF0ZV9zdHlsZTogJ3RyYW5zcGFyZW50JyAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tYWN0aXZlLWJvcmRlci1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tcmFkaW8tc2l6ZTogMTRweCAhZGVmYXVsdDtcblxuLy8gUmVhbCBjZWxsIHBhZGRpbmc6IFNpemUgb2YgdGhlIGJpZ2dlc3QgZWxlbWVudCBwbHVzIGNlbGwgcGFkZGluZyBtaW51cyBib3JkZXIgc2l6ZSwgbWludXMgc2l6ZSBvZiB0ZXh0LCBkaXZpZGVkIGJ5IHR3b1xuJGNoZWNrb3V0LWtjby1yZWFsLWNlbGwtcGFkZGluZzogKCRjaGVja291dC1rY28tcXR5LWhlaWdodCArIG50aCgkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZywgMSkgKiAyIC0gcmVtLWNhbGMoMikgLSAkY2hlY2tvdXQta2NvLWNhcnQtZm9udC1zaXplICogJGNoZWNrb3V0LWtjby1jYXJ0LWxpbmUtaGVpZ2h0KS8yIG50aCgkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZywgMikgLSByZW0tY2FsYygxKTtcblxuLy8gVmFyaWFibGVzIHVzZWQgdG8gY29tcGVuc2F0ZSBmb3IgcGFkZGluZy9tYXJnaW4gaW5zaWRlIEtDTyBpZnJhbWVcbiRrY28tcGFkZGluZzogMjBweCAxMnB4IDIwcHggMTJweDtcbiRrY28tbWF4LXdpZHRoOiA2NDBweDtcblxuXG4kc2VsZWN0LWlucHV0LWJnOiAkc2VsZWN0LWJnLWNvbG9yICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1ib3JkZXItcmFkaXVzOiAzcHggIWRlZmF1bHQ7XG4kc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1jb2xvcjogJGlucHV0LWZvbnQtY29sb3I7XG4kc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1iZzogJHNlbGVjdC1iZy1jb2xvcjtcbiRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkc2VsZWN0LWlucHV0LWJnLCAyKSAhZGVmYXVsdDtcbiRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKHdoaXRlLCAkc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWJnLCAzKTtcbiRzZWxlY3QtaW5wdXQtYm9yZGVyLXdpZHRoOiAwcHg7XG5cbkBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdFwiO1xuXG5AbWl4aW4gYWN0aXZpdHktaW5kaWNhdG9yKCRhY3Rpdml0eS1jb2xvcjogJGNvbnRlbnQtYmcsICRhY3Rpdml0eS1iZzogJGFjdGl2aXR5LWNvbG9yKSB7XG5cbiAgICAvKiBXZSBjYW5ub3QgcnVuIHRoaXMgdXNpbmcgc2Fzc2MgeWV0XG4gICAgQGluY2x1ZGUgc3ZnKChcbiAgICAgICAgdmlld0JveDogMCAwIDI0IDI0XG4gICAgICApKSB7XG4gICAgICAgIEBpbmNsdWRlIHN2ZygnZGVmcycpIHtcbiAgICAgICAgICBAaW5jbHVkZSBzdmcoJ3JhZGlhbEdyYWRpZW50JywgKFxuICAgICAgICAgICAgY3g6ICcyNSUnLFxuICAgICAgICAgICAgY3k6ICcyNSUnLFxuICAgICAgICAgICAgaWQ6ICdhJ1xuICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzdmcoJ3N0b3AnLCAoXG4gICAgICAgICAgICAgICAgICBzdG9wLWNvbG9yOiAkYWN0aXZpdHktY29sb3IsXG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6ICcxMCUnXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3ZnKCdzdG9wJywgKFxuICAgICAgICAgICAgICAgICAgc3RvcC1jb2xvcjogJGFjdGl2aXR5LWNvbG9yLFxuICAgICAgICAgICAgICAgICAgc3RvcC1vcGFjaXR5OiAwLjEsXG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6ICcxMDAlJ1xuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgc3ZnKCdjaXJjbGUnLCAoXG4gICAgICAgICAgICBmaWxsOiBub25lLFxuICAgICAgICAgICAgY3g6IDEyLFxuICAgICAgICAgICAgY3k6IDEyLFxuICAgICAgICAgICAgcjogMTAsXG4gICAgICAgICAgICAvL3N0cm9rZS13aWR0aDogMixcbiAgICAgICAgICAgIHN0cm9rZTogXCJ1cmwoI2EpXCJcbiAgICAgICAgKSk7XG4gICAgICB9XG4gICAgICAvLyovXG4gICAgICAkY29sb3I6IHN0ci1zbGljZShpZS1oZXgtc3RyKCRhY3Rpdml0eS1jb2xvciksIDQpO1xuICAgICAgJGJnOiBzdHItc2xpY2UoaWUtaGV4LXN0cigkYWN0aXZpdHktYmcpLCA0KTtcbiAgICAgIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dyUyRXczJTJFb3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ2RlZnMlMjAlM0UlM0NyYWRpYWxHcmFkaWVudCUyMGN4JTNEJTIyMjUlMjUlMjIlMjBjeSUzRCUyMjI1JTI1JTIyJTIwaWQlM0QlMjJhJTIyJTNFJTNDc3RvcCUyMHN0b3AlMkRjb2xvciUzRCUyMiUyMyN7JGNvbG9yfSUyMiUyMG9mZnNldCUzRCUyMjEwJTI1JTIyJTJGJTNFJTNDc3RvcCUyMHN0b3AlMkRjb2xvciUzRCUyMiUyMyN7JGJnfSUyMiUyMHN0b3AlMkRvcGFjaXR5JTNEJTIyMCUyRTElMjIlMjBvZmZzZXQlM0QlMjIxMDAlMjUlMjIlMkYlM0UlM0MlMkZyYWRpYWxHcmFkaWVudCUzRSUzQyUyRmRlZnMlM0UlM0NjaXJjbGUlMjBmaWxsJTNEJTIybm9uZSUyMiUyMGN4JTNEJTIyMTIlMjIlMjBjeSUzRCUyMjEyJTIyJTIwciUzRCUyMjEwJTIyJTIwc3Ryb2tlJTNEJTIydXJsJTI4JTIzYSUyOSUyMiUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cblxuJXRhYnVsYXItbnVtcyB7XG4gICAgLy8gdGFidWxhciBudW1iZXIgc3BhY2luZyBtYWtlcyBudW1iZXJzIGVhc2llciB0byByZWFkIGluIHRhYmxlc1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgLW1vei1mb250LWZlYXR1cmUtc2V0dGluZ3M6IFwidG51bVwiO1xuICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInRudW1cIjtcbiAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwidG51bVwiO1xufVxuXG4lZGVjb3JhdGVkLXJhZGlvIHtcbiAgICAkY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgc3BhbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJy4nO1xuICAgICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0oJGNoZWNrb3V0LWtjby1yYWRpby1zaXplLzIpO1xuICAgICAgICAgICAgbGVmdDogLSgoKCRjb2x1bW4tZ3V0dGVyKSArIHJlbS1jYWxjKCRjaGVja291dC1rY28tcmFkaW8tc2l6ZSkpLzIpO1xuICAgICAgICAgICAgd2lkdGg6ICRjaGVja291dC1rY28tcmFkaW8tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNoZWNrb3V0LWtjby1yYWRpby1zaXplO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwMHB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuMDUsIDAuMzYsIDEpKTtcbiAgICAgICAgfVxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC44KSk7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGJsYWNrIDAgMCAxcHgsIGluc2V0IGJsYWNrIDAgMCAxcHg7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgc3BhbiB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxKSk7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC40KSk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBoc2xhKDAsIDAlLCAwJSwgMCkgMCAwIDFweCwgaW5zZXQgaHNsYSgwLCAwJSwgMCUsIDApIDAgMCAxcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdW2Rpc2FibGVkXSArIHNwYW4gJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShncmF5c2NhbGUoJGNvbG9yKSwgd2hpdGUpO1xuICAgIH1cbn1cblxuZm9ybTppbnZhbGlkIHtcbiAgICAuanMta2Fzc2Utb25lLXN1Ym1pdCB7XG4gICAgICAgICRiZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoZ3JheSwgJGNvbnRlbnQtYmcpO1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoZ3JheSwgJGJnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAgICAgICAvKiBJRS9FZGdlICovXG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N0ZXAtLXNoaXBwaW5nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbn1cbi5mcmVpZ2h0LS1waWNrdXAtcG9pbnQge1xuICAgIGNsZWFyOiBib3RoO1xufVxuLlNlbGVjdC1jb250cm9sIHtcbiAgICAvLyBAVE9ETyByZXVzZSBvdXIgdmFyaWFibGVzIHNvIGl0IHdvcmtzIGluIGFsbCB0aGVtZXMgYW5kIGFueSBjb25maWcgbGlrZSA8c2VsZWN0PlxuICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAxcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LWJvcmRlci1jb2xvciAwIDAgMCAxcHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogJGlucHV0LWJvcmRlci1jb2xvciAwIDAgMCAxcHgsIGhzbGEoMCwgMCUsIDAlLCAuMSkgMCA1cHggMTBweDtcbiAgICB9XG59XG4uU2VsZWN0LW9wdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNmVtO1xufVxuLlNlbGVjdC1vcHRpb24uaXMtc2VsZWN0ZWQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiAn4pyTJztcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogcmVtLWNhbGMoOHB4KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMS42ZW07XG59XG4uU2VsZWN0LW9wdGlvbi5pcy1zZWxlY3RlZDpob3ZlciB7XG4gICAgY29sb3I6ICRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1iZztcbn1cbi5TZWxlY3QtbWVudS1vdXRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbn1cbi5TZWxlY3QtbWVudSB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LWJvcmRlci1jb2xvciAwIDAgMCAxcHgsIGhzbGEoMCwgMCUsIDAlLCAuMSkgMCA1cHggMTBweDtcbn1cblxuLmNoZWNrb3V0LS1rY28gLmpzLWF0dGFjaF9jb21tZW50IHtcblxuICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItYWRkKTtcbiAgICB9XG59XG5cbiNrbGFybmEtY2hlY2tvdXQtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiAka2NvLW1heC13aWR0aCArIG50aCgka2NvLXBhZGRpbmcsIDIpICsgbnRoKCRrY28tcGFkZGluZywgNCk7IC8vIG1heCB3aWR0aCArIHNpZGUgcGFkZGluZ3NcbiAgICBAaWYgJGNvbnRlbnQtYmcgIT0gI2ZmZiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgfVxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyAvLyBrbGFybmFzIGlmcmFtZSBpcyBhbHdheXMgd2hpdGVcbn1cblxuLmNoZWNrb3V0LS1rY29fX292ZXJsYXkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LWJnLCAkY29udGVudC1iZyk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgei1pbmRleDogMTtcblxuICAgICYsICYgKyAqIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbig1MCUgMCUpO1xuICAgIH1cblxuICAgIGVtIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogcmVtLWNhbGMoMTApO1xuICAgICAgICByaWdodDogcmVtLWNhbGMoMTApO1xuICAgIH1cbn1cblxuLmZyZWlnaHQtb3B0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBib3JkZXI6IDFweCByZ2JhKCRjaGVja291dC1rY28tYWN0aXZlLWJvcmRlci1jb2xvciwgMC42KSBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtKCRjb2x1bW4tZ3V0dGVyLzQpO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAtKCRjb2x1bW4tZ3V0dGVyLzgpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGVYKDAuOTgpIHNjYWxlWSgwLjgpKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuMDUsIDAuMzYsIDEpKTtcbiAgICB9XG4gICAgJi5hY3RpdmUge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlWCgxKSBzY2FsZVkoMSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgID4gbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIEBleHRlbmQgJWRlY29yYXRlZC1yYWRpbztcbiAgICB9XG4gICAgJi5pbmFjdGl2ZSB7XG4gICAgICAgID4gKiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICAgIH1cbiAgICB9XG59XG4ua2NvX3NoaXBwaW5nX3Nob3dfbW9yZV9vcHRpb25zIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IC41cmVtO1xuICAgIHBhZGRpbmctdG9wOiAuNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG59XG5cbi5jaGVja291dC0ta2NvX19wYXltZW50LW9wdGlvbnMsIC5jdXN0b21lci10eXBlIHtcbiAgICAuY29udHJvbC1ncm91cCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjJyZW07XG4gICAgICAgIGJveC1zaGFkb3ctYm90dG9tOiAwIDFweCAwICRjaGVja291dC1rY28tYm9yZGVyLWNvbG9yO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxNTBtcyBlYXNlKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgOmNoZWNrZWQgKyBsYWJlbCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIE92ZXJyaWRlIHN0dXBpZCBoYXJkY29kZWQgRm91bmRhdGlvbiBzdHlsaW5nXG4ucmV2ZWFsLW1vZGFsIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAxNnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnO1xuXG4gICAgLmNsb3NlLXJldmVhbC1tb2RhbCB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJGNvbnRlbnQtYmcpO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZjAwLCAkY29udGVudC1iZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgIG1pbi1oZWlnaHQ6IGluaXRpYWwhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLmNoZWNrb3V0LS1rY29fX3BhZ2UtaGVhZGVyIHtcbiAgICBmb250LWZhbWlseTogJGNoZWNrb3V0LWtjby1mb250LWZhbWlseTtcbn1cblxuLmNoZWNrb3V0LS1rY29fX2N1c3RvbS1pbnRybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICBAZXh0ZW5kIC5ib3JkZXJlZDtcbiAgICBAZXh0ZW5kIC5ib3JkZXJlZC0tYm90dG9tO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0LS1rY28ge1xuICAgIGZvbnQtZmFtaWx5OiAkY2hlY2tvdXQta2NvLWZvbnQtZmFtaWx5O1xuXG4gICAgLnByaWNlLWRpZmYge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICAgIC5jdXJyZW50LXByaWNlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvcGFjaXR5OiAwLjc1O1xuICAgIH1cbiAgICAucGVuZGluZy1wcmljZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgICAgaGVpZ2h0OiAxZW07XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19oZWFkbGluZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkY2hlY2tvdXQta2NvLWZvbnQtZmFtaWx5O1xuICAgIH1cblxuICAgICYuY2hlY2tvdXRfX3N0ZXBzIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICBAZXh0ZW5kIC5ib3JkZXJlZDtcbiAgICAgICAgQGV4dGVuZCAuYm9yZGVyZWQtLWJvdHRvbTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19ib3R0b20tdG9vbGJhciA+IC5jb2x1bW5zIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19oZWFkbGluZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjVyZW0gMDtcbiAgICAgICAgcGFkZGluZzogMCAwIC41cmVtIDA7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAua2Fzc2Vfb25lX3N0ZXBfbnVtYmVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYWRkb25fYnV0dG9ucyB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAuZWRpdF9zdGVwIHtcbiAgICAgICAgICAgICRiZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlY29uZGFyeS1jb2xvciwgJGNvbnRlbnQtYmcsIDEuMik7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWNvbmRhcnktYnV0dG9uLWJvcmRlci1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWNvbmRhcnktY29sb3IsICRiZywgNik7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBlYXNlKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgJGJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2Vjb25kYXJ5LWNvbG9yLCAkY29udGVudC1iZywgMik7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2Vjb25kYXJ5LWNvbG9yLCAkYmcsIDYpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFwcGx5IHRoZSBLQ08gc3R5bGluZywgdG8gbWFrZSB0aGluZ3MgYXBwZWFyIGxpa2UgS0NPXG4gICAgLmNoZWNrb3V0LWtjb19fYWRkcmVzcy1mb3JtIHtcbiAgICAgICAgaW5wdXQsIGJ1dHRvbiwgc2VsZWN0IHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgfVxuICAgICAgICAuY2hlY2tvdXQtLWtjb19fc2hpcHBpbmctY291bnRyeSB7XG4gICAgICAgICAgICBzZWxlY3RbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIC5idXR0b24sXG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbiAgICAuZWRpdF9zdGVwIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIH1cblxuICAgIGJ1dHRvbixcbiAgICAuYnV0dG9uLFxuICAgIGlucHV0W3R5cGU9c3VibWl0XSxcbiAgICAuZWRpdF9zdGVwIHtcbiAgICAgICAgJjpub3QoLnJlbW92ZV9yYWJhdHQpOm5vdCgucmVtb3ZlX2dpZnRjYXJkKSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkY2hlY2tvdXQta2NvLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LDAuMSksIGluc2V0IDAgLTNweCAwIHJnYmEoMCwwLDAsMC4xKSwgMCAycHggNXB4IHJnYmEoMCwwLDAsMC4xKTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDAgcmdiYSgwLDAsMCwwLjEpO1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmV4dC1zdGVwLWJ0biB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIH1cblxuICAgIC5lZGl0X3N0ZXAge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcblxuICAgICAgICAuaWNvbi1hZGQge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNnJlbTsgLyogdG8gZml4ZWQgYSBtZXNzZWQgdXAgcm90YXRlIGFuaW1hdGlvbiAqL1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTUwbXMgZWFzZSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgICAgICAgLyogSUUvRWRnZSAqL1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuICAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4gICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdIHtcbiAgICAgICAgJjpmb2N1cywgJi5mb2N1cyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY2hlY2tvdXQta2NvLWtsYXJuYS1mb2N1cy1jb2xvcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCAwIGhzbGEoMCwgMCUsIDAlLCAwLjE3KSxpbnNldCAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjA2KSwwIDAgM3B4IDFweCAkY2hlY2tvdXQta2NvLWtsYXJuYS1mb2N1cy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC56aXAge1xuICAgICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5jaGVja291dC0ta2NvX19zaGlwcGluZy16aXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEuMTI1cmVtO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBjb2xvcjogcmdiYSgkaW5wdXQtZm9udC1jb2xvciwgLjUpO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgbGVmdDogNWVtO1xuICAgICAgICBsZWZ0OiA3Y2g7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tb3JpZ2luKDkwJSA1MCUpO1xuICAgIH1cbiAgICBpbnB1dC5pbnZhbGlkOm5vdCg6Zm9jdXMpIHtcbiAgICAgICAgJGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZjAwLCAkY29udGVudC1iZyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmMDAsICRpbnB1dC1iZy1jb2xvcik7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCAwIGhzbGEoMCwgMCUsIDAlLCAwLjE3KSxpbnNldCAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjA2KSwwIDAgM3B4IDFweCAkY29sb3I7XG4gICAgfVxufVxuXG4vLyBDb21wZW5zYXRlIGZvciB0aGUgS0NPIHdpbmRvdydzIHBhZGRpbmcvbWFyZ2luXG4uY2hlY2tvdXRfX3N0ZXAtLWtjby13aW5kb3cge1xuICAgICY6b25seS1jaGlsZCB7XG4gICAgICAgIC5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmtjby1wYXltZW50LXdyYXBwZXIsIC5hbHRlcm5hdGUtcGF5bWVudC13cmFwcGVyIHtcbiAgICBtaW4taGVpZ2h0OiAzMDBweDtcbn1cbi5rY28tcGF5bWVudC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIHRvIHBvc2l0aW9uIG92ZXJsYXlcbiAgICBtYXJnaW46IC0xKm50aCgka2NvLXBhZGRpbmcsIDEpIC0xKm50aCgka2NvLXBhZGRpbmcsIDIpIC0xKm50aCgka2NvLXBhZGRpbmcsIDIpIC0xKm50aCgka2NvLXBhZGRpbmcsIDQpOyAvLyBDb21wZW5zYXRlIGZvciBrbGFybmEgd2luZG93IHBhZGRpbmdcbn1cblxuLmFsdGVybmF0ZS1wYXltZW50LXdyYXBwZXIge1xuICAgIC5jaGVja291dF9fc3RlcF9faGVhZGxpbmUge1xuICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoOSk7XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N0ZXBzLS1pY29uaXplZCB7XG4gICAgLmthc3NlX29uZV9zdGVwX251bWJlciB7XG4gICAgICAgIHdpZHRoOiAyLjVyZW07XG4gICAgICAgIGhlaWdodDogMi41cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNXB4IHJnYmEoMCwwLDAsLjUpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDdweDtcbiAgICAgICAgICAgIGxlZnQ6IDdweDtcbiAgICAgICAgICAgIHJpZ2h0OiA3cHg7XG4gICAgICAgICAgICBib3R0b206IDdweDtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cbiAgICAgICAgLmljb24tbG9hZGluZy1pbmRpY2F0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpIHtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwwLDAsLjUpO1xuICAgICAgICAgICAgY29sb3I6ICRjb250ZW50LWJnO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19oZWFkbGluZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW07XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtLWtjb19fd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgbWluLWhlaWdodDogMjEwcHg7XG4gICAgbWluLWhlaWdodDogNTB2aDtcblxuICAgIC5hY3Rpdml0eS1pbmRpY2F0b3Ige1xuICAgICAgICAkc2l6ZTogMzhweDtcbiAgICAgICAgJGJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpO1xuXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7ICAgICAgIC8qIElFL0VkZ2UgKi9cbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAzMDA7XG4gICAgICAgIGhlaWdodDogJHNpemU7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwMHB4O1xuICAgICAgICBib3gtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuNSkgMCAwIDFweCwgcmdiYSgwLCAwLCAwLCAwLjMpIDAgMnB4IDZweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIHotaW5kZXg6IDQwMDtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaXplIC8gMjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2l6ZSAvIDI7XG5cbiAgICAgICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuNikpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBjdWJpYy1iZXppZXIoLjY1LC4wNSwuMzYsMSkpO1xuXG4gICAgICAgIC5zdmcge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihhY3Rpdml0eS1yb3RhdGUgNjAwbXMgbGluZWFyIGluZmluaXRlKTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFjdGl2aXR5LWluZGljYXRvcigkY29udGVudC1iZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmICsgZGl2IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAzMDBtcyBjdWJpYy1iZXppZXIoLjY1LC4wNSwuMzYsMSkpO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtbG9hZGluZyxcbiAgICAmLmlzLXVwbG9hZGluZyB7XG4gICAgICAgIGN1cnNvcjogcHJvZ3Jlc3M7XG5cbiAgICAgICAgLmFjdGl2aXR5LWluZGljYXRvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSkpO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgICAgJiArIGRpdiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDMwMDBtcyBlYXNlLW91dCk7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAgICAgICAvKiBJRS9FZGdlICovXG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmthc3NlX29uZV9zdGVwX251bWJlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLy8gQFRPRE8gd2UgbWlnaHQgd2FudCB0byByZXVzZSB0aGlzIG90aGVyIHBsYWNlcyBpbiB0aGUgZnV0dXJlXG4uaWNvbi1sb2FkaW5nLWluZGljYXRvci5pcy1sb2FkaW5nIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgICAgd2lkdGg6IDFlbTtcbiAgICAgICAgbWFyZ2luOiAuM2VtO1xuXG4gICAgICAgIEBpbmNsdWRlIGFjdGl2aXR5LWluZGljYXRvcihhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJHN0ZXAtbnVtYmVyLWJnKSwgJGNvbnRlbnQtYmcpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBhbmltYXRpb24oYWN0aXZpdHktcm90YXRlIDYwMG1zIGxpbmVhciBpbmZpbml0ZSk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8qd2lkdGg6IDJyZW07XG4gICAgd2lkdGg6IHJlbS1jYWxjKDI0KTtcbiAgICBoZWlnaHQ6IDJyZW07XG4gICAgaGVpZ2h0OiByZW0tY2FsYygyNCk7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyNCk7XG4gICAgKi9cbn1cblxudGFibGUuY2hlY2tvdXQtLWtjb19fY2FydCB7XG5cbiAgICAvLyBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDAsMCwwLDAuMSk7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYmEoJGNvbnRlbnQtdGV4dC1jb2xvciwgMC4xKTtcblxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgICAgZm9udC1zaXplOiAkY2hlY2tvdXQta2NvLWNhcnQtZm9udC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogJGNoZWNrb3V0LWtjby1jYXJ0LWxpbmUtaGVpZ2h0O1xuICAgICAgICBwYWRkaW5nOiAkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgkY29udGVudC10ZXh0LWNvbG9yLCAwLjA1KTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wcmljZSB7XG4gICAgICAgICAgICBAZXh0ZW5kICV0YWJ1bGFyLW51bXM7XG5cbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhlYWQgdGgge1xuICAgICAgICBib3gtc2hhZG93OiAwIDNweCAwIHJnYmEoMCwwLDAsMC4wNCk7XG4gICAgICAgIHBhZGRpbmc6IC43NXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoJGNvbnRlbnQtdGV4dC1jb2xvciwgMC4wNSk7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKCNmZmYsIDAuNSk7XG4gICAgfVxuXG4gICAgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZCB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDAgcmdiYSgwLDAsMCwwLjAyKTtcbiAgICB9XG5cbiAgICB0Zm9vdC5zdW0gdGQge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgjZmZmLCAwLjUpO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiAwIDNweCAwIHJnYmEoMCwwLDAsMC4wNCk7XG4gICAgfVxuXG4gICAgLm1pbmktaW1nIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGhlaWdodDogJGNoZWNrb3V0LWtjby10aHVtYi1oZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZGlzY291bnQsXG4gICAgLnNoaXBwaW5nLFxuICAgIC5naWZ0Y2FyZCB7XG4gICAgICAgIC5taW5pLWltZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBbY2xhc3NePVwiaWNvbi1cIl0ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiBudGgoJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmcsIDIpO1xuICAgICAgICAgICAgICAgIHRvcDogMXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICB0ZXh0LWluZGVudDogbnRoKCRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nLCAyKSAqIDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZGlzY291bnRfX3JhdGUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogcmVtLWNhbGMoLTYgNiAwIDYpO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyIDUpO1xuXG4gICAgICAgIEBpZiAkY2hlY2tvdXQta2NvLWRpc2NvdW50X19yYXRlX3N0eWxlID09ICdzb2xpZCcge1xuICAgICAgICAgICAgY29sb3I6ICRjb250ZW50LWJnO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJGRpc2NvdW50X19yYXRlX2NvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY2FsbC10by1hY3Rpb24tY29sb3IsICRjb250ZW50LWJnKSAhZGVmYXVsdDtcbiAgICAgICAgICAgIGNvbG9yOiAkZGlzY291bnRfX3JhdGVfY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRkaXNjb3VudF9fcmF0ZV9jb2xvciwgMC4yNSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXR0cmlidXRlcyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIG5lY2Vzc2FyeSBmb3IgdGhlIGF0dHJpYnV0ZXMgcG9wdXBcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3F0eSB7XG4gICAgICAgIGhlaWdodDogJGNoZWNrb3V0LWtjby1xdHktaGVpZ2h0O1xuICAgICAgICBwYWRkaW5nOiAuMjVyZW0gMCAuMjVyZW0gLjI1cmVtO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBleHRlbmQgJXRhYnVsYXItbnVtcztcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgZWFzZSk7XG5cbiAgICAgICAgJi5wcmltYXJ5LWNvbG9yLWJnOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggMCBoc2xhKDAsIDAlLCAwJSwgMC4xNyksaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wNiksMCAwIDNweCAxcHggJHByaW1hcnktY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3VidGF4ZXMge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAuc2VydmljZSxcbiAgICAuZGlzY291bnQsXG4gICAgLmdpZnRjYXJkLFxuICAgIC5zaGlwcGluZyB7XG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtLWtjb19fZnJlaWdodC1wcm90aXAge1xuICAgICRiZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtYmcsICRjb250ZW50LWJnLCAxLjEpO1xuICAgICRjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJnLCAkYmcpO1xuICAgIGJvdHRvbTogMTAwJTtcblxuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogLTAuNXJlbTtcbiAgICBwYWRkaW5nOiA0cHggN3B4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHN0cm9uZyB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYmcsICRiZywgNik7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg2cHgsICRiZywgdG9wKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDhweDtcbiAgICB9XG59XG5cbiAuY2hlY2tvdXQtLWtjb19fcGF5bWVudC1ub3RpY2Uge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLmNoZWNrb3V0X19wcm9kdWN0LW5hbWUtd3JhcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnByb2R1Y3QtbmFtZS0taGFzLWF0dHJpYnV0ZXMge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAkY2hlY2tvdXQta2NvLWF0dHJpYnV0ZS1mbGFnLXNpemUgJGNoZWNrb3V0LWtjby1hdHRyaWJ1dGUtZmxhZy1zaXplIDA7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAkY29udGVudC1iZykgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAuY2hlY2tvdXRfX3Byb2R1Y3QtbmFtZS13cmFwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRjaGVja291dC1rY28tcmVhbC1jZWxsLXBhZGRpbmc7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCA0JSksIGRhcmtlbigkY29udGVudC1iZywgNCUpKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb250ZW50LWJnO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLDAsMCwwLjEpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtLWtjb19fY29ycG9yYXRlLWxpbmsge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5jaGVja291dC0ta2NvX19rZWVwLXNob3BwaW5nIHtcbiAgICBtYXJnaW4tbGVmdDogLjVyZW07XG59XG5cbi5jaGVja291dC0ta2NvX19wYXltZW50LW5vdGljZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDcpO1xuICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyg3KTtcbn1cblxuLmtjb19zaGlwcGluZ19vcHRpb25zIHtcbiAgICBtYXJnaW4tdG9wOiAkY29sdW1uLWd1dHRlci80O1xuICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyLzQ7XG4gICAgLmZyZWlnaHQtb3B0aW9uIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlci8yO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAoJGNvbHVtbi1ndXR0ZXIvMikgKyByZW0tY2FsYygkY2hlY2tvdXQta2NvLXJhZGlvLXNpemUpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNoZWNrb3V0X19wYXltZW50LW1ldGhvZHMtbGlzdCB7XG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGNvbHVtbi1ndXR0ZXIvOCk7XG4gICAgfVxuICAgICRib3JkZXItY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZyk7XG5cbiAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgLnBheW1lbnQtbWV0aG9kIHtcbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYm94LXNoYWRvdyAzMDBtcyBjdWJpYy1iZXppZXIoMC42NSwgMC4wNSwgMC4zNiwgMSkpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDAgcmdiYSgkY2hlY2tvdXQta2NvLWJvcmRlci1jb2xvciwgMCk7XG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGU6bm90KC5wYXltZW50LW1ldGhvZC0tYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDAgJGNoZWNrb3V0LWtjby1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkaXNwbGF5OiBibG9jazsgLy8gRG8gbm90IHVzZSBpbmxpbmUtYmxvY2ssIGl0IGNhdXNlcyBpcnJpdGF0aW5nIHdoaXRlLXNwYWNlXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggcmdiYSgkY2hlY2tvdXQta2NvLWFjdGl2ZS1ib3JkZXItY29sb3IsIDAuNikgc29saWQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb250ZW50LWJnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC0oJGNvbHVtbi1ndXR0ZXIvOCk7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IC0oJGNvbHVtbi1ndXR0ZXIvOCk7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlWCgwLjk4KSBzY2FsZVkoMC44KSk7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBjdWJpYy1iZXppZXIoMC42NSwgMC4wNSwgMC4zNiwgMSkpO1xuICAgICAgICB9XG4gICAgICAgICYucGF5bWVudC1tZXRob2QtLWFjdGl2ZSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGVYKDEpIHNjYWxlWSgxKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogKCRjb2x1bW4tZ3V0dGVyLzIpICsgcmVtLWNhbGMoJGNoZWNrb3V0LWtjby1yYWRpby1zaXplKTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRjb2x1bW4tZ3V0dGVyLzQ7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXIvNDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIEBleHRlbmQgJWRlY29yYXRlZC1yYWRpbztcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygyMik7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzBweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4ycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICB9XG59XG4uY2hlY2tvdXRfX3BheW1lbnQtbWV0aG9kcy1wcmVmaXgsIC5wYXltZW50LW1ldGhvZCB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNSk7XG59XG4uY2hlY2tvdXQtLWtjb19fYWx0ZXJuYXRlLXBheW1lbnQge1xuICAgIGlucHV0LmNoZWNrLXZhbGlkaXR5OmludmFsaWQ6bm90KDpmb2N1cyksIGlucHV0LmNoZWNrLXZhbGlkaXR5LmludmFsaWQ6bm90KDpmb2N1cykge1xuICAgICAgICAkY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmMDAsICRjb250ZW50LWJnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yO1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2YwMCwgJGlucHV0LWJnLWNvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IDAgaHNsYSgwLCAwJSwgMCUsIDAuMTcpLGluc2V0IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMDYpLDAgMCAzcHggMXB4ICRjb2xvcjtcbiAgICB9XG59XG5cbi8vIEBUT0RPIG5lZWRzIG1vcmUgd29ya1xuLy9AbWVkaWEgI3skc21hbGwtcGx1cy1kb3dufSB7XG4vLyAgICAvLyBEaXNhYmxlIGlPUyB0ZXh0IGlucHV0IHpvb20sIGlPUyA5IGNoYW5nZWQgZm9udC1zaXplIGZyb20gMTZweCB0byAyMnB4XG4vLyAgICAuY2hlY2tvdXQtLWtjbyB7XG4vLyAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLyAgICAgICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8gICAgICAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4vLyAgICAgICAgc2VsZWN0IHtcbi8vICAgICAgICAgICAgcGFkZGluZzogMC4ycmVtIDAuNXJlbTtcbi8vICAgICAgICB9XG4vLyAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLyAgICAgICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8gICAgICAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4vLyAgICAgICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi8vICAgICAgICBzZWxlY3Qge1xuLy8gICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4vLyAgICAgICAgfVxuLy8gICAgfVxuLy99XG4ua2NvLXBheW1lbnQtd3JhcHBlciB7XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAuY2hlY2tvdXRfX2JvdHRvbS10b29sYmFyLXJpZ2h0IHtcbiAgICAgICAgYnV0dG9uLmpzLWNoZWNrb3V0X3VwZGF0ZSB7XG4gICAgICAgICAgICB0b3A6IC0oJGNvbHVtbi1ndXR0ZXIvMikhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jaGVja291dF9fcGF5bWVudC1tZXRob2RzLWxpc3Qge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy11cH0ge1xuICAgIC5jaGVja291dC0ta2NvX19wYXltZW50IC5jb250cm9sLWdyb3VwIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC8vIEBUT0RPIHdoeSBpcyB0aGlzIGtjb3M/XG4gICAgLmNoZWNrb3V0LS1rY29zIHtcbiAgICAgICAgLmFkZG9uX2J1dHRvbnMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiByZW0tY2FsYyg3KSArIDFyZW07XG4gICAgICAgICAgICByaWdodDogMDtcblxuICAgICAgICAgICAgLmVkaXRfc3RlcC5kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5yb3cgLnJvdy5jaGVja291dC1rY29fX2FkZHJlc3MtZm9ybSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgfVxuICAgIC5yb3cgLmNoZWNrb3V0LS1rY29fX2ZyZWlnaHQtb3B0aW9ucyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICB9XG4gICAgLmNoZWNrb3V0LS1rY29fX2ZyZWlnaHQge1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAxcHggMCAwICRjaGVja291dC1rY28tYm9yZGVyLWNvbG9yO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlci8yO1xuICAgIH1cbiAgICAuY2hlY2tvdXQtLWtjb19fcGF5bWVudC1hbHRlcm5hdGl2ZXMge1xuICAgICAgICBtYXJnaW4tbGVmdDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAoJGNvbHVtbi1ndXR0ZXIvMik7XG4gICAgfVxuICAgIC5jaGVja291dF9fcGF5bWVudC1tZXRob2RzLWxpc3Qge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0LS1rY28ge1xuICAgICAgICAuYWRkb25fYnV0dG9ucyB7XG4gICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDYpICsgMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGFibGUuY2hlY2tvdXQtLWtjb19fY2FydCB7XG4gICAgICAgIC5taW5pLWltZyB7XG4gICAgICAgICAgICB3aWR0aDogNzVweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmRpc2NvdW50LFxuICAgICAgICAuc2hpcHBpbmcsXG4gICAgICAgIC5naWZ0Y2FyZCB7XG4gICAgICAgICAgICAubWluaS1pbWcge1xuICAgICAgICAgICAgICAgIFtjbGFzc149XCJpY29uLVwiXSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS4yNXJlbSAwIDEuMjVyZW07XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0LS1rY29fX292ZXJsYXkge1xuICAgICAgICBsZWZ0OiAxLjgxMjVyZW07XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0LS1rY29fX3BheW1lbnQge1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAkY29udGVudC1iZyAwIDMwcHggMCwgaW5zZXQgJGNvbnRlbnQtYmcgMCAtMzBweCAwLCBpbnNldCAkY2hlY2tvdXQta2NvLWJvcmRlci1jb2xvciAxcHggMXB4IDA7XG4gICAgfVxuICAgIC5rY28tcGF5bWVudC1ib3JkZXJlZC13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMS4xNXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgfVxuXG4gICAgLmtjby1wYXltZW50LXdyYXBwZXIsIC5hbHRlcm5hdGUtcGF5bWVudC13cmFwcGVyIHtcbiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnO1xuICAgICAgICBtYXJnaW46MDtcbiAgICB9XG5cbiAgICAuYWx0ZXJuYXRlLXBheW1lbnQtd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xLjVyZW07XG4gICAgICAgIC5jaGVja291dF9fc3RlcF9faGVhZGxpbmUge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg1KTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmpzLWF0dGFjaF9jb21tZW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbi5jaGVja291dF9fYm90dG9tLXRvb2xiYXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGJ1dHRvbi5qcy1jaGVja291dF91cGRhdGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICByaWdodDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICB9XG59XG4uY2hlY2tvdXQtLWtjb19fZnJlaWdodC1vcHRpb25zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogNnJlbTtcbiAgICBtYXJnaW4tdG9wOiAwO1xufVxuXG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIC5yb3cgLnJvdy5jaGVja291dC1rY29fX2FkZHJlc3MtZm9ybSwgLmNoZWNrb3V0X19wYXltZW50LW1ldGhvZHMtbGlzdCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyO1xuICAgIH1cbiAgICAucm93IC5jaGVja291dC0ta2NvX19mcmVpZ2h0LW9wdGlvbnMsIC5hbHRlcm5hdGUtcGF5bWVudC13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY29sdW1uLWd1dHRlcjtcbiAgICB9XG5cbiAgICAuc3VibWl0LWZyZWlnaHQtZGV0YWlscyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5jaGVja291dC0ta2NvX19jb3Jwb3JhdGUtbGluayB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImdyaWRcIjtcblxuLy9cbi8vIEBuYW1lIF9yZXZlYWwuc2Nzc1xuLy8gQGRlcGVuZGVuY2llcyBfZ2xvYmFsLnNjc3Ncbi8vXG5cbiRpbmNsdWRlLWh0bWwtcmV2ZWFsLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHN0eWxlIG9mIHRoZSByZXZlYWwgb3ZlcmxheS5cbiRyZXZlYWwtb3ZlcmxheS1iZzogcmdiYSgkYmxhY2ssIC40NSkgIWRlZmF1bHQ7XG4kcmV2ZWFsLW92ZXJsYXktYmctb2xkOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBzdHlsZSBvZiB0aGUgbW9kYWwgaXRzZWxmLlxuJHJldmVhbC1tb2RhbC1iZzogJHdoaXRlICFkZWZhdWx0O1xuJHJldmVhbC1wb3NpdGlvbi10b3A6IHJlbS1jYWxjKDEwMCkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWRlZmF1bHQtd2lkdGg6IDgwJSAhZGVmYXVsdDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkcm93LXdpZHRoICFkZWZhdWx0O1xuJHJldmVhbC1tb2RhbC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLC40KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSByZXZlYWwgY2xvc2UgYnV0dG9uXG4kcmV2ZWFsLWNsb3NlLWZvbnQtc2l6ZTogcmVtLWNhbGMoNDApICFkZWZhdWx0O1xuJHJldmVhbC1jbG9zZS10b3A6IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRyZXZlYWwtY2xvc2Utc2lkZTogcmVtLWNhbGMoMjIpICFkZWZhdWx0O1xuJHJldmVhbC1jbG9zZS1jb2xvcjogJGJhc2UgIWRlZmF1bHQ7XG4kcmV2ZWFsLWNsb3NlLXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgZGVmYXVsdCByYWRpdXMgdXNlZCB0aHJvdWdob3V0IHRoZSBjb3JlLlxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJHJldmVhbC1yb3VuZDogJGdsb2JhbC1yb3VuZGVkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgbW9kYWwgYm9yZGVyXG4kcmV2ZWFsLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kcmV2ZWFsLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJHJldmVhbC1ib3JkZXItY29sb3I6ICRzdGVlbCAhZGVmYXVsdDtcblxuJHJldmVhbC1tb2RhbC1jbGFzczogXCJyZXZlYWwtbW9kYWxcIiAhZGVmYXVsdDtcbiRjbG9zZS1yZXZlYWwtbW9kYWwtY2xhc3M6IFwiY2xvc2UtcmV2ZWFsLW1vZGFsXCIgIWRlZmF1bHQ7XG5cbi8vIFNldCBiYXNlIHotaW5kZXhcbiR6LWluZGV4LWJhc2U6IDEwMDU7XG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgdGhlIHJldmVhbCBiYWNrZ3JvdW5kIG92ZXJsYXkgc3R5bGVzXG5AbWl4aW4gcmV2ZWFsLWJnKCAkaW5jbHVkZS16LWluZGV4LXZhbHVlOiB0cnVlICkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLy8gYWxsb3dzIG1vZGFsIGJhY2tncm91bmQgdG8gZXh0ZW5kIGJleW9uZCB3aW5kb3cgcG9zaXRpb25cbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmctb2xkOyAvLyBBdXRvcHJlZml4ZXIgc2hvdWxkIGJlIHVzZWQgdG8gYXZvaWQgc3VjaCB2YXJpYWJsZXMgbmVlZGVkIHdoZW4gRm91bmRhdGlvbiBmb3IgU2l0ZXMgY2FuIGRvIHNvIGluIHRoZSBuZWFyIGZ1dHVyZS5cbiAgYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJnO1xuICB6LWluZGV4OiBpZiggJGluY2x1ZGUtei1pbmRleC12YWx1ZSwgJHotaW5kZXgtYmFzZSAtIDEsIGF1dG8gKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSB0aGUgc3RydWN0dXJlIG9mIGEgcmV2ZWFsIG1vZGFsXG4vL1xuLy8gJGJhc2Utc3R5bGUgLSBQcm92aWRlcyByZXZlYWwgYmFzZSBzdHlsZXMsIGNhbiBiZSBzZXQgdG8gZmFsc2UgdG8gb3ZlcnJpZGUuIERlZmF1bHQ6IHRydWUsIE9wdGlvbnM6IGZhbHNlXG4vLyAkd2lkdGggLSBTZXRzIHJldmVhbCB3aWR0aCBEZWZhdWx0OiAkcmV2ZWFsLWRlZmF1bHQtd2lkdGggfHwgODAlXG4vL1xuQG1peGluIHJldmVhbC1tb2RhbC1iYXNlKCAkYmFzZS1zdHlsZTogdHJ1ZSwgJHdpZHRoOiRyZXZlYWwtZGVmYXVsdC13aWR0aCwgJG1heC13aWR0aDokcmV2ZWFsLW1heC13aWR0aCwgJGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzKSB7XG4gIEBpZiAkYmFzZS1zdHlsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICR6LWluZGV4LWJhc2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOjA7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG5cbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgbWluLWhlaWdodDoxMDB2aDtcbiAgICB9XG5cbiAgICAvLyBNYWtlIHN1cmUgcm93cyBkb24ndCBoYXZlIGEgbWluLXdpZHRoIG9uIHRoZW1cbiAgICAuY29sdW1uLCAuY29sdW1ucyB7IG1pbi13aWR0aDogMDsgfVxuXG4gICAgLy8gR2V0IHJpZCBvZiBtYXJnaW4gZnJvbSBmaXJzdCBhbmQgbGFzdCBlbGVtZW50IGluc2lkZSBtb2RhbFxuICAgICYgPiA6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwOyB9XG5cbiAgICAmID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIH1cblxuICBAaWYgJHdpZHRoIHtcbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSByZXZlYWwgbW9kYWwgZGVmYXVsdHNcbi8vXG4vLyAkYmcgLSBTZXRzIGJhY2tncm91bmQgY29sb3Igb2YgcmV2ZWFsIG1vZGFsLiBEZWZhdWx0OiAkcmV2ZWFsLW1vZGFsLWJnIHx8ICR3aGl0ZVxuLy8gJHBhZGRpbmcgLSBQYWRkaW5nIHRvIGFwcGx5IHRvIHJldmVhbCBtb2RhbC4gRGVmYXVsdDogJHJldmVhbC1tb2RhbC1wYWRkaW5nLlxuLy8gJGJvcmRlciAtIENob29zZSB3aGV0aGVyIHJldmVhbCB1c2VzIGEgYm9yZGVyLiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJGJvcmRlci1zdHlsZSAtIFNldCByZXZlYWwgYm9yZGVyIHN0eWxlLiBEZWZhdWx0OiAkcmV2ZWFsLWJvcmRlci1zdHlsZSB8fCBzb2xpZFxuLy8gJGJvcmRlci13aWR0aCAtIFdpZHRoIG9mIGJvcmRlciAoaS5lLiAxcHgpLiBEZWZhdWx0OiAkcmV2ZWFsLWJvcmRlci13aWR0aC5cbi8vICRib3JkZXItY29sb3IgLSBDb2xvciBvZiBib3JkZXIuIERlZmF1bHQ6ICRyZXZlYWwtYm9yZGVyLWNvbG9yLlxuLy8gJGJveC1zaGFkb3cgLSBDaG9vc2Ugd2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0aGUgZGVmYXVsdCBib3gtc2hhZG93LiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBtb2RhbCByYWRpdXMgd2hpY2ggaXMgJGdsb2JhbC1yYWRpdXMgfHwgZXhwbGljaXRseSBzZXQgcmFkaXVzIGFtb3VudCBpbiBweCAoZXguICRyYWRpdXM6MTBweCkuIERlZmF1bHQ6IGZhbHNlXG4vLyAkdG9wLW9mZnNldCAtIERlZmF1bHQ6ICRyZXZlYWwtcG9zaXRpb24tdG9wIHx8IDUwcHhcbkBtaXhpbiByZXZlYWwtbW9kYWwtc3R5bGUoXG4gICRiZzpmYWxzZSxcbiAgJHBhZGRpbmc6ZmFsc2UsXG4gICRib3JkZXI6ZmFsc2UsXG4gICRib3JkZXItc3R5bGU6JHJldmVhbC1ib3JkZXItc3R5bGUsXG4gICRib3JkZXItd2lkdGg6JHJldmVhbC1ib3JkZXItd2lkdGgsXG4gICRib3JkZXItY29sb3I6JHJldmVhbC1ib3JkZXItY29sb3IsXG4gICRib3gtc2hhZG93OmZhbHNlLFxuICAkcmFkaXVzOmZhbHNlLFxuICAkdG9wLW9mZnNldDpmYWxzZSkge1xuXG4gIEBpZiAkYmcgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7IH1cbiAgQGlmICRwYWRkaW5nICE9IGZhbHNlIHsgcGFkZGluZzogJHBhZGRpbmc7IH1cblxuICBAaWYgJGJvcmRlciB7IGJvcmRlcjogJGJvcmRlci1zdHlsZSAkYm9yZGVyLXdpZHRoICRib3JkZXItY29sb3I7IH1cblxuICAvLyBXZSBjYW4gY2hvb3NlIHdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdGhlIGRlZmF1bHQgYm94LXNoYWRvdy5cbiAgQGlmICRib3gtc2hhZG93IHtcbiAgICBib3gtc2hhZG93OiAkcmV2ZWFsLWJveC1zaGFkb3c7XG4gIH1cblxuICAvLyBXZSBjYW4gY29udHJvbCBob3cgbXVjaCByYWRpdXMgaXMgdXNlZCBvbiB0aGUgbW9kYWxcbiAgQGlmICRyYWRpdXMgPT0gdHJ1ZSB7IEBpbmNsdWRlIHJhZGl1cygkcmV2ZWFsLXJhZGl1cyk7IH1cbiAgQGVsc2UgaWYgJHJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTsgfVxuXG4gIEBpZiAkdG9wLW9mZnNldCB7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgdG9wOiAkdG9wLW9mZnNldDtcbiAgICB9XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGEgY2xvc2UgYnV0dG9uIGZvciB0aGUgcmV2ZWFsIG1vZGFsXG4vL1xuLy8gJGNvbG9yIC0gRGVmYXVsdDogJHJldmVhbC1jbG9zZS1jb2xvciB8fCAkYmFzZVxuQG1peGluIHJldmVhbC1jbG9zZSgkY29sb3I6JHJldmVhbC1jbG9zZS1jb2xvcikge1xuICBmb250LXNpemU6ICRyZXZlYWwtY2xvc2UtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICRyZXZlYWwtY2xvc2UtdG9wO1xuICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkcmV2ZWFsLWNsb3NlLXNpZGU7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiAkcmV2ZWFsLWNsb3NlLXdlaWdodDtcbiAgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJyZXZlYWxcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1yZXZlYWwtY2xhc3NlcyB7XG5cbiAgICAvLyBSZXZlYWwgTW9kYWxzXG4gICAgLnJldmVhbC1tb2RhbC1iZyB7IEBpbmNsdWRlIHJldmVhbC1iZzsgfVxuXG4gICAgLiN7JHJldmVhbC1tb2RhbC1jbGFzc30ge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoXG4gICAgICAgICRiZzokcmV2ZWFsLW1vZGFsLWJnLFxuICAgICAgICAkcGFkZGluZzokcmV2ZWFsLW1vZGFsLXBhZGRpbmcgKiAxLjUsXG4gICAgICAgICRib3JkZXI6dHJ1ZSxcbiAgICAgICAgJGJveC1zaGFkb3c6dHJ1ZSxcbiAgICAgICAgJHJhZGl1czpmYWxzZSxcbiAgICAgICAgJHRvcC1vZmZzZXQ6JHJldmVhbC1wb3NpdGlvbi10b3BcbiAgICAgICk7XG5cbiAgICAgICYucmFkaXVzIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXN0eWxlKCRyYWRpdXM6dHJ1ZSk7IH1cbiAgICAgICYucm91bmQgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXN0eWxlKCRyYWRpdXM6JHJldmVhbC1yb3VuZCk7IH1cbiAgICAgICYuY29sbGFwc2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoJHBhZGRpbmc6MCk7IH1cbiAgICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgMzAlKTsgfVxuICAgICAgJi5zbWFsbCB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA0MCUpOyB9XG4gICAgICAmLm1lZGl1bSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgNjAlKTsgfVxuICAgICAgJi5sYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA3MCUpOyB9XG4gICAgICAmLnhsYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA5NSUpOyB9XG4gICAgICAmLmZ1bGwge1xuICAgICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgMTAwJSk7XG4gICAgICAgIHRvcDowO1xuICAgICAgICBsZWZ0OjA7XG4gICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICBtaW4taGVpZ2h0OjEwMHZoO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gTW9kYWxzIHB1c2hlZCB0byBiYWNrXG4gICAgICAmLnRvYmFjayB7XG4gICAgICAgIHotaW5kZXg6ICR6LWluZGV4LWJhc2UgLSAyO1xuICAgICAgfVxuXG4gICAgICAuI3skY2xvc2UtcmV2ZWFsLW1vZGFsLWNsYXNzfSB7IEBpbmNsdWRlIHJldmVhbC1jbG9zZTsgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcInJlYWN0LXNlbGVjdC9zZWxlY3RcIjtcbkBpbXBvcnQgXCJyZWFjdC1zZWxlY3QvY29udHJvbFwiO1xuQGltcG9ydCBcInJlYWN0LXNlbGVjdC9tZW51XCI7XG5AaW1wb3J0IFwicmVhY3Qtc2VsZWN0L21peGluc1wiO1xuQGltcG9ydCBcInJlYWN0LXNlbGVjdC9tdWx0aVwiO1xuQGltcG9ydCBcInJlYWN0LXNlbGVjdC9zcGlubmVyXCI7XG4iLCIvKipcbiAqIFJlYWN0IFNlbGVjdFxuICogPT09PT09PT09PT09XG4gKiBDcmVhdGVkIGJ5IEplZCBXYXRzb24gYW5kIEpvc3MgTWFja2lzb24gZm9yIEtleXN0b25lSlMsIGh0dHA6Ly93d3cua2V5c3RvbmVqcy5jb20vXG4gKiBodHRwczovL3R3aXR0ZXIuY29tL2plZHdhdHNvbiBodHRwczovL3R3aXR0ZXIuY29tL2pvc3NtYWNraXNvbiBodHRwczovL3R3aXR0ZXIuY29tL2tleXN0b25lanNcbiAqIE1JVCBMaWNlbnNlOiBodHRwczovL2dpdGh1Yi5jb20va2V5c3RvbmVqcy9yZWFjdC1zZWxlY3RcbiovXG5cbi8vIFZhcmlhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIGNvbnRyb2wgb3B0aW9uc1xuJHNlbGVjdC1pbnB1dC1iZzogICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1iZy1kaXNhYmxlZDogICAgICAgICAjZjlmOWY5ICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3I6ICAgICAgICAjY2NjICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1ib3JkZXItcmFkaXVzOiAgICAgICA0cHggIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWJvcmRlci1mb2N1czogICAgICAgICMwOGMgIWRlZmF1bHQ7IC8vIGJsdWVcbiRzZWxlY3QtaW5wdXQtYm9yZGVyLXdpZHRoOiAgICAgICAgMXB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1oZWlnaHQ6ICAgICAgICAgICAgICAzNnB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1pbnRlcm5hbC1oZWlnaHQ6ICAgICAoJHNlbGVjdC1pbnB1dC1oZWlnaHQgLSAoJHNlbGVjdC1pbnB1dC1ib3JkZXItd2lkdGggKiAyKSkgIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LXBsYWNlaG9sZGVyOiAgICAgICAgICNhYWEgIWRlZmF1bHQ7XG4kc2VsZWN0LXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICMzMzMgIWRlZmF1bHQ7XG4kc2VsZWN0LWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICRzZWxlY3QtaW5wdXQtYm9yZGVyLWZvY3VzICFkZWZhdWx0O1xuXG4kc2VsZWN0LXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgIDhweCAhZGVmYXVsdDtcbiRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgMTBweCAhZGVmYXVsdDtcblxuLy8gbWVudSBvcHRpb25zXG4kc2VsZWN0LW1lbnUtemluZGV4OiAgICAgICAgICAgICAgIDEwMDAgIWRlZmF1bHQ7XG4kc2VsZWN0LW1lbnUtbWF4LWhlaWdodDogICAgICAgICAgIDIwMHB4ICFkZWZhdWx0O1xuXG4kc2VsZWN0LW9wdGlvbi1jb2xvcjogICAgICAgICAgICAgIGxpZ2h0ZW4oJHNlbGVjdC10ZXh0LWNvbG9yLCAyMCUpICFkZWZhdWx0O1xuJHNlbGVjdC1vcHRpb24tYmc6ICAgICAgICAgICAgICAgICAkc2VsZWN0LWlucHV0LWJnICFkZWZhdWx0O1xuJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1jb2xvcjogICAgICAkc2VsZWN0LXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWJnOiAgICAgICAgICNmMmY5ZmMgIWRlZmF1bHQ7IC8vIHBhbGUgYmx1ZVxuJHNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtY29sb3I6ICAgICAkc2VsZWN0LXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1iZzogICAgICAgICNEQUQxRDEgIWRlZmF1bHQ7IC8vIGdyYXlcbiRzZWxlY3Qtb3B0aW9uLWRpc2FibGVkLWNvbG9yOiAgICAgbGlnaHRlbigkc2VsZWN0LXRleHQtY29sb3IsIDYwJSkgIWRlZmF1bHQ7XG5cbiRzZWxlY3Qtbm9yZXN1bHRzLWNvbG9yOiAgICAgICAgICAgbGlnaHRlbigkc2VsZWN0LXRleHQtY29sb3IsIDQwJSkgIWRlZmF1bHQ7XG5cbi8vIGNsZWFyIFwieFwiIGJ1dHRvblxuJHNlbGVjdC1jbGVhci1zaXplOiAgICAgICAgICAgICAgICBmbG9vcigoJHNlbGVjdC1pbnB1dC1oZWlnaHQgLyAyKSkgIWRlZmF1bHQ7XG4kc2VsZWN0LWNsZWFyLWNvbG9yOiAgICAgICAgICAgICAgICM5OTkgIWRlZmF1bHQ7XG4kc2VsZWN0LWNsZWFyLWhvdmVyLWNvbG9yOiAgICAgICAgICNEMDAyMUIgIWRlZmF1bHQ7IC8vIHJlZFxuJHNlbGVjdC1jbGVhci13aWR0aDogICAgICAgICAgICAgICAoJHNlbGVjdC1pbnB1dC1pbnRlcm5hbC1oZWlnaHQgLyAyKSAhZGVmYXVsdDtcblxuLy8gYXJyb3cgaW5kaWNhdG9yXG4kc2VsZWN0LWFycm93LWNvbG9yOiAgICAgICAgICAgICAgICM5OTkgIWRlZmF1bHQ7XG4kc2VsZWN0LWFycm93LWNvbG9yLWhvdmVyOiAgICAgICAgICM2NjYgIWRlZmF1bHQ7XG4kc2VsZWN0LWFycm93LXdpZHRoOiAgICAgICAgICAgICAgIDVweCAhZGVmYXVsdDtcblxuLy8gbG9hZGluZyBpbmRpY2F0b3JcbiRzZWxlY3QtbG9hZGluZy1zaXplOiAgICAgICAgICAgICAgMTZweCAhZGVmYXVsdDtcbiRzZWxlY3QtbG9hZGluZy1jb2xvcjogICAgICAgICAgICAgJHNlbGVjdC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJHNlbGVjdC1sb2FkaW5nLWNvbG9yLWJnOiAgICAgICAgICAkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuLy8gbXVsdGktc2VsZWN0IGl0ZW1cbiRzZWxlY3QtaXRlbS1ib3JkZXItcmFkaXVzOiAgICAgICAgMnB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWd1dHRlcjogICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgIDJweCAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1wYWRkaW5nLWhvcml6b250YWw6ICAgNXB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWZvbnQtc2l6ZTogICAgICAgICAgICAuOWVtICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAjMDhjICFkZWZhdWx0OyAvLyBwYWxlIGJsdWVcbiRzZWxlY3QtaXRlbS1iZzogICAgICAgICAgICAgICAgICAgI2YyZjlmYyAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1ib3JkZXItY29sb3I6ICAgICAgICAgZGFya2VuKCRzZWxlY3QtaXRlbS1iZywgMTAlKSAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgZGFya2VuKCRzZWxlY3QtaXRlbS1jb2xvciwgNSUpICFkZWZhdWx0OyAvLyBwYWxlIGJsdWVcbiRzZWxlY3QtaXRlbS1ob3Zlci1iZzogICAgICAgICAgICAgZGFya2VuKCRzZWxlY3QtaXRlbS1iZywgNSUpICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWRpc2FibGVkLWNvbG9yOiAgICAgICAjMzMzICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJnOiAgICAgICAgICAjZmNmY2ZjICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJvcmRlci1jb2xvcjogZGFya2VuKCRzZWxlY3QtaXRlbS1kaXNhYmxlZC1iZywgMTAlKSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb250cm9sXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGltcG9ydCAnc3Bpbm5lcic7XG5AaW1wb3J0ICdtaXhpbnMnO1xuXG4uU2VsZWN0IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC8vIHByZWZlcnJlZCBib3ggbW9kZWxcblx0Jixcblx0JiBkaXYsXG5cdCYgaW5wdXQsXG5cdCYgc3BhbiB7XG5cdFx0QGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcblx0fVxuXG5cdC8vIGhhbmRsZSBkaXNhYmxlZCBzdGF0ZVxuXHQmLmlzLWRpc2FibGVkID4gLlNlbGVjdC1jb250cm9sIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWlucHV0LWJnLWRpc2FibGVkO1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG5cdH1cblx0Ji5pcy1kaXNhYmxlZCAuU2VsZWN0LWFycm93LXpvbmUge1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0fVxufVxuXG4vLyBiYXNlXG5cbi5TZWxlY3QtY29udHJvbCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaW5wdXQtYmc7XG5cdGJvcmRlci1jb2xvcjogbGlnaHRlbigkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciwgNSUpICRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yIGRhcmtlbigkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciwgMTAlKTtcblx0Ym9yZGVyLXJhZGl1czogJHNlbGVjdC1pbnB1dC1ib3JkZXItcmFkaXVzO1xuXHRib3JkZXI6ICRzZWxlY3QtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yO1xuXHRjb2xvcjogJHNlbGVjdC10ZXh0LWNvbG9yO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdGRpc3BsYXk6IHRhYmxlO1xuXHRib3JkZXItc3BhY2luZzogMDtcblx0Ym9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcblx0aGVpZ2h0OiAkc2VsZWN0LWlucHV0LWhlaWdodDtcblx0b3V0bGluZTogbm9uZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblxuXHQmOmhvdmVyIHtcblx0XHRib3gtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC4wNik7XG5cdH1cbn1cblxuLmlzLXNlYXJjaGFibGUge1xuXHQmLmlzLW9wZW4gPiAuU2VsZWN0LWNvbnRyb2wge1xuXHRcdGN1cnNvcjogdGV4dDtcblx0fVxufVxuXG4uaXMtb3BlbiA+IC5TZWxlY3QtY29udHJvbCB7XG5cdEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCAwICk7XG5cdGJhY2tncm91bmQ6ICRzZWxlY3QtaW5wdXQtYmc7XG5cdGJvcmRlci1jb2xvcjogZGFya2VuKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yLCAxMCUpICRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yIGxpZ2h0ZW4oJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IsIDUlKTtcblxuXHQvLyBmbGlwIHRoZSBhcnJvdyBzbyBpdHMgcG9pbnRpbmcgdXAgd2hlbiB0aGUgbWVudSBpcyBvcGVuXG5cdD4gLlNlbGVjdC1hcnJvdyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkc2VsZWN0LWFycm93LWNvbG9yO1xuXHRcdGJvcmRlci13aWR0aDogMCAkc2VsZWN0LWFycm93LXdpZHRoICRzZWxlY3QtYXJyb3ctd2lkdGg7XG5cdH1cbn1cblxuLmlzLXNlYXJjaGFibGUge1xuXHQmLmlzLWZvY3VzZWQ6bm90KC5pcy1vcGVuKSA+IC5TZWxlY3QtY29udHJvbCB7XG5cdFx0Y3Vyc29yOiB0ZXh0O1xuXHR9XG59XG5cbi5pcy1mb2N1c2VkOm5vdCguaXMtb3BlbikgPiAuU2VsZWN0LWNvbnRyb2wge1xuXHRib3JkZXItY29sb3I6ICRzZWxlY3QtaW5wdXQtYm9yZGVyLWZvY3VzIGxpZ2h0ZW4oJHNlbGVjdC1pbnB1dC1ib3JkZXItZm9jdXMsIDUlKSBsaWdodGVuKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWZvY3VzLCA1JSk7XG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMCA1cHggLTFweCBmYWRlKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWZvY3VzLDUwJSk7XG59XG5cbi8vIHBsYWNlaG9sZGVyXG5cbi5TZWxlY3QtcGxhY2Vob2xkZXIsXG46bm90KC5TZWxlY3QtLW11bHRpKSA+IC5TZWxlY3QtY29udHJvbCAuU2VsZWN0LXZhbHVlIHtcblx0Ym90dG9tOiAwO1xuXHRjb2xvcjogJHNlbGVjdC1pbnB1dC1wbGFjZWhvbGRlcjtcblx0bGVmdDogMDtcblx0bGluZS1oZWlnaHQ6ICRzZWxlY3QtaW5wdXQtaW50ZXJuYWwtaGVpZ2h0O1xuXHRwYWRkaW5nLWxlZnQ6ICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xuXHRwYWRkaW5nLXJpZ2h0OiAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMDtcblx0dG9wOiAwO1xuXG5cdC8vIGNyb3AgdGV4dFxuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uaGFzLXZhbHVlOm5vdCguU2VsZWN0LS1tdWx0aSk6bm90KC5pcy1mb2N1c2VkKSA+IC5TZWxlY3QtY29udHJvbCA+IC5TZWxlY3QtdmFsdWUsXG4uaGFzLXZhbHVlLmlzLXBzZXVkby1mb2N1c2VkOm5vdCguU2VsZWN0LS1tdWx0aSkgPiAuU2VsZWN0LWNvbnRyb2wgPiAuU2VsZWN0LXZhbHVlIHtcblx0LlNlbGVjdC12YWx1ZS1sYWJlbCB7XG5cdFx0Y29sb3I6ICRzZWxlY3QtdGV4dC1jb2xvcjtcblx0fVxuXHRhLlNlbGVjdC12YWx1ZS1sYWJlbCB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICRzZWxlY3QtbGluay1ob3Zlci1jb2xvcjtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdH1cblx0fVxufVxuXG5cbi8vIHRoZSA8aW5wdXQ+IGVsZW1lbnQgdXNlcnMgdHlwZSBpblxuXG4uU2VsZWN0LWlucHV0IHtcblx0Ly8gaW5oZXJpdHMgYGRpc3BsYXk6IGlubGluZS1ibG9ja2AgZnJvbSBcInJlYWN0LWlucHV0LWF1dG9zaXplXCJcblx0aGVpZ2h0OiAkc2VsZWN0LWlucHV0LWludGVybmFsLWhlaWdodDtcblx0cGFkZGluZy1sZWZ0OiAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcblx0cGFkZGluZy1yaWdodDogJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cblx0PiBpbnB1dCB7XG5cdFx0YmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudDtcblx0XHRib3JkZXI6IDAgbm9uZTtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdFx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRcdGhlaWdodDogJHNlbGVjdC1pbnB1dC1pbnRlcm5hbC1oZWlnaHQ7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0cGFkZGluZzogMDtcblx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cblx0XHQuaXMtZm9jdXNlZCAmIHtcblx0XHRcdGN1cnNvcjogdGV4dDtcblx0XHR9XG5cdH1cblxufVxuXG4vLyBmYWtlLWhpZGUgdGhlIGlucHV0IHdoZW4gdGhlIGNvbnRyb2wgaXMgcHNldWRvLWZvY3VzZWRcbi5oYXMtdmFsdWUuaXMtcHNldWRvLWZvY3VzZWQgLlNlbGVjdC1pbnB1dCB7XG5cdG9wYWNpdHk6IDA7XG59XG5cbi8vIGZha2UgaW5wdXRcbi5TZWxlY3QtY29udHJvbDpub3QoLmlzLXNlYXJjaGFibGUpID4gLlNlbGVjdC1pbnB1dCB7XG5cdG91dGxpbmU6IG5vbmU7XG59XG5cbi8vIGxvYWRpbmcgaW5kaWNhdG9yXG4uU2VsZWN0LWxvYWRpbmctem9uZSB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHdpZHRoOiAkc2VsZWN0LWxvYWRpbmctc2l6ZTtcbn1cbi5TZWxlY3QtbG9hZGluZyB7XG5cdEBpbmNsdWRlIFNlbGVjdC1zcGlubmVyKCRzZWxlY3QtbG9hZGluZy1zaXplLCAkc2VsZWN0LWxvYWRpbmctY29sb3ItYmcsICRzZWxlY3QtbG9hZGluZy1jb2xvcik7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cblxuLy8gdGhlIGxpdHRsZSBjcm9zcyB0aGF0IGNsZWFycyB0aGUgZmllbGRcblxuLlNlbGVjdC1jbGVhci16b25lIHtcblx0QGluY2x1ZGUgYW5pbWF0aW9uKCBTZWxlY3QtYW5pbWF0aW9uLWZhZGVJbiAyMDBtcyApO1xuXHRjb2xvcjogJHNlbGVjdC1jbGVhci1jb2xvcjtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0d2lkdGg6ICRzZWxlY3QtY2xlYXItd2lkdGg7XG5cblx0Jjpob3ZlciB7XG5cdFx0Y29sb3I6ICRzZWxlY3QtY2xlYXItaG92ZXItY29sb3I7XG5cdH1cbn1cbi5TZWxlY3QtY2xlYXIge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZvbnQtc2l6ZTogJHNlbGVjdC1jbGVhci1zaXplO1xuXHRsaW5lLWhlaWdodDogMTtcbn1cbi5TZWxlY3QtLW11bHRpIC5TZWxlY3QtY2xlYXItem9uZSB7XG5cdHdpZHRoOiAkc2VsZWN0LWNsZWFyLXdpZHRoO1xufVxuXG5cbi8vIGFycm93IGluZGljYXRvclxuXG4uU2VsZWN0LWFycm93LXpvbmUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR3aWR0aDogKCRzZWxlY3QtYXJyb3ctd2lkdGggKiA1KTtcblx0cGFkZGluZy1yaWdodDogJHNlbGVjdC1hcnJvdy13aWR0aDtcbn1cblxuLlNlbGVjdC1hcnJvdyB7XG5cdGJvcmRlci1jb2xvcjogJHNlbGVjdC1hcnJvdy1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLXdpZHRoOiAkc2VsZWN0LWFycm93LXdpZHRoICRzZWxlY3QtYXJyb3ctd2lkdGggKCRzZWxlY3QtYXJyb3ctd2lkdGggLyAyKTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRoZWlnaHQ6IDA7XG5cdHdpZHRoOiAwO1xufVxuLmlzLW9wZW4gLlNlbGVjdC1hcnJvdyxcbi5TZWxlY3QtYXJyb3ctem9uZTpob3ZlciA+IC5TZWxlY3QtYXJyb3cge1xuXHRib3JkZXItdG9wLWNvbG9yOiAkc2VsZWN0LWFycm93LWNvbG9yLWhvdmVyO1xufVxuXG5cblxuXG4vLyBBbmltYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBmYWRlIGluXG5cbkAtd2Via2l0LWtleWZyYW1lcyBTZWxlY3QtYW5pbWF0aW9uLWZhZGVJbiB7XG5cdGZyb20geyBvcGFjaXR5OiAwOyB9XG5cdHRvIHsgb3BhY2l0eTogMTsgfVxufVxuQGtleWZyYW1lcyBTZWxlY3QtYW5pbWF0aW9uLWZhZGVJbiB7XG5cdGZyb20geyBvcGFjaXR5OiAwOyB9XG5cdHRvIHsgb3BhY2l0eTogMTsgfVxufVxuIiwiLy9cbi8vIFNwaW5uZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGltcG9ydCAnbWl4aW5zJztcblxuQG1peGluIFNlbGVjdC1zcGlubmVyKCRzaXplLCAkb3JiaXQsICRzYXRlbGxpdGUpXG57XG5cdEBpbmNsdWRlIGFuaW1hdGlvbiggU2VsZWN0LWFuaW1hdGlvbi1zcGluIDQwMG1zIGluZmluaXRlIGxpbmVhciApO1xuXHRAaW5jbHVkZSBzcXVhcmUoJHNpemUpO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdGJvcmRlcjogZmxvb3IoKCRzaXplIC8gOCkpIHNvbGlkICRvcmJpdDtcblx0Ym9yZGVyLXJpZ2h0LWNvbG9yOiAkc2F0ZWxsaXRlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxufVxuXG5Aa2V5ZnJhbWVzIFNlbGVjdC1hbmltYXRpb24tc3BpbiB7XG5cdHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pOyB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgU2VsZWN0LWFuaW1hdGlvbi1zcGluIHtcblx0dG8geyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsgfVxufVxuIiwiLy9cbi8vIE1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gVXRpbGl0aWVzXG5cbkBtaXhpbiBzaXplKCR3aWR0aCwgJGhlaWdodClcbntcblx0d2lkdGg6ICR3aWR0aDtcblx0aGVpZ2h0OiAkaGVpZ2h0O1xufVxuQG1peGluIHNxdWFyZSgkc2l6ZSlcbntcblx0QGluY2x1ZGUgc2l6ZSgkc2l6ZSwgJHNpemUpO1xufVxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpdXMpXG57XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xufVxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGl1cylcbntcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xufVxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpdXMpXG57XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xufVxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaXVzKVxue1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xufVxuXG5cbi8vIFZlbmRvciBQcmVmaXhlc1xuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb24pXG57XG5cdC13ZWJraXQtYW5pbWF0aW9uOiAkYW5pbWF0aW9uO1xuXHQtby1hbmltYXRpb246ICRhbmltYXRpb247XG5cdGFuaW1hdGlvbjogJGFuaW1hdGlvbjtcbn1cbkBtaXhpbiBib3gtc2l6aW5nKCRib3htb2RlbClcbntcblx0LXdlYmtpdC1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG5cdC1tb3otYm94LXNpemluZzogJGJveG1vZGVsO1xuXHRib3gtc2l6aW5nOiAkYm94bW9kZWw7XG59XG5AbWl4aW4gcm90YXRlKCRkZWdyZWVzKVxue1xuXHQtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcblx0LW1zLXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTsgLy8gSUU5IG9ubHlcblx0LW8tdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG59XG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm0pXG57XG5cdC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xuXHQtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybTtcblx0LW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybTtcblx0dHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xufVxuIiwiLy9cbi8vIFNlbGVjdCBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyB3cmFwcGVyIGFyb3VuZCB0aGUgbWVudVxuXG4uU2VsZWN0LW1lbnUtb3V0ZXIge1xuXHQvLyBVbmZvcnR1bmF0ZWx5LCBoYXZpbmcgYm90aCBib3JkZXItcmFkaXVzIGFuZCBhbGxvd3Mgc2Nyb2xsaW5nIHVzaW5nIG92ZXJmbG93IGRlZmluZWQgb24gdGhlIHNhbWVcblx0Ly8gZWxlbWVudCBmb3JjZXMgdGhlIGJyb3dzZXIgdG8gcmVwYWludCBvbiBzY3JvbGwuICBIb3dldmVyLCBpZiB0aGVzZSBkZWZpbml0aW9ucyBhcmUgc3BsaXQgaW50byBhblxuXHQvLyBvdXRlciBhbmQgYW4gaW5uZXIgZWxlbWVudCwgdGhlIGJyb3dzZXIgaXMgYWJsZSB0byBvcHRpbWl6ZSB0aGUgc2Nyb2xsaW5nIGJlaGF2aW9yIGFuZCBkb2VzIG5vdFxuXHQvLyBoYXZlIHRvIHJlcGFpbnQgb24gc2Nyb2xsLlxuXHRAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cyggJHNlbGVjdC1pbnB1dC1ib3JkZXItcmFkaXVzICk7XG5cdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaW5wdXQtYmc7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yO1xuXHRib3JkZXItdG9wLWNvbG9yOiBtaXgoJHNlbGVjdC1pbnB1dC1iZywgJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IsIDUwJSk7XG5cdGJveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjA2KTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0bWFyZ2luLXRvcDogLTFweDtcblx0bWF4LWhlaWdodDogJHNlbGVjdC1tZW51LW1heC1oZWlnaHQ7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcblx0ei1pbmRleDogJHNlbGVjdC1tZW51LXppbmRleDtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG5cbi8vIHdyYXBwZXJcblxuLlNlbGVjdC1tZW51IHtcblx0bWF4LWhlaWdodDogKCRzZWxlY3QtbWVudS1tYXgtaGVpZ2h0IC0gMnB4KTtcblx0b3ZlcmZsb3cteTogYXV0bztcbn1cblxuXG4vLyBvcHRpb25zXG5cbi5TZWxlY3Qtb3B0aW9uIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1vcHRpb24tYmc7XG5cdGNvbG9yOiAkc2VsZWN0LW9wdGlvbi1jb2xvcjtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogJHNlbGVjdC1wYWRkaW5nLXZlcnRpY2FsICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xuXG5cdCY6bGFzdC1jaGlsZCB7XG5cdFx0QGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoICRzZWxlY3QtaW5wdXQtYm9yZGVyLXJhZGl1cyApO1xuXHR9XG5cblx0Ji5pcy1mb2N1c2VkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWJnO1xuXHRcdGNvbG9yOiAkc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWNvbG9yO1xuXHR9XG5cblx0Ji5pcy1zZWxlY3RlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtYmc7XG5cdFx0Y29sb3I6ICRzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWNvbG9yO1xuXHR9XG5cblx0Ji5pcy1kaXNhYmxlZCB7XG5cdFx0Y29sb3I6ICRzZWxlY3Qtb3B0aW9uLWRpc2FibGVkLWNvbG9yO1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0fVxuXG59XG5cblxuLy8gbm8gcmVzdWx0c1xuXG4uU2VsZWN0LW5vcmVzdWx0cyB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGNvbG9yOiAkc2VsZWN0LW5vcmVzdWx0cy1jb2xvcjtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogJHNlbGVjdC1wYWRkaW5nLXZlcnRpY2FsICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xufVxuIiwiLy9cbi8vIE11bHRpLVNlbGVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZVxuXG4uU2VsZWN0LS1tdWx0aSB7XG5cblx0Ly8gYWRkIG1hcmdpbiB0byB0aGUgaW5wdXQgZWxlbWVudFxuXHQuU2VsZWN0LWlucHV0IHtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdC8vIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdG1hcmdpbi1sZWZ0OiAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cblx0Ly8gcmVkdWNlIG1hcmdpbiBvbmNlIHRoZXJlIGlzIHZhbHVlXG5cdCYuaGFzLXZhbHVlIC5TZWxlY3QtaW5wdXQge1xuXHRcdG1hcmdpbi1sZWZ0OiAkc2VsZWN0LWl0ZW0tZ3V0dGVyO1xuXHR9XG5cblx0Ly8gSXRlbXNcblx0LlNlbGVjdC12YWx1ZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pdGVtLWJnO1xuXHRcdGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtaXRlbS1ib3JkZXItcmFkaXVzO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRzZWxlY3QtaXRlbS1ib3JkZXItY29sb3I7XG5cdFx0Y29sb3I6ICRzZWxlY3QtaXRlbS1jb2xvcjtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0Zm9udC1zaXplOiAkc2VsZWN0LWl0ZW0tZm9udC1zaXplO1xuXHRcdG1hcmdpbi1sZWZ0OiAkc2VsZWN0LWl0ZW0tZ3V0dGVyO1xuXHRcdG1hcmdpbi10b3A6ICRzZWxlY3QtaXRlbS1ndXR0ZXI7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxuXG5cdC8vIGNvbW1vblxuXHQuU2VsZWN0LXZhbHVlLWljb24sXG5cdC5TZWxlY3QtdmFsdWUtbGFiZWwge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR9XG5cblx0Ly8gbGFiZWxcblx0LlNlbGVjdC12YWx1ZS1sYWJlbCB7XG5cdFx0QGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cyggJHNlbGVjdC1pdGVtLWJvcmRlci1yYWRpdXMgKTtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0cGFkZGluZzogJHNlbGVjdC1pdGVtLXBhZGRpbmctdmVydGljYWwgJHNlbGVjdC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcblx0fVxuXHRhLlNlbGVjdC12YWx1ZS1sYWJlbCB7XG5cdFx0Y29sb3I6ICRzZWxlY3QtaXRlbS1jb2xvcjtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHR9XG5cdH1cblxuXHQvLyBpY29uXG5cdC5TZWxlY3QtdmFsdWUtaWNvbiB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cyggJHNlbGVjdC1pdGVtLWJvcmRlci1yYWRpdXMgKTtcblx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkc2VsZWN0LWl0ZW0tYm9yZGVyLWNvbG9yO1xuXG5cdFx0Ly8gbW92ZSB0aGUgYmFzZWxpbmUgdXAgYnkgMXB4XG5cdFx0cGFkZGluZzogKCRzZWxlY3QtaXRlbS1wYWRkaW5nLXZlcnRpY2FsIC0gMSkgJHNlbGVjdC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbCAoJHNlbGVjdC1pdGVtLXBhZGRpbmctdmVydGljYWwgKyAxKTtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWl0ZW0taG92ZXItYmc7XG5cdFx0XHRjb2xvcjogJHNlbGVjdC1pdGVtLWhvdmVyLWNvbG9yO1xuXHRcdH1cblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWl0ZW0tYm9yZGVyLWNvbG9yO1xuXHRcdH1cblx0fVxuXG59XG5cbi5TZWxlY3QtLW11bHRpLmlzLWRpc2FibGVkIHtcblx0LlNlbGVjdC12YWx1ZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJnO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRzZWxlY3QtaXRlbS1kaXNhYmxlZC1ib3JkZXItY29sb3I7XG5cdFx0Y29sb3I6ICRzZWxlY3QtaXRlbS1kaXNhYmxlZC1jb2xvcjtcblx0fVxuXHQvLyBpY29uXG5cdC5TZWxlY3QtdmFsdWUtaWNvbiB7XG5cdFx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYm9yZGVyLWNvbG9yO1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzLFxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaXRlbS1kaXNhYmxlZC1iZztcblx0XHR9XG5cdH1cbn1cbiIsIi8qKlxuICogQ29tbWVudHMgc3R5bGluZywgY291cnRlc3kgb2ZcbiAqIGh0dHA6Ly9yZWZpbGxzLmJvdXJib24uaW8vXG4gKi9cblxuJGNvbW1lbnQtZ3V0dGVyOiAgICAgICAgICAgICAgICAxLjRlbSAhZGVmYXVsdDtcbiRjb21tZW50LWltYWdlLW1hcmdpbjogICAgICAgICAgLjdlbSAhZGVmYXVsdDtcbiRjb21tZW50LWltYWdlLXdpZHRoOiAgICAgICAgICAgMzBweCAhZGVmYXVsdDtcbiRjb21tZW50LWltYWdlLXdpZHRoLWxhcmdlOiAgICAgNjBweCAhZGVmYXVsdDtcbiRjb21tZW50LWltYWdlLWJvcmRlci1wYWRkaW5nOiAgM3B4ICFkZWZhdWx0O1xuJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXdpZHRoOiAgICAxcHggIWRlZmF1bHQ7XG4kY29tbWVudC1oZWFkZXItZm9udC1zaXplOiAgICAgIHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRjb21tZW50LWNvbG9yOiAgICAgICAgICAgICAgICAgJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcbiRjb21tZW50LWJhY2tncm91bmQ6ICAgICAgICAgICAgJHNlY29uZGFyeS1jb2xvciAhZGVmYXVsdDtcbiRjb21tZW50LWRldGFpbC1jb2xvcjogICAgICAgICAgdHJhbnNwYXJlbnRpemUoJGNvbW1lbnQtY29sb3IsIC41KSAhZGVmYXVsdDtcbiRjb21tZW50LWltYWdlLXZlcnQtYWxpZ25tZW50OiAgdG9wICFkZWZhdWx0O1xuJGNvbW1lbnQtc3Rhci1jb2xvcjogICAgICAgICAgICAkY2FsbC10by1hY3Rpb24tY29sb3IgIWRlZmF1bHQ7XG4kY29tbWVudC1hdmF0YXItYm9yZGVyLWNvbG9yOiAgICNkZGQgIWRlZmF1bHQ7XG4kY29tbWVudC1hdmF0YXItYm94LXNpemU6ICAgICAgICN7JGNvbW1lbnQtaW1hZ2Utd2lkdGggKyAkY29tbWVudC1pbWFnZS1ib3JkZXItcGFkZGluZyAqIDIgKyAkY29tbWVudC1pbWFnZS1ib3JkZXItd2lkdGggKiAyfTtcbiRjb21tZW50LWF2YXRhci1ib3gtc2l6ZS1sYXJnZTogI3skY29tbWVudC1pbWFnZS13aWR0aC1sYXJnZSArICRjb21tZW50LWltYWdlLWJvcmRlci1wYWRkaW5nICogMiArICRjb21tZW50LWltYWdlLWJvcmRlci13aWR0aCAqIDJ9O1xuXG4uY29tbWVudCB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogI3skcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICogMXJlbX07XG4gICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnRpemUoJGNvbW1lbnQtY29sb3IsIC45KTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICAuY29tbWVudC1hdmF0YXIge1xuICAgICAgICAgICAgYm9yZGVyOiAkY29tbWVudC1pbWFnZS1ib3JkZXItd2lkdGggc29saWQgZGFya2VuKCRjb21tZW50LWF2YXRhci1ib3JkZXItY29sb3IsIDMwJSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb21tZW50LWltYWdlLFxuLmNvbW1lbnQtY29udGVudCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogJGNvbW1lbnQtaW1hZ2UtdmVydC1hbGlnbm1lbnQ7XG59XG5cbi5jb21tZW50LWltYWdlIHtcbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogJGNvbW1lbnQtaW1hZ2Utd2lkdGg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiAkY29tbWVudC1pbWFnZS1tYXJnaW47XG59XG5cbi8qKlxuICogQ2lyY3VsYXIgYXZhdGFyc1xuICogQ291cnRlc3kgb2YgaHR0cDovL2NvZGVwZW4uaW8vYnJhZGVuaGFtbS9wZW4veUR1a2FcbiAqL1xuXG4uY29tbWVudC1hdmF0YXIge1xuICAgIGxpbmUtaGVpZ2h0OiAwOyAgICAgLyogcmVtb3ZlIGxpbmUtaGVpZ2h0ICovIFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgIC8qIGNpcmNsZSB3cmFwcyBpbWFnZSAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgLyogcmVsYXRpdmUgdmFsdWUgKi9cbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJvcmRlciAzMDBtcyBlYXNlKTtcbiAgICBoZWlnaHQ6ICRjb21tZW50LWF2YXRhci1ib3gtc2l6ZTtcbiAgICB3aWR0aDogJGNvbW1lbnQtYXZhdGFyLWJveC1zaXplO1xuICAgIGJvcmRlcjogJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXdpZHRoIHNvbGlkICRjb21tZW50LWF2YXRhci1ib3JkZXItY29sb3I7XG4gICAgcGFkZGluZzogJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXBhZGRpbmc7XG59XG5cbi5jb21tZW50LWF2YXRhciBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgLyogcmVsYXRpdmUgdmFsdWUgZm9yXG4gICAgICAgICAgICAgICAgICAgYWRqdXN0YWJsZSBpbWFnZSBzaXplICovXG59XG5cbi5jb21tZW50LWNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmNvbW1lbnQtY29udGVudF9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6ICRjb21tZW50LWhlYWRlci1mb250LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41ZW07XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41ZW07XG4gICAgfVxuXG4gICAgLmNvbW1lbnQtZGV0YWlsIHtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBmb250LXNpemU6IC45ZW07XG4gICAgICAgIGNvbG9yOiAkY29tbWVudC1kZXRhaWwtY29sb3I7XG4gICAgfVxufVxuXG4uY29tbWVudC1zdGFyLXJhdGluZyBpIHtcbiAgICBjb2xvcjogJGNvbW1lbnQtc3Rhci1jb2xvcjtcbiAgICBtYXJnaW4tcmlnaHQ6IC0ycHg7XG59XG5cbi5jb21tZW50LXN0YXItcmF0aW5nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxufVxuXG4uY29tbWVudC1zdGFyLXJhdGluZy1jb3VudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNvbW1lbnQtZGV0YWlsIHtcbiAgICAuY29tbWVudC1zdGFyLXJhdGluZyB7XG4gICAgICAgIG9wYWNpdHk6IC41O1xuICAgICAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY29tbWVudHMtZm9ybSB7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG59XG5cbi5jb21tZW50cy1mb3JtLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuXG4uY29tbWVudHMtZm9ybS1lcnJvcjplbXB0eSxcbi5jb21tZW50LWZvcm0tdmFsaWRhdGlvbi1lcnJvcnM6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jb21tZW50cy1ndWlkZWxpbmVzIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBcbiAgICBwLCBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIH1cbn1cblxuI3Byb2R1a3RfYW5tZWxkZWxzZXJfZm9ybV92YWxpZGVydCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLmNvbW1lbnQtaW1hZ2Uge1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6ICRjb21tZW50LWltYWdlLXdpZHRoLWxhcmdlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvbW1lbnQtYXZhdGFyIHtcbiAgICAgICAgaGVpZ2h0OiAkY29tbWVudC1hdmF0YXItYm94LXNpemUtbGFyZ2U7XG4gICAgICAgIHdpZHRoOiAkY29tbWVudC1hdmF0YXItYm94LXNpemUtbGFyZ2U7XG4gICAgfVxufSIsIi5jb29raWVfbm90aWNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMzkwcHg7XG4gICAgei1pbmRleDogOTk5OTk5OTtcbiAgICBtYXgtaGVpZ2h0OiA5NSU7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgYm90dG9tOiAyMHB4O1xufVxuXG4uY29va2llX25vdGljZV9hcmVhIHtcblx0bWFyZ2luLWxlZnQ6IDUlO1xuXHRtYXJnaW4tcmlnaHQ6IDUlO1xuICAgIG1hcmdpbi1ib3R0b206IDUlO1xufVxuXG4jY29va2llX25vdGljZV90ZXh0IHtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgY29sb3I6d2hpdGU7XG59XG5cbiNjb29raWVfYnV0dG9ucyBhIHtcbiAgICBwYWRkaW5nOiA4cHg7XG5cbiAgICAmOnZpc2l0ZWQsIFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbn1cblxuI2Nvb2tpZV9idXR0b25zIHNwYW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59IiwiLyohIGZhbmN5Qm94IHYyLjEuNSBmYW5jeWFwcHMuY29tIHwgZmFuY3lhcHBzLmNvbS9mYW5jeWJveC8jbGljZW5zZSAqL1xuLmZhbmN5Ym94LXdyYXAsXG4uZmFuY3lib3gtc2tpbixcbi5mYW5jeWJveC1vdXRlcixcbi5mYW5jeWJveC1pbm5lcixcbi5mYW5jeWJveC1pbWFnZSxcbi5mYW5jeWJveC13cmFwIGlmcmFtZSxcbi5mYW5jeWJveC13cmFwIG9iamVjdCxcbi5mYW5jeWJveC1uYXYsXG4uZmFuY3lib3gtbmF2IHNwYW4sXG4uZmFuY3lib3gtdG1wXG57XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLmZhbmN5Ym94LXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiA4MDIwO1xufVxuXG4uZmFuY3lib3gtc2tpbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gICAgY29sb3I6ICM0NDQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5mYW5jeWJveC1vcGVuZWQge1xuICAgIHotaW5kZXg6IDgwMzA7XG59XG5cbi5mYW5jeWJveC1vcGVuZWQgLmZhbmN5Ym94LXNraW4ge1xuICAgLW1vei1ib3gtc2hhZG93OiAwIDEwcHggMjVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuLmZhbmN5Ym94LW91dGVyLCAuZmFuY3lib3gtaW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZhbmN5Ym94LWlubmVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZmFuY3lib3gtdHlwZS1pZnJhbWUgLmZhbmN5Ym94LWlubmVyIHtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5mYW5jeWJveC1lcnJvciB7XG4gICAgY29sb3I6ICM0NDQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmZhbmN5Ym94LWltYWdlLCAuZmFuY3lib3gtaWZyYW1lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mYW5jeWJveC1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbiNmYW5jeWJveC1sb2FkaW5nLCAuZmFuY3lib3gtY2xvc2UsIC5mYW5jeWJveC1wcmV2IHNwYW4sIC5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWcvZmFuY3lib3hfc3ByaXRlLnBuZycpO1xufVxuXG4jZmFuY3lib3gtbG9hZGluZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMjJweDtcbiAgICBtYXJnaW4tbGVmdDogLTIycHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTA4cHg7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB6LWluZGV4OiA4MDYwO1xufVxuXG4jZmFuY3lib3gtbG9hZGluZyBkaXYge1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy9hc3NldHMvaW1nL2ZhbmN5Ym94X2xvYWRpbmcuZ2lmJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG59XG5cbi5mYW5jeWJveC1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTE4cHg7XG4gICAgcmlnaHQ6IC0xOHB4O1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgei1pbmRleDogODA0MDtcbn1cblxuLmZhbmN5Ym94LW5hdiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogNDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbiAgICB6LWluZGV4OiA4MDQwO1xufVxuXG4uZmFuY3lib3gtcHJldiB7XG4gICAgbGVmdDogMDtcbn1cblxuLmZhbmN5Ym94LW5leHQge1xuICAgIHJpZ2h0OiAwO1xufVxuXG4uZmFuY3lib3gtbmF2IHNwYW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgbWFyZ2luLXRvcDogLTE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDgwNDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uZmFuY3lib3gtcHJldiBzcGFuIHtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTM2cHg7XG59XG5cbi5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTcycHg7XG59XG5cbi5mYW5jeWJveC1uYXY6aG92ZXIgc3BhbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLmZhbmN5Ym94LXRtcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTk5OTk5cHg7XG4gICAgbGVmdDogLTk5OTk5cHg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG1heC13aWR0aDogOTk5OTlweDtcbiAgICBtYXgtaGVpZ2h0OiA5OTk5OXB4O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi8qIE92ZXJsYXkgaGVscGVyICovXG5cbi5mYW5jeWJveC1sb2NrIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi5mYW5jeWJveC1sb2NrIGJvZHkge1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLmZhbmN5Ym94LWxvY2stdGVzdCB7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5mYW5jeWJveC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHotaW5kZXg6IDgwMTA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuNzUpO1xufVxuXG4uZmFuY3lib3gtb3ZlcmxheS1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbn1cblxuLmZhbmN5Ym94LWxvY2sgLmZhbmN5Ym94LW92ZXJsYXkge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLyogVGl0bGUgaGVscGVyICovXG5cbi5mYW5jeWJveC10aXRsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICB6LWluZGV4OiA4MDUwO1xufVxuXG4uZmFuY3lib3gtb3BlbmVkIC5mYW5jeWJveC10aXRsZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLWZsb2F0LXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDUwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAtMzVweDtcbiAgICB6LWluZGV4OiA4MDUwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLWZsb2F0LXdyYXAgLmNoaWxkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgICBwYWRkaW5nOiAycHggMjBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogRmFsbGJhY2sgZm9yIHdlYiBicm93c2VycyB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBSR0JhICovXG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCAjMjIyO1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5mYW5jeWJveC10aXRsZS1vdXRzaWRlLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uZmFuY3lib3gtdGl0bGUtaW5zaWRlLXdyYXAge1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xufVxuXG4uZmFuY3lib3gtdGl0bGUtb3Zlci13cmFwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjgpO1xufVxuXG4vKlJldGluYSBncmFwaGljcyEqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLFxuICAgICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLFxuICAgICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KXtcblxuICAgICNmYW5jeWJveC1sb2FkaW5nLCAuZmFuY3lib3gtY2xvc2UsIC5mYW5jeWJveC1wcmV2IHNwYW4sIC5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1nL2ZhbmN5Ym94X3Nwcml0ZV8yeC5wbmcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA0NHB4IDE1MnB4OyAvKlRoZSBzaXplIG9mIHRoZSBub3JtYWwgaW1hZ2UsIGhhbGYgdGhlIHNpemUgb2YgdGhlIGhpLXJlcyBpbWFnZSovXG4gICAgfVxuXG4gICAgI2ZhbmN5Ym94LWxvYWRpbmcgZGl2IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltZy9mYW5jeWJveF9sb2FkaW5nXzJ4LmdpZicpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDI0cHggMjRweDsgLypUaGUgc2l6ZSBvZiB0aGUgbm9ybWFsIGltYWdlLCBoYWxmIHRoZSBzaXplIG9mIHRoZSBoaS1yZXMgaW1hZ2UqL1xuICAgIH1cbn0iLCIvLyBBZGRvbiB0byBGb3VuZGF0aW9uIEZvcm1zXG5sYWJlbCB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG59XG5cbmxhYmVsID4gaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICAgIG1hcmdpbi1yaWdodDogJGZvcm0tc3BhY2luZyAqIC41O1xufVxuXG4uZXJyb3ItbXNnIHtcbiAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjVlbTtcbn1cblxuaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgdGV4dC1pbmRlbnQ6IC41cmVtO1xufVxuXG4vL0BUT0RPIGRlYWwgd2l0aCA6cGxhY2Vob2xkZXIgY29sb3JzXG4vKiBXZSB1c2UgdGhpcyB0byBnZXQgYmFzaWMgc3R5bGluZyBvbiBhbGwgYmFzaWMgZm9ybSBlbGVtZW50cyAqL1xuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbmlucHV0W3R5cGU9XCJtb250aFwiXSxcbmlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG5pbnB1dFt0eXBlPVwidGVsXCJdLFxuaW5wdXRbdHlwZT1cInRpbWVcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICAgIEBpbmNsdWRlIHJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cyk7XG59XG5cbi8qIEZvdW5kYXRpb24gaGFyZGNvZGVzIHJhZGl1cyB0byAwLCB0aGlzIGZpeGVzIGl0ICovXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0QGluY2x1ZGUgcmFkaXVzKCRidXR0b24tcmFkaXVzKTtcbn1cblxuLnByZWZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcblx0aW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xuXHRcdEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGlucHV0LWJvcmRlci1yYWRpdXMpO1xuXHR9XG59XG4ucG9zdGZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcblx0aW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xuXHRcdEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRpbnB1dC1ib3JkZXItcmFkaXVzKTtcblx0fVxufVxuXG5ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuICAgIHNlbGVjdCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgfVxufSIsIi5rbGFybmFfYm9rcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBtYXgtaGVpZ2h0OiAxMDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ua2xhcm5hLWluZm8ge1xuICAgIC5rbGFybmEtaW5mb19fYmFkZ2Uge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IFxuICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgfVxufVxuXG4ua2xhcm5hLXdpZGdldCB7XG5cdGhlaWdodDogNzBweDtcbn0iLCIkaTE4bi1wb3B1cC1wb3NpdGlvbjogcmlnaHQgIWRlZmF1bHQ7XG5cbi5zZXR0aW5nX19mb3JtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTAwO1xuXG4gICAgaS5mYSB7XG4gICAgICAgIHdpZHRoOiAuOXJlbTtcbiAgICB9XG59XG5cbi5zZXR0aW5nX19idXR0b246Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi5zZXR0aW5nX19zZWxlY3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IC4zO1xuICAgIHdpZHRoOiAxNXJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRpMThuLXBvcHVwLXBvc2l0aW9uID09IHJpZ2h0LCAwLCAtOTIlKSwgLTFyZW0sIDAsIHNjYWxlM2QoLjksIC45LCAuOSkpO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcywgLXdlYmtpdC10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IGVhc2UsIDBzO1xuICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLCAtbW96LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZSwgLW8tdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLCB0cmFuc2Zvcm0gMTUwbXMgZWFzZTtcblxuICAgICYgPiAqIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBzZWxlY3Qge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDY1JTtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzNyk7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzcpO1xuICAgICAgICBwYWRkaW5nOiAwIC41cmVtO1xuICAgIH1cbn1cblxuI2xhbmd1YWdlLXNob3csXG4jY3VycmVuY3ktc2hvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNsYW5ndWFnZS1jbG9zZSxcbiNjdXJyZW5jeS1jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI2xhbmd1YWdlLXNob3c6dGFyZ2V0LFxuI2N1cnJlbmN5LXNob3c6dGFyZ2V0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuI2xhbmd1YWdlLXNob3c6dGFyZ2V0ICsgI2xhbmd1YWdlLWNsb3NlLFxuI2N1cnJlbmN5LXNob3c6dGFyZ2V0ICsgI2N1cnJlbmN5LWNsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jbGFuZ3VhZ2UtY2xvc2U6dGFyZ2V0LFxuI2N1cnJlbmN5LWNsb3NlOnRhcmdldCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNsYW5ndWFnZS1jbG9zZTp0YXJnZXQgKyAjbGFuZ3VhZ2Utc2hvdyxcbiNjdXJyZW5jeS1jbG9zZTp0YXJnZXQgKyAjY3VycmVuY3ktc2hvdyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI2xhbmd1YWdlLWNsb3NlOnRhcmdldCB+ICNsYW5ndWFnZSxcbiNjdXJyZW5jeS1jbG9zZTp0YXJnZXQgfiAjY3VycmVuY3kge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJGkxOG4tcG9wdXAtcG9zaXRpb24gPT0gcmlnaHQsIDAsIC05MCUpLCAwLCAwLCBzY2FsZTNkKDEsIDEsIDEpKTtcbn1cblxuLmpzLW5hdiAjbGFuZ3VhZ2UsXG4uanMtbmF2ICNjdXJyZW5jeSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn0iLCIkc2VjdGlvbi1zcGFjaW5nLXNpemU6IDJyZW0gIWRlZmF1bHQ7XG5cbi5wYWdlLWRpdmlkZXIge1xuICAgIHBhZGRpbmc6ICRzZWN0aW9uLXNwYWNpbmctc2l6ZSAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjbGVhcjogYm90aDtcbn1cblxuLnBhZ2UtZGl2aWRlcl9faGVhZGVyLXdyYXBwZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaWYobHVtYSgkY29udGVudC1iZykgPCA1MCwgbGlnaHRlbigkY29udGVudC1iZywgMTAlKSwgZGFya2VuKCRjb250ZW50LWJnLCAxMCUpKTtcbiAgICB9XG59XG5cbi5wYWdlLWRpdmlkZXJfX2hlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHBhZGRpbmc6IDAgcmVtLWNhbGMoMTApO1xuICAgIG1hcmdpbjogMDtcbn0iLCIvLyBQYWdlLXNwZWNpZmljIHN0eWxlcyBcbkBpbXBvcnQgXCJwYWdlcy9jYXJ0XCI7XG5AaW1wb3J0IFwicGFnZXMvZnJvbnRwYWdlXCI7XG5AaW1wb3J0IFwicGFnZXMvcmVjZWlwdFwiO1xuQGltcG9ydCBcInBhZ2VzL3JlZ2lzdGVyLWFjY291bnRcIjtcbkBpbXBvcnQgXCJwYWdlcy93aXNobGlzdFwiO1xuIiwiI2tuYXBwZS1tZW51X2tqb3Age1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG59IiwiLmZyb250cGFnZV9fY3VzdG9tLWNvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xufSIsIi5yZWNlaXB0X19oZWFkZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4uYnV0dG9uLnJlY2VpcHRfX3ByaW50IHtcbiAgICBAZXh0ZW5kICVjb250ZW50X19wcmltYXJ5LWNvbG9yLWJnO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IC4xNXJlbTtcbn1cblxuLnJlY2VpcHRfX3RoYW5rcyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5yZWNlaXB0X19vcmRlci1vdmVydmlldyxcbi5yZWNlaXB0X19jdXN0b21lci1pbmZvIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5yZWNlaXB0X19wcmludCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC41cmVtO1xuICAgIH1cblxuICAgIC5yZWNlaXB0X19vcmRlci1vdmVydmlldyxcbiAgICAucmVjZWlwdF9fY3VzdG9tZXItaW5mbyB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDYwJTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIC5yZWNlaXB0X19vcmRlci1vdmVydmlldyxcbiAgICAucmVjZWlwdF9fY3VzdG9tZXItaW5mbyB7XG4gICAgICAgIG1pbi13aWR0aDogNTAlO1xuICAgIH1cbn0iLCJcbmh0bWwucGxhY2Vob2xkZXIgLmhhcy1wbGFjZWhvbGRlciB7XG4gICAgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmxvZ2luLWNvbHVtbiwgLnJlZ2lzdGVyLWNvbHVtbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIFxuICAgID4gZm9ybSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4uaWNvbi1sb2ctb3V0IGEge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1leGl0LXRvLWFwcCk7XG4gICAgfVxufVxuXG4uYWNjb3VudC10YWJzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG5cbiAgICAudGFiLXRpdGxlIGEge1xuICAgICAgICBwYWRkaW5nOiAwIC42cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoNDApO1xuXG4gICAgICAgIC50b3VjaCAmIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmVkaXQtYWNjb3VudC1wYWdlLFxuLmdpZnQtY2VydGlmaWNhdGUtcGFnZSB7XG4gICAgZmllbGRzZXQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6IG5lc3QpOyBcblxuICAgICAgICAgICAgLmNvbHVtbiwgXG4gICAgICAgICAgICAuY29sdW1ucyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oKTsgXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29udHJvbC1ncm91cCAuY29udHJvbC1ncm91cCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmVkaXQtYWNjb3VudF9fYnV0dG9ucyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XG4gICAgfVxufVxuXG4ua2Fzc2Vfb25lX2xvZ2dpbm5fZXJyb3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAkYWxlcnQtY29sb3I7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAqICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLWRvd259IHtcbiAgICAubG9naW4tY29sdW1uIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAuaWNvbi1sb2ctb3V0IGEge1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGFicyAuaWNvbi1sb2ctb3V0ID4gYSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy11cH0ge1xuICAgIC50YWJzIHsgICAgICBcbiAgICAgICAgLnRhYi10aXRsZSA+IGEge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pY29uLWxvZy1vdXQgPiBhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5lZGl0LWFjY291bnRfX2J1dHRvbnMge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufSIsIiN3aXNobGlzdF90YWJsZSB7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xufVxuXG4ud2lzaGxpc3RfX3Byb2R1Y3QtbmFtZSB7XG4gICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi53aXNobGlzdF9fYnV0dG9uLWNlbGwge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLndpc2hsaXN0X19kZWxldGUsXG4ud2lzaGxpc3RfX2RlbGV0ZTpob3ZlciB7XG4gICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICN3aXNobGlzdF90YWJsZSB7XG4gICAgICAgIG1pbi13aWR0aDogODAlO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgI3dpc2hsaXN0X3RhYmxlIHtcbiAgICAgICAgbWluLXdpZHRoOiA2MCU7XG4gICAgfVxufSIsIi5wYWdpbmF0aW9uLXdyYXBwZXIge1xuICAgIHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlcjsgICAgXG59IiwiJHByb2R1Y3QtdGl0bGUtYm9yZGVyLWNvbG9yOiAgICAgICAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHByb2R1Y3QtcHJpY2UtZm9udHNpemU6ICAgICAgICAgICByZW0tY2FsYygzNikgIWRlZmF1bHQ7XG4kcHJvZHVjdC1wcmljZS1mb250c2l6ZS1sZzogICAgICAgIHJlbS1jYWxjKDM2KSAhZGVmYXVsdDtcbiRwcm9kdWN0LXN0b2NrLXN0YXR1cy1jb2xvcjogICAgICAgJHNtYWxsLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kcHJvZHVjdC1pbWFnZS1jYXB0aW9uLXBhZGRpbmc6ICAgIC41cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtaW1hZ2UtY2FwdGlvbi1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJHByb2R1Y3QtaW1hZ2UtY2FwdGlvbi1oZWlnaHQ6ICAgICAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICsgMiAqICRwcm9kdWN0LWltYWdlLWNhcHRpb24tcGFkZGluZyAhZGVmYXVsdDtcbiRwcm9kdWN0LXNob3ctdGh1bWJzLW9uLW1lZGl1bS11cDogdHJ1ZSAhZGVmYXVsdDtcblxuQGlmICRwcm9kdWN0LXNob3ctdGh1bWJzLW9uLW1lZGl1bS11cCA9PSB0cnVlIHtcbiAgICAkdGh1bWItZG90cy1yYW5nZTogJHNtYWxsLW9ubHk7XG59IEBlbHNlIHtcbiAgICAkdGh1bWItZG90cy1yYW5nZTogJHNtYWxsLXVwO1xufVxuXG4ucHJvZHVjdF9faW1hZ2VzIHtcbiAgICAmLmludmlzaWJsZSB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgICAmLnNsaWRlci1sb2FkZWQge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnByb2R1Y3RfX21haW4taW1hZ2VzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLnJlYWRvbi1pY29uX19jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5ieC1jYXB0aW9uIHtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3QtaW1hZ2UtY2FwdGlvbi1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLmJ4LXByZXYge1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIC5ieC1uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgfVxufVxuXG4ucHJvZHVjdF9fYnJlYWRjcnVtYnMge1xuICAgIC5jdXJyZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxufVxuXG4ucHJvZHVjdF9fdGl0bGUge1xuICAgIEBleHRlbmQgLmJvcmRlcmVkLS1ib3R0b207XG4gICAgQGV4dGVuZCAlY29udGVudF9fYm9yZGVyZWQtLWhhcmQ7XG59XG5cbi5wcm9kdWN0X19tZXRhLW51bWJlcnMge1xuICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gLSAwLjVyZW07XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuY29tbWVudC1zdGFyLXJhdGluZyB7XG4gICAgICAgIC5pY29uLXN0YXIsXG4gICAgICAgIC5pY29uLXN0YXItaGFsZixcbiAgICAgICAgLmljb24tc3Rhci1vdXRsaW5lIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTFweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb21tZW50LXN0YXItcmF0aW5nLWF2ZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbW1lbnQtc3Rhci1yYXRpbmctY291bnQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiAqIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC41cmVtO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG59XG5cbi5wcm9kdWN0X19hcnQtbnItbGFiZWwsXG4ucHJvZHVjdF9fZWFuLWxhYmVsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuMjVyZW07XG59XG5cbi5wcm9kdWN0X19tZXRhLW51bWJlcnNfX3ZhbHVlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuXG4ucHJvZHVjdF9fYXNpZGUtYWRkb24ge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbn1cblxuLnByb2R1Y3Qge1xuICAgIC5wcmljZSB7XG4gICAgICAgIEBleHRlbmQgJWNvbnRlbnRfX3ByaW1hcnktY29sb3ItYmlnO1xuICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXByaWNlLWZvbnRzaXplO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAucHJpY2UtLW9yaWdpbmFsIHtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY2xlYXI6IGJvdGg7XG5cbiAgICAgICAgLmN1cnJlbmN5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudmF0LWluZm8sXG4gICAgLnByaWNlLS1vcmlnaW5hbCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuICAgIH1cblxuICAgIC5kaXNjb3VudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnZhdC1pbmZvIHtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICB9XG5cbiAgICAuY3VycmVuY3kge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICB9XG5cbiAgICAucHJpY2VfX3NhbGVwcmljZS10ZXh0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XG4gICAgfVxuXG4gICAgLm9mZmVycyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICB9XG59XG5cbi5wcm9kdWN0X19idXktYnV0dG9uLmJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlY29udGVudF9fcHJpbWFyeS1jb2xvci1iZztcblxuICAgIGkge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICB9XG59XG5cbi5wcm9kdWN0IC5wcm9kdWN0X193aXNobGlzdC1idXR0b24uYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVjb250ZW50X19zZWNvbmRhcnktY29sb3ItYmc7XG59XG5cbi5wcm9kdWN0X19zdG9ja3N0YXR1cyB7XG4gICAgQGV4dGVuZCAuc3VidGxlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtcHJpY2UtZm9udHNpemU7XG59XG5cbi5wcm9kdWN0X19zdG9ja3N0YXR1c19fbnVtYmVyIHtcbiAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHN1Y2Nlc3MtY29sb3IsICRjb250ZW50LWJnKTtcbn1cbi5wcm9kdWN0X19zdG9ja3N0YXR1cy0tc29sZC1vdXQgLnByb2R1Y3RfX3N0b2Nrc3RhdHVzX19udW1iZXJ7XG4gICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRhbGVydC1jb2xvciwgJGNvbnRlbnQtYmcpO1xufVxuXG4ucHJvZHVjdF9fc3RvY2tzdGF0dXMtLWhhcy1leHRyYWluZm8ge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5wcm9kdWN0X19tYWluLWltYWdlc19fbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbn1cblxuLnByb2R1Y3RfX3F1YW50dW0tZGlzY291bnRzIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnByb2R1Y3RfX2F0dHJpYnV0ZXMsXG4ucHJvZHVjdF9fZXh0cmFmaWVsZCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QpO1xufVxuXG4ucHJvZHVjdF9fZXh0cmFmaWVsZF9fd3JhcCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDEyKTtcbn1cblxuLnByb2R1Y3RfX2F0dHJpYnV0ZSxcbi5wcm9kdWN0X19xdWFudGl0eSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDYpO1xufVxuXG4ucHJvZHVjdF9fZXh0cmFmaWVsZF9fcHJpY2VpbmZvIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbn1cblxuLnByb2R1Y3RfX3JlbGF0ZWQtcHJvZHVjdHMge1xuICAgIHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgLnByb2R1Y3RfX21haW4taW1hZ2VzIC5ieC1jYXB0aW9uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHRodW1iLWRvdHMtcmFuZ2V9IHtcbiAgICAucHJvZHVjdF9faW1hZ2VnYWxsZXJ5IHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAudGgge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIGhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuNzU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItYnJpZ2h0bmVzcy0xKTsgLy8gQSBjaXJjdWxhciBpY29uXG4gICAgICAgICAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogLjI1O1xuICAgICAgICAgICAgICAgIGhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGZvbnQtc2l6ZSAyMDBtcyBlYXNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5hY3RpdmU6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC43NTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLWRvd259IHtcbiAgICAucHJvZHVjdF9fdGl0bGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLW9ubHl9IHtcbiAgICAucHJvZHVjdF9faW5mbyxcbiAgICAucHJvZHVjdF9fYWJvdXQsXG4gICAgLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeV9fd3JhcHBlcixcbiAgICAucHJvZHVjdF9fcmVsYXRlZC1wcm9kdWN0cyB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDEwKTtcbiAgICB9XG5cbiAgICAucHJvZHVjdCB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXByaWNlLWZvbnRzaXplLWxnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX3N0b2Nrc3RhdHVzOm5vdCgucHJvZHVjdF9fc3RvY2tzdGF0dXMtLWhhcy1leHRyYWluZm8pIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXByaWNlLWZvbnRzaXplLWxnO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5wcm9kdWN0X19pbmZvIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oNik7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2Fib3V0LFxuICAgIC5wcm9kdWN0X19pbWFnZWdhbGxlcnlfX3dyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2ltYWdlcyxcbiAgICAucHJvZHVjdF9faW5mbyxcbiAgICAucHJvZHVjdF9fbWFpbi1pbWFnZXMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fYnJlYWRjcnVtYnMge1xuICAgICAgICAuY3VycmVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdF9fbWFpbi1pbWFnZXMge1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAucmVhZG9uLWljb25fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0X19tYWluLWltYWdlc19fbGluayB7XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJHByb2R1Y3Qtc2hvdy10aHVtYnMtb24tbWVkaXVtLXVwID09IHRydWUge1xuICAgICAgICAucHJvZHVjdF9faW1hZ2VnYWxsZXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQoNCk7XG4gICAgICAgIH1cblxuICAgICAgICBsaS5wcm9kdWN0X19pbWFnZWdhbGxlcnlfX2ltYWdld3JhcCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDUuNzVyZW07XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRoIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIEBpZiAkdGh1bWItYm9yZGVyLXdpZHRoID4gMCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0aHVtYi1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICR0aHVtYi1ib3gtc2hhZG93ICE9IG5vbmUge1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYmxhY2ssICRjb250ZW50LWJnLCA5KSwuMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogLjg7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBAaWYgJHRodW1iLWJveC1zaGFkb3ctaG92ZXIgIT0gbm9uZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBlYXN5IHdheSB0byBtYW5pcHVsYXRlIHRoZSBib3ggc2hhZG93IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2JveC1zaGFkb3c6ICR0aHVtYi1ib3gtc2hhZG93LWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDZweCAxcHggcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcsIDkpLCAwLjUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2luZ3Jlc3Mge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fc3RvY2tzdGF0dXM6bm90KC5wcm9kdWN0X19zdG9ja3N0YXR1cy0taGFzLWV4dHJhaW5mbykge1xuICAgICAgICBsaW5lLWhlaWdodDogI3skcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICogMXJlbX07XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2J1eS1idXR0b24uYnV0dG9uLFxuICAgIC5wcm9kdWN0X193aXNobGlzdC1idXR0b24uYnV0dG9uIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygkYnV0dG9uLXJhZGl1cyk7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAucHJvZHVjdF9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDQ0KTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9faW5ncmVzcyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG5cbiAgICAucHJvZHVjdF9fc3RvY2tzdGF0dXM6bm90KC5wcm9kdWN0X19zdG9ja3N0YXR1cy0taGFzLWV4dHJhaW5mbykge1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtcHJpY2UtZm9udHNpemUtbGc7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2Fib3V0Lm1lZGl1bS11bmNlbnRlcmVkOmxhc3QtY2hpbGQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgQGlmICRwcm9kdWN0LXNob3ctdGh1bWJzLW9uLW1lZGl1bS11cCA9PSB0cnVlIHtcbiAgICAgICAgLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkKDUpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkucHJvZHVjdF9faW1hZ2VnYWxsZXJ5X19pbWFnZXdyYXAge1xuICAgICAgICAgICAgaGVpZ2h0OiA2cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2F0dHJpYnV0ZSxcbiAgICAucHJvZHVjdF9fcXVhbnRpdHkge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogNCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2V4dHJhZmllbGRfX3dyYXAge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogOCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3Qge1xuICAgICAgICAucHJvZHVjdF9fYnV5LWJ1dHRvbi5idXR0b24sXG4gICAgICAgIC5wcm9kdWN0X193aXNobGlzdC1idXR0b24uYnV0dG9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCIkcHJvZHVjdC1zZWFyY2gtaG9yaXpvbnRhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmc6IC4yNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXNlYXJjaC1saW5rLWxpbmUtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtYmc6ICNmZmZmZmYgIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtYmcsICRwcm9kdWN0LXNlYXJjaC1yZXN1bHRzLWJnKSAhZGVmYXVsdDtcblxuLnByb2R1Y3Qtc2VhcmNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjAwO1xufVxuXG4ucHJvZHVjdC1zZWFyY2gtcmVzdWx0cyB7XG4gICAgb3BhY2l0eTogLjk1O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1iZztcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC4yNXMgZWFzZSk7XG5cbiAgICAucHJvZHVjdC1zZWFyY2hfX291dHB1dCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmcgMDtcbiAgICB9XG5cbiAgICAmLmlzLWhpZGRlbiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlWCgtOTBkZWcpIHNjYWxlKC44KSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oNTAlIDApO1xuICAgIH1cbn1cblxuLnByb2R1Y3Qtc2VhcmNoX19uby1oaXRzOm5vdCguaXMtaGlkZGVuKSArIC5wcm9kdWN0LXNlYXJjaF9fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5wcm9kdWN0LXNlYXJjaF9fZWxlbWVudCBhIHtcbiAgICBwYWRkaW5nOiAkcHJvZHVjdC1zZWFyY2gtdmVydGljYWwtcGFkZGluZyAkcHJvZHVjdC1zZWFyY2gtaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1iZywgJGhvdmVyLWNvbG9yLCA3KSFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1jb2xvciFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgaHRtbC50b3VjaCAmIHtcbiAgICAgICAgcGFkZGluZzogI3soJHRvdWNoLWZyaWVuZGx5LXNpemUgLSAkYmFzZS1saW5lLWhlaWdodCAqIDFyZW0pLzJ9ICRwcm9kdWN0LXNlYXJjaC1ob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgfVxufVxuXG4ucHJvZHVjdC1zZWFyY2hfX2V4dHJhLWhpdHMge1xuICAgIG1hcmdpbjogMDtcblxuICAgIGEge1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3Qtc2VhcmNoLWxpbmstbGluZS1oZWlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdC1zZWFyY2gtdmVydGljYWwtcGFkZGluZyAkcHJvZHVjdC1zZWFyY2gtaG9yaXpvbnRhbC1wYWRkaW5nO1xuXG4gICAgICAgIGh0bWwudG91Y2ggJiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAjeygkdG91Y2gtZnJpZW5kbHktc2l6ZSAtICRwcm9kdWN0LXNlYXJjaC12ZXJ0aWNhbC1wYWRkaW5nICogMikvMn0gJHByb2R1Y3Qtc2VhcmNoLWhvcml6b250YWwtcGFkZGluZztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnByb2R1Y3Qtc2VhcmNoX19uby1oaXRzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmcgJHByb2R1Y3Qtc2VhcmNoLWhvcml6b250YWwtcGFkZGluZztcbiAgICBjb2xvcjogJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtY29sb3I7XG59IiwiJHJhdGluZy1zdGFyLWNvbG9yOiAkY2FsbC10by1hY3Rpb24tY29sb3IgIWRlZmF1bHQ7XG4kcmF0aW5nLXN0YXItc2l6ZTogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJHJhdGluZy1zdGFyLWZvbnRzaXplOiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XG5cbi5yYXRpbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6ICRyYXRpbmctc3Rhci1zaXplO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICBsYWJlbC5zdGFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGNvbG9yOiBnb2xkO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJHJhdGluZy1zdGFyLWZvbnRzaXplICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAkcmF0aW5nLXN0YXItc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcmF0aW5nLXN0YXItc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRyYXRpbmctc3Rhci1zaXplO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICB9XG5cbiAgICBpbnB1dC5zdGFyLWNoZWNrYm94IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogJHJhdGluZy1zdGFyLXNpemU7XG4gICAgICAgIGhlaWdodDogJHJhdGluZy1zdGFyLXNpemU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgIC5yYXRpbmctY2hlY2tib3gtaGlkZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgICAgLnJlc3AtdGFicy1jb250YWluZXIgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1jb250YWluZXItYmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDUge1xuICAgICAgICBsYWJlbC5zdGFyLSN7JGkgKyAxfSxcbiAgICAgICAgaW5wdXQuc3Rhci1jaGVja2JveC0jeyRpICsgMX0ge1xuICAgICAgICAgICAgbGVmdDogI3skaSAqICRyYXRpbmctc3Rhci1zaXplfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zdGFycy1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtaGlkZSgpO1xuICAgIH1cblxuICAgIGxhYmVsOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLXN0YXIpO1xuICAgICAgICBAZXh0ZW5kIC5pY29uLW1lZGl1bTtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkIH4gbGFiZWwge1xuICAgICAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgfVxuXG4gICAgbGFiZWw6aG92ZXIsXG4gICAgaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGdvbGQ7XG4gICAgfVxuXG4gICAgbGFiZWw6aG92ZXIgfiBsYWJlbCB7XG4gICAgICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICB9XG59IiwiJHJlYWRvbi1pY29uLWJnOiAjMDAwICFkZWZhdWx0O1xuJHJlYWRvbi1pY29uLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJHJlYWRvbi1pY29uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjgpICFkZWZhdWx0O1xuJHJlYWRvbi1vdmVybGF5LW9wYWNpdHk6IC41ICFkZWZhdWx0O1xuJHJlYWRvbi1pY29uLW9wYWNpdHk6IC42ICFkZWZhdWx0O1xuJHJlYWRvbi1pY29uLWhvdmVyLW9wYWNpdHk6IC45ICFkZWZhdWx0O1xuXG4ucmVhZG9uLWljb25fX2NvbnRhaW5lciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRjb250ZW50LWJnLCAkcmVhZG9uLW92ZXJsYXktb3BhY2l0eSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAxNTBtcyBlYXNlKTtcblxuICAgIC50b3VjaCAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5yZWFkb24taWNvbiB7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwwLDAsc2NhbGUzZCgwLjUsIDAuNSwgMC41KSk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zLCAtd2Via2l0LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogZWFzZSwgMHM7XG4gICAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIC1tb3otdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCAtby10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIHRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg0NCk7XG4gICAgd2lkdGg6IHJlbS1jYWxjKDQ0KTtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDQ0KTtcbiAgICBmb250LXNpemU6ICRyZWFkb24taWNvbi1mb250LXNpemU7XG4gICAgY29sb3I6ICRyZWFkb24taWNvbi1jb2xvcjtcbiAgICBvcGFjaXR5OiAuNjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVhZG9uLWljb24tYmc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIHJlbS1jYWxjKDIyKSwgbXMgc3BlYyk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogLjk7XG4gICAgfVxufVxuXG4ucmVhZG9uLWljb25fX3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgIC5yZWFkb24taWNvbl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAucmVhZG9uLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwwLDAsc2NhbGUzZCgxLCAxLCAxKSk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCBcImJvdXJib24vY3NzMy9wbGFjZWhvbGRlclwiO1xuXG4vKipcbiAqIEV4cGFuZGluZyBzZWFyY2ggaW5wdXQgZmllbGRcbiAqXG4gKiBDb2RlIGNvdXJ0ZXN5IG9mIGh0dHA6Ly9jb2RlcGVuLmlvL3NkYWl0em1hbi9wZW4vcm1xZkJcbiAqL1xuXG5AaWYgbGlnaHRuZXNzKCRuYXZpZ2F0aW9uLWJnKSA8IDUwJSB7XG4gICAgJHNlYXJjaC1ib3gtaW5wdXQtYmc6IGxpZ2h0ZW4oJG5hdmlnYXRpb24tYmcsIDEwJSkgIWRlZmF1bHQ7XG4gICAgJHNlYXJjaC1ib3gtaW5wdXQtaG92ZXItYmc6IGxpZ2h0ZW4oJG5hdmlnYXRpb24tYmcsIDIwJSkgIWRlZmF1bHQ7XG4gICAgJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWJnOiBsaWdodGVuKCRuYXZpZ2F0aW9uLWJnLCAzMCUpICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LWljb24tY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG4gICAgJHNlYXJjaC1ib3gtc2hhZG93OiBsaWdodGVuKCRzZWFyY2gtYm94LWlucHV0LWJnLCAyNSUpICFkZWZhdWx0O1xufSBAZWxzZSB7XG4gICAgJHNlYXJjaC1ib3gtaW5wdXQtYmc6IGRhcmtlbigkbmF2aWdhdGlvbi1iZywgNSUpICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LWlucHV0LWhvdmVyLWJnOiAjYzhjOGM4ICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1iZzogZGFya2VuKCRuYXZpZ2F0aW9uLWJnLCAzMCUpICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LWljb24tY29sb3I6ICMwMDAgIWRlZmF1bHQ7XG4gICAgJHNlYXJjaC1ib3gtc2hhZG93OiBkYXJrZW4oJHNlYXJjaC1ib3gtaW5wdXQtYmcsIDI1JSkgIWRlZmF1bHQ7XG59XG5cbiRzZWFyY2gtYm94LWlucHV0LWNvbG9yOmFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWFyY2gtYm94LWlucHV0LWJnLCAkc2VhcmNoLWJveC1pbnB1dC1iZykgIWRlZmF1bHQ7XG4kc2VhcmNoLWJveC1pbnB1dC1ob3Zlci1jb2xvcjphY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2VhcmNoLWJveC1pbnB1dC1ob3Zlci1iZywgJHNlYXJjaC1ib3gtaW5wdXQtaG92ZXItYmcpICFkZWZhdWx0O1xuJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWNvbG9yOmFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1iZywgJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWJnKSAhZGVmYXVsdDtcblxuJHNlYXJjaC1ib3gtdHJhbnNpdGlvbjogMC4zcyAhZGVmYXVsdDsgLy8gdHJhbnNpdGlvbiBsZW5ndGhcbiRzZWFyY2gtYm94LXNpemU6IHJlbS1jYWxjKDQwKSAhZGVmYXVsdDtcblxuLnNlYXJjaC1ib3hfX2NvbnRhaW5lciB7XG4gICAgcGFkZGluZzogKCRuYXYtbGluZS1oZWlnaHQgLSAkc2VhcmNoLWJveC1zaXplKS8yIDA7XG4gICAgaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgIG1pbi13aWR0aDogJHNlYXJjaC1ib3gtc2l6ZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zZWFyY2gtYm94X19zdWJtaXQuaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5pbnB1dC5zZWFyY2gtYm94X19pbnB1dCB7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggJHNlYXJjaC1ib3gtdHJhbnNpdGlvbiwgYm9yZGVyLXJhZGl1cyAkc2VhcmNoLWJveC10cmFuc2l0aW9uLCBiYWNrZ3JvdW5kICRzZWFyY2gtYm94LXRyYW5zaXRpb24sIGJveC1zaGFkb3cgJHNlYXJjaC1ib3gtdHJhbnNpdGlvbjtcbiAgICB3aWR0aDogJHNlYXJjaC1ib3gtc2l6ZTtcbiAgICBoZWlnaHQ6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgYm9yZGVyLXJhZGl1czogJHNlYXJjaC1ib3gtc2l6ZS8yO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogJHNlYXJjaC1ib3gtaW5wdXQtYmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcmlnaHQ6IDA7XG5cbiAgICAmOjotbXMtY2xlYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYgfiBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogJG5hdi1saW5lLWhlaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgICAgIHBhZGRpbmc6ICgkbmF2LWxpbmUtaGVpZ2h0IC0gJHNlYXJjaC1ib3gtc2l6ZSkvMiAwO1xuICAgICAgICB3aWR0aDogJHNlYXJjaC1ib3gtc2l6ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB6LWluZGV4OiAyO1xuXG4gICAgICAgIC5pY29uLXNlYXJjaCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlYXJjaC1ib3gtaWNvbi1jb2xvcjtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmIH4gLnNlYXJjaC1ib3hfX3N1Ym1pdCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogJG5hdi1saW5lLWhlaWdodDtcblxuICAgICAgICB3aWR0aDogJHNlYXJjaC1ib3gtc2l6ZTtcbiAgICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgICAgfiBsYWJlbDpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJy4nO1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6ICgkbmF2LWxpbmUtaGVpZ2h0IC0gJHNlYXJjaC1ib3gtc2l6ZSkvMjtcbiAgICAgICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICAgICAgICBib3R0b206ICgkbmF2LWxpbmUtaGVpZ2h0IC0gJHNlYXJjaC1ib3gtc2l6ZSkvMjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZWFyY2gtYm94LWlucHV0LWhvdmVyLWJnO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDE1MG1zIGVhc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB+IGxhYmVsIHtcbiAgICAgICAgICAgIC5pY29uLXNlYXJjaCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2VhcmNoLWJveC1pbnB1dC1ob3Zlci1iZztcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICRzZWFyY2gtYm94LXNoYWRvdztcblxuICAgICAgICAmIH4gbGFiZWwgLmljb24tc2VhcmNoIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXMsICYuYWN0aXZlIHtcbiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggJHNlYXJjaC1ib3gtdHJhbnNpdGlvbiBjdWJpYy1iZXppZXIoLjYwLDAsLjQwLDEpLCBib3JkZXItcmFkaXVzICRzZWFyY2gtYm94LXRyYW5zaXRpb24sIGJhY2tncm91bmQgJHNlYXJjaC1ib3gtdHJhbnNpdGlvbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtYmc7XG4gICAgICAgIGNvbG9yOiAkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtY29sb3I7XG5cbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXJ7XG4gICAgICAgICAgICBjb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtYmcsICRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1iZyksIC43NSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgJiB+IGxhYmVsIC5pY29uLXNlYXJjaCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJiB+IC5zZWFyY2gtYm94X19zdWJtaXQge1xuICAgICAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KDpmb2N1cyk6bm90KC5hY3RpdmUpIHtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlcntcbiAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhhY3Rpdml0eS1yb3RhdGUpIHtcbiAgICAwJSAgIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgwZGVnKSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDM2MGRlZykpO1xuICAgIH1cbn1cblxuLnNlYXJjaC1ib3hfX2xhYmVsIC5pY29uLXNlYXJjaCB7XG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDE1MG1zIGVhc2UsIG9wYWNpdHkgMTUwbXMgZWFzZSk7XG4gICAgfVxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgLy9jb250ZW50OiBcIiN7JGljb24tdmFyLWxvYWRpbmctaW5kaWNhdG9yfVwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICRpY29uLXNlYXJjaC1vZmZzZXQ6IHJlbS1jYWxjKC03cHgpO1xuICAgICAgICBtYXJnaW4tbGVmdDogJGljb24tc2VhcmNoLW9mZnNldDtcbiAgICAgICAgbWFyZ2luLXRvcDogICRpY29uLXNlYXJjaC1vZmZzZXQ7XG5cbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDApKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG59XG4uc2VhcmNoLWJveC0tbG9hZGluZyAuc2VhcmNoLWJveF9fbGFiZWwgLmljb24tc2VhcmNoIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMCkpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICAmOjphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxKSk7XG4gICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihhY3Rpdml0eS1yb3RhdGUgMXMgMTUwbXMgbGluZWFyIGluZmluaXRlKTtcbiAgICB9XG59XG5cbiNzZWFyY2gtc3VibWl0IHtcbiAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLWhpZGU7XG59XG5cbi5zZWFyY2gtYm94X19jb250YWluZXIge1xuICAgIC5pY29uLXNlYXJjaCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHNtYWxsLXBsdXMtdXB9IHtcbiAgICBpbnB1dC5zZWFyY2gtYm94X19pbnB1dCB7XG4gICAgICAgICY6Zm9jdXMsICYuYWN0aXZlIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgaW5wdXQuc2VhcmNoLWJveF9faW5wdXQge1xuICAgICAgICAmOmZvY3VzLCAmLmFjdGl2ZSB7XG4gICAgICAgICAgICB3aWR0aDogMzUwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmEuc2VhcmNoLW1vZGFsLWxpbmsubmV1dHJhbC1saW5rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn0iLCIvLyBTaG93IGFjdGl2aXR5IGluZGljYXRvciB3aGVuIHNlYXJjaGluZ1xuXG5AaW5jbHVkZSBrZXlmcmFtZXMoYWN0aXZpdHktcm90YXRlKSB7XG4gICAgMCUgICB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMGRlZykpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgzNjBkZWcpKTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuXHQuc2VhcmNoLWJveC0tbG9hZGluZyB7XG5cdFx0LnByb2R1Y3Qtc2VhcmNoIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHQvL0BpbmNsdWRlIGljb24oJGljb24tdmFyLWxvYWRpbmctaW5kaWNhdG9yKTtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IC42NXJlbTtcblx0XHRcdFx0cmlnaHQ6IC4zcmVtO1xuXHRcdFx0XHRAaW5jbHVkZSBhbmltYXRpb24oYWN0aXZpdHktcm90YXRlIDFzIDE1MG1zIGxpbmVhciBpbmZpbml0ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIkc2hvcC1mZWF0dXJlLWljb24tc2l6ZTogNXJlbSAhZGVmYXVsdDtcbiRzaG9wLWZlYXR1cmUtaWNvbi1iZzogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgMTAlKSwgZGFya2VuKCRjb250ZW50LWJnLCA3JSkpICFkZWZhdWx0O1xuJHNlY3Rpb24tc3BhY2luZy1zaXplOiAycmVtICFkZWZhdWx0O1xuJHNob3AtZmVhdHVyZS1pY29uLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjMDAwLCAkc2hvcC1mZWF0dXJlLWljb24tYmcpICFkZWZhdWx0O1xuXG4uc2hvcC1mZWF0dXJlcyB7XG4gICAgQGV4dGVuZCAucGFnZS1kaXZpZGVyO1xuICAgIHBhZGRpbmctdG9wOiAwO1xufVxuXG4uc2hvcC1mZWF0dXJlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNlY3Rpb24tc3BhY2luZy1zaXplLzI7XG59XG5cbi5zaG9wLWZlYXR1cmVfX2hlYWRlciB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW4tdG9wOiAkc2hvcC1mZWF0dXJlLWljb24tc2l6ZSArIDFyZW07XG59XG5cbi5zaG9wLWZlYXR1cmVfX3N1YmhlYWRlciB7XG4gICAgQGV4dGVuZCAlc2xhYi1zZXBhcmF0b3I7XG5cbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDEuM3JlbTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgICBwYWRkaW5nLXRvcDogLjhyZW07XG59XG5cbi5zaG9wLWZlYXR1cmVfX2ljb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC1mZWF0dXJlLWljb24tc2l6ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2hvcC1mZWF0dXJlLWljb24tYmc7XG4gICAgQGluY2x1ZGUgcmFkaXVzKDUwJSk7XG4gICAgd2lkdGg6ICRzaG9wLWZlYXR1cmUtaWNvbi1zaXplO1xuICAgIGhlaWdodDogJHNob3AtZmVhdHVyZS1pY29uLXNpemU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtZmVhdHVyZS1pY29uLXNpemUvMjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IDA7XG4gICAgICAgIGNvbG9yOiAkc2hvcC1mZWF0dXJlLWljb24tY29sb3I7XG4gICAgfVxufVxuXG5hLnNob3AtZmVhdHVyZS0tbGlua2VkIHsgICBcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IFxuXG4gICAgcCB7XG4gICAgICAgIGNvbG9yOiAkY29udGVudC10ZXh0LWNvbG9yO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHNtYWxsLXBsdXMtdXB9IHtcbiAgICAuc2hvcC1mZWF0dXJlIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDYsICRmbG9hdDogbm9uZSk7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLnNob3AtZmVhdHVyZSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiA0LCAkZmxvYXQ6IG5vbmUpO1xuICAgICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn0iLCIuc2xpZGVyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5zbGlkZXJfX3dyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xuICAgIG1hcmdpbi1yaWdodDogLSN7JGNvbHVtbi1ndXR0ZXIvMn07XG4gICAgbWFyZ2luLWxlZnQ6IC0jeyRjb2x1bW4tZ3V0dGVyLzJ9O1xufVxuXG4uc2xpZGUtLWFsaWduLWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc2xpZGUtLWFsaWduLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5zbGlkZS0tYWxpZ24tcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uc2xpZGUge1xuICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIC5ieC13cmFwcGVyICYge1xuICAgICAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgLnNsaWRlcl9fd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfSAgICBcbn0iLCIvLyBTZXQgdGV4dCBjb2xvclxuQGlmIGx1bWEoJGVuZC1iZykgPCA1MCB7XG4gICAgJHNvY2lhbC1pY29uLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkZW5kLWJnKSAhZGVmYXVsdDtcbn0gQGVsc2Uge1xuICAgICRzb2NpYWwtaWNvbi1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkZW5kLWJnKSAhZGVmYXVsdDtcbn1cblxuQGlmIGx1bWEoJGNvbnRlbnQtYmcpIDwgNTAge1xuICAgICRwcm9kdWN0LXNvY2lhbC1pY29uLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkY29udGVudC1iZyk7XG59IEBlbHNlIHtcbiAgICAkcHJvZHVjdC1zb2NpYWwtaWNvbi1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkY29udGVudC1iZyk7XG59XG5cbi5zb2NpYWwtYnV0dG9ucy1saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uc29jaWFsLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAkc29jaWFsLWljb24tc2l6ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3QgJiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLnNvY2lhbC1idXR0b25fX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAkc29jaWFsLWljb24tc2l6ZTtcbiAgICAgICAgd2lkdGg6ICRzb2NpYWwtaWNvbi1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWljb24tYmc7XG4gICAgICAgIG9wYWNpdHk6IC4zO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMnMgZWFzZSk7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cyg1MCUpO1xuICAgICAgICBjb2xvcjogJGVuZC1iZztcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkZW5kLWJnO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0ICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3Qtc29jaWFsLWljb24tYmc7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkcHJvZHVjdC1zb2NpYWwtaWNvbi1iZztcbiAgICAgICAgICAgIG9wYWNpdHk6IC42O1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb250ZW50LWJnO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zb2NpYWwtYnV0dG9uc19faGVhZGxpbmUtd3JhcHBlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnNvY2lhbC1idXR0b24tLWJsb2dnZXIgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgICB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLWJsb2dnZXI7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1ibG9nZ2VyOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1lbGxvIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgICAgICAgeyBjb2xvcjogIzAwMDsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1lbGxvOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItZWxsbzsgfX19XG4uc29jaWFsLWJ1dHRvbi0tZmFjZWJvb2sgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItZmFjZWJvb2s7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1mYWNlYm9vazsgfX19XG4uc29jaWFsLWJ1dHRvbi0tZmxpY2tyIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgICAgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItZmxpY2tyOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItZmxpY2tyOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1nb29nbGVwbHVzIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1nb29nbGVwbHVzOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItZ29vZ2xlcGx1czsgfX19XG4uc29jaWFsLWJ1dHRvbi0taW5zdGFncmFtIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItaW5zdGFncmFtOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItaW5zdGFncmFtOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1saW5rZWRpbiB7IC5zb2NpYWwtYnV0dG9uX19saW5rIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1saW5rZWRpbjsgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLWxpbmtlZGluOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1tYWlsIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgICAgICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1tYWlsOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItbWFpbDsgfX19XG4uc29jaWFsLWJ1dHRvbi0tcGludGVyZXN0IHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItcGludGVyZXN0OyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItcGludGVyZXN0OyB9fX1cbi5zb2NpYWwtYnV0dG9uLS10d2l0dGVyIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci10d2l0dGVyOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItdHdpdHRlcjsgfX19XG4uc29jaWFsLWJ1dHRvbi0tdmltZW8geyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgICAgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItdmltZW87IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci12aW1lbzsgfX19XG4uc29jaWFsLWJ1dHRvbi0teW91dHViZSB7IC5zb2NpYWwtYnV0dG9uX19saW5rIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlICAgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3IteW91dHViZTsgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLXlvdXR1YmU7IH19fVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3Qge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTNyZW07XG4gICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgd2lkdGg6ICRzb2NpYWwtaWNvbi1zaXplO1xuXG4gICAgICAgIC5zb2NpYWwtYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3BhZ2VmcmFtZSAmIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtNC41cmVtO1xuICAgICAgICB9XG4gICAgfVxufSIsIi8qIFNQSU5ORVIsIHVzZWQgaW4gY2hlY2tvdXQgd2hpbGUgY2FydCBpcyBsb2FkaW5nIGZvciBpbnN0YW5jZSAqL1xuXG4jc3Bpbm5lci1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEyMHB4O1xufVxuXG5odG1sLmx0LWllMTAgI3NwaW5uZXItY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jc3Bpbm5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTMwcHg7XG4gICAgYm90dG9tOiAwO1xufVxuXG4jZmxvYXRpbmdDaXJjbGVzRyB7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgd2lkdGg6NjBweDtcbiAgICBoZWlnaHQ6NjBweDtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC42KSk7XG59XG5cbi5mX2NpcmNsZUd7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGO1xuICAgIGhlaWdodDoxMXB4O1xuICAgIHdpZHRoOjExcHg7XG4gICAgYm9yZGVyLXJhZGl1czo1cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLW5hbWUoZl9mYWRlRyk7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWR1cmF0aW9uKDAuOHMpO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoaW5maW5pdGUpO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kaXJlY3Rpb24obm9ybWFsKTtcbn1cblxuI2Zyb3RhdGVHXzAxe1xuICAgIGxlZnQ6MDtcbiAgICB0b3A6MjVweDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC4zcyk7XG59XG5cbiNmcm90YXRlR18wMntcbiAgICBsZWZ0OjdweDtcbiAgICB0b3A6N3B4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjRzKTtcbn1cblxuI2Zyb3RhdGVHXzAze1xuICAgIGxlZnQ6MjVweDtcbiAgICB0b3A6MDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC41cyk7XG59XG5cbiNmcm90YXRlR18wNHtcbiAgICByaWdodDo3cHg7XG4gICAgdG9wOjdweDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC42cyk7XG59XG5cbiNmcm90YXRlR18wNXtcbiAgICByaWdodDowO1xuICAgIHRvcDoyNXB4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjdzKTtcbn1cblxuI2Zyb3RhdGVHXzA2e1xuICAgIHJpZ2h0OjdweDtcbiAgICBib3R0b206N3B4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjhzKTtcbn1cblxuI2Zyb3RhdGVHXzA3e1xuICAgIGxlZnQ6MjVweDtcbiAgICBib3R0b206MDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC45cyk7XG59XG5cbiNmcm90YXRlR18wOHtcbiAgICBsZWZ0OjdweDtcbiAgICBib3R0b206N3B4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgxcyk7XG59XG5cbkAtbW96LWtleWZyYW1lcyBmX2ZhZGVHe1xuICAgIDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMH1cblxuICAgIDEwMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZl9mYWRlR3tcbiAgICAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDB9XG5cbiAgICAxMDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRn1cbn1cblxuQC1tcy1rZXlmcmFtZXMgZl9mYWRlR3tcbiAgICAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDB9XG5cbiAgICAxMDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRn1cbn1cblxuQC1vLWtleWZyYW1lcyBmX2ZhZGVHe1xuICAgIDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMH1cblxuICAgIDEwMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGfVxufVxuXG5Aa2V5ZnJhbWVzIGZfZmFkZUd7XG4gICAgMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwfVxuXG4gICAgMTAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkZ9XG59IiwiJG5hdi1zaWRlLWhlYWRlci1mb250c2l6ZTogJGg0LWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRuYXYtc2lkZS10b3AtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuJHBhZ2UtaGVhZGVyLXNpemU6ICgkcGFnZS10aXRsZS1wYWRkaW5nICogMiArICRoMS1mb250LXNpemUgKiAkaGVhZGVyLWxpbmUtaGVpZ2h0KSAhZGVmYXVsdDtcbiRuYXYtc2lkZS1oZWFkZXItdG9wLXBhZGRpbmc6ICgkcGFnZS1oZWFkZXItc2l6ZSAtICRwYWdlLXRpdGxlLXBhZGRpbmcgLSAkbmF2LXNpZGUtdG9wLW1hcmdpbiAtICRuYXYtc2lkZS1oZWFkZXItZm9udHNpemUgKiAkaGVhZGVyLWxpbmUtaGVpZ2h0KSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtcmVtLWxpbmUtaGVpZ2h0OiAxcmVtICogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiRhY3RpdmUtZWxlbS1ib3JkZXItc2l6ZTogcmVtLWNhbGMoNSk7XG5cbi8vIFRoaXMgY29tcG9uZW50IGlzIG9wdGlvbmFsLCB3aGljaCBpcyB3aHkgaXQgaXMgaW4gYSBtaXhpblxuQG1peGluIHNwbGl0bWVudS1zdHlsZXMoKSB7XG5cbiAgICAubmF2LXNpZGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAje21heCgwLCAtJGNvbHVtbi1ndXR0ZXIgKyAkbmF2LXNpZGUtdG9wLW1hcmdpbil9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjZmNmY2O1xuICAgIH1cblxuICAgIC5uYXYtc2lkZV9faGVhZGVyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAkbmF2LXNpZGUtaGVhZGVyLXRvcC1wYWRkaW5nIDFyZW0gJHBhZ2UtdGl0bGUtcGFkZGluZztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJG5hdi1zaWRlLWhlYWRlci1mb250c2l6ZTtcbiAgICB9XG4gICAgXG4gICAgLnNwbGl0bWVudSB7XG5cbiAgICAgICAgJi5sZXZlbC0wIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sZXZlbC0wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICYuc2VsZWN0ZWQsXG4gICAgICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubGV2ZWwtMSB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubGV2ZWwtMiBhIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuc3BsaXRtZW51X19pdGVtIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDIwKTtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBjb2xvcjogIzU0NTQ1NDtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJGFjdGl2ZS1lbGVtLWJvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IChyZW0tY2FsYygyMCkvMikgKDFyZW0gLSAkYWN0aXZlLWVsZW0tYm9yZGVyLXNpemUpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAubm8tdG91Y2ggJiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogKHJlbS1jYWxjKDE1KS8yKSAoMXJlbSAtICRhY3RpdmUtZWxlbS1ib3JkZXItc2l6ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zm9jdXMsIFxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5jdXJyZW50ID4gYSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJGFjdGl2ZS1lbGVtLWJvcmRlci1zaXplIHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcblxuICAgICAgICAgICAgJjpmb2N1cywgXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogJGFjdGl2ZS1lbGVtLWJvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuc2VsZWN0ZWQgPiBhIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5sZXZlbC0wIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLmxldmVsLTEge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5sZXZlbC0yIGEge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxldmVsLTMgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbkBpZiAkbWVudS10eXBlID09ICdzcGxpdCcge1xuICAgIEBpbmNsdWRlIHNwbGl0bWVudS1zdHlsZXM7XG59IiwidGFibGUge1xuICAgIHRkLnByaXMsXG4gICAgdGgucHJpcyB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbn1cblxudHIuc3VtIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJvZHktZm9udC1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiAzcHggZG91YmxlICRib2R5LWZvbnQtY29sb3I7XG59XG5cbnRhYmxlIHRyIHtcbiAgICAmLmV2ZW4sXG4gICAgJi5hbHQsXG4gICAgJjpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgICAgIGNvbG9yOiAkdGFibGUtZXZlbi1yb3ctdGV4dC1jb2xvcjtcbiAgICB9XG59IiwiYS50aGVtZWQtbmF2IHtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgfVxufSIsIi5zdWJ0bGUge1xuICAgIG9wYWNpdHk6IC42O1xufSIsIiRzdGlja3ktZm9vdGVyLW1lbnU6IGZhbHNlICFkZWZhdWx0O1xuJHNlYXJjaC1tb2RhbDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiAoJHN0aWNreS1mb290ZXItbWVudSkge1xuICAgIEBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL3N0aWNreS1mb290ZXItbWVudVwiO1xuICAgIEBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL3NsaWRlLWluLW1lbnVcIjtcbn1cblxuQGlmICgkc2VhcmNoLW1vZGFsKSB7XG4gICAgQGltcG9ydCBcInF1aWNrZml4L2NvbXBvbmVudHMvc2VhcmNoLW1vZGFsXCI7XG59XG4iLCIkc3RpY2t5LWZvb3Rlci1tZW51LWJnOiAjRUZFRkVGICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItbWVudS1ib3JkZXItY29sb3I6IGRhcmtlbigkc3RpY2t5LWZvb3Rlci1tZW51LWJnLCAxMCUpICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItbWVudS1jb2xvcjogaWYobHVtYSgkc3RpY2t5LWZvb3Rlci1tZW51LWJnKSA8IDUwLCAjZmZmLCAjMDAwKSAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLWljb24tY29sb3I6ICRzdGlja3ktZm9vdGVyLW1lbnUtY29sb3IgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1oZWlnaHQ6IHJlbS1jYWxjKDYwKSAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTogbWluKHJlbS1jYWxjKDI4KSwgLjQgKiAkc3RpY2t5LWZvb3Rlci1oZWlnaHQpICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1pY29uLXRvcC1wb3NpdGlvbjogJHN0aWNreS1mb290ZXItaGVpZ2h0IC0gJHN0aWNreS1mb290ZXItaWNvbi1zaXplIC0gJHN0aWNreS1mb290ZXItbGFiZWwtZm9udC1zaXplIC0gcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yLWFkanVzdG1lbnQ6IDglICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yOiBpZihsdW1hKCRzdGlja3ktZm9vdGVyLW1lbnUtYmcpIDwgNTAsIGxpZ2h0ZW4oJHN0aWNreS1mb290ZXItbWVudS1iZywgJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yLWFkanVzdG1lbnQpLCBkYXJrZW4oJHN0aWNreS1mb290ZXItbWVudS1iZywgJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yLWFkanVzdG1lbnQpKSAhZGVmYXVsdDtcblxuYm9keS5zdGlja3ktZm9vdGVyLW1lbnUgI2VuZCB7XG4gICAgcGFkZGluZy1ib3R0b206ICRzdGlja3ktZm9vdGVyLWhlaWdodDtcbn1cblxuI21lbnUtdG9nZ2xlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI3N0aWNreS1mb290ZXItbWVudSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRzdGlja3ktZm9vdGVyLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkc3RpY2t5LWZvb3Rlci1tZW51LWJnO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc3RpY2t5LWZvb3Rlci1tZW51LWJvcmRlci1jb2xvcjtcbiAgICB6LWluZGV4OiAyMDI7XG5cbiAgICB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMSk7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogNzAlO1xuICAgICAgICAgICAgdG9wOiAxNSU7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN0aWNreS1mb290ZXItc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmID4gYSxcbiAgICAgICAgJiA+IGxhYmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3RpY2t5LWZvb3Rlci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTtcblxuICAgICAgICAgICAgbGluZSxcbiAgICAgICAgICAgIGNpcmNsZSB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAkc3RpY2t5LWZvb3Rlci1pY29uLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRzdGlja3ktZm9vdGVyLWljb24tY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJHN0aWNreS1mb290ZXItbWVudS1jb2xvcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5zdGlja3ktZm9vdGVyX19pY29uLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN0aWNreS1mb290ZXItbGFiZWwtZm9udC1zaXplO1xuICAgICAgICBwYWRkaW5nLXRvcDogLjM1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6ICRzdGlja3ktZm9vdGVyLW1lbnUtY29sb3I7XG4gICAgfVxuXG4gICAgLyogTWVudSBzdHlsaW5nICovXG4gICAgI25hdi1vcGVuLWJ0biB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkc3RpY2t5LWZvb3Rlci1pY29uLXNpemU7XG4gICAgfVxuXG4gICAgLyogQ2FydCBzdHlsaW5nICovXG4gICAgLmNhcnQtYW5kLWNoZWNrb3V0IHtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICAgIC5jYXJ0LWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3N0aWNreS1mb290ZXItbWVudV9fY2FydCB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICB0b3A6ICRzdGlja3ktZm9vdGVyLWljb24tdG9wLXBvc2l0aW9uIC0gcmVtLWNhbGMoOSk7XG4gICAgICAgIGxlZnQ6IGNhbGMoNTAlICsgM3B4KTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cbn1cbiIsIiRtZW51LWJnOiAjZmZmICFkZWZhdWx0O1xuJG1lbnUtbGluay1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJvZHktZm9udC1jb2xvciwgJG1lbnUtYmcpO1xuJG1lbnUtbGluay1ob3Zlci1jb2xvcjogaWYoXG4gICAgbHVtYSgkcHJpbWFyeS1jb2xvcikgPiBsdW1hKCRtZW51LWJnKSxcbiAgICBsaWdodGVuKCRtZW51LWxpbmstY29sb3IsIDEwJSksXG4gICAgZGFya2VuKCRtZW51LWxpbmstY29sb3IsIDEwJSlcbik7XG4kbWVudS1oZWFkZXItcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcbiRtZW51LWhlYWRlci1mb250LXNpemU6IHJlbS1jYWxjKDIxKSAhZGVmYXVsdDtcbiRtZW51LWhlYWRlci1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuJG1lbnUtaGVhZGVyLWhlaWdodDogJG1lbnUtaGVhZGVyLXBhZGRpbmcgKiAyICsgJG1lbnUtaGVhZGVyLWZvbnQtc2l6ZSAqICRtZW51LWhlYWRlci1saW5lLWhlaWdodDtcbiRtZW51LWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWxpbmUtaGVpZ2h0OiAxLjI1ICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1oZWlnaHQ6IHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tb3BlbmVyLXNpemU6ICRtZW51LWl0ZW0taGVpZ2h0ICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1pbmRlbnRhdGlvbjogMXJlbSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tYm9yZGVyLWNvbG9yOiAjZWVlICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1ib3JkZXItc3R5bGU6IDFweCBzb2xpZCAjeyRtZW51LWl0ZW0tYm9yZGVyLWNvbG9yfSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0taG92ZXItZWZmZWN0LWNvbG9yOiByZ2JhKCNiYmIsIC4xKSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tc21hbGxlci1mb250LXNpemU6ICRtZW51LWl0ZW0tZm9udC1zaXplIC0gcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG4kbWVudS10cmFuc2l0aW9uLXNwZWVkOiAzMDBtcyAhZGVmYXVsdDtcblxuYm9keS5tZW51LW9wZW4ge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cblxuI21lbnUtbWFzayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDE5OTk7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IC0xMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC41KTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRtZW51LXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgI21lbnUtdG9nZ2xlcjpjaGVja2VkIH4gJiB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4jbWVudSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICB6LWluZGV4OiAyMDAwO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxNDBweCAwIHJnYmEoMCwwLDAsLjE2KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAkbWVudS1iZztcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICB3aWR0aDogNDByZW07XG4gICAgbWF4LXdpZHRoOiA4NSU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0ICRtZW51LXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgY3Vyc29yOiBhdXRvO1xuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMHJlbSkge1xuICAgICAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgICAgIG1heC13aWR0aDogNzUlO1xuICAgIH1cblxuICAgICNtZW51LXRvZ2dsZXI6Y2hlY2tlZCB+ICYge1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIGhlYWRlciB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDNkM2QzO1xuICAgICAgICBwYWRkaW5nOiAkbWVudS1oZWFkZXItcGFkZGluZyAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtYmc7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWVudS1oZWFkZXItZm9udC1zaXplO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRtZW51LWhlYWRlci1saW5lLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRtZW51LWhlYWRlci1saW5lLWhlaWdodDtcbiAgICAgICAgICAgIGhlaWdodDogJG1lbnUtaGVhZGVyLWxpbmUtaGVpZ2h0ICogJG1lbnUtaGVhZGVyLWZvbnQtc2l6ZSArICRtZW51LWhlYWRlci1wYWRkaW5nICogMjtcbiAgICAgICAgICAgIHdpZHRoOiAkbWVudS1pdGVtLW9wZW5lci1zaXplO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJG1lbnUtaXRlbS1ib3JkZXItc3R5bGU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGVhc2UsIGhlaWdodCAwcyBlYXNlLCBvcGFjaXR5ICRtZW51LXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcblxuICAgICAgICAgICAgbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNCB7XG4gICAgICAgICAgICAmLm1lbnUtLWxldmVsLSN7JGl9IHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkaSA+IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1lbnUtaXRlbS1zbWFsbGVyLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAoJG1lbnUtaXRlbS1oZWlnaHQgLSAoJG1lbnUtaXRlbS1zbWFsbGVyLWZvbnQtc2l6ZSAqICRtZW51LWl0ZW0tbGluZS1oZWlnaHQpKS8yO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICgkbWVudS1pdGVtLWhlaWdodCAtICgkbWVudS1pdGVtLXNtYWxsZXItZm9udC1zaXplICogJG1lbnUtaXRlbS1saW5lLWhlaWdodCkpLzI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRtZW51LWl0ZW0tZm9udC1zaXplO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAoJG1lbnUtaXRlbS1oZWlnaHQgLSAoJG1lbnUtaXRlbS1mb250LXNpemUgKiAkbWVudS1pdGVtLWxpbmUtaGVpZ2h0KSkvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogKCRtZW51LWl0ZW0taGVpZ2h0IC0gKCRtZW51LWl0ZW0tZm9udC1zaXplICogJG1lbnUtaXRlbS1saW5lLWhlaWdodCkpLzI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICgkaSArIDEpICogJG1lbnUtaXRlbS1pbmRlbnRhdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWVudS1pdGVtLXdyYXAge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgYm9yZGVyLXRvcDogJG1lbnUtaXRlbS1ib3JkZXItc3R5bGU7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1lbnUtaXRlbS1mb250LXNpemU7XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWVudS1pdGVtLWZvbnQtc2l6ZSArIHJlbS1jYWxjKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRtZW51LWl0ZW0tYm9yZGVyLXN0eWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgd2lkdGg6ICRtZW51LWl0ZW0tb3BlbmVyLXNpemU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1ob3Zlci1lZmZlY3QtY29sb3I7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDk4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAkbWVudS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogY3VycmVudCBpdGVtIGhpZ2hsaWdodGluZyAqL1xuICAgICAgICAmLmN1cnJlbnQgPiAubWVudS1pdGVtLXdyYXAgYSB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBsaW5lLWhlaWdodDogJG1lbnUtaXRlbS1saW5lLWhlaWdodDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogKCRtZW51LWl0ZW0taGVpZ2h0IC0gJG1lbnUtaXRlbS1saW5lLWhlaWdodCkvMiAkbWVudS1pdGVtLWluZGVudGF0aW9uO1xuICAgICAgICBjb2xvcjogJG1lbnUtbGluay1jb2xvcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVudS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaG92ZXIgZWZmZWN0ICovXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0taG92ZXItZWZmZWN0LWNvbG9yO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgei1pbmRleDogOTg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5tZW51LS1vcGVuZXIge1xuICAgICAgICAmIH4gLm1lbnUtaXRlbS13cmFwIGEge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDgwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDEwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAmIH4gLm1lbnUtaXRlbS13cmFwIHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1ob3Zlci1lZmZlY3QtY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWhvdmVyLWVmZmVjdC1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmIH4gdWwge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiI3NlYXJjaC1tb2RhbCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC44NSk7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAuNXM7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgei1pbmRleDogLTE7XG5cbiAgICAmOnRhcmdldCB7XG4gICAgICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG4gICAgICAgIHotaW5kZXg6IDIwMztcbiAgICAgICAgI3NlYXJjaC1tb2RhbF9fY2xvc2Uge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAjc2VhcmNoLW1vZGFsX19pbnB1dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZmFkZSB7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXM7XG4gICAgfVxufVxuXG4jc2VhcmgtbW9kYWxfX2Zvcm0ge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xufVxuXG4jc2VhcmNoLW1vZGFsX19pbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIG91dGxpbmU6IDA7XG4gICAgcGFkZGluZzogMnJlbSAxcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG59XG5cbiNzZWFyY2gtbW9kYWxfX2Nsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAycmVtO1xuICAgIHJpZ2h0OiAycmVtO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDRyZW07XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxufVxuIiwiLy8gRGVwZW5kZW5jaWVzXG5AaW1wb3J0IFwiYm91cmJvbi9zZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImJvdXJib24vYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2ZsZXgtYm94XCI7XG5cbkBpbXBvcnQgXCJlcXVhbC1oZWlnaHQvc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJlcXVhbC1oZWlnaHQvZ3JpZFwiOyIsIi8qKlxuICogRGVmaW5lIG51bWJlciBvZiBjb2x1bW5zIGF0IGVhY2ggYnJlYWtwb2ludFxuICpcbiAqIEZvcm1hdCBpcyBhIG1hcCB3aXRoIG51bWJlciBvZiBjb2x1bW5zIGFzIGtleSBhbmQgdGhlIGJyZWFrcG9pbnQgcmFuZ2UgYXMgYSB2YWx1ZS5cbiAqIFRoZSByYW5nZXMgaGVyZSBhcmUgYmFzZWQgb24gYSBtaW5pbXVtIGJsb2NrIHNpemUgb2Ygcm91Z2hseSAyODBweCwgc28gdHdvIGNvbHVtbnMgXG4gKiBnaXZlcyBhIG1pbmltdW0gd2lkdGggb2YgNTYwcHgsIHdoaWNoIGVxdWFscyAzNWVtLCBhbmQgc28gb24uXG4gKiBcbiAqIEB0eXBlIG1hcFxuICovXG4kZXF1YWwtaGVpZ2h0LWxheW91dC1yYW5nZXM6IChcblx0MTogKDBlbSwgICAgMzQuOTM3NWVtKSxcblx0MjogKDM1ZW0sICAgNTIuNDM3NWVtKSxcblx0MzogKDUyLjVlbSwgNjkuOTM3NWVtKSxcblx0NDogKDcwZW0sICAgODcuNDM3NWVtKSxcblx0NTogKDg3LjVlbSwgMTA0LjkzNzVlbSksXG5cdDY6ICgxMDVlbSwgIDk5OTk5OTk5ZW0pXG4pICFkZWZhdWx0O1xuXG4vLyBTcGFjaW5nIGJldHdlZW4gY29sdW1uc1xuJGVxdWFsLWhlaWdodC1pdGVtLXNwYWNpbmc6IDFyZW0gIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWlubmVyLXBhZGRpbmc6IDAgIWRlZmF1bHQ7IiwiLmVxdWFsLWhlaWdodC1jb2x1bW5zIHtcblx0ZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IC0kZXF1YWwtaGVpZ2h0LWl0ZW0tc3BhY2luZy8yO1xuICAgIG1hcmdpbi1yaWdodDogLSRlcXVhbC1oZWlnaHQtaXRlbS1zcGFjaW5nLzI7XG5cbiAgICAuZmxleGJveCAmIHtcbiAgICAgICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICAgIH1cbn1cblxuLmVxdWFsLWhlaWdodC1jb2x1bW4ge1xuXHRmbG9hdDogbGVmdDtcblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbi1ib3R0b206ICRlcXVhbC1oZWlnaHQtaXRlbS1zcGFjaW5nO1xuXHRwYWRkaW5nOiAwICRlcXVhbC1oZWlnaHQtaXRlbS1zcGFjaW5nLzI7XG5cbiAgICAuZmxleGJveCAmIHtcbiAgICAgICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICB9XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uLWlubmVyd3JhcCB7XG4gXHR3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAkZXF1YWwtY29sLWlubmVyLXBhZGRpbmc7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbiRudW0tcmFuZ2VzOiBsZW5ndGgoJGVxdWFsLWhlaWdodC1sYXlvdXQtcmFuZ2VzKTtcbiRyYW5nZS1pdGVyYXRpb246IDE7XG5cbkBlYWNoICRlcXVhbC1oZWlnaHQtY29sdW1ucywgJGVxdWFsLWhlaWdodC1yYW5nZSBpbiAkZXF1YWwtaGVpZ2h0LWxheW91dC1yYW5nZXMge1xuXG5cdCRtYXgtd2lkdGg6IGlmKCRyYW5nZS1pdGVyYXRpb24gPCAkbnVtLXJhbmdlcywgdXBwZXItYm91bmQoJGVxdWFsLWhlaWdodC1yYW5nZSksIDk5OTk5OTk5cmVtKTtcblxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRlcXVhbC1oZWlnaHQtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6ICRtYXgtd2lkdGgpIHtcblx0XHQuZXF1YWwtaGVpZ2h0LWNvbHVtbiB7XG5cdFx0XHR3aWR0aDogMTAwJS8kZXF1YWwtaGVpZ2h0LWNvbHVtbnM7XG5cdFx0fVxuXHR9XG5cblx0JHJhbmdlLWl0ZXJhdGlvbjogJHJhbmdlLWl0ZXJhdGlvbiArIDE7XG59IiwiQGltcG9ydCBcImJvdXJib24vY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvdHJhbnNpdGlvblwiO1xuXG5AaW1wb3J0IFwiaG92ZXJmeC9iYXNlXCI7XG5AaW1wb3J0IFwiaG92ZXJmeC9ibHVyXCI7XG5AaW1wb3J0IFwiaG92ZXJmeC9jb3ZlclwiO1xuQGltcG9ydCBcImhvdmVyZngvZmlnY2FwdGlvblwiO1xuQGltcG9ydCBcImhvdmVyZngvbGV2aXRhdGVcIjtcbkBpbXBvcnQgXCJob3ZlcmZ4L3Nob3d0aXRsZVwiO1xuQGltcG9ydCBcImhvdmVyZngvdGlsdFwiO1xuXG5hW2NsYXNzXj1cImhmeC0tXCJdLFxuYVtjbGFzcyo9XCIgaGZ4LS1cIl0ge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59IiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cblxuIiwiJWhmeC1iYXNlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn0iLCIkaGZ4LWJsdXItdmFsdWU6IDJweCAhZGVmYXVsdDtcblxuLmhmeC0tYmx1ciB7XG5cdCY6aG92ZXIgaW1nIHtcblx0XHRAaW5jbHVkZSBmaWx0ZXIoYmx1cigkaGZ4LWJsdXItdmFsdWUpKTtcblx0fVxufSIsIkBpZiB2YXJpYWJsZS1leGlzdHMoXCJpY29uLXZhci1zZWFyY2hcIikgPT0gZmFsc2Uge1xuXHRAZXJyb3IgXCJNaXNzaW5nIGljb24gdmFyaWFibGVcIjsgXG59XG5cbkBpZiBtaXhpbi1leGlzdHMoXCJpY29uXCIpID09IGZhbHNlIHtcblx0QGVycm9yIFwiTWlzc2luZyBpY29uIG1peGluXCI7IFx0XG59XG5cbiRoZngtaWNvbi1zaXplOiByZW0tY2FsYygzMCkgIWRlZmF1bHQ7XG5cbi5oZngtLWNvdmVyLS1saWdodCxcbi5oZngtLWNvdmVyLS1kYXJrIHtcblx0QGV4dGVuZCAlaGZ4LWJhc2U7XG5cblx0Jjo6YmVmb3JlLFxuXHQmOjphZnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1x0XHRcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0b3BhY2l0eTogMDtcblx0XHR6LWluZGV4OiAxO1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjNzIGVhc2UpO1xuXHR9XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoI2ZmZiwgLjY1KTtcblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRAaW5jbHVkZSBpY29uKCRpY29uLXZhci1zZWFyY2gpO1xuXHRcdGZvbnQtc2l6ZTogJGhmeC1pY29uLXNpemU7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0Y29sb3I6IHJnYmEoIzAwMCwgMC42NSk7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bGVmdDogMDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0bWFyZ2luLXRvcDogJGhmeC1pY29uLXNpemUvLTI7XG5cdFx0aGVpZ2h0OiAxZW07XG5cdFx0ei1pbmRleDogMjtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4uaGZ4LS1jb3Zlci0tZGFyayB7XG5cdCY6OmJlZm9yZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMDAwLCAuNjUpO1xuXHR9XG5cblx0Jjo6YWZ0ZXIge1xuXHRcdGNvbG9yOiByZ2JhKCNmZmYsIDAuNzUpO1xuXHR9XG59IiwiJGhmeC1maWdjYXB0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjUpICFkZWZhdWx0O1xuJGhmeC1maWdjYXB0aW9uLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kaGZ4LWZpZ2NhcHRpb24tZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG4kaGZ4LWZpZ2NhcHRpb24tdHJhaWxlci1zeW1ib2w6IGZhbHNlICFkZWZhdWx0O1xuJGhmeC1maWdjYXB0aW9uLWxpZ2h0LWNvbG9yOiByZ2JhKCNmZmYsIC45KSAhZGVmYXVsdDtcbiRoZngtZmlnY2FwdGlvbi1kYXJrLWNvbG9yOiByZ2JhKCMwMDAsIC45KSAhZGVmYXVsdDtcblxuLmhmeC0tZmlnY2FwdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXNpemU6ICRoZngtZmlnY2FwdGlvbi1mb250LXNpemU7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRoZngtZmlnY2FwdGlvbi10ZXh0LXRyYW5zZm9ybTtcbiAgICBmb250LXdlaWdodDogJGhmeC1maWdjYXB0aW9uLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogLjVlbTtcbiAgICAgICAgei1pbmRleDoyO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IC4zcyBlYXNlLWluLW91dCwgY29sb3IgLjNzIGVhc2UtaW4tb3V0KTtcblxuICAgICAgICBAaWYgJGhmeC1maWdjYXB0aW9uLXRyYWlsZXItc3ltYm9sICE9IGZhbHNlIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRoZngtZmlnY2FwdGlvbi10cmFpbGVyLXN5bWJvbH1cIjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC4yNWVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhmeC0tZmlnY2FwdGlvbi0tYm90dG9tLWxlZnQge1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmhmeC0tZmlnY2FwdGlvbi0tYm90dG9tLXJpZ2h0IHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG5cbiAgICAuaGZ4LS1maWdjYXB0aW9uLS10b3AtbGVmdCB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAuaGZ4LS1maWdjYXB0aW9uLS10b3AtcmlnaHQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5iYWNrZ3JvdW5kLS1saWdodCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tZGFyay1jb2xvcjtcblxuICAgICAgICAuaGZ4LS1jb3Zlci0tZGFyazpob3ZlciAmLFxuICAgICAgICAuaGZ4LS1jb3Zlci0tZGFyazpmb2N1cyAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tbGlnaHQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmFja2dyb3VuZC0tZGFyayB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tbGlnaHQtY29sb3I7XG5cbiAgICAgICAgLmhmeC0tY292ZXItLWxpZ2h0OmhvdmVyICYsXG4gICAgICAgIC5oZngtLWNvdmVyLS1saWdodDpmb2N1cyAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaGZ4LWZpZ2NhcHRpb24tZGFyay1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuaGZ4LS1sZXZpdGF0ZSB7XG5cdGltZyB7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gLjNzIGVhc2UsIGJveC1zaGFkb3cgLjNzIGVhc2UpO1xuXHR9XG5cblx0Jjpob3ZlciB7XG5cdFx0aW1nIHtcblx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxLjEpIHRyYW5zbGF0ZXooMCkpO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAzcHggMTBweCByZ2JhKCMwMDAsIC4yNSk7XG5cdFx0fVxuXHR9XG59IiwiQGlmIHZhcmlhYmxlLWV4aXN0cyhcImNvbnRlbnQtYmdcIikgPT0gZmFsc2Uge1xuXHRAZXJyb3IgXCJNaXNzaW5nIGNvbnRlbnQtYmcgdmFyaWFibGVcIjsgXG59XG5cblxuLmhmeC0tc2hvdy10aXRsZSB7XG5cdEBleHRlbmQgJWhmeC1iYXNlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdGltZyB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4yNXMgZWFzZSk7XG5cdH1cblxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OiBhdHRyKHRpdGxlKTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Y29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCMzMzMsICRjb250ZW50LWJnLCA2KTtcblx0XHRib3R0b206IC0xMDAlO1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoJGNvbnRlbnQtYmcsIDAuNzUpO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZzogMXJlbTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJvdHRvbSAwLjI1cyBlYXNlKTtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdGltZyB7XG5cdFx0XHRvcGFjaXR5OiAwLjM7XG5cdFx0fVxuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0fVxuXHR9XG59IiwiJGhmeC10aWx0LWFuZ2xlOiA1ZGVnICFkZWZhdWx0O1xuXG4uaGZ4LS10aWx0LS1yaWdodCxcbi5oZngtLXRpbHQtLWxlZnQge1xuXHRAZXh0ZW5kICVoZngtYmFzZTtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblx0aW1nIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gMC4ycyBlYXNlKTtcblx0fVxufVxuXG4uaGZ4LS10aWx0LS1yaWdodCB7XG5cdCY6aG92ZXIge1xuXHRcdGltZyB7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKCRoZngtdGlsdC1hbmdsZSkgdHJhbnNsYXRleigwKSk7XG5cdFx0fVxuXHR9XG59XG5cbi5oZngtLXRpbHQtLWxlZnQge1xuXHQmOmhvdmVyIHtcblx0XHRpbWcge1xuXHRcdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtJGhmeC10aWx0LWFuZ2xlKSB0cmFuc2xhdGV6KDApKTtcblx0XHR9XG5cdH1cbn1cbiIsIiRpY29uaXplZC1saXN0LWljb24td2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4kaWNvbml6ZWQtbGlzdC1zcGFjaW5nOiAxcmVtICFkZWZhdWx0O1xuJGljb25pemVkLWxpc3QtaWNvbi1jb2xvcjogIzAwMCAhZGVmYXVsdDtcblxuLmljb25pemVkLWxpc3Qge1xuXHRbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlLFxuXHRbY2xhc3MqPVwiIGljb24tXCJdOmJlZm9yZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAkaWNvbml6ZWQtbGlzdC1pY29uLXdpZHRoO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRjb2xvcjogJGljb25pemVkLWxpc3QtaWNvbi1jb2xvcjtcblx0fSBcbn1cblxuLmljb25pemVkLWxpc3RfX2hlYWRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1sZWZ0OiAkaWNvbml6ZWQtbGlzdC1pY29uLXdpZHRoO1xufVxuXG4uaWNvbml6ZWQtbGlzdF9fY29udGVudCB7XG5cdHBhZGRpbmctbGVmdDogJGljb25pemVkLWxpc3QtaWNvbi13aWR0aDtcblx0bWFyZ2luLWJvdHRvbTogJGljb25pemVkLWxpc3Qtc3BhY2luZztcbn0iLCIjZm9vdGVyIHtcblx0LmJsb2NrX19ib3hfX2hlYWRsaW5lIHtcblx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcblx0fVxufVxuXG4uYmxvY2tfX2JveC0tYWJvdXRfbWVudSBsaSB7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xufVxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy11cH0ge1xuXHQjZm9vdGVyIHtcblx0XHQuYmxvY2tfX2JveF9faGVhZGxpbmUge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogLjVyZW07XG5cdFx0XHRcblx0XHRcdEBpZihsdW1hKCRmb290ZXItYmcpIDwgNTApIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0ZW4oJGZvb3Rlci1iZywgMjUlKTtcblx0XHRcdFx0Y29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRmb290ZXItYmcpO1xuXHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oJGZvb3Rlci1iZywgMjUlKTtcblx0XHRcdFx0Y29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCMwMDAsICRmb290ZXItYmcpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5ibG9ja19fYm94IHtcblx0XHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdFx0fVxuXHR9XG59XG4iLCIkYmVzdHNlbGxlci1pbWFnZS1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcbiRkaXNjb3VudC1wcmljZS1tYXJnaW46IC41cmVtICFkZWZhdWx0O1xuXG4jYmVzdHNlbGxlcl9fbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICBhOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uYmVzdHNlbGxlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogLjI1cmVtIDA7XG5cbiAgICAucm93IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbn1cblxuLmJlc3RzZWxsZXJfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAuMjVyZW0gMCAuMjVyZW0gMDtcbn1cblxuLmJlc3RzZWxsZXJfX2ltYWdlIHtcbiAgICB3aWR0aDogMjUlO1xuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAycHg7XG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBtYXgtaGVpZ2h0OiByZW0tY2FsYyg3MCk7XG5cbiAgICAgICAgQGlmICRnbG9iYWwtcmFkaXVzID4gMCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJlc3RzZWxsZXJfX3ByaWNlIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4uYmVzdHNlbGxlcl9fY3VycmVuY3kge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmJlc3RzZWxsZXItLW9uLXNhbGUgLnByaWNlIHtcbiAgICAuY29udGVudC1iZyAmIHtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjYWxsLXRvLWFjdGlvbi1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgIH1cblxuICAgIC5mb290ZXItYmcgJiB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY2FsbC10by1hY3Rpb24tY29sb3IsICRmb290ZXItYmcpO1xuICAgIH1cbn1cblxuLmJlc3RzZWxsZXJfX3ByaWNlLS1vcmlnaW5hbCB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgbWFyZ2luLWxlZnQ6ICRkaXNjb3VudC1wcmljZS1tYXJnaW47XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59IiwiLmljb25pemVkLWxpc3RfX2hlYWRlciB7XG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFpbXBvcnRhbnQ7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnemVuaXRoJyAhaW1wb3J0YW50O1xuICAgIH1cbn0iLCIuaGVhZGVyLWZ1bmN0aW9ucyB7XG5cdGhlaWdodDogJGxvZ28taGVpZ2h0O1xufVxuXG4uY2FydC1idXR0b24sXG4jbmF2LW9wZW4tYnRuIHtcblx0bGluZS1oZWlnaHQ6ICRsb2dvLWhlaWdodDtcbn1cblxuI3VzZXItbmF2IC5pY29uLXNlYXJjaCB7XG5cdGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuXG4jbmF2LW9wZW4tYnRuIHtcblx0Zm9udC1zaXplOiAxLjI1cmVtO1xuXHRtYXJnaW4tbGVmdDogMXJlbTtcbn1cblxuI3VzZXItbmF2IC5zZWFyY2gtdG9nZ2xlciB7XG5cdCY6Zm9jdXMsIFxuXHQmOmhvdmVyLFxuXHQmLnRvZ2dsZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkdG9wLWJnLCAxLjUpOyBcblx0XHRjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJHByaW1hcnktY29sb3IpO1xuXHR9XG59XG5cbiNoaWRkZW4tc2VhcmNoLXdyYXBwZXIge1xuXHRwYWRkaW5nOiAxcmVtIDEwJTtcblxuXHRpbnB1dCwgYnV0dG9uIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG5cbi5zZWFyY2gtdG9nZ2xlci50b2dnbGVkIHtcblx0Lmljb24tc2VhcmNoOmJlZm9yZSB7XG5cdFx0Y29udGVudDogJGljb24tdmFyLWNsb3NlO1xuXHR9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcblx0I3VzZXItbmF2IC5pY29uLXNlYXJjaCB7XG5cdFx0Zm9udC1zaXplOiAuOXJlbTtcblx0fVxuXG5cdCNoaWRkZW4tc2VhcmNoLXdyYXBwZXIge1xuXHRcdHBhZGRpbmc6IDFyZW0gMDtcblx0fVxufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcblx0LmhlYWRlci1mdW5jdGlvbnMge1xuXHRcdGhlaWdodDogJGxvZ28tbGFyZ2UtaGVpZ2h0O1xuXHR9XG5cblx0LmNhcnQtYnV0dG9uLFxuXHQjbmF2LW9wZW4tYnRuIHtcblx0XHRsaW5lLWhlaWdodDogJGxvZ28tbGFyZ2UtaGVpZ2h0O1xuXHR9XG5cblx0I25hdiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXHRcblx0QGlmICRmb3JjZS1oaWRlLXNlYXJjaC1vbi1sYXJnZS11cCA9PSB0cnVlIHtcblx0XHQjaGlkZGVuLXNlYXJjaC13cmFwcGVyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn0iLCIjbWFpbiB7XG5cdHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlcjtcbn1cblxuI21haW4tY29udGVudCB7XG5cdHBhZGRpbmctdG9wOiAwO1xufVxuXG4uc2xpZGVyX193cmFwcGVyIHtcblx0bWFyZ2luLWxlZnQ6IDA7XG5cdG1hcmdpbi1yaWdodDogMDtcbn1cblxuLnNob3AtZmVhdHVyZXMge1xuXHRwYWRkaW5nLXRvcDogJHNlY3Rpb24tc3BhY2luZy1zaXplO1xufVxuXG4ucGFnZV9fdGl0bGUge1xuXHRtYXJnaW4tdG9wOiAwO1xuXHRwYWRkaW5nLXRvcDogMDtcbn0iLCIvL0BUT0RPIHR1cm4gdGhpcyBpbnRvIGEgbWl4aW4sIHJlZmFjdG9yIHF1aWNrZml4IGludG8gdXNpbmcgYXMgbXVjaCBtaXhpbnMgYXMgcG9zc2libGVcblxuJG5hdi10b2dnbGVyLXNpemU6ICgkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICogJHNpZGUtbmF2LWZvbnQtc2l6ZSkgKyAobnRoKCRzaWRlLW5hdi1saW5rLXBhZGRpbmcsIDEpICogMik7XG5cbi5ibG9jay1uYXYge1xuICAgIEBpbmNsdWRlIHNpZGUtbmF2KFxuICAgICAgICAkbGluay1jb2xvcjogJHByaW1hcnktY29sb3IsXG4gICAgICAgICRsaW5rLWNvbG9yLWhvdmVyOiBpZihsdW1hKCRob3Zlci1jb2xvcikgPCA2MCwgd2hpdGUsIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkaG92ZXItY29sb3IpKSxcbiAgICAgICAgJGxpbmstYmctaG92ZXI6ICRob3Zlci1jb2xvclxuICAgICk7XG59XG5cbi5ibG9ja19fYm94IGxpIGE6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jc3BsaXRtZW51IHtcbiAgICAuYmxvY2stbmF2X19pdGVtIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJvZHktZm9udC1jb2xvciwgJHNpZGUtbmF2LWJnY29sb3IpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZmZmZiwgJGhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJsb2NrLW5hdl9faXRlbSB7XG4gICAgYSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNpZGUtbmF2LWl0ZW0tYm9yZGVyLWNvbG9yO1xuXG4gICAgICAgICY6aG92ZXIgKyAubWFpbi1uYXZfX3RvZ2dsZTpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKHdoaXRlLCAkc2lkZS1uYXYtbGluay1iZy1ob3ZlcikgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAmLmN1cnJlbnQge1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTFweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSh3aGl0ZSwgJHByaW1hcnktY29sb3IpIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAmLnBhcmVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbmF2LXRvZ2dsZXItc2l6ZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5sZXZlbC0wIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkc2lkZWJhci1ib3gtYm9yZGVyLWNvbG9yO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkc2lkZWJhci1ib3gtYm9yZGVyLWNvbG9yO1xuXG5cbiAgICAgICAgJi5jdXJyZW50ID4gYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG50aCgkc2lkZS1uYXYtbGluay1wYWRkaW5nLCAyKSArIHJlbS1jYWxjKDIpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICA+IGEge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzaWRlLW5hdi1pdGVtLWJvcmRlci1jb2xvci1sZXZlbC0wO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2lkZWJhci1ib3gtYm9yZGVyLWNvbG9yO1xuXG4gICAgICAgICAgICBAaWYgJGdsb2JhbC1yYWRpdXMgPiAwIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cygkZ2xvYmFsLXJhZGl1cyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiA+IC5ibG9jay1uYXZfX3N1Ym1lbnUudG9nZ2xlZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzaWRlLW5hdi1pdGVtLWJvcmRlci1jb2xvci1sZXZlbC0wO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubGV2ZWwtMTpsYXN0LWNoaWxkID4gYSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICRnbG9iYWwtcmFkaXVzID4gMCB7XG4gICAgICAgICAgICAgICAgLm1haW4tbmF2X190b2dnbGU6bm90KC50b2dnbGVkKTpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDUge1xuICAgICAgICAmLmxldmVsLSN7JGl9IHtcbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBudGgoJHNpZGUtbmF2LWxpbmstcGFkZGluZywgMikgKiAoJGkgKyAxKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHNpZGUtbmF2LWZvbnQtc2l6ZSAtIHJlbS1jYWxjKCRpKTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHNpZGUtbmF2LWZvbnQtc2l6ZSAqICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuY3VycmVudCA+IGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbnRoKCRzaWRlLW5hdi1saW5rLXBhZGRpbmcsIDIpICogKCRpICsgMSkgKyByZW0tY2FsYygyKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5sZXZlbC0xOmxhc3QtY2hpbGQge1xuICAgICAgICA+IGEge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzaWRlLW5hdi1pdGVtLWJvcmRlci1jb2xvci1sZXZlbC0wOyAgICAgICBcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9jay1uYXZfX2l0ZW0ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxufVxuXG4uYmxvY2stbmF2X19zdWJtZW51LmxldmVsLTEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWRlLW5hdi1zdWJtZW51LWJnY29sb3I7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDVweCByZ2JhKDAsMCwwLDAuMSk7XG59XG5cbi5tYWluLW5hdl9fdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwOyAgIFxuICAgIGhlaWdodDogJG5hdi10b2dnbGVyLXNpemU7XG4gICAgd2lkdGg6ICRuYXYtdG9nZ2xlci1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbmF2LXRvZ2dsZXItc2l6ZTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBlYXNlKTtcbiAgICBcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAkbmF2LXRvZ2dsZXItc2l6ZTtcbiAgICAgICAgd2lkdGg6ICRuYXYtdG9nZ2xlci1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgICBcbiAgICAmLCBcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkc2lkZS1uYXYtYmdjb2xvciksIDAuOSkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLnRvZ2dsZWQ6YmVmb3JlIHtcbiAgICAgICAgY29sb3I6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkc2lkZS1uYXYtYmdjb2xvcikgPCA1MCwgIzAwMCwgI2ZmZiksICRzaWRlLW5hdi1iZ2NvbG9yKSwgLjcpICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2lkZS1uYXYtaXRlbS1ib3JkZXItY29sb3I7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgXG4gICAgICAgICYsICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjMDAwLCBtaXgoJHByaW1hcnktY29sb3IsICRib3JkZXItY29sb3IpKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY3VycmVudCB7XG4gICAgPiAubWFpbi1uYXZfX3RvZ2dsZSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRwcmltYXJ5LWNvbG9yKSwgMC43NSkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaWYobHVtYSgkcHJpbWFyeS1jb2xvcikgPCA1MCwgbGlnaHRlbigkcHJpbWFyeS1jb2xvciwgMTAlKSwgZGFya2VuKCRwcmltYXJ5LWNvbG9yLCAxMCUpKTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRwcmltYXJ5LWNvbG9yKSwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gU3R5bGluZyBmb3IgaW5pdGlhbGl6aW5nIHRoZSBtZW51IHdpdGggc3VibWVudXMgb3BlblxuLmJsb2NrLW5hdl9faXRlbSB7XG4gICAgJi5zZWxlY3RlZC5wYXJlbnQsXG4gICAgJi5jdXJyZW50LnBhcmVudCB7XG4gICAgICAgIC8vIFJvdGF0ZSB0aGUgY3Jvc3NcbiAgICAgICAgPiAubWFpbi1uYXZfX3RvZ2dsZTpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxMzVkZWcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm1haW4tbmF2X190b2dnbGUudG9nZ2xlZDpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgwZGVnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPcGVuIHRoZSBzdWJtZW51XG4gICAgICAgID4gLmJsb2NrLW5hdl9fc3VibWVudSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuc2VsZWN0ZWQge1xuICAgICAgICA+IGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEhvdmVyIGJvcmRlciByYWRpdXMgZml4IChsZXRzIHJlbW92ZSB0aG9zZSB1Z2x5IHNxdWFyZWQgY29ybmVycylcbkBpZiAkZ2xvYmFsLXJhZGl1cyA+IDAge1xuICAgIHVsID4gLmxldmVsLTA6bGFzdC1jaGlsZCA+IGEsIHVsID4gbGkubGV2ZWwtMDpsYXN0LWNoaWxkIC5sZXZlbC0xOmxhc3QtY2hpbGQgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoJGdsb2JhbC1yYWRpdXMgLSAxKTtcbiAgICB9XG59IiwiLnBhZ2UtZGl2aWRlcl9faGVhZGVyIHtcblx0Zm9udC1zaXplOiByZW0tY2FsYygxNik7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufSIsIiRkaXNjb3VudC1iYWNrZ3JvdW5kOiAkY2FsbC10by1hY3Rpb24tY29sb3IgIWRlZmF1bHQ7XG4kZGlzY291bnQtYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkZGlzY291bnQtYmFja2dyb3VuZCwgLjgpICFkZWZhdWx0O1xuJGRpc2NvdW50LWJhY2tncm91bmQtY29sb3ItaG92ZXI6IHJnYmEoJGRpc2NvdW50LWJhY2tncm91bmQsIC45NikgIWRlZmF1bHQ7XG4kZGlzY291bnQtZm9udC1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJGRpc2NvdW50LWJhY2tncm91bmQpICFkZWZhdWx0O1xuJGRpc2NvdW50LXNpemU6IDMuNXJlbSAhZGVmYXVsdDtcbiRkaXNjb3VudC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLmVxdWFsLWhlaWdodC1jb2x1bW5fX2ltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRwcm9kdWN0bGlzdC1pbWFnZS1oZWlnaHQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IC43NXJlbTtcblxuICAgIGltZyB7XG4gICAgICAgIG1heC1oZWlnaHQ6ICRwcm9kdWN0bGlzdC1pbWFnZS1oZWlnaHQ7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uX19yZWFkb24ge1xuXHRtYXJnaW4tbGVmdDogLSN7JGNvbHVtbi1ndXR0ZXIvMn07XG59XG5cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdF9faGVhZGxpbmUge1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnByb2R1Y3RsaXN0X19wcm9kdWN0IHtcblx0LnByaWNlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdHJpZ2h0OiAkY29sdW1uLWd1dHRlci8yO1xuXHRcdGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRib2R5LWZvbnQtY29sb3IsICRjb250ZW50LWJnLCAzKSwgLjkpO1xuXHR9XG5cblx0LnByaWNlLS1vcmlnaW5hbCB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiAkY29sdW1uLWd1dHRlci8yO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG4gICAgLmRpc2NvdW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkaXNjb3VudC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICBjb2xvcjogJGRpc2NvdW50LWZvbnQtY29sb3I7XG4gICAgICAgIFxuICAgICAgICBAaWYgJGdsb2JhbC1yYWRpdXMgPiAwIHtcbiAgICAgICAgXHRib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgfVxuXG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IC4yNXJlbSAuNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRpc2NvdW50LWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC41cmVtO1xuICAgICAgICByaWdodDogLjVyZW07XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxLCAxKSk7XG5cbiAgICAgICAgQGlmICgkZGlzY291bnQtYmFja2dyb3VuZC1jb2xvciAhPSAkZGlzY291bnQtYmFja2dyb3VuZC1jb2xvci1ob3Zlcikge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG5cblx0LnByb2R1Y3RsaXN0X19wcm9kdWN0X19kZXNjcmlwdGlvbiB7XG5cdFx0cGFkZGluZy10b3A6IC41cmVtO1xuXHRcdG9wYWNpdHk6IC44O1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuXHR9XG59XG5cbi5vbi1zYWxlIC5wcm9kdWN0bGlzdF9fcHJvZHVjdC13cmFwIHtcblx0QGlmICRnbG9iYWwtcmFkaXVzID4gMCB7XG5cdFx0Ym9yZGVyLXRvcC13aWR0aDogI3skZ2xvYmFsLXJhZGl1cyAtIDJweH07XG5cdH0gQGVsc2Uge1xuXHRcdGJvcmRlci10b3Atd2lkdGg6IDNweDtcblx0fVxuXHRcblx0Ym9yZGVyLWNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJGNvbnRlbnQtYmcpIDwgNTAsICRsaWdodC1ib2R5LXRleHQsICRkYXJrLWJvZHktdGV4dCksICRjb250ZW50LWJnLCAzKSwgJGJvcmRlci1kZWZhdWx0LW9wYWNpdHkpO1xuXHRib3JkZXItdG9wLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGlzY291bnQtYmFja2dyb3VuZCwgJGNvbnRlbnQtYmcsIDQpO1xuXG5cdC5lcXVhbC1oZWlnaHQtY29sdW1uX19pbWFnZSB7XG5cdFx0bWFyZ2luLXRvcDogLTJweDsgLy8gQ29tcGVuc2F0ZSBmb3IgdGhlIHRoaWNrZXIgdG9wIGJvcmRlclxuXHR9XG5cblx0JjphZnRlciB7XG5cdFx0ZGlzcGxheTogbm9uZTsgLy8gaGlkZSB0aGUgZGVmYXVsdCB0cmlhbmdsZSBtYXJrIGZyb20gUXVpY2tmaXhcblx0fVxuXG5cdEBpZiAkZ2xvYmFsLXJhZGl1cyA+IDAge1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblx0fVxuXG5cdC5wcmljZSB7XG5cdFx0Y29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjYWxsLXRvLWFjdGlvbi1jb2xvciwgJGNvbnRlbnQtYmcsIDQpO1xuXHR9XG59XG5cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdC13cmFwIHtcbiAgICAgJjpob3ZlciAuZGlzY291bnQge1xuICAgICBcdCRwcm9kdWN0bGlzdC1kaXNjb3VudC1ob3Zlci1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRpc2NvdW50LWJhY2tncm91bmQtY29sb3ItaG92ZXIsICRjb250ZW50LWJnLCA0KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2R1Y3RsaXN0LWRpc2NvdW50LWhvdmVyLWJnO1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRpc2NvdW50LWZvbnQtY29sb3IsICRwcm9kdWN0bGlzdC1kaXNjb3VudC1ob3Zlci1iZyk7XG4gICAgfVxuXG5cdHBhZGRpbmctYm90dG9tOiAkZXF1YWwtY29sLWlubmVyLXBhZGRpbmcgKyAycmVtO1xufVxuXG4vLyBXaGVuIHNob3dpbmcgdHdvIG9yIG1vcmUgaG9yaXpvbnRhbGx5LCB1c2Ugc21hbGxlciBpbWFnZXNcbkBtZWRpYSAjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKG1hcC1nZXQoJGVxdWFsLWhlaWdodC1sYXlvdXQtcmFuZ2VzLCAyKSl9KSB7XG5cdC5lcXVhbC1oZWlnaHQtY29sdW1uX19pbWFnZSB7XG5cdCAgICBoZWlnaHQ6IDE4MHB4O1xuXG5cdCAgICBpbWcge1xuXHQgICAgICAgIG1heC1oZWlnaHQ6IDE4MHB4O1xuXHQgICAgfVxuXHR9XG59XG4iLCJAaW1wb3J0IFwiYm91cmJvbi9jc3MzL2JvcmRlci1yYWRpdXNcIjtcblxuJHNpZGViYXItYm94LXNpZGUtcGFkZGluZzogbnRoKCRzaWRlLW5hdi1saW5rLXBhZGRpbmcsIDIpICFkZWZhdWx0O1xuJGJveC1zcGFjaW5nOiAkY29sdW1uLWd1dHRlciAqIDEuNSAhZGVmYXVsdDtcblxuLnNpZGViYXIge1xuIFx0LmJsb2NrLS1ib3JkZXJlZCB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHNpZGViYXItYm94LWJvcmRlci1jb2xvcjtcblxuXHRcdEBpZiAkZ2xvYmFsLXJhZGl1cyA+IDAge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cdFx0fVxuXHR9XG5cblx0LmJsb2NrX19ib3hfX2hlYWRsaW5lLXdyYXBwZXIge1xuXHRcdHBhZGRpbmc6ICRjb2x1bW4tZ3V0dGVyLzIgMDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1ib3gtaGVhZGVyLWJhY2tncm91bmQ7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHNpZGViYXItYm94LWJvcmRlci1jb2xvcjtcblx0XHRAaWYgJGdsb2JhbC1yYWRpdXMgPiAwIHtcblx0XHRcdEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKCRnbG9iYWwtcmFkaXVzKTtcblx0XHR9XG5cdH1cblxuXHQuYmxvY2tfX2JveF9faGVhZGxpbmUge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0cGFkZGluZzogMCAkc2lkZWJhci1ib3gtc2lkZS1wYWRkaW5nO1xuXHRcdGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSh3aGl0ZSwgJHNpZGViYXItYm94LWhlYWRlci1iYWNrZ3JvdW5kKTtcblx0fVxuXG5cdC5ibG9ja19fYm94X19jb250ZW50IHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzaWRlYmFyLWJveC1jb250ZW50LWJhY2tncm91bmQ7XG5cdFx0QGlmICRnbG9iYWwtcmFkaXVzID4gMCB7XG5cdFx0XHRAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cygkZ2xvYmFsLXJhZGl1cyk7XG5cdFx0fVxuXHR9XG59XG5cbiNibG9jay12ZW5zdHJlIHtcblx0cGFkZGluZy10b3A6ICRib3gtc3BhY2luZztcblxuXHQuYmxvY2tfX2JveCB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHNpZGViYXItYm94LWJvcmRlci1jb2xvcjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1ib3gtY29udGVudC1iYWNrZ3JvdW5kO1xuXG5cdFx0QGlmICRnbG9iYWwtcmFkaXVzID4gMCB7XG5cdFx0XHRib3JkZXItdG9wOiAjeyRnbG9iYWwtcmFkaXVzIC0gMnB4fSBzb2xpZCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcsIDMpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHRib3JkZXItdG9wOiAzcHggc29saWQgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnLCAzKTtcblx0XHR9XG5cblx0XHRtYXJnaW4tYm90dG9tOiAkYm94LXNwYWNpbmc7XG5cdH1cblxuXHQuYmxvY2tfX2JveF9faGVhZGxpbmUge1xuXHRcdHBhZGRpbmc6ICRjb2x1bW4tZ3V0dGVyLzIgJHNpZGViYXItYm94LXNpZGUtcGFkZGluZztcblx0fVxuXG5cdC5ibG9ja19fYm94X19jb250ZW50IHtcblx0XHRwYWRkaW5nOiAwICRzaWRlYmFyLWJveC1zaWRlLXBhZGRpbmcgJHNpZGViYXItYm94LXNpZGUtcGFkZGluZyAkc2lkZWJhci1ib3gtc2lkZS1wYWRkaW5nO1xuXG5cdFx0W3R5cGU9c3VibWl0XSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0fVxuXG5cdC5ibG9ja19fYm94LS1uZXdzbGV0dGVyIHtcblx0XHQjZXBvc3RfbmV3c2xldHRlciB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cblxuXHQuYmxvY2tfX2JveC0tYmFubmVyc19sZWZ0LFxuXHQuYmxvY2tfX2JveC0tYmFubmVyc19yaWdodCB7XG5cdFx0Ym9yZGVyOiBub25lO1xuXG5cdFx0LmJsb2NrX19ib3hfX2NvbnRlbnQge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cdH1cblxuXHQuYmxvY2tfX2JveC0tbWFudWZhY3R1cmVycyBzZWxlY3Qge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxuLmJsb2NrX19ib3gtLW5ld3NsZXR0ZXIge1xuXHQjZXBvc3RfbmV3c2xldHRlciB7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbn1cblxuLmJsb2NrX19ib3gtLW5ld3NsZXR0ZXJfX3BpdGNoIHtcblx0b3BhY2l0eTogLjg7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xufSIsIi5ibG9ja19fYm94LS1wb2ludHMtb2YtY29udGFjdCAuaWNvbml6ZWQtbGlzdCB7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xufVxuXG4uYmxvY2tfX2JveC0tcG9pbnRzLW9mLWNvbnRhY3QgLmljb25pemVkLWxpc3Qge1xuXHRbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlLFxuXHRbY2xhc3MqPVwiIGljb24tXCJdOmJlZm9yZSB7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNik7XG5cdFx0dG9wOiByZW0tY2FsYygxKSAqIC0xO1xuXHRcdGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGZvb3Rlci1iZyk7XG5cdH1cbn1cblxuLmJsb2NrX19ib3gtLXBvaW50cy1vZi1jb250YWN0IC5zb2NpYWwtYnV0dG9uX19saW5rIHtcblx0bWFyZ2luOiAwIHJlbS1jYWxjKDMpO1xuXHR3aWR0aDogMS44cmVtO1xuXHRoZWlnaHQ6IDEuOHJlbTtcblx0bGluZS1oZWlnaHQ6IDEuOHJlbTtcblxuXHRbY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlLFxuXHRbY2xhc3MqPVwiIGljb24tXCJdOmJlZm9yZSB7XG5cdFx0dG9wOiBhdXRvO1xuXHRcdGNvbG9yOiAkZm9vdGVyLWJnO1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuXHR9XG5cblx0Jjpob3ZlciB7XG5cdFx0W2NsYXNzXj1cImljb24tXCJdOmJlZm9yZSxcblx0XHRbY2xhc3MqPVwiIGljb24tXCJdOmJlZm9yZSB7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHR9XG5cdH1cbn0iLCIjdXRpbHMtbmF2LFxuI3VzZXItbmF2LFxuI3Rvb2xzLW5hdiB7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuXG5cdC5zdWJ0bGUge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuXHR9XG59XG5cbiN1dGlscy1uYXYge1xuXHQuaWNvbi1sYW5ndWFnZSxcblx0I2xhbmd1YWdlLWNsb3NlIC5pY29uLWNsb3NlIHtcblx0XHRtYXJnaW4tcmlnaHQ6IC4yNXJlbTtcblx0fVxufVxuXG4uc2V0dGluZ19fc2VsZWN0IHtcblx0Ym9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cblx0LmJ1dHRvbiB7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cdH1cbn0iLCJAaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3RhYnNcIjtcblxuJHRhYnMtYm9yZGVyLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJGNvbnRlbnQtYmcsIDEuMjUpO1xuLy8kdGFicy1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHRhYnMtYm9yZGVyLWNvbG9yLCAkbGlnaHRuZXNzOiAzMyUpO1xuJHRhYnMtYmctY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LWJnLCAkY29udGVudC1iZywgMS4wNSk7XG4kdGFicy1hY3RpdmUtYm9yZGVyLWNvbG9yOiAkdGFicy1ib3JkZXItY29sb3I7XG4kdGFicy1hY3RpdmUtYmctY29sb3I6ICR0YWJzLWNvbnRhaW5lci1iZztcbiR0YWJzLWZvbnQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRib2R5LWZvbnQtY29sb3IsICR0YWJzLWJnLWNvbG9yKTtcbiR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I6ICR0YWJzLWJnLWNvbG9yO1xuJHRhYnMtYWN0aXZlLWZvbnQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkdGFicy1hY3RpdmUtYmctY29sb3IpO1xuJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtaG92ZXItYmctY29sb3I6ICR0YWJzLWFjdGl2ZS1iZy1jb2xvcjtcblxuQGluY2x1ZGUgdGFicy1zdHlsaW5nIHtcbiAgICAucmVzcC10YWJzLWxpc3Qge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gICAgXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgLnJlc3AtYWNjb3JkaW9uIHtcbiAgICAgICAgICAgIEBpZiAkZ2xvYmFsLXJhZGl1cyA+IDAge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIFx0XHR9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAucmVzcC10YWItaXRlbSB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkdGFicy1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAzcHg7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgICAgICAgQGlmICRnbG9iYWwtcmFkaXVzID4gMCB7XG4gICAgXHRcdFx0QGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoJGdsb2JhbC1yYWRpdXMpO1xuICAgIFx0XHR9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkdGFicy1iZy1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5yZXNwLXRhYi1hY3RpdmUsIC5yZXNwLXRhYi1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHRhYnMtYWN0aXZlLWZvbnQtY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5yZXNwLXRhYi1jb250ZW50LWFjdGl2ZSB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkdGFicy1hY3RpdmUtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBAaWYgJGdsb2JhbC1yYWRpdXMgPiAwIHtcbiAgICBcdFx0XHRAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cygkZ2xvYmFsLXJhZGl1cyk7XG4gICAgXHRcdH1cbiAgICAgICAgfVxuICAgIH1cblxufSIsIiRpbmNsdWRlLXF1aWNrZml4LXRhYi1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuXG4kdGFicy1oZWlnaHQ6ICAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcbiR0YWJzLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG4kdGFicy1ib3JkZXJlZDogdHJ1ZSAhZGVmYXVsdDtcbiR0YWJzLWJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLWFjdGl2ZS1ib3JkZXItY29sb3I6ICR0YWJzLWFjdGl2ZS1iZy1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWhvdmVyLWJnLWNvbG9yOiBsaWdodGVuKCR0YWJzLWFjdGl2ZS1iZy1jb2xvciwgMTUlKSAhZGVmYXVsdDtcblxuQG1peGluIHRhYnMtc3R5bGluZ3tcbiAgICAudGFicyB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkdGFicy1hY3RpdmUtYmctY29sb3I7XG4gICAgfVxuXG4gICAgLmpzLXRhYnMge1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICB9XG5cbiAgICAucmVzcC10YWJzLWxpc3Qge1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgfVxuXG4gICAgLnJlc3AtdGFiLWl0ZW0ge1xuICAgICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICB9XG5cbiAgICAucmVzcC10YWItaXRlbSxcbiAgICAucmVzcC1hY2NvcmRpb24ge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHRhYnMtZm9udC1jb2xvciwgJHRhYnMtYmctY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1iZy1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogMCAkdGFicy1wYWRkaW5nO1xuICAgICAgICBsaW5lLWhlaWdodDogJHRhYnMtaGVpZ2h0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAyMDBtcyBlYXNlKTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWtleWJvYXJkLWFycm93LWRvd24pO1xuICAgICAgICAgICAgQGV4dGVuZCAuaWNvbi1sYXJnZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSA0MDBtcyBlYXNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCR0YWJzLWZvbnQtY29sb3IsICR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3IpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZXNwLXRhYnMtY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtY29udGFpbmVyLWJnO1xuICAgICAgICBjbGVhcjogbGVmdDtcbiAgICB9XG5cbiAgICAucmVzcC1hY2NvcmRpb24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnJlc3AtdGFiLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwYWRkaW5nOiAkdGFicy1wYWRkaW5nO1xuXG4gICAgICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZXNwLXRhYi1hY3RpdmUsXG4gICAgLnJlc3AtYWNjb3JkaW9uLnJlc3AtdGFiLWFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkdGFicy1hY3RpdmUtZm9udC1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtYWN0aXZlLWJnLWNvbG9yO1xuXG4gICAgICAgIC8vIFJvdGF0ZSBhcnJvdyB3aGVuIGFjdGl2YXRlZFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGV4KDE4MGRlZykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHRhYnMtYWN0aXZlLWZvbnQtY29sb3IsICR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWhvdmVyLWJnLWNvbG9yKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWhvdmVyLWJnLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJlc3AtY29udGVudC1hY3RpdmUsIFxuICAgIC5yZXNwLWFjY29yZGlvbi1hY3RpdmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAucmVzcC1lYXN5LWFjY29yZGlvbiAucmVzcC1hY2NvcmRpb24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAucmVzcC1qZml0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgIH1cblxuICAgIC5yZXNwLXRhYi1jb250ZW50LWFjdGl2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qSGVyZSB5b3VyIGNhbiBjaGFuZ2UgdGhlIGJyZWFrcG9pbnQgdG8gc2V0IHRoZSBhY2NvcmRpb24sIHdoZW4gc2NyZWVuIHJlc29sdXRpb24gY2hhbmdlZCovXG5cbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuXG4gICAgICAgIC5qcy10YWJzIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkdGFicy1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAucmVzcC10YWJzLWxpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNwLWFjY29yZGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHRhYnMtcGFkZGluZztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlc3AtdnRhYnMgLnJlc3AtdGFicy1jb250YWluZXIge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGluaXRpYWw7XG4gICAgICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNwLWFjY29yZGlvbi1jbG9zZWQge1xuICAgICAgICAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIC5yZXNwLXRhYi1jb250ZW50LWFjdGl2ZSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHRhYnMtYWN0aXZlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICAuanMtdGFicyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHRhYnMtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBpZiAkaW5jbHVkZS1xdWlja2ZpeC10YWItY2xhc3NlcyB7XG4gIEBpbmNsdWRlIHRhYnMtc3R5bGluZztcbn0iLCJ1bC5wYXJ0bmVyLWxvZ29zIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xufVxuXG4ucGFydG5lci1sb2dvIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRpbWcge1xuXHRcdG1heC13aWR0aDogNTVweDtcblx0XHRtYXJnaW46IDAgLjVyZW07XG5cdCAgICBvcGFjaXR5OiAuNzU7XG5cdCAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4yNXMgZWFzZSk7XG5cdH1cblxuXHQmOmhvdmVyIGltZyB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXG5cdCY6Zmlyc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5cblx0JjpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdH1cbn0iLCIkc2VhcmNoLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShkYXJrZW4oJGhlYWRlci1iZywgMTAlKSwgJGhlYWRlci1iZywgMS4zKSAhZGVmYXVsdDtcbiRzZWFyY2gtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWFyY2gtYmcsICRzZWFyY2gtYmcpICFkZWZhdWx0O1xuJHNlYXJjaC1ob3Zlci1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlYXJjaC1iZywgJHNlYXJjaC1iZywgNy41KSAhZGVmYXVsdDtcbiRzZWFyY2gtZm9jdXMtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWFyY2gtYmcsICRzZWFyY2gtYmcsIDEyKSAhZGVmYXVsdDtcblxuLy8gZm9ybSBzZWxlY3RvciB0byBvdmVycmlkZSBgYm9keSAucG9zdGZpeC5idXR0b25gIHNlbGVjdG9yIGZyb20gRm91bmRhdGlvblxuZm9ybS5qcy1wcm9kdWN0LXNlYXJjaC1mb3JtIHtcblxuICAgIC5wb3N0Zml4LXJhZGl1cy5yb3cuY29sbGFwc2UgaW5wdXQuanMtcHJvZHVjdC1zZWFyY2gge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VhcmNoLWJnO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZWFyY2gtYmc7XG4gICAgICAgIGNvbG9yOiAkc2VhcmNoLWNvbG9yO1xuICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlcntcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgMTUwbXMgZWFzZS1vdXQpO1xuICAgICAgICAgICAgY29sb3I6IHJnYmEoJHNlYXJjaC1jb2xvciwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBib3gtc2hhZG93OiByZ2JhKCRzZWFyY2gtY29sb3IsIDApIDAgMCAxMHB4O1xuICAgICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMocmVtLWNhbGMoMjApKTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVye1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKCRzZWFyY2gtY29sb3IsIDAuOSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkc2VhcmNoLWNvbG9yIDAgMCAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5qcy1wcm9kdWN0LXNlYXJjaC1zdWJtaXQucG9zdGZpeCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWFyY2gtYmc7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBtaXgoJGhlYWRlci1iZywgJHNlYXJjaC1iZykgMXB4IHNvbGlkO1xuICAgICAgICBjb2xvcjogJHNlYXJjaC1jb2xvcjtcblxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yIDE1MG1zIGVhc2Utb3V0LCB0ZXh0LXNoYWRvdyAxNTBtcyBlYXNlLW91dCwgYm94LXNoYWRvdyAxNTBtcyBsaW5lYXIpO1xuXG4gICAgICAgICY6aG92ZXIsICY6YWN0aXZlLCAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2VhcmNoLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgQGlmKGx1bWEoJHNlYXJjaC1mb2N1cy1jb2xvcikgPiBsdW1hKCRzZWFyY2gtYmcpKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6XG4gICAgICAgICAgICAgICAgICAgICRzZWFyY2gtYmcgMCAxcHggMCxcbiAgICAgICAgICAgICAgICAgICAgJHNlYXJjaC1iZyAtMXB4IDAsXG4gICAgICAgICAgICAgICAgICAgICRzZWFyY2gtYmcgMCAtMXB4IDAsXG4gICAgICAgICAgICAgICAgICAgICRzZWFyY2gtYmcgMXB4IDAsXG4gICAgICAgICAgICAgICAgICAgICRzZWFyY2gtZm9jdXMtY29sb3IgMCAwIDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRzZWFyY2gtY29sb3IgMCAwIDEwcHg7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMocmVtLWNhbGMoMjApKTtcbiAgICB9XG59XG4iLCIkc2hvcHBpbmctY2FydC1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGhlYWRlci1iZywgJGhlYWRlci1iZykgIWRlZmF1bHQ7XG4kc2hvcHBpbmctY2FydC1ob3Zlci1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNob3BwaW5nLWNhcnQtY29sb3IsICRzaG9wcGluZy1jYXJ0LWNvbG9yLCAxLjUpICFkZWZhdWx0O1xuXG4uY2FydC1hbmQtY2hlY2tvdXQge1xuICAgIFxuICAgIC5jaGVja291dC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLmNhcnQtYnV0dG9uX19zdW0ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIH1cbiAgICBcbiAgICAuY2FydC1idXR0b25fX3N1bSxcbiAgICAuY2FydC1idXR0b25fX2N1cnJlbmN5IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIGhlaWdodDogJGxvZ28taGVpZ2h0O1xuICAgICAgICBsaW5lLWhlaWdodDogJGxvZ28taGVpZ2h0O1xuICAgIH1cbiAgICBcbiAgICAuY2FydC1idXR0b25fX2ljb24sIC5jYXJ0LWJ1dHRvbl9fc3VtLCAuY2FydC1idXR0b25fX2N1cnJlbmN5LCAuY2FydC1idXR0b25fX3F1YW50aXR5IC5pY29uLWxhcmdlci10aGFuIHtcbiAgICAgICAgY29sb3I6ICRzaG9wcGluZy1jYXJ0LWNvbG9yO1xuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciAzMDBtcyBlYXNlKTtcbiAgICB9XG4gICAgLmNhcnQtYnV0dG9uX19xdWFudGl0eSB7XG4gICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTIuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogJGxvZ28taGVpZ2h0O1xuICAgICAgICBoZWlnaHQ6ICRsb2dvLWhlaWdodDtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRoZWFkZXItYmcsICRzaG9wcGluZy1jYXJ0LWNvbG9yKSAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IC0je2VtLWNhbGMoMil9O1xuICAgICAgICBcbiAgICAgICAgLmljb24tbGFyZ2VyLXRoYW4ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zcHg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLSN7cmVtLWNhbGMoMSl9O1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRoZWFkZXItYmcsICRzaG9wcGluZy1jYXJ0LWNvbG9yKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX19xdWFudGl0eS0tbGFyZ2Uge1xuICAgICAgICBmb250LXNpemU6IDEuNGVtO1xuICAgIH1cbiAgICBcbiAgICAuY2FydC1idXR0b246aG92ZXIsIC5jYXJ0LWJ1dHRvbi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAuY2FydC1idXR0b25fX2ljb24sIC5jYXJ0LWJ1dHRvbl9fc3VtLCAuY2FydC1idXR0b25fX2N1cnJlbmN5LCAuY2FydC1idXR0b25fX3F1YW50aXR5IC5pY29uLWxhcmdlci10aGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2hvcHBpbmctY2FydC1ob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmNhcnQtYnV0dG9uX19xdWFudGl0eSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRoZWFkZXItYmcsICRzaG9wcGluZy1jYXJ0LWhvdmVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNhcnQtYnV0dG9uIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgLyogRml4aW5nIGEgRkYgYnVnICovXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLmNhcnQtYW5kLWNoZWNrb3V0IHsgICAgICAgXG4gICAgICAgIC5jYXJ0LWJ1dHRvbl9fc3VtLFxuICAgICAgICAuY2FydC1idXR0b25fX2N1cnJlbmN5IHtcbiAgICAgICAgICAgIGhlaWdodDogJGxvZ28tbGFyZ2UtaGVpZ2h0O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRsb2dvLWxhcmdlLWhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmNhcnQtYnV0dG9uX19xdWFudGl0eSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGxvZ28tbGFyZ2UtaGVpZ2h0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkbG9nby1sYXJnZS1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyogc2VlIGZvdW5kYXRpb24vY29tcG9uZW50cy9icmVhZGNydW1icyBmb3IgdGhlIGJhc2Ugc3R5bGluZyBhbmQgb3B0aW9ucyAqL1xuXG4vLyBUaGlzIGlzIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gZGlzYWJsZSBmb3VuZGF0aW9uIG5hdiBzdHlsaW5nIHdpdGhvdXQgbG9zaW5nIGJyZWFkY3J1bWJzXG4kaW5jbHVkZS1xdWlja2ZpeC1icmVhZGNydW1icy1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYi1jb250YWluZXItaGVpZ2h0OiByZW0tY2FsYyg0NCkgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1saW5lLWhlaWdodDogICAgICAkYnJlYWRjcnVtYi1jb250YWluZXItaGVpZ2h0ICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItcGFkZGluZzogICAgICAgICAgKCRicmVhZGNydW1iLWNvbnRhaW5lci1oZWlnaHQgLSAkY3J1bWItZm9udC1zaXplICogJGJyZWFkY3J1bWItbGluZS1oZWlnaHQpIC8gMiAhZGVmYXVsdDtcblxuLmJyZWFkY3J1bWJzIC5jdXJyZW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLmJyZWFkY3J1bWJzIC5jdXJyZW50IHtcbiAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIH1cbn1cblxuQGlmICRpbmNsdWRlLXF1aWNrZml4LWJyZWFkY3J1bWJzLWNsYXNzZXMgYW5kIG5vdCAkaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzIHtcbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgQGluY2x1ZGUgY3J1bWItY29udGFpbmVyO1xuICAgICAgQGluY2x1ZGUgcmFkaXVzKCRjcnVtYi1yYWRpdXMpO1xuXG4gICAgICAmPioge1xuICAgICAgICBAaW5jbHVkZSBjcnVtYnM7XG4gICAgICB9XG4gICAgfVxufVxuXG5AaWYgJGluY2x1ZGUtcXVpY2tmaXgtYnJlYWRjcnVtYnMtY2xhc3NlcyB7XG4gICAgLmJyZWFkY3J1bWJzIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRjcnVtYi1mb250LWZhbWlseTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgPiA6OmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1jaGV2cm9uLXJpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1ZW07XG4gICAgICAgIFx0dmVydGljYWwtYWxpZ246IC01JTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJiA+IGxpIHtcbiAgICAgICAgICAgIGhlaWdodDogJGJyZWFkY3J1bWItbGluZS1oZWlnaHQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGJyZWFkY3J1bWItbGluZS1oZWlnaHQ7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGJyZWFkY3J1bWItbGluZS1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRicmVhZGNydW1iLWxpbmUtaGVpZ2h0O1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJyZWFkY3J1bWJzICsgaDEge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgICAgICAgaGVpZ2h0OiAkYnJlYWRjcnVtYi1jb250YWluZXItaGVpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogJGJyZWFkY3J1bWItcGFkZGluZyAwO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5ibG9ja19fYm94LS1pbmZvYm94IHtcbiAgICAuYmxvY2stbmF2X19pdGVtIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDBweCFpbXBvcnRhbnQ7XG4gICAgICAgIFxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI2Jsb2NrLXZlbnN0cmUge1xuICAgIC5ibG9ja19fYm94LS1pbmZvYm94IHtcbiAgICAgICAgLmJsb2NrX19ib3hfX2hlYWRsaW5lIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2lkZS1uYXYtaXRlbS1ib3JkZXItY29sb3ItbGV2ZWwtMDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmJsb2NrX19ib3hfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwIWltcG9ydGFudDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jZm9vdGVyIHtcbiAgICAuYmxvY2tfX2JveC0taW5mb2JveCB7XG4gICAgICAgIC5ibG9jay1uYXZfX2l0ZW0sIGEge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBAaWYobHVtYSgkZm9vdGVyLWJnKSA8IDUwKSB7XG4gICAgXHRcdFx0Ym9yZGVyLWNvbG9yOiBsaWdodGVuKCRmb290ZXItYmcsIDI1JSk7XG4gICAgXHRcdFx0Y29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRmb290ZXItYmcpO1xuICAgIFx0XHR9IEBlbHNlIHtcbiAgICBcdFx0XHRib3JkZXItY29sb3I6IGRhcmtlbigkZm9vdGVyLWJnLCAyNSUpO1xuICAgIFx0XHRcdGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjMDAwLCAkZm9vdGVyLWJnKTtcbiAgICBcdFx0fVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaWYobHVtYSgkZm9vdGVyLWJnKSA8IDUwKSB7XG4gICAgICAgIFx0XHRcdGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkaG92ZXItY29sb3IpO1xuICAgICAgICBcdFx0fSBAZWxzZSB7XG4gICAgICAgIFx0XHRcdGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjMDAwLCAkaG92ZXItY29sb3IpO1xuICAgICAgICBcdFx0fVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuYmxvY2stbmF2X19zdWJtZW51LmxldmVsLTEge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2lkZS1uYXYtc3VibWVudS1iZ2NvbG9yLCAkZm9vdGVyLWJnKSwgMC4wNSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA1cHggcmdiYSgwLDAsMCwwLjEpO1xuICAgICAgICB9XG4gICAgfVxufSJdLCJtYXBwaW5ncyI6IjtBSUFBOztHQUVHO0Fhb0NIOzs7Ozs7Ozs7O0dBVUc7QWJQSDs7R0FFRztBQUtIOztHQUVHO0FBS0g7Ozs7OztHQU1HO0FhdkJIOzs7Ozs7Ozs7O0dBVUc7QUtsQ0ssT0FBTyxDQUFDLHVHQUFJO0FLTnBCOzs7Ozs7OztHQVFHO0FBZ09DLE9BQU8sQ0ExSlA7RUFDSSxnQkFBZ0IsRUo3RWYsT0FBTztFSThFUixLQUFLLEV2QjZCZ0MsS0FBTyxHdUJxRi9DO0VBc0NELE9BQU8sQ0F0SkgsRUFBRSxFQXNKTixPQUFPLENBdEpDLEVBQUUsRUFzSlYsT0FBTyxDQXRKSyxFQUFFLEVBc0pkLE9BQU8sQ0F0SlMsRUFBRSxFQXNKbEIsT0FBTyxDQXRKYSxFQUFFLEVBc0p0QixPQUFPLENBdEppQixFQUFFLENBQUM7SUFDbkIsS0FBSyxFQTlCVCxLQUFPLEdBK0JOO0VBb0pMLE9BQU8sQ0FqSkgsQ0FBQyxDQUFDO0lBQ0UsS0FBSyxFdkJxQjBELEtBQU0sR3VCZnhFO0lBMElMLE9BQU8sQ0FqSkgsQ0FBQyxBQUdJLE1BQU0sRUE4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QUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxjQUFjLENBQWQ7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxjQUFjLENBQWQ7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxjQUFjLENBQWQ7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxjQUFjLENBQWQ7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFHSCxPQUFPO0VBQ1AsUUFBUSxDQUFDO0lBN0RQLFFBQVEsRUFBRSxRQUFTO0lBWW5CLFlBQVksRUFBRyxRQUFjO0lBQzdCLGFBQWEsRUFBRyxRQUFjO0lBZ0JTLEtBQUssRU4ySTlCLElBQUksR00zRytDO0VBSWpFLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLFFBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLEdBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLEdBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFFBQVEsQ0FBUjtJQS9DQSxLQUFLLEVBN0ZDLEdBQVUsR0E0SW1EO0VBQW5FLFNBQVMsQ0FBVDtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFNBQVMsQ0FBVDtJQS9DQSxLQUFLLEVBN0ZDLFNBQVUsR0E0SW1EO0VBQW5FLFNBQVMsQ0FBVDtJQS9DQSxLQUFLLEVBN0ZDLElBQVUsR0E0SW1EO0VBSW5FLGVBQWUsQ0FBZjtJQTNCWSxXQUF3QixFQXJIOUIsRUFBVSxDQXFIZ0UsVUFBVSxHQTJCdkI7RUFBbkUsZUFBZSxDQUFmO0lBM0JZLFdBQXdCLEVBckg5QixRQUFVLENBcUhnRSxVQUFVLEdBMkJ2QjtFQUFuRSxlQUFlLENBQWY7SUEzQlksV0FBd0IsRUFySDlCLFNBQVUsQ0FxSGdFLFVBQVUsR0EyQnZCO0VBQW5FLGVBQWUsQ0FBZjtJQTNCWSxXQUF3QixFQXJIOUIsR0FBVSxDQXFIZ0UsVUFBVSxHQTJCdkI7RUFBbkUsZUFBZSxDQUFmO0lBM0JZLFdBQXdCLEVBckg5QixTQUFVLENBcUhnRSxVQUFVLEdBMkJ2QjtFQUFuRSxlQUFlLENBQWY7SUEzQlksV0FBd0IsRUFySDlCLFNBQVUsQ0FxSGdFLFVBQVUsR0EyQnZCO0VBQW5FLGVBQWUsQ0FBZjtJQTNCWSxXQUF3QixFQXJIOUIsR0FBVSxDQXFIZ0UsVUFBVSxHQTJCdkI7RUFBbkUsZUFBZSxDQUFmO0lBM0JZLFdBQXdCLEVBckg5QixTQUFVLENBcUhnRSxVQUFVLEdBMkJ2QjtFQUFuRSxlQUFlLENBQWY7SUEzQlksV0FBd0IsRUFySDlCLFNBQVUsQ0FxSGdFLFVBQVUsR0EyQnZCO0VBQW5FLGVBQWUsQ0FBZjtJQTNCWSxXQUF3QixFQXJIOUIsR0FBVSxDQXFIZ0UsVUFBVSxHQTJCdkI7RUFBbkUsZ0JBQWdCLENBQWhCO0lBM0JZLFdBQXdCLEVBckg5QixTQUFVLENBcUhnRSxVQUFVLEdBMkJ2QjtFQUFuRSxnQkFBZ0IsQ0FBaEI7SUEzQlksV0FBd0IsRUFySDlCLFNBQVUsQ0FxSGdFLFVBQVUsR0EyQnZCO0VBR3JFLGtCQUFrQixDQUFsQjtJQUNFLFdBQXdCLEVBQVMsQ0FBRTtJQUNuQyxZQUE2QixFQUFTLENBQUU7SUFDeEMsSUFBSSxFQUFFLElBQUs7SUFDWCxLQUFLLEVBQUUsSUFBSztJQUNaLEtBQUssRU4yRlMsSUFBSSxHTTFGbkI7RUFFRCxPQUFPLEFBQUEsZUFBZTtFQUN0QixRQUFRLEFBQUEsZUFBZSxDQUR2QjtJQTVDRSxXQUF3QixFQUFTLElBQUs7SUFDdEMsWUFBNkIsRUFBUyxJQUFLO0lBQzNDLEtBQUssRUFBRSxJQUFLLEdBMEN3RDtFQUV0RSxPQUFPLEFBQUEsaUJBQWlCO0VBQ3hCLFFBQVEsQUFBQSxpQkFBaUIsQ0FEekI7SUFDRSxXQUF3QixFQUFTLENBQUU7SUFDbkMsWUFBNkIsRUFBUyxDQUFFO0lBQ3hDLEtBQUssRU5tRlMsSUFBSSxHTWxGbkI7RUFHRCxPQUFPLEFBQUEsZUFBZSxBQUFBLFdBQVc7RUFDakMsUUFBUSxBQUFBLGVBQWUsQUFBQSxXQUFXLENBRGxDO0lBQ0UsS0FBSyxFQUFFLElBQUssR0FDYjtFQUdELE9BQU8sQUFBQSxpQkFBaUIsQUFBQSxXQUFXO0VBQ25DLFFBQVEsQUFBQSxpQkFBaUIsQUFBQSxXQUFXLENBRHBDO0lBQ0UsS0FBSyxFTnlFUyxJQUFJLEdNeEVuQjtFQUVELE9BQU8sQUFBQSxpQkFBaUIsQUFBQSxTQUFTO0VBQ2pDLFFBQVEsQUFBQSxpQkFBaUIsQUFBQSxTQUFTLENBRGxDO0lBQ0UsS0FBSyxFTnNFYyxLQUFLLEdNckV6QjtFQUVGLElBQUksQUFDRixlQUFlLEdBQ2IsT0FBTztFQUZYLElBQUksQUFDRixlQUFlLEdBRWIsUUFBUSxDQUFDO0lBcEdWLFlBQVksRUFBRSxDQUFFO0lBQ2hCLGFBQWEsRUFBRSxDQUFFLEdBbUdpRDtFQUhyRSxJQUFJLEFBQ0YsZUFBZSxDQUlmLElBQUksQ0FBQztJQUFDLFdBQVcsRUFBQyxDQUFFO0lBQUUsWUFBWSxFQUFDLENBQUUsR0FBRztFQUwxQyxJQUFJLEFBT0YsaUJBQWlCLEdBQ2YsT0FBTztFQVJYLElBQUksQUFPRixpQkFBaUIsR0FFZixRQUFRLENBQUM7SUFuR1YsWUFBWSxFQUFHLFFBQWM7SUFDN0IsYUFBYSxFQUFHLFFBQWM7SUFnQlMsS0FBSyxFTjJJOUIsSUFBSSxHTXZEbEI7O0FBZ0NBLE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RUE3Ri9CLGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsRUFBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsRUFBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsUUFBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsUUFBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGVBQWUsQ0FBZjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGVBQWUsQ0FBZjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGVBQWUsQ0FBZjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGVBQWUsQ0FBZjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUdILE9BQU87RUFDUCxRQUFR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QUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxhQUFhLENBQWI7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxhQUFhLENBQWI7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVB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 */
