/* ==========================================================================
   Get global options
   ========================================================================== */
/* ==========================================================================
   Vars
   ========================================================================== */
/* ==========================================================================
   Queries
   ========================================================================== */
/* ==========================================================================
   Fonts
   ========================================================================== */
@font-face {
  font-family: "britt";
  src: url("../font/BrittanySignatureRegular.woff2") format("woff2"), url("../font/BrittanySignatureRegular.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
/* ==========================================================================
   Includes
   ========================================================================== */
.separate-containers .entry:not(.post) .featured-image {
  margin-top: 0;
}

body {
  font-size: 18px;
}

p:last-child,
ul:last-child,
ol:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   All headings
   ========================================================================== */
h1:last-child,
h2:last-child,
h3:last-child,
h4:last-child,
h5:last-child,
h6:last-child {
  margin-bottom: 0;
}

h1,
h2,
h3 {
  margin-top: 50px;
}
h1:first-child,
h2:first-child,
h3:first-child {
  margin-top: 0;
}

@media (max-width: 960px) {
  body.blog .site-main,
  body.archive .site-main {
    padding: 20px;
    margin: 0;
  }
}

.background-video {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0.9;
  z-index: 10;
}

video[poster] {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.footer-widgets-container.grid-container {
  padding: 70px 40px;
}
@media (max-width: 600px) {
  .footer-widgets-container.grid-container {
    padding: 25px;
  }
}

.mobile-header-navigation .site-logo.mobile-header-logo img {
  height: 60px !important;
}

.menu a[target=_blank]:after,
.sf-menu a[target=_blank]:after {
  content: "\f504";
  font-family: "dashicons";
  opacity: 0.5;
  margin-left: 2px;
  transform: translateY(1.5px);
  display: inline-block;
  line-height: 0;
  font-weight: normal;
}

@media (min-width: 600px) {
  .site-header .main-navigation .main-nav ul li.nav-button {
    margin-left: 20px;
  }
}
@media (min-width: 600px) {
  .site-header .main-navigation .main-nav ul li.nav-button a {
    background-color: var(--accent);
    border-radius: 3px;
    color: white;
    padding: 15px 20px !important;
    line-height: 1;
    transition: 0.3s all ease;
  }
  .site-header .main-navigation .main-nav ul li.nav-button a:hover {
    background-color: var(--accent-2);
    color: white;
  }
}
.site-header .main-navigation .main-nav ul ul {
  width: 250px;
}
.site-header .main-navigation .main-nav ul ul li a {
  padding: 15px 20px;
}

.sticky-enabled .main-navigation.is_stuck {
  z-index: 50 !important;
}

.secondary-navigation.has-top-bar {
  padding-left: 20px !important;
  padding-right: 10px !important;
}

.prefooter iframe {
  margin-bottom: -9px;
}

div.top-bar .inside-top-bar {
  justify-content: flex-end;
}
@media (max-width: 600px) {
  div.top-bar .inside-top-bar {
    justify-content: center;
  }
}
div.top-bar .inside-top-bar .widget:first-child {
  margin-left: 0 !important;
  margin-right: auto;
}
div.top-bar .inside-top-bar .widget:last-child {
  margin-right: 0 !important;
}
div.top-bar p {
  margin-bottom: 0;
}
div.top-bar a {
  text-decoration: none;
}
div.top-bar a:hover {
  text-decoration: none;
}

.widget h2,
.widget h3 {
  font-size: 18px;
  font-weight: bold;
  text-transform: uppercase;
  margin-bottom: 1.5em;
}
.widget a {
  text-decoration: none;
}

div[data-type="core/buttons"] .block-list-appender__toggle {
  opacity: 1 !important;
  transform: none !important;
}

/* ==========================================================================
   Generic
   ========================================================================== */
.btn, body #sb_instagram .sbi_follow_btn a, .wp-block-file .wp-block-file__button, .gform-button--width-full, .wp-block-button a.wp-block-button__link,
.wp-block-button div.wp-block-button__link, .read-more.button, .gform_footer input[type=submit], .gb-button-wrapper .gb-button {
  font-weight: bold;
  cursor: pointer;
  padding: 15px 25px !important;
  text-decoration: none !important;
  font-size: 15px !important;
  font-weight: 600;
  display: inline-block !important;
  position: static;
  border-radius: 3px;
  transition: all 0.3s ease-in-out;
}
@media (max-width: 600px) {
  .btn, body #sb_instagram .sbi_follow_btn a, .wp-block-file .wp-block-file__button, .gform-button--width-full, .wp-block-button a.wp-block-button__link,
  .wp-block-button div.wp-block-button__link, .read-more.button, .gform_footer input[type=submit], .gb-button-wrapper .gb-button {
    display: block;
    width: 100%;
  }
}

/* ==========================================================================
   Core buttons
   ========================================================================== */
.wp-block-buttons {
  margin-top: 30px;
  margin-bottom: 30px;
}
@media (max-width: 600px) {
  .wp-block-buttons {
    margin-top: 20px;
  }
}
.wp-block-buttons:first-child {
  margin-top: 0;
}
.wp-block-buttons:last-child {
  margin-bottom: 0;
}
@media (max-width: 600px) {
  .wp-block-buttons .wp-block-button {
    display: block;
    width: 100%;
  }
}

/* ==========================================================================
   GeneratePress buttons
   ========================================================================== */
/* ==========================================================================
   Gravity forms buttons
   ========================================================================== */
.gform_footer input[type=submit]:last-child {
  margin-bottom: 0;
  margin-right: 0;
}

/* ==========================================================================
   Blog buttons
   ========================================================================== */
/* ==========================================================================
   Buttons
   ========================================================================== */
/* ==========================================================================
   Nav buttons
   ========================================================================== */
@media (min-width: 960px) {
  .nav-button > a {
    font-weight: bold;
    cursor: pointer;
    padding: 15px 25px !important;
    text-decoration: none !important;
    font-size: 15px !important;
    font-weight: 600;
    display: inline-block !important;
    position: static;
    border-radius: 3px;
    background-color: var(--accent);
    color: white;
  }
  .nav-button > a:hover {
    background-color: var(--accent-2);
    color: white;
  }
}

/* ==========================================================================
   Gforms buttons
   ========================================================================== */
.gform-button--width-full {
  width: 100% !important;
  text-align: center;
}

.wp-block-button__link.has-contrast-3-background-color.has-accent-color:hover {
  color: white !important;
  background-color: var(--accent) !important;
}
.wp-block-button__link.has-contrast-background-color:hover {
  background-color: var(--accent) !important;
}

.wp-block-file {
  display: flex;
  align-content: center;
  align-items: center;
  margin-bottom: 15px;
}
.wp-block-file a {
  order: 1;
  text-decoration: none;
}
.wp-block-file a:not(.wp-block-file__button) {
  color: var(--contrast);
  pointer-events: none;
}
.wp-block-file .wp-block-file__button {
  margin: 0 15px 0 0;
  order: 0;
  color: var(--white-color);
  background-color: var(--accent);
}
.wp-block-file .wp-block-file__button:hover {
  color: var(--white-color);
  background-color: var(--accent-2);
}

.wp-block-gallery {
  margin-bottom: 1.5em;
}
.wp-block-gallery:last-child {
  margin-bottom: 0;
}

.wp-block-group.is-layout-flex {
  gap: 0.75em;
}
.wp-block-group.is-layout-flex.align-items-top {
  align-items: flex-start;
}

h1.wp-block-heading,
h2.wp-block-heading,
h3.wp-block-heading {
  margin-top: 20px;
}
h1.wp-block-heading:first-child,
h2.wp-block-heading:first-child,
h3.wp-block-heading:first-child {
  margin-top: 0;
}

.is-style-kicker + h1.wp-block-heading,
.is-style-kicker + h2.wp-block-heading,
.is-style-kicker + h3.wp-block-heading {
  margin-top: 0;
}

.wp-block-image.is-style-rounded img {
  border-radius: 3px;
}

ul.is-style-checkmark,
ol.is-style-checkmark {
  margin-left: 0;
  padding-left: 0;
}
ul.is-style-checkmark:last-child,
ol.is-style-checkmark:last-child {
  margin-bottom: 0;
}
ul.is-style-checkmark > li,
ol.is-style-checkmark > li {
  position: relative;
  list-style: none;
  padding-left: 40px;
  margin-bottom: 8px;
  line-height: 1.4;
}
ul.is-style-checkmark > li:last-child,
ol.is-style-checkmark > li:last-child {
  margin-bottom: 0;
}
@media (max-width: 600px) {
  ul.is-style-checkmark > li,
  ol.is-style-checkmark > li {
    padding-left: 30px;
  }
}
ul.is-style-checkmark > li:before,
ol.is-style-checkmark > li:before {
  content: "\f147";
  font-family: "dashicons";
  font-size: 1.5em;
  position: absolute;
  line-height: 1em;
  left: 0;
  top: 0;
  color: var(--accent);
}
ul.is-style-checkmark > li > ul,
ul.is-style-checkmark > li > ol,
ol.is-style-checkmark > li > ul,
ol.is-style-checkmark > li > ol {
  margin-top: 10px;
  margin-bottom: 15px;
}

.wp-block-social-links li.wp-social-link,
.widget ul.wp-block-social-links li.wp-social-link {
  margin-bottom: 0;
}
.wp-block-social-links li.wp-social-link a,
.widget ul.wp-block-social-links li.wp-social-link a {
  display: block;
}

.block-editor-block-list__block.wp-block-spacer {
  background-color: rgba(128, 128, 128, 0.1);
}

/* ==========================================================================
   Padding on the frontend
   ========================================================================== */
@media (min-width: 600px) and (max-width: 960px) {
  :where(.entry-content > .gb-container) {
    padding-left: 40px;
    padding-right: 40px;
  }
}
@media (max-width: 1260px) {
  :where(.entry-content > .gb-container) {
    padding-left: 25px;
    padding-right: 25px;
  }
}

/* ==========================================================================
   Padding in the editor AND on the frontend
   ========================================================================== */
:where(.entry-content > .gb-container),
:where(.gb-is-root-block > .gb-container),
:where(.gb-root-block-generateblocks-container > .gb-container),
:where(.block-library-block__reusable-block-container > .gb-container) {
  padding: 40px 25px;
}
@media (min-width: 600px) and (max-width: 960px) {
  :where(.entry-content > .gb-container),
  :where(.gb-is-root-block > .gb-container),
  :where(.gb-root-block-generateblocks-container > .gb-container),
  :where(.block-library-block__reusable-block-container > .gb-container) {
    padding: 35px 25px;
  }
}
@media (max-width: 600px) {
  :where(.entry-content > .gb-container),
  :where(.gb-is-root-block > .gb-container),
  :where(.gb-root-block-generateblocks-container > .gb-container),
  :where(.block-library-block__reusable-block-container > .gb-container) {
    padding: 25px;
  }
}

/* ==========================================================================
   Default to left alignment when we set it on the block
   ========================================================================== */
@media (max-width: 600px) {
  .entry-content > .gb-container,
  .prefooter > .gb-container {
    text-align: left;
  }
}

/* ==========================================================================
   Positioning
   ========================================================================== */
.gb-container > .gb-container {
  position: relative;
}

/* ==========================================================================
   Dotted line on containers
   ========================================================================== */
.gb-inside-container .block-editor-inner-blocks,
.block-editor-block-list__block.gb-container > .gb-container {
  outline: 1px dashed rgba(128, 128, 128, 0.4);
}

.is-style-kicker {
  color: var(--accent);
}

body #sb_instagram {
  position: relative;
  margin: 0 !important;
  padding: 0 !important;
}
body #sb_instagram .sbi_follow_btn {
  position: absolute;
  bottom: 0;
  left: 50%;
  top: auto;
  transform: translateY(50%) translateX(-50%);
  text-transform: uppercase;
  z-index: 50;
  margin: 0 !important;
}
body #sb_instagram .sbi_follow_btn a {
  background: var(--accent) !important;
  box-shadow: none !important;
  color: white !important;
  margin: 0 !important;
}
body #sb_instagram .sbi_follow_btn a:hover {
  background: var(--accent-2) !important;
  box-shadow: none !important;
}
body #sb_instagram #sbi_images {
  margin: 0 !important;
  padding: 0 !important;
}
body #sb_instagram #sbi_images .sbi_item {
  position: relative;
  cursor: pointer;
  padding: 0 !important;
  margin: 0 !important;
}
body #sb_instagram #sbi_images .sbi_item:before {
  content: "+";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  font-size: 100px;
  color: white;
  z-index: 20;
  opacity: 0;
  transition: 0.6s all ease;
  pointer-events: none;
}
body #sb_instagram #sbi_images .sbi_item:after {
  opacity: 0;
  content: "";
  background-color: var(--accent);
  position: absolute;
  inset: 0;
  transition: 0.3s all ease;
  pointer-events: none;
  z-index: 10;
}
body #sb_instagram #sbi_images .sbi_item:hover:after {
  opacity: 0.85;
}
body #sb_instagram #sbi_images .sbi_item:hover:before {
  opacity: 1;
  transform: translateY(-50%) translateX(-50%) rotate(180deg);
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRoZW1lLXN0eWxlLnNjc3MiLCJfZ2xvYmFsLnNjc3MiLCJpbml0aWFsL19nZW5lcmFsLnNjc3MiLCJpbml0aWFsL190eXBvZ3JhcGh5LnNjc3MiLCJ0ZW1wbGF0ZS9fYXJjaGl2ZS5zY3NzIiwidGVtcGxhdGUvX2JhY2tncm91bmQtdmlkZW8uc2NzcyIsInRlbXBsYXRlL19mb290ZXItd2lkZ2V0cy5zY3NzIiwidGVtcGxhdGUvX2hlYWRlci1tb2JpbGUuc2NzcyIsInRlbXBsYXRlL19uYXZpZ2F0aW9uLWV4dGVybmFsLWxpbmtzLnNjc3MiLCJ0ZW1wbGF0ZS9fbmF2aWdhdGlvbi1tYWluLnNjc3MiLCJ0ZW1wbGF0ZS9fbmF2aWdhdGlvbi1zZWNvbmRhcnkuc2NzcyIsInRlbXBsYXRlL19wcmVmb290ZXIuc2NzcyIsInRlbXBsYXRlL190b3AtYmFyLnNjc3MiLCJ0ZW1wbGF0ZS9fd2lkZ2V0cy5zY3NzIiwiZ3V0ZW5iZXJnL19jb3JlLWJ1dHRvbnNfYXBwZW5kZXItZml4LnNjc3MiLCJndXRlbmJlcmcvX2NvcmUtYnV0dG9ucy5zY3NzIiwiZ3V0ZW5iZXJnL19jb3JlLWZpbGUuc2NzcyIsImd1dGVuYmVyZy9fY29yZS1nYWxsZXJ5LnNjc3MiLCJndXRlbmJlcmcvX2NvcmUtZ3JvdXAuc2NzcyIsImd1dGVuYmVyZy9fY29yZS1oZWFkaW5ncy5zY3NzIiwiZ3V0ZW5iZXJnL19jb3JlLWltYWdlcy5zY3NzIiwiZ3V0ZW5iZXJnL19jb3JlLWxpc3QtY2hlY2ttYXJrLnNjc3MiLCJndXRlbmJlcmcvX2NvcmUtc29jaWFsLWljb25zLnNjc3MiLCJndXRlbmJlcmcvX2NvcmUtc3BhY2VyLnNjc3MiLCJndXRlbmJlcmcvX2diLWNvbnRhaW5lcl9kZWZhdWx0cy5zY3NzIiwiZ3V0ZW5iZXJnL19raWNrZXIuc2NzcyIsImd1dGVuYmVyZy9fc29jaWFsLWJhbGxvb24taW5zdGFncmFtLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FD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RjtBQUFBO0FBQUE7QXZCZkM7RXVCbUJEO0FBQUE7SUFHRTs7OztBQUlGO0FBQUE7QUFBQTtBQUlBO0VBQ0M7OztBQUdEO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFQzs7O0FDNUREO0VBQ0M7OztBQ0REO0VBQ0M7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUdDO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTs7QUFLSDtFQUNDO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ0M7O0FBR0Q7RUFDQztFQUNBIiwiZmlsZSI6InRoZW1lLXN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBHZXQgZ2xvYmFsIG9wdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBJbmNsdWRlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8qIEVhcmx5LWxvYWQgZGVmYXVsdHNcbkBpbXBvcnQgXCJpbml0aWFsL19nZW5lcmFsLnNjc3NcIjtcbkBpbXBvcnQgXCJpbml0aWFsL190eXBvZ3JhcGh5LnNjc3NcIjtcblxuLy8qIFRyYW5zcGFyZW50IGhlYWRlclxuLy8gQGltcG9ydCAndHJhbnNwYXJlbnQtaGVhZGVyL18qJztcblxuLy8qIFRoZSBub3JtYWwgdGhlbWUgZmlsZXNcbkBpbXBvcnQgXCJ0ZW1wbGF0ZS9fYXJjaGl2ZS5zY3NzXCI7XG5AaW1wb3J0IFwidGVtcGxhdGUvX2JhY2tncm91bmQtdmlkZW8uc2Nzc1wiO1xuQGltcG9ydCBcInRlbXBsYXRlL19jb3B5cmlnaHQtYmFyLnNjc3NcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZS9fZm9vdGVyLXdpZGdldHMuc2Nzc1wiO1xuQGltcG9ydCBcInRlbXBsYXRlL19oZWFkZXItbW9iaWxlLnNjc3NcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZS9fbmF2aWdhdGlvbi1leHRlcm5hbC1saW5rcy5zY3NzXCI7XG5AaW1wb3J0IFwidGVtcGxhdGUvX25hdmlnYXRpb24tbWFpbi5zY3NzXCI7XG5AaW1wb3J0IFwidGVtcGxhdGUvX25hdmlnYXRpb24tc2Vjb25kYXJ5LnNjc3NcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZS9fcHJlZm9vdGVyLnNjc3NcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZS9fdG9wLWJhci5zY3NzXCI7XG5AaW1wb3J0IFwidGVtcGxhdGUvX3dpZGdldHMuc2Nzc1wiO1xuXG4vLyogR3V0ZW5iZXJnXG5AaW1wb3J0IFwiZ3V0ZW5iZXJnL19jb3JlLWJ1dHRvbnNfYXBwZW5kZXItZml4LnNjc3NcIjtcbkBpbXBvcnQgXCJndXRlbmJlcmcvX2NvcmUtYnV0dG9ucy5zY3NzXCI7XG5AaW1wb3J0IFwiZ3V0ZW5iZXJnL19jb3JlLWZpbGUuc2Nzc1wiO1xuQGltcG9ydCBcImd1dGVuYmVyZy9fY29yZS1nYWxsZXJ5LnNjc3NcIjtcbkBpbXBvcnQgXCJndXRlbmJlcmcvX2NvcmUtZ3JvdXAuc2Nzc1wiO1xuQGltcG9ydCBcImd1dGVuYmVyZy9fY29yZS1oZWFkaW5ncy5zY3NzXCI7XG5AaW1wb3J0IFwiZ3V0ZW5iZXJnL19jb3JlLWltYWdlcy5zY3NzXCI7XG5AaW1wb3J0IFwiZ3V0ZW5iZXJnL19jb3JlLWxpc3QtY2hlY2ttYXJrLnNjc3NcIjtcbkBpbXBvcnQgXCJndXRlbmJlcmcvX2NvcmUtc29jaWFsLWljb25zLnNjc3NcIjtcbkBpbXBvcnQgXCJndXRlbmJlcmcvX2NvcmUtc3BhY2VyLnNjc3NcIjtcbkBpbXBvcnQgXCJndXRlbmJlcmcvX2diLWNvbnRhaW5lcl9kZWZhdWx0cy5zY3NzXCI7XG5AaW1wb3J0IFwiZ3V0ZW5iZXJnL19nYi1ncmlkLWNvbHVtbnMuc2Nzc1wiO1xuQGltcG9ydCBcImd1dGVuYmVyZy9fa2lja2VyLnNjc3NcIjtcbkBpbXBvcnQgXCJndXRlbmJlcmcvX3NvY2lhbC1iYWxsb29uLWluc3RhZ3JhbS5zY3NzXCI7XG5cbi8vKiBSZW1haW5pbmcgZGVmYXVsdHNcblxuXG4vLyogTGF5b3V0c1xuXG5cbi8vKiBPdXRsaW5lZCBidXR0b25zXG4vLyBAaW1wb3J0ICdidXR0b24tb3V0bGluZWQvXyonO1xuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFZhcnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiRib3hzaGFkb3c6IDAgMTBweCAzMHB4IDAgcmdiYShibGFjaywgMC4xMik7XG4kbWFyZ2luYm90dG9tOiAyMHB4O1xuXG4kaGVhZGVyaGVpZ2h0ZGVza3RvcDogMTAwcHg7XG4kaGVhZGVyaGVpZ2h0dGFibGV0OiA2MHB4O1xuJGhlYWRlcmhlaWdodG1vYmlsZTogNjBweDtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFF1ZXJpZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiR0aGluOiA2MDBweDtcbiRtZWRpdW06IDk2MHB4O1xuJHdpZGU6IDEyMDBweDtcblxuQG1peGluIG1vYmlsZSB7XG5cdEBtZWRpYSAobWF4LXdpZHRoOiAjeyR0aGlufSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbkBtaXhpbiB0YWJsZXQge1xuXHRAbWVkaWEgKG1pbi13aWR0aDogI3skdGhpbn0pIGFuZCAobWF4LXdpZHRoOiAjeyRtZWRpdW19KSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuQG1peGluIG5vdGRlc2t0b3Age1xuXHRAbWVkaWEgKG1heC13aWR0aDogI3skbWVkaXVtfSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbkBtaXhpbiBub3Rtb2JpbGUge1xuXHRAbWVkaWEgKG1pbi13aWR0aDogI3skdGhpbn0pIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5AbWl4aW4gZGVza3RvcCB7XG5cdEBtZWRpYSAobWluLXdpZHRoOiAjeyRtZWRpdW19KSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuQG1peGluIGRlc2t0b3Atd2lkZSB7XG5cdEBtZWRpYSAobWluLXdpZHRoOiAjeyR3aWRlfSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBGb250c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OiAnYnJpdHQnO1xuXHRzcmM6IHVybCgnLi4vZm9udC9Ccml0dGFueVNpZ25hdHVyZVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG5cdFx0dXJsKCcuLi9mb250L0JyaXR0YW55U2lnbmF0dXJlUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0Zm9udC1kaXNwbGF5OiBzd2FwO1xufVxuIiwiLnNlcGFyYXRlLWNvbnRhaW5lcnMgLmVudHJ5Om5vdCgucG9zdCkgLmZlYXR1cmVkLWltYWdlIHtcblx0bWFyZ2luLXRvcDogMDtcbn1cbiIsImJvZHkge1xuXHRmb250LXNpemU6IDE4cHg7XG59XG5cbnA6bGFzdC1jaGlsZCxcbnVsOmxhc3QtY2hpbGQsXG5vbDpsYXN0LWNoaWxkIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEFsbCBoZWFkaW5nc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcblx0JjpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG5cbmgxLFxuaDIsXG5oMyB7XG5cdG1hcmdpbi10b3A6IDUwcHg7XG5cblx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxufVxuIiwiYm9keS5ibG9nLFxuYm9keS5hcmNoaXZlIHtcblx0LnNpdGUtbWFpbiB7XG5cdFx0QGluY2x1ZGUgbm90ZGVza3RvcCB7XG5cdFx0XHRwYWRkaW5nOiAyMHB4O1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblx0fVxufVxuIiwiLmJhY2tncm91bmQtdmlkZW8ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdGJvdHRvbTogMDtcblx0b3BhY2l0eTogMC45O1xuXHR6LWluZGV4OiAxMDtcbn1cblxudmlkZW9bcG9zdGVyXSB7XG5cdG9iamVjdC1maXQ6IGNvdmVyO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuIiwiLmZvb3Rlci13aWRnZXRzLWNvbnRhaW5lci5ncmlkLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogNzBweCA0MHB4O1xuXG4gICAgQGluY2x1ZGUgbW9iaWxlIHtcbiAgICAgICAgcGFkZGluZzogMjVweDtcbiAgICB9XG59XG4iLCIubW9iaWxlLWhlYWRlci1uYXZpZ2F0aW9uIC5zaXRlLWxvZ28ubW9iaWxlLWhlYWRlci1sb2dvIGltZyB7XG5cdGhlaWdodDogNjBweCAhaW1wb3J0YW50O1xufVxuIiwiLm1lbnUsXG4uc2YtbWVudSB7XG5cdGFbdGFyZ2V0PSdfYmxhbmsnXTphZnRlciB7XG5cdFx0Y29udGVudDogJ1xcZjUwNCc7XG5cdFx0Zm9udC1mYW1pbHk6ICdkYXNoaWNvbnMnO1xuXHRcdG9wYWNpdHk6IDAuNTtcblx0XHRtYXJnaW4tbGVmdDogMnB4O1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxLjVweCk7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGxpbmUtaGVpZ2h0OiAwO1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdH1cbn1cbiIsIi5zaXRlLWhlYWRlciB7XG5cdC5tYWluLW5hdmlnYXRpb24ge1xuXHRcdC5tYWluLW5hdiB7XG5cdFx0XHQvLyBNYWluIG1lbnVcblx0XHRcdHVsIHtcblx0XHRcdFx0bGkubmF2LWJ1dHRvbiB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgbm90bW9iaWxlIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAyMHB4O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0QGluY2x1ZGUgbm90bW9iaWxlIHtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50KTtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0XHRcdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDE1cHggMjBweCAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRcdFx0XHRcdFx0dHJhbnNpdGlvbjogMC4zcyBhbGwgZWFzZTtcblxuXHRcdFx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtMik7XG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gU3VibWVudVxuXHRcdFx0XHR1bCB7XG5cdFx0XHRcdFx0d2lkdGg6IDI1MHB4O1xuXG5cdFx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDE1cHggMjBweDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLnN0aWNreS1lbmFibGVkIC5tYWluLW5hdmlnYXRpb24uaXNfc3R1Y2sge1xuXHR6LWluZGV4OiA1MCAhaW1wb3J0YW50O1xufVxuIiwiLnNlY29uZGFyeS1uYXZpZ2F0aW9uLmhhcy10b3AtYmFyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XG59XG4iLCIucHJlZm9vdGVyIHtcbiAgICBpZnJhbWUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtOXB4O1xuICAgIH1cbn1cbiIsImRpdi50b3AtYmFyIHtcbiAgICAuaW5zaWRlLXRvcC1iYXIge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIEBpbmNsdWRlIG1vYmlsZSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC53aWRnZXQge1xuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIC8vIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIC8vIGZvbnQtc2l6ZTogMTZweDtcblxuICAgICAgICAvLyBzcGFuIHtcbiAgICAgICAgLy8gbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIC8vIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgLy8gZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAvLyBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEod2hpdGUsIDAuMyk7XG5cbiAgICAgICAgLy8gICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAvLyAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAvLyAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgLy8gICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLndpZGdldCB7XG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cbiIsImRpdltkYXRhLXR5cGU9J2NvcmUvYnV0dG9ucyddIHtcblx0LmJsb2NrLWxpc3QtYXBwZW5kZXJfX3RvZ2dsZSB7XG5cdFx0b3BhY2l0eTogMSAhaW1wb3J0YW50O1xuXHRcdHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgR2VuZXJpY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmJ0biB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHBhZGRpbmc6IDE1cHggMjVweCAhaW1wb3J0YW50O1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcblx0Zm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7XG5cdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuXHRwb3NpdGlvbjogc3RhdGljO1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cblx0dHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG5cblx0QGluY2x1ZGUgbW9iaWxlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29yZSBidXR0b25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3AtYmxvY2stYnV0dG9ucyB7XG5cdG1hcmdpbi10b3A6IDMwcHg7XG5cdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cblx0QGluY2x1ZGUgbW9iaWxlIHtcblx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHR9XG5cblx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxuXG5cdCY6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxuXG5cdC53cC1ibG9jay1idXR0b24ge1xuXHRcdEBpbmNsdWRlIG1vYmlsZSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgR2VuZXJhdGVQcmVzcyBidXR0b25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZ2ItYnV0dG9uLXdyYXBwZXIge1xuXHQuZ2ItYnV0dG9uIHtcblx0XHRAZXh0ZW5kIC5idG47XG5cdH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEdyYXZpdHkgZm9ybXMgYnV0dG9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmdmb3JtX2Zvb3RlciBpbnB1dFt0eXBlPSdzdWJtaXQnXSB7XG5cdEBleHRlbmQgLmJ0bjtcblxuXHQmOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHR9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCbG9nIGJ1dHRvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5yZWFkLW1vcmUuYnV0dG9uIHtcblx0QGV4dGVuZCAuYnRuO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQnV0dG9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwLWJsb2NrLWJ1dHRvbiBhLndwLWJsb2NrLWJ1dHRvbl9fbGluayxcbi53cC1ibG9jay1idXR0b24gZGl2LndwLWJsb2NrLWJ1dHRvbl9fbGluayB7XG5cdEBleHRlbmQgLmJ0bjtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE5hdiBidXR0b25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubmF2LWJ1dHRvbiA+IGEge1xuXHRAaW5jbHVkZSBkZXNrdG9wIHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0cGFkZGluZzogMTVweCAyNXB4ICFpbXBvcnRhbnQ7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0Zm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7XG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcblx0XHRwb3NpdGlvbjogc3RhdGljO1xuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuXHRcdGNvbG9yOiB3aGl0ZTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50LTIpO1xuXHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdH1cblx0fVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgR2Zvcm1zIGJ1dHRvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5nZm9ybS1idXR0b24tLXdpZHRoLWZ1bGwge1xuXHRAZXh0ZW5kIC5idG47XG5cblx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ud3AtYmxvY2stYnV0dG9uX19saW5rIHtcblx0Ji5oYXMtY29udHJhc3QtMy1iYWNrZ3JvdW5kLWNvbG9yLmhhcy1hY2NlbnQtY29sb3Ige1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0Ji5oYXMtY29udHJhc3QtYmFja2dyb3VuZC1jb2xvciB7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG59XG4iLCIud3AtYmxvY2stZmlsZSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0bWFyZ2luLWJvdHRvbTogMTVweDtcblxuXHRhIHtcblx0XHRvcmRlcjogMTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cblxuXHRhOm5vdCgud3AtYmxvY2stZmlsZV9fYnV0dG9uKSB7XG5cdFx0Y29sb3I6IHZhcigtLWNvbnRyYXN0KTtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0fVxuXG5cdC53cC1ibG9jay1maWxlX19idXR0b24ge1xuXHRcdEBleHRlbmQgLmJ0bjtcblxuXHRcdG1hcmdpbjogMCAxNXB4IDAgMDtcblx0XHRvcmRlcjogMDtcblx0XHRjb2xvcjogdmFyKC0td2hpdGUtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiB2YXIoLS13aGl0ZS1jb2xvcik7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtMik7XG5cdFx0fVxuXHR9XG59XG4iLCIud3AtYmxvY2stZ2FsbGVyeSB7XG5cdG1hcmdpbi1ib3R0b206IDEuNWVtO1xuXG5cdCY6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuIiwiLndwLWJsb2NrLWdyb3VwLmlzLWxheW91dC1mbGV4IHtcblx0Z2FwOiAwLjc1ZW07XG5cblx0Ji5hbGlnbi1pdGVtcy10b3Age1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHR9XG59XG4iLCJoMS53cC1ibG9jay1oZWFkaW5nLFxuaDIud3AtYmxvY2staGVhZGluZyxcbmgzLndwLWJsb2NrLWhlYWRpbmcge1xuXHRtYXJnaW4tdG9wOiAyMHB4O1xuXG5cdCY6Zmlyc3QtY2hpbGQge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cbn1cblxuLmlzLXN0eWxlLWtpY2tlciB7XG5cdCsgaDEud3AtYmxvY2staGVhZGluZyxcblx0KyBoMi53cC1ibG9jay1oZWFkaW5nLFxuXHQrIGgzLndwLWJsb2NrLWhlYWRpbmcge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cbn1cbiIsIi53cC1ibG9jay1pbWFnZS5pcy1zdHlsZS1yb3VuZGVkIHtcblx0aW1nIHtcblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdH1cbn1cbiIsInVsLmlzLXN0eWxlLWNoZWNrbWFyayxcbm9sLmlzLXN0eWxlLWNoZWNrbWFyayB7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDA7XG5cblx0JjpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG5cblx0PiBsaSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0cGFkZGluZy1sZWZ0OiA0MHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDhweDtcblx0XHRsaW5lLWhlaWdodDogMS40O1xuXG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgbW9iaWxlIHtcblx0XHRcdHBhZGRpbmctbGVmdDogMzBweDtcblx0XHR9XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnXFxmMTQ3Jztcblx0XHRcdGZvbnQtZmFtaWx5OiAnZGFzaGljb25zJztcblx0XHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsaW5lLWhlaWdodDogMWVtO1xuXHRcdFx0Ly8gdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDVweCk7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0Y29sb3I6IHZhcigtLWFjY2VudCk7XG5cdFx0fVxuXG5cdFx0PiB1bCxcblx0XHQ+IG9sIHtcblx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXHRcdH1cblx0fVxufVxuIiwiLndwLWJsb2NrLXNvY2lhbC1saW5rcyxcbi53aWRnZXQgdWwud3AtYmxvY2stc29jaWFsLWxpbmtzIHtcblx0bGkud3Atc29jaWFsLWxpbmsge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHRhIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxufVxuIiwiLmJsb2NrLWVkaXRvci1ibG9jay1saXN0X19ibG9jay53cC1ibG9jay1zcGFjZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGdyYXksIDAuMSk7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGFkZGluZyBvbiB0aGUgZnJvbnRlbmRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbjp3aGVyZSguZW50cnktY29udGVudCA+IC5nYi1jb250YWluZXIpIHtcblx0QGluY2x1ZGUgdGFibGV0IHtcblx0XHRwYWRkaW5nLWxlZnQ6IDQwcHg7XG5cdFx0cGFkZGluZy1yaWdodDogNDBweDtcblx0fVxuXG5cdEBtZWRpYSAobWF4LXdpZHRoOiAxMjYwcHgpIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDI1cHg7XG5cdFx0cGFkZGluZy1yaWdodDogMjVweDtcblx0fVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGFkZGluZyBpbiB0aGUgZWRpdG9yIEFORCBvbiB0aGUgZnJvbnRlbmRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbjp3aGVyZSguZW50cnktY29udGVudCA+IC5nYi1jb250YWluZXIpLFxuOndoZXJlKC5nYi1pcy1yb290LWJsb2NrID4gLmdiLWNvbnRhaW5lciksXG46d2hlcmUoLmdiLXJvb3QtYmxvY2stZ2VuZXJhdGVibG9ja3MtY29udGFpbmVyID4gLmdiLWNvbnRhaW5lciksXG46d2hlcmUoLmJsb2NrLWxpYnJhcnktYmxvY2tfX3JldXNhYmxlLWJsb2NrLWNvbnRhaW5lciA+IC5nYi1jb250YWluZXIpIHtcblx0cGFkZGluZzogNDBweCAyNXB4O1xuXG5cdEBpbmNsdWRlIHRhYmxldCB7XG5cdFx0cGFkZGluZzogMzVweCAyNXB4O1xuXHR9XG5cblx0QGluY2x1ZGUgbW9iaWxlIHtcblx0XHRwYWRkaW5nOiAyNXB4O1xuXHR9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBEZWZhdWx0IHRvIGxlZnQgYWxpZ25tZW50IHdoZW4gd2Ugc2V0IGl0IG9uIHRoZSBibG9ja1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmVudHJ5LWNvbnRlbnQgPiAuZ2ItY29udGFpbmVyLFxuLnByZWZvb3RlciA+IC5nYi1jb250YWluZXIge1xuXHRAaW5jbHVkZSBtb2JpbGUge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBvc2l0aW9uaW5nXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZ2ItY29udGFpbmVyID4gLmdiLWNvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIERvdHRlZCBsaW5lIG9uIGNvbnRhaW5lcnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5nYi1pbnNpZGUtY29udGFpbmVyIC5ibG9jay1lZGl0b3ItaW5uZXItYmxvY2tzLFxuLmJsb2NrLWVkaXRvci1ibG9jay1saXN0X19ibG9jay5nYi1jb250YWluZXIgPiAuZ2ItY29udGFpbmVyIHtcblx0b3V0bGluZTogMXB4IGRhc2hlZCByZ2JhKGdyYXksIDAuNCk7XG59XG4iLCIuaXMtc3R5bGUta2lja2VyIHtcblx0Y29sb3I6IHZhcigtLWFjY2VudCk7XG59XG4iLCJib2R5ICNzYl9pbnN0YWdyYW0ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cblx0LnNiaV9mb2xsb3dfYnRuIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0b3A6IGF1dG87XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwJSkgdHJhbnNsYXRlWCgtNTAlKTtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdHotaW5kZXg6IDUwO1xuXHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXG5cdFx0YSB7XG5cdFx0XHRAZXh0ZW5kIC5idG47XG5cdFx0XHQvLyBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tYWNjZW50KSAhaW1wb3J0YW50O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0Y29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG5cdFx0XHRtYXJnaW46IDAgIWltcG9ydGFudDtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWFjY2VudC0yKSAhaW1wb3J0YW50O1xuXHRcdFx0XHRib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0I3NiaV9pbWFnZXMge1xuXHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRcdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblxuXHRcdC5zYmlfaXRlbSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRtYXJnaW46IDAgIWltcG9ydGFudDtcblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiAnKyc7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTAwcHg7XG5cdFx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdFx0ei1pbmRleDogMjA7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRcdHRyYW5zaXRpb246IDAuNnMgYWxsIGVhc2U7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0aW5zZXQ6IDA7XG5cdFx0XHRcdHRyYW5zaXRpb246IDAuM3MgYWxsIGVhc2U7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0XHR6LWluZGV4OiAxMDtcblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdG9wYWNpdHk6IDAuODU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoMTgwZGVnKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIl19 */
