@charset "UTF-8";
/*!
	Theme Name: Rasorn Theme
	Theme URI:
	Description: This is the theme created for Rasorn
	Author: Khoozh
	Author URI:

	Version: 1.0.0

	Tags: one-column, two-columns, left-sidebar, right-sidebar, accessibility-ready, custom-colors, custom-logo, custom-menu, featured-images, footer-widgets, full-width-template, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready

	Template: genesis

	License: GPL-2.0+
	License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
/* Table of Contents
sass/
|
|- abstracts/
|   |- _variables.scss    # Sass Variables
|   |- _functions.scss    # Sass Functions
|   |- _mixins.scss       # Sass Mixins
|   |- _placeholders.scss # Sass Placeholders
|
|- fonts/
|   |- _nucleo.scss       # Icon Pack
|
|– base/
|   |- _reset.scss        # Reset/normalize
|   |- _typography.scss   # Typography rules
|   |- _defaults.scss     # Genesis Defaults
|   |- _animations.scss   # Animations
|
|– components/
|   |- _graphics.scss            # Graphics
|   |- _buttons.scss             # Buttons
|   |- _widget.scss              # Genesis Default Widget and Plugins
|   |- _forms.scss               # Forms
|   |- _list-pagination.scss     # List and pagination
|   |- -title-divider.scss       # Title and dividers
|   |- _objects.scss             # Customised objects
|   |- _banners.scss             # Banners
|   |- _hero-slider.scss         # Hero Slider
|   |- _blocks.scss              # Blocks
|
|– layout/
|   |- _grid.scss         # Grid
|   |- _gs-structure-layout.scss # Genesis default structure and layout
|   |- _header.scss       # Header
|   |- _sidebar.scss      # Sidebar
|   |- _footer.scss       # Footer
|
|– pages/
|   |- _post-archive.scss        # Post archive styles
|   |- _post-single.scss         # Single Post Styles
|   |- _404-page.scss     		 # 404 Page
|
|– themes/
|   |- _khoozh.scss       # Default theme
|   |- _woocommerce.scss  # Woocommerce Styles
|
|– vendors/
|   |- _slick.scss        # Slick Slider
|   |- _slick-theme.scss  # Slick Slider Theme
|   |- _featherlight.scss # Featherlight Gallery
|
|- main.scss              # Main Sass file
*/
/* Variables
 ============================================= */
/* Body Text Styles */
/* Font Weight */
/* Colors */
/* Etc. */
/* Background pattern image link*/
@font-face {
  font-family: "BubbleGum";
  src: local("BubbleGum"), url("https://demo.co-enterprise.com.sg/rasorn-v9/fonts/BubbleGum.woff2") format("woff2"), url("https://demo.co-enterprise.com.sg/rasorn-v9/fonts/BubbleGum.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Gill Sans";
  src: local("Gill Sans"), local("GillSans"), url("https://demo.co-enterprise.com.sg/rasorn-v9/fonts/GillSans.woff2") format("woff2"), url("https://demo.co-enterprise.com.sg/rasorn-v9/fonts/GillSans.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Gill Sans";
  src: local("Gill Sans SemiBold"), local("GillSans-SemiBold"), url("https://demo.co-enterprise.com.sg/rasorn-v9/fonts/GillSans-SemiBold.woff2") format("woff2"), url("https://demo.co-enterprise.com.sg/rasorn-v9/fonts/GillSans-SemiBold.woff") format("woff");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Gill Sans";
  src: local("Gill Sans Bold"), local("GillSans-Bold"), url("https://demo.co-enterprise.com.sg/rasorn-v9/fonts/GillSans-Bold.woff2") format("woff2"), url("https://demo.co-enterprise.com.sg/rasorn-v9/fonts/GillSans-Bold.woff") format("woff");
  font-weight: bold;
  font-style: normal;
  font-display: swap;
}
/* Mixins
 ============================================= */
/* Media Queries
 --------------------------------------------- */
/* Container
 --------------------------------------------- */
/* Image Aspect Ratio
 ---------------------------------------------
 <figure> // Apply image ratio to figure
   <img src=""/>
 </figure>
*/
/* Absolute
 --------------------------------------------- */
/* Gradient Fade
 --------------------------------------------- */
/* Badge / Tag label
 --------------------------------------------- */
/* Icons
 --------------------------------------------- */
table.cart .product-remove a:after, .contact-form .wpcf7 form .wpcf7-response-output:before {
  display: inline-block;
  font: normal normal normal 1em/1 "baseicon";
  speak: none;
  text-transform: none;
  /* Better Font Rendering */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Circle Object
 --------------------------------------------- */
/* Thumbnail Card
 ---------------------------------------------
<article class="thumbnail-card">
  <figure>
    <img src="">
  </figure>
  <div class="caption">
    <h4></h4>
    <p></p>
    <a href="#"></a>
  </div>
</article>
 */
/* Line Border
 --------------------------------------------- */
/* Child Margin
 --------------------------------------------- */
/* Clear Fix
--------------------------------------------- */
/* Functions
 ============================================= */
/* Placeholders
 ============================================= */
/* White Gradient
  --------------------------------------------- */
/* Transitions
 --------------------------------------------- */
#woocommerce-product-search-field, .interactive-cart-header .interactive-cart-close, .woocommerce-MyAccount-navigation-link a, .shop_table.woocommerce-checkout-review-order-table .variation, .menu-shop-menu-container a,
.widget_product_categories a, .hero-slider, input[type=checkbox] + *:after, .menu-primary > li.menu-item-has-children:before, .slick-dots li button:before {
  transition: all 0.3s ease-in-out;
}

/* Flexbox
 --------------------------------------------- */
.woocommerce-pagination .page-numbers, .woocommerce-info a,
.woocommerce-message a, .interactive-cart-summary > div, #cart-items, .widget_layered_nav_filters ul li a::before, table.cart .product-remove a, #sidebar-toggle-close, .floating-whatsapp-button, .lr-layout .inline-wrap, .logo-feature-gallery, .pagination, .contact-form .wpcf7 form .wpcf7-response-output:before, .btn-icon-text i, #woocommerce-product-search-button, .header-widget-area a,
.header-widget-area button, .menu-toggle {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-items: center;
}

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -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);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: flex;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/* Slider */
.slick-loading .slick-list {
  background: #fff url("https://demo.co-enterprise.com.sg/rasorn-v9/wp-content/themes/rasorn-theme/js/plugins/slick/ajax-loader.gif") center center no-repeat;
}

/* Icons */
@font-face {
  font-family: "slick";
  src: url("https://demo.co-enterprise.com.sg/rasorn-v9/wp-content/themes/rasorn-theme/js/plugins/slick/fonts/slick.eot");
  src: url("https://demo.co-enterprise.com.sg/rasorn-v9/wp-content/themes/rasorn-theme/js/plugins/slick/fonts/slick.eot#iefix") format("embedded-opentype"), url("https://demo.co-enterprise.com.sg/rasorn-v9/wp-content/themes/rasorn-theme/js/plugins/slick/fonts/slick.woff") format("woff"), url("https://demo.co-enterprise.com.sg/rasorn-v9/wp-content/themes/rasorn-theme/js/plugins/slick/fonts/slick.ttf") format("truetype"), url("https://demo.co-enterprise.com.sg/rasorn-v9/wp-content/themes/rasorn-theme/js/plugins/slick/fonts/slick.svg#slick") format("svg");
  font-weight: normal;
  font-style: normal;
}
/* Arrows */
.slick-next,
.slick-prev {
  position: absolute;
  display: block;
  height: 30px;
  width: 30px;
  line-height: 0;
  font-size: 0;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
  padding: 0;
  border: none;
  outline: none;
  z-index: 2;
}
.slick-next:focus, .slick-next:hover,
.slick-prev:focus,
.slick-prev:hover {
  outline: none;
  background: transparent;
  color: transparent;
}
.slick-next:focus:before, .slick-next:hover:before,
.slick-prev:focus:before,
.slick-prev:hover:before {
  opacity: 1;
}
.slick-next.slick-disabled:before,
.slick-prev.slick-disabled:before {
  opacity: 0.25;
}
.slick-next:before,
.slick-prev:before {
  font-family: "slick";
  font-size: 30px;
  line-height: 1;
  color: #ddd;
  opacity: 0.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.slick-prev {
  left: 15px;
}
[dir=rtl] .slick-prev {
  left: auto;
  right: -35px;
}
.slick-prev:before {
  content: "←";
}
[dir=rtl] .slick-prev:before {
  content: "→";
}

.slick-next {
  right: 15px;
}
[dir=rtl] .slick-next {
  left: -25px;
  right: auto;
}
.slick-next:before {
  content: "→";
}
[dir=rtl] .slick-next:before {
  content: "←";
}

/* Dots */
.slick-dotted.slick-slider {
  margin-bottom: 30px;
}

.slick-dots {
  position: absolute;
  bottom: -25px;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  margin: 0;
  width: 100%;
}
.slick-dots li {
  position: relative;
  display: inline-block;
  height: 20px;
  width: 20px;
  margin: 0 5px;
  padding: 0;
  cursor: pointer;
}
.slick-dots li button {
  border: 0;
  background: transparent;
  display: block;
  height: 20px;
  width: 20px;
  outline: none;
  line-height: 0;
  font-size: 0;
  color: transparent;
  padding: 5px;
  cursor: pointer;
}
.slick-dots li button:focus, .slick-dots li button:hover {
  outline: none;
}
.slick-dots li button:focus:before, .slick-dots li button:hover:before {
  opacity: 1;
  font-size: 18px;
}
.slick-dots li button:before {
  position: absolute;
  top: 0;
  left: 0;
  content: "•";
  width: 20px;
  height: 20px;
  font-family: "slick";
  font-size: 12px;
  line-height: 20px;
  text-align: center;
  color: black;
  opacity: 0.25;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.slick-dots li.slick-active button:before {
  color: black;
  opacity: 0.75;
}

/**
 * Featherlight – ultra slim jQuery lightbox
 * Version 1.7.13 - http://noelboss.github.io/featherlight/
 *
 * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com)
 * MIT Licensed.
**/
html.with-featherlight {
  /* disable global scrolling when featherlights are visible */
  overflow: hidden;
}

.featherlight {
  display: none;
  /* dimensions: spanning the background from edge to edge */
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2147483647; /* z-index needs to be >= elements on the site. */
  /* position: centering content */
  text-align: center;
  /* insures that the ::before pseudo element doesn't force wrap with fixed width content; */
  white-space: nowrap;
  /* styling */
  cursor: pointer;
  background: #333;
  /* IE8 "hack" for nested featherlights */
  background: rgba(0, 0, 0, 0);
}

/* support for nested featherlights. Does not work in IE8 (use JS to fix) */
.featherlight:last-of-type {
  background: rgba(0, 0, 0, 0.8);
}

.featherlight:before {
  /* position: trick to center content vertically */
  content: "";
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}

.featherlight .featherlight-content {
  /* make content container for positioned elements (close button) */
  position: relative;
  /* position: centering vertical and horizontal */
  text-align: left;
  vertical-align: middle;
  display: inline-block;
  /* dimensions: cut off images */
  overflow: auto;
  padding: 25px 25px 0;
  border-bottom: 25px solid transparent;
  /* dimensions: handling large content */
  margin-left: 5%;
  margin-right: 5%;
  max-height: 95%;
  /* styling */
  cursor: auto;
  /* reset white-space wrapping */
  white-space: normal;
}

/* contains the content */
.featherlight .featherlight-inner {
  /* make sure its visible */
  display: block;
}

/* don't show these though */
.featherlight script.featherlight-inner,
.featherlight link.featherlight-inner,
.featherlight style.featherlight-inner {
  display: none;
}

.featherlight .featherlight-close-icon {
  /* position: centering vertical and horizontal */
  position: absolute;
  z-index: 9999;
  top: 0;
  right: 0;
  /* dimensions: 25px x 25px */
  line-height: 25px;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  /* styling */
  cursor: pointer;
  text-align: center;
  font-family: Arial, sans-serif;
  background: #fff; /* Set the background in case it overlaps the content */
  background: rgba(255, 255, 255, 0.3);
  color: #000;
  border: none;
  padding: 0;
}

/* See http://stackoverflow.com/questions/16077341/how-to-reset-all-default-styles-of-the-html5-button-element */
.featherlight .featherlight-close-icon::-moz-focus-inner {
  border: 0;
  padding: 0;
}

.featherlight .featherlight-image {
  /* styling */
  width: 100%;
}

.featherlight-iframe .featherlight-content {
  /* removed the border for image croping since iframe is edge to edge */
  border-bottom: 0;
  padding: 0;
  -webkit-overflow-scrolling: touch;
}

.featherlight iframe {
  /* styling */
  border: none;
}

.featherlight * { /* See https://github.com/noelboss/featherlight/issues/42 */
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

/* handling phones and small screens */
@media only screen and (max-width: 1024px) {
  .featherlight .featherlight-content {
    /* dimensions: maximize lightbox with for small screens */
    margin-left: 0;
    margin-right: 0;
    max-height: 98%;
    padding: 10px 10px 0;
    border-bottom: 10px solid transparent;
  }
}
/* hide non featherlight items when printing */
@media print {
  html.with-featherlight > * > :not(.featherlight) {
    display: none;
  }
}
/* --------------------------------

baseicon Web Font
Generated using nucleoapp.com

-------------------------------- */
@font-face {
  font-family: "baseicon";
  src: url("https://demo.co-enterprise.com.sg/rasorn-v9/wp-content/themes/rasorn-theme/fonts/baseicon.eot");
  src: url("https://demo.co-enterprise.com.sg/rasorn-v9/wp-content/themes/rasorn-theme/fonts/baseicon.eot") format("embedded-opentype"), url("https://demo.co-enterprise.com.sg/rasorn-v9/wp-content/themes/rasorn-theme/fonts/baseicon.woff2") format("woff2"), url("https://demo.co-enterprise.com.sg/rasorn-v9/wp-content/themes/rasorn-theme/fonts/baseicon.woff") format("woff"), url("https://demo.co-enterprise.com.sg/rasorn-v9/wp-content/themes/rasorn-theme/fonts/baseicon.ttf") format("truetype"), url("https://demo.co-enterprise.com.sg/rasorn-v9/wp-content/themes/rasorn-theme/fonts/baseicon.svg") format("svg");
  font-weight: normal;
  font-style: normal;
}
/*------------------------
	base class definition
-------------------------*/
.icon {
  display: inline-block;
  font: normal normal normal 1em/1 "baseicon";
  speak: none;
  text-transform: none;
  /* Better Font Rendering */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/*------------------------
  change icon size
-------------------------*/
/* relative units */
.icon-sm {
  font-size: 0.8em;
}

.icon-lg {
  font-size: 1.2em;
}

/* absolute units */
.icon-16 {
  font-size: 16px;
}

.icon-32 {
  font-size: 32px;
}

/*----------------------------------
  add a square/circle background
-----------------------------------*/
.icon-bg-square,
.icon-bg-circle {
  padding: 0.35em;
  background-color: #eee;
}

.icon-bg-circle {
  border-radius: 50%;
}

/*------------------------------------
  use icons as list item markers
-------------------------------------*/
.icon-ul {
  padding-left: 0;
  list-style-type: none;
}
.icon-ul > li {
  display: flex;
  align-items: flex-start;
  line-height: 1.4;
}
.icon-ul > li > .icon {
  margin-right: 0.4em;
  line-height: inherit;
}

/*------------------------
  spinning icons
-------------------------*/
.icon-is-spinning {
  -webkit-animation: icon-spin 2s infinite linear;
  -moz-animation: icon-spin 2s infinite linear;
  animation: icon-spin 2s infinite linear;
}

@-webkit-keyframes icon-spin {
  0% {
    -webkit-transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
  }
}
@-moz-keyframes icon-spin {
  0% {
    -moz-transform: rotate(0deg);
  }
  100% {
    -moz-transform: rotate(360deg);
  }
}
@keyframes icon-spin {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
/*------------------------
  rotated/flipped icons
-------------------------*/
.icon-rotate-90 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -o-transform: rotate(90deg);
  transform: rotate(90deg);
}

.icon-rotate-180 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
}

.icon-rotate-270 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
  -webkit-transform: rotate(270deg);
  -moz-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  -o-transform: rotate(270deg);
  transform: rotate(270deg);
}

.icon-flip-y {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0);
  -webkit-transform: scale(-1, 1);
  -moz-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  -o-transform: scale(-1, 1);
  transform: scale(-1, 1);
}

.icon-flip-x {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: scale(1, -1);
  -moz-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  -o-transform: scale(1, -1);
  transform: scale(1, -1);
}

/*------------------------
	icons
-------------------------*/
.icon-account::before {
  content: "\ea01";
}

.icon-bag-09::before {
  content: "\ea02";
}

.icon-checked-symbol::before {
  content: "\ea03";
}

.icon-facebook-1::before {
  content: "\ea04";
}

.icon-facebook-circle::before {
  content: "\ea05";
}

.icon-facebook::before {
  content: "\ea06";
}

.icon-fax::before {
  content: "\ea07";
}

.icon-ic_access_time_48px::before {
  content: "\ea08";
}

.icon-ic_arrow_back_36px::before {
  content: "\ea09";
}

.icon-ic_close_48px::before {
  content: "\ea0a";
}

.icon-ic_mail_outline_48px::before {
  content: "\ea0b";
}

.icon-instagram::before {
  content: "\ea0c";
}

.icon-lock::before {
  content: "\ea0d";
}

.icon-phone-2-2::before {
  content: "\ea0e";
}

.icon-phone-2::before {
  content: "\ea0f";
}

.icon-pin::before {
  content: "\ea10";
}

.icon-placeholder::before {
  content: "\ea11";
}

.icon-plus::before {
  content: "\ea12";
}

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

.icon-single-01::before {
  content: "\ea14";
}

.icon-star::before {
  content: "\ea15";
}

.icon-whatsapp-logo::before {
  content: "\ea16";
}

.icon-youtube::before {
  content: "\ea17";
}

.icon-zoom-2::before {
  content: "\ea18";
}

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: 700;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
  line-height: 1.3;
  display: inline-block;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
[type=button],
[type=reset],
[type=submit],
button {
  -webkit-appearance: button;
  border: 0;
  cursor: pointer;
  background-color: transparent;
}

/**
 * Remove the inner border and padding in Firefox.
 */
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner,
button::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring,
button:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/* Box Sizing
 --------------------------------------------- */
html {
  box-sizing: border-box;
}

*,
*::after,
*::before {
  box-sizing: inherit;
}

/* Typographical Elements
 --------------------------------------------- */
html {
  font-size: 56%;
  /* 10px browser default */
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}
@media only screen and (min-width: 960px) {
  html {
    font-size: 62.5%;
  }
}

/* Chrome fix */
body > div {
  font-size: 14px;
  font-size: 1.4rem;
}

body {
  background-color: #fff;
  color: #333;
  font-family: "Gill Sans", sans-serif;
  font-size: 14px;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.625;
  margin: 0;
  overflow-x: hidden;
}

button,
input:focus,
input[type=button],
input[type=reset],
input[type=submit],
textarea:focus,
.button,
.gallery img {
  transition: all 0.2s ease-in-out;
}

ol,
ul {
  margin: 0;
  padding: 0;
}

li {
  list-style-type: none;
}

hr {
  border: 0;
  border-collapse: collapse;
  border-top: 1px solid #eee;
  clear: both;
  margin: 30px 0;
}

b,
strong {
  font-weight: 700;
}

blockquote,
cite,
em,
i {
  font-style: italic;
}

mark {
  background: #ddd;
  color: #333;
}

blockquote {
  margin: 30px;
}

blockquote::before {
  content: "“";
  display: block;
  font-size: 30px;
  font-size: 3rem;
  height: 0;
  left: -20px;
  position: relative;
  top: -10px;
}

/* Headings
 --------------------------------------------- */
h1,
h2,
h3,
form.woocommerce-checkout .col-1 h4,
form.woocommerce-checkout .checkout_coupon h4,
h4,
h5,
h6 {
  font-weight: 400;
  color: #ce0058;
  line-height: 1.2;
  margin: 0 0 2rem;
}

h1 {
  font-size: 5rem;
  font-family: "BubbleGum", sans-serif;
}

h2 {
  font-size: 3.6rem;
  font-family: "BubbleGum", sans-serif;
}

h3, form.woocommerce-checkout .col-1 h4, form.woocommerce-checkout .checkout_coupon h4 {
  font-size: 2.4rem;
  font-family: "BubbleGum", sans-serif;
}

h4 {
  font-size: 1.8rem;
  font-weight: 400;
}

h5 {
  font-size: 1.6rem;
}

h6 {
  font-size: 1.3rem;
}

a {
  text-decoration: none;
  font-weight: 700;
  color: #ce0058;
}
a:hover {
  text-decoration: underline;
  color: #68002c;
}

label {
  font-size: 1.4rem;
  color: hsl(0deg, 0%, 60%);
}

/* Text
 --------------------------------------------- */
p {
  font-size: 1.5rem;
  line-height: 2.4rem;
  margin: 0 0 15px;
}
p:last-child {
  margin-bottom: 0;
}
p.x-small {
  font-size: 1.2rem;
  line-height: 1.2;
}
p.small, .woocommerce-privacy-policy-text p, .entry-content p.entry-meta, .post-entry-list p {
  font-size: 1.4rem;
  line-height: 1.2;
}
p.large, section.about-main-section .section-title p {
  font-size: 1.8rem;
  line-height: 1.5;
}

/* Dark theme
 --------------------------------------------- */
.page-template-content .entry-content h2, .post-single .entry-content h2,
.page-template-content .entry-content h3,
.page-template-content .entry-content form.woocommerce-checkout .col-1 h4,
.page-template-content .entry-content form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .col-1 .page-template-content .entry-content h4,
form.woocommerce-checkout .checkout_coupon .page-template-content .entry-content h4,
.post-single .entry-content h3,
.post-single .entry-content form.woocommerce-checkout .col-1 h4,
.post-single .entry-content form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .col-1 .post-single .entry-content h4,
form.woocommerce-checkout .checkout_coupon .post-single .entry-content h4,
.page-template-content .entry-content h4,
.post-single .entry-content h4,
.page-template-content .entry-content h5,
.post-single .entry-content h5,
.page-template-content .entry-content h6,
.post-single .entry-content h6 {
  line-height: 1.5;
  margin-top: 4rem;
}
.page-template-content .entry-content li, .post-single .entry-content li,
.page-template-content .entry-content p,
.post-single .entry-content p {
  margin-bottom: 1.2em;
  line-height: 2;
  text-align: justify;
  font-size: 1.7rem;
}
@media only screen and (min-width: 670px) {
  .page-template-content .entry-content li, .post-single .entry-content li,
.page-template-content .entry-content p,
.post-single .entry-content p {
    font-size: 1.8rem;
  }
}
.page-template-content .entry-content ul li, .post-single .entry-content ul li {
  list-style-type: disc;
}
.page-template-content .entry-content ol li, .post-single .entry-content ol li {
  list-style-type: decimal;
}

/* Defaults
 ============================================= */
/* Objects
 --------------------------------------------- */
.wp-caption,
embed,
iframe,
img,
object,
video {
  max-width: 100%;
}

img {
  height: auto;
  vertical-align: top;
}

figure {
  margin: 0;
}

/* Gallery
 --------------------------------------------- */
.gallery {
  overflow: hidden;
}
.gallery img {
  height: auto;
}
.gallery img:focus, .gallery img:hover {
  outline: none;
}

/* Tables
 --------------------------------------------- */
table {
  border-collapse: collapse;
  border-spacing: 0;
  line-height: 2;
  margin-bottom: 40px;
  width: 100%;
}

tbody {
  border-bottom: 1px solid #eee;
}

td,
th {
  text-align: left;
}
td:first-child,
th:first-child {
  padding-left: 0;
}

td {
  border-top: 1px solid #eee;
  padding: 6px;
}

th {
  font-weight: 400;
  padding: 0 6px;
}

/* Screen Reader Text
 --------------------------------------------- */
.screen-reader-shortcut,
.screen-reader-text,
.screen-reader-text span {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-shortcut:focus,
.screen-reader-text:focus {
  background: #fff;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  color: #333;
  display: block;
  font-size: 1em;
  font-weight: 700;
  height: auto;
  padding: 15px 23px 14px;
  text-decoration: none;
  width: auto;
  z-index: 100000;
  /* Above WP toolbar. */
}

.more-link {
  position: relative;
}

/* Image release
 --------------------------------------------- */
.image-release, .contact-1_mapembed:after {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  max-width: none;
  display: block;
}

/* Vertical align column objects
 --------------------------------------------- */
.vertical-center .wp-block-column {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
}

/* Animations
 ============================================= */
.fade-scale-before, .fade-left-before, .fade-right-before, .hidden {
  transition: all 0.5s ease-in-out;
  opacity: 0;
}

/* fade in top */
.hidden {
  transform: translateY(30px);
}

.shown {
  opacity: 1;
  transform: translateY(0px);
}

/* fade in right */
.fade-right-before {
  transform: translateX(-30px);
}

.fade-right {
  opacity: 1;
  transform: translateX(0px);
}

/* fade in left */
.fade-left-before {
  transform: translateX(30px);
}

.fade-left {
  opacity: 1;
  transform: translateX(0px);
}

/* fade in scale */
.fade-scale-before {
  transform: scale(0.9);
}

.fade-scale {
  opacity: 1;
  transform: scale(1);
}

/* Grid
 ============================================= */
/* Column Mixin
 --------------------------------------------- */
.woocommerce-lost-password .woocommerce, .woocommerce-order-pay .woocommerce, .woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-order-details {
  padding: 0 5%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-lost-password .woocommerce, .woocommerce-order-pay .woocommerce, .woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-order-details {
    padding: 0;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
  }
}

.cols-2, .col2-set, .woocommerce-account.logged-in .woocommerce {
  display: flex;
  flex-flow: row wrap;
}
.cols-2 > *, .col2-set > *, .woocommerce-account.logged-in .woocommerce > * {
  width: 100%;
  margin-bottom: 30px;
}
@media only screen and (min-width: 670px) {
  .cols-2 > *, .col2-set > *, .woocommerce-account.logged-in .woocommerce > * {
    width: calc((100% - (30px * (2 - 1))) / 2);
    margin-right: 30px;
  }
  .cols-2 > *:nth-child(2n), .col2-set > *:nth-child(2n), .woocommerce-account.logged-in .woocommerce > *:nth-child(2n) {
    margin-right: 0;
  }
}

.cols-3 {
  display: flex;
  flex-flow: row wrap;
}
.cols-3 > * {
  width: 100%;
  margin-bottom: 30px;
}
@media only screen and (min-width: 670px) {
  .cols-3 > * {
    width: calc((100% - (30px * (3 - 1))) / 3);
    margin-right: 30px;
  }
  .cols-3 > *:nth-child(3n) {
    margin-right: 0;
  }
}

/* Column Layouts
 --------------------------------------------- */
@media only screen and (min-width: 670px) {
  .two-one > *:nth-child(1) {
    flex: 2 1 0;
  }
  .two-one > *:nth-child(2) {
    flex: 1 1 0;
  }
}

/* Wrapper
 --------------------------------------------- */
section.wrapper {
  width: 100%;
  padding: 50px 5%;
}
@media only screen and (min-width: 960px) {
  section.wrapper {
    padding: 80px 10%;
  }
}
section.wrapper-small {
  width: 100%;
  padding: 15px 5%;
}
@media only screen and (min-width: 960px) {
  section.wrapper-small {
    padding: 30px 10%;
  }
}
section.wrapper-large {
  width: 100%;
  padding: 80px 5%;
}
@media only screen and (min-width: 960px) {
  section.wrapper-large {
    padding: 120px 10%;
  }
}
section.wrapper-full {
  width: 100%;
  padding: 50px 0;
}
@media only screen and (min-width: 960px) {
  section.wrapper-full {
    padding: 80px 0;
  }
}

/* Genesis Structure and Layout
  ============================================== */
/* Site Container
 --------------------------------------------- */
.site-container {
  word-wrap: break-word;
  overflow: hidden;
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;
  min-height: 100vh;
  background-color: #CE0058;
}

main.content {
  flex: 1 1 100%;
}

.site-header + * {
  margin-top: 85px;
}

/* Common Classes
------------------------------------------------------------------------------------------ */
/* Genesis
 --------------------------------------------- */
.after-entry,
.archive-description,
.author-box {
  margin-bottom: 40px;
}

.after-entry {
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
  padding: 20px 30px;
}

.after-entry .widget:last-of-type {
  margin-bottom: 0;
}

.breadcrumb {
  border-bottom: 1px solid #eee;
  font-size: 16px;
  font-size: 1.6rem;
  margin-bottom: 40px;
  padding-bottom: 10px;
}

.archive-description p:last-child,
.author-box p:last-child {
  margin-bottom: 0;
}

/* Search Form
 --------------------------------------------- */
.search-form {
  overflow: hidden;
}

.entry-content .search-form {
  margin-bottom: 40px;
  width: 50%;
}

.post-password-form input[type=submit],
.search-form input[type=submit] {
  margin-top: 10px;
}

.widget_search input[type=submit] {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  width: 1px;
}

/* Titles
 --------------------------------------------- */
.entry-title a,
.sidebar .widget-title a {
  color: #333;
  text-decoration: none;
}

.widget-title {
  font-size: 16px;
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 20px;
}

/* WordPress
--------------------------------------------- */
a.aligncenter img {
  display: block;
  margin: 0 auto;
}

a.alignnone {
  display: inline-block;
}

a.alignleft,
a.alignnone,
a.alignright {
  max-width: 100%;
}

img.alignnone,
.alignnone {
  margin-bottom: 15px;
}

a.alignleft,
img.alignleft,
.wp-caption.alignleft {
  margin: 0 20px 20px 0;
}

a.alignright,
img.alignright,
.wp-caption.alignright {
  margin: 0 0 20px 20px;
}

.gallery-caption,
.wp-caption-text {
  font-size: 14px;
  font-weight: 600;
  margin-top: 0.5em;
  margin-bottom: 1em;
  padding-left: 10px;
  padding-right: 10px;
  text-align: center;
}

.entry-content p.wp-caption-text {
  margin-bottom: 0;
}

.entry-content .wp-audio-shortcode,
.entry-content .wp-playlist,
.entry-content .wp-video {
  margin: 0 0 30px;
}

/* Header Buttons
 --------------------------------------------- */
#woocommerce-product-search-button, .header-widget-area a,
.header-widget-area button, .menu-toggle {
  width: 36px;
  height: 36px;
  background-color: #CE0058;
  border-radius: 50%;
  font-size: 17px;
  color: #fff;
  font-weight: 400;
  line-height: 1;
}
#woocommerce-product-search-button:hover, .header-widget-area a:hover,
.header-widget-area button:hover, .menu-toggle:hover,
#woocommerce-product-search-button a:hover,
.menu-toggle a:hover {
  text-decoration: none;
}
#woocommerce-product-search-button:hover, .header-widget-area a:hover,
.header-widget-area button:hover, .menu-toggle:hover {
  color: #fff;
}

/* Skip Links
 --------------------------------------------- */
.genesis-skip-link {
  margin: 0;
}
.genesis-skip-link .skip-link-hidden {
  display: none;
  visibility: hidden;
}
.genesis-skip-link li {
  height: 0;
  list-style: none;
  width: 0;
}

/* Site Header
 --------------------------------------------- */
.site-header {
  position: fixed;
  z-index: 999;
  background-color: #f3e7d7;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
  padding: 0 30px;
  top: 0;
  width: 100%;
}
.site-header > .wrap {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  /* Structure */
}
.site-header > .wrap > *.pre-header {
  flex: 0 0 100%;
}
@media only screen and (min-width: 960px) {
  .site-header > .wrap > *.title-area {
    flex: 0 0 auto;
  }
}
.site-header > .wrap > *.header-widget-area {
  flex: 1 1 0;
}
@media only screen and (min-width: 960px) {
  .site-header > .wrap > *.header-widget-area {
    flex: 0 0 auto;
  }
}
.site-header > .wrap > *.menu-toggle {
  flex: 1 1 0;
}

.site-header.header-scroll .title-area {
  width: 120px;
  padding: 6px 0;
}

/* Title Area
 --------------------------------------------- */
.title-area {
  width: 140px;
  padding: 10px 0;
  order: 2;
  margin: 0 auto;
}
@media only screen and (min-width: 960px) {
  .title-area {
    order: 0;
    margin: 0;
  }
}
.title-area a {
  display: block;
  margin: 0 auto;
}

.site-description,
.wp-custom-logo .site-title {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

/* Responsive Menu
 --------------------------------------------- */
.menu .menu-item:focus {
  position: static;
}

.menu .menu-item > a:focus + ul.sub-menu,
.menu .menu-item.sfHover > ul.sub-menu {
  left: auto;
  opacity: 1;
}

.genesis-responsive-menu {
  position: relative;
  display: none;
}
@media only screen and (min-width: 960px) {
  .genesis-responsive-menu {
    display: inherit;
  }
}

/* Menu Toggle & Sub Menu Toggle */
.menu-toggle,
.sub-menu-toggle {
  background-color: transparent;
  border-width: 0;
  color: #CE0058;
  display: block;
  margin: 0 auto;
  overflow: hidden;
  text-align: center;
  visibility: visible;
}
@media only screen and (min-width: 960px) {
  .menu-toggle,
.sub-menu-toggle {
    display: none;
    visibility: hidden;
  }
}
.menu-toggle:focus, .menu-toggle:hover,
.sub-menu-toggle:focus,
.sub-menu-toggle:hover {
  background-color: transparent;
  border-width: 0;
}

/* Menu Toggle */
.menu-toggle {
  position: relative;
  z-index: 1000;
  overflow: hidden;
  padding: 0;
  order: 4;
  margin: 0;
  font-size: 0;
  text-align: right;
}
.menu-toggle::before {
  position: relative;
  text-rendering: auto;
  margin-right: 20px;
}
.menu-toggle.activated::before {
  content: "\f335";
}

/* Sub Menu Toggle */
.sub-menu-toggle {
  position: absolute;
  right: 5px;
  top: 15px;
  z-index: 100;
  text-align: center;
}
.sub-menu-toggle:before {
  display: inline-block;
  text-rendering: auto;
  transform: rotate(0);
  transition: transform 0.25s ease-in-out;
  color: #CE0058;
}
.sub-menu-toggle.activated:before {
  transform: rotate(180deg);
  color: #ff026e;
}

/* Header Menu
 --------------------------------------------- */
/* Header Menu Structure */
.nav-primary {
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 99;
  overflow-y: scroll;
  display: none;
  top: 86px;
}
.header-scroll .nav-primary {
  top: 68px;
}
@media only screen and (min-width: 960px) {
  .nav-primary {
    position: relative;
    top: 0 !important;
    height: auto;
    width: auto;
    background-color: transparent;
    display: flex;
    flex-flow: row wrap;
    align-self: stretch;
    overflow-y: visible;
    margin-left: auto;
  }
}
@media only screen and (min-width: 960px) {
  .nav-primary .wrap {
    height: 100%;
  }
}

/* Main Header Menu */
.menu-primary {
  display: flex;
  flex-flow: row wrap;
  position: relative;
  line-height: 1;
  height: 100%;
  background-color: rgb(250, 250, 250);
  box-shadow: inset 0 0 20px 0 rgba(0, 0, 0, 0.1);
  /* Generic li style*/
  /* Generic nav link style */
  /* First level li */
  /* Level 2 Menu */
}
@media only screen and (max-width: 670px) {
  .menu-primary {
    justify-content: center;
  }
}
@media only screen and (min-width: 960px) {
  .menu-primary {
    background-color: transparent;
    box-shadow: none;
  }
}
.menu-primary .sub-menu {
  z-index: 99;
  box-shadow: inset 0 0 8px 0 rgba(0, 0, 0, 0.15);
  background-color: #f0f0f0;
  display: none;
  /* Second level li */
}
@media only screen and (min-width: 960px) {
  .menu-primary .sub-menu {
    position: absolute;
    min-width: 180px;
    width: auto;
    opacity: 0;
    left: 9999px;
    background-color: #fff;
    box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.1);
    border-radius: 0 0 8px 8px;
  }
}
/* Styles for Main Navigation
--------------------------------------------- */
@media only screen and (min-width: 960px) {
  .menu-primary .menu-item {
    border: 0;
  }
}
.menu-primary > li {
  position: relative;
  width: 100%;
  /* If have children */
  /* If Highlighted */
}
@media only screen and (min-width: 960px) {
  .menu-primary > li {
    display: block;
    align-self: center;
    width: auto;
  }
}
.menu-primary > li.menu-item-has-children:before {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 7px solid #CE0058;
  left: calc(50% - 10px);
  opacity: 0;
  bottom: 0;
}
.menu-primary > li.menu-item-has-children:hover:before {
  opacity: 1;
}
.menu-primary > li.menu-item--highlight > a {
  background-color: #ffb81c;
  color: #CE0058;
  margin: 0 10px;
  border-radius: 1rem;
}
@media only screen and (max-width: 670px) {
  .menu-primary > li.menu-item--highlight > a {
    margin-bottom: 1rem;
  }
}
@media only screen and (min-width: 960px) {
  .menu-primary .sub-menu .menu-item:hover {
    background-color: #CE0058;
  }
  .menu-primary .sub-menu .menu-item:hover > a {
    color: #fff;
  }
}

.menu-primary a {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  font-weight: 400;
  font-family: "BubbleGum", sans-serif;
  text-transform: uppercase;
  font-size: 1.4rem;
}
@media only screen and (min-width: 960px) {
  .menu-primary a {
    text-align: left;
    align-items: center;
    justify-content: flex-start;
  }
}
.menu-primary a:hover {
  text-decoration: none;
}
.menu-primary a i {
  font-weight: 400;
}
.menu-primary > li > a {
  padding: 20px 24px;
}
.menu-primary .sub-menu .menu-item > a {
  padding: 14px 15px;
}
@media only screen and (min-width: 960px) {
  .menu-primary .sub-menu .menu-item > a {
    font-size: 14px;
  }
  .menu-primary .sub-menu .menu-item > a:hover {
    color: #fff;
    background-color: #CE0058;
  }
}

/* Header Widget Area
 --------------------------------------------- */
.header-widget-area {
  display: flex;
  flex-flow: row nowrap;
  position: relative;
  z-index: 101;
  order: 0;
}
@media only screen and (min-width: 960px) {
  .header-widget-area {
    order: 3;
    margin: 0 5% 0 auto;
  }
}
.header-widget-area .menu {
  display: flex;
  flex-flow: row wrap;
}
.header-widget-area .menu li {
  margin-bottom: 0;
}
.header-widget-area .widget {
  margin-bottom: 0;
}
/* Pre Header
 --------------------------------------------- */
.pre-header {
  position: relative;
  font-size: 10px;
  display: flex;
  justify-content: space-between;
  background-color: #f7f7f7;
  padding: 3px 3%;
}
.pre-header > * {
  margin-bottom: 0;
}
.pre-header > * i {
  margin: 0 3px;
  font-weight: 700;
}
.pre-header > *:nth-child(odd) {
  flex: 1 1 0;
  display: flex;
  line-height: 2;
  align-items: center;
}
.pre-header > *:nth-child(even) {
  flex: 11 1 0;
  text-align: center;
}
@media only screen and (min-width: 670px) {
  .pre-header > *:nth-child(even) {
    flex: 2 1 0;
  }
}
.pre-header > *:last-child {
  text-align: right;
  justify-content: flex-end;
}
.pre-header p {
  color: #9e1c25;
}
@media only screen and (max-width: 670px) {
  .pre-header a span {
    display: none;
  }
}

#menu-social-media-menu {
  gap: 0.5rem;
}

/* Sidebar
 --------------------------------------------- */
.sidebar {
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.5;
}

.sidebar .widget {
  margin-bottom: 50px;
}

.sidebar p {
  margin-bottom: 20px;
}

/* Footer
  ============================================== */
/* Footer Widgets
 --------------------------------------------- */
.footer-widgets {
  background: #ffb81c;
  width: 100%;
  padding: 8rem 5%;
}
@media only screen and (max-width: 670px) {
  .footer-widgets {
    text-align: center;
  }
}
.footer-widgets:after {
  opacity: 1;
}
.footer-widgets .wrap {
  display: grid;
  gap: 1.5rem;
}
@media only screen and (min-width: 670px) {
  .footer-widgets .wrap {
    gap: 3rem;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
  }
}
@media only screen and (min-width: 960px) {
  .footer-widgets .wrap {
    max-width: 960px;
    margin-inline: auto;
  }
  .footer-widgets .wrap > * {
    margin-right: 30px;
  }
  .footer-widgets .wrap > *:last-child {
    margin-right: 0;
  }
}
.footer-widgets .widget-title {
  font-family: "BubbleGum", sans-serif;
  font-weight: 400;
  font-size: 1.8rem;
}
@media only screen and (max-width: 670px) {
  .footer-widgets .widget-title {
    margin-bottom: 1rem;
  }
}
.footer-widgets .widget {
  margin-bottom: 20px;
}

.footer-widget-area {
  margin-bottom: 20px;
}
.footer-widget-area p {
  color: hsl(50deg, 25%, 25%);
  font-size: 1.5rem;
}
@media only screen and (min-width: 960px) {
  .footer-widget-area {
    margin-bottom: 0;
  }
}

.footer-widgets .menu {
  display: flex;
  flex-flow: column wrap;
  gap: 0.5rem;
}
.footer-widgets .menu .sub-menu {
  display: none;
}
.footer-widgets .menu li {
  width: 100%;
  margin-bottom: 0;
}
@media only screen and (min-width: 670px) {
  .footer-widgets .menu li {
    width: auto;
  }
}
.footer-widgets .menu li a {
  display: block;
  padding: 3px 0;
  font-size: 1.3rem;
  color: hsl(50deg, 25%, 25%);
  font-weight: 600;
}
@media only screen and (min-width: 960px) {
  .footer-widgets .menu li a {
    padding: 0;
  }
}
.footer-widgets .menu li a i {
  font-size: 16px;
}

.footer-widgets-1 {
  display: flex;
  flex-flow: column nowrap;
}
@media only screen and (min-width: 670px) {
  .footer-widgets-1 {
    justify-content: flex-start;
    align-items: flex-start;
  }
}
.footer-widgets-1 h2 {
  font-size: 4.8rem;
}
.footer-widgets-1 img {
  width: 150px;
}

.footer-widgets-4 .menu-social-media-menu-container .menu {
  flex-flow: row wrap;
}
@media only screen and (max-width: 670px) {
  .footer-widgets-4 .menu-social-media-menu-container .menu {
    justify-content: center;
  }
}
.footer-widgets-4 .menu-social-media-menu-container li {
  width: auto;
}
.footer-widgets-4 .menu-social-media-menu-container li a {
  width: 36px;
  aspect-ratio: 1;
  border-radius: 50%;
  line-height: 1;
  display: grid;
  place-items: center;
  color: #fff;
  background-color: #CE0058;
}
.footer-widgets-4 .menu-social-media-menu-container li a:hover {
  text-decoration: none;
}

.textwidget > p {
  display: block;
}

.footer-widget-area:last-child,
.footer-widgets .widget:last-child {
  margin-bottom: 0;
}

@media only screen and (max-width: 670px) {
  #menu-social-media-menu .menu-item {
    width: auto;
  }
  .site-header #menu-social-media-menu {
    display: none;
  }
}

/* Site Footer
 --------------------------------------------- */
.site-footer {
  background-color: #CE0058;
  color: #f3e7d7;
  line-height: 1.5;
  padding: 15px 5% 5px;
}
.site-footer > .wrap {
  display: flex;
  flex-flow: column nowrap;
  text-align: center;
}
.site-footer > .wrap > p {
  font-family: "BubbleGum", sans-serif;
  margin: 0 0 5px;
}

/* Graphics
 ============================================= */
/* Secondary Graphic
 --------------------------------------------- */
/* Background Pattern
--------------------------------------------- */
/* Graphic Divider 1
--------------------------------------------- */
/* Graphic Divider 2 - brush
--------------------------------------------- */
/* Divider after title
--------------------------------------------- */
/* Buttons
 =============================================
 btn-1
 btn-2
 btn-icon-text
 */
/* Structure of a button */
.woocommerce-info a,
.woocommerce-message a, button[type=submit],
.button, .wapf-radios .wapf-label-text, .wc_payment_method > label, .added_to_cart, form input[type=submit], .btn {
  position: relative;
  display: inline-block;
  line-height: initial;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  top: 0;
  border: 0;
  transition: all 0.15s ease-in-out;
  cursor: pointer;
  padding: 0.9em 1.2em;
  font-size: 1.3rem;
}
.woocommerce-info a:hover,
.woocommerce-message a:hover, button[type=submit]:hover,
.button:hover, .wapf-radios .wapf-label-text:hover, .wc_payment_method > label:hover, .added_to_cart:hover, form input[type=submit]:hover, .btn:hover {
  text-decoration: none;
}
.woocommerce-pagination a,
.woocommerce-pagination span, header.woocommerce-Address-title a, .btn-small {
  position: relative;
  display: inline-block;
  line-height: initial;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  top: 0;
  border: 0;
  transition: all 0.15s ease-in-out;
  cursor: pointer;
  padding: 0.6em 0.9em;
  font-size: 1.2rem;
}
.woocommerce-pagination a:hover,
.woocommerce-pagination span:hover, header.woocommerce-Address-title a:hover, .btn-small:hover {
  text-decoration: none;
}
#shipping_method label, #sidebar-toggle, .btn-large {
  position: relative;
  display: inline-block;
  line-height: initial;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  top: 0;
  border: 0;
  transition: all 0.15s ease-in-out;
  cursor: pointer;
  padding: 1.2em;
  font-size: 1.4rem;
}
#shipping_method label:hover, #sidebar-toggle:hover, .btn-large:hover {
  text-decoration: none;
}

.btn.align-c {
  margin: 0 auto;
  display: table;
}
/* Solid Button - btn-1
   --------------------------------------------- */
.woocommerce-pagination a, .woocommerce-info a,
.woocommerce-message a, .wc-backward, .checkout-button,
a.add_to_cart_button,
button.add_to_cart_button,
button[type=submit], .wapf-radios .wapf-checkable.wapf-checked .wapf-label-text, .woocommerce-form-login__submit,
.woocommerce-form-register__submit, #shipping_method input[type=hidden] + label, #shipping_method input[type=radio]:checked + label, #sidebar-toggle, form input[type=submit], .btn-1 {
  background-color: #ce0058;
  color: #fff;
  border-radius: 1rem;
}
.woocommerce-pagination a:hover, .woocommerce-info a:hover,
.woocommerce-message a:hover, .wc-backward:hover, .checkout-button:hover,
a.add_to_cart_button:hover,
button.add_to_cart_button:hover,
button[type=submit]:hover, .wapf-radios .wapf-checkable.wapf-checked .wapf-label-text:hover, .woocommerce-form-login__submit:hover,
.woocommerce-form-register__submit:hover, #shipping_method input[type=hidden] + label:hover, #shipping_method input[type=radio]:checked + label:hover, #sidebar-toggle:hover, form input[type=submit]:hover, .btn-1:hover {
  color: #fff;
  background-color: #820037;
}
.woocommerce-pagination a:active, .woocommerce-info a:active,
.woocommerce-message a:active, .wc-backward:active, .checkout-button:active,
a.add_to_cart_button:active,
button.add_to_cart_button:active,
button[type=submit]:active, .wapf-radios .wapf-checkable.wapf-checked .wapf-label-text:active, .woocommerce-form-login__submit:active,
.woocommerce-form-register__submit:active, #shipping_method input[type=hidden] + label:active, #shipping_method input[type=radio]:checked + label:active, #sidebar-toggle:active, form input[type=submit]:active, .btn-1:active {
  transform: translateY(3px);
}
header.woocommerce-Address-title a, .btn-1-secondary {
  background-color: hsl(0deg, 0%, 60%);
  color: hsl(0deg, 0%, 100%);
  border-radius: 1rem;
}
header.woocommerce-Address-title a:hover, .btn-1-secondary:hover {
  color: #fff;
  background-color: #737373;
}
header.woocommerce-Address-title a:active, .btn-1-secondary:active {
  transform: translateY(3px);
}
.woocommerce-pagination span, .shop_table .button, .wapf-radios .wapf-label-text, .wc_payment_method > label, #shipping_method label, .added_to_cart, .btn-1-light {
  background-color: hsl(0deg, 0%, 90%);
  color: hsl(0deg, 0%, 50%);
  border-radius: 1rem;
}
.woocommerce-pagination span:hover, .shop_table .button:hover, .wapf-radios .wapf-label-text:hover, .wc_payment_method > label:hover, #shipping_method label:hover, .added_to_cart:hover, .btn-1-light:hover {
  color: #fff;
  background-color: #bfbfbf;
}
.woocommerce-pagination span:active, .shop_table .button:active, .wapf-radios .wapf-label-text:active, .wc_payment_method > label:active, #shipping_method label:active, .added_to_cart:active, .btn-1-light:active {
  transform: translateY(3px);
}
.btn-1-success {
  background-color: #689447;
  color: hsl(0deg, 0%, 100%);
  border-radius: 1rem;
}
.btn-1-success:hover {
  color: #fff;
  background-color: #44602e;
}
.btn-1-success:active {
  transform: translateY(3px);
}
.btn-1-info {
  background-color: #00b5e2;
  color: hsl(0deg, 0%, 100%);
  border-radius: 1rem;
}
.btn-1-info:hover {
  color: #fff;
  background-color: #007896;
}
.btn-1-info:active {
  transform: translateY(3px);
}
.btn-1-warning {
  background-color: #ffb81c;
  color: #CE0058;
  border-radius: 1rem;
}
.btn-1-warning:hover {
  color: #fff;
  background-color: #cf8e00;
}
.btn-1-warning:active {
  transform: translateY(3px);
}
.btn-1-danger {
  background-color: #9e1c25;
  color: hsl(0deg, 0%, 100%);
  border-radius: 1rem;
}
.btn-1-danger:hover {
  color: #fff;
  background-color: #5d1016;
}
.btn-1-danger:active {
  transform: translateY(3px);
}
.btn-1-purple {
  background-color: #9b26b6;
  color: hsl(0deg, 0%, 100%);
  border-radius: 1rem;
}
.btn-1-purple:hover {
  color: #fff;
  background-color: #651977;
}
.btn-1-purple:active {
  transform: translateY(3px);
}

/* Outline Button - btn-2
   --------------------------------------------- */
.btn-2 {
  background-color: transparent;
  color: #CE0058;
  border: 2px solid #ff026e;
  border-radius: 5px;
  text-transform: none;
}
.btn-2:hover {
  background-color: #CE0058;
  border-color: #CE0058;
  color: #fff;
}
.btn-2-white {
  background-color: transparent;
  color: #fff;
  border: 2px solid white;
  border-radius: 5px;
  text-transform: none;
}
.btn-2-white:hover {
  background-color: #fff;
  border-color: #fff;
  color: #fff;
}
.btn-2-white:hover {
  color: #820037;
}

/* Button Icon Text - .btn-icon-text
   --------------------------------------------- */
.btn-icon-text {
  display: flex;
  align-items: center;
  border-radius: 3px;
  background-color: #820037;
  color: #fff;
  width: auto;
  padding: 6px 12px;
}
.btn-icon-text:hover {
  color: #fff;
}
.btn-icon-text i {
  width: 30px;
  height: 30px;
  background-color: hsla(0deg, 0%, 100%, 0);
  border-radius: 50%;
  font-size: 18px;
  margin-right: 5px;
  margin-left: -5px;
}
.btn-icon-text i:hover,
.btn-icon-text i a:hover {
  text-decoration: none;
}

/* Genesis Widgets
 ============================================= */
/* Widget
 --------------------------------------------- */
.widget {
  margin-bottom: 40px;
}

.widget p:last-child,
.widget ul > li:last-of-type {
  margin-bottom: 0;
}

.widget ul > li {
  margin-bottom: 10px;
}

.widget ul > li:last-of-type {
  padding-bottom: 0;
}

.widget ol > li {
  list-style-position: inside;
  list-style-type: decimal;
  padding-left: 20px;
  text-indent: -20px;
}

.widget li li {
  border: 0;
  margin: 0 0 0 30px;
  padding: 0;
}

.widget_calendar table {
  width: 100%;
}

.widget_calendar td,
.widget_calendar th {
  text-align: center;
}

/* Forms
  ============================================== */
/*
 ** Form Errors
 */
.woocommerce-invalid-required-field label {
  color: #9e1c25 !important;
}

.woocommerce-invalid-required-field input, .StripeElement.invalid {
  box-shadow: 0 0 0 2px #9e1c25 !important;
  border: 1px solid white !important;
}

/*CONTACT FORM*/
:focus {
  outline: 0;
}

::placeholder {
  opacity: 0.5;
}

input:not([type=submit]):not([type=file]),
textarea {
  height: 38px;
  width: 100%;
  padding: 6px 10px;
  background-color: #fff;
  border: 1px solid #D1D1D1;
  border-radius: 1rem;
  box-shadow: none;
  box-sizing: border-box;
  color: #555;
}
@media only screen and (max-width: 670px) {
  input:not([type=submit]):not([type=file]),
textarea {
    font-size: 16px;
    line-height: 1.5;
  }
}

/* Removes awkward default styles on some inputs for iOS */
input:not([type=submit]):not([type=file]),
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

input:not([type=submit]):not([type=file]):focus, input:not([type=submit]):not([type=file]):hover,
select:focus,
select:hover,
textarea:focus,
textarea:hover {
  background-color: #eaeaea;
  border: 1px solid #bbbbbb;
  outline: 0;
}
input:not([type=submit]):not([type=file]):focus,
select:focus,
textarea:focus {
  box-shadow: 0 0 0 2px #ce0058;
  border: 1px solid white;
}

input[type=checkbox],
input[type=radio] {
  display: inline;
}

form p {
  margin-bottom: 20px;
}
form label {
  font-weight: 700;
  color: hsl(50deg, 25%, 25%);
}
form textarea {
  min-height: 80px;
}
form input[type=file] {
  padding: 0.6em 0;
  background-color: transparent;
  border: 0;
}
form input[type=submit] {
  width: 100%;
}
form input[type=submit]:disabled {
  background: #f1f1f2;
  box-shadow: 0 0 0 0 #ccc;
}
form input[type=submit]:disabled:hover {
  top: 0;
}

/*WPCF7 SPECIFIC ERROR AND APPROVAL MESSAGES*/
.contact-form .wpcf7 form {
  position: relative;
  background-color: #ffb81c;
  padding: 3rem;
  border-radius: 2rem;
}
.contact-form .wpcf7 form:after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 120px;
  aspect-ratio: 211/303;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/takeaway.svg") no-repeat center/contain;
  transform: translate(50%, 50%);
}
.contact-form .wpcf7 form label {
  color: #fff;
  text-transform: uppercase;
}
.contact-form .wpcf7 form .wpcf7-list-item {
  margin: 0;
}
.contact-form .wpcf7 form span.wpcf7-form-control-wrap:before {
  content: "";
  position: absolute;
  width: 40px;
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: #f3e7d7;
  left: -50px;
  box-shadow: 0 0 0 5px #ffb81c;
  font-family: "Font Awesome 6 Free";
  display: grid;
  place-items: center;
  font-size: 1.9rem;
  color: #CE0058;
}
.contact-form .wpcf7 form span[data-name=your-name]:before {
  content: "\f5b7";
}
.contact-form .wpcf7 form span[data-name=your-email]:before {
  content: "\f0e0";
}
.contact-form .wpcf7 form span[data-name=your-phone]:before {
  content: "\f095";
}
.contact-form .wpcf7 form span[data-name=your-message]:before {
  content: "\f075";
}
.contact-form .wpcf7 form .wpcf7-not-valid-tip {
  color: #fff;
  background-color: #cc4a4a;
  padding: 0.2em 0.6em;
  font-size: 1.2rem;
  font-weight: 700;
  border-radius: 0 0 5px 5px;
  text-align: center;
}
.contact-form .wpcf7 form .wpcf7-response-output {
  position: relative;
  margin: 10px 0;
  padding: 0.5em 1em;
  border: 0 solid #cc4a4a;
  font-size: 1.4rem;
  line-height: 2.2rem;
  color: #fff;
  background-color: #cc4a4a;
  border-radius: 5px;
  font-weight: 600;
}
.contact-form .wpcf7 form .wpcf7-response-output:before {
  font-weight: 700;
  left: 5px;
  top: calc(50% - 15px);
  position: absolute;
  width: 30px;
  height: 30px;
  border-radius: 15px;
  background-color: rgba(255, 255, 255, 0.3);
}
.contact-form .wpcf7 form .wpcf7-acceptance-missing,
.contact-form .wpcf7 form .wpcf7-validation-errors {
  padding-left: 40px;
}
.contact-form .wpcf7 form .wpcf7-acceptance-missing:before,
.contact-form .wpcf7 form .wpcf7-validation-errors:before {
  content: "\ea0a";
}
.contact-form .wpcf7 form .wpcf7-mail-sent-ok {
  padding-left: 40px;
  background-color: green;
}
.contact-form .wpcf7 form .wpcf7-mail-sent-ok:before {
  content: "\ea03";
}
.contact-form .wpcf7 form.sent .wpcf7-response-output {
  padding-left: 40px;
  background-color: green;
}
.contact-form .wpcf7 form.sent .wpcf7-response-output:before {
  content: "\ea03";
}

/* Select Reset
   --------------------------------------------- */
select {
  display: block;
  font-size: 1.5rem;
  color: #555;
  line-height: 1.3;
  padding: 0.6em 1.4em 0.5em 0.8em;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
  border: 1px solid #ccc;
  border-radius: 0.3em;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat, repeat;
  background-position: right 0.7em top 50%, 0 0;
  background-size: 0.65em auto, 100%;
}
select::-ms-expand {
  display: none;
}
select:hover {
  border-color: #888;
}
select:focus {
  border-color: #aaa;
  box-shadow: 0 0 1px 3px rgba(59, 153, 252, 0.7);
  box-shadow: 0 0 0 3px -moz-mac-focusring;
  color: #222;
  outline: none;
}
select option {
  font-weight: normal;
}

/* Checkbox Reset
 --------------------------------------------- */
input[type=checkbox] {
  display: none;
  position: absolute;
  -webkit-appearance: none;
}
input[type=checkbox] + * {
  position: relative;
  line-height: 1.5;
  display: inline;
}
input[type=checkbox] + * > * {
  float: left;
}
input[type=checkbox] + *:after, input[type=checkbox] + *:before {
  pointer-events: none;
  content: "";
}
input[type=checkbox] + *:before {
  display: inline-flex;
  height: 16px;
  min-width: 16px;
  width: 16px;
  border: solid 2px #ccc;
  background: #fff;
  margin-right: 10px;
}
input[type=checkbox] + *:after {
  position: absolute;
  height: 11px;
  width: 22px;
  top: 0;
  left: 0;
  border-bottom: solid 3px #999;
  border-left: solid 3px #999;
  background: none;
  transform: rotate(-45deg) scale(0);
  transform-origin: center center;
}
input[type=checkbox] + *:hover {
  opacity: 0.8;
}
input[type=checkbox]:checked + *:before {
  border-color: #f2f2f2;
  background-color: #f2f2f2;
}
input[type=checkbox]:checked + *:after {
  opacity: 1;
  transform: rotate(-45deg) scale(0.8);
  border-bottom: solid 4px #689447;
  border-left: solid 4px #689447;
}

fieldset {
  padding: 0;
  border-width: 0;
}

/* List style
 --------------------------------------------- */
details ol, details ul, .number-list, div.product .woocommerce-product-details__short-description ol, .post-single .entry-content > ol, .item-list, div.product .woocommerce-product-details__short-description ul, .post-single .entry-content > ul, .page-template-content .entry-content ul, .post-single .entry-content ul, .page-template-content .entry-content ol, .post-single .entry-content ol {
  margin-bottom: 24px;
}
details ol li, details ul li, .number-list li, div.product .woocommerce-product-details__short-description ol li, .item-list li, div.product .woocommerce-product-details__short-description ul li, .page-template-content .entry-content ul li, .post-single .entry-content ul li, .page-template-content .entry-content ol li, .post-single .entry-content ol li {
  margin-bottom: 12px;
  margin-left: 24px;
}
details ol ol, details ul ol, .number-list ol, div.product .woocommerce-product-details__short-description ol ol, .item-list ol, div.product .woocommerce-product-details__short-description ul ol, .page-template-content .entry-content ul ol, .post-single .entry-content ul ol, .page-template-content .entry-content ol ol, .post-single .entry-content ol ol,
details ol ul,
details ul ul,
.number-list ul,
div.product .woocommerce-product-details__short-description ol ul,
.item-list ul,
div.product .woocommerce-product-details__short-description ul ul,
.page-template-content .entry-content ul ul,
.post-single .entry-content ul ul,
.page-template-content .entry-content ol ul,
.post-single .entry-content ol ul {
  margin-bottom: 0;
}

.item-list > li, div.product .woocommerce-product-details__short-description ul > li, .post-single .entry-content > ul > li {
  list-style-type: disc;
}

.number-list > li, div.product .woocommerce-product-details__short-description ol > li, .post-single .entry-content > ol > li {
  list-style-type: decimal;
}

/* Entry Meta
 --------------------------------------------- */
.entry-footer .entry-meta {
  border-top: 1px solid #eee;
  padding-top: 20px;
}

.entry-comments-link::before {
  content: "—";
  margin: 0 6px 0 2px;
}

/* Pagination
 --------------------------------------------- */
.pagination {
  position: relative;
  margin: 60px 0;
}

.adjacent-entry-pagination {
  margin-bottom: 0;
}

.archive-pagination li {
  display: inline;
}

.archive-pagination li a {
  background-color: #f5f5f5;
  color: #333;
  cursor: pointer;
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 4px;
  padding: 8px 12px;
  text-decoration: none;
}

.archive-pagination li a:focus,
.archive-pagination li a:hover,
.archive-pagination li.active a {
  background-color: #333;
  color: #fff;
}

/* Section Title
 --------------------------------------------- */
.section-title {
  margin-bottom: 20px;
}
.section-title.align-c {
  text-align: center;
  margin: 0 auto;
  width: min(100%, 50em);
}
.section-title.full-width {
  width: 100%;
}
.section-title h4 {
  position: relative;
  color: #CE0058;
  font-family: "Gill Sans", sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 10px;
}
.section-title p {
  font-weight: 600;
  font-size: 1.6rem;
  line-height: 1.5;
}

/* Divider
 --------------------------------------------- */
hr {
  border: 0;
}

hr.small, .entry-content hr.entry-meta {
  margin: 10px 0;
}

.divider-c, .divider {
  position: relative;
  margin: 15px 0;
  border-top: 1px solid #CE0058;
  width: 50px;
}

.divider-c {
  margin-left: auto;
  margin-right: auto;
}

/* Image Card
 ---------------------------------------------
<figure class="img-card">
  <img src="">
  <figcaption></figcaption>
</figure>
*/
.img-card {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-end;
  overflow: hidden;
  z-index: 0;
  background-color: #000;
}
.img-card:after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100px;
  z-index: 0;
  bottom: 0;
  left: 0;
  background: linear-gradient(to top, hsl(10deg, 10%, 10%) 0%, hsla(10deg, 10%, 10%, 0) 100%);
}
.img-card:hover img {
  transform: scale(1.05);
  opacity: 1;
}
.img-card img {
  transition: all 0.8s ease-in-out;
  width: 100%;
  object-fit: cover;
  opacity: 0.8;
}
.img-card figcaption {
  position: absolute;
  padding: 15px 20px;
  font-size: 1.76rem;
  line-height: 1.2;
  color: #fff;
  text-transform: uppercase;
  width: 100%;
  z-index: 1;
}

/* Logo Gallery
 ---------------------------------------------
<section class="logo-showcase">
  <header class="section-title align-c">
    <h2>Our Clients</h2>
    <hr class="divider-c">
    <p>Here are some of our our clients.</p>
  </header>

  <div class="logo-showcase-gallery">
    <img src="../../../static/logo-1.jpg">
  </div>
</section>
*/
.logo-feature-gallery {
  position: relative;
}
.logo-feature-gallery img {
  object-fit: contain;
  padding: 20px;
}

/* Image Banner
  ==========================================
  <section class="image-banner">
    <div class="container container-left">
      <h3>Title</h3>
      <p>Description</p>
      <a href="#" class="btn btn-3">Learn More</a>
    </div>
    <img src="/static/asd.jpg">
  </section>

  */
/* Banners
  ============================================== */
.hero-slider, .shop-banner, .post-archive .archive-description, .entry-header,
.regular-banner {
  position: relative;
  width: 100%;
  z-index: 0;
  padding: 50px 0;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
}

/* Regular Banner
   --------------------------------------------- */
.shop-banner, .post-archive .archive-description, .entry-header,
.regular-banner {
  height: auto;
  min-height: 250px;
  text-align: center;
  z-index: 0;
}
.shop-banner > *, .post-archive .archive-description > *, .entry-header > *,
.regular-banner > * {
  margin-bottom: 10px;
}
.shop-banner > *:last-child, .post-archive .archive-description > *:last-child, .entry-header > *:last-child,
.regular-banner > *:last-child {
  margin-bottom: 0;
}
.shop-banner h1, .post-archive .archive-description h1, .entry-header h1,
.regular-banner h1 {
  margin-bottom: 3rem;
  color: #ffb81c;
}
.shop-banner > *, .post-archive .archive-description > *, .entry-header > *,
.regular-banner > * {
  width: min(90%, 1400px);
  margin-inline: auto;
}
.shop-banner:before, .post-archive .archive-description:before, .entry-header:before,
.regular-banner:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: -1;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/bg-main.png") repeat center/50px;
  background-attachment: fixed;
}
.shop-banner .post-categories a, .post-archive .archive-description .post-categories a, .entry-header .post-categories a,
.regular-banner .post-categories a {
  color: #f3e7d7;
}
.shop-banner .wp-post-image, .post-archive .archive-description .wp-post-image, .entry-header .wp-post-image,
.regular-banner .wp-post-image {
  aspect-ratio: 16/6;
  object-fit: cover;
  z-index: 2;
  margin-inline: auto;
  margin-bottom: max(-18.75vw, -1400px / 16 * 3);
}

/* Giant Banner
 --------------------------------------------- */
/* Hero Slider
 ============================================= */
/* Giant Banner Slider */
.hero-slider {
  padding: 0;
  overflow: hidden;
  height: auto;
}
@media only screen and (max-width: 670px) {
  .hero-slider {
    max-height: none;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slider {
    max-height: 720px;
  }
}

@media only screen and (min-width: 670px) {
  .hero-slider--short {
    max-height: 500px;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slider--short .hero-slide {
    height: 500px;
  }
}
@media only screen and (min-width: 960px) {
  .hero-slider--short .hero-slide {
    max-height: 500px;
    height: 100vh;
  }
}

/* Giant Banner Slide */
.hero-slide {
  position: relative;
  height: auto;
  width: 100%;
  /* Generic Figcaption Styles */
  /* Caption Positions */
  /* Dark font styles */
}
@media only screen and (max-width: 670px) {
  .hero-slide {
    background-color: #fff;
    flex-direction: column;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slide {
    height: 70vh;
  }
}
@media only screen and (min-width: 960px) {
  .hero-slide {
    max-height: 56.25vw;
    height: 100vh;
  }
}
.hero-slide figcaption {
  position: relative;
  height: auto;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: flex-start;
  z-index: 0;
  width: 100%;
  background-color: hsla(107deg, 23%, 10%, 0.3);
}
@media only screen and (max-width: 670px) {
  .hero-slide figcaption {
    padding: 20px 5%;
    text-align: center;
    align-items: center;
    width: auto;
    margin: 0;
    background-color: #fff;
  }
  .hero-slide figcaption:before {
    position: absolute;
    content: "";
    left: 0;
    top: -99px;
    width: 100%;
    height: 100px;
    background: linear-gradient(to top, hsl(255deg, 100%, 100%) 0%, hsla(255deg, 100%, 100%, 0) 100%);
  }
  .hero-slide figcaption br {
    display: none;
  }
  .hero-slide figcaption p {
    margin-bottom: 10px !important;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slide figcaption {
    position: absolute;
  }
}
.hero-slide figcaption h2 {
  font-size: 4.8rem;
  color: #4f0022;
  font-weight: 700;
}
.hero-slide figcaption h4 {
  font-family: "Gill Sans", sans-serif;
  font-size: 1.3rem;
  color: #9b0042;
  font-weight: 700;
  margin-bottom: 0;
}
.hero-slide img {
  position: relative;
}
@media only screen and (max-width: 670px) {
  .hero-slide img {
    height: 90vw;
  }
}
.hero-slide--left:before {
  left: 0;
}
.hero-slide--left.hero-slide--light:before {
  background: linear-gradient(to right, hsl(255deg, 100%, 100%) 0%, hsla(255deg, 100%, 100%, 0) 100%);
}
.hero-slide--left.hero-slide--dark:before {
  background: linear-gradient(to right, hsl(0deg, 0%, 0%) 0%, hsla(0deg, 0%, 0%, 0) 100%);
}
@media only screen and (min-width: 670px) {
  .hero-slide--left figcaption {
    left: 5vw;
  }
}
@media only screen and (max-width: 670px) {
  .hero-slide--left img {
    object-position: right;
  }
}
.hero-slide--right:before {
  right: 0;
}
.hero-slide--right.hero-slide--light:before {
  background: linear-gradient(to left, hsl(255deg, 100%, 100%) 0%, hsla(255deg, 100%, 100%, 0) 100%);
}
.hero-slide--right.hero-slide--dark:before {
  background: linear-gradient(to left, hsl(0deg, 0%, 0%) 0%, hsla(0deg, 0%, 0%, 0) 100%);
}
@media only screen and (min-width: 670px) {
  .hero-slide--right figcaption {
    right: 5vw;
    text-align: right;
    align-items: flex-end;
  }
}
@media only screen and (max-width: 670px) {
  .hero-slide--right img {
    object-position: left;
  }
}
.hero-slide--center.hero-slide--light:before {
  background: linear-gradient(to bottom, hsl(255deg, 100%, 100%) 0%, hsla(255deg, 100%, 100%, 0) 100%);
}
.hero-slide--center.hero-slide--dark:before {
  background: linear-gradient(to bottom, hsl(0deg, 0%, 0%) 0%, hsla(0deg, 0%, 0%, 0) 100%);
}
.hero-slide--center figcaption {
  left: 0;
  text-align: center;
  align-items: center;
  justify-content: center;
  padding: 20px 5%;
}
@media only screen and (min-width: 670px) {
  .hero-slide--center figcaption {
    height: 100%;
    top: 0;
    padding: 0;
  }
}
.hero-slide--center img {
  object-position: center;
}
.hero-slide--top:before {
  top: 0;
}
.hero-slide--top.hero-slide--light:before {
  background: linear-gradient(to bottom, hsl(255deg, 100%, 100%) 0%, hsla(255deg, 100%, 100%, 0) 100%);
}
.hero-slide--top.hero-slide--dark:before {
  background: linear-gradient(to bottom, hsl(0deg, 0%, 0%) 0%, hsla(0deg, 0%, 0%, 0) 100%);
}
@media only screen and (min-width: 670px) {
  .hero-slide--top figcaption {
    top: 0;
  }
}
.hero-slide--top img {
  object-position: bottom;
}
.hero-slide--bottom:before {
  bottom: 0;
}
.hero-slide--bottom.hero-slide--light:before {
  background: linear-gradient(to top, hsl(255deg, 100%, 100%) 0%, hsla(255deg, 100%, 100%, 0) 100%);
}
.hero-slide--bottom.hero-slide--dark:before {
  background: linear-gradient(to top, hsl(0deg, 0%, 0%) 0%, hsla(0deg, 0%, 0%, 0) 100%);
}
@media only screen and (min-width: 670px) {
  .hero-slide--bottom figcaption {
    bottom: 0;
  }
}
@media only screen and (min-width: 670px) {
  .hero-slide--dark figcaption * {
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
  }
  .hero-slide--dark figcaption h2 {
    color: #fff;
  }
  .hero-slide--dark figcaption h4 {
    color: #fff;
  }
  .hero-slide--dark figcaption p {
    color: #fff;
    font-weight: 700;
  }
}

/* Left and right figcaption*/
@media only screen and (min-width: 670px) {
  .hero-slide--left figcaption, .hero-slide--right figcaption {
    top: 50%;
    transform: translateY(-50%);
    width: 40%;
    max-width: 400px;
  }
  .hero-slide--top figcaption, .hero-slide--bottom figcaption {
    left: 0;
    height: 50%;
    padding: 0 20%;
    text-align: center;
    align-items: center;
    justify-content: center;
  }
}

.hero-slide--top:before, .hero-slide--bottom:before, .hero-slide--left:before, .hero-slide--right:before {
  position: absolute;
  mix-blend-mode: overlay;
  opacity: 0.5;
}
@media only screen and (min-width: 670px) {
  .hero-slide--top:before, .hero-slide--bottom:before, .hero-slide--left:before, .hero-slide--right:before {
    content: "";
  }
}
.hero-slide--left:before, .hero-slide--right:before {
  top: 0;
  width: 50%;
  height: 100%;
}
.hero-slide--top:before, .hero-slide--bottom:before {
  left: 0;
  width: 100%;
  height: 50%;
}

/* Default Blocks */
.inline-wrap {
  width: min(90%, 1400px);
  margin-inline: auto;
}
.inline-wrap.narrow {
  width: min(90%, 960px);
}
@media only screen and (min-width: 1400px) {
  .inline-wrap.narrow {
    width: min(90%, 1400px);
  }
}
.inline-wrap .inline-wrap {
  width: 100%;
}

.aligncenter .section-title {
  text-align: center;
}
.aligncenter .section-title hr {
  margin-left: auto;
  margin-right: auto;
}

/* Image Gallery */
.image-gallery-section {
  padding: 50px 5%;
}
@media only screen and (min-width: 670px) {
  .image-gallery-section {
    padding: 50px;
  }
}

.image-gallery-list {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  padding: 3px;
}
.image-gallery-list li {
  position: relative;
  flex: 1 1 0;
  height: 300px;
  min-width: 300px;
}
.image-gallery-list img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 3px;
  object-fit: cover;
}

/* LR Layout */
.lr-layout {
  width: 100%;
  min-height: 400px;
}
@media only screen and (min-width: 960px) {
  .lr-layout {
    background-attachment: fixed;
  }
}
@media only screen and (min-width: 960px) {
  .lr-layout:nth-of-type(even) .inline-wrap {
    flex-flow: row-reverse wrap;
  }
  .lr-layout:nth-of-type(even) figure:after {
    right: 0;
  }
  .lr-layout:nth-of-type(even) figure:before {
    right: 0;
  }
}
.lr-layout .inline-wrap {
  position: relative;
  display: flex;
  flex-flow: row wrap;
}
.lr-layout .inline-wrap > * {
  width: 100%;
  margin-bottom: 0px;
}
@media only screen and (min-width: 670px) {
  .lr-layout .inline-wrap > * {
    width: calc((100% - (0px * (2 - 1))) / 2);
    margin-right: 0px;
  }
  .lr-layout .inline-wrap > *:nth-child(2n) {
    margin-right: 0;
  }
}
.lr-layout figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  z-index: 0;
  height: 90vw;
}
@media only screen and (min-width: 670px) {
  .lr-layout figure {
    height: 70vh;
  }
}
@media only screen and (min-width: 960px) {
  .lr-layout figure {
    height: 50vw;
    max-height: 70vh;
    align-self: stretch;
  }
}
@media only screen and (min-width: 670px) {
  .lr-layout figure:after {
    content: "";
    position: absolute;
    background-color: #f7eee3;
    opacity: 0.7;
    width: 25vw;
    max-width: 50%;
    height: calc(50vw + 60px);
    z-index: -1;
  }
}
.lr-layout figure.feature-active:before {
  max-width: 0;
}
.lr-layout figure:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  transition: all 1s ease-in-out;
  background-color: #fff;
  z-index: 2;
  max-width: 100%;
}
.lr-layout figure img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  object-fit: cover;
  padding: 0;
}
@media only screen and (min-width: 960px) {
  .lr-layout figure img {
    padding: 60px;
  }
}
.lr-layout article {
  position: relative;
  padding: 30px 5%;
  width: 100%;
  z-index: 0;
}
@media only screen and (min-width: 670px) {
  .lr-layout article {
    width: 50%;
    text-align: center;
  }
}
@media only screen and (min-width: 960px) {
  .lr-layout article {
    padding: 50px 100px;
  }
}

.secondary-graphic-0 {
  position: absolute;
  z-index: -1;
  opacity: 0.3;
  width: 25vw;
  height: 25vw;
  object-fit: contain;
  object-position: center;
  left: calc(50% - 12.5vw);
  top: calc(50% - 12.5vw);
}

/* Ecommerce Highlights */
.attribute-highlights {
  background-color: #CE0058;
  padding: 60px 5% 50px;
}
@media only screen and (min-width: 960px) {
  .attribute-highlights {
    padding: 60px 10% 50px;
  }
}
.attribute-highlights .inline-wrap {
  display: flex;
  flex-flow: row wrap;
}
.attribute-highlights .inline-wrap > * {
  width: 100%;
  margin-bottom: 25px;
}
@media only screen and (min-width: 670px) {
  .attribute-highlights .inline-wrap > * {
    width: calc((100% - (25px * (4 - 1))) / 4);
    margin-right: 25px;
  }
  .attribute-highlights .inline-wrap > *:nth-child(4n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  .attribute-highlights .inline-wrap > * {
    margin-bottom: 0;
  }
}
.attribute-highlights .icon-card img {
  filter: saturate(0) invert(1);
  opacity: 1;
}
.attribute-highlights .icon-card h4 {
  color: #fff;
}

/* Food Menu */
.dish-list {
  position: relative;
  max-width: 700px;
  margin: 0 auto;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
}
.dish-list:after {
  content: "";
  position: absolute;
  width: 1px;
  height: 100%;
  left: 50%;
  background-color: #e7cfb0;
}
.dish-list article {
  position: relative;
  display: flex;
  flex: 0 1 45%;
  margin-bottom: 25px;
}
.dish-list article p {
  line-height: 1.4;
  font-size: 1.4rem;
  margin-bottom: 0;
}
.dish-list article p span {
  display: block;
}
.dish-list article:hover {
  color: #9b0042;
  cursor: pointer;
}
.dish-list article:hover figure {
  display: flex;
}
.dish-list article figure {
  display: none;
  position: absolute;
  width: 100%;
  top: calc(100% + 5px);
  left: 0;
  flex-flow: column nowrap;
  background-color: #fff;
  z-index: 10;
  border-radius: 10px;
  overflow: hidden;
}
.dish-list article figure img {
  width: 100%;
  max-height: 250px;
  object-fit: cover;
}
.dish-list article figure figcaption {
  padding: 10px;
}

.dish-title {
  width: 100%;
  padding-right: 20px;
  font-weight: 700;
}
.dish-title span {
  font-weight: 400;
}

/* Product Feature */
.library-gallery {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  margin-top: 50px;
  /* State when not active */
}
@media only screen and (min-width: 670px) {
  .library-gallery {
    flex-flow: row nowrap;
  }
}
.library-gallery .single-product-feature figcaption {
  bottom: -300px;
}
.library-gallery .single-product-feature.active {
  position: relative;
  height: 500px;
  width: 100%;
}
.library-gallery .single-product-feature.active > img {
  transition: 0.6s;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
}
.library-gallery .single-product-feature.active figcaption {
  position: absolute;
  transition: 0.6s;
  width: 100%;
  bottom: 0;
  top: auto;
  z-index: 1;
  padding: 25px;
  color: #fff;
  background: hsla(0deg, 0%, 0%, 0.5);
  margin: 0;
  text-align: left;
}
@media only screen and (min-width: 670px) {
  .library-gallery .single-product-feature.active figcaption {
    padding: 25px 50px;
  }
}
.library-gallery .single-product-feature.active figcaption h3, .library-gallery .single-product-feature.active figcaption form.woocommerce-checkout .col-1 h4, .library-gallery .single-product-feature.active figcaption form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .library-gallery .single-product-feature.active figcaption h4, form.woocommerce-checkout .checkout_coupon .library-gallery .single-product-feature.active figcaption h4 {
  color: #fff;
}
.library-gallery .single-product-feature.active figcaption p {
  transition: 0.3s;
  margin-bottom: 0;
  display: block;
}
.library-gallery .single-product-feature:not(.active) {
  align-items: stretch;
}
@media only screen and (max-width: 670px) {
  .library-gallery .single-product-feature:not(.active) {
    width: 100%;
  }
}
.library-gallery .single-product-feature:not(.active) img {
  max-width: 0;
  display: block;
}
.library-gallery .single-product-feature:not(.active) figcaption {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  align-items: flex-end;
  background-color: hsl(0deg, 0%, 95%);
  bottom: auto;
  height: 100%;
  cursor: pointer;
  padding: 15px;
  margin: 0;
}
@media only screen and (max-width: 670px) {
  .library-gallery .single-product-feature:not(.active) figcaption {
    border-bottom: 1px solid hsl(0deg, 0%, 85%);
  }
}
@media only screen and (min-width: 670px) {
  .library-gallery .single-product-feature:not(.active) figcaption {
    padding: 30px 20px;
    border-left: 1px solid hsl(0deg, 0%, 85%);
  }
}
.library-gallery .single-product-feature:not(.active) figcaption:hover {
  background-color: #CE0058;
  border-left: 3px solid #68002c;
}
.library-gallery .single-product-feature:not(.active) figcaption:hover h3, .library-gallery .single-product-feature:not(.active) figcaption:hover form.woocommerce-checkout .col-1 h4, .library-gallery .single-product-feature:not(.active) figcaption:hover form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .library-gallery .single-product-feature:not(.active) figcaption:hover h4, form.woocommerce-checkout .checkout_coupon .library-gallery .single-product-feature:not(.active) figcaption:hover h4 {
  color: #fff;
}
.library-gallery .single-product-feature:not(.active) h3, .library-gallery .single-product-feature:not(.active) form.woocommerce-checkout .col-1 h4, .library-gallery .single-product-feature:not(.active) form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .library-gallery .single-product-feature:not(.active) h4, form.woocommerce-checkout .checkout_coupon .library-gallery .single-product-feature:not(.active) h4 {
  margin: 0;
  font-family: "Gill Sans", sans-serif;
  text-transform: uppercase;
  font-size: 1.7rem;
}
@media only screen and (min-width: 670px) {
  .library-gallery .single-product-feature:not(.active) h3, .library-gallery .single-product-feature:not(.active) form.woocommerce-checkout .col-1 h4, .library-gallery .single-product-feature:not(.active) form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .library-gallery .single-product-feature:not(.active) h4, form.woocommerce-checkout .checkout_coupon .library-gallery .single-product-feature:not(.active) h4 {
    writing-mode: vertical-lr;
    transform: rotate(180deg);
  }
}
.library-gallery .single-product-feature:not(.active) p {
  display: none;
}

/* Contact 1 */
.contact-1 {
  margin: 80px 0;
}

.contact-details-wrapper {
  display: flex;
  flex-flow: row wrap;
  gap: 40px;
  justify-content: center;
  margin: 80px 0;
}
.contact-details-wrapper .contact-detail {
  flex: 1 1 200px;
  width: 200px;
  display: flex;
  gap: 10px;
}
.contact-details-wrapper .contact-detail i {
  color: #fff;
  min-width: 40px;
  width: 40px;
  height: 40px;
  font-size: 17px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #CE0058;
}
.contact-details-wrapper .contact-detail .contact-detail-caption b {
  display: block;
}

.contact-1_mapembed {
  position: relative;
  margin: 50px 0 150px;
  display: block;
}
.contact-1_mapembed:after {
  content: "";
  position: absolute;
  height: 75%;
  bottom: -25%;
  background-color: #f3e7d7;
  z-index: -1;
  border-top: 1px solid #e7cfb0;
  border-bottom: 1px solid #e7cfb0;
}

.archive .category-promotions {
  background-color: #CE0058;
}
.archive .category-promotions .archive-title {
  color: #ffb81c;
}
.archive .category-promotions h2,
.archive .category-promotions p,
.archive .category-promotions small {
  color: #fff;
}

.post-archive {
  display: flex;
  flex-flow: column nowrap;
  margin-inline: auto;
  width: 100%;
  padding-bottom: 100px;
}
.post-archive .post-entry-list {
  padding: 0;
  width: min(90%, 1400px);
  margin-inline: auto;
}
@media only screen and (min-width: 670px) {
  .post-archive .post-entry-list {
    padding: 0;
  }
}
.post-archive .sidebar {
  padding: 0 5%;
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .post-archive .sidebar {
    padding: 0;
    flex: 1 1 0;
    margin-right: 5%;
    max-width: 280px;
  }
}

.post-entry-list .entry-content {
  display: flex;
  gap: 50px;
}
@media only screen and (max-width: 670px) {
  .post-entry-list .entry-content {
    flex-flow: column nowrap;
    gap: 20px;
  }
}
.post-entry-list .entry + .entry {
  margin-block: 5rem 0;
}
@media only screen and (min-width: 670px) {
  .post-entry-list .entry {
    padding: 30px 30px 0;
  }
}
.post-entry-list .entry:hover .entry-content > a:before {
  transform: translate(-50%, -50%) rotate(-10deg);
  opacity: 1;
}
.post-entry-list .entry:hover .entry-content > a:after {
  transform: translate(50%, 50%) rotate(10deg);
  opacity: 1;
}
.post-entry-list .entry .entry-content > a {
  position: relative;
  z-index: 0;
}
.post-entry-list .entry .entry-content > a:before, .post-entry-list .entry .entry-content > a:after {
  content: "";
  position: absolute;
  z-index: 1;
  width: 100px;
  aspect-ratio: 1;
  transition: 0.3s;
  opacity: 0;
}
@media only screen and (min-width: 670px) {
  .post-entry-list .entry .entry-content > a:before, .post-entry-list .entry .entry-content > a:after {
    width: 150px;
  }
}
.post-entry-list .entry .entry-content > a:before {
  top: 0;
  left: 0;
}
.post-entry-list .entry .entry-content > a:after {
  bottom: 0;
  right: 0;
}
.post-entry-list .entry:nth-child(even) .entry-content > a:before {
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/goodvibes.webp") no-repeat center/contain;
}
.post-entry-list .entry:nth-child(even) .entry-content > a:after {
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/yum.webp") no-repeat center/contain;
}
.post-entry-list .entry:nth-child(odd) .entry-content > a:before {
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/yummy.webp") no-repeat center/contain;
}
.post-entry-list .entry:nth-child(odd) .entry-content > a:after {
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/wow.webp") no-repeat center/contain;
}
.post-entry-list h3, .post-entry-list form.woocommerce-checkout .col-1 h4, .post-entry-list form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .post-entry-list h4, form.woocommerce-checkout .checkout_coupon .post-entry-list h4 {
  margin: 10px 0;
}
.post-entry-list p {
  line-height: 1.5;
}
.post-entry-list .btn-3:hover {
  text-decoration: none;
}
.post-entry-list .caption {
  display: flex;
  flex-flow: column nowrap;
  align-items: flex-start;
}
.post-entry-list .entry-content__thumbnail-link {
  position: relative;
  min-height: 170px;
  aspect-ratio: 16/9;
  align-self: flex-start;
}
@media only screen and (max-width: 670px) {
  .post-entry-list .entry-content__thumbnail-link {
    width: 100%;
  }
}
@media only screen and (min-width: 670px) {
  .post-entry-list .entry-content__thumbnail-link {
    min-width: 55%;
  }
}
.post-entry-list .entry-content__thumbnail-link img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  object-fit: cover;
}

.promotion-faq {
  background-color: #00b5e2;
  padding: 0.5rem 1rem;
  border-radius: 0.75rem;
  color: #fff;
}
.promotion-faq:hover {
  background-color: #00b5e2;
}
.promotion-faq[open] summary {
  margin-bottom: 0;
}
.promotion-faq summary {
  cursor: pointer;
  font-weight: 600;
  color: #fff;
}
.promotion-faq summary + div {
  margin-block: 0.5rem;
  padding: 1rem;
  border-radius: 0.5rem;
  background-color: #fff;
}
.promotion-faq summary + div p {
  color: hsl(0deg, 0%, 30%) !important;
  line-height: 1.25;
}

/* Structure of single post*/
.single-post .site-container {
  background-color: #f3e7d7;
}

.post-single .entry {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  margin: 0 auto 10rem;
}
.post-single .has-post-thumbnail .entry-header + * {
  margin-top: min(18.75vw, 1400px / 16 * 3);
}
.post-single .entry-content {
  padding: 0 5%;
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .post-single .entry-content {
    padding: 0;
    flex: 3 1 0;
    margin-left: 5%;
    margin-right: 50px;
    max-width: 650px;
  }
}
.post-single .sidebar {
  padding: 0 5%;
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .post-single .sidebar {
    padding: 0;
    flex: 1 1 0;
    margin-right: 5%;
    max-width: 280px;
  }
}

/* Primary sidebar only */
.sidebar-primary .widget-title {
  border-bottom: 4px solid hsl(0deg, 0%, 85%);
  padding-bottom: 10px;
  margin-bottom: 10px;
}

.entry-content .entry-meta {
  color: hsl(50deg, 25%, 25%);
}

/* Single Page Content
  ========================================== */
.error404 main.content {
  width: min(100%, 700px);
  margin: 150px auto 50px;
  text-align: center;
}
.error404 .search-form {
  display: none;
}

section.about-main-section:after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 120px;
  display: block;
  aspect-ratio: 1;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/circle-graphic.png") no-repeat center/contain;
  animation: circleRotate 30s linear infinite;
}

@keyframes circleRotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.invert {
  filter: invert(1);
}

.bg-light {
  background-color: #f3e7d7;
}

.rm-mb {
  margin-bottom: 0 !important;
}

.rm-pt {
  padding-top: 0 !important;
}

.grid {
  display: grid;
}

.gap-20 {
  gap: 2.5rem;
}
@media only screen and (min-width: 670px) {
  .gap-20 {
    gap: 5rem;
  }
}

.items-center {
  align-items: center;
}

@media only screen and (min-width: 670px) {
  .grid-col-1-2 {
    grid-template-columns: 1fr 2fr;
  }
}

@media only screen and (min-width: 670px) {
  .grid-col-1-1 {
    grid-template-columns: 1fr 1fr;
  }
}

/* Ecommerce Highlights */
.ecommerce-highlights {
  display: flex;
  flex-flow: row wrap;
  background-color: #CE0058;
  padding: 60px 5% 50px;
}
.ecommerce-highlights > * {
  width: 100%;
  margin-bottom: 15px;
}
@media only screen and (min-width: 670px) {
  .ecommerce-highlights > * {
    width: calc((100% - (15px * (4 - 1))) / 4);
    margin-right: 15px;
  }
  .ecommerce-highlights > *:nth-child(4n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 960px) {
  .ecommerce-highlights {
    padding: 60px 10% 50px;
  }
}
@media only screen and (min-width: 670px) {
  .ecommerce-highlights > * {
    margin-bottom: 0;
  }
}
.ecommerce-highlights .icon-card img {
  filter: saturate(0) invert(1);
  opacity: 1;
}
.ecommerce-highlights .icon-card h4 {
  color: #fff;
}

.icon-card {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: center;
}
.icon-card > figure {
  position: relative;
  width: 100%;
  padding-top: 40px;
}
.icon-card > figure > img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  object-fit: cover;
}
.icon-card .caption {
  flex: 1 1 0;
  position: relative;
  padding: 10px;
  background-color: #fff;
}
@media only screen and (min-width: 670px) {
  .icon-card {
    flex-flow: column nowrap;
  }
}
@media only screen and (min-width: 960px) {
  .icon-card {
    flex-flow: row wrap;
  }
}
.icon-card img {
  width: 40px;
  height: 40px;
  opacity: 0.6;
  margin-right: 10px;
}
.icon-card h4 {
  text-transform: uppercase;
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 0;
  color: #68002c;
}
@media only screen and (min-width: 670px) {
  .icon-card h4 {
    text-align: center;
  }
}
@media only screen and (min-width: 960px) {
  .icon-card h4 {
    text-align: left;
  }
}
.icon-card .caption {
  background: transparent;
}

/* Floating button */
.floating-whatsapp-button {
  width: 46px;
  height: 46px;
  background-color: #25d366;
  border-radius: 50%;
  font-size: 23px;
  position: fixed;
  font-weight: 400;
  right: 10px;
  bottom: 10px;
  z-index: 9999999;
  color: #fff;
  text-align: center;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
  line-height: 46px;
}
.floating-whatsapp-button:hover,
.floating-whatsapp-button a:hover {
  text-decoration: none;
}

/* Swiper Button */
.swiper-button-next,
.swiper-button-prev {
  color: #CE0058;
  transition: 0.3s;
}
.swiper-button-next:hover,
.swiper-button-prev:hover {
  background-color: #ffb81c;
  padding: 1rem 1.5rem;
  border-radius: 1rem;
  transform: scale(1.2);
}
.swiper-button-next:hover:after,
.swiper-button-prev:hover:after {
  font-size: 32px;
}
.swiper-button-next:after,
.swiper-button-prev:after {
  font-weight: 900;
  transition: 0.3s;
}

.page-template-content main.content {
  background-color: #f3e7d7;
}
.page-template-content h1 {
  color: #ffb81c;
}
.page-template-content .entry-content {
  width: min(90%, 960px);
  margin-inline: auto;
  margin-block: 5rem;
}

@media only screen and (min-width: 670px) {
  .home-main {
    aspect-ratio: 16/9;
  }
}
.home-main .inline-wrap {
  display: grid;
  height: 100%;
  width: min(100%, 1400px);
}
@media only screen and (min-width: 670px) {
  .home-main .inline-wrap {
    grid-template-columns: 1fr 1fr;
  }
}
.home-main .section-title {
  color: #fff;
  margin-bottom: 0;
  display: flex;
  flex-flow: column nowrap;
  padding: 7.5rem 5%;
}
@media only screen and (min-width: 670px) {
  .home-main .section-title {
    padding: 7.5rem 5rem;
  }
}
.home-main .section-title h2 {
  color: #ffb81c;
  font-size: 8ch;
}
@media only screen and (min-width: 670px) {
  .home-main .section-title h2 {
    font-size: 15ch;
  }
}
.home-main .section-title p {
  font-size: 2.4rem;
  line-height: 1.25;
  margin-bottom: 0;
  margin-top: auto;
  position: relative;
  z-index: 0;
}
.home-main .section-title p::before {
  left: -90px;
  top: -90px;
}
.home-main .home-main__images {
  position: relative;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/bg-main.png") repeat center;
  overflow: hidden;
}
@media only screen and (max-width: 670px) {
  .home-main .home-main__images {
    aspect-ratio: 1;
    order: -1;
  }
}
.home-main .home-main__images > img {
  position: absolute;
  aspect-ratio: 1;
  width: 45%;
  object-fit: cover;
  border-radius: 1rem;
  transition: 0.3s;
}
.home-main .home-main__images > img:nth-child(1) {
  left: 30%;
  top: 0px;
}
.home-main .home-main__images > img:nth-child(2) {
  bottom: 50px;
  right: -30px;
}
.home-main .home-main__images > img:nth-child(3) {
  bottom: 0px;
  left: -30px;
}

.home-main-2 {
  position: relative;
  overflow: hidden;
  z-index: 0;
}
@media only screen and (min-width: 670px) {
  .home-main-2 {
    padding-bottom: 10rem;
  }
}
.home-main-2:after {
  content: "";
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/wp-content/uploads/Welcome-to-Rasorn-BG.webp") no-repeat center/cover;
  position: absolute;
  display: block;
  z-index: -1;
  width: 100%;
  height: 100%;
  top: 0;
  opacity: 0.2;
  filter: saturate(0);
}
@media only screen and (max-width: 670px) {
  .home-main-2:after {
    height: 100%;
  }
}
@media only screen and (min-width: 670px) {
  .home-main-2:after {
    aspect-ratio: 16/9;
  }
}
.home-main-2 .inline-wrap {
  padding-bottom: 10rem;
}
.home-main-2 h2 {
  color: #ffb81c;
  font-size: 7.5rem;
  text-align: center;
}
@media only screen and (min-width: 670px) {
  .home-main-2 .section-title {
    margin-top: -5rem;
  }
}
.home-main-2 .section-title p {
  color: #f3e7d7;
  font-size: 2rem;
}
.home-main-2 .section-title p mark {
  background-color: transparent;
  color: #f3e7d7;
}
.home-main-2 .section-title h3, .home-main-2 .section-title form.woocommerce-checkout .col-1 h4, .home-main-2 .section-title form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .home-main-2 .section-title h4, form.woocommerce-checkout .checkout_coupon .home-main-2 .section-title h4 {
  color: #f3e7d7;
  font-size: 4rem;
}
.home-main-2 .section-title img {
  height: 100px;
  margin-top: -100px;
  margin-bottom: 2.5rem;
}
@media only screen and (min-width: 670px) {
  .home-main-2 .section-title img {
    height: 120px;
    margin-top: -120px;
  }
}

.home-main-2__images {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 1rem;
  padding-top: 10rem;
}
@media only screen and (min-width: 670px) {
  .home-main-2__images {
    padding-bottom: 17rem;
  }
}
.home-main-2__images figure {
  position: absolute;
  width: 25%;
  object-fit: cover;
  overflow: hidden;
  aspect-ratio: 1;
  transform: scale(1.25);
}
.home-main-2__images figcaption {
  position: absolute;
  text-align: center;
  bottom: 0;
  width: auto;
  left: 50%;
  transform: translateX(-50%) scale(0.5);
  opacity: 0;
  font-family: "BubbleGum", sans-serif;
  background-color: #ffb81c;
  color: #CE0058;
  line-height: 1;
  font-size: 1.6rem;
  padding: 0.5rem 1rem;
}
.home-main-2__images img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}

.home-main-2__image1 {
  margin-top: 0rem;
  left: 0%;
}

.home-main-2__image2 {
  margin-top: -10rem;
  left: 30%;
}
.home-main-2__image2.scene2 {
  z-index: 2;
}

.home-main-2__image3 {
  margin-top: 5rem;
  left: 55%;
}

.home-main-2__image4 {
  margin-top: -15rem;
  left: 75%;
}

.wws-section {
  min-height: 100vh;
  display: grid;
  place-items: center;
  background-color: #CE0058;
}
.wws-section:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: -1;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/bg-main.png") repeat center/50px;
  background-attachment: fixed;
  opacity: 0.5;
}
.wws-section .section-title h2 {
  color: #fff;
  font-size: 5rem;
}

.wws-section__images {
  position: relative;
  height: 100vw;
  z-index: 3;
}
@media only screen and (min-width: 670px) {
  .wws-section__images {
    height: 20vw;
  }
}

.wws-section__badges {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: -1;
}
.wws-section__badges > img {
  position: relative;
  object-fit: contain;
  aspect-ratio: 1;
  width: 120px;
  z-index: -1;
}
.wws-section__badges > img:nth-child(1) {
  transform: translateY(-200%);
}
.wws-section__badges > img:nth-child(2) {
  transform: translateY(200%) translateX(-100%);
}
.wws-section__badges > img:nth-child(3) {
  transform: translateY(200%);
}
.wws-section__badges > img:nth-child(4) {
  transform: translateY(-200%) translateX(100%);
}
.wws-section__badges > img:nth-child(5) {
  transform: translateY(200%);
}

.wws-section__image {
  position: absolute;
  aspect-ratio: 1;
  width: calc(50% - 15px);
  left: 50%;
}
@media only screen and (min-width: 670px) {
  .wws-section__image {
    width: 20%;
  }
}
.wws-section__image:hover img {
  border: 10px solid #ffb81c;
}
.wws-section__image img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  border-radius: 2rem;
  transition: 0.3s;
  object-fit: cover;
}
.wws-section__image figcaption {
  position: absolute;
  z-index: 2;
  bottom: 0;
  text-align: center;
  font-family: "BubbleGum", sans-serif;
  background-color: #ffb81c;
  font-size: 1.6rem;
  color: #CE0058;
  padding: 1rem 1.5rem;
  border-radius: 1rem;
  width: auto;
  line-height: 1;
  left: 50%;
  transform: translate(-50%, 50%);
}

.wws-section__image1 {
  transform-origin: right;
}
@media only screen and (max-width: 670px) {
  .wws-section__image1 {
    transform: translateX(calc(-100% - 15px));
  }
}
@media only screen and (min-width: 670px) {
  .wws-section__image1 {
    transform: translateX(calc(-200% - 30px));
  }
}

.wws-section__image2 {
  transform-origin: right;
}
@media only screen and (max-width: 670px) {
  .wws-section__image2 {
    transform: translateX(15px);
  }
}
@media only screen and (min-width: 670px) {
  .wws-section__image2 {
    transform: translateX(calc(-100% - 10px));
  }
}

.wws-section__image3 {
  transform-origin: left;
}
@media only screen and (max-width: 670px) {
  .wws-section__image3 {
    bottom: 0;
    left: 0;
  }
}
@media only screen and (min-width: 670px) {
  .wws-section__image3 {
    transform: translateX(calc(0% + 10px));
  }
}

.wws-section__image4 {
  transform-origin: left;
}
@media only screen and (max-width: 670px) {
  .wws-section__image4 {
    bottom: 0;
    left: 0;
    transform: translateX(calc(100% + 30px));
  }
}
@media only screen and (min-width: 670px) {
  .wws-section__image4 {
    transform: translateX(calc(100% + 30px));
  }
}

.home-menu {
  position: relative;
  z-index: 0;
  background-color: #f3e7d7;
  transform-origin: top;
}
.home-menu .section-title h2 {
  font-size: 5ch;
}
@media only screen and (min-width: 670px) {
  .home-menu .section-title h2 {
    font-size: 9ch;
  }
}
.home-menu .section-title h2 bdi {
  color: #ffb81c;
}

.menu-navigation {
  display: grid;
  padding: 10px 30px;
}
@media only screen and (max-width: 670px) {
  .menu-navigation {
    gap: 1rem;
  }
}
@media only screen and (min-width: 670px) {
  .menu-navigation {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

.menu-link-object {
  position: relative;
  z-index: 0;
  aspect-ratio: 4/5;
}
.menu-link-object:hover .btn {
  transform: translate(-50%, 0);
  opacity: 1;
}
.menu-link-object:hover img {
  transform: scale(0.9);
}
.menu-link-object > * {
  position: absolute;
}
.menu-link-object .menu-link-object__title {
  color: #ffb81c;
  text-align: center;
  width: auto;
  padding: 0.5rem 2rem;
  transition: 0.6s;
  display: inline-block;
  left: 50%;
  transform: translateX(-50%);
  background-color: #CE0058;
  line-height: 1;
  font-size: 1.5rem;
  border-radius: 1rem;
  width: 75%;
  margin-top: -10px;
}
@media only screen and (min-width: 670px) {
  .menu-link-object .menu-link-object__title {
    font-size: 2.1rem;
  }
}
.menu-link-object img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  object-fit: cover;
  z-index: -1;
  border-radius: 1rem;
  transition: 0.6s;
}
.menu-link-object .btn {
  top: auto;
  bottom: 20px;
  left: 50%;
  transform: translate(-50%, 20px);
  opacity: 0;
  white-space: nowrap;
}

.home-about {
  position: relative;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/bg-yellow.png") repeat center;
  display: grid;
  place-items: center;
  z-index: 3;
}
@media only screen and (min-width: 960px) {
  .home-about {
    background-attachment: fixed;
  }
}
.home-about .section-title {
  width: min(90%, 960px);
  margin-inline: auto;
  margin-bottom: 0;
  padding: 7.5rem 0;
}
.home-about .section-title h2 {
  line-height: 1;
  font-size: 4.8rem;
}
@media only screen and (min-width: 670px) {
  .home-about .section-title h2 {
    font-size: 9.6rem;
  }
}

.home-cta {
  position: relative;
  z-index: 0;
  background-color: #CE0058;
  aspect-ratio: 16/6;
  display: grid;
  place-items: center;
}
.home-cta:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  top: 30px;
  left: 30px;
  width: calc(100% - 60px);
  height: calc(100% - 60px);
  background-color: #CE0058;
  z-index: -1;
}
@media only screen and (min-width: 670px) {
  .home-cta:before {
    top: 40px;
    left: 40px;
    width: calc(100% - 80px);
    height: calc(100% - 80px);
  }
}
.home-cta:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: -2;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/bg-pink.png") repeat center/30px;
}
@media only screen and (min-width: 670px) {
  .home-cta:after {
    background-size: 50px;
  }
}
.home-cta h2 {
  color: #fff;
  font-size: 6ch;
}
@media only screen and (min-width: 670px) {
  .home-cta h2 {
    font-size: 10ch;
  }
}
.home-cta h2 bdi {
  color: #ffb81c;
}

/* Fullscreen Loading Screen */
#loading-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: #CE0058;
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  transition: 0.5s;
}

/* Rotating Circle */
#rotating-object {
  width: 200px;
  height: 200px;
  border: 10px solid #f0f0f0;
  border-top: 10px solid #ffb81c;
  border-radius: 50%;
  animation: spin 2s linear infinite;
  position: absolute;
}

/* Spin animation */
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
#percentage-text {
  font-size: 4.8rem;
  font-family: "BubbleGum", sans-serif;
  color: #fff;
}

section.about-main-section {
  position: relative;
  padding-bottom: 10rem;
  z-index: 1;
}
@media only screen and (min-width: 670px) {
  section.about-main-section {
    padding-top: 15rem;
    padding-bottom: 15rem;
  }
}
section.about-main-section:after {
  bottom: -30px;
  right: -30px;
}
section.about-main-section .section-title {
  width: min(100%, 50em);
}
section.about-main-section .section-title h2 {
  font-size: 7ch;
  font-family: "BubbleGum", sans-serif;
  color: #ffb81c;
  line-height: 1;
  margin-bottom: 0;
}
@media only screen and (min-width: 670px) {
  section.about-main-section .section-title h2 {
    font-size: 10ch;
  }
}
section.about-main-section .section-title h2 span {
  position: relative;
  display: inline-block;
}
section.about-main-section .section-title p {
  color: #f3e7d7;
  font-weight: 600;
}
section.about-main-section .section-title h4 {
  color: #fff;
  font-size: 2.4rem;
  font-weight: 600;
  margin-bottom: 4rem;
}
@media only screen and (max-width: 670px) {
  section.about-main-section .inline-wrap {
    display: grid;
  }
}

.icon-text-list {
  display: flex;
  flex-flow: row wrap;
  align-items: flex-start;
  justify-content: center;
  gap: 1rem;
  margin-block: 5rem;
}
@media only screen and (min-width: 670px) {
  .icon-text-list {
    gap: 3rem;
  }
}

.icon-text {
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-start;
  text-align: center;
  align-items: center;
  flex: 0 1 45%;
}
@media only screen and (min-width: 670px) {
  .icon-text {
    flex: 0 0 200px;
  }
}
.icon-text img {
  margin-bottom: 1rem;
  border-radius: 2rem;
  aspect-ratio: 1;
  object-fit: cover;
}
.icon-text p {
  line-height: 1.5;
  color: hsl(50deg, 25%, 25%);
}

.icon-text-horizontal-list {
  display: flex;
  flex-flow: column nowrap;
  gap: 2rem;
}
@media only screen and (min-width: 670px) {
  .icon-text-horizontal-list {
    flex-flow: row wrap;
  }
}
@media only screen and (min-width: 670px) {
  .icon-text-horizontal-list li {
    flex: 1 1 200px;
  }
}

.icon-text-horizontal figure {
  display: flex;
  gap: 2rem;
}
@media only screen and (min-width: 670px) {
  .icon-text-horizontal figure {
    gap: 1rem;
  }
}
.icon-text-horizontal figure div {
  position: relative;
  width: 60px;
  height: 60px;
  flex: 0 0 60px;
  background-color: #CE0058;
  border-radius: 50rem;
  box-shadow: inset 0px 1px 3px 0px hsla(334deg, 100%, 20%, 0.4), inset 0px 5px 10px 0px hsla(334deg, 80%, 30%, 0.2);
}
@media only screen and (min-width: 670px) {
  .icon-text-horizontal figure div {
    width: 80px;
    height: 80px;
    flex: 0 0 80px;
  }
}
.icon-text-horizontal figure div img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 1.3rem;
}
.icon-text-horizontal figcaption h4 {
  margin-bottom: 0.75rem;
  color: hsl(50deg, 25%, 25%);
  font-weight: 600;
}
.icon-text-horizontal figcaption p {
  color: hsl(50deg, 25%, 25%);
  line-height: 1.3;
}

.vision-mission-section {
  position: relative;
  z-index: 0;
}
.vision-mission-section:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: -1;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/bg-main.png") repeat center/75px;
}
@media only screen and (min-width: 670px) {
  .vision-mission-section:before {
    width: 25%;
  }
}
.vision-mission-section:after {
  content: "";
  position: absolute;
  width: 150px;
  aspect-ratio: 1;
  bottom: 0px;
  right: 30px;
  z-index: -1;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/kebab.svg") no-repeat center/contain;
}
.vision-mission-section .image-clip {
  margin-top: -12rem;
  margin-bottom: -12rem;
}
.vision-mission-section .image-clip img {
  aspect-ratio: 1;
  object-fit: cover;
  -webkit-mask-image: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/blob-round.svg");
  mask-image: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/blob-round.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

@media only screen and (max-width: 670px) {
  .vision-mission {
    margin-top: 12rem;
  }
}
@media only screen and (min-width: 670px) {
  .vision-mission hr {
    height: 2rem;
  }
}
.vision-mission p {
  font-size: 1.9rem;
  line-height: 1.5;
  font-weight: 600;
  color: #f3e7d7;
}
.vision-mission h2,
.vision-mission h3,
.vision-mission form.woocommerce-checkout .col-1 h4,
.vision-mission form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .col-1 .vision-mission h4,
form.woocommerce-checkout .checkout_coupon .vision-mission h4 {
  color: #ffb81c;
  margin-bottom: 0.25rem;
}

.divider-pattern-2 {
  position: relative;
  z-index: 0;
  width: 100%;
  height: 30px;
}
.divider-pattern-2:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/bg-yellow.png") repeat center/300px;
  background-attachment: fixed;
}

form {
  width: min(90%, 650px);
  margin-inline: auto;
}

.circles {
  pointer-events: none;
  position: relative;
  aspect-ratio: 1.5;
  width: min(100%, 600px);
  margin-inline: auto;
  top: 0;
  left: max(0px, 50% - 300px);
}
.circles__text {
  text-transform: uppercase;
  will-change: transform, opacity;
}

.circles__text--1 {
  font-size: min(90ch, 90px);
  font-family: "BubbleGum", sans-serif;
  fill: #ffb81c;
}

.bold-authentic-flavour {
  position: relative;
  z-index: 5;
  padding: 5rem 0 5rem;
  background: #f3e7d7;
}
@media only screen and (min-width: 670px) {
  .bold-authentic-flavour {
    padding: 10rem 0;
  }
}
.bold-authentic-flavour .inline-wrap {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
}
.bold-authentic-flavour h3, .bold-authentic-flavour form.woocommerce-checkout .col-1 h4, .bold-authentic-flavour form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .bold-authentic-flavour h4, form.woocommerce-checkout .checkout_coupon .bold-authentic-flavour h4 {
  color: #ffb81c;
  font-size: min(90ch, 120px);
  display: inline-block;
}
.bold-authentic-flavour a.btn-large {
  display: table;
  margin-inline: auto;
  transition: 0;
}
.bold-authentic-flavour .graphic-star {
  position: absolute;
  aspect-ratio: 1;
  display: block;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/star.svg") no-repeat center/contain;
  opacity: 0.5;
  animation: circleRotate 30s linear infinite;
}

#baf-bold {
  transform: rotate(-15deg) scale(1.1) translateX(50%) translateY(50%);
  align-self: flex-start;
}

#baf-authentic {
  text-align: right;
  transform: rotate(15deg) scale(1.1);
  align-self: flex-end;
}
#baf-authentic .graphic-star {
  width: 120px;
  top: 150px;
  right: -70px;
}

#baf-flavours {
  transform: rotate(-20deg) scale(1.1) translateY(30%);
  align-self: flex-start;
}
#baf-flavours .graphic-star {
  width: 90px;
  top: -140px;
  left: -30px;
}

.illustration-divider {
  position: relative;
  z-index: 2;
  min-height: 100vh;
}
.illustration-divider:before {
  content: "";
  position: absolute;
  width: 100vw;
  height: 120px;
  bottom: -100px;
  left: 0;
  background-color: #9b0042;
  z-index: -1;
}
.illustration-divider h2 {
  position: relative;
  color: #ffb81c;
  text-align: center;
  width: 100%;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  font-size: 4.8rem;
  margin-bottom: 2rem;
  line-height: 1;
}
.illustration-divider h2 bdi {
  display: inline-block;
}
.illustration-divider h2 span {
  font-size: 0px;
}
.illustration-divider a {
  position: relative;
  left: 50%;
  top: 50%;
  opacity: 1;
  transition: 0s;
  transform: translateX(-50%) translateY(-50%);
}
.illustration-divider .inline-wrap {
  position: relative;
  height: 100%;
}

.pushcart-graphic-holder {
  position: absolute;
  display: flex;
  flex-flow: row-reverse;
  align-items: flex-end;
  bottom: 0;
  transform-origin: bottom;
  height: 80px;
  transform: translateX(-30vw);
}
@media only screen and (min-width: 670px) {
  .pushcart-graphic-holder {
    transform: translateX(-10vw);
    height: 100px;
  }
}
.pushcart-graphic-holder > * {
  transform-origin: bottom left;
}
.pushcart-graphic-holder .menu-social-media-menu-container .menu {
  display: flex;
  gap: 0.2rem;
  flex-flow: row wrap;
}
.pushcart-graphic-holder .menu-social-media-menu-container li a {
  position: relative;
  z-index: 0;
  width: 60px;
  aspect-ratio: 1;
  border-radius: 50%;
  line-height: 1;
  display: grid;
  place-items: center;
  color: #CE0058;
  font-size: 2.2rem;
}
.pushcart-graphic-holder .menu-social-media-menu-container li a:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/blob-yellow.svg") no-repeat center/contain;
  animation: circleRotate 5s linear infinite;
  z-index: -1;
}
.pushcart-graphic-holder .menu-social-media-menu-container li a:hover {
  text-decoration: none;
}

.home-main-2 .menu {
  display: flex;
  gap: 0.2rem;
  flex-flow: row wrap;
  justify-content: center;
}
.home-main-2 li a {
  position: relative;
  z-index: 0;
  width: 60px;
  aspect-ratio: 1;
  border-radius: 50%;
  line-height: 1;
  display: grid;
  place-items: center;
  color: #CE0058;
  font-size: 2.2rem;
}
.home-main-2 li a:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/blob-yellow.svg") no-repeat center/contain;
  animation: circleRotate 5s linear infinite;
  z-index: -1;
}
.home-main-2 li a:hover {
  text-decoration: none;
}

.pushcart-graphic {
  position: relative;
  width: 100px;
  height: 100px;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/pushcart.svg") no-repeat center/cover;
  display: block;
  z-index: 0;
  bottom: 0;
}
@media only screen and (min-width: 670px) {
  .pushcart-graphic {
    width: 200px;
    height: 200px;
  }
}
.pushcart-graphic:after {
  content: "";
  position: absolute;
  width: 43px;
  height: 43px;
  bottom: -4px;
  right: 10px;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/wheel.svg") no-repeat center/cover;
  display: block;
  animation: circleRotate 5s linear infinite;
}
@media only screen and (min-width: 670px) {
  .pushcart-graphic:after {
    width: 86px;
    height: 86px;
    bottom: -8px;
    right: 20px;
  }
}

@keyframes animateWok {
  100% {
    background-position: -750px 0;
  }
}
.wok-graphic {
  position: absolute;
  width: 150px;
  height: 150px;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/wok.svg") no-repeat 0 0/cover;
  display: block;
  right: -10px;
  bottom: -40px;
  z-index: 2;
  animation: animateWok 1.2s steps(5) infinite alternate-reverse;
}

@keyframes animateTuktuk {
  100% {
    background-position: -1600px 0;
  }
}
.tuktuk-graphic {
  width: 400px;
  aspect-ratio: 4/3;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/tuktuk.svg") no-repeat 0 0/cover;
  display: block;
  right: -50px;
  top: calc(50% - 150px);
  z-index: 2;
  animation: animateTuktuk 1.2s steps(4) infinite normal;
  transform-origin: bottom;
}
@media only screen and (max-width: 670px) {
  .tuktuk-graphic {
    order: -1;
    transform-origin: center;
    transform: scale(0.8);
  }
}
@media only screen and (min-width: 670px) {
  .tuktuk-graphic {
    position: absolute;
  }
}

.swiper-pagination {
  z-index: 3;
}
.swiper-pagination .swiper-pagination-bullet-active {
  background: #CE0058;
}

.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
  bottom: -30px;
}

.contact-page main.content {
  background-color: #f3e7d7;
}

.contact-main .section-title {
  position: relative;
  text-align: center;
}
.contact-main h1 {
  color: #CE0058;
  font-size: 8rem;
  line-height: 1;
}
@media only screen and (min-width: 670px) {
  .contact-main h1 {
    font-size: 10rem;
  }
}
.contact-main h2 {
  font-size: 4rem;
  text-transform: uppercase;
  font-family: "BubbleGum", sans-serif;
  line-height: 1;
  color: #ffb81c;
}
@media only screen and (min-width: 670px) {
  .contact-main h2 {
    font-size: 6rem;
  }
}

.contact-main-banner .section-title:hover:before {
  transform: translateY(-150%) translateX(-50%) rotate(20deg) scale(1.3);
}
.contact-main-banner .section-title:hover:after {
  transform: translateY(100%) translateX(50%) rotate(-20deg) scale(1.1);
}
.contact-main-banner .section-title:before, .contact-main-banner .section-title:after {
  content: "";
  position: absolute;
  width: 100px;
  aspect-ratio: 1;
  display: block;
  top: 50%;
  z-index: 2;
  transition: 0.3s;
}
.contact-main-banner .section-title:before {
  left: 0;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/awesome.svg") no-repeat center/contain;
  transform: translateY(-150%) translateX(-100%) rotate(10deg);
}
.contact-main-banner .section-title:after {
  right: 0;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/fire-star.svg") no-repeat center/contain;
  transform: translateY(100%) translateX(100%) rotate(-10deg);
}

.contact-details-wrap {
  padding: calc(3rem + 100px) 0 6rem;
  position: relative;
  z-index: 0;
  width: 100%;
  margin-bottom: 6rem;
}
.contact-details-wrap:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  height: 100px;
  top: -1px;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/valley-divider.svg") no-repeat top/100%;
  z-index: 1;
}
.contact-details-wrap:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/bg-yellow.png") repeat center/300px;
  background-attachment: fixed;
  z-index: -1;
}
.contact-details-wrap .inline-wrap {
  display: grid;
  gap: 1rem;
  background-color: #CE0058;
  margin-block: 6rem;
  border-radius: 2rem;
  overflow: hidden;
}
@media only screen and (min-width: 670px) {
  .contact-details-wrap .inline-wrap {
    grid-template-columns: 1fr 1fr;
  }
}
.contact-details-wrap iframe {
  height: 100%;
  border: 0;
}

.contact-details {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: flex-start;
  gap: 2rem;
  z-index: 0;
  align-self: center;
}
@media only screen and (max-width: 670px) {
  .contact-details {
    padding: 2rem;
  }
}
@media only screen and (min-width: 670px) {
  .contact-details {
    gap: 4rem;
    margin-block: 4rem;
  }
}
.contact-details:after {
  content: "";
  position: absolute;
  height: 300px;
  aspect-ratio: 351/642;
  right: -200px;
  top: calc(50% - 150px);
  z-index: -1;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/contact-graphic.png") no-repeat center/contain;
}

.contact-detail-single {
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-start;
  text-align: center;
}
.contact-detail-single h4 {
  text-transform: uppercase;
  font-size: 1.8rem;
  line-height: 1.5;
  margin-bottom: 0;
  font-family: "BubbleGum", sans-serif;
  color: #ffb81c;
}
.contact-detail-single p {
  line-height: 1.5;
  color: #f3e7d7;
  font-size: 1.8rem;
  font-weight: 600;
}
.contact-detail-single p a,
.contact-detail-single p b {
  color: #f3e7d7;
  display: block;
  font-weight: 600;
}
.contact-detail-single input {
  text-align: center;
}
.contact-detail-single input[type=submit] {
  background-color: #ffb81c;
  margin-top: 0.5rem;
}

.contact-detail-single--full {
  grid-column: span 2;
}

.our-culinary-offerings {
  position: relative;
  z-index: 0;
}
.our-culinary-offerings:before {
  content: "";
  position: absolute;
  z-index: -1;
  width: 120px;
  aspect-ratio: 1;
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/delicious.svg") no-repeat center/contain;
  bottom: 20px;
  left: -20px;
}

.ticker--horizontal {
  position: relative;
  display: block;
  height: auto;
  padding: 3rem 0;
  background-color: #CE0058;
}
.ticker--horizontal .swiper-wrapper {
  transition-timing-function: linear;
}
.ticker--horizontal .swiper-slide {
  width: auto;
  height: auto;
}
.ticker--horizontal p {
  line-height: 1;
  display: inline-block;
  font-family: "BubbleGum", sans-serif;
  text-align: center;
  font-size: 60px;
  color: rgb(255, 184, 29);
  margin-bottom: 0;
}
@media only screen and (min-width: 670px) {
  .ticker--horizontal p {
    font-size: min(90ch, 100px);
  }
}
.ticker--horizontal img {
  position: relative;
  aspect-ratio: 1;
  height: 50px;
  top: calc(50% - 30px);
  display: block;
  animation: circleRotate 10s linear infinite;
}

.featured-menu {
  background: #f3e7d7;
  border-radius: 2rem;
  width: min(90%, 960px);
  margin-inline: auto;
}
.featured-menu h2 {
  font-size: 4.6rem;
}
.featured-menu .products {
  display: grid;
  width: 100%;
  gap: 4rem 2rem;
  grid-template-columns: repeat(2, 1fr);
  margin-block: 5rem;
}
@media only screen and (min-width: 670px) {
  .featured-menu .products {
    gap: 3rem 6rem;
    grid-template-columns: repeat(3, 1fr);
  }
}
@media only screen and (min-width: 670px) {
  .featured-menu .product-ui-2:nth-child(3) {
    margin-top: -2rem;
  }
}
@media only screen and (min-width: 670px) {
  .featured-menu .product-ui-2:nth-child(6) {
    margin-top: -4rem;
  }
}
@media only screen and (min-width: 670px) {
  .featured-menu .product-ui-2:nth-child(2) {
    margin-top: 2rem;
  }
}
@media only screen and (min-width: 670px) {
  .featured-menu .product-ui-2:nth-child(5) {
    margin-top: 4rem;
  }
}

.product-ui-2 {
  position: relative;
  z-index: 0;
  display: grid;
  text-align: center;
  align-self: flex-start;
}
.product-ui-2:hover img {
  transition: 6s;
  transform: scale(1.1);
}
.product-ui-2:hover a.btn-1 {
  opacity: 1;
  bottom: 15px;
  z-index: 2;
}
.product-ui-2:hover figure p {
  z-index: 1;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 2rem;
  background-color: hsla(0deg, 0%, 0%, 0.7);
  color: #fff;
}
.product-ui-2:hover:before {
  transform: translate(-50%, -50%) rotate(-10deg);
  opacity: 1;
}
.product-ui-2:hover:after {
  transform: translate(50%, 30%) rotate(10deg);
  opacity: 1;
}
.product-ui-2:before, .product-ui-2:after {
  content: "";
  position: absolute;
  z-index: 1;
  width: 80px;
  aspect-ratio: 1;
  transition: 0.3s;
  opacity: 0;
  z-index: 2;
}
@media only screen and (min-width: 670px) {
  .product-ui-2:before, .product-ui-2:after {
    width: 90px;
  }
}
.product-ui-2:before {
  top: 0;
  left: 0;
}
.product-ui-2:after {
  bottom: 0;
  right: 0;
}
.product-ui-2:nth-child(3n+1):before {
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/gogogo.webp") no-repeat center/contain;
}
.product-ui-2:nth-child(3n+1):after {
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/yum.webp") no-repeat center/contain;
}
.product-ui-2:nth-child(3n+2):before {
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/yummy.webp") no-repeat center/contain;
}
.product-ui-2:nth-child(3n+2):after {
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/hot.webp") no-repeat center/contain;
}
.product-ui-2:nth-child(3n+3):before {
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/goodvibes.webp") no-repeat center/contain;
}
.product-ui-2:nth-child(3n+3):after {
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/takeaway.webp") no-repeat center/contain;
}
.product-ui-2 figure {
  position: relative;
  overflow: hidden;
  border-radius: 1rem;
  aspect-ratio: 1;
}
.product-ui-2 figure img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  object-fit: cover;
}
.product-ui-2 .product-tags {
  margin-top: 0.5rem;
  justify-content: center;
}
.product-ui-2 b {
  font-family: "BubbleGum", sans-serif;
  font-weight: 400;
  color: #CE0058;
  font-size: 1.9rem;
  line-height: 1.2;
  margin-top: 1rem;
}
.product-ui-2 p {
  line-height: 1.2;
}
.product-ui-2 a.btn-1 {
  position: absolute;
  opacity: 0;
  top: auto;
  bottom: 0px;
  width: calc(100% - 30px);
  left: 15px;
}

.about-gallery-section {
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/bg-yellow.png") repeat center/300px;
  background-attachment: fixed;
}
.about-gallery-section .inline-wrap {
  width: min(100%, 1400px);
}

.about-gallery {
  padding: 5px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5px;
}
@media only screen and (min-width: 670px) {
  .about-gallery {
    grid-template-columns: repeat(4, 1fr);
  }
}
.about-gallery img {
  aspect-ratio: 1;
  object-fit: cover;
}

.spew-image {
  position: absolute;
  width: 100px;
  /* Adjust size as needed */
  height: 100px;
  pointer-events: none;
  /* So they don’t block mouse events */
  transform: translate(-50%, -50%);
  transition: transform 5s ease-out;
  opacity: 1;
  object-fit: contain;
}

details {
  padding: 1.5rem 2rem;
  border: 2px solid #CE0058;
  background-color: #fff;
  border-radius: 1rem;
}
details + details {
  margin-top: 1rem;
}
details:hover {
  background-color: hsl(0deg, 0%, 98%);
}
details[open] summary {
  margin-bottom: 2rem;
}
details summary {
  color: #CE0058;
  font-weight: 700;
  font-family: "Gill Sans", sans-serif;
  font-size: 1.4rem;
  cursor: pointer;
  margin-bottom: 0;
}
details summary h3, details summary form.woocommerce-checkout .col-1 h4, details summary form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 details summary h4, form.woocommerce-checkout .checkout_coupon details summary h4 {
  font-weight: 700;
  font-family: "Gill Sans", sans-serif;
  font-size: 1.4rem;
  cursor: pointer;
  margin-bottom: 0;
  display: inline;
}
details > *:not(summary):not(:last-child) {
  margin-bottom: 1rem;
}
details > *:last-child {
  margin-bottom: 0;
}
details p,
details li {
  font-size: 1.4rem;
  line-height: 1.5;
}
details ul > li {
  list-style-type: disc;
}
details ol > li {
  list-style-type: decimal;
}

h4.large {
  font-size: 3rem;
}

.home-main-slider {
  position: relative;
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .home-main-slider {
    width: min(90%, 1400px);
    margin: 5rem auto;
  }
}
.home-main-slider img {
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 5rem;
}
@media only screen and (max-width: 670px) {
  .home-main-slider img {
    order: -1;
    transform: scale(0.9);
  }
}
.home-main-slider h2 {
  color: #ffb81c;
}
.home-main-slider p {
  color: #f3e7d7;
  font-weight: 600;
  font-size: 1.7rem;
}
.home-main-slider .swiper-slide {
  display: grid;
}
@media only screen and (min-width: 670px) {
  .home-main-slider .swiper-slide {
    grid-template-columns: 1fr 1fr;
    gap: 10rem;
  }
}
.home-main-slider .description {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: flex-start;
  padding: 3rem;
}
.home-main-slider .swiper-button-next {
  color: #ffb81c;
  right: -50px;
  z-index: 2;
}
.home-main-slider .swiper-button-next:hover {
  color: #CE0058;
}
.home-main-slider .swiper-button-prev {
  color: #ffb81c;
  left: -50px;
}
.home-main-slider .swiper-button-prev:hover {
  color: #CE0058;
}

/*
 * Edited 20190727
 */
/*
* TABLE OF CONTENTS
* ----------- *
* - Woocommerce Variables
* - Woocommerce Global Styles
* - Add to Cart Button
* - Breadcrumb
* - Sale Label
* - Message box
* - Pagination
*/
/* Woocommerce Variables */
form label, .addresses address p:before,
.woocommerce-customer-details address p:before, .addresses address:before,
.woocommerce-customer-details address:before, .woocommerce-order-overview .deliveryDetails > span, .variation .wc-item-meta-label,
.variation dt,
.wc-item-meta .wc-item-meta-label,
.wc-item-meta dt, div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price:before {
  display: block;
  clip: unset;
  width: auto;
  height: auto;
  text-transform: none;
  font-size: 14px;
  cursor: pointer;
  color: hsl(0deg, 0%, 50%);
  font-weight: 700;
}

div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price:before {
  font-weight: 700;
  font-size: 1.6rem;
  color: #666;
}

/* Archive Page Main Layout
 ============================================= */
.archive.woocommerce .content {
  width: 100%;
}
.archive.woocommerce aside.widget-area {
  align-self: stretch;
}
@media only screen and (max-width: 670px) {
  .archive.woocommerce aside.widget-area {
    position: fixed;
    display: none;
    width: 100%;
    margin-right: 0;
    border-right: 0;
    z-index: 10000;
    background: #fff;
    height: 100vh;
    top: 0;
    left: 0;
    padding: 100px 50px;
  }
}

/* Shop Banner
--------------------------------------------- */
.shop-banner {
  padding-left: 0;
  padding-right: 0;
  min-height: 200px;
  text-align: left;
  z-index: 3;
}
.shop-banner a,
.shop-banner p,
.shop-banner .woocommerce-breadcrumb {
  color: #f3e7d7;
}
.shop-banner h1 {
  color: #ffb81c;
  margin-bottom: 1rem;
}
.shop-banner p {
  font-weight: 600;
}

/* Shop Archive Top Bar
--------------------------------------------- */
.archive-topbar {
  border-bottom: 2px solid #f1f1f1;
  padding-bottom: 30px;
  margin-bottom: 30px;
  position: relative;
  width: 100%;
  padding: 20px 0;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
}

.woocommerce-result-count {
  margin-bottom: 0;
  color: hsl(0deg, 0%, 60%);
  font-size: 1.2rem;
}

.woocommerce-ordering {
  width: 100%;
}
@media only screen and (max-width: 670px) {
  .woocommerce-ordering {
    margin-bottom: 10px;
  }
}
@media only screen and (min-width: 960px) {
  .woocommerce-ordering {
    width: 250px;
  }
}

/* Shop Archive Widget Area
--------------------------------------------- */
.woocommerce aside.widget-area {
  border-right: 2px solid #f1f1f1;
  padding-right: 15px;
  margin-right: 15px;
  margin-bottom: 30px;
  width: 150px;
}
@media only screen and (min-width: 960px) {
  .woocommerce aside.widget-area {
    border-right: 2px solid #f1f1f1;
    padding-right: 30px;
    margin-right: 30px;
    width: 250px;
  }
}
.woocommerce aside.widget-area .widget {
  border-bottom: 2px solid #f1f1f1;
  padding-bottom: 30px;
  margin-bottom: 30px;
}

/* Sidebar Toggle */
#sidebar-toggle {
  width: 100%;
}
@media only screen and (min-width: 670px) {
  #sidebar-toggle {
    display: none;
  }
}

#sidebar-toggle-close {
  width: 40px;
  height: 40px;
  background-color: #f1f1f1;
  border-radius: 50%;
  font-size: 25px;
  color: #820037;
  position: absolute;
  top: 5vw;
  right: 5vw;
}
#sidebar-toggle-close:hover,
#sidebar-toggle-close a:hover {
  text-decoration: none;
}

/* Specifically for product category */
.menu-shop-menu-container,
.widget_product_categories {
  font-size: 1.4rem;
}
.menu-shop-menu-container a,
.widget_product_categories a {
  color: hsl(0deg, 0%, 60%);
  display: block;
  padding: 0.2em 0;
}
.menu-shop-menu-container a:hover,
.widget_product_categories a:hover {
  color: hsl(0deg, 0%, 40%);
  padding-left: 0.4em;
  text-decoration: none;
}

/* Products
--------------------------------------------- */
/* Structure of products to differentiate it from related products */
.woocommerce-shop .products,
.archive.woocommerce .products {
  width: min(90%, 1400px);
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  margin-inline: auto;
  gap: 3rem 0;
}

ul.products {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  flex: 1 1 0;
  margin-bottom: 30px;
}
@media only screen and (min-width: 960px) {
  ul.products {
    justify-content: flex-start;
  }
}

li.product-category {
  overflow: hidden;
  padding: 0;
}
li.product-category:hover .product-category-description {
  left: -1rem;
}
li.product-category .product-category-description {
  position: relative;
  bottom: 0;
  margin-top: -20px;
  transition: 0.3s;
  transform: translateY(-30px);
}
li.product-category .product-category-description p {
  display: inline;
}
li.product-category img {
  object-fit: cover;
  width: 100%;
  aspect-ratio: 15/10;
  border-radius: 1rem;
}
@media only screen and (min-width: 960px) {
  li.product-category img {
    transition: all 0.2s ease-in-out;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Product List */
li.product {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-start;
  text-align: left;
  padding: 1rem;
  border-radius: 2rem;
  gap: 1rem;
}
li.product:hover img {
  transition: 6s;
  transform: scale(1.1);
  transform-origin: bottom;
}
@media only screen and (min-width: 960px) {
  li.product:hover {
    box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.15);
    background: #fff;
  }
}
li.product a {
  width: 100%;
  text-decoration: none;
}
li.product img {
  border-radius: 1.5rem;
}
li.product figure {
  position: relative;
  overflow: hidden;
  object-fit: cover;
  width: 100%;
  aspect-ratio: 15/10;
  border-radius: 1rem;
}
li.product figure img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  object-fit: cover;
}
li.product figure,
li.product .woocommerce-placeholder {
  object-fit: cover;
  width: 100%;
  aspect-ratio: 15/10;
  border-radius: 1rem;
}
@media only screen and (min-width: 960px) {
  li.product figure,
li.product .woocommerce-placeholder {
    transition: all 0.2s ease-in-out;
    margin-left: auto;
    margin-right: auto;
  }
}
li.product .woocommerce-loop-product__title {
  font-size: 2.1rem;
  color: #ce0058;
  margin-bottom: 0px;
}
li.product .woocommerce-loop-category__title {
  font-size: 2.6rem;
  margin-bottom: 0;
  margin-top: 1rem;
}
li.product p {
  color: hsl(50deg, 25%, 25%);
  margin-bottom: 0.5rem;
  line-height: 1.25;
}
li.product .price {
  font-size: 1.4rem;
  font-weight: 400;
  color: hsl(0deg, 0%, 30%);
  background-color: hsla(0deg, 0%, 97%, 0.8);
  border-radius: 1rem;
  padding: 0.5em 0.5em;
  text-align: center;
  line-height: 1;
  /* For sale item */
}
li.product .price ins {
  font-weight: 700;
  color: #CE0058;
  text-decoration: none;
}
li.product .availability {
  position: absolute;
  z-index: 2;
  font-size: 1.1rem;
  line-height: 1.25;
  font-weight: 600;
  background-color: hsla(0deg, 0%, 100%, 0.8);
  padding: 0.5em 1em 0.5em 0.5em;
  color: hsl(0deg, 0%, 20%);
  border-radius: 0 1rem 1rem 0;
  top: 3rem;
  margin-bottom: 0;
}
li.product .description {
  color: #CE0058;
  font-weight: 600;
  margin-bottom: 0;
}
li.product .description i {
  margin-right: 0.5rem;
}

/* Added to cart button */
.product-tags {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 1rem;
  margin-top: -2rem;
  margin-bottom: -0.5rem;
}
.product-tags a {
  background-color: #ffb81c;
  color: #CE0058;
  padding: 0.5rem 1rem;
  border-radius: 2rem;
  font-size: 1.3rem;
  line-height: 1;
  display: inline-flex;
  width: auto;
  align-items: center;
}
.product-tags a:before {
  width: 1.1em;
  aspect-ratio: 1;
  display: inline-block;
  margin-right: 0.1em;
  fill: #CE0058;
}
.product-tags .spicy a:before {
  content: "";
  background: url("https://demo.co-enterprise.com.sg/rasorn-v9/static/chili.svg") no-repeat center/contain;
}

.text-group {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(3, 1fr);
}
@media only screen and (min-width: 670px) {
  .text-group {
    gap: 1rem;
  }
}

.btn-group {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.product-cat-nav {
  position: absolute;
  bottom: 0;
  left: max(5%, (100vw - 1400px) / 2);
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  width: min(90%, 1400px);
  padding: 1rem 0%;
  /* width */
  /* Track */
  /* Handle */
  /* Handle on hover */
}
@media only screen and (max-width: 670px) {
  .product-cat-nav {
    width: 100%;
    padding: 1rem 5%;
    left: 0;
  }
}
.product-cat-nav.pinned {
  position: fixed;
  background-color: #9b26b6;
  z-index: 555;
  justify-content: flex-start;
  min-width: 100vw;
  left: 0 !important;
}
.product-cat-nav .btn-1 {
  outline: 2px solid #CE0058;
}
.product-cat-nav::-webkit-scrollbar {
  height: 5px;
}
.product-cat-nav::-webkit-scrollbar-track {
  background: #68002c;
  border-radius: 3px;
}
.product-cat-nav::-webkit-scrollbar-thumb {
  background: #ffb81c;
  border-radius: 3px;
}
.product-cat-nav::-webkit-scrollbar-thumb:hover {
  background: #ffb003;
}
.product-cat-nav a {
  background-color: #b5004d;
  white-space: nowrap;
  display: grid;
  align-items: center;
}

.product-category-description {
  position: absolute;
  bottom: 20px;
  left: 0;
}
.product-category-description p {
  background-color: #ffb81c;
  font-weight: 700;
  padding: 0.5rem 1rem;
  line-height: 1;
  font-size: 1.3rem;
  border-radius: 0 0.75rem 0.75rem 0;
  color: #CE0058 !important;
}

.text-group-2 article {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
/* Single Product Layout */
.single-product .product-primary-information {
  background-color: hsl(0deg, 0%, 97%);
  padding: 0 2.5%;
}
@media only screen and (min-width: 670px) {
  .single-product .product-primary-information {
    padding: 0 5%;
  }
}

/* Simple AND Variable Product */
div.product {
  position: relative;
  width: 100%;
  display: flex;
  flex-flow: row wrap;
  /* Common Product Description / Summary */
}
div.product .summary {
  position: relative;
}
div.product .summary > * {
  margin-bottom: 15px;
}
div.product .summary > *:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 670px) {
  div.product .summary {
    flex: 1 1 0;
  }
}
div.product .product_title {
  font-size: 3rem;
}
div.product .price {
  font-size: 2rem;
  font-weight: 700;
}
div.product .woocommerce-product-details__short-description {
  padding: 20px 10px;
  background-color: hsl(0deg, 0%, 100%);
  border-radius: 5px;
  border: 1px solid hsl(0deg, 0%, 90%);
}
@media only screen and (min-width: 670px) {
  div.product .woocommerce-product-details__short-description {
    padding: 20px;
  }
}
div.product .woocommerce-product-details__short-description > *:last-child {
  margin-bottom: 0;
}

/* Common Product Page Gallery */
.woocommerce-product-gallery img {
  display: block;
  width: 100%;
  height: auto;
  box-shadow: none;
}
.woocommerce-product-gallery div.thumbnails {
  padding-top: 1em;
}
.woocommerce-product-gallery.woocommerce-product-gallery {
  position: relative;
  margin-bottom: 40px;
  display: flex;
  flex-flow: row wrap;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery.woocommerce-product-gallery {
    flex: 1 1 0;
    margin-right: 50px;
    flex-flow: row-reverse nowrap;
    max-width: 42vw;
  }
}
.woocommerce-product-gallery.woocommerce-product-gallery .woocommerce-product-gallery__image {
  background-color: transparent;
}
.woocommerce-product-gallery.woocommerce-product-gallery .woocommerce-product-gallery__image a > img {
  height: 400px;
  object-fit: contain;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery.woocommerce-product-gallery .woocommerce-product-gallery__image a > img {
    height: 500px;
  }
}
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
  transition: all cubic-bezier(0.795, -0.035, 0, 1) 0.5s;
  margin: 0;
  padding: 0;
}
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper .zoomImg {
  background-color: #fff;
  opacity: 0;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image--placeholder {
  border: 1px solid #f2f2f2;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image:nth-child(n+2) {
  width: 25%;
  display: inline-block;
}
.woocommerce-product-gallery .woocommerce-product-gallery__trigger {
  position: absolute;
  top: 0.5em;
  right: 0.5em;
  font-size: 2em;
  z-index: 9;
  width: 36px;
  height: 36px;
  background: #fff;
  text-indent: -9999px;
  border-radius: 100%;
  box-sizing: content-box;
}
.woocommerce-product-gallery .woocommerce-product-gallery__trigger::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border: 2px solid #000;
  border-radius: 100%;
  position: absolute;
  top: 9px;
  left: 9px;
  box-sizing: content-box;
}
.woocommerce-product-gallery .woocommerce-product-gallery__trigger::after {
  content: "";
  display: block;
  width: 2px;
  height: 8px;
  background: #000;
  border-radius: 6px;
  position: absolute;
  top: 19px;
  left: 22px;
  transform: rotate(-45deg);
  box-sizing: content-box;
}
.woocommerce-product-gallery .flex-control-thumbs {
  zoom: 1;
  margin: 0;
  padding: 0;
  align-self: flex-start;
  margin-top: 30px;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs {
    width: 80px;
    max-width: 80px;
    min-width: 80px;
  }
}
.woocommerce-product-gallery .flex-control-thumbs li {
  padding: 0 10px 10px;
  float: left;
  margin: 0;
  list-style: none;
}
.woocommerce-product-gallery .flex-control-thumbs li img {
  cursor: pointer;
  opacity: 0.5;
  margin: 0;
  width: 40px;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs li img {
    width: 80px;
  }
}
.woocommerce-product-gallery .flex-control-thumbs li img:hover {
  opacity: 1;
}
.woocommerce-product-gallery .flex-control-thumbs .slick-list {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs .slick-list {
    flex-direction: column;
  }
}
.woocommerce-product-gallery .flex-control-thumbs .slick-current img {
  opacity: 1;
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs .slick-current img {
    box-shadow: 0 0 0 3px #fff, 0 0 0 4px #ccc;
  }
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs .slick-next {
    transform: rotate(90deg) translateY(50%);
    top: auto;
    bottom: -30px;
    left: 50%;
  }
}
@media only screen and (min-width: 670px) {
  .woocommerce-product-gallery .flex-control-thumbs .slick-prev {
    transform: rotate(90deg) translateY(50%);
    top: -30px;
    left: 50%;
  }
}

/* Variable Product */
div.product-type-variable {
  /* For variations */
  /* After variation select */
}
div.product-type-variable table.variations {
  table-layout: fixed;
  margin-bottom: 10px;
}
div.product-type-variable table.variations tbody {
  vertical-align: top;
  border: 0;
}
div.product-type-variable table.variations td {
  border: 0;
}
div.product-type-variable table.variations .label {
  width: 120px;
}
div.product-type-variable table.variations .value {
  width: auto;
}
div.product-type-variable table.variations .value select {
  width: 100%;
}
div.product-type-variable table.variations .value .reset_variations {
  display: none !important;
}
div.product-type-variable .single_variation_wrap > * {
  margin-bottom: 15px;
}
div.product-type-variable .single_variation_wrap .single_variation {
  padding: 20px 10px;
  background-color: hsl(0deg, 0%, 100%);
  border-radius: 5px;
  border: 1px solid hsl(0deg, 0%, 90%);
}
@media only screen and (min-width: 670px) {
  div.product-type-variable .single_variation_wrap .single_variation {
    padding: 20px;
  }
}
div.product-type-variable .single_variation_wrap .woocommerce-variation-price {
  border-top: 1px solid #f1f1f1;
  padding-top: 20px;
  margin-top: 20px;
}
div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}
div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price:before {
  content: "Price";
  display: inline-block;
  width: 120px;
  margin-right: 6px;
}
div.product-type-variable .single_variation_wrap .woocommerce-variation-price .price del {
  font-size: 1.2rem;
  opacity: 0.6;
  margin-right: 3px;
}

/* Quantity and Add to cart module */
div.product-type-variable .woocommerce-variation-add-to-cart, div.product-type-simple form.cart {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  padding: 15px 0;
}
div.product-type-variable .woocommerce-variation-add-to-cart input.qty, div.product-type-simple form.cart input.qty {
  height: 100%;
  width: 40px;
}
div.product-type-variable .woocommerce-variation-add-to-cart .quantity, div.product-type-simple form.cart .quantity {
  position: relative;
  z-index: 2;
  display: flex;
  flex-flow: row nowrap;
  flex: 0 0 40px;
}
div.product-type-variable .woocommerce-variation-add-to-cart .quantity input, div.product-type-simple form.cart .quantity input {
  border: 0;
  border-top: 1px solid hsl(0deg, 0%, 80%);
  border-bottom: 1px solid hsl(0deg, 0%, 80%);
  text-align: center;
  border-radius: 0;
  z-index: 1;
  /* Hide HTML5 Up and Down arrows. */
}
div.product-type-variable .woocommerce-variation-add-to-cart .quantity input[type=number]::-webkit-outer-spin-button, div.product-type-simple form.cart .quantity input[type=number]::-webkit-outer-spin-button, div.product-type-variable .woocommerce-variation-add-to-cart .quantity input[type=number]::-webkit-inner-spin-button, div.product-type-simple form.cart .quantity input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
div.product-type-variable .woocommerce-variation-add-to-cart .quantity input[type=number], div.product-type-simple form.cart .quantity input[type=number] {
  -moz-appearance: textfield;
}
div.product-type-variable .woocommerce-variation-add-to-cart .minus, div.product-type-simple form.cart .minus,
div.product-type-variable .woocommerce-variation-add-to-cart .plus,
div.product-type-simple form.cart .plus {
  font-size: 20px;
  width: 40px;
  height: 40px;
  padding: 0;
  font-weight: 700;
  border: 1px solid hsl(0deg, 0%, 80%);
}
div.product-type-variable .woocommerce-variation-add-to-cart .minus, div.product-type-simple form.cart .minus {
  border-radius: 4px 0 0 4px;
}
div.product-type-variable .woocommerce-variation-add-to-cart .plus, div.product-type-simple form.cart .plus {
  border-radius: 0 4px 4px 0;
}
div.product-type-variable .woocommerce-variation-add-to-cart .button.single_add_to_cart_button, div.product-type-simple form.cart .button.single_add_to_cart_button {
  flex: 1 1 0;
  margin-left: 15px;
}

/* Woocommerce Tabs */
.woocommerce .woocommerce-tabs {
  width: 100%;
}

/* Related Products */
.related.products {
  position: relative;
  width: 100%;
  padding: 50px 2.5%;
}
@media only screen and (min-width: 670px) {
  .related.products {
    padding: 50px 5%;
  }
}
.related.products > h2 {
  position: relative;
  text-align: center;
  font-size: 2.8rem;
}
.related.products .products {
  display: flex;
  flex-flow: row wrap;
}
.related.products .products > * {
  width: calc((100% - (20px / 2 * (2 - 1))) / 2);
  margin-right: 10px;
}
@media only screen and (max-width: 670px) {
  .related.products .products > * {
    margin-bottom: 10px;
  }
}
@media only screen and (max-width: 670px) {
  .related.products .products > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  .related.products .products > * {
    width: calc((100% - (20px * (4 - 1))) / 4);
    margin-right: 20px;
  }
  .related.products .products > *:nth-child(4n) {
    margin-right: 0;
  }
}

/* Single product add to any plugin */
.summary .addtoany_header {
  width: 100%;
}
@media only screen and (max-width: 670px) {
  .summary .addtoany_header {
    text-align: center;
  }
}
@media only screen and (min-width: 670px) {
  .summary .addtoany_header {
    float: left;
    line-height: 30px;
    width: 120px;
  }
}
.summary .a2a_kit {
  position: relative;
  display: flex;
  flex-wrap: wrap;
}
@media only screen and (max-width: 670px) {
  .summary .a2a_kit {
    width: 100%;
    margin-top: -10px;
    padding-bottom: 30px;
    justify-content: center;
  }
}
@media only screen and (min-width: 670px) {
  .summary .a2a_kit {
    left: 10px;
  }
}

/* Woo Cart
 ============================================= */
/* Structure */
.woocommerce-cart .woocommerce {
  padding: 50px 3vw 80px;
  width: 100%;
  display: flex;
  flex-flow: row wrap;
}
@media only screen and (min-width: 960px) {
  .woocommerce-cart .woocommerce {
    padding: 50px 5% 80px;
  }
}

.woocommerce-cart .woocommerce-cart-form {
  flex: 1 1 100%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-cart .woocommerce-cart-form {
    margin-right: 5vw;
    flex: 2 1 0;
  }
}
.woocommerce-cart .cart-collaterals {
  flex: 1 1 100%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-cart .cart-collaterals {
    flex: 1 1 0;
  }
}

/* General Table */
.shop_table {
  background-color: #fff;
  font-size: 1.4rem;
  table-layout: fixed;
  overflow: hidden;
}
.shop_table p {
  margin: 0;
}
.shop_table thead {
  color: hsl(0deg, 0%, 60%);
  font-size: 1.2rem;
  text-transform: uppercase;
  border-bottom: 5px solid #eee;
}
.shop_table th {
  padding: 8px 10px;
  font-weight: 700;
  border-top: 1px solid #eee;
}
.shop_table td {
  padding: 15px 10px;
}
@media only screen and (min-width: 960px) {
  .shop_table td {
    padding: 25px 15px;
  }
}
.shop_table td:before {
  text-transform: uppercase;
  font-size: 1.2rem;
  color: #999;
}
.shop_table td.product-name {
  font-weight: 700;
  color: #9b0042;
  font-size: 1.4rem;
  width: auto;
  line-height: 2.2rem;
}
.shop_table td.product-name a {
  color: hsl(0deg, 0%, 30%);
  font-weight: 700;
}
.shop_table td.product-name p {
  color: hsl(0deg, 0%, 60%);
  font-size: 1.2rem;
  margin-bottom: 15px;
  font-weight: 400;
}
.shop_table td.product-name p:last-child {
  margin-bottom: 0;
}
.shop_table .product-quantity {
  width: 100%;
}
@media only screen and (min-width: 670px) {
  .shop_table .product-quantity {
    width: 100px;
  }
}
.shop_table .product-quantity input {
  width: 50px;
  text-align: center;
}
@media only screen and (min-width: 670px) {
  .shop_table .product-quantity input {
    width: 80%;
    text-align: left;
  }
}
@media only screen and (min-width: 670px) {
  .shop_table .product-price {
    width: 100px;
  }
  .shop_table .product-subtotal {
    width: 100px;
  }
}

/* Cart Table */
table.cart {
  /* Mobile Table */
}
table.cart .product-remove {
  font-weight: 700;
  padding: 10px;
}
@media only screen and (min-width: 670px) {
  table.cart .product-remove {
    width: 30px;
  }
}
table.cart .product-remove a {
  width: 26px;
  height: 26px;
  background-color: #9e1c25;
  border-radius: 50%;
  font-size: 0;
  color: #fff;
  margin: 0 0 0 auto;
  font-size: 0;
}
table.cart .product-remove a:hover,
table.cart .product-remove a a:hover {
  text-decoration: none;
}
@media only screen and (min-width: 960px) {
  table.cart .product-remove a {
    width: 20px;
    height: 20px;
    opacity: 0.6;
  }
  table.cart .product-remove a:hover {
    opacity: 1;
    text-decoration: none;
  }
}
table.cart .product-remove a:after {
  content: "\ea0a";
  font-size: 14px;
  font-weight: 700;
}
@media only screen and (min-width: 670px) {
  table.cart .product-thumbnail {
    width: 100px;
    text-align: center;
  }
  table.cart .product-thumbnail img {
    width: 80px;
    height: 80px;
    object-fit: contain;
    padding: 5px;
  }
}
table.cart .actions {
  padding: 20px;
  border-top: 3px solid #eee;
  *zoom: 1;
}
table.cart .actions::after, table.cart .actions::before {
  content: " ";
  display: table;
}
table.cart .actions::after {
  clear: both;
}
table.cart .actions .button {
  margin: 0;
  font-size: 1.3rem;
}
table.cart .actions .coupon {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  float: left;
}
table.cart .actions .coupon label[for=coupon_code] {
  display: none;
}
table.cart .actions button[name=update_cart] {
  float: right;
}
table.cart .actions #coupon_code {
  width: 50%;
}
@media only screen and (min-width: 960px) {
  table.cart .actions #coupon_code {
    width: auto;
  }
}
@media only screen and (max-width: 670px) {
  table.cart tbody tr.cart_item {
    border: 1px solid #eee;
    margin-bottom: 20px;
    border-radius: 10px;
  }
  table.cart tbody tr.cart_item td {
    border-color: #f5f5f5;
  }
}

/* Variation text within table */
.variation,
.wc-item-meta {
  margin: 0;
}
.variation .wc-item-meta-label,
.variation dt,
.wc-item-meta .wc-item-meta-label,
.wc-item-meta dt {
  margin-top: 10px;
}
.variation dd,
.wc-item-meta dd {
  margin: 0;
}

/* Cart Totals Table */
.cart_totals {
  background-color: #f7f7f7;
  padding: 5px 20px 20px;
}
.cart_totals .shop_table {
  background-color: transparent;
  border-radius: 0;
  box-shadow: 0 0 0 0 transparent;
  margin-bottom: 10px;
}
@media only screen and (min-width: 670px) {
  .cart_totals .woocommerce-shipping-totals {
    width: 200%;
  }
}
.cart_totals > h2 {
  display: none;
}
.cart_totals tr:first-child > * {
  border-top: 0;
}
.cart_totals td,
.cart_totals th {
  padding: 12px 0;
}
.cart_totals th {
  width: auto;
  border-top: 1px solid #eee;
  color: #666;
}
.cart_totals td {
  text-align: right;
}
.cart_totals .woocommerce-shipping-destination {
  line-height: 20px;
  font-size: 1.2rem;
  margin: 10px 0;
  opacity: 0.8;
}
.cart_totals .woocommerce-shipping-destination strong {
  display: block;
}
.cart_totals .checkout-button i {
  font-size: 1.4rem;
}

#shipping_method {
  font: 700 1.4rem "Gill Sans", sans-serif;
}
#shipping_method input[type=hidden] + label, #shipping_method input[type=radio]:checked + label {
  border-radius: 7px;
  border: 2px solid #350017;
}
#shipping_method input[type=radio] {
  display: none;
}
#shipping_method input[type=hidden] {
  display: none;
}
#shipping_method label {
  width: 100%;
  text-transform: capitalize;
}

.cart-empty {
  width: 100%;
  text-align: center;
}

.return-to-shop {
  width: 100%;
  text-align: center;
}

.woocommerce-checkout:not(.woocommerce-order-received) .entry,
.woocommerce-checkout:not(.woocommerce-order-received) .entry-content {
  padding: 0;
}
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce {
  padding: 0 5% 50px;
  max-width: none;
}
@media only screen and (min-width: 960px) {
  .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce {
    padding: 0 5% 50px;
  }
}
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce .woocommerce-form-login-toggle {
  flex: 1 1 100%;
}
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce h3, .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce form.woocommerce-checkout .col-1 h4, .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce form.woocommerce-checkout .checkout_coupon h4, form.woocommerce-checkout .col-1 .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce h4, form.woocommerce-checkout .checkout_coupon .woocommerce-checkout:not(.woocommerce-order-received) .woocommerce h4 {
  margin-bottom: 20px;
}
.woocommerce-checkout:not(.woocommerce-order-received) #ship-to-different-address span {
  font-size: 1.6rem;
  font-weight: 400;
}

form.woocommerce-checkout .col2-set {
  display: flex;
  flex-flow: row wrap;
}
form.woocommerce-checkout .col2-set > * {
  width: 100%;
  margin-bottom: 30px 2;
}
@media only screen and (min-width: 670px) {
  form.woocommerce-checkout .col2-set > * {
    width: calc((100% - (30px 2 * (2 - 1))) / 2);
    margin-right: 30px 2;
  }
  form.woocommerce-checkout .col2-set > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  form.woocommerce-checkout .col2-set > *:nth-child(1) {
    flex: 3 1 0;
  }
  form.woocommerce-checkout .col2-set > *:nth-child(2) {
    flex: 2 1 0;
  }
}
form.woocommerce-checkout .col-1, form.woocommerce-checkout .checkout_coupon {
  margin-bottom: 50px;
}
form.woocommerce-checkout .col-1 > *, form.woocommerce-checkout .checkout_coupon > * {
  margin-bottom: 25px;
}
form.woocommerce-checkout .col-1 > *:last-child, form.woocommerce-checkout .checkout_coupon > *:last-child {
  margin-bottom: 0;
}
@media only screen and (max-width: 670px) {
  form.woocommerce-checkout .col-1, form.woocommerce-checkout .checkout_coupon {
    padding: 0;
  }
}
form.woocommerce-checkout .col-1 h4, form.woocommerce-checkout .checkout_coupon h4 {
  border-top: 1px solid hsl(0deg, 0%, 90%);
  padding-top: 50px;
  margin-top: 50px;
}
form.woocommerce-checkout .col-2 {
  padding: 30px 10px;
  align-self: flex-start;
}
@media only screen and (min-width: 960px) {
  form.woocommerce-checkout .col-2 {
    padding: 0;
  }
}

@media only screen and (min-width: 960px) {
  #order-review-wrapper {
    border-left: 1px solid hsl(0deg, 0%, 95%);
    padding-left: 50px;
    margin-left: 50px;
    max-width: 400px;
  }
}

/* Ship to a different address */
.woocommerce-form__label-for-checkbox span {
  font-size: 1.6rem;
  font-weight: 700;
  font-family: "Gill Sans", sans-serif;
  letter-spacing: 0;
}

/* Select shipping method
--------------------------------------------- */
.checkout-select-shipping-method {
  border-top: 1px solid hsl(0deg, 0%, 85%);
  padding-top: 60px;
  margin-top: 60px;
}

/* Payment method
--------------------------------------------- */
.woocommerce-checkout-review-order h4 {
  font-weight: 700;
}

/* Checkout Page Order Summary Table
--------------------------------------------- */
.shop_table.woocommerce-checkout-review-order-table .product-total,
.shop_table.woocommerce-checkout-review-order-table tfoot td {
  width: 80px;
  text-align: right;
  vertical-align: top;
}
.shop_table.woocommerce-checkout-review-order-table thead {
  display: none;
}
.shop_table.woocommerce-checkout-review-order-table th {
  padding: 8px 0;
}
.shop_table.woocommerce-checkout-review-order-table td {
  font-size: 13px;
  line-height: 1.3;
  padding: 13px 0;
}
.shop_table.woocommerce-checkout-review-order-table .variation {
  overflow: hidden;
  max-height: 0;
}
.shop_table.woocommerce-checkout-review-order-table .variation p {
  font-size: 12px;
}
.shop_table.woocommerce-checkout-review-order-table .variation--active {
  max-height: 500px;
}
.shop_table.woocommerce-checkout-review-order-table .order-total {
  border-bottom: 4px double hsl(0deg, 0%, 75%);
}
.shop_table.woocommerce-checkout-review-order-table .product-name {
  cursor: pointer;
}
.shop_table.woocommerce-checkout-review-order-table .product-name:hover {
  color: #4f0022;
}

/* Payment Section
--------------------------------------------- */
#payment {
  /* To select saved payment methods */
}
#payment .wc-saved-payment-methods {
  margin: 15px 0;
}
#payment .wc-saved-payment-methods label {
  padding: 0.5rem 1rem;
}
#payment .wc-saved-payment-methods label:hover {
  background-color: #e6e6e6;
}

input[id^=payment_method] {
  display: none;
}
input[id^=payment_method]:checked + label {
  background-color: #9b0042;
  color: #fff;
  border-radius: 7px 7px 0 0;
  border: 0;
}

.wc_payment_methods {
  margin-bottom: 25px;
}

.wc_payment_method {
  margin-bottom: 15px;
}
.wc_payment_method > label {
  cursor: pointer;
  width: 100%;
  text-align: left;
  border: 1px solid hsl(0deg, 0%, 80%);
  border-radius: 7px;
  text-transform: none;
  font-size: 1.6rem;
}
.wc_payment_method > label:hover {
  border: 1px solid hsl(0deg, 0%, 70%);
}
.wc_payment_method > label img {
  float: right;
}

.payment_box {
  border: 1px solid hsl(0deg, 0%, 88%);
  border-top: 0;
  border-radius: 0 0 7px 7px;
  padding: 20px;
  background-color: hsl(0deg, 0%, 98%);
  /* Error inside payment */
}
@media only screen and (min-width: 960px) {
  .payment_box {
    padding: 30px 30px 20px;
  }
}
.payment_box .wc-payment-form {
  border: 0;
  padding: 0;
}
.payment_box .wc-payment-form .form-row {
  margin-bottom: 10px;
}
.payment_box .woocommerce_error {
  font-weight: 700;
  padding: 0.5rem 1rem;
  text-align: center;
}

/* For Stripe only
--------------------------------------------- */
#stripe-payment-data p {
  font-size: 1.3rem;
  line-height: 1.5;
}

label[for=payment_method_stripe] img {
  display: none;
}

/* After payment box
--------------------------------------------- */
.place-order .woocommerce-terms-and-conditions-checkbox-text {
  display: inline-flex;
}
.place-order .woocommerce-terms-and-conditions-checkbox-text a {
  margin-left: 3px;
}
.place-order p {
  font-size: 1.4rem;
  color: #666;
}

#place_order {
  width: 100%;
}

/* Errors
--------------------------------------------- */
/* Order Delivery Date Only */
#orddd_time_slot_field .select2-selection,
#orddd_time_slot_field .select2-selection__arrow {
  height: 40px;
}
#orddd_time_slot_field .select2-selection__rendered {
  line-height: 38px;
}

#payment .payment_methods > li > label img {
  display: none;
}

/* Checkout coupon */
.checkout_coupon {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
}
.checkout_coupon button {
  width: 100%;
}
.checkout_coupon .form-row {
  margin-left: 0;
  margin-right: 0;
}

#order_review_heading {
  font-family: "BubbleGum", sans-serif;
  font-weight: 700;
}

.woocommerce-checkout .woocommerce-form-login .form-row {
  width: 100%;
}

/* 1 item to review
 ============================================= */
.woocommerce-order-received .entry-title {
  font-size: 4rem;
}
.woocommerce-order-received .woocommerce-order {
  padding: 50px 5%;
  background-color: hsl(0deg, 0%, 97%);
}
.woocommerce-order-received .woocommerce-order > * {
  margin-bottom: 40px;
}
.woocommerce-order-received .woocommerce-order > *:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 960px) {
  .woocommerce-order-received .woocommerce-order {
    padding: 50px 10%;
  }
}
.woocommerce-order-received .woocommerce-order-details__title {
  font-size: 2rem;
}
@media only screen and (max-width: 670px) {
  .woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-order-details {
    padding: 0;
  }
}

/* Overview bar */
.woocommerce-order-overview {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  background-color: #fff;
  position: relative;
  margin: 0 auto;
  border-top: 3px solid #CE0058;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.15);
  /* REVIEW THIS */
}
.woocommerce-order-overview > * {
  flex: 1 1 100%;
  position: relative;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 1.2rem;
  padding: 10px 20px;
  border-right: 1px dotted #ddd;
  color: #888;
}
@media only screen and (min-width: 960px) {
  .woocommerce-order-overview > * {
    flex: 1 1 0;
  }
}
.woocommerce-order-overview > *:last-child {
  border-right: 0;
}
.woocommerce-order-overview > * strong {
  position: relative;
  text-transform: none;
  display: block;
  font-weight: 700;
  font-size: 1.6rem;
  color: #5e0028;
  line-height: 20px;
}
.woocommerce-order-overview .deliveryDetails {
  flex: 1 1 100%;
  background-color: #9b0042;
  margin: 0;
  color: #fff;
  font-size: 1.6rem;
  text-transform: capitalize;
}
@media only screen and (min-width: 960px) {
  .woocommerce-order-overview .deliveryDetails {
    text-align: center;
    flex: 1 1 50%;
  }
}
.woocommerce-order-overview .deliveryDetails > span {
  color: #fff;
}

.woocommerce-thankyou-order-received {
  text-align: center;
}

.woocommerce-table--order-details .product-total,
.woocommerce-table--order-details tfoot td {
  width: 20%;
  text-align: right;
  vertical-align: top;
}

.woocommerce-order-pay .entry-content {
  background-color: hsl(0deg, 0%, 97%);
}
.woocommerce-order-pay .product-quantity {
  width: auto;
}

/* Woocommerce Account Page
 ============================================= */
/* Main Structure */
.woocommerce-MyAccount-content {
  padding: 35px 17.5px;
  background-color: hsl(0deg, 0%, 100%);
  border-radius: 10px;
  border: 1px solid #ddd;
}
@media only screen and (min-width: 670px) {
  .woocommerce-MyAccount-content {
    padding: 35px;
  }
}

/* general woocommerce account style. For my account, logged in, and lost password */
.woocommerce-account {
  /* Woocommerce account logged in specific style*/
}
.woocommerce-account .entry-content {
  position: relative;
  background-color: hsl(0deg, 0%, 97%);
  padding: 30px 5%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-account .entry-content {
    max-width: none;
    width: 100%;
    padding: 30px 10%;
  }
}
.woocommerce-account.logged-in .woocommerce {
  align-items: flex-start;
}
@media only screen and (min-width: 670px) {
  .woocommerce-account.logged-in .woocommerce > *:nth-child(1) {
    flex: 1 1 0;
  }
  .woocommerce-account.logged-in .woocommerce > *:nth-child(2) {
    flex: 3 1 0;
  }
}

/* My Account Navigation */
.woocommerce-MyAccount-navigation {
  background-color: #fff;
  border-radius: 10px;
  border: 1px solid #ddd;
  padding: 15px 0;
}

.woocommerce-MyAccount-navigation-link {
  border-bottom: 1px solid #eee;
  padding-bottom: 10px;
  margin-bottom: 10px;
}
.woocommerce-MyAccount-navigation-link.is-active a {
  font-weight: 700;
  color: #9b0042;
}
.woocommerce-MyAccount-navigation-link a {
  display: block;
  padding: 0 12px;
  color: #888;
  font-size: 1.5rem;
  font-weight: 400;
}
.woocommerce-MyAccount-navigation-link a:hover {
  text-decoration: none;
  padding-left: 18px;
  color: #555;
}

/* Content */
.woocommerce-MyAccount-content {
  display: flex;
  flex-flow: column nowrap;
  margin: 0 auto;
}
.woocommerce-MyAccount-content em {
  opacity: 0.8;
  font-size: 1.4rem;
}
.woocommerce-MyAccount-content mark {
  position: relative;
  display: inline-block;
  border-radius: 5px;
  margin-bottom: 5px;
  background-color: hsl(0deg, 0%, 95%);
  font-weight: 700;
  font-size: 12px;
  padding: 3px 8px;
  color: hsl(0deg, 0%, 20%);
}
.woocommerce-MyAccount-content mark:hover {
  background-color: #d9d9d9;
}
.woocommerce-MyAccount-content fieldset {
  background-color: hsl(0deg, 0%, 99%);
  border: 1px solid hsl(0deg, 0%, 90%);
  padding: 10px 30px;
  margin: 20px 0;
}
.woocommerce-MyAccount-content fieldset legend {
  font-weight: 700;
  font-size: 1.6rem;
  color: hsl(0deg, 0%, 40%);
  padding: 0 10px;
  margin: 0 -10px;
}

/* Remove dashboard link */
.woocommerce-MyAccount-navigation-link--dashboard {
  display: none;
}

/* Password strength */
.woocommerce-password-strength {
  padding: 5px 0;
}
.woocommerce-password-strength.short {
  color: #9e1c25;
}
.woocommerce-password-strength.bad {
  color: #ff5b36;
}
.woocommerce-password-strength.good {
  color: #689447;
}
.woocommerce-password-strength.strong {
  color: #689447;
}

/* Woocommerce Account Orders Table */
.woocommerce-orders-table__cell-order-delivery-date, .woocommerce-orders-table__header-order-delivery-date {
  display: none !important;
}
@media only screen and (min-width: 960px) {
  .woocommerce-orders-table__header-order-number {
    width: 80px;
  }
  .woocommerce-orders-table__header-order-actions, .woocommerce-orders-table__header-order-status {
    width: 120px;
  }
}

.woocommerce-table--order-details td {
  padding: 15px 10px;
  line-height: 1.5;
}

/* Login
 ============================================= */
/* My account page
--------------------------------------------- */
#customer_login {
  display: flex;
  flex-flow: row wrap;
}
#customer_login > * {
  width: 100%;
  margin-bottom: 5vw;
}
@media only screen and (min-width: 670px) {
  #customer_login > * {
    width: calc((100% - (5vw * (2 - 1))) / 2);
    margin-right: 5vw;
  }
  #customer_login > *:nth-child(2n) {
    margin-right: 0;
  }
}
#customer_login .woocommerce-form-login {
  background-color: transparent;
  padding: 0;
}
#customer_login .col-1, #customer_login .checkout_coupon {
  border-bottom: 1px solid hsl(0deg, 0%, 85%);
  margin-bottom: 30px;
}
@media only screen and (min-width: 960px) {
  #customer_login .col-1, #customer_login .checkout_coupon {
    border-bottom: 0;
    margin-bottom: 0;
  }
}

.woocommerce-form-login {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  background-color: #fff;
  padding: 30px;
  width: 100%;
}
@media only screen and (min-width: 960px) {
  .woocommerce-form-login {
    max-width: 50vw;
    margin: 0 auto;
  }
}
.woocommerce-form-login label.woocommerce-form__label {
  float: right;
  font-size: 1.4rem;
}

.woocommerce-privacy-policy-text p {
  line-height: 1.5;
  color: hsl(0deg, 0%, 60%);
}

/* For lost password page */
.widget_layered_nav_filters ul {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none outside;
  zoom: 1;
}
.widget_layered_nav_filters ul li {
  float: left;
  padding: 0 1em 1px 1px;
  list-style: none;
}
.widget_layered_nav_filters ul li a {
  color: #888;
  font-size: 1.3rem;
  text-decoration: none;
}
.widget_layered_nav_filters ul li a::before {
  display: inline-block;
  font: normal normal normal 1em/1 "baseicon";
  speak: none;
  text-transform: none;
  /* Better Font Rendering */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\ea0a";
  font-weight: 700;
  margin-right: 8px;
  width: 15px;
  height: 15px;
  background-color: #9e1c25;
  border-radius: 50%;
  font-size: 1.4rem;
  color: #fff;
}
.widget_layered_nav_filters ul li a::before:hover,
.widget_layered_nav_filters ul li a::before a:hover {
  text-decoration: none;
}

/* Interactive Cart
 ============================================= */
/* Header buttons */
#cart-items {
  position: absolute;
  width: 20px;
  height: 20px;
  background-color: #CE0058;
  border-radius: 50%;
  font-size: 1.4rem;
  font-weight: 700;
  top: -5px;
  right: -3px;
  color: #fff;
}
#cart-items:hover,
#cart-items a:hover {
  text-decoration: none;
}

#interactive-cart-activate {
  position: relative;
}

.interactive-cart__bg {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: -1;
  background-color: rgba(0, 0, 20, 0.5);
}

.interactive-cart-wrapper {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 99999999;
  display: none;
}

.interactive-cart {
  position: relative;
  background-color: hsl(0deg, 0%, 95%);
  margin: 0 0 0 auto;
  height: 100%;
  display: flex;
  flex-flow: column nowrap;
  overflow: hidden;
}
@media only screen and (min-width: 960px) {
  .interactive-cart {
    width: 40vw;
  }
}

/* Cart Header */
.interactive-cart-header {
  position: relative;
  background-color: #fff;
  padding: 20px 12px;
  flex: 0 1 0;
}
@media only screen and (min-width: 960px) {
  .interactive-cart-header {
    padding: 12px;
  }
}
.interactive-cart-header > * {
  margin: 0;
  text-align: center;
  color: #888;
}
.interactive-cart-header a:hover {
  text-decoration: none;
}
.interactive-cart-header .interactive-cart-close {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  left: 0;
  top: 0;
  color: hsl(0deg, 0%, 50%);
  height: 100%;
  width: 50px;
  font-size: 25px;
}
.interactive-cart-header .interactive-cart-close:hover {
  left: -3px;
  color: #777;
}

/* Mini Cart Notice */
.interactive-cart__notice {
  padding: 10px 0;
}
.interactive-cart__notice > * {
  margin-bottom: 5px;
}
.interactive-cart__notice > *:last-child {
  margin-bottom: 0;
}
.interactive-cart__notice > * {
  margin-left: 15px;
  margin-right: 15px;
}
.interactive-cart__notice.cart-item-card {
  flex-flow: column nowrap;
}
.interactive-cart__notice p {
  font-size: 13px;
  line-height: 1.5;
  font-weight: 700;
}

.message--error {
  color: #9e1c25;
}

.message--success {
  color: #689447;
}

/* Cart Item List */
.interactive-cart-items {
  flex: 1 1 0;
  padding: 20px 0;
  overflow-y: scroll;
  width: 100%;
  height: 100%;
}
@media only screen and (min-width: 960px) {
  .interactive-cart-items {
    margin-right: -17px;
    padding-right: 17px;
    /* Increase/decrease this value for cross-browser compatibility */
    box-sizing: content-box;
    /* So the width will be 100% + 17px */
  }
}

/* Cart Item */
.cart-item-card {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  flex-wrap: nowrap;
  width: 94%;
  background-color: #fff;
  border-radius: 8px;
  margin-left: 3%;
  margin-right: 3%;
  margin-bottom: 10px;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);
  overflow: hidden;
}
.cart-item-card > figure {
  position: relative;
  width: 80px;
  padding-top: 80px;
}
.cart-item-card > figure > img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  object-fit: cover;
}
.cart-item-card .caption {
  flex: 1 1 0;
  position: relative;
  padding: 15px;
  background-color: #fff;
}
@media only screen and (min-width: 960px) {
  .cart-item-card {
    width: 93%;
    margin-left: 5%;
    margin-right: auto;
  }
}
.cart-item-card img {
  align-self: center;
  margin: 10px;
  display: block;
  width: 100px;
  height: 100px;
  object-fit: cover;
}
.cart-item-card .caption {
  flex: 1 1 auto;
}
.cart-item-card .caption > * {
  margin-bottom: 8px;
}
.cart-item-card .caption > *:last-child {
  margin-bottom: 0;
}
.cart-item-card .caption > * {
  font-size: 1.4rem;
}
.cart-item-card .product-title {
  font-size: 1.4rem;
  font-weight: 700;
  color: #4f0022;
}
.cart-item-card .remove_from_cart_button {
  flex: 0 0 auto;
  align-self: flex-start;
  width: 40px;
  height: 40px;
  font-size: 20px;
  text-align: center;
  line-height: 40px;
  text-decoration: none;
  font-weight: 700;
  color: #9e1c25;
}

.interactive-cart-summary {
  position: relative;
  background-color: #fff;
  flex: 0 1 0;
}
.interactive-cart-summary > div {
  border-bottom: 1px solid #e5e5e5;
  padding-bottom: 5px;
  margin-bottom: 5px;
  position: relative;
  justify-content: space-between;
  padding: 8px 5%;
}
.interactive-cart-summary > div > * {
  margin-bottom: 0;
}
.interactive-cart-summary > div:last-of-type {
  margin-bottom: 0;
  border-bottom: 0;
}

.interactive-cart-summary__buttons {
  display: flex;
  flex-flow: row wrap;
}
.interactive-cart-summary__buttons > * {
  width: calc((100% - (0px / 2 * (2 - 1))) / 2);
  margin-right: 0px;
}
@media only screen and (max-width: 670px) {
  .interactive-cart-summary__buttons > * {
    margin-bottom: 0px;
  }
}
@media only screen and (max-width: 670px) {
  .interactive-cart-summary__buttons > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media only screen and (min-width: 670px) {
  .interactive-cart-summary__buttons > * {
    width: calc((100% - (0px * (2 - 1))) / 2);
    margin-right: 0px;
  }
  .interactive-cart-summary__buttons > *:nth-child(2n) {
    margin-right: 0;
  }
}
.interactive-cart-summary__buttons a {
  border-radius: 0;
}
.interactive-cart-summary__buttons a:first-child {
  border-right: 1px solid #820037;
}

/* If there are no products */
.no-product-text {
  position: relative;
  display: block;
  text-align: center;
  padding: 0 5%;
}

/* Woocommerce address component
 =============================================
1. Order order-received
2. My Account edit address
*/
/* Address section */
header.woocommerce-Address-title {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
header.woocommerce-Address-title h2,
header.woocommerce-Address-title h3,
header.woocommerce-Address-title form.woocommerce-checkout .col-1 h4,
form.woocommerce-checkout .col-1 header.woocommerce-Address-title h4,
header.woocommerce-Address-title form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .checkout_coupon header.woocommerce-Address-title h4 {
  margin-bottom: 0;
}
/* Addresses */
.addresses h2,
.addresses h3,
.addresses form.woocommerce-checkout .col-1 h4,
form.woocommerce-checkout .col-1 .addresses h4,
.addresses form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .checkout_coupon .addresses h4,
.woocommerce-customer-details h2,
.woocommerce-customer-details h3,
.woocommerce-customer-details form.woocommerce-checkout .col-1 h4,
form.woocommerce-checkout .col-1 .woocommerce-customer-details h4,
.woocommerce-customer-details form.woocommerce-checkout .checkout_coupon h4,
form.woocommerce-checkout .checkout_coupon .woocommerce-customer-details h4 {
  font-size: 1.8rem;
}
.addresses address,
.woocommerce-customer-details address {
  padding: 15px 7.5px;
  background-color: hsl(0deg, 0%, 100%);
  border-radius: 5px;
  border: 1px solid hsl(0deg, 0%, 90%);
  font-size: 1.4rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.5;
}
@media only screen and (min-width: 670px) {
  .addresses address,
.woocommerce-customer-details address {
    padding: 15px;
  }
}
.addresses address:before,
.woocommerce-customer-details address:before {
  content: "Address: ";
}
.addresses address p,
.woocommerce-customer-details address p {
  margin-top: 15px;
  margin-bottom: 0;
  line-height: 1.5;
  font-size: 1.4rem;
}
.addresses address p.woocommerce-customer-details--phone:before,
.woocommerce-customer-details address p.woocommerce-customer-details--phone:before {
  content: "Phone: ";
}
.addresses address p.woocommerce-customer-details--email:before,
.woocommerce-customer-details address p.woocommerce-customer-details--email:before {
  content: "Email address: ";
}

/**
 * woocommerce-smallscreen.scss
 * Optimises the default WooCommerce frontend layout when viewed on smaller screens.
 */
/**
 * Style begins
 */
@media only screen and (max-width: 670px) {
  .woocommerce,
.woocommerce-page {
    /**
    * General layout
    */
    /**
    * Products
    */
    /**
    * Product Details
    */
    /**
    * Cart
    */
    /**
    * Checkout
    */
    /**
    * Account
    */
  }
  .woocommerce table.shop_table_responsive thead,
.woocommerce-page table.shop_table_responsive thead {
    display: none;
  }
  .woocommerce table.shop_table_responsive tbody tr:first-child td:first-child,
.woocommerce-page table.shop_table_responsive tbody tr:first-child td:first-child {
    border-top: 0;
  }
  .woocommerce table.shop_table_responsive tbody th,
.woocommerce-page table.shop_table_responsive tbody th {
    display: none;
  }
  .woocommerce table.shop_table_responsive tr,
.woocommerce-page table.shop_table_responsive tr {
    display: block;
  }
  .woocommerce table.shop_table_responsive tr td,
.woocommerce-page table.shop_table_responsive tr td {
    display: block;
    text-align: right !important;
  }
  .woocommerce table.shop_table_responsive tr td.order-actions,
.woocommerce-page table.shop_table_responsive tr td.order-actions {
    text-align: left !important;
  }
  .woocommerce table.shop_table_responsive tr td::before,
.woocommerce-page table.shop_table_responsive tr td::before {
    content: attr(data-title) ": ";
    font-weight: 700;
    float: left;
  }
  .woocommerce table.shop_table_responsive tr td.actions::before, .woocommerce table.shop_table_responsive tr td.product-remove::before,
.woocommerce-page table.shop_table_responsive tr td.actions::before,
.woocommerce-page table.shop_table_responsive tr td.product-remove::before {
    display: none;
  }
  .woocommerce table.shop_table_responsive tr:nth-child(2n) td,
.woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
    background-color: rgba(0, 0, 0, 0.025);
  }
  .woocommerce table.my_account_orders tr td.order-actions,
.woocommerce-page table.my_account_orders tr td.order-actions {
    text-align: left;
  }
  .woocommerce table.my_account_orders tr td.order-actions::before,
.woocommerce-page table.my_account_orders tr td.order-actions::before {
    display: none;
  }
  .woocommerce table.my_account_orders tr td.order-actions .button,
.woocommerce-page table.my_account_orders tr td.order-actions .button {
    float: none;
    margin: 0.125em 0.25em 0.125em 0;
  }
  .woocommerce .col2-set .col-1, .woocommerce .col2-set .checkout_coupon,
.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-1,
.woocommerce-page .col2-set .checkout_coupon,
.woocommerce-page .col2-set .col-2 {
    float: none;
    width: 100%;
  }
  .woocommerce #content div.product div.images,
.woocommerce #content div.product div.summary,
.woocommerce div.product div.images,
.woocommerce div.product div.summary,
.woocommerce-page #content div.product div.images,
.woocommerce-page #content div.product div.summary,
.woocommerce-page div.product div.images,
.woocommerce-page div.product div.summary {
    float: none;
    width: 100%;
  }
  .woocommerce #content table.cart .product-thumbnail,
.woocommerce table.cart .product-thumbnail,
.woocommerce-page #content table.cart .product-thumbnail,
.woocommerce-page table.cart .product-thumbnail {
    display: none;
  }
  .woocommerce #content table.cart td.actions,
.woocommerce table.cart td.actions,
.woocommerce-page #content table.cart td.actions,
.woocommerce-page table.cart td.actions {
    text-align: left;
  }
  .woocommerce #content table.cart td.actions .coupon,
.woocommerce table.cart td.actions .coupon,
.woocommerce-page #content table.cart td.actions .coupon,
.woocommerce-page table.cart td.actions .coupon {
    float: none;
    *zoom: 1;
    padding-bottom: 0.5em;
  }
  .woocommerce #content table.cart td.actions .coupon::after, .woocommerce #content table.cart td.actions .coupon::before,
.woocommerce table.cart td.actions .coupon::after,
.woocommerce table.cart td.actions .coupon::before,
.woocommerce-page #content table.cart td.actions .coupon::after,
.woocommerce-page #content table.cart td.actions .coupon::before,
.woocommerce-page table.cart td.actions .coupon::after,
.woocommerce-page table.cart td.actions .coupon::before {
    content: " ";
    display: table;
  }
  .woocommerce #content table.cart td.actions .coupon::after,
.woocommerce table.cart td.actions .coupon::after,
.woocommerce-page #content table.cart td.actions .coupon::after,
.woocommerce-page table.cart td.actions .coupon::after {
    clear: both;
  }
  .woocommerce #content table.cart td.actions .coupon .button,
.woocommerce #content table.cart td.actions .coupon .input-text,
.woocommerce #content table.cart td.actions .coupon input,
.woocommerce table.cart td.actions .coupon .button,
.woocommerce table.cart td.actions .coupon .input-text,
.woocommerce table.cart td.actions .coupon input,
.woocommerce-page #content table.cart td.actions .coupon .button,
.woocommerce-page #content table.cart td.actions .coupon .input-text,
.woocommerce-page #content table.cart td.actions .coupon input,
.woocommerce-page table.cart td.actions .coupon .button,
.woocommerce-page table.cart td.actions .coupon .input-text,
.woocommerce-page table.cart td.actions .coupon input {
    width: 48%;
    box-sizing: border-box;
  }
  .woocommerce #content table.cart td.actions .coupon .button.alt,
.woocommerce #content table.cart td.actions .coupon .input-text + .button,
.woocommerce table.cart td.actions .coupon .button.alt,
.woocommerce table.cart td.actions .coupon .input-text + .button,
.woocommerce-page #content table.cart td.actions .coupon .button.alt,
.woocommerce-page #content table.cart td.actions .coupon .input-text + .button,
.woocommerce-page table.cart td.actions .coupon .button.alt,
.woocommerce-page table.cart td.actions .coupon .input-text + .button {
    float: right;
  }
  .woocommerce #content table.cart td.actions .button,
.woocommerce table.cart td.actions .button,
.woocommerce-page #content table.cart td.actions .button,
.woocommerce-page table.cart td.actions .button {
    display: block;
    width: 100%;
  }
  .woocommerce .cart-collaterals .cart_totals,
.woocommerce .cart-collaterals .cross-sells,
.woocommerce .cart-collaterals .shipping_calculator,
.woocommerce-page .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cross-sells,
.woocommerce-page .cart-collaterals .shipping_calculator {
    width: 100%;
    float: none;
    text-align: left;
  }
  .woocommerce.woocommerce-checkout form.login .form-row,
.woocommerce-page.woocommerce-checkout form.login .form-row {
    width: 100%;
    float: none;
  }
  .woocommerce #payment .terms,
.woocommerce-page #payment .terms {
    text-align: left;
    padding: 0;
  }
  .woocommerce #payment #place_order,
.woocommerce-page #payment #place_order {
    float: none;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 1em;
  }
  .woocommerce .lost_reset_password .form-row-first,
.woocommerce .lost_reset_password .form-row-last,
.woocommerce-page .lost_reset_password .form-row-first,
.woocommerce-page .lost_reset_password .form-row-last {
    width: 100%;
    float: none;
    margin-right: 0;
  }
  .woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation {
    float: none;
    width: 100%;
  }
  /**
  * Twenty Thirteen specific styles
  */
  .single-product .twentythirteen .panel {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
#woocommerce-product-search-field {
  position: fixed;
  width: 100%;
  height: 70px;
  border: 0;
  border-radius: 0;
  background-color: hsl(0deg, 0%, 95%);
  text-align: center;
  font-size: 2.4rem;
  max-width: 0;
  left: 50%;
  right: 50%;
  padding: 0;
}
#woocommerce-product-search-field:focus, #woocommerce-product-search-field:hover {
  background-color: #CE0058;
  color: #fff;
  box-shadow: none;
}
#woocommerce-product-search-field:focus::placeholder, #woocommerce-product-search-field:hover::placeholder {
  color: #fff;
}
.woocommerce-product-search--active #woocommerce-product-search-field {
  max-width: 100%;
  left: 0;
  right: 0;
  padding: 0 5%;
}

#woocommerce-product-search-button {
  -webkit-appearance: none;
  background: transparent;
  padding: 0;
}
#woocommerce-product-search-button:hover {
  background: transparent;
}
#woocommerce-product-search-button i {
  font-weight: 700;
  width: 40px;
  height: 40px;
  line-height: 40px;
}

/* Make woocommerce variations table full width*/
table.variations tr {
  display: flex;
  flex-flow: column nowrap;
}
table.variations tr td {
  padding: 0;
}

/* wapf checkbox prices */
.wapf-pricing-hint {
  float: right !important;
}

.wapf-input[type=checkbox] + .wapf-label-text {
  padding-left: 0;
}

/* WAPF Radio Buttons */
.wapf-radios {
  display: flex;
  flex-flow: row wrap;
}
.wapf-radios > * {
  margin-right: 6px;
}
.wapf-radios > *:last-child {
  margin-right: 0;
}

.wapf-radios .wapf-input-label {
  height: 100%;
}
.wapf-radios .wapf-checkable {
  width: calc(50% - 6px);
  margin-bottom: 6px;
}
.wapf-radios .wapf-checkable.wapf-checked .wapf-label-text {
  border: 1px solid #68002c;
}
.wapf-radios .wapf-checkable input[type=radio] {
  display: none;
}
.wapf-radios .wapf-label-text {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border: 1px solid hsl(0deg, 0%, 80%);
}
@media only screen and (max-width: 670px) {
  .wapf-radios .wapf-label-text {
    flex-direction: column;
  }
}

/* Woocommerce Global Styles */
.woocommerce {
  *zoom: 1;
}
.woocommerce::after, .woocommerce::before {
  content: " ";
  display: table;
}
.woocommerce::after {
  clear: both;
}

/* Newly discovered global styles */
.woocommerce-column__title {
  margin-bottom: 10px;
}

/* Global forms */
/* Button styles for woocommerce */
/* Add to Cart Button AKA Main button */
.checkout-button,
a.add_to_cart_button,
button.add_to_cart_button,
button[type=submit] {
  margin-bottom: 0;
  display: block;
}

@media only screen and (max-width: 670px) {
  .wc-backward {
    display: block;
  }
}

/* BREADCRUMB */
.woocommerce-breadcrumb {
  font-size: 1.3rem;
  text-transform: uppercase;
  /* Archive Page */
  /* Single Product Breadcrumbs */
}
.woocommerce.archive .woocommerce-breadcrumb {
  letter-spacing: 1px;
}
.single-product .woocommerce-breadcrumb {
  border-bottom: 2px solid #f1f1f1;
  padding-bottom: 20px;
  margin-bottom: 20px;
  width: 100%;
  color: #888;
  font-size: 1.4rem;
  padding: 20px 0;
}
@media only screen and (min-width: 670px) {
  .single-product .woocommerce-breadcrumb {
    padding: 30px 0;
  }
}
.single-product .woocommerce-breadcrumb a {
  margin: 0;
  font-weight: 700;
}

/* SALE LABEL */
.onsale {
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #fff;
}
li.product .onsale {
  display: table;
  margin: -26px auto 5px;
  font-size: 12px;
  padding: 0.05rem 0.6rem;
  border-radius: 3px;
  background-color: #689447;
}
.summary .onsale {
  position: relative;
  display: inline-block;
  border-radius: 5px;
  margin-bottom: 5px;
  background-color: #689447;
  font-weight: 700;
  font-size: 12px;
  padding: 3px 8px;
}
.summary .onsale:hover {
  background-color: #507236;
}

/* Message box */
.woocommerce-notices-wrapper {
  margin: 30px auto 0;
  flex: 1 1 100%;
}
.woocommerce-account.logged-in .woocommerce-notices-wrapper {
  margin-top: 0;
}
.woocommerce-cart .woocommerce-notices-wrapper {
  margin-top: 0;
}

.woocommerce-NoticeGroup {
  margin: 30px auto 0;
  flex: 1 1 100%;
}

/* All information and messages */
.woocommerce-info,
.woocommerce-message {
  position: relative;
  border-radius: 3px;
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 400;
  background-color: #f2f2f2;
  color: #555;
  list-style: none outside;
  width: 100%;
  margin: 0 auto 2em;
  word-wrap: break-word;
  text-align: center;
  padding: 12px;
}
@media only screen and (min-width: 960px) {
  .woocommerce-info,
.woocommerce-message {
    margin-bottom: 30px;
    padding: 12px 24px 12px 12px;
  }
}
.woocommerce-info a,
.woocommerce-message a {
  width: 100%;
  height: auto;
  white-space: nowrap;
  border-radius: 3px;
  margin: 0 0 10px;
}
@media only screen and (min-width: 960px) {
  .woocommerce-info a,
.woocommerce-message a {
    width: auto;
    margin: 0 10px;
  }
}
.woocommerce-info .restore-item,
.woocommerce-message .restore-item {
  display: none;
}

/* All errors */
.woocommerce-error {
  position: relative;
  border-radius: 3px;
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 400;
  list-style: none outside;
  width: 100%;
  word-wrap: break-word;
  display: flex;
  flex-flow: column nowrap;
  padding: 12px;
  margin-bottom: 30px;
}
.woocommerce-error li {
  list-style: none outside !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
  width: 100%;
  margin-bottom: 0 !important;
}
.woocommerce-NoticeGroup-checkout .woocommerce-error li {
  margin-bottom: 10px !important;
}
.woocommerce-NoticeGroup-checkout .woocommerce-error li:last-child {
  margin-bottom: 0 !important;
}

.woocommerce-message {
  color: #fff;
  background-color: #689447;
}
.woocommerce-message a {
  background: #5c833f;
}
.woocommerce-message a:hover {
  background-color: #507236;
}

.woocommerce-info {
  color: #fff;
  background-color: #ccc;
}
.woocommerce-info a {
  background: #bfbfbf;
}
.woocommerce-info a:hover {
  background-color: #b3b3b3;
}

.woocommerce-error {
  color: #fff;
  background-color: #9e1c25;
}
.woocommerce-error a {
  background: #881820;
}
.woocommerce-error a:hover {
  background-color: #73141b;
}

/* PAGINATION */
.woocommerce-pagination {
  position: relative;
  text-align: center;
  margin: 10px 0;
  flex: 1 1 100%;
}
.woocommerce-pagination .page-numbers > * {
  margin-right: 5px;
}
.woocommerce-pagination .page-numbers > *:last-child {
  margin-right: 0;
}
.woocommerce-pagination a,
.woocommerce-pagination span {
  font-size: 1.6rem;
}
.woocommerce-pagination span {
  cursor: unset;
}
/* Woocommerce Store Notice */
.woocommerce-store-notice {
  position: fixed;
  width: 100%;
  color: #fff;
  background-color: #CE0058;
  text-align: center;
  margin-bottom: 0;
  padding: 12px 5%;
  z-index: 88;
  bottom: 0;
}
@media only screen and (min-width: 960px) {
  .woocommerce-store-notice {
    position: relative;
    padding: 6px 5%;
  }
}

.woocommerce-store-notice__dismiss-link {
  position: absolute;
  right: 5%;
  color: #fff;
  font-size: 18px;
}

.woocommerce-page .site-container {
  background-color: #f3e7d7;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJhYnN0cmFjdHMvX3ZhcmlhYmxlcy5zY3NzIiwiYWJzdHJhY3RzL19taXhpbnMuc2NzcyIsImFic3RyYWN0cy9fZnVuY3Rpb25zLnNjc3MiLCJhYnN0cmFjdHMvX3BsYWNlaG9sZGVycy5zY3NzIiwidmVuZG9ycy9fc2xpY2suc2NzcyIsInZlbmRvcnMvX3NsaWNrLXRoZW1lLnNjc3MiLCJ2ZW5kb3JzL19mZWF0aGVybGlnaHQuc2NzcyIsImZvbnRzL251Y2xlby5zY3NzIiwiZm9udHMvX3ZhcmlhYmxlcy5zY3NzIiwiZm9udHMvX21peGlucy5zY3NzIiwiZm9udHMvaWNvbnMuc2NzcyIsImJhc2UvX3Jlc2V0LnNjc3MiLCJiYXNlL190eXBvZ3JhcGh5LnNjc3MiLCJiYXNlL19kZWZhdWx0cy5zY3NzIiwiYmFzZS9fYW5pbWF0aW9ucy5zY3NzIiwibGF5b3V0L19ncmlkLnNjc3MiLCJsYXlvdXQvX2dzLXN0cnVjdHVyZS1sYXlvdXQuc2NzcyIsImxheW91dC9faGVhZGVyLnNjc3MiLCJsYXlvdXQvX3NpZGViYXIuc2NzcyIsImxheW91dC9fZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19ncmFwaGljcy5zY3NzIiwiY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiY29tcG9uZW50cy9fd2lkZ2V0LnNjc3MiLCJjb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiY29tcG9uZW50cy9fbGlzdC1wYWdpbmF0aW9uLnNjc3MiLCJjb21wb25lbnRzL190aXRsZS1kaXZpZGVyLnNjc3MiLCJjb21wb25lbnRzL19vYmplY3RzLnNjc3MiLCJjb21wb25lbnRzL19iYW5uZXJzLnNjc3MiLCJjb21wb25lbnRzL19oZXJvLXNsaWRlci5zY3NzIiwiY29tcG9uZW50cy9fYmxvY2tzLnNjc3MiLCJwYWdlcy9fcG9zdC1hcmNoaXZlLnNjc3MiLCJwYWdlcy9fcG9zdC1zaW5nbGUuc2NzcyIsInBhZ2VzL180MDQtcGFnZS5zY3NzIiwidGhlbWVzL2tob296aC5zY3NzIiwidGhlbWVzL3dvb2NvbW1lcmNlLnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvYXJjaGl2ZS5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL3NpbmdsZS5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL2NhcnQuc2NzcyIsInRoZW1lcy9fd29vLXN0eWxlcy9jaGVja291dC5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL29yZGVyLXJlY2VpdmVkLnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvb3JkZXItcGF5LnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvYWNjb3VudC5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL2xvZ2luLnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvd2lkZ2V0cy5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL2ludGVyYWN0aXZlLWNhcnQuc2NzcyIsInRoZW1lcy9fd29vLXN0eWxlcy9hZGRyZXNzLnNjc3MiLCJ0aGVtZXMvX3dvby1zdHlsZXMvc21hbGxzY3JlZW4uc2NzcyIsInRoZW1lcy9fd29vLXN0eWxlcy93b29jb21tZXJjZS1wcm9kdWN0LXNlYXJjaC5zY3NzIiwidGhlbWVzL193b28tc3R5bGVzL2FkdmFuY2VkLXByb2R1Y3QtZmllbGRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFnQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtB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QTtFQUNBO0FBRUE7RUFDQTtBQUVBO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7OztBQUdEO0FBQ0E7RUFDQzs7O0FBR0Q7QUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtBQUNDO0VBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7QUFFQTtFQUVBO0FBRUE7RUFDQTs7O0FBR0Q7QUFDQTtBQUNDO0VBQ0E7OztBQUdEO0FBQ0E7QUFBQTtBQUFBO0VBR0M7OztBQUdEO0FBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0FBQ0E7RUFDQztFQUNBOzs7QUFHRDtBQUNDO0VBQ0E7OztBQUlEO0FBQ0M7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0FBQ0M7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7OztBQUdEO0FBQ0E7RUFDQztBQUNDO0lBQ0E7SUFDQTtJQUNBO0lBRUE7SUFDQTs7O0FBSUY7QUFDQTtFQUNDO0lBQ0M7OztBQzdKRjs7QUFBQTtBQUFBOztBQUFBO0FBU0E7RUFDRTtFQUNBO0VBQ0E7RUFLQTtFQUNBOztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQ0E7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFDQTtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7RUFDQSxrQkM1RHNCOzs7QUQrRHhCO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFLGNDakZvQjtFRGtGcEI7OztBQUlKO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7O0FBR0o7RUFDRTtJQUNFOztFQUVGO0lBQ0U7OztBQUdKO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUVGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FBSUo7QUFBQTtBQUFBO0FBSUE7RUV0SUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUZxSUY7RUUxSUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUZ5SUY7RUU5SUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUY2SUY7RUV6SUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUZ1SUY7RUU1SUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNmRjtBQUFBO0FBQUE7QUFnQ0E7RUFDRSxTQTFCYTs7O0FBNkJmO0VBQ0UsU0E3Qlk7OztBQWdDZDtFQUNFLFNBaENvQjs7O0FBbUN0QjtFQUNFLFNBbkNnQjs7O0FBc0NsQjtFQUNFLFNBdENxQjs7O0FBeUN2QjtFQUNFLFNBekNjOzs7QUE0Q2hCO0VBQ0UsU0E1Q1M7OztBQStDWDtFQUNFLFNBL0N5Qjs7O0FBa0QzQjtFQUNFLFNBbER3Qjs7O0FBcUQxQjtFQUNFLFNBckRtQjs7O0FBd0RyQjtFQUNFLFNBeEQwQjs7O0FBMkQ1QjtFQUNFLFNBM0RlOzs7QUE4RGpCO0VBQ0UsU0E5RFU7OztBQWlFWjtFQUNFLFNBakVlOzs7QUFvRWpCO0VBQ0UsU0FwRWE7OztBQXVFZjtFQUNFLFNBdkVTOzs7QUEwRVg7RUFDRSxTQTFFaUI7OztBQTZFbkI7RUFDRSxTQTdFVTs7O0FBZ0ZaO0VBQ0UsU0FoRm1COzs7QUFtRnJCO0VBQ0UsU0FuRmU7OztBQXNGakI7RUFDRSxTQXRGVTs7O0FBeUZaO0VBQ0UsU0F6Rm1COzs7QUE0RnJCO0VBQ0UsU0E1RmE7OztBQStGZjtFQUNFLFNBL0ZZOzs7QUM5QmQ7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBOzs7QUFFRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBOzs7QUFFRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7QUFBQTtFQUVFLGFYdEVVOzs7QVd3RVo7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7RUFHRTtBQUNBO0VBQ0E7QUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFFRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtFO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUVFO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUVFO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7QUFDQTtFQUNBO0FBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFO0FBQ0E7RUFDQTtBQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFHQTtBQUFBO0VBRUU7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTtBQUNBO0VBQ0E7QUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0FBQ0E7RUFDQTtBQUNBOzs7QUFFRjtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBRUY7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUVGO0FBQUE7QUFFQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7RUFHRTs7O0FDN1RGO0FBQUE7QUFFQTtFQUNFO0FBQ0E7RUFDQTtFQUNBOztBWFlBO0VXaEJGO0lBUUk7Ozs7QUFJSjtBQUNBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0EsYVpqQlU7RVlrQlY7RUFDQTtFQUNBLGFaakJVO0VZa0JWO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQVFFOzs7QUFHRjtBQUFBO0VBRUU7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUUsYVpyRFU7OztBWXdEWjtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FB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Qkk7O0FrQ3dCSjtFQUNFOztBQUVBO0VBQ0U7OztBQWdPTjtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FqQ3ZGRTtFQUNFLGNpQzBGNkI7O0FqQ3hGN0I7RUFDRTs7QWlDMEZOO0FBQUE7RUFHRSxXbEN6UmE7O0FrQzRSZjtFQUVFOztBQVFKO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQSxrQmxDbFNXO0VrQ21TWDtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBakNqU0E7RWlDd1JGO0lBWUk7SUFDQTs7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0Usa0JsQ3RUVSIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcblx0VGhlbWUgTmFtZTogUmFzb3JuIFRoZW1lXG5cdFRoZW1lIFVSSTpcblx0RGVzY3JpcHRpb246IFRoaXMgaXMgdGhlIHRoZW1lIGNyZWF0ZWQgZm9yIFJhc29yblxuXHRBdXRob3I6IEtob296aFxuXHRBdXRob3IgVVJJOlxuXG5cdFZlcnNpb246IDEuMC4wXG5cblx0VGFnczogb25lLWNvbHVtbiwgdHdvLWNvbHVtbnMsIGxlZnQtc2lkZWJhciwgcmlnaHQtc2lkZWJhciwgYWNjZXNzaWJpbGl0eS1yZWFkeSwgY3VzdG9tLWNvbG9ycywgY3VzdG9tLWxvZ28sIGN1c3RvbS1tZW51LCBmZWF0dXJlZC1pbWFnZXMsIGZvb3Rlci13aWRnZXRzLCBmdWxsLXdpZHRoLXRlbXBsYXRlLCBydGwtbGFuZ3VhZ2Utc3VwcG9ydCwgc3RpY2t5LXBvc3QsIHRoZW1lLW9wdGlvbnMsIHRocmVhZGVkLWNvbW1lbnRzLCB0cmFuc2xhdGlvbi1yZWFkeVxuXG5cdFRlbXBsYXRlOiBnZW5lc2lzXG5cblx0TGljZW5zZTogR1BMLTIuMCtcblx0TGljZW5zZSBVUkk6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMi4wLmh0bWxcbiovXG4vKiBUYWJsZSBvZiBDb250ZW50c1xuc2Fzcy9cbnxcbnwtIGFic3RyYWN0cy9cbnwgICB8LSBfdmFyaWFibGVzLnNjc3MgICAgIyBTYXNzIFZhcmlhYmxlc1xufCAgIHwtIF9mdW5jdGlvbnMuc2NzcyAgICAjIFNhc3MgRnVuY3Rpb25zXG58ICAgfC0gX21peGlucy5zY3NzICAgICAgICMgU2FzcyBNaXhpbnNcbnwgICB8LSBfcGxhY2Vob2xkZXJzLnNjc3MgIyBTYXNzIFBsYWNlaG9sZGVyc1xufFxufC0gZm9udHMvXG58ICAgfC0gX251Y2xlby5zY3NzICAgICAgICMgSWNvbiBQYWNrXG58XG584oCTIGJhc2UvXG58ICAgfC0gX3Jlc2V0LnNjc3MgICAgICAgICMgUmVzZXQvbm9ybWFsaXplXG58ICAgfC0gX3R5cG9ncmFwaHkuc2NzcyAgICMgVHlwb2dyYXBoeSBydWxlc1xufCAgIHwtIF9kZWZhdWx0cy5zY3NzICAgICAjIEdlbmVzaXMgRGVmYXVsdHNcbnwgICB8LSBfYW5pbWF0aW9ucy5zY3NzICAgIyBBbmltYXRpb25zXG58XG584oCTIGNvbXBvbmVudHMvXG58ICAgfC0gX2dyYXBoaWNzLnNjc3MgICAgICAgICAgICAjIEdyYXBoaWNzXG58ICAgfC0gX2J1dHRvbnMuc2NzcyAgICAgICAgICAgICAjIEJ1dHRvbnNcbnwgICB8LSBfd2lkZ2V0LnNjc3MgICAgICAgICAgICAgICMgR2VuZXNpcyBEZWZhdWx0IFdpZGdldCBhbmQgUGx1Z2luc1xufCAgIHwtIF9mb3Jtcy5zY3NzICAgICAgICAgICAgICAgIyBGb3Jtc1xufCAgIHwtIF9saXN0LXBhZ2luYXRpb24uc2NzcyAgICAgIyBMaXN0IGFuZCBwYWdpbmF0aW9uXG58ICAgfC0gLXRpdGxlLWRpdmlkZXIuc2NzcyAgICAgICAjIFRpdGxlIGFuZCBkaXZpZGVyc1xufCAgIHwtIF9vYmplY3RzLnNjc3MgICAgICAgICAgICAgIyBDdXN0b21pc2VkIG9iamVjdHNcbnwgICB8LSBfYmFubmVycy5zY3NzICAgICAgICAgICAgICMgQmFubmVyc1xufCAgIHwtIF9oZXJvLXNsaWRlci5zY3NzICAgICAgICAgIyBIZXJvIFNsaWRlclxufCAgIHwtIF9ibG9ja3Muc2NzcyAgICAgICAgICAgICAgIyBCbG9ja3NcbnxcbnzigJMgbGF5b3V0L1xufCAgIHwtIF9ncmlkLnNjc3MgICAgICAgICAjIEdyaWRcbnwgICB8LSBfZ3Mtc3RydWN0dXJlLWxheW91dC5zY3NzICMgR2VuZXNpcyBkZWZhdWx0IHN0cnVjdHVyZSBhbmQgbGF5b3V0XG58ICAgfC0gX2hlYWRlci5zY3NzICAgICAgICMgSGVhZGVyXG58ICAgfC0gX3NpZGViYXIuc2NzcyAgICAgICMgU2lkZWJhclxufCAgIHwtIF9mb290ZXIuc2NzcyAgICAgICAjIEZvb3RlclxufFxufOKAkyBwYWdlcy9cbnwgICB8LSBfcG9zdC1hcmNoaXZlLnNjc3MgICAgICAgICMgUG9zdCBhcmNoaXZlIHN0eWxlc1xufCAgIHwtIF9wb3N0LXNpbmdsZS5zY3NzICAgICAgICAgIyBTaW5nbGUgUG9zdCBTdHlsZXNcbnwgICB8LSBfNDA0LXBhZ2Uuc2NzcyAgICAgXHRcdCAjIDQwNCBQYWdlXG58XG584oCTIHRoZW1lcy9cbnwgICB8LSBfa2hvb3poLnNjc3MgICAgICAgIyBEZWZhdWx0IHRoZW1lXG58ICAgfC0gX3dvb2NvbW1lcmNlLnNjc3MgICMgV29vY29tbWVyY2UgU3R5bGVzXG58XG584oCTIHZlbmRvcnMvXG58ICAgfC0gX3NsaWNrLnNjc3MgICAgICAgICMgU2xpY2sgU2xpZGVyXG58ICAgfC0gX3NsaWNrLXRoZW1lLnNjc3MgICMgU2xpY2sgU2xpZGVyIFRoZW1lXG58ICAgfC0gX2ZlYXRoZXJsaWdodC5zY3NzICMgRmVhdGhlcmxpZ2h0IEdhbGxlcnlcbnxcbnwtIG1haW4uc2NzcyAgICAgICAgICAgICAgIyBNYWluIFNhc3MgZmlsZVxuKi9cblxuQGltcG9ydCAnYWJzdHJhY3RzL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdhYnN0cmFjdHMvbWl4aW5zJztcbkBpbXBvcnQgJ2Fic3RyYWN0cy9mdW5jdGlvbnMnO1xuQGltcG9ydCAnYWJzdHJhY3RzL3BsYWNlaG9sZGVycyc7XG5cbkBpbXBvcnQgJ3ZlbmRvcnMvc2xpY2snO1xuQGltcG9ydCAndmVuZG9ycy9zbGljay10aGVtZSc7XG5AaW1wb3J0ICd2ZW5kb3JzL2ZlYXRoZXJsaWdodCc7XG5cbkBpbXBvcnQgJ2ZvbnRzL251Y2xlbyc7XG5cbkBpbXBvcnQgJ2Jhc2UvcmVzZXQnO1xuQGltcG9ydCAnYmFzZS90eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ2Jhc2UvZGVmYXVsdHMnO1xuQGltcG9ydCAnYmFzZS9hbmltYXRpb25zJztcblxuQGltcG9ydCAnbGF5b3V0L2dyaWQnO1xuQGltcG9ydCAnbGF5b3V0L2dzLXN0cnVjdHVyZS1sYXlvdXQnO1xuQGltcG9ydCAnbGF5b3V0L2hlYWRlcic7XG5AaW1wb3J0ICdsYXlvdXQvc2lkZWJhcic7XG5AaW1wb3J0ICdsYXlvdXQvZm9vdGVyJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9ncmFwaGljcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy93aWRnZXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9mb3Jtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xpc3QtcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWRpdmlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9vYmplY3RzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFubmVycyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2hlcm8tc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvY2tzJztcblxuQGltcG9ydCAncGFnZXMvcG9zdC1hcmNoaXZlJztcbkBpbXBvcnQgJ3BhZ2VzL3Bvc3Qtc2luZ2xlJztcbkBpbXBvcnQgJ3BhZ2VzLzQwNC1wYWdlJztcbi8vIEBpbXBvcnQgJ3BhZ2VzL2NvbnRhY3QnO1xuXG5AaW1wb3J0ICd0aGVtZXMva2hvb3poJztcbkBpbXBvcnQgJ3RoZW1lcy93b29jb21tZXJjZSc7XG4iLCIvKiBWYXJpYWJsZXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIEJvZHkgVGV4dCBTdHlsZXMgKi9cbiRiYXNlLWZvbnQtc2l6ZTogMS42cmVtO1xuJHN1YnRpdGxlLWZvbnQ6ICdHaWxsIFNhbnMnLCBzYW5zLXNlcmlmO1xuJHRpdGxlLWZvbnQ6ICdCdWJibGVHdW0nLCBzYW5zLXNlcmlmO1xuJG1haW4tZm9udDogJ0dpbGwgU2FucycsIHNhbnMtc2VyaWY7XG4vKiBGb250IFdlaWdodCAqL1xuJGZvbnQtbGlnaHQ6IDIwMDtcbiRmb250LW5vcm06IDQwMDtcbiRmb250LWJvbGQ6IDcwMDtcbi8qIENvbG9ycyAqL1xuJG1haW4tY29sb3I6ICNDRTAwNTg7XG4kZGFyay1jb2xvcjogaHNsKDUwLCAyNSUsIDI1JSk7XG4kb2ZmLXdoaXRlOiAjZjNlN2Q3O1xuJHBpbms6ICNDRTAwNTg7XG4kcHVycGxlOiAjOWIyNmI2O1xuJHJlZDogIzllMWMyNTtcbiRvcmFuZ2U6ICNmZjViMzY7XG4kZ3JlZW46ICM2ODk0NDc7XG4kZGFyay1ibHVlOiAjMWUyMmFhO1xuJGJsdWU6ICMwMGI1ZTI7XG4keWVsbG93OiAjZmZiODFjO1xuJGdyZXk6IGhzbCgwLCAwJSwgNTAlKTsgLy9pbnB1dHMgdGhhdCBhcmUgbm90IHN1Ym1pdCBhbmQgYnV0dG9uXG4vKiBFdGMuICovXG4kaW5wdXQtZmllbGRzOiAnaW5wdXQ6bm90KFt0eXBlPVwic3VibWl0XCJdKTpub3QoW3R5cGU9XCJmaWxlXCJdKSc7XG4vKiBCYWNrZ3JvdW5kIHBhdHRlcm4gaW1hZ2UgbGluayovXG4kcGF0dGVybi0xLWxpbms6IHVybChcIi4uLy4uLy4uL3N0YXRpYy9iYWNrZ3JvdW5kLXBhdHRlcm4uanBnXCIpO1xuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ0J1YmJsZUd1bSc7XG4gICAgc3JjOiBsb2NhbCgnQnViYmxlR3VtJyksXG4gICAgICAgIHVybCgnLi4vLi4vLi4vZm9udHMvQnViYmxlR3VtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJy4uLy4uLy4uL2ZvbnRzL0J1YmJsZUd1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ0dpbGwgU2Fucyc7XG4gICAgc3JjOiBsb2NhbCgnR2lsbCBTYW5zJyksIGxvY2FsKCdHaWxsU2FucycpLFxuICAgICAgICB1cmwoJy4uLy4uLy4uL2ZvbnRzL0dpbGxTYW5zLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJy4uLy4uLy4uL2ZvbnRzL0dpbGxTYW5zLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnR2lsbCBTYW5zJztcbiAgICBzcmM6IGxvY2FsKCdHaWxsIFNhbnMgU2VtaUJvbGQnKSwgbG9jYWwoJ0dpbGxTYW5zLVNlbWlCb2xkJyksXG4gICAgICAgIHVybCgnLi4vLi4vLi4vZm9udHMvR2lsbFNhbnMtU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgIHVybCgnLi4vLi4vLi4vZm9udHMvR2lsbFNhbnMtU2VtaUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdHaWxsIFNhbnMnO1xuICAgIHNyYzogbG9jYWwoJ0dpbGwgU2FucyBCb2xkJyksIGxvY2FsKCdHaWxsU2Fucy1Cb2xkJyksXG4gICAgICAgIHVybCgnLi4vLi4vLi4vZm9udHMvR2lsbFNhbnMtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgdXJsKCcuLi8uLi8uLi9mb250cy9HaWxsU2Fucy1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xufSIsIi8qIE1peGluc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogTWVkaWEgUXVlcmllc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJHRhYmxldC13aWR0aDogNjcwcHg7XG4kZGVza3RvcC13aWR0aDogOTYwcHg7XG4kZGVza3RvcC14bC13aWR0aDogMTQwMHB4O1xuQG1peGluIG1vYmlsZSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skdGFibGV0LXdpZHRofSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5AbWl4aW4gdGFibGV0IHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyR0YWJsZXQtd2lkdGh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbkBtaXhpbiBkZXNrdG9wIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyRkZXNrdG9wLXdpZHRofSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5AbWl4aW4gZGVza3RvcC14bCB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skZGVza3RvcC14bC13aWR0aH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuLyogQ29udGFpbmVyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gY29udGFpbmVyKCRwYWRkaW5nLCAkYmcsICRib3JkZXItcmFkaXVzLCAkYm9yZGVyKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nIGNhbGMoJHBhZGRpbmcgLyAyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB9XG59XG4vKiBJbWFnZSBBc3BlY3QgUmF0aW9cbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiA8ZmlndXJlPiAvLyBBcHBseSBpbWFnZSByYXRpbyB0byBmaWd1cmVcbiAgIDxpbWcgc3JjPVwiXCIvPlxuIDwvZmlndXJlPlxuKi9cbkBtaXhpbiBpbWctcmF0aW8oJHdpZHRoLCAkcC10b3ApIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHdpZHRoO1xuICBwYWRkaW5nLXRvcDogJHAtdG9wO1xuXG4gID4gaW1nIHtcbiAgICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cbn1cbi8qIEFic29sdXRlXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbn1cbi8qIEdyYWRpZW50IEZhZGVcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBncmFkaWVudC1mYWRlKCRoLCRzLCRsLCRkaXJlY3Rpb24pIHtcbiAgQGlmICRkaXJlY3Rpb24gPT0gYm90dG9tIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBoc2xhKCRoLCRzLCRsLDEpIDAlLGhzbGEoJGgsJHMsJGwsMCkgMTAwJSk7XG4gIH0gQGVsc2VcbiAgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgaHNsYSgkaCwkcywkbCwxKSAwJSxoc2xhKCRoLCRzLCRsLDApIDEwMCUpO1xuICB9IEBlbHNlXG4gIGlmICRkaXJlY3Rpb24gPT0gdG9wIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCBoc2xhKCRoLCRzLCRsLDEpIDAlLGhzbGEoJGgsJHMsJGwsMCkgMTAwJSk7XG4gIH0gQGVsc2VcbiAgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBoc2xhKCRoLCRzLCRsLDEpIDAlLGhzbGEoJGgsJHMsJGwsMCkgMTAwJSk7XG4gIH1cbn1cbi8qIEJhZGdlIC8gVGFnIGxhYmVsXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdGFnLWxhYmVsKCRiZywgJHNpemUpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBAaWYgJHNpemUgPT0gc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xuICB9XG4gIEBpZiAkc2l6ZSA9PSBtZWRpdW0ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgfVxuICBAaWYgJHNpemUgPT0gbGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJnLCAxMCUpO1xuICB9XG59XG4vKiBJY29uc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDFlbS8xICdiYXNlaWNvbic7XG4gIHNwZWFrOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuQG1peGluIGljb24oJHR5cGUpIHtcbiAgQGV4dGVuZCAlaWNvbjtcbiAgY29udGVudDogJHR5cGU7XG59XG4vKiBDaXJjbGUgT2JqZWN0XG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gY2lyY2xlLW9iamVjdCgkZGlhbWV0ZXIsICRiZy1jb2xvciwgJGZvbnQtc2l6ZSkge1xuICBAZXh0ZW5kICVmbGV4Ym94LWMtYztcbiAgd2lkdGg6ICRkaWFtZXRlcjtcbiAgaGVpZ2h0OiAkZGlhbWV0ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6ICRmb250LXNpemU7XG5cbiAgJjpob3ZlcixcbiAgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG4vKiBUaHVtYm5haWwgQ2FyZFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuPGFydGljbGUgY2xhc3M9XCJ0aHVtYm5haWwtY2FyZFwiPlxuICA8ZmlndXJlPlxuICAgIDxpbWcgc3JjPVwiXCI+XG4gIDwvZmlndXJlPlxuICA8ZGl2IGNsYXNzPVwiY2FwdGlvblwiPlxuICAgIDxoND48L2g0PlxuICAgIDxwPjwvcD5cbiAgICA8YSBocmVmPVwiI1wiPjwvYT5cbiAgPC9kaXY+XG48L2FydGljbGU+XG4gKi9cbkBtaXhpbiB0aHVtYm5haWwtY2FyZCgkdGh1bWJXLCAkdGh1bWJILCAkY2FwdGlvbi1wb3MsICRwYWRkaW5nKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgQGlmICRjYXB0aW9uLXBvcyA9PSBib3R0b20ge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcblxuICAgIC5jYXB0aW9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgfVxuXG4gID4gZmlndXJlIHtcbiAgICBAaW5jbHVkZSBpbWctcmF0aW8oJHRodW1iVywgJHRodW1iSCk7XG4gIH1cblxuICAuY2FwdGlvbiB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIH1cbn1cbi8qIExpbmUgQm9yZGVyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gbGluZS1ib3JkZXIoJHdpZHRoLCAkY29sb3IsICRkaXJlY3Rpb24sICRzcGFjZSkge1xuICBib3JkZXItI3skZGlyZWN0aW9ufTogJHdpZHRoIHNvbGlkICRjb2xvcjtcbiAgcGFkZGluZy0jeyRkaXJlY3Rpb259OiAkc3BhY2U7XG4gIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAkc3BhY2U7XG59XG4vKiBDaGlsZCBNYXJnaW5cbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBjaGlsZC1tYXJnaW4oJGRpcmVjdGlvbiwgJHNwYWNlLCAkc2VsZWN0b3I6IG51bGwpIHtcbiAgQGlmICRzZWxlY3RvciA9PSBudWxsIHtcbiAgICA+ICoge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06ICRzcGFjZTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICA+ICN7JHNlbGVjdG9yfSB7XG4gICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogJHNwYWNlO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qIENsZWFyIEZpeFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG4gICp6b29tOiAxO1xuXG4gICY6OmFmdGVyLFxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4lY2xlYXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xufVxuIiwiLyogRnVuY3Rpb25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4iLCIvKiBQbGFjZWhvbGRlcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFdoaXRlIEdyYWRpZW50XG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJXdoaXRlLWdyYWRpZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTUwcHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHotaW5kZXg6IDE7XG4gICAgQGluY2x1ZGUgZ3JhZGllbnQtZmFkZSgwLDAlLDEwMCUsdG9wKTtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgfVxuICB9XG59XG4vKiBUcmFuc2l0aW9uc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJXRyYW5zaXRpb24tZHVyYXRpb24ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbn1cbi8qIEZsZXhib3hcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVmbGV4Ym94LWMtYyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuIiwiLyogU2xpZGVyICovXG5cbi5zbGljay1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uc2xpY2stbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmRyYWdnaW5nIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjdXJzb3I6IGhhbmQ7XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnNsaWNrLXRyYWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAmLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi5kcmFnZ2luZyBpbWcge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAuc2xpY2staW5pdGlhbGl6ZWQgJiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7IC8vIERlZmF1bHQgVmFyaWFibGVzXG4vLyBTbGljayBpY29uIGVudGl0eSBjb2RlcyBvdXRwdXRzIHRoZSBmb2xsb3dpbmdcbi8vIFwiXFwyMTkwXCIgb3V0cHV0cyBhc2NpaSBjaGFyYWN0ZXIgXCLihpBcIlxuLy8gXCJcXDIxOTJcIiBvdXRwdXRzIGFzY2lpIGNoYXJhY3RlciBcIuKGklwiXG4vLyBcIlxcMjAyMlwiIG91dHB1dHMgYXNjaWkgY2hhcmFjdGVyIFwi4oCiXCJcbiRzbGljay1mb250LXBhdGg6IFwiLi9qcy9wbHVnaW5zL3NsaWNrL2ZvbnRzL1wiICFkZWZhdWx0O1xuJHNsaWNrLWZvbnQtZmFtaWx5OiBcInNsaWNrXCIgIWRlZmF1bHQ7XG4kc2xpY2stbG9hZGVyLXBhdGg6IFwiLi9qcy9wbHVnaW5zL3NsaWNrL1wiICFkZWZhdWx0O1xuJHNsaWNrLWFycm93LWNvbG9yOiAjZGRkICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNvbG9yLWFjdGl2ZTogJHNsaWNrLWRvdC1jb2xvciAhZGVmYXVsdDtcbiRzbGljay1wcmV2LWNoYXJhY3RlcjogXCJcXDIxOTBcIiAhZGVmYXVsdDtcbiRzbGljay1uZXh0LWNoYXJhY3RlcjogXCJcXDIxOTJcIiAhZGVmYXVsdDtcbiRzbGljay1kb3QtY2hhcmFjdGVyOiBcIlxcMjAyMlwiICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1zaXplOiAxMnB4ICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktZGVmYXVsdDogMC43NSAhZGVmYXVsdDtcbiRzbGljay1vcGFjaXR5LW9uLWhvdmVyOiAxICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTogMC4yNSAhZGVmYXVsdDtcbkBmdW5jdGlvbiBzbGljay1pbWFnZS11cmwoJHVybCkge1xuICBAaWYgZnVuY3Rpb24tZXhpc3RzKGltYWdlLXVybCkge1xuICAgIEByZXR1cm4gaW1hZ2UtdXJsKCR1cmwpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybCgkc2xpY2stbG9hZGVyLXBhdGggKyAkdXJsKTtcbiAgfVxufVxuQGZ1bmN0aW9uIHNsaWNrLWZvbnQtdXJsKCR1cmwpIHtcbiAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhmb250LXVybCkge1xuICAgIEByZXR1cm4gZm9udC11cmwoJHVybCk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsKCRzbGljay1mb250LXBhdGggKyAkdXJsKTtcbiAgfVxufVxuLyogU2xpZGVyICovXG4uc2xpY2stbGlzdCB7XG4gIC5zbGljay1sb2FkaW5nICYge1xuICAgIGJhY2tncm91bmQ6ICNmZmYgc2xpY2staW1hZ2UtdXJsKFwiYWpheC1sb2FkZXIuZ2lmXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuICB9XG59XG4vKiBJY29ucyAqL1xuQGlmICRzbGljay1mb250LWZhbWlseSA9PSBcInNsaWNrXCIge1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJzbGlja1wiO1xuICAgIHNyYzogc2xpY2stZm9udC11cmwoXCJzbGljay5lb3RcIik7XG4gICAgc3JjOiBzbGljay1mb250LXVybChcInNsaWNrLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay5zdmcjc2xpY2tcIikgZm9ybWF0KFwic3ZnXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG59XG4vKiBBcnJvd3MgKi9cbi5zbGljay1uZXh0LFxuLnNsaWNrLXByZXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICBsaW5lLWhlaWdodDogMDtcbiAgZm9udC1zaXplOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRvcDogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHotaW5kZXg6IDI7XG5cbiAgJjpmb2N1cyxcbiAgJjpob3ZlciB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1vbi1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAmLnNsaWNrLWRpc2FibGVkOmJlZm9yZSB7XG4gICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogJHNsaWNrLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJHNsaWNrLWFycm93LWNvbG9yO1xuICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgfVxufVxuXG4uc2xpY2stcHJldiB7XG4gIGxlZnQ6IDE1cHg7XG5cbiAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAtMzVweDtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkc2xpY2stcHJldi1jaGFyYWN0ZXI7XG5cbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgY29udGVudDogJHNsaWNrLW5leHQtY2hhcmFjdGVyO1xuICAgIH1cbiAgfVxufVxuXG4uc2xpY2stbmV4dCB7XG4gIHJpZ2h0OiAxNXB4O1xuXG4gIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgbGVmdDogLTI1cHg7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJHNsaWNrLW5leHQtY2hhcmFjdGVyO1xuXG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgIGNvbnRlbnQ6ICRzbGljay1wcmV2LWNoYXJhY3RlcjtcbiAgICB9XG4gIH1cbn1cbi8qIERvdHMgKi9cbi5zbGljay1kb3R0ZWQuc2xpY2stc2xpZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLnNsaWNrLWRvdHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTI1cHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIG1hcmdpbjogMCA1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBidXR0b24ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAmOmZvY3VzLFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LW9uLWhvdmVyO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBjb250ZW50OiAkc2xpY2stZG90LWNoYXJhY3RlcjtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRzbGljay1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAkc2xpY2stZG90LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yO1xuICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlO1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgQGV4dGVuZCAldHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgIGNvbG9yOiAkc2xpY2stZG90LWNvbG9yLWFjdGl2ZTtcbiAgICAgIG9wYWNpdHk6ICRzbGljay1vcGFjaXR5LWRlZmF1bHQ7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEZlYXRoZXJsaWdodCDigJMgdWx0cmEgc2xpbSBqUXVlcnkgbGlnaHRib3hcbiAqIFZlcnNpb24gMS43LjEzIC0gaHR0cDovL25vZWxib3NzLmdpdGh1Yi5pby9mZWF0aGVybGlnaHQvXG4gKlxuICogQ29weXJpZ2h0IDIwMTgsIE5vw6tsIFJhb3VsIEJvc3NhcnQgKGh0dHA6Ly93d3cubm9lbGJvc3MuY29tKVxuICogTUlUIExpY2Vuc2VkLlxuKiovXG5cbmh0bWwud2l0aC1mZWF0aGVybGlnaHQge1xuXHQvKiBkaXNhYmxlIGdsb2JhbCBzY3JvbGxpbmcgd2hlbiBmZWF0aGVybGlnaHRzIGFyZSB2aXNpYmxlICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5mZWF0aGVybGlnaHQge1xuXHRkaXNwbGF5OiBub25lO1xuXG5cdC8qIGRpbWVuc2lvbnM6IHNwYW5uaW5nIHRoZSBiYWNrZ3JvdW5kIGZyb20gZWRnZSB0byBlZGdlICovXG5cdHBvc2l0aW9uOmZpeGVkO1xuXHR0b3A6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IGxlZnQ6IDA7XG5cdHotaW5kZXg6IDIxNDc0ODM2NDc7IC8qIHotaW5kZXggbmVlZHMgdG8gYmUgPj0gZWxlbWVudHMgb24gdGhlIHNpdGUuICovXG5cblx0LyogcG9zaXRpb246IGNlbnRlcmluZyBjb250ZW50ICovXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHQvKiBpbnN1cmVzIHRoYXQgdGhlIDo6YmVmb3JlIHBzZXVkbyBlbGVtZW50IGRvZXNuJ3QgZm9yY2Ugd3JhcCB3aXRoIGZpeGVkIHdpZHRoIGNvbnRlbnQ7ICovXG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cblx0Lyogc3R5bGluZyAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGJhY2tncm91bmQ6ICMzMzM7XG5cdC8qIElFOCBcImhhY2tcIiBmb3IgbmVzdGVkIGZlYXRoZXJsaWdodHMgKi9cblx0YmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwKTtcbn1cblxuLyogc3VwcG9ydCBmb3IgbmVzdGVkIGZlYXRoZXJsaWdodHMuIERvZXMgbm90IHdvcmsgaW4gSUU4ICh1c2UgSlMgdG8gZml4KSAqL1xuLmZlYXRoZXJsaWdodDpsYXN0LW9mLXR5cGUge1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG5cbi5mZWF0aGVybGlnaHQ6YmVmb3JlIHtcblx0LyogcG9zaXRpb246IHRyaWNrIHRvIGNlbnRlciBjb250ZW50IHZlcnRpY2FsbHkgKi9cblx0Y29udGVudDogJyc7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0aGVpZ2h0OiAxMDAlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtY29udGVudCB7XG5cdC8qIG1ha2UgY29udGVudCBjb250YWluZXIgZm9yIHBvc2l0aW9uZWQgZWxlbWVudHMgKGNsb3NlIGJ1dHRvbikgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC8qIHBvc2l0aW9uOiBjZW50ZXJpbmcgdmVydGljYWwgYW5kIGhvcml6b250YWwgKi9cblx0dGV4dC1hbGlnbjogbGVmdDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdC8qIGRpbWVuc2lvbnM6IGN1dCBvZmYgaW1hZ2VzICovXG5cdG92ZXJmbG93OiBhdXRvO1xuXHRwYWRkaW5nOiAyNXB4IDI1cHggMDtcblx0Ym9yZGVyLWJvdHRvbTogMjVweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHQvKiBkaW1lbnNpb25zOiBoYW5kbGluZyBsYXJnZSBjb250ZW50ICovXG5cdG1hcmdpbi1sZWZ0OiA1JTtcblx0bWFyZ2luLXJpZ2h0OiA1JTtcblx0bWF4LWhlaWdodDogOTUlO1xuXG5cdC8qIHN0eWxpbmcgKi9cblx0Ly8gYmFja2dyb3VuZDogI2ZmZjtcblx0Y3Vyc29yOiBhdXRvO1xuXG5cdC8qIHJlc2V0IHdoaXRlLXNwYWNlIHdyYXBwaW5nICovXG5cdHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi8qIGNvbnRhaW5zIHRoZSBjb250ZW50ICovXG4uZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtaW5uZXIge1xuXHQvKiBtYWtlIHN1cmUgaXRzIHZpc2libGUgKi9cblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIGRvbid0IHNob3cgdGhlc2UgdGhvdWdoICovXG4uZmVhdGhlcmxpZ2h0IHNjcmlwdC5mZWF0aGVybGlnaHQtaW5uZXIsXG4uZmVhdGhlcmxpZ2h0IGxpbmsuZmVhdGhlcmxpZ2h0LWlubmVyLFxuLmZlYXRoZXJsaWdodCBzdHlsZS5mZWF0aGVybGlnaHQtaW5uZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtY2xvc2UtaWNvbiB7XG5cdC8qIHBvc2l0aW9uOiBjZW50ZXJpbmcgdmVydGljYWwgYW5kIGhvcml6b250YWwgKi9cblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk5O1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXG5cdC8qIGRpbWVuc2lvbnM6IDI1cHggeCAyNXB4ICovXG5cdGxpbmUtaGVpZ2h0OiAyNXB4O1xuXHR3aWR0aDogMjVweDtcblx0aGVpZ2h0OiAyNXB4O1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cblx0Lyogc3R5bGluZyAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuXHRiYWNrZ3JvdW5kOiAjZmZmOyAvKiBTZXQgdGhlIGJhY2tncm91bmQgaW4gY2FzZSBpdCBvdmVybGFwcyB0aGUgY29udGVudCAqL1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG5cdGNvbG9yOiAjMDAwO1xuXHRib3JkZXI6IG5vbmU7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qIFNlZSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE2MDc3MzQxL2hvdy10by1yZXNldC1hbGwtZGVmYXVsdC1zdHlsZXMtb2YtdGhlLWh0bWw1LWJ1dHRvbi1lbGVtZW50ICovXG4uZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtY2xvc2UtaWNvbjo6LW1vei1mb2N1cy1pbm5lciB7XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogMDtcbn1cblxuLmZlYXRoZXJsaWdodCAuZmVhdGhlcmxpZ2h0LWltYWdlIHtcblx0Lyogc3R5bGluZyAqL1xuXHR3aWR0aDogMTAwJTtcbn1cblxuXG4uZmVhdGhlcmxpZ2h0LWlmcmFtZSAuZmVhdGhlcmxpZ2h0LWNvbnRlbnQge1xuXHQvKiByZW1vdmVkIHRoZSBib3JkZXIgZm9yIGltYWdlIGNyb3Bpbmcgc2luY2UgaWZyYW1lIGlzIGVkZ2UgdG8gZWRnZSAqL1xuXHRib3JkZXItYm90dG9tOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5mZWF0aGVybGlnaHQgaWZyYW1lIHtcblx0Lyogc3R5bGluZyAqL1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5mZWF0aGVybGlnaHQgKiB7IC8qIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbm9lbGJvc3MvZmVhdGhlcmxpZ2h0L2lzc3Vlcy80MiAqL1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyogaGFuZGxpbmcgcGhvbmVzIGFuZCBzbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuXHQuZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtY29udGVudCB7XG5cdFx0LyogZGltZW5zaW9uczogbWF4aW1pemUgbGlnaHRib3ggd2l0aCBmb3Igc21hbGwgc2NyZWVucyAqL1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRtYXgtaGVpZ2h0OiA5OCU7XG5cblx0XHRwYWRkaW5nOiAxMHB4IDEwcHggMDtcblx0XHRib3JkZXItYm90dG9tOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHR9XG59XG5cbi8qIGhpZGUgbm9uIGZlYXRoZXJsaWdodCBpdGVtcyB3aGVuIHByaW50aW5nICovXG5AbWVkaWEgcHJpbnQge1xuXHRodG1sLndpdGgtZmVhdGhlcmxpZ2h0ID4gKiA+IDpub3QoLmZlYXRoZXJsaWdodCkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmJhc2VpY29uIFdlYiBGb250XG5HZW5lcmF0ZWQgdXNpbmcgbnVjbGVvYXBwLmNvbVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdiYXNlaWNvbic7XG4gIHNyYzogdXJsKCcjeyRpY29uLWZvbnQtcGF0aH0vYmFzZWljb24uZW90Jyk7XG4gIHNyYzogdXJsKCcjeyRpY29uLWZvbnQtcGF0aH0vYmFzZWljb24uZW90JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgIHVybCgnI3skaWNvbi1mb250LXBhdGh9L2Jhc2VpY29uLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnI3skaWNvbi1mb250LXBhdGh9L2Jhc2VpY29uLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJyN7JGljb24tZm9udC1wYXRofS9iYXNlaWNvbi50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgdXJsKCcjeyRpY29uLWZvbnQtcGF0aH0vYmFzZWljb24uc3ZnJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRiYXNlIGNsYXNzIGRlZmluaXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMWVtLzEgJ2Jhc2VpY29uJztcbiAgc3BlYWs6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGNoYW5nZSBpY29uIHNpemVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiByZWxhdGl2ZSB1bml0cyAqL1xuLmljb24tc20ge1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuLmljb24tbGcge1xuICBmb250LXNpemU6IDEuMmVtO1xufVxuLyogYWJzb2x1dGUgdW5pdHMgKi9cbi5pY29uLTE2IHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLmljb24tMzIge1xuICBmb250LXNpemU6IDMycHg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBhZGQgYSBzcXVhcmUvY2lyY2xlIGJhY2tncm91bmRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmljb24tYmctc3F1YXJlLFxuLmljb24tYmctY2lyY2xlIHtcbiAgcGFkZGluZzogMC4zNWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaWNvbi1iYWNrZ3JvdW5kLWNvbG9yO1xufVxuXG4uaWNvbi1iZy1jaXJjbGUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHVzZSBpY29ucyBhcyBsaXN0IGl0ZW0gbWFya2Vyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5pY29uLXVsIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICB9XG5cbiAgPiBsaSA+IC5pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRpY29uLWxpLW1hcmdpbi1yaWdodDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBzcGlubmluZyBpY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5pY29uLWlzLXNwaW5uaW5nIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGljb24tc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XG4gIC1tb3otYW5pbWF0aW9uOiBpY29uLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IGljb24tc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBpY29uLXNwaW4ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbkAtbW96LWtleWZyYW1lcyBpY29uLXNwaW4ge1xuICAwJSB7XG4gICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgaWNvbi1zcGluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgcm90YXRlZC9mbGlwcGVkIGljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmljb24tcm90YXRlLTkwICB7XG5cdEBpbmNsdWRlIGljb24tcm90YXRlKDkwZGVnLCAxKTtcbn1cblxuLmljb24tcm90YXRlLTE4MCB7XG5cdEBpbmNsdWRlIGljb24tcm90YXRlKDE4MGRlZywgMik7XG59XG5cbi5pY29uLXJvdGF0ZS0yNzAge1xuXHRAaW5jbHVkZSBpY29uLXJvdGF0ZSgyNzBkZWcsIDMpO1xufVxuXG4uaWNvbi1mbGlwLXkge1xuXHRAaW5jbHVkZSBpY29uLWZsaXAoLTEsIDEsIDApO1xufVxuLmljb24tZmxpcC14IHtcblx0QGluY2x1ZGUgaWNvbi1mbGlwKDEsIC0xLCAyKTtcbn1cblxuQGltcG9ydCBcImljb25zXCI7XG4iLCIkaWNvbi1mb250LXBhdGg6ICAgICAgICBcImZvbnRzXCIgIWRlZmF1bHQ7XG4kaWNvbi1iYWNrZ3JvdW5kLWNvbG9yOiAjZWVlICFkZWZhdWx0O1xuJGljb24tbGktbWFyZ2luLXJpZ2h0OiAgMC40ZW0gIWRlZmF1bHQ7XG4iLCJAbWl4aW4gaWNvbi1yb3RhdGUoJGRlZ3JlZXMsICRyb3RhdGlvbikge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPSN7JHJvdGF0aW9ufSk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG59XG5cbkBtaXhpbiBpY29uLWZsaXAoJGhvcml6LCAkdmVydCwgJHJvdGF0aW9uKSB7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249I3skcm90YXRpb259KTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKCRob3JpeiwgJHZlcnQpO1xuICAtbW96LXRyYW5zZm9ybTogc2NhbGUoJGhvcml6LCAkdmVydCk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKCRob3JpeiwgJHZlcnQpO1xuICAtby10cmFuc2Zvcm06IHNjYWxlKCRob3JpeiwgJHZlcnQpO1xuICB0cmFuc2Zvcm06IHNjYWxlKCRob3JpeiwgJHZlcnQpO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0aWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGZ1bmN0aW9uIHVuaWNvZGUoJHN0cikge1xuICBAcmV0dXJuIHVucXVvdGUoXCJcXFwiXFxcXCN7JHN0cn1cXFwiXCIpO1xufVxuXG4kaWNvbi1hY2NvdW50OiB1bmljb2RlKGVhMDEpO1xuJGljb24tYmFnLTA5OiB1bmljb2RlKGVhMDIpO1xuJGljb24tY2hlY2tlZC1zeW1ib2w6IHVuaWNvZGUoZWEwMyk7XG4kaWNvbi1mYWNlYm9vay0xOiB1bmljb2RlKGVhMDQpO1xuJGljb24tZmFjZWJvb2stY2lyY2xlOiB1bmljb2RlKGVhMDUpO1xuJGljb24tZmFjZWJvb2s6IHVuaWNvZGUoZWEwNik7XG4kaWNvbi1mYXg6IHVuaWNvZGUoZWEwNyk7XG4kaWNvbi1pY19hY2Nlc3NfdGltZV80OHB4OiB1bmljb2RlKGVhMDgpO1xuJGljb24taWNfYXJyb3dfYmFja18zNnB4OiB1bmljb2RlKGVhMDkpO1xuJGljb24taWNfY2xvc2VfNDhweDogdW5pY29kZShlYTBhKTtcbiRpY29uLWljX21haWxfb3V0bGluZV80OHB4OiB1bmljb2RlKGVhMGIpO1xuJGljb24taW5zdGFncmFtOiB1bmljb2RlKGVhMGMpO1xuJGljb24tbG9jazogdW5pY29kZShlYTBkKTtcbiRpY29uLXBob25lLTItMjogdW5pY29kZShlYTBlKTtcbiRpY29uLXBob25lLTI6IHVuaWNvZGUoZWEwZik7XG4kaWNvbi1waW46IHVuaWNvZGUoZWExMCk7XG4kaWNvbi1wbGFjZWhvbGRlcjogdW5pY29kZShlYTExKTtcbiRpY29uLXBsdXM6IHVuaWNvZGUoZWExMik7XG4kaWNvbi1zaG9wcGluZy1jYXJ0OiB1bmljb2RlKGVhMTMpO1xuJGljb24tc2luZ2xlLTAxOiB1bmljb2RlKGVhMTQpO1xuJGljb24tc3RhcjogdW5pY29kZShlYTE1KTtcbiRpY29uLXdoYXRzYXBwLWxvZ286IHVuaWNvZGUoZWExNik7XG4kaWNvbi15b3V0dWJlOiB1bmljb2RlKGVhMTcpO1xuJGljb24tem9vbS0yOiB1bmljb2RlKGVhMTgpO1xuXG4uaWNvbi1hY2NvdW50OjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1hY2NvdW50O1xufVxuXG4uaWNvbi1iYWctMDk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWJhZy0wOTtcbn1cblxuLmljb24tY2hlY2tlZC1zeW1ib2w6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWNoZWNrZWQtc3ltYm9sO1xufVxuXG4uaWNvbi1mYWNlYm9vay0xOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1mYWNlYm9vay0xO1xufVxuXG4uaWNvbi1mYWNlYm9vay1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWZhY2Vib29rLWNpcmNsZTtcbn1cblxuLmljb24tZmFjZWJvb2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWZhY2Vib29rO1xufVxuXG4uaWNvbi1mYXg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWZheDtcbn1cblxuLmljb24taWNfYWNjZXNzX3RpbWVfNDhweDo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24taWNfYWNjZXNzX3RpbWVfNDhweDtcbn1cblxuLmljb24taWNfYXJyb3dfYmFja18zNnB4OjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1pY19hcnJvd19iYWNrXzM2cHg7XG59XG5cbi5pY29uLWljX2Nsb3NlXzQ4cHg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWljX2Nsb3NlXzQ4cHg7XG59XG5cbi5pY29uLWljX21haWxfb3V0bGluZV80OHB4OjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1pY19tYWlsX291dGxpbmVfNDhweDtcbn1cblxuLmljb24taW5zdGFncmFtOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1pbnN0YWdyYW07XG59XG5cbi5pY29uLWxvY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLWxvY2s7XG59XG5cbi5pY29uLXBob25lLTItMjo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24tcGhvbmUtMi0yO1xufVxuXG4uaWNvbi1waG9uZS0yOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1waG9uZS0yO1xufVxuXG4uaWNvbi1waW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLXBpbjtcbn1cblxuLmljb24tcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLXBsYWNlaG9sZGVyO1xufVxuXG4uaWNvbi1wbHVzOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1wbHVzO1xufVxuXG4uaWNvbi1zaG9wcGluZy1jYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi1zaG9wcGluZy1jYXJ0O1xufVxuXG4uaWNvbi1zaW5nbGUtMDE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICRpY29uLXNpbmdsZS0wMTtcbn1cblxuLmljb24tc3Rhcjo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24tc3Rhcjtcbn1cblxuLmljb24td2hhdHNhcHAtbG9nbzo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24td2hhdHNhcHAtbG9nbztcbn1cblxuLmljb24teW91dHViZTo6YmVmb3JlIHtcbiAgY29udGVudDogJGljb24teW91dHViZTtcbn1cblxuLmljb24tem9vbS0yOjpiZWZvcmUge1xuICBjb250ZW50OiAkaWNvbi16b29tLTI7XG59XG5cbiIsIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xufVxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdLFxuYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3JpbmcsXG5idXR0b246LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovXG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovXG59XG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xufVxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogQm94IFNpemluZ1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiosXG4qOjphZnRlcixcbio6OmJlZm9yZSB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG4iLCIvKiBUeXBvZ3JhcGhpY2FsIEVsZW1lbnRzXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5odG1sIHtcbiAgZm9udC1zaXplOiA1NiU7XG4gIC8qIDEwcHggYnJvd3NlciBkZWZhdWx0ICovXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAvLyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBmb250LXNpemU6IDYyLjUlO1xuICB9XG59XG5cbi8qIENocm9tZSBmaXggKi9cbmJvZHk+ZGl2IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjMzMzO1xuICBmb250LWZhbWlseTogJG1haW4tZm9udDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm07XG4gIGxpbmUtaGVpZ2h0OiAxLjYyNTtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbmJ1dHRvbixcbmlucHV0OmZvY3VzLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG50ZXh0YXJlYTpmb2N1cyxcbi5idXR0b24sXG4uZ2FsbGVyeSBpbWcge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbn1cblxub2wsXG51bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxubGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbmhyIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbjogMzBweCAwO1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbmJsb2NrcXVvdGUsXG5jaXRlLFxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2RkZDtcbiAgY29sb3I6ICMzMzM7XG59XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDMwcHg7XG59XG5cbmJsb2NrcXVvdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMDFDXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDMwcHg7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgaGVpZ2h0OiAwO1xuICBsZWZ0OiAtMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xMHB4O1xufVxuXG4vKiBIZWFkaW5nc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm07XG4gIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDAlKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAwIDAgMnJlbTtcbn1cblxuaDEge1xuICBmb250LXNpemU6IDVyZW07XG4gIGZvbnQtZmFtaWx5OiAkdGl0bGUtZm9udDtcbn1cblxuaDIge1xuICBmb250LXNpemU6IDMuNnJlbTtcbiAgZm9udC1mYW1pbHk6ICR0aXRsZS1mb250O1xufVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMi40cmVtO1xuICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQ7XG59XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xufVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xufVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xufVxuXG5hIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMCUpO1xuXG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDIwJSk7XG4gIH1cbn1cblxubGFiZWwge1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgY29sb3I6IGhzbCgwLCAwJSwgNjAlKTtcbn1cblxuLyogVGV4dFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xucCB7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4xO1xuICBsaW5lLWhlaWdodDogJGJhc2UtZm9udC1zaXplICsgMC44O1xuICBtYXJnaW46IDAgMCAxNXB4O1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gICYueC1zbWFsbCB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxuXG4gICYuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cblxuICAmLmxhcmdlIHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSArIDAuMjtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICB9XG59XG5cbi8qIERhcmsgdGhlbWVcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVkYXJrLXRoZW1lIHtcblxuICBhLFxuICBwIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgaHIge1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZjtcbiAgfVxufVxuXG4vLyAuZGFyay10aGVtZSB7XG4vLyAgIEBleHRlbmQgJWRhcmstdGhlbWU7XG4vLyB9XG5cbiVibG9nLXR5cG9ncmFwaHkge1xuXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNiB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICB9XG5cbiAgbGksXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDEuMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKyAwLjE7XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKyAwLjI7XG4gICAgfVxuXG4gIH1cblxuICB1bCB7XG4gICAgQGV4dGVuZCAlaXRlbS1saXN0O1xuXG4gICAgbGkge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICAgIH1cbiAgfVxuXG4gIG9sIHtcbiAgICBAZXh0ZW5kICVpdGVtLWxpc3Q7XG5cbiAgICBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG4gICAgfVxuICB9XG59IiwiLyogRGVmYXVsdHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIE9iamVjdHNcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi53cC1jYXB0aW9uLFxuZW1iZWQsXG5pZnJhbWUsXG5pbWcsXG5vYmplY3QsXG52aWRlbyB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuaW1nIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG4vKiBHYWxsZXJ5XG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZ2FsbGVyeSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaW1nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbi8qIFRhYmxlc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG50Ym9keSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xufVxuXG50ZCxcbnRoIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxudGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcbiAgcGFkZGluZzogNnB4O1xufVxuXG50aCB7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuICBwYWRkaW5nOiAwIDZweDtcbn1cbi8qIFNjcmVlbiBSZWFkZXIgVGV4dFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNjcmVlbi1yZWFkZXItc2hvcnRjdXQsXG4uc2NyZWVuLXJlYWRlci10ZXh0LFxuLnNjcmVlbi1yZWFkZXItdGV4dCBzcGFuIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIHdvcmQtd3JhcDogbm9ybWFsICFpbXBvcnRhbnQ7XG59XG5cbi5zY3JlZW4tcmVhZGVyLXNob3J0Y3V0OmZvY3VzLFxuLnNjcmVlbi1yZWFkZXItdGV4dDpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgLjYpO1xuICBjbGlwOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMzMzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICB6LWluZGV4OiAxMDAwMDA7XG4gIC8qIEFib3ZlIFdQIHRvb2xiYXIuICovXG59XG5cbi5tb3JlLWxpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4vKiBJbWFnZSByZWxlYXNlXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uaW1hZ2UtcmVsZWFzZSB7XG4gIHdpZHRoOiAxMDB2dztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA1MCU7XG4gIHJpZ2h0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtNTB2dztcbiAgbWFyZ2luLXJpZ2h0OiAtNTB2dztcbiAgbWF4LXdpZHRoOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIFZlcnRpY2FsIGFsaWduIGNvbHVtbiBvYmplY3RzXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4udmVydGljYWwtY2VudGVyIHtcbiAgLndwLWJsb2NrLWNvbHVtbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbiIsIi8qIEFuaW1hdGlvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiVhbmltYXRpb24tYmFzaWMtaGlkZSB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UtaW4tb3V0O1xuICBvcGFjaXR5OiAwO1xufVxuLyogZmFkZSBpbiB0b3AgKi9cbi5oaWRkZW4ge1xuICBAZXh0ZW5kICVhbmltYXRpb24tYmFzaWMtaGlkZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpO1xufVxuXG4uc2hvd24ge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbn1cbi8qIGZhZGUgaW4gcmlnaHQgKi9cbi5mYWRlLXJpZ2h0LWJlZm9yZSB7XG4gIEBleHRlbmQgJWFuaW1hdGlvbi1iYXNpYy1oaWRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwcHgpO1xufVxuXG4uZmFkZS1yaWdodCB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xufVxuLyogZmFkZSBpbiBsZWZ0ICovXG4uZmFkZS1sZWZ0LWJlZm9yZSB7XG4gIEBleHRlbmQgJWFuaW1hdGlvbi1iYXNpYy1oaWRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzBweCk7XG59XG5cbi5mYWRlLWxlZnQge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcbn1cbi8qIGZhZGUgaW4gc2NhbGUgKi9cbi5mYWRlLXNjYWxlLWJlZm9yZSB7XG4gIEBleHRlbmQgJWFuaW1hdGlvbi1iYXNpYy1oaWRlO1xuICB0cmFuc2Zvcm06IHNjYWxlKC45KTtcbn1cblxuLmZhZGUtc2NhbGUge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuIiwiLyogR3JpZFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogQ29sdW1uIE1peGluXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gY29sdW1ucygkc3BhY2UsICRjb2xzOiAyLCAkbW9iaWxlLWNvbDogMSkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXG4gID4gKiB7XG4gICAgQGlmICRtb2JpbGUtY29sID09IDEge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2U7XG4gICAgfVxuICAgIEBpZiAkbW9iaWxlLWNvbCA9PSAyIHtcbiAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gKCN7JHNwYWNlfSAvIDIgKiAoI3skbW9iaWxlLWNvbH0gLSAxKSkpIC8gI3skbW9iaWxlLWNvbH0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCRzcGFjZSAvIDIpO1xuICAgICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYygkc3BhY2UgLyAyKTtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gKCN7JHNwYWNlfSAqICgjeyRjb2xzfSAtIDEpKSkgLyAjeyRjb2xzfSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjZTtcblxuICAgICAgJjpudGgtY2hpbGQoI3skY29sc31uKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuJWNvbC0xIHtcbiAgcGFkZGluZzogMCA1JTtcbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXgtd2lkdGg6IDcwMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuXG4uY29scy0yIHtcbiAgQGluY2x1ZGUgY29sdW1ucygzMHB4LCAyKTtcbn1cblxuLmNvbHMtMyB7XG4gIEBpbmNsdWRlIGNvbHVtbnMoMzBweCwgMyk7XG59XG4vKiBDb2x1bW4gTGF5b3V0c1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIGNvbHVtbi1sYXlvdXQoJGNvbC0xLCAkY29sLTIsICRjb2wtMzpudWxsKSB7XG4gIEBpZiAkY29sLTMgPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgID4gKjpudGgtY2hpbGQoMSkge1xuICAgICAgICBmbGV4OiAkY29sLTEgMSAwO1xuICAgICAgfVxuXG4gICAgICA+ICo6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgZmxleDogJGNvbC0yIDEgMDtcbiAgICAgIH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICA+ICo6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgZmxleDogJGNvbC0xIDEgMDtcbiAgICAgIH1cblxuICAgICAgPiAqOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIGZsZXg6ICRjb2wtMiAxIDA7XG4gICAgICB9XG5cbiAgICAgID4gKjpudGgtY2hpbGQoMykge1xuICAgICAgICBmbGV4OiAkY29sLTMgMSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udHdvLW9uZSB7XG4gIEBpbmNsdWRlIGNvbHVtbi1sYXlvdXQoMiwgMSk7XG59XG4vKiBXcmFwcGVyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ld3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA1MHB4IDUlO1xuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBwYWRkaW5nOiA4MHB4IDEwJTtcbiAgfVxuXG4gICYtc21hbGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE1cHggNSU7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBwYWRkaW5nOiAzMHB4IDEwJTtcbiAgICB9XG4gIH1cblxuICAmLWxhcmdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA4MHB4IDUlO1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgcGFkZGluZzogMTIwcHggMTAlO1xuICAgIH1cbiAgfVxuXG4gICYtZnVsbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogNTBweCAwO1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgcGFkZGluZzogODBweCAwO1xuICAgIH1cbiAgfVxufVxuXG5zZWN0aW9uLndyYXBwZXIge1xuICBAZXh0ZW5kICV3cmFwcGVyO1xuXG4gICYtc21hbGwge1xuICAgIEBleHRlbmQgJXdyYXBwZXItc21hbGw7XG4gIH1cblxuICAmLWxhcmdlIHtcbiAgICBAZXh0ZW5kICV3cmFwcGVyLWxhcmdlO1xuICB9XG5cbiAgJi1mdWxsIHtcbiAgICBAZXh0ZW5kICV3cmFwcGVyLWZ1bGw7XG4gIH1cbn1cbiIsIi8qIEdlbmVzaXMgU3RydWN0dXJlIGFuZCBMYXlvdXRcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogU2l0ZSBDb250YWluZXJcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaXRlLWNvbnRhaW5lciB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcbn1cblxubWFpbi5jb250ZW50IHtcbiAgZmxleDogMSAxIDEwMCU7XG59XG5cbi5zaXRlLWhlYWRlcisqIHtcbiAgbWFyZ2luLXRvcDogODVweDtcbn1cblxuLyogQ29tbW9uIENsYXNzZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogR2VuZXNpc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmFmdGVyLWVudHJ5LFxuLmFyY2hpdmUtZGVzY3JpcHRpb24sXG4uYXV0aG9yLWJveCB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG59XG5cbi5hZnRlci1lbnRyeSB7XG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIHBhZGRpbmc6IDIwcHggMzBweDtcbn1cblxuLmFmdGVyLWVudHJ5IC53aWRnZXQ6bGFzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmJyZWFkY3J1bWIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG5cbi5hcmNoaXZlLWRlc2NyaXB0aW9uIHA6bGFzdC1jaGlsZCxcbi5hdXRob3ItYm94IHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8qIFNlYXJjaCBGb3JtXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2VhcmNoLWZvcm0ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZW50cnktY29udGVudCAuc2VhcmNoLWZvcm0ge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICB3aWR0aDogNTAlO1xufVxuXG4ucG9zdC1wYXNzd29yZC1mb3JtIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG4uc2VhcmNoLWZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi53aWRnZXRfc2VhcmNoIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbn1cblxuLyogVGl0bGVzXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZW50cnktdGl0bGUgYSxcbi5zaWRlYmFyIC53aWRnZXQtdGl0bGUgYSB7XG4gIGNvbG9yOiAjMzMzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi53aWRnZXQtdGl0bGUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLyogV29yZFByZXNzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuYS5hbGlnbmNlbnRlciBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbmEuYWxpZ25ub25lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5hLmFsaWdubGVmdCxcbmEuYWxpZ25ub25lLFxuYS5hbGlnbnJpZ2h0IHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5pbWcuYWxpZ25ub25lLFxuLmFsaWdubm9uZSB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5cbmEuYWxpZ25sZWZ0LFxuaW1nLmFsaWdubGVmdCxcbi53cC1jYXB0aW9uLmFsaWdubGVmdCB7XG4gIG1hcmdpbjogMCAyMHB4IDIwcHggMDtcbn1cblxuYS5hbGlnbnJpZ2h0LFxuaW1nLmFsaWducmlnaHQsXG4ud3AtY2FwdGlvbi5hbGlnbnJpZ2h0IHtcbiAgbWFyZ2luOiAwIDAgMjBweCAyMHB4O1xufVxuXG4uZ2FsbGVyeS1jYXB0aW9uLFxuLndwLWNhcHRpb24tdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5lbnRyeS1jb250ZW50IHAud3AtY2FwdGlvbi10ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmVudHJ5LWNvbnRlbnQgLndwLWF1ZGlvLXNob3J0Y29kZSxcbi5lbnRyeS1jb250ZW50IC53cC1wbGF5bGlzdCxcbi5lbnRyeS1jb250ZW50IC53cC12aWRlbyB7XG4gIG1hcmdpbjogMCAwIDMwcHg7XG59IiwiLy8gLm1lbnUtaXRlbS0taGlnaGxpZ2h0XG4vKiBIZWFkZXIgQnV0dG9uc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuJWhlYWRlci1idXR0b25zIHtcbiAgQGluY2x1ZGUgY2lyY2xlLW9iamVjdCgzNnB4LCAkbWFpbi1jb2xvciwgMTdweCk7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybTtcbiAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbn1cblxuLyogU2tpcCBMaW5rc1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmdlbmVzaXMtc2tpcC1saW5rIHtcbiAgbWFyZ2luOiAwO1xuXG4gIC5za2lwLWxpbmstaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIGxpIHtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB3aWR0aDogMDtcbiAgfVxufVxuXG4vKiBTaXRlIEhlYWRlclxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNpdGUtaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRvZmYtd2hpdGU7XG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIHBhZGRpbmc6IDAgMzBweDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcblxuICA+LndyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLyogU3RydWN0dXJlICovXG4gICAgPioge1xuICAgICAgJi5wcmUtaGVhZGVyIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICB9XG5cbiAgICAgICYudGl0bGUtYXJlYSB7XG4gICAgICAgIC8vIGZsZXg6IDIgMSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaGVhZGVyLXdpZGdldC1hcmVhIHtcbiAgICAgICAgZmxleDogMSAxIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tZW51LXRvZ2dsZSB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc2l0ZS1oZWFkZXIuaGVhZGVyLXNjcm9sbCB7XG4gIC50aXRsZS1hcmVhIHtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgcGFkZGluZzogNnB4IDA7XG4gIH1cbn1cblxuLyogVGl0bGUgQXJlYVxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnRpdGxlLWFyZWEge1xuICB3aWR0aDogMTQwcHg7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgb3JkZXI6IDI7XG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIG9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cbi5zaXRlLWRlc2NyaXB0aW9uLFxuLndwLWN1c3RvbS1sb2dvIC5zaXRlLXRpdGxlIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIHdvcmQtd3JhcDogbm9ybWFsICFpbXBvcnRhbnQ7XG59XG5cbi8qIFJlc3BvbnNpdmUgTWVudVxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm1lbnUgLm1lbnUtaXRlbTpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5tZW51IC5tZW51LWl0ZW0+YTpmb2N1cyt1bC5zdWItbWVudSxcbi5tZW51IC5tZW51LWl0ZW0uc2ZIb3Zlcj51bC5zdWItbWVudSB7XG4gIGxlZnQ6IGF1dG87XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5nZW5lc2lzLXJlc3BvbnNpdmUtbWVudSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBpbmhlcml0O1xuICB9XG59XG5cbi8qIE1lbnUgVG9nZ2xlICYgU3ViIE1lbnUgVG9nZ2xlICovXG4ubWVudS10b2dnbGUsXG4uc3ViLW1lbnUtdG9nZ2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci13aWR0aDogMDtcbiAgY29sb3I6ICRtYWluLWNvbG9yO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gICY6Zm9jdXMsXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgfVxufVxuXG4vKiBNZW51IFRvZ2dsZSAqL1xuLm1lbnUtdG9nZ2xlIHtcbiAgQGV4dGVuZCAlaGVhZGVyLWJ1dHRvbnM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTAwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgb3JkZXI6IDQ7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAmOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIH1cblxuICAmLmFjdGl2YXRlZDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjMzNVwiO1xuICB9XG59XG5cbi8qIFN1YiBNZW51IFRvZ2dsZSAqL1xuLnN1Yi1tZW51LXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDVweDtcbiAgdG9wOiAxNXB4O1xuICB6LWluZGV4OiAxMDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAmOmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLWluLW91dDtcbiAgICBjb2xvcjogJG1haW4tY29sb3I7XG4gIH1cblxuICAmLmFjdGl2YXRlZDpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgY29sb3I6IGxpZ2h0ZW4oJG1haW4tY29sb3IsIDEwJSk7XG4gIH1cbn1cblxuLyogSGVhZGVyIE1lbnVcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVtYWluLW5hdi1pbnRlcmFjdCB7XG4gIC8vIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cbiAgLy8gQGluY2x1ZGUgZGVza3RvcCB7XG4gIC8vICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NiUpO1xuICAvLyAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkbWFpbi1jb2xvcjtcbiAgLy8gfVxufVxuXG4vKiBIZWFkZXIgTWVudSBTdHJ1Y3R1cmUgKi9cbi5uYXYtcHJpbWFyeSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB6LWluZGV4OiA5OTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBkaXNwbGF5OiBub25lO1xuICB0b3A6IDg2cHg7XG5cbiAgLmhlYWRlci1zY3JvbGwgJiB7XG4gICAgdG9wOiA2OHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgLndyYXAge1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4vKiBNYWluIEhlYWRlciBNZW51ICovXG4ubWVudS1wcmltYXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MCwgMjUwLCAyNTAsIDEpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcblxuICBAaW5jbHVkZSBtb2JpbGUge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gIC8qIEdlbmVyaWMgbGkgc3R5bGUqL1xuICAubWVudS1pdGVtIHtcbiAgICBAZXh0ZW5kICVtYWluLW1lbnUtaXRlbTtcbiAgfVxuXG4gIC8qIEdlbmVyaWMgbmF2IGxpbmsgc3R5bGUgKi9cbiAgYSB7XG4gICAgQGV4dGVuZCAlbWFpbi1tZW51LWxpbms7XG4gIH1cblxuICAvKiBGaXJzdCBsZXZlbCBsaSAqL1xuICA+bGkge1xuICAgIEBleHRlbmQgJW1haW4tbWVudS1pdGVtLWZpcnN0O1xuXG4gICAgPmEge1xuICAgICAgQGV4dGVuZCAlbWFpbi1tZW51LWxpbmstZmlyc3Q7XG4gICAgfVxuICB9XG5cbiAgLyogTGV2ZWwgMiBNZW51ICovXG4gIC5zdWItbWVudSB7XG4gICAgei1pbmRleDogOTk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCNmZmYsIDYlKTtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBtaW4td2lkdGg6IDE4MHB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgbGVmdDogOTk5OXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgOHB4IDhweDtcbiAgICB9XG5cbiAgICAvKiBTZWNvbmQgbGV2ZWwgbGkgKi9cbiAgICAubWVudS1pdGVtIHtcbiAgICAgIEBleHRlbmQgJW1haW4tbWVudS1pdGVtLXNlY29uZDtcblxuICAgICAgPmEge1xuICAgICAgICBAZXh0ZW5kICVtYWluLW1lbnUtbGluay1zZWNvbmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIFN0eWxlcyBmb3IgTWFpbiBOYXZpZ2F0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVtYWluLW1lbnUtaXRlbSB7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gICYtZmlyc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAvKiBJZiBoYXZlIGNoaWxkcmVuICovXG4gICAgJi5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmJlZm9yZSB7XG4gICAgICBAZXh0ZW5kICV0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiA3cHggc29saWQgJG1haW4tY29sb3I7XG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtIDEwcHgpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46aG92ZXI6YmVmb3JlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLyogSWYgSGlnaGxpZ2h0ZWQgKi9cbiAgICAmLm1lbnUtaXRlbS0taGlnaGxpZ2h0IHtcbiAgICAgID5hIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHllbGxvdztcbiAgICAgICAgY29sb3I6ICRtYWluLWNvbG9yO1xuICAgICAgICBtYXJnaW46IDAgMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgQGV4dGVuZCAlbWFpbi1uYXYtaW50ZXJhY3Q7XG4gICAgfVxuICB9XG5cbiAgJi1zZWNvbmQge1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuXG4gICAgICAgID5hIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lbWFpbi1tZW51LWxpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybTtcbiAgZm9udC1mYW1pbHk6ICR0aXRsZS1mb250O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgaSB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm07XG4gIH1cblxuICAmLWZpcnN0IHtcbiAgICBwYWRkaW5nOiAyMHB4IDI0cHg7XG5cbiAgICBAaW5jbHVkZSBkZXNrdG9wIHt9XG4gIH1cblxuICAmLXNlY29uZCB7XG4gICAgcGFkZGluZzogMTRweCAxNXB4O1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIEhlYWRlciBXaWRnZXQgQXJlYVxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmhlYWRlci13aWRnZXQtYXJlYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDE7XG4gIG9yZGVyOiAwO1xuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIG9yZGVyOiAzO1xuICAgIG1hcmdpbjogMCA1JSAwIGF1dG87XG4gIH1cblxuICAubWVudSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXG4gICAgbGkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAud2lkZ2V0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVoZWFkZXItYnV0dG9ucztcbiAgfVxufVxuXG4vKiBQcmUgSGVhZGVyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucHJlLWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIHBhZGRpbmc6IDNweCAzJTtcblxuICA+KiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIGkge1xuICAgICAgbWFyZ2luOiAwIDNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgZmxleDogMSAxIDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgbGluZS1oZWlnaHQ6IDI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgIGZsZXg6IDExIDEgMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgZmxleDogMiAxIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICBjb2xvcjogJHJlZDtcbiAgfVxuXG4gIGEge1xuICAgIHNwYW4ge1xuICAgICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuI21lbnUtc29jaWFsLW1lZGlhLW1lbnUge1xuICBnYXA6IDAuNXJlbTtcbn0iLCIvKiBTaWRlYmFyXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2lkZWJhciB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5zaWRlYmFyIC53aWRnZXQge1xuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xufVxuXG4uc2lkZWJhciBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbiIsIi8qIEZvb3RlclxuICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBGb290ZXIgV2lkZ2V0c1xuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmZvb3Rlci13aWRnZXRzIHtcbiAgYmFja2dyb3VuZDogJHllbGxvdztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDhyZW0gNSU7XG5cbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLndyYXAge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAxLjVyZW07XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgZ2FwOiAzcmVtO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjVmciAxZnIgMWZyIDFmcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIEBpbmNsdWRlIGNoaWxkLW1hcmdpbihcInJpZ2h0XCIsIDMwcHgpO1xuICAgICAgbWF4LXdpZHRoOiAkZGVza3RvcC13aWR0aDtcbiAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgLndpZGdldC10aXRsZSB7XG4gICAgZm9udC1mYW1pbHk6ICR0aXRsZS1mb250O1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMC4yO1xuXG4gICAgLy8gQGluY2x1ZGUgbGluZS1ib3JkZXIoMXB4LCAkbWFpbi1jb2xvciwgXCJib3R0b21cIiwgMTVweCk7XG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuICB9XG5cbiAgLndpZGdldCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxufVxuXG4uZm9vdGVyLXdpZGdldC1hcmVhIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICBwIHtcbiAgICBjb2xvcjogJGRhcmstY29sb3I7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjE7XG4gIH1cblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5mb290ZXItd2lkZ2V0cyAubWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIHdyYXA7XG4gIGdhcDogMC41cmVtO1xuXG4gIC5zdWItbWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGxpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAzcHggMDtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4zO1xuICAgICAgY29sb3I6ICRkYXJrLWNvbG9yO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICAgIC8vIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIGkge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5mb290ZXItd2lkZ2V0cy0xIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuXG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICogMztcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6IDE1MHB4O1xuICB9XG59XG5cbi5mb290ZXItd2lkZ2V0cy00IHtcbiAgLm1lbnUtc29jaWFsLW1lZGlhLW1lbnUtY29udGFpbmVyIHtcbiAgICAubWVudSB7XG4gICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXG4gICAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICBsaSBhIHtcbiAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi50ZXh0d2lkZ2V0PnAge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmZvb3Rlci13aWRnZXQtYXJlYTpsYXN0LWNoaWxkLFxuLmZvb3Rlci13aWRnZXRzIC53aWRnZXQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbiNtZW51LXNvY2lhbC1tZWRpYS1tZW51IHtcbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAubWVudS1pdGVtIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC5zaXRlLWhlYWRlciAmIHtcbiAgICAgIC8vIHRvIGhpZGUgZGlzcGxheSBmcm9tIGhlYWRlclxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLyogU2l0ZSBGb290ZXJcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaXRlLWZvb3RlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuICBjb2xvcjogJG9mZi13aGl0ZTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgcGFkZGluZzogMTVweCA1JSA1cHg7XG5cbiAgPi53cmFwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICA+cCB7XG4gICAgICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQ7XG4gICAgICBtYXJnaW46IDAgMCA1cHg7XG4gICAgfVxuICB9XG59IiwiLyogR3JhcGhpY3NcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFNlY29uZGFyeSBHcmFwaGljXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4lc2Vjb25kYXJ5LWdyYXBoaWMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjphZnRlcixcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiA0MDBweDtcbiAgICBoZWlnaHQ6IDQwMHB4O1xuICAgIG9wYWNpdHk6IDAuMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICB0b3A6IDEwcHg7XG4gICAgbGVmdDogMTBweDtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDIyMGRlZyk7XG4gICAgYm90dG9tOiAxMHB4O1xuICAgIHJpZ2h0OiAxMHB4O1xuICB9XG59XG4vLyAuc2Vjb25kYXJ5LWdyYXBoaWMge1xuLy8gICBAZXh0ZW5kICVzZWNvbmRhcnktZ3JhcGhpYztcbi8vIH1cbi8qIEJhY2tncm91bmQgUGF0dGVyblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4lYmctcGF0dGVybiB7XG4gIGJhY2tncm91bmQ6ICRwYXR0ZXJuLTEtbGluayByZXBlYXQgY2VudGVyO1xuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICB9XG59XG4vKiBHcmFwaGljIERpdmlkZXIgMVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4lZ3JhcGhpYy1kaXZpZGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMjBweDtcbiAgbGVmdDogMDtcbiAgLy8gYmFja2dyb3VuZDogJGdyYXBoaWMtZGl2aWRlci0xLWxpbmsgbm8tcmVwZWF0IGJvdHRvbSAvIDEwMnZ3IGF1dG87XG59XG5cbiVncmFwaGljLWRpdmlkZXItdG9wIHtcbiAgQGV4dGVuZCAlZ3JhcGhpYy1kaXZpZGVyO1xuICB0b3A6IC0xMTlweDtcbn1cblxuJWdyYXBoaWMtZGl2aWRlci1ib3R0b20ge1xuICBAZXh0ZW5kICVncmFwaGljLWRpdmlkZXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIGJvdHRvbTogLTExOXB4O1xufVxuLyogR3JhcGhpYyBEaXZpZGVyIDIgLSBicnVzaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4lZ3JhcGhpYy1kaXZpZGVyLS1icnVzaCB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTBweDtcbiAgbGVmdDogMDtcbiAgLy8gYmFja2dyb3VuZDogJGdyYXBoaWMtZGl2aWRlci0yLWxpbmsgbm8tcmVwZWF0IGJvdHRvbSAvIDEwMnZ3IGF1dG87XG59XG5cbiVncmFwaGljLWRpdmlkZXItLWJydXNoLXRvcCB7XG4gIEBleHRlbmQgJWdyYXBoaWMtZGl2aWRlci0tYnJ1c2g7XG4gIHRvcDogLTQ5cHg7XG59XG5cbiVncmFwaGljLWRpdmlkZXItLWJydXNoLWJvdHRvbSB7XG4gIEBleHRlbmQgJWdyYXBoaWMtZGl2aWRlci0tYnJ1c2g7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIGJvdHRvbTogLTQ5cHg7XG59XG4vKiBEaXZpZGVyIGFmdGVyIHRpdGxlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVkaXZpZGVyLWFmdGVyLXRpdGxlIHtcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgJG1haW4tY29sb3I7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgb3BhY2l0eTogMC42O1xuICB9XG59XG4iLCIvKiBCdXR0b25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gYnRuLTFcbiBidG4tMlxuIGJ0bi1pY29uLXRleHRcbiAqL1xuLyogU3RydWN0dXJlIG9mIGEgYnV0dG9uICovXG5AbWl4aW4gYnRuKCRzaXplKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdG9wOiAwO1xuICBib3JkZXI6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIEBpZiAkc2l6ZSA9PXNtYWxsIHtcbiAgICBwYWRkaW5nOiAwLjZlbSAwLjllbTtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuNDtcbiAgfVxuXG4gIEBpZiAkc2l6ZSA9PW1lZGl1bSB7XG4gICAgcGFkZGluZzogMC45ZW0gMS4yZW07XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjM7XG4gIH1cblxuICBAaWYgJHNpemUgPT1sYXJnZSB7XG4gICAgcGFkZGluZzogMS4yZW07XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbn1cblxuJWJ0biB7XG4gIEBpbmNsdWRlIGJ0bihtZWRpdW0pO1xuXG4gICYtc21hbGwge1xuICAgIEBpbmNsdWRlIGJ0bihzbWFsbCk7XG4gIH1cblxuICAmLWxhcmdlIHtcbiAgICBAaW5jbHVkZSBidG4obGFyZ2UpO1xuICB9XG59XG5cbi5idG4ge1xuICBAZXh0ZW5kICVidG47XG5cbiAgJi5hbGlnbi1jIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxuXG4gICYtc21hbGwge1xuICAgIEBleHRlbmQgJWJ0bi1zbWFsbDtcbiAgfVxuXG4gICYtbGFyZ2Uge1xuICAgIEBleHRlbmQgJWJ0bi1sYXJnZTtcbiAgfVxufVxuXG4vKiBTb2xpZCBCdXR0b24gLSBidG4tMVxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gYnRuLTEoJGJnLWNvbG9yLCAkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnLWNvbG9yO1xuICBjb2xvcjogJGNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmctY29sb3IsIDE1JSk7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XG4gIH1cbn1cblxuJWJ0bi0xIHtcbiAgQGluY2x1ZGUgYnRuLTEoZGFya2VuKCRtYWluLWNvbG9yLCAwJSksICNmZmYpO1xuXG4gICYtc2Vjb25kYXJ5IHtcbiAgICBAaW5jbHVkZSBidG4tMShoc2woMCwgMCUsIDYwJSksIGhzbCgwLCAwJSwgMTAwJSkpO1xuICB9XG5cbiAgJi1saWdodCB7XG4gICAgQGluY2x1ZGUgYnRuLTEoaHNsKDAsIDAlLCA5MCUpLCBoc2woMCwgMCUsIDUwJSkpO1xuICB9XG5cbiAgJi1zdWNjZXNzIHtcbiAgICBAaW5jbHVkZSBidG4tMSgkZ3JlZW4sIGhzbCgwLCAwJSwgMTAwJSkpO1xuICB9XG5cbiAgJi1pbmZvIHtcbiAgICBAaW5jbHVkZSBidG4tMSgkYmx1ZSwgaHNsKDAsIDAlLCAxMDAlKSk7XG4gIH1cblxuICAmLXdhcm5pbmcge1xuICAgIEBpbmNsdWRlIGJ0bi0xKCR5ZWxsb3csICRtYWluLWNvbG9yKTtcbiAgfVxuXG4gICYtZGFuZ2VyIHtcbiAgICBAaW5jbHVkZSBidG4tMSgkcmVkLCBoc2woMCwgMCUsIDEwMCUpKTtcbiAgfVxuXG4gICYtcHVycGxlIHtcbiAgICBAaW5jbHVkZSBidG4tMSgkcHVycGxlLCBoc2woMCwgMCUsIDEwMCUpKTtcbiAgfVxufVxuXG4uYnRuLTEge1xuICBAZXh0ZW5kICVidG4tMTtcblxuICAmLXNlY29uZGFyeSB7XG4gICAgQGV4dGVuZCAlYnRuLTEtc2Vjb25kYXJ5O1xuICB9XG5cbiAgJi1saWdodCB7XG4gICAgQGV4dGVuZCAlYnRuLTEtbGlnaHQ7XG4gIH1cblxuICAmLXN1Y2Nlc3Mge1xuICAgIEBleHRlbmQgJWJ0bi0xLXN1Y2Nlc3M7XG4gIH1cblxuICAmLWluZm8ge1xuICAgIEBleHRlbmQgJWJ0bi0xLWluZm87XG4gIH1cblxuICAmLXdhcm5pbmcge1xuICAgIEBleHRlbmQgJWJ0bi0xLXdhcm5pbmc7XG4gIH1cblxuICAmLWRhbmdlciB7XG4gICAgQGV4dGVuZCAlYnRuLTEtZGFuZ2VyO1xuICB9XG5cbiAgJi1wdXJwbGUge1xuICAgIEBleHRlbmQgJWJ0bi0xLXB1cnBsZTtcbiAgfVxufVxuXG4vKiBPdXRsaW5lIEJ1dHRvbiAtIGJ0bi0yXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiBidG4tMigkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJvcmRlcjogMnB4IHNvbGlkIGxpZ2h0ZW4oJGNvbG9yLCAxMCUpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxufVxuXG4lYnRuLTIge1xuICBAaW5jbHVkZSBidG4tMigkbWFpbi1jb2xvcik7XG5cbiAgJi13aGl0ZSB7XG4gICAgQGluY2x1ZGUgYnRuLTIoI2ZmZik7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDE1JSk7XG4gICAgfVxuICB9XG59XG5cbi5idG4tMiB7XG4gIEBleHRlbmQgJWJ0bi0yO1xuXG4gICYtd2hpdGUge1xuICAgIEBleHRlbmQgJWJ0bi0yLXdoaXRlO1xuICB9XG59XG5cbi8qIEJ1dHRvbiBJY29uIFRleHQgLSAuYnRuLWljb24tdGV4dFxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4lYnRuLWljb24tdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAxNSUpO1xuICBjb2xvcjogI2ZmZjtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgaSB7XG4gICAgQGluY2x1ZGUgY2lyY2xlLW9iamVjdCgzMHB4LCBoc2xhKDAsIDAlLCAxMDAlLCAwKSwgMThweCk7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIH1cbn1cblxuLmJ0bi1pY29uLXRleHQge1xuICBAZXh0ZW5kICVidG4taWNvbi10ZXh0O1xufSIsIi8qIEdlbmVzaXMgV2lkZ2V0c1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogV2lkZ2V0XG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ud2lkZ2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuLndpZGdldCBwOmxhc3QtY2hpbGQsXG4ud2lkZ2V0IHVsID4gbGk6bGFzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLndpZGdldCB1bCA+IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLndpZGdldCB1bCA+IGxpOmxhc3Qtb2YtdHlwZSB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4ud2lkZ2V0IG9sID4gbGkge1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB0ZXh0LWluZGVudDogLTIwcHg7XG59XG5cbi53aWRnZXQgbGkgbGkge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMCAwIDAgMzBweDtcbiAgcGFkZGluZzogMDtcbn1cblxuLndpZGdldF9jYWxlbmRhciB0YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ud2lkZ2V0X2NhbGVuZGFyIHRkLFxuLndpZGdldF9jYWxlbmRhciB0aCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi8qIEZvcm1zXG4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiogRm9ybSBFcnJvcnNcbiAqL1xuJWludmFsaWQtbGFiZWwge1xuICBjb2xvcjogJHJlZCAhaW1wb3J0YW50O1xufVxuXG4laW52YWxpZC1pbnB1dCB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkcmVkICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi8qQ09OVEFDVCBGT1JNKi9cbjpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbjo6cGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbiN7JGlucHV0LWZpZWxkc30sXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogMzhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDFEMUQxO1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogIzU1NTtcblxuICBAaW5jbHVkZSBtb2JpbGUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICB9XG59XG5cbi8qIFJlbW92ZXMgYXdrd2FyZCBkZWZhdWx0IHN0eWxlcyBvbiBzb21lIGlucHV0cyBmb3IgaU9TICovXG4jeyRpbnB1dC1maWVsZHN9LFxudGV4dGFyZWEge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuI3skaW5wdXQtZmllbGRzfSxcbnNlbGVjdCxcbnRleHRhcmVhIHtcblxuICAmOmZvY3VzLFxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlYWVhO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmJiYmI7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCBzYXR1cmF0ZSgkbWFpbi1jb2xvciwgMTUlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgfVxufVxuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbmZvcm0ge1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgbGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIGNvbG9yOiAkZGFyay1jb2xvcjtcbiAgfVxuXG4gIHRleHRhcmVhIHtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICB9XG5cbiAgaW5wdXQge1xuICAgICZbdHlwZT1cImZpbGVcIl0ge1xuICAgICAgcGFkZGluZzogMC42ZW0gMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgICZbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICBAZXh0ZW5kICVidG47XG4gICAgICBAZXh0ZW5kICVidG4tMTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2YxZjFmMjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCAjY2NjO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKldQQ0Y3IFNQRUNJRklDIEVSUk9SIEFORCBBUFBST1ZBTCBNRVNTQUdFUyovXG4uY29udGFjdC1mb3JtIC53cGNmNyB7XG4gIGZvcm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuICAgIHBhZGRpbmc6IDNyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMnJlbTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgYXNwZWN0LXJhdGlvOiAyMTEvMzAzO1xuICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9zdGF0aWMvdGFrZWF3YXkuc3ZnJykgbm8tcmVwZWF0IGNlbnRlciAvIGNvbnRhaW47XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIDUwJSk7XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIC53cGNmNy1saXN0LWl0ZW0ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIHNwYW4ud3BjZjctZm9ybS1jb250cm9sLXdyYXAge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9mZi13aGl0ZTtcbiAgICAgICAgbGVmdDogLTUwcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDVweCAkeWVsbG93O1xuICAgICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBGcmVlXCI7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMC4zO1xuICAgICAgICBjb2xvcjogJG1haW4tY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3BhbltkYXRhLW5hbWU9XCJ5b3VyLW5hbWVcIl06YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxmNWI3XCI7XG4gICAgfVxuXG4gICAgc3BhbltkYXRhLW5hbWU9XCJ5b3VyLWVtYWlsXCJdOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcZjBlMFwiO1xuICAgIH1cblxuICAgIHNwYW5bZGF0YS1uYW1lPVwieW91ci1waG9uZVwiXTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGYwOTVcIjtcbiAgICB9XG5cbiAgICBzcGFuW2RhdGEtbmFtZT1cInlvdXItbWVzc2FnZVwiXTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGYwNzVcIjtcbiAgICB9XG5cbiAgICAud3BjZjctbm90LXZhbGlkLXRpcCB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRhNGE7XG4gICAgICBwYWRkaW5nOiAwLjJlbSAwLjZlbTtcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgNXB4IDVweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgICAgYm9yZGVyOiAwIHNvbGlkICNjYzRhNGE7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjJyZW07XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRhNGE7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBleHRlbmQgJWZsZXhib3gtYy1jO1xuICAgICAgICBAZXh0ZW5kICVpY29uO1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgICAgbGVmdDogNXB4O1xuICAgICAgICB0b3A6IGNhbGMoNTAlIC0gMTVweCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC53cGNmNy1hY2NlcHRhbmNlLW1pc3NpbmcsXG4gICAgLndwY2Y3LXZhbGlkYXRpb24tZXJyb3JzIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcZWEwYVwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIC53cGNmNy1tYWlsLXNlbnQtb2sge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcXGVhMDNcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNlbnQgLndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcZWEwM1wiO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8qIFNlbGVjdCBSZXNldFxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5zZWxlY3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjE7XG4gIGNvbG9yOiAjNTU1O1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBwYWRkaW5nOiAwLjZlbSAxLjRlbSAwLjVlbSAwLjhlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiAwLjNlbTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVTLUFTQ0lJLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIyOTIuNCUyMiUyMGhlaWdodCUzRCUyMjI5Mi40JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMwMDdDQjIlMjIlMjBkJTNEJTIyTTI4NyUyMDY5LjRhMTcuNiUyMDE3LjYlMjAwJTIwMCUyMDAtMTMtNS40SDE4LjRjLTUlMjAwLTkuMyUyMDEuOC0xMi45JTIwNS40QTE3LjYlMjAxNy42JTIwMCUyMDAlMjAwJTIwMCUyMDgyLjJjMCUyMDUlMjAxLjglMjA5LjMlMjA1LjQlMjAxMi45bDEyOCUyMDEyNy45YzMuNiUyMDMuNiUyMDcuOCUyMDUuNCUyMDEyLjglMjA1LjRzOS4yLTEuOCUyMDEyLjgtNS40TDI4NyUyMDk1YzMuNS0zLjUlMjA1LjQtNy44JTIwNS40LTEyLjglMjAwLTUtMS45LTkuMi01LjUtMTIuOHolMjIlMkYlM0UlM0MlMkZzdmclM0VcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC43ZW0gdG9wIDUwJSwgMCAwO1xuICBiYWNrZ3JvdW5kLXNpemU6IDAuNjVlbSBhdXRvLCAxMDAlO1xuXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICM4ODg7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICNhYWE7XG4gICAgYm94LXNoYWRvdzogMCAwIDFweCAzcHggcmdiYSg1OSwgMTUzLCAyNTIsIC43KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggLW1vei1tYWMtZm9jdXNyaW5nO1xuICAgIGNvbG9yOiAjMjIyO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAmIG9wdGlvbiB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxufVxuXG4vKiBDaGVja2JveCBSZXNldFxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgKyoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgID4qIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgICY6YWZ0ZXIsXG4gICAgJjpiZWZvcmUge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgbWluLXdpZHRoOiAxNnB4O1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBib3JkZXI6IHNvbGlkIDJweCAjY2NjO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogMTFweDtcbiAgICAgIHdpZHRoOiAyMnB4O1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDNweCAjOTk5O1xuICAgICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjOTk5O1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgc2NhbGUoMCk7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgICAgQGV4dGVuZCAldHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICB9XG4gIH1cblxuICArKjpob3ZlciB7XG4gICAgb3BhY2l0eTogMC44O1xuICB9XG5cbiAgJjpjaGVja2VkKyoge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCNmZmYsIDUlKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigjZmZmLCA1JSk7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSguOCk7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCA0cHggbGlnaHRlbigkZ3JlZW4sIDApO1xuICAgICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDRweCBsaWdodGVuKCRncmVlbiwgMCk7XG4gICAgfVxuICB9XG59XG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXdpZHRoOiAwO1xufSIsIi8qIExpc3Qgc3R5bGVcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVpdGVtLWxpc3Qge1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuXG4gIGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAyNHB4O1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIC8vIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgfVxuICB9XG5cbiAgb2wsXG4gIHVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5pdGVtLWxpc3Qge1xuICBAZXh0ZW5kICVpdGVtLWxpc3Q7XG5cbiAgPiBsaSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICB9XG59XG5cbi5udW1iZXItbGlzdCB7XG4gIEBleHRlbmQgJWl0ZW0tbGlzdDtcblxuICA+IGxpIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG4gIH1cbn1cbi8qIEVudHJ5IE1ldGFcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5lbnRyeS1mb290ZXIgLmVudHJ5LW1ldGEge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG5cbi5lbnRyeS1jb21tZW50cy1saW5rOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjAxNFwiO1xuICBtYXJnaW46IDAgNnB4IDAgMnB4O1xufVxuLyogUGFnaW5hdGlvblxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnBhZ2luYXRpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIEBleHRlbmQgJWZsZXhib3gtYy1jO1xuICBtYXJnaW46IDYwcHggMDtcbn1cblxuLmFkamFjZW50LWVudHJ5LXBhZ2luYXRpb24ge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYXJjaGl2ZS1wYWdpbmF0aW9uIGxpIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uYXJjaGl2ZS1wYWdpbmF0aW9uIGxpIGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBjb2xvcjogIzMzMztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uYXJjaGl2ZS1wYWdpbmF0aW9uIGxpIGE6Zm9jdXMsXG4uYXJjaGl2ZS1wYWdpbmF0aW9uIGxpIGE6aG92ZXIsXG4uYXJjaGl2ZS1wYWdpbmF0aW9uIGxpLmFjdGl2ZSBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgY29sb3I6ICNmZmY7XG59XG4iLCIvKiBTZWN0aW9uIFRpdGxlXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2VjdGlvbi10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cblxuICAmLmFsaWduLWMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB3aWR0aDogbWluKDEwMCUsIDUwZW0pO1xuICB9XG5cbiAgJi5mdWxsLXdpZHRoIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIGg0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6ICRtYWluLWNvbG9yO1xuICAgIGZvbnQtZmFtaWx5OiAkbWFpbi1mb250O1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cblxuICBwIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cblxuLyogRGl2aWRlclxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaHIge1xuICBib3JkZXI6IDA7XG59XG5cbmhyLnNtYWxsIHtcbiAgbWFyZ2luOiAxMHB4IDA7XG59XG5cbiVkaXZpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDE1cHggMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRtYWluLWNvbG9yO1xuICB3aWR0aDogNTBweDtcbn1cblxuLmRpdmlkZXIge1xuICBAZXh0ZW5kICVkaXZpZGVyO1xuXG4gICYtYyB7XG4gICAgQGV4dGVuZCAlZGl2aWRlcjtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn0iLCIvKiBJbWFnZSBDYXJkXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG48ZmlndXJlIGNsYXNzPVwiaW1nLWNhcmRcIj5cbiAgPGltZyBzcmM9XCJcIj5cbiAgPGZpZ2NhcHRpb24+PC9maWdjYXB0aW9uPlxuPC9maWd1cmU+XG4qL1xuLmltZy1jYXJkIHtcbiAgQGV4dGVuZCAlaW1nLWNhcmQ7XG59XG5cbiVpbWctY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuXG4gICY6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgei1pbmRleDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDEwLDEwJSwxMCUsdG9wKTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGltZyB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjhzIGVhc2UtaW4tb3V0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxuXG4gIGZpZ2NhcHRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKiAxLjE7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbn1cbi8qIExvZ28gR2FsbGVyeVxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuPHNlY3Rpb24gY2xhc3M9XCJsb2dvLXNob3djYXNlXCI+XG4gIDxoZWFkZXIgY2xhc3M9XCJzZWN0aW9uLXRpdGxlIGFsaWduLWNcIj5cbiAgICA8aDI+T3VyIENsaWVudHM8L2gyPlxuICAgIDxociBjbGFzcz1cImRpdmlkZXItY1wiPlxuICAgIDxwPkhlcmUgYXJlIHNvbWUgb2Ygb3VyIG91ciBjbGllbnRzLjwvcD5cbiAgPC9oZWFkZXI+XG5cbiAgPGRpdiBjbGFzcz1cImxvZ28tc2hvd2Nhc2UtZ2FsbGVyeVwiPlxuICAgIDxpbWcgc3JjPVwiLi4vLi4vLi4vc3RhdGljL2xvZ28tMS5qcGdcIj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG4qL1xuLmxvZ28tZmVhdHVyZS1nYWxsZXJ5IHtcbiAgQGV4dGVuZCAlbG9nby1mZWF0dXJlLWdhbGxlcnk7XG59XG5cbiVsb2dvLWZlYXR1cmUtZ2FsbGVyeSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgQGV4dGVuZCAlZmxleGJveC1jLWM7XG5cbiAgaW1nIHtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gIH1cbn1cbi8qIEltYWdlIEJhbm5lclxuICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgPHNlY3Rpb24gY2xhc3M9XCJpbWFnZS1iYW5uZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGNvbnRhaW5lci1sZWZ0XCI+XG4gICAgICA8aDM+VGl0bGU8L2gzPlxuICAgICAgPHA+RGVzY3JpcHRpb248L3A+XG4gICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiYnRuIGJ0bi0zXCI+TGVhcm4gTW9yZTwvYT5cbiAgICA8L2Rpdj5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvYXNkLmpwZ1wiPlxuICA8L3NlY3Rpb24+XG5cbiAgKi9cbi8vIC5pbWFnZS1iYW5uZXIge1xuLy8gICBAZXh0ZW5kICVpbWFnZS1iYW5uZXI7XG4vLyB9XG5cbiVpbWFnZS1iYW5uZXIge1xuICBAZXh0ZW5kICViYW5uZXI7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIHBhZGRpbmc6IDYwcHggMDtcbiAgfVxuXG4gIC5jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSgwLDAsMCwwLjEpO1xuXG4gICAgJi5jb250YWluZXItbGVmdCB7XG4gICAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoI3skZGVza3RvcC13aWR0aH0gKiAwLjUpO1xuICAgICAgICBtYXgtd2lkdGg6ICRkZXNrdG9wLXdpZHRoO1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygoMTAwJSAtICN7JGRlc2t0b3Atd2lkdGh9KSAvIDIpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuY29udGFpbmVyLXJpZ2h0IHtcbiAgICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoKDEwMCUgLSAjeyRkZXNrdG9wLXdpZHRofSkgLyAyKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKiBCYW5uZXJzXG4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiViYW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAwO1xuICBwYWRkaW5nOiA1MHB4IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIFJlZ3VsYXIgQmFubmVyXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVyZWd1bGFyLWJhbm5lciB7XG4gIEBleHRlbmQgJWJhbm5lcjtcbiAgQGluY2x1ZGUgY2hpbGQtbWFyZ2luKCdib3R0b20nLCAxMHB4KTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiAyNTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB6LWluZGV4OiAwO1xuXG4gIGgxIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICAgIGNvbG9yOiAkeWVsbG93O1xuICB9XG5cbiAgPioge1xuICAgIHdpZHRoOiBtaW4oOTAlLCAkZGVza3RvcC14bC13aWR0aCk7XG4gICAgbWFyZ2luLWlubGluZTogYXV0b1xuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vLi4vLi4vc3RhdGljL2JnLW1haW4ucG5nXCIpIHJlcGVhdCBjZW50ZXIgLyA1MHB4O1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIH1cblxuICAucG9zdC1jYXRlZ29yaWVzIGF7XG4gICAgY29sb3I6ICRvZmYtd2hpdGU7XG4gIH1cblxuICAud3AtcG9zdC1pbWFnZSB7XG4gICAgYXNwZWN0LXJhdGlvOiAxNi82O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiBtYXgoY2FsYygtMTAwdncgLyAxNiAqIDMpLCBjYWxjKC0jeyRkZXNrdG9wLXhsLXdpZHRofSAvIDE2ICogMykpO1xuICB9XG5cbn1cblxuLmVudHJ5LWhlYWRlcixcbi5yZWd1bGFyLWJhbm5lciB7XG4gIEBleHRlbmQgJXJlZ3VsYXItYmFubmVyO1xufVxuXG4vKiBHaWFudCBCYW5uZXJcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiVnaWFudC1iYW5uZXIge1xuICBoZWlnaHQ6IDUwMHB4O1xuICBtYXgtaGVpZ2h0OiA3MjBweDtcbiAgQGV4dGVuZCAlYmFubmVyO1xuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGhlaWdodDogY2FsYygxMDB2aCk7XG4gIH1cblxuICAuZW50cnktdGl0bGUsXG4gIC5zZWN0aW9uLXRpdGxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRleHQtc2hhZG93OiAzcHggM3B4IDZweCByZ2JhKDAsIDAsIDAsIDAuNik7XG5cbiAgICBoMSxcbiAgICBoMiB7XG4gICAgICBjb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gLmdpYW50LWJhbm5lciB7XG4vLyAgIEBleHRlbmQgJWdpYW50LWJhbm5lcjtcbi8vIH0iLCIvKiBIZXJvIFNsaWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogR2lhbnQgQmFubmVyIFNsaWRlciAqL1xuLmhlcm8tc2xpZGVyIHtcbiAgQGV4dGVuZCAldHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgQGV4dGVuZCAlYmFubmVyO1xuICAvLyB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIC8vIG9wYWNpdHk6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogYXV0bztcbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICB9XG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgbWF4LWhlaWdodDogNzIwcHg7XG4gIH1cbn1cblxuLmhlcm8tc2xpZGVyLS1zaG9ydCB7XG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgbWF4LWhlaWdodDogNTAwcHg7XG4gIH1cblxuICAuaGVyby1zbGlkZSB7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIGhlaWdodDogNTAwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgbWF4LWhlaWdodDogNTAwcHg7XG4gICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIH1cbiAgfVxufVxuLyogR2lhbnQgQmFubmVyIFNsaWRlICovXG4uaGVyby1zbGlkZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBoZWlnaHQ6IDcwdmg7XG4gIH1cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2dyAvIDE2ICogOSk7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgfVxuICAvKiBHZW5lcmljIEZpZ2NhcHRpb24gU3R5bGVzICovXG4gIGZpZ2NhcHRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgei1pbmRleDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDEwNywyMyUsMTAlLDAuMyk7XG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIHBhZGRpbmc6IDIwcHggNSU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgLy8gR3JhZGllbnQgRmFkZVxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogLTk5cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDI1NSwyNTUlLDI1NSUsdG9wKTtcbiAgICAgIH1cblxuICAgICAgYnIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKiAzO1xuICAgICAgY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMjUlKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIH1cblxuICAgIGg0IHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkc3VidGl0bGUtZm9udDtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4zO1xuICAgICAgY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMTAlKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgaGVpZ2h0OiA5MHZ3O1xuICAgIH1cbiAgfVxuICAvKiBDYXB0aW9uIFBvc2l0aW9ucyAqL1xuICAmLS1sZWZ0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgQGV4dGVuZCAlaGVyby1zbGlkZS1ncmFkaWVudC1mYWRlLWxlZnQtcmlnaHQ7XG4gICAgfVxuXG4gICAgJi5oZXJvLXNsaWRlLS1saWdodDpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtZmFkZSgyNTUsMjU1JSwyNTUlLHJpZ2h0KTtcbiAgICB9XG5cbiAgICAmLmhlcm8tc2xpZGUtLWRhcms6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGdyYWRpZW50LWZhZGUoMCwwJSwwJSxyaWdodCk7XG4gICAgfVxuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICBAZXh0ZW5kICVoZXJvLXNsaWRlLWZpZ2NhcHRpb24tbGVmdC1yaWdodDtcbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIGxlZnQ6IDV2dztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiByaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1yaWdodCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBAZXh0ZW5kICVoZXJvLXNsaWRlLWdyYWRpZW50LWZhZGUtbGVmdC1yaWdodDtcbiAgICB9XG5cbiAgICAmLmhlcm8tc2xpZGUtLWxpZ2h0OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDI1NSwyNTUlLDI1NSUsbGVmdCk7XG4gICAgfVxuXG4gICAgJi5oZXJvLXNsaWRlLS1kYXJrOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDAsMCUsMCUsbGVmdCk7XG4gICAgfVxuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICBAZXh0ZW5kICVoZXJvLXNsaWRlLWZpZ2NhcHRpb24tbGVmdC1yaWdodDtcbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIHJpZ2h0OiA1dnc7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1jZW50ZXIge1xuICAgICY6YmVmb3JlIHt9XG5cbiAgICAmLmhlcm8tc2xpZGUtLWxpZ2h0OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDI1NSwyNTUlLDI1NSUsYm90dG9tKTtcbiAgICB9XG5cbiAgICAmLmhlcm8tc2xpZGUtLWRhcms6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGdyYWRpZW50LWZhZGUoMCwwJSwwJSxib3R0b20pO1xuICAgIH1cblxuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDIwcHggNSU7XG4gICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgJi0tdG9wIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBAZXh0ZW5kICVoZXJvLXNsaWRlLWdyYWRpZW50LWZhZGUtdG9wLWJvdHRvbTtcbiAgICB9XG5cbiAgICAmLmhlcm8tc2xpZGUtLWxpZ2h0OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDI1NSwyNTUlLDI1NSUsYm90dG9tKTtcbiAgICB9XG5cbiAgICAmLmhlcm8tc2xpZGUtLWRhcms6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGdyYWRpZW50LWZhZGUoMCwwJSwwJSxib3R0b20pO1xuICAgIH1cblxuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgQGV4dGVuZCAlaGVyby1zbGlkZS1maWdjYXB0aW9uLXRvcC1ib3R0b207XG4gICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIG9iamVjdC1wb3NpdGlvbjogYm90dG9tO1xuICAgIH1cbiAgfVxuXG4gICYtLWJvdHRvbSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgQGV4dGVuZCAlaGVyby1zbGlkZS1ncmFkaWVudC1mYWRlLXRvcC1ib3R0b207XG4gICAgfVxuXG4gICAgJi5oZXJvLXNsaWRlLS1saWdodDpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtZmFkZSgyNTUsMjU1JSwyNTUlLHRvcCk7XG4gICAgfVxuXG4gICAgJi5oZXJvLXNsaWRlLS1kYXJrOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1mYWRlKDAsMCUsMCUsdG9wKTtcbiAgICB9XG5cbiAgICBmaWdjYXB0aW9uIHtcbiAgICAgIEBleHRlbmQgJWhlcm8tc2xpZGUtZmlnY2FwdGlvbi10b3AtYm90dG9tO1xuICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvKiBEYXJrIGZvbnQgc3R5bGVzICovXG4gICYtLWRhcmsgZmlnY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICoge1xuICAgICAgICB0ZXh0LXNoYWRvdzogMnB4IDJweCA0cHggcmdiYSgwLDAsMCwwLjUpO1xuICAgICAgfVxuXG4gICAgICBoMiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuXG4gICAgICBoNCB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuXG4gICAgICBwIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyogTGVmdCBhbmQgcmlnaHQgZmlnY2FwdGlvbiovXG4laGVyby1zbGlkZS1maWdjYXB0aW9uIHtcbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAmLWxlZnQtcmlnaHQge1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICB3aWR0aDogNDAlO1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICB9XG5cbiAgICAmLXRvcC1ib3R0b20ge1xuICAgICAgbGVmdDogMDtcbiAgICAgIGhlaWdodDogNTAlO1xuICAgICAgcGFkZGluZzogMCAyMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG5cbiVoZXJvLXNsaWRlLWdyYWRpZW50LWZhZGUge1xuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtaXgtYmxlbmQtbW9kZTogb3ZlcmxheTtcbiAgb3BhY2l0eTogMC41O1xuXG4gICYtbGVmdC1yaWdodCB7XG4gICAgQGV4dGVuZCAlaGVyby1zbGlkZS1ncmFkaWVudC1mYWRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogNTAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gICYtdG9wLWJvdHRvbSB7XG4gICAgQGV4dGVuZCAlaGVyby1zbGlkZS1ncmFkaWVudC1mYWRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA1MCU7XG4gIH1cbn1cbiIsIi8qIERlZmF1bHQgQmxvY2tzICovXG4uaW5saW5lLXdyYXAge1xuICB3aWR0aDogbWluKDkwJSwgJGRlc2t0b3AteGwtd2lkdGgpO1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xuXG4gICYubmFycm93IHtcbiAgICB3aWR0aDogbWluKDkwJSwgJGRlc2t0b3Atd2lkdGgpO1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcC14bCB7XG4gICAgICB3aWR0aDogbWluKDkwJSwgJGRlc2t0b3AteGwtd2lkdGgpO1xuICAgIH1cbiAgfVxuXG4gIC5pbmxpbmUtd3JhcCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmFsaWduY2VudGVyIC5zZWN0aW9uLXRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGhyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLyogSW1hZ2UgR2FsbGVyeSAqL1xuLmltYWdlLWdhbGxlcnktc2VjdGlvbiB7XG4gIHBhZGRpbmc6IDUwcHggNSU7XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBwYWRkaW5nOiA1MHB4O1xuICB9XG59XG5cbi5pbWFnZS1nYWxsZXJ5LWxpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIHBhZGRpbmc6IDNweDtcblxuICBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGhlaWdodDogMzAwcHg7XG4gICAgbWluLXdpZHRoOiAzMDBweDtcbiAgfVxuXG4gIGltZyB7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gICAgcGFkZGluZzogM3B4O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICB9XG59XG5cbi8qIExSIExheW91dCAqL1xuLmxyLWxheW91dCB7XG4gIC8vIGJhY2tncm91bmQ6IHVybChcIi4uLy4uLy4uL3N0YXRpYy9iYWNrZ3JvdW5kLmpwZ1wiKSBuby1yZXBlYXQgY2VudGVyIC8gY292ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA0MDBweDtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICB9XG5cbiAgJjpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICAuaW5saW5lLXdyYXAge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdy1yZXZlcnNlIHdyYXA7XG4gICAgICB9XG5cbiAgICAgIGZpZ3VyZSB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlubGluZS13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGV4dGVuZCAlZmxleGJveC1jLWM7XG4gICAgQGluY2x1ZGUgY29sdW1ucygwcHgsIDIpO1xuICB9XG5cbiAgZmlndXJlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMDtcbiAgICBoZWlnaHQ6IDkwdnc7XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgaGVpZ2h0OiA3MHZoO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgaGVpZ2h0OiA1MHZ3O1xuICAgICAgbWF4LWhlaWdodDogNzB2aDtcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJG9mZi13aGl0ZSwgMyUpO1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIHdpZHRoOiBjYWxjKDI1dncpO1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDUwdncgKyA2MHB4KTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5mZWF0dXJlLWFjdGl2ZSB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIG1heC13aWR0aDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMXMgZWFzZS1pbi1vdXQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgICBwYWRkaW5nOiA2MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFydGljbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAzMHB4IDUlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDA7XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIHBhZGRpbmc6IDUwcHggMTAwcHg7XG4gICAgfVxuICB9XG59XG5cbi5zZWNvbmRhcnktZ3JhcGhpYy0wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTtcbiAgb3BhY2l0eTogMC4zO1xuICB3aWR0aDogMjV2dztcbiAgaGVpZ2h0OiAyNXZ3O1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcbiAgbGVmdDogY2FsYyg1MCUgLSAxMi41dncpO1xuICB0b3A6IGNhbGMoNTAlIC0gMTIuNXZ3KTtcbn1cblxuLyogRWNvbW1lcmNlIEhpZ2hsaWdodHMgKi9cbi5hdHRyaWJ1dGUtaGlnaGxpZ2h0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuICBwYWRkaW5nOiA2MHB4IDUlIDUwcHg7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgcGFkZGluZzogNjBweCAxMCUgNTBweDtcbiAgfVxuXG4gIC5pbmxpbmUtd3JhcCB7XG4gICAgQGluY2x1ZGUgY29sdW1ucygyNXB4LCA0KTtcblxuICAgID4qIHtcbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmljb24tY2FyZCB7XG4gICAgaW1nIHtcbiAgICAgIGZpbHRlcjogc2F0dXJhdGUoMCkgaW52ZXJ0KDEpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICBoNCB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gIH1cbn1cblxuLyogRm9vZCBNZW51ICovXG4uZGlzaC1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDcwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJG9mZi13aGl0ZSwgMTAlKTtcbiAgfVxuXG4gIGFydGljbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDAgMSA0NSU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcblxuICAgIHAge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMTAlKTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgZmlndXJlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmaWd1cmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgKyA1cHgpO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgfVxuXG4gICAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmRpc2gtdGl0bGUge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG5cbiAgc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm07XG4gIH1cbn1cblxuXG4vKiBQcm9kdWN0IEZlYXR1cmUgKi9cbi5saWJyYXJ5LWdhbGxlcnkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIG1hcmdpbi10b3A6IDUwcHg7XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gIH1cblxuICAuc2luZ2xlLXByb2R1Y3QtZmVhdHVyZSB7XG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICBib3R0b206IC0zMDBweDtcbiAgICB9XG4gIH1cblxuICAuc2luZ2xlLXByb2R1Y3QtZmVhdHVyZS5hY3RpdmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDUwMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgPmltZyB7XG4gICAgICB0cmFuc2l0aW9uOiAwLjZzO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG5cbiAgICBmaWdjYXB0aW9uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRyYW5zaXRpb246IDAuNnM7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBwYWRkaW5nOiAyNXB4O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCAwJSwgMC41KTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIHBhZGRpbmc6IDI1cHggNTBweDtcbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIH1cblxuICAgICAgcCB7XG4gICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIFN0YXRlIHdoZW4gbm90IGFjdGl2ZSAqL1xuICAuc2luZ2xlLXByb2R1Y3QtZmVhdHVyZTpub3QoLmFjdGl2ZSkge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBmaWdjYXB0aW9uIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDAlLCA5NSUpO1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgIG1hcmdpbjogMDtcblxuICAgICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGhzbCgwLCAwJSwgODUlKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgcGFkZGluZzogMzBweCAyMHB4O1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGhzbCgwLCAwJSwgODUlKTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIGRhcmtlbigkbWFpbi1jb2xvciwgMjAlKTtcblxuICAgICAgICBoMyB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LWZhbWlseTogJG1haW4tZm9udDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IDEuN3JlbTtcblxuICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIENvbnRhY3QgMSAqL1xuLmNvbnRhY3QtMSB7XG4gIG1hcmdpbjogODBweCAwO1xufVxuXG4uY29udGFjdC1kZXRhaWxzLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBnYXA6IDQwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDgwcHggMDtcblxuICAuY29udGFjdC1kZXRhaWwge1xuICAgIGZsZXg6IDEgMSAyMDBweDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDEwcHg7XG5cbiAgICBpIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgbWluLXdpZHRoOiA0MHB4O1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG4gICAgfVxuXG4gICAgLmNvbnRhY3QtZGV0YWlsLWNhcHRpb24ge1xuICAgICAgYiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uY29udGFjdC0xX21hcGVtYmVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDUwcHggMCAxNTBweDtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiA3NSU7XG4gICAgYm90dG9tOiAtMjUlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvZmYtd2hpdGU7XG4gICAgei1pbmRleDogLTE7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGRhcmtlbigkb2ZmLXdoaXRlLCAxMCUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oJG9mZi13aGl0ZSwgMTAlKTtcblxuICAgIEBleHRlbmQgLmltYWdlLXJlbGVhc2U7XG4gIH1cbn0iLCIuYXJjaGl2ZSAuY2F0ZWdvcnktcHJvbW90aW9ucyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuXG4gIC5hcmNoaXZlLXRpdGxlIHtcbiAgICBjb2xvcjogJHllbGxvdztcbiAgfVxuXG4gIGgyLFxuICBwLFxuICBzbWFsbCB7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbn1cblxuLnBvc3QtYXJjaGl2ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAxMDBweDtcblxuICAuYXJjaGl2ZS1kZXNjcmlwdGlvbiB7XG4gICAgQGV4dGVuZCAlcmVndWxhci1iYW5uZXI7XG4gICAgLy8gcGFkZGluZzogNTBweCA1JSAwO1xuICAgIC8vIGFzcGVjdC1yYXRpbzogYXV0bztcblxuICAgICYuaGFzLXBvc3QtdGh1bWJuYWlsIHtcbiAgICAgIC8vIEBleHRlbmQgJWhhcy1wb3N0LXRodW1ibmFpbDtcbiAgICB9XG4gIH1cblxuICAucG9zdC1lbnRyeS1saXN0IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiBtaW4oOTAlLCAkZGVza3RvcC14bC13aWR0aCk7XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgLy8gZmxleDogMyAxIDA7XG4gICAgICAvLyBtYXJnaW4tbGVmdDogNSU7XG4gICAgICAvLyBtYXJnaW4tcmlnaHQ6IDUwcHg7XG4gICAgICAvLyBtYXgtd2lkdGg6IDY1MHB4O1xuICAgIH1cbiAgfVxuXG4gIC5zaWRlYmFyIHtcbiAgICBwYWRkaW5nOiAwIDUlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmbGV4OiAxIDEgMDtcbiAgICAgIG1hcmdpbi1yaWdodDogNSU7XG4gICAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICAgIH1cbiAgfVxufVxuXG4ucG9zdC1lbnRyeS1saXN0IHtcblxuICAuZW50cnktY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDUwcHg7XG5cbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgZ2FwOiAyMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5lbnRyeSB7XG4gICAgJisuZW50cnkge1xuICAgICAgbWFyZ2luLWJsb2NrOiA1cmVtIDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHBhZGRpbmc6IDMwcHggMzBweCAwO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgLmVudHJ5LWNvbnRlbnQ+YSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTEwZGVnKTtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCA1MCUpIHJvdGF0ZSgxMGRlZyk7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5lbnRyeS1jb250ZW50PmEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMDtcblxuICAgICAgJjpiZWZvcmUsXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgLmVudHJ5LWNvbnRlbnQ+YSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uLy4uL3N0YXRpYy9nb29kdmliZXMud2VicCcpIG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9zdGF0aWMveXVtLndlYnAnKSBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgLmVudHJ5LWNvbnRlbnQ+YSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uLy4uL3N0YXRpYy95dW1teS53ZWJwJykgbm8tcmVwZWF0IGNlbnRlciAvIGNvbnRhaW47XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uLy4uL3N0YXRpYy93b3cud2VicCcpIG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gJjpudGgtY2hpbGQoZXZlbikgLmVudHJ5LWNvbnRlbnQge1xuICAgIC8vICAgZmxleC1mbG93OiByb3ctcmV2ZXJzZTtcblxuICAgIC8vICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAvLyAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgfVxuXG4gIGgzIHtcbiAgICBtYXJnaW46IDEwcHggMDtcbiAgfVxuXG4gIHAge1xuICAgIEBleHRlbmQgLnNtYWxsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cblxuICAuYnRuLTMge1xuICAgIC8vIEBleHRlbmQgJWJ0bi1zbWFsbDtcbiAgICAvLyBAZXh0ZW5kICVidG4tMS1saWdodDtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5jYXB0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAvLyBtYXJnaW4tYmxvY2s6IDIwcHg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAvLyBoMiB7XG4gICAgLy8gZmxleDogMSAxIGF1dG87XG4gICAgLy8gfVxuICB9XG5cbiAgLmVudHJ5LWNvbnRlbnRfX3RodW1ibmFpbC1saW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogMTcwcHg7XG4gICAgYXNwZWN0LXJhdGlvOiAxNi85O1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIG1pbi13aWR0aDogNTUlO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cbiAgfVxufVxuXG4ucHJvbW90aW9uLWZhcSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgY29sb3I6ICNmZmY7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gIH1cblxuICAmW29wZW5dIHN1bW1hcnkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBzdW1tYXJ5IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogI2ZmZjtcblxuICAgICtkaXYge1xuICAgICAgbWFyZ2luLWJsb2NrOiAwLjVyZW07XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuICAgICAgcCB7XG4gICAgICAgIGNvbG9yOiBoc2woMCwgMCUsIDMwJSkgIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLyogU3RydWN0dXJlIG9mIHNpbmdsZSBwb3N0Ki9cbi5zaW5nbGUtcG9zdCAuc2l0ZS1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2ZmLXdoaXRlO1xufVxuXG4ucG9zdC1zaW5nbGUge1xuICAuZW50cnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW46IDAgYXV0byAxMHJlbTtcblxuICB9XG5cbiAgLmhhcy1wb3N0LXRodW1ibmFpbCAuZW50cnktaGVhZGVyKyoge1xuICAgIG1hcmdpbi10b3A6IG1pbihjYWxjKDEwMHZ3IC8gMTYgKiAzKSwgY2FsYygjeyRkZXNrdG9wLXhsLXdpZHRofSAvIDE2ICogMykpO1xuICB9XG5cbiAgLmVudHJ5LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDAgNSU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZsZXg6IDMgMSAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDUlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1MHB4O1xuICAgICAgbWF4LXdpZHRoOiA2NTBweDtcbiAgICB9XG4gIH1cblxuICAuc2lkZWJhciB7XG4gICAgcGFkZGluZzogMCA1JTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZmxleDogMSAxIDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDUlO1xuICAgICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICB9XG4gIH1cbn1cblxuLyogUHJpbWFyeSBzaWRlYmFyIG9ubHkgKi9cbi5zaWRlYmFyLXByaW1hcnkge1xuICAud2lkZ2V0LXRpdGxlIHtcbiAgICBAaW5jbHVkZSBsaW5lLWJvcmRlcig0cHgsIGhzbCgwLCAwJSwgODUlKSwgJ2JvdHRvbScsIDEwcHgpO1xuICB9XG59XG5cbi5lbnRyeS1jb250ZW50IHtcbiAgLmVudHJ5LW1ldGEge1xuICAgIEBleHRlbmQgLnNtYWxsO1xuICAgIGNvbG9yOiAkZGFyay1jb2xvcjtcbiAgfVxufVxuXG4vKiBTaW5nbGUgUGFnZSBDb250ZW50XG4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnBvc3Qtc2luZ2xlIHtcbiAgLmVudHJ5LWNvbnRlbnQge1xuICAgIEBleHRlbmQgJWJsb2ctdHlwb2dyYXBoeTtcblxuICAgID51bCB7XG4gICAgICBAZXh0ZW5kIC5pdGVtLWxpc3Q7XG4gICAgfVxuXG4gICAgPm9sIHtcbiAgICAgIEBleHRlbmQgLm51bWJlci1saXN0O1xuICAgIH1cbiAgfVxuXG4gIC8vXG4gIC8vIC5jb21tZW50LXJlc3BvbmQge1xuICAvLyAgIHBhZGRpbmc6IDAgNSU7XG4gIC8vIH1cbn0iLCIuZXJyb3I0MDQge1xuICAgIG1haW4uY29udGVudCB7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNzAwcHgpO1xuICAgICAgICBtYXJnaW46IDE1MHB4IGF1dG8gNTBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5zZWFyY2gtZm9ybSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufSIsIiVyb3RhdGluZy1jaXJjbGUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xuICB3aWR0aDogMTIwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBhc3BlY3QtcmF0aW86IDE7XG4gIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vc3RhdGljL2NpcmNsZS1ncmFwaGljLnBuZycpIG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xuICBhbmltYXRpb246IGNpcmNsZVJvdGF0ZSAzMHMgbGluZWFyIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGNpcmNsZVJvdGF0ZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuLmludmVydCB7XG4gIGZpbHRlcjogaW52ZXJ0KDEpO1xufVxuXG4uYmctbGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2ZmLXdoaXRlO1xufVxuXG4ucm0tbWIge1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5ybS1wdCB7XG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbn1cblxuLmdhcC0yMCB7XG4gIGdhcDogMi41cmVtO1xuXG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgZ2FwOiA1cmVtO1xuXG4gIH1cbn1cblxuLml0ZW1zLWNlbnRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5ncmlkLWNvbC0xLTIge1xuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDJmcjtcbiAgfVxufVxuXG4uZ3JpZC1jb2wtMS0xIHtcbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIH1cbn1cblxuLyogRWNvbW1lcmNlIEhpZ2hsaWdodHMgKi9cbi5lY29tbWVyY2UtaGlnaGxpZ2h0cyB7XG4gIEBpbmNsdWRlIGNvbHVtbnMoMTVweCwgNCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuICBwYWRkaW5nOiA2MHB4IDUlIDUwcHg7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgcGFkZGluZzogNjBweCAxMCUgNTBweDtcbiAgfVxuXG4gID4qIHtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuaWNvbi1jYXJkIHtcbiAgICBpbWcge1xuICAgICAgZmlsdGVyOiBzYXR1cmF0ZSgwKSBpbnZlcnQoMSk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIGg0IHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxufVxuXG4uaWNvbi1jYXJkIHtcbiAgQGluY2x1ZGUgdGh1bWJuYWlsLWNhcmQoMTAwJSwgNDBweCwgcmlnaHQsIDEwcHgpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgfVxuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHt9XG4gIH1cblxuICBoNCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDIwJSk7XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cblxuICAuY2FwdGlvbiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLyogRmxvYXRpbmcgYnV0dG9uICovXG4uZmxvYXRpbmctd2hhdHNhcHAtYnV0dG9uIHtcbiAgQGluY2x1ZGUgY2lyY2xlLW9iamVjdCg0NnB4LCAjMjVkMzY2LCAyM3B4KTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybTtcbiAgcmlnaHQ6IDEwcHg7XG4gIGJvdHRvbTogMTBweDtcbiAgei1pbmRleDogOTk5OTk5OTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm94LXNoYWRvdzogMCAwIDVweCAwIHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG5cbi8qIFN3aXBlciBCdXR0b24gKi9cbi5zd2lwZXItYnV0dG9uLW5leHQsXG4uc3dpcGVyLWJ1dHRvbi1wcmV2IHtcbiAgY29sb3I6ICRtYWluLWNvbG9yO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR5ZWxsb3c7XG4gICAgcGFkZGluZzogMXJlbSAxLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICB9XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gIH1cbn1cblxuXG4ucGFnZS10ZW1wbGF0ZS1jb250ZW50IHtcbiAgbWFpbi5jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2ZmLXdoaXRlO1xuICB9XG5cbiAgaDEge1xuICAgIGNvbG9yOiAkeWVsbG93O1xuICB9XG5cbiAgLmVudHJ5LWNvbnRlbnQge1xuICAgIHdpZHRoOiBtaW4oOTAlLCAkZGVza3RvcC13aWR0aCk7XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICBtYXJnaW4tYmxvY2s6IDVyZW07XG4gICAgQGV4dGVuZCAlYmxvZy10eXBvZ3JhcGh5O1xuICB9XG59XG5cbi5ob21lLW1haW4ge1xuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGFzcGVjdC1yYXRpbzogMTYvOTtcbiAgfVxuXG4gIC5pbmxpbmUtd3JhcCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IG1pbigxMDAlLCAkZGVza3RvcC14bC13aWR0aCk7XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIH1cbiAgfVxuXG4gIC5zZWN0aW9uLXRpdGxlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgIHBhZGRpbmc6IDcuNXJlbSA1JTtcblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBwYWRkaW5nOiA3LjVyZW0gNXJlbTtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICBjb2xvcjogJHllbGxvdztcbiAgICAgIGZvbnQtc2l6ZTogOGNoO1xuXG4gICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICBmb250LXNpemU6IDE1Y2g7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAqIDEuNTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIG1hcmdpbi10b3A6IGF1dG87XG5cbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDA7XG5cblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgbGVmdDogLTkwcHg7XG4gICAgICAgIHRvcDogLTkwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmhvbWUtbWFpbl9faW1hZ2VzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9zdGF0aWMvYmctbWFpbi5wbmcnKSByZXBlYXQgY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICAgb3JkZXI6IC0xO1xuICAgIH1cblxuICAgID5pbWcge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICAgd2lkdGg6IDQ1JTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgIHRyYW5zaXRpb246IDAuM3M7XG5cbiAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgbGVmdDogMzAlO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICBib3R0b206IDUwcHg7XG4gICAgICAgIHJpZ2h0OiAtMzBweDtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICBib3R0b206IDBweDtcbiAgICAgICAgbGVmdDogLTMwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIGhvbWUgbWFpbiAyXG4uaG9tZS1tYWluLTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHotaW5kZXg6IDA7XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTByZW07XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vd3AtY29udGVudC91cGxvYWRzL1dlbGNvbWUtdG8tUmFzb3JuLUJHLndlYnAnKSBuby1yZXBlYXQgY2VudGVyIC8gY292ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgb3BhY2l0eTogMC4yO1xuICAgIGZpbHRlcjogc2F0dXJhdGUoMCk7XG5cbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBhc3BlY3QtcmF0aW86IDE2Lzk7XG4gICAgfVxuICB9XG5cbiAgLmlubGluZS13cmFwIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTByZW07XG4gIH1cblxuICBoMiB7XG4gICAgY29sb3I6ICR5ZWxsb3c7XG4gICAgZm9udC1zaXplOiA3LjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLnNlY3Rpb24tdGl0bGUge1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBtYXJnaW4tdG9wOiAtNXJlbTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIGNvbG9yOiAkb2ZmLXdoaXRlO1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKiAxLjI1O1xuXG4gICAgICBtYXJrIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkb2ZmLXdoaXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGgzIHtcbiAgICAgIGNvbG9yOiAkb2ZmLXdoaXRlO1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKiAyLjU7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgICBtYXJnaW4tdG9wOiAtMTAwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XG5cbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIGhlaWdodDogMTIwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xMjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4uaG9tZS1tYWluLTJfX2ltYWdlcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDFyZW07XG4gIHBhZGRpbmctdG9wOiAxMHJlbTtcblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxN3JlbTtcbiAgfVxuXG4gIGZpZ3VyZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAyNSU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjI1KTtcbiAgfVxuXG4gIGZpZ2NhcHRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMC41KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGZvbnQtZmFtaWx5OiAkdGl0bGUtZm9udDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuICAgIGNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgfVxuXG4gIGltZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oNTAlIDAlLCAxMDAlIDUwJSwgNTAlIDEwMCUsIDAlIDUwJSk7XG4gIH1cbn1cblxuLmhvbWUtbWFpbi0yX19pbWFnZTEge1xuICBtYXJnaW4tdG9wOiAwcmVtO1xuICBsZWZ0OiAwJTtcbn1cblxuLmhvbWUtbWFpbi0yX19pbWFnZTIge1xuICBtYXJnaW4tdG9wOiAtMTByZW07XG4gIGxlZnQ6IDMwJTtcblxuICAmLnNjZW5lMiB7XG4gICAgei1pbmRleDogMjtcbiAgfVxufVxuXG4uaG9tZS1tYWluLTJfX2ltYWdlMyB7XG4gIG1hcmdpbi10b3A6IDVyZW07XG4gIGxlZnQ6IDU1JTtcbn1cblxuLmhvbWUtbWFpbi0yX19pbWFnZTQge1xuICBtYXJnaW4tdG9wOiAtMTVyZW07XG4gIGxlZnQ6IDc1JTtcbn1cblxuLy8gV1dTIHNlY3Rpb25cbi53d3Mtc2VjdGlvbiB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAvLyBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAxODQsIDI4KTtcbiAgLy8gYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgyNTUsIDE4NCwgMjgsIDEpIDAlLCByZ2JhKDIwNiwgMCwgODgsIDEpIDUwJSk7XG4gIC8vIGJhY2tncm91bmQtc2l6ZTogMTAwJSAzMDAlO1xuICAvLyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMDtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi8uLi8uLi9zdGF0aWMvYmctbWFpbi5wbmdcIikgcmVwZWF0IGNlbnRlciAvIDUwcHg7XG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICAuc2VjdGlvbi10aXRsZSBoMiB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiA1cmVtO1xuICB9XG59XG5cbi53d3Mtc2VjdGlvbl9faW1hZ2VzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMHZ3O1xuICB6LWluZGV4OiAzO1xuXG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgaGVpZ2h0OiAyMHZ3O1xuICB9XG59XG5cbi53d3Mtc2VjdGlvbl9fYmFkZ2VzIHtcbiAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgei1pbmRleDogLTE7XG5cbiAgPmltZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgIHdpZHRoOiAxMjBweDtcbiAgICB6LWluZGV4OiAtMTtcblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwJSk7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMCUpIHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAlKTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCg0KSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMCUpIHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNSkge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMCUpO1xuICAgIH1cbiAgfVxufVxuXG4ud3dzLXNlY3Rpb25fX2ltYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBhc3BlY3QtcmF0aW86IDE7XG4gIHdpZHRoOiBjYWxjKDUwJSAtIDE1cHgpO1xuICBsZWZ0OiA1MCU7XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICB3aWR0aDogMjAlO1xuICB9XG5cbiAgJjpob3ZlciBpbWcge1xuICAgIGJvcmRlcjogMTBweCBzb2xpZCAkeWVsbG93O1xuICB9XG5cbiAgaW1nIHtcbiAgICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAycmVtO1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cblxuICBmaWdjYXB0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjtcbiAgICBib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtZmFtaWx5OiAkdGl0bGUtZm9udDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMDtcbiAgICBjb2xvcjogJG1haW4tY29sb3I7XG4gICAgcGFkZGluZzogMXJlbSAxLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgNTAlKTtcbiAgfVxufVxuXG4ud3dzLXNlY3Rpb25fX2ltYWdlMSB7XG4gIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTEwMCUgLSAxNXB4KSk7XG4gIH1cblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC0xMDAlIC0gMTAwJSAtIDMwcHgpKTtcbiAgfVxuXG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xufVxuXG4ud3dzLXNlY3Rpb25fX2ltYWdlMiB7XG4gIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE1cHgpO1xuICB9XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNTAlIC0gNTAlIC0gMTBweCkpO1xuICB9XG5cbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG59XG5cbi53d3Mtc2VjdGlvbl9faW1hZ2UzIHtcbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTUwJSArIDUwJSArIDEwcHgpKTtcbiAgfVxuXG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG59XG5cbi53d3Mtc2VjdGlvbl9faW1hZ2U0IHtcbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygxMDAlICsgMzBweCkpO1xuICB9XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygxMDAlICsgMzBweCkpO1xuICB9XG5cbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbn1cblxuLmhvbWUtbWVudSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG9mZi13aGl0ZTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuXG4gIC8vICY6YWZ0ZXIge1xuICAvLyAgIGNvbnRlbnQ6IFwiXCI7XG4gIC8vICAgcG9zaXRpb246IGFic29sdXRlO1xuICAvLyAgIHRvcDogLTMwcHg7XG4gIC8vICAgbGVmdDogLTEwcHg7XG4gIC8vICAgd2lkdGg6IDIwMHB4O1xuICAvLyAgIGRpc3BsYXk6IGJsb2NrO1xuICAvLyAgIGFzcGVjdC1yYXRpbzogMzUwLzEyMztcbiAgLy8gICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTBkZWcpO1xuICAvLyAgIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vc3RhdGljL2F3ZXNvbWUuc3ZnJykgbm8tcmVwZWF0IGNlbnRlciAvIGNvbnRhaW47XG4gIC8vIH1cblxuICAuc2VjdGlvbi10aXRsZSB7XG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiA1Y2g7XG5cbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIGZvbnQtc2l6ZTogOWNoO1xuICAgICAgfVxuXG4gICAgICBiZGkge1xuICAgICAgICBjb2xvcjogJHllbGxvdztcblxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubWVudS1uYXZpZ2F0aW9uIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGFkZGluZzogMTBweCAzMHB4O1xuXG4gIC8vIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vc3RhdGljL2JnLW1haW4ucG5nJykgcmVwZWF0IGNlbnRlcjtcbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBnYXA6IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XG4gIH1cbn1cblxuLm1lbnUtbGluay1vYmplY3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIGFzcGVjdC1yYXRpbzogNC81O1xuXG4gIEBpbmNsdWRlIHRhYmxldCB7fVxuXG4gICY6aG92ZXIge1xuICAgIC5idG4ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gICAgfVxuXG4gICAgLm1lbnUtbGluay1vYmplY3RfX3RpdGxlIHt9XG4gIH1cblxuICA+KiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLm1lbnUtbGluay1vYmplY3RfX3RpdGxlIHtcbiAgICBjb2xvcjogJHllbGxvdztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogMC41cmVtIDJyZW07XG4gICAgdHJhbnNpdGlvbjogMC42cztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAvLyB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4xO1xuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgd2lkdGg6IDc1JTtcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSArIDAuNTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIEBpbmNsdWRlIGFic29sdXRlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIC8vIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgIHRyYW5zaXRpb246IDAuNnM7XG4gIH1cblxuICAuYnRuIHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAyMHB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAyMHB4KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLy8gSG9tZSBBYm91dFxuLmhvbWUtYWJvdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vc3RhdGljL2JnLXllbGxvdy5wbmcnKSByZXBlYXQgY2VudGVyO1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICB6LWluZGV4OiAzO1xuXG4gIEBpbmNsdWRlIHRhYmxldCB7fVxuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIH1cblxuICAuc2VjdGlvbi10aXRsZSB7XG4gICAgd2lkdGg6IG1pbig5MCUsICRkZXNrdG9wLXdpZHRoKTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZzogNy41cmVtIDA7XG5cbiAgICBoMiB7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICogMztcblxuICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKiA2O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uaG9tZS1jdGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuICBhc3BlY3QtcmF0aW86IDE2LzY7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gICAgdG9wOiAzMHB4O1xuICAgIGxlZnQ6IDMwcHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDYwcHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gNjBweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG4gICAgei1pbmRleDogLTE7XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgdG9wOiA0MHB4O1xuICAgICAgbGVmdDogNDBweDtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA4MHB4KTtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gODBweCk7XG4gICAgfVxuICB9XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAtMjtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi8uLi8uLi9zdGF0aWMvYmctcGluay5wbmdcIikgcmVwZWF0IGNlbnRlciAvIDMwcHg7XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgYmFja2dyb3VuZC1zaXplOiA1MHB4O1xuICAgIH1cbiAgfVxuXG4gIGgyIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDZjaDtcblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBmb250LXNpemU6IDEwY2g7XG4gICAgfVxuXG4gICAgYmRpIHtcbiAgICAgIGNvbG9yOiAkeWVsbG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gTG9hZGluZyBCYXJcbi8qIEZ1bGxzY3JlZW4gTG9hZGluZyBTY3JlZW4gKi9cbiNsb2FkaW5nLXNjcmVlbiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuICB6LWluZGV4OiA5OTk5O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgdHJhbnNpdGlvbjogMC41cztcbn1cblxuLyogUm90YXRpbmcgQ2lyY2xlICovXG4jcm90YXRpbmctb2JqZWN0IHtcbiAgd2lkdGg6IDIwMHB4O1xuICBoZWlnaHQ6IDIwMHB4O1xuICBib3JkZXI6IDEwcHggc29saWQgI2YwZjBmMDtcbiAgYm9yZGVyLXRvcDogMTBweCBzb2xpZCAkeWVsbG93O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLyogU3BpbiBhbmltYXRpb24gKi9cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuI3BlcmNlbnRhZ2UtdGV4dCB7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICogMztcbiAgZm9udC1mYW1pbHk6ICR0aXRsZS1mb250O1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLy8gQWJvdXQgUGFnZVxuc2VjdGlvbi5hYm91dC1tYWluLXNlY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctYm90dG9tOiAxMHJlbTtcbiAgei1pbmRleDogMTtcblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIHBhZGRpbmctdG9wOiAxNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVyZW07XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBAZXh0ZW5kICVyb3RhdGluZy1jaXJjbGU7XG4gICAgYm90dG9tOiAtMzBweDtcbiAgICByaWdodDogLTMwcHg7XG4gIH1cblxuICAuc2VjdGlvbi10aXRsZSB7XG4gICAgd2lkdGg6IG1pbigxMDAlLCA1MGVtKTtcblxuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogN2NoO1xuICAgICAgZm9udC1mYW1pbHk6ICR0aXRsZS1mb250O1xuICAgICAgY29sb3I6ICR5ZWxsb3c7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBjaDtcbiAgICAgIH1cblxuICAgICAgc3BhbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHAge1xuICAgICAgQGV4dGVuZCAubGFyZ2U7XG4gICAgICBjb2xvcjogJG9mZi13aGl0ZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuXG4gICAgaDQge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0cmVtO1xuICAgIH1cbiAgfVxuXG4gIC5pbmxpbmUtd3JhcCB7XG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgfVxuICB9XG59XG5cbi5pY29uLXRleHQtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxcmVtO1xuICBtYXJnaW4tYmxvY2s6IDVyZW07XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBnYXA6IDNyZW07XG4gIH1cbn1cblxuLmljb24tdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDAgMSA0NSU7XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBmbGV4OiAwIDAgMjAwcHg7XG4gIH1cblxuICBpbWcge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMnJlbTtcbiAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cblxuICBwIHtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiAkZGFyay1jb2xvcjtcbiAgfVxufVxuXG4uaWNvbi10ZXh0LWhvcml6b250YWwtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgZ2FwOiAycmVtO1xuXG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgZmxleDogMSAxIDIwMHB4O1xuICAgIH1cbiAgfVxufVxuXG4uaWNvbi10ZXh0LWhvcml6b250YWwge1xuICBmaWd1cmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAycmVtO1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIGdhcDogMXJlbTtcbiAgICB9XG5cbiAgICBkaXYge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICBmbGV4OiAwIDAgNjBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTByZW07XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwcHggMXB4IDNweCAwcHggaHNsYSgzMzQsIDEwMCUsIDIwJSwgMC40KSwgaW5zZXQgMHB4IDVweCAxMHB4IDBweCBoc2xhKDMzNCwgODAlLCAzMCUsIDAuMik7XG5cbiAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgIGZsZXg6IDAgMCA4MHB4O1xuICAgICAgfVxuXG4gICAgICBpbWcge1xuICAgICAgICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMS4zcmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZpZ2NhcHRpb24ge1xuICAgIGg0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gICAgICBjb2xvcjogJGRhcmstY29sb3I7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgY29sb3I6ICRkYXJrLWNvbG9yO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICB9XG4gIH1cbn1cblxuLnZpc2lvbi1taXNzaW9uLXNlY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vLi4vLi4vc3RhdGljL2JnLW1haW4ucG5nXCIpIHJlcGVhdCBjZW50ZXIgLyA3NXB4O1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHdpZHRoOiAyNSU7XG4gICAgfVxuICB9XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDE1MHB4O1xuICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICBib3R0b206IC0wcHg7XG4gICAgcmlnaHQ6IDMwcHg7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vLi4vLi4vc3RhdGljL2tlYmFiLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbjtcblxuICB9XG5cbiAgLmltYWdlLWNsaXAge1xuICAgIG1hcmdpbi10b3A6IC0xMnJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAtMTJyZW07XG5cbiAgICBpbWcge1xuICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybCgnLi4vLi4vLi4vc3RhdGljL2Jsb2Itcm91bmQuc3ZnJyk7XG4gICAgICBtYXNrLWltYWdlOiB1cmwoJy4uLy4uLy4uL3N0YXRpYy9ibG9iLXJvdW5kLnN2ZycpO1xuICAgICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIG1hc2stcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIG1hc2stc2l6ZTogY29udGFpbjtcbiAgICB9XG4gIH1cbn1cblxuLnZpc2lvbi1taXNzaW9uIHtcbiAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICBtYXJnaW4tdG9wOiAxMnJlbTtcbiAgfVxuXG4gIGhyIHtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgaGVpZ2h0OiAycmVtO1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMC4zO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJG9mZi13aGl0ZTtcbiAgfVxuXG4gIGgyLFxuICBoMyB7XG4gICAgY29sb3I6ICR5ZWxsb3c7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgfVxufVxuXG4uaW1hZ2UtY2xpcCB7fVxuXG4uZGl2aWRlci1wYXR0ZXJuLTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDMwcHg7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vLi4vLi4vc3RhdGljL2JnLXllbGxvdy5wbmdcIikgcmVwZWF0IGNlbnRlciAvIDMwMHB4O1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIH1cbn1cblxuZm9ybSB7XG4gIHdpZHRoOiBtaW4oOTAlLCA2NTBweCk7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG59XG5cbi8vIGNpcmNsZXNcbi5jaXJjbGVzIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYXNwZWN0LXJhdGlvOiAxLjU7XG4gIHdpZHRoOiBtaW4oMTAwJSwgNjAwcHgpO1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICB0b3A6IDA7XG4gIGxlZnQ6IG1heCgwcHgsIGNhbGMoNTAlIC0gMzAwcHgpKTtcblxuICBAaW5jbHVkZSB0YWJsZXQge31cbn1cblxuLmNpcmNsZXNfX3RleHQge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xufVxuXG4uY2lyY2xlc19fdGV4dC0tMSB7XG4gIGZvbnQtc2l6ZTogbWluKDkwY2gsIDkwcHgpO1xuICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQ7XG4gIGZpbGw6ICR5ZWxsb3c7XG59XG5cbi5ib2xkLWF1dGhlbnRpYy1mbGF2b3VyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA1O1xuICBwYWRkaW5nOiA1cmVtIDAgNXJlbTtcbiAgYmFja2dyb3VuZDogJG9mZi13aGl0ZTtcblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIHBhZGRpbmc6IDEwcmVtIDA7XG4gIH1cblxuICAvLyAmOmJlZm9yZSB7XG4gIC8vICAgY29udGVudDogXCJcIjtcbiAgLy8gICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgLy8gICB6LWluZGV4OiAtMTtcbiAgLy8gICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi8uLi8uLi9zdGF0aWMvYmctbWFpbi5wbmdcIikgcmVwZWF0IGNlbnRlciAvIDUwcHg7XG4gIC8vICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgLy8gICBvcGFjaXR5OiAwLjU7XG4gIC8vIH1cblxuICAuaW5saW5lLXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICBoMyB7XG4gICAgY29sb3I6ICR5ZWxsb3c7XG4gICAgZm9udC1zaXplOiBtaW4oOTBjaCwgMTIwcHgpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG4gIGEuYnRuLWxhcmdlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgIHRyYW5zaXRpb246IDA7XG4gIH1cblxuICAuZ3JhcGhpYy1zdGFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vc3RhdGljL3N0YXIuc3ZnJykgbm8tcmVwZWF0IGNlbnRlciAvIGNvbnRhaW47XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGFuaW1hdGlvbjogY2lyY2xlUm90YXRlIDMwcyBsaW5lYXIgaW5maW5pdGU7XG4gIH1cbn1cblxuI2JhZi1ib2xkIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKSBzY2FsZSgxLjEpIHRyYW5zbGF0ZVgoNTAlKSB0cmFuc2xhdGVZKDUwJSk7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG59XG5cbiNiYWYtYXV0aGVudGljIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE1ZGVnKSBzY2FsZSgxLjEpO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblxuICAuZ3JhcGhpYy1zdGFyIHtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgdG9wOiAxNTBweDtcbiAgICByaWdodDogLTcwcHg7XG4gIH1cbn1cblxuI2JhZi1mbGF2b3VycyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0yMGRlZykgc2NhbGUoMS4xKSB0cmFuc2xhdGVZKDMwJSk7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cbiAgLmdyYXBoaWMtc3RhciB7XG4gICAgd2lkdGg6IDkwcHg7XG4gICAgdG9wOiAtMTQwcHg7XG4gICAgbGVmdDogLTMwcHg7XG4gIH1cbn1cblxuLmlsbHVzdHJhdGlvbi1kaXZpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGhlaWdodDogMTIwcHg7XG4gICAgYm90dG9tOiAtMTAwcHg7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDEwJSk7XG4gICAgei1pbmRleDogLTE7XG4gIH1cblxuICBoMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGNvbG9yOiAkeWVsbG93O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKiAzO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBiZGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAwcHg7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDUwJTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IDBzO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG5cbiAgLmlubGluZS13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbi5wdXNoY2FydC1ncmFwaGljLWhvbGRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3ctcmV2ZXJzZTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBib3R0b206IDA7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbTtcbiAgaGVpZ2h0OiA4MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwdncpO1xuXG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHZ3KTtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICB9XG5cblxuICA+KiB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XG4gIH1cblxuICAubWVudS1zb2NpYWwtbWVkaWEtbWVudS1jb250YWluZXIge1xuICAgIC5tZW51IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBnYXA6IDAuMnJlbTtcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgfVxuXG4gICAgbGkgYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgY29sb3I6ICRtYWluLWNvbG9yO1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKyAwLjY7XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9zdGF0aWMvYmxvYi15ZWxsb3cuc3ZnJykgbm8tcmVwZWF0IGNlbnRlciAvIGNvbnRhaW47XG4gICAgICAgIGFuaW1hdGlvbjogY2lyY2xlUm90YXRlIDVzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5ob21lLW1haW4tMiB7XG4gIC5tZW51IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMC4ycmVtO1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICBsaSBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICB3aWR0aDogNjBweDtcbiAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogJG1haW4tY29sb3I7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKyAwLjY7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBAaW5jbHVkZSBhYnNvbHV0ZTtcbiAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vc3RhdGljL2Jsb2IteWVsbG93LnN2ZycpIG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xuICAgICAgYW5pbWF0aW9uOiBjaXJjbGVSb3RhdGUgNXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5wdXNoY2FydC1ncmFwaGljIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMTAwcHg7XG4gIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vc3RhdGljL3B1c2hjYXJ0LnN2ZycpIG5vLXJlcGVhdCBjZW50ZXIgLyBjb3ZlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICB9XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDQzcHg7XG4gICAgaGVpZ2h0OiA0M3B4O1xuICAgIGJvdHRvbTogLTRweDtcbiAgICByaWdodDogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uLy4uL3N0YXRpYy93aGVlbC5zdmcnKSBuby1yZXBlYXQgY2VudGVyIC8gY292ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYW5pbWF0aW9uOiBjaXJjbGVSb3RhdGUgNXMgbGluZWFyIGluZmluaXRlO1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHdpZHRoOiA4NnB4O1xuICAgICAgaGVpZ2h0OiA4NnB4O1xuICAgICAgYm90dG9tOiAtOHB4O1xuICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgfVxuICB9XG59XG5cbkBrZXlmcmFtZXMgYW5pbWF0ZVdvayB7XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC03NTBweCAwO1xuICB9XG59XG5cbi53b2stZ3JhcGhpYyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDE1MHB4O1xuICBoZWlnaHQ6IDE1MHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uLy4uL3N0YXRpYy93b2suc3ZnJykgbm8tcmVwZWF0IDAgMCAvIGNvdmVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IC0xMHB4O1xuICBib3R0b206IC00MHB4O1xuICB6LWluZGV4OiAyO1xuICBhbmltYXRpb246IGFuaW1hdGVXb2sgMS4ycyBzdGVwcyg1KSBpbmZpbml0ZSBhbHRlcm5hdGUtcmV2ZXJzZTtcbn1cblxuQGtleWZyYW1lcyBhbmltYXRlVHVrdHVrIHtcbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MDBweCAwO1xuICB9XG59XG5cbi50dWt0dWstZ3JhcGhpYyB7XG4gIHdpZHRoOiA0MDBweDtcbiAgYXNwZWN0LXJhdGlvOiA0LzM7XG4gIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vc3RhdGljL3R1a3R1ay5zdmcnKSBuby1yZXBlYXQgMCAwIC8gY292ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogLTUwcHg7XG4gIHRvcDogY2FsYyg1MCUgLSAxNTBweCk7XG4gIHotaW5kZXg6IDI7XG4gIGFuaW1hdGlvbjogYW5pbWF0ZVR1a3R1ayAxLjJzIHN0ZXBzKDQpIGluZmluaXRlIG5vcm1hbDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuXG4gIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgb3JkZXI6IC0xO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gIH1cblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxufVxuXG4uc3dpcGVyLXBhZ2luYXRpb24ge1xuICB6LWluZGV4OiAzO1xuXG4gIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAkbWFpbi1jb2xvciA7XG4gIH1cbn1cblxuLnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLFxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24taG9yaXpvbnRhbCxcbi5zd2lwZXItcGFnaW5hdGlvbi1jdXN0b20sXG4uc3dpcGVyLXBhZ2luYXRpb24tZnJhY3Rpb24ge1xuICBib3R0b206IC0zMHB4O1xufVxuXG4vLyBDb250YWN0IFBhZ2VcblxuLmNvbnRhY3QtcGFnZSB7XG4gIG1haW4uY29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9mZi13aGl0ZTtcbiAgfVxufVxuXG5cbi5jb250YWN0LW1haW4ge1xuICAvLyBtYXJnaW4tdG9wOiAxMDBweDtcblxuICAuc2VjdGlvbi10aXRsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIGgxIHtcbiAgICBjb2xvcjogJG1haW4tY29sb3I7XG4gICAgZm9udC1zaXplOiA4cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIGZvbnQtc2l6ZTogMTByZW07XG4gICAgfVxuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtZmFtaWx5OiAkdGl0bGUtZm9udDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJHllbGxvdztcblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBmb250LXNpemU6IDZyZW07XG4gICAgfVxuICB9XG59XG5cbi5jb250YWN0LW1haW4tYmFubmVyIHtcbiAgLnNlY3Rpb24tdGl0bGUge1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTUwJSkgdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoMjBkZWcpIHNjYWxlKDEuMyk7XG4gICAgICB9XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSkgdHJhbnNsYXRlWCg1MCUpIHJvdGF0ZSgtMjBkZWcpIHNjYWxlKDEuMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uLy4uL3N0YXRpYy9hd2Vzb21lLnN2ZycpIG5vLXJlcGVhdCBjZW50ZXIvY29udGFpbjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTUwJSkgdHJhbnNsYXRlWCgtMTAwJSkgcm90YXRlKDEwZGVnKTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9zdGF0aWMvZmlyZS1zdGFyLnN2ZycpIG5vLXJlcGVhdCBjZW50ZXIvY29udGFpbjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKSB0cmFuc2xhdGVYKDEwMCUpIHJvdGF0ZSgtMTBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG4uY29udGFjdC1kZXRhaWxzLXdyYXAge1xuICBwYWRkaW5nOiBjYWxjKDNyZW0gKyAxMDBweCkgMCA2cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiA2cmVtO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIEBpbmNsdWRlIGFic29sdXRlO1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgdG9wOiAtMXB4O1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uLy4uLy4uL3N0YXRpYy92YWxsZXktZGl2aWRlci5zdmdcIikgbm8tcmVwZWF0IHRvcCAvIDEwMCU7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vLi4vLi4vc3RhdGljL2JnLXllbGxvdy5wbmdcIikgcmVwZWF0IGNlbnRlciAvIDMwMHB4O1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gICAgei1pbmRleDogLTE7XG4gIH1cblxuICAuaW5saW5lLXdyYXAge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAxcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuICAgIG1hcmdpbi1ibG9jazogNnJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAycmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIH1cbiAgfVxuXG4gIGlmcmFtZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgICAvLyBib3JkZXI6IDJyZW0gc29saWQgJHllbGxvdztcbiAgfVxufVxuXG4uY29udGFjdC1kZXRhaWxzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDJyZW07XG4gIHotaW5kZXg6IDA7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcblxuICBAaW5jbHVkZSBtb2JpbGUge1xuICAgIHBhZGRpbmc6IDJyZW07XG4gIH1cblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGdhcDogNHJlbTtcbiAgICBtYXJnaW4tYmxvY2s6IDRyZW07XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIGFzcGVjdC1yYXRpbzogMzUxLzY0MjtcbiAgICByaWdodDogLTIwMHB4O1xuICAgIHRvcDogY2FsYyg1MCUgLSAxNTBweCk7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9zdGF0aWMvY29udGFjdC1ncmFwaGljLnBuZycpIG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xuICB9XG59XG5cbi5jb250YWN0LWRldGFpbC1zaW5nbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGg0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMC4yO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQ7XG4gICAgY29sb3I6ICR5ZWxsb3c7XG4gIH1cblxuICBwIHtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiAkb2ZmLXdoaXRlO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMC4yO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG5cbiAgICBhLFxuICAgIGIge1xuICAgICAgY29sb3I6ICRvZmYtd2hpdGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIGlucHV0W3R5cGU9c3VibWl0XSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHllbGxvdztcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIH1cbn1cblxuLmNvbnRhY3QtZGV0YWlsLXNpbmdsZS0tZnVsbCB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDI7XG59XG5cbi5jb250YWN0LWZvcm0ge31cblxuLm91ci1jdWxpbmFyeS1vZmZlcmluZ3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHdpZHRoOiAxMjBweDtcbiAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9zdGF0aWMvZGVsaWNpb3VzLnN2ZycpIG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xuICAgIGJvdHRvbTogMjBweDtcbiAgICBsZWZ0OiAtMjBweDtcbiAgfVxufVxuXG4udGlja2VyLS1ob3Jpem9udGFsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAzcmVtIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYWluLWNvbG9yO1xuXG4gIC5zd2lwZXItd3JhcHBlciB7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgfVxuXG4gIC5zd2lwZXItc2xpZGUge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogNjBweDtcbiAgICBjb2xvcjogcmdiKDI1NSwgMTg0LCAyOSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBmb250LXNpemU6IG1pbig5MGNoLCAxMDBweCk7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgIGhlaWdodDogNTBweDtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMzBweCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYW5pbWF0aW9uOiBjaXJjbGVSb3RhdGUgMTBzIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxufVxuXG4uZmVhdHVyZWQtbWVudSB7XG4gIGJhY2tncm91bmQ6ICRvZmYtd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDJyZW07XG4gIHdpZHRoOiBtaW4oOTAlLCAkZGVza3RvcC13aWR0aCk7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gIC8vIHBhZGRpbmc6IDJyZW07XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogNC42cmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAvLyBwYWRkaW5nOiAzcmVtIDZyZW07XG4gIH1cblxuICAucHJvZHVjdHMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZ2FwOiA0cmVtIDJyZW07XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBtYXJnaW4tYmxvY2s6IDVyZW07XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgZ2FwOiAzcmVtIDZyZW07XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9kdWN0LXVpLTI6bnRoLWNoaWxkKDMpIHtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgbWFyZ2luLXRvcDogLTJyZW07XG4gICAgfVxuICB9XG5cbiAgLnByb2R1Y3QtdWktMjpudGgtY2hpbGQoNikge1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBtYXJnaW4tdG9wOiAtNHJlbTtcbiAgICB9XG4gIH1cblxuICAucHJvZHVjdC11aS0yOm50aC1jaGlsZCgyKSB7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgfVxuICB9XG5cbiAgLnByb2R1Y3QtdWktMjpudGgtY2hpbGQoNSkge1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgIH1cbiAgfVxufVxuXG4ucHJvZHVjdC11aS0yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xuICBkaXNwbGF5OiBncmlkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cbiAgJjpob3ZlciB7XG4gICAgaW1nIHtcbiAgICAgIHRyYW5zaXRpb246IDZzO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIH1cblxuICAgIGEuYnRuLTEge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGJvdHRvbTogMTVweDtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuXG4gICAgZmlndXJlIHAge1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIEBpbmNsdWRlIGFic29sdXRlO1xuICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDAlLCAwLjcpO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC0xMGRlZyk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAzMCUpIHJvdGF0ZSgxMGRlZyk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG5cbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgb3BhY2l0eTogMDtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHdpZHRoOiA5MHB4O1xuICAgIH1cbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgfVxuXG4gICY6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uLy4uL3N0YXRpYy9nb2dvZ28ud2VicCcpIG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9zdGF0aWMveXVtLndlYnAnKSBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbjtcbiAgICB9XG4gIH1cblxuICAmOm50aC1jaGlsZCgzbisyKSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9zdGF0aWMveXVtbXkud2VicCcpIG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9zdGF0aWMvaG90LndlYnAnKSBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbjtcbiAgICB9XG4gIH1cblxuICAmOm50aC1jaGlsZCgzbiszKSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9zdGF0aWMvZ29vZHZpYmVzLndlYnAnKSBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbjtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vc3RhdGljL3Rha2Vhd2F5LndlYnAnKSBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbjtcbiAgICB9XG4gIH1cblxuICBmaWd1cmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuXG4gICAgaW1nIHtcbiAgICAgIEBpbmNsdWRlIGFic29sdXRlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuICB9XG5cbiAgLnByb2R1Y3QtdGFncyB7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgYiB7XG4gICAgZm9udC1mYW1pbHk6ICR0aXRsZS1mb250O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgY29sb3I6ICRtYWluLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMC4zO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgfVxuXG4gIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cblxuICBhLmJ0bi0xIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAwcHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICAgIGxlZnQ6IDE1cHg7XG4gIH1cbn1cblxuLmFib3V0LWdhbGxlcnktc2VjdGlvbiB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uLy4uLy4uL3N0YXRpYy9iZy15ZWxsb3cucG5nXCIpIHJlcGVhdCBjZW50ZXIgLyAzMDBweDtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcblxuICAuaW5saW5lLXdyYXAge1xuICAgIHdpZHRoOiBtaW4oMTAwJSwgJGRlc2t0b3AteGwtd2lkdGgpO1xuICB9XG59XG5cbi5hYm91dC1nYWxsZXJ5IHtcbiAgcGFkZGluZzogNXB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICBnYXA6IDVweDtcblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIH1cblxuICBpbWcge1xuICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxufVxuXG4uc3Bldy1pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMHB4O1xuICAvKiBBZGp1c3Qgc2l6ZSBhcyBuZWVkZWQgKi9cbiAgaGVpZ2h0OiAxMDBweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC8qIFNvIHRoZXkgZG9u4oCZdCBibG9jayBtb3VzZSBldmVudHMgKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1cyBlYXNlLW91dDtcbiAgb3BhY2l0eTogMTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuZGV0YWlscyB7XG4gIHBhZGRpbmc6IDEuNXJlbSAycmVtO1xuICBib3JkZXI6IDJweCBzb2xpZCAkbWFpbi1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMXJlbTtcblxuICArZGV0YWlscyB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTglKTtcbiAgfVxuXG4gICZbb3Blbl0ge1xuICAgIHN1bW1hcnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICB9XG4gIH1cblxuICBzdW1tYXJ5IHtcbiAgICBjb2xvcjogJG1haW4tY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgZm9udC1mYW1pbHk6ICRtYWluLWZvbnQ7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBoMyB7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgIGZvbnQtZmFtaWx5OiAkbWFpbi1mb250O1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbiAgfVxuXG5cbiAgPio6bm90KHN1bW1hcnkpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cblxuICA+KjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgcCxcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cblxuICB1bCB7XG4gICAgQGV4dGVuZCAlaXRlbS1saXN0O1xuXG4gICAgPmxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICB9XG4gIH1cblxuICBvbCB7XG4gICAgQGV4dGVuZCAlaXRlbS1saXN0O1xuXG4gICAgPmxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgICB9XG4gIH1cbn1cblxuaDQubGFyZ2Uge1xuICBmb250LXNpemU6IDNyZW07XG59XG5cbi5ob21lLW1haW4tc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcblxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIHdpZHRoOiBtaW4oOTAlLCAkZGVza3RvcC14bC13aWR0aCk7XG4gICAgbWFyZ2luOiA1cmVtIGF1dG87XG4gIH1cblxuICBpbWcge1xuICAgIGFzcGVjdC1yYXRpbzogNC8zO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDVyZW07XG5cbiAgICBAaW5jbHVkZSBtb2JpbGUge1xuICAgICAgb3JkZXI6IC0xO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHRhYmxldCB7fVxuICB9XG5cbiAgaDIge1xuICAgIGNvbG9yOiAkeWVsbG93O1xuICB9XG5cbiAgcCB7XG4gICAgY29sb3I6ICRvZmYtd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSArIDAuMTtcbiAgfVxuXG4gIC5zd2lwZXItc2xpZGUge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgZ2FwOiAxMHJlbTtcbiAgICB9XG4gIH1cblxuICAuZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IDNyZW07XG5cbiAgICBAaW5jbHVkZSB0YWJsZXQge31cbiAgfVxuXG4gIC5zd2lwZXItYnV0dG9uLW5leHQge1xuICAgIGNvbG9yOiAkeWVsbG93O1xuICAgIHJpZ2h0OiAtNTBweDtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJG1haW4tY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLnN3aXBlci1idXR0b24tcHJldiB7XG4gICAgY29sb3I6ICR5ZWxsb3c7XG4gICAgbGVmdDogLTUwcHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgICB9XG4gIH1cbn0iLCIvKlxuICogRWRpdGVkIDIwMTkwNzI3XG4gKi9cbi8vIEVsZW1lbnRzIHVucWl1ZSB0byB3b29jb21tZXJjZSB0ZW1wbGF0ZVxuLypcbiogVEFCTEUgT0YgQ09OVEVOVFNcbiogLS0tLS0tLS0tLS0gKlxuKiAtIFdvb2NvbW1lcmNlIFZhcmlhYmxlc1xuKiAtIFdvb2NvbW1lcmNlIEdsb2JhbCBTdHlsZXNcbiogLSBBZGQgdG8gQ2FydCBCdXR0b25cbiogLSBCcmVhZGNydW1iXG4qIC0gU2FsZSBMYWJlbFxuKiAtIE1lc3NhZ2UgYm94XG4qIC0gUGFnaW5hdGlvblxuKi9cbi8qIFdvb2NvbW1lcmNlIFZhcmlhYmxlcyAqL1xuJXdvby1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGlwOiB1bnNldDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogaHNsKDAsIDAlLCA1MCUpO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbn1cblxuJXdvby1sYWJlbC0yIHtcbiAgQGV4dGVuZCAld29vLWxhYmVsO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIGNvbG9yOiAjNjY2O1xufVxuXG4kcHJvZHVjdC1zZWxlY3Rpb24tbGF5b3V0LWNvbC0xOiAxMjBweDtcblxuQG1peGluIHdvb2NvbW1lcmNlLW1lc3NhZ2UoJG1zZy1jb2xvcikge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1zZy1jb2xvcjtcblxuICBhIHtcbiAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJG1zZy1jb2xvciwgNSUpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJG1zZy1jb2xvciwgMTAlKTtcbiAgICB9XG4gIH1cbn1cblxuQGltcG9ydCBcIl93b28tc3R5bGVzL2FyY2hpdmVcIjtcbkBpbXBvcnQgXCJfd29vLXN0eWxlcy9zaW5nbGVcIjtcbkBpbXBvcnQgXCJfd29vLXN0eWxlcy9jYXJ0XCI7XG5AaW1wb3J0IFwiX3dvby1zdHlsZXMvY2hlY2tvdXRcIjtcbkBpbXBvcnQgXCJfd29vLXN0eWxlcy9vcmRlci1yZWNlaXZlZFwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL29yZGVyLXBheVwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL2FjY291bnRcIjtcbkBpbXBvcnQgXCJfd29vLXN0eWxlcy9sb2dpblwiOyAvLyBAaW1wb3J0IFwiX3dvby1zdHlsZXMvcHJpY2Utc2xpZGVyXCI7XG5AaW1wb3J0IFwiX3dvby1zdHlsZXMvd2lkZ2V0c1wiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL2ludGVyYWN0aXZlLWNhcnRcIjtcbkBpbXBvcnQgXCJfd29vLXN0eWxlcy9hZGRyZXNzXCI7XG5AaW1wb3J0IFwiX3dvby1zdHlsZXMvc21hbGxzY3JlZW5cIjtcbkBpbXBvcnQgXCJfd29vLXN0eWxlcy93b29jb21tZXJjZS1wcm9kdWN0LXNlYXJjaFwiO1xuQGltcG9ydCBcIl93b28tc3R5bGVzL2FkdmFuY2VkLXByb2R1Y3QtZmllbGRzXCI7XG5cbi8qIFdvb2NvbW1lcmNlIEdsb2JhbCBTdHlsZXMgKi9cbi53b29jb21tZXJjZSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG5cbi8qIE5ld2x5IGRpc2NvdmVyZWQgZ2xvYmFsIHN0eWxlcyAqL1xuLmNvbDItc2V0IHtcbiAgQGV4dGVuZCAuY29scy0yO1xufVxuXG4ud29vY29tbWVyY2UtY29sdW1uX190aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi8qIEdsb2JhbCBmb3JtcyAqL1xuZm9ybSB7XG4gIGxhYmVsIHtcbiAgICBAZXh0ZW5kICV3b28tbGFiZWw7XG4gIH1cbn1cblxuLyogQnV0dG9uIHN0eWxlcyBmb3Igd29vY29tbWVyY2UgKi9cbmJ1dHRvblt0eXBlPVwic3VibWl0XCJdLFxuLmJ1dHRvbiB7XG4gIEBleHRlbmQgJWJ0bjtcbn1cblxuLnNob3BfdGFibGUgLmJ1dHRvbiB7XG4gIEBleHRlbmQgJWJ0bi0xLWxpZ2h0O1xufVxuXG4vKiBBZGQgdG8gQ2FydCBCdXR0b24gQUtBIE1haW4gYnV0dG9uICovXG4uY2hlY2tvdXQtYnV0dG9uLFxuYS5hZGRfdG9fY2FydF9idXR0b24sXG5idXR0b24uYWRkX3RvX2NhcnRfYnV0dG9uLFxuYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuICBAZXh0ZW5kICVidG4tMTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi53Yy1iYWNrd2FyZCB7XG4gIEBleHRlbmQgJWJ0bi0xO1xuXG4gIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLyogQlJFQURDUlVNQiAqL1xuLndvb2NvbW1lcmNlLWJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAvKiBBcmNoaXZlIFBhZ2UgKi9cbiAgLndvb2NvbW1lcmNlLmFyY2hpdmUgJiB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgfVxuXG4gIC8qIFNpbmdsZSBQcm9kdWN0IEJyZWFkY3J1bWJzICovXG4gIC5zaW5nbGUtcHJvZHVjdCAmIHtcbiAgICBAaW5jbHVkZSBsaW5lLWJvcmRlcigycHgsICNmMWYxZjEsIGJvdHRvbSwgMjBweCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29sb3I6ICM4ODg7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgcGFkZGluZzogMjBweCAwO1xuXG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHBhZGRpbmc6IDMwcHggMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIH1cbiAgfVxufVxuXG4vKiBTQUxFIExBQkVMICovXG4ub25zYWxlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgY29sb3I6ICNmZmY7XG5cbiAgbGkucHJvZHVjdCAmIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBtYXJnaW46IC0yNnB4IGF1dG8gNXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAwLjA1cmVtIDAuNnJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuO1xuICB9XG5cbiAgLnN1bW1hcnkgJiB7XG4gICAgQGluY2x1ZGUgdGFnLWxhYmVsKCRncmVlbiwgJ3NtYWxsJyk7XG4gIH1cbn1cblxuLyogTWVzc2FnZSBib3ggKi9cbi53b29jb21tZXJjZS1ub3RpY2VzLXdyYXBwZXIge1xuICBtYXJnaW46IDMwcHggYXV0byAwO1xuICBmbGV4OiAxIDEgMTAwJTtcblxuICAud29vY29tbWVyY2UtYWNjb3VudC5sb2dnZWQtaW4gJiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIC53b29jb21tZXJjZS1jYXJ0ICYge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cblxuLndvb2NvbW1lcmNlLU5vdGljZUdyb3VwIHtcbiAgbWFyZ2luOiAzMHB4IGF1dG8gMDtcbiAgZmxleDogMSAxIDEwMCU7XG59XG5cbi8qIEFsbCBpbmZvcm1hdGlvbiBhbmQgbWVzc2FnZXMgKi9cbi53b29jb21tZXJjZS1pbmZvLFxuLndvb2NvbW1lcmNlLW1lc3NhZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4od2hpdGUsIDUlKTtcbiAgY29sb3I6ICM1NTU7XG4gIGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvIDJlbTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEycHg7XG5cbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHggMTJweCAxMnB4O1xuICB9XG5cbiAgYSB7XG4gICAgQGV4dGVuZCAlYnRuO1xuICAgIEBleHRlbmQgJWJ0bi0xO1xuICAgIEBleHRlbmQgJWZsZXhib3gtYy1jO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbjogMCAxMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5yZXN0b3JlLWl0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLyogQWxsIGVycm9ycyAqL1xuLndvb2NvbW1lcmNlLWVycm9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybTtcbiAgbGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlO1xuICB3aWR0aDogMTAwJTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIHBhZGRpbmc6IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmUgb3V0c2lkZSAhaW1wb3J0YW50OyAvLyBSZXF1aXJlZCBmb3IgZGVmYXVsdCB0aGVtZSBjb21wYXRpYmlsaXR5XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IC8vIFJlcXVpcmVkIGZvciBkZWZhdWx0IHRoZW1lIGNvbXBhdGliaWxpdHlcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyAvLyBSZXF1aXJlZCBmb3IgZGVmYXVsdCB0aGVtZSBjb21wYXRpYmlsaXR5XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXG4gICAgLndvb2NvbW1lcmNlLU5vdGljZUdyb3VwLWNoZWNrb3V0ICYge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi53b29jb21tZXJjZS1tZXNzYWdlIHtcbiAgQGluY2x1ZGUgd29vY29tbWVyY2UtbWVzc2FnZSgkZ3JlZW4pO1xufVxuXG4ud29vY29tbWVyY2UtaW5mbyB7XG4gIEBpbmNsdWRlIHdvb2NvbW1lcmNlLW1lc3NhZ2UoI2NjYyk7XG59XG5cbi53b29jb21tZXJjZS1lcnJvciB7XG4gIEBpbmNsdWRlIHdvb2NvbW1lcmNlLW1lc3NhZ2UoJHJlZCk7XG59XG5cbi8qIFBBR0lOQVRJT04gKi9cbi53b29jb21tZXJjZS1wYWdpbmF0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMTBweCAwO1xuICBmbGV4OiAxIDEgMTAwJTtcblxuICAucGFnZS1udW1iZXJzIHtcbiAgICBAZXh0ZW5kICVmbGV4Ym94LWMtYztcbiAgICBAaW5jbHVkZSBjaGlsZC1tYXJnaW4oJ3JpZ2h0JywgNXB4KTtcbiAgfVxuXG4gIGEsXG4gIHNwYW4ge1xuICAgIEBleHRlbmQgJWJ0bi1zbWFsbDtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIHNwYW4ge1xuICAgIEBleHRlbmQgJWJ0bi0xLWxpZ2h0O1xuICAgIGN1cnNvcjogdW5zZXQ7XG4gIH1cblxuICBhIHtcbiAgICBAZXh0ZW5kICVidG4tMTtcbiAgfVxufVxuXG4vKiBXb29jb21tZXJjZSBTdG9yZSBOb3RpY2UgKi9cbi53b29jb21tZXJjZS1zdG9yZS1ub3RpY2Uge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMTJweCA1JTtcbiAgei1pbmRleDogODg7XG4gIGJvdHRvbTogMDtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogNnB4IDUlO1xuICB9XG59XG5cbi53b29jb21tZXJjZS1zdG9yZS1ub3RpY2VfX2Rpc21pc3MtbGluayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDUlO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG5cbi53b29jb21tZXJjZS1wYWdlIC5zaXRlLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRvZmYtd2hpdGU7XG59IiwiLyogQXJjaGl2ZSBQYWdlIE1haW4gTGF5b3V0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uYXJjaGl2ZS53b29jb21tZXJjZSB7XG4gIC5jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIHNwZWNpZmljIGZvciBhcmNoaXZlIHBhZ2VcbiAgYXNpZGUud2lkZ2V0LWFyZWEge1xuICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICB6LWluZGV4OiAxMDAwMDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBhZGRpbmc6IDEwMHB4IDUwcHg7XG4gICAgfVxuXG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgfVxufVxuXG4vKiBTaG9wIEJhbm5lclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2hvcC1iYW5uZXIge1xuICBAZXh0ZW5kICVyZWd1bGFyLWJhbm5lcjtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgei1pbmRleDogMztcblxuXG4gIGEsXG4gIHAsXG4gIC53b29jb21tZXJjZS1icmVhZGNydW1iIHtcbiAgICBjb2xvcjogJG9mZi13aGl0ZTtcbiAgfVxuXG4gIGgxIHtcbiAgICBjb2xvcjogJHllbGxvdztcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG5cbiAgcCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxufVxuXG4vKiBTaG9wIEFyY2hpdmUgVG9wIEJhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYXJjaGl2ZS10b3BiYXIge1xuICBAaW5jbHVkZSBsaW5lLWJvcmRlcigycHgsICNmMWYxZjEsIGJvdHRvbSwgMzBweCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ud29vY29tbWVyY2UtcmVzdWx0LWNvdW50IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY29sb3I6IGhzbCgwLCAwJSwgNjAlKTtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjQ7XG59XG5cbi53b29jb21tZXJjZS1vcmRlcmluZyB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIHdpZHRoOiAyNTBweDtcbiAgfVxufVxuXG4vKiBTaG9wIEFyY2hpdmUgV2lkZ2V0IEFyZWFcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLndvb2NvbW1lcmNlIGFzaWRlLndpZGdldC1hcmVhIHtcbiAgQGluY2x1ZGUgbGluZS1ib3JkZXIoMnB4LCAjZjFmMWYxLCByaWdodCwgMTVweCk7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIHdpZHRoOiAxNTBweDtcblxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBAaW5jbHVkZSBsaW5lLWJvcmRlcigycHgsICNmMWYxZjEsIHJpZ2h0LCAzMHB4KTtcbiAgICB3aWR0aDogMjUwcHg7XG4gIH1cblxuICAud2lkZ2V0IHtcbiAgICBAaW5jbHVkZSBsaW5lLWJvcmRlcigycHgsICNmMWYxZjEsIGJvdHRvbSwgMzBweCk7XG4gIH1cbn1cblxuLyogU2lkZWJhciBUb2dnbGUgKi9cbiNzaWRlYmFyLXRvZ2dsZSB7XG4gIEBleHRlbmQgJWJ0bi1sYXJnZTtcbiAgQGV4dGVuZCAlYnRuLTE7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4jc2lkZWJhci10b2dnbGUtY2xvc2Uge1xuICBAaW5jbHVkZSBjaXJjbGUtb2JqZWN0KDQwcHgsICNmMWYxZjEsIDI1cHgpO1xuICBjb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAxNSUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNXZ3O1xuICByaWdodDogNXZ3O1xufVxuXG4vKiBTcGVjaWZpY2FsbHkgZm9yIHByb2R1Y3QgY2F0ZWdvcnkgKi9cbiVhcmNoaXZlLXByb2R1Y3QtY2F0ZWdvcnkge1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcblxuICBhIHtcbiAgICBAZXh0ZW5kICV0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgIGNvbG9yOiBoc2woMCwgMCUsIDYwJSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC4yZW0gMDtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGhzbCgwLCAwJSwgNDAlKTtcbiAgICAgIHBhZGRpbmctbGVmdDogMC40ZW07XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5tZW51LXNob3AtbWVudS1jb250YWluZXIsXG4ud2lkZ2V0X3Byb2R1Y3RfY2F0ZWdvcmllcyB7XG4gIEBleHRlbmQgJWFyY2hpdmUtcHJvZHVjdC1jYXRlZ29yeTtcbn1cblxuLyogUHJvZHVjdHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogU3RydWN0dXJlIG9mIHByb2R1Y3RzIHRvIGRpZmZlcmVudGlhdGUgaXQgZnJvbSByZWxhdGVkIHByb2R1Y3RzICovXG4ud29vY29tbWVyY2Utc2hvcCAucHJvZHVjdHMsXG4uYXJjaGl2ZS53b29jb21tZXJjZSAucHJvZHVjdHMge1xuICB3aWR0aDogbWluKDkwJSwgJGRlc2t0b3AteGwtd2lkdGgpO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzMjBweCwgMWZyKSk7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gIGdhcDogM3JlbSAwO1xuXG59XG5cbnVsLnByb2R1Y3RzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXg6IDEgMSAwO1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuXG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxufVxuXG5saS5wcm9kdWN0LWNhdGVnb3J5IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcblxuICAmOmhvdmVyIHtcbiAgICAucHJvZHVjdC1jYXRlZ29yeS1kZXNjcmlwdGlvbiB7XG4gICAgICBsZWZ0OiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICAucHJvZHVjdC1jYXRlZ29yeS1kZXNjcmlwdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvdHRvbTogMDtcbiAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XG5cbiAgICBwIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFzcGVjdC1yYXRpbzogMTUvMTA7XG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLyogUHJvZHVjdCBMaXN0ICovXG4lcHJvZHVjdC1zdHlsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDJyZW07XG4gIGdhcDogMXJlbTtcblxuICAmOmhvdmVyIHtcbiAgICBpbWcge1xuICAgICAgdHJhbnNpdGlvbjogNnM7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIH1cbiAgfVxuXG5cbiAgYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgaW1nIHtcbiAgICBib3JkZXItcmFkaXVzOiAxLjVyZW07XG4gIH1cblxuXG4gIGZpZ3VyZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYXNwZWN0LXJhdGlvOiAxNS8xMDtcbiAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuXG4gICAgaW1nIHtcbiAgICAgIEBpbmNsdWRlIGFic29sdXRlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuICB9XG5cbiAgZmlndXJlLFxuICAud29vY29tbWVyY2UtcGxhY2Vob2xkZXIge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFzcGVjdC1yYXRpbzogMTUvMTA7XG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcblxuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgfVxuXG5cbiAgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICsgMC41O1xuICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDAlKTtcbiAgICAvLyBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgfVxuXG4gIC53b29jb21tZXJjZS1sb29wLWNhdGVnb3J5X190aXRsZSB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKyAxO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgfVxuXG4gIHAge1xuICAgIGNvbG9yOiAkZGFyay1jb2xvcjtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIH1cblxuICAucHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuICAgIGNvbG9yOiBoc2woMCwgMCUsIDMwJSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgOTclLCAwLjgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgcGFkZGluZzogMC41ZW0gMC41ZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgLyogRm9yIHNhbGUgaXRlbSAqL1xuICAgIGlucyB7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgIGNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuYXZhaWxhYmlsaXR5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuNTtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDEwMCUsIDAuOCk7XG4gICAgcGFkZGluZzogMC41ZW0gMWVtIDAuNWVtIDAuNWVtO1xuICAgIGNvbG9yOiBoc2woMCwgMCUsIDIwJSk7XG4gICAgYm9yZGVyLXJhZGl1czogMCAxcmVtIDFyZW0gMDtcbiAgICB0b3A6IDNyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5kZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6ICRtYWluLWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIGkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgfVxuICB9XG59XG5cbmxpLnByb2R1Y3Qge1xuICBAZXh0ZW5kICVwcm9kdWN0LXN0eWxlO1xufVxuXG4vKiBBZGRlZCB0byBjYXJ0IGJ1dHRvbiAqL1xuLmFkZGVkX3RvX2NhcnQge1xuICBAZXh0ZW5kICVidG47XG4gIEBleHRlbmQgJWJ0bi0xLWxpZ2h0O1xufVxuXG4ucHJvZHVjdC10YWdzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ2FwOiAxcmVtO1xuICBtYXJnaW4tdG9wOiAtMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTAuNXJlbTtcblxuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuICAgIGNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAycmVtO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4zO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICB3aWR0aDogMS4xZW07XG4gICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuMWVtO1xuICAgICAgZmlsbDogJG1haW4tY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLnNwaWN5IGE6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vLi4vc3RhdGljL2NoaWxpLnN2ZycpIG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xuICB9XG59XG5cbi50ZXh0LWdyb3VwIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjVyZW07XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG5cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICBnYXA6IDFyZW07XG4gIH1cbn1cblxuLmJ0bi1ncm91cCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4ucHJvZHVjdC1jYXQtbmF2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IG1heCg1JSwgY2FsYygoMTAwdncgLSAkZGVza3RvcC14bC13aWR0aCkgLyAyKSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMXJlbTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgd2lkdGg6IG1pbig5MCUsICRkZXNrdG9wLXhsLXdpZHRoKTtcbiAgcGFkZGluZzogMXJlbSAwJTtcblxuICBAaW5jbHVkZSBtb2JpbGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDFyZW0gNSU7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gICYucGlubmVkIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHB1cnBsZTtcbiAgICB6LWluZGV4OiA1NTU7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIC8vIGJvcmRlci1yYWRpdXM6IDAgMCAycmVtIDJyZW07XG4gICAgbWluLXdpZHRoOiAxMDB2dztcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuYnRuLTEge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAkbWFpbi1jb2xvcjtcbiAgfVxuXG4gIC8qIHdpZHRoICovXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICBoZWlnaHQ6IDVweDtcbiAgfVxuXG4gIC8qIFRyYWNrICovXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJG1haW4tY29sb3IsIDIwJSk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB9XG5cbiAgLyogSGFuZGxlICovXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiAkeWVsbG93O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgfVxuXG4gIC8qIEhhbmRsZSBvbiBob3ZlciAqL1xuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogZGFya2VuKCR5ZWxsb3csIDUlKTtcbiAgfVxuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgNSUpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG5cbi5wcm9kdWN0LWNhdGVnb3J5LWRlc2NyaXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDIwcHg7XG4gIGxlZnQ6IDA7XG5cbiAgcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHllbGxvdztcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMztcbiAgICBib3JkZXItcmFkaXVzOiAwIDAuNzVyZW0gMC43NXJlbSAwO1xuICAgIGNvbG9yOiAkbWFpbi1jb2xvciAhaW1wb3J0YW50O1xuICB9XG59XG5cbi50ZXh0LWdyb3VwLTIge1xuXG4gIC8vIGRpc3BsYXk6IGdyaWQ7XG4gIC8vIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDNmcjtcbiAgLy8gZ2FwOiAycmVtO1xuXG4gIGFydGljbGUge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIGdhcDogMC43NXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG5cbiAgLmJ0bi1ncm91cCB7XG4gICAgLmJ0biB7XG4gICAgICAvLyBhc3BlY3QtcmF0aW86IDE7XG4gICAgICAvLyBoZWlnaHQ6IGF1dG87XG4gICAgICAvLyBkaXNwbGF5OiBncmlkO1xuICAgICAgLy8gcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgIC8vIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIC8vIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICR5ZWxsb3c7XG4gICAgICAvLyBjb2xvcjogaHNsKDAsIDAlLCAyMCUpO1xuXG4gICAgICAvLyAmOmhvdmVyIHtcbiAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkeWVsbG93LCAxMCUpO1xuICAgICAgLy8gfVxuICAgIH1cbiAgfVxufSIsIi8qIFNpbmdsZSBQcm9kdWN0IExheW91dCAqL1xuLnNpbmdsZS1wcm9kdWN0IHtcbiAgLnByb2R1Y3QtcHJpbWFyeS1pbmZvcm1hdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsMCUsOTclKTtcbiAgICBwYWRkaW5nOiAwIDIuNSU7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHBhZGRpbmc6IDAgNSU7XG4gICAgfVxuICB9XG59XG4vKiBTaW1wbGUgQU5EIFZhcmlhYmxlIFByb2R1Y3QgKi9cbmRpdi5wcm9kdWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgLyogQ29tbW9uIFByb2R1Y3QgRGVzY3JpcHRpb24gLyBTdW1tYXJ5ICovXG4gIC5zdW1tYXJ5IHtcbiAgICBAaW5jbHVkZSBjaGlsZC1tYXJnaW4oJ2JvdHRvbScsIDE1cHgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgZmxleDogMSAxIDA7XG4gICAgfVxuICB9XG4gIC8vIFByb2R1Y3QgVGl0bGVcbiAgLnByb2R1Y3RfdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgfVxuICAvLyBQcmljZVxuICAucHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgfVxuICAvLyBTaG9ydCBEZXNjcmlwdGlvblxuICAud29vY29tbWVyY2UtcHJvZHVjdC1kZXRhaWxzX19zaG9ydC1kZXNjcmlwdGlvbiB7XG4gICAgQGluY2x1ZGUgY29udGFpbmVyKDIwcHgsIGhzbCgwLDAlLDEwMCUpLCA1cHgsIDFweCBzb2xpZCBoc2woMCwwJSw5MCUpKTtcblxuICAgIG9sIHtcbiAgICAgIEBleHRlbmQgLm51bWJlci1saXN0O1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIEBleHRlbmQgLml0ZW0tbGlzdDtcbiAgICB9XG5cbiAgICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuLyogQ29tbW9uIFByb2R1Y3QgUGFnZSBHYWxsZXJ5ICovXG4ud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5IHtcbiAgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gIGRpdi50aHVtYm5haWxzIHtcbiAgICBwYWRkaW5nLXRvcDogMWVtO1xuICB9XG5cbiAgJi53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgZmxleDogMSAxIDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDUwcHg7XG4gICAgICBmbGV4LWZsb3c6IHJvdy1yZXZlcnNlIG5vd3JhcDtcbiAgICAgIG1heC13aWR0aDogNDJ2dztcbiAgICB9XG5cbiAgICAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X19pbWFnZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgYSA+IGltZyB7XG4gICAgICAgIGhlaWdodDogNDAwcHg7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgICAgaGVpZ2h0OiA1MDBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX3dyYXBwZXIge1xuICAgIHRyYW5zaXRpb246IGFsbCBjdWJpYy1iZXppZXIoMC43OTUsIC0wLjAzNSwgMCwgMSkgMC41cztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX3dyYXBwZXIgLnpvb21JbWcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX2ltYWdlLS1wbGFjZWhvbGRlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YyZjJmMjtcbiAgfVxuXG4gIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX2ltYWdlOm50aC1jaGlsZChuKzIpIHtcbiAgICB3aWR0aDogMjUlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG4gIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX3RyaWdnZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDAuNWVtO1xuICAgIHJpZ2h0OiAwLjVlbTtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICB6LWluZGV4OiA5O1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjMDAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogOXB4O1xuICAgICAgbGVmdDogOXB4O1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDJweDtcbiAgICAgIGhlaWdodDogOHB4O1xuICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTlweDtcbiAgICAgIGxlZnQ6IDIycHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgfVxuICB9XG5cbiAgLmZsZXgtY29udHJvbC10aHVtYnMge1xuICAgIC8vIG92ZXJmbG93OiBoaWRkZW47XG4gICAgem9vbTogMTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgbWF4LXdpZHRoOiA4MHB4O1xuICAgICAgbWluLXdpZHRoOiA4MHB4O1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIHBhZGRpbmc6IDAgMTBweCAxMHB4O1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICBpbWcge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpY2stbGlzdCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay1jdXJyZW50IHtcbiAgICAgIGltZyB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICNmZmYsIDAgMCAwIDRweCAjY2NjO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWNrLW5leHQge1xuICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZVkoNTAlKTtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBib3R0b206IC0zMHB4O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWNrLXByZXYge1xuICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZVkoNTAlKTtcbiAgICAgICAgdG9wOiAtMzBweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLyogVmFyaWFibGUgUHJvZHVjdCAqL1xuZGl2LnByb2R1Y3QtdHlwZS12YXJpYWJsZSB7XG4gIC53b29jb21tZXJjZS12YXJpYXRpb24tYWRkLXRvLWNhcnQge1xuICAgIEBleHRlbmQgJXNpbmdsZS1hZGQtdG8tY2FydC1tb2R1bGU7XG4gIH1cbiAgLyogRm9yIHZhcmlhdGlvbnMgKi9cbiAgdGFibGUudmFyaWF0aW9ucyB7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gICAgdGJvZHkge1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG5cbiAgICB0ZCB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgLmxhYmVsIHtcbiAgICAgIHdpZHRoOiAkcHJvZHVjdC1zZWxlY3Rpb24tbGF5b3V0LWNvbC0xO1xuICAgIH1cblxuICAgIC52YWx1ZSB7XG4gICAgICB3aWR0aDogYXV0bztcblxuICAgICAgc2VsZWN0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5yZXNldF92YXJpYXRpb25zIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qIEFmdGVyIHZhcmlhdGlvbiBzZWxlY3QgKi9cbiAgLnNpbmdsZV92YXJpYXRpb25fd3JhcCB7XG4gICAgPiAqIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgfVxuXG4gICAgLnNpbmdsZV92YXJpYXRpb24ge1xuICAgICAgQGluY2x1ZGUgY29udGFpbmVyKDIwcHgsIGhzbCgwLDAlLDEwMCUpLCA1cHgsIDFweCBzb2xpZCBoc2woMCwwJSw5MCUpKTtcbiAgICB9XG5cbiAgICAud29vY29tbWVyY2UtdmFyaWF0aW9uLXByaWNlIHtcbiAgICAgIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDFweCwgI2YxZjFmMSwgdG9wLCAyMHB4KTtcblxuICAgICAgLnByaWNlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogXCJQcmljZVwiO1xuICAgICAgICAgIEBleHRlbmQgJXdvby1sYWJlbC0yO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICB3aWR0aDogJHByb2R1Y3Qtc2VsZWN0aW9uLWxheW91dC1jb2wtMTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbCB7XG4gICAgICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjQ7XG4gICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmRpdi5wcm9kdWN0LXR5cGUtc2ltcGxlIHtcbiAgZm9ybS5jYXJ0IHtcbiAgICBAZXh0ZW5kICVzaW5nbGUtYWRkLXRvLWNhcnQtbW9kdWxlO1xuICB9XG59XG4vKiBRdWFudGl0eSBhbmQgQWRkIHRvIGNhcnQgbW9kdWxlICovXG4lc2luZ2xlLWFkZC10by1jYXJ0LW1vZHVsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgcGFkZGluZzogMTVweCAwO1xuXG4gIGlucHV0LnF0eSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiA0MHB4O1xuICB9XG5cbiAgLnF1YW50aXR5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICBmbGV4OiAwIDAgNDBweDtcblxuICAgIGlucHV0IHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBoc2woMCwwJSw4MCUpO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGhzbCgwLDAlLDgwJSk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIC8qIEhpZGUgSFRNTDUgVXAgYW5kIERvd24gYXJyb3dzLiAqL1xuICAgICAgJlt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuICAgICAgJlt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgICZbdHlwZT1cIm51bWJlclwiXSB7XG4gICAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5taW51cyxcbiAgLnBsdXMge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCwwJSw4MCUpO1xuICB9XG5cbiAgLm1pbnVzIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDtcbiAgfVxuXG4gIC5wbHVzIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcbiAgfVxuXG4gIC5idXR0b24uc2luZ2xlX2FkZF90b19jYXJ0X2J1dHRvbiB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIH1cbn1cbi8qIFdvb2NvbW1lcmNlIFRhYnMgKi9cbi53b29jb21tZXJjZSAud29vY29tbWVyY2UtdGFicyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyogUmVsYXRlZCBQcm9kdWN0cyAqL1xuLnJlbGF0ZWQucHJvZHVjdHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA1MHB4IDIuNSU7XG4gIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgcGFkZGluZzogNTBweCA1JTtcbiAgfVxuXG4gID4gaDIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAyLjhyZW07XG4gIH1cblxuICAucHJvZHVjdHMge1xuICAgIEBpbmNsdWRlIGNvbHVtbnMoMjBweCwgNCwgMik7XG4gIH1cbn1cblxuLyogU2luZ2xlIHByb2R1Y3QgYWRkIHRvIGFueSBwbHVnaW4gKi9cbi5zdW1tYXJ5IHtcbiAgLmFkZHRvYW55X2hlYWRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICB3aWR0aDogJHByb2R1Y3Qtc2VsZWN0aW9uLWxheW91dC1jb2wtMTtcbiAgICB9XG4gIH1cblxuICAuYTJhX2tpdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgIGxlZnQ6IDEwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvKiBXb28gQ2FydFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogU3RydWN0dXJlICovXG4ud29vY29tbWVyY2UtY2FydCB7XG4gIC53b29jb21tZXJjZSB7XG4gICAgcGFkZGluZzogNTBweCAzdncgODBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBwYWRkaW5nOiA1MHB4IDUlIDgwcHg7XG4gICAgfVxuICB9XG59XG5cbi53b29jb21tZXJjZS1jYXJ0IHtcbiAgLndvb2NvbW1lcmNlLWNhcnQtZm9ybSB7XG4gICAgZmxleDogMSAxIDEwMCU7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDV2dztcbiAgICAgIGZsZXg6IDIgMSAwO1xuICAgIH1cbiAgfVxuXG4gIC5jYXJ0LWNvbGxhdGVyYWxzIHtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIGZsZXg6IDEgMSAwO1xuICAgIH1cbiAgfVxufVxuLyogR2VuZXJhbCBUYWJsZSAqL1xuLnNob3BfdGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICB0aGVhZCB7XG4gICAgY29sb3I6IGhzbCgwLDAlLDYwJSk7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgI2VlZTtcbiAgfVxuXG4gIHRoIHtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcbiAgfVxuXG4gIHRkIHtcbiAgICBwYWRkaW5nOiAxNXB4IDEwcHg7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBwYWRkaW5nOiAyNXB4IDE1cHg7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC40O1xuICAgICAgY29sb3I6ICM5OTk7XG4gICAgfVxuICB9XG5cbiAgdGQucHJvZHVjdC1uYW1lIHtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBjb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAxMCUpO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjJyZW07XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiBoc2woMCwwJSwzMCUpO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBjb2xvcjogaHNsKDAsMCUsNjAlKTtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC40O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wcm9kdWN0LXF1YW50aXR5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgd2lkdGg6IDEwMHB4O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgdGFibGV0IHtcbiAgICAucHJvZHVjdC1wcmljZSB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgLnByb2R1Y3Qtc3VidG90YWwge1xuICAgICAgd2lkdGg6IDEwMHB4O1xuICAgIH1cbiAgfVxufVxuLyogQ2FydCBUYWJsZSAqL1xudGFibGUuY2FydCB7XG4gIC5wcm9kdWN0LXJlbW92ZSB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBAaW5jbHVkZSB0YWJsZXQge1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBjaXJjbGUtb2JqZWN0KDI2cHgsICRyZWQsIDApO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBtYXJnaW46IDAgMCAwIGF1dG87XG4gICAgICBmb250LXNpemU6IDA7XG4gICAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBAZXh0ZW5kICVpY29uO1xuICAgICAgICBjb250ZW50OiBcIlxcZWEwYVwiO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaW5jbHVkZSB0YWJsZXQge1xuICAgIC5wcm9kdWN0LXRodW1ibmFpbCB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYWN0aW9ucyB7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBib3JkZXItdG9wOiAzcHggc29saWQgI2VlZTtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXG4gICAgLmJ1dHRvbiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMztcbiAgICB9XG5cbiAgICAuY291cG9uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgIGxhYmVsW2Zvcj1cImNvdXBvbl9jb2RlXCJdIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b25bbmFtZT1cInVwZGF0ZV9jYXJ0XCJdIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICAjY291cG9uX2NvZGUge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLyogTW9iaWxlIFRhYmxlICovXG4gIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgdGJvZHkgdHIuY2FydF9pdGVtIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcblxuICAgICAgdGQge1xuICAgICAgICBib3JkZXItY29sb3I6ICNmNWY1ZjU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vKiBWYXJpYXRpb24gdGV4dCB3aXRoaW4gdGFibGUgKi9cbi52YXJpYXRpb24sXG4ud2MtaXRlbS1tZXRhIHtcbiAgbWFyZ2luOiAwO1xuXG4gIC53Yy1pdGVtLW1ldGEtbGFiZWwsXG4gIGR0IHtcbiAgICBAZXh0ZW5kICV3b28tbGFiZWw7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgfVxuXG4gIGRkIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbi8qIENhcnQgVG90YWxzIFRhYmxlICovXG4uY2FydF90b3RhbHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oI2ZmZiwgMyUpO1xuICBwYWRkaW5nOiA1cHggMjBweCAyMHB4O1xuXG4gIC5zaG9wX3RhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgdHJhbnNwYXJlbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuXG4gIC53b29jb21tZXJjZS1zaGlwcGluZy10b3RhbHMge1xuICAgIEBpbmNsdWRlIHRhYmxldCB7XG4gICAgICB3aWR0aDogMjAwJTtcbiAgICB9XG4gIH1cblxuICA+IGgyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHI6Zmlyc3QtY2hpbGQgPiAqIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG5cbiAgdGQsXG4gIHRoIHtcbiAgICBwYWRkaW5nOiAxMnB4IDA7XG4gIH1cblxuICB0aCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XG4gICAgY29sb3I6ICM2NjY7XG4gIH1cblxuICB0ZCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICAud29vY29tbWVyY2Utc2hpcHBpbmctZGVzdGluYXRpb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC40O1xuICAgIG1hcmdpbjogMTBweCAwO1xuICAgIG9wYWNpdHk6IDAuODtcblxuICAgIHN0cm9uZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICAgIH1cbiAgfVxufVxuXG4jc2hpcHBpbmdfbWV0aG9kIHtcbiAgZm9udDogJGZvbnQtYm9sZCAkYmFzZS1mb250LXNpemUgLSAwLjIgJG1haW4tZm9udDtcblxuICAlY2hlY2tlZC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlYnRuLTE7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIGRhcmtlbigkbWFpbi1jb2xvciwgMzAlKTtcbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICY6Y2hlY2tlZCtsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVjaGVja2VkLWxhYmVsO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJoaWRkZW5cIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICArbGFiZWwge1xuICAgICAgQGV4dGVuZCAlY2hlY2tlZC1sYWJlbDtcbiAgICB9XG4gIH1cblxuICBsYWJlbCB7XG4gICAgQGV4dGVuZCAlYnRuLWxhcmdlO1xuICAgIEBleHRlbmQgJWJ0bi0xLWxpZ2h0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICB9XG59XG5cbi5jYXJ0LWVtcHR5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnJldHVybi10by1zaG9wIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi53b29jb21tZXJjZS1jaGVja291dDpub3QoLndvb2NvbW1lcmNlLW9yZGVyLXJlY2VpdmVkKSB7XG4gIC5lbnRyeSxcbiAgLmVudHJ5LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgLy8gbWFrZSBsYXlvdXQgZnVsbCB3aWR0aFxuICAud29vY29tbWVyY2Uge1xuICAgIHBhZGRpbmc6IDAgNSUgNTBweDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgICBwYWRkaW5nOiAwIDUlIDUwcHg7XG4gICAgfVxuXG4gICAgLndvb2NvbW1lcmNlLWZvcm0tbG9naW4tdG9nZ2xlIHtcbiAgICAgIGZsZXg6MSAxIDEwMCU7XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG4gIH1cblxuICAjc2hpcC10by1kaWZmZXJlbnQtYWRkcmVzcyB7XG4gICAgc3BhbiB7XG4gICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtO1xuICAgIH1cbiAgfVxufVxuLy8gQ2hlY2tvdXQgZm9ybVxuZm9ybS53b29jb21tZXJjZS1jaGVja291dCB7XG4gIC5jb2wyLXNldCB7XG4gICAgQGluY2x1ZGUgY29sdW1ucygzMHB4IDIpO1xuICAgIEBpbmNsdWRlIGNvbHVtbi1sYXlvdXQoMywyKTtcbiAgfVxuXG4gIC5jb2wtMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICBAaW5jbHVkZSBjaGlsZC1tYXJnaW4oJ2JvdHRvbScsIDI1cHgpO1xuICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIGg0IHtcbiAgICAgIEBleHRlbmQgaDM7XG4gICAgICBAaW5jbHVkZSBsaW5lLWJvcmRlcigxcHgsIGhzbCgwLDAlLDkwJSksICd0b3AnLCA1MHB4KTtcbiAgICB9XG4gIH1cblxuICAuY29sLTIge1xuICAgIHBhZGRpbmc6IDMwcHggMTBweDtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cblxuI29yZGVyLXJldmlldy13cmFwcGVyIHtcbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgQGluY2x1ZGUgbGluZS1ib3JkZXIoMXB4LCBoc2woMCwwJSw5NSUpLCAnbGVmdCcsIDUwcHgpO1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gIH1cbn1cbi8qIFNoaXAgdG8gYSBkaWZmZXJlbnQgYWRkcmVzcyAqL1xuLndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCB7XG4gIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIGZvbnQtZmFtaWx5OiAkbWFpbi1mb250O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICB9XG59XG4vKiBTZWxlY3Qgc2hpcHBpbmcgbWV0aG9kXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jaGVja291dC1zZWxlY3Qtc2hpcHBpbmctbWV0aG9kIHtcbiAgQGluY2x1ZGUgbGluZS1ib3JkZXIoMXB4LCBoc2woMCwwJSw4NSUpLCAndG9wJywgNjBweCk7XG59XG4vKiBQYXltZW50IG1ldGhvZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcmV2aWV3LW9yZGVyIGg0IHtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG4vKiBDaGVja291dCBQYWdlIE9yZGVyIFN1bW1hcnkgVGFibGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNob3BfdGFibGUud29vY29tbWVyY2UtY2hlY2tvdXQtcmV2aWV3LW9yZGVyLXRhYmxlIHtcbiAgLnByb2R1Y3QtdG90YWwsXG4gIHRmb290IHRkIHtcbiAgICB3aWR0aDogODBweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICB0aCB7XG4gICAgcGFkZGluZzogOHB4IDA7XG4gIH1cblxuICB0ZCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgcGFkZGluZzogMTNweCAwO1xuICB9XG5cbiAgLnZhcmlhdGlvbiB7XG4gICAgQGV4dGVuZCAldHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1heC1oZWlnaHQ6IDA7XG5cbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG4gIH1cblxuICAudmFyaWF0aW9uLS1hY3RpdmUge1xuICAgIG1heC1oZWlnaHQ6IDUwMHB4O1xuICB9XG5cbiAgLm9yZGVyLXRvdGFsIHtcbiAgICBib3JkZXItYm90dG9tOiA0cHggZG91YmxlIGhzbCgwLDAlLDc1JSk7XG4gIH1cblxuICAucHJvZHVjdC1uYW1lIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDI1JSk7XG4gICAgfVxuICB9XG59XG4vKiBQYXltZW50IFNlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuI3BheW1lbnQge1xuICAvKiBUbyBzZWxlY3Qgc2F2ZWQgcGF5bWVudCBtZXRob2RzICovXG4gIC53Yy1zYXZlZC1wYXltZW50LW1ldGhvZHMge1xuICAgIG1hcmdpbjogMTVweCAwO1xuXG4gICAgbGFiZWwge1xuICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oI2ZmZiwgMTAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuaW5wdXRbaWRePVwicGF5bWVudF9tZXRob2RcIl0ge1xuICBkaXNwbGF5OiBub25lO1xuICAvLyBJZiBwYXJ0aWN1bGFyIHBheW1lbnQgbWV0aG9kIGlzIHNlbGVjdGVkXG4gICY6Y2hlY2tlZCArIGxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDEwJSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4IDdweCAwIDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbi53Y19wYXltZW50X21ldGhvZHMge1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xufVxuXG4ud2NfcGF5bWVudF9tZXRob2Qge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuXG4gID4gbGFiZWwge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLDAlLDgwJSk7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIEBleHRlbmQgJWJ0bjtcbiAgICBAZXh0ZW5kICVidG4tMS1saWdodDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDAsMCUsNzAlKTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4ucGF5bWVudF9ib3gge1xuICBib3JkZXI6IDFweCBzb2xpZCBoc2woMCwwJSw4OCUpO1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItcmFkaXVzOiAwIDAgN3B4IDdweDtcbiAgcGFkZGluZzogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsMCUsOTglKTtcbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgcGFkZGluZzogMzBweCAzMHB4IDIwcHg7XG4gIH1cblxuICAud2MtcGF5bWVudC1mb3JtIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIC5mb3JtLXJvdyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cbiAgfVxuICAvKiBFcnJvciBpbnNpZGUgcGF5bWVudCAqL1xuICAud29vY29tbWVyY2VfZXJyb3Ige1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLyogRm9yIFN0cmlwZSBvbmx5XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiNzdHJpcGUtcGF5bWVudC1kYXRhIHtcbiAgcCB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgfVxufVxuXG5sYWJlbFtmb3I9XCJwYXltZW50X21ldGhvZF9zdHJpcGVcIl0ge1xuICBpbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLlN0cmlwZUVsZW1lbnQuaW52YWxpZCB7XG4gIEBleHRlbmQgJWludmFsaWQtaW5wdXQ7XG59XG4vKiBBZnRlciBwYXltZW50IGJveFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucGxhY2Utb3JkZXIge1xuICAud29vY29tbWVyY2UtdGVybXMtYW5kLWNvbmRpdGlvbnMtY2hlY2tib3gtdGV4dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgfVxuICB9XG5cbiAgcCB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjI7XG4gICAgY29sb3I6ICM2NjY7XG4gIH1cbn1cblxuI3BsYWNlX29yZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKiBFcnJvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLndvb2NvbW1lcmNlLWludmFsaWQtcmVxdWlyZWQtZmllbGQge1xuICBsYWJlbCB7XG4gICAgQGV4dGVuZCAlaW52YWxpZC1sYWJlbDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBAZXh0ZW5kICVpbnZhbGlkLWlucHV0O1xuICB9XG59XG4vKiBPcmRlciBEZWxpdmVyeSBEYXRlIE9ubHkgKi9cbiNvcmRkZF90aW1lX3Nsb3RfZmllbGQge1xuICAuc2VsZWN0Mi1zZWxlY3Rpb24sXG4gIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xuICAgIGhlaWdodDogNDBweDtcbiAgfVxuXG4gIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICB9XG59XG5cbiNwYXltZW50IC5wYXltZW50X21ldGhvZHMgPiBsaSA+IGxhYmVsIGltZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBDaGVja291dCBjb3Vwb24gKi9cbi5jaGVja291dF9jb3Vwb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBAZXh0ZW5kIC5jb2wtMTtcblxuICBidXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmZvcm0tcm93IHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cblxuI29yZGVyX3Jldmlld19oZWFkaW5nIHtcbiAgZm9udC1mYW1pbHk6ICR0aXRsZS1mb250O1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbn1cblxuLndvb2NvbW1lcmNlLWNoZWNrb3V0IC53b29jb21tZXJjZS1mb3JtLWxvZ2luIHtcbiAgLmZvcm0tcm93IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLyogMSBpdGVtIHRvIHJldmlld1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLndvb2NvbW1lcmNlLW9yZGVyLXJlY2VpdmVkIHtcbiAgLmVudHJ5LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDRyZW07XG4gIH1cblxuICAud29vY29tbWVyY2Utb3JkZXIge1xuICAgIEBpbmNsdWRlIGNoaWxkLW1hcmdpbignYm90dG9tJywgNDBweCk7XG4gICAgcGFkZGluZzogNTBweCA1JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwwJSw5NyUpO1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgcGFkZGluZzogNTBweCAxMCU7XG4gICAgfVxuICB9XG5cbiAgLndvb2NvbW1lcmNlLW9yZGVyLWRldGFpbHNfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cblxuICAud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscyxcbiAgLndvb2NvbW1lcmNlLW9yZGVyLWRldGFpbHMge1xuICAgIEBleHRlbmQgJWNvbC0xO1xuICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxufVxuLyogT3ZlcnZpZXcgYmFyICovXG4ud29vY29tbWVyY2Utb3JkZXItb3ZlcnZpZXcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICRtYWluLWNvbG9yO1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDAgcmdiYSgwLDAsMCwwLjE1KTtcblxuICA+ICoge1xuICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC40O1xuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBkb3R0ZWQgI2RkZDtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIGZsZXg6IDEgMSAwO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgc3Ryb25nIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgICAgY29sb3I6IGRhcmtlbigkbWFpbi1jb2xvciwgMjIlKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIH1cbiAgfVxuICAvKiBSRVZJRVcgVEhJUyAqL1xuICAuZGVsaXZlcnlEZXRhaWxzIHtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDEwJSk7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZmxleDogMSAxIDUwJTtcbiAgICB9XG5cbiAgICA+IHNwYW4ge1xuICAgICAgQGV4dGVuZCAld29vLWxhYmVsO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICB9XG59XG5cbi53b29jb21tZXJjZS10aGFua3lvdS1vcmRlci1yZWNlaXZlZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLndvb2NvbW1lcmNlLXRhYmxlLS1vcmRlci1kZXRhaWxzIHtcbiAgLnByb2R1Y3QtdG90YWwsXG4gIHRmb290IHRkIHtcbiAgICB3aWR0aDogMjAlO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cbn1cbiIsIi53b29jb21tZXJjZS1vcmRlci1wYXkge1xuICAuZW50cnktY29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsMCUsOTclKTtcbiAgfVxuXG4gIC53b29jb21tZXJjZSB7XG4gICAgQGV4dGVuZCAlY29sLTE7XG4gIH1cblxuICAucHJvZHVjdC1xdWFudGl0eSB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cbiIsIi8qIFdvb2NvbW1lcmNlIEFjY291bnQgUGFnZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogTWFpbiBTdHJ1Y3R1cmUgKi9cbiV3b29jb21tZXJjZS1hY2NvdW50LWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNvbnRhaW5lcigzNXB4LCBoc2woMCwwJSwxMDAlKSwgMTBweCwgMXB4IHNvbGlkICNkZGQpO1xufVxuLyogZ2VuZXJhbCB3b29jb21tZXJjZSBhY2NvdW50IHN0eWxlLiBGb3IgbXkgYWNjb3VudCwgbG9nZ2VkIGluLCBhbmQgbG9zdCBwYXNzd29yZCAqL1xuLndvb2NvbW1lcmNlLWFjY291bnQge1xuICAuZW50cnktY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLDAlLDk3JSk7XG4gICAgcGFkZGluZzogMzBweCA1JTtcbiAgICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMzBweCAxMCU7XG4gICAgfVxuICB9XG4gIC8qIFdvb2NvbW1lcmNlIGFjY291bnQgbG9nZ2VkIGluIHNwZWNpZmljIHN0eWxlKi9cbiAgJi5sb2dnZWQtaW4ge1xuICAgIC53b29jb21tZXJjZSB7XG4gICAgICBAZXh0ZW5kIC5jb2xzLTI7XG4gICAgICBAaW5jbHVkZSBjb2x1bW4tbGF5b3V0KDEsMyk7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG4gIH1cbn1cbi8qIE15IEFjY291bnQgTmF2aWdhdGlvbiAqL1xuLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgcGFkZGluZzogMTVweCAwO1xufVxuXG4ud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24tbGluayB7XG4gIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDFweCwgI2VlZSwgYm90dG9tLCAxMHB4KTtcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgYSB7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICAgIGNvbG9yOiBkYXJrZW4oJG1haW4tY29sb3IsIDEwJSk7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgQGV4dGVuZCAldHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgY29sb3I6ICM4ODg7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjE7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHBhZGRpbmctbGVmdDogMThweDtcbiAgICAgIGNvbG9yOiAjNTU1O1xuICAgIH1cbiAgfVxufVxuLyogQ29udGVudCAqL1xuLndvb2NvbW1lcmNlLU15QWNjb3VudC1jb250ZW50IHtcbiAgQGV4dGVuZCAld29vY29tbWVyY2UtYWNjb3VudC1jb250YWluZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIC8vIHBhZGRpbmc6IDMwcHggNSU7XG4gIEBpbmNsdWRlIGRlc2t0b3Age31cblxuICBlbSB7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICB9XG5cbiAgbWFyayB7XG4gICAgQGluY2x1ZGUgdGFnLWxhYmVsKGhzbCgwLDAlLDk1JSksIHNtYWxsKTtcbiAgICBjb2xvcjogaHNsKDAsMCUsMjAlKTtcbiAgfVxuXG4gIGZpZWxkc2V0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwwJSw5OSUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLDAlLDkwJSk7XG4gICAgcGFkZGluZzogMTBweCAzMHB4O1xuICAgIG1hcmdpbjogMjBweCAwO1xuXG4gICAgbGVnZW5kIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgICBjb2xvcjogaHNsKDAsMCUsNDAlKTtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgIG1hcmdpbjogMCAtMTBweDtcbiAgICB9XG4gIH1cbn1cbi8qIFJlbW92ZSBkYXNoYm9hcmQgbGluayAqL1xuLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLWxpbmstLWRhc2hib2FyZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBQYXNzd29yZCBzdHJlbmd0aCAqL1xuLndvb2NvbW1lcmNlLXBhc3N3b3JkLXN0cmVuZ3RoIHtcbiAgcGFkZGluZzogNXB4IDA7XG5cbiAgJi5zaG9ydCB7XG4gICAgY29sb3I6ICRyZWQ7XG4gIH1cblxuICAmLmJhZCB7XG4gICAgY29sb3I6ICRvcmFuZ2U7XG4gIH1cblxuICAmLmdvb2Qge1xuICAgIGNvbG9yOiAkZ3JlZW47XG4gIH1cblxuICAmLnN0cm9uZyB7XG4gICAgY29sb3I6ICRncmVlbjtcbiAgfVxufVxuLyogV29vY29tbWVyY2UgQWNjb3VudCBPcmRlcnMgVGFibGUgKi9cbi53b29jb21tZXJjZS1vcmRlcnMtdGFibGUge1xuICAmX19jZWxsLW9yZGVyLWRlbGl2ZXJ5LWRhdGUsXG4gICZfX2hlYWRlci1vcmRlci1kZWxpdmVyeS1kYXRlIHtcbiAgICBkaXNwbGF5OiBub25lIWltcG9ydGFudDtcbiAgfVxuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAmX19oZWFkZXItb3JkZXItbnVtYmVyIHtcbiAgICAgIHdpZHRoOiA4MHB4O1xuICAgIH1cblxuICAgICZfX2hlYWRlci1vcmRlci1hY3Rpb25zLFxuICAgICZfX2hlYWRlci1vcmRlci1zdGF0dXMge1xuICAgICAgd2lkdGg6IDEyMHB4O1xuICAgIH1cbiAgfVxufVxuXG4ud29vY29tbWVyY2UtdGFibGUtLW9yZGVyLWRldGFpbHMge1xuICB0ZCB7XG4gICAgcGFkZGluZzogMTVweCAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cbiIsIi8qIExvZ2luXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBNeSBhY2NvdW50IHBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuI2N1c3RvbWVyX2xvZ2luIHtcbiAgQGluY2x1ZGUgY29sdW1ucyg1dncsIDIpO1xuXG4gIC53b29jb21tZXJjZS1mb3JtLWxvZ2luIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLmNvbC0xIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgaHNsKDAsMCUsODUlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG5cbi53b29jb21tZXJjZS1mb3JtLWxvZ2luIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDMwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICBtYXgtd2lkdGg6IDUwdnc7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cblxuICBsYWJlbC53b29jb21tZXJjZS1mb3JtX19sYWJlbCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICB9XG59XG5cbi53b29jb21tZXJjZS1mb3JtLWxvZ2luX19zdWJtaXQsXG4ud29vY29tbWVyY2UtZm9ybS1yZWdpc3Rlcl9fc3VibWl0IHtcbiAgQGV4dGVuZCAlYnRuLTE7XG59XG5cbi53b29jb21tZXJjZS1wcml2YWN5LXBvbGljeS10ZXh0IHtcbiAgcCB7XG4gICAgQGV4dGVuZCAuc21hbGw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBjb2xvcjogaHNsKDAsMCUsNjAlKTtcbiAgfVxufVxuLyogRm9yIGxvc3QgcGFzc3dvcmQgcGFnZSAqL1xuLndvb2NvbW1lcmNlLWxvc3QtcGFzc3dvcmQgLndvb2NvbW1lcmNlIHtcbiAgQGV4dGVuZCAlY29sLTE7XG59XG4iLCIud2lkZ2V0X2xheWVyZWRfbmF2X2ZpbHRlcnMgdWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlO1xuICB6b29tOiAxO1xuXG4gIGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nOiAwIDFlbSAxcHggMXB4O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgLSAwLjM7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMWVtLzEgJ2Jhc2VpY29uJztcbiAgICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgKi9cbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLWljX2Nsb3NlXzQ4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgQGluY2x1ZGUgY2lyY2xlLW9iamVjdCgxNXB4LCAkcmVkLCAkYmFzZS1mb250LXNpemUgLSAwLjIpO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qIEludGVyYWN0aXZlIENhcnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIEhlYWRlciBidXR0b25zICovXG4jY2FydC1pdGVtcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgQGluY2x1ZGUgY2lyY2xlLW9iamVjdCgyMHB4LCAkbWFpbi1jb2xvciwgJGJhc2UtZm9udC1zaXplIC0gMC4yKTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gIHRvcDogLTVweDtcbiAgcmlnaHQ6IC0zcHg7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4jaW50ZXJhY3RpdmUtY2FydC1hY3RpdmF0ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmludGVyYWN0aXZlLWNhcnRfX2JnIHtcbiAgQGluY2x1ZGUgYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwyMCwwLjUpO1xufVxuXG4uaW50ZXJhY3RpdmUtY2FydC13cmFwcGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDk5OTk5OTk5O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uaW50ZXJhY3RpdmUtY2FydCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsMCUsOTUlKTtcbiAgbWFyZ2luOiAwIDAgMCBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgQGluY2x1ZGUgZGVza3RvcCB7XG4gICAgd2lkdGg6IDQwdnc7XG4gIH1cbn1cbi8qIENhcnQgSGVhZGVyICovXG4uaW50ZXJhY3RpdmUtY2FydC1oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDIwcHggMTJweDtcbiAgZmxleDogMCAxIDA7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIHBhZGRpbmc6IDEycHg7XG4gIH1cblxuICA+ICoge1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICM4ODg7XG4gIH1cblxuICBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAuaW50ZXJhY3RpdmUtY2FydC1jbG9zZSB7XG4gICAgQGV4dGVuZCAldHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGNvbG9yOiBoc2woMCwwJSw1MCUpO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogNTBweDtcbiAgICBmb250LXNpemU6IDI1cHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGxlZnQ6IC0zcHg7XG4gICAgICBjb2xvcjogIzc3NztcbiAgICB9XG4gIH1cbn1cbi8qIE1pbmkgQ2FydCBOb3RpY2UgKi9cbi5pbnRlcmFjdGl2ZS1jYXJ0X19ub3RpY2Uge1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIEBpbmNsdWRlIGNoaWxkLW1hcmdpbignYm90dG9tJywgNXB4KTtcblxuICA+ICoge1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgfVxuXG4gICYuY2FydC1pdGVtLWNhcmQge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgfVxuXG4gIHAge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xuICB9XG59XG5cbi5tZXNzYWdlLS1lcnJvciB7XG4gIGNvbG9yOiAkcmVkO1xufVxuXG4ubWVzc2FnZS0tc3VjY2VzcyB7XG4gIGNvbG9yOiAkZ3JlZW47XG59XG4vKiBDYXJ0IEl0ZW0gTGlzdCAqL1xuLmludGVyYWN0aXZlLWNhcnQtaXRlbXMge1xuICBmbGV4OiAxIDEgMDtcbiAgcGFkZGluZzogMjBweCAwO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIEBpbmNsdWRlIGRlc2t0b3Age1xuICAgIG1hcmdpbi1yaWdodDogLTE3cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTdweDtcbiAgICAvKiBJbmNyZWFzZS9kZWNyZWFzZSB0aGlzIHZhbHVlIGZvciBjcm9zcy1icm93c2VyIGNvbXBhdGliaWxpdHkgKi9cbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAvKiBTbyB0aGUgd2lkdGggd2lsbCBiZSAxMDAlICsgMTdweCAqL1xuICB9XG59XG4vKiBDYXJ0IEl0ZW0gKi9cbi5jYXJ0LWl0ZW0tY2FyZCB7XG4gIEBpbmNsdWRlIHRodW1ibmFpbC1jYXJkKDgwcHgsIDgwcHgsIHJpZ2h0LCAxNXB4KTtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA2JSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgbWFyZ2luLWxlZnQ6IDMlO1xuICBtYXJnaW4tcmlnaHQ6IDMlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDAgcmdiYSgwLDAsMCwwLjEpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBAaW5jbHVkZSBkZXNrdG9wIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNyUpO1xuICAgIG1hcmdpbi1sZWZ0OiA1JTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICBpbWcge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBtYXJnaW46IDEwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cblxuICAuY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgY2hpbGQtbWFyZ2luKCdib3R0b20nLCA4cHgpO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuXG4gICAgPiAqIHtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9kdWN0LXRpdGxlIHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSAtIDAuMjtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBjb2xvcjogZGFya2VuKCRtYWluLWNvbG9yLCAyNSUpO1xuICB9XG5cbiAgLnJlbW92ZV9mcm9tX2NhcnRfYnV0dG9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIC8vIG1hcmdpbi10b3A6IDA7XG4gICAgLy8gcGFkZGluZzogMDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG4gICAgY29sb3I6ICRyZWQ7XG4gIH1cbn1cblxuLmludGVyYWN0aXZlLWNhcnQtc3VtbWFyeSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZmxleDogMCAxIDA7XG5cbiAgPiBkaXYge1xuICAgIEBpbmNsdWRlIGxpbmUtYm9yZGVyKDFweCwgI2U1ZTVlNSwgYm90dG9tLCA1cHgpO1xuICAgIEBleHRlbmQgJWZsZXhib3gtYy1jO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZzogOHB4IDUlO1xuXG4gICAgPiAqIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG5cbi5pbnRlcmFjdGl2ZS1jYXJ0LXN1bW1hcnlfX2J1dHRvbnMge1xuICBAaW5jbHVkZSBjb2x1bW5zKDBweCwgMiwgMik7XG5cbiAgYSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgZGFya2VuKCRtYWluLWNvbG9yLCAxNSUpO1xuICAgIH1cbiAgfVxufVxuLyogSWYgdGhlcmUgYXJlIG5vIHByb2R1Y3RzICovXG4ubm8tcHJvZHVjdC10ZXh0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwIDUlO1xufVxuLy9cbi8vIC5pbnRlcmFjdGl2ZS1jYXJ0LXN1bW1hcnkgLmludGVyYWN0aXZlLWNhcnRfX2NvdXBvbiB7XG4vLyAgIHBhZGRpbmc6IDA7XG4vLyB9XG4vL1xuLy8gLmludGVyYWN0aXZlLWNhcnRfX2NvdXBvbi1mb3JtIHtcbi8vICAgd2lkdGg6IDEwMCU7XG4vLyAgIEBpbmNsdWRlIGNvbHVtbnMoMHB4LCAyKTtcbi8vXG4vLyAgIGlucHV0W25hbWU9XCJhcHBseV9jb3Vwb25cIl0ge1xuLy8gICAgIG1hcmdpbi10b3A6IDA7XG4vLyAgIH1cbi8vIH1cbiIsIi8qIFdvb2NvbW1lcmNlIGFkZHJlc3MgY29tcG9uZW50XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBPcmRlciBvcmRlci1yZWNlaXZlZFxuMi4gTXkgQWNjb3VudCBlZGl0IGFkZHJlc3NcbiovXG4vKiBBZGRyZXNzIHNlY3Rpb24gKi9cbmhlYWRlci53b29jb21tZXJjZS1BZGRyZXNzLXRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICBoMixcbiAgaDMge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBhIHtcbiAgICBAZXh0ZW5kICVidG4tc21hbGw7XG4gICAgQGV4dGVuZCAlYnRuLTEtc2Vjb25kYXJ5O1xuICB9XG59XG4vKiBBZGRyZXNzZXMgKi9cbi5hZGRyZXNzZXMsXG4ud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscyB7XG4gIGgyLFxuICBoMyB7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKyAwLjI7XG4gIH1cblxuICBhZGRyZXNzIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXIoMTVweCwgaHNsKDAsMCUsMTAwJSksIDVweCwgMXB4IHNvbGlkIGhzbCgwLDAlLDkwJSkpO1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJBZGRyZXNzOiBcIjtcbiAgICAgIEBleHRlbmQgJXdvby1sYWJlbDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplIC0gMC4yO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBleHRlbmQgJXdvby1sYWJlbDtcbiAgICAgIH1cblxuICAgICAgJi53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLS1waG9uZTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlBob25lOiBcIjtcbiAgICAgIH1cblxuICAgICAgJi53b29jb21tZXJjZS1jdXN0b21lci1kZXRhaWxzLS1lbWFpbDpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIkVtYWlsIGFkZHJlc3M6IFwiO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiB3b29jb21tZXJjZS1zbWFsbHNjcmVlbi5zY3NzXG4gKiBPcHRpbWlzZXMgdGhlIGRlZmF1bHQgV29vQ29tbWVyY2UgZnJvbnRlbmQgbGF5b3V0IHdoZW4gdmlld2VkIG9uIHNtYWxsZXIgc2NyZWVucy5cbiAqL1xuLyoqXG4gKiBTdHlsZSBiZWdpbnNcbiAqL1xuQGluY2x1ZGUgbW9iaWxlIHtcblx0Lndvb2NvbW1lcmNlLFxuXHQud29vY29tbWVyY2UtcGFnZSB7XG5cdFx0dGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlIHtcblx0XHRcdHRoZWFkIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0dGJvZHkge1xuXHRcdFx0XHR0cjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdFx0dGQ6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXRvcDogMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0aCB7XG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR0ciB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0XHRcdHRkIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyAvLyBJbXBvcnRhbnQgdG8gb3ZlcndyaXRlIG9yZGVyIHN0YXR1cyBpbmxpbmUgc3R5bGluZ1xuXG5cdFx0XHRcdFx0Ji5vcmRlci1hY3Rpb25zIHtcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgLy8gVGhpcyBtdXN0IGFsd2F5cyBhbGlnbiBsZWZ0IG9uIGhhbmRoZWxkXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS10aXRsZSkgJzogJztcblx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmLmFjdGlvbnMsXG5cdFx0XHRcdFx0Ji5wcm9kdWN0LXJlbW92ZSB7XG5cdFx0XHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6bnRoLWNoaWxkKDJuKSB7XG5cdFx0XHRcdFx0dGQge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAyNSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dGFibGUubXlfYWNjb3VudF9vcmRlcnMge1xuXHRcdFx0dHIge1xuXHRcdFx0XHR0ZCB7XG5cdFx0XHRcdFx0Ji5vcmRlci1hY3Rpb25zIHtcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cblx0XHRcdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC5idXR0b24ge1xuXHRcdFx0XHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0XHRcdFx0bWFyZ2luOiAwLjEyNWVtIDAuMjVlbSAwLjEyNWVtIDA7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8qKlxuXHQgKiBHZW5lcmFsIGxheW91dFxuXHQgKi9cblx0XHQuY29sMi1zZXQge1xuXHRcdFx0LmNvbC0xLFxuXHRcdFx0LmNvbC0yIHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQvKipcblx0ICogUHJvZHVjdHNcblx0ICovXG5cdFx0Ly8gdWwucHJvZHVjdHNbY2xhc3MqPSdjb2x1bW5zLSddIHtcblx0XHQvLyBcdGxpLnByb2R1Y3Qge1xuXHRcdC8vIFx0XHR3aWR0aDogNDglO1xuXHRcdC8vIFx0XHRmbG9hdDogbGVmdDtcblx0XHQvLyBcdFx0Y2xlYXI6IGJvdGg7XG5cdFx0Ly8gXHRcdG1hcmdpbjogMCAwIDIuOTkyZW07XG5cdFx0Ly9cblx0XHQvLyBcdFx0JjpudGgtY2hpbGQoIDJuICkge1xuXHRcdC8vIFx0XHRcdGZsb2F0OiByaWdodDtcblx0XHQvLyBcdFx0XHRjbGVhcjogbm9uZSAhaW1wb3J0YW50OyAvLyBUaGlzIHNob3VsZCBuZXZlciBjbGVhci5cblx0XHQvLyBcdFx0fVxuXHRcdC8vIFx0fVxuXHRcdC8vIH1cblx0XHQvKipcblx0ICogUHJvZHVjdCBEZXRhaWxzXG5cdCAqL1xuXHRcdCNjb250ZW50IGRpdi5wcm9kdWN0LFxuXHRcdGRpdi5wcm9kdWN0IHtcblx0XHRcdGRpdi5pbWFnZXMsXG5cdFx0XHRkaXYuc3VtbWFyeSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cdFx0LyoqXG5cdCAqIENhcnRcblx0ICovXG5cdFx0I2NvbnRlbnQgdGFibGUuY2FydCxcblx0XHR0YWJsZS5jYXJ0IHtcblx0XHRcdC5wcm9kdWN0LXRodW1ibmFpbCB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdHRkLmFjdGlvbnMge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0XHRcdC5jb3Vwb24ge1xuXHRcdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRcdEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IDAuNWVtO1xuXG5cdFx0XHRcdFx0LmJ1dHRvbixcblx0XHRcdFx0XHQuaW5wdXQtdGV4dCxcblx0XHRcdFx0XHRpbnB1dCB7XG5cdFx0XHRcdFx0XHR3aWR0aDogNDglO1xuXHRcdFx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQuYnV0dG9uLmFsdCxcblx0XHRcdFx0XHQuaW5wdXQtdGV4dCArIC5idXR0b24ge1xuXHRcdFx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5idXR0b24ge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmNhcnQtY29sbGF0ZXJhbHMge1xuXHRcdFx0LmNhcnRfdG90YWxzLFxuXHRcdFx0LmNyb3NzLXNlbGxzLFxuXHRcdFx0LnNoaXBwaW5nX2NhbGN1bGF0b3Ige1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8qKlxuXHQgKiBDaGVja291dFxuXHQgKi9cblx0XHQmLndvb2NvbW1lcmNlLWNoZWNrb3V0IHtcblx0XHRcdGZvcm0ubG9naW4ge1xuXHRcdFx0XHQuZm9ybS1yb3cge1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0I3BheW1lbnQge1xuXHRcdFx0LnRlcm1zIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdH1cblxuXHRcdFx0I3BsYWNlX29yZGVyIHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8qKlxuXHQgKiBBY2NvdW50XG5cdCAqL1xuXHRcdC5sb3N0X3Jlc2V0X3Bhc3N3b3JkIHtcblx0XHRcdC5mb3JtLXJvdy1maXJzdCxcblx0XHRcdC5mb3JtLXJvdy1sYXN0IHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Lndvb2NvbW1lcmNlLWFjY291bnQge1xuXHRcdC53b29jb21tZXJjZS1NeUFjY291bnQtY29udGVudCxcblx0XHQud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24ge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblx0LyoqXG4gKiBUd2VudHkgVGhpcnRlZW4gc3BlY2lmaWMgc3R5bGVzXG4gKi9cblx0LnNpbmdsZS1wcm9kdWN0IHtcblx0XHQudHdlbnR5dGhpcnRlZW4ge1xuXHRcdFx0LnBhbmVsIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDIwcHggIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIiN3b29jb21tZXJjZS1wcm9kdWN0LXNlYXJjaC1maWVsZCB7XG4gIEBleHRlbmQgJXRyYW5zaXRpb24tZHVyYXRpb247XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNzBweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwwJSw5NSUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplICogMS41O1xuICBtYXgtd2lkdGg6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgcmlnaHQ6IDUwJTtcbiAgcGFkZGluZzogMDtcblxuICAmOmZvY3VzLFxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbi1jb2xvcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICB9XG5cbiAgLndvb2NvbW1lcmNlLXByb2R1Y3Qtc2VhcmNoLS1hY3RpdmUgJiB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgcGFkZGluZzogMCA1JTtcbiAgfVxufVxuXG4jd29vY29tbWVyY2UtcHJvZHVjdC1zZWFyY2gtYnV0dG9uIHtcbiAgQGV4dGVuZCAlaGVhZGVyLWJ1dHRvbnM7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICBpIHtcbiAgICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIH1cbn1cbiIsIi8qIE1ha2Ugd29vY29tbWVyY2UgdmFyaWF0aW9ucyB0YWJsZSBmdWxsIHdpZHRoKi9cbnRhYmxlLnZhcmlhdGlvbnMgdHIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG5cbiAgdGQge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLyogd2FwZiBjaGVja2JveCBwcmljZXMgKi9cbi53YXBmLXByaWNpbmctaGludCB7XG4gIGZsb2F0OiByaWdodCFpbXBvcnRhbnQ7XG59XG5cbi53YXBmLWlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIC53YXBmLWxhYmVsLXRleHQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi8qIFdBUEYgUmFkaW8gQnV0dG9ucyAqL1xuLndhcGYtcmFkaW9zIHtcbiAgQGluY2x1ZGUgY2hpbGQtbWFyZ2luKCdyaWdodCcsIDZweCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG59XG4ud2FwZi1yYWRpb3Mge1xuICAud2FwZi1pbnB1dC1sYWJlbCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLndhcGYtY2hlY2thYmxlIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSA2cHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcblxuICAgICYud2FwZi1jaGVja2VkIHtcbiAgICAgIC53YXBmLWxhYmVsLXRleHQge1xuICAgICAgICBAZXh0ZW5kICVidG4tMTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgZGFya2VuKCRtYWluLWNvbG9yLCAyMCUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC53YXBmLWxhYmVsLXRleHQge1xuICAgIEBleHRlbmQgJWJ0bjtcbiAgICBAZXh0ZW5kICVidG4tMS1saWdodDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLDAlLDgwJSk7XG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICB9XG59XG4iXX0= */
